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/ergodox_ez/keymaps/tm2030/README.md | 136 +++ keyboards/ergodox_ez/keymaps/tm2030/compiled.hex | 1224 ++++++++++++++++++++++ keyboards/ergodox_ez/keymaps/tm2030/keymap.c | 242 +++++ 3 files changed, 1602 insertions(+) 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 (limited to 'keyboards/ergodox_ez/keymaps/tm2030') 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<