From f0dfe8ab97e6919957e371dcb09989fcedaada77 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Mon, 15 Feb 2016 14:13:29 +0100 Subject: testing moving the 6 to the left, having one key more on the right used for hash now feels a bit more natural to me. Need to investigate further. --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 22 +- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 3058 +++++++++++++------------ 2 files changed, 1561 insertions(+), 1519 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 0298cb702..e75187202 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -31,18 +31,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | |CMD-C | 7 | 8 | 9 | 0 | ß | # | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| + * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | + * | | | | | | | + | - | . | ! | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -106,9 +106,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand 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), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), 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, + DE_PLUS, DE_MINS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 2c83055b0..8d74fd599 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,1509 +1,1551 @@ -:100000000C94CA070C940E080C940E080C940E085D -:100010000C940E080C940E080C940E080C940E0808 -:100020000C940E080C940E080C9488130C945A141B -:100030000C940E080C940E080C940E080C940E08E8 -:100040000C940E080C94322D0C940E080C940E088F -:100050000C940E080C942A230C940E080C940E0891 -:100060000C940E080C940E080C940E080C940E08B8 -:100070000C940E080C940E080C940E080C940E08A8 -:100080000C940E080C940E080C940E080C940E0898 -:100090000C940E080C940E080C940E080C940E0888 -:1000A0000C940E080C940E080C940E08C714E91456 -:1000B000D715E914D7152E155115D715A615B9154D -:1000C000001900192F192F197319B119CB1BCB1B4C -:1000D000CA19CB1BCB1ACB1A9F1BCB1BCB1BB61B36 -:1000E00002E002E2012E022E02E10002E002E10241 -:1000F000E20001E001E101E20002E001E3010602A9 -:100100000602E30002E00001E00002E001E3011961 -:10011000021902E30002E00001E0000000F0A1F09B -:10012000A329002B00E200E100358100001E00142D -:100130000004001D7135004D001F001A0016001B41 -:1001400000E1044C00200008000700060050002ACF -:100150000021001500090019004F004A0022001775 -:10016000000A000500000003300130E3000000E257 -:1001700000000002540230E7000000E60000000426 -:100180005423001C000B00110000002E7F240018D7 -:10019000000D00100052004B0025000C000E003630 -:1001A0000051002C00260012000F003700E1082843 -:1001B00000270013003300387130004E002D002F4F -:1001C000003474E5003181000001000100010001EC -:1001D00000010000003A003500310001000100017B -:1001E000003B0035022102350001004C003C001E9E -:1001F0000224062202010001003D002D02240224F7 -:1002000004010001003E000100370011040000015C -:1002100000010001000000010000000100010001D8 -:100220000000000100000001003F0024062402231A -:1002300002000001004000220425023500010001F7 -:100240000041002304260235023700010042002449 -:100250000425041F021E0201004300310026043160 -:1002600002010001004400450001002D02010000D0 -:100270000001000100010001000100000001000177 -:100280000001000100010001000100F400F200FB88 -:1002900000010001000100F000F100FA000100017E -:1002A000000100F500F300FC00010001000100F96D -:1002B00000FA00F60000000100010001000000014A -:1002C0000000000100A80001000000010000000182 -:1002D0000001000100A900AA0000000100010001C6 -:1002E000000100010001000100010001000100AC5B -:1002F000000100B600010001000100AB0050000148 -:1003000000010001000100520051000100AE000197 -:1003100000010001004F0000000100010001000188 -:10032000000100000001000E000B001B7101000124 -:100330000001003700040014000100010001001258 -:10034000000800340001000100010036000C002FFD -:10035000000100010001001D001800330000000131 -:100360000001000100000001000000010001000187 -:100370000000000100000001000100190007000555 -:10038000000000010001000A001700130001000135 -:10039000000100060015001A000100010001000F15 -:1003A00000110010000100010001002D0016000DD9 -:1003B000710100010038001C0009820100010000E9 -:1003C0000001000100010001000100000001000126 -:1003D00000010001000100010001000100500001C6 -:1003E0000001000100010052005100010001000164 -:1003F00000010001004F00010001000100010001A7 -:1004000000010001000000010001000100000001E6 -:1004100000000001000100010000000100000001D7 -:10042000003F005200510023020000010040002460 -:100430000021001E00270001004100250022001FAE -:1004400000370001004200260023002000270001A1 -:100450000043003002300024022E00010044004519 -:100460000001000100010000000A00253031366261 -:10047000003A200025303258000A722F63203031B4 -:1004800032333435363738394142434445460A0021 -:100490000A002530325800626F756E6365213A207C -:1004A000006C6566742073696465206174746163AF -:1004B0006865640A006C6566742073696465206E03 -:1004C0006F7420726573706F6E64696E670A007472 -:1004D0007279696E6720746F207265736574206D20 -:1004E000637032333031380A000A44454255473A86 -:1004F00020656E61626C65642E0A005B735D004B63 -:100500006579626F6172642073746172742E0A007F -:100510005B575D005B535D005B525D005B445D00BB -:100520005B435D0016034500720067006F004400E6 -:100530006F007800200045005A00000016034500B7 -:10054000720067006F0044006F00780020004500D3 -:100550005A0000000403090409028D00050100A0EF -:10056000FA09040000010301010009211101000141 -:10057000223F000705810308000A09040100010366 -:10058000010200092111010001224D00070582032B -:1005900008000A09040200010300000009211101FA -:1005A00000012236000705830308000A090403003E -:1005B00002030000000921110100012220000705AB -:1005C000840320000107050403200001090404003E -:1005D0000103000000092111010001223900070573 -:1005E00085031000011201100100000008EDFE0754 -:1005F0001301000102000105010906A10105071907 -:10060000E029E71500250195087501810205081903 -:100610000129059505750191029501750391010563 -:10062000071900297715002501957875018102C009 -:100630000631FF0974A1010975150025FF95207584 -:100640000881020976150025FF952075089102C0E2 -:1006500005010980A101850216010026B7001A01D3 -:10066000002AB700751095018100C0050C0901A191 -:10067000018503160100269C021A01002A9C0275BE -:100680001095018100C005010902A1010901A10025 -:100690000509190129051500250195057501810236 -:1006A0009501750381010501093009311581257F07 -:1006B00095027508810609381581257F9501750811 -:1006C0008106050C0A38021581257F950175088180 -:1006D00006C0C005010906A101050719E029E715B3 -:1006E00000250195087501810295017508810105B4 -:1006F0000819012905950575019102950175039168 -:10070000010507190029FF150025FF9506750881C9 -:1007100000C00A002530325820006B6579626F6195 -:1007200072645F7265706F72743A20000A0025303F -:100730003258006B6579626F6172645F7365745FD4 -:100740006C65643A200064656C5F6B65795F626913 -:10075000743A2063616E27742064656C3A202530FA -:1007600032580A006164645F6B65795F6269743A4C -:100770002063616E2774206164643A20253032580A -:100780000A00646F6E652E0A00626F6F676D6167A5 -:100790006963207363616E3A202E2E2E2000290A91 -:1007A000002575002F002575005D280025640020B8 -:1007B00000256400200025640020002564007C00E2 -:1007C00025303258006D6F7573656B6579205B62FB -:1007D000746E7C782079207620685D287265702F91 -:1007E00061636C293A205B006D6B5F776865656CAF -:1007F0005F74696D655F746F5F6D6178203D202562 -:10080000640A006D6B5F776865656C5F6D61785F2A -:100810007370656564203D2025640A006D6B5F740C -:10082000696D655F746F5F6D6178203D2025640A96 -:10083000006D6B5F6D61785F7370656564203D204E -:1008400025640A006D6B5F696E74657276616C2059 -:100850003D2025640A006D6B5F64656C6179203D05 -:100860002025640A006D6B5F776865656C5F74694D -:100870006D655F746F5F6D6178203D2025640A00AF -:100880006D6B5F776865656C5F6D61785F737065D0 -:100890006564203D2025640A006D6B5F74696D6599 -:1008A0005F746F5F6D6178203D2025640A006D6B79 -:1008B0005F6D61785F7370656564203D2025640A13 -:1008C000006D6B5F696E74657276616C203D2025EA -:1008D000640A006D6B5F64656C6179203D2025645E -:1008E0000A000A00257500363A20776865656C5F56 -:1008F00074696D655F746F5F6D61783A20000A00FE -:10090000257500353A20776865656C5F6D61785FA5 -:1009100073706565643A20000A00257500343A203A -:1009200074696D655F746F5F6D61783A20000A00CD -:10093000257500333A206D61785F73706565643AA0 -:1009400020000A00257500323A20696E74657276BF -:10095000616C286D73293A20000A00257500313A30 -:100960002064656C6179282A31306D73293A200042 -:100970000A092D2056616C756573202D0A004D3EC5 -:10098000004D25643E20003F007365742064656659 -:1009900061756C740A00433E2000776865726520BB -:1009A00064656C74613A20637572736F723D25647F -:1009B0002C20776865656C3D25640A536565206861 -:1009C0007474703A2F2F656E2E77696B6970656449 -:1009D00069612E6F72672F77696B692F4D6F757321 -:1009E000655F6B6579730A000A092D204D6F757379 -:1009F000656B6579202D0A4553432F713A0971754E -:100A000069740A313A0964656C6179282A31306D5C -:100A100073290A323A09696E74657276616C286DC1 -:100A200073290A333A096D61785F73706565640AEA -:100A3000343A0974696D655F746F5F6D61780A356A -:100A40003A09776865656C5F6D61785F737065659D -:100A5000640A363A09776865656C5F74696D655F2D -:100A6000746F5F6D61780A0A703A097072696E740A -:100A70002076616C7565730A643A09736574206445 -:100A8000656661756C74730A75703A092B310A6476 -:100A90006F776E3A092D310A706775703A092B31FC -:100AA000300A7067646F776E3A092D31300A0A7325 -:100AB00070656564203D2064656C7461202A206D3A -:100AC00061785F7370656564202A2028726570659F -:100AD0006174202F2074696D655F746F5F6D61783C -:100AE000290A003F004D3E2000433E20004C256473 -:100AF0000A000A092D20436F6E736F6C65202D0A62 -:100B00004553432F713A09717569740A6D3A096D3D -:100B10006F7573656B65790A000A092D204D616751 -:100B20006963202D0A643A0964656275670A783A38 -:100B3000096465627567206D61747269780A6B3A41 -:100B4000096465627567206B6579626F6172640A1A -:100B50006D3A096465627567206D6F7573650A7615 -:100B60003A0976657273696F6E0A733A0973746134 -:100B70007475730A633A09636F6E736F6C65206DE9 -:100B80006F64650A302D343A096C61796572302DD5 -:100B900034284631302D4634290A506175733A099C -:100BA000626F6F746C6F616465720A653A0965659E -:100BB00070726F6D0A6E3A094E4B524F0A7A3A09BB -:100BC000736C656570204C454420746573740A002D -:100BD0000A002575002E6E6B726F3A20000A002500 -:100BE00075002E737761705F6261636B736C617304 -:100BF000685F6261636B73706163653A20000A002D -:100C00002575002E737761705F67726176655F6529 -:100C100073633A20000A002575002E6E6F5F6775BA -:100C2000693A20000A002575002E737761705F72A3 -:100C3000616C745F726775693A20000A002575005F -:100C40002E737761705F6C616C745F6C6775693A65 -:100C500020000A002575002E636170736C6F636B52 -:100C60005F746F5F636F6E74726F6C3A20000A007E -:100C70002575002E737761705F636F6E74726F6C91 -:100C80005F636170736C6F636B3A20000A002530FC -:100C90003258006B65796D61705F636F6E6669676E -:100CA0002E7261773A20000A002575002E6D6F754F -:100CB00073653A20000A002575002E6B6579626F16 -:100CC0006172643A20000A002575002E6D6174720D -:100CD00069783A20000A002575002E656E61626C05 -:100CE000653A20000A002530325800646562756755 -:100CF0005F636F6E6669672E7261773A20000A0043 -:100D000025750064656661756C745F6C61796572E8 -:100D10003A20003F004E4B524F3A206F66660A0061 -:100D20004E4B524F3A206F6E0A0074696D65725FC8 -:100D3000636F756E743A202530346C580A006B6509 -:100D400079626F6172645F6E6B726F3A2025580A28 -:100D5000006B6579626F6172645F69646C653A20EB -:100D600025580A006B6579626F6172645F70726FFB -:100D7000746F636F6C3A2025580A00686F73745F54 -:100D80006B6579626F6172645F6C65647328293A80 -:100D90002025580A000A092D2053746174757320A8 -:100DA0002D0A004743433A20342E392E3320415632 -:100DB000522D4C4942433A20312E382E3120415693 -:100DC000525F415243483A20617672350A004F50D3 -:100DD00054494F4E533A204C55464120424F4F54B0 -:100DE0004D41474943204D4F5553454B45592045AB -:100DF000585452414B455920434F4E534F4C452078 -:100E0000434F4D4D414E44204E4B524F20353132D1 -:100E10000A004255494C443A206130383532363563 -:100E20002D6469727479202830393A34343A313774 -:100E3000204A616E2031332032303136290A005683 -:100E400049443A20307846454544284572676F4406 -:100E50006F7820455A29205049443A203078313360 -:100E60003037284572676F446F7820455A292056DD -:100E700045523A203078303030310A0044455343EF -:100E80003A20742E6D2E6B2E206B6579626F617225 -:100E900064206669726D7761726520666F722045A5 -:100EA00072676F646F780A000A092D2056657273A5 -:100EB000696F6E202D0A000A6D6F7573653A206F99 -:100EC00066660A000A6D6F7573653A206F6E0A00D8 -:100ED0000A6B6579626F6172643A206F66660A0018 -:100EE0000A6B6579626F6172643A206F6E0A000A5C -:100EF0006D61747269783A206F66660A000A6D61E6 -:100F0000747269783A206F6E0A000A6465627567C8 -:100F10003A206F6E0A000A64656275673A206F6650 -:100F2000660A000A0A626F6F746C6F616465722EE4 -:100F30002E2E2000433E20006565636F6E66696754 -:100F40003A0A00536C656570204C45442074657303 -:100F5000740A000000000000000000000000010210 -:100F600004060A0F17202C3A4A5D71879DB3C7DA31 -:100F7000E9F5FCFFFCF5E9DAC7B39D87715D4A3AF4 -:100F80002C20170F0A0604020100000000000000D8 -:100F90000000000011241FBECFEFDAE0DEBFCDBF9E -:100FA00004B603FE24C08091FB019091FC01A09146 -:100FB000FD01B091FE018730904BA740B04BB9F4D2 -:100FC0001092FB011092FC011092FD011092FE01A3 -:100FD00014BE84B7877F84BF88E10FB6F8948093EE -:100FE0006000109260000FBEE0E0FFE3099511E0A1 -:100FF000A0E0B1E0E0E0FEE502C005900D92AA336A -:10100000B107D9F711E0AAE3B1E001C01D92AB3FEF -:10101000B107E1F70E94C0100C94FE2E0C94000062 -:10102000FF93EF93E0913A01F0913B01309709F083 -:101030000995EF91FF910895FC018591803011F0A1 -:10104000EFDFFBCF0895FF27E0E230E247FF0CC05F -:10105000419597FF09C0EDE2609570958095909558 -:10106000611D711D811D911D27FF02C0219530E377 -:1010700050E2AA27660F771F881F991FAA1FA4177F -:1010800010F0A41B63955A95A9F7AA3008F0A95F40 -:10109000A05DAF93F395611571058105910541F749 -:1010A000ED3211F4EF93F395F21718F43F93F395A3 -:1010B000FBCF8F91B5DFFA95E1F70895E991F991AA -:1010C0008591803021F0853219F0AADFF9CF08959B -:1010D00020E0E89455915532C1F3503311F46894EF -:1010E00055915A3348F4505390F3220F022E220F99 -:1010F000220F200D250FF4CF0EF42195899199919F -:10110000533619F3533729F1533559F1BC01882768 -:101110009927E8945C3621F48991999168945591C6 -:10112000543639F446EF7EF077FF0DC08FEF9FEF16 -:101130000AC055374AE039F0583540E121F05236BF -:1011400042E009F00895FF93EF937DDFEF91FF9167 -:10115000B7CFFF93EF93FC0181918030B9F360DF4B -:10116000FBCFFF93EF9368DFF1CFDF93CF93CDB742 -:10117000DEB72596A3DFCF91DF910895FC016130A2 -:1011800089F028F0623031F16330E1F153C082819F -:10119000882321F085EE0E949D174CC085EE0E94A9 -:1011A000651848C08281882349F00E94F4229093F8 -:1011B0003D0180933C0188E191E0089580913C01DC -:1011C00090913D010E94002387399105B4F58AE092 -:1011D00091E008958281882349F00E94F42290933F -:1011E0003D0180933C0187E091E0089580913C01AE -:1011F00090913D010E940023873991050CF589EFFC -:1012000090E008958281882349F00E94F42290930F -:101210003D0180933C0182EF90E0089580913C0174 -:1012200090913D010E9400238739910564F480EE7E -:1012300090E0089580E090E0089585E191E00895C0 -:1012400084E091E008958BEE90E008950895609118 -:10125000BE017091BF018091C0019091C1010E94B7 -:101260002D2256985E9825982D9826982E98279886 -:101270002F98823061F018F4813031F00895833076 -:1012800049F0843051F00895259A2D9A0895269AB0 -:101290002E9A0895279A2F9A0895259A2D9A279A7B -:1012A0002F9A089587E299E0892B11F00E9427096F -:1012B00080E090E0089556985E9825982D9826989D -:1012C0002E9827982F988FEF90E090938900809325 -:1012D000880090938B0080938A0090938D00809378 -:1012E0008C00259A2D9A2FEF80E792E021508040C4 -:1012F0009040E1F700C00000269A2E9A2FEF80E779 -:1013000092E0215080409040E1F700C00000279A11 -:101310002F9A2FEF80E792E0215080409040E1F734 -:1013200000C0000025982D982FEF80E792E0215013 -:1013300080409040E1F700C0000026982E982FEFE3 -:1013400080E792E0215080409040E1F700C000002B -:1013500027982F9856985E9825982D9826982E981D -:1013600027982F98089589EA8093800089E08093D8 -:10137000810024982C983F988AB18F748AB96E980E -:10138000479A8BB1806B8BB9769A0E945B0986E293 -:1013900099E0892B11F00E94260980E090E00895E1 -:1013A00080E28093000180913E0181110EC00E9475 -:1013B0001F0A81E080933E012FEF83ED90E32150DF -:1013C00080409040E1F700C0000080E40E94250AC0 -:1013D0008093000181112EC00E944F0A809300016A -:1013E000811128C00E944F0A80930001811122C000 -:1013F0008FE30E944F0A8093000181111BC00E945D -:10140000470A80E40E94250A80930001811112C0DE -:101410008CE00E944F0A8093000181110BC00E9452 -:101420004F0A80930001811105C08FE30E944F0A8B -:10143000809300010E94470A809100010895109254 -:10144000B9008AE08093B800089594EA9093BC00B4 -:101450009091BC0097FFFCCF9091B900987F983095 -:1014600021F0903111F081E008958093BB0084E871 -:101470008093BC008091BC0087FFFCCF8091B900B5 -:10148000887F883111F0803471F780E0089584E915 -:101490008093BC008091BC0084FDFCCF08958093B4 -:1014A000BB0084E88093BC008091BC0087FFFCCF28 -:1014B0009091B900987F81E0983209F480E0089516 -:1014C00084E88093BC008091BC0087FFFCCF8091B2 -:1014D000BB00089580910001811115C080E40E9435 -:1014E000250A8093000181110CC082E10E944F0AFD -:1014F00080930001811105C08FEF0E944F0A8093F5 -:1015000000010E94470A84B1807F84B985B1807F41 -:1015100085B98AB1837F8AB98BB1837F8BB93E98B5 -:10152000469808950E94D009809300010E946A0A9B -:1015300080B38C7080BB81B3836F81BBA0E4B1E0CA -:10154000EEE4F1E08EE08E0F11921D928E13FCCF2F -:1015500083EB99E0892B11F00C94B30908959F92C5 -:10156000AF92BF92CF92DF92EF92FF920F931F93B1 -:10157000CF93DF93809100018823E1F080913F01B8 -:101580008F5F80933F01811115C08FEC94E00E9422 -:101590001C080E94D00980930001882329F085EB64 -:1015A00094E00E941C0806C081EA94E00E941C0896 -:1015B0000E945B0900E411E0C0E0D0E0BB24B394DA -:1015C00082E0A82ECC24C394D12C22E9E22E24E080 -:1015D000F22EC730D10500F580910001811164C061 -:1015E00080E40E94250A80930001811112C082E1EB -:1015F0000E944F0A8093000181110BC0C6010C2E7E -:1016000001C0880F0A94EAF780950E944F0A8093E0 -:1016100000010E94470A48C0CA30A1F028F4C8302F -:1016200059F0C93061F005C0CC3089F070F0CD3090 -:1016300089F0209A289810C0219A29980DC0229AE2 -:101640002A980AC0239A2B9807C0529A01C0539A2D -:101650005B9802C03E9A469890EA9A95F1F79FB13E -:10166000799902C082E001C080E091709B25982B9F -:101670007C9902C084E001C080E0892B7D9902C082 -:1016800038E001C030E0832B7E9902C020E101C028 -:1016900020E0822B9FB19095991F9927991F9295D1 -:1016A000990F907E892B10C080910001811174C028 -:1016B00080E40E94250A80930001882309F459C020 -:1016C000912C0E94470A892DF8019081981739F1D1 -:1016D000808380910101882301F18091D90180FFED -:1016E00004C087E994E00E941C088091D90180FF22 -:1016F0000CC0809101011F928F93FF92EF920E9484 -:10170000B5080F900F900F900F908091D90180FF36 -:1017100004C080E994E00E941C08A09201010E948C -:101720006A0A21960F5F1F4FCE30D10509F051CFC5 -:10173000809101018823B1F08150809301018823B9 -:1017400039F08FE99FE00197F1F700C000000AC06F -:10175000AEE4B1E0E0E4F1E0CF01825F91919D93CE -:101760008E13FCCF82E599E0892BC1F00E945209CB -:1017700015C083E10E944F0A809300018111A0CF20 -:1017800081E40E94250A80930001811199CF0E9473 -:10179000600A982E909495CF80E096CF81E0DF91FB -:1017A000CF911F910F91FF90EF90DF90CF90BF905E -:1017B000AF909F900895E82FF0E0E25BFE4F8081AC -:1017C0000895CF92DF92EF92FF920F931F93CF93E2 -:1017D000DF9389E794E00E941C088EE4E82E81E004 -:1017E000F82EC0E0D0E094E7C92E94E0D92E0BE6A5 -:1017F00014E0DF93CF93DF92CF920E94B50881E788 -:1018000094E00E941C08F70181917F0190E00E9402 -:1018100093229F938F931F930F930E94B50889E69D -:1018200094E00E941C0821968DB79EB708960FB6CB -:10183000F8949EBF0FBE8DBFCE30D105D1F6DF919B -:10184000CF911F910F91FF90EF90DF90CF9008956F -:101850008B3B910578F4883A910540F5853A9105DE -:10186000D0F48430910508F0B1C08130910509F4BD -:10187000ADC06BC0803E910508F467C0883E9105FD -:1018800008F4A4C09C01205F31092031310508F023 -:101890005CC090650895853A910509F459C0863A6F -:1018A000910509F058C082E890E40895883A9105BE -:1018B00009F454C0893A910509F453C08A3A910554 -:1018C00009F452C08B3A910509F451C08C3A910544 -:1018D00009F450C08D3A910509F44FC0803B910541 -:1018E00009F44EC08E3A910509F44DC08F3A910526 -:1018F00009F44CC0813B910509F44BC0823B910532 -:1019000009F44AC0833B910509F449C0843B910521 -:1019100009F448C0853B910509F447C0863B910511 -:1019200009F446C0873B910509F445C0883B910501 -:1019300009F444C0893B910509F443C08A3B9105F1 -:1019400009F442C080E094E4089580E090E00895B6 -:1019500081E890E4089583E890E4089582EE94E4A9 -:10196000089589EE94E408958AEE94E4089585EB51 -:1019700094E4089586EB94E4089587EB94E4089545 -:101980008CEC94E408958DEC94E4089583E895E458 -:1019900008958AE895E4089582E995E4089584E934 -:1019A00095E4089581E296E4089583E296E408952B -:1019B00084E296E4089585E296E4089586E296E44A -:1019C000089587E296E408958AE296E408950895DA -:1019D00096E0799FF001112494E5899FE00DF11DB7 -:1019E0001124E60FF11DEE0FFF1FEF5DFE4F8591F5 -:1019F00094910895880F991FFC01E556F040859158 -:101A000094910895880F991FFC01E55EFE4F859122 -:101A10009491089526E0729FF001112444E5849F7B -:101A2000E00DF11D1124E60FF11DEE0FFF1FEF5D1C -:101A3000FE4F859194919C013A9521154FE1340711 -:101A400008F41EC13F512115304120F49F700E94BF -:101A5000020D08959C0130532115304118F4992747 -:101A6000906C0895811520E5920769F40E94ED1BA2 -:101A70004FEF84E39CE0415080409040E1F700C08C -:101A800000000C944F23813020E5920751F489EE39 -:101A900094E00E941C088091D90181608093D90153 -:101AA00008959C0130552115304108F051C0292F6F -:101AB00033272F70332721303105D9F4AC0143701F -:101AC000552702C0220F331F4A95E2F73C68AC014C -:101AD00064E0440F551F6A95E1F744275370242BA7 -:101AE000352B73E0880F991F7A95E1F78076992757 -:101AF0001DC02230310529F4982F8827816F906A04 -:101B0000089523303105A9F4AC014370552721E035 -:101B100030E002C0220F331F4A95E2F73C6843E0F1 -:101B2000880F991F4A95E1F7807E9770822B932B3F -:101B3000089524303105E1F4AC014370552721E0CC -:101B400030E002C0220F331F4A95E2F73A68E7CF30 -:101B50009C0130572115304118F49F709062089510 -:101B60009C0130582115304118F49F70906A0895F7 -:101B7000803E9105E0F4803C910558F58133910554 -:101B800009F46FC048F48932910509F463C08A32C0 -:101B9000910509F46DC072C089339105E9F082386E -:101BA0009105D1F08533910509F44DC067C0833E9E -:101BB000910581F138F4803E9105B9F0823E91059E -:101BC000D9F05CC0863E910561F1873E9105A1F197 -:101BD00055C00E94FA0C08952091EC0120FD02C02E -:101BE00021FF4CC080EE90E049C08091EC0180FF65 -:101BF000F9CF89E390E042C08091EC0182FF0EC0F2 -:101C00008091EC0184FF03C080E090E037C083EE58 -:101C100090E034C08091EC0182FFF2CF82EE90E040 -:101C20002DC08091EC0183FF0BC08091EC0184FDFD -:101C3000EBCF87EE90E022C08091EC0183FFF5CFDF -:101C400086EE90E01BC08091EC0185FF07C089E221 -:101C500090E014C08091EC0185FFF9CF85E390E01E -:101C60000DC08091EC0186FF07C08AE290E006C0BB -:101C70008091EC0186FFF9CF81E390E00E94280C6F -:101C80000895089580916F0108959FB7F894109278 -:101C90005E019FBF9091F201943009F057C090917E -:101CA000E9009F703091EC00232F217030FD20E877 -:101CB000922B24E02093E9002091EB0020FF43C009 -:101CC0002091EE0027FF3FC020915C01222321F0EC -:101CD0002091E80025FF37C010925C0126E030918A -:101CE000E80035FD15C03091F201343061F53091D6 -:101CF000EB0035FD28C0215021F481E080935C0188 -:101D000022C0EFE9FFE03197F1F700C00000E7CF14 -:101D10008093F1008091E80085FD0AC08091E80081 -:101D200080FFFCCF8091E8008E778093E80006C0AA -:101D30008FB7F89421E020935E018FBF9F7090933E -:101D4000E90080E008959F709093E9008FEF089577 -:101D5000CF93DF9300D01F92CDB7DEB79C01809167 -:101D6000F201843019F593E099833B832A839093A1 -:101D7000E9008FEF9091E800815095FD06C095ED48 -:101D80009A95F1F700008111F5CF8091E80085FF69 -:101D90000DC040E050E063E070E0CE0101960E948B -:101DA00078118091E8008E778093E8000F900F9073 -:101DB0000F90DF91CF910895CF93DF9300D01F92C2 -:101DC000CDB7DEB72091F201243021F522E029833E -:101DD0009B838A8383E08093E9008FEF9091E800F2 -:101DE000815095FD06C095ED9A95F1F7000081119F -:101DF000F5CF8091E80085FF0DC040E050E063E042 -:101E000070E0CE0101960E9478118091E8008E77F3 -:101E10008093E8000F900F900F90DF91CF9108957D -:101E20002091F2012430F1F422E02093E9002FEF19 -:101E30003091E800215035FD06C035ED3A95F1F7B7 -:101E400000002111F5CF2091E80025FF0BC040E0F4 -:101E500050E065E070E00E9478118091E8008E7794 -:101E60008093E8000895CF93DF932091F20124300E -:101E700009F048C0EC0180910C018823E1F08091C9 -:101E80000D018823C1F085E08093E9008FEF9091E8 -:101E9000E800815095FD06C095E19A95F1F70000A4 -:101EA0008111F5CF8091E80085FF2CC040E050E023 -:101EB00060E170E017C081E08093E9008FEF9091BE -:101EC000E800815095FD06C095ED9A95F1F7000068 -:101ED0008111F5CF8091E80085FF14C040E050E00B -:101EE00068E070E0CE010E9478118091E8008E7762 -:101EF0008093E80080E1FE01AFE5B1E001900D9232 -:101F00008A95E1F7DF91CF91089580E295E00E94F4 -:101F10001C088091F101811109C00E940D130E94DB -:101F20006A138091E20084608093E20008958CE15E -:101F300095E00E941C081092F101089588E195E057 -:101F40000C941C0884E195E00E941C080C941F2D41 -:101F500080E195E00E941C080E94E9220E94252D44 -:101F60000E940F160C94410E20915D012F5F822F6D -:101F700062E30E94932E992319F020935D01089546 -:101F800010925D0180915E01882371F18091F201D0 -:101F9000843041F58091E9008F702091EC00922F00 -:101FA000917020FD90E8892B94E09093E900909146 -:101FB000EB0090FF14C09091EE0097FF10C090913D -:101FC000E80095FF03C01092F100F9CF9091E8006E -:101FD00090FF05C09091E8009E779093E8008F7085 -:101FE0008093E90010925E01089542E061EC81E087 -:101FF0000E94871242E061EC82E00E94871242E078 -:1020000061EC83E00E94871242E261EC84E00E946E -:10201000871242E161EC85E00C9487128091F40113 -:10202000833009F455C030F4813071F0823009F406 -:102030008EC008958A3009F47AC08B3009F460C0EC -:10204000893009F09CC020C08091F301813A09F0E9 -:1020500096C08091E800877F8093E8008091F70127 -:102060009091F801892B21F460E18FE591E003C0A4 -:1020700060E080E090E070E00E94C3118091E80091 -:102080008B778093E80008958091F301813209F005 -:1020900076C08091F7019091F801009719F00497AC -:1020A00009F06DC08091E800877F8093E8008091FF -:1020B000E80082FD05C08091F2018111F8CF5FC078 -:1020C0008091F10080936F018091E8008B7753C07D -:1020D0008091F301813A09F052C08091F70190910B -:1020E000F801892B09F04BC08091E800877F80932D -:1020F000E8008091E80080FFFCCF80910C0136C0A1 -:102100008091F3018132D9F58091F7019091F80126 -:10211000892BA9F58091E800877F8093E8000E94D1 -:10212000BC128091F50180930C010C94ED1B809101 -:10213000F301813221F58091E800877F8093E800E8 -:102140000E94BC128091F6018093700108958091E5 -:10215000F301813AA1F48091E800877F8093E80041 -:102160008091E80080FFFCCF809170018093F100A6 -:102170008091E8008E778093E8000C94BC1208955B -:1021800084B7877F84BF88E10FB6F894809360009E -:10219000109260000FBE90E080E80FB6F894809334 -:1021A0006100909361000FBE0E949C160E940D1367 -:1021B0000E946A138091E20084608093E20085E4CB -:1021C0009EE00E94282278940E94EF150E949E169D -:1021D00082E091E00E940A160E940D2D8FEF94E09C -:1021E0000E941C088091F201853089F48BEF94E005 -:1021F0000E941C080E94AD228091F001882391F377 -:102200000E94D522882371F30E946211EBCF0E94B5 -:10221000CC16E8CF292F332723303105C9F064F4D9 -:102220002130310581F02230310509F043C08DE8BD -:1022300090E028E535E042C021323105F1F022324C -:10224000310541F137C082E190E025EE35E036C03E -:1022500099278130910541F08230910541F0892B19 -:1022600049F5E4E5F5E005C0ECE3F5E002C0E4E2A1 -:10227000F5E0849190E09F0121C06530D8F4E62F0D -:10228000F0E0EE0FFF1FEB5DFE4F2081318189E012 -:1022900090E014C0653070F470E0FB01EE0FFF1F9A -:1022A000E55EFE4F20813181FB01EA5EFE4F8081B9 -:1022B00090E004C080E090E020E030E0FA0131835B -:1022C0002083089580E189BD82E189BD09B400FEC3 -:1022D000FDCF8091D8008F7D8093D8008091E00061 -:1022E00082608093E0008091E00081FDFCCF089542 -:1022F000CF92DF92EF92FF920F931F93CF93DF93D2 -:10230000EC018B016A010E94DB12811133C0C11400 -:10231000D10439F0F60180819181081B190BC80F97 -:10232000D91FE12CF12C0115110519F18091E8005C -:1023300085FD16C08091E8008E778093E800C11477 -:10234000D10449F0F60180819181E80EF91EF182F5 -:10235000E08285E00FC00E94DB12882321F30AC0CF -:1023600089918093F10001501109FFEFEF1AFF0AE4 -:10237000DACF80E0DF91CF911F910F91FF90EF9026 -:10238000DF90CF9008952091F9013091FA0126173E -:10239000370748F06115710539F42091E8002E7770 -:1023A0002093E80001C0B90140E061157105A9F171 -:1023B0002091F201222309F443C0253009F442C0E0 -:1023C0002091E80023FD40C02091E80022FD32C0AA -:1023D0002091E80020FFE9CF4091F3002091F20026 -:1023E00030E0342BFC01CF016115710559F0283024 -:1023F000310540F481918093F100615071092F5FA4 -:102400003F4FF1CF41E02830310509F040E0209105 -:10241000E8002E772093E800C8CF4111C9CF0AC049 -:102420008091F201882361F0853061F08091E800AD -:1024300083FD0AC08091E80082FFF2CF80E008951A -:1024400082E0089583E0089581E008952091F901E4 -:102450003091FA012617370748F06115710539F4F4 -:102460002091E8002E772093E80001C0B901FC011B -:1024700020E06115710591F18091F201882309F442 -:1024800040C0853009F43FC08091E80083FD3DC025 -:102490008091E80082FD2FC08091E80080FFE9CFA5 -:1024A0002091F3008091F20090E0922B611571056C -:1024B00059F08830910540F424912093F100319631 -:1024C000615071090196F2CF21E0089709F020E0F0 -:1024D0008091E8008E778093E800CBCF2111CCCF9C -:1024E0000AC08091F201882361F0853061F080910B -:1024F000E80083FD0AC08091E80082FFF2CF80E00F -:10250000089582E0089583E0089581E00895982F6A -:10251000973058F59093E900981739F07091EC00D6 -:102520002091ED005091F00003C0242F762F50E051 -:1025300021FF19C03091EB003E7F3093EB003091CA -:10254000ED003D7F3093ED003091EB003160309332 -:10255000EB007093EC002093ED005093F00020917D -:10256000EE0027FF07C09F5FD3CF8F708093E900F5 -:1025700081E0089580E008958091F30187FF11C004 -:102580008091E80082FD05C08091F2018111F8CFB1 -:1025900011C08091E8008B770BC08091F2018823F5 -:1025A00049F08091E80080FFF8CF8091E8008E77B5 -:1025B0008093E80008952091E4003091E50095E6CD -:1025C0004091EC00842F817040FF22C08091E80090 -:1025D00080FD1CC08091F201882391F0853091F03C -:1025E0008091EB0085FD10C04091E4005091E50022 -:1025F0004217530729F39A01915011F784E0089587 -:1026000082E0089583E0089581E0089580E00895D0 -:102610004091E80042FFDECF08950E947B130E94A4 -:102620008313E0EEF0E0808181608083E8EDF0E0EC -:1026300080818F77808319BCA7EDB0E08C918E7F6D -:102640008C9380818F7E80831092F10108950F9387 -:102650001F93CF93DF930E947B130E948313C8EDD7 -:10266000D0E088818F77888388818068888388819B -:102670008F7D888319BC1092F2011092EE011092A6 -:10268000F0011092EF0100EE10E0F80180818B7FE5 -:10269000808388818160888342E060E080E00E94DE -:1026A0008712E1EEF0E080818E7F8083E2EEF0E041 -:1026B000808181608083808188608083F80180814F -:1026C0008E7F8083888180618883DF91CF911F9185 -:1026D0000F910895E8EDF0E080818F7E8083E7ED33 -:1026E000F0E080818160808384E082BF81E080931C -:1026F000F1010C942713E8EDF0E080818E7F808358 -:102700001092E20008951092DA001092E10008950C -:102710001F920F920FB60F9211242F933F934F9356 -:102720005F936F937F938F939F93AF93BF93EF9339 -:10273000FF938091E10082FF0BC08091E20082FF55 -:1027400007C08091E1008B7F8093E1000E94B40F6D -:102750008091DA0080FF1FC08091D80080FF1BC0ED -:102760008091DA008E7F8093DA008091D90080FF1B -:102770000DC080E189BD82E189BD09B400FEFDCFB5 -:1027800081E08093F2010E94850F05C019BC109270 -:10279000F2010E94970F8091E10080FF19C08091A3 -:1027A000E20080FF15C08091E2008E7F8093E200FE -:1027B0008091E20080618093E2008091D800806285 -:1027C0008093D80019BC85E08093F2010E94A20F8B -:1027D0008091E10084FF30C08091E20084FF2CC032 -:1027E00080E189BD82E189BD09B400FEFDCF809101 -:1027F000D8008F7D8093D8008091E1008F7E8093F8 -:10280000E1008091E2008F7E8093E2008091E200FF -:1028100081608093E2008091EE01882311F084E0D2 -:1028200007C08091E30087FD02C081E001C083E022 -:102830008093F2010E94A80F8091E10083FF29C0DC -:102840008091E20083FF25C08091E100877F809323 -:10285000E10082E08093F2011092EE018091E100AC -:102860008E7F8093E1008091E2008E7F8093E20072 -:102870008091E20080618093E20042E060E080E0CD -:102880000E9487128091F00088608093F0000E947F -:102890009E0FFF91EF91BF91AF919F918F917F918B -:1028A0006F915F914F913F912F910F900FBE0F90BD -:1028B0001F9018951F920F920FB60F9211242F930D -:1028C0003F934F935F936F937F938F939F93AF93B8 -:1028D000BF93CF93DF93EF93FF93C091E900CF7045 -:1028E0008091EC00D82FD17080FDD0E81092E900E3 -:1028F0008091F000877F8093F00078940E949E146E -:102900001092E9008091F00088608093F000CD2B58 -:10291000CF70C093E900FF91EF91DF91CF91BF910C -:10292000AF919F918F917F916F915F914F913F9167 -:102930002F910F900FBE0F901F9018951F93CF935C -:10294000DF93CDB7DEB7AA970FB6F894DEBF0FBE00 -:10295000CDBFE3EFF1E088E08E0F9091F10091930D -:102960008E13FBCF0E940E108091E80083FF1FC1E1 -:102970008091F3019091F401492F50E04A305105C4 -:1029800008F015C1FA01EA5AFF4F0C94B32E8038B3 -:1029900081F0823809F00BC18091F7018F7080932C -:1029A000E9008091EB0085FB882780F91092E9000F -:1029B00006C08091EF019091F00191118260909199 -:1029C000E800977F9093E8008093F1001092F10067 -:1029D000C8C0282F2D7F09F0EAC0882319F0823063 -:1029E00061F0E5C08091F501813009F0E0C09330DD -:1029F00009F080E08093F0012BC08091F5018111F6 -:102A000027C08091F7018F7009F4D1C08093E9004D -:102A10002091EB0020FF1CC0933021F48091EB004B -:102A2000806214C09091EB0090619093EB0021E0E4 -:102A300030E0A90102C0440F551F8A95E2F7409388 -:102A4000EA001092EA008091EB0088608093EB002E -:102A50001092E9008091E800877F86C08111A7C0AD -:102A60001091F5011F778091E3008078812B80938E -:102A7000E3008091E800877F8093E8000E94BC1209 -:102A80008091E80080FFFCCF8091E3008068809314 -:102A9000E300111102C082E001C083E08093F201E3 -:102AA00086C08058823008F082C08091F5019091F4 -:102AB000F6018C3D53E0950779F583E08A838AE23D -:102AC00089834FB7F894DE01139620E03EE051E28F -:102AD000E32FF0E050935700E49120FF03C0E2950C -:102AE000EF703F5FEF708E2F90E0EA3010F0C796E6 -:102AF00001C0C0968D939D932F5F243149F74FBF3E -:102B00008091E800877F8093E8006AE270E0CE0160 -:102B100001960E94C31114C0AE014F5F5F4F6091D8 -:102B2000F7010E940A11BC01892B09F440C0909161 -:102B3000E800977F9093E80089819A810E9426128D -:102B40008091E8008B778093E80031C0803879F578 -:102B50008091E800877F8093E8008091EE01809368 -:102B6000F1008091E8008E778093E8000E94BC120B -:102B70001EC081111CC09091F5019230C0F480916B -:102B8000E800877F8093E8009093EE010E94BC12DA -:102B90008091EE01811106C08091E30087FD02C0A3 -:102BA00081E001C084E08093F2010E94F50F8091E2 -:102BB000E80083FF0AC08091E800877F8093E800E7 -:102BC0008091EB0080628093EB00AA960FB6F89498 -:102BD000DEBF0FBECDBFDF91CF911F910895CF9380 -:102BE0008091F2018823A1F0C091E900CF7090910B -:102BF000EC00892F817090FD80E8C82B1092E900CD -:102C00008091E80083FD0E949E14CF70C093E9007C -:102C1000CF91089590937601809375010895E09186 -:102C20007501F0917601309721F00190F081E02D4F -:102C3000099480E00895EF92FF920F931F93CF9332 -:102C4000DF93E0917501F09176013097B1F18C013D -:102C50000280F381E02D09958091D90182FF2DC07A -:102C600080FF04C08AE197E00E941C08E80110E19F -:102C700084E1E82E87E0F82E8091D90180FF0BC017 -:102C800088811F928F93FF92EF920E94B5080F9058 -:102C90000F900F900F90115021961111EDCF809150 -:102CA000D90180FF0AC082E197E0DF91CF911F91A7 -:102CB0000F91FF90EF900C941C08DF91CF911F9122 -:102CC0000F91FF90EF900895E0917501F0917601DA -:102CD000309721F00480F581E02D0994089520912A -:102CE0007301309174018217930771F0909374010E -:102CF00080937301E0917501F0917601309721F096 -:102D00000680F781E02D099408952091710130919A -:102D100072018217930771F0909372018093710191 -:102D2000E0917501F0917601309721F00084F185F2 -:102D3000E02D0994089508950C949B160E94EB22AF -:102D40000E94920A0C94B123CF93C82F8091D9018D -:102D500082FF1EC080FF04C083E397E00E941C082E -:102D60008091D90180FF0CC01F92CF938EE297E033 -:102D70009F938F930E94B5080F900F900F900F9024 -:102D80008091D90180FF04C08CE297E00E941C086A -:102D90008C2FCF910C94410ECF92DF92EF92FF9245 -:102DA0000F931F93CF93DF93CDB7DEB72B970FB65B -:102DB000F894DEBF0FBECDBF0E94AF0A88E7C82ED1 -:102DC00081E0D82E00E010E0E02E802F0E94DB0B87 -:102DD000F60141916F01F42EF826B1F40F5F1F4FF9 -:102DE0000E30110589F78FEF89838A831B820E9439 -:102DF000F4228160782F9D838C8349815A816B8175 -:102E00008D810E946F1740C09091D90191FF04C03D -:102E10008B870E94E10B8B8520E030E04F2D50E046 -:102E2000922FBA01022E02C0759567950A94E2F7B7 -:102E300060FF24C02E83EF8221E030E0690102C0F0 -:102E4000CC0CDD1C9A95E2F790E08C219D21892B1A -:102E500009F420E028870E94F4228160782F9A8765 -:102E600089874E815F8168858A850E946F17F80186 -:102E7000E858FE4F8081C826C08206C02F5F3F4FB2 -:102E80002630310569F6AACF0E94222710917701DA -:102E90000E940F161817A1F00E940F168093770159 -:102EA0002B960FB6F894DEBF0FBECDBFDF91CF914A -:102EB0001F910F91FF90EF90DF90CF900C94A4168C -:102EC0002B960FB6F894DEBF0FBECDBFDF91CF912A -:102ED0001F910F91FF90EF90DF90CF900895CF93C7 -:102EE000DF93CDB7DEB72B970FB6F894DEBF0FBEDA -:102EF000CDBF4F83588769877A878B87DE0111960C -:102F000086E0FD0111928A95E9F785E0FE0137968A -:102F100001900D928A95E1F749815A816B817C81FC -:102F20008D819E810E94871E2B960FB6F894DEBF7E -:102F30000FBECDBFDF91CF910895CF93882309F4C1 -:102F4000C2C0C82F823859F40E940F1681FDBBC041 -:102F500089E30E9423210E94022289E30CC0833866 -:102F600079F40E940F1680FDAEC083E50E942321F4 -:102F70000E94022283E50E947621CF910C940222C6 -:102F8000843859F40E940F1682FD9DC087E40E9488 -:102F900023210E94022287E4EECF8CEF8C0F813A2E -:102FA00048F48C2F0E94B52B81118DC08C2F0E946C -:102FB0002321E3CF80E28C0F883048F4C77081E092 -:102FC00001C0880FCA95EAF70E94CB21D6CF8BE5C6 -:102FD0008C0F833078F4C53A29F0C63A31F083E893 -:102FE00090E005C081E890E002C082E890E0CF91D7 -:102FF0000C946F1688E58C0F833108F064C0C83AD2 -:1030000039F1C93A41F1CA3A49F1CB3A51F1CC3AD6 -:1030100059F1CD3A61F1C03B69F1CE3A71F1CF3A45 -:1030200079F1C13B81F1C23B89F1C33B91F1C43BD2 -:1030300099F1C53BA1F1C63BA9F1C73BB1F1C83B32 -:10304000B9F1C93BC1F1CA3BC9F180E090E038C099 -:1030500082EE90E035C089EE90E032C08AEE90E0DA -:103060002FC085EB90E02CC086EB90E029C087EB69 -:1030700090E026C08CEC90E023C08DEC90E020C066 -:1030800083E891E01DC08AE891E01AC082E991E0EE -:1030900017C084E991E014C081E292E011C083E29C -:1030A00092E00EC084E292E00BC085E292E008C09C -:1030B00086E292E005C087E292E002C08AE292E0F6 -:1030C000CF910C948516CF910895882309F44BC0B5 -:1030D000823859F40E940F1681FF45C089E30E948F -:1030E00023210E94022289E30CC0833871F40E94DC -:1030F0000F1680FF38C083E50E9423210E94022220 -:1031000083E50E9476210C940222843859F40E94AF -:103110000F1682FF28C087E40E9423210E9402220A -:1031200087E4EFCF9CEF980F913A58F390E2980F15 -:10313000983050F4877091E001C0990F8A95EAF7B2 -:10314000892F0E94D121DFCF9BE5980F933020F487 -:1031500080E090E00C946F16885A833120F480E070 -:1031600090E00C9485160895882321F00E94CB21CD -:103170000C9402220895882321F00E94D1210C94FE -:1031800002220895BF92CF92DF92EF92FF920F93A7 -:103190001F93CF93DF9300D000D000D0CDB7DEB720 -:1031A00025E0FC01DE01119601900D922A95E1F7D0 -:1031B000FC01408131810281258122952F7063813C -:1031C0007481672B09F4E7C23F3F19F44F3F09F4BC -:1031D000E2C27C0149833A8389819A812E830E94CD -:1031E000E220182FB92E0E94E1200E94A81FEB2D8B -:1031F000E295EF70F0E0E05AFF4F2E810C94B32E71 -:103200008B2D807F9B2D9F70F92E882319F0F294CF -:1032100080EFF822002349F0FF2009F469C28F2DC6 -:103220000E94DB210E94022263C2812F0E94651846 -:10323000FF2009F4B0C28F2D0E94E12126960FB61F -:10324000F894DEBF0FBECDBFDF91CF911F910F91DC -:10325000FF90EF90DF90CF90BF900C9402223B2D17 -:10326000307F8B2D8F70303211F08295807F11234B -:1032700019F0113021F12DC00023B9F0222309F4F7 -:10328000A1C1213009F09EC126960FB6F894DEBF89 -:103290000FBECDBFDF91CF911F910F91FF90EF90A7 -:1032A000DF90CF90BF900C94EB21222319F02130B6 -:1032B00009F471C28E830E94EE218E8197C1002392 -:1032C00021F0263008F067C27DC1253008F063C2C6 -:1032D0008DC1002321F0222309F474C109C22223E5 -:1032E00009F484C11AC22B2D26952695237030E04F -:1032F0002115310521F021303105D1F04CC20023D8 -:1033000021F0812F9B2D937002C080E090E02696E3 -:103310000FB6F894DEBF0FBECDBFDF91CF911F91E6 -:103320000F91FF90EF90DF90CF90BF900C946F16AD -:10333000002321F0812F9B2D937002C080E090E04C -:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA -:103350001F910F91FF90EF90DF90CF90BF900C9452 -:103360008516812F002319F00E94A82502C00E9413 -:10337000102626960FB6F894DEBF0FBECDBFDF91A4 -:10338000CF911F910F91FF90EF90DF90CF90BF9062 -:103390000C9495268B2D837009F07BC00111FBC125 -:1033A000812F829586958770880F880F912F9F7047 -:1033B000C92ED12CE12CF12C082E04C0CC0CDD1C24 -:1033C000EE1CFF1C0A94D2F714FF12C04FE050E02D -:1033D00060E070E004C0440F551F661F771F8A9598 -:1033E000D2F7CB01BA01609570958095909503C096 -:1033F00060E070E0CB012B2D269526952370422F9F -:1034000050E042305105D9F04330510569F16C2943 -:103410007D298E299F294130510551F126960FB6FD -:10342000F894DEBF0FBECDBFDF91CF911F910F91FA -:10343000FF90EF90DF90CF90BF900C94CF1F6C293E -:103440007D298E299F2926960FB6F894DEBF0FBEE0 -:10345000CDBFDF91CF911F910F91FF90EF90DF9043 -:10346000CF90BF900C94EB1F0E94CF1FC701B601F5 -:1034700026960FB6F894DEBF0FBECDBFDF91CF9179 -:103480001F910F91FF90EF90DF90CF90BF900C9421 -:10349000B31F002319F08B2D817001C086958823FE -:1034A00009F479C1812F829586958770880F880FDE -:1034B000912F9F70C92ED12CE12CF12C082E04C025 -:1034C000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA -:1034D0004FE050E060E070E004C0440F551F661FED -:1034E000771F8A95D2F7CB01BA01609570958095C8 -:1034F000909503C060E070E0CB012B2D26952695BA -:103500002370422F50E042305105D9F0433051052D -:1035100069F16C297D298E299F294130510551F18E -:1035200026960FB6F894DEBF0FBECDBFDF91CF91C8 -:103530001F910F91FF90EF90DF90CF90BF900C9470 -:10354000A9206C297D298E299F2926960FB6F894EB -:10355000DEBF0FBECDBFDF91CF911F910F91FF90C6 -:10356000EF90DF90CF90BF900C94C5200E94A920CF -:10357000C701B60126960FB6F894DEBF0FBECDBFC9 -:10358000DF91CF911F910F91FF90EF90DF90CF903F -:10359000BF900C948D20103FD1F118F4103E50F4E0 -:1035A000A2C0123F09F464C008F44DC0133F09F4EF -:1035B00074C099C01F708B2D8F710023A1F00E94E1 -:1035C0002620812F26960FB6F894DEBF0FBECDBF02 -:1035D000DF91CF911F910F91FF90EF90DF90CF90EF -:1035E000BF900C94B4180E944720812F26960FB6E6 -:1035F000F894DEBF0FBECDBFDF91CF911F910F9129 -:10360000FF90EF90DF90CF90BF900C94BB180023F9 -:10361000B1F0253008F0BFC08B2D8F7126960FB604 -:10362000F894DEBF0FBECDBFDF91CF911F910F91F8 -:10363000FF90EF90DF90CF90BF900C946C202630DD -:1036400008F0A9C0E9CF0023A9F08B2D8F71269631 -:103650000FB6F894DEBF0FBECDBFDF91CF911F91A3 -:103660000F91FF90EF90DF90CF90BF900C942620A9 -:10367000002359F38B2D8F7126960FB6F894DEBF79 -:103680000FBECDBFDF91CF911F910F91FF90EF90B3 -:10369000DF90CF90BF900C944720002399F08B2DA2 -:1036A0008F7126960FB6F894DEBF0FBECDBFDF91A7 -:1036B000CF911F910F91FF90EF90DF90CF90BF902F -:1036C0000C94112026960FB6F894DEBF0FBECDBF26 -:1036D000DF91CF911F910F91FF90EF90DF90CF90EE -:1036E000BF900C9407200023A9F0222309F4ADCF4A -:1036F000812F26960FB6F894DEBF0FBECDBFDF91A7 -:10370000CF911F910F91FF90EF90DF90CF90BF90DE -:103710000C949D17222309F4ADCF812F26960FB666 -:10372000F894DEBF0FBECDBFDF91CF911F910F91F7 -:10373000FF90EF90DF90CF90BF900C9465184B2DC9 -:103740004F70612FC7010E94BE0826960FB6F894ED -:10375000DEBF0FBECDBFDF91CF911F910F91FF90C4 -:10376000EF90DF90CF90BF900C942B1F4B2D4F709C -:10377000612FC70126960FB6F894DEBF0FBECDBFEE -:10378000DF91CF911F910F91FF90EF90DF90CF903D -:10379000BF900C94E70C26960FB6F894DEBF0FBED0 -:1037A000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1037B000CF90BF9008950E94E8210E94BD210E94F1 -:1037C00002220E94C8270E94952680E090E00E9475 -:1037D0006F1680E090E00C9485160E94D8210C941E -:1037E000DB1B0E94E220292F22952F7030E02C3025 -:1037F00031054CF42A3031056CF422503109223065 -:10380000310588F407C02C30310549F02F303105DF -:1038100031F009C0803E48F0803F29F406C093FB98 -:10382000882780F9089580E0089581E00895CF9376 -:10383000DF9300D000D01F92CDB7DEB70F900F906E -:103840000F900F900F90DF91CF910895CF93DF935A -:1038500000D000D000D0CDB7DEB726960FB6F894D2 -:10386000DEBF0FBECDBFDF91CF9108951F93CF93E1 -:10387000DF93C091860116E080918701C81799F007 -:10388000D0E01C9FF0011D9FF00D1124E857FE4F62 -:103890004081518162817381848195810E94261CBF -:1038A0002196C770E9CFDF91CF911F910895409184 -:1038B000B8015091B9016091BA017091BB0180913A -:1038C000BC019091BD010C94261C8091BD01829594 -:1038D0008F7009F054C08091BA01882309F44FC059 -:1038E00080918601A09187016091B8017091B90122 -:1038F0004091BB015091BC01B6E08A1709F43FC06A -:1039000090E041155105C1F17F3F11F46F3FA1F1E6 -:10391000B89FF001B99FF00D1124E857FE4F2181A7 -:1039200072132AC02081621327C02281211124C072 -:10393000238134812417350710F421503109241BC9 -:10394000350B283C3105C0F42091BD012F7020615A -:103950002093BD0126E0289FF001299FF00D11243E -:10396000E357FE4F80818F708061808388EB91E008 -:103970000E94C2180C94361C01968770BECF089521 -:10398000CF92DF92EF92FF920F931F93CF93DF932B -:10399000CDB7DEB762970FB6F894DEBF0FBECDBFCE -:1039A0008C0185E0F801DE011D9601900D928A954B -:1039B000E1F7D8014C9111965C91119712966C9198 -:1039C00012971396CD90DC9014973091B8017091B6 -:1039D000B9018091BB019091BC01009709F46BC1C2 -:1039E0007F3F19F43F3F09F466C1E090BA01EE2031 -:1039F00009F4C0C02091BD01C816D90628F0F6010F -:103A0000E81BF90BCF0104C0809590958C0D9D1D8E -:103A1000FF24F394883C910578F0F12C207F09F085 -:103A2000C6C07C2DD98AC88A89890E94171C88EB58 -:103A300091E00E94C218B1C0822F807F09F046C079 -:103A4000751314C0341312C0611110C02F7020619F -:103A50002093BD010E94571C88EB91E00E94C21880 -:103A60008091BD01D80115968C932EC0CD2819F1F7 -:103A70005F3F11F44F3FF9F0F62E61111CC08091A9 -:103A800086012091870136E0821709F45AC090E040 -:103A9000389FF001399FF00D1124E857FE4F7181D6 -:103AA000571306C07081471303C07281711103C0A0 -:103AB00001968770E9CFF62E662309F418C180912C -:103AC000BD0181608093BD01F12C11C1751308C047 -:103AD000341306C0611104C08091BD01D801C3C078 -:103AE0004D875E878D859E856A8B0E94F11B6A8952 -:103AF0008823E1F16623D1F12091BD01822F8295C7 -:103B00008F7090E0029774F08091B8019091B901A4 -:103B100098878F831986DB86CA862C87CE01079605 -:103B20000E94C21886E0F801A8EBB1E001900D9266 -:103B30008A95E1F70E94651C0E94571CFF24F394AC -:103B4000D6C04D875E878D859E850E94E220292FF5 -:103B500022952F7030E0223031050CF0BCC09F70F0 -:103B600009F0B6C0805E883008F4C1C0C8010E9468 -:103B7000C218E4CFC816D90608F453C0F601E81BF2 -:103B8000F90BCF01883C910508F450C0F12C7C2D35 -:103B9000D98AC88A89890E94171CE8EBF1E086E07F -:103BA000DF011D928A95E9F70E94571CA0C075138A -:103BB00014C0341312C0611110C08091BD01F8010E -:103BC0008583C8010E94C21886E0E8EBF1E0DF01BE -:103BD0001D928A95E9F7FE2C8AC04D875E878D85F8 -:103BE0009E856A8B0E94F11B6A89882309F4BECFE7 -:103BF000662309F4BBCF2091BD01822F82958F707F -:103C000090E002970CF48ECF8091B8019091B901A9 -:103C10009A8389831B82DD82CC822E83CE0101961A -:103C20007FCF809590958C0D9D1DACCFF62E662391 -:103C300009F49CCF75132EC034132CC02091BD0104 -:103C400020FD1FC0822F82958F70D9F0D801159664 -:103C50002C9315978F3049F08F5F982F9295907F16 -:103C6000822F8F70892B15968C93C8010E94C218E1 -:103C700086E0F801A8EBB1E001900D928A95E1F79A -:103C800093CF86E0F801A8EBB1E001900D928A9500 -:103C9000E1F72DC04D875E878D859E850E94F11BC3 -:103CA000811140CF8091BD0181608093BD01C80129 -:103CB0000E94C2181CC0662309F458CF4D875E8746 -:103CC0008D859E850E94F11B882309F44FCF2ACF52 -:103CD000811148CF0CC0243031050CF047CF9F70C4 -:103CE00009F440CFF8019581907F09F03BCF8F2DEB -:103CF00062960FB6F894DEBF0FBECDBFDF91CF91B5 -:103D00001F910F91FF90EF90DF90CF9008951F9338 -:103D1000CF93DF93CDB7DEB72C970FB6F894DEBF05 -:103D20000FBECDBF4F83588769877A878B879C8763 -:103D3000CE0107960E94C01C882369F08F81988568 -:103D40002A853B85232BF1F19F3F09F063C08F3F0C -:103D500009F060C037C086E0FE013796DE0111969B -:103D600001900D928A95E1F76F817885EA85FB8550 -:103D7000309741F17F3F11F46F3F21F1209187018E -:103D800030E0C9010196877099274091860150E083 -:103D90008417950709F447C069837A83FD83EC8310 -:103DA00096E0929FD001939FB00D1124A857BE4F6B -:103DB000FE01319601900D929A95E1F7809387016B -:103DC0000E94361C16E08091860190918701891728 -:103DD000C1F1189FC001112488579E4F0E94C01C3A -:103DE000882379F1E09186011E9FF0011124E857A4 -:103DF000FE4F4081518162817381848195810E944F -:103E0000261C8091860190E0019687709927809307 -:103E10008601D9CF4F81588569857A858B859C85A8 -:103E20000E94261CCFCF0E94ED1B1092870110929A -:103E30008601E8EBF1E086E0DF011D928A95E9F763 -:103E4000C1CF2C960FB6F894DEBF0FBECDBFDF9169 -:103E5000CF911F910895EF92FF920F931F93CF93ED -:103E6000DF938C01892B09F46CC0F12CEE24E394D0 -:103E7000E8012196F8018491843740F4843008F0F9 -:103E800051C0813081F0823019F15BC0853709F46F -:103E900044C0A8F19CE7980F903708F052C08F7784 -:103EA0000E94651841C00E5F1F4FFE01C49180E261 -:103EB0008C0F883048F4C7708E2D01C0880FCA95CA -:103EC000EAF70E94DB2114C08C2F0E949D172DC0A1 -:103ED0000E5F1F4FFE01C49180E28C0F883058F4B2 -:103EE000C7708E2D01C0880FCA95EAF70E94E121A4 -:103EF0000E9402221AC08C2F0E94651816C00E5F05 -:103F00001F4FFE01C491CC2381F08FE99FE0019700 -:103F1000F1F700C00000C150F6CF0E5F1F4FFE0149 -:103F2000F49003C00E949D178E018F2D882309F401 -:103F30009FCFEFE9FFE03197F1F700C0000081501B -:103F4000F5CFDF91CF911F910F91FF90EF900895E2 -:103F500008956093C2017093C3018093C40190934C -:103F6000C5010C94DB1B0F931F930091C2011091AC -:103F7000C3012091C4013091C501DC01CB01802B2C -:103F8000912BA22BB32B8093C2019093C301A093DA -:103F9000C401B093C5011F910F910C94DB1B0F93CB -:103FA0001F930091C2011091C3012091C40130916F -:103FB000C501DC01CB0180239123A223B32380938D -:103FC000C2019093C301A093C401B093C5011F9196 -:103FD0000F910C94DB1B0F931F930091C201109162 -:103FE000C3012091C4013091C501DC01CB018027C0 -:103FF0009127A227B3278093C2019093C301A09376 -:10400000C401B093C5011F910F910C94DB1B10925A -:10401000BE011092BF011092C0011092C1010C9418 -:10402000DB1B41E050E060E070E004C0440F551F2E -:10403000661F771F8A95D2F74093BE015093BF0148 -:104040006093C0017093C1010C94DB1B41E050E010 -:1040500060E070E004C0440F551F661F771F8A950B -:10406000D2F78091BE019091BF01A091C001B091A3 -:10407000C101482B592B6A2B7B2B4093BE015093D7 -:10408000BF016093C0017093C1010C94DB1B41E040 -:1040900050E060E070E004C0440F551F661F771FBA -:1040A0008A95D2F740955095609570958091BE01A4 -:1040B0009091BF01A091C001B091C1014823592343 -:1040C0006A237B234093BE015093BF016093C001DC -:1040D0007093C1010C94DB1B41E050E060E070E0A4 -:1040E00004C0440F551F661F771F8A95D2F7809131 -:1040F000BE019091BF01A091C001B091C1014827BC -:1041000059276A277B274093BE015093BF016093D4 -:10411000C0017093C1010C94DB1B0F931F9300919E -:10412000BE011091BF012091C0013091C101DC019D -:10413000CB01802B912BA22BB32B8093BE019093AC -:10414000BF01A093C001B093C1011F910F910C94C6 -:10415000DB1B0F931F930091BE011091BF012091B3 -:10416000C0013091C101DC01CB0180239123A22346 -:10417000B3238093BE019093BF01A093C001B0937D -:10418000C1011F910F910C94DB1B0F931F930091A2 -:10419000BE011091BF012091C0013091C101DC012D -:1041A000CB0180279127A227B3278093BE0190934C -:1041B000BF01A093C001B093C1011F910F910C9456 -:1041C000DB1B0895CF92DF92EF92FF920F931F9324 -:1041D000CF93DF938C01C090C201D090C301E090D7 -:1041E000C401F090C5014091BE015091BF016091A2 -:1041F000C0017091C101C42AD52AE62AF72ACFE16D -:10420000D0E0D701C6010C2E04C0B695A7959795AE -:1042100087950A94D2F780FF07C0B8018C2F0E94BF -:104220000A0D8130910531F4219758F7B80180E0EB -:104230000E940A0DDF91CF911F910F91FF90EF9097 -:10424000DF90CF90089590910C01992321F09091E7 -:104250000D01911109C020910E0130910F01F9015A -:1042600032969FEF40E030C0982F969596959695A0 -:104270009F30A0F4E0910E01F0910F01E90FF11DC4 -:10428000877021E030E0A90102C0440F551F8A95D4 -:10429000E2F7CA019181892B818308959091D90118 -:1042A00090FF23C01F928F9384E697E09F938F9394 -:1042B0000E94B5080F900F900F900F9008959F3FA8 -:1042C00039F04F5F4E3041F051915813F8CF0DC087 -:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 -:1042E000F11D97FDFA9582830895089590910C0130 -:1042F000992321F090910D01911109C020910E0197 -:1043000030910F01F9013296205F3F4F30C0982F56 -:104310009695969596959F30A8F4E0910E01F091B0 -:104320000F01E90FF11D877021E030E0A90102C003 -:10433000440F551F8A95E2F7CA0180959181892320 -:10434000818308959091D90190FF16C01F928F9399 -:1043500086E497E09F938F930E94B5080F900F908B -:104360000F900F9008953196E217F30729F090818E -:104370009813F9CF1082F7CF089581E090E0E09193 -:104380000E01F0910F01E80FF91F108201968031A4 -:104390009105A9F708959091D801892B8093D801B0 -:1043A000089580959091D80189238093D80108952C -:1043B0001092D80108959091D701892B8093D7014D -:1043C000089580959091D70189238093D70108950E -:1043D0001092D70108958093C60108951092C601E6 -:1043E000089580910E0190910F01FC0131969C017E -:1043F000205F3F4F80E0919191118F5FE217F307AB -:10440000D1F70895E0910E01F0910F018091D8014C -:104410008083E0910E01F0910F0190818091D7018E -:10442000892B80838091C601882361F0E0910E0181 -:10443000F0910F019081892B80830E94F1218111DD -:104440001092C60180910E0190910F010C941B16E1 -:1044500090933B0180933A010895CF92DF92EF92BF -:10446000FF926C01EE24FF24C114D104E104F10495 -:1044700021F0C701B60120E101C020E0C72ED82EEF -:10448000E92EFF24C114D104E104F10419F0285FDE -:10449000C701B6016B017C0154E0F694E794D79410 -:1044A000C7945A95D1F7C114D104E104F10419F06D -:1044B0002C5FC701B6016B017C0142E0F694E794E2 -:1044C000D794C7944A95D1F7C114D104E104F104FB -:1044D00019F02E5FC701B601DC01CB01B695A79597 -:1044E00097958795892B8A2B8B2B09F02F5F822F2D -:1044F000FF90EF90DF90CF9008958295982F9C7C4D -:10450000392F36953695282F237344E0249FC00118 -:104510001124932F982B292F2A7A2695892F857578 -:10452000880F822B08951F93CF93DF931F92CDB7EF -:10453000DEB799830E947D22182F9981892F0E94CE -:104540007D22212F30E0322F2227A901482BCA01DA -:104550000F90DF91CF911F9108958091F2018430E7 -:1045600009F11092DA0120E488E190E00FB6F894A6 -:10457000A895809360000FBE2093600083B7817F71 -:10458000846083BF83B7816083BF7894889583B745 -:104590008E7F83BF88E10FB6F894809360001092FD -:1045A00060000FBE089508950895CF930E94D3220E -:1045B0000E94AF0A0E94D422C0E08C2F0E94DB0B25 -:1045C000811104C0CF5FCE30C1F701C081E0CF912F -:1045D00008950C94ED1B82E084BD93E095BD9AEFA5 -:1045E00097BD80936E0008952FB7F8948091DB01FA -:1045F0009091DC01A091DD01B091DE012FBF089503 -:10460000CF92DF92EF92FF920F931F932FB7F89400 -:104610004091DB015091DC016091DD017091DE0180 -:104620002FBF6A017B01EE24FF248C0120E030E0E3 -:10463000C016D106E206F30610F4415051099A0162 -:10464000281B390BC9011F910F91FF90EF90DF904C -:10465000CF9008951F920F920FB60F9211248F934F -:104660009F93AF93BF938091DB019091DC01A09168 -:10467000DD01B091DE010196A11DB11D8093DB012A -:104680009093DC01A093DD01B093DE01BF91AF9167 -:104690009F918F910F900FBE0F901F9018950E94C1 -:1046A0000D13F8942FEF87EA91E621508040904057 -:1046B000E1F700C0000087E090EBDC018093FB0194 -:1046C0009093FC01A093FD01B093FE019CE088E172 -:1046D0000FB6F894A895809360000FBE9093600089 -:1046E000FFCFEF92FF920F931F93CF93DF93D82FBB -:1046F000C0E08C2F0E94DB0B00E010E0E82EF12CD4 -:10470000C701002E02C0959587950A94E2F780FDB7 -:1047100006C00F5F1F4F0630110591F709C0602FCB -:104720007C2F80E00E94E80CD813F3CF81E004C016 -:10473000CF5FCE30F1F680E0DF91CF911F910F91E6 -:10474000FF90EF900895CF93C82F8CE20E947123C1 -:10475000882321F08C2FCF910C94712380E0CF918E -:104760000895CF930E940025811102C00E94E62483 -:1047700089E897E00E941C08C5E6C15049F00E94F4 -:10478000AF0A8FE39CE90197F1F700C00000F5CF75 -:1047900082E897E00E941C0889E20E94A32381110D -:1047A00013C18AE20E94A32381110E94E62485E0BE -:1047B0000E94A32381110E944F230E940B25809306 -:1047C000D90187E00E94A3238823A9F18BE10E94ED -:1047D000A323882351F08091D90181FB222720F95E -:1047E00091E0922790FB81F90EC08EE00E94A323F6 -:1047F000882361F08091D90182FB222720F991E082 -:10480000922790FB82F98093D90115C080E10E9424 -:10481000A3239091D901882341F093FB222720F90B -:1048200081E0822780FB93F904C0892F809580FB6B -:1048300090F99093D9018091D9010E940F250E948F -:104840001D258093EC0180EE0E94A323882341F074 -:104850008091EC01982F909590FB80F98093EC016A -:1048600089E30E94A323882359F08091EC0181FB06 -:10487000222720F991E0922790FB81F98093EC01A7 -:1048800082EE0E94A323882359F08091EC0182FBE1 -:10489000222720F991E0922790FB82F98093EC0186 -:1048A00086EE0E94A323882359F08091EC0183FBBC -:1048B000222720F991E0922790FB83F98093EC0165 -:1048C00083EE0E94A323882359F08091EC0184FB9E -:1048D000222720F991E0922790FB84F98093EC0144 -:1048E00085E30E94A323882359F08091EC0185FB86 -:1048F000222720F991E0922790FB85F98093EC0123 -:1049000081E30E94A323882359F08091EC0186FB68 -:10491000222720F991E0922790FB86F98093EC0101 -:1049200081E10E94A323882359F08091EC0187FB49 -:10493000222720F991E0922790FB87F98093EC01E0 -:104940008091EC010E9421258091EC0187FB882752 -:1049500080F980930D0187E20E94A323C82F8EE186 -:104960000E94A3238111C2608FE10E94A3238111C1 -:10497000C46080E20E94A3238111C86081E20E948A -:10498000A3238111C06182E20E94A3238111C0622E -:1049900083E20E94A3238111C06484E20E94A323C6 -:1049A000882311F0C06802C0CC2329F08C2F0E940C -:1049B00018256C2F03C00E941425682F70E080E03A -:1049C00090E0CF910C94A91FCF9108956DEE7EEFEA -:1049D00080E090E00E94E92E60E082E090E00E949A -:1049E000DB2E60E083E090E00E94DB2E60E084E05C -:1049F00090E00E94DB2E60E085E090E00C94DB2EDE -:104A000080E090E00E94D52E21E08D3E9E4F09F07F -:104A100020E0822F089582E090E00C94CD2E682F44 -:104A200082E090E00C94DB2E83E090E00C94CD2E9D -:104A3000682F83E090E00C94DB2E84E090E00C94EF -:104A4000CD2E682F84E090E00C94DB2E8091E10164 -:104A500080FF0BC06091130185E0689FB0011124B5 -:104A600075956795759567952BC081FF09C0609115 -:104A7000130185E0689FB00111247595679520C0EA -:104A800082FF07C06091130185E0689FB001112487 -:104A900017C09091E2019923D1F06091120196170D -:104AA00088F72091130185E0289F90011124929F9F -:104AB000A001939F500D112470E0CA010E949F2E07 -:104AC0006038710540F46115710539F002C065E088 -:104AD00070E0862F08958FE7089581E00895809112 -:104AE000E10180FF08C06091110170E07595679544 -:104AF0007595679521C081FF06C06091110170E036 -:104B00007595679519C082FF04C06091110170E02E -:104B100010C09091E2019923C1F0609110019617A5 -:104B2000A0F780911101899FC001112470E00E94BB -:104B30009F2E6038710528F46115710521F0862FCC -:104B400008958FE7089581E0089561E070E0F4CF63 -:104B5000803F21F40E942625819504C0813F29F4DD -:104B60000E9426258093E5010895823F21F40E944A -:104B70002625819504C0833F29F40E942625809331 -:104B8000E4010895893F19F40E946F2505C08A3F0A -:104B900031F40E946F2581958093E60108958B3F43 -:104BA00021F40E946F25819504C08C3F29F40E9456 -:104BB0006F258093E7010895843F21F48091E301FC -:104BC000816017C0853F21F48091E301826011C0AC -:104BD000863F21F48091E30184600BC0873F21F47C -:104BE0008091E301886005C0883F31F48091E30142 -:104BF00080618093E30108958D3F21F48091E1016C -:104C000081600BC08E3F21F48091E101826005C07C -:104C10008F3F29F48091E10184608093E101089540 -:104C2000803F39F48091E50187FF6CC01092E50167 -:104C300069C0813F29F48091E5011816BCF362C078 -:104C40009091E401823F29F497FF5CC01092E40147 -:104C500059C0833F19F41916CCF354C0893F41F46D -:104C60008091E60118160CF04DC01092E6014AC082 -:104C70008A3F29F48091E60187FF44C0F6CF8B3F3D -:104C800039F48091E70187FF3DC01092E7013AC0F7 -:104C90008C3F29F48091E7011816BCF333C0843FA0 -:104CA00021F48091E3018E7F17C0853F21F480912C -:104CB000E3018D7F11C0863F21F48091E3018B7F5A -:104CC0000BC0873F21F48091E301877F05C0883FB7 -:104CD00031F48091E3018F7E8093E30113C08D3F17 -:104CE00021F48091E1018E7F0BC08E3F21F48091F1 -:104CF000E1018D7F05C08F3F29F48091E1018B7F19 -:104D00008093E1018091E40181110EC08091E50161 -:104D100081110AC08091E601811106C08091E701EE -:104D2000811102C01092E20108958091D90183FFA0 -:104D30007EC085EC97E00E941C088091E3011F92E1 -:104D40008F9380EC97E09F938F930E94B5088EEB32 -:104D500097E00E941C088091E401282F332727FD4B -:104D600030953F938F938BEB97E09F938F930E94A7 -:104D7000B50889EB97E00E941C088091E501282F77 -:104D8000332727FD30953F938F9386EB97E09F93D2 -:104D90008F930E94B50884EB97E00E941C088091D5 -:104DA000E601282F332727FD30953F938F9381EB22 -:104DB00097E09F938F930E94B5088FEA97E00E9437 -:104DC0001C088091E701282F332727FD30953F935A -:104DD0008F938CEA97E09F938F930E94B50889EA9E -:104DE00097E00E941C088091E2011F928F9386EA4F -:104DF00097E09F938F930E94B50884EA97E00E9402 -:104E00001C088091E1011F928F9381EA97E09F93A4 -:104E10008F930E94B5088EE997E00E941C088DB719 -:104E20009EB74C960FB6F8949EBF0FBE8DBF83EE13 -:104E300091E00E9464160E94F4229093E001809316 -:104E4000DF0108951F93CF93DF938091DF0190914D -:104E5000E0010E940023AC019091E201992321F02E -:104E60002091140130E006C0209115018AE0289FAE -:104E7000900111244217530708F486C08091E40181 -:104E8000C091E501D091E6011091E701811107C0C1 -:104E9000C11176C0D11174C0111172C075C09F3F8D -:104EA00019F09F5F9093E201181624F40E942625C2 -:104EB0008093E4018091E40187FF05C00E942625CC -:104EC00081958093E4011C1624F40E94262580938A -:104ED000E5018091E50187FF05C00E9426258195A7 -:104EE0008093E5016091E401662339F1C091E50109 -:104EF000CC2319F1772767FD7095872F972F0E9494 -:104F0000A42D23E333E343E35FE30E94082E0E94D2 -:104F1000712D6093E4016C2F772767FD7095872FC3 -:104F2000972F0E94A42D23E333E343E35FE30E9422 -:104F3000082E0E94712D6093E5011D1624F40E9435 -:104F40006F258093E6018091E60187FF05C00E94EE -:104F50006F2581958093E601111624F40E946F2538 -:104F60008093E7018091E70187FF05C00E946F25CC -:104F700081958093E701DF91CF911F910C94952645 -:104F80009F3F09F08ECF96CFDF91CF911F9108956B -:104F9000E3EEF1E085E0DF011D928A95E9F71092DA -:104FA000E2011092E101089588EE99E00E941C0848 -:104FB0001F9281E08F931F9285E08F938AE999E099 -:104FC0009F938F930E94B5080F900F900F900F90B2 -:104FD0000F900F9008958330E9F128F4813061F04B -:104FE000823009F10895853009F462C008F449C09F -:104FF000863009F474C0089580911501262F30E0A1 -:10500000280F311D2F3F310524F4680F60931501DF -:1050100003C08FEF80931501809115011F928F932C -:1050200083ED98E072C080911401262F30E0280FA4 -:10503000311D2F3F310524F4680F6093140103C024 -:105040008FEF80931401809114011F928F9381EC54 -:1050500098E05BC080911301262F30E0280F311DAE -:105060002F3F310524F4680F6093130103C08FEFC5 -:1050700080931301809113011F928F938EEA98E021 -:1050800044C080911201262F30E0280F311D2F3FA0 -:10509000310524F4680F6093120103C08FEF8093F1 -:1050A0001201809112011F928F9389E998E02DC01F -:1050B00080911101262F30E0280F311D2F3F31053F -:1050C00024F4680F6093110103C08FEF80931101E6 -:1050D000809111011F928F9380E898E016C0809113 -:1050E0001001262F30E0280F311D2F3F310524F409 -:1050F000680F6093100103C08FEF809310018091BF -:1051000010011F928F9385E698E09F938F930E94E2 -:10511000B5080F900F900F900F900895833081F194 -:1051200028F4813059F08230D1F00895853009F4A7 -:1051300049C0B8F1863009F456C008958091150130 -:10514000681720F4861B8093150102C01092150188 -:10515000809115011F928F9386E598E054C080914D -:105160001401681720F4861B8093140102C010926A -:105170001401809114011F928F9384E498E043C03E -:1051800080911301681720F4861B8093130102C0DD -:1051900010921301809113011F928F9381E398E085 -:1051A00032C080911201681720F4861B809312018F -:1051B00002C010921201809112011F928F938CE114 -:1051C00098E021C080911101681720F4861B80931C -:1051D000110102C010921101809111011F928F9351 -:1051E00083E098E010C080911001681720F4861BBE -:1051F0008093100102C010921001809110011F9243 -:105200008F9388EE97E09F938F930E94B5080F903D -:105210000F900F900F900895CF93C82F1F928F93E8 -:105220008DEE9AE09F938F930E94B50881E090E005 -:10523000A0E0B0E0BC01CD0104C0660F771F881F5D -:10524000991FCA95D2F70E94A91F0F900F900F9037 -:105250000F90CF910C94ED1BCF938D3109F465C065 -:10526000B0F58E3009F4CCC100F5873009F49BC14C -:10527000A8F4863009F06DC28091D901817F8E7FBC -:105280008093D90182EF9AE00E941C0884E39FE09A -:105290000E941C0881E08093E90180C1883009F4F4 -:1052A0004FC08B3009F47CC154C2863109F4F0C17F -:1052B00038F4803109F4B8C1813109F430C249C2EF -:1052C000893109F4CEC18B3109F486C142C28533DC -:1052D00009F437C248F4873209F433C208F433C200 -:1052E000893209F42EC235C2833438F48A3308F087 -:1052F0002CC2883309F454C12CC2833409F421C26E -:10530000883409F026C20E94ED1B83E29FE00E94D0 -:105310001C089FEF23ED80E3915020408040E1F78F -:1053200000C000000E944F2339C183E49FE00E9427 -:105330001C080E942B2D0E940F160E94410E2EC1A8 -:1053400088E39FE00E941C0883E09DE00E941C0807 -:105350000E9414251F928F9380E09DE09F938F936E -:105360000E94B5088EEF9CE00E941C080E940B254D -:10537000C82F8BEE9CE00E941C081F92CF9386EEF4 -:105380009CE09F938F930E94B50884EE9CE00E945E -:105390001C088AED9CE00E941C088C2F81701F92D3 -:1053A0008F9387ED9CE09F938F930E94B50885EDC6 -:1053B0009CE00E941C088BEC9CE00E941C08C1FB36 -:1053C000882780F91F928F9388EC9CE09F938F939E -:1053D0000E94B50886EC9CE00E941C088AEB9CE0C9 -:1053E0000E941C08C2FB882780F91F928F9387EBCD -:1053F0009CE09F938F930E94B50885EB9CE00E94F0 -:105400001C088CEA9CE00E941C08C3FBCC27C0F956 -:105410001F92CF9389EA9CE09F938F930E94B508D7 -:1054200087EA9CE00E941C080E941D25C82F83E982 -:105430009CE00E941C081F92CF938EE89CE09F93F3 -:105440008F930E94B5088CE89CE00E941C0883E7BB -:105450009CE00E941C088C2F81701F928F9380E724 -:105460009CE09F938F930E94B5088DB79EB780965E -:105470000FB6F8949EBF0FBE8DBF8EE69CE00E94D3 -:105480001C0887E59CE00E941C08C1FB882780F966 -:105490001F928F9384E59CE09F938F930E94B508A1 -:1054A00082E59CE00E941C0880E49CE00E941C08AD -:1054B000C2FB882780F91F928F938DE39CE09F9316 -:1054C0008F930E94B5088BE39CE00E941C0889E240 -:1054D0009CE00E941C08C3FB882780F91F928F93D1 -:1054E00086E29CE09F938F930E94B50884E29CE043 -:1054F0000E941C088AE19CE00E941C08C4FB8827CB -:1055000080F91F928F9387E19CE09F938F930E9475 -:10551000B50885E19CE00E941C0883E09CE00E94A5 -:105520001C08C5FB882780F91F928F9380E09CE0C0 -:105530009F938F930E94B5088EEF9BE00E941C08FA -:1055400082EE9BE00E941C08C6FB882780F91F9210 -:105550008F938FED9BE09F938F930E94B5088DED05 -:105560009BE00E941C0885ED9BE00E941C08C7FB85 -:10557000CC27C0F91F92CF9382ED9BE09F938F932E -:105580000E94B50880ED9BE00E941C088DB79EB775 -:105590004C960FB6F8949EBF0FBE8DBFC1E0DEC023 -:1055A00089E19BE05BC08091D901C82FC17080FF69 -:1055B00009C086E19FE00E941C088091D901817F8B -:1055C0008E7F47C08AE09FE00E941C088091D9012D -:1055D00081608093D901E2CF9091D90191FBCC27D2 -:1055E000C0F981E0C827892FC0FB81F98093D901D8 -:1055F000CC2319F08DEF9EE027C08FEE9EE02EC0E9 -:105600009091D90192FBCC27C0F981E0C827892F5E -:10561000C0FB82F98093D901CC2319F080EE9EE083 -:1056200013C080ED9EE01AC09091D90193FBCC2766 -:10563000C0F981E0C827892FC0FB83F98093D90185 -:10564000CC2351F084EC9EE00E941C088091D9018B -:1056500081608093D90182C087EB9EE00E941C0884 -:105660009DCF88EA9EE00E941C088CE79EE00E9485 -:105670001C088FE39EE00E941C0882E19EE00E94CD -:105680001C088EEC9DE00E941C0883EA9DE0E6CF9A -:1056900085E99DE00E941C080E940F161F928F93BF -:1056A0008BE79DE09F938F930E94B50880910C013A -:1056B0001F928F9384E69DE09F938F930E94B5087D -:1056C000809170011F928F9381E59DE09F938F934E -:1056D0000E94B50880910D011F928F938EE39DE08B -:1056E0009F938F930E94B5088091DB019091DC011C -:1056F000A091DD01B091DE01BF93AF939F938F9393 -:105700008AE29DE09F938F930E94B5088DB79EB764 -:1057100046960FB6F8949EBF0FBE8DBF3FCF0E9436 -:10572000ED1BC0910D0181E0C827C0930D01CC2372 -:1057300029F080E29DE00E941C0810C085E19DE0F8 -:105740008DCF80E003C08D5101C089530E940C2988 -:1057500025CF83E19DE00E941C08C0E08C2FCF91F3 -:10576000089580E0089580E00895CF93C82F809138 -:10577000E901813081F020F0823009F44FC045C149 -:10578000E0910E01F0910F018081813169F0823248 -:1057900009F03DC109C0E0910E01F0910F01808137 -:1057A000813111F0823261F48C2F0E94B12B811172 -:1057B00004C08C2F0E942C292FC081E090E02CC0C7 -:1057C0008C2F0E94B32B811126C0C431E1F070F4FC -:1057D000CB3081F0C031D1F40E94D42785EE9AE01D -:1057E0000E941C0882E08093E90115C0C93259F07B -:1057F000C83361F482EF9AE00E941C0889EE9AE0B7 -:105800000E941C0808C01092E90103C183EE9AE0CF -:105810000E941C08FEC081E08170FDC0C43220F5EA -:10582000CE3108F0C0C0CB3099F1C8F4C73009F0D0 -:10583000D2C08AE08093150194E19093140193E023 -:10584000909313018093120188E08093110188E204 -:105850008093100189E899E00E941C08BFC0C33101 -:1058600049F1C431C1F0B7C0CB3409F4A9C028F460 -:10587000C93289F0C83361F0AEC0C13509F49EC0A9 -:10588000C23509F499C0CE3409F0A5C06AE09EC0C3 -:105890000E94D427A3C08091E801882319F01092B8 -:1058A000E8019CC086E999E00E941C0881E0809391 -:1058B000E901B1C080E799E00E941C088EE599E0FB -:1058C0000E941C08809115011F928F938BE599E02F -:1058D0009F938F930E94B50889E599E00E941C0868 -:1058E00087E499E00E941C08809114011F928F9315 -:1058F00084E499E09F938F930E94B50882E499E035 -:105900000E941C0883E399E00E941C088091130107 -:105910001F928F9380E399E09F938F930E94B50825 -:105920008EE299E00E941C088DE199E00E941C081B -:10593000809112011F928F938AE199E09F938F9338 -:105940000E94B50888E199E00E941C0883E099E074 -:105950000E941C08809111011F928F9380E099E0B2 -:105960009F938F930E94B5088EEF98E00E941C08C9 -:1059700087EE98E00E941C08809110011F928F937F -:1059800084EE98E09F938F930E94B50882EE98E092 -:105990000E941C088DB79EB748960FB6F8949EBF1C -:1059A0000FBE8DBF1BC0CE51EC2FF0E0E15DFE4F6E -:1059B00080818093E80112C061E003C061E006C00D -:1059C0006AE08091E8010E94EB2708C08091E8011D -:1059D0000E948E2803C087E899E013C08091E801F7 -:1059E000882369F01F928F9381E899E09F938F93AA -:1059F0000E94B5080F900F900F900F9004C08EE793 -:105A000099E00E941C0881E006C01092E90180E044 -:105A100002C080E001CFCF910895E1E8F0E08081FD -:105A2000886080838081816080838FB7F89493E061 -:105A30009093890090ED909388008FBF0895EFE6D2 -:105A4000F0E08081826080830895EFE6F0E080815D -:105A50008D7F80830895EFE6F0E0908182E08927D2 -:105A6000808308951F920F920FB60F9211242F93E7 -:105A70003F934F935F936F937F938F939F93AF93D6 -:105A8000BF93EF93FF938091EA019091EB01019610 -:105A90009093EB018093EA01811103C082E00E94A0 -:105AA000410EE091EB01E695E695F0E0ED5AF04FFE -:105AB000E4918091EA018E1303C080E00E94410EC0 -:105AC000FF91EF91BF91AF919F918F917F916F91D6 -:105AD0005F914F913F912F910F900FBE0F901F90AC -:105AE000189504D06894B1118DC0089570D088F0D5 -:105AF0009F5790F0B92F9927B751A0F0D1F0660FBA -:105B0000771F881F991F1AF0BA95C9F712C0B130D4 -:105B100081F077D0B1E0089574C0672F782F88277F -:105B2000B85F39F0B93FCCF3869577956795B39513 -:105B3000D9F73EF490958095709561957F4F8F4F82 -:105B40009F4F0895E89409C097FB3EF49095809587 -:105B5000709561957F4F8F4F9F4F9923A9F0F92F33 -:105B600096E9BB279395F695879577956795B795B1 -:105B7000F111F8CFFAF4BB0F11F460FF1BC06F5F97 -:105B80007F4F8F4F9F4F16C0882311F096E911C0A9 -:105B9000772321F09EE8872F762F05C0662371F0CA -:105BA00096E8862F70E060E02AF09A95660F771FDE -:105BB000881FDAF7880F9695879597F9089557FD0E -:105BC0009058440F551F59F05F3F71F04795880F6B -:105BD00097FB991F61F09F3F79F087950895121602 -:105BE00013061406551FF2CF4695F1DF08C01616AE -:105BF00017061806991FF1CF86957105610508945F -:105C00000895E894BB2766277727CB0197F9089575 -:105C10000BD078C069D028F06ED018F0952309F029 -:105C20005AC05FC01124EECFCADFA0F3959FD1F315 -:105C3000950F50E0551F629FF001729FBB27F00D3A -:105C4000B11D639FAA27F00DB11DAA1F649F66278F -:105C5000B00DA11D661F829F2227B00DA11D621FDE -:105C6000739FB00DA11D621F839FA00D611D221F98 -:105C7000749F3327A00D611D231F849F600D211D7C -:105C8000822F762F6A2F11249F5750408AF0E1F01F -:105C900088234AF0EE0FFF1FBB1F661F771F881F68 -:105CA00091505040A9F79E3F510570F014C0AACF03 -:105CB0005F3FECF3983EDCF3869577956795B79553 -:105CC000F795E7959F5FC1F7FE2B880F911D96957D -:105CD000879597F9089597F99F6780E870E060E0ED -:105CE00008959FEF80EC089500240A941616170675 -:105CF00018060906089500240A94121613061406BD -:105D000005060895092E0394000C11F4882352F01F -:105D1000BB0F40F4BF2B11F460FF04C06F5F7F4FD7 -:105D20008F4F9F4F0895991B79E004C0991F9617D4 -:105D300008F0961B881F7A95C9F78095089597FB00 -:105D4000072E16F4009407D077FD09D00E94B92ED3 -:105D500007FC05D03EF4909581959F4F089570956E -:105D600061957F4F0895EE0FFF1F0590F491E02D90 -:105D70000994AA1BBB1B51E107C0AA1FBB1FA61792 -:105D8000B70710F0A61BB70B881F991F5A95A9F7E4 -:105D900080959095BC01CD010895F999FECF92BDF3 -:105DA00081BDF89A992780B50895A8E1B0E042E056 -:105DB00050E00C94F02E262FF999FECF1FBA92BD19 -:105DC00081BD20BD0FB6F894FA9AF99A0FBE0196DC -:105DD00008950E94DB2E272F0C94DC2EDC01CB01D2 -:105DE000FC01F999FECF06C0F2BDE1BDF89A3196EB -:105DF00000B40D9241505040B8F70895F894FFCF89 -:105E00002002420E330F100FDC0EA80E0101C70155 -:105E100028080A03140A3F4D362039D30686065057 -:105E2000063006F7056A0583059C05B505D505010D -:0A5E3000020304050607080900003C +:100000000C948E080C94D2080C94D2080C94D2084C +:100010000C94D2080C94D2080C94D2080C94D208F8 +:100020000C94D2080C94D2080C94D1140C94A315FF +:100030000C94D2080C94D2080C94D2080C94D208D8 +:100040000C94D2080C947D2E0C94D2080C94D208F7 +:100050000C94D2080C9475240C94D2080C94D208F9 +:100060000C94D2080C94D2080C94D2080C94D208A8 +:100070000C94D2080C94D2080C94D2080C94D20898 +:100080000C94D2080C94D2080C94D2080C94D20888 +:100090000C94D2080C94D2080C94D2080C94D20878 +:1000A0000C94D2080C94D2080C94D20890099A09A6 +:1000B000B209CA09120A180A390A1E0A340A2A0A97 +:1000C0002F0A240AFA09E2093E0A101632162017EE +:1000D0003216201777169A162017EF160217491AAC +:1000E000491A781A781ABB1AF91A121D121D121B16 +:1000F000121D131C131CE61C121D121DFD1C01E118 +:100100000137023702E10138023801E201250225F8 +:1001100002E20001E10137023702E1013802380151 +:10012000E10130023002E10001E10137023702E172 +:100130000138023801E10107020702E1000135023E +:1001400035012002200001E10137023702E10138C8 +:10015000023801E10125022502E10001E101360238 +:100160003602E10138023801E10125022502E100F1 +:1001700001E10136023602E10138023801E10126CF +:10018000022602E10001E10137023702E1013802F3 +:100190003801E10126022602E10002E002E201301C +:1001A00002300002E002E20001E001E20002E002AF +:1001B000E3016402640002E002E30001E001E30005 +:1001C00002E002E2012E022E02E10002E002E10260 +:1001D000E20001E001E101E20002E001E3010602C8 +:1001E0000602E30002E00001E00002E001E3011981 +:1001F000021902E30002E00001E0000000F0A1F0BB +:10020000A329002B00E200E100358100001E00144C +:100210000004001D710D304D831F001A0016001BD5 +:10022000000C304C002000080007000600E1042A02 +:10023000002100150009001900E1084A00220017FA +:10024000000A000500000003300130E3000000E276 +:1002500000000002540230E7000000E60000000445 +:100260005423001C000B00110000002E7F240018F6 +:10027000000D00100050004B0025000C000E003651 +:100280000052002C00260012000F003700510028F9 +:100290000027001300330038714F004E002D002F4F +:1002A000003474E50031810000010001000100010B +:1002B00000010000003A003500310001000100019A +:1002C000003B0035022102350001004C003C001EBD +:1002D0000224062202010001003D002D0224022416 +:1002E00004010001003E000100370011040000017C +:1002F000000100010000000100000001000E3001BB +:100300000000000100000001003F00240624022339 +:100310000200000100400022042502350001000116 +:100320000041002304260235023700010042002468 +:100330000425041F021E020100430031002604317F +:1003400002010001004400450001002D02010000EF +:100350000001000100010001000100000001000196 +:100360000001000100010001000100F400F200FBA7 +:1003700000010001000100F000F100FA000100019D +:10038000000100F500F300FC00010001000100F98C +:1003900000FA00F600000001000100010000000169 +:1003A0000000000100A800010000000100000001A1 +:1003B0000001000100A900AA0000000100010001E5 +:1003C000000100010001000100010001000100AC7A +:1003D000000100B600010001000100AB0050000167 +:1003E00000010001000100520051000100AE0001B7 +:1003F00000010001004F00000001000100010001A8 +:1004000000010000000100010001000100010001E5 +:1004100000010001000100010001000100010001D4 +:1004200000010001000100010001000100010001C4 +:1004300000010001000100010001000100000001B5 +:100440000001000100000001000000010004300173 +:1004500000000001000000010005300630093001F5 +:1004600000000001000A300B3008300100010001DB +:10047000000100073001000100010001000100013E +:100480000001000100010001000100010001000164 +:100490000001000100010001000100010001000055 +:1004A0000001000100010001000100000001000145 +:1004B00000010001000100010001000100500001E5 +:1004C0000001000100010052005100010001000183 +:1004D00000010001004F00010001000100010001C6 +:1004E0000001000100000001000100010000000106 +:1004F00000000001000100010000000100000001F7 +:10050000003F00520051002302000001004000247F +:100510000021001E00270001004100250022001FCD +:1005200000370001004200260023002000270001C0 +:10053000004300300230002402270201004400453D +:1005400000380001000100000001000100E100018D +:1005500000E0000000010001000100010001003D79 +:100560000001000100010001000100E000010001A4 +:10057000000100010001002C000100010001000148 +:100580000001003C00010001000100010000003AF0 +:1005900000010001000000010000003B000E3001DE +:1005A0000000000100000001000100010001000145 +:1005B0000000000100010001000100010001000134 +:1005C0000001000100010001000100010001000123 +:1005D0000001000100010001000100010001000113 +:1005E0000001000100010001000100010001000004 +:1005F000000A002530313662003A2000253032589A +:10060000000A722F632030313233343536373839AF +:100610004142434445460A000A00253032580062F0 +:100620006F756E6365213A20006C6566742073698E +:1006300064652061747461636865640A006C656652 +:10064000742073696465206E6F7420726573706FB7 +:100650006E64696E670A00747279696E6720746FE0 +:10066000207265736574206D637032333031380ADF +:10067000000A44454255473A20656E61626C6564E4 +:100680002E0A005B735D004B6579626F61726420B6 +:1006900073746172742E0A005B575D005B535D00DA +:1006A0005B525D005B445D005B435D0016034500EB +:1006B000720067006F0044006F0078002000450062 +:1006C0005A00000016034500720067006F004400E6 +:1006D0006F007800200045005A0000000403090460 +:1006E00009028D00050100A0FA09040000010301C0 +:1006F0000100092111010001223F000705810308C3 +:10070000000A09040100010301020009211101008E +:1007100001224D000705820308000A0904020001B6 +:1007200003000000092111010001223600070583A2 +:100730000308000A09040300020300000009211154 +:1007400001000122200007058403200001070504A1 +:100750000320000109040400010300000009211125 +:100760000100012239000705850310000112011064 +:100770000100000008EDFE07130100010200010561 +:10078000010906A101050719E029E71500250195D2 +:100790000875018102050819012905950575019162 +:1007A00002950175039101050719002977150025A8 +:1007B00001957875018102C00631FF0974A1010914 +:1007C00075150025FF95207508810209761500250D +:1007D000FF952075089102C005010980A1018502DD +:1007E00016010026B7001A01002AB70075109501FE +:1007F0008100C0050C0901A1018503160100269C9A +:10080000021A01002A9C02751095018100C00501A1 +:100810000902A1010901A100050919012905150015 +:100820002501950575018102950175038101050179 +:10083000093009311581257F95027508810609382F +:100840001581257F950175088106050C0A3802156A +:1008500081257F950175088106C0C005010906A1A3 +:1008600001050719E029E7150025019508750181A3 +:10087000029501750881010508190129059505757D +:100880000191029501750391010507190029FF15D2 +:100890000025FF950675088100C00A0025303258F2 +:1008A00020006B6579626F6172645F7265706F7250 +:1008B000743A20000A0025303258006B6579626F67 +:1008C0006172645F7365745F6C65643A200064658F +:1008D0006C5F6B65795F6269743A2063616E27743F +:1008E0002064656C3A20253032580A006164645FE8 +:1008F0006B65795F6269743A2063616E2774206169 +:1009000064643A20253032580A00646F6E652E0AFE +:1009100000626F6F676D61676963207363616E3A30 +:10092000202E2E2E2000290A002575002F00257567 +:10093000005D280025640020002564002000256457 +:100940000020002564007C0025303258006D6F7552 +:1009500073656B6579205B62746E7C782079207694 +:1009600020685D287265702F61636C293A205B00F6 +:100970006D6B5F776865656C5F74696D655F746FDB +:100980005F6D6178203D2025640A006D6B5F77689C +:1009900065656C5F6D61785F7370656564203D208F +:1009A00025640A006D6B5F74696D655F746F5F6DC0 +:1009B0006178203D2025640A006D6B5F6D61785F72 +:1009C0007370656564203D2025640A006D6B5F6966 +:1009D0006E74657276616C203D2025640A006D6B33 +:1009E0005F64656C6179203D2025640A006D6B5F52 +:1009F000776865656C5F74696D655F746F5F6D6165 +:100A000078203D2025640A006D6B5F776865656C12 +:100A10005F6D61785F7370656564203D2025640AB1 +:100A2000006D6B5F74696D655F746F5F6D617820D9 +:100A30003D2025640A006D6B5F6D61785F737065A2 +:100A40006564203D2025640A006D6B5F696E7465E6 +:100A50007276616C203D2025640A006D6B5F6465D1 +:100A60006C6179203D2025640A000A002575003656 +:100A70003A20776865656C5F74696D655F746F5F58 +:100A80006D61783A20000A00257500353A207768B4 +:100A900065656C5F6D61785F73706565643A2000B1 +:100AA0000A00257500343A2074696D655F746F5FC4 +:100AB0006D61783A20000A00257500333A206D6197 +:100AC000785F73706565643A20000A00257500320E +:100AD0003A20696E74657276616C286D73293A20CC +:100AE000000A00257500313A2064656C6179282A76 +:100AF00031306D73293A20000A092D2056616C753A +:100B00006573202D0A004D3E004D25643E20003FB8 +:100B1000007365742064656661756C740A00433EF9 +:100B2000200077686572652064656C74613A2063A3 +:100B30007572736F723D25642C20776865656C3D16 +:100B400025640A53656520687474703A2F2F656EAA +:100B50002E77696B6970656469612E6F72672F7794 +:100B6000696B692F4D6F7573655F6B6579730A00EB +:100B70000A092D204D6F7573656B6579202D0A4527 +:100B800053432F713A09717569740A313A096465E2 +:100B90006C6179282A31306D73290A323A09696EFD +:100BA00074657276616C286D73290A333A096D6138 +:100BB000785F73706565640A343A0974696D655FBE +:100BC000746F5F6D61780A353A09776865656C5FA7 +:100BD0006D61785F73706565640A363A0977686598 +:100BE000656C5F74696D655F746F5F6D61780A0A2B +:100BF000703A097072696E742076616C7565730A5B +:100C0000643A097365742064656661756C74730A6F +:100C100075703A092B310A646F776E3A092D310AE3 +:100C2000706775703A092B31300A7067646F776EA0 +:100C30003A092D31300A0A7370656564203D2064DD +:100C4000656C7461202A206D61785F7370656564DE +:100C5000202A2028726570656174202F2074696DC8 +:100C6000655F746F5F6D6178290A003F004D3E201B +:100C700000433E20004C25640A000A092D20436FE2 +:100C80006E736F6C65202D0A4553432F713A0971BD +:100C90007569740A6D3A096D6F7573656B65790ACC +:100CA000000A092D204D61676963202D0A643A0905 +:100CB00064656275670A783A096465627567206DD4 +:100CC00061747269780A6B3A096465627567206BB2 +:100CD0006579626F6172640A6D3A0964656275676D +:100CE000206D6F7573650A763A0976657273696F60 +:100CF0006E0A733A097374617475730A633A09630F +:100D00006F6E736F6C65206D6F64650A302D343AB9 +:100D1000096C61796572302D34284631302D4634A6 +:100D2000290A506175733A09626F6F746C6F616460 +:100D300065720A653A09656570726F6D0A6E3A09E7 +:100D40004E4B524F0A7A3A09736C656570204C45D8 +:100D50004420746573740A000A002575002E6E6BBA +:100D6000726F3A20000A002575002E737761705F5C +:100D70006261636B736C6173685F6261636B7370F4 +:100D80006163653A20000A002575002E7377617053 +:100D90005F67726176655F6573633A20000A0025BC +:100DA00075002E6E6F5F6775693A20000A00257521 +:100DB000002E737761705F72616C745F7267756922 +:100DC0003A20000A002575002E737761705F6C6110 +:100DD0006C745F6C6775693A20000A002575002EF7 +:100DE000636170736C6F636B5F746F5F636F6E745E +:100DF000726F6C3A20000A002575002E73776170BF +:100E00005F636F6E74726F6C5F636170736C6F633E +:100E10006B3A20000A0025303258006B65796D610D +:100E2000705F636F6E6669672E7261773A20000AA1 +:100E3000002575002E6D6F7573653A20000A002538 +:100E400075002E6B6579626F6172643A20000A004A +:100E50002575002E6D61747269783A20000A0025AC +:100E600075002E656E61626C653A20000A002530BF +:100E700032580064656275675F636F6E6669672EDE +:100E80007261773A20000A00257500646566617515 +:100E90006C745F6C617965723A20003F004E4B5272 +:100EA0004F3A206F66660A004E4B524F3A206F6EE3 +:100EB0000A0074696D65725F636F756E743A202500 +:100EC00030346C580A006B6579626F6172645F6ED2 +:100ED0006B726F3A2025580A006B6579626F6172F8 +:100EE000645F69646C653A2025580A006B65796215 +:100EF0006F6172645F70726F746F636F6C3A2025FC +:100F0000580A00686F73745F6B6579626F61726411 +:100F10005F6C65647328293A2025580A000A092D58 +:100F200020537461747573202D0A004743433A209F +:100F3000342E392E33204156522D4C4942433A200B +:100F4000312E382E31204156525F415243483A20CB +:100F5000617672350A004F5054494F4E533A204C37 +:100F600055464120424F4F544D41474943204D4F34 +:100F70005553454B45592045585452414B455920EE +:100F8000434F4E534F4C4520434F4D4D414E44200F +:100F90004E4B524F203531320A004255494C443AAB +:100FA00020666437326134362D6469727479202882 +:100FB00032313A35313A3231204A616E20323420B2 +:100FC00032303136290A005649443A2030784645B5 +:100FD0004544284572676F446F7820455A29205050 +:100FE00049443A20307831333037284572676F44AE +:100FF0006F7820455A29205645523A2030783030B3 +:1010000030310A00444553433A20742E6D2E6B2E26 +:10101000206B6579626F617264206669726D7761B9 +:10102000726520666F72204572676F646F780A0080 +:101030000A092D2056657273696F6E202D0A000A09 +:101040006D6F7573653A206F66660A000A6D6F757D +:1010500073653A206F6E0A000A6B6579626F617280 +:10106000643A206F66660A000A6B6579626F617286 +:10107000643A206F6E0A000A6D61747269783A20D2 +:101080006F66660A000A6D61747269783A206F6E45 +:101090000A000A64656275673A206F6E0A000A6486 +:1010A000656275673A206F66660A000A0A626F6FAA +:1010B000746C6F616465722E2E2E2000433E2000FA +:1010C0006565636F6E6669673A0A00536C656570A3 +:1010D000204C454420746573740A00000000000031 +:1010E000000000000000010204060A0F17202C3A3D +:1010F0004A5D71879DB3C7DAE9F5FCFFFCF5E9DAD3 +:10110000C7B39D87715D4A3A2C20170F0A06040267 +:1011100001000000000000000000000011241FBEBC +:10112000CFEFDAE0DEBFCDBF04B603FE24C080916E +:10113000FB019091FC01A091FD01B091FE0187306F +:10114000904BA740B04BB9F41092FB011092FC01F8 +:101150001092FD011092FE0114BE84B7877F84BFF8 +:1011600088E10FB6F89480936000109260000FBE83 +:10117000E0E0FFE3099511E0A0E0B1E0E6E9F0E688 +:1011800002C005900D92AA33B107D9F711E0AAE386 +:10119000B1E001C01D92AB3FB107E1F70E94091217 +:1011A0000C9449300C940000FF93EF93E0913A01C6 +:1011B000F0913B01309709F00995EF91FF91089567 +:1011C000FC018591803011F0EFDFFBCF0895FF2700 +:1011D000E0E230E247FF0CC0419597FF09C0EDE225 +:1011E0006095709580959095611D711D811D911D73 +:1011F00027FF02C0219530E350E2AA27660F771F30 +:10120000881F991FAA1FA41710F0A41B63955A9555 +:10121000A9F7AA3008F0A95FA05DAF93F395611517 +:1012200071058105910541F7ED3211F4EF93F395C6 +:10123000F21718F43F93F395FBCF8F91B5DFFA9532 +:10124000E1F70895E991F9918591803021F0853297 +:1012500019F0AADFF9CF089520E0E89455915532AE +:10126000C1F3503311F4689455915A3348F45053F4 +:1012700090F3220F022E220F220F200D250FF4CF04 +:101280000EF4219589919991533619F3533729F129 +:10129000533559F1BC0188279927E8945C3621F42D +:1012A0008991999168945591543639F446EF7EF0BE +:1012B00077FF0DC08FEF9FEF0AC055374AE039F036 +:1012C000583540E121F0523642E009F00895FF938D +:1012D000EF937DDFEF91FF91B7CFFF93EF93FC0189 +:1012E00081918030B9F360DFFBCFFF93EF9368DF2C +:1012F000F1CFDF93CF93CDB7DEB72596A3DFCF91A4 +:10130000DF910895462F50E04F30510508F0DEC0C0 +:10131000DC01FA01EA5AFF4F12968C910C94FE2FD1 +:10132000882321F085EE0E94E618D0C085EE0E9449 +:10133000AE19CCC0882349F00E943F2490933D0110 +:1013400080933C0188EF91E0089580913C01909159 +:101350003D010E944B24873991050CF0A8C08AEE0C +:1013600091E00895882349F00E943F2490933D0125 +:1013700080933C0187EE91E0089580913C0190912B +:101380003D010E944B24873991050CF093C089EDF3 +:1013900091E00895882349F00E943F2490933D01F5 +:1013A00080933C0182ED91E0089580913C01909101 +:1013B0003D010E944B24873991050CF07EC080ECE2 +:1013C00091E00895882349F00E943F2490933D01C5 +:1013D00080933C018BEB91E0089580913C019091CA +:1013E0003D010E944B24873991050CF069C08DEABC +:1013F00091E00895882349F00E943F2490933D0195 +:1014000080933C0188EA91E0089580913C0190919D +:101410003D010E944B24873991050CF054C08AE9A4 +:1014200091E00895882309F451C085E891E008957A +:10143000882309F44BC080E791E00895882309F4DC +:1014400045C08BE591E00895882309F43FC086E408 +:1014500091E008958823D1F18DE391E008958823E8 +:10146000A9F188E291E00895882381F183E191E078 +:101470000895882359F18EEF90E00895882331F183 +:101480008091BE019091BF01A091C001B091C101B6 +:1014900020E2822780729927AA27BB278093BE016A +:1014A0009093BF01A093C001B093C1010FC085EF1D +:1014B00091E0089584EE91E008958BEC91E0089519 +:1014C00086EB91E0089583EA91E0089580E090E052 +:1014D000089508956091BE017091BF018091C0018F +:1014E0009091C1010E94742356985E9825982D987A +:1014F00026982E9827982F98833099F028F48130D9 +:1015000041F0823049F00895843049F0853061F02F +:101510000895259A2D9A0895269A2E9A0895259A27 +:101520002D9A279A2F9A0895259A2D9A269A2E9ABF +:10153000279A2F9A08958AE69AE0892B11F00E9443 +:101540006A0A80E090E0089556985E9825982D9854 +:1015500026982E9827982F988FEF90E090938900E7 +:101560008093880090938B0080938A0090938D00E5 +:1015700080938C00259A2D9A2FEF80E792E02150DE +:1015800080409040E1F700C00000269A2E9A2FEF8D +:1015900080E792E0215080409040E1F700C00000D9 +:1015A000279A2F9A2FEF80E792E0215080409040B9 +:1015B000E1F700C0000025982D982FEF80E792E01A +:1015C000215080409040E1F700C0000026982E98FE +:1015D0002FEF80E792E0215080409040E1F700C07B +:1015E000000027982F9856985E9825982D98269851 +:1015F0002E9827982F98089589EA8093800089E093 +:101600008093810024982C983F988AB18F748AB96E +:101610006E98479A8BB1806B8BB9769A0E94A40A18 +:1016200089E69AE0892B11F00E94690A80E090E037 +:10163000089580E28093000180913E0181110EC0E7 +:101640000E94680B81E080933E012FEF83ED90E3D1 +:10165000215080409040E1F700C0000080E40E94EB +:101660006E0B8093000181112EC00E94980B809315 +:101670000001811128C00E94980B80930001811104 +:1016800022C08FE30E94980B8093000181111BC040 +:101690000E94900B80E40E946E0B809300018111E8 +:1016A00012C08CE00E94980B8093000181110BC046 +:1016B0000E94980B80930001811105C08FE30E9466 +:1016C000980B809300010E94900B80910001089577 +:1016D0001092B9008AE08093B800089594EA90933C +:1016E000BC009091BC0097FFFCCF9091B900987F0F +:1016F000983021F0903111F081E008958093BB0083 +:1017000084E88093BC008091BC0087FFFCCF80916F +:10171000B900887F883111F0803471F780E0089536 +:1017200084E98093BC008091BC0084FDFCCF0895C7 +:101730008093BB0084E88093BC008091BC0087FF4D +:10174000FCCF9091B900987F81E0983209F480E055 +:10175000089584E88093BC008091BC0087FFFCCF93 +:101760008091BB00089580910001811115C080E433 +:101770000E946E0B8093000181110CC082E10E94D7 +:10178000980B80930001811105C08FEF0E94980B88 +:10179000809300010E94900B84B1807F84B985B151 +:1017A000807F85B98AB1837F8AB98BB1837F8BB9FA +:1017B0003E98469808950E94190B809300010E945C +:1017C000B30B80B38C7080BB81B3836F81BBA0E40B +:1017D000B1E0EEE4F1E08EE08E0F11921D928E13D7 +:1017E000FCCF8CEF9AE0892B11F00C94FC0A089541 +:1017F0009F92AF92BF92CF92DF92EF92FF920F93A0 +:101800001F93CF93DF93809100018823E1F08091B3 +:101810003F018F5F80933F01811115C087E596E0FE +:101820000E94E0080E94190B80930001882329F090 +:101830008DE396E00E94E00806C089E296E00E94EF +:10184000E0080E94A40A00E411E0C0E0D0E0BB245C +:10185000B39482E0A82ECC24C394D12C2AE1E22EAA +:1018600026E0F22EC730D10500F5809100018111EC +:1018700064C080E40E946E0B80930001811112C04D +:1018800082E10E94980B8093000181110BC0C60178 +:101890000C2E01C0880F0A94EAF780950E94980BDD +:1018A000809300010E94900B48C0CA30A1F028F438 +:1018B000C83059F0C93061F005C0CC3089F070F003 +:1018C000CD3089F0209A289810C0219A29980DC00F +:1018D000229A2A980AC0239A2B9807C0529A01C0CC +:1018E000539A5B9802C03E9A469890EA9A95F1F70F +:1018F0009FB1799902C082E001C080E091709B2580 +:10190000982B7C9902C084E001C080E0892B7D99EE +:1019100002C038E001C030E0832B7E9902C020E194 +:1019200001C020E0822B9FB19095991F9927991FA4 +:101930009295990F907E892B10C0809100018111A2 +:1019400074C080E40E946E0B80930001882309F428 +:1019500059C0912C0E94900B892DF8019081981705 +:1019600039F1808380910101882301F18091D901AF +:1019700080FF04C08FE196E00E94E0088091D901C9 +:1019800080FF0CC0809101011F928F93FF92EF9214 +:101990000E9479090F900F900F900F908091D901BC +:1019A00080FF04C088E196E00E94E008A092010157 +:1019B0000E94B30B21960F5F1F4FCE30D10509F067 +:1019C00051CF809101018823B1F0815080930101B2 +:1019D000882339F08FE99FE00197F1F700C00000FC +:1019E0000AC0AEE4B1E0E0E4F1E0CF01825F9191A2 +:1019F0009D938E13FCCF8BE99AE0892BC1F00E9456 +:101A00009B0A15C083E10E94980B8093000181110D +:101A1000A0CF81E40E946E0B80930001811199CFC9 +:101A20000E94A90B982E909495CF80E096CF81E0EC +:101A3000DF91CF911F910F91FF90EF90DF90CF90AA +:101A4000BF90AF909F900895E82FF0E0E25BFE4FCB +:101A500080810895CF92DF92EF92FF920F931F93B0 +:101A6000CF93DF9381E096E00E94E0088EE4E82EB9 +:101A700081E0F82EC0E0D0E09CEFC92E95E0D92E91 +:101A800003EF15E0DF93CF93DF92CF920E947909A5 +:101A900089EF95E00E94E008F70181917F0190E0D5 +:101AA0000E94DA239F938F931F930F930E947909CB +:101AB00081EF95E00E94E00821968DB79EB70896C9 +:101AC0000FB6F8949EBF0FBE8DBFCE30D105D1F6B4 +:101AD000DF91CF911F910F91FF90EF90DF90CF900A +:101AE00008958B3B910578F4883A910540F5853A45 +:101AF0009105D0F48430910508F0B1C08130910592 +:101B000009F4ADC06BC0803E910508F467C0883E03 +:101B1000910508F4A4C09C01205F310920313105F2 +:101B200008F05CC090650895853A910509F459C0A4 +:101B3000863A910509F058C082E890E40895883A01 +:101B4000910509F454C0893A910509F453C08A3AC1 +:101B5000910509F452C08B3A910509F451C08C3AB1 +:101B6000910509F450C08D3A910509F44FC0803BAE +:101B7000910509F44EC08E3A910509F44DC08F3A93 +:101B8000910509F44CC0813B910509F44BC0823B9F +:101B9000910509F44AC0833B910509F449C0843B8F +:101BA000910509F448C0853B910509F447C0863B7F +:101BB000910509F446C0873B910509F445C0883B6F +:101BC000910509F444C0893B910509F443C08A3B5F +:101BD000910509F442C080E094E4089580E090E02B +:101BE000089581E890E4089583E890E4089582EEF2 +:101BF00094E4089589EE94E408958AEE94E40895B7 +:101C000085EB94E4089586EB94E4089587EB94E4DF +:101C100008958CEC94E408958DEC94E4089583E8A1 +:101C200095E408958AE895E4089582E995E4089595 +:101C300084E995E4089581E296E4089583E296E4C8 +:101C4000089584E296E4089585E296E4089586E294 +:101C500096E4089587E296E408958AE296E408956A +:101C6000089596E0799FF001112494E5899FE00D95 +:101C7000F11D1124E60FF11DEE0FFF1FEF5FFD4F69 +:101C8000859194910895880F991FFC01E558FF4FA5 +:101C9000859194910895880F991FFC01E550FE4F9E +:101CA00085919491089526E0729FF001112444E5F6 +:101CB000849FE00DF11D1124E60FF11DEE0FFF1FB3 +:101CC000EF5FFD4F859194919C013A9521154FE16D +:101CD000340708F41EC13F512115304120F49F7094 +:101CE0000E944B0E08959C0130532115304118F489 +:101CF0009927906C0895811520E5920769F40E9458 +:101D0000341D4FEF84E39CE0415080409040E1F768 +:101D100000C000000C949A24813020E5920751F411 +:101D200081E796E00E94E0088091D901816080936C +:101D3000D90108959C0130552115304108F051C05A +:101D4000292F33272F70332721303105D9F4AC01E7 +:101D50004370552702C0220F331F4A95E2F73C68B3 +:101D6000AC0164E0440F551F6A95E1F744275370B6 +:101D7000242B352B73E0880F991F7A95E1F7807635 +:101D800099271DC02230310529F4982F8827816FAB +:101D9000906A089523303105A9F4AC0143705527AA +:101DA00021E030E002C0220F331F4A95E2F73C6881 +:101DB00043E0880F991F4A95E1F7807E9770822B48 +:101DC000932B089524303105E1F4AC01437055277D +:101DD00021E030E002C0220F331F4A95E2F73A6853 +:101DE000E7CF9C0130572115304118F49F70906265 +:101DF00008959C0130582115304118F49F70906A65 +:101E00000895803E9105E0F4803C910558F58133BA +:101E1000910509F46FC048F48932910509F463C053 +:101E20008A32910509F46DC072C089339105E9F0D9 +:101E300082389105D1F08533910509F44DC067C012 +:101E4000833E910581F138F4803E9105B9F0823EE0 +:101E50009105D9F05CC0863E910561F1873E910500 +:101E6000A1F155C00E94430E08952091EC0120FD80 +:101E700002C021FF4CC080EE90E049C08091EC018F +:101E800080FFF9CF89E390E042C08091EC0182FFAE +:101E90000EC08091EC0184FF03C080E090E037C069 +:101EA00083EE90E034C08091EC0182FFF2CF82EEAD +:101EB00090E02DC08091EC0183FF0BC08091EC017C +:101EC00084FDEBCF87EE90E022C08091EC0183FF90 +:101ED000F5CF86EE90E01BC08091EC0185FF07C036 +:101EE00089E290E014C08091EC0185FFF9CF85E391 +:101EF00090E00DC08091EC0186FF07C08AE290E07F +:101F000006C08091EC0186FFF9CF81E390E00E944A +:101F1000710D0895089580916F0108959FB7F89409 +:101F200010925E019FBF9091F201943009F057C06A +:101F30009091E9009F703091EC00232F217030FDCB +:101F400020E8922B24E02093E9002091EB0020FF71 +:101F500043C02091EE0027FF3FC020915C01222367 +:101F600021F02091E80025FF37C010925C0126E0A7 +:101F70003091E80035FD15C03091F201343061F543 +:101F80003091EB0035FD28C0215021F481E0809391 +:101F90005C0122C0EFE9FFE03197F1F700C00000DB +:101FA000E7CF8093F1008091E80085FD0AC0809121 +:101FB000E80080FFFCCF8091E8008E778093E800F6 +:101FC00006C08FB7F89421E020935E018FBF9F7009 +:101FD0009093E90080E008959F709093E9008FEF5F +:101FE0000895CF93DF9300D01F92CDB7DEB79C0149 +:101FF0008091F201843019F593E099833B832A8321 +:102000009093E9008FEF9091E800815095FD06C014 +:1020100095ED9A95F1F700008111F5CF8091E800D8 +:1020200085FF0DC040E050E063E070E0CE01019616 +:102030000E94C1128091E8008E778093E8000F9093 +:102040000F900F90DF91CF910895CF93DF9300D041 +:102050001F92CDB7DEB72091F201243021F522E0A6 +:1020600029839B838A8383E08093E9008FEF90919B +:10207000E800815095FD06C095ED9A95F1F70000B6 +:102080008111F5CF8091E80085FF0DC040E050E060 +:1020900063E070E0CE0101960E94C1128091E800D9 +:1020A0008E778093E8000F900F900F90DF91CF9183 +:1020B00008952091F2012430F1F422E02093E90008 +:1020C0002FEF3091E800215035FD06C035ED3A95EF +:1020D000F1F700002111F5CF2091E80025FF0BC09A +:1020E00040E050E065E070E00E94C1128091E8009D +:1020F0008E778093E8000895CF93DF932091F201CB +:10210000243009F048C0EC0180910C018823E1F0F3 +:1021100080910D018823C1F085E08093E9008FEF65 +:102120009091E800815095FD06C095E19A95F1F7F0 +:1021300000008111F5CF8091E80085FF2CC040E0C0 +:1021400050E060E170E017C081E08093E9008FEF1C +:102150009091E800815095FD06C095ED9A95F1F7B4 +:1021600000008111F5CF8091E80085FF14C040E0A8 +:1021700050E068E070E0CE010E94C1128091E8005A +:102180008E778093E80080E1FE01AFE5B1E0019039 +:102190000D928A95E1F7DF91CF91089588EA96E054 +:1021A0000E94E0088091F101811109C00E9456143B +:1021B0000E94B3148091E20084608093E20008954D +:1021C00084EA96E00E94E0081092F101089580EA06 +:1021D00096E00C94E0088CE996E00E94E0080C94EC +:1021E0006A2E88E996E00E94E0080E9430240E944E +:1021F000702E0E9458170C948A0F20915D012F5F5A +:10220000822F62E30E94DE2F992319F020935D0153 +:10221000089510925D0180915E01882371F1809193 +:10222000F201843041F58091E9008F702091EC003B +:10223000922F917020FD90E8892B94E09093E90013 +:102240009091EB0090FF14C09091EE0097FF10C0AA +:102250009091E80095FF03C01092F100F9CF9091A2 +:10226000E80090FF05C09091E8009E779093E80009 +:102270008F708093E90010925E01089542E061EC56 +:1022800081E00E94D01342E061EC82E00E94D01312 +:1022900042E061EC83E00E94D01342E261EC84E012 +:1022A0000E94D01342E161EC85E00C94D013809140 +:1022B000F401833009F455C030F4813071F082307C +:1022C00009F48EC008958A3009F47AC08B3009F47D +:1022D00060C0893009F09CC020C08091F301813A30 +:1022E00009F096C08091E800877F8093E800809194 +:1022F000F7019091F801892B21F460E18FE591E0DD +:1023000003C060E080E090E070E00E940C138091D8 +:10231000E8008B778093E80008958091F301813283 +:1023200009F076C08091F7019091F801009719F0BB +:10233000049709F06DC08091E800877F8093E800E2 +:102340008091E80082FD05C08091F2018111F8CFF3 +:102350005FC08091F10080936F018091E8008B77DE +:1023600053C08091F301813A09F052C08091F70186 +:102370009091F801892B09F04BC08091E800877F8C +:102380008093E8008091E80080FFFCCF80910C01F1 +:1023900036C08091F3018132D9F58091F701909197 +:1023A000F801892BA9F58091E800877F8093E800E8 +:1023B0000E9405148091F50180930C010C94341D4A +:1023C0008091F301813221F58091E800877F80932D +:1023D000E8000E9405148091F60180937001089531 +:1023E0008091F301813AA1F48091E800877F809386 +:1023F000E8008091E80080FFFCCF8091700180931D +:10240000F1008091E8008E778093E8000C94051429 +:10241000089584B7877F84BF88E10FB6F8948093CE +:102420006000109260000FBE90E080E80FB6F89454 +:1024300080936100909361000FBE0E94E5170E9497 +:1024400056140E94B3148091E20084608093E200ED +:102450008EE89FE00E946F2378940E9438170E94B4 +:10246000E71782E091E00E9453170E94582E87E8F8 +:1024700096E00E94E0088091F201853089F483E8BB +:1024800096E00E94E0080E94F4238091F0018823E6 +:1024900091F30E941C24882371F30E94AB12EBCFAE +:1024A0000E941518E8CF292F332723303105C9F0B2 +:1024B00064F42130310581F02230310509F043C048 +:1024C0008DE890E020EE36E042C021323105F1F097 +:1024D0002232310541F137C082E190E02DE637E04C +:1024E00036C099278130910541F08230910541F045 +:1024F000892B49F5ECEDF6E005C0E4ECF6E002C00E +:10250000ECEAF6E0849190E09F0121C06530D8F4B8 +:10251000E62FF0E0EE0FFF1FEB5DFE4F20813181D3 +:1025200089E090E014C0653070F470E0FB01EE0FBC +:10253000FF1FE55EFE4F20813181FB01EA5EFE4F09 +:10254000808190E004C080E090E020E030E0FA017B +:1025500031832083089580E189BD82E189BD09B47A +:1025600000FEFDCF8091D8008F7D8093D8008091B0 +:10257000E00082608093E0008091E00081FDFCCF6C +:102580000895CF92DF92EF92FF920F931F93CF9314 +:10259000DF93EC018B016A010E942414811133C086 +:1025A000C114D10439F0F60180819181081B190B07 +:1025B000C80FD91FE12CF12C0115110519F18091DB +:1025C000E80085FD16C08091E8008E778093E800D2 +:1025D000C114D10449F0F60180819181E80EF91E01 +:1025E000F182E08285E00FC00E942414882321F349 +:1025F0000AC089918093F10001501109FFEFEF1A91 +:10260000FF0ADACF80E0DF91CF911F910F91FF9009 +:10261000EF90DF90CF9008952091F9013091FA0169 +:102620002617370748F06115710539F42091E80045 +:102630002E772093E80001C0B90140E061157105D3 +:10264000A9F12091F201222309F443C0253009F4B5 +:1026500042C02091E80023FD40C02091E80022FD07 +:1026600032C02091E80020FFE9CF4091F300209193 +:10267000F20030E0342BFC01CF016115710559F0F7 +:102680002830310540F481918093F1006150710947 +:102690002F5F3F4FF1CF41E02830310509F040E096 +:1026A0002091E8002E772093E800C8CF4111C9CFD0 +:1026B0000AC08091F201882361F0853061F0809139 +:1026C000E80083FD0AC08091E80082FFF2CF80E03D +:1026D000089582E0089583E0089581E008952091AF +:1026E000F9013091FA012617370748F06115710595 +:1026F00039F42091E8002E772093E80001C0B90159 +:10270000FC0120E06115710591F18091F2018823AF +:1027100009F440C0853009F43FC08091E80083FD92 +:102720003DC08091E80082FD2FC08091E80080FFCD +:10273000E9CF2091F3008091F20090E0922B611597 +:10274000710559F08830910540F424912093F100EF +:102750003196615071090196F2CF21E0089709F096 +:1027600020E08091E8008E778093E800CBCF2111A4 +:10277000CCCF0AC08091F201882361F0853061F0EE +:102780008091E80083FD0AC08091E80082FFF2CFCB +:1027900080E0089582E0089583E0089581E008953F +:1027A000982F973058F59093E900981739F0709169 +:1027B000EC002091ED005091F00003C0242F762F03 +:1027C00050E021FF19C03091EB003E7F3093EB00C9 +:1027D0003091ED003D7F3093ED003091EB003160A2 +:1027E0003093EB007093EC002093ED005093F000D9 +:1027F0002091EE0027FF07C09F5FD3CF8F7080939B +:10280000E90081E0089580E008958091F30187FF59 +:1028100011C08091E80082FD05C08091F201811114 +:10282000F8CF11C08091E8008B770BC08091F20146 +:10283000882349F08091E80080FFF8CF8091E8007C +:102840008E778093E80008952091E4003091E500B0 +:1028500095E64091EC00842F817040FF22C080916A +:10286000E80080FD1CC08091F201882391F0853042 +:1028700091F08091EB0085FD10C04091E4005091F3 +:10288000E5004217530729F39A01915011F784E0AC +:10289000089582E0089583E0089581E0089580E03E +:1028A00008954091E80042FFDECF08950E94C414CD +:1028B0000E94CC14E0EEF0E0808181608083E8ED3E +:1028C000F0E080818F77808319BCA7EDB0E08C9118 +:1028D0008E7F8C9380818F7E80831092F10108958A +:1028E0000F931F93CF93DF930E94C4140E94CC14C4 +:1028F000C8EDD0E088818F7788838881806888835D +:1029000088818F7D888319BC1092F2011092EE01AC +:102910001092F0011092EF0100EE10E0F8018081BA +:102920008B7F808388818160888342E060E080E0E3 +:102930000E94D013E1EEF0E080818E7F8083E2EE92 +:10294000F0E0808181608083808188608083F801ED +:1029500080818E7F8083888180618883DF91CF91A1 +:102960001F910F910895E8EDF0E080818F7E8083C4 +:10297000E7EDF0E080818160808384E082BF81E0C8 +:102980008093F1010C947014E8EDF0E080818E7F6B +:1029900080831092E20008951092DA001092E10014 +:1029A00008951F920F920FB60F9211242F933F9309 +:1029B0004F935F936F937F938F939F93AF93BF9347 +:1029C000EF93FF938091E10082FF0BC08091E200C2 +:1029D00082FF07C08091E1008B7F8093E1000E941D +:1029E000FD108091DA0080FF1FC08091D80080FF29 +:1029F0001BC08091DA008E7F8093DA008091D9002D +:102A000080FF0DC080E189BD82E189BD09B400FE6F +:102A1000FDCF81E08093F2010E94CE1005C019BC69 +:102A20001092F2010E94E0108091E10080FF19C035 +:102A30008091E20080FF15C08091E2008E7F80933C +:102A4000E2008091E20080618093E2008091D800F2 +:102A500080628093D80019BC85E08093F2010E94C7 +:102A6000EB108091E10084FF30C08091E20084FF90 +:102A70002CC080E189BD82E189BD09B400FEFDCF93 +:102A80008091D8008F7D8093D8008091E1008F7E67 +:102A90008093E1008091E2008F7E8093E20080913C +:102AA000E20081608093E2008091EE01882311F0C2 +:102AB00084E007C08091E30087FD02C081E001C08F +:102AC00083E08093F2010E94F1108091E10083FF86 +:102AD00029C08091E20083FF25C08091E100877FBB +:102AE0008093E10082E08093F2011092EE018091E8 +:102AF000E1008E7F8093E1008091E2008E7F8093E1 +:102B0000E2008091E20080618093E20042E060E0B8 +:102B100080E00E94D0138091F00088608093F000E4 +:102B20000E94E710FF91EF91BF91AF919F918F911C +:102B30007F916F915F914F913F912F910F900FBEB9 +:102B40000F901F9018951F920F920FB60F9211249D +:102B50002F933F934F935F936F937F938F939F93A5 +:102B6000AF93BF93CF93DF93EF93FF93C091E900AF +:102B7000CF708091EC00D82FD17080FDD0E81092FA +:102B8000E9008091F000877F8093F00078940E94A4 +:102B9000E7151092E9008091F00088608093F000C2 +:102BA000CD2BCF70C093E900FF91EF91DF91CF91D2 +:102BB000BF91AF919F918F917F916F915F914F9155 +:102BC0003F912F910F900FBE0F901F9018951F935C +:102BD000CF93DF93CDB7DEB7AA970FB6F894DEBFD9 +:102BE0000FBECDBFE3EFF1E088E08E0F9091F100D2 +:102BF00091938E13FBCF0E9457118091E80083FFC1 +:102C00001FC18091F3019091F401492F50E04A30A7 +:102C1000510508F015C1FA01EB59FF4F0C94FE2F36 +:102C2000803881F0823809F00BC18091F7018F70F4 +:102C30008093E9008091EB0085FB882780F9109252 +:102C4000E90006C08091EF019091F001911182603E +:102C50009091E800977F9093E8008093F1001092A4 +:102C6000F100C8C0282F2D7F09F0EAC0882319F091 +:102C7000823061F0E5C08091F501813009F0E0C05B +:102C8000933009F080E08093F0012BC08091F50132 +:102C9000811127C08091F7018F7009F4D1C0809312 +:102CA000E9002091EB0020FF1CC0933021F48091BB +:102CB000EB00806214C09091EB0090619093EB0068 +:102CC00021E030E0A90102C0440F551F8A95E2F7C8 +:102CD0004093EA001092EA008091EB0088608093B4 +:102CE000EB001092E9008091E800877F86C0811197 +:102CF000A7C01091F5011F778091E3008078812BA8 +:102D00008093E3008091E800877F8093E8000E9431 +:102D100005148091E80080FFFCCF8091E30080687B +:102D20008093E300111102C082E001C083E0809330 +:102D3000F20186C08058823008F082C08091F5018F +:102D40009091F6018C3D53E0950779F583E08A83F5 +:102D50008AE289834FB7F894DE01139620E03EE0C3 +:102D600051E2E32FF0E050935700E49120FF03C0BD +:102D7000E295EF703F5FEF708E2F90E0EA3010F039 +:102D8000C79601C0C0968D939D932F5F243149F75C +:102D90004FBF8091E800877F8093E8006AE270E08F +:102DA000CE0101960E940C1314C0AE014F5F5F4F1D +:102DB0006091F7010E945312BC01892B09F440C0B5 +:102DC0009091E800977F9093E80089819A810E9412 +:102DD0006F138091E8008B778093E80031C08038D2 +:102DE00079F58091E800877F8093E8008091EE017B +:102DF0008093F1008091E8008E778093E8000E9434 +:102E000005141EC081111CC09091F5019230C0F4D0 +:102E10008091E800877F8093E8009093EE010E9404 +:102E200005148091EE01811106C08091E30087FDB9 +:102E300002C081E001C084E08093F2010E943E1153 +:102E40008091E80083FF0AC08091E800877F80932B +:102E5000E8008091EB0080628093EB00AA960FB6A9 +:102E6000F894DEBF0FBECDBFDF91CF911F910895C3 +:102E7000CF938091F2018823A1F0C091E900CF7037 +:102E80009091EC00892F817090FD80E8C82B109202 +:102E9000E9008091E80083FD0E94E715CF70C093A0 +:102EA000E900CF910895909376018093750108957C +:102EB000E0917501F0917601309721F00190F08159 +:102EC000E02D099480E00895EF92FF920F931F93F5 +:102ED000CF93DF93E0917501F09176013097B1F1D6 +:102EE0008C010280F381E02D09958091D90182FF48 +:102EF0002DC080FF04C082EA98E00E94E008E8014B +:102F000010E18CE9E82E88E0F82E8091D90180FF4D +:102F10000BC088811F928F93FF92EF920E947909D4 +:102F20000F900F900F900F90115021961111EDCF2F +:102F30008091D90180FF0AC08AE998E0DF91CF91A2 +:102F40001F910F91FF90EF900C94E008DF91CF91CB +:102F50001F910F91FF90EF900895E0917501F0910E +:102F60007601309721F00480F581E02D09940895D1 +:102F700020917301309174018217930771F090933F +:102F8000740180937301E0917501F091760130979F +:102F900021F00680F781E02D0994089520917101B8 +:102FA000309172018217930771F0909372018093B0 +:102FB0007101E0917501F0917601309721F0008464 +:102FC000F185E02D0994089508950C94E4170E946A +:102FD00036240E94DB0B0C94FC24CF93C82F8091E5 +:102FE000D90182FF1EC080FF04C08BEB98E00E94D5 +:102FF000E0088091D90180FF0CC01F92CF9386EB2F +:1030000098E09F938F930E9479090F900F900F90F3 +:103010000F908091D90180FF04C084EB98E00E945A +:10302000E0088C2FCF910C948A0FCF92DF92EF9211 +:10303000FF920F931F93CF93DF93CDB7DEB72B97FC +:103040000FB6F894DEBF0FBECDBF0E94F80B88E725 +:10305000C82E81E0D82E00E010E0E02E802F0E94E4 +:10306000240DF60141916F01F42EF826B1F40F5FA3 +:103070001F4F0E30110589F78FEF89838A831B82DA +:103080000E943F248160782F9D838C8349815A81DF +:103090006B818D810E94B81840C09091D90191FF39 +:1030A00004C08B870E942A0D8B8520E030E04F2DD5 +:1030B00050E0922FBA01022E02C0759567950A94CE +:1030C000E2F760FF24C02E83EF8221E030E0690147 +:1030D00002C0CC0CDD1C9A95E2F790E08C219D217A +:1030E000892B09F420E028870E943F248160782FF3 +:1030F0009A8789874E815F8168858A850E94B81882 +:10310000F801E858FE4F8081C826C08206C02F5FB4 +:103110003F4F2630310569F6AACF0E946D281091E5 +:1031200077010E9458171817A1F00E945817809332 +:1031300077012B960FB6F894DEBF0FBECDBFDF919F +:10314000CF911F910F91FF90EF90DF90CF900C9453 +:10315000ED172B960FB6F894DEBF0FBECDBFDF91F3 +:10316000CF911F910F91FF90EF90DF90CF90089536 +:10317000CF93DF93CDB7DEB72B970FB6F894DEBFB2 +:103180000FBECDBF4F83588769877A878B87DE0153 +:10319000119686E0FD0111928A95E9F785E0FE011E +:1031A000379601900D928A95E1F749815A816B819A +:1031B0007C818D819E810E94CE1F2B960FB6F89444 +:1031C000DEBF0FBECDBFDF91CF910895CF9388238F +:1031D00009F4C2C0C82F823859F40E94581781FDE3 +:1031E000BBC089E30E946A220E94492389E30CC084 +:1031F000833879F40E94581780FDAEC083E50E94A1 +:103200006A220E94492383E50E94BD22CF910C943B +:103210004923843859F40E94581782FD9DC087E4E1 +:103220000E946A220E94492387E4EECF8CEF8C0F24 +:10323000813A48F48C2F0E94002D81118DC08C2F73 +:103240000E946A22E3CF80E28C0F883048F4C77076 +:1032500081E001C0880FCA95EAF70E941223D6CFF9 +:103260008BE58C0F833078F4C53A29F0C63A31F0FB +:1032700083E890E005C081E890E002C082E890E039 +:10328000CF910C94B81788E58C0F833108F064C097 +:10329000C83A39F1C93A41F1CA3A49F1CB3A51F148 +:1032A000CC3A59F1CD3A61F1C03B69F1CE3A71F1B6 +:1032B000CF3A79F1C13B81F1C23B89F1C33B91F136 +:1032C000C43B99F1C53BA1F1C63BA9F1C73BB1F1A4 +:1032D000C83BB9F1C93BC1F1CA3BC9F180E090E0FC +:1032E00038C082EE90E035C089EE90E032C08AEEC0 +:1032F00090E02FC085EB90E02CC086EB90E029C0D9 +:1033000087EB90E026C08CEC90E023C08DEC90E041 +:1033100020C083E891E01DC08AE891E01AC082E9EC +:1033200091E017C084E991E014C081E292E011C0FD +:1033300083E292E00EC084E292E00BC085E292E06C +:1033400008C086E292E005C087E292E002C08AE20D +:1033500092E0CF910C94CE17CF910895882309F471 +:103360004BC0823859F40E94581781FF45C089E349 +:103370000E946A220E94492389E30CC0833871F4B9 +:103380000E94581780FF38C083E50E946A220E947D +:10339000492383E50E94BD220C944923843859F4C3 +:1033A0000E94581782FF28C087E40E946A220E9468 +:1033B000492387E4EFCF9CEF980F913A58F390E2BE +:1033C000980F983050F4877091E001C0990F8A955A +:1033D000EAF7892F0E941823DFCF9BE5980F9330DF +:1033E00020F480E090E00C94B817885A833120F4E0 +:1033F00080E090E00C94CE170895882321F00E947D +:1034000012230C9449230895882321F00E94182345 +:103410000C9449230895BF92CF92DF92EF92FF92CE +:103420000F931F93CF93DF9300D000D000D0CDB780 +:10343000DEB725E0FC01DE01119601900D922A9580 +:10344000E1F7FC01408131810281258122952F70B5 +:1034500063817481672B09F4E5C23F3F19F44F3F44 +:1034600009F4E0C27C0149833A8389819A812E83E1 +:103470000E942922182FB92E0E9428220E94EF2094 +:10348000EB2DE295EF70F0E0E159FF4F2E810C94A7 +:10349000FE2F8B2D807F9B2D9F70F92E882319F096 +:1034A000F29480EFF822002349F0FF2009F467C26C +:1034B0008F2D0E9422230E94492361C2812F0E94E6 +:1034C000AE19FF2009F4AEC28F2D0E942823269644 +:1034D0000FB6F894DEBF0FBECDBFDF91CF911F9125 +:1034E0000F91FF90EF90DF90CF90BF900C94492305 +:1034F0003B2D307F8B2D8F70303211F08295807F85 +:10350000112319F0113021F12CC00023B9F022232E +:1035100009F4A0C1213009F09DC126960FB6F89498 +:10352000DEBF0FBECDBFDF91CF911F910F91FF90F6 +:10353000EF90DF90CF90BF900C943223222319F0AC +:10354000213009F46FC28E830E9435238E8196C18B +:10355000002321F0223008F065C27CC1211162C233 +:103560008DC1002321F0222309F474C108C2222353 +:1035700009F484C119C22B2D26952695237030E0BD +:103580002115310521F021303105D1F04BC2002346 +:1035900021F0812F9B2D937002C080E090E0269651 +:1035A0000FB6F894DEBF0FBECDBFDF91CF911F9154 +:1035B0000F91FF90EF90DF90CF90BF900C94B817D1 +:1035C000002321F0812F9B2D937002C080E090E0BA +:1035D00026960FB6F894DEBF0FBECDBFDF91CF9118 +:1035E0001F910F91FF90EF90DF90CF90BF900C94C0 +:1035F000CE17812F002319F00E94F32602C00E94EB +:103600005B2726960FB6F894DEBF0FBECDBFDF91C5 +:10361000CF911F910F91FF90EF90DF90CF90BF90CF +:103620000C94E0278B2D837009F07BC00111FAC147 +:10363000812F829586958770880F880F912F9F70B4 +:10364000C92ED12CE12CF12C082E04C0CC0CDD1C91 +:10365000EE1CFF1C0A94D2F714FF12C04FE050E09A +:1036600060E070E004C0440F551F661F771F8A9505 +:10367000D2F7CB01BA01609570958095909503C003 +:1036800060E070E0CB012B2D269526952370422F0C +:1036900050E042305105D9F04330510569F16C29B1 +:1036A0007D298E299F294130510551F126960FB66B +:1036B000F894DEBF0FBECDBFDF91CF911F910F9168 +:1036C000FF90EF90DF90CF90BF900C9416216C2963 +:1036D0007D298E299F2926960FB6F894DEBF0FBE4E +:1036E000CDBFDF91CF911F910F91FF90EF90DF90B1 +:1036F000CF90BF900C9432210E941621C701B601D1 +:1037000026960FB6F894DEBF0FBECDBFDF91CF91E6 +:103710001F910F91FF90EF90DF90CF90BF900C948E +:10372000FA20002319F08B2D817001C08695882323 +:1037300009F478C1812F829586958770880F880F4C +:10374000912F9F70C92ED12CE12CF12C082E04C092 +:10375000CC0CDD1CEE1CFF1C0A94D2F714FF12C027 +:103760004FE050E060E070E004C0440F551F661F5A +:10377000771F8A95D2F7CB01BA0160957095809535 +:10378000909503C060E070E0CB012B2D2695269527 +:103790002370422F50E042305105D9F0433051059B +:1037A00069F16C297D298E299F294130510551F1FC +:1037B00026960FB6F894DEBF0FBECDBFDF91CF9136 +:1037C0001F910F91FF90EF90DF90CF90BF900C94DE +:1037D000F0216C297D298E299F2926960FB6F89411 +:1037E000DEBF0FBECDBFDF91CF911F910F91FF9034 +:1037F000EF90DF90CF90BF900C940C220E94F021AC +:10380000C701B60126960FB6F894DEBF0FBECDBF36 +:10381000DF91CF911F910F91FF90EF90DF90CF90AC +:10382000BF900C94D421103FD1F118F4103E50F405 +:10383000A1C0123F09F463C008F44CC0133F09F45F +:1038400073C098C01F708B2D8F710023A1F00E9450 +:103850006D21812F26960FB6F894DEBF0FBECDBF27 +:10386000DF91CF911F910F91FF90EF90DF90CF905C +:10387000BF900C94FD190E948E21812F26960FB6C1 +:10388000F894DEBF0FBECDBFDF91CF911F910F9196 +:10389000FF90EF90DF90CF90BF900C94041A00231C +:1038A000A9F02111BFC08B2D8F7126960FB6F89409 +:1038B000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1038C000EF90DF90CF90BF900C94B321223008F09E +:1038D000A9C0E9CF0023A9F08B2D8F7126960FB6D2 +:1038E000F894DEBF0FBECDBFDF91CF911F910F9136 +:1038F000FF90EF90DF90CF90BF900C946D2100234C +:1039000059F38B2D8F7126960FB6F894DEBF0FBE3C +:10391000CDBFDF91CF911F910F91FF90EF90DF907E +:10392000CF90BF900C948E21002399F08B2D8F7136 +:1039300026960FB6F894DEBF0FBECDBFDF91CF91B4 +:103940001F910F91FF90EF90DF90CF90BF900C945C +:10395000582126960FB6F894DEBF0FBECDBFDF917B +:10396000CF911F910F91FF90EF90DF90CF90BF907C +:103970000C944E210023A9F0222309F4ADCF812F0E +:1039800026960FB6F894DEBF0FBECDBFDF91CF9164 +:103990001F910F91FF90EF90DF90CF90BF900C940C +:1039A000E618222309F4ADCF812F26960FB6F8949E +:1039B000DEBF0FBECDBFDF91CF911F910F91FF9062 +:1039C000EF90DF90CF90BF900C94AE194B2D4F70BD +:1039D000612FC7010E94820926960FB6F894DEBFB8 +:1039E0000FBECDBFDF91CF911F910F91FF90EF9050 +:1039F000DF90CF90BF900C9472204B2D4F70612FB1 +:103A0000C70126960FB6F894DEBF0FBECDBFDF917B +:103A1000CF911F910F91FF90EF90DF90CF90BF90CB +:103A20000C94300E26960FB6F894DEBF0FBECDBFB5 +:103A3000DF91CF911F910F91FF90EF90DF90CF908A +:103A4000BF9008950E942F230E9404230E944923BF +:103A50000E9413290E94E02780E090E00E94B8179E +:103A600080E090E00C94CE170E941F230C94221D3E +:103A70000E942922292F22952F7030E02C30310509 +:103A80004CF42A3031056CF42250310922303105D2 +:103A900088F407C02C30310549F02F30310531F062 +:103AA00009C0803E48F0803F29F406C093FB882778 +:103AB00080F9089580E0089581E00895CF93DF9321 +:103AC00000D000D01F92CDB7DEB70F900F900F90AF +:103AD0000F900F90DF91CF910895CF93DF9300D097 +:103AE00000D000D0CDB7DEB726960FB6F894DEBF73 +:103AF0000FBECDBFDF91CF9108951F93CF93DF937A +:103B0000C091860116E080918701C81799F0D0E036 +:103B10001C9FF0011D9FF00D1124E857FE4F4081BE +:103B2000518162817381848195810E946D1D2196EE +:103B3000C770E9CFDF91CF911F9108954091B801EF +:103B40005091B9016091BA017091BB018091BC01A3 +:103B50009091BD010C946D1D8091BD0182958F7077 +:103B600009F054C08091BA01882309F44FC08091B4 +:103B70008601A09187016091B8017091B9014091CF +:103B8000BB015091BC01B6E08A1709F43FC090E038 +:103B900041155105C1F17F3F11F46F3FA1F1B89F6D +:103BA000F001B99FF00D1124E857FE4F21817213E7 +:103BB0002AC02081621327C02281211124C02381C1 +:103BC00034812417350710F421503109241B350B9B +:103BD000283C3105C0F42091BD012F702061209355 +:103BE000BD0126E0289FF001299FF00D1124E35725 +:103BF000FE4F80818F708061808388EB91E00E940E +:103C00000B1A0C947D1D01968770BECF0895CF923C +:103C1000DF92EF92FF920F931F93CF93DF93CDB775 +:103C2000DEB762970FB6F894DEBF0FBECDBF8C0132 +:103C300085E0F801DE011D9601900D928A95E1F76D +:103C4000D8014C9111965C91119712966C91129734 +:103C50001396CD90DC9014973091B8017091B90112 +:103C60008091BB019091BC01009709F46BC17F3F2B +:103C700019F43F3F09F466C1E090BA01EE2009F45F +:103C8000C0C02091BD01C816D90628F0F601E81B76 +:103C9000F90BCF0104C0809590958C0D9D1DFF24DC +:103CA000F394883C910578F0F12C207F09F0C6C090 +:103CB0007C2DD98AC88A89890E945E1D88EB91E093 +:103CC0000E940B1AB1C0822F807F09F046C0751385 +:103CD00014C0341312C0611110C02F7020612093E2 +:103CE000BD010E949E1D88EB91E00E940B1A8091FD +:103CF000BD01D80115968C932EC0CD2819F15F3FD8 +:103D000011F44F3FF9F0F62E61111CC0809186012D +:103D10002091870136E0821709F45AC090E0389F5D +:103D2000F001399FF00D1124E857FE4F71815713B0 +:103D300006C07081471303C07281711103C00196E0 +:103D40008770E9CFF62E662309F418C18091BD0172 +:103D500081608093BD01F12C11C1751308C034132B +:103D600006C0611104C08091BD01D801C3C04D8758 +:103D70005E878D859E856A8B0E94381D6A8988239F +:103D8000E1F16623D1F12091BD01822F82958F70E0 +:103D900090E0029774F08091B8019091B9019887F2 +:103DA0008F831986DB86CA862C87CE0107960E94F0 +:103DB0000B1A86E0F801A8EBB1E001900D928A950C +:103DC000E1F70E94AC1D0E949E1DFF24F394D6C013 +:103DD0004D875E878D859E850E942922292F2295F9 +:103DE0002F7030E0223031050CF0BCC09F7009F01C +:103DF000B6C0805E883008F4C1C0C8010E940B1AAA +:103E0000E4CFC816D90608F453C0F601E81BF90B35 +:103E1000CF01883C910508F450C0F12C7C2DD98A43 +:103E2000C88A89890E945E1DE8EBF1E086E0DF0127 +:103E30001D928A95E9F70E949E1DA0C0751314C0BB +:103E4000341312C0611110C08091BD01F801858347 +:103E5000C8010E940B1A86E0E8EBF1E0DF011D9239 +:103E60008A95E9F7FE2C8AC04D875E878D859E85F1 +:103E70006A8B0E94381D6A89882309F4BECF6623A5 +:103E800009F4BBCF2091BD01822F82958F7090E005 +:103E900002970CF48ECF8091B8019091B9019A836A +:103EA00089831B82DD82CC822E83CE0101967FCF57 +:103EB000809590958C0D9D1DACCFF62E662309F450 +:103EC0009CCF75132EC034132CC02091BD0120FD52 +:103ED0001FC0822F82958F70D9F0D80115962C9330 +:103EE00015978F3049F08F5F982F9295907F822F92 +:103EF0008F70892B15968C93C8010E940B1A86E04F +:103F0000F801A8EBB1E001900D928A95E1F793CF0B +:103F100086E0F801A8EBB1E001900D928A95E1F7F7 +:103F20002DC04D875E878D859E850E94381D81112D +:103F300040CF8091BD0181608093BD01C8010E9486 +:103F40000B1A1CC0662309F458CF4D875E878D85F8 +:103F50009E850E94381D882309F44FCF2ACF8111F6 +:103F600048CF0CC0243031050CF047CF9F7009F4C6 +:103F700040CFF8019581907F09F03BCF8F2D62965D +:103F80000FB6F894DEBF0FBECDBFDF91CF911F916A +:103F90000F91FF90EF90DF90CF9008951F93CF93F4 +:103FA000DF93CDB7DEB72C970FB6F894DEBF0FBE08 +:103FB000CDBF4F83588769877A878B879C87CE01CF +:103FC00007960E94071E882369F08F8198852A85AD +:103FD0003B85232BF1F19F3F09F063C08F3F09F030 +:103FE00060C037C086E0FE013796DE011196019071 +:103FF0000D928A95E1F76F817885EA85FB85309788 +:1040000041F17F3F11F46F3F21F12091870130E0B2 +:10401000C9010196877099274091860150E0841765 +:10402000950709F447C069837A83FD83EC8396E0A2 +:10403000929FD001939FB00D1124A857BE4FFE014F +:10404000319601900D929A95E1F7809387010E9435 +:104050007D1D16E080918601909187018917C1F13D +:10406000189FC001112488579E4F0E94071E882365 +:1040700079F1E09186011E9FF0011124E857FE4F6F +:104080004081518162817381848195810E946D1D7F +:104090008091860190E00196877099278093860130 +:1040A000D9CF4F81588569857A858B859C850E94FB +:1040B0006D1DCFCF0E94341D109287011092860192 +:1040C000E8EBF1E086E0DF011D928A95E9F7C1CFC8 +:1040D0002C960FB6F894DEBF0FBECDBFDF91CF9107 +:1040E0001F910895EF92FF920F931F93CF93DF9349 +:1040F0008C01892B09F46CC0F12CEE24E394E801C7 +:104100002196F8018491843740F4843008F051C03E +:10411000813081F0823019F15BC0853709F444C0E9 +:10412000A8F19CE7980F903708F052C08F770E9453 +:10413000AE1941C00E5F1F4FFE01C49180E28C0F8B +:10414000883048F4C7708E2D01C0880FCA95EAF7F1 +:104150000E94222314C08C2F0E94E6182DC00E5FEF +:104160001F4FFE01C49180E28C0F883058F4C77055 +:104170008E2D01C0880FCA95EAF70E9428230E945D +:1041800049231AC08C2F0E94AE1916C00E5F1F4F14 +:10419000FE01C491CC2381F08FE99FE00197F1F7F4 +:1041A00000C00000C150F6CF0E5F1F4FFE01F4901B +:1041B00003C00E94E6188E018F2D882309F49FCF3B +:1041C000EFE9FFE03197F1F700C000008150F5CF33 +:1041D000DF91CF911F910F91FF90EF900895089577 +:1041E0006093C2017093C3018093C4019093C50191 +:1041F0000C94221D0F931F930091C2011091C301D3 +:104200002091C4013091C501DC01CB01802B912BA1 +:10421000A22BB32B8093C2019093C301A093C4013E +:10422000B093C5011F910F910C94221D0F931F9302 +:104230000091C2011091C3012091C4013091C501C8 +:10424000DC01CB0180239123A223B3238093C201FD +:104250009093C301A093C401B093C5011F910F9126 +:104260000C94221D0F931F930091C2011091C30162 +:104270002091C4013091C501DC01CB018027912739 +:10428000A227B3278093C2019093C301A093C401D6 +:10429000B093C5011F910F910C94221D1092BE0185 +:1042A0001092BF011092C0011092C1010C94221D06 +:1042B00041E050E060E070E004C0440F551F661F0D +:1042C000771F8A95D2F74093BE015093BF01609348 +:1042D000C0017093C1010C94221D41E050E060E0E8 +:1042E00070E004C0440F551F661F771F8A95D2F7F0 +:1042F0008091BE019091BF01A091C001B091C10118 +:10430000482B592B6A2B7B2B4093BE015093BF0146 +:104310006093C0017093C1010C94221D41E050E0F4 +:1043200060E070E004C0440F551F661F771F8A9538 +:10433000D2F740955095609570958091BE0190910F +:10434000BF01A091C001B091C101482359236A2344 +:104350007B234093BE015093BF016093C0017093D3 +:10436000C1010C94221D41E050E060E070E004C007 +:10437000440F551F661F771F8A95D2F78091BE01A3 +:104380009091BF01A091C001B091C1014827592768 +:104390006A277B274093BE015093BF016093C00101 +:1043A0007093C1010C94221D0F931F930091BE01C5 +:1043B0001091BF012091C0013091C101DC01CB01FE +:1043C000802B912BA22BB32B8093BE019093BF0126 +:1043D000A093C001B093C1011F910F910C94221DB5 +:1043E0000F931F930091BE011091BF012091C00156 +:1043F0003091C101DC01CB0180239123A223B3239F +:104400008093BE019093BF01A093C001B093C101FE +:104410001F910F910C94221D0F931F930091BE01C9 +:104420001091BF012091C0013091C101DC01CB018D +:1044300080279127A227B3278093BE019093BF01C5 +:10444000A093C001B093C1011F910F910C94221D44 +:104450000895CF92DF92EF92FF920F931F93CF9325 +:10446000DF938C01C090C201D090C301E090C401E1 +:10447000F090C5014091BE015091BF016091C00113 +:104480007091C101C42AD52AE62AF72ACFE1D0E0EB +:10449000D701C6010C2E04C0B695A79597958795B0 +:1044A0000A94D2F780FF07C0B8018C2F0E94530EE8 +:1044B0008130910531F4219758F7B80180E00E94CE +:1044C000530EDF91CF911F910F91FF90EF90DF90EE +:1044D000CF90089590910C01992321F090910D01B6 +:1044E000911109C020910E0130910F01F90132960E +:1044F0009FEF40E030C0982F9695969596959F3007 +:10450000A0F4E0910E01F0910F01E90FF11D877009 +:1045100021E030E0A90102C0440F551F8A95E2F75F +:10452000CA019181892B818308959091D90190FFCF +:1045300023C01F928F938CEE98E09F938F930E94DD +:1045400079090F900F900F900F9008959F3F39F0C9 +:104550004F5F4E3041F051915813F8CF0DC05111BB +:10456000F7CF942FF5CF9F3F39F0F901E90FF11DF7 +:1045700097FDFA9582830895089590910C019923EF +:1045800021F090910D01911109C020910E013091FF +:104590000F01F9013296205F3F4F30C0982F96955A +:1045A000969596959F30A8F4E0910E01F0910F0139 +:1045B000E90FF11D877021E030E0A90102C0440F2E +:1045C000551F8A95E2F7CA018095918189238183DD +:1045D00008959091D90190FF16C01F928F938EEC91 +:1045E00098E09F938F930E9479090F900F900F90FE +:1045F0000F9008953196E217F30729F090819813F0 +:10460000F9CF1082F7CF089581E090E0E0910E019C +:10461000F0910F01E80FF91F10820196803191058A +:10462000A9F708959091D801892B8093D801089516 +:1046300080959091D80189238093D8010895109294 +:10464000D80108959091D701892B8093D7010895BF +:1046500080959091D70189238093D7010895109276 +:10466000D70108958093C60108951092C601089558 +:1046700080910E0190910F01FC0131969C01205F09 +:104680003F4F80E0919191118F5FE217F307D1F7CF +:104690000895E0910E01F0910F018091D80180837F +:1046A000E0910E01F0910F0190818091D701892B4B +:1046B00080838091C601882361F0E0910E01F09122 +:1046C0000F019081892B80830E94382381111092E1 +:1046D000C60180910E0190910F010C946417909384 +:1046E0003B0180933A010895CF92DF92EF92FF92BF +:1046F0006C01EE24FF24C114D104E104F10421F083 +:10470000C701B60120E101C020E0C72ED82EE92E56 +:10471000FF24C114D104E104F10419F0285FC7019A +:10472000B6016B017C0154E0F694E794D794C794EA +:104730005A95D1F7C114D104E104F10419F02C5FAA +:10474000C701B6016B017C0142E0F694E794D7946F +:10475000C7944A95D1F7C114D104E104F10419F0CA +:104760002E5FC701B601DC01CB01B695A7959795E1 +:104770008795892B8A2B8B2B09F02F5F822FFF9037 +:10478000EF90DF90CF9008958295982F9C7C392FE1 +:1047900036953695282F237344E0249FC0011124B9 +:1047A000932F982B292F2A7A2695892F8575880F84 +:1047B000822B08951F93CF93DF931F92CDB7DEB75F +:1047C00099830E94C423182F9981892F0E94C423A2 +:1047D000212F30E0322F2227A901482BCA010F9048 +:1047E000DF91CF911F9108958091F201843009F1FA +:1047F0001092DA0120E488E190E00FB6F894A895D1 +:10480000809360000FBE2093600083B7817F846037 +:1048100083BF83B7816083BF7894889583B78E7F89 +:1048200083BF88E10FB6F894809360001092600017 +:104830000FBE089508950895CF930E941A240E94F0 +:10484000F80B0E941B24C0E08C2F0E94240D8111C4 +:1048500004C0CF5FCE30C1F701C081E0CF91089591 +:104860000E94341D0E9458170C948A0F82E084BD68 +:1048700093E095BD9AEF97BD80936E0008952FB792 +:10488000F8948091DB019091DC01A091DD01B09161 +:10489000DE012FBF0895CF92DF92EF92FF920F9328 +:1048A0001F932FB7F8944091DB015091DC01609188 +:1048B000DD017091DE012FBF6A017B01EE24FF2430 +:1048C0008C0120E030E0C016D106E206F30610F4B9 +:1048D000415051099A01281B390BC9011F910F91B1 +:1048E000FF90EF90DF90CF9008951F920F920FB638 +:1048F0000F9211248F939F93AF93BF938091DB010D +:104900009091DC01A091DD01B091DE010196A11D25 +:10491000B11D8093DB019093DC01A093DD01B09386 +:10492000DE01BF91AF919F918F910F900FBE0F90BD +:104930001F9018950E945614F8942FEF87EA91E67D +:10494000215080409040E1F700C0000087E090EBEC +:10495000DC018093FB019093FC01A093FD01B093D7 +:10496000FE019CE088E10FB6F894A8958093600062 +:104970000FBE90936000FFCFEF92FF920F931F93B3 +:10498000CF93DF93D82FC0E08C2F0E94240D00E03E +:1049900010E0E82EF12CC701002E02C095958795F6 +:1049A0000A94E2F780FD06C00F5F1F4F0630110525 +:1049B00091F709C0602F7C2F80E00E94310ED81340 +:1049C000F3CF81E004C0CF5FCE30F1F680E0DF911D +:1049D000CF911F910F91FF90EF900895CF93C82F23 +:1049E0008CE20E94BC24882321F08C2FCF910C9460 +:1049F000BC2480E0CF910895CF930E944B26811173 +:104A000002C00E94312681E199E00E94E008C5E6DB +:104A1000C15049F00E94F80B8FE39CE90197F1F730 +:104A200000C00000F5CF8AE099E00E94E00889E22A +:104A30000E94EE24811113C18AE20E94EE248111AA +:104A40000E94312685E00E94EE2481110E949A2462 +:104A50000E9456268093D90187E00E94EE24882385 +:104A6000A9F18BE10E94EE24882351F08091D901B5 +:104A700081FB222720F991E0922790FB81F90EC05B +:104A80008EE00E94EE24882361F08091D90182FBA0 +:104A9000222720F991E0922790FB82F98093D90197 +:104AA00015C080E10E94EE249091D901882341F045 +:104AB00093FB222720F981E0822780FB93F904C031 +:104AC000892F809580FB90F99093D9018091D9012D +:104AD0000E945A260E9468268093EC0180EE0E9474 +:104AE000EE24882341F08091EC01982F909590FB63 +:104AF00080F98093EC0189E30E94EE24882359F029 +:104B00008091EC0181FB222720F991E0922790FB14 +:104B100081F98093EC0182EE0E94EE24882359F003 +:104B20008091EC0182FB222720F991E0922790FBF3 +:104B300082F98093EC0186EE0E94EE24882359F0DE +:104B40008091EC0183FB222720F991E0922790FBD2 +:104B500083F98093EC0183EE0E94EE24882359F0C0 +:104B60008091EC0184FB222720F991E0922790FBB1 +:104B700084F98093EC0185E30E94EE24882359F0A8 +:104B80008091EC0185FB222720F991E0922790FB90 +:104B900085F98093EC0181E30E94EE24882359F08B +:104BA0008091EC0186FB222720F991E0922790FB6F +:104BB00086F98093EC0181E10E94EE24882359F06C +:104BC0008091EC0187FB222720F991E0922790FB4E +:104BD00087F98093EC018091EC010E946C26809112 +:104BE000EC0187FB882780F980930D0187E20E9402 +:104BF000EE24C82F8EE10E94EE248111C2608FE165 +:104C00000E94EE248111C46080E20E94EE24811192 +:104C1000C86081E20E94EE248111C06182E20E949C +:104C2000EE248111C06283E20E94EE248111C064EF +:104C300084E20E94EE24882311F0C06802C0CC23D5 +:104C400029F08C2F0E9463266C2F03C00E945F26E0 +:104C5000682F70E080E090E0CF910C94F020CF912D +:104C600008956DEE7EEF80E090E00E94343060E0C9 +:104C700082E090E00E94263060E083E090E00E94B5 +:104C8000263060E084E090E00E94263060E085E01D +:104C900090E00C94263080E090E00E94203021E0EB +:104CA0008D3E9E4F09F020E0822F089582E090E033 +:104CB0000C941830682F82E090E00C94263083E04A +:104CC00090E00C941830682F83E090E00C9426302C +:104CD00084E090E00C941830682F84E090E00C940D +:104CE00026308091E10180FF0BC06091130185E0C7 +:104CF000689FB001112475956795759567952BC0D0 +:104D000081FF09C06091130185E0689FB001112403 +:104D10007595679520C082FF07C06091130185E0FB +:104D2000689FB001112417C09091E2019923D1F03E +:104D300060911201961788F72091130185E0289F52 +:104D400090011124929FA001939F500D112470E0B7 +:104D5000CA010E94EA2F6038710540F4611571059F +:104D600039F002C065E070E0862F08958FE708955E +:104D700081E008958091E10180FF08C060911101F8 +:104D800070E0759567957595679521C081FF06C0A0 +:104D90006091110170E07595679519C082FF04C09C +:104DA0006091110170E010C09091E2019923C1F06F +:104DB000609110019617A0F780911101899FC001A1 +:104DC000112470E00E94EA2F6038710528F4611503 +:104DD000710521F0862F08958FE7089581E00895E9 +:104DE00061E070E0F4CF803F21F40E94712681954C +:104DF00004C0813F29F40E9471268093E501089543 +:104E0000823F21F40E947126819504C0833F29F4DA +:104E10000E9471268093E4010895893F19F40E944D +:104E2000BA2605C08A3F31F40E94BA268195809344 +:104E3000E60108958B3F21F40E94BA26819504C0B3 +:104E40008C3F29F40E94BA268093E7010895843F9D +:104E500021F48091E301816017C0853F21F48091A6 +:104E6000E301826011C0863F21F48091E3018460F8 +:104E70000BC0873F21F48091E301886005C0883F23 +:104E800031F48091E30180618093E30108958D3FC7 +:104E900021F48091E10181600BC08E3F21F480916B +:104EA000E101826005C08F3F29F48091E1018460B7 +:104EB0008093E1010895803F39F48091E50187FFF7 +:104EC0006CC01092E50169C0813F29F48091E50131 +:104ED0001816BCF362C09091E401823F29F497FF59 +:104EE0005CC01092E40159C0833F19F41916CCF349 +:104EF00054C0893F41F48091E60118160CF04DC072 +:104F00001092E6014AC08A3F29F48091E60187FFAA +:104F100044C0F6CF8B3F39F48091E70187FF3DC055 +:104F20001092E7013AC08C3F29F48091E7011816EE +:104F3000BCF333C0843F21F48091E3018E7F17C01E +:104F4000853F21F48091E3018D7F11C0863F21F4DC +:104F50008091E3018B7F0BC0873F21F48091E301B7 +:104F6000877F05C0883F31F48091E3018F7E809375 +:104F7000E30113C08D3F21F48091E1018E7F0BC0CE +:104F80008E3F21F48091E1018D7F05C08F3F29F490 +:104F90008091E1018B7F8093E1018091E401811197 +:104FA0000EC08091E50181110AC08091E601811156 +:104FB00006C08091E701811102C01092E2010895BC +:104FC0008091D90183FF7EC08DE499E00E94E008C2 +:104FD0008091E3011F928F9388E499E09F938F93D0 +:104FE0000E94790986E499E00E94E0088091E4013A +:104FF000282F332727FD30953F938F9383E499E043 +:105000009F938F930E94790981E499E00E94E008C0 +:105010008091E501282F332727FD30953F938F930B +:105020008EE399E09F938F930E9479098CE399E036 +:105030000E94E0088091E601282F332727FD309554 +:105040003F938F9389E399E09F938F930E9479090F +:1050500087E399E00E94E0088091E701282F332739 +:1050600027FD30953F938F9384E399E09F938F932F +:105070000E94790981E399E00E94E0088091E201B1 +:105080001F928F938EE299E09F938F930E947909EC +:105090008CE299E00E94E0088091E1011F928F93D9 +:1050A00089E299E09F938F930E94790986E299E0C3 +:1050B0000E94E0088DB79EB74C960FB6F8949EBF3D +:1050C0000FBE8DBF83EE91E00E94AD170E943F247A +:1050D0009093E0018093DF0108951F93CF93DF93B6 +:1050E0008091DF019091E0010E944B24AC019091EE +:1050F000E201992321F02091140130E006C02091B3 +:1051000015018AE0289F900111244217530708F4E3 +:1051100086C08091E401C091E501D091E601109133 +:10512000E701811107C0C11176C0D11174C01111FE +:1051300072C075C09F3F19F09F5F9093E2011816EF +:1051400024F40E9471268093E4018091E40187FF9A +:1051500005C00E94712681958093E4011C1624F4F9 +:105160000E9471268093E5018091E50187FF05C0CB +:105170000E94712681958093E5016091E401662388 +:1051800039F1C091E501CC2319F1772767FD7095BE +:10519000872F972F0E94EF2E23E333E343E35FE350 +:1051A0000E94532F0E94BC2E6093E4016C2F77273E +:1051B00067FD7095872F972F0E94EF2E23E333E32F +:1051C00043E35FE30E94532F0E94BC2E6093E501EE +:1051D0001D1624F40E94BA268093E6018091E60110 +:1051E00087FF05C00E94BA2681958093E6011116BB +:1051F00024F40E94BA268093E7018091E70187FF9B +:1052000005C00E94BA2681958093E701DF91CF9176 +:105210001F910C94E0279F3F09F08ECF96CFDF912E +:10522000CF911F910895E3EEF1E085E0DF011D923B +:105230008A95E9F71092E2011092E101089580E762 +:105240009BE00E94E0081F9281E08F931F9285E00F +:105250008F9382E29BE09F938F930E9479090F9036 +:105260000F900F900F900F900F9008958330E9F1F9 +:1052700028F4813061F0823009F10895853009F415 +:1052800062C008F449C0863009F474C00895809162 +:105290001501262F30E0280F311D2F3F310524F452 +:1052A000680F6093150103C08FEF80931501809103 +:1052B00015011F928F938BE59AE072C080911401C3 +:1052C000262F30E0280F311D2F3F310524F4680FC1 +:1052D0006093140103C08FEF809314018091140137 +:1052E0001F928F9389E49AE05BC080911301262F6F +:1052F00030E0280F311D2F3F310524F4680F6093F3 +:10530000130103C08FEF80931301809113011F924B +:105310008F9386E39AE044C080911201262F30E0FB +:10532000280F311D2F3F310524F4680F60931201BF +:1053300003C08FEF80931201809112011F928F930F +:1053400081E29AE02DC080911101262F30E0280FD4 +:10535000311D2F3F310524F4680F6093110103C004 +:105360008FEF80931101809111011F928F9388E03C +:105370009AE016C080911001262F30E0280F311DD1 +:105380002F3F310524F4680F6093100103C08FEFA5 +:1053900080931001809110011F928F938DEE99E000 +:1053A0009F938F930E9479090F900F900F900F9009 +:1053B0000895833081F128F4813059F08230D1F0A2 +:1053C0000895853009F449C0B8F1863009F456C013 +:1053D000089580911501681720F4861B80931501AC +:1053E00002C010921501809115011F928F938EEDCE +:1053F00099E054C080911401681720F4861B8093B3 +:10540000140102C010921401809114011F928F9315 +:105410008CEC99E043C080911301681720F4861B3F +:105420008093130102C010921301809113011F9207 +:105430008F9389EB99E032C080911201681720F4B4 +:10544000861B8093120102C01092120180911201FA +:105450001F928F9384EA99E021C08091110168170F +:1054600020F4861B8093110102C0109211018091DB +:1054700011011F928F938BE899E010C08091100169 +:10548000681720F4861B8093100102C0109210014F +:10549000809110011F928F9380E799E09F938F93E3 +:1054A0000E9479090F900F900F900F900895CF935D +:1054B000C82F1F928F9385E79CE09F938F930E9444 +:1054C000790981E090E0A0E0B0E0BC01CD0104C02A +:1054D000660F771F881F991FCA95D2F70E94F02088 +:1054E0000F900F900F900F90CF910C94341DCF938D +:1054F0008D3109F465C0B0F58E3009F4CCC100F5EA +:10550000873009F49BC1A8F4863009F06DC2809100 +:10551000D901817F8E7F8093D9018AE79CE00E9428 +:10552000E0088CEB90E10E94E00881E08093E901C3 +:1055300080C1883009F44FC08B3009F47CC154C25B +:10554000863109F4F0C138F4803109F4B8C18131F1 +:1055500009F430C249C2893109F4CEC18B3109F452 +:1055600086C142C2853309F437C248F4873209F450 +:1055700033C208F433C2893209F42EC235C28334EF +:1055800038F48A3308F02CC2883309F454C12CC291 +:10559000833409F421C2883409F026C20E94341DE4 +:1055A0008BEA90E10E94E0089FEF23ED80E39150A9 +:1055B00020408040E1F700C000000E949A2439C1D9 +:1055C0008BEC90E10E94E0080E94762E0E94581712 +:1055D0000E948A0F2EC180EC90E10E94E0088BE8C7 +:1055E0009EE00E94E0080E945F261F928F9388E849 +:1055F0009EE09F938F930E94790986E89EE00E9427 +:10560000E0080E945626C82F83E79EE00E94E0082B +:105610001F92CF938EE69EE09F938F930E9479090D +:105620008CE69EE00E94E00882E69EE00E94E00890 +:105630008C2F81701F928F938FE59EE09F938F93A5 +:105640000E9479098DE59EE00E94E00883E59EE0D6 +:105650000E94E008C1FB882780F91F928F9380E5A4 +:105660009EE09F938F930E9479098EE49EE00E94B2 +:10567000E00882E49EE00E94E008C2FB882780F9EF +:105680001F928F938FE39EE09F938F930E947909DF +:105690008DE39EE00E94E00884E39EE00E94E00823 +:1056A000C3FBCC27C0F91F92CF9381E39EE09F9369 +:1056B0008F930E9479098FE29EE00E94E0080E9489 +:1056C0006826C82F8BE19EE00E94E0081F92CF93CE +:1056D00086E19EE09F938F930E94790984E19EE08A +:1056E0000E94E0088BEF9DE00E94E0088C2F817003 +:1056F0001F928F9388EF9DE09F938F930E9479096B +:105700008DB79EB780960FB6F8949EBF0FBE8DBF23 +:1057100086EF9DE00E94E0088FED9DE00E94E0088A +:10572000C1FB882780F91F928F938CED9DE09F939A +:105730008F930E9479098AED9DE00E94E00888EC31 +:105740009DE00E94E008C2FB882780F91F928F939A +:1057500085EC9DE09F938F930E94790983EC9DE0F7 +:105760000E94E00881EB9DE00E94E008C3FB8827CF +:1057700080F91F928F938EEA9DE09F938F930E94F2 +:1057800079098CEA9DE00E94E00882EA9DE00E948F +:10579000E008C4FB882780F91F928F938FE99DE072 +:1057A0009F938F930E9479098DE99DE00E94E00804 +:1057B0008BE89DE00E94E008C5FB882780F91F92D6 +:1057C0008F9388E89DE09F938F930E94790986E8E4 +:1057D0009DE00E94E0088AE69DE00E94E008C6FB8A +:1057E000882780F91F928F9387E69DE09F938F9380 +:1057F0000E94790985E69DE00E94E0088DE59DE024 +:105800000E94E008C7FBCC27C0F91F92CF938AE51E +:105810009DE09F938F930E94790988E59DE00E9407 +:10582000E0088DB79EB74C960FB6F8949EBF0FBE9A +:105830008DBFC1E0DEC081EA9CE05BC08091D901F0 +:10584000C82FC17080FF09C08EE990E10E94E00876 +:105850008091D901817F8E7F47C082E990E10E94CB +:10586000E0088091D90181608093D901E2CF9091C5 +:10587000D90191FBCC27C0F981E0C827892FC0FB53 +:1058800081F98093D901CC2319F085E890E127C0F4 +:1058900087E790E12EC09091D90192FBCC27C0F907 +:1058A00081E0C827892FC0FB82F98093D901CC23DE +:1058B00019F088E690E113C088E590E11AC0909154 +:1058C000D90193FBCC27C0F981E0C827892FC0FB01 +:1058D00083F98093D901CC2351F08CE490E10E94AC +:1058E000E0088091D90181608093D90182C08FE363 +:1058F00090E10E94E0089DCF80E390E10E94E008E3 +:1059000084E090E10E94E00887EC9FE00E94E008BC +:105910008AE99FE00E94E00886E59FE00E94E00897 +:105920008BE29FE0E6CF8DE19FE00E94E0080E94BD +:1059300058171F928F9383E09FE09F938F930E944D +:10594000790980910C011F928F938CEE9EE09F93BA +:105950008F930E947909809170011F928F9389ED36 +:105960009EE09F938F930E94790980910D011F9271 +:105970008F9386EC9EE09F938F930E94790980918C +:10598000DB019091DC01A091DD01B091DE01BF93BC +:10599000AF939F938F9382EB9EE09F938F930E9490 +:1059A00079098DB79EB746960FB6F8949EBF0FBE85 +:1059B0008DBF3FCF0E94341DC0910D0181E0C827EB +:1059C000C0930D01CC2329F088EA9EE00E94E008F4 +:1059D00010C08DE99EE08DCF80E003C08D5101C0E5 +:1059E00089530E94572A25CF8BE99EE00E94E00848 +:1059F000C0E08C2FCF91089580E0089580E0089555 +:105A0000CF93C82F8091E901813081F020F082305E +:105A100009F44FC045C1E0910E01F0910F01808162 +:105A2000813169F0823209F03DC109C0E0910E0177 +:105A3000F0910F018081813111F0823261F48C2F5D +:105A40000E94FC2C811104C08C2F0E94772A2FC049 +:105A500081E090E02CC08C2F0E94FE2C811126C08A +:105A6000C431E1F070F4CB3081F0C031D1F40E9448 +:105A70001F298DE69CE00E94E00882E08093E90106 +:105A800015C0C93259F0C83361F48AE79CE00E941E +:105A9000E00881E79CE00E94E00808C01092E9015C +:105AA00003C18BE69CE00E94E008FEC081E08170AB +:105AB000FDC0C43220F5CE3108F0C0C0CB3099F122 +:105AC000C8F4C73009F0D2C08AE08093150194E190 +:105AD0009093140193E0909313018093120188E056 +:105AE0008093110188E28093100181E19BE00E9484 +:105AF000E008BFC0C33149F1C431C1F0B7C0CB34F5 +:105B000009F4A9C028F4C93289F0C83361F0AEC0E5 +:105B1000C13509F49EC0C23509F499C0CE3409F0EC +:105B2000A5C06AE09EC00E941F29A3C08091E80121 +:105B3000882319F01092E8019CC08EE19BE00E943E +:105B4000E00881E08093E901B1C088EF9AE00E940B +:105B5000E00886EE9AE00E94E008809115011F920D +:105B60008F9383EE9AE09F938F930E94790981EE41 +:105B70009AE00E94E0088FEC9AE00E94E008809191 +:105B800014011F928F938CEC9AE09F938F930E9445 +:105B900079098AEC9AE00E94E0088BEB9AE00E9477 +:105BA000E008809113011F928F9388EB9AE09F93F6 +:105BB0008F930E94790986EB9AE00E94E00885EABB +:105BC0009AE00E94E008809112011F928F9382EA6E +:105BD0009AE09F938F930E94790980EA9AE00E944D +:105BE000E0088BE89AE00E94E008809111011F9282 +:105BF0008F9388E89AE09F938F930E94790986E8B3 +:105C00009AE00E94E0088FE69AE00E94E008809106 +:105C100010011F928F938CE69AE09F938F930E94BE +:105C200079098AE69AE00E94E0088DB79EB7489607 +:105C30000FB6F8949EBF0FBE8DBF1BC0CE51EC2F88 +:105C4000F0E0E15DFE4F80818093E80112C061E0E9 +:105C500003C061E006C06AE08091E8010E94362935 +:105C600008C08091E8010E94D92903C08FE09BE021 +:105C700013C08091E801882369F01F928F9389E017 +:105C80009BE09F938F930E9479090F900F900F9044 +:105C90000F9004C086E09BE00E94E00881E006C00F +:105CA0001092E90180E002C080E001CFCF91089519 +:105CB000E1E8F0E08081886080838081816080837A +:105CC0008FB7F89493E09093890090ED90938800BB +:105CD0008FBF0895EFE6F0E08081826080830895B1 +:105CE000EFE6F0E080818D7F80830895EFE6F0E0BD +:105CF000908182E08927808308951F920F920FB6CA +:105D00000F9211242F933F934F935F936F937F9341 +:105D10008F939F93AF93BF93EF93FF938091EA018B +:105D20009091EB0101969093EB018093EA01811130 +:105D300003C082E00E948A0FE091EB01E695E695B0 +:105D4000F0E0E552FF4EE4918091EA018E1303C02A +:105D500080E00E948A0FFF91EF91BF91AF919F91D8 +:105D60008F917F916F915F914F913F912F910F9004 +:105D70000FBE0F901F90189504D06894B1118DC07C +:105D8000089570D088F09F5790F0B92F9927B75198 +:105D9000A0F0D1F0660F771F881F991F1AF0BA95EF +:105DA000C9F712C0B13081F077D0B1E0089574C066 +:105DB000672F782F8827B85F39F0B93FCCF38695E5 +:105DC00077956795B395D9F73EF490958095709542 +:105DD00061957F4F8F4F9F4F0895E89409C097FBBF +:105DE0003EF490958095709561957F4F8F4F9F4FB2 +:105DF0009923A9F0F92F96E9BB279395F6958795F6 +:105E000077956795B795F111F8CFFAF4BB0F11F4B8 +:105E100060FF1BC06F5F7F4F8F4F9F4F16C088235F +:105E200011F096E911C0772321F09EE8872F762F95 +:105E300005C0662371F096E8862F70E060E02AF0D6 +:105E40009A95660F771F881FDAF7880F96958795C2 +:105E500097F9089557FD9058440F551F59F05F3F2B +:105E600071F04795880F97FB991F61F09F3F79F07C +:105E700087950895121613061406551FF2CF4695FE +:105E8000F1DF08C0161617061806991FF1CF869580 +:105E90007105610508940895E894BB276627772764 +:105EA000CB0197F908950BD078C069D028F06ED057 +:105EB00018F0952309F05AC05FC01124EECFCADF55 +:105EC000A0F3959FD1F3950F50E0551F629FF0010D +:105ED000729FBB27F00DB11D639FAA27F00DB11D66 +:105EE000AA1F649F6627B00DA11D661F829F2227EF +:105EF000B00DA11D621F739FB00DA11D621F839F76 +:105F0000A00D611D221F749F3327A00D611D231F4B +:105F1000849F600D211D822F762F6A2F11249F5799 +:105F200050408AF0E1F088234AF0EE0FFF1FBB1FBC +:105F3000661F771F881F91505040A9F79E3F51055B +:105F400070F014C0AACF5F3FECF3983EDCF3869567 +:105F500077956795B795F795E7959F5FC1F7FE2B06 +:105F6000880F911D9695879597F9089597F99F67E2 +:105F700080E870E060E008959FEF80EC08950024D1 +:105F80000A941616170618060906089500240A949E +:105F900012161306140605060895092E0394000C24 +:105FA00011F4882352F0BB0F40F4BF2B11F460FFB3 +:105FB00004C06F5F7F4F8F4F9F4F0895991B79E00B +:105FC00004C0991F961708F0961B881F7A95C9F789 +:105FD0008095089597FB072E16F4009407D077FD5F +:105FE00009D00E94043007FC05D03EF490958195BD +:105FF0009F4F0895709561957F4F0895EE0FFF1F95 +:106000000590F491E02D0994AA1BBB1B51E107C038 +:10601000AA1FBB1FA617B70710F0A61BB70B881F38 +:10602000991F5A95A9F780959095BC01CD010895C7 +:10603000F999FECF92BD81BDF89A992780B5089550 +:10604000A8E1B0E042E050E00C943B30262FF999F3 +:10605000FECF1FBA92BD81BD20BD0FB6F894FA9A4B +:10606000F99A0FBE019608950E942630272F0C94AE +:106070002730DC01CB01FC01F999FECF06C0F2BD4F +:10608000E1BDF89A319600B40D9241505040B8F7F6 +:066090000895F894FFCF13 +:1060960020028B0F7C1059102510F10F0101C7014A +:1060A60028080A03140A3F4D3620395B080E08D823 +:1060B60007B8077F07F2060B0724073D075D0701B0 +:0A60C60002030405060708090000A4 :00000001FF -- cgit v1.2.3 From fbfb034337a7b612bfcce00c62c0bdf4cec0d8c2 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Wed, 2 Mar 2016 08:40:38 +0100 Subject: updated version, changed F-Key-Layout, minor change in code layer --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 14 +- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 2946 ++++++++++++------------- 2 files changed, 1479 insertions(+), 1481 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index e75187202..4e88376e4 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -74,15 +74,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | F6 | | L5 | F7 | F8 | F9 | F10 | F11 | F12 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | ! | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | + * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | + | - | . | ! | | + * | | | | | | | + | - | . | ; | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -104,11 +104,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_DEL,KC_TRNS, // right hand - 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), LALT(KC_7), DE_HASH, KC_F12, + M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - DE_PLUS, DE_MINS, KC_DOT, KC_EXLM, KC_TRNS, + DE_PLUS, DE_MINS, KC_DOT, LSFT(DE_COMM), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 8d74fd599..5346f1bdf 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,19 +1,19 @@ -:100000000C948E080C94D2080C94D2080C94D2084C -:100010000C94D2080C94D2080C94D2080C94D208F8 -:100020000C94D2080C94D2080C94D1140C94A315FF -:100030000C94D2080C94D2080C94D2080C94D208D8 -:100040000C94D2080C947D2E0C94D2080C94D208F7 -:100050000C94D2080C9475240C94D2080C94D208F9 -:100060000C94D2080C94D2080C94D2080C94D208A8 -:100070000C94D2080C94D2080C94D2080C94D20898 -:100080000C94D2080C94D2080C94D2080C94D20888 -:100090000C94D2080C94D2080C94D2080C94D20878 -:1000A0000C94D2080C94D2080C94D20890099A09A6 -:1000B000B209CA09120A180A390A1E0A340A2A0A97 -:1000C0002F0A240AFA09E2093E0A101632162017EE -:1000D0003216201777169A162017EF160217491AAC -:1000E000491A781A781ABB1AF91A121D121D121B16 -:1000F000121D131C131CE61C121D121DFD1C01E118 +:100000000C9485080C94C9080C94C9080C94C90870 +:100010000C94C9080C94C9080C94C9080C94C9081C +:100020000C94C9080C94C9080C94C4140C9496152B +:100030000C94C9080C94C9080C94C9080C94C908FC +:100040000C94C9080C94702E0C94C9080C94C9081F +:100050000C94C9080C9468240C94C9080C94C90821 +:100060000C94C9080C94C9080C94C9080C94C908CC +:100070000C94C9080C94C9080C94C9080C94C908BC +:100080000C94C9080C94C9080C94C9080C94C908AC +:100090000C94C9080C94C9080C94C9080C94C9089C +:1000A0000C94C9080C94C9080C94C90887099109D3 +:1000B000A909C109090A0F0A300A150A2B0A210ADF +:1000C000260A1B0AF109D909350A03162516131742 +:1000D000251613176A168D161317E216F5163C1A15 +:1000E0003C1A6B1A6B1AAE1AEC1A051D051D051B7E +:1000F000051D061C061CD91C051D051DF01C01E173 :100100000137023702E10138023801E201250225F8 :1001100002E20001E10137023702E1013802380151 :10012000E10130023002E10001E10137023702E172 @@ -34,23 +34,23 @@ :100210000004001D710D304D831F001A0016001BD5 :10022000000C304C002000080007000600E1042A02 :10023000002100150009001900E1084A00220017FA -:10024000000A000500000003300130E3000000E276 +:10024000000A000500000003302300E3000000E284 :1002500000000002540230E7000000E60000000445 -:100260005423001C000B00110000002E7F240018F6 -:10027000000D00100050004B0025000C000E003651 -:100280000052002C00260012000F003700510028F9 -:100290000027001300330038714F004E002D002F4F -:1002A000003474E50031810000010001000100010B +:100260005424001C000B00110000002E7F250018F4 +:10027000000D00100050004B0026000C000E003650 +:100280000052002C00270012000F003700510028F8 +:10029000002D001300330038714F004E0031002F45 +:1002A000003474E50030810000010001000100010C :1002B00000010000003A003500310001000100019A :1002C000003B0035022102350001004C003C001EBD :1002D0000224062202010001003D002D0224022416 :1002E00004010001003E000100370011040000017C :1002F000000100010000000100000001000E3001BB -:100300000000000100000001003F00240624022339 -:100310000200000100400022042502350001000116 -:100320000041002304260235023700010042002468 -:100330000425041F021E020100430031002604317F -:1003400002010001004400450001002D02010000EF +:100300000000000100000001004000240624022338 +:1003100002000001004100220425023500300001E6 +:100320000042002304260235023800010043002465 +:100330000425041F02370001004400310026043167 +:10034000023602010045001E0230022D02010000AB :100350000001000100010001000100000001000196 :100360000001000100010001000100F400F200FBA7 :1003700000010001000100F000F100FA000100019D @@ -101,1451 +101,1449 @@ :10064000742073696465206E6F7420726573706FB7 :100650006E64696E670A00747279696E6720746FE0 :10066000207265736574206D637032333031380ADF -:10067000000A44454255473A20656E61626C6564E4 -:100680002E0A005B735D004B6579626F61726420B6 -:1006900073746172742E0A005B575D005B535D00DA -:1006A0005B525D005B445D005B435D0016034500EB -:1006B000720067006F0044006F0078002000450062 -:1006C0005A00000016034500720067006F004400E6 -:1006D0006F007800200045005A0000000403090460 -:1006E00009028D00050100A0FA09040000010301C0 -:1006F0000100092111010001223F000705810308C3 -:10070000000A09040100010301020009211101008E -:1007100001224D000705820308000A0904020001B6 -:1007200003000000092111010001223600070583A2 -:100730000308000A09040300020300000009211154 -:1007400001000122200007058403200001070504A1 -:100750000320000109040400010300000009211125 -:100760000100012239000705850310000112011064 -:100770000100000008EDFE07130100010200010561 -:10078000010906A101050719E029E71500250195D2 -:100790000875018102050819012905950575019162 -:1007A00002950175039101050719002977150025A8 -:1007B00001957875018102C00631FF0974A1010914 -:1007C00075150025FF95207508810209761500250D -:1007D000FF952075089102C005010980A1018502DD -:1007E00016010026B7001A01002AB70075109501FE -:1007F0008100C0050C0901A1018503160100269C9A -:10080000021A01002A9C02751095018100C00501A1 -:100810000902A1010901A100050919012905150015 -:100820002501950575018102950175038101050179 -:10083000093009311581257F95027508810609382F -:100840001581257F950175088106050C0A3802156A -:1008500081257F950175088106C0C005010906A1A3 -:1008600001050719E029E7150025019508750181A3 -:10087000029501750881010508190129059505757D -:100880000191029501750391010507190029FF15D2 -:100890000025FF950675088100C00A0025303258F2 -:1008A00020006B6579626F6172645F7265706F7250 -:1008B000743A20000A0025303258006B6579626F67 -:1008C0006172645F7365745F6C65643A200064658F -:1008D0006C5F6B65795F6269743A2063616E27743F -:1008E0002064656C3A20253032580A006164645FE8 -:1008F0006B65795F6269743A2063616E2774206169 -:1009000064643A20253032580A00646F6E652E0AFE -:1009100000626F6F676D61676963207363616E3A30 -:10092000202E2E2E2000290A002575002F00257567 -:10093000005D280025640020002564002000256457 -:100940000020002564007C0025303258006D6F7552 -:1009500073656B6579205B62746E7C782079207694 -:1009600020685D287265702F61636C293A205B00F6 -:100970006D6B5F776865656C5F74696D655F746FDB -:100980005F6D6178203D2025640A006D6B5F77689C -:1009900065656C5F6D61785F7370656564203D208F -:1009A00025640A006D6B5F74696D655F746F5F6DC0 -:1009B0006178203D2025640A006D6B5F6D61785F72 -:1009C0007370656564203D2025640A006D6B5F6966 -:1009D0006E74657276616C203D2025640A006D6B33 -:1009E0005F64656C6179203D2025640A006D6B5F52 -:1009F000776865656C5F74696D655F746F5F6D6165 -:100A000078203D2025640A006D6B5F776865656C12 -:100A10005F6D61785F7370656564203D2025640AB1 -:100A2000006D6B5F74696D655F746F5F6D617820D9 -:100A30003D2025640A006D6B5F6D61785F737065A2 -:100A40006564203D2025640A006D6B5F696E7465E6 -:100A50007276616C203D2025640A006D6B5F6465D1 -:100A60006C6179203D2025640A000A002575003656 -:100A70003A20776865656C5F74696D655F746F5F58 -:100A80006D61783A20000A00257500353A207768B4 -:100A900065656C5F6D61785F73706565643A2000B1 -:100AA0000A00257500343A2074696D655F746F5FC4 -:100AB0006D61783A20000A00257500333A206D6197 -:100AC000785F73706565643A20000A00257500320E -:100AD0003A20696E74657276616C286D73293A20CC -:100AE000000A00257500313A2064656C6179282A76 -:100AF00031306D73293A20000A092D2056616C753A -:100B00006573202D0A004D3E004D25643E20003FB8 -:100B1000007365742064656661756C740A00433EF9 -:100B2000200077686572652064656C74613A2063A3 -:100B30007572736F723D25642C20776865656C3D16 -:100B400025640A53656520687474703A2F2F656EAA -:100B50002E77696B6970656469612E6F72672F7794 -:100B6000696B692F4D6F7573655F6B6579730A00EB -:100B70000A092D204D6F7573656B6579202D0A4527 -:100B800053432F713A09717569740A313A096465E2 -:100B90006C6179282A31306D73290A323A09696EFD -:100BA00074657276616C286D73290A333A096D6138 -:100BB000785F73706565640A343A0974696D655FBE -:100BC000746F5F6D61780A353A09776865656C5FA7 -:100BD0006D61785F73706565640A363A0977686598 -:100BE000656C5F74696D655F746F5F6D61780A0A2B -:100BF000703A097072696E742076616C7565730A5B -:100C0000643A097365742064656661756C74730A6F -:100C100075703A092B310A646F776E3A092D310AE3 -:100C2000706775703A092B31300A7067646F776EA0 -:100C30003A092D31300A0A7370656564203D2064DD -:100C4000656C7461202A206D61785F7370656564DE -:100C5000202A2028726570656174202F2074696DC8 -:100C6000655F746F5F6D6178290A003F004D3E201B -:100C700000433E20004C25640A000A092D20436FE2 -:100C80006E736F6C65202D0A4553432F713A0971BD -:100C90007569740A6D3A096D6F7573656B65790ACC -:100CA000000A092D204D61676963202D0A643A0905 -:100CB00064656275670A783A096465627567206DD4 -:100CC00061747269780A6B3A096465627567206BB2 -:100CD0006579626F6172640A6D3A0964656275676D -:100CE000206D6F7573650A763A0976657273696F60 -:100CF0006E0A733A097374617475730A633A09630F -:100D00006F6E736F6C65206D6F64650A302D343AB9 -:100D1000096C61796572302D34284631302D4634A6 -:100D2000290A506175733A09626F6F746C6F616460 -:100D300065720A653A09656570726F6D0A6E3A09E7 -:100D40004E4B524F0A7A3A09736C656570204C45D8 -:100D50004420746573740A000A002575002E6E6BBA -:100D6000726F3A20000A002575002E737761705F5C -:100D70006261636B736C6173685F6261636B7370F4 -:100D80006163653A20000A002575002E7377617053 -:100D90005F67726176655F6573633A20000A0025BC -:100DA00075002E6E6F5F6775693A20000A00257521 -:100DB000002E737761705F72616C745F7267756922 -:100DC0003A20000A002575002E737761705F6C6110 -:100DD0006C745F6C6775693A20000A002575002EF7 -:100DE000636170736C6F636B5F746F5F636F6E745E -:100DF000726F6C3A20000A002575002E73776170BF -:100E00005F636F6E74726F6C5F636170736C6F633E -:100E10006B3A20000A0025303258006B65796D610D -:100E2000705F636F6E6669672E7261773A20000AA1 -:100E3000002575002E6D6F7573653A20000A002538 -:100E400075002E6B6579626F6172643A20000A004A -:100E50002575002E6D61747269783A20000A0025AC -:100E600075002E656E61626C653A20000A002530BF -:100E700032580064656275675F636F6E6669672EDE -:100E80007261773A20000A00257500646566617515 -:100E90006C745F6C617965723A20003F004E4B5272 -:100EA0004F3A206F66660A004E4B524F3A206F6EE3 -:100EB0000A0074696D65725F636F756E743A202500 -:100EC00030346C580A006B6579626F6172645F6ED2 -:100ED0006B726F3A2025580A006B6579626F6172F8 -:100EE000645F69646C653A2025580A006B65796215 -:100EF0006F6172645F70726F746F636F6C3A2025FC -:100F0000580A00686F73745F6B6579626F61726411 -:100F10005F6C65647328293A2025580A000A092D58 -:100F200020537461747573202D0A004743433A209F -:100F3000342E392E33204156522D4C4942433A200B -:100F4000312E382E31204156525F415243483A20CB -:100F5000617672350A004F5054494F4E533A204C37 -:100F600055464120424F4F544D41474943204D4F34 -:100F70005553454B45592045585452414B455920EE -:100F8000434F4E534F4C4520434F4D4D414E44200F -:100F90004E4B524F203531320A004255494C443AAB -:100FA00020666437326134362D6469727479202882 -:100FB00032313A35313A3231204A616E20323420B2 -:100FC00032303136290A005649443A2030784645B5 -:100FD0004544284572676F446F7820455A29205050 -:100FE00049443A20307831333037284572676F44AE -:100FF0006F7820455A29205645523A2030783030B3 -:1010000030310A00444553433A20742E6D2E6B2E26 -:10101000206B6579626F617264206669726D7761B9 -:10102000726520666F72204572676F646F780A0080 -:101030000A092D2056657273696F6E202D0A000A09 -:101040006D6F7573653A206F66660A000A6D6F757D -:1010500073653A206F6E0A000A6B6579626F617280 -:10106000643A206F66660A000A6B6579626F617286 -:10107000643A206F6E0A000A6D61747269783A20D2 -:101080006F66660A000A6D61747269783A206F6E45 -:101090000A000A64656275673A206F6E0A000A6486 -:1010A000656275673A206F66660A000A0A626F6FAA -:1010B000746C6F616465722E2E2E2000433E2000FA -:1010C0006565636F6E6669673A0A00536C656570A3 -:1010D000204C454420746573740A00000000000031 -:1010E000000000000000010204060A0F17202C3A3D -:1010F0004A5D71879DB3C7DAE9F5FCFFFCF5E9DAD3 -:10110000C7B39D87715D4A3A2C20170F0A06040267 -:1011100001000000000000000000000011241FBEBC -:10112000CFEFDAE0DEBFCDBF04B603FE24C080916E -:10113000FB019091FC01A091FD01B091FE0187306F -:10114000904BA740B04BB9F41092FB011092FC01F8 -:101150001092FD011092FE0114BE84B7877F84BFF8 -:1011600088E10FB6F89480936000109260000FBE83 -:10117000E0E0FFE3099511E0A0E0B1E0E6E9F0E688 -:1011800002C005900D92AA33B107D9F711E0AAE386 -:10119000B1E001C01D92AB3FB107E1F70E94091217 -:1011A0000C9449300C940000FF93EF93E0913A01C6 -:1011B000F0913B01309709F00995EF91FF91089567 -:1011C000FC018591803011F0EFDFFBCF0895FF2700 -:1011D000E0E230E247FF0CC0419597FF09C0EDE225 -:1011E0006095709580959095611D711D811D911D73 -:1011F00027FF02C0219530E350E2AA27660F771F30 -:10120000881F991FAA1FA41710F0A41B63955A9555 -:10121000A9F7AA3008F0A95FA05DAF93F395611517 -:1012200071058105910541F7ED3211F4EF93F395C6 -:10123000F21718F43F93F395FBCF8F91B5DFFA9532 -:10124000E1F70895E991F9918591803021F0853297 -:1012500019F0AADFF9CF089520E0E89455915532AE -:10126000C1F3503311F4689455915A3348F45053F4 -:1012700090F3220F022E220F220F200D250FF4CF04 -:101280000EF4219589919991533619F3533729F129 -:10129000533559F1BC0188279927E8945C3621F42D -:1012A0008991999168945591543639F446EF7EF0BE -:1012B00077FF0DC08FEF9FEF0AC055374AE039F036 -:1012C000583540E121F0523642E009F00895FF938D -:1012D000EF937DDFEF91FF91B7CFFF93EF93FC0189 -:1012E00081918030B9F360DFFBCFFF93EF9368DF2C -:1012F000F1CFDF93CF93CDB7DEB72596A3DFCF91A4 -:10130000DF910895462F50E04F30510508F0DEC0C0 -:10131000DC01FA01EA5AFF4F12968C910C94FE2FD1 -:10132000882321F085EE0E94E618D0C085EE0E9449 -:10133000AE19CCC0882349F00E943F2490933D0110 -:1013400080933C0188EF91E0089580913C01909159 -:101350003D010E944B24873991050CF0A8C08AEE0C -:1013600091E00895882349F00E943F2490933D0125 -:1013700080933C0187EE91E0089580913C0190912B -:101380003D010E944B24873991050CF093C089EDF3 -:1013900091E00895882349F00E943F2490933D01F5 -:1013A00080933C0182ED91E0089580913C01909101 -:1013B0003D010E944B24873991050CF07EC080ECE2 -:1013C00091E00895882349F00E943F2490933D01C5 -:1013D00080933C018BEB91E0089580913C019091CA -:1013E0003D010E944B24873991050CF069C08DEABC -:1013F00091E00895882349F00E943F2490933D0195 -:1014000080933C0188EA91E0089580913C0190919D -:101410003D010E944B24873991050CF054C08AE9A4 -:1014200091E00895882309F451C085E891E008957A -:10143000882309F44BC080E791E00895882309F4DC -:1014400045C08BE591E00895882309F43FC086E408 -:1014500091E008958823D1F18DE391E008958823E8 -:10146000A9F188E291E00895882381F183E191E078 -:101470000895882359F18EEF90E00895882331F183 -:101480008091BE019091BF01A091C001B091C101B6 -:1014900020E2822780729927AA27BB278093BE016A -:1014A0009093BF01A093C001B093C1010FC085EF1D -:1014B00091E0089584EE91E008958BEC91E0089519 -:1014C00086EB91E0089583EA91E0089580E090E052 -:1014D000089508956091BE017091BF018091C0018F -:1014E0009091C1010E94742356985E9825982D987A -:1014F00026982E9827982F98833099F028F48130D9 -:1015000041F0823049F00895843049F0853061F02F -:101510000895259A2D9A0895269A2E9A0895259A27 -:101520002D9A279A2F9A0895259A2D9A269A2E9ABF -:10153000279A2F9A08958AE69AE0892B11F00E9443 -:101540006A0A80E090E0089556985E9825982D9854 -:1015500026982E9827982F988FEF90E090938900E7 -:101560008093880090938B0080938A0090938D00E5 -:1015700080938C00259A2D9A2FEF80E792E02150DE -:1015800080409040E1F700C00000269A2E9A2FEF8D -:1015900080E792E0215080409040E1F700C00000D9 -:1015A000279A2F9A2FEF80E792E0215080409040B9 -:1015B000E1F700C0000025982D982FEF80E792E01A -:1015C000215080409040E1F700C0000026982E98FE -:1015D0002FEF80E792E0215080409040E1F700C07B -:1015E000000027982F9856985E9825982D98269851 -:1015F0002E9827982F98089589EA8093800089E093 -:101600008093810024982C983F988AB18F748AB96E -:101610006E98479A8BB1806B8BB9769A0E94A40A18 -:1016200089E69AE0892B11F00E94690A80E090E037 -:10163000089580E28093000180913E0181110EC0E7 -:101640000E94680B81E080933E012FEF83ED90E3D1 -:10165000215080409040E1F700C0000080E40E94EB -:101660006E0B8093000181112EC00E94980B809315 -:101670000001811128C00E94980B80930001811104 -:1016800022C08FE30E94980B8093000181111BC040 -:101690000E94900B80E40E946E0B809300018111E8 -:1016A00012C08CE00E94980B8093000181110BC046 -:1016B0000E94980B80930001811105C08FE30E9466 -:1016C000980B809300010E94900B80910001089577 -:1016D0001092B9008AE08093B800089594EA90933C -:1016E000BC009091BC0097FFFCCF9091B900987F0F -:1016F000983021F0903111F081E008958093BB0083 -:1017000084E88093BC008091BC0087FFFCCF80916F -:10171000B900887F883111F0803471F780E0089536 -:1017200084E98093BC008091BC0084FDFCCF0895C7 -:101730008093BB0084E88093BC008091BC0087FF4D -:10174000FCCF9091B900987F81E0983209F480E055 -:10175000089584E88093BC008091BC0087FFFCCF93 -:101760008091BB00089580910001811115C080E433 -:101770000E946E0B8093000181110CC082E10E94D7 -:10178000980B80930001811105C08FEF0E94980B88 -:10179000809300010E94900B84B1807F84B985B151 -:1017A000807F85B98AB1837F8AB98BB1837F8BB9FA -:1017B0003E98469808950E94190B809300010E945C -:1017C000B30B80B38C7080BB81B3836F81BBA0E40B -:1017D000B1E0EEE4F1E08EE08E0F11921D928E13D7 -:1017E000FCCF8CEF9AE0892B11F00C94FC0A089541 -:1017F0009F92AF92BF92CF92DF92EF92FF920F93A0 -:101800001F93CF93DF93809100018823E1F08091B3 -:101810003F018F5F80933F01811115C087E596E0FE -:101820000E94E0080E94190B80930001882329F090 -:101830008DE396E00E94E00806C089E296E00E94EF -:10184000E0080E94A40A00E411E0C0E0D0E0BB245C -:10185000B39482E0A82ECC24C394D12C2AE1E22EAA -:1018600026E0F22EC730D10500F5809100018111EC -:1018700064C080E40E946E0B80930001811112C04D -:1018800082E10E94980B8093000181110BC0C60178 -:101890000C2E01C0880F0A94EAF780950E94980BDD -:1018A000809300010E94900B48C0CA30A1F028F438 -:1018B000C83059F0C93061F005C0CC3089F070F003 -:1018C000CD3089F0209A289810C0219A29980DC00F -:1018D000229A2A980AC0239A2B9807C0529A01C0CC -:1018E000539A5B9802C03E9A469890EA9A95F1F70F -:1018F0009FB1799902C082E001C080E091709B2580 -:10190000982B7C9902C084E001C080E0892B7D99EE -:1019100002C038E001C030E0832B7E9902C020E194 -:1019200001C020E0822B9FB19095991F9927991FA4 -:101930009295990F907E892B10C0809100018111A2 -:1019400074C080E40E946E0B80930001882309F428 -:1019500059C0912C0E94900B892DF8019081981705 -:1019600039F1808380910101882301F18091D901AF -:1019700080FF04C08FE196E00E94E0088091D901C9 -:1019800080FF0CC0809101011F928F93FF92EF9214 -:101990000E9479090F900F900F900F908091D901BC -:1019A00080FF04C088E196E00E94E008A092010157 -:1019B0000E94B30B21960F5F1F4FCE30D10509F067 -:1019C00051CF809101018823B1F0815080930101B2 -:1019D000882339F08FE99FE00197F1F700C00000FC -:1019E0000AC0AEE4B1E0E0E4F1E0CF01825F9191A2 -:1019F0009D938E13FCCF8BE99AE0892BC1F00E9456 -:101A00009B0A15C083E10E94980B8093000181110D -:101A1000A0CF81E40E946E0B80930001811199CFC9 -:101A20000E94A90B982E909495CF80E096CF81E0EC -:101A3000DF91CF911F910F91FF90EF90DF90CF90AA -:101A4000BF90AF909F900895E82FF0E0E25BFE4FCB -:101A500080810895CF92DF92EF92FF920F931F93B0 -:101A6000CF93DF9381E096E00E94E0088EE4E82EB9 -:101A700081E0F82EC0E0D0E09CEFC92E95E0D92E91 -:101A800003EF15E0DF93CF93DF92CF920E947909A5 -:101A900089EF95E00E94E008F70181917F0190E0D5 -:101AA0000E94DA239F938F931F930F930E947909CB -:101AB00081EF95E00E94E00821968DB79EB70896C9 -:101AC0000FB6F8949EBF0FBE8DBFCE30D105D1F6B4 -:101AD000DF91CF911F910F91FF90EF90DF90CF900A -:101AE00008958B3B910578F4883A910540F5853A45 -:101AF0009105D0F48430910508F0B1C08130910592 -:101B000009F4ADC06BC0803E910508F467C0883E03 -:101B1000910508F4A4C09C01205F310920313105F2 -:101B200008F05CC090650895853A910509F459C0A4 -:101B3000863A910509F058C082E890E40895883A01 -:101B4000910509F454C0893A910509F453C08A3AC1 -:101B5000910509F452C08B3A910509F451C08C3AB1 -:101B6000910509F450C08D3A910509F44FC0803BAE -:101B7000910509F44EC08E3A910509F44DC08F3A93 -:101B8000910509F44CC0813B910509F44BC0823B9F -:101B9000910509F44AC0833B910509F449C0843B8F -:101BA000910509F448C0853B910509F447C0863B7F -:101BB000910509F446C0873B910509F445C0883B6F -:101BC000910509F444C0893B910509F443C08A3B5F -:101BD000910509F442C080E094E4089580E090E02B -:101BE000089581E890E4089583E890E4089582EEF2 -:101BF00094E4089589EE94E408958AEE94E40895B7 -:101C000085EB94E4089586EB94E4089587EB94E4DF -:101C100008958CEC94E408958DEC94E4089583E8A1 -:101C200095E408958AE895E4089582E995E4089595 -:101C300084E995E4089581E296E4089583E296E4C8 -:101C4000089584E296E4089585E296E4089586E294 -:101C500096E4089587E296E408958AE296E408956A -:101C6000089596E0799FF001112494E5899FE00D95 -:101C7000F11D1124E60FF11DEE0FFF1FEF5FFD4F69 -:101C8000859194910895880F991FFC01E558FF4FA5 -:101C9000859194910895880F991FFC01E550FE4F9E -:101CA00085919491089526E0729FF001112444E5F6 -:101CB000849FE00DF11D1124E60FF11DEE0FFF1FB3 -:101CC000EF5FFD4F859194919C013A9521154FE16D -:101CD000340708F41EC13F512115304120F49F7094 -:101CE0000E944B0E08959C0130532115304118F489 -:101CF0009927906C0895811520E5920769F40E9458 -:101D0000341D4FEF84E39CE0415080409040E1F768 -:101D100000C000000C949A24813020E5920751F411 -:101D200081E796E00E94E0088091D901816080936C -:101D3000D90108959C0130552115304108F051C05A -:101D4000292F33272F70332721303105D9F4AC01E7 -:101D50004370552702C0220F331F4A95E2F73C68B3 -:101D6000AC0164E0440F551F6A95E1F744275370B6 -:101D7000242B352B73E0880F991F7A95E1F7807635 -:101D800099271DC02230310529F4982F8827816FAB -:101D9000906A089523303105A9F4AC0143705527AA -:101DA00021E030E002C0220F331F4A95E2F73C6881 -:101DB00043E0880F991F4A95E1F7807E9770822B48 -:101DC000932B089524303105E1F4AC01437055277D -:101DD00021E030E002C0220F331F4A95E2F73A6853 -:101DE000E7CF9C0130572115304118F49F70906265 -:101DF00008959C0130582115304118F49F70906A65 -:101E00000895803E9105E0F4803C910558F58133BA -:101E1000910509F46FC048F48932910509F463C053 -:101E20008A32910509F46DC072C089339105E9F0D9 -:101E300082389105D1F08533910509F44DC067C012 -:101E4000833E910581F138F4803E9105B9F0823EE0 -:101E50009105D9F05CC0863E910561F1873E910500 -:101E6000A1F155C00E94430E08952091EC0120FD80 -:101E700002C021FF4CC080EE90E049C08091EC018F -:101E800080FFF9CF89E390E042C08091EC0182FFAE -:101E90000EC08091EC0184FF03C080E090E037C069 -:101EA00083EE90E034C08091EC0182FFF2CF82EEAD -:101EB00090E02DC08091EC0183FF0BC08091EC017C -:101EC00084FDEBCF87EE90E022C08091EC0183FF90 -:101ED000F5CF86EE90E01BC08091EC0185FF07C036 -:101EE00089E290E014C08091EC0185FFF9CF85E391 -:101EF00090E00DC08091EC0186FF07C08AE290E07F -:101F000006C08091EC0186FFF9CF81E390E00E944A -:101F1000710D0895089580916F0108959FB7F89409 -:101F200010925E019FBF9091F201943009F057C06A -:101F30009091E9009F703091EC00232F217030FDCB -:101F400020E8922B24E02093E9002091EB0020FF71 -:101F500043C02091EE0027FF3FC020915C01222367 -:101F600021F02091E80025FF37C010925C0126E0A7 -:101F70003091E80035FD15C03091F201343061F543 -:101F80003091EB0035FD28C0215021F481E0809391 -:101F90005C0122C0EFE9FFE03197F1F700C00000DB -:101FA000E7CF8093F1008091E80085FD0AC0809121 -:101FB000E80080FFFCCF8091E8008E778093E800F6 -:101FC00006C08FB7F89421E020935E018FBF9F7009 -:101FD0009093E90080E008959F709093E9008FEF5F -:101FE0000895CF93DF9300D01F92CDB7DEB79C0149 -:101FF0008091F201843019F593E099833B832A8321 -:102000009093E9008FEF9091E800815095FD06C014 -:1020100095ED9A95F1F700008111F5CF8091E800D8 -:1020200085FF0DC040E050E063E070E0CE01019616 -:102030000E94C1128091E8008E778093E8000F9093 -:102040000F900F90DF91CF910895CF93DF9300D041 -:102050001F92CDB7DEB72091F201243021F522E0A6 -:1020600029839B838A8383E08093E9008FEF90919B -:10207000E800815095FD06C095ED9A95F1F70000B6 -:102080008111F5CF8091E80085FF0DC040E050E060 -:1020900063E070E0CE0101960E94C1128091E800D9 -:1020A0008E778093E8000F900F900F90DF91CF9183 -:1020B00008952091F2012430F1F422E02093E90008 -:1020C0002FEF3091E800215035FD06C035ED3A95EF -:1020D000F1F700002111F5CF2091E80025FF0BC09A -:1020E00040E050E065E070E00E94C1128091E8009D -:1020F0008E778093E8000895CF93DF932091F201CB -:10210000243009F048C0EC0180910C018823E1F0F3 -:1021100080910D018823C1F085E08093E9008FEF65 -:102120009091E800815095FD06C095E19A95F1F7F0 -:1021300000008111F5CF8091E80085FF2CC040E0C0 -:1021400050E060E170E017C081E08093E9008FEF1C -:102150009091E800815095FD06C095ED9A95F1F7B4 -:1021600000008111F5CF8091E80085FF14C040E0A8 -:1021700050E068E070E0CE010E94C1128091E8005A -:102180008E778093E80080E1FE01AFE5B1E0019039 -:102190000D928A95E1F7DF91CF91089588EA96E054 -:1021A0000E94E0088091F101811109C00E9456143B -:1021B0000E94B3148091E20084608093E20008954D -:1021C00084EA96E00E94E0081092F101089580EA06 -:1021D00096E00C94E0088CE996E00E94E0080C94EC -:1021E0006A2E88E996E00E94E0080E9430240E944E -:1021F000702E0E9458170C948A0F20915D012F5F5A -:10220000822F62E30E94DE2F992319F020935D0153 -:10221000089510925D0180915E01882371F1809193 -:10222000F201843041F58091E9008F702091EC003B -:10223000922F917020FD90E8892B94E09093E90013 -:102240009091EB0090FF14C09091EE0097FF10C0AA -:102250009091E80095FF03C01092F100F9CF9091A2 -:10226000E80090FF05C09091E8009E779093E80009 -:102270008F708093E90010925E01089542E061EC56 -:1022800081E00E94D01342E061EC82E00E94D01312 -:1022900042E061EC83E00E94D01342E261EC84E012 -:1022A0000E94D01342E161EC85E00C94D013809140 -:1022B000F401833009F455C030F4813071F082307C -:1022C00009F48EC008958A3009F47AC08B3009F47D -:1022D00060C0893009F09CC020C08091F301813A30 -:1022E00009F096C08091E800877F8093E800809194 -:1022F000F7019091F801892B21F460E18FE591E0DD -:1023000003C060E080E090E070E00E940C138091D8 -:10231000E8008B778093E80008958091F301813283 -:1023200009F076C08091F7019091F801009719F0BB -:10233000049709F06DC08091E800877F8093E800E2 -:102340008091E80082FD05C08091F2018111F8CFF3 -:102350005FC08091F10080936F018091E8008B77DE -:1023600053C08091F301813A09F052C08091F70186 -:102370009091F801892B09F04BC08091E800877F8C -:102380008093E8008091E80080FFFCCF80910C01F1 -:1023900036C08091F3018132D9F58091F701909197 -:1023A000F801892BA9F58091E800877F8093E800E8 -:1023B0000E9405148091F50180930C010C94341D4A -:1023C0008091F301813221F58091E800877F80932D -:1023D000E8000E9405148091F60180937001089531 -:1023E0008091F301813AA1F48091E800877F809386 -:1023F000E8008091E80080FFFCCF8091700180931D -:10240000F1008091E8008E778093E8000C94051429 -:10241000089584B7877F84BF88E10FB6F8948093CE -:102420006000109260000FBE90E080E80FB6F89454 -:1024300080936100909361000FBE0E94E5170E9497 -:1024400056140E94B3148091E20084608093E200ED -:102450008EE89FE00E946F2378940E9438170E94B4 -:10246000E71782E091E00E9453170E94582E87E8F8 -:1024700096E00E94E0088091F201853089F483E8BB -:1024800096E00E94E0080E94F4238091F0018823E6 -:1024900091F30E941C24882371F30E94AB12EBCFAE -:1024A0000E941518E8CF292F332723303105C9F0B2 -:1024B00064F42130310581F02230310509F043C048 -:1024C0008DE890E020EE36E042C021323105F1F097 -:1024D0002232310541F137C082E190E02DE637E04C -:1024E00036C099278130910541F08230910541F045 -:1024F000892B49F5ECEDF6E005C0E4ECF6E002C00E -:10250000ECEAF6E0849190E09F0121C06530D8F4B8 -:10251000E62FF0E0EE0FFF1FEB5DFE4F20813181D3 -:1025200089E090E014C0653070F470E0FB01EE0FBC -:10253000FF1FE55EFE4F20813181FB01EA5EFE4F09 -:10254000808190E004C080E090E020E030E0FA017B -:1025500031832083089580E189BD82E189BD09B47A -:1025600000FEFDCF8091D8008F7D8093D8008091B0 -:10257000E00082608093E0008091E00081FDFCCF6C -:102580000895CF92DF92EF92FF920F931F93CF9314 -:10259000DF93EC018B016A010E942414811133C086 -:1025A000C114D10439F0F60180819181081B190B07 -:1025B000C80FD91FE12CF12C0115110519F18091DB -:1025C000E80085FD16C08091E8008E778093E800D2 -:1025D000C114D10449F0F60180819181E80EF91E01 -:1025E000F182E08285E00FC00E942414882321F349 -:1025F0000AC089918093F10001501109FFEFEF1A91 -:10260000FF0ADACF80E0DF91CF911F910F91FF9009 -:10261000EF90DF90CF9008952091F9013091FA0169 -:102620002617370748F06115710539F42091E80045 -:102630002E772093E80001C0B90140E061157105D3 -:10264000A9F12091F201222309F443C0253009F4B5 -:1026500042C02091E80023FD40C02091E80022FD07 -:1026600032C02091E80020FFE9CF4091F300209193 -:10267000F20030E0342BFC01CF016115710559F0F7 -:102680002830310540F481918093F1006150710947 -:102690002F5F3F4FF1CF41E02830310509F040E096 -:1026A0002091E8002E772093E800C8CF4111C9CFD0 -:1026B0000AC08091F201882361F0853061F0809139 -:1026C000E80083FD0AC08091E80082FFF2CF80E03D -:1026D000089582E0089583E0089581E008952091AF -:1026E000F9013091FA012617370748F06115710595 -:1026F00039F42091E8002E772093E80001C0B90159 -:10270000FC0120E06115710591F18091F2018823AF -:1027100009F440C0853009F43FC08091E80083FD92 -:102720003DC08091E80082FD2FC08091E80080FFCD -:10273000E9CF2091F3008091F20090E0922B611597 -:10274000710559F08830910540F424912093F100EF -:102750003196615071090196F2CF21E0089709F096 -:1027600020E08091E8008E778093E800CBCF2111A4 -:10277000CCCF0AC08091F201882361F0853061F0EE -:102780008091E80083FD0AC08091E80082FFF2CFCB -:1027900080E0089582E0089583E0089581E008953F -:1027A000982F973058F59093E900981739F0709169 -:1027B000EC002091ED005091F00003C0242F762F03 -:1027C00050E021FF19C03091EB003E7F3093EB00C9 -:1027D0003091ED003D7F3093ED003091EB003160A2 -:1027E0003093EB007093EC002093ED005093F000D9 -:1027F0002091EE0027FF07C09F5FD3CF8F7080939B -:10280000E90081E0089580E008958091F30187FF59 -:1028100011C08091E80082FD05C08091F201811114 -:10282000F8CF11C08091E8008B770BC08091F20146 -:10283000882349F08091E80080FFF8CF8091E8007C -:102840008E778093E80008952091E4003091E500B0 -:1028500095E64091EC00842F817040FF22C080916A -:10286000E80080FD1CC08091F201882391F0853042 -:1028700091F08091EB0085FD10C04091E4005091F3 -:10288000E5004217530729F39A01915011F784E0AC -:10289000089582E0089583E0089581E0089580E03E -:1028A00008954091E80042FFDECF08950E94C414CD -:1028B0000E94CC14E0EEF0E0808181608083E8ED3E -:1028C000F0E080818F77808319BCA7EDB0E08C9118 -:1028D0008E7F8C9380818F7E80831092F10108958A -:1028E0000F931F93CF93DF930E94C4140E94CC14C4 -:1028F000C8EDD0E088818F7788838881806888835D -:1029000088818F7D888319BC1092F2011092EE01AC -:102910001092F0011092EF0100EE10E0F8018081BA -:102920008B7F808388818160888342E060E080E0E3 -:102930000E94D013E1EEF0E080818E7F8083E2EE92 -:10294000F0E0808181608083808188608083F801ED -:1029500080818E7F8083888180618883DF91CF91A1 -:102960001F910F910895E8EDF0E080818F7E8083C4 -:10297000E7EDF0E080818160808384E082BF81E0C8 -:102980008093F1010C947014E8EDF0E080818E7F6B -:1029900080831092E20008951092DA001092E10014 -:1029A00008951F920F920FB60F9211242F933F9309 -:1029B0004F935F936F937F938F939F93AF93BF9347 -:1029C000EF93FF938091E10082FF0BC08091E200C2 -:1029D00082FF07C08091E1008B7F8093E1000E941D -:1029E000FD108091DA0080FF1FC08091D80080FF29 -:1029F0001BC08091DA008E7F8093DA008091D9002D -:102A000080FF0DC080E189BD82E189BD09B400FE6F -:102A1000FDCF81E08093F2010E94CE1005C019BC69 -:102A20001092F2010E94E0108091E10080FF19C035 -:102A30008091E20080FF15C08091E2008E7F80933C -:102A4000E2008091E20080618093E2008091D800F2 -:102A500080628093D80019BC85E08093F2010E94C7 -:102A6000EB108091E10084FF30C08091E20084FF90 -:102A70002CC080E189BD82E189BD09B400FEFDCF93 -:102A80008091D8008F7D8093D8008091E1008F7E67 -:102A90008093E1008091E2008F7E8093E20080913C -:102AA000E20081608093E2008091EE01882311F0C2 -:102AB00084E007C08091E30087FD02C081E001C08F -:102AC00083E08093F2010E94F1108091E10083FF86 -:102AD00029C08091E20083FF25C08091E100877FBB -:102AE0008093E10082E08093F2011092EE018091E8 -:102AF000E1008E7F8093E1008091E2008E7F8093E1 -:102B0000E2008091E20080618093E20042E060E0B8 -:102B100080E00E94D0138091F00088608093F000E4 -:102B20000E94E710FF91EF91BF91AF919F918F911C -:102B30007F916F915F914F913F912F910F900FBEB9 -:102B40000F901F9018951F920F920FB60F9211249D -:102B50002F933F934F935F936F937F938F939F93A5 -:102B6000AF93BF93CF93DF93EF93FF93C091E900AF -:102B7000CF708091EC00D82FD17080FDD0E81092FA -:102B8000E9008091F000877F8093F00078940E94A4 -:102B9000E7151092E9008091F00088608093F000C2 -:102BA000CD2BCF70C093E900FF91EF91DF91CF91D2 -:102BB000BF91AF919F918F917F916F915F914F9155 -:102BC0003F912F910F900FBE0F901F9018951F935C -:102BD000CF93DF93CDB7DEB7AA970FB6F894DEBFD9 -:102BE0000FBECDBFE3EFF1E088E08E0F9091F100D2 -:102BF00091938E13FBCF0E9457118091E80083FFC1 -:102C00001FC18091F3019091F401492F50E04A30A7 -:102C1000510508F015C1FA01EB59FF4F0C94FE2F36 -:102C2000803881F0823809F00BC18091F7018F70F4 -:102C30008093E9008091EB0085FB882780F9109252 -:102C4000E90006C08091EF019091F001911182603E -:102C50009091E800977F9093E8008093F1001092A4 -:102C6000F100C8C0282F2D7F09F0EAC0882319F091 -:102C7000823061F0E5C08091F501813009F0E0C05B -:102C8000933009F080E08093F0012BC08091F50132 -:102C9000811127C08091F7018F7009F4D1C0809312 -:102CA000E9002091EB0020FF1CC0933021F48091BB -:102CB000EB00806214C09091EB0090619093EB0068 -:102CC00021E030E0A90102C0440F551F8A95E2F7C8 -:102CD0004093EA001092EA008091EB0088608093B4 -:102CE000EB001092E9008091E800877F86C0811197 -:102CF000A7C01091F5011F778091E3008078812BA8 -:102D00008093E3008091E800877F8093E8000E9431 -:102D100005148091E80080FFFCCF8091E30080687B -:102D20008093E300111102C082E001C083E0809330 -:102D3000F20186C08058823008F082C08091F5018F -:102D40009091F6018C3D53E0950779F583E08A83F5 -:102D50008AE289834FB7F894DE01139620E03EE0C3 -:102D600051E2E32FF0E050935700E49120FF03C0BD -:102D7000E295EF703F5FEF708E2F90E0EA3010F039 -:102D8000C79601C0C0968D939D932F5F243149F75C -:102D90004FBF8091E800877F8093E8006AE270E08F -:102DA000CE0101960E940C1314C0AE014F5F5F4F1D -:102DB0006091F7010E945312BC01892B09F440C0B5 -:102DC0009091E800977F9093E80089819A810E9412 -:102DD0006F138091E8008B778093E80031C08038D2 -:102DE00079F58091E800877F8093E8008091EE017B -:102DF0008093F1008091E8008E778093E8000E9434 -:102E000005141EC081111CC09091F5019230C0F4D0 -:102E10008091E800877F8093E8009093EE010E9404 -:102E200005148091EE01811106C08091E30087FDB9 -:102E300002C081E001C084E08093F2010E943E1153 -:102E40008091E80083FF0AC08091E800877F80932B -:102E5000E8008091EB0080628093EB00AA960FB6A9 -:102E6000F894DEBF0FBECDBFDF91CF911F910895C3 -:102E7000CF938091F2018823A1F0C091E900CF7037 -:102E80009091EC00892F817090FD80E8C82B109202 -:102E9000E9008091E80083FD0E94E715CF70C093A0 -:102EA000E900CF910895909376018093750108957C -:102EB000E0917501F0917601309721F00190F08159 -:102EC000E02D099480E00895EF92FF920F931F93F5 -:102ED000CF93DF93E0917501F09176013097B1F1D6 -:102EE0008C010280F381E02D09958091D90182FF48 -:102EF0002DC080FF04C082EA98E00E94E008E8014B -:102F000010E18CE9E82E88E0F82E8091D90180FF4D -:102F10000BC088811F928F93FF92EF920E947909D4 -:102F20000F900F900F900F90115021961111EDCF2F -:102F30008091D90180FF0AC08AE998E0DF91CF91A2 -:102F40001F910F91FF90EF900C94E008DF91CF91CB -:102F50001F910F91FF90EF900895E0917501F0910E -:102F60007601309721F00480F581E02D09940895D1 -:102F700020917301309174018217930771F090933F -:102F8000740180937301E0917501F091760130979F -:102F900021F00680F781E02D0994089520917101B8 -:102FA000309172018217930771F0909372018093B0 -:102FB0007101E0917501F0917601309721F0008464 -:102FC000F185E02D0994089508950C94E4170E946A -:102FD00036240E94DB0B0C94FC24CF93C82F8091E5 -:102FE000D90182FF1EC080FF04C08BEB98E00E94D5 -:102FF000E0088091D90180FF0CC01F92CF9386EB2F -:1030000098E09F938F930E9479090F900F900F90F3 -:103010000F908091D90180FF04C084EB98E00E945A -:10302000E0088C2FCF910C948A0FCF92DF92EF9211 -:10303000FF920F931F93CF93DF93CDB7DEB72B97FC -:103040000FB6F894DEBF0FBECDBF0E94F80B88E725 -:10305000C82E81E0D82E00E010E0E02E802F0E94E4 -:10306000240DF60141916F01F42EF826B1F40F5FA3 -:103070001F4F0E30110589F78FEF89838A831B82DA -:103080000E943F248160782F9D838C8349815A81DF -:103090006B818D810E94B81840C09091D90191FF39 -:1030A00004C08B870E942A0D8B8520E030E04F2DD5 -:1030B00050E0922FBA01022E02C0759567950A94CE -:1030C000E2F760FF24C02E83EF8221E030E0690147 -:1030D00002C0CC0CDD1C9A95E2F790E08C219D217A -:1030E000892B09F420E028870E943F248160782FF3 -:1030F0009A8789874E815F8168858A850E94B81882 -:10310000F801E858FE4F8081C826C08206C02F5FB4 -:103110003F4F2630310569F6AACF0E946D281091E5 -:1031200077010E9458171817A1F00E945817809332 -:1031300077012B960FB6F894DEBF0FBECDBFDF919F -:10314000CF911F910F91FF90EF90DF90CF900C9453 -:10315000ED172B960FB6F894DEBF0FBECDBFDF91F3 -:10316000CF911F910F91FF90EF90DF90CF90089536 -:10317000CF93DF93CDB7DEB72B970FB6F894DEBFB2 -:103180000FBECDBF4F83588769877A878B87DE0153 -:10319000119686E0FD0111928A95E9F785E0FE011E -:1031A000379601900D928A95E1F749815A816B819A -:1031B0007C818D819E810E94CE1F2B960FB6F89444 -:1031C000DEBF0FBECDBFDF91CF910895CF9388238F -:1031D00009F4C2C0C82F823859F40E94581781FDE3 -:1031E000BBC089E30E946A220E94492389E30CC084 -:1031F000833879F40E94581780FDAEC083E50E94A1 -:103200006A220E94492383E50E94BD22CF910C943B -:103210004923843859F40E94581782FD9DC087E4E1 -:103220000E946A220E94492387E4EECF8CEF8C0F24 -:10323000813A48F48C2F0E94002D81118DC08C2F73 -:103240000E946A22E3CF80E28C0F883048F4C77076 -:1032500081E001C0880FCA95EAF70E941223D6CFF9 -:103260008BE58C0F833078F4C53A29F0C63A31F0FB -:1032700083E890E005C081E890E002C082E890E039 -:10328000CF910C94B81788E58C0F833108F064C097 -:10329000C83A39F1C93A41F1CA3A49F1CB3A51F148 -:1032A000CC3A59F1CD3A61F1C03B69F1CE3A71F1B6 -:1032B000CF3A79F1C13B81F1C23B89F1C33B91F136 -:1032C000C43B99F1C53BA1F1C63BA9F1C73BB1F1A4 -:1032D000C83BB9F1C93BC1F1CA3BC9F180E090E0FC -:1032E00038C082EE90E035C089EE90E032C08AEEC0 -:1032F00090E02FC085EB90E02CC086EB90E029C0D9 -:1033000087EB90E026C08CEC90E023C08DEC90E041 -:1033100020C083E891E01DC08AE891E01AC082E9EC -:1033200091E017C084E991E014C081E292E011C0FD -:1033300083E292E00EC084E292E00BC085E292E06C -:1033400008C086E292E005C087E292E002C08AE20D -:1033500092E0CF910C94CE17CF910895882309F471 -:103360004BC0823859F40E94581781FF45C089E349 -:103370000E946A220E94492389E30CC0833871F4B9 -:103380000E94581780FF38C083E50E946A220E947D -:10339000492383E50E94BD220C944923843859F4C3 -:1033A0000E94581782FF28C087E40E946A220E9468 -:1033B000492387E4EFCF9CEF980F913A58F390E2BE -:1033C000980F983050F4877091E001C0990F8A955A -:1033D000EAF7892F0E941823DFCF9BE5980F9330DF -:1033E00020F480E090E00C94B817885A833120F4E0 -:1033F00080E090E00C94CE170895882321F00E947D -:1034000012230C9449230895882321F00E94182345 -:103410000C9449230895BF92CF92DF92EF92FF92CE -:103420000F931F93CF93DF9300D000D000D0CDB780 -:10343000DEB725E0FC01DE01119601900D922A9580 -:10344000E1F7FC01408131810281258122952F70B5 -:1034500063817481672B09F4E5C23F3F19F44F3F44 -:1034600009F4E0C27C0149833A8389819A812E83E1 -:103470000E942922182FB92E0E9428220E94EF2094 -:10348000EB2DE295EF70F0E0E159FF4F2E810C94A7 -:10349000FE2F8B2D807F9B2D9F70F92E882319F096 -:1034A000F29480EFF822002349F0FF2009F467C26C -:1034B0008F2D0E9422230E94492361C2812F0E94E6 -:1034C000AE19FF2009F4AEC28F2D0E942823269644 -:1034D0000FB6F894DEBF0FBECDBFDF91CF911F9125 -:1034E0000F91FF90EF90DF90CF90BF900C94492305 -:1034F0003B2D307F8B2D8F70303211F08295807F85 -:10350000112319F0113021F12CC00023B9F022232E -:1035100009F4A0C1213009F09DC126960FB6F89498 -:10352000DEBF0FBECDBFDF91CF911F910F91FF90F6 -:10353000EF90DF90CF90BF900C943223222319F0AC -:10354000213009F46FC28E830E9435238E8196C18B -:10355000002321F0223008F065C27CC1211162C233 -:103560008DC1002321F0222309F474C108C2222353 -:1035700009F484C119C22B2D26952695237030E0BD -:103580002115310521F021303105D1F04BC2002346 -:1035900021F0812F9B2D937002C080E090E0269651 -:1035A0000FB6F894DEBF0FBECDBFDF91CF911F9154 -:1035B0000F91FF90EF90DF90CF90BF900C94B817D1 -:1035C000002321F0812F9B2D937002C080E090E0BA -:1035D00026960FB6F894DEBF0FBECDBFDF91CF9118 -:1035E0001F910F91FF90EF90DF90CF90BF900C94C0 -:1035F000CE17812F002319F00E94F32602C00E94EB -:103600005B2726960FB6F894DEBF0FBECDBFDF91C5 -:10361000CF911F910F91FF90EF90DF90CF90BF90CF -:103620000C94E0278B2D837009F07BC00111FAC147 -:10363000812F829586958770880F880F912F9F70B4 -:10364000C92ED12CE12CF12C082E04C0CC0CDD1C91 -:10365000EE1CFF1C0A94D2F714FF12C04FE050E09A -:1036600060E070E004C0440F551F661F771F8A9505 -:10367000D2F7CB01BA01609570958095909503C003 -:1036800060E070E0CB012B2D269526952370422F0C -:1036900050E042305105D9F04330510569F16C29B1 -:1036A0007D298E299F294130510551F126960FB66B -:1036B000F894DEBF0FBECDBFDF91CF911F910F9168 -:1036C000FF90EF90DF90CF90BF900C9416216C2963 -:1036D0007D298E299F2926960FB6F894DEBF0FBE4E -:1036E000CDBFDF91CF911F910F91FF90EF90DF90B1 -:1036F000CF90BF900C9432210E941621C701B601D1 -:1037000026960FB6F894DEBF0FBECDBFDF91CF91E6 -:103710001F910F91FF90EF90DF90CF90BF900C948E -:10372000FA20002319F08B2D817001C08695882323 -:1037300009F478C1812F829586958770880F880F4C -:10374000912F9F70C92ED12CE12CF12C082E04C092 -:10375000CC0CDD1CEE1CFF1C0A94D2F714FF12C027 -:103760004FE050E060E070E004C0440F551F661F5A -:10377000771F8A95D2F7CB01BA0160957095809535 -:10378000909503C060E070E0CB012B2D2695269527 -:103790002370422F50E042305105D9F0433051059B -:1037A00069F16C297D298E299F294130510551F1FC -:1037B00026960FB6F894DEBF0FBECDBFDF91CF9136 -:1037C0001F910F91FF90EF90DF90CF90BF900C94DE -:1037D000F0216C297D298E299F2926960FB6F89411 -:1037E000DEBF0FBECDBFDF91CF911F910F91FF9034 -:1037F000EF90DF90CF90BF900C940C220E94F021AC -:10380000C701B60126960FB6F894DEBF0FBECDBF36 -:10381000DF91CF911F910F91FF90EF90DF90CF90AC -:10382000BF900C94D421103FD1F118F4103E50F405 -:10383000A1C0123F09F463C008F44CC0133F09F45F -:1038400073C098C01F708B2D8F710023A1F00E9450 -:103850006D21812F26960FB6F894DEBF0FBECDBF27 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF900C94FD190E948E21812F26960FB6C1 -:10388000F894DEBF0FBECDBFDF91CF911F910F9196 -:10389000FF90EF90DF90CF90BF900C94041A00231C -:1038A000A9F02111BFC08B2D8F7126960FB6F89409 -:1038B000DEBF0FBECDBFDF91CF911F910F91FF9063 -:1038C000EF90DF90CF90BF900C94B321223008F09E -:1038D000A9C0E9CF0023A9F08B2D8F7126960FB6D2 -:1038E000F894DEBF0FBECDBFDF91CF911F910F9136 -:1038F000FF90EF90DF90CF90BF900C946D2100234C -:1039000059F38B2D8F7126960FB6F894DEBF0FBE3C -:10391000CDBFDF91CF911F910F91FF90EF90DF907E -:10392000CF90BF900C948E21002399F08B2D8F7136 -:1039300026960FB6F894DEBF0FBECDBFDF91CF91B4 -:103940001F910F91FF90EF90DF90CF90BF900C945C -:10395000582126960FB6F894DEBF0FBECDBFDF917B -:10396000CF911F910F91FF90EF90DF90CF90BF907C -:103970000C944E210023A9F0222309F4ADCF812F0E -:1039800026960FB6F894DEBF0FBECDBFDF91CF9164 -:103990001F910F91FF90EF90DF90CF90BF900C940C -:1039A000E618222309F4ADCF812F26960FB6F8949E -:1039B000DEBF0FBECDBFDF91CF911F910F91FF9062 -:1039C000EF90DF90CF90BF900C94AE194B2D4F70BD -:1039D000612FC7010E94820926960FB6F894DEBFB8 -:1039E0000FBECDBFDF91CF911F910F91FF90EF9050 -:1039F000DF90CF90BF900C9472204B2D4F70612FB1 -:103A0000C70126960FB6F894DEBF0FBECDBFDF917B -:103A1000CF911F910F91FF90EF90DF90CF90BF90CB -:103A20000C94300E26960FB6F894DEBF0FBECDBFB5 -:103A3000DF91CF911F910F91FF90EF90DF90CF908A -:103A4000BF9008950E942F230E9404230E944923BF -:103A50000E9413290E94E02780E090E00E94B8179E -:103A600080E090E00C94CE170E941F230C94221D3E -:103A70000E942922292F22952F7030E02C30310509 -:103A80004CF42A3031056CF42250310922303105D2 -:103A900088F407C02C30310549F02F30310531F062 -:103AA00009C0803E48F0803F29F406C093FB882778 -:103AB00080F9089580E0089581E00895CF93DF9321 -:103AC00000D000D01F92CDB7DEB70F900F900F90AF -:103AD0000F900F90DF91CF910895CF93DF9300D097 -:103AE00000D000D0CDB7DEB726960FB6F894DEBF73 -:103AF0000FBECDBFDF91CF9108951F93CF93DF937A -:103B0000C091860116E080918701C81799F0D0E036 -:103B10001C9FF0011D9FF00D1124E857FE4F4081BE -:103B2000518162817381848195810E946D1D2196EE -:103B3000C770E9CFDF91CF911F9108954091B801EF -:103B40005091B9016091BA017091BB018091BC01A3 -:103B50009091BD010C946D1D8091BD0182958F7077 -:103B600009F054C08091BA01882309F44FC08091B4 -:103B70008601A09187016091B8017091B9014091CF -:103B8000BB015091BC01B6E08A1709F43FC090E038 -:103B900041155105C1F17F3F11F46F3FA1F1B89F6D -:103BA000F001B99FF00D1124E857FE4F21817213E7 -:103BB0002AC02081621327C02281211124C02381C1 -:103BC00034812417350710F421503109241B350B9B -:103BD000283C3105C0F42091BD012F702061209355 -:103BE000BD0126E0289FF001299FF00D1124E35725 -:103BF000FE4F80818F708061808388EB91E00E940E -:103C00000B1A0C947D1D01968770BECF0895CF923C -:103C1000DF92EF92FF920F931F93CF93DF93CDB775 -:103C2000DEB762970FB6F894DEBF0FBECDBF8C0132 -:103C300085E0F801DE011D9601900D928A95E1F76D -:103C4000D8014C9111965C91119712966C91129734 -:103C50001396CD90DC9014973091B8017091B90112 -:103C60008091BB019091BC01009709F46BC17F3F2B -:103C700019F43F3F09F466C1E090BA01EE2009F45F -:103C8000C0C02091BD01C816D90628F0F601E81B76 -:103C9000F90BCF0104C0809590958C0D9D1DFF24DC -:103CA000F394883C910578F0F12C207F09F0C6C090 -:103CB0007C2DD98AC88A89890E945E1D88EB91E093 -:103CC0000E940B1AB1C0822F807F09F046C0751385 -:103CD00014C0341312C0611110C02F7020612093E2 -:103CE000BD010E949E1D88EB91E00E940B1A8091FD -:103CF000BD01D80115968C932EC0CD2819F15F3FD8 -:103D000011F44F3FF9F0F62E61111CC0809186012D -:103D10002091870136E0821709F45AC090E0389F5D -:103D2000F001399FF00D1124E857FE4F71815713B0 -:103D300006C07081471303C07281711103C00196E0 -:103D40008770E9CFF62E662309F418C18091BD0172 -:103D500081608093BD01F12C11C1751308C034132B -:103D600006C0611104C08091BD01D801C3C04D8758 -:103D70005E878D859E856A8B0E94381D6A8988239F -:103D8000E1F16623D1F12091BD01822F82958F70E0 -:103D900090E0029774F08091B8019091B9019887F2 -:103DA0008F831986DB86CA862C87CE0107960E94F0 -:103DB0000B1A86E0F801A8EBB1E001900D928A950C -:103DC000E1F70E94AC1D0E949E1DFF24F394D6C013 -:103DD0004D875E878D859E850E942922292F2295F9 -:103DE0002F7030E0223031050CF0BCC09F7009F01C -:103DF000B6C0805E883008F4C1C0C8010E940B1AAA -:103E0000E4CFC816D90608F453C0F601E81BF90B35 -:103E1000CF01883C910508F450C0F12C7C2DD98A43 -:103E2000C88A89890E945E1DE8EBF1E086E0DF0127 -:103E30001D928A95E9F70E949E1DA0C0751314C0BB -:103E4000341312C0611110C08091BD01F801858347 -:103E5000C8010E940B1A86E0E8EBF1E0DF011D9239 -:103E60008A95E9F7FE2C8AC04D875E878D859E85F1 -:103E70006A8B0E94381D6A89882309F4BECF6623A5 -:103E800009F4BBCF2091BD01822F82958F7090E005 -:103E900002970CF48ECF8091B8019091B9019A836A -:103EA00089831B82DD82CC822E83CE0101967FCF57 -:103EB000809590958C0D9D1DACCFF62E662309F450 -:103EC0009CCF75132EC034132CC02091BD0120FD52 -:103ED0001FC0822F82958F70D9F0D80115962C9330 -:103EE00015978F3049F08F5F982F9295907F822F92 -:103EF0008F70892B15968C93C8010E940B1A86E04F -:103F0000F801A8EBB1E001900D928A95E1F793CF0B -:103F100086E0F801A8EBB1E001900D928A95E1F7F7 -:103F20002DC04D875E878D859E850E94381D81112D -:103F300040CF8091BD0181608093BD01C8010E9486 -:103F40000B1A1CC0662309F458CF4D875E878D85F8 -:103F50009E850E94381D882309F44FCF2ACF8111F6 -:103F600048CF0CC0243031050CF047CF9F7009F4C6 -:103F700040CFF8019581907F09F03BCF8F2D62965D -:103F80000FB6F894DEBF0FBECDBFDF91CF911F916A -:103F90000F91FF90EF90DF90CF9008951F93CF93F4 -:103FA000DF93CDB7DEB72C970FB6F894DEBF0FBE08 -:103FB000CDBF4F83588769877A878B879C87CE01CF -:103FC00007960E94071E882369F08F8198852A85AD -:103FD0003B85232BF1F19F3F09F063C08F3F09F030 -:103FE00060C037C086E0FE013796DE011196019071 -:103FF0000D928A95E1F76F817885EA85FB85309788 -:1040000041F17F3F11F46F3F21F12091870130E0B2 -:10401000C9010196877099274091860150E0841765 -:10402000950709F447C069837A83FD83EC8396E0A2 -:10403000929FD001939FB00D1124A857BE4FFE014F -:10404000319601900D929A95E1F7809387010E9435 -:104050007D1D16E080918601909187018917C1F13D -:10406000189FC001112488579E4F0E94071E882365 -:1040700079F1E09186011E9FF0011124E857FE4F6F -:104080004081518162817381848195810E946D1D7F -:104090008091860190E00196877099278093860130 -:1040A000D9CF4F81588569857A858B859C850E94FB -:1040B0006D1DCFCF0E94341D109287011092860192 -:1040C000E8EBF1E086E0DF011D928A95E9F7C1CFC8 -:1040D0002C960FB6F894DEBF0FBECDBFDF91CF9107 -:1040E0001F910895EF92FF920F931F93CF93DF9349 -:1040F0008C01892B09F46CC0F12CEE24E394E801C7 -:104100002196F8018491843740F4843008F051C03E -:10411000813081F0823019F15BC0853709F444C0E9 -:10412000A8F19CE7980F903708F052C08F770E9453 -:10413000AE1941C00E5F1F4FFE01C49180E28C0F8B -:10414000883048F4C7708E2D01C0880FCA95EAF7F1 -:104150000E94222314C08C2F0E94E6182DC00E5FEF -:104160001F4FFE01C49180E28C0F883058F4C77055 -:104170008E2D01C0880FCA95EAF70E9428230E945D -:1041800049231AC08C2F0E94AE1916C00E5F1F4F14 -:10419000FE01C491CC2381F08FE99FE00197F1F7F4 -:1041A00000C00000C150F6CF0E5F1F4FFE01F4901B -:1041B00003C00E94E6188E018F2D882309F49FCF3B -:1041C000EFE9FFE03197F1F700C000008150F5CF33 -:1041D000DF91CF911F910F91FF90EF900895089577 -:1041E0006093C2017093C3018093C4019093C50191 -:1041F0000C94221D0F931F930091C2011091C301D3 -:104200002091C4013091C501DC01CB01802B912BA1 -:10421000A22BB32B8093C2019093C301A093C4013E -:10422000B093C5011F910F910C94221D0F931F9302 -:104230000091C2011091C3012091C4013091C501C8 -:10424000DC01CB0180239123A223B3238093C201FD -:104250009093C301A093C401B093C5011F910F9126 -:104260000C94221D0F931F930091C2011091C30162 -:104270002091C4013091C501DC01CB018027912739 -:10428000A227B3278093C2019093C301A093C401D6 -:10429000B093C5011F910F910C94221D1092BE0185 -:1042A0001092BF011092C0011092C1010C94221D06 -:1042B00041E050E060E070E004C0440F551F661F0D -:1042C000771F8A95D2F74093BE015093BF01609348 -:1042D000C0017093C1010C94221D41E050E060E0E8 -:1042E00070E004C0440F551F661F771F8A95D2F7F0 -:1042F0008091BE019091BF01A091C001B091C10118 -:10430000482B592B6A2B7B2B4093BE015093BF0146 -:104310006093C0017093C1010C94221D41E050E0F4 -:1043200060E070E004C0440F551F661F771F8A9538 -:10433000D2F740955095609570958091BE0190910F -:10434000BF01A091C001B091C101482359236A2344 -:104350007B234093BE015093BF016093C0017093D3 -:10436000C1010C94221D41E050E060E070E004C007 -:10437000440F551F661F771F8A95D2F78091BE01A3 -:104380009091BF01A091C001B091C1014827592768 -:104390006A277B274093BE015093BF016093C00101 -:1043A0007093C1010C94221D0F931F930091BE01C5 -:1043B0001091BF012091C0013091C101DC01CB01FE -:1043C000802B912BA22BB32B8093BE019093BF0126 -:1043D000A093C001B093C1011F910F910C94221DB5 -:1043E0000F931F930091BE011091BF012091C00156 -:1043F0003091C101DC01CB0180239123A223B3239F -:104400008093BE019093BF01A093C001B093C101FE -:104410001F910F910C94221D0F931F930091BE01C9 -:104420001091BF012091C0013091C101DC01CB018D -:1044300080279127A227B3278093BE019093BF01C5 -:10444000A093C001B093C1011F910F910C94221D44 -:104450000895CF92DF92EF92FF920F931F93CF9325 -:10446000DF938C01C090C201D090C301E090C401E1 -:10447000F090C5014091BE015091BF016091C00113 -:104480007091C101C42AD52AE62AF72ACFE1D0E0EB -:10449000D701C6010C2E04C0B695A79597958795B0 -:1044A0000A94D2F780FF07C0B8018C2F0E94530EE8 -:1044B0008130910531F4219758F7B80180E00E94CE -:1044C000530EDF91CF911F910F91FF90EF90DF90EE -:1044D000CF90089590910C01992321F090910D01B6 -:1044E000911109C020910E0130910F01F90132960E -:1044F0009FEF40E030C0982F9695969596959F3007 -:10450000A0F4E0910E01F0910F01E90FF11D877009 -:1045100021E030E0A90102C0440F551F8A95E2F75F -:10452000CA019181892B818308959091D90190FFCF -:1045300023C01F928F938CEE98E09F938F930E94DD -:1045400079090F900F900F900F9008959F3F39F0C9 -:104550004F5F4E3041F051915813F8CF0DC05111BB -:10456000F7CF942FF5CF9F3F39F0F901E90FF11DF7 -:1045700097FDFA9582830895089590910C019923EF -:1045800021F090910D01911109C020910E013091FF -:104590000F01F9013296205F3F4F30C0982F96955A -:1045A000969596959F30A8F4E0910E01F0910F0139 -:1045B000E90FF11D877021E030E0A90102C0440F2E -:1045C000551F8A95E2F7CA018095918189238183DD -:1045D00008959091D90190FF16C01F928F938EEC91 -:1045E00098E09F938F930E9479090F900F900F90FE -:1045F0000F9008953196E217F30729F090819813F0 -:10460000F9CF1082F7CF089581E090E0E0910E019C -:10461000F0910F01E80FF91F10820196803191058A -:10462000A9F708959091D801892B8093D801089516 -:1046300080959091D80189238093D8010895109294 -:10464000D80108959091D701892B8093D7010895BF -:1046500080959091D70189238093D7010895109276 -:10466000D70108958093C60108951092C601089558 -:1046700080910E0190910F01FC0131969C01205F09 -:104680003F4F80E0919191118F5FE217F307D1F7CF -:104690000895E0910E01F0910F018091D80180837F -:1046A000E0910E01F0910F0190818091D701892B4B -:1046B00080838091C601882361F0E0910E01F09122 -:1046C0000F019081892B80830E94382381111092E1 -:1046D000C60180910E0190910F010C946417909384 -:1046E0003B0180933A010895CF92DF92EF92FF92BF -:1046F0006C01EE24FF24C114D104E104F10421F083 -:10470000C701B60120E101C020E0C72ED82EE92E56 -:10471000FF24C114D104E104F10419F0285FC7019A -:10472000B6016B017C0154E0F694E794D794C794EA -:104730005A95D1F7C114D104E104F10419F02C5FAA -:10474000C701B6016B017C0142E0F694E794D7946F -:10475000C7944A95D1F7C114D104E104F10419F0CA -:104760002E5FC701B601DC01CB01B695A7959795E1 -:104770008795892B8A2B8B2B09F02F5F822FFF9037 -:10478000EF90DF90CF9008958295982F9C7C392FE1 -:1047900036953695282F237344E0249FC0011124B9 -:1047A000932F982B292F2A7A2695892F8575880F84 -:1047B000822B08951F93CF93DF931F92CDB7DEB75F -:1047C00099830E94C423182F9981892F0E94C423A2 -:1047D000212F30E0322F2227A901482BCA010F9048 -:1047E000DF91CF911F9108958091F201843009F1FA -:1047F0001092DA0120E488E190E00FB6F894A895D1 -:10480000809360000FBE2093600083B7817F846037 -:1048100083BF83B7816083BF7894889583B78E7F89 -:1048200083BF88E10FB6F894809360001092600017 -:104830000FBE089508950895CF930E941A240E94F0 -:10484000F80B0E941B24C0E08C2F0E94240D8111C4 -:1048500004C0CF5FCE30C1F701C081E0CF91089591 -:104860000E94341D0E9458170C948A0F82E084BD68 -:1048700093E095BD9AEF97BD80936E0008952FB792 -:10488000F8948091DB019091DC01A091DD01B09161 -:10489000DE012FBF0895CF92DF92EF92FF920F9328 -:1048A0001F932FB7F8944091DB015091DC01609188 -:1048B000DD017091DE012FBF6A017B01EE24FF2430 -:1048C0008C0120E030E0C016D106E206F30610F4B9 -:1048D000415051099A01281B390BC9011F910F91B1 -:1048E000FF90EF90DF90CF9008951F920F920FB638 -:1048F0000F9211248F939F93AF93BF938091DB010D -:104900009091DC01A091DD01B091DE010196A11D25 -:10491000B11D8093DB019093DC01A093DD01B09386 -:10492000DE01BF91AF919F918F910F900FBE0F90BD -:104930001F9018950E945614F8942FEF87EA91E67D -:10494000215080409040E1F700C0000087E090EBEC -:10495000DC018093FB019093FC01A093FD01B093D7 -:10496000FE019CE088E10FB6F894A8958093600062 -:104970000FBE90936000FFCFEF92FF920F931F93B3 -:10498000CF93DF93D82FC0E08C2F0E94240D00E03E -:1049900010E0E82EF12CC701002E02C095958795F6 -:1049A0000A94E2F780FD06C00F5F1F4F0630110525 -:1049B00091F709C0602F7C2F80E00E94310ED81340 -:1049C000F3CF81E004C0CF5FCE30F1F680E0DF911D -:1049D000CF911F910F91FF90EF900895CF93C82F23 -:1049E0008CE20E94BC24882321F08C2FCF910C9460 -:1049F000BC2480E0CF910895CF930E944B26811173 -:104A000002C00E94312681E199E00E94E008C5E6DB -:104A1000C15049F00E94F80B8FE39CE90197F1F730 -:104A200000C00000F5CF8AE099E00E94E00889E22A -:104A30000E94EE24811113C18AE20E94EE248111AA -:104A40000E94312685E00E94EE2481110E949A2462 -:104A50000E9456268093D90187E00E94EE24882385 -:104A6000A9F18BE10E94EE24882351F08091D901B5 -:104A700081FB222720F991E0922790FB81F90EC05B -:104A80008EE00E94EE24882361F08091D90182FBA0 -:104A9000222720F991E0922790FB82F98093D90197 -:104AA00015C080E10E94EE249091D901882341F045 -:104AB00093FB222720F981E0822780FB93F904C031 -:104AC000892F809580FB90F99093D9018091D9012D -:104AD0000E945A260E9468268093EC0180EE0E9474 -:104AE000EE24882341F08091EC01982F909590FB63 -:104AF00080F98093EC0189E30E94EE24882359F029 -:104B00008091EC0181FB222720F991E0922790FB14 -:104B100081F98093EC0182EE0E94EE24882359F003 -:104B20008091EC0182FB222720F991E0922790FBF3 -:104B300082F98093EC0186EE0E94EE24882359F0DE -:104B40008091EC0183FB222720F991E0922790FBD2 -:104B500083F98093EC0183EE0E94EE24882359F0C0 -:104B60008091EC0184FB222720F991E0922790FBB1 -:104B700084F98093EC0185E30E94EE24882359F0A8 -:104B80008091EC0185FB222720F991E0922790FB90 -:104B900085F98093EC0181E30E94EE24882359F08B -:104BA0008091EC0186FB222720F991E0922790FB6F -:104BB00086F98093EC0181E10E94EE24882359F06C -:104BC0008091EC0187FB222720F991E0922790FB4E -:104BD00087F98093EC018091EC010E946C26809112 -:104BE000EC0187FB882780F980930D0187E20E9402 -:104BF000EE24C82F8EE10E94EE248111C2608FE165 -:104C00000E94EE248111C46080E20E94EE24811192 -:104C1000C86081E20E94EE248111C06182E20E949C -:104C2000EE248111C06283E20E94EE248111C064EF -:104C300084E20E94EE24882311F0C06802C0CC23D5 -:104C400029F08C2F0E9463266C2F03C00E945F26E0 -:104C5000682F70E080E090E0CF910C94F020CF912D -:104C600008956DEE7EEF80E090E00E94343060E0C9 -:104C700082E090E00E94263060E083E090E00E94B5 -:104C8000263060E084E090E00E94263060E085E01D -:104C900090E00C94263080E090E00E94203021E0EB -:104CA0008D3E9E4F09F020E0822F089582E090E033 -:104CB0000C941830682F82E090E00C94263083E04A -:104CC00090E00C941830682F83E090E00C9426302C -:104CD00084E090E00C941830682F84E090E00C940D -:104CE00026308091E10180FF0BC06091130185E0C7 -:104CF000689FB001112475956795759567952BC0D0 -:104D000081FF09C06091130185E0689FB001112403 -:104D10007595679520C082FF07C06091130185E0FB -:104D2000689FB001112417C09091E2019923D1F03E -:104D300060911201961788F72091130185E0289F52 -:104D400090011124929FA001939F500D112470E0B7 -:104D5000CA010E94EA2F6038710540F4611571059F -:104D600039F002C065E070E0862F08958FE708955E -:104D700081E008958091E10180FF08C060911101F8 -:104D800070E0759567957595679521C081FF06C0A0 -:104D90006091110170E07595679519C082FF04C09C -:104DA0006091110170E010C09091E2019923C1F06F -:104DB000609110019617A0F780911101899FC001A1 -:104DC000112470E00E94EA2F6038710528F4611503 -:104DD000710521F0862F08958FE7089581E00895E9 -:104DE00061E070E0F4CF803F21F40E94712681954C -:104DF00004C0813F29F40E9471268093E501089543 -:104E0000823F21F40E947126819504C0833F29F4DA -:104E10000E9471268093E4010895893F19F40E944D -:104E2000BA2605C08A3F31F40E94BA268195809344 -:104E3000E60108958B3F21F40E94BA26819504C0B3 -:104E40008C3F29F40E94BA268093E7010895843F9D -:104E500021F48091E301816017C0853F21F48091A6 -:104E6000E301826011C0863F21F48091E3018460F8 -:104E70000BC0873F21F48091E301886005C0883F23 -:104E800031F48091E30180618093E30108958D3FC7 -:104E900021F48091E10181600BC08E3F21F480916B -:104EA000E101826005C08F3F29F48091E1018460B7 -:104EB0008093E1010895803F39F48091E50187FFF7 -:104EC0006CC01092E50169C0813F29F48091E50131 -:104ED0001816BCF362C09091E401823F29F497FF59 -:104EE0005CC01092E40159C0833F19F41916CCF349 -:104EF00054C0893F41F48091E60118160CF04DC072 -:104F00001092E6014AC08A3F29F48091E60187FFAA -:104F100044C0F6CF8B3F39F48091E70187FF3DC055 -:104F20001092E7013AC08C3F29F48091E7011816EE -:104F3000BCF333C0843F21F48091E3018E7F17C01E -:104F4000853F21F48091E3018D7F11C0863F21F4DC -:104F50008091E3018B7F0BC0873F21F48091E301B7 -:104F6000877F05C0883F31F48091E3018F7E809375 -:104F7000E30113C08D3F21F48091E1018E7F0BC0CE -:104F80008E3F21F48091E1018D7F05C08F3F29F490 -:104F90008091E1018B7F8093E1018091E401811197 -:104FA0000EC08091E50181110AC08091E601811156 -:104FB00006C08091E701811102C01092E2010895BC -:104FC0008091D90183FF7EC08DE499E00E94E008C2 -:104FD0008091E3011F928F9388E499E09F938F93D0 -:104FE0000E94790986E499E00E94E0088091E4013A -:104FF000282F332727FD30953F938F9383E499E043 -:105000009F938F930E94790981E499E00E94E008C0 -:105010008091E501282F332727FD30953F938F930B -:105020008EE399E09F938F930E9479098CE399E036 -:105030000E94E0088091E601282F332727FD309554 -:105040003F938F9389E399E09F938F930E9479090F -:1050500087E399E00E94E0088091E701282F332739 -:1050600027FD30953F938F9384E399E09F938F932F -:105070000E94790981E399E00E94E0088091E201B1 -:105080001F928F938EE299E09F938F930E947909EC -:105090008CE299E00E94E0088091E1011F928F93D9 -:1050A00089E299E09F938F930E94790986E299E0C3 -:1050B0000E94E0088DB79EB74C960FB6F8949EBF3D -:1050C0000FBE8DBF83EE91E00E94AD170E943F247A -:1050D0009093E0018093DF0108951F93CF93DF93B6 -:1050E0008091DF019091E0010E944B24AC019091EE -:1050F000E201992321F02091140130E006C02091B3 -:1051000015018AE0289F900111244217530708F4E3 -:1051100086C08091E401C091E501D091E601109133 -:10512000E701811107C0C11176C0D11174C01111FE -:1051300072C075C09F3F19F09F5F9093E2011816EF -:1051400024F40E9471268093E4018091E40187FF9A -:1051500005C00E94712681958093E4011C1624F4F9 -:105160000E9471268093E5018091E50187FF05C0CB -:105170000E94712681958093E5016091E401662388 -:1051800039F1C091E501CC2319F1772767FD7095BE -:10519000872F972F0E94EF2E23E333E343E35FE350 -:1051A0000E94532F0E94BC2E6093E4016C2F77273E -:1051B00067FD7095872F972F0E94EF2E23E333E32F -:1051C00043E35FE30E94532F0E94BC2E6093E501EE -:1051D0001D1624F40E94BA268093E6018091E60110 -:1051E00087FF05C00E94BA2681958093E6011116BB -:1051F00024F40E94BA268093E7018091E70187FF9B -:1052000005C00E94BA2681958093E701DF91CF9176 -:105210001F910C94E0279F3F09F08ECF96CFDF912E -:10522000CF911F910895E3EEF1E085E0DF011D923B -:105230008A95E9F71092E2011092E101089580E762 -:105240009BE00E94E0081F9281E08F931F9285E00F -:105250008F9382E29BE09F938F930E9479090F9036 -:105260000F900F900F900F900F9008958330E9F1F9 -:1052700028F4813061F0823009F10895853009F415 -:1052800062C008F449C0863009F474C00895809162 -:105290001501262F30E0280F311D2F3F310524F452 -:1052A000680F6093150103C08FEF80931501809103 -:1052B00015011F928F938BE59AE072C080911401C3 -:1052C000262F30E0280F311D2F3F310524F4680FC1 -:1052D0006093140103C08FEF809314018091140137 -:1052E0001F928F9389E49AE05BC080911301262F6F -:1052F00030E0280F311D2F3F310524F4680F6093F3 -:10530000130103C08FEF80931301809113011F924B -:105310008F9386E39AE044C080911201262F30E0FB -:10532000280F311D2F3F310524F4680F60931201BF -:1053300003C08FEF80931201809112011F928F930F -:1053400081E29AE02DC080911101262F30E0280FD4 -:10535000311D2F3F310524F4680F6093110103C004 -:105360008FEF80931101809111011F928F9388E03C -:105370009AE016C080911001262F30E0280F311DD1 -:105380002F3F310524F4680F6093100103C08FEFA5 -:1053900080931001809110011F928F938DEE99E000 -:1053A0009F938F930E9479090F900F900F900F9009 -:1053B0000895833081F128F4813059F08230D1F0A2 -:1053C0000895853009F449C0B8F1863009F456C013 -:1053D000089580911501681720F4861B80931501AC -:1053E00002C010921501809115011F928F938EEDCE -:1053F00099E054C080911401681720F4861B8093B3 -:10540000140102C010921401809114011F928F9315 -:105410008CEC99E043C080911301681720F4861B3F -:105420008093130102C010921301809113011F9207 -:105430008F9389EB99E032C080911201681720F4B4 -:10544000861B8093120102C01092120180911201FA -:105450001F928F9384EA99E021C08091110168170F -:1054600020F4861B8093110102C0109211018091DB -:1054700011011F928F938BE899E010C08091100169 -:10548000681720F4861B8093100102C0109210014F -:10549000809110011F928F9380E799E09F938F93E3 -:1054A0000E9479090F900F900F900F900895CF935D -:1054B000C82F1F928F9385E79CE09F938F930E9444 -:1054C000790981E090E0A0E0B0E0BC01CD0104C02A -:1054D000660F771F881F991FCA95D2F70E94F02088 -:1054E0000F900F900F900F90CF910C94341DCF938D -:1054F0008D3109F465C0B0F58E3009F4CCC100F5EA -:10550000873009F49BC1A8F4863009F06DC2809100 -:10551000D901817F8E7F8093D9018AE79CE00E9428 -:10552000E0088CEB90E10E94E00881E08093E901C3 -:1055300080C1883009F44FC08B3009F47CC154C25B -:10554000863109F4F0C138F4803109F4B8C18131F1 -:1055500009F430C249C2893109F4CEC18B3109F452 -:1055600086C142C2853309F437C248F4873209F450 -:1055700033C208F433C2893209F42EC235C28334EF -:1055800038F48A3308F02CC2883309F454C12CC291 -:10559000833409F421C2883409F026C20E94341DE4 -:1055A0008BEA90E10E94E0089FEF23ED80E39150A9 -:1055B00020408040E1F700C000000E949A2439C1D9 -:1055C0008BEC90E10E94E0080E94762E0E94581712 -:1055D0000E948A0F2EC180EC90E10E94E0088BE8C7 -:1055E0009EE00E94E0080E945F261F928F9388E849 -:1055F0009EE09F938F930E94790986E89EE00E9427 -:10560000E0080E945626C82F83E79EE00E94E0082B -:105610001F92CF938EE69EE09F938F930E9479090D -:105620008CE69EE00E94E00882E69EE00E94E00890 -:105630008C2F81701F928F938FE59EE09F938F93A5 -:105640000E9479098DE59EE00E94E00883E59EE0D6 -:105650000E94E008C1FB882780F91F928F9380E5A4 -:105660009EE09F938F930E9479098EE49EE00E94B2 -:10567000E00882E49EE00E94E008C2FB882780F9EF -:105680001F928F938FE39EE09F938F930E947909DF -:105690008DE39EE00E94E00884E39EE00E94E00823 -:1056A000C3FBCC27C0F91F92CF9381E39EE09F9369 -:1056B0008F930E9479098FE29EE00E94E0080E9489 -:1056C0006826C82F8BE19EE00E94E0081F92CF93CE -:1056D00086E19EE09F938F930E94790984E19EE08A -:1056E0000E94E0088BEF9DE00E94E0088C2F817003 -:1056F0001F928F9388EF9DE09F938F930E9479096B -:105700008DB79EB780960FB6F8949EBF0FBE8DBF23 -:1057100086EF9DE00E94E0088FED9DE00E94E0088A -:10572000C1FB882780F91F928F938CED9DE09F939A -:105730008F930E9479098AED9DE00E94E00888EC31 -:105740009DE00E94E008C2FB882780F91F928F939A -:1057500085EC9DE09F938F930E94790983EC9DE0F7 -:105760000E94E00881EB9DE00E94E008C3FB8827CF -:1057700080F91F928F938EEA9DE09F938F930E94F2 -:1057800079098CEA9DE00E94E00882EA9DE00E948F -:10579000E008C4FB882780F91F928F938FE99DE072 -:1057A0009F938F930E9479098DE99DE00E94E00804 -:1057B0008BE89DE00E94E008C5FB882780F91F92D6 -:1057C0008F9388E89DE09F938F930E94790986E8E4 -:1057D0009DE00E94E0088AE69DE00E94E008C6FB8A -:1057E000882780F91F928F9387E69DE09F938F9380 -:1057F0000E94790985E69DE00E94E0088DE59DE024 -:105800000E94E008C7FBCC27C0F91F92CF938AE51E -:105810009DE09F938F930E94790988E59DE00E9407 -:10582000E0088DB79EB74C960FB6F8949EBF0FBE9A -:105830008DBFC1E0DEC081EA9CE05BC08091D901F0 -:10584000C82FC17080FF09C08EE990E10E94E00876 -:105850008091D901817F8E7F47C082E990E10E94CB -:10586000E0088091D90181608093D901E2CF9091C5 -:10587000D90191FBCC27C0F981E0C827892FC0FB53 -:1058800081F98093D901CC2319F085E890E127C0F4 -:1058900087E790E12EC09091D90192FBCC27C0F907 -:1058A00081E0C827892FC0FB82F98093D901CC23DE -:1058B00019F088E690E113C088E590E11AC0909154 -:1058C000D90193FBCC27C0F981E0C827892FC0FB01 -:1058D00083F98093D901CC2351F08CE490E10E94AC -:1058E000E0088091D90181608093D90182C08FE363 -:1058F00090E10E94E0089DCF80E390E10E94E008E3 -:1059000084E090E10E94E00887EC9FE00E94E008BC -:105910008AE99FE00E94E00886E59FE00E94E00897 -:105920008BE29FE0E6CF8DE19FE00E94E0080E94BD -:1059300058171F928F9383E09FE09F938F930E944D -:10594000790980910C011F928F938CEE9EE09F93BA -:105950008F930E947909809170011F928F9389ED36 -:105960009EE09F938F930E94790980910D011F9271 -:105970008F9386EC9EE09F938F930E94790980918C -:10598000DB019091DC01A091DD01B091DE01BF93BC -:10599000AF939F938F9382EB9EE09F938F930E9490 -:1059A00079098DB79EB746960FB6F8949EBF0FBE85 -:1059B0008DBF3FCF0E94341DC0910D0181E0C827EB -:1059C000C0930D01CC2329F088EA9EE00E94E008F4 -:1059D00010C08DE99EE08DCF80E003C08D5101C0E5 -:1059E00089530E94572A25CF8BE99EE00E94E00848 -:1059F000C0E08C2FCF91089580E0089580E0089555 -:105A0000CF93C82F8091E901813081F020F082305E -:105A100009F44FC045C1E0910E01F0910F01808162 -:105A2000813169F0823209F03DC109C0E0910E0177 -:105A3000F0910F018081813111F0823261F48C2F5D -:105A40000E94FC2C811104C08C2F0E94772A2FC049 -:105A500081E090E02CC08C2F0E94FE2C811126C08A -:105A6000C431E1F070F4CB3081F0C031D1F40E9448 -:105A70001F298DE69CE00E94E00882E08093E90106 -:105A800015C0C93259F0C83361F48AE79CE00E941E -:105A9000E00881E79CE00E94E00808C01092E9015C -:105AA00003C18BE69CE00E94E008FEC081E08170AB -:105AB000FDC0C43220F5CE3108F0C0C0CB3099F122 -:105AC000C8F4C73009F0D2C08AE08093150194E190 -:105AD0009093140193E0909313018093120188E056 -:105AE0008093110188E28093100181E19BE00E9484 -:105AF000E008BFC0C33149F1C431C1F0B7C0CB34F5 -:105B000009F4A9C028F4C93289F0C83361F0AEC0E5 -:105B1000C13509F49EC0C23509F499C0CE3409F0EC -:105B2000A5C06AE09EC00E941F29A3C08091E80121 -:105B3000882319F01092E8019CC08EE19BE00E943E -:105B4000E00881E08093E901B1C088EF9AE00E940B -:105B5000E00886EE9AE00E94E008809115011F920D -:105B60008F9383EE9AE09F938F930E94790981EE41 -:105B70009AE00E94E0088FEC9AE00E94E008809191 -:105B800014011F928F938CEC9AE09F938F930E9445 -:105B900079098AEC9AE00E94E0088BEB9AE00E9477 -:105BA000E008809113011F928F9388EB9AE09F93F6 -:105BB0008F930E94790986EB9AE00E94E00885EABB -:105BC0009AE00E94E008809112011F928F9382EA6E -:105BD0009AE09F938F930E94790980EA9AE00E944D -:105BE000E0088BE89AE00E94E008809111011F9282 -:105BF0008F9388E89AE09F938F930E94790986E8B3 -:105C00009AE00E94E0088FE69AE00E94E008809106 -:105C100010011F928F938CE69AE09F938F930E94BE -:105C200079098AE69AE00E94E0088DB79EB7489607 -:105C30000FB6F8949EBF0FBE8DBF1BC0CE51EC2F88 -:105C4000F0E0E15DFE4F80818093E80112C061E0E9 -:105C500003C061E006C06AE08091E8010E94362935 -:105C600008C08091E8010E94D92903C08FE09BE021 -:105C700013C08091E801882369F01F928F9389E017 -:105C80009BE09F938F930E9479090F900F900F9044 -:105C90000F9004C086E09BE00E94E00881E006C00F -:105CA0001092E90180E002C080E001CFCF91089519 -:105CB000E1E8F0E08081886080838081816080837A -:105CC0008FB7F89493E09093890090ED90938800BB -:105CD0008FBF0895EFE6F0E08081826080830895B1 -:105CE000EFE6F0E080818D7F80830895EFE6F0E0BD -:105CF000908182E08927808308951F920F920FB6CA -:105D00000F9211242F933F934F935F936F937F9341 -:105D10008F939F93AF93BF93EF93FF938091EA018B -:105D20009091EB0101969093EB018093EA01811130 -:105D300003C082E00E948A0FE091EB01E695E695B0 -:105D4000F0E0E552FF4EE4918091EA018E1303C02A -:105D500080E00E948A0FFF91EF91BF91AF919F91D8 -:105D60008F917F916F915F914F913F912F910F9004 -:105D70000FBE0F901F90189504D06894B1118DC07C -:105D8000089570D088F09F5790F0B92F9927B75198 -:105D9000A0F0D1F0660F771F881F991F1AF0BA95EF -:105DA000C9F712C0B13081F077D0B1E0089574C066 -:105DB000672F782F8827B85F39F0B93FCCF38695E5 -:105DC00077956795B395D9F73EF490958095709542 -:105DD00061957F4F8F4F9F4F0895E89409C097FBBF -:105DE0003EF490958095709561957F4F8F4F9F4FB2 -:105DF0009923A9F0F92F96E9BB279395F6958795F6 -:105E000077956795B795F111F8CFFAF4BB0F11F4B8 -:105E100060FF1BC06F5F7F4F8F4F9F4F16C088235F -:105E200011F096E911C0772321F09EE8872F762F95 -:105E300005C0662371F096E8862F70E060E02AF0D6 -:105E40009A95660F771F881FDAF7880F96958795C2 -:105E500097F9089557FD9058440F551F59F05F3F2B -:105E600071F04795880F97FB991F61F09F3F79F07C -:105E700087950895121613061406551FF2CF4695FE -:105E8000F1DF08C0161617061806991FF1CF869580 -:105E90007105610508940895E894BB276627772764 -:105EA000CB0197F908950BD078C069D028F06ED057 -:105EB00018F0952309F05AC05FC01124EECFCADF55 -:105EC000A0F3959FD1F3950F50E0551F629FF0010D -:105ED000729FBB27F00DB11D639FAA27F00DB11D66 -:105EE000AA1F649F6627B00DA11D661F829F2227EF -:105EF000B00DA11D621F739FB00DA11D621F839F76 -:105F0000A00D611D221F749F3327A00D611D231F4B -:105F1000849F600D211D822F762F6A2F11249F5799 -:105F200050408AF0E1F088234AF0EE0FFF1FBB1FBC -:105F3000661F771F881F91505040A9F79E3F51055B -:105F400070F014C0AACF5F3FECF3983EDCF3869567 -:105F500077956795B795F795E7959F5FC1F7FE2B06 -:105F6000880F911D9695879597F9089597F99F67E2 -:105F700080E870E060E008959FEF80EC08950024D1 -:105F80000A941616170618060906089500240A949E -:105F900012161306140605060895092E0394000C24 -:105FA00011F4882352F0BB0F40F4BF2B11F460FFB3 -:105FB00004C06F5F7F4F8F4F9F4F0895991B79E00B -:105FC00004C0991F961708F0961B881F7A95C9F789 -:105FD0008095089597FB072E16F4009407D077FD5F -:105FE00009D00E94043007FC05D03EF490958195BD -:105FF0009F4F0895709561957F4F0895EE0FFF1F95 -:106000000590F491E02D0994AA1BBB1B51E107C038 -:10601000AA1FBB1FA617B70710F0A61BB70B881F38 -:10602000991F5A95A9F780959095BC01CD010895C7 -:10603000F999FECF92BD81BDF89A992780B5089550 -:10604000A8E1B0E042E050E00C943B30262FF999F3 -:10605000FECF1FBA92BD81BD20BD0FB6F894FA9A4B -:10606000F99A0FBE019608950E942630272F0C94AE -:106070002730DC01CB01FC01F999FECF06C0F2BD4F -:10608000E1BDF89A319600B40D9241505040B8F7F6 -:066090000895F894FFCF13 -:1060960020028B0F7C1059102510F10F0101C7014A -:1060A60028080A03140A3F4D3620395B080E08D823 -:1060B60007B8077F07F2060B0724073D075D0701B0 -:0A60C60002030405060708090000A4 +:10067000005B735D004B6579626F61726420737417 +:100680006172742E0A005B575D005B535D005B5224 +:100690005D005B445D005B435D0016034500720036 +:1006A00067006F0044006F007800200045005A008A +:1006B000000016034500720067006F0044006F00E1 +:1006C0007800200045005A000000040309040902D4 +:1006D0008D00050100A0FA090400000103010100DA +:1006E000092111010001223F000705810308000ACA +:1006F0000904010001030102000921110100012286 +:100700004D000705820308000A09040200010300E6 +:1007100000000921110100012236000705830308AA +:10072000000A09040300020300000009211101006E +:10073000012220000705840320000107050403208F +:100740000001090404000103000000092111010057 +:100750000122390007058503100001120110010074 +:10076000000008EDFE071301000102000105010968 +:1007700006A101050719E029E7150025019508756F +:100780000181020508190129059505750191029558 +:1007900001750391010507190029771500250195B9 +:1007A0007875018102C00631FF0974A10109751530 +:1007B0000025FF9520750881020976150025FF9513 +:1007C0002075089102C005010980A101850216016A +:1007D0000026B7001A01002AB700751095018100A4 +:1007E000C0050C0901A1018503160100269C021A0F +:1007F00001002A9C02751095018100C005010902C3 +:10080000A1010901A100050919012905150025010A +:100810009505750181029501750381010501093076 +:1008200009311581257F95027508810609381581E2 +:10083000257F950175088106050C0A38021581256A +:100840007F950175088106C0C005010906A1010553 +:100850000719E029E7150025019508750181029522 +:100860000175088101050819012905950575019192 +:10087000029501750391010507190029FF1500254F +:10088000FF950675088100C00A0025303258200007 +:100890006B6579626F6172645F7265706F72743AD2 +:1008A00020000A0025303258006B6579626F617252 +:1008B000645F7365745F6C65643A200064656C5FA7 +:1008C0006B65795F6269743A2063616E2774206496 +:1008D000656C3A20253032580A006164645F6B65AC +:1008E000795F6269743A2063616E27742061646481 +:1008F0003A20253032580A00646F6E652E0A006275 +:100900006F6F676D61676963207363616E3A202E54 +:100910002E2E2000290A002575002F002575005D68 +:1009200028002564002000256400200025640020A4 +:10093000002564007C0025303258006D6F757365AA +:100940006B6579205B62746E7C78207920762068F4 +:100950005D287265702F61636C293A205B006D6BB6 +:100960005F776865656C5F74696D655F746F5F6DF7 +:100970006178203D2025640A006D6B5F77686565AE +:100980006C5F6D61785F7370656564203D202564E0 +:100990000A006D6B5F74696D655F746F5F6D617880 +:1009A000203D2025640A006D6B5F6D61785F737078 +:1009B000656564203D2025640A006D6B5F696E7477 +:1009C000657276616C203D2025640A006D6B5F6462 +:1009D000656C6179203D2025640A006D6B5F776846 +:1009E00065656C5F74696D655F746F5F6D617820BC +:1009F0003D2025640A006D6B5F776865656C5F6DEF +:100A000061785F7370656564203D2025640A006D20 +:100A10006B5F74696D655F746F5F6D6178203D20F9 +:100A200025640A006D6B5F6D61785F737065656446 +:100A3000203D2025640A006D6B5F696E74657276D7 +:100A4000616C203D2025640A006D6B5F64656C61FC +:100A500079203D2025640A000A00257500363A20D9 +:100A6000776865656C5F74696D655F746F5F6D61F4 +:100A7000783A20000A00257500353A2077686565C8 +:100A80006C5F6D61785F73706565643A20000A0081 +:100A9000257500343A2074696D655F746F5F6D6110 +:100AA000783A20000A00257500333A206D61785F9E +:100AB00073706565643A20000A00257500323A209B +:100AC000696E74657276616C286D73293A20000A2C +:100AD00000257500313A2064656C6179282A31302F +:100AE0006D73293A20000A092D2056616C756573D3 +:100AF000202D0A004D3E004D25643E20003F00732E +:100B000065742064656661756C740A00433E20005C +:100B100077686572652064656C74613A20637572EC +:100B2000736F723D25642C20776865656C3D256484 +:100B30000A53656520687474703A2F2F656E2E779E +:100B4000696B6970656469612E6F72672F77696B75 +:100B5000692F4D6F7573655F6B6579730A000A09BC +:100B60002D204D6F7573656B6579202D0A455343B4 +:100B70002F713A09717569740A313A0964656C61BB +:100B800079282A31306D73290A323A09696E746501 +:100B90007276616C286D73290A333A096D61785F4A +:100BA00073706565640A343A0974696D655F746FC2 +:100BB0005F6D61780A353A09776865656C5F6D61CC +:100BC000785F73706565640A363A09776865656CA5 +:100BD0005F74696D655F746F5F6D61780A0A703A62 +:100BE000097072696E742076616C7565730A643A77 +:100BF000097365742064656661756C74730A757039 +:100C00003A092B310A646F776E3A092D310A706701 +:100C100075703A092B31300A7067646F776E3A0944 +:100C20002D31300A0A7370656564203D2064656C5F +:100C30007461202A206D61785F7370656564202A75 +:100C40002028726570656174202F2074696D655F5E +:100C5000746F5F6D6178290A003F004D3E200043AC +:100C60003E20004C25640A000A092D20436F6E7354 +:100C70006F6C65202D0A4553432F713A09717569D0 +:100C8000740A6D3A096D6F7573656B65790A000AB0 +:100C9000092D204D61676963202D0A643A09646556 +:100CA0006275670A783A096465627567206D6174D8 +:100CB0007269780A6B3A096465627567206B6579B9 +:100CC000626F6172640A6D3A096465627567206DCE +:100CD0006F7573650A763A0976657273696F6E0A85 +:100CE000733A097374617475730A633A09636F6EBA +:100CF000736F6C65206D6F64650A302D343A096C32 +:100D000061796572302D34284631302D4634290AF8 +:100D1000506175733A09626F6F746C6F61646572CC +:100D20000A653A09656570726F6D0A6E3A094E4B35 +:100D3000524F0A7A3A09736C656570204C4544201D +:100D4000746573740A000A002575002E6E6B726F4D +:100D50003A20000A002575002E737761705F62618A +:100D6000636B736C6173685F6261636B7370616303 +:100D7000653A20000A002575002E737761705F6761 +:100D8000726176655F6573633A20000A002575001D +:100D90002E6E6F5F6775693A20000A002575002E78 +:100DA000737761705F72616C745F726775693A2006 +:100DB000000A002575002E737761705F6C616C749A +:100DC0005F6C6775693A20000A002575002E636123 +:100DD00070736C6F636B5F746F5F636F6E74726F51 +:100DE0006C3A20000A002575002E737761705F63EE +:100DF0006F6E74726F6C5F636170736C6F636B3A6C +:100E000020000A0025303258006B65796D61705FF3 +:100E1000636F6E6669672E7261773A20000A00255B +:100E200075002E6D6F7573653A20000A00257500F8 +:100E30002E6B6579626F6172643A20000A00257535 +:100E4000002E6D61747269783A20000A00257500E1 +:100E50002E656E61626C653A20000A0025303258BA +:100E60000064656275675F636F6E6669672E7261A5 +:100E7000773A20000A0025750064656661756C7418 +:100E80005F6C617965723A20003F004E4B524F3AD9 +:100E9000206F66660A004E4B524F3A206F6E0A0072 +:100EA00074696D65725F636F756E743A20253034B6 +:100EB0006C580A006B6579626F6172645F6E6B7269 +:100EC0006F3A2025580A006B6579626F6172645F22 +:100ED00069646C653A2025580A006B6579626F6118 +:100EE00072645F70726F746F636F6C3A2025580A7A +:100EF00000686F73745F6B6579626F6172645F6CB9 +:100F000065647328293A2025580A000A092D2053C0 +:100F10007461747573202D0A004743433A20342EC0 +:100F2000392E33204156522D4C4942433A20312E1E +:100F3000382E31204156525F415243483A20617663 +:100F400072350A004F5054494F4E533A204C554683 +:100F50004120424F4F544D41474943204D4F555337 +:100F6000454B45592045585452414B455920434F14 +:100F70004E534F4C4520434F4D4D414E44204E4B18 +:100F8000524F203531320A004255494C443A203202 +:100F90003430646230632D6469727479202830398A +:100FA0003A35383A3539204A616E203238203230AD +:100FB0003136290A005649443A203078464545449E +:100FC000284572676F446F7820455A29205049445C +:100FD0003A20307831333037284572676F446F7864 +:100FE00020455A29205645523A2030783030303149 +:100FF0000A00444553433A20742E6D2E6B2E206B0D +:101000006579626F617264206669726D776172657D +:1010100020666F72204572676F646F780A000A0954 +:101020002D2056657273696F6E202D0A000A6D6F50 +:101030007573653A206F66660A000A6D6F75736591 +:101040003A206F6E0A000A6B6579626F6172643ACA +:10105000206F66660A000A6B6579626F6172643A96 +:10106000206F6E0A000A6D61747269783A206F66AB +:10107000660A000A6D61747269783A206F6E0A0020 +:101080000A64656275673A206F6E0A000A646562D9 +:1010900075673A206F66660A000A0A626F6F746CA1 +:1010A0006F616465722E2E2E2000433E2000656520 +:1010B000636F6E6669673A0A00536C656570204C11 +:1010C000454420746573740A0000000000000000AD +:1010D00000000000010204060A0F17202C3A4A5DA6 +:1010E00071879DB3C7DAE9F5FCFFFCF5E9DAC7B310 +:1010F0009D87715D4A3A2C20170F0A0604020100F1 +:101100000000000000000000000011241FBECFEF0F +:10111000DAE0DEBFCDBF04B603FE24C08091FB0140 +:101120009091FC01A091FD01B091FE018730904BA0 +:10113000A740B04BB9F41092FB011092FC01109241 +:10114000FD011092FE0114BE84B7877F84BF88E141 +:101150000FB6F89480936000109260000FBEE0E03C +:10116000FFE3099511E0A0E0B1E0ECE7F0E602C092 +:1011700005900D92AA33B107D9F711E0AAE3B1E0C7 +:1011800001C01D92AB3FB107E1F70E94FC110C9426 +:101190003C300C940000FF93EF93E0913A01F09102 +:1011A0003B01309709F00995EF91FF910895FC01FB +:1011B0008591803011F0EFDFFBCF0895FF27E0E24B +:1011C00030E247FF0CC0419597FF09C0EDE2609502 +:1011D000709580959095611D711D811D911D27FF52 +:1011E00002C0219530E350E2AA27660F771F881FBF +:1011F000991FAA1FA41710F0A41B63955A95A9F76D +:10120000AA3008F0A95FA05DAF93F3956115710551 +:101210008105910541F7ED3211F4EF93F395F21743 +:1012200018F43F93F395FBCF8F91B5DFFA95E1F773 +:101230000895E991F9918591803021F0853219F076 +:10124000AADFF9CF089520E0E89455915532C1F313 +:10125000503311F4689455915A3348F4505390F335 +:10126000220F022E220F220F200D250FF4CF0EF495 +:10127000219589919991533619F3533729F15335B3 +:1012800059F1BC0188279927E8945C3621F48991AB +:10129000999168945591543639F446EF7EF077FF72 +:1012A0000DC08FEF9FEF0AC055374AE039F058352F +:1012B00040E121F0523642E009F00895FF93EF93A8 +:1012C0007DDFEF91FF91B7CFFF93EF93FC01819109 +:1012D0008030B9F360DFFBCFFF93EF9368DFF1CF8E +:1012E000DF93CF93CDB7DEB72596A3DFCF91DF9104 +:1012F0000895462F50E04F30510508F0DEC0DC0164 +:10130000FA01EA5AFF4F12968C910C94F12F882320 +:1013100021F085EE0E94D918D0C085EE0E94A11957 +:10132000CCC0882349F00E94322490933D018093E1 +:101330003C0188EF91E0089580913C0190913D013E +:101340000E943E24873991050CF0A8C08AEE91E0F6 +:101350000895882349F00E94322490933D018093A0 +:101360003C0187EE91E0089580913C0190913D0110 +:101370000E943E24873991050CF093C089ED91E0DD +:101380000895882349F00E94322490933D01809370 +:101390003C0182ED91E0089580913C0190913D01E6 +:1013A0000E943E24873991050CF07EC080EC91E0CC +:1013B0000895882349F00E94322490933D01809340 +:1013C0003C018BEB91E0089580913C0190913D01AF +:1013D0000E943E24873991050CF069C08DEA91E0A6 +:1013E0000895882349F00E94322490933D01809310 +:1013F0003C0188EA91E0089580913C0190913D0183 +:101400000E943E24873991050CF054C08AE991E08E +:101410000895882309F451C085E891E00895882350 +:1014200009F44BC080E791E00895882309F445C092 +:101430008BE591E00895882309F43FC086E491E0AC +:1014400008958823D1F18DE391E008958823A9F1CF +:1014500088E291E00895882381F183E191E0089585 +:10146000882359F18EEF90E00895882331F180911F +:10147000BE019091BF01A091C001B091C10120E2D5 +:10148000822780729927AA27BB278093BE01909359 +:10149000BF01A093C001B093C1010FC085EF91E0DF +:1014A000089584EE91E008958BEC91E0089586EB29 +:1014B00091E0089583EA91E0089580E090E0089536 +:1014C00008956091BE017091BF018091C00190911B +:1014D000C1010E94672356985E9825982D982698FA +:1014E0002E9827982F98833099F028F4813041F076 +:1014F000823049F00895843049F0853061F00895D4 +:10150000259A2D9A0895269A2E9A0895259A2D9A0D +:10151000279A2F9A0895259A2D9A269A2E9A279AD5 +:101520002F9A089581E69AE0892B11F00E94610AB2 +:1015300080E090E0089556985E9825982D9826981A +:101540002E9827982F988FEF90E0909389008093A2 +:10155000880090938B0080938A0090938D008093F5 +:101560008C00259A2D9A2FEF80E792E02150804041 +:101570009040E1F700C00000269A2E9A2FEF80E7F6 +:1015800092E0215080409040E1F700C00000279A8F +:101590002F9A2FEF80E792E0215080409040E1F7B2 +:1015A00000C0000025982D982FEF80E792E0215091 +:1015B00080409040E1F700C0000026982E982FEF61 +:1015C00080E792E0215080409040E1F700C00000A9 +:1015D00027982F9856985E9825982D9826982E989B +:1015E00027982F98089589EA8093800089E0809356 +:1015F000810024982C983F988AB18F748AB96E988C +:10160000479A8BB1806B8BB9769A0E949B0A80E6D1 +:101610009AE0892B11F00E94600A80E090E0089522 +:1016200080E28093000180913E0181110EC00E94F2 +:101630005F0B81E080933E012FEF83ED90E321501B +:1016400080409040E1F700C0000080E40E94650BFC +:101650008093000181112EC00E948F0B80930001A6 +:10166000811128C00E948F0B80930001811122C03C +:101670008FE30E948F0B8093000181111BC00E9499 +:10168000870B80E40E94650B80930001811112C0DA +:101690008CE00E948F0B8093000181110BC00E948F +:1016A0008F0B80930001811105C08FE30E948F0B87 +:1016B000809300010E94870B809100010895109291 +:1016C000B9008AE08093B800089594EA9093BC0032 +:1016D0009091BC0097FFFCCF9091B900987F983013 +:1016E00021F0903111F081E008958093BB0084E8EF +:1016F0008093BC008091BC0087FFFCCF8091B90033 +:10170000887F883111F0803471F780E0089584E992 +:101710008093BC008091BC0084FDFCCF0895809331 +:10172000BB0084E88093BC008091BC0087FFFCCFA5 +:101730009091B900987F81E0983209F480E0089593 +:1017400084E88093BC008091BC0087FFFCCF80912F +:10175000BB00089580910001811115C080E40E94B2 +:10176000650B8093000181110CC082E10E948F0BF8 +:1017700080930001811105C08FEF0E948F0B809331 +:1017800000010E94870B84B1807F84B985B1807F7E +:1017900085B98AB1837F8AB98BB1837F8BB93E9833 +:1017A000469808950E94100B809300010E94AA0B96 +:1017B00080B38C7080BB81B3836F81BBA0E4B1E048 +:1017C000EEE4F1E08EE08E0F11921D928E13FCCFAD +:1017D00083EF9AE0892B11F00C94F30A08959F92FD +:1017E000AF92BF92CF92DF92EF92FF920F931F932F +:1017F000CF93DF93809100018823E1F080913F0136 +:101800008F5F80933F01811115C087E596E00E94AC +:10181000D7080E94100B80930001882329F08DE3E4 +:1018200096E00E94D70806C089E296E00E94D70899 +:101830000E949B0A00E411E0C0E0D0E0BB24B39416 +:1018400082E0A82ECC24C394D12C2AE1E22E26E0FB +:10185000F22EC730D10500F580910001811164C0DE +:1018600080E40E94650B80930001811112C082E127 +:101870000E948F0B8093000181110BC0C6010C2EBA +:1018800001C0880F0A94EAF780950E948F0B80931D +:1018900000010E94870B48C0CA30A1F028F4C8306C +:1018A00059F0C93061F005C0CC3089F070F0CD300E +:1018B00089F0209A289810C0219A29980DC0229A60 +:1018C0002A980AC0239A2B9807C0529A01C0539AAB +:1018D0005B9802C03E9A469890EA9A95F1F79FB1BC +:1018E000799902C082E001C080E091709B25982B1D +:1018F0007C9902C084E001C080E0892B7D9902C000 +:1019000038E001C030E0832B7E9902C020E101C0A5 +:1019100020E0822B9FB19095991F9927991F92954E +:10192000990F907E892B10C080910001811174C0A5 +:1019300080E40E94650B80930001882309F459C05C +:10194000912C0E94870B892DF8019081981739F10D +:10195000808380910101882301F18091D90180FF6A +:1019600004C08FE196E00E94D7088091D90180FFE2 +:101970000CC0809101011F928F93FF92EF920E9401 +:1019800070090F900F900F900F908091D90180FFF8 +:1019900004C088E196E00E94D708A09201010E944D +:1019A000AA0B21960F5F1F4FCE30D10509F051CF02 +:1019B000809101018823B1F0815080930101882337 +:1019C00039F08FE99FE00197F1F700C000000AC0ED +:1019D000AEE4B1E0E0E4F1E0CF01825F91919D934C +:1019E0008E13FCCF82E99AE0892BC1F00E94920A03 +:1019F00015C083E10E948F0B809300018111A0CF5D +:101A000081E40E94650B80930001811199CF0E94AF +:101A1000A00B982E909495CF80E096CF81E0DF9137 +:101A2000CF911F910F91FF90EF90DF90CF90BF90DB +:101A3000AF909F900895E82FF0E0E25BFE4F808129 +:101A40000895CF92DF92EF92FF920F931F93CF935F +:101A5000DF9381E096E00E94D7088EE4E82E81E0D3 +:101A6000F82EC0E0D0E09CEFC92E95E0D92E03EF10 +:101A700015E0DF93CF93DF92CF920E94700989EF38 +:101A800095E00E94D708F70181917F0190E00E94C4 +:101A9000CD239F938F931F930F930E94700981EF23 +:101AA00095E00E94D70821968DB79EB708960FB68D +:101AB000F8949EBF0FBE8DBFCE30D105D1F6DF9119 +:101AC000CF911F910F91FF90EF90DF90CF900895ED +:101AD0008B3B910578F4883A910540F5853A91055C +:101AE000D0F48430910508F0B1C08130910509F43B +:101AF000ADC06BC0803E910508F467C0883E91057B +:101B000008F4A4C09C01205F31092031310508F0A0 +:101B10005CC090650895853A910509F459C0863AEC +:101B2000910509F058C082E890E40895883A91053B +:101B300009F454C0893A910509F453C08A3A9105D1 +:101B400009F452C08B3A910509F451C08C3A9105C1 +:101B500009F450C08D3A910509F44FC0803B9105BE +:101B600009F44EC08E3A910509F44DC08F3A9105A3 +:101B700009F44CC0813B910509F44BC0823B9105AF +:101B800009F44AC0833B910509F449C0843B91059F +:101B900009F448C0853B910509F447C0863B91058F +:101BA00009F446C0873B910509F445C0883B91057F +:101BB00009F444C0893B910509F443C08A3B91056F +:101BC00009F442C080E094E4089580E090E0089534 +:101BD00081E890E4089583E890E4089582EE94E427 +:101BE000089589EE94E408958AEE94E4089585EBCF +:101BF00094E4089586EB94E4089587EB94E40895C3 +:101C00008CEC94E408958DEC94E4089583E895E4D5 +:101C100008958AE895E4089582E995E4089584E9B1 +:101C200095E4089581E296E4089583E296E40895A8 +:101C300084E296E4089585E296E4089586E296E4C7 +:101C4000089587E296E408958AE296E40895089557 +:101C500096E0799FF001112494E5899FE00DF11D34 +:101C60001124E60FF11DEE0FFF1FEF5FFD4F859171 +:101C700094910895880F991FFC01E558FF4F8591B5 +:101C800094910895880F991FFC01E550FE4F8591AE +:101C90009491089526E0729FF001112444E5849FF9 +:101CA000E00DF11D1124E60FF11DEE0FFF1FEF5F98 +:101CB000FD4F859194919C013A9521154FE1340790 +:101CC00008F41AC13F512115304120F49F700E9441 +:101CD000420E08959C0130532115304118F4992784 +:101CE000906C0895811520E5920769F40E94271DE4 +:101CF0004FEF84E39CE0415080409040E1F700C00A +:101D000000000C948D24813020E5920731F48091FD +:101D1000D90181608093D90108959C013055211526 +:101D2000304108F051C0292F33272F70332721303D +:101D30003105D9F4AC014370552702C0220F331F7F +:101D40004A95E2F73C68AC0164E0440F551F6A9580 +:101D5000E1F744275370242B352B73E0880F991F2C +:101D60007A95E1F7807699271DC02230310529F454 +:101D7000982F8827816F906A089523303105A9F440 +:101D8000AC014370552721E030E002C0220F331F21 +:101D90004A95E2F73C6843E0880F991F4A95E1F7BE +:101DA000807E9770822B932B089524303105E1F4C7 +:101DB000AC014370552721E030E002C0220F331FF1 +:101DC0004A95E2F73A68E7CF9C0130572115304138 +:101DD00018F49F70906208959C013058211530418D +:101DE00018F49F70906A0895803E9105E0F4803C5D +:101DF000910558F58133910509F46FC048F4893293 +:101E0000910509F463C08A32910509F46DC072C06E +:101E100089339105E9F082389105D1F08533910538 +:101E200009F44DC067C0833E910581F138F4803ECE +:101E30009105B9F0823E9105D9F05CC0863E9105CE +:101E400061F1873E9105A1F155C00E943A0E0895B7 +:101E50002091EC0120FD02C021FF4CC080EE90E0FB +:101E600049C08091EC0180FFF9CF89E390E042C046 +:101E70008091EC0182FF0EC08091EC0184FF03C0D1 +:101E800080E090E037C083EE90E034C08091EC01B8 +:101E900082FFF2CF82EE90E02DC08091EC0183FFB3 +:101EA0000BC08091EC0184FDEBCF87EE90E022C067 +:101EB0008091EC0183FFF5CF86EE90E01BC080910E +:101EC000EC0185FF07C089E290E014C08091EC012D +:101ED00085FFF9CF85E390E00DC08091EC0186FF8E +:101EE00007C08AE290E006C08091EC0186FFF9CF3E +:101EF00081E390E00E94680D0895089580916F013C +:101F000008959FB7F89410925E019FBF9091F201DF +:101F1000943009F057C09091E9009F703091EC0027 +:101F2000232F217030FD20E8922B24E02093E9003C +:101F30002091EB0020FF43C02091EE0027FF3FC01F +:101F400020915C01222321F02091E80025FF37C079 +:101F500010925C0126E03091E80035FD15C030910B +:101F6000F201343061F53091EB0035FD28C021508D +:101F700021F481E080935C0122C0EFE9FFE031971A +:101F8000F1F700C00000E7CF8093F1008091E800F6 +:101F900085FD0AC08091E80080FFFCCF8091E800B9 +:101FA0008E778093E80006C08FB7F89421E02093E5 +:101FB0005E018FBF9F709093E90080E008959F704D +:101FC0009093E9008FEF0895CF93DF9300D01F9295 +:101FD000CDB7DEB79C018091F201843019F593E012 +:101FE00099833B832A839093E9008FEF9091E800D7 +:101FF000815095FD06C095ED9A95F1F7000081118D +:10200000F5CF8091E80085FF0DC040E050E063E02F +:1020100070E0CE0101960E94B4128091E8008E77A4 +:102020008093E8000F900F900F90DF91CF9108956B +:10203000CF93DF9300D01F92CDB7DEB72091F2018E +:10204000243021F522E029839B838A8383E08093D7 +:10205000E9008FEF9091E800815095FD06C095ED65 +:102060009A95F1F700008111F5CF8091E80085FF86 +:102070000DC040E050E063E070E0CE0101960E94A8 +:10208000B4128091E8008E778093E8000F900F9053 +:102090000F90DF91CF9108952091F2012430F1F457 +:1020A00022E02093E9002FEF3091E800215035FD28 +:1020B00006C035ED3A95F1F700002111F5CF2091DA +:1020C000E80025FF0BC040E050E065E070E00E94B2 +:1020D000B4128091E8008E778093E8000895CF9342 +:1020E000DF932091F201243009F048C0EC01809187 +:1020F0000C018823E1F080910D018823C1F085E077 +:102100008093E9008FEF9091E800815095FD06C023 +:1021100095E19A95F1F700008111F5CF8091E800E3 +:1021200085FF2CC040E050E060E170E017C081E026 +:102130008093E9008FEF9091E800815095FD06C0F3 +:1021400095ED9A95F1F700008111F5CF8091E800A7 +:1021500085FF14C040E050E068E070E0CE010E94CE +:10216000B4128091E8008E778093E80080E1FE0150 +:10217000AFE5B1E001900D928A95E1F7DF91CF9143 +:10218000089586E996E00E94D7088091F1018111B7 +:1021900009C00E9449140E94A6148091E200846044 +:1021A0008093E200089582E996E00E94D708109299 +:1021B000F10108958EE896E00C94D7088AE896E03D +:1021C0000E94D7080C945D2E86E896E00E94D708FE +:1021D0000E9423240E94632E0E944B170C947D0FB3 +:1021E00020915D012F5F822F62E30E94D12F9923FE +:1021F00019F020935D01089510925D0180915E01B8 +:10220000882371F18091F201843041F58091E900D9 +:102210008F702091EC00922F917020FD90E8892B17 +:1022200094E09093E9009091EB0090FF14C090919E +:10223000EE0097FF10C09091E80095FF03C0109248 +:10224000F100F9CF9091E80090FF05C09091E8006F +:102250009E779093E8008F708093E90010925E0162 +:10226000089542E061EC81E00E94C31342E061EC1A +:1022700082E00E94C31342E061EC83E00E94C3133A +:1022800042E261EC84E00E94C31342E161EC85E02C +:102290000C94C3138091F401833009F455C030F4D9 +:1022A000813071F0823009F48EC008958A3009F4CB +:1022B0007AC08B3009F460C0893009F09CC020C01E +:1022C0008091F301813A09F096C08091E800877F00 +:1022D0008093E8008091F7019091F801892B21F417 +:1022E00060E18FE591E003C060E080E090E070E0A5 +:1022F0000E94FF128091E8008B778093E800089598 +:102300008091F301813209F076C08091F7019091BC +:10231000F801009719F0049709F06DC08091E8006A +:10232000877F8093E8008091E80082FD05C080915E +:10233000F2018111F8CF5FC08091F10080936F01AD +:102340008091E8008B7753C08091F301813A09F0C6 +:1023500052C08091F7019091F801892B09F04BC090 +:102360008091E800877F8093E8008091E80080FFFB +:10237000FCCF80910C0136C08091F3018132D9F5F8 +:102380008091F7019091F801892BA9F58091E800DF +:10239000877F8093E8000E94F8138091F501809375 +:1023A0000C010C94271D8091F301813221F580915D +:1023B000E800877F8093E8000E94F8138091F6017F +:1023C0008093700108958091F301813AA1F4809186 +:1023D000E800877F8093E8008091E80080FFFCCFD1 +:1023E000809170018093F1008091E8008E77809356 +:1023F000E8000C94F813089584B7877F84BF88E1C0 +:102400000FB6F89480936000109260000FBE90E0C9 +:1024100080E80FB6F89480936100909361000FBE3E +:102420000E94D8170E9449140E94A6148091E200CD +:1024300084608093E20081E89FE00E9462237894A8 +:102440000E942B170E94DA1782E091E00E94461743 +:102450000E944B2E85E796E00E94D7088091F201FA +:10246000853089F481E796E00E94D7080E94E7232F +:102470008091F001882391F30E940F24882371F347 +:102480000E949E12EBCF0E940818E8CF292F332715 +:1024900023303105C9F064F42130310581F0223058 +:1024A000310509F043C08DE890E02EEC36E042C0E3 +:1024B00021323105F1F02232310541F137C082E19C +:1024C00090E02BE537E036C099278130910541F047 +:1024D0008230910541F0892B49F5EAECF6E005C020 +:1024E000E2EBF6E002C0EAE9F6E0849190E09F01B9 +:1024F00021C06530D8F4E62FF0E0EE0FFF1FEB5D52 +:10250000FE4F2081318189E090E014C0653070F485 +:1025100070E0FB01EE0FFF1FE55EFE4F2081318171 +:10252000FB01EA5EFE4F808190E004C080E090E015 +:1025300020E030E0FA0131832083089580E189BDF5 +:1025400082E189BD09B400FEFDCF8091D8008F7D66 +:102550008093D8008091E00082608093E0008091B9 +:10256000E00081FDFCCF0895CF92DF92EF92FF92C1 +:102570000F931F93CF93DF93EC018B016A010E94AD +:102580001714811133C0C114D10439F0F6018081D0 +:102590009181081B190BC80FD91FE12CF12C0115D3 +:1025A000110519F18091E80085FD16C08091E800C1 +:1025B0008E778093E800C114D10449F0F601808140 +:1025C0009181E80EF91EF182E08285E00FC00E9441 +:1025D0001714882321F30AC089918093F1000150D8 +:1025E0001109FFEFEF1AFF0ADACF80E0DF91CF91F8 +:1025F0001F910F91FF90EF90DF90CF900895209161 +:10260000F9013091FA012617370748F06115710575 +:1026100039F42091E8002E772093E80001C0B90139 +:1026200040E061157105A9F12091F201222309F41E +:1026300043C0253009F442C02091E80023FD40C08A +:102640002091E80022FD32C02091E80020FFE9CF70 +:102650004091F3002091F20030E0342BFC01CF01D7 +:102660006115710559F02830310540F4819180934E +:10267000F100615071092F5F3F4FF1CF41E02830E9 +:10268000310509F040E02091E8002E772093E80022 +:10269000C8CF4111C9CF0AC08091F201882361F0EF +:1026A000853061F08091E80083FD0AC08091E800E8 +:1026B00082FFF2CF80E0089582E0089583E00895DC +:1026C00081E008952091F9013091FA01261737072A +:1026D00048F06115710539F42091E8002E772093B8 +:1026E000E80001C0B901FC0120E06115710591F11C +:1026F0008091F201882309F440C0853009F43FC07D +:102700008091E80083FD3DC08091E80082FD2FC0EC +:102710008091E80080FFE9CF2091F3008091F200E2 +:1027200090E0922B6115710559F08830910540F4C5 +:1027300024912093F1003196615071090196F2CFF6 +:1027400021E0089709F020E08091E8008E778093DF +:10275000E800CBCF2111CCCF0AC08091F2018823B1 +:1027600061F0853061F08091E80083FD0AC08091BE +:10277000E80082FFF2CF80E0089582E0089583E0D0 +:10278000089581E00895982F973058F59093E900C7 +:10279000981739F07091EC002091ED005091F00005 +:1027A00003C0242F762F50E021FF19C03091EB0099 +:1027B0003E7F3093EB003091ED003D7F3093ED0094 +:1027C0003091EB0031603093EB007093EC0020937C +:1027D000ED005093F0002091EE0027FF07C09F5FAF +:1027E000D3CF8F708093E90081E0089580E0089551 +:1027F0008091F30187FF11C08091E80082FD05C040 +:102800008091F2018111F8CF11C08091E8008B779F +:102810000BC08091F201882349F08091E80080FF8D +:10282000F8CF8091E8008E778093E800089520919A +:10283000E4003091E50095E64091EC00842F817032 +:1028400040FF22C08091E80080FD1CC08091F20111 +:10285000882391F0853091F08091EB0085FD10C0C8 +:102860004091E4005091E5004217530729F39A0183 +:10287000915011F784E0089582E0089583E008956F +:1028800081E0089580E008954091E80042FFDECFA6 +:1028900008950E94B7140E94BF14E0EEF0E080811A +:1028A00081608083E8EDF0E080818F77808319BCC0 +:1028B000A7EDB0E08C918E7F8C9380818F7E80839A +:1028C0001092F10108950F931F93CF93DF930E940D +:1028D000B7140E94BF14C8EDD0E088818F77888339 +:1028E00088818068888388818F7D888319BC109255 +:1028F000F2011092EE011092F0011092EF0100EE41 +:1029000010E0F80180818B7F8083888181608883DB +:1029100042E060E080E00E94C313E1EEF0E08081DD +:102920008E7F8083E2EEF0E0808181608083808111 +:1029300088608083F80180818E7F808388818061B8 +:102940008883DF91CF911F910F910895E8EDF0E01A +:1029500080818F7E8083E7EDF0E0808181608083DD +:1029600084E082BF81E08093F1010C946314E8ED70 +:10297000F0E080818E7F80831092E20008951092B3 +:10298000DA001092E10008951F920F920FB60F9295 +:1029900011242F933F934F935F936F937F938F9364 +:1029A0009F93AF93BF93EF93FF938091E10082FFDA +:1029B0000BC08091E20082FF07C08091E1008B7F15 +:1029C0008093E1000E94F0108091DA0080FF1FC028 +:1029D0008091D80080FF1BC08091DA008E7F8093A9 +:1029E000DA008091D90080FF0DC080E189BD82E1CD +:1029F00089BD09B400FEFDCF81E08093F2010E9401 +:102A0000C11005C019BC1092F2010E94D310809130 +:102A1000E10080FF19C08091E20080FF15C0809125 +:102A2000E2008E7F8093E2008091E20080618093DB +:102A3000E2008091D80080628093D80019BC85E0C4 +:102A40008093F2010E94DE108091E10084FF30C08B +:102A50008091E20084FF2CC080E189BD82E189BDC4 +:102A600009B400FEFDCF8091D8008F7D8093D800FF +:102A70008091E1008F7E8093E1008091E2008F7E63 +:102A80008093E2008091E20081608093E200809177 +:102A9000EE01882311F084E007C08091E30087FDF8 +:102AA00002C081E001C083E08093F2010E94E41043 +:102AB0008091E10083FF29C08091E20083FF25C05F +:102AC0008091E100877F8093E10082E08093F201B2 +:102AD0001092EE018091E1008E7F8093E100809161 +:102AE000E2008E7F8093E2008091E200806180931B +:102AF000E20042E060E080E00E94C3138091F000B9 +:102B000088608093F0000E94DA10FF91EF91BF91EE +:102B1000AF919F918F917F916F915F914F913F9175 +:102B20002F910F900FBE0F901F9018951F920F922C +:102B30000FB60F9211242F933F934F935F936F9390 +:102B40007F938F939F93AF93BF93CF93DF93EF9335 +:102B5000FF93C091E900CF708091EC00D82FD17025 +:102B600080FDD0E81092E9008091F000877F80938B +:102B7000F00078940E94DA151092E9008091F0003C +:102B800088608093F000CD2BCF70C093E900FF9157 +:102B9000EF91DF91CF91BF91AF919F918F917F91F5 +:102BA0006F915F914F913F912F910F900FBE0F90BA +:102BB0001F9018951F93CF93DF93CDB7DEB7AA97D9 +:102BC0000FB6F894DEBF0FBECDBFE3EFF1E088E0B3 +:102BD0008E0F9091F10091938E13FBCF0E944A11BA +:102BE0008091E80083FF1FC18091F3019091F4016F +:102BF000492F50E04A30510508F015C1FA01EB5950 +:102C0000FF4F0C94F12F803881F0823809F00BC10E +:102C10008091F7018F708093E9008091EB0085FB34 +:102C2000882780F91092E90006C08091EF01909109 +:102C3000F001911182609091E800977F9093E800F5 +:102C40008093F1001092F100C8C0282F2D7F09F069 +:102C5000EAC0882319F0823061F0E5C08091F50167 +:102C6000813009F0E0C0933009F080E08093F001FA +:102C70002BC08091F501811127C08091F7018F70E1 +:102C800009F4D1C08093E9002091EB0020FF1CC023 +:102C9000933021F48091EB00806214C09091EB009E +:102CA00090619093EB0021E030E0A90102C0440F55 +:102CB000551F8A95E2F74093EA001092EA0080914E +:102CC000EB0088608093EB001092E9008091E800AF +:102CD000877F86C08111A7C01091F5011F77809171 +:102CE000E3008078812B8093E3008091E800877F68 +:102CF0008093E8000E94F8138091E80080FFFCCFE9 +:102D00008091E30080688093E300111102C082E0AB +:102D100001C083E08093F20186C08058823008F0C1 +:102D200082C08091F5019091F6018C3D53E09507AA +:102D300079F583E08A838AE289834FB7F894DE01CC +:102D4000139620E03EE051E2E32FF0E0509357006D +:102D5000E49120FF03C0E295EF703F5FEF708E2F8C +:102D600090E0EA3010F0C79601C0C0968D939D9315 +:102D70002F5F243149F74FBF8091E800877F809310 +:102D8000E8006AE270E0CE0101960E94FF1214C0D2 +:102D9000AE014F5F5F4F6091F7010E944612BC0188 +:102DA000892B09F440C09091E800977F9093E80048 +:102DB00089819A810E9462138091E8008B778093C9 +:102DC000E80031C0803879F58091E800877F8093F2 +:102DD000E8008091EE018093F1008091E8008E7709 +:102DE0008093E8000E94F8131EC081111CC09091CE +:102DF000F5019230C0F48091E800877F8093E8006D +:102E00009093EE010E94F8138091EE01811106C0AB +:102E10008091E30087FD02C081E001C084E08093DF +:102E2000F2010E9431118091E80083FF0AC0809175 +:102E3000E800877F8093E8008091EB0080628093B8 +:102E4000EB00AA960FB6F894DEBF0FBECDBFDF91A0 +:102E5000CF911F910895CF938091F2018823A1F023 +:102E6000C091E900CF709091EC00892F817090FDA6 +:102E700080E8C82B1092E9008091E80083FD0E9451 +:102E8000DA15CF70C093E900CF9108959093760141 +:102E9000809375010895E0917501F0917601309766 +:102EA00021F00190F081E02D099480E00895EF92E7 +:102EB000FF920F931F93CF93DF93E0917501F091F1 +:102EC00076013097B1F18C010280F381E02D0995F4 +:102ED0008091D90182FF2DC080FF04C080E998E075 +:102EE0000E94D708E80110E18AE8E82E88E0F82E71 +:102EF0008091D90180FF0BC088811F928F93FF9230 +:102F0000EF920E9470090F900F900F900F90115048 +:102F100021961111EDCF8091D90180FF0AC088E878 +:102F200098E0DF91CF911F910F91FF90EF900C945B +:102F3000D708DF91CF911F910F91FF90EF900895E7 +:102F4000E0917501F0917601309721F00480F581D0 +:102F5000E02D099408952091730130917401821736 +:102F6000930771F09093740180937301E091750160 +:102F7000F0917601309721F00680F781E02D0994D9 +:102F8000089520917101309172018217930771F0B9 +:102F90009093720180937101E0917501F091760137 +:102FA000309721F00084F185E02D0994089508956B +:102FB0000C94D7170E9429240E94D20B0C94EF2462 +:102FC000CF93C82F8091D90182FF1EC080FF04C01B +:102FD00089EA98E00E94D7088091D90180FF0CC04F +:102FE0001F92CF9384EA98E09F938F930E94700979 +:102FF0000F900F900F900F908091D90180FF04C027 +:1030000082EA98E00E94D7088C2FCF910C947D0F14 +:10301000CF92DF92EF92FF920F931F93CF93DF93A4 +:10302000CDB7DEB72B970FB6F894DEBF0FBECDBF7E +:103030000E94EF0B88E7C82E81E0D82E00E010E058 +:10304000E02E802F0E941B0DF60141916F01F42E9E +:10305000F826B1F40F5F1F4F0E30110589F78FEF7F +:1030600089838A831B820E9432248160782F9D830A +:103070008C8349815A816B818D810E94AB1840C03D +:103080009091D90191FF04C08B870E94210D8B85FF +:1030900020E030E04F2D50E0922FBA01022E02C006 +:1030A000759567950A94E2F760FF24C02E83EF823E +:1030B00021E030E0690102C0CC0CDD1C9A95E2F7FA +:1030C00090E08C219D21892B09F420E028870E9423 +:1030D00032248160782F9A8789874E815F81688545 +:1030E0008A850E94AB18F801E858FE4F8081C826F7 +:1030F000C08206C02F5F3F4F2630310569F6AACF48 +:103100000E946028109177010E944B171817A1F0B8 +:103110000E944B17809377012B960FB6F894DEBF71 +:103120000FBECDBFDF91CF911F910F91FF90EF9018 +:10313000DF90CF900C94E0172B960FB6F894DEBF7B +:103140000FBECDBFDF91CF911F910F91FF90EF90F8 +:10315000DF90CF900895CF93DF93CDB7DEB72B9755 +:103160000FB6F894DEBF0FBECDBF4F835887698777 +:103170007A878B87DE01119686E0FD0111928A9590 +:10318000E9F785E0FE01379601900D928A95E1F707 +:1031900049815A816B817C818D819E810E94C11FF2 +:1031A0002B960FB6F894DEBF0FBECDBFDF91CF9147 +:1031B0000895CF93882309F4C2C0C82F823859F4E8 +:1031C0000E944B1781FDBBC089E30E945D220E94D3 +:1031D0003C2389E30CC0833879F40E944B1780FDAF +:1031E000AEC083E50E945D220E943C2383E50E94DD +:1031F000B022CF910C943C23843859F40E944B1791 +:1032000082FD9DC087E40E945D220E943C2387E4EA +:10321000EECF8CEF8C0F813A48F48C2F0E94F32C68 +:1032200081118DC08C2F0E945D22E3CF80E28C0F34 +:10323000883048F4C77081E001C0880FCA95EAF76A +:103240000E940523D6CF8BE58C0F833078F4C53AE6 +:1032500029F0C63A31F083E890E005C081E890E0BB +:1032600002C082E890E0CF910C94AB1788E58C0FF8 +:10327000833108F064C0C83A39F1C93A41F1CA3A19 +:1032800049F1CB3A51F1CC3A59F1CD3A61F1C03B19 +:1032900069F1CE3A71F1CF3A79F1C13B81F1C23B8C +:1032A00089F1C33B91F1C43B99F1C53BA1F1C63B08 +:1032B000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B68 +:1032C000C9F180E090E038C082EE90E035C089EE30 +:1032D00090E032C08AEE90E02FC085EB90E02CC0E9 +:1032E00086EB90E029C087EB90E026C08CEC90E064 +:1032F00023C08DEC90E020C083E891E01DC08AE8F7 +:1033000091E01AC082E991E017C084E991E014C00D +:1033100081E292E011C083E292E00EC084E292E08A +:103320000BC085E292E008C086E292E005C087E229 +:1033300092E002C08AE292E0CF910C94C117CF9143 +:103340000895882309F44BC0823859F40E944B1722 +:1033500081FF45C089E30E945D220E943C2389E3EE +:103360000CC0833871F40E944B1780FF38C083E58E +:103370000E945D220E943C2383E50E94B0220C94AF +:103380003C23843859F40E944B1782FF28C087E4FD +:103390000E945D220E943C2387E4EFCF9CEF980FB0 +:1033A000913A58F390E2980F983050F4877091E07A +:1033B00001C0990F8A95EAF7892F0E940B23DFCF6E +:1033C0009BE5980F933020F480E090E00C94AB17CD +:1033D000885A833120F480E090E00C94C11708955E +:1033E000882321F00E9405230C943C230895882310 +:1033F00021F00E940B230C943C230895BF92CF929E +:10340000DF92EF92FF920F931F93CF93DF9300D041 +:1034100000D000D0CDB7DEB725E0FC01DE0111966B +:1034200001900D922A95E1F7FC01408131810281E2 +:10343000258122952F7063817481672B09F4E5C281 +:103440003F3F19F44F3F09F4E0C27C0149833A83BE +:1034500089819A812E830E941C22182FB92E0E94E6 +:103460001B220E94E220EB2DE295EF70F0E0E15983 +:10347000FF4F2E810C94F12F8B2D807F9B2D9F7001 +:10348000F92E882319F0F29480EFF822002349F0F6 +:10349000FF2009F467C28F2D0E9415230E943C2350 +:1034A00061C2812F0E94A119FF2009F4AEC28F2DA5 +:1034B0000E941B2326960FB6F894DEBF0FBECDBF29 +:1034C000DF91CF911F910F91FF90EF90DF90CF9000 +:1034D000BF900C943C233B2D307F8B2D8F7030326E +:1034E00011F08295807F112319F0113021F12CC049 +:1034F0000023B9F0222309F4A0C1213009F09DC1B5 +:1035000026960FB6F894DEBF0FBECDBFDF91CF91E8 +:103510001F910F91FF90EF90DF90CF90BF900C9490 +:103520002523222319F0213009F46FC28E830E94D3 +:1035300028238E8196C1002321F0223008F065C235 +:103540007CC1211162C28DC1002321F0222309F424 +:1035500074C108C2222309F484C119C22B2D2695F7 +:103560002695237030E02115310521F021303105F9 +:10357000D1F04BC2002321F0812F9B2D937002C00C +:1035800080E090E026960FB6F894DEBF0FBECDBF68 +:10359000DF91CF911F910F91FF90EF90DF90CF902F +:1035A000BF900C94AB17002321F0812F9B2D9370BB +:1035B00002C080E090E026960FB6F894DEBF0FBE02 +:1035C000CDBFDF91CF911F910F91FF90EF90DF90D2 +:1035D000CF90BF900C94C117812F002319F00E9447 +:1035E000E62602C00E944E2726960FB6F894DEBF4C +:1035F0000FBECDBFDF91CF911F910F91FF90EF9044 +:10360000DF90CF90BF900C94D3278B2D837009F05F +:103610007BC00111FAC1812F829586958770880F32 +:10362000880F912F9F70C92ED12CE12CF12C082EE0 +:1036300004C0CC0CDD1CEE1CFF1C0A94D2F714FF56 +:1036400012C04FE050E060E070E004C0440F551F2E +:10365000661F771F8A95D2F7CB01BA0160957095E6 +:103660008095909503C060E070E0CB012B2D2695EE +:1036700026952370422F50E042305105D9F0433057 +:10368000510569F16C297D298E299F294130510509 +:1036900051F126960FB6F894DEBF0FBECDBFDF9175 +:1036A000CF911F910F91FF90EF90DF90CF90BF903F +:1036B0000C9409216C297D298E299F2926960FB605 +:1036C000F894DEBF0FBECDBFDF91CF911F910F9158 +:1036D000FF90EF90DF90CF90BF900C9425210E9437 +:1036E0000921C701B60126960FB6F894DEBF0FBEBA +:1036F000CDBFDF91CF911F910F91FF90EF90DF90A1 +:10370000CF90BF900C94ED20002319F08B2D817089 +:1037100001C08695882309F478C1812F829586950A +:103720008770880F880F912F9F70C92ED12CE12CA4 +:10373000F12C082E04C0CC0CDD1CEE1CFF1C0A94DE +:10374000D2F714FF12C04FE050E060E070E004C018 +:10375000440F551F661F771F8A95D2F7CB01BA0118 +:10376000609570958095909503C060E070E0CB0106 +:103770002B2D269526952370422F50E0423051057F +:10378000D9F04330510569F16C297D298E299F2993 +:103790004130510551F126960FB6F894DEBF0FBEA9 +:1037A000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1037B000CF90BF900C94E3216C297D298E299F29FD +:1037C00026960FB6F894DEBF0FBECDBFDF91CF9126 +:1037D0001F910F91FF90EF90DF90CF90BF900C94CE +:1037E000FF210E94E321C701B60126960FB6F89487 +:1037F000DEBF0FBECDBFDF91CF911F910F91FF9024 +:10380000EF90DF90CF90BF900C94C721103FD1F183 +:1038100018F4103E50F4A1C0123F09F463C008F43C +:103820004CC0133F09F473C098C01F708B2D8F716B +:103830000023A1F00E946021812F26960FB6F894F4 +:10384000DEBF0FBECDBFDF91CF911F910F91FF90D3 +:10385000EF90DF90CF90BF900C94F0190E948121DF +:10386000812F26960FB6F894DEBF0FBECDBFDF9135 +:10387000CF911F910F91FF90EF90DF90CF90BF906D +:103880000C94F7190023A9F02111BFC08B2D8F7163 +:1038900026960FB6F894DEBF0FBECDBFDF91CF9155 +:1038A0001F910F91FF90EF90DF90CF90BF900C94FD +:1038B000A621223008F0A9C0E9CF0023A9F08B2D62 +:1038C0008F7126960FB6F894DEBF0FBECDBFDF9185 +:1038D000CF911F910F91FF90EF90DF90CF90BF900D +:1038E0000C946021002359F38B2D8F7126960FB60F +:1038F000F894DEBF0FBECDBFDF91CF911F910F9126 +:10390000FF90EF90DF90CF90BF900C948121002327 +:1039100099F08B2D8F7126960FB6F894DEBF0FBEEF +:10392000CDBFDF91CF911F910F91FF90EF90DF906E +:10393000CF90BF900C944B2126960FB6F894DEBF23 +:103940000FBECDBFDF91CF911F910F91FF90EF90F0 +:10395000DF90CF90BF900C9441210023A9F0222347 +:1039600009F4ADCF812F26960FB6F894DEBF0FBEB7 +:10397000CDBFDF91CF911F910F91FF90EF90DF901E +:10398000CF90BF900C94D918222309F4ADCF812F8A +:1039900026960FB6F894DEBF0FBECDBFDF91CF9154 +:1039A0001F910F91FF90EF90DF90CF90BF900C94FC +:1039B000A1194B2D4F70612FC7010E9479092696DE +:1039C0000FB6F894DEBF0FBECDBFDF91CF911F9130 +:1039D0000F91FF90EF90DF90CF90BF900C946520F7 +:1039E0004B2D4F70612FC70126960FB6F894DEBF9E +:1039F0000FBECDBFDF91CF911F910F91FF90EF9040 +:103A0000DF90CF90BF900C94270E26960FB6F894B7 +:103A1000DEBF0FBECDBFDF91CF911F910F91FF9001 +:103A2000EF90DF90CF90BF9008950E9422230E94D4 +:103A3000F7220E943C230E9406290E94D32780E09F +:103A400090E00E94AB1780E090E00C94C1170E94B8 +:103A500012230C94151D0E941C22292F22952F70D1 +:103A600030E02C3031054CF42A3031056CF4225012 +:103A700031092230310588F407C02C30310549F076 +:103A80002F30310531F009C0803E48F0803F29F4E5 +:103A900006C093FB882780F9089580E0089581E0AF +:103AA0000895CF93DF9300D000D01F92CDB7DEB73B +:103AB0000F900F900F900F900F90DF91CF9108957E +:103AC000CF93DF9300D000D000D0CDB7DEB72696DD +:103AD0000FB6F894DEBF0FBECDBFDF91CF91089532 +:103AE0001F93CF93DF93C091860116E080918701E9 +:103AF000C81799F0D0E01C9FF0011D9FF00D112414 +:103B0000E857FE4F408151816281738184819581A4 +:103B10000E94601D2196C770E9CFDF91CF911F9160 +:103B200008954091B8015091B9016091BA01709126 +:103B3000BB018091BC019091BD010C94601D8091EE +:103B4000BD0182958F7009F054C08091BA0188231D +:103B500009F44FC080918601A09187016091B8015E +:103B60007091B9014091BB015091BC01B6E08A1738 +:103B700009F43FC090E041155105C1F17F3F11F4B8 +:103B80006F3FA1F1B89FF001B99FF00D1124E857E4 +:103B9000FE4F218172132AC02081621327C0228127 +:103BA000211124C0238134812417350710F42150BA +:103BB0003109241B350B283C3105C0F42091BD018F +:103BC0002F7020612093BD0126E0289FF001299FDE +:103BD000F00D1124E357FE4F80818F708061808348 +:103BE00088EB91E00E94FE190C94701D019687707D +:103BF000BECF0895CF92DF92EF92FF920F931F9363 +:103C0000CF93DF93CDB7DEB762970FB6F894DEBFE0 +:103C10000FBECDBF8C0185E0F801DE011D9601903D +:103C20000D928A95E1F7D8014C9111965C9111970C +:103C300012966C9112971396CD90DC901497309158 +:103C4000B8017091B9018091BB019091BC010097BE +:103C500009F46BC17F3F19F43F3F09F466C1E0905E +:103C6000BA01EE2009F4C0C02091BD01C816D906E2 +:103C700028F0F601E81BF90BCF0104C08095909560 +:103C80008C0D9D1DFF24F394883C910578F0F12C58 +:103C9000207F09F0C6C07C2DD98AC88A89890E94F4 +:103CA000511D88EB91E00E94FE19B1C0822F807FE8 +:103CB00009F046C0751314C0341312C0611110C04E +:103CC0002F7020612093BD010E94911D88EB91E02F +:103CD0000E94FE198091BD01D80115968C932EC0CB +:103CE000CD2819F15F3F11F44F3FF9F0F62E611125 +:103CF0001CC0809186012091870136E0821709F46B +:103D00005AC090E0389FF001399FF00D1124E85718 +:103D1000FE4F7181571306C07081471303C0728133 +:103D2000711103C001968770E9CFF62E662309F45E +:103D300018C18091BD0181608093BD01F12C11C13A +:103D4000751308C0341306C0611104C08091BD0111 +:103D5000D801C3C04D875E878D859E856A8B0E9482 +:103D60002B1D6A898823E1F16623D1F12091BD01E1 +:103D7000822F82958F7090E0029774F08091B80145 +:103D80009091B90198878F831986DB86CA862C8724 +:103D9000CE0107960E94FE1986E0F801A8EBB1E07B +:103DA00001900D928A95E1F70E949F1D0E94911D3E +:103DB000FF24F394D6C04D875E878D859E850E9433 +:103DC0001C22292F22952F7030E0223031050CF073 +:103DD000BCC09F7009F0B6C0805E883008F4C1C0D6 +:103DE000C8010E94FE19E4CFC816D90608F453C0D2 +:103DF000F601E81BF90BCF01883C910508F450C08F +:103E0000F12C7C2DD98AC88A89890E94511DE8EB42 +:103E1000F1E086E0DF011D928A95E9F70E94911D8D +:103E2000A0C0751314C0341312C0611110C080916A +:103E3000BD01F8018583C8010E94FE1986E0E8EB08 +:103E4000F1E0DF011D928A95E9F7FE2C8AC04D87CB +:103E50005E878D859E856A8B0E942B1D6A898823CB +:103E600009F4BECF662309F4BBCF2091BD01822F98 +:103E700082958F7090E002970CF48ECF8091B801FC +:103E80009091B9019A8389831B82DD82CC822E8333 +:103E9000CE0101967FCF809590958C0D9D1DACCF66 +:103EA000F62E662309F49CCF75132EC034132CC054 +:103EB0002091BD0120FD1FC0822F82958F70D9F007 +:103EC000D80115962C9315978F3049F08F5F982F56 +:103ED0009295907F822F8F70892B15968C93C801B5 +:103EE0000E94FE1986E0F801A8EBB1E001900D9266 +:103EF0008A95E1F793CF86E0F801A8EBB1E0019055 +:103F00000D928A95E1F72DC04D875E878D859E8540 +:103F10000E942B1D811140CF8091BD018160809353 +:103F2000BD01C8010E94FE191CC0662309F458CFC8 +:103F30004D875E878D859E850E942B1D882309F401 +:103F40004FCF2ACF811148CF0CC0243031050CF05F +:103F500047CF9F7009F440CFF8019581907F09F019 +:103F60003BCF8F2D62960FB6F894DEBF0FBECDBF4C +:103F7000DF91CF911F910F91FF90EF90DF90CF9045 +:103F800008951F93CF93DF93CDB7DEB72C970FB66D +:103F9000F894DEBF0FBECDBF4F83588769877A87FD +:103FA0008B879C87CE0107960E94FA1D882369F0B3 +:103FB0008F8198852A853B85232BF1F19F3F09F05E +:103FC00063C08F3F09F060C037C086E0FE013796BE +:103FD000DE01119601900D928A95E1F76F81788547 +:103FE000EA85FB85309741F17F3F11F46F3F21F166 +:103FF0002091870130E0C90101968770992740918F +:10400000860150E08417950709F447C069837A83D5 +:10401000FD83EC8396E0929FD001939FB00D112415 +:10402000A857BE4FFE01319601900D929A95E1F787 +:10403000809387010E94701D16E080918601909107 +:1040400087018917C1F1189FC001112488579E4F1D +:104050000E94FA1D882379F1E09186011E9FF001EC +:104060001124E857FE4F4081518162817381848120 +:1040700095810E94601D8091860190E00196877075 +:10408000992780938601D9CF4F81588569857A8594 +:104090008B859C850E94601DCFCF0E94271D1092AA +:1040A000870110928601E8EBF1E086E0DF011D92C6 +:1040B0008A95E9F7C1CF2C960FB6F894DEBF0FBEF4 +:1040C000CDBFDF91CF911F910895EF92FF920F9393 +:1040D0001F93CF93DF938C01892B09F46CC0F12CD3 +:1040E000EE24E394E8012196F8018491843740F4AA +:1040F000843008F051C0813081F0823019F15BC00A +:10410000853709F444C0A8F19CE7980F903708F070 +:1041100052C08F770E94A11941C00E5F1F4FFE0150 +:10412000C49180E28C0F883048F4C7708E2D01C096 +:10413000880FCA95EAF70E94152314C08C2F0E949D +:10414000D9182DC00E5F1F4FFE01C49180E28C0F65 +:10415000883058F4C7708E2D01C0880FCA95EAF7D1 +:104160000E941B230E943C231AC08C2F0E94A1197D +:1041700016C00E5F1F4FFE01C491CC2381F08FE962 +:104180009FE00197F1F700C00000C150F6CF0E5F2D +:104190001F4FFE01F49003C00E94D9188E018F2D8D +:1041A000882309F49FCFEFE9FFE03197F1F700C0D2 +:1041B00000008150F5CFDF91CF911F910F91FF90BB +:1041C000EF90089508956093C2017093C3018093A6 +:1041D000C4019093C5010C94151D0F931F9300917A +:1041E000C2011091C3012091C4013091C501DC01CD +:1041F000CB01802B912BA22BB32B8093C2019093E8 +:10420000C301A093C401B093C5011F910F910C94F9 +:10421000151D0F931F930091C2011091C3012091AE +:10422000C4013091C501DC01CB0180239123A2237D +:10423000B3238093C2019093C301A093C401B093B0 +:10424000C5011F910F910C94151D0F931F930091A1 +:10425000C2011091C3012091C4013091C501DC015C +:10426000CB0180279127A227B3278093C201909387 +:10427000C301A093C401B093C5011F910F910C9489 +:10428000151D1092BE011092BF011092C001109234 +:10429000C1010C94151D41E050E060E070E004C0E5 +:1042A000440F551F661F771F8A95D2F74093BE01B2 +:1042B0005093BF016093C0017093C1010C94151D10 +:1042C00041E050E060E070E004C0440F551F661FFD +:1042D000771F8A95D2F78091BE019091BF01A0917E +:1042E000C001B091C101482B592B6A2B7B2B409305 +:1042F000BE015093BF016093C0017093C1010C9443 +:10430000151D41E050E060E070E004C0440F551F0F +:10431000661F771F8A95D2F74095509560957095E6 +:104320008091BE019091BF01A091C001B091C101E7 +:10433000482359236A237B234093BE015093BF0136 +:104340006093C0017093C1010C94151D41E050E0D1 +:1043500060E070E004C0440F551F661F771F8A9508 +:10436000D2F78091BE019091BF01A091C001B091A0 +:10437000C101482759276A277B274093BE015093E4 +:10438000BF016093C0017093C1010C94151D0F9380 +:104390001F930091BE011091BF012091C001309187 +:1043A000C101DC01CB01802B912BA22BB32B80937D +:1043B000BE019093BF01A093C001B093C1011F91B2 +:1043C0000F910C94151D0F931F930091BE01109136 +:1043D000BF012091C0013091C101DC01CB018023DC +:1043E0009123A223B3238093BE019093BF01A09396 +:1043F000C001B093C1011F910F910C94151D0F9333 +:104400001F930091BE011091BF012091C001309116 +:10441000C101DC01CB0180279127A227B32780931C +:10442000BE019093BF01A093C001B093C1011F9141 +:104430000F910C94151D0895CF92DF92EF92FF9289 +:104440000F931F93CF93DF938C01C090C201D09044 +:10445000C301E090C401F090C5014091BE015091AC +:10446000BF016091C0017091C101C42AD52AE62A1A +:10447000F72ACFE1D0E0D701C6010C2E04C0B695D3 +:10448000A795979587950A94D2F780FF07C0B80142 +:104490008C2F0E944A0E8130910531F4219758F7F4 +:1044A000B80180E00E944A0EDF91CF911F910F91D9 +:1044B000FF90EF90DF90CF90089590910C01992399 +:1044C00021F090910D01911109C020910E013091C0 +:1044D0000F01F90132969FEF40E030C0982F96957A +:1044E000969596959F30A0F4E0910E01F0910F0102 +:1044F000E90FF11D877021E030E0A90102C0440FEF +:10450000551F8A95E2F7CA019181892B818308950D +:104510009091D90190FF23C01F928F938AED98E06C +:104520009F938F930E9470090F900F900F900F90A0 +:1045300008959F3F39F04F5F4E3041F0519158132D +:10454000F8CF0DC05111F7CF942FF5CF9F3F39F021 +:10455000F901E90FF11D97FDFA95828308950895F9 +:1045600090910C01992321F090910D01911109C0B6 +:1045700020910E0130910F01F9013296205F3F4FDB +:1045800030C0982F9695969596959F30A8F4E09117 +:104590000E01F0910F01E90FF11D877021E030E06D +:1045A000A90102C0440F551F8A95E2F7CA01809500 +:1045B00091818923818308959091D90190FF16C03C +:1045C0001F928F938CEB98E09F938F930E947009BA +:1045D0000F900F900F900F9008953196E217F30708 +:1045E00029F090819813F9CF1082F7CF089581E0D8 +:1045F00090E0E0910E01F0910F01E80FF91F108299 +:10460000019680319105A9F708959091D801892BE1 +:104610008093D801089580959091D8018923809343 +:10462000D80108951092D80108959091D701892B4F +:104630008093D701089580959091D7018923809325 +:10464000D70108951092D70108958093C601089567 +:104650001092C601089580910E0190910F01FC0106 +:1046600031969C01205F3F4F80E0919191118F5FC7 +:10467000E217F307D1F70895E0910E01F0910F01D1 +:104680008091D8018083E0910E01F0910F0190811B +:104690008091D701892B80838091C601882361F0A6 +:1046A000E0910E01F0910F019081892B80830E948F +:1046B0002B2381111092C60180910E0190910F0160 +:1046C0000C94571790933B0180933A010895CF9231 +:1046D000DF92EF92FF926C01EE24FF24C114D1040B +:1046E000E104F10421F0C701B60120E101C020E09E +:1046F000C72ED82EE92EFF24C114D104E104F10401 +:1047000019F0285FC701B6016B017C0154E0F694F3 +:10471000E794D794C7945A95D1F7C114D104E10412 +:10472000F10419F02C5FC701B6016B017C0142E076 +:10473000F694E794D794C7944A95D1F7C114D1045D +:10474000E104F10419F02E5FC701B601DC01CB01D1 +:10475000B695A79597958795892B8A2B8B2B09F072 +:104760002F5F822FFF90EF90DF90CF90089582957A +:10477000982F9C7C392F36953695282F237344E04B +:10478000249FC0011124932F982B292F2A7A269534 +:10479000892F8575880F822B08951F93CF93DF9300 +:1047A0001F92CDB7DEB799830E94B723182F998146 +:1047B000892F0E94B723212F30E0322F2227A90111 +:1047C000482BCA010F90DF91CF911F9108958091DE +:1047D000F201843009F11092DA0120E488E190E0DE +:1047E0000FB6F894A895809360000FBE20936000E8 +:1047F00083B7817F846083BF83B7816083BF7894F0 +:10480000889583B78E7F83BF88E10FB6F894809335 +:104810006000109260000FBE089508950895CF9330 +:104820000E940D240E94EF0B0E940E24C0E08C2FEA +:104830000E941B0D811104C0CF5FCE30C1F701C0B3 +:1048400081E0CF9108950E94271D0E944B170C9480 +:104850007D0F82E084BD93E095BD9AEF97BD809374 +:104860006E0008952FB7F8948091DB019091DC01E0 +:10487000A091DD01B091DE012FBF0895CF92DF92AC +:10488000EF92FF920F931F932FB7F8944091DB01A3 +:104890005091DC016091DD017091DE012FBF6A0152 +:1048A0007B01EE24FF248C0120E030E0C016D1060D +:1048B000E206F30610F4415051099A01281B390B06 +:1048C000C9011F910F91FF90EF90DF90CF90089555 +:1048D0001F920F920FB60F9211248F939F93AF9355 +:1048E000BF938091DB019091DC01A091DD01B0913B +:1048F000DE010196A11DB11D8093DB019093DC01C7 +:10490000A093DD01B093DE01BF91AF919F918F9194 +:104910000F900FBE0F901F9018950E944914F894A5 +:104920002FEF87EA91E6215080409040E1F700C0E8 +:10493000000087E090EBDC018093FB019093FC0189 +:10494000A093FD01B093FE019CE088E10FB6F894BE +:10495000A895809360000FBE90936000FFCFEF9208 +:10496000FF920F931F93CF93DF93D82FC0E08C2F2C +:104970000E941B0D00E010E0E82EF12CC701002E74 +:1049800002C0959587950A94E2F780FD06C00F5FF7 +:104990001F4F0630110591F709C0602F7C2F80E072 +:1049A0000E94280ED813F3CF81E004C0CF5FCE3031 +:1049B000F1F680E0DF91CF911F910F91FF90EF9082 +:1049C0000895CF93C82F8CE20E94AF24882321F052 +:1049D0008C2FCF910C94AF2480E0CF910895CF938A +:1049E0000E943E26811102C00E9424268FEF98E08B +:1049F0000E94D708C5E6C15049F00E94EF0B8FE333 +:104A00009CE90197F1F700C00000F5CF88EF98E02E +:104A10000E94D70889E20E94E124811113C18AE231 +:104A20000E94E12481110E94242685E00E94E12455 +:104A300081110E948D240E9449268093D90187E02C +:104A40000E94E1248823A9F18BE10E94E1248823BC +:104A500051F08091D90181FB222720F991E0922722 +:104A600090FB81F90EC08EE00E94E124882361F062 +:104A70008091D90182FB222720F991E0922790FBB7 +:104A800082F98093D90115C080E10E94E1249091C0 +:104A9000D901882341F093FB222720F981E0822766 +:104AA00080FB93F904C0892F809580FB90F9909347 +:104AB000D9018091D9010E944D260E945B268093E6 +:104AC000EC0180EE0E94E124882341F08091EC010A +:104AD000982F909590FB80F98093EC0189E30E94D8 +:104AE000E124882359F08091EC0181FB222720F9F1 +:104AF00091E0922790FB81F98093EC0182EE0E9475 +:104B0000E124882359F08091EC0182FB222720F9CF +:104B100091E0922790FB82F98093EC0186EE0E944F +:104B2000E124882359F08091EC0183FB222720F9AE +:104B300091E0922790FB83F98093EC0183EE0E9431 +:104B4000E124882359F08091EC0184FB222720F98D +:104B500091E0922790FB84F98093EC0185E30E9419 +:104B6000E124882359F08091EC0185FB222720F96C +:104B700091E0922790FB85F98093EC0181E30E94FC +:104B8000E124882359F08091EC0186FB222720F94B +:104B900091E0922790FB86F98093EC0181E10E94DD +:104BA000E124882359F08091EC0187FB222720F92A +:104BB00091E0922790FB87F98093EC018091EC01C2 +:104BC0000E945F268091EC0187FB882780F9809303 +:104BD0000D0187E20E94E124C82F8EE10E94E124AA +:104BE0008111C2608FE10E94E1248111C46080E2E2 +:104BF0000E94E1248111C86081E20E94E1248111B8 +:104C0000C06182E20E94E1248111C06283E20E94BD +:104C1000E1248111C06484E20E94E124882311F020 +:104C2000C06802C0CC2329F08C2F0E9456266C2F1E +:104C300003C00E945226682F70E080E090E0CF9180 +:104C40000C94E320CF9108956DEE7EEF80E090E02C +:104C50000E94273060E082E090E00E94193060E01E +:104C600083E090E00E94193060E084E090E00E94D0 +:104C7000193060E085E090E00C94193080E090E01D +:104C80000E94133021E08D3E9E4F09F020E0822FDC +:104C9000089582E090E00C940B30682F82E090E061 +:104CA0000C94193083E090E00C940B30682F83E073 +:104CB00090E00C94193084E090E00C940B30682F55 +:104CC00084E090E00C9419308091E10180FF0BC0EA +:104CD0006091130185E0689FB00111247595679577 +:104CE000759567952BC081FF09C06091130185E020 +:104CF000689FB00111247595679520C082FF07C099 +:104D00006091130185E0689FB001112417C0909154 +:104D1000E2019923D1F060911201961788F7209152 +:104D2000130185E0289F90011124929FA001939F79 +:104D3000500D112470E0CA010E94DD2F603871050A +:104D400040F46115710539F002C065E070E0862F0E +:104D500008958FE7089581E008958091E10180FF33 +:104D600008C06091110170E075956795759567951C +:104D700021C081FF06C06091110170E075956795B3 +:104D800019C082FF04C06091110170E010C09091C1 +:104D9000E2019923C1F0609110019617A0F780916C +:104DA0001101899FC001112470E00E94DD2F60383D +:104DB000710528F46115710521F0862F08958FE79C +:104DC000089581E0089561E070E0F4CF803F21F420 +:104DD0000E946426819504C0813F29F40E946426C4 +:104DE0008093E5010895823F21F40E946426819515 +:104DF00004C0833F29F40E9464268093E40108954F +:104E0000893F19F40E94AD2605C08A3F31F40E9403 +:104E1000AD2681958093E60108958B3F21F40E9491 +:104E2000AD26819504C08C3F29F40E94AD26809365 +:104E3000E7010895843F21F48091E301816017C068 +:104E4000853F21F48091E301826011C0863F21F407 +:104E50008091E30184600BC0873F21F48091E301DE +:104E6000886005C0883F31F48091E30180618093C0 +:104E7000E30108958D3F21F48091E10181600BC031 +:104E80008E3F21F48091E101826005C08F3F29F4BB +:104E90008091E10184608093E1010895803F39F4BD +:104EA0008091E50187FF6CC01092E50169C0813FE8 +:104EB00029F48091E5011816BCF362C09091E401D9 +:104EC000823F29F497FF5CC01092E40159C0833FF0 +:104ED00019F41916CCF354C0893F41F48091E601CE +:104EE00018160CF04DC01092E6014AC08A3F29F412 +:104EF0008091E60187FF44C0F6CF8B3F39F4809163 +:104F0000E70187FF3DC01092E7013AC08C3F29F4CA +:104F10008091E7011816BCF333C0843F21F48091DF +:104F2000E3018E7F17C0853F21F48091E3018D7FDF +:104F300011C0863F21F48091E3018B7F0BC0873F36 +:104F400021F48091E301877F05C0883F31F480918F +:104F5000E3018F7E8093E30113C08D3F21F48091A4 +:104F6000E1018E7F0BC08E3F21F48091E1018D7FA6 +:104F700005C08F3F29F48091E1018B7F8093E1018F +:104F80008091E40181110EC08091E50181110AC078 +:104F90008091E601811106C08091E701811102C074 +:104FA0001092E20108958091D90183FF7EC08BE3C6 +:104FB00099E00E94D7088091E3011F928F9386E3C6 +:104FC00099E09F938F930E94700984E399E00E9477 +:104FD000D7088091E401282F332727FD30953F9390 +:104FE0008F9381E399E09F938F930E9470098FE2E2 +:104FF00099E00E94D7088091E501282F332727FDEB +:1050000030953F938F938CE299E09F938F930E940A +:1050100070098AE299E00E94D7088091E601282F62 +:10502000332727FD30953F938F9387E299E09F9335 +:105030008F930E94700985E299E00E94D7088091C1 +:10504000E701282F332727FD30953F938F9382E286 +:1050500099E09F938F930E9470098FE199E00E94DD +:10506000D7088091E2011F928F938CE199E09F9382 +:105070008F930E9470098AE199E00E94D70880917D +:10508000E1011F928F9387E199E09F938F930E9494 +:10509000700984E199E00E94D7088DB79EB74C96BD +:1050A0000FB6F8949EBF0FBE8DBF83EE91E00E94B5 +:1050B000A0170E9432249093E0018093DF010895AD +:1050C0001F93CF93DF938091DF019091E0010E94C5 +:1050D0003E24AC019091E201992321F0209114012A +:1050E00030E006C0209115018AE0289F900111242C +:1050F0004217530708F486C08091E401C091E5018E +:10510000D091E6011091E701811107C0C11176C06D +:10511000D11174C0111172C075C09F3F19F09F5F0B +:105120009093E201181624F40E9464268093E4010F +:105130008091E40187FF05C00E94642681958093D9 +:10514000E4011C1624F40E9464268093E5018091FA +:10515000E50187FF05C00E94642681958093E501E3 +:105160006091E401662339F1C091E501CC2319F186 +:10517000772767FD7095872F972F0E94E22E23E3F4 +:1051800033E343E35FE30E94462F0E94AF2E609318 +:10519000E4016C2F772767FD7095872F972F0E946A +:1051A000E22E23E333E343E35FE30E94462F0E94B2 +:1051B000AF2E6093E5011D1624F40E94AD26809366 +:1051C000E6018091E60187FF05C00E94AD2681952A +:1051D0008093E601111624F40E94AD268093E70126 +:1051E0008091E70187FF05C00E94AD2681958093DD +:1051F000E701DF91CF911F910C94D3279F3F09F0D6 +:105200008ECF96CFDF91CF911F910895E3EEF1E01D +:1052100085E0DF011D928A95E9F71092E201109274 +:10522000E10108958EE59BE00E94D7081F9281E07E +:105230008F931F9285E08F9380E19BE09F938F93E4 +:105240000E9470090F900F900F900F900F900F9089 +:1052500008958330E9F128F4813061F0823009F15A +:105260000895853009F462C008F449C0863009F415 +:1052700074C0089580911501262F30E0280F311D4C +:105280002F3F310524F4680F6093150103C08FEFA1 +:1052900080931501809115011F928F9389E49AE004 +:1052A00072C080911401262F30E0280F311D2F3F4E +:1052B000310524F4680F6093140103C08FEF8093CD +:1052C0001401809114011F928F9387E39AE05BC0D1 +:1052D00080911301262F30E0280F311D2F3F31051B +:1052E00024F4680F6093130103C08FEF80931301C0 +:1052F000809113011F928F9384E29AE044C08091C1 +:105300001201262F30E0280F311D2F3F310524F4E4 +:10531000680F6093120103C08FEF80931201809198 +:1053200012011F928F938FE09AE02DC0809111019E +:10533000262F30E0280F311D2F3F310524F4680F50 +:105340006093110103C08FEF8093110180911101CF +:105350001F928F9386EF99E016C080911001262F3F +:1053600030E0280F311D2F3F310524F4680F609382 +:10537000100103C08FEF80931001809110011F92E4 +:105380008F938BED99E09F938F930E9470090F90FC +:105390000F900F900F900895833081F128F48130A1 +:1053A00059F08230D1F00895853009F449C0B8F140 +:1053B000863009F456C0089580911501681720F4CD +:1053C000861B8093150102C0109215018091150172 +:1053D0001F928F938CEC99E054C080911401681750 +:1053E00020F4861B8093140102C010921401809156 +:1053F00014011F928F938AEB99E043C080911301AF +:10540000681720F4861B8093130102C010921301C9 +:10541000809113011F928F9387EA99E032C08091A7 +:105420001201681720F4861B8093120102C01092AB +:105430001201809112011F928F9382E999E021C09D +:1054400080911101681720F4861B8093110102C01E +:1054500010921101809111011F928F9389E799E0B9 +:1054600010C080911001681720F4861B80931001F2 +:1054700002C010921001809110011F928F938EE54F +:1054800099E09F938F930E9470090F900F900F9057 +:105490000F900895CF93C82F1F928F9383E69CE0BF +:1054A0009F938F930E94700981E090E0A0E0B0E0AC +:1054B000BC01CD0104C0660F771F881F991FCA95D4 +:1054C000D2F70E94E3200F900F900F900F90CF9192 +:1054D0000C94271DCF938D3109F465C0B0F58E3043 +:1054E00009F4CCC100F5873009F49BC1A8F48630DB +:1054F00009F06DC28091D901817F8E7F8093D9019F +:1055000088E69CE00E94D7088AEA90E10E94D708CA +:1055100081E08093E90180C1883009F44FC08B306D +:1055200009F47CC154C2863109F4F0C138F48031E9 +:1055300009F4B8C1813109F430C249C2893109F492 +:10554000CEC18B3109F486C142C2853309F437C21A +:1055500048F4873209F433C208F433C2893209F4BB +:105560002EC235C2833438F48A3308F02CC2883313 +:1055700009F454C12CC2833409F421C2883409F0DF +:1055800026C20E94271D89E990E10E94D7089FEF5B +:1055900023ED80E3915020408040E1F700C00000FF +:1055A0000E948D2439C189EB90E10E94D7080E94A6 +:1055B000692E0E944B170E947D0F2EC18EEA90E14A +:1055C0000E94D70889E79EE00E94D7080E945226D1 +:1055D0001F928F9386E79EE09F938F930E9470099E +:1055E00084E79EE00E94D7080E944926C82F81E6E2 +:1055F0009EE00E94D7081F92CF938CE59EE09F9378 +:105600008F930E9470098AE59EE00E94D70880E58A +:105610009EE00E94D7088C2F81701F928F938DE49B +:105620009EE09F938F930E9470098BE49EE00E94FE +:10563000D70881E49EE00E94D708C1FB882780F943 +:105640001F928F938EE39EE09F938F930E94700929 +:105650008CE39EE00E94D70880E39EE00E94D7087A +:10566000C2FB882780F91F928F938DE29EE09F9363 +:105670008F930E9470098BE29EE00E94D70882E21D +:105680009EE00E94D708C3FBCC27C0F91F92CF939E +:105690008FE19EE09F938F930E9470098DE19EE0C1 +:1056A0000E94D7080E945B26C82F89E09EE00E94D6 +:1056B000D7081F92CF9384E09EE09F938F930E9420 +:1056C000700982E09EE00E94D70889EE9DE00E946A +:1056D000D7088C2F81701F928F9386EE9DE09F9349 +:1056E0008F930E9470098DB79EB780960FB6F8947D +:1056F0009EBF0FBE8DBF84EE9DE00E94D7088DEC4B +:105700009DE00E94D708C1FB882780F91F928F93E4 +:105710008AEC9DE09F938F930E94700988EC9DE036 +:105720000E94D70886EB9DE00E94D708C2FB88271D +:1057300080F91F928F9383EB9DE09F938F930E943C +:10574000700981EB9DE00E94D7088FE99DE00E94DF +:10575000D708C3FB882780F91F928F938CE99DE0BF +:105760009F938F930E9470098AE99DE00E94D70859 +:1057700080E99DE00E94D708C4FB882780F91F922A +:105780008F938DE89DE09F938F930E9470098BE823 +:105790009DE00E94D70889E79DE00E94D708C5FBDD +:1057A000882780F91F928F9386E79DE09F938F93C0 +:1057B0000E94700984E79DE00E94D70888E59DE07B +:1057C0000E94D708C6FB882780F91F928F9385E532 +:1057D0009DE09F938F930E94700983E59DE00E9456 +:1057E000D7088BE49DE00E94D708C7FBCC27C0F9FF +:1057F0001F92CF9388E49DE09F938F930E9470093E +:1058000086E49DE00E94D7088DB79EB74C960FB6F0 +:10581000F8949EBF0FBE8DBFC1E0DEC08FE89CE054 +:105820005BC08091D901C82FC17080FF09C08CE88E +:1058300090E10E94D7088091D901817F8E7F47C077 +:1058400080E890E10E94D7088091D901816080931F +:10585000D901E2CF9091D90191FBCC27C0F981E029 +:10586000C827892FC0FB81F98093D901CC2319F077 +:1058700083E790E127C085E690E12EC09091D901A1 +:1058800092FBCC27C0F981E0C827892FC0FB82F9A1 +:105890008093D901CC2319F086E590E113C086E40A +:1058A00090E11AC09091D90193FBCC27C0F981E017 +:1058B000C827892FC0FB83F98093D901CC2351F0ED +:1058C0008AE390E10E94D7088091D901816080939A +:1058D000D90182C08DE290E10E94D7089DCF8EE170 +:1058E00090E10E94D70882EF9FE00E94D70885EBE5 +:1058F0009FE00E94D70888E89FE00E94D70884E4D0 +:105900009FE00E94D70889E19FE0E6CF8BE09FE00F +:105910000E94D7080E944B171F928F9381EF9EE041 +:105920009F938F930E94700980910C011F928F9317 +:105930008AED9EE09F938F930E9470098091700181 +:105940001F928F9387EC9EE09F938F930E94700924 +:1059500080910D011F928F9384EB9EE09F938F9314 +:105960000E9470098091DB019091DC01A091DD0122 +:10597000B091DE01BF93AF939F938F9380EA9EE037 +:105980009F938F930E9470098DB79EB746960FB66E +:10599000F8949EBF0FBE8DBF3FCF0E94271DC091C0 +:1059A0000D0181E0C827C0930D01CC2329F086E9C1 +:1059B0009EE00E94D70810C08BE89EE08DCF80E06B +:1059C00003C08D5101C089530E944A2A25CF89E81E +:1059D0009EE00E94D708C0E08C2FCF91089580E010 +:1059E000089580E00895CF93C82F8091E901813018 +:1059F00081F020F0823009F44FC045C1E0910E01E2 +:105A0000F0910F018081813169F0823209F03DC14E +:105A100009C0E0910E01F0910F018081813111F0F8 +:105A2000823261F48C2F0E94EF2C811104C08C2FE4 +:105A30000E946A2A2FC081E090E02CC08C2F0E9427 +:105A4000F12C811126C0C431E1F070F4CB3081F02B +:105A5000C031D1F40E9412298BE59CE00E94D70846 +:105A600082E08093E90115C0C93259F0C83361F46E +:105A700088E69CE00E94D7088FE59CE00E94D7084A +:105A800008C01092E90103C189E59CE00E94D70893 +:105A9000FEC081E08170FDC0C43220F5CE3108F037 +:105AA000C0C0CB3099F1C8F4C73009F0D2C08AE049 +:105AB0008093150194E19093140193E09093130166 +:105AC0008093120188E08093110188E28093100195 +:105AD0008FEF9AE00E94D708BFC0C33149F1C431AB +:105AE000C1F0B7C0CB3409F4A9C028F4C93289F099 +:105AF000C83361F0AEC0C13509F49EC0C23509F4A7 +:105B000099C0CE3409F0A5C06AE09EC00E94122957 +:105B1000A3C08091E801882319F01092E8019CC08D +:105B20008CE09BE00E94D70881E08093E901B1C03E +:105B300086EE9AE00E94D70884ED9AE00E94D7088A +:105B4000809115011F928F9381ED9AE09F938F931F +:105B50000E9470098FEC9AE00E94D7088DEB9AE0C2 +:105B60000E94D708809114011F928F938AEB9AE0CC +:105B70009F938F930E94700988EB9AE00E94D70848 +:105B800089EA9AE00E94D708809113011F928F93AF +:105B900086EA9AE09F938F930E94700984EA9AE0C4 +:105BA0000E94D70883E99AE00E94D70880911201E9 +:105BB0001F928F9380E99AE09F938F930E947009C0 +:105BC0008EE89AE00E94D70889E79AE00E94D708F9 +:105BD000809111011F928F9386E79AE09F938F9394 +:105BE0000E94700984E79AE00E94D7088DE59AE048 +:105BF0000E94D708809110011F928F938AE59AE046 +:105C00009F938F930E94700988E59AE00E94D708BD +:105C10008DB79EB748960FB6F8949EBF0FBE8DBF46 +:105C20001BC0CE51EC2FF0E0E15DFE4F80818093F0 +:105C3000E80112C061E003C061E006C06AE0809143 +:105C4000E8010E94292908C08091E8010E94CC291E +:105C500003C08DEF9AE013C08091E801882369F0BA +:105C60001F928F9387EF9AE09F938F930E94700902 +:105C70000F900F900F900F9004C084EF9AE00E9455 +:105C8000D70881E006C01092E90180E002C080E000 +:105C900001CFCF910895E1E8F0E0808188608083B2 +:105CA0008081816080838FB7F89493E0909389001E +:105CB00090ED909388008FBF0895EFE6F0E080812B +:105CC000826080830895EFE6F0E080818D7F80839D +:105CD0000895EFE6F0E0908182E0892780830895BF +:105CE0001F920F920FB60F9211242F933F934F9351 +:105CF0005F936F937F938F939F93AF93BF93EF9334 +:105D0000FF938091EA019091EB0101969093EB0152 +:105D10008093EA01811103C082E00E947D0FE0912F +:105D2000EB01E695E695F0E0E753FF4EE4918091B4 +:105D3000EA018E1303C080E00E947D0FFF91EF9176 +:105D4000BF91AF919F918F917F916F915F914F9193 +:105D50003F912F910F900FBE0F901F90189504D078 +:105D60006894B1118DC0089570D088F09F5790F05D +:105D7000B92F9927B751A0F0D1F0660F771F881F70 +:105D8000991F1AF0BA95C9F712C0B13081F077D0D7 +:105D9000B1E0089574C0672F782F8827B85F39F075 +:105DA000B93FCCF3869577956795B395D9F73EF4CF +:105DB00090958095709561957F4F8F4F9F4F089577 +:105DC000E89409C097FB3EF4909580957095619595 +:105DD0007F4F8F4F9F4F9923A9F0F92F96E9BB274B +:105DE0009395F695879577956795B795F111F8CFC7 +:105DF000FAF4BB0F11F460FF1BC06F5F7F4F8F4F32 +:105E00009F4F16C0882311F096E911C0772321F027 +:105E10009EE8872F762F05C0662371F096E8862FBF +:105E200070E060E02AF09A95660F771F881FDAF716 +:105E3000880F9695879597F9089557FD9058440FC8 +:105E4000551F59F05F3F71F04795880F97FB991FD9 +:105E500061F09F3F79F08795089512161306140696 +:105E6000551FF2CF4695F1DF08C016161706180623 +:105E7000991FF1CF86957105610508940895E894FE +:105E8000BB2766277727CB0197F908950BD078C0F9 +:105E900069D028F06ED018F0952309F05AC05FC081 +:105EA0001124EECFCADFA0F3959FD1F3950F50E0F8 +:105EB000551F629FF001729FBB27F00DB11D639FBC +:105EC000AA27F00DB11DAA1F649F6627B00DA11D62 +:105ED000661F829F2227B00DA11D621F739FB00D08 +:105EE000A11D621F839FA00D611D221F749F332778 +:105EF000A00D611D231F849F600D211D822F762F11 +:105F00006A2F11249F5750408AF0E1F088234AF00D +:105F1000EE0FFF1FBB1F661F771F881F9150504059 +:105F2000A9F79E3F510570F014C0AACF5F3FECF374 +:105F3000983EDCF3869577956795B795F795E79545 +:105F40009F5FC1F7FE2B880F911D9695879597F956 +:105F5000089597F99F6780E870E060E008959FEFEB +:105F600080EC089500240A941616170618060906F0 +:105F7000089500240A9412161306140605060895BF +:105F8000092E0394000C11F4882352F0BB0F40F447 +:105F9000BF2B11F460FF04C06F5F7F4F8F4F9F4F87 +:105FA0000895991B79E004C0991F961708F0961B75 +:105FB000881F7A95C9F78095089597FB072E16F4E8 +:105FC000009407D077FD09D00E94F72F07FC05D079 +:105FD0003EF4909581959F4F0895709561957F4F00 +:105FE0000895EE0FFF1F0590F491E02D0994AA1B70 +:105FF000BB1B51E107C0AA1FBB1FA617B70710F0B4 +:10600000A61BB70B881F991F5A95A9F780959095E5 +:10601000BC01CD010895F999FECF92BD81BDF89ADA +:10602000992780B50895A8E1B0E042E050E00C94D3 +:106030002E30262FF999FECF1FBA92BD81BD20BD0B +:106040000FB6F894FA9AF99A0FBE019608950E9435 +:106050001930272F0C941A30DC01CB01FC01F9997F +:10606000FECF06C0F2BDE1BDF89A319600B40D92A4 +:0C60700041505040B8F70895F894FFCF5D +:10607C0020027E0F6F104C101810E40F0101C701A5 +:10608C0028080A03140A3F4D3620394908FC07C674 +:10609C0007A6076D07E006F90612072B074B070149 +:0A60AC0002030405060708090000BE :00000001FF -- cgit v1.2.3 From 46ddbd1fe27c910cd4d6ae3d2b6044cfbf71c3cb Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Wed, 2 Mar 2016 08:43:21 +0100 Subject: forgot F6 --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 2 +- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 4e88376e4..c3b296cd7 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -95,7 +95,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 5346f1bdf..bf12476a4 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -45,7 +45,7 @@ :1002C000003B0035022102350001004C003C001EBD :1002D0000224062202010001003D002D0224022416 :1002E00004010001003E000100370011040000017C -:1002F000000100010000000100000001000E3001BB +:1002F000003F00010000000100000001000E30017D :100300000000000100000001004000240624022338 :1003100002000001004100220425023500300001E6 :100320000042002304260235023800010043002465 -- cgit v1.2.3 From e4b7ce41e3e5e73918aba9f021c4c93582378baf Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Fri, 11 Mar 2016 22:27:03 -0800 Subject: Started my keymap --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 184 ++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/alexjj/keymap.c (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c new file mode 100644 index 000000000..f252bf71d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/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 |; / 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 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; + } + +}; -- cgit v1.2.3 From d0c62feb7e5992c2a6de2e50d347572720fa92a1 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 20 Mar 2016 22:53:43 +0100 Subject: tweaking it a bit further, fixing things --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index c3b296cd7..3efe3de8b 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | |CMD-C | 7 | 8 | 9 | 0 | ß | # | + * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT| | # | 6 | 7 | 8 | 9 | 0 | ß | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -39,8 +39,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | " | ' | ? | + * | | | ^ | % | | | ~ | | | | & | < | > | - | UP | + | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | + | - | . | ; | | + * | | | | | | | ' | " |Left | DOWN |Right | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - DE_PLUS, DE_MINS, KC_DOT, LSFT(DE_COMM), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_MINS, KC_UP, DE_PLUS, + DE_QUOT, DE_DQOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -- cgit v1.2.3 From 7ebc813e8291af61ea3ec6828d682c2d84e2b4e5 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 20 Mar 2016 23:00:20 +0100 Subject: changing cursor keys, back to "default" cursor key layout, adding ISO-cursor keys to Symb layer. Changed numbers back to symmetric layout again, keeping F-keys in symb though --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 3efe3de8b..e66101013 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -80,9 +80,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | - | UP | + | + * | | | ^ | % | | | ~ | | | | & | < | > | UP | - | + | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | ' | " |Left | DOWN |Right | + * | | | | | | | ' | LEFT| DOWN | RIGHT | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -107,8 +107,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_MINS, KC_UP, DE_PLUS, - DE_QUOT, DE_DQOT, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), KC_UP, DE_MINS, DE_PLUS, + DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -- cgit v1.2.3 From 1313e0c8283dc4c5f544aeb981ea047928950f0e Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 20 Mar 2016 23:07:38 +0100 Subject: fix number pad, add , --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index e66101013..7ecd1ae70 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -211,7 +211,7 @@ KEYMAP( 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_MINS, KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_0,KC_DOT, KC_COMM, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -- cgit v1.2.3 From af9e9810a02d6985b7fd85d60306c2021f0e2236 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Sun, 20 Mar 2016 22:05:08 -0700 Subject: work in progress --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 56 ++++++++++++++--------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index f252bf71d..88a69a040 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -10,45 +10,45 @@ 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 | - | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | -_ | += | BkSp | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | 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 |------+------+------+------+------+--------| + * | 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/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | | | RCtrl | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `----------------------' + * Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter|LShift|------| |------| ~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_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, + 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, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_CTRL, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, + KC_LALT, KC_F5, + KC_PGUP, + KC_ENT,KC_LSFT,KC_PGDN, // 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 + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_, KC_MINS, + 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, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_F2, TG(MDIA), + KC_INS, + KC_DELT,KC_FN1, KC_SPC ), /* Keymap 1: Symbol Layer * -- cgit v1.2.3 From 65fde3cc12fa55ed7e0ec1282efb62b530807e52 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 21 Mar 2016 16:03:25 -0700 Subject: More updates --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index 88a69a040..b7d832baa 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -18,13 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | | | RCtrl | + * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | L2 | + * Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | +L1 | * ,------|------|------| |------+------+------. * | | | PgUp | | Ins | | | - * | Enter|LShift|------| |------| ~L1 |Space | + * | Enter| ~L2 |------| |------| ~L1 |Space | * | | | PgDn | | Del | | | * `--------------------' `--------------------' */ @@ -36,26 +36,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, - KC_CTRL, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, + KC_LCTRL, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, KC_LALT, KC_F5, KC_PGUP, - KC_ENT,KC_LSFT,KC_PGDN, + KC_ENT,KC_FN2,KC_PGDN, // right hand - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_, KC_MINS, + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BKSP, 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, CTL_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, - KC_F2, TG(MDIA), + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_COPY,KC_PASTE, KC_RCTRL, + KC_F2, TG(SYMB), KC_INS, KC_DELT,KC_FN1, KC_SPC ), /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + 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, @@ -83,8 +83,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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, KC_TRNS, @@ -137,6 +137,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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) -- cgit v1.2.3 From f744e860ff0baf36e3f3401dec312ea46a734d83 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 21 Mar 2016 20:51:05 -0700 Subject: Update keymap.c --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index b7d832baa..b61b34cd6 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -16,7 +16,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . |//Alt| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | * `----------------------------------' `----------------------------------' @@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, KC_LCTRL, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, KC_LALT, KC_F5, KC_PGUP, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BKSP, 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_END, KC_N, KC_M, KC_COMM,KC_DOT, ALT_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_COPY,KC_PASTE, KC_RCTRL, KC_F2, TG(SYMB), KC_INS, @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | + * | | £ | | | | | | . | 0 | = |Alt+F4| * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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,UC(0xA3),KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, LALT(KC_F4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -- cgit v1.2.3 From cffd91edbde2cab226bb03b38d17371cd4499731 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 21 Mar 2016 20:58:29 -0700 Subject: typos --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index b61b34cd6..a0418f6a7 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -41,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PGUP, KC_ENT,KC_FN2,KC_PGDN, // right hand - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BKSP, + 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, ALT_T(KC_SLSH), KC_RSFT, @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) }; -- cgit v1.2.3 From f6e5e2bd451340eda1f2d4b87e9ccbea035848d6 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 21 Mar 2016 20:59:06 -0700 Subject: added .hex --- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 1124 +++++++++++++++++++++++++ 1 file changed, 1124 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/alexjj/keymap.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex new file mode 100644 index 000000000..1b72354f6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -0,0 +1,1124 @@ +:100000000C9466020C94AD020C94AD020C94AD02FB +:100010000C94AD020C94AD020C94AD020C94AD02A4 +:100020000C94AD020C94AD020C94DB0B0C94AD0C53 +:100030000C94AD020C94AD020C94AD020C94AD0284 +:100040000C94AD020C9421210C94AD020C94AD02E1 +:100050000C94AD020C94B31A0C94AD020C94AD0246 +:100060000C94AD020C94AD020C94AD020C94AD0254 +:100070000C94AD020C94AD020C94AD020C94AD0244 +:100080000C94AD020C94AD020C94AD020C94AD0234 +:100090000C94AD020C94AD020C94AD020C94AD0224 +:1000A0000C94AD020C94AD020C94AD021A0D3C0DF3 +:1000B0002F0E3C0D2F0E810DA40D2F0EF90D0C0EE1 +:1000C000F610F610251125116811A211AF13AF1308 +:1000D000BB11AF13B012B0128313AF13AF139A1347 +:1000E0000000F0A1F0A229002B00E300E100E000F5 +:1000F00000001E00140004001D7435004E001F0097 +:100100001A0016001B00007FC20020000800070034 +:1001100006005000280021001500090019004F00BA +:100120004B00220017000A0005000000E200230037 +:100130002F0000004A0000003E00240030000000B4 +:100140004D0000003B0025001C000B0011000000CA +:100150000154260018000D0010005200490027002D +:100160000C000E00360051002C002D0012000F0074 +:1001700037007C00C1002E001300330038747D006E +:100180004C002A0031003400E500E40000000100CA +:10019000010001000100010000003A001E022002DF +:1001A0002202A38001003B001F0221022302010062 +:1001B00001003C002F0226022F00010001003D003B +:1001C000300227023000010001003E0031023500FC +:1001D0003502000001003F000100000001000000A6 +:1001E000010040000100000001000000010041008A +:1001F00052005100240200000100420024002100AE +:100200001E00010001004300250022001F003700EE +:1002100001004400260023002000270001004500C3 +:1002200025022E0231002E000100460001000100CF +:1002300001003D0400000100010001000100010077 +:1002400000000100010001000100010001000100A7 +:100250000100F2000100010001000100F000F100C6 +:100260000100F400010001000100F3000100F500AD +:100270000100010001000100010000000100010077 +:100280000100000001000000010001000100000069 +:100290000100000001000100010001000100000058 +:1002A00001000100010001000100A900010001009E +:1002B00001000100AC00AA00B6000100010001002D +:1002C000AB00A800010001000100010001000100D5 +:1002D000010001000100AE00010001000000160352 +:1002E0004500720067006F0044006F007800200036 +:1002F00045005A00000016034500720067006F00B9 +:1003000044006F007800200045005A0000000403FC +:10031000090409026D00040100A0FA0904000001AB +:1003200003010100092111010001223F000705819D +:100330000308000A09040100010301020009211158 +:10034000010001224D000705820308000A0904028A +:1003500000010300000009211101000122360007FD +:1003600005830308000A09040300010300000009D3 +:100370002111010001223900070584031000011238 +:1003800001100100000008EDFE071301000102004A +:100390000105010906A101050719E029E715002556 +:1003A0000195087501810205081901290595057552 +:1003B000019102950175039101050719002977152F +:1003C000002501957875018102C005010980A10110 +:1003D000850216010026B7001A01002AB700751021 +:1003E00095018100C0050C0901A1018503160100DA +:1003F000269C021A01002A9C02751095018100C0FA +:1004000005010902A1010901A10005091901290538 +:10041000150025019505750181029501750381017E +:100420000501093009311581257F9502750881067E +:1004300009381581257F950175088106050C0A3854 +:10044000021581257F950175088106C0C005010947 +:1004500006A101050719E029E71500250195087592 +:100460000181029501750881010508190129059589 +:100470000575019102950175039101050719002980 +:10048000FF150025FF950675088100C000000000DB +:1004900000000000000000010204060A0F17202CD3 +:1004A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9CF +:1004B000DAC7B39D87715D4A3A2C20170F0A0604EC +:1004C00002010000000000000000000011241FBE17 +:1004D000CFEFDAE0DEBFCDBF04B603FE27C08091C8 +:1004E000ED019091EE01A091EF01B091F001873004 +:1004F000904BA740B04BD1F41092ED011092EE0159 +:100500001092EF011092F00114BE84B7877F84BF70 +:100510000FB6F894A8958091600088618093600080 +:10052000109260000FBEE0E0FFE3099511E0A0E04B +:10053000B1E0E4EEF5E402C005900D92A433B107FA +:10054000D9F721E0A4E3B1E001C01D92AD3EB207AE +:10055000E1F70E9422090C94F0220C940000611132 +:100560000BC0FC018281882321F085EE0E94900F50 +:1005700003C085EE0E94581080E090E00895089531 +:100580006091B1017091B2018091B3019091B40179 +:100590000E94E01956985E9825982D9826982E98D6 +:1005A00027982F98813019F0823021F00895259AEC +:1005B0002D9A0895269A2E9A089580EC92E0892B20 +:1005C00011F00E94C00280E090E0089556985E9875 +:1005D00025982D9826982E9827982F988FEF90E0A1 +:1005E000909389008093880090938B0080938A0079 +:1005F00090938D0080938C00259A2D9A2FEF80E7A1 +:1006000092E0215080409040E1F700C00000269A1F +:100610002E9A2FEF80E792E0215080409040E1F742 +:1006200000C00000279A2F9A2FEF80E792E0215018 +:1006300080409040E1F700C0000025982D982FEFF2 +:1006400080E792E0215080409040E1F700C0000038 +:1006500026982E982FEF80E792E02150804090401E +:10066000E1F700C0000027982F9856985E982598CB +:100670002D9826982E9827982F98089589EA809388 +:10068000800089E08093810024982C983F988AB15B +:100690008F748AB96E98479A8BB1806B8BB9769AB2 +:1006A0000E94E6028FEB92E0892B11F00E94BF02BC +:1006B00080E090E0089580E2809300018091340111 +:1006C00081110EC00E94AA0381E0809334012FEFB4 +:1006D00083ED90E3215080409040E1F700C000009E +:1006E00080E40E94B0038093000181112EC00E941B +:1006F000DA0380930001811128C00E94DA038093FD +:100700000001811122C08FE30E94DA03809300016F +:1007100081111BC00E94D20380E40E94B003809329 +:100720000001811112C08CE00E94DA038093000165 +:1007300081110BC00E94DA0380930001811105C072 +:100740008FE30E94DA03809300010E94D20380911C +:10075000000108951092B9008AE08093B8000895CE +:1007600094EA9093BC009091BC0097FFFCCF9091CD +:10077000B900987F983021F0903111F081E0089510 +:100780008093BB0084E88093BC008091BC0087FF0D +:10079000FCCF8091B900887F883111F0803471F7E7 +:1007A00080E0089584E98093BC008091BC0084FDC2 +:1007B000FCCF08958093BB0084E88093BC008091B7 +:1007C000BC0087FFFCCF9091B900987F81E0983200 +:1007D00009F480E0089584E88093BC008091BC0017 +:1007E00087FFFCCF8091BB000895809100018111AB +:1007F00015C080E40E94B0038093000181110CC0F9 +:1008000082E10E94DA0380930001811105C08FEF1D +:100810000E94DA03809300010E94D20384B1807F9A +:1008200084B985B1807F85B98AB1837F8AB98BB15C +:10083000837F8BB93E98469808950E945B0380930E +:1008400000010E94F50380B38C7080BB81B3836F7D +:1008500081BBE4E4F1E0A6E3B1E011921D9281E0F6 +:10086000E235F807D1F78EE393E0892B11F00C9471 +:100870003E0308959F92AF92BF92CF92DF92EF9284 +:10088000FF920F931F93CF93DF93809100018823F2 +:1008900079F0809135018F5F80933501811108C017 +:1008A0000E945B0380930001811102C00E94E60256 +:1008B00086E3E82E81E0F82E8701C0E0D0E0BB247B +:1008C000B39492E0A92ECC24C394D12CC730D10587 +:1008D00000F580910001811164C080E40E94B003A2 +:1008E00080930001811112C082E10E94DA0380939B +:1008F000000181110BC0C6010C2E01C0880F0A94A3 +:10090000EAF780950E94DA03809300010E94D203E7 +:1009100048C0CA30A1F028F4C83059F0C93061F09D +:1009200005C0CC3089F070F0CD3089F0209A28983D +:1009300010C0219A29980DC0229A2A980AC0239A99 +:100940002B9807C0529A01C0539A5B9802C03E9AF6 +:100950004698E0EAEA95F1F78FB181708B25799995 +:1009600002C032E001C030E0832B7C9902C034E049 +:1009700001C030E0832B7D9902C028E001C020E057 +:10098000822B7E9902C090E101C090E0892B9FB13B +:100990009095991F9927991F9295990F907E892B71 +:1009A0000FC080910001811150C080E40E94B0030B +:1009B000809300018823B1F1912C0E94D203892DEC +:1009C000D8019C91981719F08C93A09201010E9474 +:1009D000F50321960F5F1F4FCE30D10509F076CF7A +:1009E000809101018823B9F081508093010188230F +:1009F00039F0EFE9FFE03197F1F700C000000BC0DC +:100A0000E4E4F1E0D7018D917D018193B4E4EB162C +:100A1000B1E0FB06B9F78DED92E0892BC1F00E94A1 +:100A2000DD0215C083E10E94DA0380930001811189 +:100A3000C3CF81E40E94B003809300018111BCCF39 +:100A40000E94EB03982E9094B8CF80E0B9CF81E05C +:100A5000DF91CF911F910F91FF90EF90DF90CF909A +:100A6000BF90AF909F900895E82FF0E0EC5BFE4FB1 +:100A70008081089508958B3B910580F4883A910513 +:100A800048F5853A9105D8F48430910508F0B2C054 +:100A9000019709F06EC081E090E00895803E9105D5 +:100AA00008F467C0883E910508F4A4C09C01205F4B +:100AB00031092031310508F05CC090650895853A10 +:100AC000910509F459C0863A910509F058C082E8A9 +:100AD00090E40895883A910509F454C0893A910543 +:100AE00009F453C08A3A910509F452C08B3A910532 +:100AF00009F451C08C3A910509F450C08D3A910522 +:100B000009F44FC0803B910509F44EC08E3A91051F +:100B100009F44DC08F3A910509F44CC0813B910511 +:100B200009F44BC0823B910509F44AC0833B91050F +:100B300009F449C0843B910509F448C0853B9105FF +:100B400009F447C0863B910509F446C0873B9105EF +:100B500009F445C0883B910509F444C0893B9105DF +:100B600009F443C08A3B910509F442C080E094E453 +:100B7000089580E090E0089581E890E4089583E886 +:100B800090E4089582EE94E4089589EE94E4089543 +:100B90008AEE94E4089585EB94E4089586EB94E45A +:100BA000089587EB94E408958CEC94E408958DEC1B +:100BB00094E4089583E895E408958AE895E4089517 +:100BC00082E995E4089584E995E4089581E296E444 +:100BD000089583E296E4089584E296E4089585E218 +:100BE00096E4089586E296E4089587E296E40895EF +:100BF0008AE296E40895089524E5829FC0011124B5 +:100C0000FC0126E0729FE00DF11D1124E60FF11D9D +:100C1000EE0FFF1FEA51FF4F859194910895880FC1 +:100C2000991FFC01E05AF040859194910895880F36 +:100C3000991FFC01E052FF4F85919491089524E59E +:100C4000829FC0011124FC0146E0749FE00DF11D5C +:100C50001124E60FF11DEE0FFF1FEA51FF4F8591A2 +:100C600094919C013A9521154FE1340708F425C170 +:100C70003F512115304120F49F700E9417060895BE +:100C80009C0130532115304118F49927906C089538 +:100C9000811520E5920769F40E94D1134FEF84E398 +:100CA0009CE0415080409040E1F700C000000C946F +:100CB000D81A813020E5920731F48091CC0181600F +:100CC0008093CC0108959C0130552115304108F0E6 +:100CD0005CC0292F33272F70332721303105E9F4E9 +:100CE000AC0164E0440F551F6A95E1F74427537047 +:100CF000BC016370772702C0220F331F6A95E2F7A9 +:100D00003C68242B352B73E0880F991F7A95E1F707 +:100D100080769927822B932B08952230310529F470 +:100D2000982F8827816F906A089523303105A1F4A8 +:100D3000AC0133E0440F551F3A95E1F7407E577000 +:100D40008370992721E030E002C0220F331F8A957B +:100D5000E2F7C9019C6816C02430310531F5AC01B9 +:100D600023E0440F551F2A95E1F7407E57708370AA +:100D7000992721E030E002C0220F331F8A95E2F765 +:100D8000C9019A68842B952B08959C013057211531 +:100D9000304118F49F70906208959C0130582115DD +:100DA000304118F49F70906A0895803E9105E0F4F8 +:100DB000803C910558F58133910509F46FC048F4E2 +:100DC0008932910509F463C08A32910509F46DC036 +:100DD00072C089339105E9F082389105D1F08533ED +:100DE000910509F44DC067C0833E910581F138F447 +:100DF000803E9105B9F0823E9105D9F05CC0863EF7 +:100E0000910561F1873E9105A1F155C00E940F0641 +:100E100008952091DE0120FD02C021FF4CC080EE2C +:100E200090E049C08091DE0180FFF9CF89E390E036 +:100E300042C08091DE0182FF0EC08091DE0184FFFE +:100E400003C080E090E037C083EE90E034C0809132 +:100E5000DE0182FFF2CF82EE90E02DC08091DE01B4 +:100E600083FF0BC08091DE0184FDEBCF87EE90E025 +:100E700022C08091DE0183FFF5CF86EE90E01BC09B +:100E80008091DE0185FF07C089E290E014C0809167 +:100E9000DE0185FFF9CF85E390E00DC08091DE0192 +:100EA00086FF07C08AE290E006C08091DE0186FFDF +:100EB000F9CF81E390E00E943B0508950895809169 +:100EC00062010895CF93DF9300D01F92CDB7DEB7B4 +:100ED0009C018091E401843019F593E099833B8370 +:100EE0002A839093E9008FEF9091E800815095FD5F +:100EF00006C095ED9A95F1F700008111F5CF80912C +:100F0000E80085FF0DC040E050E063E070E0CE01F6 +:100F100001960E94CF098091E8008E778093E800C7 +:100F20000F900F900F90DF91CF910895CF93DF93A3 +:100F300000D01F92CDB7DEB72091E401243021F517 +:100F400022E029839B838A8383E08093E9008FEFEB +:100F50009091E800815095FD06C095ED9A95F1F7C6 +:100F600000008111F5CF8091E80085FF0DC040E0C1 +:100F700050E063E070E0CE0101960E94CF098091BD +:100F8000E8008E778093E8000F900F900F90DF912C +:100F9000CF9108959C018091E4018430F9F482E0BE +:100FA0008093E9009FEF8091E800915085FD06C095 +:100FB00085ED8A95F1F700009111F5CF8091E80059 +:100FC00085FF0CC040E050E065E070E0C9010E9480 +:100FD000CF098091E8008E778093E8000895CF9341 +:100FE000DF93EC018091E401843009F046C09091D8 +:100FF0000C019923D9F090910D019923B9F08093B8 +:10100000E9008FEF9091E800815095FD06C095E1D1 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:101020002CC040E050E060E170E017C081E08093A8 +:10103000E9008FEF9091E800815095FD06C095ED95 +:101040009A95F1F700008111F5CF8091E80085FFB6 +:1010500014C040E050E068E070E0CE010E94CF098B +:101060008091E8008E778093E80080E1FE01A2E5A0 +:10107000B1E001900D928A95E1F7DF91CF9108954B +:101080008091E301811109C00E94600B0E94BD0B99 +:101090008091E20084608093E20008951092E30161 +:1010A000089508950C940E210E946E1A0E94142136 +:1010B0000E94680E0C945E0742E061EC81E00E94A1 +:1010C000D90A42E061EC82E00E94D90A42E061EC78 +:1010D00083E00E94D90A42E161EC84E00C94D90AD1 +:1010E0008091E601833009F455C030F4813071F00D +:1010F000823009F48EC008958A3009F47AC08B30AA +:1011000009F460C0893009F09CC020C08091E501DD +:10111000813A09F096C08091E800877F8093E800CB +:101120008091E9019091EA01892B21F460E182E547 +:1011300091E003C060E080E090E070E00E941A0A55 +:101140008091E8008B778093E80008958091E50115 +:10115000813209F076C08091E9019091EA0100970F +:1011600019F0039709F06DC08091E800877F8093A4 +:10117000E8008091E80082FD05C08091E4018111C2 +:10118000F8CF5FC08091F100809362018091E80008 +:101190008B7753C08091E501813A09F052C080916C +:1011A000E9019091EA01892B09F04BC08091E80098 +:1011B000877F8093E8008091E80080FFFCCF8091DA +:1011C0000C0136C08091E5018132D9F58091E901A9 +:1011D0009091EA01892BA9F58091E800877F80939F +:1011E000E8000E940E0B8091E70180930C010C94A3 +:1011F000D1138091E501813221F58091E800877F4C +:101200008093E8000E940E0B8091E80180936301B7 +:1012100008958091E501813AA1F48091E800877FEB +:101220008093E8008091E80080FFFCCF809163010B +:101230008093F1008091E8008E778093E8000C9411 +:101240000E0B089584B7877F84BF0FB6F894A895D6 +:1012500080916000886180936000109260000FBEF2 +:1012600090E080E80FB6F89480936100909361005D +:101270000FBE0E94B70E0E94600B0E94BD0B8091B2 +:10128000E20084608093E20078940E94480E0E94FD +:10129000B90E82E091E00E94630E0E94FC208091D2 +:1012A000E401853069F40E94301A8091E2018823BC +:1012B000B1F30E945A1A882391F30E94B909EFCF23 +:1012C0000E94BF0EECCF292F332723303105C9F000 +:1012D00060F42130310581F02230310509F041C040 +:1012E0008DE690E022E133E040C021323105E1F0AB +:1012F0002232310531F135C082E190E02FE733E051 +:1013000034C099278130910549F028F0029749F5BA +:10131000EEEDF2E005C0EEE0F3E002C0E6EFF2E051 +:10132000849190E09F0121C06430D8F4E62FF0E072 +:10133000EE0FFF1FEE5DFE4F2081318189E090E0CE +:1013400014C0643070F470E0FB01EE0FFF1FE65E26 +:10135000FE4F20813181FB01EA5EFE4F808190E0EB +:1013600004C080E090E020E030E0FA013183208387 +:10137000089580E189BD82E189BD09B400FEFDCFF9 +:101380008091D8008F7D8093D8008091E0008260AA +:101390008093E0008091E00081FDFCCF0895CF9222 +:1013A000DF92EF92FF920F931F93CF93DF93EC01A5 +:1013B0008B016A010E942D0B811133C0C114D1042D +:1013C00039F0F60180819181081B190BC80FD91FD4 +:1013D000E12CF12C0115110519F18091E80085FD32 +:1013E00016C08091E8008E778093E800C114D10484 +:1013F00049F0F60180819181E80EF91EF182E082C8 +:1014000085E00FC00E942D0B882321F30AC089912B +:101410008093F10001501109FFEFEF1AFF0ADACFB4 +:1014200080E0DF91CF911F910F91FF90EF90DF90BF +:10143000CF9008952091EB013091EC0126173707EA +:1014400048F06115710539F42091E8002E7720935A +:10145000E80001C0B901FC0120E06115710579F1D6 +:101460008091E4018823F1F18530F1F18091E80069 +:1014700083FD3CC08091E80082FD2EC08091E80091 +:1014800080FFEBCF2091F3008091F20090E0922B4F +:101490006115710551F08830910538F42191209340 +:1014A000F100615071090196F3CF21E0089709F02E +:1014B00020E08091E8008E778093E800CECF211164 +:1014C000CFCF0AC08091E401882361F0853061F0BC +:1014D0008091E80083FD0AC08091E80082FFF2CF8E +:1014E00080E0089582E0089583E0089581E0089502 +:1014F0002091EB013091EC012617370748F0611578 +:10150000710539F42091E8002E772093E80001C09E +:10151000B901FC0120E06115710591F18091E401B0 +:10152000882309F440C0853009F43FC08091E80069 +:1015300083FD3DC08091E80082FD2FC08091E800CE +:1015400080FFE9CF2091F3008091F20090E0922B90 +:101550006115710559F08830910540F4249120936C +:10156000F1003196615071090196F2CF21E00897A0 +:1015700009F020E08091E8008E778093E800CBCFDF +:101580002111CCCF0AC08091E401882361F085301D +:1015900061F08091E80083FD0AC08091E80082FF3D +:1015A000F2CF80E0089582E0089583E0089581E01D +:1015B0000895982F973068F59093E900981739F0BF +:1015C0007091EC002091ED005091F00003C0242FA9 +:1015D000762F50E021FD02C09F5FECCF3091EB00F1 +:1015E0003E7F3093EB003091ED003D7F3093ED0076 +:1015F0003091EB0031603093EB007093EC0020935E +:10160000ED005093F0002091EE0027FDE5CF80E043 +:1016100008958F708093E90081E008958091E5013D +:1016200087FF11C08091E80082FD05C08091E40130 +:101630008111F8CF11C08091E8008B770BC08091A9 +:10164000E401882349F08091E80080FFF8CF809181 +:10165000E8008E778093E80008952091E4003091AF +:10166000E50095E64091EC00842F817040FF23C097 +:101670008091E80080FD1DC08091E401882399F0ED +:10168000853099F08091EB0085FD11C04091E40018 +:101690005091E5002417350729F3915011F09A0174 +:1016A000E1CF84E0089582E0089583E0089581E029 +:1016B000089580E008954091E80042FFDDCF08954D +:1016C0000E94CE0B0E94D60BE0EEF0E0808181609C +:1016D0008083E8EDF0E080818F77808319BCA7EDEF +:1016E000B0E08C918E7F8C9380818F7E808310926E +:1016F000E30108950F931F93CF93DF930E94CE0BC6 +:101700000E94D60BC8EDD0E088818F7788838881CE +:101710008068888388818F7D888319BC1092E4015A +:101720001092E0011092E2011092E10100EE10E04F +:10173000F80180818B7F808388818160888342E08B +:1017400060E080E00E94D90AE1EEF0E080818E7FC7 +:101750008083E2EEF0E08081816080838081886018 +:101760008083F80180818E7F808388818061888377 +:10177000DF91CF911F910F910895E8EDF0E0808106 +:101780008F7E8083E7EDF0E080818160808384E05C +:1017900082BF81E08093E3010C947A0BE8EDF0E0E6 +:1017A00080818E7F80831092E20008951092DA008B +:1017B0001092E10008951F920F920FB60F9211241C +:1017C0002F933F934F935F936F937F938F939F9349 +:1017D000AF93BF93EF93FF938091E10082FF0BC023 +:1017E0008091E20082FF07C08091E1008B7F8093AF +:1017F000E1000E94470E8091DA0080FF1FC08091B7 +:10180000D80080FF1BC08091DA008E7F8093DA00C1 +:101810008091D90080FF0DC080E189BD82E189BD42 +:1018200009B400FEFDCF81E08093E4010E944008EE +:1018300005C019BC1092E4010E944E088091E1009D +:1018400080FF19C08091E20080FF15C08091E20006 +:101850008E7F8093E2008091E20080618093E200BD +:101860008091D80080628093D80019BC85E0809375 +:10187000E4010E9452088091E10084FF30C0809111 +:10188000E20084FF2CC080E189BD82E189BD09B4FA +:1018900000FEFDCF8091D8008F7D8093D80080918D +:1018A000E1008F7E8093E1008091E2008F7E809343 +:1018B000E2008091E20081608093E2008091E0018B +:1018C000882311F084E007C08091E30087FD02C007 +:1018D00081E001C083E08093E4010E94540880917C +:1018E000E10083FF29C08091E20083FF25C0809141 +:1018F000E100877F8093E10082E08093E401109211 +:10190000E0018091E1008E7F8093E1008091E20010 +:101910008E7F8093E2008091E20080618093E200FC +:1019200042E060E080E00E94D90A8091F000886087 +:101930008093F0000E945108FF91EF91BF91AF9109 +:101940009F918F917F916F915F914F913F912F91D7 +:101950000F900FBE0F901F9018951F920F920FB609 +:101960000F9211242F933F934F935F936F937F9325 +:101970008F939F93AF93BF93CF93DF93EF93FF9397 +:10198000C091E900CF708091EC00D82FD17080FD1C +:10199000D0E81092E9008091F000877F8093F000FA +:1019A00078940E94F10C1092E9008091F000886018 +:1019B0008093F000CD2BCF70C093E900FF91EF91A1 +:1019C000DF91CF91BF91AF919F918F917F916F9157 +:1019D0005F914F913F912F910F900FBE0F901F90ED +:1019E00018951F93CF93DF93CDB7DEB7AA970FB6A5 +:1019F000F894DEBF0FBECDBFE5EEF1E08091F100BF +:101A0000819321E0ED3EF207C9F70E9470088091B2 +:101A1000E80083FF24C18091E5019091E601492F00 +:101A200050E04A30510508F01AC1FA01EA5AFF4F56 +:101A30000C94A522803881F0823809F010C1809181 +:101A4000E9018F708093E9008091EB0085FB882786 +:101A500080F91092E90006C08091E1019091E201C5 +:101A6000911182609091E800977F9093E8008093B5 +:101A7000F1001092F100C8C0282F2D7F09F0EFC0AF +:101A8000882319F0823061F0EAC08091E70181304B +:101A900009F0E5C0933009F080E08093E2012BC0AB +:101AA0008091E701811127C08091E9018F7009F4CD +:101AB000D6C08093E9002091EB0020FF1CC093303A +:101AC00021F48091EB00806214C09091EB00906152 +:101AD0009093EB0021E030E0A90102C0440F551FB4 +:101AE0008A95E2F74093EA001092EA008091EB00B9 +:101AF00088608093EB001092E9008091E800877F76 +:101B000086C08111ACC01091E7011F778091E3007E +:101B10008078812B8093E3008091E800877F809319 +:101B2000E8000E940E0B8091E80080FFFCCF8091BE +:101B3000E30080688093E300111102C082E001C0DD +:101B400083E08093E4018BC08058823008F087C026 +:101B50008091E7019091E8018C3D53E0950779F57C +:101B600083E08A838AE289834FB7F894DE01139673 +:101B700020E03EE051E2E32FF0E050935700E49183 +:101B800020FF03C0E295EF703F5FEF708E2F90E073 +:101B9000EA3010F0C79601C0C0968D939D932F5FD9 +:101BA000243149F74FBF8091E800877F8093E80098 +:101BB0006AE270E0CE0101960E941A0A14C0AE01DA +:101BC0004F5F5F4F6091E9010E946309BC01892B5F +:101BD00009F445C09091E800977F9093E8008981CF +:101BE0009A810E94780A8091E8008B778093E800C0 +:101BF00036C08038A1F58091E800877F8093E800A7 +:101C00008091E0018093F1008091E8008E778093CD +:101C1000E8000E940E0B23C0811121C08091E701D2 +:101C20009091E80199270297D4F48091E800877F8A +:101C30008093E8008091E7018093E0010E940E0B01 +:101C40008091E001811106C08091E30087FD02C010 +:101C500081E001C084E08093E4010E945C088091EF +:101C6000E80083FF0AC08091E800877F8093E80046 +:101C70008091EB0080628093EB00AA960FB6F894F7 +:101C8000DEBF0FBECDBFDF91CF911F9108950895A4 +:101C9000CF938091E4018823A1F0C091E900CF7037 +:101CA0009091EC00892F817090FD80E8C82B1092F4 +:101CB000E9008091E80083FD0E94F10CCF70C09391 +:101CC000E900CF9108959093690180936801089588 +:101CD000E0916801F0916901309721F00190F08165 +:101CE000E02D099480E00895E0916801F091690188 +:101CF000309721F00280F381E02D09940895E0915E +:101D00006801F0916901309721F00480F581E02DA0 +:101D100009940895209166013091670128173907C9 +:101D200071F09093670180936601E0916801F091F2 +:101D30006901309721F00680F781E02D099408951C +:101D400020916401309165012817390771F0909353 +:101D5000650180936401E0916801F0916901309719 +:101D600021F00084F185E02D0994089508950C94E4 +:101D7000B60E0E94741A0E941D040C943A1BCF9256 +:101D8000DF92EF92FF920F931F93CF93DF93CDB724 +:101D9000DEB72B970FB6F894DEBF0FBECDBF0E9403 +:101DA0003A048BE6C82E81E0D82E00E010E0E02E49 +:101DB000802F0E943405F60141916F01F82EF42620 +:101DC000B1F40F5F1F4F0E30110589F78FEF898334 +:101DD0008A831B820E947D1A8160782F9D838C8369 +:101DE00049815A816B818D810E94620F40C0909120 +:101DF000CC0191FF04C08B870E943A058B8520E0BF +:101E000030E04F2D50E0922FBA01022E02C075959E +:101E100067950A94E2F760FF24C02E83EF8221E0E9 +:101E200030E0690102C0CC0CDD1C9A95E2F790E02D +:101E30008C219D21892B09F420E028870E947D1A9E +:101E40008160782F9A8789874E815F8168858A852E +:101E50000E94620FF801E559FE4F8081C826C082BA +:101E600006C02F5F3F4F2630310569F6AACF0E948A +:101E7000211E0E94680E90916A018917A1F00E94AC +:101E8000680E80936A012B960FB6F894DEBF0FBEE2 +:101E9000CDBFDF91CF911F910F91FF90EF90DF9019 +:101EA000CF900C945E072B960FB6F894DEBF0FBE52 +:101EB000CDBFDF91CF911F910F91FF90EF90DF90F9 +:101EC000CF900895CF93DF93CDB7DEB72B970FB6A2 +:101ED000F894DEBF0FBECDBF4F83588769877A87DE +:101EE0008B87DE01119686E0FD0111928A95E9F754 +:101EF00085E0FE01379601900D928A95E1F74981C0 +:101F00005A816B817C818D819E810E9465162B9602 +:101F10000FB6F894DEBF0FBECDBFDF91CF9108950D +:101F2000CF93C82F882309F4C1C0823859F40E9486 +:101F3000680E81FDBBC089E30E9402190E94BA1994 +:101F400089E30CC0833879F40E94680E80FDAEC02E +:101F500083E50E9402190E94BA1983E50E94411983 +:101F6000CF910C94BA19843859F40E94680E82FDFE +:101F70009DC087E40E9402190E94BA1987E4EECF3F +:101F80008CEF8C0F813A48F48C2F0E9461208111D4 +:101F90008DC08C2F0E940219E3CF80E28C0F883015 +:101FA00048F4C77081E001C0880FCA95EAF70E9423 +:101FB0008319D6CF8BE58C0F833078F4C53A29F09E +:101FC000C63A31F083E890E005C081E890E002C0B5 +:101FD00082E890E0CF910C948A0E88E58C0F8331D3 +:101FE00008F064C0C83A39F1C93A41F1CA3A49F136 +:101FF000CB3A51F1CC3A59F1CD3A61F1C03B69F19C +:10200000CE3A71F1CF3A79F1C13B81F1C23B89F10E +:10201000C33B91F1C43B99F1C53BA1F1C63BA9F18A +:10202000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1EA +:1020300080E090E038C082EE90E035C089EE90E01C +:1020400032C08AEE90E02FC085EB90E02CC086EB8A +:1020500090E029C087EB90E026C08CEC90E023C094 +:102060008DEC90E020C083E891E01DC08AE891E00B +:102070001AC082E991E017C084E991E014C081E2BE +:1020800092E011C083E292E00EC084E292E00BC0C5 +:1020900085E292E008C086E292E005C087E292E025 +:1020A00002C08AE292E0CF910C94A00ECF910895E5 +:1020B000882309F44BC0823859F40E94680E81FFCE +:1020C00045C089E30E9402190E94BA1989E30CC035 +:1020D000833871F40E94680E80FF38C083E50E9447 +:1020E00002190E94BA1983E50E9441190C94BA1989 +:1020F000843859F40E94680E82FF28C087E40E9449 +:1021000002190E94BA1987E4EFCF9CEF980F913A19 +:1021100058F390E2980F983050F4877091E001C026 +:10212000990F8A95EAF7892F0E948919DFCF9BE5DD +:10213000980F933020F480E090E00C948A0E885A37 +:10214000833120F480E090E00C94A00E0895882361 +:1021500021F00E9483190C94BA190895882321F064 +:102160000E9489190C94BA190895BF92CF92DF92F8 +:10217000EF92FF920F931F93CF93DF9300D000D085 +:1021800000D0CDB7DEB77C0185E0F701DE01119606 +:1021900001900D928A95E1F7F70183819481892B53 +:1021A00009F4DDC2908181818F3F19F49F3F09F4CA +:1021B000D6C2F7010281258122952F7099838A83E7 +:1021C00089819A812E830E94C118182FB92E0E94EE +:1021D000C0180E948717EB2DE295EF704E2F50E04C +:1021E000FA01E05AFF4F2E810C94A5228B2D807F9F +:1021F0009B2D9F70F92E882319F0F29480EFF8221E +:10220000002349F0FF2009F457C28F2D0E94931933 +:102210000E94BA1951C2812F0E945810FF2009F460 +:102220009EC28F2D0E94991926960FB6F894DEBF94 +:102230000FBECDBFDF91CF911F910F91FF90EF9017 +:10224000DF90CF90BF900C94BA193B2D307F8B2D2F +:102250008F70303211F08295807F112319F0113088 +:1022600021F12CC00023B9F0222309F490C12130C0 +:1022700009F08DC126960FB6F894DEBF0FBECDBF14 +:10228000DF91CF911F910F91FF90EF90DF90CF9052 +:10229000BF900C94A319222319F0213009F45FC2D6 +:1022A0008E830E94A6198E8186C1002321F02230E0 +:1022B00008F055C26CC1211152C27DC1002321F02A +:1022C000222309F464C1F8C1222309F474C109C2AC +:1022D0008B2D86958695837019F08130D1F03FC2A1 +:1022E000002321F0812F9B2D937002C080E090E0AD +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:102310008A0E002321F0812F9B2D937002C080E054 +:1023200090E026960FB6F894DEBF0FBECDBFDF91CA +:10233000CF911F910F91FF90EF90DF90CF90BF90C2 +:102340000C94A00E812F002319F00E94291D02C0B9 +:102350000E94911D26960FB6F894DEBF0FBECDBF2A +:10236000DF91CF911F910F91FF90EF90DF90CF9071 +:10237000BF900C94161E8B2D837009F075C001114F +:10238000EEC1812F829586958770880F880F912FD7 +:102390009F70C92ED12CE12CF12C082E04C0CC0C3E +:1023A000DD1CEE1CFF1C0A94D2F714FF12C00FE0D4 +:1023B00010E020E030E004C0000F111F221F331F87 +:1023C0008A95D2F7C901B80160957095809590956E +:1023D00003C060E070E0CB014B2D469546954370FD +:1023E0004230C1F060F56C297D298E299F2941304A +:1023F00051F126960FB6F894DEBF0FBECDBFDF9128 +:10240000CF911F910F91FF90EF90DF90CF90BF90F1 +:102410000C94AE176C297D298E299F2926960FB61C +:10242000F894DEBF0FBECDBFDF91CF911F910F910A +:10243000FF90EF90DF90CF90BF900C94CA170E944E +:10244000AE17C701B60126960FB6F894DEBF0FBED1 +:10245000CDBFDF91CF911F910F91FF90EF90DF9053 +:10246000CF90BF900C949217002319F08B2D8170A0 +:1024700001C08695882309F472C1812F82958695C3 +:102480008770880F880F912F9F70C92ED12CE12C57 +:10249000F12C082E04C0CC0CDD1CEE1CFF1C0A9491 +:1024A000D2F714FF12C00FE010E020E030E004C0CB +:1024B000000F111F221F331F8A95D2F7C901B801DF +:1024C000609570958095909503C060E070E0CB01B9 +:1024D0004B2D4695469543704230C1F060F56C290E +:1024E0007D298E299F29413051F126960FB6F89407 +:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 +:10250000EF90DF90CF90BF900C9488186C297D29B4 +:102510008E299F2926960FB6F894DEBF0FBECDBF39 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C94A4180E948818C701B601269673 +:102540000FB6F894DEBF0FBECDBFDF91CF911F91C4 +:102550000F91FF90EF90DF90CF90BF900C946C188C +:10256000103FD1F118F4103E50F4A1C0123F09F40D +:1025700063C008F44CC0133F09F473C098C01F70C7 +:102580008B2D8F710023A1F00E940518812F2696B4 +:102590000FB6F894DEBF0FBECDBFDF91CF911F9174 +:1025A0000F91FF90EF90DF90CF90BF900C94A71009 +:1025B0000E942618812F26960FB6F894DEBF0FBE14 +:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 +:1025D000CF90BF900C94AE100023A9F02111BFC082 +:1025E0008B2D8F7126960FB6F894DEBF0FBECDBF30 +:1025F000DF91CF911F910F91FF90EF90DF90CF90DF +:10260000BF900C944B18223008F0A9C0E9CF0023EA +:10261000A9F08B2D8F7126960FB6F894DEBF0FBEF2 +:10262000CDBFDF91CF911F910F91FF90EF90DF9081 +:10263000CF90BF900C940518002359F38B2D8F7108 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:102650001F910F91FF90EF90DF90CF90BF900C945F +:102660002618002399F08B2D8F7126960FB6F894BB +:10267000DEBF0FBECDBFDF91CF911F910F91FF90B5 +:10268000EF90DF90CF90BF900C94F01726960FB686 +:10269000F894DEBF0FBECDBFDF91CF911F910F9198 +:1026A000FF90EF90DF90CF90BF900C94E61700233F +:1026B000A9F0222309F4ADCF812F26960FB6F89406 +:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065 +:1026D000EF90DF90CF90BF900C94900F222309F4DD +:1026E000ADCF812F26960FB6F894DEBF0FBECDBFBB +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:10270000BF900C9458104B2D4F70612FC7010E9441 +:10271000AF0226960FB6F894DEBF0FBECDBFDF9195 +:10272000CF911F910F91FF90EF90DF90CF90BF90CE +:102730000C940A174B2D4F70612FC70126960FB6C8 +:10274000F894DEBF0FBECDBFDF91CF911F910F91E7 +:10275000FF90EF90DF90CF90BF900C94FB052696F2 +:102760000FB6F894DEBF0FBECDBFDF91CF911F91A2 +:102770000F91FF90EF90DF90CF90BF9008950E944F +:10278000A0190E9475190E94BA190E94C61E0E94C3 +:10279000161E80E090E00E948A0E80E090E00C948B +:1027A000A00E0E9490190C94BF130E94C118292FEB +:1027B00022952F702C3030F42A3048F422502230E9 +:1027C00078F405C02C3041F02F3031F009C0803E44 +:1027D00048F0803F29F406C093FB882780F90895CC +:1027E00080E0089581E00895CF93DF9300D000D07A +:1027F0001F92CDB7DEB70F900F900F900F900F90F4 +:10280000DF91CF910895CF93DF9300D000D000D017 +:10281000CDB7DEB726960FB6F894DEBF0FBECDBF9C +:10282000DF91CF9108951F93CF93DF93C0917901EA +:1028300016E080917A01C81799F0D0E01C9FF00152 +:102840001D9FF00D1124E558FE4F4081518162819A +:102850007381848195810E9403142196C770E9CF0A +:10286000DF91CF911F9108954091AB015091AC0140 +:102870006091AD017091AE018091AF019091B00176 +:102880000C9403148091B00182958F7009F054C0AC +:102890008091AD01882309F44FC080917901A09106 +:1028A0007A014091AE015091AF016091AB017091FE +:1028B000AC01B6E08A1709F43FC090E0411551051C +:1028C000C1F17F3F11F46F3FA1F1B89FF001B99FB3 +:1028D000F00D1124E558FE4F218127132AC02081D5 +:1028E000261327C02281211124C02381348124177B +:1028F000350710F421503109241B350B283C3105D4 +:10290000C0F42091B0012F7020612093B00126E027 +:10291000289FF001299FF00D1124E058FE4F80817F +:102920008F70806180838BEA91E00E94B5100C94D7 +:10293000131401968770BECF0895CF92DF92EF9265 +:10294000FF920F931F93CF93DF93CDB7DEB76297BC +:102950000FB6F894DEBF0FBECDBF8C0185E0F80145 +:10296000DE011D9601900D928A95E1F7D8014C91F8 +:1029700011965C91119712966C918091AE01909195 +:10298000AF01009709F475C13091AB017091AC01B2 +:102990007F3F19F43F3F09F46CC1F801C380D48034 +:1029A000E090AD01EE2009F4BEC02091B001C81640 +:1029B000D90628F0D601A81BB90BCD0104C080951B +:1029C00090958C0D9D1DFF24F394883C910578F023 +:1029D000F12C207F09F0C4C07C2DD98AC88A89894E +:1029E0000E94F4138BEA91E00E94B510AFC0822FD1 +:1029F000807F09F045C0571313C0431311C0611104 +:102A00000FC02F7020612093B0010E9434148BEA14 +:102A100091E00E94B5108091B001F80185832EC02D +:102A2000CD2819F15F3F11F44F3FF9F0F62E6111F7 +:102A30001CC08091790120917A0136E0821709F457 +:102A40005BC090E0389FF001399FF00D1124E558EC +:102A5000FE4F7181571306C07081471303C0728106 +:102A6000711103C001968770E9CFF62E662309F431 +:102A70001CC18091B00181608093B001F12C15C11F +:102A8000571309C0431307C0611105C08091B001FD +:102A9000F8018583C8C04D875E878D859E856A8BCA +:102AA0000E94D5136A898823D1F16623C1F1209150 +:102AB000B001822F82958F7090E0029774F0809120 +:102AC000AB019091AC0198878F831986DB86CA860B +:102AD0002C87CE0107960E94B51086E0F801ABEA7C +:102AE000B1E001900D928A95E1F70E9442140E9494 +:102AF0003414FF24F394D9C04D875E878D859E855D +:102B00000E94C118292F22952F70223008F0C1C0D1 +:102B10009F7009F0BBC0805E883008F4C6C0C80151 +:102B20000E94B510E6CFC816D90608F453C0F601C6 +:102B3000E81BF90BCF01883C910508F450C0F12C3B +:102B40007C2DD98AC88A89890E94F413EBEAF1E0C6 +:102B500086E0DF011D928A95E9F70E943414A5C032 +:102B6000571314C0431312C0611110C08091B001FB +:102B7000F8018583C8010E94B51086E0EBEAF1E018 +:102B8000DF011D928A95E9F7FE2C8FC04D875E8785 +:102B90008D859E856A8B0E94D5136A89882309F4E6 +:102BA000BECF662309F4BBCF2091B001822F82955E +:102BB0008F7090E002970CF490CF8091AB019091D0 +:102BC000AC019A8389831B82DD82CC822E83CE0165 +:102BD000019681CF809590958C0D9D1DACCFF62EE2 +:102BE000662309F49CCF571333C0431331C020919F +:102BF000B00120FD24C0822F82958F70482F50E0B5 +:102C000041155105E1F0D80115962C9315974F30D9 +:102C1000510549F08F5F982F9295907F822F8F708A +:102C2000892B15968C93C8010E94B51086E0F80197 +:102C3000ABEAB1E001900D928A95E1F78ECF86E084 +:102C4000F801ABEAB1E001900D928A95E1F72DC051 +:102C50004D875E878D859E850E94D51381113DCF5E +:102C60008091B00181608093B001C8010E94B510CD +:102C70001CC0662309F453CF4D875E878D859E85E2 +:102C80000E94D513882309F44ACF27CF811143CF5F +:102C90000CC0243008F043CF9F7009F43CCFD8011A +:102CA00015969C91907F09F036CF8F2D62960FB6C6 +:102CB000F894DEBF0FBECDBFDF91CF911F910F9172 +:102CC000FF90EF90DF90CF9008951F93CF93DF9305 +:102CD000CDB7DEB72C970FB6F894DEBF0FBECDBFD1 +:102CE0004F83588769877A878B879C87CE010796A1 +:102CF0000E949D14882371F08A859B85892B09F495 +:102D000041C088858F3F09F065C08F818F3F09F0F2 +:102D100061C038C086E0FE013796DE011196019051 +:102D20000D928A95E1F76A857B856115710551F1F0 +:102D3000FF81E885EF3F11F4FF3F21F120917A01F7 +:102D400030E0C9010196877099274091790150E0E0 +:102D50008417950709F447C0F983EA837D836C8360 +:102D600096E0929FD001939FB00D1124A558BE4FBD +:102D7000FE01319601900D929A95E1F780937A01C8 +:102D80000E94131416E08091790190917A018917BD +:102D9000B9F1189FC001112485589E4F0E949D14BF +:102DA000882371F1E09179011E9FF0011124E5580B +:102DB000FE4F4081518162817381848195810E949F +:102DC00003148091790190E0019687709927809390 +:102DD0007901D9CF4F81588569857A858B859C8506 +:102DE0000E940314CFCF0E94D11310927A01109247 +:102DF0007901EBEAF1E086E0DF011D928A95E9F7BF +:102E00002C960FB6F894DEBF0FBECDBFDF91CF91E9 +:102E10001F910895EF92FF920F931F93CF93DF932B +:102E20008C01892B09F46CC0F12CEE24E394E801A9 +:102E30002196F8018491843740F4843008F051C021 +:102E4000813081F0823019F15BC0853709F444C0CC +:102E5000A8F19CE7980F903708F052C08F770E9436 +:102E6000581041C00E5F1F4FFE01849190E2980FF1 +:102E7000983050F48770FE2D01C0FF0F8A95EAF755 +:102E80008F2F0E94931914C00E94900F2DC00E5FC7 +:102E90001F4FFE01849190E2980F983060F4877084 +:102EA000FE2D01C0FF0F8A95EAF78F2F0E94991916 +:102EB0000E94BA1919C00E94581016C00E5F1F4F09 +:102EC000FE01C491CC2381F08FE99FE00197F1F7D7 +:102ED00000C00000C150F6CF0E5F1F4FFE01F490FE +:102EE00003C00E94900F8E018F2D882309F49FCF7D +:102EF000EFE9FFE03197F1F700C000008150F5CF16 +:102F0000DF91CF911F910F91FF90EF900895089559 +:102F10006093B5017093B6018093B7019093B801A7 +:102F20000C94BF130F931F930091B5011091B6013C +:102F30002091B7013091B801DC01CB01802B912B9E +:102F4000A22BB32B8093B5019093B601A093B70148 +:102F5000B093B8011F910F910C94BF130F931F935F +:102F60000091B5011091B6012091B7013091B801DF +:102F7000DC01CB0180239123A223B3238093B501ED +:102F80009093B601A093B701B093B8011F910F9130 +:102F90000C94BF130F931F930091B5011091B601CC +:102FA0002091B7013091B801DC01CB018027912736 +:102FB000A227B3278093B5019093B601A093B701E0 +:102FC000B093B8011F910F910C94BF131092B101EF +:102FD0001092B2011092B3011092B4010C94BF137D +:102FE00041E050E060E070E004C0440F551F661FF0 +:102FF000771F8A95D2F74093B1015093B201609345 +:10300000B3017093B4010C94BF1341E050E060E051 +:1030100070E004C0440F551F661F771F8A95D2F7D2 +:103020008091B1019091B201A091B301B091B4012E +:10303000482B592B6A2B7B2B4093B1015093B20143 +:103040006093B3017093B4010C94BF1341E050E05E +:1030500060E070E004C0440F551F661F771F8A951B +:10306000D2F740955095609570958091B1019091FF +:10307000B201A091B301B091B401482359236A234E +:103080007B234093B1015093B2016093B3017093DD +:10309000B4010C94BF1341E050E060E070E004C064 +:1030A000440F551F661F771F8A95D2F78091B10193 +:1030B0009091B201A091B301B091B4014827592772 +:1030C0006A277B274093B1015093B2016093B3010B +:1030D0007093B4010C94BF130F931F930091B1012F +:1030E0001091B2012091B3013091B401DC01CB0108 +:1030F000802B912BA22BB32B8093B1019093B20123 +:10310000A093B301B093B4011F910F910C94BF131E +:103110000F931F930091B1011091B2012091B3015F +:103120003091B401DC01CB0180239123A223B3238E +:103130008093B1019093B201A093B301B093B40115 +:103140001F910F910C94BF130F931F930091B10126 +:103150001091B2012091B3013091B401DC01CB0197 +:1031600080279127A227B3278093B1019093B201C2 +:10317000A093B301B093B4011F910F910C94BF13AE +:103180000895CF92DF92EF92FF920F931F93CF9308 +:10319000DF938C01C090B101D090B201E090B301F7 +:1031A000F090B4018091B5019091B601A091B70162 +:1031B000B091B801C82AD92AEA2AFB2ACFE1D0E087 +:1031C000D701C6010C2E04C0B695A7959795879593 +:1031D0000A94D2F780FF07C0B8018C2F0E941F0607 +:1031E0008130910531F4219758F7B80180E00E94B1 +:1031F0001F06DF91CF911F910F91FF90EF90DF900D +:10320000CF90089590910C019923F1F090910D01C8 +:103210009923D1F0982F9695969596959F3080F5A5 +:10322000E0910E01F0910F01E90FF11D877021E08F +:1032300030E0A90102C0440F551F8A95E2F7CA0188 +:103240009181892B8183089520910E0130910F0186 +:10325000F90132969FEF40E05191851789F09F3F29 +:1032600019F4511101C0942F4F5F4E30A9F79F3FC1 +:1032700039F0F901E90FF11D97FDFA958283089560 +:10328000089590910C019923F9F090910D019923E3 +:10329000D9F0982F9695969596959F3028F5E091C0 +:1032A0000E01F0910F01E90FF11D877021E030E070 +:1032B000A90102C0440F551F8A95E2F7CA01809503 +:1032C000918189238183089520910E0130910F010E +:1032D000F9013296205F3F4F9081891301C010821F +:1032E0003196E217F307C1F7089581E090E0E0918D +:1032F0000E01F0910F01E80FF91F10820196803145 +:103300009105A9F708959091CB01892B8093CB016A +:10331000089580959091CB0189238093CB010895E6 +:103320001092CB0108959091CA01892B8093CA0114 +:10333000089580959091CA0189238093CA010895C8 +:103340001092CA0108958093B90108951092B901AD +:10335000089580910E0190910F01FC0131969C011E +:10336000205F3F4F80E0919191118F5FE217F3074B +:10337000D1F70895E0910E01F0910F018091CB01FA +:103380008083E0910E01F0910F0190818091CA013C +:10339000892B80838091B901882361F0E0910E012F +:1033A000F0910F019081892B80830E94A9198111CE +:1033B0001092B90180910E0190910F010C94740E3E +:1033C000CF92DF92EF92FF926C01EE24FF24C114A2 +:1033D000D104E104F10421F0C701B60120E101C0EC +:1033E00020E0C72ED82EE92EFF24C114D104E10419 +:1033F000F10419F0285FC701B6016B017C0154E0AC +:10340000F694E794D794C7945A95D1F7C114D10490 +:10341000E104F10419F02C5FC701B6016B017C01D6 +:1034200042E0F694E794D794C7944A95D1F7C11433 +:10343000D104E104F10419F02E5FC701B601DC01EB +:10344000CB01B695A79597958795892B8A2B8B2BC2 +:1034500009F02F5F822FFF90EF90DF90CF900895BB +:103460008091E401843011F120E488E190E00FB60E +:10347000F894A895809360000FBE2093600083B7F6 +:10348000817F846083BF83B7816083BF7894889590 +:1034900083B78E7F83BF0FB6F894A89580916000A4 +:1034A000886180936000109260000FBE08950895B7 +:1034B0000C94571ACF930E94581A0E943A040E9403 +:1034C000571AC0E08C2F0E943405811104C0CF5FD1 +:1034D000CE30C1F701C081E0CF9108950E94D11391 +:1034E0000E94680E0C945E0782E084BD93E095BD57 +:1034F0009AEF97BD80936E0008952FB7F89480914E +:10350000CD019091CE01A091CF01B091D0012FBFFC +:103510000895CF92DF92EF92FF920F931F932FB7F0 +:10352000F8944091CD015091CE016091CF017091FE +:10353000D0012FBF6A017B01EE24FF248C0120E023 +:1035400030E0C016D106E206F30610F441505109EE +:103550009A01281B390BC9011F910F91FF90EF9021 +:10356000DF90CF9008951F920F920FB60F92112403 +:103570008F939F93AF93BF938091CD019091CE0194 +:10358000A091CF01B091D0010196A11DB11D8093F2 +:10359000CD019093CE01A093CF01B093D001BF9104 +:1035A000AF919F918F910F900FBE0F901F90189524 +:1035B0000E94600BF8942FEF87EA91E6215080403B +:1035C0009040E1F700C0000087E090EBDC018093C1 +:1035D000ED019093EE01A093EF01B093F0019CE018 +:1035E00088E10FB6F894A895809360000FBE909381 +:1035F0006000FFCFEF92FF920F931F93CF93DF9363 +:10360000D82FC0E08C2F0E94340500E010E0E82E97 +:10361000F12CC701002E02C0959587950A94E2F718 +:1036200080FD06C00F5F1F4F0630110591F709C0DE +:10363000602F7C2F80E00E94FC058D13F3CF81E08A +:1036400004C0CF5FCE30F1F680E0DF91CF911F91C3 +:103650000F91FF90EF900895CF93C82F8CE20E94B6 +:10366000FA1A882321F08C2FCF910C94FA1A80E05B +:10367000CF910895CF930E94811C811102C00E94B6 +:10368000671CC5E6C15049F00E943A048FE39CE9EB +:103690000197F1F700C00000F5CF89E20E942C1BD2 +:1036A000811113C18AE20E942C1B81110E94671CA8 +:1036B00085E00E942C1B81110E94D81A0E948C1C4C +:1036C0008093CC0187E00E942C1B8823A9F18BE119 +:1036D0000E942C1B882351F08091CC0181FB222772 +:1036E00020F991E0922790FB81F90EC08EE00E94B4 +:1036F0002C1B882361F08091CC0182FB222720F9CA +:1037000091E0922790FB82F98093CC0115C080E173 +:103710000E942C1B9091CC01882341F093FB22271F +:1037200020F981E0822780FB93F904C0892F8095DE +:1037300080FB90F99093CC018091CC010E94901C69 +:103740000E949E1C8093DE0180EE0E942C1B882329 +:1037500041F08091DE01982F909590FB80F9809345 +:10376000DE0189E30E942C1B882359F08091DE0141 +:1037700081FB222720F991E0922790FB81F9809329 +:10378000DE0182EE0E942C1B882359F08091DE011D +:1037900082FB222720F991E0922790FB82F9809307 +:1037A000DE0186EE0E942C1B882359F08091DE01F9 +:1037B00083FB222720F991E0922790FB83F98093E5 +:1037C000DE0183EE0E942C1B882359F08091DE01DC +:1037D00084FB222720F991E0922790FB84F98093C3 +:1037E000DE0185E30E942C1B882359F08091DE01C5 +:1037F00085FB222720F991E0922790FB85F98093A1 +:10380000DE0181E30E942C1B882359F08091DE01A8 +:1038100086FB222720F991E0922790FB86F980937E +:10382000DE0181E10E942C1B882359F08091DE018A +:1038300087FB222720F991E0922790FB87F980935C +:10384000DE018091DE010E94A21C8091DE0187FBD7 +:10385000882780F980930D0187E20E942C1BC82FD6 +:103860008EE10E942C1B8111C2608FE10E942C1BF3 +:103870008111C46080E20E942C1B8111C86081E22A +:103880000E942C1B8111C06182E20E942C1B8111BD +:10389000C06283E20E942C1B8111C06484E20E94FA +:1038A0002C1B882311F0C06802C0CC2329F08C2F78 +:1038B0000E94991C6C2F03C00E94951C682F70E019 +:1038C00080E090E0CF910C948817CF9108956DEE31 +:1038D0007EEF80E090E00E94DB2260E082E090E0FA +:1038E0000E94CD2260E083E090E00E94CD2260E063 +:1038F00084E090E00E94CD2260E085E090E00C94AE +:10390000CD2280E090E00E94C72221E08D3E9E4FB4 +:1039100009F020E0822F089582E090E00C94BF220D +:10392000682F82E090E00C94CD2283E090E00C942C +:10393000BF22682F83E090E00C94CD2284E090E0D9 +:103940000C94BF22682F84E090E00C94CD228091EB +:10395000D30180FF0BC06091130185E0689FB00127 +:10396000112475956795759567952BC081FF09C0E2 +:103970006091130185E0689FB001112475956795EA +:1039800020C082FF07C06091130185E0689FB001ED +:10399000112417C09091D4019923D1F060911201A4 +:1039A000961788F72091130185E0289F9001112434 +:1039B000929FA001939F500D112470E0CA010E94B4 +:1039C00091226038710540F46115710519F406C043 +:1039D00065E070E0862F08958FE7089581E00895EF +:1039E0008091D30180FF08C06091110170E075954E +:1039F00067957595679521C081FF06C0609111019B +:103A000070E07595679519C082FF04C0609111013F +:103A100070E010C09091D401992399F06091100149 +:103A20009617A0F780911101899FC001112470E0C1 +:103A30000E9491226038710540F46115710519F4F6 +:103A400006C061E070E0862F08958FE7089581E059 +:103A50000895803F21F40E94A71C819504C0813FF6 +:103A600029F40E94A71C8093D7010895823F21F476 +:103A70000E94A71C819504C0833F29F40E94A71CC3 +:103A80008093D6010895893F19F40E94F01C05C067 +:103A90008A3F31F40E94F01C81958093D8010895EB +:103AA0008B3F21F40E94F01C819504C08C3F29F4C7 +:103AB0000E94F01C8093D9010895843F21F48091E5 +:103AC000D501816017C0853F21F48091D5018260C6 +:103AD00011C0863F21F48091D50184600BC0873FDF +:103AE00021F48091D501886005C0883F31F4809130 +:103AF000D50180618093D50108958D3F21F4809197 +:103B0000D30181600BC08E3F21F48091D30182608C +:103B100005C08F3F29F48091D30184608093D30145 +:103B20000895803F39F48091D70187FF6CC01092CF +:103B3000D70169C0813F29F48091D7011816BCF3E1 +:103B400062C09091D601823F29F497FF5CC0109229 +:103B5000D60159C0833F19F41916CCF354C0893FDC +:103B600041F48091D80118160CF04DC01092D80184 +:103B70004AC08A3F29F48091D80187FF44C0F6CF1C +:103B80008B3F39F48091D90187FF3DC01092D90154 +:103B90003AC08C3F29F48091D9011816BCF333C088 +:103BA000843F21F48091D5018E7F17C0853F21F499 +:103BB0008091D5018D7F11C0863F21F48091D50180 +:103BC0008B7F0BC0873F21F48091D501877F05C093 +:103BD000883F31F48091D5018F7E8093D50113C049 +:103BE0008D3F21F48091D3018E7F0BC08E3F21F455 +:103BF0008091D3018D7F05C08F3F29F48091D3013F +:103C00008B7F8093D3018091D60181110EC080916A +:103C1000D70181110AC08091D801811106C080911D +:103C2000D901811102C01092D401089585ED91E06F +:103C30000E947F0E0E947D1A9093D2018093D10141 +:103C400008951F93CF93DF938091D1019091D2017A +:103C50000E94891AAC019091D401992321F02091FE +:103C6000140130E006C0209115018AE0289F9001E0 +:103C700011244217530708F485C08091D601C091E2 +:103C8000D701D091D8011091D901811107C0C1117C +:103C900075C0D11173C0111171C074C09F3F19F06C +:103CA0009F5F9093D401181624F40E94A71C809360 +:103CB000D6018091D60187FF05C00E94A71C81957F +:103CC0008093D6011C1624F40E94A71C8093D70170 +:103CD0008091D70187FF05C00E94A71C8195809322 +:103CE000D7016091D601662331F1C091D701CC2371 +:103CF00011F1062E000C770B880B990B0E9498216E +:103D000023E333E343E35FE30E94FC210E9460214D +:103D10006093D6016C2FCC0F770B880B990B0E9408 +:103D2000982123E333E343E35FE30E94FC210E94F5 +:103D300060216093D7011D1624F40E94F01C80932B +:103D4000D8018091D80187FF05C00E94F01C8195A1 +:103D50008093D801111624F40E94F01C8093D9019D +:103D60008091D90187FF05C00E94F01C8195809346 +:103D7000D901DF91CF911F910C94161E9F3F09F03E +:103D80008FCFA0CFDF91CF911F910895E5EDF1E0A6 +:103D900085E0DF011D928A95E9F71092D401109217 +:103DA000D3010895833081F128F4813059F08230B5 +:103DB000D1F00895853009F449C0B8F1863009F48E +:103DC00056C0089580911501262F30E0280F311D2F +:103DD0002F3F310524F4680F6093150108958FEF8C +:103DE00080931501089580911401262F30E0280F4B +:103DF000311D2F3F310524F4680F6093140108959D +:103E00008FEF80931401089580911301262F30E0E5 +:103E1000280F311D2F3F310524F4680F60931301E3 +:103E200008958FEF80931301089580911201262F3A +:103E300030E0280F311D2F3F310524F4680F6093C7 +:103E4000120108958FEF809312010895809111015E +:103E5000262F30E0280F311D2F3F310524F4680F45 +:103E60006093110108958FEF80931101089580915F +:103E70001001262F30E0280F311D2F3F310524F48B +:103E8000680F6093100108958FEF809310010895DB +:103E9000833011F128F4813049F0823091F0089597 +:103EA000853081F120F18630C1F1089580911501AE +:103EB000681720F4861B8093150108951092150150 +:103EC000089580911401681720F4861B80931401D3 +:103ED000089510921401089580911301681720F439 +:103EE000861B809313010895109213010895809109 +:103EF0001201681720F4861B809312010895109216 +:103F00001201089580911101681720F4861B809397 +:103F10001101089510921101089580911001681700 +:103F200020F4861B809310010895109210010895CB +:103F30000F931F938D3109F46BC008F03FC08E3092 +:103F400009F47DC0C0F4873009F46EC068F486308F +:103F500009F0AFC08091CC01817F8E7F8093CC012E +:103F600081E08093DB01A6C0883009F458C08B3013 +:103F700009F49BC09EC0863109F497C078F4803163 +:103F800009F470C0813109F094C00E94D11390915E +:103F90000D0181E0892780930D0187C0893109F4E3 +:103FA00084C08B3109F085C08091CC0181FB222730 +:103FB00020F991E0922790FB81F94AC0853309F4FA +:103FC0005BC048F4873209F457C008F45AC08932FC +:103FD00009F452C06EC0833438F48A3308F067C0E5 +:103FE000883309F462C065C0833409F445C088345D +:103FF00009F05FC00E94D1130FEF13ED20E30150D1 +:1040000010402040E1F700C000000E94D81A4DC0C7 +:104010000E941A210E94680E0E945E0746C00E94FC +:104020008C1C0E949E1C41C09091CC01892F8170F4 +:1040300090FF12C0917F9E7F9093CC013BC08091F6 +:10404000CC0182FB222720F991E0922790FB82F994 +:104050008093CC01992349F18091CC0181608093B8 +:10406000CC0123C08091CC0183FB222720F991E071 +:10407000922790FB83F9ECCF61E070E080E090E064 +:1040800010C08D5141E050E060E070E08A019B017A +:1040900004C0000F111F221F331F8A95D2F7C901D8 +:1040A000B8010E9488170E94D11381E003C0895390 +:1040B000E9CF80E01F910F91089580E008950C945E +:1040C0005D20CF93C82F8091DB01813079F018F00B +:1040D0008230E9F187C0E0910E01F0910F018081FB +:1040E000813169F0823209F07FC009C0E0910E0190 +:1040F000F0910F018081813111F0823261F48C2FB7 +:104100000E945F20811104C08C2F0E94981F1DC047 +:1041100081E090E01AC08C2F0E945D20811114C0B4 +:10412000C43179F048F4CB3079F0C03109F060C087 +:1041300082E08093DB0108C0C93219F0C83321F056 +:1041400057C01092DB0154C081E0817053C0C93266 +:1041500089F118F5C43171F1A8F4C73009F046C0EF +:104160008AE08093150194E19093140193E0909379 +:1041700013018093120188E08093110188E28093FB +:10418000100134C0CE51C63088F5EC2FF0E0E65D6A +:10419000FE4F80818093DA0129C0CE34E9F020F40B +:1041A000CB3421F56AE013C0C13579F0C235F1F4A2 +:1041B00061E00DC08091DA01882319F01092DA01D4 +:1041C00015C081E08093DB0115C061E006C08091DD +:1041D000DA010E94D21E0AC06AE08091DA010E94D0 +:1041E000481F04C01092DB0180E004C081E002C0DF +:1041F00080E0ABCFCF910895E1E8F0E08081886066 +:1042000080838081816080838FB7F89493E090935E +:10421000890090ED909388008FBF0895EFE6F0E05D +:104220008081826080830895EFE6F0E080818D7F59 +:1042300080830895EFE6F0E0908182E08927808313 +:1042400008951F920F920FB60F9211242F933F9350 +:104250004F935F936F937F938F939F93AF93BF938E +:10426000EF93FF938091DC019091DD010196909393 +:10427000DD018093DC01811103C082E00E945E07B2 +:10428000E091DD01E695E695F0E0E457FB4FE4911F +:104290008091DC018E1303C080E00E945E07FF91D5 +:1042A000EF91BF91AF919F918F917F916F915F91AE +:1042B0004F913F912F910F900FBE0F901F90189527 +:1042C0000E9467216894B1110C94F62108950E9410 +:1042D000DB2188F09F5798F0B92F9927B751B0F09C +:1042E000E1F0660F771F881F991F1AF0BA95C9F77A +:1042F00014C0B13091F00E94F521B1E008950C9402 +:10430000F521672F782F8827B85F39F0B93FCCF3B4 +:10431000869577956795B395D9F73EF490958095F6 +:10432000709561957F4F8F4F9F4F0895E89409C016 +:1043300097FB3EF490958095709561957F4F8F4FD8 +:104340009F4F9923A9F0F92F96E9BB279395F695EE +:10435000879577956795B795F111F8CFFAF4BB0F6C +:1043600011F460FF1BC06F5F7F4F8F4F9F4F16C0D0 +:10437000882311F096E911C0772321F09EE8872F5A +:10438000762F05C0662371F096E8862F70E060E016 +:104390002AF09A95660F771F881FDAF7880F96958F +:1043A000879597F9089557FD9058440F551F59F078 +:1043B0005F3F71F04795880F97FB991F61F09F3F12 +:1043C00079F087950895121613061406551FF2CF3B +:1043D0004695F1DF08C0161617061806991FF1CF8B +:1043E00086957105610508940895E894BB276627B2 +:1043F0007727CB0197F908950E940F220C94802211 +:104400000E94722238F00E94792220F0952311F048 +:104410000C9469220C946F2211240C94F6210E94B2 +:10442000D32170F3959FC1F3950F50E0551F629F04 +:10443000F001729FBB27F00DB11D639FAA27F00DFD +:10444000B11DAA1F649F6627B00DA11D661F829F24 +:104450002227B00DA11D621F739FB00DA11D621F09 +:10446000839FA00D611D221F749F3327A00D611D26 +:10447000231F849F600D211D822F762F6A2F112408 +:104480009F5750409AF0F1F088234AF0EE0FFF1F3B +:10449000BB1F661F771F881F91505040A9F79E3F92 +:1044A000510580F00C9469220C94F6215F3FE4F3EF +:1044B000983ED4F3869577956795B795F795E795E8 +:1044C0009F5FC1F7FE2B880F911D9695879597F9F1 +:1044D000089597F99F6780E870E060E008959FEF86 +:1044E00080EC089500240A9416161706180609068B +:1044F000089500240A94121613061406050608955A +:10450000092E0394000C11F4882352F0BB0F40F4E1 +:10451000BF2B11F460FF04C06F5F7F4F8F4F9F4F21 +:10452000089597FB072E16F4009407D077FD09D065 +:104530000E94AB2207FC05D03EF4909581959F4FD9 +:104540000895709561957F4F0895EE0FFF1F0590B8 +:10455000F491E02D0994AA1BBB1B51E107C0AA1FCF +:10456000BB1FA617B70710F0A61BB70B881F991F14 +:104570005A95A9F780959095BC01CD010895F999B8 +:10458000FECF92BD81BDF89A992780B50895A8E124 +:10459000B0E042E050E00C94E222262FF999FECFE1 +:1045A0001FBA92BD81BD20BD0FB6F894FA9AF99A50 +:1045B0000FBE019608950E94CD22272F0C94CE2283 +:1045C000DC01CB01FC01F999FECF06C0F2BDE1BDD3 +:1045D000F89A319600B40D9241505040B8F70895C2 +:0445E000F894FFCF7D +:1045E40020025F07EF07CA07960762070101BA01B5 +:1045F40028080A03140A3F4D36394D040004CA033F +:10460400910324033D0356036F03010203040506CB +:04461400070809008A +:00000001FF -- cgit v1.2.3 From 4687162470673014cde3af4d3b72712c9a650955 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 21 Mar 2016 21:43:59 -0700 Subject: Added Readme --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 111 +++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/alexjj/readme.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md new file mode 100644 index 000000000..07d149c9a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -0,0 +1,111 @@ +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. 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 +------- + +*todo* insert picture + +### 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 | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | +L1 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Enter| ~L2 |------| |------| ~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! ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' +``` + +### Media Layer + +Not touched this, not used either. + +``` + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | | | | | | | | | | | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | MsUp | | | | | | | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | | | | Prev | Next | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' +``` + +Changelog +----------- + +### [0.0.1] - 2016-03-21 + +First version + + +Issues +------- + +Space for feedback and notes for future improvements: + + -- cgit v1.2.3 From d1f446962a218f757ec60744ab832871979f0c6a Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 07:34:07 -0700 Subject: Added real life layout --- keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg | Bin 0 -> 1363082 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg new file mode 100644 index 000000000..ca67b3007 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg differ -- cgit v1.2.3 From c1a520fb81b01799f1672b88e238324a09d724d5 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 07:36:40 -0700 Subject: Added photo --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 07d149c9a..ca4164a00 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -22,7 +22,7 @@ the 1st layer - in case of fat fingers. Layout ------- -*todo* insert picture +![Layout](rl-layout.jpg "Isn't it lovely") ### Base Layer -- cgit v1.2.3 From 84647efebb96c89fce1b4b5e2cd0be634dd44d42 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 07:42:47 -0700 Subject: Update readme.md --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index ca4164a00..9d4657d0d 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -39,7 +39,7 @@ Layout |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | `----------------------------------' `----------------------------------' ,-------------. ,-------------. - Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | +L1 | + Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | +L1 | ,------|------|------| |------+------+------. | | | PgUp | | Ins | | | | Enter| ~L2 |------| |------| ~L1 |Space | -- cgit v1.2.3 From 4a7e13160432fad5dab12cdec68615dcd94f4d63 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 07:43:28 -0700 Subject: Meh -> Hyper --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index a0418f6a7..d3cb7bb3e 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * Meh = Ctrl+Alt+Shift | Alt | F5 | | F2 | +L1 | + * Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | +L1 | * ,------|------|------| |------+------+------. * | | | PgUp | | Ins | | | * | Enter| ~L2 |------| |------| ~L1 |Space | -- cgit v1.2.3 From c7a9a1ebd0ee9995348a3f4173af840f84a081c1 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 21:50:53 -0700 Subject: Revised to version 0.1.0 --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 34 +- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 1911 +++++++++++----------- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 44 +- keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg | Bin 1363082 -> 833107 bytes 4 files changed, 1010 insertions(+), 979 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index d3cb7bb3e..32782867b 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -10,7 +10,7 @@ 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 | + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| @@ -18,13 +18,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . |//Alt| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | + * |LCtrl | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | +L1 | + * Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | * ,------|------|------| |------+------+------. * | | | PgUp | | Ins | | | - * | Enter| ~L2 |------| |------| ~L1 |Space | + * | Space| BkSp |------| |------| ~L1 |Enter | * | | | PgDn | | Del | | | * `--------------------' `--------------------' */ @@ -39,16 +39,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTRL, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, KC_LALT, KC_F5, KC_PGUP, - KC_ENT,KC_FN2,KC_PGDN, + KC_SPC,KC_BSPC,KC_PGDN, // right hand - KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + 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, ALT_T(KC_SLSH), KC_RSFT, - KC_UP, KC_DOWN,KC_COPY,KC_PASTE, KC_RCTRL, - KC_F2, TG(SYMB), + KC_DOWN,KC_UP, LCTL(KC_C),LCTL(KC_V), KC_RCTRL, + KC_F2, KC_FN2, KC_INS, - KC_DELT,KC_FN1, KC_SPC + KC_DELT,KC_FN1, KC_ENT ), /* Keymap 1: Symbol Layer * @@ -63,12 +63,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | £ | | | | | | . | 0 | = |Alt+F4| * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | * ,------|------|------| |------+------+------. - * | | | | | | | | + * CAD = Ctrl + Alt + Delete | | | | | | | | * | | |------| |------| | | - * | | | | | | | | + * | | | | | CAD | | | * `--------------------' `--------------------' */ // SYMBOLS @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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,UC(0xA3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,UC(0x00A3),KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, @@ -90,12 +90,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS,KC_DOT, KC_0, KC_EQL, LALT(KC_F4), KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS ), /* Keymap 2: Media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | + * | TEENSY | | | | | | | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | MsUp | | | | | | | | | | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // MEDIA AND MOUSE [MDIA] = KEYMAP( - 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_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, diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index 1b72354f6..b63d18d76 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -1,27 +1,27 @@ :100000000C9466020C94AD020C94AD020C94AD02FB :100010000C94AD020C94AD020C94AD020C94AD02A4 -:100020000C94AD020C94AD020C94DB0B0C94AD0C53 +:100020000C94AD020C94AD020C94320C0C94040DA3 :100030000C94AD020C94AD020C94AD020C94AD0284 -:100040000C94AD020C9421210C94AD020C94AD02E1 -:100050000C94AD020C94B31A0C94AD020C94AD0246 +:100040000C94AD020C9478210C94AD020C94AD028A +:100050000C94AD020C940A1B0C94AD020C94AD02EE :100060000C94AD020C94AD020C94AD020C94AD0254 :100070000C94AD020C94AD020C94AD020C94AD0244 :100080000C94AD020C94AD020C94AD020C94AD0234 :100090000C94AD020C94AD020C94AD020C94AD0224 -:1000A0000C94AD020C94AD020C94AD021A0D3C0DF3 -:1000B0002F0E3C0D2F0E810DA40D2F0EF90D0C0EE1 -:1000C000F610F610251125116811A211AF13AF1308 -:1000D000BB11AF13B012B0128313AF13AF139A1347 +:1000A0000C94AD020C94AD020C94AD02710D930D45 +:1000B000860E930D860ED80DFB0D860E500E630E28 +:1000C0004D114D117C117C11BF11F911061406144C +:1000D0001212061407130713DA1306140614F11389 :1000E0000000F0A1F0A229002B00E300E100E000F5 :1000F00000001E00140004001D7435004E001F0097 -:100100001A0016001B00007FC20020000800070034 -:1001100006005000280021001500090019004F00BA +:100100001A0016001B00007F2A00200008000700CC +:10011000060050002C0021001500090019004F00B6 :100120004B00220017000A0005000000E200230037 :100130002F0000004A0000003E00240030000000B4 :100140004D0000003B0025001C000B0011000000CA -:100150000154260018000D0010005200490027002D -:100160000C000E00360051002C002D0012000F0074 -:1001700037007C00C1002E001300330038747D006E +:10015000C200260018000D001000510049002700C1 +:100160000C000E003600520028002D0012000F0077 +:1001700037000601C1002E00130033003874190146 :100180004C002A0031003400E500E40000000100CA :10019000010001000100010000003A001E022002DF :1001A0002202A38001003B001F0221022302010062 @@ -32,8 +32,8 @@ :1001F00052005100240200000100420024002100AE :100200001E00010001004300250022001F003700EE :1002100001004400260023002000270001004500C3 -:1002200025022E0231002E000100460001000100CF -:1002300001003D0400000100010001000100010077 +:1002200025022E0231002E004C054600010001007F +:1002300001003D0400000050010001000100010028 :1002400000000100010001000100010001000100A7 :100250000100F2000100010001000100F000F100C6 :100260000100F400010001000100F3000100F500AD @@ -81,13 +81,13 @@ :100500001092EF011092F00114BE84B7877F84BF70 :100510000FB6F894A8958091600088618093600080 :10052000109260000FBEE0E0FFE3099511E0A0E04B -:10053000B1E0E4EEF5E402C005900D92A433B107FA +:10053000B1E0E2E9F6E402C005900D92A433B10700 :10054000D9F721E0A4E3B1E001C01D92AD3EB207AE -:10055000E1F70E9422090C94F0220C940000611132 -:100560000BC0FC018281882321F085EE0E94900F50 -:1005700003C085EE0E94581080E090E00895089531 +:10055000E1F70E9479090C9447230C940000611183 +:100560000BC0FC018281882321F085EE0E94E70FF9 +:1005700003C085EE0E94AF1080E090E008950895DA :100580006091B1017091B2018091B3019091B40179 -:100590000E94E01956985E9825982D9826982E98D6 +:100590000E94371A56985E9825982D9826982E987E :1005A00027982F98813019F0823021F00895259AEC :1005B0002D9A0895269A2E9A089580EC92E0892B20 :1005C00011F00E94C00280E090E0089556985E9875 @@ -189,936 +189,947 @@ :100BC00082E995E4089584E995E4089581E296E444 :100BD000089583E296E4089584E296E4089585E218 :100BE00096E4089586E296E4089587E296E40895EF -:100BF0008AE296E40895089524E5829FC0011124B5 -:100C0000FC0126E0729FE00DF11D1124E60FF11D9D -:100C1000EE0FFF1FEA51FF4F859194910895880FC1 -:100C2000991FFC01E05AF040859194910895880F36 -:100C3000991FFC01E052FF4F85919491089524E59E -:100C4000829FC0011124FC0146E0749FE00DF11D5C -:100C50001124E60FF11DEE0FFF1FEA51FF4F8591A2 -:100C600094919C013A9521154FE1340708F425C170 -:100C70003F512115304120F49F700E9417060895BE -:100C80009C0130532115304118F49927906C089538 -:100C9000811520E5920769F40E94D1134FEF84E398 -:100CA0009CE0415080409040E1F700C000000C946F -:100CB000D81A813020E5920731F48091CC0181600F -:100CC0008093CC0108959C0130552115304108F0E6 -:100CD0005CC0292F33272F70332721303105E9F4E9 -:100CE000AC0164E0440F551F6A95E1F74427537047 -:100CF000BC016370772702C0220F331F6A95E2F7A9 -:100D00003C68242B352B73E0880F991F7A95E1F707 -:100D100080769927822B932B08952230310529F470 -:100D2000982F8827816F906A089523303105A1F4A8 -:100D3000AC0133E0440F551F3A95E1F7407E577000 -:100D40008370992721E030E002C0220F331F8A957B -:100D5000E2F7C9019C6816C02430310531F5AC01B9 -:100D600023E0440F551F2A95E1F7407E57708370AA -:100D7000992721E030E002C0220F331F8A95E2F765 -:100D8000C9019A68842B952B08959C013057211531 -:100D9000304118F49F70906208959C0130582115DD -:100DA000304118F49F70906A0895803E9105E0F4F8 -:100DB000803C910558F58133910509F46FC048F4E2 -:100DC0008932910509F463C08A32910509F46DC036 -:100DD00072C089339105E9F082389105D1F08533ED -:100DE000910509F44DC067C0833E910581F138F447 -:100DF000803E9105B9F0823E9105D9F05CC0863EF7 -:100E0000910561F1873E9105A1F155C00E940F0641 -:100E100008952091DE0120FD02C021FF4CC080EE2C -:100E200090E049C08091DE0180FFF9CF89E390E036 -:100E300042C08091DE0182FF0EC08091DE0184FFFE -:100E400003C080E090E037C083EE90E034C0809132 -:100E5000DE0182FFF2CF82EE90E02DC08091DE01B4 -:100E600083FF0BC08091DE0184FDEBCF87EE90E025 -:100E700022C08091DE0183FFF5CF86EE90E01BC09B -:100E80008091DE0185FF07C089E290E014C0809167 -:100E9000DE0185FFF9CF85E390E00DC08091DE0192 -:100EA00086FF07C08AE290E006C08091DE0186FFDF -:100EB000F9CF81E390E00E943B0508950895809169 -:100EC00062010895CF93DF9300D01F92CDB7DEB7B4 -:100ED0009C018091E401843019F593E099833B8370 -:100EE0002A839093E9008FEF9091E800815095FD5F -:100EF00006C095ED9A95F1F700008111F5CF80912C -:100F0000E80085FF0DC040E050E063E070E0CE01F6 -:100F100001960E94CF098091E8008E778093E800C7 -:100F20000F900F900F90DF91CF910895CF93DF93A3 -:100F300000D01F92CDB7DEB72091E401243021F517 -:100F400022E029839B838A8383E08093E9008FEFEB -:100F50009091E800815095FD06C095ED9A95F1F7C6 -:100F600000008111F5CF8091E80085FF0DC040E0C1 -:100F700050E063E070E0CE0101960E94CF098091BD -:100F8000E8008E778093E8000F900F900F90DF912C -:100F9000CF9108959C018091E4018430F9F482E0BE -:100FA0008093E9009FEF8091E800915085FD06C095 -:100FB00085ED8A95F1F700009111F5CF8091E80059 -:100FC00085FF0CC040E050E065E070E0C9010E9480 -:100FD000CF098091E8008E778093E8000895CF9341 -:100FE000DF93EC018091E401843009F046C09091D8 -:100FF0000C019923D9F090910D019923B9F08093B8 -:10100000E9008FEF9091E800815095FD06C095E1D1 -:101010009A95F1F700008111F5CF8091E80085FFE6 -:101020002CC040E050E060E170E017C081E08093A8 -:10103000E9008FEF9091E800815095FD06C095ED95 -:101040009A95F1F700008111F5CF8091E80085FFB6 -:1010500014C040E050E068E070E0CE010E94CF098B -:101060008091E8008E778093E80080E1FE01A2E5A0 -:10107000B1E001900D928A95E1F7DF91CF9108954B -:101080008091E301811109C00E94600B0E94BD0B99 -:101090008091E20084608093E20008951092E30161 -:1010A000089508950C940E210E946E1A0E94142136 -:1010B0000E94680E0C945E0742E061EC81E00E94A1 -:1010C000D90A42E061EC82E00E94D90A42E061EC78 -:1010D00083E00E94D90A42E161EC84E00C94D90AD1 -:1010E0008091E601833009F455C030F4813071F00D -:1010F000823009F48EC008958A3009F47AC08B30AA -:1011000009F460C0893009F09CC020C08091E501DD -:10111000813A09F096C08091E800877F8093E800CB -:101120008091E9019091EA01892B21F460E182E547 -:1011300091E003C060E080E090E070E00E941A0A55 -:101140008091E8008B778093E80008958091E50115 -:10115000813209F076C08091E9019091EA0100970F -:1011600019F0039709F06DC08091E800877F8093A4 -:10117000E8008091E80082FD05C08091E4018111C2 -:10118000F8CF5FC08091F100809362018091E80008 -:101190008B7753C08091E501813A09F052C080916C -:1011A000E9019091EA01892B09F04BC08091E80098 -:1011B000877F8093E8008091E80080FFFCCF8091DA -:1011C0000C0136C08091E5018132D9F58091E901A9 -:1011D0009091EA01892BA9F58091E800877F80939F -:1011E000E8000E940E0B8091E70180930C010C94A3 -:1011F000D1138091E501813221F58091E800877F4C -:101200008093E8000E940E0B8091E80180936301B7 -:1012100008958091E501813AA1F48091E800877FEB -:101220008093E8008091E80080FFFCCF809163010B -:101230008093F1008091E8008E778093E8000C9411 -:101240000E0B089584B7877F84BF0FB6F894A895D6 -:1012500080916000886180936000109260000FBEF2 -:1012600090E080E80FB6F89480936100909361005D -:101270000FBE0E94B70E0E94600B0E94BD0B8091B2 -:10128000E20084608093E20078940E94480E0E94FD -:10129000B90E82E091E00E94630E0E94FC208091D2 -:1012A000E401853069F40E94301A8091E2018823BC -:1012B000B1F30E945A1A882391F30E94B909EFCF23 -:1012C0000E94BF0EECCF292F332723303105C9F000 -:1012D00060F42130310581F02230310509F041C040 -:1012E0008DE690E022E133E040C021323105E1F0AB -:1012F0002232310531F135C082E190E02FE733E051 -:1013000034C099278130910549F028F0029749F5BA -:10131000EEEDF2E005C0EEE0F3E002C0E6EFF2E051 -:10132000849190E09F0121C06430D8F4E62FF0E072 -:10133000EE0FFF1FEE5DFE4F2081318189E090E0CE -:1013400014C0643070F470E0FB01EE0FFF1FE65E26 -:10135000FE4F20813181FB01EA5EFE4F808190E0EB -:1013600004C080E090E020E030E0FA013183208387 -:10137000089580E189BD82E189BD09B400FEFDCFF9 -:101380008091D8008F7D8093D8008091E0008260AA -:101390008093E0008091E00081FDFCCF0895CF9222 -:1013A000DF92EF92FF920F931F93CF93DF93EC01A5 -:1013B0008B016A010E942D0B811133C0C114D1042D -:1013C00039F0F60180819181081B190BC80FD91FD4 -:1013D000E12CF12C0115110519F18091E80085FD32 -:1013E00016C08091E8008E778093E800C114D10484 -:1013F00049F0F60180819181E80EF91EF182E082C8 -:1014000085E00FC00E942D0B882321F30AC089912B -:101410008093F10001501109FFEFEF1AFF0ADACFB4 -:1014200080E0DF91CF911F910F91FF90EF90DF90BF -:10143000CF9008952091EB013091EC0126173707EA -:1014400048F06115710539F42091E8002E7720935A -:10145000E80001C0B901FC0120E06115710579F1D6 -:101460008091E4018823F1F18530F1F18091E80069 -:1014700083FD3CC08091E80082FD2EC08091E80091 -:1014800080FFEBCF2091F3008091F20090E0922B4F -:101490006115710551F08830910538F42191209340 -:1014A000F100615071090196F3CF21E0089709F02E -:1014B00020E08091E8008E778093E800CECF211164 -:1014C000CFCF0AC08091E401882361F0853061F0BC -:1014D0008091E80083FD0AC08091E80082FFF2CF8E -:1014E00080E0089582E0089583E0089581E0089502 -:1014F0002091EB013091EC012617370748F0611578 -:10150000710539F42091E8002E772093E80001C09E -:10151000B901FC0120E06115710591F18091E401B0 -:10152000882309F440C0853009F43FC08091E80069 -:1015300083FD3DC08091E80082FD2FC08091E800CE -:1015400080FFE9CF2091F3008091F20090E0922B90 -:101550006115710559F08830910540F4249120936C -:10156000F1003196615071090196F2CF21E00897A0 -:1015700009F020E08091E8008E778093E800CBCFDF -:101580002111CCCF0AC08091E401882361F085301D -:1015900061F08091E80083FD0AC08091E80082FF3D -:1015A000F2CF80E0089582E0089583E0089581E01D -:1015B0000895982F973068F59093E900981739F0BF -:1015C0007091EC002091ED005091F00003C0242FA9 -:1015D000762F50E021FD02C09F5FECCF3091EB00F1 -:1015E0003E7F3093EB003091ED003D7F3093ED0076 -:1015F0003091EB0031603093EB007093EC0020935E -:10160000ED005093F0002091EE0027FDE5CF80E043 -:1016100008958F708093E90081E008958091E5013D -:1016200087FF11C08091E80082FD05C08091E40130 -:101630008111F8CF11C08091E8008B770BC08091A9 -:10164000E401882349F08091E80080FFF8CF809181 -:10165000E8008E778093E80008952091E4003091AF -:10166000E50095E64091EC00842F817040FF23C097 -:101670008091E80080FD1DC08091E401882399F0ED -:10168000853099F08091EB0085FD11C04091E40018 -:101690005091E5002417350729F3915011F09A0174 -:1016A000E1CF84E0089582E0089583E0089581E029 -:1016B000089580E008954091E80042FFDDCF08954D -:1016C0000E94CE0B0E94D60BE0EEF0E0808181609C -:1016D0008083E8EDF0E080818F77808319BCA7EDEF -:1016E000B0E08C918E7F8C9380818F7E808310926E -:1016F000E30108950F931F93CF93DF930E94CE0BC6 -:101700000E94D60BC8EDD0E088818F7788838881CE -:101710008068888388818F7D888319BC1092E4015A -:101720001092E0011092E2011092E10100EE10E04F -:10173000F80180818B7F808388818160888342E08B -:1017400060E080E00E94D90AE1EEF0E080818E7FC7 -:101750008083E2EEF0E08081816080838081886018 -:101760008083F80180818E7F808388818061888377 -:10177000DF91CF911F910F910895E8EDF0E0808106 -:101780008F7E8083E7EDF0E080818160808384E05C -:1017900082BF81E08093E3010C947A0BE8EDF0E0E6 -:1017A00080818E7F80831092E20008951092DA008B -:1017B0001092E10008951F920F920FB60F9211241C -:1017C0002F933F934F935F936F937F938F939F9349 -:1017D000AF93BF93EF93FF938091E10082FF0BC023 -:1017E0008091E20082FF07C08091E1008B7F8093AF -:1017F000E1000E94470E8091DA0080FF1FC08091B7 -:10180000D80080FF1BC08091DA008E7F8093DA00C1 -:101810008091D90080FF0DC080E189BD82E189BD42 -:1018200009B400FEFDCF81E08093E4010E944008EE -:1018300005C019BC1092E4010E944E088091E1009D -:1018400080FF19C08091E20080FF15C08091E20006 -:101850008E7F8093E2008091E20080618093E200BD -:101860008091D80080628093D80019BC85E0809375 -:10187000E4010E9452088091E10084FF30C0809111 -:10188000E20084FF2CC080E189BD82E189BD09B4FA -:1018900000FEFDCF8091D8008F7D8093D80080918D -:1018A000E1008F7E8093E1008091E2008F7E809343 -:1018B000E2008091E20081608093E2008091E0018B -:1018C000882311F084E007C08091E30087FD02C007 -:1018D00081E001C083E08093E4010E94540880917C -:1018E000E10083FF29C08091E20083FF25C0809141 -:1018F000E100877F8093E10082E08093E401109211 -:10190000E0018091E1008E7F8093E1008091E20010 -:101910008E7F8093E2008091E20080618093E200FC -:1019200042E060E080E00E94D90A8091F000886087 -:101930008093F0000E945108FF91EF91BF91AF9109 -:101940009F918F917F916F915F914F913F912F91D7 -:101950000F900FBE0F901F9018951F920F920FB609 -:101960000F9211242F933F934F935F936F937F9325 -:101970008F939F93AF93BF93CF93DF93EF93FF9397 -:10198000C091E900CF708091EC00D82FD17080FD1C -:10199000D0E81092E9008091F000877F8093F000FA -:1019A00078940E94F10C1092E9008091F000886018 -:1019B0008093F000CD2BCF70C093E900FF91EF91A1 -:1019C000DF91CF91BF91AF919F918F917F916F9157 -:1019D0005F914F913F912F910F900FBE0F901F90ED -:1019E00018951F93CF93DF93CDB7DEB7AA970FB6A5 -:1019F000F894DEBF0FBECDBFE5EEF1E08091F100BF -:101A0000819321E0ED3EF207C9F70E9470088091B2 -:101A1000E80083FF24C18091E5019091E601492F00 -:101A200050E04A30510508F01AC1FA01EA5AFF4F56 -:101A30000C94A522803881F0823809F010C1809181 -:101A4000E9018F708093E9008091EB0085FB882786 -:101A500080F91092E90006C08091E1019091E201C5 -:101A6000911182609091E800977F9093E8008093B5 -:101A7000F1001092F100C8C0282F2D7F09F0EFC0AF -:101A8000882319F0823061F0EAC08091E70181304B -:101A900009F0E5C0933009F080E08093E2012BC0AB -:101AA0008091E701811127C08091E9018F7009F4CD -:101AB000D6C08093E9002091EB0020FF1CC093303A -:101AC00021F48091EB00806214C09091EB00906152 -:101AD0009093EB0021E030E0A90102C0440F551FB4 -:101AE0008A95E2F74093EA001092EA008091EB00B9 -:101AF00088608093EB001092E9008091E800877F76 -:101B000086C08111ACC01091E7011F778091E3007E -:101B10008078812B8093E3008091E800877F809319 -:101B2000E8000E940E0B8091E80080FFFCCF8091BE -:101B3000E30080688093E300111102C082E001C0DD -:101B400083E08093E4018BC08058823008F087C026 -:101B50008091E7019091E8018C3D53E0950779F57C -:101B600083E08A838AE289834FB7F894DE01139673 -:101B700020E03EE051E2E32FF0E050935700E49183 -:101B800020FF03C0E295EF703F5FEF708E2F90E073 -:101B9000EA3010F0C79601C0C0968D939D932F5FD9 -:101BA000243149F74FBF8091E800877F8093E80098 -:101BB0006AE270E0CE0101960E941A0A14C0AE01DA -:101BC0004F5F5F4F6091E9010E946309BC01892B5F -:101BD00009F445C09091E800977F9093E8008981CF -:101BE0009A810E94780A8091E8008B778093E800C0 -:101BF00036C08038A1F58091E800877F8093E800A7 -:101C00008091E0018093F1008091E8008E778093CD -:101C1000E8000E940E0B23C0811121C08091E701D2 -:101C20009091E80199270297D4F48091E800877F8A -:101C30008093E8008091E7018093E0010E940E0B01 -:101C40008091E001811106C08091E30087FD02C010 -:101C500081E001C084E08093E4010E945C088091EF -:101C6000E80083FF0AC08091E800877F8093E80046 -:101C70008091EB0080628093EB00AA960FB6F894F7 -:101C8000DEBF0FBECDBFDF91CF911F9108950895A4 -:101C9000CF938091E4018823A1F0C091E900CF7037 -:101CA0009091EC00892F817090FD80E8C82B1092F4 -:101CB000E9008091E80083FD0E94F10CCF70C09391 -:101CC000E900CF9108959093690180936801089588 -:101CD000E0916801F0916901309721F00190F08165 -:101CE000E02D099480E00895E0916801F091690188 -:101CF000309721F00280F381E02D09940895E0915E -:101D00006801F0916901309721F00480F581E02DA0 -:101D100009940895209166013091670128173907C9 -:101D200071F09093670180936601E0916801F091F2 -:101D30006901309721F00680F781E02D099408951C -:101D400020916401309165012817390771F0909353 -:101D5000650180936401E0916801F0916901309719 -:101D600021F00084F185E02D0994089508950C94E4 -:101D7000B60E0E94741A0E941D040C943A1BCF9256 -:101D8000DF92EF92FF920F931F93CF93DF93CDB724 -:101D9000DEB72B970FB6F894DEBF0FBECDBF0E9403 -:101DA0003A048BE6C82E81E0D82E00E010E0E02E49 -:101DB000802F0E943405F60141916F01F82EF42620 -:101DC000B1F40F5F1F4F0E30110589F78FEF898334 -:101DD0008A831B820E947D1A8160782F9D838C8369 -:101DE00049815A816B818D810E94620F40C0909120 -:101DF000CC0191FF04C08B870E943A058B8520E0BF -:101E000030E04F2D50E0922FBA01022E02C075959E -:101E100067950A94E2F760FF24C02E83EF8221E0E9 -:101E200030E0690102C0CC0CDD1C9A95E2F790E02D -:101E30008C219D21892B09F420E028870E947D1A9E -:101E40008160782F9A8789874E815F8168858A852E -:101E50000E94620FF801E559FE4F8081C826C082BA -:101E600006C02F5F3F4F2630310569F6AACF0E948A -:101E7000211E0E94680E90916A018917A1F00E94AC -:101E8000680E80936A012B960FB6F894DEBF0FBEE2 -:101E9000CDBFDF91CF911F910F91FF90EF90DF9019 -:101EA000CF900C945E072B960FB6F894DEBF0FBE52 -:101EB000CDBFDF91CF911F910F91FF90EF90DF90F9 -:101EC000CF900895CF93DF93CDB7DEB72B970FB6A2 -:101ED000F894DEBF0FBECDBF4F83588769877A87DE -:101EE0008B87DE01119686E0FD0111928A95E9F754 -:101EF00085E0FE01379601900D928A95E1F74981C0 -:101F00005A816B817C818D819E810E9465162B9602 -:101F10000FB6F894DEBF0FBECDBFDF91CF9108950D -:101F2000CF93C82F882309F4C1C0823859F40E9486 -:101F3000680E81FDBBC089E30E9402190E94BA1994 -:101F400089E30CC0833879F40E94680E80FDAEC02E -:101F500083E50E9402190E94BA1983E50E94411983 -:101F6000CF910C94BA19843859F40E94680E82FDFE -:101F70009DC087E40E9402190E94BA1987E4EECF3F -:101F80008CEF8C0F813A48F48C2F0E9461208111D4 -:101F90008DC08C2F0E940219E3CF80E28C0F883015 -:101FA00048F4C77081E001C0880FCA95EAF70E9423 -:101FB0008319D6CF8BE58C0F833078F4C53A29F09E -:101FC000C63A31F083E890E005C081E890E002C0B5 -:101FD00082E890E0CF910C948A0E88E58C0F8331D3 -:101FE00008F064C0C83A39F1C93A41F1CA3A49F136 -:101FF000CB3A51F1CC3A59F1CD3A61F1C03B69F19C -:10200000CE3A71F1CF3A79F1C13B81F1C23B89F10E -:10201000C33B91F1C43B99F1C53BA1F1C63BA9F18A -:10202000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1EA -:1020300080E090E038C082EE90E035C089EE90E01C -:1020400032C08AEE90E02FC085EB90E02CC086EB8A -:1020500090E029C087EB90E026C08CEC90E023C094 -:102060008DEC90E020C083E891E01DC08AE891E00B -:102070001AC082E991E017C084E991E014C081E2BE -:1020800092E011C083E292E00EC084E292E00BC0C5 -:1020900085E292E008C086E292E005C087E292E025 -:1020A00002C08AE292E0CF910C94A00ECF910895E5 -:1020B000882309F44BC0823859F40E94680E81FFCE -:1020C00045C089E30E9402190E94BA1989E30CC035 -:1020D000833871F40E94680E80FF38C083E50E9447 -:1020E00002190E94BA1983E50E9441190C94BA1989 -:1020F000843859F40E94680E82FF28C087E40E9449 -:1021000002190E94BA1987E4EFCF9CEF980F913A19 -:1021100058F390E2980F983050F4877091E001C026 -:10212000990F8A95EAF7892F0E948919DFCF9BE5DD -:10213000980F933020F480E090E00C948A0E885A37 -:10214000833120F480E090E00C94A00E0895882361 -:1021500021F00E9483190C94BA190895882321F064 -:102160000E9489190C94BA190895BF92CF92DF92F8 -:10217000EF92FF920F931F93CF93DF9300D000D085 -:1021800000D0CDB7DEB77C0185E0F701DE01119606 -:1021900001900D928A95E1F7F70183819481892B53 -:1021A00009F4DDC2908181818F3F19F49F3F09F4CA -:1021B000D6C2F7010281258122952F7099838A83E7 -:1021C00089819A812E830E94C118182FB92E0E94EE -:1021D000C0180E948717EB2DE295EF704E2F50E04C -:1021E000FA01E05AFF4F2E810C94A5228B2D807F9F -:1021F0009B2D9F70F92E882319F0F29480EFF8221E -:10220000002349F0FF2009F457C28F2D0E94931933 -:102210000E94BA1951C2812F0E945810FF2009F460 -:102220009EC28F2D0E94991926960FB6F894DEBF94 -:102230000FBECDBFDF91CF911F910F91FF90EF9017 -:10224000DF90CF90BF900C94BA193B2D307F8B2D2F -:102250008F70303211F08295807F112319F0113088 -:1022600021F12CC00023B9F0222309F490C12130C0 -:1022700009F08DC126960FB6F894DEBF0FBECDBF14 -:10228000DF91CF911F910F91FF90EF90DF90CF9052 -:10229000BF900C94A319222319F0213009F45FC2D6 -:1022A0008E830E94A6198E8186C1002321F02230E0 -:1022B00008F055C26CC1211152C27DC1002321F02A -:1022C000222309F464C1F8C1222309F474C109C2AC -:1022D0008B2D86958695837019F08130D1F03FC2A1 -:1022E000002321F0812F9B2D937002C080E090E0AD -:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B -:102300001F910F91FF90EF90DF90CF90BF900C94B2 -:102310008A0E002321F0812F9B2D937002C080E054 -:1023200090E026960FB6F894DEBF0FBECDBFDF91CA +:100BF0008AE296E4089524E5829FC0011124FC0155 +:100C000026E0729FE00DF11D1124E60FF11DEE0F9D +:100C1000FF1FEA51FF4F859194910895880F991F06 +:100C2000FC01E05AF040859194910895880F991F36 +:100C3000FC01E052FF4F85919491089524E5829F35 +:100C4000C0011124FC0146E0749FE00DF11D112448 +:100C5000E60FF11DEE0FFF1FEA51FF4F85919491B2 +:100C60009C013A9521154FE1340708F425C13F5105 +:100C70002115304120F49F700E94160608959C01B2 +:100C800030532115304118F49927906C089581153F +:100C900020E5920769F40E9428144FEF84E39CE05A +:100CA000415080409040E1F700C000000C942F1BA1 +:100CB000813020E5920731F48091CC0181608093EE +:100CC000CC0108959C0130552115304108F05CC0DD +:100CD000292F33272F70332721303105E9F4AC0158 +:100CE00064E0440F551F6A95E1F744275370BC0137 +:100CF0006370772702C0220F331F6A95E2F73C68C2 +:100D0000242B352B73E0880F991F7A95E1F78076B5 +:100D10009927822B932B08952230310529F4982F9F +:100D20008827816F906A089523303105A1F4AC01C2 +:100D300033E0440F551F3A95E1F7407E57708370BA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019C6816C02430310531F5AC0123E08F +:100D6000440F551F2A95E1F7407E577083709927ED +:100D700021E030E002C0220F331F8A95E2F7C9015B +:100D80009A68842B952B08959C013057211530418A +:100D900018F49F70906208959C01305821153041DD +:100DA00018F49F70906A0895803E9105E0F4803CAD +:100DB000910558F58133910509F46FC048F48932E3 +:100DC000910509F463C08A32910509F46DC072C0BF +:100DD00089339105E9F082389105D1F08533910589 +:100DE00009F44DC067C0833E910581F138F4803E1F +:100DF0009105B9F0823E9105D9F05CC0863E91051F +:100E000061F1873E9105A1F155C00E940E0608953B +:100E10002091DE0120FD02C021FF4CC080EE90E059 +:100E200049C08091DE0180FFF9CF89E390E042C0A4 +:100E30008091DE0182FF0EC08091DE0184FF03C03D +:100E400080E090E037C083EE90E034C08091DE0116 +:100E500082FFF2CF82EE90E02DC08091DE0183FF11 +:100E60000BC08091DE0184FDEBCF87EE90E022C0C5 +:100E70008091DE0183FFF5CF86EE90E01BC080916C +:100E8000DE0185FF07C089E290E014C08091DE0199 +:100E900085FFF9CF85E390E00DC08091DE0186FFEC +:100EA00007C08AE290E006C08091DE0186FFF9CF9C +:100EB00081E390E00E943B0508950895009739F082 +:100EC0008A30910514F44D9608950697089587E2A7 +:100ED00090E008951F93CF93DF93FC0182818823D4 +:100EE00009F440C0C62FD0E0D42B82EE0E94E70F59 +:100EF0008D2F82958F7090E00E945E07182F0E94C0 +:100F0000E70F812F0E94AF10CE0188279F70892F95 +:100F100090E00E945E07182F0E94E70F812F0E9429 +:100F2000AF10CE01807F992724E0969587952A956A +:100F3000E1F70E945E07182F0E94E70F812F0E94A1 +:100F4000AF10CE018F7099270E945E07C82F0E94B4 +:100F5000E70F8C2F0E94AF1082EEDF91CF911F918F +:100F60000C94AF10DF91CF911F9108958091620191 +:100F70000895CF93DF9300D01F92CDB7DEB79C01C9 +:100F80008091E401843019F593E099833B832A83AF +:100F90009093E9008FEF9091E800815095FD06C095 +:100FA00095ED9A95F1F700008111F5CF8091E80059 +:100FB00085FF0DC040E050E063E070E0CE01019697 +:100FC0000E94260A8091E8008E778093E8000F90B7 +:100FD0000F900F90DF91CF910895CF93DF9300D0C2 +:100FE0001F92CDB7DEB72091E401243021F522E035 +:100FF00029839B838A8383E08093E9008FEF90911C +:10100000E800815095FD06C095ED9A95F1F7000036 +:101010008111F5CF8091E80085FF0DC040E050E0E0 +:1010200063E070E0CE0101960E94260A8091E800FC +:101030008E778093E8000F900F900F90DF91CF9103 +:1010400008959C018091E4018430F9F482E080935A +:10105000E9009FEF8091E800915085FD06C085ED85 +:101060008A95F1F700009111F5CF8091E80085FF96 +:101070000CC040E050E065E070E0C9010E94260A23 +:101080008091E8008E778093E8000895CF93DF93F6 +:10109000EC018091E401843009F046C090910C018C +:1010A0009923D9F090910D019923B9F08093E9002B +:1010B0008FEF9091E800815095FD06C095E19A95DB +:1010C000F1F700008111F5CF8091E80085FF2CC079 +:1010D00040E050E060E170E017C081E08093E900FB +:1010E0008FEF9091E800815095FD06C095ED9A959F +:1010F000F1F700008111F5CF8091E80085FF14C061 +:1011000040E050E068E070E0CE010E94260A809145 +:10111000E8008E778093E80080E1FE01A2E5B1E06F +:1011200001900D928A95E1F7DF91CF91089580911A +:10113000E301811109C00E94B70B0E94140C809139 +:10114000E20084608093E20008951092E301089524 +:1011500008950C9465210E94C51A0E946B210E947B +:10116000BF0E0C945D0742E061EC81E00E94300B01 +:1011700042E061EC82E00E94300B42E061EC83E0EF +:101180000E94300B42E161EC84E00C94300B8091C2 +:10119000E601833009F455C030F4813071F08230BB +:1011A00009F48EC008958A3009F47AC08B3009F4AE +:1011B00060C0893009F09CC020C08091E501813A6F +:1011C00009F096C08091E800877F8093E8008091C5 +:1011D000E9019091EA01892B21F460E182E591E037 +:1011E00003C060E080E090E070E00E94710A8091AE +:1011F000E8008B778093E80008958091E5018132C3 +:1012000009F076C08091E9019091EA01009719F008 +:10121000039709F06DC08091E800877F8093E80014 +:101220008091E80082FD05C08091E4018111F8CF32 +:101230005FC08091F100809362018091E8008B771C +:1012400053C08091E501813A09F052C08091E901D3 +:101250009091EA01892B09F04BC08091E800877FCB +:101260008093E8008091E80080FFFCCF80910C0122 +:1012700036C08091E5018132D9F58091E9019091E4 +:10128000EA01892BA9F58091E800877F8093E80027 +:101290000E94650B8091E70180930C010C94281447 +:1012A0008091E501813221F58091E800877F80936C +:1012B000E8000E94650B8091E80180936301089526 +:1012C0008091E501813AA1F48091E800877F8093C5 +:1012D000E8008091E80080FFFCCF8091630180935B +:1012E000F1008091E8008E778093E8000C94650B04 +:1012F000089584B7877F84BF0FB6F894A89580912E +:101300006000886180936000109260000FBE90E0E2 +:1013100080E80FB6F89480936100909361000FBE4F +:101320000E940E0F0E94B70B0E94140C8091E200E5 +:1013300084608093E20078940E949F0E0E94100FB8 +:1013400082E091E00E94BA0E0E9453218091E40154 +:10135000853069F40E94871A8091E2018823B1F3F5 +:101360000E94B11A882391F30E94100AEFCF0E94C5 +:10137000160FECCF292F332723303105C9F060F445 +:101380002130310581F02230310509F041C08DE670 +:1013900090E022E133E040C021323105E1F0223219 +:1013A000310531F135C082E190E02FE733E034C000 +:1013B00099278130910549F028F0029749F5EEED23 +:1013C000F2E005C0EEE0F3E002C0E6EFF2E0849167 +:1013D00090E09F0121C06430D8F4E62FF0E0EE0FDA +:1013E000FF1FEE5DFE4F2081318189E090E014C047 +:1013F000643070F470E0FB01EE0FFF1FE65EFE4FFD +:1014000020813181FB01EA5EFE4F808190E004C0C3 +:1014100080E090E020E030E0FA01318320830895FD +:1014200080E189BD82E189BD09B400FEFDCF8091D4 +:10143000D8008F7D8093D8008091E00082608093F7 +:10144000E0008091E00081FDFCCF0895CF92DF9213 +:10145000EF92FF920F931F93CF93DF93EC018B01D9 +:101460006A010E94840B811133C0C114D10439F088 +:10147000F60180819181081B190BC80FD91FE12C3F +:10148000F12C0115110519F18091E80085FD16C0B8 +:101490008091E8008E778093E800C114D10449F070 +:1014A000F60180819181E80EF91EF182E08285E0EB +:1014B0000FC00E94840B882321F30AC08991809376 +:1014C000F10001501109FFEFEF1AFF0ADACF80E0B7 +:1014D000DF91CF911F910F91FF90EF90DF90CF9010 +:1014E00008952091EB013091EC012617370748F061 +:1014F0006115710539F42091E8002E772093E800FA +:1015000001C0B901FC0120E06115710579F18091FC +:10151000E4018823F1F18530F1F18091E80083FD49 +:101520003CC08091E80082FD2EC08091E80080FFE1 +:10153000EBCF2091F3008091F20090E0922B6115A7 +:10154000710551F08830910538F421912093F10014 +:10155000615071090196F3CF21E0089709F020E06E +:101560008091E8008E778093E800CECF2111CFCF15 +:101570000AC08091E401882361F0853061F0809198 +:10158000E80083FD0AC08091E80082FFF2CF80E08E +:10159000089582E0089583E0089581E00895209100 +:1015A000EB013091EC012617370748F06115710502 +:1015B00039F42091E8002E772093E80001C0B901AA +:1015C000FC0120E06115710591F18091E40188230F +:1015D00009F440C0853009F43FC08091E80083FDE4 +:1015E0003DC08091E80082FD2FC08091E80080FF1F +:1015F000E9CF2091F3008091F20090E0922B6115E9 +:10160000710559F08830910540F424912093F10040 +:101610003196615071090196F2CF21E0089709F0E7 +:1016200020E08091E8008E778093E800CBCF2111F5 +:10163000CCCF0AC08091E401882361F0853061F04D +:101640008091E80083FD0AC08091E80082FFF2CF1C +:1016500080E0089582E0089583E0089581E0089590 +:10166000982F973068F59093E900981739F07091AA +:10167000EC002091ED005091F00003C0242F762F54 +:1016800050E021FD02C09F5FECCF3091EB003E7F28 +:101690003093EB003091ED003D7F3093ED003091C1 +:1016A000EB0031603093EB007093EC002093ED0081 +:1016B0005093F0002091EE0027FDE5CF80E00895E3 +:1016C0008F708093E90081E008958091E50187FFA4 +:1016D00011C08091E80082FD05C08091E401811174 +:1016E000F8CF11C08091E8008B770BC08091E401A6 +:1016F000882349F08091E80080FFF8CF8091E800CE +:101700008E778093E80008952091E4003091E50001 +:1017100095E64091EC00842F817040FF23C08091BA +:10172000E80080FD1DC08091E401882399F0853098 +:1017300099F08091EB0085FD11C04091E40050913B +:10174000E5002417350729F3915011F09A01E1CFF4 +:1017500084E0089582E0089583E0089581E008958B +:1017600080E008954091E80042FFDDCF08950E9497 +:10177000250C0E942D0CE0EEF0E0808181608083DA +:10178000E8EDF0E080818F77808319BCA7EDB0E0B1 +:101790008C918E7F8C9380818F7E80831092E30169 +:1017A00008950F931F93CF93DF930E94250C0E94FF +:1017B0002D0CC8EDD0E088818F7788838881806880 +:1017C000888388818F7D888319BC1092E4011092F0 +:1017D000E0011092E2011092E10100EE10E0F80148 +:1017E00080818B7F808388818160888342E060E094 +:1017F00080E00E94300BE1EEF0E080818E7F8083FC +:10180000E2EEF0E080818160808380818860808367 +:10181000F80180818E7F8083888180618883DF9159 +:10182000CF911F910F910895E8EDF0E080818F7EB8 +:101830008083E7EDF0E080818160808384E082BF77 +:1018400081E08093E3010C94D10BE8EDF0E080811E +:101850008E7F80831092E20008951092DA00109239 +:10186000E10008951F920F920FB60F9211242F934B +:101870003F934F935F936F937F938F939F93AF9318 +:10188000BF93EF93FF938091E10082FF0BC08091A3 +:10189000E20082FF07C08091E1008B7F8093E1002E +:1018A0000E949E0E8091DA0080FF1FC08091D800B8 +:1018B00080FF1BC08091DA008E7F8093DA008091D8 +:1018C000D90080FF0DC080E189BD82E189BD09B4E6 +:1018D00000FEFDCF81E08093E4010E94970805C0DF +:1018E00019BC1092E4010E94A5088091E10080FFDC +:1018F00019C08091E20080FF15C08091E2008E7FC8 +:101900008093E2008091E20080618093E200809108 +:10191000D80080628093D80019BC85E08093E401F0 +:101920000E94A9088091E10084FF30C08091E2000C +:1019300084FF2CC080E189BD82E189BD09B400FE2D +:10194000FDCF8091D8008F7D8093D8008091E100F9 +:101950008F7E8093E1008091E2008F7E8093E20091 +:101960008091E20081608093E2008091E001882311 +:1019700011F084E007C08091E30087FD02C081E0A0 +:1019800001C083E08093E4010E94AB088091E100F4 +:1019900083FF29C08091E20083FF25C08091E10090 +:1019A000877F8093E10082E08093E4011092E00160 +:1019B0008091E1008E7F8093E1008091E2008E7F34 +:1019C0008093E2008091E20080618093E20042E037 +:1019D00060E080E00E94300B8091F000886080938E +:1019E000F0000E94A808FF91EF91BF91AF919F91E5 +:1019F0008F917F916F915F914F913F912F910F90B8 +:101A00000FBE0F901F9018951F920F920FB60F9256 +:101A100011242F933F934F935F936F937F938F93F3 +:101A20009F93AF93BF93CF93DF93EF93FF93C091B7 +:101A3000E900CF708091EC00D82FD17080FDD0E804 +:101A40001092E9008091F000877F8093F0007894F5 +:101A50000E94480D1092E9008091F0008860809308 +:101A6000F000CD2BCF70C093E900FF91EF91DF9193 +:101A7000CF91BF91AF919F918F917F916F915F9126 +:101A80004F913F912F910F900FBE0F901F9018957F +:101A90001F93CF93DF93CDB7DEB7AA970FB6F89415 +:101AA000DEBF0FBECDBFE5EEF1E08091F100819386 +:101AB00021E0ED3EF207C9F70E94C7088091E800D7 +:101AC00083FF24C18091E5019091E601492F50E008 +:101AD0004A30510508F01AC1FA01EA5AFF4F0C9436 +:101AE000FC22803881F0823809F010C18091E90130 +:101AF0008F708093E9008091EB0085FB882780F947 +:101B00001092E90006C08091E1019091E2019111EB +:101B100082609091E800977F9093E8008093F100B5 +:101B20001092F100C8C0282F2D7F09F0EFC0882344 +:101B300019F0823061F0EAC08091E701813009F04C +:101B4000E5C0933009F080E08093E2012BC08091E2 +:101B5000E701811127C08091E9018F7009F4D6C097 +:101B60008093E9002091EB0020FF1CC0933021F40A +:101B70008091EB00806214C09091EB009061909393 +:101B8000EB0021E030E0A90102C0440F551F8A9507 +:101B9000E2F74093EA001092EA008091EB0088603F +:101BA0008093EB001092E9008091E800877F86C067 +:101BB0008111ACC01091E7011F778091E30080781C +:101BC000812B8093E3008091E800877F8093E80079 +:101BD0000E94650B8091E80080FFFCCF8091E300BC +:101BE00080688093E300111102C082E001C083E0AD +:101BF0008093E4018BC08058823008F087C08091C8 +:101C0000E7019091E8018C3D53E0950779F583E079 +:101C10008A838AE289834FB7F894DE01139620E025 +:101C20003EE051E2E32FF0E050935700E49120FFB3 +:101C300003C0E295EF703F5FEF708E2F90E0EA30C7 +:101C400010F0C79601C0C0968D939D932F5F2431ED +:101C500049F74FBF8091E800877F8093E8006AE2F0 +:101C600070E0CE0101960E94710A14C0AE014F5F70 +:101C70005F4F6091E9010E94BA09BC01892B09F408 +:101C800045C09091E800977F9093E80089819A8100 +:101C90000E94CF0A8091E8008B778093E80036C0DD +:101CA0008038A1F58091E800877F8093E8008091DB +:101CB000E0018093F1008091E8008E778093E80046 +:101CC0000E94650B23C0811121C08091E701909192 +:101CD000E80199270297D4F48091E800877F8093E8 +:101CE000E8008091E7018093E0010E94650B8091FC +:101CF000E001811106C08091E30087FD02C081E010 +:101D000001C084E08093E4010E94B3088091E80060 +:101D100083FF0AC08091E800877F8093E80080916C +:101D2000EB0080628093EB00AA960FB6F894DEBFBA +:101D30000FBECDBFDF91CF911F9108950895CF932E +:101D40008091E4018823A1F0C091E900CF709091C7 +:101D5000EC00892F817090FD80E8C82B1092E9007B +:101D60008091E80083FD0E94480DCF70C093E90088 +:101D7000CF91089590936901809368010895E0914F +:101D80006801F0916901309721F00190F081E02D18 +:101D9000099480E00895E0916801F091690130971D +:101DA00021F00280F381E02D09940895E09168010B +:101DB000F0916901309721F00480F581E02D0994BC +:101DC000089520916601309167012817390771F055 +:101DD0009093670180936601E0916801F091690139 +:101DE000309721F00680F781E02D09940895209125 +:101DF0006401309165012817390771F090936501EE +:101E000080936401E0916801F0916901309721F0BD +:101E10000084F185E02D0994089508950C940D0F28 +:101E20000E94CB1A0E941D040C94911BCF92DF924A +:101E3000EF92FF920F931F93CF93DF93CDB7DEB74F +:101E40002B970FB6F894DEBF0FBECDBF0E943A04A9 +:101E50008BE6C82E81E0D82E00E010E0E02E802F27 +:101E60000E943405F60141916F01F82EF426B1F479 +:101E70000F5F1F4F0E30110589F78FEF89838A831B +:101E80001B820E94D41A8160782F9D838C834981A4 +:101E90005A816B818D810E94B90F40C09091CC0115 +:101EA00091FF04C08B870E943A058B8520E030E0CB +:101EB0004F2D50E0922FBA01022E02C07595679502 +:101EC0000A94E2F760FF24C02E83EF8221E030E025 +:101ED000690102C0CC0CDD1C9A95E2F790E08C21E0 +:101EE0009D21892B09F420E028870E94D41A816063 +:101EF000782F9A8789874E815F8168858A850E94BD +:101F0000B90FF801E559FE4F8081C826C08206C08E +:101F10002F5F3F4F2630310569F6AACF0E94781E09 +:101F20000E94BF0E90916A018917A1F00E94BF0E16 +:101F300080936A012B960FB6F894DEBF0FBECDBF1B +:101F4000DF91CF911F910F91FF90EF90DF90CF9095 +:101F50000C945D072B960FB6F894DEBF0FBECDBF75 +:101F6000DF91CF911F910F91FF90EF90DF90CF9075 +:101F70000895CF93DF93CDB7DEB72B970FB6F894C4 +:101F8000DEBF0FBECDBF4F83588769877A878B87A7 +:101F9000DE01119686E0FD0111928A95E9F785E050 +:101FA000FE01379601900D928A95E1F749815A8199 +:101FB0006B817C818D819E810E94BC162B960FB611 +:101FC000F894DEBF0FBECDBFDF91CF910895CF93C0 +:101FD000C82F882309F4C1C0823859F40E94BF0E6B +:101FE00081FDBBC089E30E9459190E94111A89E33F +:101FF0000CC0833879F40E94BF0E80FDAEC083E52B +:102000000E9459190E94111A83E50E949819CF91D4 +:102010000C94111A843859F40E94BF0E82FD9DC0A1 +:1020200087E40E9459190E94111A87E4EECF8CEFC1 +:102030008C0F813A48F48C2F0E94B82081118DC0FA +:102040008C2F0E945919E3CF80E28C0F883048F41E +:10205000C77081E001C0880FCA95EAF70E94DA19BB +:10206000D6CF8BE58C0F833078F4C53A29F0C63A89 +:1020700031F083E890E005C081E890E002C082E89A +:1020800090E0CF910C94E10E88E58C0F833108F03D +:1020900064C0C83A39F1C93A41F1CA3A49F1CB3A78 +:1020A00051F1CC3A59F1CD3A61F1C03B69F1CE3AE8 +:1020B00071F1CF3A79F1C13B81F1C23B89F1C33B68 +:1020C00091F1C43B99F1C53BA1F1C63BA9F1C73BD6 +:1020D000B1F1C83BB9F1C93BC1F1CA3BC9F180E0DC +:1020E00090E038C082EE90E035C089EE90E032C0DA +:1020F0008AEE90E02FC085EB90E02CC086EB90E05C +:1021000029C087EB90E026C08CEC90E023C08DECDA +:1021100090E020C083E891E01DC08AE891E01AC0F9 +:1021200082E991E017C084E991E014C081E292E075 +:1021300011C083E292E00EC084E292E00BC085E21F +:1021400092E008C086E292E005C087E292E002C019 +:102150008AE292E0CF910C94F70ECF9108958823F4 +:1021600009F44BC0823859F40E94BF0E81FF45C06C +:1021700089E30E9459190E94111A89E30CC083381F +:1021800071F40E94BF0E80FF38C083E50E94591988 +:102190000E94111A83E50E9498190C94111A843830 +:1021A00059F40E94BF0E82FF28C087E40E9459198B +:1021B0000E94111A87E4EFCF9CEF980F913A58F3E1 +:1021C00090E2980F983050F4877091E001C0990F19 +:1021D0008A95EAF7892F0E94E019DFCF9BE5980FD7 +:1021E000933020F480E090E00C94E10E885A833123 +:1021F00020F480E090E00C94F70E0895882321F0FD +:102200000E94DA190C94111A0895882321F00E9473 +:10221000E0190C94111A0895BF92CF92DF92EF92B9 +:10222000FF920F931F93CF93DF9300D000D000D085 +:10223000CDB7DEB77C0185E0F701DE011196019094 +:102240000D928A95E1F7F70183819481892B09F436 +:10225000DDC2908181818F3F19F49F3F09F4D6C27E +:10226000F7010281258122952F7099838A838981C4 +:102270009A812E830E941819182FB92E0E941719BF +:102280000E94DE17EB2DE295EF704E2F50E0FA0121 +:10229000E05AFF4F2E810C94FC228B2D807F9B2DCA +:1022A0009F70F92E882319F0F29480EFF822002312 +:1022B00049F0FF2009F457C28F2D0E94EA190E94AD +:1022C000111A51C2812F0E94AF10FF2009F49EC243 +:1022D0008F2D0E94F01926960FB6F894DEBF0FBE20 +:1022E000CDBFDF91CF911F910F91FF90EF90DF90C5 +:1022F000CF90BF900C94111A3B2D307F8B2D8F7097 +:10230000303211F08295807F112319F0113021F1C4 +:102310002CC00023B9F0222309F490C1213009F028 +:102320008DC126960FB6F894DEBF0FBECDBFDF91EC :10233000CF911F910F91FF90EF90DF90CF90BF90C2 -:102340000C94A00E812F002319F00E94291D02C0B9 -:102350000E94911D26960FB6F894DEBF0FBECDBF2A -:10236000DF91CF911F910F91FF90EF90DF90CF9071 -:10237000BF900C94161E8B2D837009F075C001114F -:10238000EEC1812F829586958770880F880F912FD7 -:102390009F70C92ED12CE12CF12C082E04C0CC0C3E -:1023A000DD1CEE1CFF1C0A94D2F714FF12C00FE0D4 -:1023B00010E020E030E004C0000F111F221F331F87 -:1023C0008A95D2F7C901B80160957095809590956E -:1023D00003C060E070E0CB014B2D469546954370FD -:1023E0004230C1F060F56C297D298E299F2941304A -:1023F00051F126960FB6F894DEBF0FBECDBFDF9128 -:10240000CF911F910F91FF90EF90DF90CF90BF90F1 -:102410000C94AE176C297D298E299F2926960FB61C -:10242000F894DEBF0FBECDBFDF91CF911F910F910A -:10243000FF90EF90DF90CF90BF900C94CA170E944E -:10244000AE17C701B60126960FB6F894DEBF0FBED1 -:10245000CDBFDF91CF911F910F91FF90EF90DF9053 -:10246000CF90BF900C949217002319F08B2D8170A0 -:1024700001C08695882309F472C1812F82958695C3 -:102480008770880F880F912F9F70C92ED12CE12C57 -:10249000F12C082E04C0CC0CDD1CEE1CFF1C0A9491 -:1024A000D2F714FF12C00FE010E020E030E004C0CB -:1024B000000F111F221F331F8A95D2F7C901B801DF -:1024C000609570958095909503C060E070E0CB01B9 -:1024D0004B2D4695469543704230C1F060F56C290E -:1024E0007D298E299F29413051F126960FB6F89407 -:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 -:10250000EF90DF90CF90BF900C9488186C297D29B4 -:102510008E299F2926960FB6F894DEBF0FBECDBF39 -:10252000DF91CF911F910F91FF90EF90DF90CF90AF -:10253000BF900C94A4180E948818C701B601269673 -:102540000FB6F894DEBF0FBECDBFDF91CF911F91C4 -:102550000F91FF90EF90DF90CF90BF900C946C188C -:10256000103FD1F118F4103E50F4A1C0123F09F40D -:1025700063C008F44CC0133F09F473C098C01F70C7 -:102580008B2D8F710023A1F00E940518812F2696B4 -:102590000FB6F894DEBF0FBECDBFDF91CF911F9174 -:1025A0000F91FF90EF90DF90CF90BF900C94A71009 -:1025B0000E942618812F26960FB6F894DEBF0FBE14 -:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 -:1025D000CF90BF900C94AE100023A9F02111BFC082 -:1025E0008B2D8F7126960FB6F894DEBF0FBECDBF30 -:1025F000DF91CF911F910F91FF90EF90DF90CF90DF -:10260000BF900C944B18223008F0A9C0E9CF0023EA -:10261000A9F08B2D8F7126960FB6F894DEBF0FBEF2 -:10262000CDBFDF91CF911F910F91FF90EF90DF9081 -:10263000CF90BF900C940518002359F38B2D8F7108 -:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 -:102650001F910F91FF90EF90DF90CF90BF900C945F -:102660002618002399F08B2D8F7126960FB6F894BB -:10267000DEBF0FBECDBFDF91CF911F910F91FF90B5 -:10268000EF90DF90CF90BF900C94F01726960FB686 -:10269000F894DEBF0FBECDBFDF91CF911F910F9198 -:1026A000FF90EF90DF90CF90BF900C94E61700233F -:1026B000A9F0222309F4ADCF812F26960FB6F89406 -:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065 -:1026D000EF90DF90CF90BF900C94900F222309F4DD -:1026E000ADCF812F26960FB6F894DEBF0FBECDBFBB -:1026F000DF91CF911F910F91FF90EF90DF90CF90DE -:10270000BF900C9458104B2D4F70612FC7010E9441 -:10271000AF0226960FB6F894DEBF0FBECDBFDF9195 -:10272000CF911F910F91FF90EF90DF90CF90BF90CE -:102730000C940A174B2D4F70612FC70126960FB6C8 -:10274000F894DEBF0FBECDBFDF91CF911F910F91E7 -:10275000FF90EF90DF90CF90BF900C94FB052696F2 -:102760000FB6F894DEBF0FBECDBFDF91CF911F91A2 -:102770000F91FF90EF90DF90CF90BF9008950E944F -:10278000A0190E9475190E94BA190E94C61E0E94C3 -:10279000161E80E090E00E948A0E80E090E00C948B -:1027A000A00E0E9490190C94BF130E94C118292FEB -:1027B00022952F702C3030F42A3048F422502230E9 -:1027C00078F405C02C3041F02F3031F009C0803E44 -:1027D00048F0803F29F406C093FB882780F90895CC -:1027E00080E0089581E00895CF93DF9300D000D07A -:1027F0001F92CDB7DEB70F900F900F900F900F90F4 -:10280000DF91CF910895CF93DF9300D000D000D017 -:10281000CDB7DEB726960FB6F894DEBF0FBECDBF9C -:10282000DF91CF9108951F93CF93DF93C0917901EA -:1028300016E080917A01C81799F0D0E01C9FF00152 -:102840001D9FF00D1124E558FE4F4081518162819A -:102850007381848195810E9403142196C770E9CF0A -:10286000DF91CF911F9108954091AB015091AC0140 -:102870006091AD017091AE018091AF019091B00176 -:102880000C9403148091B00182958F7009F054C0AC -:102890008091AD01882309F44FC080917901A09106 -:1028A0007A014091AE015091AF016091AB017091FE -:1028B000AC01B6E08A1709F43FC090E0411551051C -:1028C000C1F17F3F11F46F3FA1F1B89FF001B99FB3 -:1028D000F00D1124E558FE4F218127132AC02081D5 -:1028E000261327C02281211124C02381348124177B -:1028F000350710F421503109241B350B283C3105D4 -:10290000C0F42091B0012F7020612093B00126E027 -:10291000289FF001299FF00D1124E058FE4F80817F -:102920008F70806180838BEA91E00E94B5100C94D7 -:10293000131401968770BECF0895CF92DF92EF9265 -:10294000FF920F931F93CF93DF93CDB7DEB76297BC -:102950000FB6F894DEBF0FBECDBF8C0185E0F80145 -:10296000DE011D9601900D928A95E1F7D8014C91F8 -:1029700011965C91119712966C918091AE01909195 -:10298000AF01009709F475C13091AB017091AC01B2 -:102990007F3F19F43F3F09F46CC1F801C380D48034 -:1029A000E090AD01EE2009F4BEC02091B001C81640 -:1029B000D90628F0D601A81BB90BCD0104C080951B -:1029C00090958C0D9D1DFF24F394883C910578F023 -:1029D000F12C207F09F0C4C07C2DD98AC88A89894E -:1029E0000E94F4138BEA91E00E94B510AFC0822FD1 -:1029F000807F09F045C0571313C0431311C0611104 -:102A00000FC02F7020612093B0010E9434148BEA14 -:102A100091E00E94B5108091B001F80185832EC02D -:102A2000CD2819F15F3F11F44F3FF9F0F62E6111F7 -:102A30001CC08091790120917A0136E0821709F457 -:102A40005BC090E0389FF001399FF00D1124E558EC -:102A5000FE4F7181571306C07081471303C0728106 -:102A6000711103C001968770E9CFF62E662309F431 -:102A70001CC18091B00181608093B001F12C15C11F -:102A8000571309C0431307C0611105C08091B001FD -:102A9000F8018583C8C04D875E878D859E856A8BCA -:102AA0000E94D5136A898823D1F16623C1F1209150 -:102AB000B001822F82958F7090E0029774F0809120 -:102AC000AB019091AC0198878F831986DB86CA860B -:102AD0002C87CE0107960E94B51086E0F801ABEA7C -:102AE000B1E001900D928A95E1F70E9442140E9494 -:102AF0003414FF24F394D9C04D875E878D859E855D -:102B00000E94C118292F22952F70223008F0C1C0D1 -:102B10009F7009F0BBC0805E883008F4C6C0C80151 -:102B20000E94B510E6CFC816D90608F453C0F601C6 -:102B3000E81BF90BCF01883C910508F450C0F12C3B -:102B40007C2DD98AC88A89890E94F413EBEAF1E0C6 -:102B500086E0DF011D928A95E9F70E943414A5C032 -:102B6000571314C0431312C0611110C08091B001FB -:102B7000F8018583C8010E94B51086E0EBEAF1E018 -:102B8000DF011D928A95E9F7FE2C8FC04D875E8785 -:102B90008D859E856A8B0E94D5136A89882309F4E6 -:102BA000BECF662309F4BBCF2091B001822F82955E -:102BB0008F7090E002970CF490CF8091AB019091D0 -:102BC000AC019A8389831B82DD82CC822E83CE0165 -:102BD000019681CF809590958C0D9D1DACCFF62EE2 -:102BE000662309F49CCF571333C0431331C020919F -:102BF000B00120FD24C0822F82958F70482F50E0B5 -:102C000041155105E1F0D80115962C9315974F30D9 -:102C1000510549F08F5F982F9295907F822F8F708A -:102C2000892B15968C93C8010E94B51086E0F80197 -:102C3000ABEAB1E001900D928A95E1F78ECF86E084 -:102C4000F801ABEAB1E001900D928A95E1F72DC051 -:102C50004D875E878D859E850E94D51381113DCF5E -:102C60008091B00181608093B001C8010E94B510CD -:102C70001CC0662309F453CF4D875E878D859E85E2 -:102C80000E94D513882309F44ACF27CF811143CF5F -:102C90000CC0243008F043CF9F7009F43CCFD8011A -:102CA00015969C91907F09F036CF8F2D62960FB6C6 -:102CB000F894DEBF0FBECDBFDF91CF911F910F9172 -:102CC000FF90EF90DF90CF9008951F93CF93DF9305 -:102CD000CDB7DEB72C970FB6F894DEBF0FBECDBFD1 -:102CE0004F83588769877A878B879C87CE010796A1 -:102CF0000E949D14882371F08A859B85892B09F495 -:102D000041C088858F3F09F065C08F818F3F09F0F2 -:102D100061C038C086E0FE013796DE011196019051 -:102D20000D928A95E1F76A857B856115710551F1F0 -:102D3000FF81E885EF3F11F4FF3F21F120917A01F7 -:102D400030E0C9010196877099274091790150E0E0 -:102D50008417950709F447C0F983EA837D836C8360 -:102D600096E0929FD001939FB00D1124A558BE4FBD -:102D7000FE01319601900D929A95E1F780937A01C8 -:102D80000E94131416E08091790190917A018917BD -:102D9000B9F1189FC001112485589E4F0E949D14BF -:102DA000882371F1E09179011E9FF0011124E5580B -:102DB000FE4F4081518162817381848195810E949F -:102DC00003148091790190E0019687709927809390 -:102DD0007901D9CF4F81588569857A858B859C8506 -:102DE0000E940314CFCF0E94D11310927A01109247 -:102DF0007901EBEAF1E086E0DF011D928A95E9F7BF -:102E00002C960FB6F894DEBF0FBECDBFDF91CF91E9 -:102E10001F910895EF92FF920F931F93CF93DF932B -:102E20008C01892B09F46CC0F12CEE24E394E801A9 -:102E30002196F8018491843740F4843008F051C021 -:102E4000813081F0823019F15BC0853709F444C0CC -:102E5000A8F19CE7980F903708F052C08F770E9436 -:102E6000581041C00E5F1F4FFE01849190E2980FF1 -:102E7000983050F48770FE2D01C0FF0F8A95EAF755 -:102E80008F2F0E94931914C00E94900F2DC00E5FC7 -:102E90001F4FFE01849190E2980F983060F4877084 -:102EA000FE2D01C0FF0F8A95EAF78F2F0E94991916 -:102EB0000E94BA1919C00E94581016C00E5F1F4F09 -:102EC000FE01C491CC2381F08FE99FE00197F1F7D7 -:102ED00000C00000C150F6CF0E5F1F4FFE01F490FE -:102EE00003C00E94900F8E018F2D882309F49FCF7D -:102EF000EFE9FFE03197F1F700C000008150F5CF16 -:102F0000DF91CF911F910F91FF90EF900895089559 -:102F10006093B5017093B6018093B7019093B801A7 -:102F20000C94BF130F931F930091B5011091B6013C -:102F30002091B7013091B801DC01CB01802B912B9E -:102F4000A22BB32B8093B5019093B601A093B70148 -:102F5000B093B8011F910F910C94BF130F931F935F -:102F60000091B5011091B6012091B7013091B801DF -:102F7000DC01CB0180239123A223B3238093B501ED -:102F80009093B601A093B701B093B8011F910F9130 -:102F90000C94BF130F931F930091B5011091B601CC -:102FA0002091B7013091B801DC01CB018027912736 -:102FB000A227B3278093B5019093B601A093B701E0 -:102FC000B093B8011F910F910C94BF131092B101EF -:102FD0001092B2011092B3011092B4010C94BF137D -:102FE00041E050E060E070E004C0440F551F661FF0 -:102FF000771F8A95D2F74093B1015093B201609345 -:10300000B3017093B4010C94BF1341E050E060E051 -:1030100070E004C0440F551F661F771F8A95D2F7D2 -:103020008091B1019091B201A091B301B091B4012E -:10303000482B592B6A2B7B2B4093B1015093B20143 -:103040006093B3017093B4010C94BF1341E050E05E -:1030500060E070E004C0440F551F661F771F8A951B -:10306000D2F740955095609570958091B1019091FF -:10307000B201A091B301B091B401482359236A234E -:103080007B234093B1015093B2016093B3017093DD -:10309000B4010C94BF1341E050E060E070E004C064 -:1030A000440F551F661F771F8A95D2F78091B10193 -:1030B0009091B201A091B301B091B4014827592772 -:1030C0006A277B274093B1015093B2016093B3010B -:1030D0007093B4010C94BF130F931F930091B1012F -:1030E0001091B2012091B3013091B401DC01CB0108 -:1030F000802B912BA22BB32B8093B1019093B20123 -:10310000A093B301B093B4011F910F910C94BF131E -:103110000F931F930091B1011091B2012091B3015F -:103120003091B401DC01CB0180239123A223B3238E -:103130008093B1019093B201A093B301B093B40115 -:103140001F910F910C94BF130F931F930091B10126 -:103150001091B2012091B3013091B401DC01CB0197 -:1031600080279127A227B3278093B1019093B201C2 -:10317000A093B301B093B4011F910F910C94BF13AE -:103180000895CF92DF92EF92FF920F931F93CF9308 -:10319000DF938C01C090B101D090B201E090B301F7 -:1031A000F090B4018091B5019091B601A091B70162 -:1031B000B091B801C82AD92AEA2AFB2ACFE1D0E087 -:1031C000D701C6010C2E04C0B695A7959795879593 -:1031D0000A94D2F780FF07C0B8018C2F0E941F0607 -:1031E0008130910531F4219758F7B80180E00E94B1 -:1031F0001F06DF91CF911F910F91FF90EF90DF900D -:10320000CF90089590910C019923F1F090910D01C8 -:103210009923D1F0982F9695969596959F3080F5A5 -:10322000E0910E01F0910F01E90FF11D877021E08F -:1032300030E0A90102C0440F551F8A95E2F7CA0188 -:103240009181892B8183089520910E0130910F0186 -:10325000F90132969FEF40E05191851789F09F3F29 -:1032600019F4511101C0942F4F5F4E30A9F79F3FC1 -:1032700039F0F901E90FF11D97FDFA958283089560 -:10328000089590910C019923F9F090910D019923E3 -:10329000D9F0982F9695969596959F3028F5E091C0 -:1032A0000E01F0910F01E90FF11D877021E030E070 -:1032B000A90102C0440F551F8A95E2F7CA01809503 -:1032C000918189238183089520910E0130910F010E -:1032D000F9013296205F3F4F9081891301C010821F -:1032E0003196E217F307C1F7089581E090E0E0918D -:1032F0000E01F0910F01E80FF91F10820196803145 -:103300009105A9F708959091CB01892B8093CB016A -:10331000089580959091CB0189238093CB010895E6 -:103320001092CB0108959091CA01892B8093CA0114 -:10333000089580959091CA0189238093CA010895C8 -:103340001092CA0108958093B90108951092B901AD -:10335000089580910E0190910F01FC0131969C011E -:10336000205F3F4F80E0919191118F5FE217F3074B -:10337000D1F70895E0910E01F0910F018091CB01FA -:103380008083E0910E01F0910F0190818091CA013C -:10339000892B80838091B901882361F0E0910E012F -:1033A000F0910F019081892B80830E94A9198111CE -:1033B0001092B90180910E0190910F010C94740E3E -:1033C000CF92DF92EF92FF926C01EE24FF24C114A2 -:1033D000D104E104F10421F0C701B60120E101C0EC -:1033E00020E0C72ED82EE92EFF24C114D104E10419 -:1033F000F10419F0285FC701B6016B017C0154E0AC -:10340000F694E794D794C7945A95D1F7C114D10490 -:10341000E104F10419F02C5FC701B6016B017C01D6 -:1034200042E0F694E794D794C7944A95D1F7C11433 -:10343000D104E104F10419F02E5FC701B601DC01EB -:10344000CB01B695A79597958795892B8A2B8B2BC2 -:1034500009F02F5F822FFF90EF90DF90CF900895BB -:103460008091E401843011F120E488E190E00FB60E -:10347000F894A895809360000FBE2093600083B7F6 -:10348000817F846083BF83B7816083BF7894889590 -:1034900083B78E7F83BF0FB6F894A89580916000A4 -:1034A000886180936000109260000FBE08950895B7 -:1034B0000C94571ACF930E94581A0E943A040E9403 -:1034C000571AC0E08C2F0E943405811104C0CF5FD1 -:1034D000CE30C1F701C081E0CF9108950E94D11391 -:1034E0000E94680E0C945E0782E084BD93E095BD57 -:1034F0009AEF97BD80936E0008952FB7F89480914E -:10350000CD019091CE01A091CF01B091D0012FBFFC -:103510000895CF92DF92EF92FF920F931F932FB7F0 -:10352000F8944091CD015091CE016091CF017091FE -:10353000D0012FBF6A017B01EE24FF248C0120E023 -:1035400030E0C016D106E206F30610F441505109EE -:103550009A01281B390BC9011F910F91FF90EF9021 -:10356000DF90CF9008951F920F920FB60F92112403 -:103570008F939F93AF93BF938091CD019091CE0194 -:10358000A091CF01B091D0010196A11DB11D8093F2 -:10359000CD019093CE01A093CF01B093D001BF9104 -:1035A000AF919F918F910F900FBE0F901F90189524 -:1035B0000E94600BF8942FEF87EA91E6215080403B -:1035C0009040E1F700C0000087E090EBDC018093C1 -:1035D000ED019093EE01A093EF01B093F0019CE018 -:1035E00088E10FB6F894A895809360000FBE909381 -:1035F0006000FFCFEF92FF920F931F93CF93DF9363 -:10360000D82FC0E08C2F0E94340500E010E0E82E97 -:10361000F12CC701002E02C0959587950A94E2F718 -:1036200080FD06C00F5F1F4F0630110591F709C0DE -:10363000602F7C2F80E00E94FC058D13F3CF81E08A -:1036400004C0CF5FCE30F1F680E0DF91CF911F91C3 -:103650000F91FF90EF900895CF93C82F8CE20E94B6 -:10366000FA1A882321F08C2FCF910C94FA1A80E05B -:10367000CF910895CF930E94811C811102C00E94B6 -:10368000671CC5E6C15049F00E943A048FE39CE9EB -:103690000197F1F700C00000F5CF89E20E942C1BD2 -:1036A000811113C18AE20E942C1B81110E94671CA8 -:1036B00085E00E942C1B81110E94D81A0E948C1C4C -:1036C0008093CC0187E00E942C1B8823A9F18BE119 -:1036D0000E942C1B882351F08091CC0181FB222772 -:1036E00020F991E0922790FB81F90EC08EE00E94B4 -:1036F0002C1B882361F08091CC0182FB222720F9CA -:1037000091E0922790FB82F98093CC0115C080E173 -:103710000E942C1B9091CC01882341F093FB22271F -:1037200020F981E0822780FB93F904C0892F8095DE -:1037300080FB90F99093CC018091CC010E94901C69 -:103740000E949E1C8093DE0180EE0E942C1B882329 -:1037500041F08091DE01982F909590FB80F9809345 -:10376000DE0189E30E942C1B882359F08091DE0141 -:1037700081FB222720F991E0922790FB81F9809329 -:10378000DE0182EE0E942C1B882359F08091DE011D -:1037900082FB222720F991E0922790FB82F9809307 -:1037A000DE0186EE0E942C1B882359F08091DE01F9 -:1037B00083FB222720F991E0922790FB83F98093E5 -:1037C000DE0183EE0E942C1B882359F08091DE01DC -:1037D00084FB222720F991E0922790FB84F98093C3 -:1037E000DE0185E30E942C1B882359F08091DE01C5 -:1037F00085FB222720F991E0922790FB85F98093A1 -:10380000DE0181E30E942C1B882359F08091DE01A8 -:1038100086FB222720F991E0922790FB86F980937E -:10382000DE0181E10E942C1B882359F08091DE018A -:1038300087FB222720F991E0922790FB87F980935C -:10384000DE018091DE010E94A21C8091DE0187FBD7 -:10385000882780F980930D0187E20E942C1BC82FD6 -:103860008EE10E942C1B8111C2608FE10E942C1BF3 -:103870008111C46080E20E942C1B8111C86081E22A -:103880000E942C1B8111C06182E20E942C1B8111BD -:10389000C06283E20E942C1B8111C06484E20E94FA -:1038A0002C1B882311F0C06802C0CC2329F08C2F78 -:1038B0000E94991C6C2F03C00E94951C682F70E019 -:1038C00080E090E0CF910C948817CF9108956DEE31 -:1038D0007EEF80E090E00E94DB2260E082E090E0FA -:1038E0000E94CD2260E083E090E00E94CD2260E063 -:1038F00084E090E00E94CD2260E085E090E00C94AE -:10390000CD2280E090E00E94C72221E08D3E9E4FB4 -:1039100009F020E0822F089582E090E00C94BF220D -:10392000682F82E090E00C94CD2283E090E00C942C -:10393000BF22682F83E090E00C94CD2284E090E0D9 -:103940000C94BF22682F84E090E00C94CD228091EB -:10395000D30180FF0BC06091130185E0689FB00127 -:10396000112475956795759567952BC081FF09C0E2 -:103970006091130185E0689FB001112475956795EA -:1039800020C082FF07C06091130185E0689FB001ED -:10399000112417C09091D4019923D1F060911201A4 -:1039A000961788F72091130185E0289F9001112434 -:1039B000929FA001939F500D112470E0CA010E94B4 -:1039C00091226038710540F46115710519F406C043 -:1039D00065E070E0862F08958FE7089581E00895EF -:1039E0008091D30180FF08C06091110170E075954E -:1039F00067957595679521C081FF06C0609111019B -:103A000070E07595679519C082FF04C0609111013F -:103A100070E010C09091D401992399F06091100149 -:103A20009617A0F780911101899FC001112470E0C1 -:103A30000E9491226038710540F46115710519F4F6 -:103A400006C061E070E0862F08958FE7089581E059 -:103A50000895803F21F40E94A71C819504C0813FF6 -:103A600029F40E94A71C8093D7010895823F21F476 -:103A70000E94A71C819504C0833F29F40E94A71CC3 -:103A80008093D6010895893F19F40E94F01C05C067 -:103A90008A3F31F40E94F01C81958093D8010895EB -:103AA0008B3F21F40E94F01C819504C08C3F29F4C7 -:103AB0000E94F01C8093D9010895843F21F48091E5 -:103AC000D501816017C0853F21F48091D5018260C6 -:103AD00011C0863F21F48091D50184600BC0873FDF -:103AE00021F48091D501886005C0883F31F4809130 -:103AF000D50180618093D50108958D3F21F4809197 -:103B0000D30181600BC08E3F21F48091D30182608C -:103B100005C08F3F29F48091D30184608093D30145 -:103B20000895803F39F48091D70187FF6CC01092CF -:103B3000D70169C0813F29F48091D7011816BCF3E1 -:103B400062C09091D601823F29F497FF5CC0109229 -:103B5000D60159C0833F19F41916CCF354C0893FDC -:103B600041F48091D80118160CF04DC01092D80184 -:103B70004AC08A3F29F48091D80187FF44C0F6CF1C -:103B80008B3F39F48091D90187FF3DC01092D90154 -:103B90003AC08C3F29F48091D9011816BCF333C088 -:103BA000843F21F48091D5018E7F17C0853F21F499 -:103BB0008091D5018D7F11C0863F21F48091D50180 -:103BC0008B7F0BC0873F21F48091D501877F05C093 -:103BD000883F31F48091D5018F7E8093D50113C049 -:103BE0008D3F21F48091D3018E7F0BC08E3F21F455 -:103BF0008091D3018D7F05C08F3F29F48091D3013F -:103C00008B7F8093D3018091D60181110EC080916A -:103C1000D70181110AC08091D801811106C080911D -:103C2000D901811102C01092D401089585ED91E06F -:103C30000E947F0E0E947D1A9093D2018093D10141 -:103C400008951F93CF93DF938091D1019091D2017A -:103C50000E94891AAC019091D401992321F02091FE -:103C6000140130E006C0209115018AE0289F9001E0 -:103C700011244217530708F485C08091D601C091E2 -:103C8000D701D091D8011091D901811107C0C1117C -:103C900075C0D11173C0111171C074C09F3F19F06C -:103CA0009F5F9093D401181624F40E94A71C809360 -:103CB000D6018091D60187FF05C00E94A71C81957F -:103CC0008093D6011C1624F40E94A71C8093D70170 -:103CD0008091D70187FF05C00E94A71C8195809322 -:103CE000D7016091D601662331F1C091D701CC2371 -:103CF00011F1062E000C770B880B990B0E9498216E -:103D000023E333E343E35FE30E94FC210E9460214D -:103D10006093D6016C2FCC0F770B880B990B0E9408 -:103D2000982123E333E343E35FE30E94FC210E94F5 -:103D300060216093D7011D1624F40E94F01C80932B -:103D4000D8018091D80187FF05C00E94F01C8195A1 -:103D50008093D801111624F40E94F01C8093D9019D -:103D60008091D90187FF05C00E94F01C8195809346 -:103D7000D901DF91CF911F910C94161E9F3F09F03E -:103D80008FCFA0CFDF91CF911F910895E5EDF1E0A6 -:103D900085E0DF011D928A95E9F71092D401109217 -:103DA000D3010895833081F128F4813059F08230B5 -:103DB000D1F00895853009F449C0B8F1863009F48E -:103DC00056C0089580911501262F30E0280F311D2F -:103DD0002F3F310524F4680F6093150108958FEF8C -:103DE00080931501089580911401262F30E0280F4B -:103DF000311D2F3F310524F4680F6093140108959D -:103E00008FEF80931401089580911301262F30E0E5 -:103E1000280F311D2F3F310524F4680F60931301E3 -:103E200008958FEF80931301089580911201262F3A -:103E300030E0280F311D2F3F310524F4680F6093C7 -:103E4000120108958FEF809312010895809111015E -:103E5000262F30E0280F311D2F3F310524F4680F45 -:103E60006093110108958FEF80931101089580915F -:103E70001001262F30E0280F311D2F3F310524F48B -:103E8000680F6093100108958FEF809310010895DB -:103E9000833011F128F4813049F0823091F0089597 -:103EA000853081F120F18630C1F1089580911501AE -:103EB000681720F4861B8093150108951092150150 -:103EC000089580911401681720F4861B80931401D3 -:103ED000089510921401089580911301681720F439 -:103EE000861B809313010895109213010895809109 -:103EF0001201681720F4861B809312010895109216 -:103F00001201089580911101681720F4861B809397 -:103F10001101089510921101089580911001681700 -:103F200020F4861B809310010895109210010895CB -:103F30000F931F938D3109F46BC008F03FC08E3092 -:103F400009F47DC0C0F4873009F46EC068F486308F -:103F500009F0AFC08091CC01817F8E7F8093CC012E -:103F600081E08093DB01A6C0883009F458C08B3013 -:103F700009F49BC09EC0863109F497C078F4803163 -:103F800009F470C0813109F094C00E94D11390915E -:103F90000D0181E0892780930D0187C0893109F4E3 -:103FA00084C08B3109F085C08091CC0181FB222730 -:103FB00020F991E0922790FB81F94AC0853309F4FA -:103FC0005BC048F4873209F457C008F45AC08932FC -:103FD00009F452C06EC0833438F48A3308F067C0E5 -:103FE000883309F462C065C0833409F445C088345D -:103FF00009F05FC00E94D1130FEF13ED20E30150D1 -:1040000010402040E1F700C000000E94D81A4DC0C7 -:104010000E941A210E94680E0E945E0746C00E94FC -:104020008C1C0E949E1C41C09091CC01892F8170F4 -:1040300090FF12C0917F9E7F9093CC013BC08091F6 -:10404000CC0182FB222720F991E0922790FB82F994 -:104050008093CC01992349F18091CC0181608093B8 -:10406000CC0123C08091CC0183FB222720F991E071 -:10407000922790FB83F9ECCF61E070E080E090E064 -:1040800010C08D5141E050E060E070E08A019B017A -:1040900004C0000F111F221F331F8A95D2F7C901D8 -:1040A000B8010E9488170E94D11381E003C0895390 -:1040B000E9CF80E01F910F91089580E008950C945E -:1040C0005D20CF93C82F8091DB01813079F018F00B -:1040D0008230E9F187C0E0910E01F0910F018081FB -:1040E000813169F0823209F07FC009C0E0910E0190 -:1040F000F0910F018081813111F0823261F48C2FB7 -:104100000E945F20811104C08C2F0E94981F1DC047 -:1041100081E090E01AC08C2F0E945D20811114C0B4 -:10412000C43179F048F4CB3079F0C03109F060C087 -:1041300082E08093DB0108C0C93219F0C83321F056 -:1041400057C01092DB0154C081E0817053C0C93266 -:1041500089F118F5C43171F1A8F4C73009F046C0EF -:104160008AE08093150194E19093140193E0909379 -:1041700013018093120188E08093110188E28093FB -:10418000100134C0CE51C63088F5EC2FF0E0E65D6A -:10419000FE4F80818093DA0129C0CE34E9F020F40B -:1041A000CB3421F56AE013C0C13579F0C235F1F4A2 -:1041B00061E00DC08091DA01882319F01092DA01D4 -:1041C00015C081E08093DB0115C061E006C08091DD -:1041D000DA010E94D21E0AC06AE08091DA010E94D0 -:1041E000481F04C01092DB0180E004C081E002C0DF -:1041F00080E0ABCFCF910895E1E8F0E08081886066 -:1042000080838081816080838FB7F89493E090935E -:10421000890090ED909388008FBF0895EFE6F0E05D -:104220008081826080830895EFE6F0E080818D7F59 -:1042300080830895EFE6F0E0908182E08927808313 -:1042400008951F920F920FB60F9211242F933F9350 -:104250004F935F936F937F938F939F93AF93BF938E -:10426000EF93FF938091DC019091DD010196909393 -:10427000DD018093DC01811103C082E00E945E07B2 -:10428000E091DD01E695E695F0E0E457FB4FE4911F -:104290008091DC018E1303C080E00E945E07FF91D5 -:1042A000EF91BF91AF919F918F917F916F915F91AE -:1042B0004F913F912F910F900FBE0F901F90189527 -:1042C0000E9467216894B1110C94F62108950E9410 -:1042D000DB2188F09F5798F0B92F9927B751B0F09C -:1042E000E1F0660F771F881F991F1AF0BA95C9F77A -:1042F00014C0B13091F00E94F521B1E008950C9402 -:10430000F521672F782F8827B85F39F0B93FCCF3B4 -:10431000869577956795B395D9F73EF490958095F6 -:10432000709561957F4F8F4F9F4F0895E89409C016 -:1043300097FB3EF490958095709561957F4F8F4FD8 -:104340009F4F9923A9F0F92F96E9BB279395F695EE -:10435000879577956795B795F111F8CFFAF4BB0F6C -:1043600011F460FF1BC06F5F7F4F8F4F9F4F16C0D0 -:10437000882311F096E911C0772321F09EE8872F5A -:10438000762F05C0662371F096E8862F70E060E016 -:104390002AF09A95660F771F881FDAF7880F96958F -:1043A000879597F9089557FD9058440F551F59F078 -:1043B0005F3F71F04795880F97FB991F61F09F3F12 -:1043C00079F087950895121613061406551FF2CF3B -:1043D0004695F1DF08C0161617061806991FF1CF8B -:1043E00086957105610508940895E894BB276627B2 -:1043F0007727CB0197F908950E940F220C94802211 -:104400000E94722238F00E94792220F0952311F048 -:104410000C9469220C946F2211240C94F6210E94B2 -:10442000D32170F3959FC1F3950F50E0551F629F04 -:10443000F001729FBB27F00DB11D639FAA27F00DFD -:10444000B11DAA1F649F6627B00DA11D661F829F24 -:104450002227B00DA11D621F739FB00DA11D621F09 -:10446000839FA00D611D221F749F3327A00D611D26 -:10447000231F849F600D211D822F762F6A2F112408 -:104480009F5750409AF0F1F088234AF0EE0FFF1F3B -:10449000BB1F661F771F881F91505040A9F79E3F92 -:1044A000510580F00C9469220C94F6215F3FE4F3EF -:1044B000983ED4F3869577956795B795F795E795E8 -:1044C0009F5FC1F7FE2B880F911D9695879597F9F1 -:1044D000089597F99F6780E870E060E008959FEF86 -:1044E00080EC089500240A9416161706180609068B -:1044F000089500240A94121613061406050608955A -:10450000092E0394000C11F4882352F0BB0F40F4E1 -:10451000BF2B11F460FF04C06F5F7F4F8F4F9F4F21 -:10452000089597FB072E16F4009407D077FD09D065 -:104530000E94AB2207FC05D03EF4909581959F4FD9 -:104540000895709561957F4F0895EE0FFF1F0590B8 -:10455000F491E02D0994AA1BBB1B51E107C0AA1FCF -:10456000BB1FA617B70710F0A61BB70B881F991F14 -:104570005A95A9F780959095BC01CD010895F999B8 -:10458000FECF92BD81BDF89A992780B50895A8E124 -:10459000B0E042E050E00C94E222262FF999FECFE1 -:1045A0001FBA92BD81BD20BD0FB6F894FA9AF99A50 -:1045B0000FBE019608950E94CD22272F0C94CE2283 -:1045C000DC01CB01FC01F999FECF06C0F2BDE1BDD3 -:1045D000F89A319600B40D9241505040B8F70895C2 -:0445E000F894FFCF7D -:1045E40020025F07EF07CA07960762070101BA01B5 -:1045F40028080A03140A3F4D36394D040004CA033F -:10460400910324033D0356036F03010203040506CB -:04461400070809008A +:102340000C94FA19222319F0213009F45FC28E830C +:102350000E94FD198E8186C1002321F0223008F0F1 +:1023600055C26CC1211152C27DC1002321F022232C +:1023700009F464C1F8C1222309F474C109C28B2D88 +:1023800086958695837019F08130D1F03FC2002385 +:1023900021F0812F9B2D937002C080E090E0269663 +:1023A0000FB6F894DEBF0FBECDBFDF91CF911F9166 +:1023B0000F91FF90EF90DF90CF90BF900C94E10EC3 +:1023C000002321F0812F9B2D937002C080E090E0CC +:1023D00026960FB6F894DEBF0FBECDBFDF91CF912A +:1023E0001F910F91FF90EF90DF90CF90BF900C94D2 +:1023F000F70E812F002319F00E94801D02C00E9459 +:10240000E81D26960FB6F894DEBF0FBECDBFDF9154 +:10241000CF911F910F91FF90EF90DF90CF90BF90E1 +:102420000C946D1E8B2D837009F075C00111EEC1E7 +:10243000812F829586958770880F880F912F9F70C6 +:10244000C92ED12CE12CF12C082E04C0CC0CDD1CA3 +:10245000EE1CFF1C0A94D2F714FF12C00FE010E02C +:1024600020E030E004C0000F111F221F331F8A95A7 +:10247000D2F7C901B801609570958095909503C019 +:1024800060E070E0CB014B2D46954695437042309D +:10249000C1F060F56C297D298E299F29413051F1C9 +:1024A00026960FB6F894DEBF0FBECDBFDF91CF9159 +:1024B0001F910F91FF90EF90DF90CF90BF900C9401 +:1024C00005186C297D298E299F2926960FB6F89428 +:1024D000DEBF0FBECDBFDF91CF911F910F91FF9057 +:1024E000EF90DF90CF90BF900C9421180E940518B8 +:1024F000C701B60126960FB6F894DEBF0FBECDBF5A +:10250000DF91CF911F910F91FF90EF90DF90CF90CF +:10251000BF900C94E917002319F08B2D817001C036 +:102520008695882309F472C1812F829586958770DC +:10253000880F880F912F9F70C92ED12CE12CF12C80 +:10254000082E04C0CC0CDD1CEE1CFF1C0A94D2F734 +:1025500014FF12C00FE010E020E030E004C0000FD4 +:10256000111F221F331F8A95D2F7C901B801609548 +:1025700070958095909503C060E070E0CB014B2D85 +:102580004695469543704230C1F060F56C297D292F +:102590008E299F29413051F126960FB6F894DEBF5F +:1025A0000FBECDBFDF91CF911F910F91FF90EF90A4 +:1025B000DF90CF90BF900C94DF186C297D298E2975 +:1025C0009F2926960FB6F894DEBF0FBECDBFDF91D0 +:1025D000CF911F910F91FF90EF90DF90CF90BF9020 +:1025E0000C94FB180E94DF18C701B60126960FB69F +:1025F000F894DEBF0FBECDBFDF91CF911F910F9139 +:10260000FF90EF90DF90CF90BF900C94C318103FD5 +:10261000D1F118F4103E50F4A1C0123F09F463C088 +:1026200008F44CC0133F09F473C098C01F708B2D81 +:102630008F710023A1F00E945C18812F26960FB69F +:10264000F894DEBF0FBECDBFDF91CF911F910F91E8 +:10265000FF90EF90DF90CF90BF900C94FE100E94FF +:102660007D18812F26960FB6F894DEBF0FBECDBF22 +:10267000DF91CF911F910F91FF90EF90DF90CF905E +:10268000BF900C9405110023A9F02111BFC08B2D20 +:102690008F7126960FB6F894DEBF0FBECDBFDF91C7 +:1026A000CF911F910F91FF90EF90DF90CF90BF904F +:1026B0000C94A218223008F0A9C0E9CF0023A9F099 +:1026C0008B2D8F7126960FB6F894DEBF0FBECDBF4F +:1026D000DF91CF911F910F91FF90EF90DF90CF90FE +:1026E000BF900C945C18002359F38B2D8F712696A4 +:1026F0000FB6F894DEBF0FBECDBFDF91CF911F9113 +:102700000F91FF90EF90DF90CF90BF900C947D18C9 +:10271000002399F08B2D8F7126960FB6F894DEBFAB +:102720000FBECDBFDF91CF911F910F91FF90EF9022 +:10273000DF90CF90BF900C94471826960FB6F89470 +:10274000DEBF0FBECDBFDF91CF911F910F91FF90E4 +:10275000EF90DF90CF90BF900C943D180023A9F02C +:10276000222309F4ADCF812F26960FB6F894DEBF51 +:102770000FBECDBFDF91CF911F910F91FF90EF90D2 +:10278000DF90CF90BF900C94E70F222309F4ADCFD8 +:10279000812F26960FB6F894DEBF0FBECDBFDF9116 +:1027A000CF911F910F91FF90EF90DF90CF90BF904E +:1027B0000C94AF104B2D4F70612FC7010E94AF02D8 +:1027C00026960FB6F894DEBF0FBECDBFDF91CF9136 +:1027D0001F910F91FF90EF90DF90CF90BF900C94DE +:1027E00061174B2D4F70612FC70126960FB6F894D5 +:1027F000DEBF0FBECDBFDF91CF911F910F91FF9034 +:10280000EF90DF90CF90BF900C946A0726960FB69A +:10281000F894DEBF0FBECDBFDF91CF911F910F9116 +:10282000FF90EF90DF90CF90BF9008950E94F7192E +:102830000E94CC190E94111A0E941D1F0E946D1E39 +:1028400080E090E00E94E10E80E090E00C94F70EB2 +:102850000E94E7190C9416140E941819292F22952A +:102860002F702C3030F42A3048F42250223078F483 +:1028700005C02C3041F02F3031F009C0803E48F0C7 +:10288000803F29F406C093FB882780F9089580E0F3 +:10289000089581E00895CF93DF9300D000D01F9278 +:1028A000CDB7DEB70F900F900F900F900F90DF9184 +:1028B000CF910895CF93DF9300D000D000D0CDB753 +:1028C000DEB726960FB6F894DEBF0FBECDBFDF9100 +:1028D000CF9108951F93CF93DF93C091790116E0B4 +:1028E00080917A01C81799F0D0E01C9FF0011D9FDC +:1028F000F00D1124E558FE4F4081518162817381B2 +:10290000848195810E945A142196C770E9CFDF9186 +:10291000CF911F9108954091AB015091AC0160910E +:10292000AD017091AE018091AF019091B0010C9416 +:102930005A148091B00182958F7009F054C0809133 +:10294000AD01882309F44FC080917901A0917A01EB +:102950004091AE015091AF016091AB017091AC011B +:10296000B6E08A1709F43FC090E041155105C1F166 +:102970007F3F11F46F3FA1F1B89FF001B99FF00DB7 +:102980001124E558FE4F218127132AC020812613E8 +:1029900027C02281211124C02381348124173507C7 +:1029A00010F421503109241B350B283C3105C0F4AB +:1029B0002091B0012F7020612093B00126E0289F64 +:1029C000F001299FF00D1124E058FE4F80818F7097 +:1029D000806180838BEA91E00E940C110C946A1450 +:1029E00001968770BECF0895CF92DF92EF92FF924B +:1029F0000F931F93CF93DF93CDB7DEB762970FB6D8 +:102A0000F894DEBF0FBECDBF8C0185E0F801DE017A +:102A10001D9601900D928A95E1F7D8014C9111967F +:102A20005C91119712966C918091AE019091AF01DB +:102A3000009709F475C13091AB017091AC017F3FF3 +:102A400019F43F3F09F46CC1F801C380D480E090D1 +:102A5000AD01EE2009F4BEC02091B001C816D90620 +:102A600028F0D601A81BB90BCD0104C08095909524 +:102A70008C0D9D1DFF24F394883C910578F0F12C7A +:102A8000207F09F0C4C07C2DD98AC88A89890E9418 +:102A90004B148BEA91E00E940C11AFC0822F807F13 +:102AA00009F045C0571313C0431311C061110FC083 +:102AB0002F7020612093B0010E948B148BEA91E06B +:102AC0000E940C118091B001F80185832EC0CD28A1 +:102AD00019F15F3F11F44F3FF9F0F62E61111CC060 +:102AE0008091790120917A0136E0821709F45BC068 +:102AF00090E0389FF001399FF00D1124E558FE4F0A +:102B00007181571306C07081471303C07281711120 +:102B100003C001968770E9CFF62E662309F41CC125 +:102B20008091B00181608093B001F12C15C15713E1 +:102B300009C0431307C0611105C08091B001F801BD +:102B40008583C8C04D875E878D859E856A8B0E9470 +:102B50002C146A898823D1F16623C1F12091B00138 +:102B6000822F82958F7090E0029774F08091AB0174 +:102B70009091AC0198878F831986DB86CA862C8753 +:102B8000CE0107960E940C1186E0F801ABEAB1E095 +:102B900001900D928A95E1F70E9499140E948B147E +:102BA000FF24F394D9C04D875E878D859E850E9452 +:102BB0001819292F22952F70223008F0C1C09F705C +:102BC00009F0BBC0805E883008F4C6C0C8010E940E +:102BD0000C11E6CFC816D90608F453C0F601E81B5D +:102BE000F90BCF01883C910508F450C0F12C7C2DE5 +:102BF000D98AC88A89890E944B14EBEAF1E086E001 +:102C0000DF011D928A95E9F70E948B14A5C0571326 +:102C100014C0431312C0611110C08091B001F801BB +:102C20008583C8010E940C1186E0EBEAF1E0DF0128 +:102C30001D928A95E9F7FE2C8FC04D875E878D85A2 +:102C40009E856A8B0E942C146A89882309F4BECF62 +:102C5000662309F4BBCF2091B001822F82958F703B +:102C600090E002970CF490CF8091AB019091AC0171 +:102C70009A8389831B82DD82CC822E83CE010196CA +:102C800081CF809590958C0D9D1DACCFF62E66233F +:102C900009F49CCF571333C0431331C02091B001C6 +:102CA00020FD24C0822F82958F70482F50E041155F +:102CB0005105E1F0D80115962C9315974F30510529 +:102CC00049F08F5F982F9295907F822F8F70892B7C +:102CD00015968C93C8010E940C1186E0F801ABEAAE +:102CE000B1E001900D928A95E1F78ECF86E0F80170 +:102CF000ABEAB1E001900D928A95E1F72DC04D87C6 +:102D00005E878D859E850E942C1481113DCF809118 +:102D1000B00181608093B001C8010E940C111CC0F9 +:102D2000662309F453CF4D875E878D859E850E946B +:102D30002C14882309F44ACF27CF811143CF0CC02C +:102D4000243008F043CF9F7009F43CCFD80115968A +:102D50009C91907F09F036CF8F2D62960FB6F89434 +:102D6000DEBF0FBECDBFDF91CF911F910F91FF90BE +:102D7000EF90DF90CF9008951F93CF93DF93CDB75F +:102D8000DEB72C970FB6F894DEBF0FBECDBF4F83D2 +:102D9000588769877A878B879C87CE0107960E9420 +:102DA000F414882371F08A859B85892B09F441C02E +:102DB00088858F3F09F065C08F818F3F09F061C022 +:102DC00038C086E0FE013796DE01119601900D9223 +:102DD0008A95E1F76A857B856115710551F1FF815F +:102DE000E885EF3F11F4FF3F21F120917A0130E0B7 +:102DF000C9010196877099274091790150E08417A5 +:102E0000950709F447C0F983EA837D836C8396E0D4 +:102E1000929FD001939FB00D1124A558BE4FFE0183 +:102E2000319601900D929A95E1F780937A010E9474 +:102E30006A1416E08091790190917A018917B9F1AD +:102E4000189FC001112485589E4F0E94F4148823B6 +:102E500071F1E09179011E9FF0011124E558FE4FB8 +:102E60004081518162817381848195810E945A14CD +:102E70008091790190E0019687709927809379017C +:102E8000D9CF4F81588569857A858B859C850E942D +:102E90005A14CFCF0E94281410927A01109279010F +:102EA000EBEAF1E086E0DF011D928A95E9F72C96C6 +:102EB0000FB6F894DEBF0FBECDBFDF91CF911F914B +:102EC0000895EF92FF920F931F93CF93DF938C019E +:102ED000892B09F46CC0F12CEE24E394E8012196CF +:102EE000F8018491843740F4843008F051C0813077 +:102EF00081F0823019F15BC0853709F444C0A8F134 +:102F00009CE7980F903708F052C08F770E94AF105F +:102F100041C00E5F1F4FFE01849190E2980F9830E0 +:102F200050F48770FE2D01C0FF0F8A95EAF78F2FAE +:102F30000E94EA1914C00E94E70F2DC00E5F1F4FB8 +:102F4000FE01849190E2980F983060F48770FE2D16 +:102F500001C0FF0F8A95EAF78F2F0E94F0190E9497 +:102F6000111A19C00E94AF1016C00E5F1F4FFE014C +:102F7000C491CC2381F08FE99FE00197F1F700C065 +:102F80000000C150F6CF0E5F1F4FFE01F49003C04A +:102F90000E94E70F8E018F2D882309F49FCFEFE960 +:102FA000FFE03197F1F700C000008150F5CFDF91CD +:102FB000CF911F910F91FF90EF9008950895609326 +:102FC000B5017093B6018093B7019093B8010C944A +:102FD00016140F931F930091B5011091B601209123 +:102FE000B7013091B801DC01CB01802B912BA22BD2 +:102FF000B32B8093B5019093B601A093B701B09322 +:10300000B8011F910F910C9416140F931F93009108 +:10301000B5011091B6012091B7013091B801DC01E2 +:10302000CB0180239123A223B3238093B5019093F6 +:10303000B601A093B701B093B8011F910F910C9402 +:1030400016140F931F930091B5011091B6012091B2 +:10305000B7013091B801DC01CB0180279127A2276D +:10306000B3278093B5019093B601A093B701B093B5 +:10307000B8011F910F910C9416141092B101109287 +:10308000B2011092B3011092B4010C94161441E0F5 +:1030900050E060E070E004C0440F551F661F771FCA +:1030A0008A95D2F74093B1015093B2016093B30176 +:1030B0007093B4010C94161441E050E060E070E0AD +:1030C00004C0440F551F661F771F8A95D2F7809161 +:1030D000B1019091B201A091B301B091B401482B1C +:1030E000592B6A2B7B2B4093B1015093B201609313 +:1030F000B3017093B4010C94161441E050E060E009 +:1031000070E004C0440F551F661F771F8A95D2F7E1 +:1031100040955095609570958091B1019091B20164 +:10312000A091B301B091B401482359236A237B23B2 +:103130004093B1015093B2016093B3017093B40115 +:103140000C94161441E050E060E070E004C0440FBD +:10315000551F661F771F8A95D2F78091B101909114 +:10316000B201A091B301B091B401482759276A2751 +:103170007B274093B1015093B2016093B3017093E8 +:10318000B4010C9416140F931F930091B101109188 +:10319000B2012091B3013091B401DC01CB01802B4D +:1031A000912BA22BB32B8093B1019093B201A093EA +:1031B000B301B093B4011F910F910C9416140F93A7 +:1031C0001F930091B1011091B2012091B301309190 +:1031D000B401DC01CB0180239123A223B32380938C +:1031E000B1019093B201A093B301B093B4011F91C8 +:1031F0000F910C9416140F931F930091B10110912D +:10320000B2012091B3013091B401DC01CB018027E0 +:103210009127A227B3278093B1019093B201A09385 +:10322000B301B093B4011F910F910C94161408953B +:10323000CF92DF92EF92FF920F931F93CF93DF9382 +:103240008C01C090B101D090B201E090B301F09038 +:10325000B4018091B5019091B601A091B701B091F0 +:10326000B801C82AD92AEA2AFB2ACFE1D0E0D7013F +:10327000C6010C2E04C0B695A795979587950A941C +:10328000D2F780FF07C0B8018C2F0E941E06813044 +:10329000910531F4219758F7B80180E00E941E068D +:1032A000DF91CF911F910F91FF90EF90DF90CF9022 +:1032B000089590910C019923F1F090910D019923BB +:1032C000D1F0982F9695969596959F3080F5E09140 +:1032D0000E01F0910F01E90FF11D877021E030E040 +:1032E000A90102C0440F551F8A95E2F7CA019181D6 +:1032F000892B8183089520910E0130910F01F901EE +:1033000032969FEF40E05191851789F09F3F19F465 +:10331000511101C0942F4F5F4E30A9F79F3F39F0F4 +:10332000F901E90FF11D97FDFA958283089508953B +:1033300090910C019923F9F090910D019923D9F006 +:10334000982F9695969596959F3028F5E0910E01C9 +:10335000F0910F01E90FF11D877021E030E0A90124 +:1033600002C0440F551F8A95E2F7CA0180959181EA +:1033700089238183089520910E0130910F01F90175 +:103380003296205F3F4F9081891301C010823196A1 +:10339000E217F307C1F7089581E090E0E0910E0194 +:1033A000F0910F01E80FF91F10820196803191050D +:1033B000A9F708959091CB01892B8093CB010895B3 +:1033C00080959091CB0189238093CB010895109231 +:1033D000CB0108959091CA01892B8093CA01089569 +:1033E00080959091CA0189238093CA010895109213 +:1033F000CA0108958093B90108951092B901089502 +:1034000080910E0190910F01FC0131969C01205F8B +:103410003F4F80E0919191118F5FE217F307D1F751 +:103420000895E0910E01F0910F018091CB0180830E +:10343000E0910E01F0910F0190818091CA01892BDA +:1034400080838091B901882361F0E0910E01F091B1 +:103450000F019081892B80830E94001A81111092A4 +:10346000B90180910E0190910F010C94CB0ECF9277 +:10347000DF92EF92FF926C01EE24FF24C114D1047D +:10348000E104F10421F0C701B60120E101C020E010 +:10349000C72ED82EE92EFF24C114D104E104F10473 +:1034A00019F0285FC701B6016B017C0154E0F69466 +:1034B000E794D794C7945A95D1F7C114D104E10485 +:1034C000F10419F02C5FC701B6016B017C0142E0E9 +:1034D000F694E794D794C7944A95D1F7C114D104D0 +:1034E000E104F10419F02E5FC701B601DC01CB0144 +:1034F000B695A79597958795892B8A2B8B2B09F0E5 +:103500002F5F822FFF90EF90DF90CF9008958091F2 +:10351000E401843011F120E488E190E00FB6F894E2 +:10352000A895809360000FBE2093600083B7817FD1 +:10353000846083BF83B7816083BF7894889583B7A5 +:103540008E7F83BF0FB6F894A89580916000886144 +:1035500080936000109260000FBE089508950C944F +:10356000AE1ACF930E94AF1A0E943A040E94AE1A7C +:10357000C0E08C2F0E943405811104C0CF5FCE3093 +:10358000C1F701C081E0CF9108950E9428140E94E4 +:10359000BF0E0C945D0782E084BD93E095BD9AEF69 +:1035A00097BD80936E0008952FB7F8948091CD0158 +:1035B0009091CE01A091CF01B091D0012FBF08957D +:1035C000CF92DF92EF92FF920F931F932FB7F89451 +:1035D0004091CD015091CE016091CF017091D00109 +:1035E0002FBF6A017B01EE24FF248C0120E030E034 +:1035F000C016D106E206F30610F4415051099A01B3 +:10360000281B390BC9011F910F91FF90EF90DF909C +:10361000CF9008951F920F920FB60F9211248F939F +:103620009F93AF93BF938091CD019091CE01A091D4 +:10363000CF01B091D0010196A11DB11D8093CD01A4 +:103640009093CE01A093CF01B093D001BF91AF91E1 +:103650009F918F910F900FBE0F901F9018950E9411 +:10366000B70BF8942FEF87EA91E621508040904005 +:10367000E1F700C0000087E090EBDC018093ED01F2 +:103680009093EE01A093EF01B093F0019CE088E1EC +:103690000FB6F894A895809360000FBE90936000D9 +:1036A000FFCFEF92FF920F931F93CF93DF93D82F0B +:1036B000C0E08C2F0E94340500E010E0E82EF12CD1 +:1036C000C701002E02C0959587950A94E2F780FD08 +:1036D00006C00F5F1F4F0630110591F709C0602F1C +:1036E0007C2F80E00E94FB058D13F3CF81E004C0A6 +:1036F000CF5FCE30F1F680E0DF91CF911F910F9137 +:10370000FF90EF900895CF93C82F8CE20E94511B39 +:10371000882321F08C2FCF910C94511B80E0CF9106 +:103720000895CF930E94D81C811102C00E94BE1C34 +:10373000C5E6C15049F00E943A048FE39CE9019725 +:10374000F1F700C00000F5CF89E20E94831B8111D0 +:1037500013C18AE20E94831B81110E94BE1C85E076 +:103760000E94831B81110E942F1B0E94E31C8093E7 +:10377000CC0187E00E94831B8823A9F18BE10E9482 +:10378000831B882351F08091CC0181FB222720F9F3 +:1037900091E0922790FB81F90EC08EE00E94831B7E +:1037A000882361F08091CC0182FB222720F991E0EF +:1037B000922790FB82F98093CC0115C080E10E9492 +:1037C000831B9091CC01882341F093FB222720F9A1 +:1037D00081E0822780FB93F904C0892F809580FBCC +:1037E00090F99093CC018091CC010E94E71C0E943B +:1037F000F51C8093DE0180EE0E94831B882341F03C +:103800008091DE01982F909590FB80F98093DE01E6 +:1038100089E30E94831B882359F08091DE0181FB9C +:10382000222720F991E0922790FB81F98093DE0115 +:1038300082EE0E94831B882359F08091DE0182FB77 +:10384000222720F991E0922790FB82F98093DE01F4 +:1038500086EE0E94831B882359F08091DE0183FB52 +:10386000222720F991E0922790FB83F98093DE01D3 +:1038700083EE0E94831B882359F08091DE0184FB34 +:10388000222720F991E0922790FB84F98093DE01B2 +:1038900085E30E94831B882359F08091DE0185FB1C +:1038A000222720F991E0922790FB85F98093DE0191 +:1038B00081E30E94831B882359F08091DE0186FBFF +:1038C000222720F991E0922790FB86F98093DE0170 +:1038D00081E10E94831B882359F08091DE0187FBE0 +:1038E000222720F991E0922790FB87F98093DE014F +:1038F0008091DE010E94F91C8091DE0187FB882700 +:1039000080F980930D0187E20E94831BC82F8EE10E +:103910000E94831B8111C2608FE10E94831B811171 +:10392000C46080E20E94831B8111C86081E20E9412 +:10393000831B8111C06182E20E94831B8111C062DE +:1039400083E20E94831B8111C06484E20E94831B76 +:10395000882311F0C06802C0CC2329F08C2F0E946C +:10396000F01C6C2F03C00E94EC1C682F70E080E0FC +:1039700090E0CF910C94DF17CF9108956DEE7EEF1C +:1039800080E090E00E94322360E082E090E00E94BC +:10399000242360E083E090E00E94242360E084E040 +:1039A00090E00E94242360E085E090E00C942423C2 +:1039B00080E090E00E941E2321E08D3E9E4F09F0A2 +:1039C00020E0822F089582E090E00C941623682F67 +:1039D00082E090E00C94242383E090E00C94162382 +:1039E000682F83E090E00C94242384E090E00C9412 +:1039F0001623682F84E090E00C9424238091D30157 +:103A000080FF0BC06091130185E0689FB001112415 +:103A100075956795759567952BC081FF09C0609175 +:103A2000130185E0689FB00111247595679520C04A +:103A300082FF07C06091130185E0689FB0011124E7 +:103A400017C09091D4019923D1F06091120196177B +:103A500088F72091130185E0289F90011124929FFF +:103A6000A001939F500D112470E0CA010E94E8222A +:103A70006038710540F46115710519F406C065E000 +:103A800070E0862F08958FE7089581E00895809172 +:103A9000D30180FF08C06091110170E075956795B2 +:103AA0007595679521C081FF06C06091110170E096 +:103AB0007595679519C082FF04C06091110170E08F +:103AC00010C09091D401992399F06091100196173C +:103AD000A0F780911101899FC001112470E00E941C +:103AE000E8226038710540F46115710519F406C0CB +:103AF00061E070E0862F08958FE7089581E00895D2 +:103B0000803F21F40E94FE1C819504C0813F29F46E +:103B10000E94FE1C8093D7010895823F21F40E94E9 +:103B2000FE1C819504C0833F29F40E94FE1C8093F3 +:103B3000D6010895893F19F40E94471D05C08A3FA8 +:103B400031F40E94471D81958093D80108958B3FE1 +:103B500021F40E94471D819504C08C3F29F40E94E6 +:103B6000471D8093D9010895843F21F48091D501A8 +:103B7000816017C0853F21F48091D501826011C01A +:103B8000863F21F48091D50184600BC0873F21F4EA +:103B90008091D501886005C0883F31F48091D501BE +:103BA00080618093D50108958D3F21F48091D301E8 +:103BB00081600BC08E3F21F48091D301826005C0EB +:103BC0008F3F29F48091D30184608093D3010895BD +:103BD000803F39F48091D70187FF6CC01092D701E4 +:103BE00069C0813F29F48091D7011816BCF362C0E7 +:103BF0009091D601823F29F497FF5CC01092D601C4 +:103C000059C0833F19F41916CCF354C0893F41F4CD +:103C10008091D80118160CF04DC01092D8014AC0FE +:103C20008A3F29F48091D80187FF44C0F6CF8B3FAB +:103C300039F48091D90187FF3DC01092D9013AC073 +:103C40008C3F29F48091D9011816BCF333C0843F0E +:103C500021F48091D5018E7F17C0853F21F480919A +:103C6000D5018D7F11C0863F21F48091D5018B7FD6 +:103C70000BC0873F21F48091D501877F05C0883F25 +:103C800031F48091D5018F7E8093D50113C08D3F93 +:103C900021F48091D3018E7F0BC08E3F21F480915F +:103CA000D3018D7F05C08F3F29F48091D3018B7F95 +:103CB0008093D3018091D60181110EC08091D701EC +:103CC00081110AC08091D801811106C08091D9016B +:103CD000811102C01092D401089585ED91E00E94F7 +:103CE000D60E0E94D41A9093D2018093D1010895E8 +:103CF0001F93CF93DF938091D1019091D2010E94C5 +:103D0000E01AAC019091D401992321F02091140183 +:103D100030E006C0209115018AE0289F900111240F +:103D20004217530708F485C08091D601C091D7018E +:103D3000D091D8011091D901811107C0C11175C06E +:103D4000D11173C0111171C074C09F3F19F09F5FF2 +:103D50009093D401181624F40E94FE1C8093D6017F +:103D60008091D60187FF05C00E94FE1C819580933B +:103D7000D6011C1624F40E94FE1C8093D70180916A +:103D8000D70187FF05C00E94FE1C81958093D70153 +:103D90006091D601662331F1C091D701CC2311F196 +:103DA000062E000C770B880B990B0E94EF2123E362 +:103DB00033E343E35FE30E9453220E94B721609301 +:103DC000D6016C2FCC0F770B880B990B0E94EF213B +:103DD00023E333E343E35FE30E9453220E94B721CE +:103DE0006093D7011D1624F40E94471D8093D801CB +:103DF0008091D80187FF05C00E94471D819580935F +:103E0000D801111624F40E94471D8093D901809196 +:103E1000D90187FF05C00E94471D81958093D90174 +:103E2000DF91CF911F910C946D1E9F3F09F08FCFB2 +:103E3000A0CFDF91CF911F910895E5EDF1E085E0EE +:103E4000DF011D928A95E9F71092D4011092D301F7 +:103E50000895833081F128F4813059F08230D1F017 +:103E60000895853009F449C0B8F1863009F456C088 +:103E7000089580911501262F30E0280F311D2F3F26 +:103E8000310524F4680F6093150108958FEF809336 +:103E90001501089580911401262F30E0280F311D5F +:103EA0002F3F310524F4680F6093140108958FEFBC +:103EB00080931401089580911301262F30E0280F7C +:103EC000311D2F3F310524F4680F609313010895CD +:103ED0008FEF80931301089580911201262F30E017 +:103EE000280F311D2F3F310524F4680F6093120114 +:103EF00008958FEF80931201089580911101262F6C +:103F000030E0280F311D2F3F310524F4680F6093F6 +:103F1000110108958FEF8093110108958091100190 +:103F2000262F30E0280F311D2F3F310524F4680F74 +:103F30006093100108958FEF8093100108958330EE +:103F400011F128F4813049F0823091F008958530E4 +:103F500081F120F18630C1F1089580911501681733 +:103F600020F4861B80931501089510921501089581 +:103F700080911401681720F4861B80931401089522 +:103F800010921401089580911301681720F4861B84 +:103F900080931301089510921301089580911201E6 +:103FA000681720F4861B8093120108951092120165 +:103FB000089580911101681720F4861B80931101E8 +:103FC000089510921101089580911001681720F44E +:103FD000861B8093100108951092100108950F938D +:103FE0001F938D3109F46BC008F03FC08E3009F487 +:103FF0007DC0C0F4873009F46EC068F4863009F0E3 +:10400000AFC08091CC01817F8E7F8093CC0181E015 +:104010008093DB01A6C0883009F458C08B3009F4C6 +:104020009BC09EC0863109F497C078F4803109F4B2 +:1040300070C0813109F094C00E94281490910D0144 +:1040400081E0892780930D0187C0893109F484C0FC +:104050008B3109F085C08091CC0181FB222720F9AA +:1040600091E0922790FB81F94AC0853309F45BC047 +:1040700048F4873209F457C008F45AC0893209F469 +:1040800052C06EC0833438F48A3308F067C0883376 +:1040900009F462C065C0833409F445C0883409F06E +:1040A0005FC00E9428140FEF13ED20E30150104071 +:1040B0002040E1F700C000000E942F1B4DC00E946D +:1040C00071210E94BF0E0E945D0746C00E94E31C42 +:1040D0000E94F51C41C09091CC01892F817090FF06 +:1040E00012C0917F9E7F9093CC013BC08091CC0108 +:1040F00082FB222720F991E0922790FB82F980939E +:10410000CC01992349F18091CC0181608093CC014D +:1041100023C08091CC0183FB222720F991E09227D4 +:1041200090FB83F9ECCF61E070E080E090E010C09C +:104130008D5141E050E060E070E08A019B0104C0D5 +:10414000000F111F221F331F8A95D2F7C901B80132 +:104150000E94DF170E94281481E003C08953E9CF31 +:1041600080E01F910F91089580E008950C94B42091 +:10417000CF93C82F8091DB01813079F018F0823025 +:10418000E9F187C0E0910E01F0910F01808181314A +:1041900069F0823209F07FC009C0E0910E01F09110 +:1041A0000F018081813111F0823261F48C2F0E94E5 +:1041B000B620811104C08C2F0E94EF1F1DC081E02A +:1041C00090E01AC08C2F0E94B420811114C0C43119 +:1041D00079F048F4CB3079F0C03109F060C082E06A +:1041E0008093DB0108C0C93219F0C83321F057C0F1 +:1041F0001092DB0154C081E0817053C0C93289F153 +:1042000018F5C43171F1A8F4C73009F046C08AE04E +:104210008093150194E19093140193E0909313011E +:104220008093120188E08093110188E2809310014D +:1042300034C0CE51C63088F5EC2FF0E0E65DFE4F7D +:1042400080818093DA0129C0CE34E9F020F4CB34A8 +:1042500021F56AE013C0C13579F0C235F1F461E0AF +:104260000DC08091DA01882319F01092DA0115C08F +:1042700081E08093DB0115C061E006C08091DA0126 +:104280000E94291F0AC06AE08091DA010E949F1FE4 +:1042900004C01092DB0180E004C081E002C080E035 +:1042A000ABCFCF910895E1E8F0E080818860808312 +:1042B0008081816080838FB7F89493E09093890028 +:1042C00090ED909388008FBF0895EFE6F0E0808135 +:1042D000826080830895EFE6F0E080818D7F8083A7 +:1042E0000895EFE6F0E0908182E0892780830895C9 +:1042F0001F920F920FB60F9211242F933F934F935B +:104300005F936F937F938F939F93AF93BF93EF933D +:10431000FF938091DC019091DD0101969093DD0186 +:104320008093DC01811103C082E00E945D07E0916F +:10433000DD01E695E695F0E0E457FB4FE4918091CE +:10434000DC018E1303C080E00E945D07FF91EF91B6 +:10435000BF91AF919F918F917F916F915F914F919D +:104360003F912F910F900FBE0F901F9018950E94B4 +:10437000BE216894B1110C944D2208950E943222FE +:1043800088F09F5798F0B92F9927B751B0F0E1F016 +:10439000660F771F881F991F1AF0BA95C9F714C0C6 +:1043A000B13091F00E944C22B1E008950C944C225F +:1043B000672F782F8827B85F39F0B93FCCF38695FF +:1043C00077956795B395D9F73EF49095809570955C +:1043D00061957F4F8F4F9F4F0895E89409C097FBD9 +:1043E0003EF490958095709561957F4F8F4F9F4FCC +:1043F0009923A9F0F92F96E9BB279395F695879510 +:1044000077956795B795F111F8CFFAF4BB0F11F4D2 +:1044100060FF1BC06F5F7F4F8F4F9F4F16C0882379 +:1044200011F096E911C0772321F09EE8872F762FAF +:1044300005C0662371F096E8862F70E060E02AF0F0 +:104440009A95660F771F881FDAF7880F96958795DC +:1044500097F9089557FD9058440F551F59F05F3F45 +:1044600071F04795880F97FB991F61F09F3F79F096 +:1044700087950895121613061406551FF2CF469518 +:10448000F1DF08C0161617061806991FF1CF86959A +:104490007105610508940895E894BB27662777277E +:1044A000CB0197F908950E9466220C94D7220E94AE +:1044B000C92238F00E94D02220F0952311F00C94EC +:1044C000C0220C94C62211240C944D220E942A2250 +:1044D00070F3959FC1F3950F50E0551F629FF00157 +:1044E000729FBB27F00DB11D639FAA27F00DB11D70 +:1044F000AA1F649F6627B00DA11D661F829F2227F9 +:10450000B00DA11D621F739FB00DA11D621F839F7F +:10451000A00D611D221F749F3327A00D611D231F55 +:10452000849F600D211D822F762F6A2F11249F57A3 +:1045300050409AF0F1F088234AF0EE0FFF1FBB1FA6 +:10454000661F771F881F91505040A9F79E3F510565 +:1045500080F00C94C0220C944D225F3FE4F3983E0F +:10456000D4F3869577956795B795F795E7959F5F0F +:10457000C1F7FE2B880F911D9695879597F90895A1 +:1045800097F99F6780E870E060E008959FEF80EC06 +:10459000089500240A9416161706180609060895A9 +:1045A00000240A9412161306140605060895092E0F +:1045B0000394000C11F4882352F0BB0F40F4BF2B7E +:1045C00011F460FF04C06F5F7F4F8F4F9F4F0895BE +:1045D00097FB072E16F4009407D077FD09D00E94B0 +:1045E000022307FC05D03EF4909581959F4F0895D6 +:1045F000709561957F4F0895EE0FFF1F0590F49120 +:10460000E02D0994AA1BBB1B51E107C0AA1FBB1FC9 +:10461000A617B70710F0A61BB70B881F991F5A954E +:10462000A9F780959095BC01CD010895F999FECF29 +:1046300092BD81BDF89A992780B50895A8E1B0E0B0 +:1046400042E050E00C943923262FF999FECF1FBA8F +:1046500092BD81BD20BD0FB6F894FA9AF99A0FBEAB +:10466000019608950E942423272F0C942523DC0112 +:10467000CB01FC01F999FECF06C0F2BDE1BDF89A6D +:10468000319600B40D9241505040B8F70895F89417 +:02469000FFCF5A +:104692002002B60746082108ED07B9070101BA0151 +:1046A20028080A03140A3F4D36394D040004CA0390 +:1046B200910324033D0356036F030102030405061D +:0446C20007080900DC :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 9d4657d0d..0711b9d24 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -28,7 +28,7 @@ Layout ``` ,--------------------------------------------------. ,--------------------------------------------------. - | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | -_ | += | BkSp | + | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| @@ -36,15 +36,16 @@ Layout |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . |//Alt| RShift | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | `~ | Hyper| Left | Right| | Up | Down | COPY | PASTE| RCtrl | + |LCtrl | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | `----------------------------------' `----------------------------------' ,-------------. ,-------------. - Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | +L1 | + Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | ,------|------|------| |------+------+------. | | | PgUp | | Ins | | | - | Enter| ~L2 |------| |------| ~L1 |Space | + | Space| BkSp |------| |------| ~L1 |Enter | | | | PgDn | | Del | | | `--------------------' `--------------------' + ``` ### Symbol Layer @@ -61,22 +62,21 @@ Layout `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | | £ | | | | | | . | 0 | = |Alt+F4| `----------------------------------' `----------------------------------' - ^ ,-------------. ,-------------. - | | | | | | | - THERE! ,------|------|------| |------+------+------. - | | | | | | | | + ↑ ,-------------. ,-------------. + THERE! | | | | | | + ,------|------|------| |------+------+------. + CAD = Ctrl + Alt + Delete | | | | | | | | | | |------| |------| | | - | | | | | | | | + | | | | | CAD | | | `--------------------' `--------------------' ``` - ### Media Layer Not touched this, not used either. ``` ,--------------------------------------------------. ,--------------------------------------------------. - | | | | | | | | | | | | | | | | + | TEENSY | | | | | | | | | | | | | | | |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | | | | MsUp | | | | | | | | | | | | |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -95,9 +95,29 @@ Not touched this, not used either. `--------------------' `--------------------' ``` +Usage +------ + +~L1 / L2 will momentarily switch to a layer if held and another key is pressed. +If pressed and released will remain on layer until pressed again. + + Changelog ----------- +### [0.1.0] - 2016-03-21 + +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 @@ -106,6 +126,6 @@ First version Issues ------- -Space for feedback and notes for future improvements: +Space for feedback and notes for future improvements diff --git a/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg index ca67b3007..e4e92bf46 100644 Binary files a/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg and b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg differ -- cgit v1.2.3 From 15106471b1e9a21f0e318daf51455c0873ef84e6 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 22 Mar 2016 21:52:40 -0700 Subject: Removed whitespace --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 109 +++++++++++++-------------- 1 file changed, 54 insertions(+), 55 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 0711b9d24..1f0668ec2 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -27,72 +27,71 @@ Layout ### 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 | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | - ,------|------|------| |------+------+------. - | | | PgUp | | Ins | | | - | Space| BkSp |------| |------| ~L1 |Enter | - | | | PgDn | | Del | | | - `--------------------' `--------------------' - +,--------------------------------------------------. ,--------------------------------------------------. +| 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 | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Space| BkSp |------| |------| ~L1 |Enter | + | | | 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 | | | - `--------------------' `--------------------' +,--------------------------------------------------. ,--------------------------------------------------. +| | 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 | |VolUp |VolDn | Mute | | | - `----------------------------------' `----------------------------------' - ,-------------. ,-------------. - | | | | | | - ,------|------|------| |------+------+------. - | | | | | | |Brwser| - | | |------| |------| |Back | - | | | | | | | | - `--------------------' `--------------------' +,--------------------------------------------------. ,--------------------------------------------------. +| TEENSY | | | | | | | | | | | | | | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | MsUp | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | Prev | Next | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' ``` Usage -- cgit v1.2.3 From da6317996222a3331792d12c8913d81133873ab1 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 14:10:55 -0700 Subject: Wrong date --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 1f0668ec2..4f7e875f6 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -104,7 +104,7 @@ If pressed and released will remain on layer until pressed again. Changelog ----------- -### [0.1.0] - 2016-03-21 +### [0.1.0] - 2016-03-22 After actually using the keyboard, I've made some changes: -- cgit v1.2.3 From add089ab1a37bf780b47382898c72f972cbd33d3 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 21:04:45 -0700 Subject: New :pound: method --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 6 +- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 2260 ++++++++++++------------- 2 files changed, 1131 insertions(+), 1135 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index 32782867b..b649e6951 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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,UC(0x00A3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,M(3),KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, @@ -150,6 +150,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } 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(PPLS), T(P0), T(P0), T(A), T(P3), T(P0), U(LALT), END ); + } break; } return MACRO_NONE; diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index b63d18d76..9dc1ac412 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -1,1135 +1,1127 @@ -:100000000C9466020C94AD020C94AD020C94AD02FB -:100010000C94AD020C94AD020C94AD020C94AD02A4 -:100020000C94AD020C94AD020C94320C0C94040DA3 -:100030000C94AD020C94AD020C94AD020C94AD0284 -:100040000C94AD020C9478210C94AD020C94AD028A -:100050000C94AD020C940A1B0C94AD020C94AD02EE -:100060000C94AD020C94AD020C94AD020C94AD0254 -:100070000C94AD020C94AD020C94AD020C94AD0244 -:100080000C94AD020C94AD020C94AD020C94AD0234 -:100090000C94AD020C94AD020C94AD020C94AD0224 -:1000A0000C94AD020C94AD020C94AD02710D930D45 -:1000B000860E930D860ED80DFB0D860E500E630E28 -:1000C0004D114D117C117C11BF11F911061406144C -:1000D0001212061407130713DA1306140614F11389 -:1000E0000000F0A1F0A229002B00E300E100E000F5 -:1000F00000001E00140004001D7435004E001F0097 -:100100001A0016001B00007F2A00200008000700CC -:10011000060050002C0021001500090019004F00B6 -:100120004B00220017000A0005000000E200230037 -:100130002F0000004A0000003E00240030000000B4 -:100140004D0000003B0025001C000B0011000000CA -:10015000C200260018000D001000510049002700C1 -:100160000C000E003600520028002D0012000F0077 -:1001700037000601C1002E00130033003874190146 -:100180004C002A0031003400E500E40000000100CA -:10019000010001000100010000003A001E022002DF -:1001A0002202A38001003B001F0221022302010062 -:1001B00001003C002F0226022F00010001003D003B -:1001C000300227023000010001003E0031023500FC -:1001D0003502000001003F000100000001000000A6 -:1001E000010040000100000001000000010041008A -:1001F00052005100240200000100420024002100AE -:100200001E00010001004300250022001F003700EE -:1002100001004400260023002000270001004500C3 -:1002200025022E0231002E004C054600010001007F -:1002300001003D0400000050010001000100010028 -:1002400000000100010001000100010001000100A7 -:100250000100F2000100010001000100F000F100C6 -:100260000100F400010001000100F3000100F500AD -:100270000100010001000100010000000100010077 -:100280000100000001000000010001000100000069 -:100290000100000001000100010001000100000058 -:1002A00001000100010001000100A900010001009E -:1002B00001000100AC00AA00B6000100010001002D -:1002C000AB00A800010001000100010001000100D5 -:1002D000010001000100AE00010001000000160352 -:1002E0004500720067006F0044006F007800200036 -:1002F00045005A00000016034500720067006F00B9 -:1003000044006F007800200045005A0000000403FC -:10031000090409026D00040100A0FA0904000001AB -:1003200003010100092111010001223F000705819D -:100330000308000A09040100010301020009211158 -:10034000010001224D000705820308000A0904028A -:1003500000010300000009211101000122360007FD -:1003600005830308000A09040300010300000009D3 -:100370002111010001223900070584031000011238 -:1003800001100100000008EDFE071301000102004A -:100390000105010906A101050719E029E715002556 -:1003A0000195087501810205081901290595057552 -:1003B000019102950175039101050719002977152F -:1003C000002501957875018102C005010980A10110 -:1003D000850216010026B7001A01002AB700751021 -:1003E00095018100C0050C0901A1018503160100DA -:1003F000269C021A01002A9C02751095018100C0FA -:1004000005010902A1010901A10005091901290538 -:10041000150025019505750181029501750381017E -:100420000501093009311581257F9502750881067E -:1004300009381581257F950175088106050C0A3854 -:10044000021581257F950175088106C0C005010947 -:1004500006A101050719E029E71500250195087592 -:100460000181029501750881010508190129059589 -:100470000575019102950175039101050719002980 -:10048000FF150025FF950675088100C000000000DB -:1004900000000000000000010204060A0F17202CD3 -:1004A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9CF -:1004B000DAC7B39D87715D4A3A2C20170F0A0604EC -:1004C00002010000000000000000000011241FBE17 -:1004D000CFEFDAE0DEBFCDBF04B603FE27C08091C8 -:1004E000ED019091EE01A091EF01B091F001873004 -:1004F000904BA740B04BD1F41092ED011092EE0159 -:100500001092EF011092F00114BE84B7877F84BF70 -:100510000FB6F894A8958091600088618093600080 -:10052000109260000FBEE0E0FFE3099511E0A0E04B -:10053000B1E0E2E9F6E402C005900D92A433B10700 -:10054000D9F721E0A4E3B1E001C01D92AD3EB207AE -:10055000E1F70E9479090C9447230C940000611183 -:100560000BC0FC018281882321F085EE0E94E70FF9 -:1005700003C085EE0E94AF1080E090E008950895DA -:100580006091B1017091B2018091B3019091B40179 -:100590000E94371A56985E9825982D9826982E987E -:1005A00027982F98813019F0823021F00895259AEC -:1005B0002D9A0895269A2E9A089580EC92E0892B20 -:1005C00011F00E94C00280E090E0089556985E9875 -:1005D00025982D9826982E9827982F988FEF90E0A1 -:1005E000909389008093880090938B0080938A0079 -:1005F00090938D0080938C00259A2D9A2FEF80E7A1 -:1006000092E0215080409040E1F700C00000269A1F -:100610002E9A2FEF80E792E0215080409040E1F742 -:1006200000C00000279A2F9A2FEF80E792E0215018 -:1006300080409040E1F700C0000025982D982FEFF2 -:1006400080E792E0215080409040E1F700C0000038 -:1006500026982E982FEF80E792E02150804090401E -:10066000E1F700C0000027982F9856985E982598CB -:100670002D9826982E9827982F98089589EA809388 -:10068000800089E08093810024982C983F988AB15B -:100690008F748AB96E98479A8BB1806B8BB9769AB2 -:1006A0000E94E6028FEB92E0892B11F00E94BF02BC -:1006B00080E090E0089580E2809300018091340111 -:1006C00081110EC00E94AA0381E0809334012FEFB4 -:1006D00083ED90E3215080409040E1F700C000009E -:1006E00080E40E94B0038093000181112EC00E941B -:1006F000DA0380930001811128C00E94DA038093FD -:100700000001811122C08FE30E94DA03809300016F -:1007100081111BC00E94D20380E40E94B003809329 -:100720000001811112C08CE00E94DA038093000165 -:1007300081110BC00E94DA0380930001811105C072 -:100740008FE30E94DA03809300010E94D20380911C -:10075000000108951092B9008AE08093B8000895CE -:1007600094EA9093BC009091BC0097FFFCCF9091CD -:10077000B900987F983021F0903111F081E0089510 -:100780008093BB0084E88093BC008091BC0087FF0D -:10079000FCCF8091B900887F883111F0803471F7E7 -:1007A00080E0089584E98093BC008091BC0084FDC2 -:1007B000FCCF08958093BB0084E88093BC008091B7 -:1007C000BC0087FFFCCF9091B900987F81E0983200 -:1007D00009F480E0089584E88093BC008091BC0017 -:1007E00087FFFCCF8091BB000895809100018111AB -:1007F00015C080E40E94B0038093000181110CC0F9 -:1008000082E10E94DA0380930001811105C08FEF1D -:100810000E94DA03809300010E94D20384B1807F9A -:1008200084B985B1807F85B98AB1837F8AB98BB15C -:10083000837F8BB93E98469808950E945B0380930E -:1008400000010E94F50380B38C7080BB81B3836F7D -:1008500081BBE4E4F1E0A6E3B1E011921D9281E0F6 -:10086000E235F807D1F78EE393E0892B11F00C9471 -:100870003E0308959F92AF92BF92CF92DF92EF9284 -:10088000FF920F931F93CF93DF93809100018823F2 -:1008900079F0809135018F5F80933501811108C017 -:1008A0000E945B0380930001811102C00E94E60256 -:1008B00086E3E82E81E0F82E8701C0E0D0E0BB247B -:1008C000B39492E0A92ECC24C394D12CC730D10587 -:1008D00000F580910001811164C080E40E94B003A2 -:1008E00080930001811112C082E10E94DA0380939B -:1008F000000181110BC0C6010C2E01C0880F0A94A3 -:10090000EAF780950E94DA03809300010E94D203E7 -:1009100048C0CA30A1F028F4C83059F0C93061F09D -:1009200005C0CC3089F070F0CD3089F0209A28983D -:1009300010C0219A29980DC0229A2A980AC0239A99 -:100940002B9807C0529A01C0539A5B9802C03E9AF6 -:100950004698E0EAEA95F1F78FB181708B25799995 -:1009600002C032E001C030E0832B7C9902C034E049 -:1009700001C030E0832B7D9902C028E001C020E057 -:10098000822B7E9902C090E101C090E0892B9FB13B -:100990009095991F9927991F9295990F907E892B71 -:1009A0000FC080910001811150C080E40E94B0030B -:1009B000809300018823B1F1912C0E94D203892DEC -:1009C000D8019C91981719F08C93A09201010E9474 -:1009D000F50321960F5F1F4FCE30D10509F076CF7A -:1009E000809101018823B9F081508093010188230F -:1009F00039F0EFE9FFE03197F1F700C000000BC0DC -:100A0000E4E4F1E0D7018D917D018193B4E4EB162C -:100A1000B1E0FB06B9F78DED92E0892BC1F00E94A1 -:100A2000DD0215C083E10E94DA0380930001811189 -:100A3000C3CF81E40E94B003809300018111BCCF39 -:100A40000E94EB03982E9094B8CF80E0B9CF81E05C -:100A5000DF91CF911F910F91FF90EF90DF90CF909A -:100A6000BF90AF909F900895E82FF0E0EC5BFE4FB1 -:100A70008081089508958B3B910580F4883A910513 -:100A800048F5853A9105D8F48430910508F0B2C054 -:100A9000019709F06EC081E090E00895803E9105D5 -:100AA00008F467C0883E910508F4A4C09C01205F4B -:100AB00031092031310508F05CC090650895853A10 -:100AC000910509F459C0863A910509F058C082E8A9 -:100AD00090E40895883A910509F454C0893A910543 -:100AE00009F453C08A3A910509F452C08B3A910532 -:100AF00009F451C08C3A910509F450C08D3A910522 -:100B000009F44FC0803B910509F44EC08E3A91051F -:100B100009F44DC08F3A910509F44CC0813B910511 -:100B200009F44BC0823B910509F44AC0833B91050F -:100B300009F449C0843B910509F448C0853B9105FF -:100B400009F447C0863B910509F446C0873B9105EF -:100B500009F445C0883B910509F444C0893B9105DF -:100B600009F443C08A3B910509F442C080E094E453 -:100B7000089580E090E0089581E890E4089583E886 -:100B800090E4089582EE94E4089589EE94E4089543 -:100B90008AEE94E4089585EB94E4089586EB94E45A -:100BA000089587EB94E408958CEC94E408958DEC1B -:100BB00094E4089583E895E408958AE895E4089517 -:100BC00082E995E4089584E995E4089581E296E444 -:100BD000089583E296E4089584E296E4089585E218 -:100BE00096E4089586E296E4089587E296E40895EF -:100BF0008AE296E4089524E5829FC0011124FC0155 -:100C000026E0729FE00DF11D1124E60FF11DEE0F9D -:100C1000FF1FEA51FF4F859194910895880F991F06 -:100C2000FC01E05AF040859194910895880F991F36 -:100C3000FC01E052FF4F85919491089524E5829F35 -:100C4000C0011124FC0146E0749FE00DF11D112448 -:100C5000E60FF11DEE0FFF1FEA51FF4F85919491B2 -:100C60009C013A9521154FE1340708F425C13F5105 -:100C70002115304120F49F700E94160608959C01B2 -:100C800030532115304118F49927906C089581153F -:100C900020E5920769F40E9428144FEF84E39CE05A -:100CA000415080409040E1F700C000000C942F1BA1 -:100CB000813020E5920731F48091CC0181608093EE -:100CC000CC0108959C0130552115304108F05CC0DD -:100CD000292F33272F70332721303105E9F4AC0158 -:100CE00064E0440F551F6A95E1F744275370BC0137 -:100CF0006370772702C0220F331F6A95E2F73C68C2 -:100D0000242B352B73E0880F991F7A95E1F78076B5 -:100D10009927822B932B08952230310529F4982F9F -:100D20008827816F906A089523303105A1F4AC01C2 -:100D300033E0440F551F3A95E1F7407E57708370BA -:100D4000992721E030E002C0220F331F8A95E2F795 -:100D5000C9019C6816C02430310531F5AC0123E08F -:100D6000440F551F2A95E1F7407E577083709927ED -:100D700021E030E002C0220F331F8A95E2F7C9015B -:100D80009A68842B952B08959C013057211530418A -:100D900018F49F70906208959C01305821153041DD -:100DA00018F49F70906A0895803E9105E0F4803CAD -:100DB000910558F58133910509F46FC048F48932E3 -:100DC000910509F463C08A32910509F46DC072C0BF -:100DD00089339105E9F082389105D1F08533910589 -:100DE00009F44DC067C0833E910581F138F4803E1F -:100DF0009105B9F0823E9105D9F05CC0863E91051F -:100E000061F1873E9105A1F155C00E940E0608953B -:100E10002091DE0120FD02C021FF4CC080EE90E059 -:100E200049C08091DE0180FFF9CF89E390E042C0A4 -:100E30008091DE0182FF0EC08091DE0184FF03C03D -:100E400080E090E037C083EE90E034C08091DE0116 -:100E500082FFF2CF82EE90E02DC08091DE0183FF11 -:100E60000BC08091DE0184FDEBCF87EE90E022C0C5 -:100E70008091DE0183FFF5CF86EE90E01BC080916C -:100E8000DE0185FF07C089E290E014C08091DE0199 -:100E900085FFF9CF85E390E00DC08091DE0186FFEC -:100EA00007C08AE290E006C08091DE0186FFF9CF9C -:100EB00081E390E00E943B0508950895009739F082 -:100EC0008A30910514F44D9608950697089587E2A7 -:100ED00090E008951F93CF93DF93FC0182818823D4 -:100EE00009F440C0C62FD0E0D42B82EE0E94E70F59 -:100EF0008D2F82958F7090E00E945E07182F0E94C0 -:100F0000E70F812F0E94AF10CE0188279F70892F95 -:100F100090E00E945E07182F0E94E70F812F0E9429 -:100F2000AF10CE01807F992724E0969587952A956A -:100F3000E1F70E945E07182F0E94E70F812F0E94A1 -:100F4000AF10CE018F7099270E945E07C82F0E94B4 -:100F5000E70F8C2F0E94AF1082EEDF91CF911F918F -:100F60000C94AF10DF91CF911F9108958091620191 -:100F70000895CF93DF9300D01F92CDB7DEB79C01C9 -:100F80008091E401843019F593E099833B832A83AF -:100F90009093E9008FEF9091E800815095FD06C095 -:100FA00095ED9A95F1F700008111F5CF8091E80059 -:100FB00085FF0DC040E050E063E070E0CE01019697 -:100FC0000E94260A8091E8008E778093E8000F90B7 -:100FD0000F900F90DF91CF910895CF93DF9300D0C2 -:100FE0001F92CDB7DEB72091E401243021F522E035 -:100FF00029839B838A8383E08093E9008FEF90911C -:10100000E800815095FD06C095ED9A95F1F7000036 -:101010008111F5CF8091E80085FF0DC040E050E0E0 -:1010200063E070E0CE0101960E94260A8091E800FC -:101030008E778093E8000F900F900F90DF91CF9103 -:1010400008959C018091E4018430F9F482E080935A -:10105000E9009FEF8091E800915085FD06C085ED85 -:101060008A95F1F700009111F5CF8091E80085FF96 -:101070000CC040E050E065E070E0C9010E94260A23 -:101080008091E8008E778093E8000895CF93DF93F6 -:10109000EC018091E401843009F046C090910C018C -:1010A0009923D9F090910D019923B9F08093E9002B -:1010B0008FEF9091E800815095FD06C095E19A95DB -:1010C000F1F700008111F5CF8091E80085FF2CC079 -:1010D00040E050E060E170E017C081E08093E900FB -:1010E0008FEF9091E800815095FD06C095ED9A959F -:1010F000F1F700008111F5CF8091E80085FF14C061 -:1011000040E050E068E070E0CE010E94260A809145 -:10111000E8008E778093E80080E1FE01A2E5B1E06F -:1011200001900D928A95E1F7DF91CF91089580911A -:10113000E301811109C00E94B70B0E94140C809139 -:10114000E20084608093E20008951092E301089524 -:1011500008950C9465210E94C51A0E946B210E947B -:10116000BF0E0C945D0742E061EC81E00E94300B01 -:1011700042E061EC82E00E94300B42E061EC83E0EF -:101180000E94300B42E161EC84E00C94300B8091C2 -:10119000E601833009F455C030F4813071F08230BB -:1011A00009F48EC008958A3009F47AC08B3009F4AE -:1011B00060C0893009F09CC020C08091E501813A6F -:1011C00009F096C08091E800877F8093E8008091C5 -:1011D000E9019091EA01892B21F460E182E591E037 -:1011E00003C060E080E090E070E00E94710A8091AE -:1011F000E8008B778093E80008958091E5018132C3 -:1012000009F076C08091E9019091EA01009719F008 -:10121000039709F06DC08091E800877F8093E80014 -:101220008091E80082FD05C08091E4018111F8CF32 -:101230005FC08091F100809362018091E8008B771C -:1012400053C08091E501813A09F052C08091E901D3 -:101250009091EA01892B09F04BC08091E800877FCB -:101260008093E8008091E80080FFFCCF80910C0122 -:1012700036C08091E5018132D9F58091E9019091E4 -:10128000EA01892BA9F58091E800877F8093E80027 -:101290000E94650B8091E70180930C010C94281447 -:1012A0008091E501813221F58091E800877F80936C -:1012B000E8000E94650B8091E80180936301089526 -:1012C0008091E501813AA1F48091E800877F8093C5 -:1012D000E8008091E80080FFFCCF8091630180935B -:1012E000F1008091E8008E778093E8000C94650B04 -:1012F000089584B7877F84BF0FB6F894A89580912E -:101300006000886180936000109260000FBE90E0E2 -:1013100080E80FB6F89480936100909361000FBE4F -:101320000E940E0F0E94B70B0E94140C8091E200E5 -:1013300084608093E20078940E949F0E0E94100FB8 -:1013400082E091E00E94BA0E0E9453218091E40154 -:10135000853069F40E94871A8091E2018823B1F3F5 -:101360000E94B11A882391F30E94100AEFCF0E94C5 -:10137000160FECCF292F332723303105C9F060F445 -:101380002130310581F02230310509F041C08DE670 -:1013900090E022E133E040C021323105E1F0223219 -:1013A000310531F135C082E190E02FE733E034C000 -:1013B00099278130910549F028F0029749F5EEED23 -:1013C000F2E005C0EEE0F3E002C0E6EFF2E0849167 -:1013D00090E09F0121C06430D8F4E62FF0E0EE0FDA -:1013E000FF1FEE5DFE4F2081318189E090E014C047 -:1013F000643070F470E0FB01EE0FFF1FE65EFE4FFD -:1014000020813181FB01EA5EFE4F808190E004C0C3 -:1014100080E090E020E030E0FA01318320830895FD -:1014200080E189BD82E189BD09B400FEFDCF8091D4 -:10143000D8008F7D8093D8008091E00082608093F7 -:10144000E0008091E00081FDFCCF0895CF92DF9213 -:10145000EF92FF920F931F93CF93DF93EC018B01D9 -:101460006A010E94840B811133C0C114D10439F088 -:10147000F60180819181081B190BC80FD91FE12C3F -:10148000F12C0115110519F18091E80085FD16C0B8 -:101490008091E8008E778093E800C114D10449F070 -:1014A000F60180819181E80EF91EF182E08285E0EB -:1014B0000FC00E94840B882321F30AC08991809376 -:1014C000F10001501109FFEFEF1AFF0ADACF80E0B7 -:1014D000DF91CF911F910F91FF90EF90DF90CF9010 -:1014E00008952091EB013091EC012617370748F061 -:1014F0006115710539F42091E8002E772093E800FA -:1015000001C0B901FC0120E06115710579F18091FC -:10151000E4018823F1F18530F1F18091E80083FD49 -:101520003CC08091E80082FD2EC08091E80080FFE1 -:10153000EBCF2091F3008091F20090E0922B6115A7 -:10154000710551F08830910538F421912093F10014 -:10155000615071090196F3CF21E0089709F020E06E -:101560008091E8008E778093E800CECF2111CFCF15 -:101570000AC08091E401882361F0853061F0809198 -:10158000E80083FD0AC08091E80082FFF2CF80E08E -:10159000089582E0089583E0089581E00895209100 -:1015A000EB013091EC012617370748F06115710502 -:1015B00039F42091E8002E772093E80001C0B901AA -:1015C000FC0120E06115710591F18091E40188230F -:1015D00009F440C0853009F43FC08091E80083FDE4 -:1015E0003DC08091E80082FD2FC08091E80080FF1F -:1015F000E9CF2091F3008091F20090E0922B6115E9 -:10160000710559F08830910540F424912093F10040 -:101610003196615071090196F2CF21E0089709F0E7 -:1016200020E08091E8008E778093E800CBCF2111F5 -:10163000CCCF0AC08091E401882361F0853061F04D -:101640008091E80083FD0AC08091E80082FFF2CF1C -:1016500080E0089582E0089583E0089581E0089590 -:10166000982F973068F59093E900981739F07091AA -:10167000EC002091ED005091F00003C0242F762F54 -:1016800050E021FD02C09F5FECCF3091EB003E7F28 -:101690003093EB003091ED003D7F3093ED003091C1 -:1016A000EB0031603093EB007093EC002093ED0081 -:1016B0005093F0002091EE0027FDE5CF80E00895E3 -:1016C0008F708093E90081E008958091E50187FFA4 -:1016D00011C08091E80082FD05C08091E401811174 -:1016E000F8CF11C08091E8008B770BC08091E401A6 -:1016F000882349F08091E80080FFF8CF8091E800CE -:101700008E778093E80008952091E4003091E50001 -:1017100095E64091EC00842F817040FF23C08091BA -:10172000E80080FD1DC08091E401882399F0853098 -:1017300099F08091EB0085FD11C04091E40050913B -:10174000E5002417350729F3915011F09A01E1CFF4 -:1017500084E0089582E0089583E0089581E008958B -:1017600080E008954091E80042FFDDCF08950E9497 -:10177000250C0E942D0CE0EEF0E0808181608083DA -:10178000E8EDF0E080818F77808319BCA7EDB0E0B1 -:101790008C918E7F8C9380818F7E80831092E30169 -:1017A00008950F931F93CF93DF930E94250C0E94FF -:1017B0002D0CC8EDD0E088818F7788838881806880 -:1017C000888388818F7D888319BC1092E4011092F0 -:1017D000E0011092E2011092E10100EE10E0F80148 -:1017E00080818B7F808388818160888342E060E094 -:1017F00080E00E94300BE1EEF0E080818E7F8083FC -:10180000E2EEF0E080818160808380818860808367 -:10181000F80180818E7F8083888180618883DF9159 -:10182000CF911F910F910895E8EDF0E080818F7EB8 -:101830008083E7EDF0E080818160808384E082BF77 -:1018400081E08093E3010C94D10BE8EDF0E080811E -:101850008E7F80831092E20008951092DA00109239 -:10186000E10008951F920F920FB60F9211242F934B -:101870003F934F935F936F937F938F939F93AF9318 -:10188000BF93EF93FF938091E10082FF0BC08091A3 -:10189000E20082FF07C08091E1008B7F8093E1002E -:1018A0000E949E0E8091DA0080FF1FC08091D800B8 -:1018B00080FF1BC08091DA008E7F8093DA008091D8 -:1018C000D90080FF0DC080E189BD82E189BD09B4E6 -:1018D00000FEFDCF81E08093E4010E94970805C0DF -:1018E00019BC1092E4010E94A5088091E10080FFDC -:1018F00019C08091E20080FF15C08091E2008E7FC8 -:101900008093E2008091E20080618093E200809108 -:10191000D80080628093D80019BC85E08093E401F0 -:101920000E94A9088091E10084FF30C08091E2000C -:1019300084FF2CC080E189BD82E189BD09B400FE2D -:10194000FDCF8091D8008F7D8093D8008091E100F9 -:101950008F7E8093E1008091E2008F7E8093E20091 -:101960008091E20081608093E2008091E001882311 -:1019700011F084E007C08091E30087FD02C081E0A0 -:1019800001C083E08093E4010E94AB088091E100F4 -:1019900083FF29C08091E20083FF25C08091E10090 -:1019A000877F8093E10082E08093E4011092E00160 -:1019B0008091E1008E7F8093E1008091E2008E7F34 -:1019C0008093E2008091E20080618093E20042E037 -:1019D00060E080E00E94300B8091F000886080938E -:1019E000F0000E94A808FF91EF91BF91AF919F91E5 -:1019F0008F917F916F915F914F913F912F910F90B8 -:101A00000FBE0F901F9018951F920F920FB60F9256 -:101A100011242F933F934F935F936F937F938F93F3 -:101A20009F93AF93BF93CF93DF93EF93FF93C091B7 -:101A3000E900CF708091EC00D82FD17080FDD0E804 -:101A40001092E9008091F000877F8093F0007894F5 -:101A50000E94480D1092E9008091F0008860809308 -:101A6000F000CD2BCF70C093E900FF91EF91DF9193 -:101A7000CF91BF91AF919F918F917F916F915F9126 -:101A80004F913F912F910F900FBE0F901F9018957F -:101A90001F93CF93DF93CDB7DEB7AA970FB6F89415 -:101AA000DEBF0FBECDBFE5EEF1E08091F100819386 -:101AB00021E0ED3EF207C9F70E94C7088091E800D7 -:101AC00083FF24C18091E5019091E601492F50E008 -:101AD0004A30510508F01AC1FA01EA5AFF4F0C9436 -:101AE000FC22803881F0823809F010C18091E90130 -:101AF0008F708093E9008091EB0085FB882780F947 -:101B00001092E90006C08091E1019091E2019111EB -:101B100082609091E800977F9093E8008093F100B5 -:101B20001092F100C8C0282F2D7F09F0EFC0882344 -:101B300019F0823061F0EAC08091E701813009F04C -:101B4000E5C0933009F080E08093E2012BC08091E2 -:101B5000E701811127C08091E9018F7009F4D6C097 -:101B60008093E9002091EB0020FF1CC0933021F40A -:101B70008091EB00806214C09091EB009061909393 -:101B8000EB0021E030E0A90102C0440F551F8A9507 -:101B9000E2F74093EA001092EA008091EB0088603F -:101BA0008093EB001092E9008091E800877F86C067 -:101BB0008111ACC01091E7011F778091E30080781C -:101BC000812B8093E3008091E800877F8093E80079 -:101BD0000E94650B8091E80080FFFCCF8091E300BC -:101BE00080688093E300111102C082E001C083E0AD -:101BF0008093E4018BC08058823008F087C08091C8 -:101C0000E7019091E8018C3D53E0950779F583E079 -:101C10008A838AE289834FB7F894DE01139620E025 -:101C20003EE051E2E32FF0E050935700E49120FFB3 -:101C300003C0E295EF703F5FEF708E2F90E0EA30C7 -:101C400010F0C79601C0C0968D939D932F5F2431ED -:101C500049F74FBF8091E800877F8093E8006AE2F0 -:101C600070E0CE0101960E94710A14C0AE014F5F70 -:101C70005F4F6091E9010E94BA09BC01892B09F408 -:101C800045C09091E800977F9093E80089819A8100 -:101C90000E94CF0A8091E8008B778093E80036C0DD -:101CA0008038A1F58091E800877F8093E8008091DB -:101CB000E0018093F1008091E8008E778093E80046 -:101CC0000E94650B23C0811121C08091E701909192 -:101CD000E80199270297D4F48091E800877F8093E8 -:101CE000E8008091E7018093E0010E94650B8091FC -:101CF000E001811106C08091E30087FD02C081E010 -:101D000001C084E08093E4010E94B3088091E80060 -:101D100083FF0AC08091E800877F8093E80080916C -:101D2000EB0080628093EB00AA960FB6F894DEBFBA -:101D30000FBECDBFDF91CF911F9108950895CF932E -:101D40008091E4018823A1F0C091E900CF709091C7 -:101D5000EC00892F817090FD80E8C82B1092E9007B -:101D60008091E80083FD0E94480DCF70C093E90088 -:101D7000CF91089590936901809368010895E0914F -:101D80006801F0916901309721F00190F081E02D18 -:101D9000099480E00895E0916801F091690130971D -:101DA00021F00280F381E02D09940895E09168010B -:101DB000F0916901309721F00480F581E02D0994BC -:101DC000089520916601309167012817390771F055 -:101DD0009093670180936601E0916801F091690139 -:101DE000309721F00680F781E02D09940895209125 -:101DF0006401309165012817390771F090936501EE -:101E000080936401E0916801F0916901309721F0BD -:101E10000084F185E02D0994089508950C940D0F28 -:101E20000E94CB1A0E941D040C94911BCF92DF924A -:101E3000EF92FF920F931F93CF93DF93CDB7DEB74F -:101E40002B970FB6F894DEBF0FBECDBF0E943A04A9 -:101E50008BE6C82E81E0D82E00E010E0E02E802F27 -:101E60000E943405F60141916F01F82EF426B1F479 -:101E70000F5F1F4F0E30110589F78FEF89838A831B -:101E80001B820E94D41A8160782F9D838C834981A4 -:101E90005A816B818D810E94B90F40C09091CC0115 -:101EA00091FF04C08B870E943A058B8520E030E0CB -:101EB0004F2D50E0922FBA01022E02C07595679502 -:101EC0000A94E2F760FF24C02E83EF8221E030E025 -:101ED000690102C0CC0CDD1C9A95E2F790E08C21E0 -:101EE0009D21892B09F420E028870E94D41A816063 -:101EF000782F9A8789874E815F8168858A850E94BD -:101F0000B90FF801E559FE4F8081C826C08206C08E -:101F10002F5F3F4F2630310569F6AACF0E94781E09 -:101F20000E94BF0E90916A018917A1F00E94BF0E16 -:101F300080936A012B960FB6F894DEBF0FBECDBF1B -:101F4000DF91CF911F910F91FF90EF90DF90CF9095 -:101F50000C945D072B960FB6F894DEBF0FBECDBF75 -:101F6000DF91CF911F910F91FF90EF90DF90CF9075 -:101F70000895CF93DF93CDB7DEB72B970FB6F894C4 -:101F8000DEBF0FBECDBF4F83588769877A878B87A7 -:101F9000DE01119686E0FD0111928A95E9F785E050 -:101FA000FE01379601900D928A95E1F749815A8199 -:101FB0006B817C818D819E810E94BC162B960FB611 -:101FC000F894DEBF0FBECDBFDF91CF910895CF93C0 -:101FD000C82F882309F4C1C0823859F40E94BF0E6B -:101FE00081FDBBC089E30E9459190E94111A89E33F -:101FF0000CC0833879F40E94BF0E80FDAEC083E52B -:102000000E9459190E94111A83E50E949819CF91D4 -:102010000C94111A843859F40E94BF0E82FD9DC0A1 -:1020200087E40E9459190E94111A87E4EECF8CEFC1 -:102030008C0F813A48F48C2F0E94B82081118DC0FA -:102040008C2F0E945919E3CF80E28C0F883048F41E -:10205000C77081E001C0880FCA95EAF70E94DA19BB -:10206000D6CF8BE58C0F833078F4C53A29F0C63A89 -:1020700031F083E890E005C081E890E002C082E89A -:1020800090E0CF910C94E10E88E58C0F833108F03D -:1020900064C0C83A39F1C93A41F1CA3A49F1CB3A78 -:1020A00051F1CC3A59F1CD3A61F1C03B69F1CE3AE8 -:1020B00071F1CF3A79F1C13B81F1C23B89F1C33B68 -:1020C00091F1C43B99F1C53BA1F1C63BA9F1C73BD6 -:1020D000B1F1C83BB9F1C93BC1F1CA3BC9F180E0DC -:1020E00090E038C082EE90E035C089EE90E032C0DA -:1020F0008AEE90E02FC085EB90E02CC086EB90E05C -:1021000029C087EB90E026C08CEC90E023C08DECDA -:1021100090E020C083E891E01DC08AE891E01AC0F9 -:1021200082E991E017C084E991E014C081E292E075 -:1021300011C083E292E00EC084E292E00BC085E21F -:1021400092E008C086E292E005C087E292E002C019 -:102150008AE292E0CF910C94F70ECF9108958823F4 -:1021600009F44BC0823859F40E94BF0E81FF45C06C -:1021700089E30E9459190E94111A89E30CC083381F -:1021800071F40E94BF0E80FF38C083E50E94591988 -:102190000E94111A83E50E9498190C94111A843830 -:1021A00059F40E94BF0E82FF28C087E40E9459198B -:1021B0000E94111A87E4EFCF9CEF980F913A58F3E1 -:1021C00090E2980F983050F4877091E001C0990F19 -:1021D0008A95EAF7892F0E94E019DFCF9BE5980FD7 -:1021E000933020F480E090E00C94E10E885A833123 -:1021F00020F480E090E00C94F70E0895882321F0FD -:102200000E94DA190C94111A0895882321F00E9473 -:10221000E0190C94111A0895BF92CF92DF92EF92B9 -:10222000FF920F931F93CF93DF9300D000D000D085 -:10223000CDB7DEB77C0185E0F701DE011196019094 -:102240000D928A95E1F7F70183819481892B09F436 -:10225000DDC2908181818F3F19F49F3F09F4D6C27E -:10226000F7010281258122952F7099838A838981C4 -:102270009A812E830E941819182FB92E0E941719BF -:102280000E94DE17EB2DE295EF704E2F50E0FA0121 -:10229000E05AFF4F2E810C94FC228B2D807F9B2DCA -:1022A0009F70F92E882319F0F29480EFF822002312 -:1022B00049F0FF2009F457C28F2D0E94EA190E94AD -:1022C000111A51C2812F0E94AF10FF2009F49EC243 -:1022D0008F2D0E94F01926960FB6F894DEBF0FBE20 -:1022E000CDBFDF91CF911F910F91FF90EF90DF90C5 -:1022F000CF90BF900C94111A3B2D307F8B2D8F7097 -:10230000303211F08295807F112319F0113021F1C4 -:102310002CC00023B9F0222309F490C1213009F028 -:102320008DC126960FB6F894DEBF0FBECDBFDF91EC -:10233000CF911F910F91FF90EF90DF90CF90BF90C2 -:102340000C94FA19222319F0213009F45FC28E830C -:102350000E94FD198E8186C1002321F0223008F0F1 -:1023600055C26CC1211152C27DC1002321F022232C -:1023700009F464C1F8C1222309F474C109C28B2D88 -:1023800086958695837019F08130D1F03FC2002385 -:1023900021F0812F9B2D937002C080E090E0269663 -:1023A0000FB6F894DEBF0FBECDBFDF91CF911F9166 -:1023B0000F91FF90EF90DF90CF90BF900C94E10EC3 -:1023C000002321F0812F9B2D937002C080E090E0CC -:1023D00026960FB6F894DEBF0FBECDBFDF91CF912A -:1023E0001F910F91FF90EF90DF90CF90BF900C94D2 -:1023F000F70E812F002319F00E94801D02C00E9459 -:10240000E81D26960FB6F894DEBF0FBECDBFDF9154 -:10241000CF911F910F91FF90EF90DF90CF90BF90E1 -:102420000C946D1E8B2D837009F075C00111EEC1E7 -:10243000812F829586958770880F880F912F9F70C6 -:10244000C92ED12CE12CF12C082E04C0CC0CDD1CA3 -:10245000EE1CFF1C0A94D2F714FF12C00FE010E02C -:1024600020E030E004C0000F111F221F331F8A95A7 -:10247000D2F7C901B801609570958095909503C019 -:1024800060E070E0CB014B2D46954695437042309D -:10249000C1F060F56C297D298E299F29413051F1C9 -:1024A00026960FB6F894DEBF0FBECDBFDF91CF9159 -:1024B0001F910F91FF90EF90DF90CF90BF900C9401 -:1024C00005186C297D298E299F2926960FB6F89428 -:1024D000DEBF0FBECDBFDF91CF911F910F91FF9057 -:1024E000EF90DF90CF90BF900C9421180E940518B8 -:1024F000C701B60126960FB6F894DEBF0FBECDBF5A -:10250000DF91CF911F910F91FF90EF90DF90CF90CF -:10251000BF900C94E917002319F08B2D817001C036 -:102520008695882309F472C1812F829586958770DC -:10253000880F880F912F9F70C92ED12CE12CF12C80 -:10254000082E04C0CC0CDD1CEE1CFF1C0A94D2F734 -:1025500014FF12C00FE010E020E030E004C0000FD4 -:10256000111F221F331F8A95D2F7C901B801609548 -:1025700070958095909503C060E070E0CB014B2D85 -:102580004695469543704230C1F060F56C297D292F -:102590008E299F29413051F126960FB6F894DEBF5F -:1025A0000FBECDBFDF91CF911F910F91FF90EF90A4 -:1025B000DF90CF90BF900C94DF186C297D298E2975 -:1025C0009F2926960FB6F894DEBF0FBECDBFDF91D0 -:1025D000CF911F910F91FF90EF90DF90CF90BF9020 -:1025E0000C94FB180E94DF18C701B60126960FB69F -:1025F000F894DEBF0FBECDBFDF91CF911F910F9139 -:10260000FF90EF90DF90CF90BF900C94C318103FD5 -:10261000D1F118F4103E50F4A1C0123F09F463C088 -:1026200008F44CC0133F09F473C098C01F708B2D81 -:102630008F710023A1F00E945C18812F26960FB69F -:10264000F894DEBF0FBECDBFDF91CF911F910F91E8 -:10265000FF90EF90DF90CF90BF900C94FE100E94FF -:102660007D18812F26960FB6F894DEBF0FBECDBF22 -:10267000DF91CF911F910F91FF90EF90DF90CF905E -:10268000BF900C9405110023A9F02111BFC08B2D20 -:102690008F7126960FB6F894DEBF0FBECDBFDF91C7 -:1026A000CF911F910F91FF90EF90DF90CF90BF904F -:1026B0000C94A218223008F0A9C0E9CF0023A9F099 -:1026C0008B2D8F7126960FB6F894DEBF0FBECDBF4F -:1026D000DF91CF911F910F91FF90EF90DF90CF90FE -:1026E000BF900C945C18002359F38B2D8F712696A4 -:1026F0000FB6F894DEBF0FBECDBFDF91CF911F9113 -:102700000F91FF90EF90DF90CF90BF900C947D18C9 -:10271000002399F08B2D8F7126960FB6F894DEBFAB -:102720000FBECDBFDF91CF911F910F91FF90EF9022 -:10273000DF90CF90BF900C94471826960FB6F89470 -:10274000DEBF0FBECDBFDF91CF911F910F91FF90E4 -:10275000EF90DF90CF90BF900C943D180023A9F02C -:10276000222309F4ADCF812F26960FB6F894DEBF51 -:102770000FBECDBFDF91CF911F910F91FF90EF90D2 -:10278000DF90CF90BF900C94E70F222309F4ADCFD8 -:10279000812F26960FB6F894DEBF0FBECDBFDF9116 -:1027A000CF911F910F91FF90EF90DF90CF90BF904E -:1027B0000C94AF104B2D4F70612FC7010E94AF02D8 -:1027C00026960FB6F894DEBF0FBECDBFDF91CF9136 -:1027D0001F910F91FF90EF90DF90CF90BF900C94DE -:1027E00061174B2D4F70612FC70126960FB6F894D5 -:1027F000DEBF0FBECDBFDF91CF911F910F91FF9034 -:10280000EF90DF90CF90BF900C946A0726960FB69A -:10281000F894DEBF0FBECDBFDF91CF911F910F9116 -:10282000FF90EF90DF90CF90BF9008950E94F7192E -:102830000E94CC190E94111A0E941D1F0E946D1E39 -:1028400080E090E00E94E10E80E090E00C94F70EB2 -:102850000E94E7190C9416140E941819292F22952A -:102860002F702C3030F42A3048F42250223078F483 -:1028700005C02C3041F02F3031F009C0803E48F0C7 -:10288000803F29F406C093FB882780F9089580E0F3 -:10289000089581E00895CF93DF9300D000D01F9278 -:1028A000CDB7DEB70F900F900F900F900F90DF9184 -:1028B000CF910895CF93DF9300D000D000D0CDB753 -:1028C000DEB726960FB6F894DEBF0FBECDBFDF9100 -:1028D000CF9108951F93CF93DF93C091790116E0B4 -:1028E00080917A01C81799F0D0E01C9FF0011D9FDC -:1028F000F00D1124E558FE4F4081518162817381B2 -:10290000848195810E945A142196C770E9CFDF9186 -:10291000CF911F9108954091AB015091AC0160910E -:10292000AD017091AE018091AF019091B0010C9416 -:102930005A148091B00182958F7009F054C0809133 -:10294000AD01882309F44FC080917901A0917A01EB -:102950004091AE015091AF016091AB017091AC011B -:10296000B6E08A1709F43FC090E041155105C1F166 -:102970007F3F11F46F3FA1F1B89FF001B99FF00DB7 -:102980001124E558FE4F218127132AC020812613E8 -:1029900027C02281211124C02381348124173507C7 -:1029A00010F421503109241B350B283C3105C0F4AB -:1029B0002091B0012F7020612093B00126E0289F64 -:1029C000F001299FF00D1124E058FE4F80818F7097 -:1029D000806180838BEA91E00E940C110C946A1450 -:1029E00001968770BECF0895CF92DF92EF92FF924B -:1029F0000F931F93CF93DF93CDB7DEB762970FB6D8 -:102A0000F894DEBF0FBECDBF8C0185E0F801DE017A -:102A10001D9601900D928A95E1F7D8014C9111967F -:102A20005C91119712966C918091AE019091AF01DB -:102A3000009709F475C13091AB017091AC017F3FF3 -:102A400019F43F3F09F46CC1F801C380D480E090D1 -:102A5000AD01EE2009F4BEC02091B001C816D90620 -:102A600028F0D601A81BB90BCD0104C08095909524 -:102A70008C0D9D1DFF24F394883C910578F0F12C7A -:102A8000207F09F0C4C07C2DD98AC88A89890E9418 -:102A90004B148BEA91E00E940C11AFC0822F807F13 -:102AA00009F045C0571313C0431311C061110FC083 -:102AB0002F7020612093B0010E948B148BEA91E06B -:102AC0000E940C118091B001F80185832EC0CD28A1 -:102AD00019F15F3F11F44F3FF9F0F62E61111CC060 -:102AE0008091790120917A0136E0821709F45BC068 -:102AF00090E0389FF001399FF00D1124E558FE4F0A -:102B00007181571306C07081471303C07281711120 -:102B100003C001968770E9CFF62E662309F41CC125 -:102B20008091B00181608093B001F12C15C15713E1 -:102B300009C0431307C0611105C08091B001F801BD -:102B40008583C8C04D875E878D859E856A8B0E9470 -:102B50002C146A898823D1F16623C1F12091B00138 -:102B6000822F82958F7090E0029774F08091AB0174 -:102B70009091AC0198878F831986DB86CA862C8753 -:102B8000CE0107960E940C1186E0F801ABEAB1E095 -:102B900001900D928A95E1F70E9499140E948B147E -:102BA000FF24F394D9C04D875E878D859E850E9452 -:102BB0001819292F22952F70223008F0C1C09F705C -:102BC00009F0BBC0805E883008F4C6C0C8010E940E -:102BD0000C11E6CFC816D90608F453C0F601E81B5D -:102BE000F90BCF01883C910508F450C0F12C7C2DE5 -:102BF000D98AC88A89890E944B14EBEAF1E086E001 -:102C0000DF011D928A95E9F70E948B14A5C0571326 -:102C100014C0431312C0611110C08091B001F801BB -:102C20008583C8010E940C1186E0EBEAF1E0DF0128 -:102C30001D928A95E9F7FE2C8FC04D875E878D85A2 -:102C40009E856A8B0E942C146A89882309F4BECF62 -:102C5000662309F4BBCF2091B001822F82958F703B -:102C600090E002970CF490CF8091AB019091AC0171 -:102C70009A8389831B82DD82CC822E83CE010196CA -:102C800081CF809590958C0D9D1DACCFF62E66233F -:102C900009F49CCF571333C0431331C02091B001C6 -:102CA00020FD24C0822F82958F70482F50E041155F -:102CB0005105E1F0D80115962C9315974F30510529 -:102CC00049F08F5F982F9295907F822F8F70892B7C -:102CD00015968C93C8010E940C1186E0F801ABEAAE -:102CE000B1E001900D928A95E1F78ECF86E0F80170 -:102CF000ABEAB1E001900D928A95E1F72DC04D87C6 -:102D00005E878D859E850E942C1481113DCF809118 -:102D1000B00181608093B001C8010E940C111CC0F9 -:102D2000662309F453CF4D875E878D859E850E946B -:102D30002C14882309F44ACF27CF811143CF0CC02C -:102D4000243008F043CF9F7009F43CCFD80115968A -:102D50009C91907F09F036CF8F2D62960FB6F89434 -:102D6000DEBF0FBECDBFDF91CF911F910F91FF90BE -:102D7000EF90DF90CF9008951F93CF93DF93CDB75F -:102D8000DEB72C970FB6F894DEBF0FBECDBF4F83D2 -:102D9000588769877A878B879C87CE0107960E9420 -:102DA000F414882371F08A859B85892B09F441C02E -:102DB00088858F3F09F065C08F818F3F09F061C022 -:102DC00038C086E0FE013796DE01119601900D9223 -:102DD0008A95E1F76A857B856115710551F1FF815F -:102DE000E885EF3F11F4FF3F21F120917A0130E0B7 -:102DF000C9010196877099274091790150E08417A5 -:102E0000950709F447C0F983EA837D836C8396E0D4 -:102E1000929FD001939FB00D1124A558BE4FFE0183 -:102E2000319601900D929A95E1F780937A010E9474 -:102E30006A1416E08091790190917A018917B9F1AD -:102E4000189FC001112485589E4F0E94F4148823B6 -:102E500071F1E09179011E9FF0011124E558FE4FB8 -:102E60004081518162817381848195810E945A14CD -:102E70008091790190E0019687709927809379017C -:102E8000D9CF4F81588569857A858B859C850E942D -:102E90005A14CFCF0E94281410927A01109279010F -:102EA000EBEAF1E086E0DF011D928A95E9F72C96C6 -:102EB0000FB6F894DEBF0FBECDBFDF91CF911F914B -:102EC0000895EF92FF920F931F93CF93DF938C019E -:102ED000892B09F46CC0F12CEE24E394E8012196CF -:102EE000F8018491843740F4843008F051C0813077 -:102EF00081F0823019F15BC0853709F444C0A8F134 -:102F00009CE7980F903708F052C08F770E94AF105F -:102F100041C00E5F1F4FFE01849190E2980F9830E0 -:102F200050F48770FE2D01C0FF0F8A95EAF78F2FAE -:102F30000E94EA1914C00E94E70F2DC00E5F1F4FB8 -:102F4000FE01849190E2980F983060F48770FE2D16 -:102F500001C0FF0F8A95EAF78F2F0E94F0190E9497 -:102F6000111A19C00E94AF1016C00E5F1F4FFE014C -:102F7000C491CC2381F08FE99FE00197F1F700C065 -:102F80000000C150F6CF0E5F1F4FFE01F49003C04A -:102F90000E94E70F8E018F2D882309F49FCFEFE960 -:102FA000FFE03197F1F700C000008150F5CFDF91CD -:102FB000CF911F910F91FF90EF9008950895609326 -:102FC000B5017093B6018093B7019093B8010C944A -:102FD00016140F931F930091B5011091B601209123 -:102FE000B7013091B801DC01CB01802B912BA22BD2 -:102FF000B32B8093B5019093B601A093B701B09322 -:10300000B8011F910F910C9416140F931F93009108 -:10301000B5011091B6012091B7013091B801DC01E2 -:10302000CB0180239123A223B3238093B5019093F6 -:10303000B601A093B701B093B8011F910F910C9402 -:1030400016140F931F930091B5011091B6012091B2 -:10305000B7013091B801DC01CB0180279127A2276D -:10306000B3278093B5019093B601A093B701B093B5 -:10307000B8011F910F910C9416141092B101109287 -:10308000B2011092B3011092B4010C94161441E0F5 -:1030900050E060E070E004C0440F551F661F771FCA -:1030A0008A95D2F74093B1015093B2016093B30176 -:1030B0007093B4010C94161441E050E060E070E0AD -:1030C00004C0440F551F661F771F8A95D2F7809161 -:1030D000B1019091B201A091B301B091B401482B1C -:1030E000592B6A2B7B2B4093B1015093B201609313 -:1030F000B3017093B4010C94161441E050E060E009 -:1031000070E004C0440F551F661F771F8A95D2F7E1 -:1031100040955095609570958091B1019091B20164 -:10312000A091B301B091B401482359236A237B23B2 -:103130004093B1015093B2016093B3017093B40115 -:103140000C94161441E050E060E070E004C0440FBD -:10315000551F661F771F8A95D2F78091B101909114 -:10316000B201A091B301B091B401482759276A2751 -:103170007B274093B1015093B2016093B3017093E8 -:10318000B4010C9416140F931F930091B101109188 -:10319000B2012091B3013091B401DC01CB01802B4D -:1031A000912BA22BB32B8093B1019093B201A093EA -:1031B000B301B093B4011F910F910C9416140F93A7 -:1031C0001F930091B1011091B2012091B301309190 -:1031D000B401DC01CB0180239123A223B32380938C -:1031E000B1019093B201A093B301B093B4011F91C8 -:1031F0000F910C9416140F931F930091B10110912D -:10320000B2012091B3013091B401DC01CB018027E0 -:103210009127A227B3278093B1019093B201A09385 -:10322000B301B093B4011F910F910C94161408953B -:10323000CF92DF92EF92FF920F931F93CF93DF9382 -:103240008C01C090B101D090B201E090B301F09038 -:10325000B4018091B5019091B601A091B701B091F0 -:10326000B801C82AD92AEA2AFB2ACFE1D0E0D7013F -:10327000C6010C2E04C0B695A795979587950A941C -:10328000D2F780FF07C0B8018C2F0E941E06813044 -:10329000910531F4219758F7B80180E00E941E068D -:1032A000DF91CF911F910F91FF90EF90DF90CF9022 -:1032B000089590910C019923F1F090910D019923BB -:1032C000D1F0982F9695969596959F3080F5E09140 -:1032D0000E01F0910F01E90FF11D877021E030E040 -:1032E000A90102C0440F551F8A95E2F7CA019181D6 -:1032F000892B8183089520910E0130910F01F901EE -:1033000032969FEF40E05191851789F09F3F19F465 -:10331000511101C0942F4F5F4E30A9F79F3F39F0F4 -:10332000F901E90FF11D97FDFA958283089508953B -:1033300090910C019923F9F090910D019923D9F006 -:10334000982F9695969596959F3028F5E0910E01C9 -:10335000F0910F01E90FF11D877021E030E0A90124 -:1033600002C0440F551F8A95E2F7CA0180959181EA -:1033700089238183089520910E0130910F01F90175 -:103380003296205F3F4F9081891301C010823196A1 -:10339000E217F307C1F7089581E090E0E0910E0194 -:1033A000F0910F01E80FF91F10820196803191050D -:1033B000A9F708959091CB01892B8093CB010895B3 -:1033C00080959091CB0189238093CB010895109231 -:1033D000CB0108959091CA01892B8093CA01089569 -:1033E00080959091CA0189238093CA010895109213 -:1033F000CA0108958093B90108951092B901089502 -:1034000080910E0190910F01FC0131969C01205F8B -:103410003F4F80E0919191118F5FE217F307D1F751 -:103420000895E0910E01F0910F018091CB0180830E -:10343000E0910E01F0910F0190818091CA01892BDA -:1034400080838091B901882361F0E0910E01F091B1 -:103450000F019081892B80830E94001A81111092A4 -:10346000B90180910E0190910F010C94CB0ECF9277 -:10347000DF92EF92FF926C01EE24FF24C114D1047D -:10348000E104F10421F0C701B60120E101C020E010 -:10349000C72ED82EE92EFF24C114D104E104F10473 -:1034A00019F0285FC701B6016B017C0154E0F69466 -:1034B000E794D794C7945A95D1F7C114D104E10485 -:1034C000F10419F02C5FC701B6016B017C0142E0E9 -:1034D000F694E794D794C7944A95D1F7C114D104D0 -:1034E000E104F10419F02E5FC701B601DC01CB0144 -:1034F000B695A79597958795892B8A2B8B2B09F0E5 -:103500002F5F822FFF90EF90DF90CF9008958091F2 -:10351000E401843011F120E488E190E00FB6F894E2 -:10352000A895809360000FBE2093600083B7817FD1 -:10353000846083BF83B7816083BF7894889583B7A5 -:103540008E7F83BF0FB6F894A89580916000886144 -:1035500080936000109260000FBE089508950C944F -:10356000AE1ACF930E94AF1A0E943A040E94AE1A7C -:10357000C0E08C2F0E943405811104C0CF5FCE3093 -:10358000C1F701C081E0CF9108950E9428140E94E4 -:10359000BF0E0C945D0782E084BD93E095BD9AEF69 -:1035A00097BD80936E0008952FB7F8948091CD0158 -:1035B0009091CE01A091CF01B091D0012FBF08957D -:1035C000CF92DF92EF92FF920F931F932FB7F89451 -:1035D0004091CD015091CE016091CF017091D00109 -:1035E0002FBF6A017B01EE24FF248C0120E030E034 -:1035F000C016D106E206F30610F4415051099A01B3 -:10360000281B390BC9011F910F91FF90EF90DF909C -:10361000CF9008951F920F920FB60F9211248F939F -:103620009F93AF93BF938091CD019091CE01A091D4 -:10363000CF01B091D0010196A11DB11D8093CD01A4 -:103640009093CE01A093CF01B093D001BF91AF91E1 -:103650009F918F910F900FBE0F901F9018950E9411 -:10366000B70BF8942FEF87EA91E621508040904005 -:10367000E1F700C0000087E090EBDC018093ED01F2 -:103680009093EE01A093EF01B093F0019CE088E1EC -:103690000FB6F894A895809360000FBE90936000D9 -:1036A000FFCFEF92FF920F931F93CF93DF93D82F0B -:1036B000C0E08C2F0E94340500E010E0E82EF12CD1 -:1036C000C701002E02C0959587950A94E2F780FD08 -:1036D00006C00F5F1F4F0630110591F709C0602F1C -:1036E0007C2F80E00E94FB058D13F3CF81E004C0A6 -:1036F000CF5FCE30F1F680E0DF91CF911F910F9137 -:10370000FF90EF900895CF93C82F8CE20E94511B39 -:10371000882321F08C2FCF910C94511B80E0CF9106 -:103720000895CF930E94D81C811102C00E94BE1C34 -:10373000C5E6C15049F00E943A048FE39CE9019725 -:10374000F1F700C00000F5CF89E20E94831B8111D0 -:1037500013C18AE20E94831B81110E94BE1C85E076 -:103760000E94831B81110E942F1B0E94E31C8093E7 -:10377000CC0187E00E94831B8823A9F18BE10E9482 -:10378000831B882351F08091CC0181FB222720F9F3 -:1037900091E0922790FB81F90EC08EE00E94831B7E -:1037A000882361F08091CC0182FB222720F991E0EF -:1037B000922790FB82F98093CC0115C080E10E9492 -:1037C000831B9091CC01882341F093FB222720F9A1 -:1037D00081E0822780FB93F904C0892F809580FBCC -:1037E00090F99093CC018091CC010E94E71C0E943B -:1037F000F51C8093DE0180EE0E94831B882341F03C -:103800008091DE01982F909590FB80F98093DE01E6 -:1038100089E30E94831B882359F08091DE0181FB9C -:10382000222720F991E0922790FB81F98093DE0115 -:1038300082EE0E94831B882359F08091DE0182FB77 -:10384000222720F991E0922790FB82F98093DE01F4 -:1038500086EE0E94831B882359F08091DE0183FB52 -:10386000222720F991E0922790FB83F98093DE01D3 -:1038700083EE0E94831B882359F08091DE0184FB34 -:10388000222720F991E0922790FB84F98093DE01B2 -:1038900085E30E94831B882359F08091DE0185FB1C -:1038A000222720F991E0922790FB85F98093DE0191 -:1038B00081E30E94831B882359F08091DE0186FBFF -:1038C000222720F991E0922790FB86F98093DE0170 -:1038D00081E10E94831B882359F08091DE0187FBE0 -:1038E000222720F991E0922790FB87F98093DE014F -:1038F0008091DE010E94F91C8091DE0187FB882700 -:1039000080F980930D0187E20E94831BC82F8EE10E -:103910000E94831B8111C2608FE10E94831B811171 -:10392000C46080E20E94831B8111C86081E20E9412 -:10393000831B8111C06182E20E94831B8111C062DE -:1039400083E20E94831B8111C06484E20E94831B76 -:10395000882311F0C06802C0CC2329F08C2F0E946C -:10396000F01C6C2F03C00E94EC1C682F70E080E0FC -:1039700090E0CF910C94DF17CF9108956DEE7EEF1C -:1039800080E090E00E94322360E082E090E00E94BC -:10399000242360E083E090E00E94242360E084E040 -:1039A00090E00E94242360E085E090E00C942423C2 -:1039B00080E090E00E941E2321E08D3E9E4F09F0A2 -:1039C00020E0822F089582E090E00C941623682F67 -:1039D00082E090E00C94242383E090E00C94162382 -:1039E000682F83E090E00C94242384E090E00C9412 -:1039F0001623682F84E090E00C9424238091D30157 -:103A000080FF0BC06091130185E0689FB001112415 -:103A100075956795759567952BC081FF09C0609175 -:103A2000130185E0689FB00111247595679520C04A -:103A300082FF07C06091130185E0689FB0011124E7 -:103A400017C09091D4019923D1F06091120196177B -:103A500088F72091130185E0289F90011124929FFF -:103A6000A001939F500D112470E0CA010E94E8222A -:103A70006038710540F46115710519F406C065E000 -:103A800070E0862F08958FE7089581E00895809172 -:103A9000D30180FF08C06091110170E075956795B2 -:103AA0007595679521C081FF06C06091110170E096 -:103AB0007595679519C082FF04C06091110170E08F -:103AC00010C09091D401992399F06091100196173C -:103AD000A0F780911101899FC001112470E00E941C -:103AE000E8226038710540F46115710519F406C0CB -:103AF00061E070E0862F08958FE7089581E00895D2 -:103B0000803F21F40E94FE1C819504C0813F29F46E -:103B10000E94FE1C8093D7010895823F21F40E94E9 -:103B2000FE1C819504C0833F29F40E94FE1C8093F3 -:103B3000D6010895893F19F40E94471D05C08A3FA8 -:103B400031F40E94471D81958093D80108958B3FE1 -:103B500021F40E94471D819504C08C3F29F40E94E6 -:103B6000471D8093D9010895843F21F48091D501A8 -:103B7000816017C0853F21F48091D501826011C01A -:103B8000863F21F48091D50184600BC0873F21F4EA -:103B90008091D501886005C0883F31F48091D501BE -:103BA00080618093D50108958D3F21F48091D301E8 -:103BB00081600BC08E3F21F48091D301826005C0EB -:103BC0008F3F29F48091D30184608093D3010895BD -:103BD000803F39F48091D70187FF6CC01092D701E4 -:103BE00069C0813F29F48091D7011816BCF362C0E7 -:103BF0009091D601823F29F497FF5CC01092D601C4 -:103C000059C0833F19F41916CCF354C0893F41F4CD -:103C10008091D80118160CF04DC01092D8014AC0FE -:103C20008A3F29F48091D80187FF44C0F6CF8B3FAB -:103C300039F48091D90187FF3DC01092D9013AC073 -:103C40008C3F29F48091D9011816BCF333C0843F0E -:103C500021F48091D5018E7F17C0853F21F480919A -:103C6000D5018D7F11C0863F21F48091D5018B7FD6 -:103C70000BC0873F21F48091D501877F05C0883F25 -:103C800031F48091D5018F7E8093D50113C08D3F93 -:103C900021F48091D3018E7F0BC08E3F21F480915F -:103CA000D3018D7F05C08F3F29F48091D3018B7F95 -:103CB0008093D3018091D60181110EC08091D701EC -:103CC00081110AC08091D801811106C08091D9016B -:103CD000811102C01092D401089585ED91E00E94F7 -:103CE000D60E0E94D41A9093D2018093D1010895E8 -:103CF0001F93CF93DF938091D1019091D2010E94C5 -:103D0000E01AAC019091D401992321F02091140183 -:103D100030E006C0209115018AE0289F900111240F -:103D20004217530708F485C08091D601C091D7018E -:103D3000D091D8011091D901811107C0C11175C06E -:103D4000D11173C0111171C074C09F3F19F09F5FF2 -:103D50009093D401181624F40E94FE1C8093D6017F -:103D60008091D60187FF05C00E94FE1C819580933B -:103D7000D6011C1624F40E94FE1C8093D70180916A -:103D8000D70187FF05C00E94FE1C81958093D70153 -:103D90006091D601662331F1C091D701CC2311F196 -:103DA000062E000C770B880B990B0E94EF2123E362 -:103DB00033E343E35FE30E9453220E94B721609301 -:103DC000D6016C2FCC0F770B880B990B0E94EF213B -:103DD00023E333E343E35FE30E9453220E94B721CE -:103DE0006093D7011D1624F40E94471D8093D801CB -:103DF0008091D80187FF05C00E94471D819580935F -:103E0000D801111624F40E94471D8093D901809196 -:103E1000D90187FF05C00E94471D81958093D90174 -:103E2000DF91CF911F910C946D1E9F3F09F08FCFB2 -:103E3000A0CFDF91CF911F910895E5EDF1E085E0EE -:103E4000DF011D928A95E9F71092D4011092D301F7 -:103E50000895833081F128F4813059F08230D1F017 -:103E60000895853009F449C0B8F1863009F456C088 -:103E7000089580911501262F30E0280F311D2F3F26 -:103E8000310524F4680F6093150108958FEF809336 -:103E90001501089580911401262F30E0280F311D5F -:103EA0002F3F310524F4680F6093140108958FEFBC -:103EB00080931401089580911301262F30E0280F7C -:103EC000311D2F3F310524F4680F609313010895CD -:103ED0008FEF80931301089580911201262F30E017 -:103EE000280F311D2F3F310524F4680F6093120114 -:103EF00008958FEF80931201089580911101262F6C -:103F000030E0280F311D2F3F310524F4680F6093F6 -:103F1000110108958FEF8093110108958091100190 -:103F2000262F30E0280F311D2F3F310524F4680F74 -:103F30006093100108958FEF8093100108958330EE -:103F400011F128F4813049F0823091F008958530E4 -:103F500081F120F18630C1F1089580911501681733 -:103F600020F4861B80931501089510921501089581 -:103F700080911401681720F4861B80931401089522 -:103F800010921401089580911301681720F4861B84 -:103F900080931301089510921301089580911201E6 -:103FA000681720F4861B8093120108951092120165 -:103FB000089580911101681720F4861B80931101E8 -:103FC000089510921101089580911001681720F44E -:103FD000861B8093100108951092100108950F938D -:103FE0001F938D3109F46BC008F03FC08E3009F487 -:103FF0007DC0C0F4873009F46EC068F4863009F0E3 -:10400000AFC08091CC01817F8E7F8093CC0181E015 -:104010008093DB01A6C0883009F458C08B3009F4C6 -:104020009BC09EC0863109F497C078F4803109F4B2 -:1040300070C0813109F094C00E94281490910D0144 -:1040400081E0892780930D0187C0893109F484C0FC -:104050008B3109F085C08091CC0181FB222720F9AA -:1040600091E0922790FB81F94AC0853309F45BC047 -:1040700048F4873209F457C008F45AC0893209F469 -:1040800052C06EC0833438F48A3308F067C0883376 -:1040900009F462C065C0833409F445C0883409F06E -:1040A0005FC00E9428140FEF13ED20E30150104071 -:1040B0002040E1F700C000000E942F1B4DC00E946D -:1040C00071210E94BF0E0E945D0746C00E94E31C42 -:1040D0000E94F51C41C09091CC01892F817090FF06 -:1040E00012C0917F9E7F9093CC013BC08091CC0108 -:1040F00082FB222720F991E0922790FB82F980939E -:10410000CC01992349F18091CC0181608093CC014D -:1041100023C08091CC0183FB222720F991E09227D4 -:1041200090FB83F9ECCF61E070E080E090E010C09C -:104130008D5141E050E060E070E08A019B0104C0D5 -:10414000000F111F221F331F8A95D2F7C901B80132 -:104150000E94DF170E94281481E003C08953E9CF31 -:1041600080E01F910F91089580E008950C94B42091 -:10417000CF93C82F8091DB01813079F018F0823025 -:10418000E9F187C0E0910E01F0910F01808181314A -:1041900069F0823209F07FC009C0E0910E01F09110 -:1041A0000F018081813111F0823261F48C2F0E94E5 -:1041B000B620811104C08C2F0E94EF1F1DC081E02A -:1041C00090E01AC08C2F0E94B420811114C0C43119 -:1041D00079F048F4CB3079F0C03109F060C082E06A -:1041E0008093DB0108C0C93219F0C83321F057C0F1 -:1041F0001092DB0154C081E0817053C0C93289F153 -:1042000018F5C43171F1A8F4C73009F046C08AE04E -:104210008093150194E19093140193E0909313011E -:104220008093120188E08093110188E2809310014D -:1042300034C0CE51C63088F5EC2FF0E0E65DFE4F7D -:1042400080818093DA0129C0CE34E9F020F4CB34A8 -:1042500021F56AE013C0C13579F0C235F1F461E0AF -:104260000DC08091DA01882319F01092DA0115C08F -:1042700081E08093DB0115C061E006C08091DA0126 -:104280000E94291F0AC06AE08091DA010E949F1FE4 -:1042900004C01092DB0180E004C081E002C080E035 -:1042A000ABCFCF910895E1E8F0E080818860808312 -:1042B0008081816080838FB7F89493E09093890028 -:1042C00090ED909388008FBF0895EFE6F0E0808135 -:1042D000826080830895EFE6F0E080818D7F8083A7 -:1042E0000895EFE6F0E0908182E0892780830895C9 -:1042F0001F920F920FB60F9211242F933F934F935B -:104300005F936F937F938F939F93AF93BF93EF933D -:10431000FF938091DC019091DD0101969093DD0186 -:104320008093DC01811103C082E00E945D07E0916F -:10433000DD01E695E695F0E0E457FB4FE4918091CE -:10434000DC018E1303C080E00E945D07FF91EF91B6 -:10435000BF91AF919F918F917F916F915F914F919D -:104360003F912F910F900FBE0F901F9018950E94B4 -:10437000BE216894B1110C944D2208950E943222FE -:1043800088F09F5798F0B92F9927B751B0F0E1F016 -:10439000660F771F881F991F1AF0BA95C9F714C0C6 -:1043A000B13091F00E944C22B1E008950C944C225F -:1043B000672F782F8827B85F39F0B93FCCF38695FF -:1043C00077956795B395D9F73EF49095809570955C -:1043D00061957F4F8F4F9F4F0895E89409C097FBD9 -:1043E0003EF490958095709561957F4F8F4F9F4FCC -:1043F0009923A9F0F92F96E9BB279395F695879510 -:1044000077956795B795F111F8CFFAF4BB0F11F4D2 -:1044100060FF1BC06F5F7F4F8F4F9F4F16C0882379 -:1044200011F096E911C0772321F09EE8872F762FAF -:1044300005C0662371F096E8862F70E060E02AF0F0 -:104440009A95660F771F881FDAF7880F96958795DC -:1044500097F9089557FD9058440F551F59F05F3F45 -:1044600071F04795880F97FB991F61F09F3F79F096 -:1044700087950895121613061406551FF2CF469518 -:10448000F1DF08C0161617061806991FF1CF86959A -:104490007105610508940895E894BB27662777277E -:1044A000CB0197F908950E9466220C94D7220E94AE -:1044B000C92238F00E94D02220F0952311F00C94EC -:1044C000C0220C94C62211240C944D220E942A2250 -:1044D00070F3959FC1F3950F50E0551F629FF00157 -:1044E000729FBB27F00DB11D639FAA27F00DB11D70 -:1044F000AA1F649F6627B00DA11D661F829F2227F9 -:10450000B00DA11D621F739FB00DA11D621F839F7F -:10451000A00D611D221F749F3327A00D611D231F55 -:10452000849F600D211D822F762F6A2F11249F57A3 -:1045300050409AF0F1F088234AF0EE0FFF1FBB1FA6 -:10454000661F771F881F91505040A9F79E3F510565 -:1045500080F00C94C0220C944D225F3FE4F3983E0F -:10456000D4F3869577956795B795F795E7959F5F0F -:10457000C1F7FE2B880F911D9695879597F90895A1 -:1045800097F99F6780E870E060E008959FEF80EC06 -:10459000089500240A9416161706180609060895A9 -:1045A00000240A9412161306140605060895092E0F -:1045B0000394000C11F4882352F0BB0F40F4BF2B7E -:1045C00011F460FF04C06F5F7F4F8F4F9F4F0895BE -:1045D00097FB072E16F4009407D077FD09D00E94B0 -:1045E000022307FC05D03EF4909581959F4F0895D6 -:1045F000709561957F4F0895EE0FFF1F0590F49120 -:10460000E02D0994AA1BBB1B51E107C0AA1FBB1FC9 -:10461000A617B70710F0A61BB70B881F991F5A954E -:10462000A9F780959095BC01CD010895F999FECF29 -:1046300092BD81BDF89A992780B50895A8E1B0E0B0 -:1046400042E050E00C943923262FF999FECF1FBA8F -:1046500092BD81BD20BD0FB6F894FA9AF99A0FBEAB -:10466000019608950E942423272F0C942523DC0112 -:10467000CB01FC01F999FECF06C0F2BDE1BDF89A6D -:10468000319600B40D9241505040B8F70895F89417 -:02469000FFCF5A -:104692002002B60746082108ED07B9070101BA0151 -:1046A20028080A03140A3F4D36394D040004CA0390 -:1046B200910324033D0356036F030102030405061D -:0446C20007080900DC +:100000000C9476020C94BD020C94BD020C94BD02BB +:100010000C94BD020C94BD020C94BD020C94BD0264 +:100020000C94BD020C94BD020C94F80B0C94CA0CF9 +:100030000C94BD020C94BD020C94BD020C94BD0244 +:100040000C94BD020C943E210C94BD020C94BD0294 +:100050000C94BD020C94D01A0C94BD020C94BD02F9 +:100060000C94BD020C94BD020C94BD020C94BD0214 +:100070000C94BD020C94BD020C94BD020C94BD0204 +:100080000C94BD020C94BD020C94BD020C94BD02F4 +:100090000C94BD020C94BD020C94BD020C94BD02E4 +:1000A0000C94BD020C94BD020C94BD02370D590D89 +:1000B0004C0E590D4C0E9E0DC10D4C0E160E290EF8 +:1000C00013111311421142118511BF11CC13CC131E +:1000D000D811CC13CD12CD12A013CC13CC13B7135F +:1000E00075FF01E20157025701620262016202627A +:1000F00001040204015B025B0162026202E2000091 +:1001000000F0A1F0A229002B00E300E100E00000D4 +:10011000001E00140004001D7435004E001F001A5C +:100120000016001B00007F2A0020000800070006C0 +:100130000050002C0021001500090019004F004B51 +:1001400000220017000A0005000000E20023002F33 +:100150000000004A0000003E002400300000004D76 +:100160000000003B0025001C000B0011000000C235 +:1001700000260018000D0010005100490027000C57 +:10018000000E003600520028002D0012000F00372C +:10019000000601C1002E0013003300387419014C11 +:1001A000002A0031003400E500E4000000010001F5 +:1001B0000001000100010000003A001E022002229E +:1001C00002033001003B001F022102230201000153 +:1001D000003C002F0226022F00010001003D0030EC +:1001E0000227023000010001003E003102350035D7 +:1001F00002000001003F00010000000100000001BA +:100200000040000100000001000000010041005218 +:100210000051002402000001004200240021001EC1 +:1002200000010001004300250022001F00370001EB +:10023000004400260023002000270001004500257F +:10024000022E0231002E004C054600010001000183 +:10025000003D040000005001000100010001000009 +:100260000001000100010001000100010001000186 +:1002700000F2000100010001000100F000F10001A6 +:1002800000F400010001000100F3000100F500018D +:100290000001000100010001000000010001000157 +:1002A0000000000100000001000100010000000149 +:1002B0000000000100010001000100010000000138 +:1002C000000100010001000100A90001000100017E +:1002D000000100AC00AA00B600010001000100AB63 +:1002E00000A800010001000100010001000100015F +:1002F0000001000100AE00010001000000160345EE +:1003000000720067006F0044006F00780020004515 +:10031000005A00000016034500720067006F004499 +:10032000006F007800200045005A00000004030917 +:100330000409026D00040100A0FA09040000010391 +:10034000010100092111010001223F00070581037D +:1003500008000A090401000103010200092111013A +:100360000001224D000705820308000A090402006B +:1003700001030000000921110100012236000705D8 +:10038000830308000A090403000103000000092197 +:100390001101000122390007058403100001120138 +:1003A000100100000008EDFE07130100010200012A +:1003B00005010906A101050719E029E71500250136 +:1003C0009508750181020508190129059505750132 +:1003D0009102950175039101050719002977150010 +:1003E0002501957875018102C005010980A101856B +:1003F0000216010026B7001A01002AB700751095F1 +:10040000018100C0050C0901A10185031601002628 +:100410009C021A01002A9C02751095018100C005FA +:10042000010902A1010901A1000509190129051508 +:10043000002501950575018102950175038101056E +:1004400001093009311581257F950275088106095A +:10045000381581257F950175088106050C0A38023B +:100460001581257F950175088106C0C00501090623 +:10047000A101050719E029E7150025019508750177 +:100480008102950175088101050819012905950565 +:10049000750191029501750391010507190029FF66 +:1004A000150025FF950675088100C00000000000BA +:1004B000000000000000010204060A0F17202C3A79 +:1004C0004A5D71879DB3C7DAE9F5FCFFFCF5E9DA0F +:1004D000C7B39D87715D4A3A2C20170F0A060402A4 +:1004E00001000000000000000000000011241FBEF9 +:1004F000CFEFDAE0DEBFCDBF04B603FE27C08091A8 +:10050000ED019091EE01A091EF01B091F0018730E3 +:10051000904BA740B04BD1F41092ED011092EE0138 +:100520001092EF011092F00114BE84B7877F84BF50 +:100530000FB6F894A8958091600088618093600060 +:10054000109260000FBEE0E0FFE3099511E0A0E02B +:10055000B1E0EEE1F6E402C005900D92A433B107DC +:10056000D9F721E0A4E3B1E001C01D92AD3EB2078E +:10057000E1F70E943F090C940D230C940000CF93E7 +:10058000DF93EC01662319F0633059F00DC08A81C6 +:10059000882321F085EE0E94AD0F03C085EE0E94F6 +:1005A00075108A81811103C080E090E002C080EE66 +:1005B00090E0DF91CF91089508956091B10170911D +:1005C000B2018091B3019091B4010E94FD19569837 +:1005D0005E9825982D9826982E9827982F988130E8 +:1005E00019F0823021F00895259A2D9A0895269ABF +:1005F0002E9A08958DED92E0892B11F00E94DD0274 +:1006000080E090E0089556985E9825982D98269859 +:100610002E9827982F988FEF90E0909389008093E1 +:10062000880090938B0080938A0090938D00809334 +:100630008C00259A2D9A2FEF80E792E02150804080 +:100640009040E1F700C00000269A2E9A2FEF80E735 +:1006500092E0215080409040E1F700C00000279ACE +:100660002F9A2FEF80E792E0215080409040E1F7F1 +:1006700000C0000025982D982FEF80E792E02150D0 +:1006800080409040E1F700C0000026982E982FEFA0 +:1006900080E792E0215080409040E1F700C00000E8 +:1006A00027982F9856985E9825982D9826982E98DA +:1006B00027982F98089589EA8093800089E0809395 +:1006C000810024982C983F988AB18F748AB96E98CB +:1006D000479A8BB1806B8BB9769A0E9403038CED9D +:1006E00092E0892B11F00E94DC0280E090E00895F6 +:1006F00080E2809300018091340181110EC00E943C +:10070000C70381E0809334012FEF83ED90E3215004 +:1007100080409040E1F700C0000080E40E94CD03DB +:100720008093000181112EC00E94F7038093000185 +:10073000811128C00E94F70380930001811122C01B +:100740008FE30E94F7038093000181111BC00E9478 +:10075000EF0380E40E94CD0380930001811112C059 +:100760008CE00E94F7038093000181110BC00E946E +:10077000F70380930001811105C08FE30E94F70306 +:10078000809300010E94EF03809100010895109270 +:10079000B9008AE08093B800089594EA9093BC0071 +:1007A0009091BC0097FFFCCF9091B900987F983052 +:1007B00021F0903111F081E008958093BB0084E82E +:1007C0008093BC008091BC0087FFFCCF8091B90072 +:1007D000887F883111F0803471F780E0089584E9D2 +:1007E0008093BC008091BC0084FDFCCF0895809371 +:1007F000BB0084E88093BC008091BC0087FFFCCFE5 +:100800009091B900987F81E0983209F480E00895D2 +:1008100084E88093BC008091BC0087FFFCCF80916E +:10082000BB00089580910001811115C080E40E94F1 +:10083000CD038093000181110CC082E10E94F70377 +:1008400080930001811105C08FEF0E94F703809310 +:1008500000010E94EF0384B1807F84B985B1807F5D +:1008600085B98AB1837F8AB98BB1837F8BB93E9872 +:10087000469808950E947803809300010E94120414 +:1008800080B38C7080BB81B3836F81BBE4E4F1E003 +:10089000A6E3B1E011921D9281E0E235F807D1F7AD +:1008A0008BE593E0892B11F00C945B0308959F92E4 +:1008B000AF92BF92CF92DF92EF92FF920F931F936E +:1008C000CF93DF9380910001882379F080913501E7 +:1008D0008F5F80933501811108C00E947803809357 +:1008E0000001811102C00E94030386E3E82E81E02B +:1008F000F82E8701C0E0D0E0BB24B39492E0A92E8B +:10090000CC24C394D12CC730D10500F580910001CF +:10091000811164C080E40E94CD03809300018111A5 +:1009200012C082E10E94F7038093000181110BC085 +:10093000C6010C2E01C0880F0A94EAF780950E9428 +:10094000F703809300010E94EF0348C0CA30A1F072 +:1009500028F4C83059F0C93061F005C0CC3089F0B6 +:1009600070F0CD3089F0209A289810C0219A2998EB +:100970000DC0229A2A980AC0239A2B9807C0529A2F +:1009800001C0539A5B9802C03E9A4698E0EAEA9505 +:10099000F1F78FB181708B25799902C032E001C0E7 +:1009A00030E0832B7C9902C034E001C030E0832B1F +:1009B0007D9902C028E001C020E0822B7E9902C010 +:1009C00090E101C090E0892B9FB19095991F9927E4 +:1009D000991F9295990F907E892B0FC080910001ED +:1009E000811150C080E40E94CD03809300018823D0 +:1009F000B1F1912C0E94EF03892DD8019C91981799 +:100A000019F08C93A09201010E94120421960F5FAD +:100A10001F4FCE30D10509F076CF80910101882398 +:100A2000B9F0815080930101882339F0EFE9FFE0AC +:100A30003197F1F700C000000BC0E4E4F1E0D7010A +:100A40008D917D018193B4E4EB16B1E0FB06B9F71B +:100A50008AEF92E0892BC1F00E94FA0215C083E16F +:100A60000E94F703809300018111C3CF81E40E94AB +:100A7000CD03809300018111BCCF0E940804982E01 +:100A80009094B8CF80E0B9CF81E0DF91CF911F91F2 +:100A90000F91FF90EF90DF90CF90BF90AF909F901D +:100AA0000895E82FF0E0EC5BFE4F808108950895F3 +:100AB0008B3B910580F4883A910548F5853A91057C +:100AC000D8F48430910508F0B2C0019709F06EC0E7 +:100AD00081E090E00895803E910508F467C0883E6B +:100AE000910508F4A4C09C01205F31092031310533 +:100AF00008F05CC090650895853A910509F459C0E5 +:100B0000863A910509F058C082E890E40895883A41 +:100B1000910509F454C0893A910509F453C08A3A01 +:100B2000910509F452C08B3A910509F451C08C3AF1 +:100B3000910509F450C08D3A910509F44FC0803BEE +:100B4000910509F44EC08E3A910509F44DC08F3AD3 +:100B5000910509F44CC0813B910509F44BC0823BDF +:100B6000910509F44AC0833B910509F449C0843BCF +:100B7000910509F448C0853B910509F447C0863BBF +:100B8000910509F446C0873B910509F445C0883BAF +:100B9000910509F444C0893B910509F443C08A3B9F +:100BA000910509F442C080E094E4089580E090E06B +:100BB000089581E890E4089583E890E4089582EE32 +:100BC00094E4089589EE94E408958AEE94E40895F7 +:100BD00085EB94E4089586EB94E4089587EB94E420 +:100BE00008958CEC94E408958DEC94E4089583E8E2 +:100BF00095E408958AE895E4089582E995E40895D6 +:100C000084E995E4089581E296E4089583E296E408 +:100C1000089584E296E4089585E296E4089586E2D4 +:100C200096E4089587E296E408958AE296E40895AA +:100C3000089524E5829FC0011124FC0126E0729FE3 +:100C4000E00DF11D1124E60FF11DEE0FFF1FEB5F0C +:100C5000FE4F859194910895880F991FFC01E158EA +:100C6000F040859194910895880F991FFC01E150FF +:100C7000FF4F85919491089524E5829FC00111242E +:100C8000FC0146E0749FE00DF11D1124E60FF11DFB +:100C9000EE0FFF1FEB5FFE4F859194919C013A95FB +:100CA00021154FE1340708F425C13F51211530418A +:100CB00020F49F700E94340608959C013053211542 +:100CC000304118F49927906C0895811520E592071A +:100CD00069F40E94EE134FEF84E39CE041508040A2 +:100CE0009040E1F700C000000C94F51A813020E537 +:100CF000920731F48091CC0181608093CC010895FA +:100D00009C0130552115304108F05CC0292F332754 +:100D10002F70332721303105E9F4AC0164E0440F32 +:100D2000551F6A95E1F744275370BC01637077271C +:100D300002C0220F331F6A95E2F73C68242B352B43 +:100D400073E0880F991F7A95E1F780769927822BB7 +:100D5000932B08952230310529F4982F8827816F2D +:100D6000906A089523303105A1F4AC0133E0440FBB +:100D7000551F3A95E1F7407E57708370992721E01F +:100D800030E002C0220F331F8A95E2F7C9019C6848 +:100D900016C02430310531F5AC0123E0440F551F56 +:100DA0002A95E1F7407E57708370992721E030E063 +:100DB00002C0220F331F8A95E2F7C9019A68842B7B +:100DC000952B08959C0130572115304118F49F70E0 +:100DD000906208959C0130582115304118F49F709D +:100DE000906A0895803E9105E0F4803C910558F5A5 +:100DF0008133910509F46FC048F48932910509F4F3 +:100E000063C08A32910509F46DC072C089339105BF +:100E1000E9F082389105D1F08533910509F44DC090 +:100E200067C0833E910581F138F4803E9105B9F0A9 +:100E3000823E9105D9F05CC0863E910561F1873E06 +:100E40009105A1F155C00E942C0608952091DE0164 +:100E500020FD02C021FF4CC080EE90E049C080918F +:100E6000DE0180FFF9CF89E390E042C08091DE018E +:100E700082FF0EC08091DE0184FF03C080E090E01D +:100E800037C083EE90E034C08091DE0182FFF2CF64 +:100E900082EE90E02DC08091DE0183FF0BC0809137 +:100EA000DE0184FDEBCF87EE90E022C08091DE0171 +:100EB00083FFF5CF86EE90E01BC08091DE0185FFB9 +:100EC00007C089E290E014C08091DE0185FFF9CF70 +:100ED00085E390E00DC08091DE0186FF07C08AE2C5 +:100EE00090E006C08091DE0186FFF9CF81E390E0BB +:100EF0000E94580508950895809162010895CF9346 +:100F0000DF9300D01F92CDB7DEB79C018091E40142 +:100F1000843019F593E099833B832A839093E90009 +:100F20008FEF9091E800815095FD06C095ED9A9560 +:100F3000F1F700008111F5CF8091E80085FF0DC029 +:100F400040E050E063E070E0CE0101960E94EC09C1 +:100F50008091E8008E778093E8000F900F900F90BB +:100F6000DF91CF910895CF93DF9300D01F92CDB73B +:100F7000DEB72091E401243021F522E029839B8310 +:100F80008A8383E08093E9008FEF9091E80081509D +:100F900095FD06C095ED9A95F1F700008111F5CF0A +:100FA0008091E80085FF0DC040E050E063E070E014 +:100FB000CE0101960E94EC098091E8008E77809323 +:100FC000E8000F900F900F90DF91CF9108959C0152 +:100FD0008091E4018430F9F482E08093E9009FEF8E +:100FE0008091E800915085FD06C085ED8A95F1F766 +:100FF00000009111F5CF8091E80085FF0CC040E022 +:1010000050E065E070E0C9010E94EC098091E800C1 +:101010008E778093E8000895CF93DF93EC01809161 +:10102000E401843009F046C090910C019923D9F075 +:1010300090910D019923B9F08093E9008FEF909181 +:10104000E800815095FD06C095E19A95F1F7000002 +:101050008111F5CF8091E80085FF2CC040E050E081 +:1010600060E170E017C081E08093E9008FEF90911C +:10107000E800815095FD06C095ED9A95F1F70000C6 +:101080008111F5CF8091E80085FF14C040E050E069 +:1010900068E070E0CE010E94EC098091E8008E7754 +:1010A0008093E80080E1FE01A2E5B1E001900D929D +:1010B0008A95E1F7DF91CF9108958091E301811145 +:1010C00009C00E947D0B0E94DA0B8091E2008460CF +:1010D0008093E20008951092E301089508950C941E +:1010E0002B210E948B1A0E9431210E94850E0C94A4 +:1010F0007B0742E061EC81E00E94F60A42E061EC8D +:1011000082E00E94F60A42E061EC83E00E94F60A67 +:1011100042E161EC84E00C94F60A8091E6018330B0 +:1011200009F455C030F4813071F0823009F48EC07A +:1011300008958A3009F47AC08B3009F460C0893090 +:1011400009F09CC020C08091E501813A09F096C069 +:101150008091E800877F8093E8008091E901909179 +:10116000EA01892B21F460E182E591E003C060E0AF +:1011700080E090E070E00E94370A8091E8008B7771 +:101180008093E80008958091E501813209F076C0EE +:101190008091E9019091EA01009719F0039709F015 +:1011A0006DC08091E800877F8093E8008091E8001F +:1011B00082FD05C08091E4018111F8CF5FC080916C +:1011C000F100809362018091E8008B7753C0809199 +:1011D000E501813A09F052C08091E9019091EA015C +:1011E000892B09F04BC08091E800877F8093E8004D +:1011F0008091E80080FFFCCF80910C0136C0809187 +:10120000E5018132D9F58091E9019091EA01892BBC +:10121000A9F58091E800877F8093E8000E942B0B5E +:101220008091E70180930C010C94EE138091E5010D +:10123000813221F58091E800877F8093E8000E9449 +:101240002B0B8091E8018093630108958091E50163 +:10125000813AA1F48091E800877F8093E800809133 +:10126000E80080FFFCCF809163018093F1008091C2 +:10127000E8008E778093E8000C942B0B089584B7D8 +:10128000877F84BF0FB6F894A8958091600088612D +:1012900080936000109260000FBE90E080E80FB66F +:1012A000F89480936100909361000FBE0E94D40E69 +:1012B0000E947D0B0E94DA0B8091E2008460809393 +:1012C000E20078940E94650E0E94D60E82E091E0C2 +:1012D0000E94800E0E9419218091E401853069F4FA +:1012E0000E944D1A8091E2018823B1F30E94771A7F +:1012F000882391F30E94D609EFCF0E94DC0EECCF39 +:10130000292F332723303105C9F060F4213031050E +:1013100081F02230310509F041C08DE690E021E3F3 +:1013200033E040C021323105E1F02232310531F1A4 +:1013300035C082E190E02EE933E034C09927813056 +:10134000910549F028F0029749F5EDEFF2E005C06C +:10135000EDE2F3E002C0E5E1F3E0849190E09F016B +:1013600021C06430D8F4E62FF0E0EE0FFF1FEE5DF1 +:10137000FE4F2081318189E090E014C0643070F428 +:1013800070E0FB01EE0FFF1FE65EFE4F2081318112 +:10139000FB01EA5EFE4F808190E004C080E090E0B7 +:1013A00020E030E0FA0131832083089580E189BD97 +:1013B00082E189BD09B400FEFDCF8091D8008F7D08 +:1013C0008093D8008091E00082608093E00080915B +:1013D000E00081FDFCCF0895CF92DF92EF92FF9263 +:1013E0000F931F93CF93DF93EC018B016A010E944F +:1013F0004A0B811133C0C114D10439F0F601808148 +:101400009181081B190BC80FD91FE12CF12C011574 +:10141000110519F18091E80085FD16C08091E80062 +:101420008E778093E800C114D10449F0F6018081E1 +:101430009181E80EF91EF182E08285E00FC00E94E2 +:101440004A0B882321F30AC089918093F10001504F +:101450001109FFEFEF1AFF0ADACF80E0DF91CF9199 +:101460001F910F91FF90EF90DF90CF900895209102 +:10147000EB013091EC012617370748F06115710533 +:1014800039F42091E8002E772093E80001C0B901DB +:10149000FC0120E06115710579F18091E401882358 +:1014A000F1F18530F1F18091E80083FD3CC080913D +:1014B000E80082FD2EC08091E80080FFEBCF2091F4 +:1014C000F3008091F20090E0922B6115710551F0CC +:1014D0008830910538F421912093F1006150710911 +:1014E0000196F3CF21E0089709F020E08091E80011 +:1014F0008E778093E800CECF2111CFCF0AC08091A4 +:10150000E401882361F0853061F08091E80083FD7B +:101510000AC08091E80082FFF2CF80E0089582E067 +:10152000089583E0089581E008952091EB013091C2 +:10153000EC012617370748F06115710539F4209141 +:10154000E8002E772093E80001C0B901FC0120E0FB +:101550006115710591F18091E401882309F440C07F +:10156000853009F43FC08091E80083FD3DC0809143 +:10157000E80082FD2FC08091E80080FFE9CF209134 +:10158000F3008091F20090E0922B6115710559F003 +:101590008830910540F424912093F10031966150F8 +:1015A00071090196F2CF21E0089709F020E08091BF +:1015B000E8008E778093E800CBCF2111CCCF0AC012 +:1015C0008091E401882361F0853061F08091E8002A +:1015D00083FD0AC08091E80082FFF2CF80E0089589 +:1015E00082E0089583E0089581E00895982F973070 +:1015F00068F59093E900981739F07091EC0020910C +:10160000ED005091F00003C0242F762F50E021FD13 +:1016100002C09F5FECCF3091EB003E7F3093EB0038 +:101620003091ED003D7F3093ED003091EB00316063 +:101630003093EB007093EC002093ED005093F0009A +:101640002091EE0027FDE5CF80E008958F70809314 +:10165000E90081E008958091E50187FF11C0809144 +:10166000E80082FD05C08091E4018111F8CF11C02E +:101670008091E8008B770BC08091E401882349F0CA +:101680008091E80080FFF8CF8091E8008E7780930A +:10169000E80008952091E4003091E50095E640913E +:1016A000EC00842F817040FF23C08091E80080FD12 +:1016B0001DC08091E401882399F0853099F08091D4 +:1016C000EB0085FD11C04091E4005091E500241726 +:1016D000350729F3915011F09A01E1CF84E0089584 +:1016E00082E0089583E0089581E0089580E0089500 +:1016F0004091E80042FFDDCF08950E94EB0B0E946D +:10170000F30BE0EEF0E0808181608083E8EDF0E0B3 +:1017100080818F77808319BCA7EDB0E08C918E7F9C +:101720008C9380818F7E80831092E30108950F93C4 +:101730001F93CF93DF930E94EB0B0E94F30BC8ED36 +:10174000D0E088818F7788838881806888838881CA +:101750008F7D888319BC1092E4011092E0011092F1 +:10176000E2011092E10100EE10E0F80180818B7F30 +:10177000808388818160888342E060E080E00E940D +:10178000F60AE1EEF0E080818E7F8083E2EEF0E009 +:10179000808181608083808188608083F80180817E +:1017A0008E7F8083888180618883DF91CF911F91B4 +:1017B0000F910895E8EDF0E080818F7E8083E7ED62 +:1017C000F0E080818160808384E082BF81E080934B +:1017D000E3010C94970BE8EDF0E080818E7F80832D +:1017E0001092E20008951092DA001092E10008953C +:1017F0001F920F920FB60F9211242F933F934F9386 +:101800005F936F937F938F939F93AF93BF93EF9368 +:10181000FF938091E10082FF0BC08091E20082FF84 +:1018200007C08091E1008B7F8093E1000E94640EED +:101830008091DA0080FF1FC08091D80080FF1BC01C +:101840008091DA008E7F8093DA008091D90080FF4A +:101850000DC080E189BD82E189BD09B400FEFDCFE4 +:1018600081E08093E4010E945D0805C019BC1092DC +:10187000E4010E946B088091E10080FF19C0809113 +:10188000E20080FF15C08091E2008E7F8093E2002D +:101890008091E20080618093E2008091D8008062B4 +:1018A0008093D80019BC85E08093E4010E946F0802 +:1018B0008091E10084FF30C08091E20084FF2CC061 +:1018C00080E189BD82E189BD09B400FEFDCF809130 +:1018D000D8008F7D8093D8008091E1008F7E809327 +:1018E000E1008091E2008F7E8093E2008091E2002F +:1018F00081608093E2008091E001882311F084E010 +:1019000007C08091E30087FD02C081E001C083E051 +:101910008093E4010E9471088091E10083FF29C057 +:101920008091E20083FF25C08091E100877F809352 +:10193000E10082E08093E4011092E0018091E100F7 +:101940008E7F8093E1008091E2008E7F8093E200A1 +:101950008091E20080618093E20042E060E080E0FC +:101960000E94F60A8091F00088608093F0000E9447 +:101970006E08FF91EF91BF91AF919F918F917F91F1 +:101980006F915F914F913F912F910F900FBE0F90EC +:101990001F9018951F920F920FB60F9211242F933C +:1019A0003F934F935F936F937F938F939F93AF93E7 +:1019B000BF93CF93DF93EF93FF93C091E900CF7074 +:1019C0008091EC00D82FD17080FDD0E81092E90012 +:1019D0008091F000877F8093F00078940E940E0D34 +:1019E0001092E9008091F00088608093F000CD2B88 +:1019F000CF70C093E900FF91EF91DF91CF91BF913C +:101A0000AF919F918F917F916F915F914F913F9196 +:101A10002F910F900FBE0F901F9018951F93CF938B +:101A2000DF93CDB7DEB7AA970FB6F894DEBF0FBE2F +:101A3000CDBFE5EEF1E08091F100819321E0ED3E34 +:101A4000F207C9F70E948D088091E80083FF24C146 +:101A50008091E5019091E601492F50E04A3051050F +:101A600008F01AC1FA01EA5AFF4F0C94C2228038DA +:101A700081F0823809F010C18091E9018F70809364 +:101A8000E9008091EB0085FB882780F91092E9003E +:101A900006C08091E1019091E201911182609091E4 +:101AA000E800977F9093E8008093F1001092F10096 +:101AB000C8C0282F2D7F09F0EFC0882319F082308D +:101AC00061F0EAC08091E701813009F0E5C0933010 +:101AD00009F080E08093E2012BC08091E701811141 +:101AE00027C08091E9018F7009F4D6C08093E90086 +:101AF0002091EB0020FF1CC0933021F48091EB007B +:101B0000806214C09091EB0090619093EB0021E013 +:101B100030E0A90102C0440F551F8A95E2F74093B7 +:101B2000EA001092EA008091EB0088608093EB005D +:101B30001092E9008091E800877F86C08111ACC0D7 +:101B40001091E7011F778091E3008078812B8093CB +:101B5000E3008091E800877F8093E8000E942B0BD0 +:101B60008091E80080FFFCCF8091E3008068809343 +:101B7000E300111102C082E001C083E08093E40120 +:101B80008BC08058823008F087C08091E701909127 +:101B9000E8018C3D53E0950779F583E08A838AE27A +:101BA00089834FB7F894DE01139620E03EE051E2BE +:101BB000E32FF0E050935700E49120FF03C0E2953B +:101BC000EF703F5FEF708E2F90E0EA3010F0C79615 +:101BD00001C0C0968D939D932F5F243149F74FBF6D +:101BE0008091E800877F8093E8006AE270E0CE0190 +:101BF00001960E94370A14C0AE014F5F5F4F60919B +:101C0000E9010E948009BC01892B09F445C090912B +:101C1000E800977F9093E80089819A810E94950A55 +:101C20008091E8008B778093E80036C08038A1F57A +:101C30008091E800877F8093E8008091E0018093A5 +:101C4000F1008091E8008E778093E8000E942B0BD2 +:101C500023C0811121C08091E7019091E80199276B +:101C60000297D4F48091E800877F8093E800809108 +:101C7000E7018093E0010E942B0B8091E00181112C +:101C800006C08091E30087FD02C081E001C084E0CE +:101C90008093E4010E9479088091E80083FF0AC0E4 +:101CA0008091E800877F8093E8008091EB0080625C +:101CB0008093EB00AA960FB6F894DEBF0FBECDBF9F +:101CC000DF91CF911F9108950895CF938091E40102 +:101CD0008823A1F0C091E900CF709091EC00892F8A +:101CE000817090FD80E8C82B1092E9008091E80097 +:101CF00083FD0E940E0DCF70C093E900CF9108952F +:101D000090936901809368010895E0916801F091D2 +:101D10006901309721F00190F081E02D099480E075 +:101D20000895E0916801F0916901309721F00280F7 +:101D3000F381E02D09940895E0916801F091690123 +:101D4000309721F00480F581E02D099408952091C9 +:101D50006601309167012817390771F09093670188 +:101D600080936601E0916801F0916901309721F05C +:101D70000680F781E02D0994089520916401309147 +:101D800065012817390771F090936501809364010C +:101D9000E0916801F0916901309721F00084F185AC +:101DA000E02D0994089508950C94D30E0E94911A81 +:101DB0000E943A040C94571BCF92DF92EF92FF924D +:101DC0000F931F93CF93DF93CDB7DEB72B970FB64B +:101DD000F894DEBF0FBECDBF0E9457048BE6C82E1D +:101DE00081E0D82E00E010E0E02E802F0E94510507 +:101DF000F60141916F01F82EF426B1F40F5F1F4FE9 +:101E00000E30110589F78FEF89838A831B820E9428 +:101E10009A1A8160782F9D838C8349815A816B81C6 +:101E20008D810E947F0F40C09091CC0191FF04C032 +:101E30008B870E9457058B8520E030E04F2D50E0C6 +:101E4000922FBA01022E02C0759567950A94E2F7A7 +:101E500060FF24C02E83EF8221E030E0690102C0E0 +:101E6000CC0CDD1C9A95E2F790E08C219D21892B0A +:101E700009F420E028870E949A1A8160782F9A87B7 +:101E800089874E815F8168858A850E947F0FF8016E +:101E9000E559FE4F8081C826C08206C02F5F3F4FA4 +:101EA0002630310569F6AACF0E943E1E0E94850E9B +:101EB00090916A018917A1F00E94850E80936A01B2 +:101EC0002B960FB6F894DEBF0FBECDBFDF91CF913A +:101ED0001F910F91FF90EF90DF90CF900C947B07B4 +:101EE0002B960FB6F894DEBF0FBECDBFDF91CF911A +:101EF0001F910F91FF90EF90DF90CF900895CF93B7 +:101F0000DF93CDB7DEB72B970FB6F894DEBF0FBEC9 +:101F1000CDBF4F83588769877A878B87DE011196FB +:101F200086E0FD0111928A95E9F785E0FE0137967A +:101F300001900D928A95E1F749815A816B817C81EC +:101F40008D819E810E9482162B960FB6F894DEBF7B +:101F50000FBECDBFDF91CF910895CF93C82F8823B7 +:101F600009F4C1C0823859F40E94850E81FDBBC0BE +:101F700089E30E941F190E94D71989E30CC0833896 +:101F800079F40E94850E80FDAEC083E50E941F1982 +:101F90000E94D71983E50E945E19CF910C94D7193E +:101FA000843859F40E94850E82FD9DC087E40E940A +:101FB0001F190E94D71987E4EECF8CEF8C0F813A5E +:101FC00048F48C2F0E947E2081118DC08C2F0E949E +:101FD0001F19E3CF80E28C0F883048F4C77081E08E +:101FE00001C0880FCA95EAF70E94A019D6CF8BE5E9 +:101FF0008C0F833078F4C53A29F0C63A31F083E883 +:1020000090E005C081E890E002C082E890E0CF91C6 +:102010000C94A70E88E58C0F833108F064C0C83A91 +:1020200039F1C93A41F1CA3A49F1CB3A51F1CC3AC6 +:1020300059F1CD3A61F1C03B69F1CE3A71F1CF3A35 +:1020400079F1C13B81F1C23B89F1C33B91F1C43BC2 +:1020500099F1C53BA1F1C63BA9F1C73BB1F1C83B22 +:10206000B9F1C93BC1F1CA3BC9F180E090E038C089 +:1020700082EE90E035C089EE90E032C08AEE90E0CA +:102080002FC085EB90E02CC086EB90E029C087EB59 +:1020900090E026C08CEC90E023C08DEC90E020C056 +:1020A00083E891E01DC08AE891E01AC082E991E0DE +:1020B00017C084E991E014C081E292E011C083E28C +:1020C00092E00EC084E292E00BC085E292E008C08C +:1020D00086E292E005C087E292E002C08AE292E0E6 +:1020E000CF910C94BD0ECF910895882309F44BC075 +:1020F000823859F40E94850E81FF45C089E30E9411 +:102100001F190E94D71989E30CC0833871F40E940B +:10211000850E80FF38C083E50E941F190E94D719E1 +:1021200083E50E945E190C94D719843859F40E94F3 +:10213000850E82FF28C087E40E941F190E94D719CC +:1021400087E4EFCF9CEF980F913A58F390E2980F05 +:10215000983050F4877091E001C0990F8A95EAF7A2 +:10216000892F0E94A619DFCF9BE5980F933020F4AA +:1021700080E090E00C94A70E885A833120F480E030 +:1021800090E00C94BD0E0895882321F00E94A019C0 +:102190000C94D7190895882321F00E94A6190C9455 +:1021A000D7190895BF92CF92DF92EF92FF920F93CB +:1021B0001F93CF93DF9300D000D000D0CDB7DEB710 +:1021C0007C0185E0F701DE01119601900D928A9560 +:1021D000E1F7F70183819481892B09F4DDC29081B5 +:1021E00081818F3F19F49F3F09F4D6C2F701028124 +:1021F000258122952F7099838A8389819A812E83E4 +:102200000E94DE18182FB92E0E94DD180E94A41714 +:10221000EB2DE295EF704E2F50E0FA01E05AFF4FA0 +:102220002E810C94C2228B2D807F9B2D9F70F92EC6 +:10223000882319F0F29480EFF822002349F0FF2060 +:1022400009F457C28F2D0E94B0190E94D71951C2AC +:10225000812F0E947510FF2009F49EC28F2D0E94CD +:10226000B61926960FB6F894DEBF0FBECDBFDF912C +:10227000CF911F910F91FF90EF90DF90CF90BF9083 +:102280000C94D7193B2D307F8B2D8F70303211F08D +:102290008295807F112319F0113021F12CC0002389 +:1022A000B9F0222309F490C1213009F08DC126969E +:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157 +:1022C0000F91FF90EF90DF90CF90BF900C94C019CA +:1022D000222319F0213009F45FC28E830E94C319B2 +:1022E0008E8186C1002321F0223008F055C26CC1D6 +:1022F000211152C27DC1002321F0222309F464C1BF +:10230000F8C1222309F474C109C28B2D86958695E4 +:10231000837019F08130D1F03FC2002321F0812F6A +:102320009B2D937002C080E090E026960FB6F89443 +:10233000DEBF0FBECDBFDF91CF911F910F91FF90F8 +:10234000EF90DF90CF90BF900C94A70E002321F068 +:10235000812F9B2D937002C080E090E026960FB6EF +:10236000F894DEBF0FBECDBFDF91CF911F910F91CB +:10237000FF90EF90DF90CF90BF900C94BD0E812F17 +:10238000002319F00E94461D02C00E94AE1D269631 +:102390000FB6F894DEBF0FBECDBFDF91CF911F9176 +:1023A0000F91FF90EF90DF90CF90BF900C94331E71 +:1023B0008B2D837009F075C00111EEC1812F8295BC +:1023C00086958770880F880F912F9F70C92ED12C0A +:1023D000E12CF12C082E04C0CC0CDD1CEE1CFF1CE3 +:1023E0000A94D2F714FF12C00FE010E020E030E0B2 +:1023F00004C0000F111F221F331F8A95D2F7C90195 +:10240000B801609570958095909503C060E070E08C +:10241000CB014B2D4695469543704230C1F060F597 +:102420006C297D298E299F29413051F126960FB6BE +:10243000F894DEBF0FBECDBFDF91CF911F910F91FA +:10244000FF90EF90DF90CF90BF900C94CB176C294A +:102450007D298E299F2926960FB6F894DEBF0FBEE0 +:10246000CDBFDF91CF911F910F91FF90EF90DF9043 +:10247000CF90BF900C94E7170E94CB17C701B6010D +:1024800026960FB6F894DEBF0FBECDBFDF91CF9179 +:102490001F910F91FF90EF90DF90CF90BF900C9421 +:1024A000AF17002319F08B2D817001C0869588230A +:1024B00009F472C1812F829586958770880F880FE5 +:1024C000912F9F70C92ED12CE12CF12C082E04C025 +:1024D000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA +:1024E0000FE010E020E030E004C0000F111F221FB9 +:1024F000331F8A95D2F7C901B80160957095809510 +:10250000909503C060E070E0CB014B2D4695469559 +:1025100043704230C1F060F56C297D298E299F29D6 +:10252000413051F126960FB6F894DEBF0FBECDBFF5 +:10253000DF91CF911F910F91FF90EF90DF90CF909F +:10254000BF900C94A5186C297D298E299F29269669 +:102550000FB6F894DEBF0FBECDBFDF91CF911F91B4 +:102560000F91FF90EF90DF90CF90BF900C94C11827 +:102570000E94A518C701B60126960FB6F894DEBFD3 +:102580000FBECDBFDF91CF911F910F91FF90EF90C4 +:10259000DF90CF90BF900C948918103FD1F118F4C0 +:1025A000103E50F4A1C0123F09F463C008F44CC0BF +:1025B000133F09F473C098C01F708B2D8F710023D7 +:1025C000A1F00E942218812F26960FB6F894DEBF44 +:1025D0000FBECDBFDF91CF911F910F91FF90EF9074 +:1025E000DF90CF90BF900C94C4100E944318812FAD +:1025F00026960FB6F894DEBF0FBECDBFDF91CF9108 +:102600001F910F91FF90EF90DF90CF90BF900C94AF +:10261000CB100023A9F02111BFC08B2D8F712696FE +:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3 +:102630000F91FF90EF90DF90CF90BF900C946818AF +:10264000223008F0A9C0E9CF0023A9F08B2D8F71AB +:1026500026960FB6F894DEBF0FBECDBFDF91CF91A7 +:102660001F910F91FF90EF90DF90CF90BF900C944F +:102670002218002359F38B2D8F7126960FB6F894EC +:10268000DEBF0FBECDBFDF91CF911F910F91FF90A5 +:10269000EF90DF90CF90BF900C944318002399F0F7 +:1026A0008B2D8F7126960FB6F894DEBF0FBECDBF6F +:1026B000DF91CF911F910F91FF90EF90DF90CF901E +:1026C000BF900C940D1826960FB6F894DEBF0FBE7F +:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1 +:1026E000CF90BF900C9403180023A9F0222309F483 +:1026F000ADCF812F26960FB6F894DEBF0FBECDBFAB +:10270000DF91CF911F910F91FF90EF90DF90CF90CD +:10271000BF900C94AD0F222309F4ADCF812F2696E4 +:102720000FB6F894DEBF0FBECDBFDF91CF911F91E2 +:102730000F91FF90EF90DF90CF90BF900C947510A9 +:102740004B2D4F70612FC7010E94BF0226960FB616 +:10275000F894DEBF0FBECDBFDF91CF911F910F91D7 +:10276000FF90EF90DF90CF90BF900C9427174B2DE8 +:102770004F70612FC70126960FB6F894DEBF0FBECB +:10278000CDBFDF91CF911F910F91FF90EF90DF9020 +:10279000CF90BF900C94180626960FB6F894DEBF23 +:1027A0000FBECDBFDF91CF911F910F91FF90EF90A2 +:1027B000DF90CF90BF9008950E94BD190E9492199A +:1027C0000E94D7190E94E31E0E94331E80E090E011 +:1027D0000E94A70E80E090E00C94BD0E0E94AD19FF +:1027E0000C94DC130E94DE18292F22952F702C30B8 +:1027F00030F42A3048F42250223078F405C02C30CE +:1028000041F02F3031F009C0803E48F0803F29F47C +:1028100006C093FB882780F9089580E0089581E041 +:102820000895CF93DF9300D000D01F92CDB7DEB7CD +:102830000F900F900F900F900F90DF91CF91089510 +:10284000CF93DF9300D000D000D0CDB7DEB726966F +:102850000FB6F894DEBF0FBECDBFDF91CF910895C4 +:102860001F93CF93DF93C091790116E080917A0195 +:10287000C81799F0D0E01C9FF0011D9FF00D1124A6 +:10288000E558FE4F40815181628173818481958139 +:102890000E9420142196C770E9CFDF91CF911F913C +:1028A00008954091AB015091AC016091AD017091E0 +:1028B000AE018091AF019091B0010C9420148091F1 +:1028C000B00182958F7009F054C08091AD018823CA +:1028D00009F44FC080917901A0917A014091AE0135 +:1028E0005091AF016091AB017091AC01B6E08A17D5 +:1028F00009F43FC090E041155105C1F17F3F11F44B +:102900006F3FA1F1B89FF001B99FF00D1124E55878 +:10291000FE4F218127132AC02081261327C0228140 +:10292000211124C0238134812417350710F421504C +:102930003109241B350B283C3105C0F42091B0012E +:102940002F7020612093B00126E0289FF001299F7D +:10295000F00D1124E058FE4F80818F7080618083DC +:102960008BEA91E00E94D2100C943014019687708B +:10297000BECF0895CF92DF92EF92FF920F931F93F5 +:10298000CF93DF93CDB7DEB762970FB6F894DEBF73 +:102990000FBECDBF8C0185E0F801DE011D960190D0 +:1029A0000D928A95E1F7D8014C9111965C9111979F +:1029B00012966C918091AE019091AF01009709F44D +:1029C00075C13091AB017091AC017F3F19F43F3F6D +:1029D00009F46CC1F801C380D480E090AD01EE2011 +:1029E00009F4BEC02091B001C816D90628F0D6015E +:1029F000A81BB90BCD0104C0809590958C0D9D1D31 +:102A0000FF24F394883C910578F0F12C207F09F0A5 +:102A1000C4C07C2DD98AC88A89890E9411148BEA86 +:102A200091E00E94D210AFC0822F807F09F045C094 +:102A3000571313C0431311C061110FC02F702061D1 +:102A40002093B0010E9451148BEA91E00E94D210B1 +:102A50008091B001F80185832EC0CD2819F15F3F28 +:102A600011F44F3FF9F0F62E61111CC080917901ED +:102A700020917A0136E0821709F45BC090E0389F1C +:102A8000F001399FF00D1124E558FE4F7181571365 +:102A900006C07081471303C07281711103C0019693 +:102AA0008770E9CFF62E662309F41CC18091B0012E +:102AB00081608093B001F12C15C1571309C04313F5 +:102AC00007C0611105C08091B001F8018583C8C0BD +:102AD0004D875E878D859E856A8B0E94F2136A8979 +:102AE0008823D1F16623C1F12091B001822F829514 +:102AF0008F7090E0029774F08091AB019091AC01DF +:102B000098878F831986DB86CA862C87CE01079625 +:102B10000E94D21086E0F801ABEAB1E001900D927C +:102B20008A95E1F70E945F140E945114FF24F394E8 +:102B3000D9C04D875E878D859E850E94DE18292F1E +:102B400022952F70223008F0C1C09F7009F0BBC0E1 +:102B5000805E883008F4C6C0C8010E94D210E6CF5B +:102B6000C816D90608F453C0F601E81BF90BCF01CB +:102B7000883C910508F450C0F12C7C2DD98AC88A74 +:102B800089890E941114EBEAF1E086E0DF011D92D1 +:102B90008A95E9F70E945114A5C0571314C0431336 +:102BA00012C0611110C08091B001F8018583C80185 +:102BB0000E94D21086E0EBEAF1E0DF011D928A95D7 +:102BC000E9F7FE2C8FC04D875E878D859E856A8BC9 +:102BD0000E94F2136A89882309F4BECF662309F4A0 +:102BE000BBCF2091B001822F82958F7090E0029729 +:102BF0000CF490CF8091AB019091AC019A838983C2 +:102C00001B82DD82CC822E83CE01019681CF8095FE +:102C100090958C0D9D1DACCFF62E662309F49CCFAC +:102C2000571333C0431331C02091B00120FD24C09D +:102C3000822F82958F70482F50E041155105E1F0A9 +:102C4000D80115962C9315974F30510549F08F5F99 +:102C5000982F9295907F822F8F70892B15968C9349 +:102C6000C8010E94D21086E0F801ABEAB1E0019001 +:102C70000D928A95E1F78ECF86E0F801ABEAB1E0DC +:102C800001900D928A95E1F72DC04D875E878D8565 +:102C90009E850E94F21381113DCF8091B001816029 +:102CA0008093B001C8010E94D2101CC0662309F4B1 +:102CB00053CF4D875E878D859E850E94F2138823B2 +:102CC00009F44ACF27CF811143CF0CC0243008F03C +:102CD00043CF9F7009F43CCFD80115969C91907F0B +:102CE00009F036CF8F2D62960FB6F894DEBF0FBE77 +:102CF000CDBFDF91CF911F910F91FF90EF90DF90AB +:102D0000CF9008951F93CF93DF93CDB7DEB72C9765 +:102D10000FB6F894DEBF0FBECDBF4F8358876987CB +:102D20007A878B879C87CE0107960E94BA148823E6 +:102D300071F08A859B85892B09F441C088858F3F76 +:102D400009F065C08F818F3F09F061C038C086E00F +:102D5000FE013796DE01119601900D928A95E1F7FA +:102D60006A857B856115710551F1FF81E885EF3F2B +:102D700011F4FF3F21F120917A0130E0C901019661 +:102D8000877099274091790150E08417950709F4DD +:102D900047C0F983EA837D836C8396E0929FD001DC +:102DA000939FB00D1124A558BE4FFE01319601909E +:102DB0000D929A95E1F780937A010E94301416E003 +:102DC0008091790190917A018917B9F1189FC0011A +:102DD000112485589E4F0E94BA14882371F1E09106 +:102DE00079011E9FF0011124E558FE4F4081518169 +:102DF00062817381848195810E9420148091790180 +:102E000090E001968770992780937901D9CF4F81FF +:102E1000588569857A858B859C850E942014CFCF43 +:102E20000E94EE1310927A0110927901EBEAF1E020 +:102E300086E0DF011D928A95E9F72C960FB6F8948B +:102E4000DEBF0FBECDBFDF91CF911F910895EF92EE +:102E5000FF920F931F93CF93DF938C01892B09F47B +:102E60006CC0F12CEE24E394E8012196F8018491E2 +:102E7000843740F4843008F051C0813081F08230D2 +:102E800019F15BC0853709F444C0A8F19CE7980F9D +:102E9000903708F052C08F770E94751041C00E5FC6 +:102EA0001F4FFE01849190E2980F983050F4877084 +:102EB000FE2D01C0FF0F8A95EAF78F2F0E94B019EF +:102EC00014C00E94AD0F2DC00E5F1F4FFE018491F4 +:102ED00090E2980F983060F48770FE2D01C0FF0FCC +:102EE0008A95EAF78F2F0E94B6190E94D71919C048 +:102EF0000E94751016C00E5F1F4FFE01C491CC23B7 +:102F000081F08FE99FE00197F1F700C00000C15008 +:102F1000F6CF0E5F1F4FFE01F49003C00E94AD0F6D +:102F20008E018F2D882309F49FCFEFE9FFE03197C1 +:102F3000F1F700C000008150F5CFDF91CF911F91D4 +:102F40000F91FF90EF90089508956093B5017093ED +:102F5000B6018093B7019093B8010C94DC130F93E2 +:102F60001F930091B5011091B6012091B7013091E6 +:102F7000B801DC01CB01802B912BA22BB32B8093CA +:102F8000B5019093B601A093B701B093B8011F911A +:102F90000F910C94DC130F931F930091B5011091C6 +:102FA000B6012091B7013091B801DC01CB0180233B +:102FB0009123A223B3238093B5019093B601A093EC +:102FC000B701B093B8011F910F910C94DC130F93CC +:102FD0001F930091B5011091B6012091B701309176 +:102FE000B801DC01CB0180279127A227B32780936A +:102FF000B5019093B601A093B701B093B8011F91AA +:103000000F910C94DC131092B1011092B201109246 +:10301000B3011092B4010C94DC1341E050E060E085 +:1030200070E004C0440F551F661F771F8A95D2F7C2 +:103030004093B1015093B2016093B3017093B40116 +:103040000C94DC1341E050E060E070E004C0440FF9 +:10305000551F661F771F8A95D2F78091B101909115 +:10306000B201A091B301B091B401482B592B6A2B46 +:103070007B2B4093B1015093B2016093B3017093E5 +:10308000B4010C94DC1341E050E060E070E004C057 +:10309000440F551F661F771F8A95D2F740955095AC +:1030A000609570958091B1019091B201A091B301AA +:1030B000B091B401482359236A237B234093B10183 +:1030C0005093B2016093B3017093B4010C94DC137C +:1030D00041E050E060E070E004C0440F551F661FFF +:1030E000771F8A95D2F78091B1019091B201A0919A +:1030F000B301B091B401482759276A277B27409331 +:10310000B1015093B2016093B3017093B4010C9478 +:10311000DC130F931F930091B1011091B201209124 +:10312000B3013091B401DC01CB01802B912BA22B98 +:10313000B32B8093B1019093B201A093B301B093EC +:10314000B4011F910F910C94DC130F931F93009106 +:10315000B1011091B2012091B3013091B401DC01B1 +:10316000CB0180239123A223B3238093B1019093B9 +:10317000B201A093B301B093B4011F910F910C94CD +:10318000DC130F931F930091B1011091B2012091B4 +:10319000B3013091B401DC01CB0180279127A22734 +:1031A000B3278093B1019093B201A093B301B09380 +:1031B000B4011F910F910C94DC130895CF92DF920C +:1031C000EF92FF920F931F93CF93DF938C01C090E8 +:1031D000B101D090B201E090B301F090B4018091C0 +:1031E000B5019091B601A091B701B091B801C82A7C +:1031F000D92AEA2AFB2ACFE1D0E0D701C6010C2E5A +:1032000004C0B695A795979587950A94D2F780FF45 +:1032100007C0B8018C2F0E943C068130910531F423 +:10322000219758F7B80180E00E943C06DF91CF91CA +:103230001F910F91FF90EF90DF90CF9008959091A4 +:103240000C019923F1F090910D019923D1F0982F61 +:103250009695969596959F3080F5E0910E01F091A8 +:103260000F01E90FF11D877021E030E0A90102C0D4 +:10327000440F551F8A95E2F7CA019181892B8183FA +:10328000089520910E0130910F01F90132969FEFC0 +:1032900040E05191851789F09F3F19F4511101C009 +:1032A000942F4F5F4E30A9F79F3F39F0F901E90F96 +:1032B000F11D97FDFA9582830895089590910C0170 +:1032C0009923F9F090910D019923D9F0982F9695B3 +:1032D000969596959F3028F5E0910E01F0910F019B +:1032E000E90FF11D877021E030E0A90102C0440F11 +:1032F000551F8A95E2F7CA018095918189238183C0 +:10330000089520910E0130910F01F9013296205F4E +:103310003F4F9081891301C010823196E217F30765 +:10332000C1F7089581E090E0E0910E01F0910F0166 +:10333000E80FF91F1082019680319105A9F70895D1 +:103340009091CB01892B8093CB010895809590912A +:10335000CB0189238093CB0108951092CB0108956E +:103360009091CA01892B8093CA010895809590910C +:10337000CA0189238093CA0108951092CA01089551 +:103380008093B90108951092B901089580910E01BA +:1033900090910F01FC0131969C01205F3F4F80E02E +:1033A000919191118F5FE217F307D1F70895E091A2 +:1033B0000E01F0910F018091CB018083E0910E010D +:1033C000F0910F0190818091CA01892B80838091B7 +:1033D000B901882361F0E0910E01F0910F01908115 +:1033E000892B80830E94C61981111092B9018091A6 +:1033F0000E0190910F010C94910ECF92DF92EF92FB +:10340000FF926C01EE24FF24C114D104E104F10405 +:1034100021F0C701B60120E101C020E0C72ED82E5F +:10342000E92EFF24C114D104E104F10419F0285F4E +:10343000C701B6016B017C0154E0F694E794D79480 +:10344000C7945A95D1F7C114D104E104F10419F0DD +:103450002C5FC701B6016B017C0142E0F694E79452 +:10346000D794C7944A95D1F7C114D104E104F1046B +:1034700019F02E5FC701B601DC01CB01B695A79507 +:1034800097958795892B8A2B8B2B09F02F5F822F9D +:10349000FF90EF90DF90CF9008958091E401843009 +:1034A00011F120E488E190E00FB6F894A89580939C +:1034B00060000FBE2093600083B7817F846083BF6C +:1034C00083B7816083BF7894889583B78E7F83BFED +:1034D0000FB6F894A8958091600088618093600091 +:1034E000109260000FBE089508950C94741ACF9343 +:1034F0000E94751A0E9457040E94741AC0E08C2F13 +:103500000E945105811104C0CF5FCE30C1F701C0C8 +:1035100081E0CF9108950E94EE130E94850E0C94D5 +:103520007B0782E084BD93E095BD9AEF97BD8093C1 +:103530006E0008952FB7F8948091CD019091CE013F +:10354000A091CF01B091D0012FBF0895CF92DF920B +:10355000EF92FF920F931F932FB7F8944091CD01F4 +:103560005091CE016091CF017091D0012FBF6A01BF +:103570007B01EE24FF248C0120E030E0C016D10650 +:10358000E206F30610F4415051099A01281B390B49 +:10359000C9011F910F91FF90EF90DF90CF90089598 +:1035A0001F920F920FB60F9211248F939F93AF9398 +:1035B000BF938091CD019091CE01A091CF01B091A8 +:1035C000D0010196A11DB11D8093CD019093CE0134 +:1035D000A093CF01B093D001BF91AF919F918F91F4 +:1035E0000F900FBE0F901F9018950E947D0BF894BE +:1035F0002FEF87EA91E6215080409040E1F700C02C +:10360000000087E090EBDC018093ED019093EE01E8 +:10361000A093EF01B093F0019CE088E10FB6F8941D +:10362000A895809360000FBE90936000FFCFEF924B +:10363000FF920F931F93CF93DF93D82FC0E08C2F6F +:103640000E94510500E010E0E82EF12CC701002E89 +:1036500002C0959587950A94E2F780FD06C00F5F3A +:103660001F4F0630110591F709C0602F7C2F80E0B5 +:103670000E9419068D13F3CF81E004C0CF5FCE30D6 +:10368000F1F680E0DF91CF911F910F91FF90EF90C5 +:103690000895CF93C82F8CE20E94171B882321F036 +:1036A0008C2FCF910C94171B80E0CF910895CF936E +:1036B0000E949E1C811102C00E94841CC5E6C1505C +:1036C00049F00E9457048FE39CE90197F1F700C08D +:1036D0000000F5CF89E20E94491B811113C18AE2E3 +:1036E0000E94491B81110E94841C85E00E94491B95 +:1036F00081110E94F51A0E94A91C8093CC0187E0D9 +:103700000E94491B8823A9F18BE10E94491B882351 +:1037100051F08091CC0181FB222720F991E0922782 +:1037200090FB81F90EC08EE00E94491B882361F056 +:103730008091CC0182FB222720F991E0922790FB17 +:1037400082F98093CC0115C080E10E94491B9091C1 +:10375000CC01882341F093FB222720F981E08227C6 +:1037600080FB93F904C0892F809580FB90F990939A +:10377000CC018091CC010E94AD1C0E94BB1C8093A7 +:10378000DE0180EE0E94491B882341F08091DE011A +:10379000982F909590FB80F98093DE0189E30E9439 +:1037A000491B882359F08091DE0181FB222720F9F3 +:1037B00091E0922790FB81F98093DE0182EE0E94D6 +:1037C000491B882359F08091DE0182FB222720F9D2 +:1037D00091E0922790FB82F98093DE0186EE0E94B1 +:1037E000491B882359F08091DE0183FB222720F9B1 +:1037F00091E0922790FB83F98093DE0183EE0E9493 +:10380000491B882359F08091DE0184FB222720F98F +:1038100091E0922790FB84F98093DE0185E30E947A +:10382000491B882359F08091DE0185FB222720F96E +:1038300091E0922790FB85F98093DE0181E30E945D +:10384000491B882359F08091DE0186FB222720F94D +:1038500091E0922790FB86F98093DE0181E10E943E +:10386000491B882359F08091DE0187FB222720F92C +:1038700091E0922790FB87F98093DE018091DE0131 +:103880000E94BF1C8091DE0187FB882780F980930E +:103890000D0187E20E94491BC82F8EE10E94491B3F +:1038A0008111C2608FE10E94491B8111C46080E2D6 +:1038B0000E94491B8111C86081E20E94491B81114D +:1038C000C06182E20E94491B8111C06283E20E94B2 +:1038D000491B8111C06484E20E94491B882311F0B6 +:1038E000C06802C0CC2329F08C2F0E94B61C6C2F1C +:1038F00003C00E94B21C682F70E080E090E0CF917E +:103900000C94A517CF9108956DEE7EEF80E090E0C6 +:103910000E94F82260E082E090E00E94EA2260E0EB +:1039200083E090E00E94EA2260E084E090E00E9460 +:10393000EA2260E085E090E00C94EA2280E090E0EA +:103940000E94E42221E08D3E9E4F09F020E0822F6C +:10395000089582E090E00C94DC22682F82E090E0F1 +:103960000C94EA2283E090E00C94DC22682F83E040 +:1039700090E00C94EA2284E090E00C94DC22682F22 +:1039800084E090E00C94EA228091D30180FF0BC088 +:103990006091130185E0689FB001112475956795CA +:1039A000759567952BC081FF09C06091130185E073 +:1039B000689FB00111247595679520C082FF07C0EC +:1039C0006091130185E0689FB001112417C09091A8 +:1039D000D4019923D1F060911201961788F72091B4 +:1039E000130185E0289F90011124929FA001939FCD +:1039F000500D112470E0CA010E94AE22603871059A +:103A000040F46115710519F406C065E070E0862F79 +:103A100008958FE7089581E008958091D30180FF94 +:103A200008C06091110170E075956795759567956F +:103A300021C081FF06C06091110170E07595679506 +:103A400019C082FF04C06091110170E010C0909114 +:103A5000D401992399F0609110019617A0F78091F5 +:103A60001101899FC001112470E00E94AE226038CC +:103A7000710540F46115710519F406C061E070E04C +:103A8000862F08958FE7089581E00895803F21F4FF +:103A90000E94C41C819504C0813F29F40E94C41C6B +:103AA0008093D7010895823F21F40E94C41C819520 +:103AB00004C0833F29F40E94C41C8093D60108955A +:103AC000893F19F40E940D1D05C08A3F31F40E9400 +:103AD0000D1D81958093D80108958B3F21F40E949C +:103AE0000D1D819504C08C3F29F40E940D1D80930B +:103AF000D9010895843F21F48091D501816017C0D8 +:103B0000853F21F48091D501826011C0863F21F468 +:103B10008091D50184600BC0873F21F48091D5014D +:103B2000886005C0883F31F48091D5018061809321 +:103B3000D50108958D3F21F48091D30181600BC0A0 +:103B40008E3F21F48091D301826005C08F3F29F41C +:103B50008091D30184608093D3010895803F39F42C +:103B60008091D70187FF6CC01092D70169C0813F57 +:103B700029F48091D7011816BCF362C09091D60148 +:103B8000823F29F497FF5CC01092D60159C0833F51 +:103B900019F41916CCF354C0893F41F48091D8012F +:103BA00018160CF04DC01092D8014AC08A3F29F473 +:103BB0008091D80187FF44C0F6CF8B3F39F48091C4 +:103BC000D90187FF3DC01092D9013AC08C3F29F43A +:103BD0008091D9011816BCF333C0843F21F4809141 +:103BE000D5018E7F17C0853F21F48091D5018D7F4F +:103BF00011C0863F21F48091D5018B7F0BC0873F98 +:103C000021F48091D501877F05C0883F31F48091F0 +:103C1000D5018F7E8093D50113C08D3F21F4809113 +:103C2000D3018E7F0BC08E3F21F48091D3018D7F15 +:103C300005C08F3F29F48091D3018B7F8093D301FE +:103C40008091D60181110EC08091D70181110AC0E7 +:103C50008091D801811106C08091D901811102C0E3 +:103C60001092D401089585ED91E00E949C0E0E946F +:103C70009A1A9093D2018093D10108951F93CF9304 +:103C8000DF938091D1019091D2010E94A61AAC01DC +:103C90009091D401992321F02091140130E006C0C5 +:103CA000209115018AE0289F9001112442175307A3 +:103CB00008F485C08091D601C091D701D091D80178 +:103CC0001091D901811107C0C11175C0D11173C004 +:103CD000111171C074C09F3F19F09F5F9093D40180 +:103CE000181624F40E94C41C8093D6018091D6013A +:103CF00087FF05C00E94C41C81958093D6011C16C5 +:103D000024F40E94C41C8093D7018091D70187FFBF +:103D100005C00E94C41C81958093D7016091D60193 +:103D2000662331F1C091D701CC2311F1062E000C8E +:103D3000770B880B990B0E94B52123E333E343E310 +:103D40005FE30E9419220E947D216093D6016C2FAF +:103D5000CC0F770B880B990B0E94B52123E333E33B +:103D600043E35FE30E9419220E947D216093D70103 +:103D70001D1624F40E940D1D8093D8018091D80156 +:103D800087FF05C00E940D1D81958093D8011116F3 +:103D900024F40E940D1D8093D9018091D90187FFE1 +:103DA00005C00E940D1D81958093D901DF91CF91AF +:103DB0001F910C94331E9F3F09F08FCFA0CFDF914E +:103DC000CF911F910895E5EDF1E085E0DF011D92AF +:103DD0008A95E9F71092D4011092D30108958330A7 +:103DE00081F128F4813059F08230D1F00895853086 +:103DF00009F449C0B8F1863009F456C0089580919D +:103E00001501262F30E0280F311D2F3F310524F4F6 +:103E1000680F6093150108958FEF80931501089541 +:103E200080911401262F30E0280F311D2F3F3105DE +:103E300024F4680F6093140108958FEF80931401A8 +:103E4000089580911301262F30E0280F311D2F3F58 +:103E5000310524F4680F6093130108958FEF809368 +:103E60001301089580911201262F30E0280F311D93 +:103E70002F3F310524F4680F6093120108958FEFEE +:103E800080931201089580911101262F30E0280FB0 +:103E9000311D2F3F310524F4680F609311010895FF +:103EA0008FEF80931101089580911001262F30E04B +:103EB000280F311D2F3F310524F4680F6093100146 +:103EC00008958FEF809310010895833011F128F445 +:103ED000813049F0823091F00895853081F120F1F0 +:103EE0008630C1F1089580911501681720F4861B72 +:103EF0008093150108951092150108958091140181 +:103F0000681720F4861B8093140108951092140101 +:103F1000089580911301681720F4861B8093130184 +:103F2000089510921301089580911201681720F4EA +:103F3000861B8093120108951092120108958091BA +:103F40001101681720F4861B8093110108951092C7 +:103F50001101089580911001681720F4861B809349 +:103F6000100108951092100108950F931F938D3141 +:103F700009F46BC008F03FC08E3009F47DC0C0F476 +:103F8000873009F46EC068F4863009F0AFC08091C4 +:103F9000CC01817F8E7F8093CC0181E08093DB0117 +:103FA000A6C0883009F458C08B3009F49BC09EC06D +:103FB000863109F497C078F4803109F470C08131FA +:103FC00009F094C00E94EE1390910D0181E08927C1 +:103FD00080930D0187C0893109F484C08B3109F0C9 +:103FE00085C08091CC0181FB222720F991E09227A6 +:103FF00090FB81F94AC0853309F45BC048F48732ED +:1040000009F457C008F45AC0893209F452C06EC08E +:10401000833438F48A3308F067C0883309F462C007 +:1040200065C0833409F445C0883409F05FC00E943C +:10403000EE130FEF13ED20E3015010402040E1F7A5 +:1040400000C000000E94F51A4DC00E9437210E9456 +:10405000850E0E947B0746C00E94A91C0E94BB1CC3 +:1040600041C09091CC01892F817090FF12C0917F47 +:104070009E7F9093CC013BC08091CC0182FB222794 +:1040800020F991E0922790FB82F98093CC0199234B +:1040900049F18091CC0181608093CC0123C0809153 +:1040A000CC0183FB222720F991E0922790FB83F932 +:1040B000ECCF61E070E080E090E010C08D5141E015 +:1040C00050E060E070E08A019B0104C0000F111F06 +:1040D000221F331F8A95D2F7C901B8010E94A51784 +:1040E0000E94EE1381E003C08953E9CF80E01F9165 +:1040F0000F91089580E008950C947A20CF93C82FF3 +:104100008091DB01813079F018F08230E9F187C0CD +:10411000E0910E01F0910F018081813169F08232CE +:1041200009F07FC009C0E0910E01F0910F0180817C +:10413000813111F0823261F48C2F0E947C20811138 +:1041400004C08C2F0E94B51F1DC081E090E01AC0F2 +:104150008C2F0E947A20811114C0C43179F048F468 +:10416000CB3079F0C03109F060C082E08093DB0190 +:1041700008C0C93219F0C83321F057C01092DB01D2 +:1041800054C081E0817053C0C93289F118F5C4313F +:1041900071F1A8F4C73009F046C08AE08093150198 +:1041A00094E19093140193E0909313018093120192 +:1041B00088E08093110188E28093100134C0CE51D1 +:1041C000C63088F5EC2FF0E0E65DFE4F80818093ED +:1041D000DA0129C0CE34E9F020F4CB3421F56AE0CD +:1041E00013C0C13579F0C235F1F461E00DC08091A2 +:1041F000DA01882319F01092DA0115C081E080936A +:10420000DB0115C061E006C08091DA010E94EF1E5B +:104210000AC06AE08091DA010E94651F04C0109212 +:10422000DB0180E004C081E002C080E0ABCFCF9131 +:104230000895E1E8F0E0808188608083808181607A +:1042400080838FB7F89493E09093890090ED9093DA +:1042500088008FBF0895EFE6F0E080818260808360 +:104260000895EFE6F0E080818D7F80830895EFE68A +:10427000F0E0908182E08927808308951F920F9259 +:104280000FB60F9211242F933F934F935F936F9329 +:104290007F938F939F93AF93BF93EF93FF938091FF +:1042A000DC019091DD0101969093DD018093DC01AA +:1042B000811103C082E00E947B07E091DD01E69559 +:1042C000E695F0E0E555FB4FE4918091DC018E131B +:1042D00003C080E00E947B07FF91EF91BF91AF91F7 +:1042E0009F918F917F916F915F914F913F912F910E +:1042F0000F900FBE0F901F9018950E948421689414 +:10430000B1110C94132208950E94F82188F09F5750 +:1043100098F0B92F9927B751B0F0E1F0660F771FE9 +:10432000881F991F1AF0BA95C9F714C0B13091F0DF +:104330000E941222B1E008950C941222672F782F68 +:104340008827B85F39F0B93FCCF3869577956795A4 +:10435000B395D9F73EF490958095709561957F4F10 +:104360008F4F9F4F0895E89409C097FB3EF49095B6 +:104370008095709561957F4F8F4F9F4F9923A9F03E +:10438000F92F96E9BB279395F695879577956795CD +:10439000B795F111F8CFFAF4BB0F11F460FF1BC011 +:1043A0006F5F7F4F8F4F9F4F16C0882311F096E9A4 +:1043B00011C0772321F09EE8872F762F05C0662352 +:1043C00071F096E8862F70E060E02AF09A95660F0B +:1043D000771F881FDAF7880F9695879597F90895C4 +:1043E00057FD9058440F551F59F05F3F71F04795A6 +:1043F000880F97FB991F61F09F3F79F0879508958B +:10440000121613061406551FF2CF4695F1DF08C0A9 +:10441000161617061806991FF1CF869571056105C6 +:1044200008940895E894BB2766277727CB0197F96E +:1044300008950E942C220C949D220E948F2238F015 +:104440000E94962220F0952311F00C9486220C9461 +:104450008C2211240C9413220E94F02170F3959F5A +:10446000C1F3950F50E0551F629FF001729FBB276B +:10447000F00DB11D639FAA27F00DB11DAA1F649F07 +:104480006627B00DA11D661F829F2227B00DA11DBA +:10449000621F739FB00DA11D621F839FA00D611D40 +:1044A000221F749F3327A00D611D231F849F600D61 +:1044B000211D822F762F6A2F11249F5750409AF08A +:1044C000F1F088234AF0EE0FFF1FBB1F661F771F16 +:1044D000881F91505040A9F79E3F510580F00C94E1 +:1044E00086220C9413225F3FE4F3983ED4F3869522 +:1044F00077956795B795F795E7959F5FC1F7FE2B81 +:10450000880F911D9695879597F9089597F99F675C +:1045100080E870E060E008959FEF80EC089500244B +:104520000A941616170618060906089500240A9418 +:1045300012161306140605060895092E0394000C9E +:1045400011F4882352F0BB0F40F4BF2B11F460FF2D +:1045500004C06F5F7F4F8F4F9F4F089597FB072ECB +:1045600016F4009407D077FD09D00E94C82207FCFA +:1045700005D03EF4909581959F4F08957095619573 +:104580007F4F0895EE0FFF1F0590F491E02D0994E1 +:10459000AA1BBB1B51E107C0AA1FBB1FA617B70769 +:1045A00010F0A61BB70B881F991F5A95A9F7809585 +:1045B0009095BC01CD010895F999FECF92BD81BDC2 +:1045C000F89A992780B50895A8E1B0E042E050E05C +:1045D0000C94FF22262FF999FECF1FBA92BD81BD00 +:1045E00020BD0FB6F894FA9AF99A0FBE0196089575 +:1045F0000E94EA22272F0C94EB22DC01CB01FC0164 +:10460000F999FECF06C0F2BDE1BDF89A319600B42B +:0E4610000D9241505040B8F70895F894FFCF36 +:10461E0020027C070C08E707B3077F070101BA01E8 +:10462E0028080A03140A3F4D36396C041F04E903A7 +:10463E00B00343035C0375038E03010203040506F6 +:04464E000708090050 :00000001FF -- cgit v1.2.3 From 2530f45e2b6a2d3d8f1433f232415e4182eeeea5 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 21:06:20 -0700 Subject: New :pound: method --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 4f7e875f6..81fadeb48 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -104,6 +104,11 @@ If pressed and released will remain on layer until pressed again. Changelog ----------- +### [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: -- cgit v1.2.3 From 98593e8c0d8ea7b1c8e6f8ec0f8debcde9075376 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 21:11:05 -0700 Subject: New :pound: method --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 81fadeb48..5c811bd51 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -8,7 +8,7 @@ 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. Why not switch to a GB +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: @@ -132,4 +132,4 @@ 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). -- cgit v1.2.3 From 02e259dc823732e5f887aee0b07d0a9fca0a18e1 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 21:12:23 -0700 Subject: New :pound: method --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index 5c811bd51..f4d4c4aac 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -132,4 +132,5 @@ 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). + +1: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). -- cgit v1.2.3 From fb6dc7499f51688ec245826842300780273203c6 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Wed, 23 Mar 2016 21:13:05 -0700 Subject: New :pound: method --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index f4d4c4aac..e3a06fe32 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -132,5 +132,5 @@ 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). -- cgit v1.2.3 From 94e96456b87c28299b426e8d0f047033f6d93d42 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Thu, 24 Mar 2016 10:30:27 +0100 Subject: minor changes --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 30 +- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 2194 ++++++++++++------------- 2 files changed, 1111 insertions(+), 1113 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 7dbe05b28..0349c749b 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -74,28 +74,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 1: Symbol Layer * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | F6 | | L5 | F7 | F8 | F9 | F10 | F11 | F12 | + * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | ! | + * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | * | + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | UP | - | + | + * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | | | | | | | ' | LEFT| DOWN | RIGHT | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * | | | | | | + * | | | | F13 | F12 | * ,------|------|------| |------+------+------. - * | | | | | | | | + * | | | | | F14 | | | * | | |------| |------| | | - * | | | | | | | | + * | | | | | F15 | | | * `--------------------' `--------------------' */ // SYMBOLS [SYMB] = KEYMAP( // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, @@ -104,14 +104,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_DEL,KC_TRNS, // right hand - M(M_TOGGLE_5), KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, DE_EXLM, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), LSFT(DE_PLUS), - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), KC_UP, DE_MINS, DE_PLUS, + 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_LESS, DE_MORE, DE_EXLM, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, + KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS ), /* Keymap 2: Media and mouse keys * diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index 7f3ed1af5..c7cb8d863 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,19 +1,19 @@ -:100000000C94F0030C9437040C9437040C943704CC -:100010000C9437040C9437040C9437040C94370474 -:100020000C9437040C9437040C94370E0C94090F7D -:100030000C9437040C9437040C9437040C94370454 -:100040000C9437040C947D230C9437040C943704DF -:100050000C9437040C940F1D0C9437040C94370443 -:100060000C9437040C9437040C9437040C94370424 -:100070000C9437040C9437040C9437040C94370414 -:100080000C9437040C9437040C9437040C94370404 -:100090000C9437040C9437040C9437040C943704F4 -:1000A0000C9437040C9437040C943704470451041F -:1000B00069048104C904CF04F004D504EB04E1040D -:1000C000E604DB04B1049904F504760F980F8B1055 -:1000D000980F8B10DD0F00108B1055106810521305 -:1000E000521381138113C413FE130B160B1617142E -:1000F0000B160C150C15DF150B160B16F61501E17A +:100000000C94F0030C9434040C9434040C943404D5 +:100010000C9434040C9434040C9434040C94340480 +:100020000C9434040C9434040C94210E0C94F30EB0 +:100030000C9434040C9434040C9434040C94340460 +:100040000C9434040C9478230C9434040C943404ED +:100050000C9434040C94091D0C9434040C94340452 +:100060000C9434040C9434040C9434040C94340430 +:100070000C9434040C9434040C9434040C94340420 +:100080000C9434040C9434040C9434040C94340410 +:100090000C9434040C9434040C9434040C94340400 +:1000A0000C9434040C9434040C94340444044E042E +:1000B00066047E04C604CC04ED04D204E804DE0425 +:1000C000E304D804AE049604F204600F820F7010AB +:1000D000820F7010C70FEA0F70103F1052103413C8 +:1000E000341363136313A613E413FD15FD15FD13F9 +:1000F000FD15FE14FE14D115FD15FD15E81501E1E1 :100100000137023702E10138023801E201250225F8 :1001100002E20001E10137023702E1013802380151 :10012000E10130023002E10001E10137023702E172 @@ -32,25 +32,25 @@ :1001F000021902E30002E00001E0000000F0A1F0BB :10020000A329002B00E200E100358100001E00144C :100210000004001D710D304D831F001A0016001BD5 -:10022000000C304C002000080007000600E1042A02 -:10023000002100150009001900E1084A00220017FA -:10024000000A000500000003300130E3000000E276 -:1002500000000002540230E7000000E60000000445 +:10022000000C304C00200008000700060052002A95 +:1002300000210015000900190051004A0022001792 +:10024000000A00050000000330E101E3000000E2C5 +:1002500000000002543100E7000000E60000000446 :100260005423001C000B00110000002E7F240018F6 :10027000000D00100050004B0025000C000E003651 -:100280000052002C00260012000F003700510028F9 -:100290000027001300330038714F004E002D002F4F -:1002A000003474E50031810000010001000100010B +:10028000004F002C00260012000F003700E1082864 +:10029000002700130033003871E1044E002D002FB9 +:1002A000003474E50030810000010001000100010C :1002B00000010000003A003500310001000100019A :1002C000003B0035022102350001004C003C001EBD :1002D0000224062202010001003D002D0224022416 :1002E00004010001003E000100370011040000017C :1002F000000100010000000100000001000E3001BB -:100300000000000100000001003F00240624022339 -:100310000200000100400022042502350001000116 -:100320000041002304260235023700010042002468 -:100330000425041F021E020100430031002604317F -:1003400002010001004400450001002D02010000EF +:100300000000000100000068003F002406240224D1 +:100310000400004500400022042502110431026956 +:100320000041002304260264005000010042003511 +:100330000025045200510001004300350226043814 +:10034000004F006A0044001E02310021020100003B :100350000001000100010001000100000001000196 :100360000001000100010001000100F400F200FBA7 :1003700000010001000100F000F100FA000100019D @@ -80,7 +80,7 @@ :1004F00000000001000100010000000100000001F7 :10050000003F00520051002302000001004000247F :100510000021001E00270001004100250022001FCD -:1005200000370001004200260023002000270001C0 +:1005200000370001004200260023002000360001B1 :10053000004300300230002402270201004400453D :1005400000380001000100000001000100E100018D :1005500000E0000000010001000100010001003D79 @@ -125,1075 +125,1073 @@ :1007C000FCF5E9DAC7B39D87715D4A3A2C20170F13 :1007D0000A06040201000000000000000000000002 :1007E00011241FBECFEFDAE0DEBFCDBF04B603FE9B -:1007F00027C08091EF019091F001A091F101B0919B -:10080000F2018730904BA740B04BD1F41092EF012A -:100810001092F0011092F1011092F20114BE84B70F -:10082000877F84BF0FB6F894A89580916000886197 -:1008300080936000109260000FBEE0E0FFE3099536 -:1008400011E0A0E0B1E0ECE9FAE402C005900D92FD -:10085000A433B107D9F721E0A4E3B1E001C01D92B0 -:10086000AF3EB207E1F70E947E0B0C944C250C942E -:100870000000462F50E04F30510508F0DEC0FA016D -:10088000EA5AFF4FDC0112968C910C9401258823C3 -:1008900021F085EE0E94EC11D0C085EE0E94B412CA -:1008A000CCC0882349F00E94D91C909335018093D5 -:1008B000340188EF91E008958091340190913501E1 -:1008C0000E94E51C873991050CF0A8C08AEE91E0E2 -:1008D0000895882349F00E94D91C90933501809394 -:1008E000340187EE91E008958091340190913501B3 -:1008F0000E94E51C873991050CF093C089ED91E0C9 -:100900000895882349F00E94D91C90933501809363 -:10091000340182ED91E00895809134019091350188 -:100920000E94E51C873991050CF07EC080EC91E0B7 -:100930000895882349F00E94D91C90933501809333 -:1009400034018BEB91E00895809134019091350151 -:100950000E94E51C873991050CF069C08DEA91E091 -:100960000895882349F00E94D91C90933501809303 -:10097000340188EA91E00895809134019091350125 -:100980000E94E51C873991050CF054C08AE991E07A -:100990000895882309F451C085E891E008958823DB -:1009A00009F44BC080E791E00895882309F445C01D -:1009B0008BE591E00895882309F43FC086E491E037 -:1009C00008958823D1F18DE391E008958823A9F15A -:1009D00088E291E00895882381F183E191E0089510 -:1009E000882359F18EEF90E00895882331F18091AA -:1009F000B3019091B401A091B501B091B60120E28C -:100A0000822780729927AA27BB278093B3019093EE -:100A1000B401A093B501B093B6010FC085EF91E08A -:100A2000089584EE91E008958BEC91E0089586EBB3 -:100A300091E0089583EA91E0089580E090E00895C0 -:100A400008956091B3017091B4018091B5019091C6 -:100A5000B6010E943C1C56985E9825982D982698C1 -:100A60002E9827982F988330C1F028F4813041F0D8 -:100A7000823049F00895843049F0853051F008956E -:100A8000259A2D9A0895269A2E9A0895259A2D9A98 -:100A900004C0259A2D9A269A2E9A279A2F9A08955D -:100AA0000C94210556985E9825982D9826982E9896 -:100AB00027982F988FEF90E090938900809388007B -:100AC00090938B0080938A0090938D0080938C008C -:100AD000259A2D9A2FEF80E792E021508040904098 -:100AE000E1F700C00000269A2E9A2FEF80E792E0EF -:100AF000215080409040E1F700C00000279A2F9AD3 -:100B00002FEF80E792E0215080409040E1F700C055 -:100B1000000025982D982FEF80E792E0215080402B -:100B20009040E1F700C0000026982E982FEF80E754 -:100B300092E0215080409040E1F700C000002798EB -:100B40002F9856985E9825982D9826982E98279835 -:100B50002F98089589EA8093800089E0809381002E -:100B600024982C983F988AB18F748AB96E98479AC6 -:100B70008BB1806B8BB9769A0E9452050C9420053C -:100B800080E2809300018091360181110EC00E94A5 -:100B90000F0681E0809336012FEF83ED90E3215023 -:100BA00080409040E1F700C0000080E40E941506FC -:100BB0008093000181112EC00E943F0680930001A6 -:100BC000811128C00E943F0680930001811122C03C -:100BD0008FE30E943F068093000181111BC00E9499 -:100BE000370680E40E94150680930001811112C02F -:100BF0008CE00E943F068093000181110BC00E948F -:100C00003F0680930001811105C08FE30E943F06DB -:100C1000809300010E943706809100010895109290 -:100C2000B9008AE08093B800089594EA9093BC00DC -:100C30009091BC0097FFFCCF9091B900987F9830BD -:100C400021F0903111F081E008958093BB0084E899 -:100C50008093BC008091BC0087FFFCCF8091B900DD -:100C6000887F883111F0803471F780E0089584E93D -:100C70008093BC008091BC0084FDFCCF08958093DC -:100C8000BB0084E88093BC008091BC0087FFFCCF50 -:100C90009091B900987F81E0983209F480E008953E -:100CA00084E88093BC008091BC0087FFFCCF8091DA -:100CB000BB00089580910001811115C080E40E945D -:100CC00015068093000181110CC082E10E943F064D -:100CD00080930001811105C08FEF0E943F06809331 -:100CE00000010E94370684B1807F84B985B1807F7E -:100CF00085B98AB1837F8AB98BB1837F8BB93E98DE -:100D0000469808950E94C005809300010E945A06EB -:100D100080B38C7080BB81B3836F81BBE6E4F1E06C -:100D2000A8E3B1E011921D9281E0E435F807D1F714 -:100D30000C94AA059F92AF92BF92CF92DF92EF924E -:100D4000FF920F931F93CF93DF938091000188232D -:100D500079F0809137018F5F80933701811108C04E -:100D60000E94C00580930001811102C00E945205BB -:100D700088E3E82E81E0F82E8701C0E0D0E0BB24B4 -:100D8000B39492E0A92ECC24C394D12CC730D105C2 -:100D900000F580910001811164C080E40E94150675 -:100DA00080930001811112C082E10E943F0680936E -:100DB000000181110BC0C6010C2E01C0880F0A94DE -:100DC000EAF780950E943F06809300010E94370653 -:100DD00048C0CA30A1F028F4C83059F0C93061F0D9 -:100DE00005C0CC3089F070F0CD3089F0209A289879 -:100DF00010C0219A29980DC0229A2A980AC0239AD5 -:100E00002B9807C0529A01C0539A5B9802C03E9A31 -:100E10004698E0EAEA95F1F78FB181708B257999D0 -:100E200002C032E001C030E0832B7C9902C034E084 -:100E300001C030E0832B7D9902C028E001C020E092 -:100E4000822B7E9902C090E101C090E0892B9FB176 -:100E50009095991F9927991F9295990F907E892BAC -:100E60000FC08091000181114AC080E40E941506E4 -:100E700080930001882381F1912C0E943706892DEF -:100E8000D8019C91981719F08C93A09201010E94AF -:100E90005A0621960F5F1F4FCE30D10509F076CF4D -:100EA00080910101882369F1815080930101882399 -:100EB00039F0EFE9FFE03197F1F700C0000021C001 -:100EC000E6E4F1E0D7018D917D018193B6E4EB1664 -:100ED000B1E0FB06B9F715C083E10E943F0680939D -:100EE00000018111C9CF81E40E94150680930001A1 -:100EF0008111C2CF0E945006982E9094BECF80E000 -:100F0000BFCF0E94500581E0DF91CF911F910F91DB -:100F1000FF90EF90DF90CF90BF90AF909F9008959B -:100F2000E82FF0E0EA5BFE4F8081089508958B3B47 -:100F3000910580F4883A910548F5853A9105D8F4F1 -:100F40008430910508F0B2C0019709F06EC081E0CD -:100F500090E00895803E910508F467C0883E9105B1 -:100F600008F4A4C09C01205F31092031310508F04C -:100F70005CC090650895853A910509F459C0863A98 -:100F8000910509F058C082E890E40895883A9105E7 -:100F900009F454C0893A910509F453C08A3A91057D -:100FA00009F452C08B3A910509F451C08C3A91056D -:100FB00009F450C08D3A910509F44FC0803B91056A -:100FC00009F44EC08E3A910509F44DC08F3A91054F -:100FD00009F44CC0813B910509F44BC0823B91055B -:100FE00009F44AC0833B910509F449C0843B91054B -:100FF00009F448C0853B910509F447C0863B91053B -:1010000009F446C0873B910509F445C0883B91052A -:1010100009F444C0893B910509F443C08A3B91051A -:1010200009F442C080E094E4089580E090E00895DF -:1010300081E890E4089583E890E4089582EE94E4D2 -:10104000089589EE94E408958AEE94E4089585EB7A -:1010500094E4089586EB94E4089587EB94E408956E -:101060008CEC94E408958DEC94E4089583E895E481 -:1010700008958AE895E4089582E995E4089584E95D -:1010800095E4089581E296E4089583E296E4089554 -:1010900084E296E4089585E296E4089586E296E473 -:1010A000089587E296E408958AE296E40895089503 -:1010B00024E5829FC0011124FC0126E0729FE00D0F -:1010C000F11D1124E60FF11DEE0FFF1FEF5FFD4F25 -:1010D000859194910895880F991FFC01E558FF4F61 -:1010E000859194910895880F991FFC01E550FE4F5A -:1010F00085919491089524E5829FC0011124FC01FB -:1011000046E0749FE00DF11D1124E60FF11DEE0F76 -:10111000FF1FEF5FFD4F859194919C013A9521153A -:101120004FE1340708F425C13F512115304120F427 -:101130009F700E94730808959C013053211530411F -:1011400018F49927906C0895811520E5920769F4A9 -:101150000E942D164FEF84E39CE041508040904068 -:10116000E1F700C000000C94341D813020E59207A7 -:1011700031F48091CE0181608093CE0108959C016D -:1011800030552115304108F05CC0292F33272F70CE -:10119000332721303105E9F4AC0164E0440F551FD9 -:1011A0006A95E1F744275370BC016370772702C04A -:1011B000220F331F6A95E2F73C68242B352B73E02E -:1011C000880F991F7A95E1F780769927822B932BC8 -:1011D00008952230310529F4982F8827816F906A6D -:1011E000089523303105A1F4AC0133E0440F551FBD -:1011F0003A95E1F7407E57708370992721E030E0FF -:1012000002C0220F331F8A95E2F7C9019C6816C0FD -:101210002430310531F5AC0123E0440F551F2A95E8 -:10122000E1F7407E57708370992721E030E002C0DB -:10123000220F331F8A95E2F7C9019A68842B952BF8 -:1012400008959C0130572115304118F49F70906229 -:1012500008959C0130582115304118F49F70906A10 -:101260000895803E9105E0F4803C910558F5813366 -:10127000910509F46FC048F48932910509F463C0FF -:101280008A32910509F46DC072C089339105E9F085 -:1012900082389105D1F08533910509F44DC067C0BE -:1012A000833E910581F138F4803E9105B9F0823E8C -:1012B0009105D9F05CC0863E910561F1873E9105AC -:1012C000A1F155C00E946B0808952091E00120FD16 -:1012D00002C021FF4CC080EE90E049C08091E00147 -:1012E00080FFF9CF89E390E042C08091E00182FF66 -:1012F0000EC08091E00184FF03C080E090E037C021 -:1013000083EE90E034C08091E00182FFF2CF82EE64 -:1013100090E02DC08091E00183FF0BC08091E0013F -:1013200084FDEBCF87EE90E022C08091E00183FF47 -:10133000F5CF86EE90E01BC08091E00185FF07C0ED -:1013400089E290E014C08091E00185FFF9CF85E348 -:1013500090E00DC08091E00186FF07C08AE290E036 -:1013600006C08091E00186FFF9CF81E390E00E9402 -:10137000970708950895809164010895CF93DF93AE -:1013800000D01F92CDB7DEB79C018091E60184307A -:1013900019F593E099833B832A839093E9008FEFBB -:1013A0009091E800815095FD06C095ED9A95F1F772 -:1013B00000008111F5CF8091E80085FF0DC040E06D -:1013C00050E063E070E0CE0101960E942B0C80910A -:1013D000E8008E778093E8000F900F900F90DF91D8 -:1013E000CF910895CF93DF9300D01F92CDB7DEB792 -:1013F0002091E601243021F522E029839B838A8312 -:1014000083E08093E9008FEF9091E800815095FD93 -:1014100006C095ED9A95F1F700008111F5CF809106 -:10142000E80085FF0DC040E050E063E070E0CE01D1 -:1014300001960E942B0C8091E8008E778093E80043 -:101440000F900F900F90DF91CF9108959C018091A4 -:10145000E6018430F9F482E08093E9009FEF809107 -:10146000E800915085FD06C085ED8A95F1F70000F2 -:101470009111F5CF8091E80085FF0CC040E050E06D -:1014800065E070E0C9010E942B0C8091E8008E7726 -:101490008093E8000895CF93DF93EC018091E601FB -:1014A000843009F046C090910C019923D9F09091B5 -:1014B0000D019923B9F08093E9008FEF9091E80036 -:1014C000815095FD06C095E19A95F1F700008111D4 -:1014D000F5CF8091E80085FF2CC040E050E060E14E -:1014E00070E017C081E08093E9008FEF9091E800F1 -:1014F000815095FD06C095ED9A95F1F70000811198 -:10150000F5CF8091E80085FF14C040E050E068E02E -:1015100070E0CE010E942B0C8091E8008E778093C2 -:10152000E80080E1FE01A4E5B1E001900D928A950A -:10153000E1F7DF91CF9108958091E501811109C014 -:101540000E94BC0D0E94190E8091E200846080937D -:10155000E20008951092E501089508950C946A231D -:101560000E94CA1C0E9470230E94C4100C94BA09E5 -:1015700042E061EC81E00E94350D42E061EC82E0E6 -:101580000E94350D42E061EC83E00E94350D42E19E -:1015900061EC84E00C94350D8091E801833009F40E -:1015A00055C030F4813071F0823009F48EC0089556 -:1015B0008A3009F47AC08B3009F460C0893009F0B0 -:1015C0009CC020C08091E701813A09F096C08091CB -:1015D000E800877F8093E8008091EB019091EC0117 -:1015E000892B21F460E184E591E003C060E080E0B4 -:1015F00090E070E00E94760C8091E8008B778093F9 -:10160000E80008958091E701813209F076C0809169 -:10161000EB019091EC01009719F0039709F06DC070 -:101620008091E800877F8093E8008091E80082FD48 -:1016300005C08091E6018111F8CF5FC08091F10073 -:10164000809364018091E8008B7753C08091E7011B -:10165000813A09F052C08091EB019091EC01892B05 -:1016600009F04BC08091E800877F8093E80080916B -:10167000E80080FFFCCF80910C0136C08091E7012B -:101680008132D9F58091EB019091EC01892BA9F57C -:101690008091E800877F8093E8000E946A0D809126 -:1016A000E90180930C010C942D168091E7018132A1 -:1016B00021F58091E800877F8093E8000E946A0D01 -:1016C0008091EA018093650108958091E701813A54 -:1016D000A1F48091E800877F8093E8008091E80082 -:1016E00080FFFCCF809165018093F1008091E8003C -:1016F0008E778093E8000C946A0D089584B7877FF5 -:1017000084BF0FB6F894A89580916000886180939B -:101710006000109260000FBE90E080E80FB6F89471 -:1017200080936100909361000FBE0E9413110E948C -:10173000BC0D0E94190E8091E20084608093E2004B -:1017400078940E94A4100E94151182E091E00E94FA -:10175000BF100E9458238091E601853069F40E94F1 -:101760008C1C8091E4018823B1F30E94B61C88236D -:1017700091F30E94150CEFCF0E941B11ECCF292F83 -:10178000332723303105C9F060F42130310581F071 -:101790002230310509F041C08DE690E025E236E0C7 -:1017A00040C021323105E1F02232310531F135C03E -:1017B00082E190E022E936E034C09927813091053A -:1017C00049F028F0029749F5E1EFF5E005C0E1E2C4 -:1017D000F6E002C0E9E0F6E0849190E09F0121C0CC -:1017E0006430D8F4E62FF0E0EE0FFF1FEE5DFE4F01 -:1017F0002081318189E090E014C0643070F470E0A1 -:10180000FB01EE0FFF1FE65EFE4F20813181FB01E1 -:10181000EA5EFE4F808190E004C080E090E020E02E -:1018200030E0FA0131832083089580E189BD82E1AF -:1018300089BD09B400FEFDCF8091D8008F7D8093D3 -:10184000D8008091E00082608093E0008091E00009 -:1018500081FDFCCF0895CF92DF92EF92FF920F931C -:101860001F93CF93DF93EC018B016A010E94890DD6 -:10187000811133C0C114D10439F0F6018081918106 -:10188000081B190BC80FD91FE12CF12C01151105EC -:1018900019F18091E80085FD16C08091E8008E77EF -:1018A0008093E800C114D10449F0F6018081918150 -:1018B000E80EF91EF182E08285E00FC00E94890DDA -:1018C000882321F30AC089918093F1000150110906 -:1018D000FFEFEF1AFF0ADACF80E0DF91CF911F917F -:1018E0000F91FF90EF90DF90CF9008952091ED0140 -:1018F0003091EE012617370748F06115710539F46C -:101900002091E8002E772093E80001C0B901FC0186 -:1019100020E06115710579F18091E6018823F1F1EC -:101920008530F1F18091E80083FD3CC08091E800B2 -:1019300082FD2EC08091E80080FFEBCF2091F30064 -:101940008091F20090E0922B6115710551F0883082 -:10195000910538F421912093F100615071090196AD -:10196000F3CF21E0089709F020E08091E8008E771E -:101970008093E800CECF2111CFCF0AC08091E6013D -:10198000882361F0853061F08091E80083FD0AC012 -:101990008091E80082FFF2CF80E0089582E0089510 -:1019A00083E0089581E008952091ED013091EE01EA -:1019B0002617370748F06115710539F42091E800C2 -:1019C0002E772093E80001C0B901FC0120E06115E9 -:1019D000710591F18091E601882309F440C08530BA -:1019E00009F43FC08091E80083FD3DC08091E8008C -:1019F00082FD2FC08091E80080FFE9CF2091F300A5 -:101A00008091F20090E0922B6115710559F08830B9 -:101A1000910540F424912093F100319661507109B1 -:101A20000196F2CF21E0089709F020E08091E800CC -:101A30008E778093E800CBCF2111CCCF0AC0809164 -:101A4000E601882361F0853061F08091E80083FD34 -:101A50000AC08091E80082FFF2CF80E0089582E022 -:101A6000089583E0089581E00895982F973068F5F0 -:101A70009093E900981739F07091EC002091ED00F7 -:101A80005091F00003C0242F762F50E021FD02C0BA -:101A90009F5FECCF3091EB003E7F3093EB003091B5 -:101AA000ED003D7F3093ED003091EB0031603093DD -:101AB000EB007093EC002093ED005093F000209128 -:101AC000EE0027FDE5CF80E008958F708093E90058 -:101AD00081E008958091E70187FF11C08091E800BF -:101AE00082FD05C08091E6018111F8CF11C080917F -:101AF000E8008B770BC08091E601882349F0809144 -:101B0000E80080FFF8CF8091E8008E778093E800AE -:101B100008952091E4003091E50095E64091EC00B5 -:101B2000842F817040FF23C08091E80080FD1DC09C -:101B30008091E601882399F0853099F08091EB003F -:101B400085FD11C04091E4005091E5002417350750 -:101B500029F3915011F09A01E1CF84E0089582E0D9 -:101B6000089583E0089581E0089580E0089540910C -:101B7000E80042FFDDCF08950E942A0E0E94320E37 -:101B8000E0EEF0E0808181608083E8EDF0E080812C -:101B90008F77808319BCA7EDB0E08C918E7F8C93FA -:101BA00080818F7E80831092E50108950F931F93AB -:101BB000CF93DF930E942A0E0E94320EC8EDD0E030 -:101BC00088818F77888388818068888388818F7DEA -:101BD000888319BC1092E6011092E2011092E40190 -:101BE0001092E30100EE10E0F80180818B7F80838A -:101BF00088818160888342E060E080E00E94350D4A -:101C0000E1EEF0E080818E7F8083E2EEF0E0808183 -:101C100081608083808188608083F80180818E7FED -:101C20008083888180618883DF91CF911F910F919C -:101C30000895E8EDF0E080818F7E8083E7EDF0E0AD -:101C400080818160808384E082BF81E08093E501B0 -:101C50000C94D60DE8EDF0E080818E7F80831092A9 -:101C6000E20008951092DA001092E10008951F92A8 -:101C70000F920FB60F9211242F933F934F935F93C0 -:101C80006F937F938F939F93AF93BF93EF93FF9344 -:101C90008091E10082FF0BC08091E20082FF07C0CB -:101CA0008091E1008B7F8093E1000E94A3108091DE -:101CB000DA0080FF1FC08091D80080FF1BC0809198 -:101CC000DA008E7F8093DA008091D90080FF0DC00A -:101CD00080E189BD82E189BD09B400FEFDCF81E0CC -:101CE0008093E6010E949C0A05C019BC1092E6018F -:101CF0000E94AA0A8091E10080FF19C08091E20051 -:101D000080FF15C08091E2008E7F8093E200809179 -:101D1000E20080618093E2008091D800806280932D -:101D2000D80019BC85E08093E6010E94AE0A80913C -:101D3000E10084FF30C08091E20084FF2CC080E18C -:101D400089BD82E189BD09B400FEFDCF8091D80034 -:101D50008F7D8093D8008091E1008F7E8093E10099 -:101D60008091E2008F7E8093E2008091E2008160AA -:101D70008093E2008091E201882311F084E007C0A3 -:101D80008091E30087FD02C081E001C083E0809381 -:101D9000E6010E94B00A8091E10083FF29C0809192 -:101DA000E20083FF25C08091E100877F8093E100FE -:101DB00082E08093E6011092E2018091E1008E7F43 -:101DC0008093E1008091E2008E7F8093E200809119 -:101DD000E20080618093E20042E060E080E00E94E7 -:101DE000350D8091F00088608093F0000E94AD0A6C -:101DF000FF91EF91BF91AF919F918F917F916F91E3 -:101E00005F914F913F912F910F900FBE0F901F90B8 -:101E100018951F920F920FB60F9211242F933F9394 -:101E20004F935F936F937F938F939F93AF93BF93E2 -:101E3000CF93DF93EF93FF93C091E900CF70809130 -:101E4000EC00D82FD17080FDD0E81092E90080918D -:101E5000F000877F8093F00078940E944D0F1092DD -:101E6000E9008091F00088608093F000CD2BCF7066 -:101E7000C093E900FF91EF91DF91CF91BF91AF91B6 -:101E80009F918F917F916F915F914F913F912F9192 -:101E90000F900FBE0F901F9018951F93CF93DF9355 -:101EA000CDB7DEB7AA970FB6F894DEBF0FBECDBF91 -:101EB000E7EEF1E08091F100819321E0EF3EF2073F -:101EC000C9F70E94CC0A8091E80083FF24C1809169 -:101ED000E7019091E801492F50E04A30510508F0A0 -:101EE0001AC1FA01EB59FF4F0C940125803881F09B -:101EF000823809F010C18091EB018F708093E90066 -:101F00008091EB0085FB882780F91092E90006C0DC -:101F10008091E3019091E401911182609091E80039 -:101F2000977F9093E8008093F1001092F100C8C071 -:101F3000282F2D7F09F0EFC0882319F0823061F03F -:101F4000EAC08091E901813009F0E5C0933009F0E1 -:101F500080E08093E4012BC08091E901811127C0CA -:101F60008091EB018F7009F4D6C08093E900209135 -:101F7000EB0020FF1CC0933021F48091EB008062C5 -:101F800014C09091EB0090619093EB0021E030E061 -:101F9000A90102C0440F551F8A95E2F74093EA0059 -:101FA0001092EA008091EB0088608093EB00109221 -:101FB000E9008091E800877F86C08111ACC0109154 -:101FC000E9011F778091E3008078812B8093E30003 -:101FD0008091E800877F8093E8000E946A0D8091DD -:101FE000E80080FFFCCF8091E30080688093E300ED -:101FF000111102C082E001C083E08093E6018BC032 -:102000008058823008F087C08091E9019091EA0100 -:102010008C3D53E0950779F583E08A838AE28983D2 -:102020004FB7F894DE01139620E03EE051E2E32F33 -:10203000F0E050935700E49120FF03C0E295EF7069 -:102040003F5FEF708E2F90E0EA3010F0C79601C02E -:10205000C0968D939D932F5F243149F74FBF809198 -:10206000E800877F8093E8006AE270E0CE01019685 -:102070000E94760C14C0AE014F5F5F4F6091EB0180 -:102080000E94BF0BBC01892B09F445C09091E80068 -:10209000977F9093E80089819A810E94D40C809167 -:1020A000E8008B778093E80036C08038A1F58091F6 -:1020B000E800877F8093E8008091E2018093F1003F -:1020C0008091E8008E778093E8000E946A0D23C01B -:1020D000811121C08091E9019091EA01992702972D -:1020E000D4F48091E800877F8093E8008091E90133 -:1020F0008093E2010E946A0D8091E201811106C085 -:102100008091E30087FD02C081E001C084E08093FC -:10211000E6010E94B80A8091E80083FF0AC080911E -:10212000E800877F8093E8008091EB0080628093D5 -:10213000EB00AA960FB6F894DEBF0FBECDBFDF91BD -:10214000CF911F9108950895CF938091E601882340 -:10215000A1F0C091E900CF709091EC00892F8170BF -:1021600090FD80E8C82B1092E9008091E80083FD83 -:102170000E944D0FCF70C093E900CF9108959093C6 -:102180006B0180936A010895E0916A01F0916B01FF -:10219000309721F00190F081E02D099480E00895BE -:1021A000E0916A01F0916B01309721F00280F38198 -:1021B000E02D09940895E0916A01F0916B01309748 -:1021C00021F00480F581E02D0994089520916801A3 -:1021D000309169012817390771F090936901809354 -:1021E0006801E0916A01F0916B01309721F006805F -:1021F000F781E02D099408952091660130916701DF -:102200002817390771F09093670180936601E09178 -:102210006A01F0916B01309721F00084F185E02D87 -:102220000994089508950C9412110E94D01C0E94E4 -:1022300082060C94961DCF92DF92EF92FF920F933D -:102240001F93CF93DF93CDB7DEB72B970FB6F894DC -:10225000DEBF0FBECDBF0E949A068DE6C82E81E07C -:10226000D82E00E010E0E02E802F0E949007F601AB -:1022700041916F01F82EF426B1F40F5F1F4F0E301D -:10228000110589F78FEF89838A831B820E94D91CED -:102290008160782F9D838C8349815A816B818D81E8 -:1022A0000E94BE1140C09091CE0191FF04C08B8767 -:1022B0000E9496078B8520E030E04F2D50E0922F52 -:1022C000BA01022E02C0759567950A94E2F760FF85 -:1022D00024C02E83EF8221E030E0690102C0CC0CE3 -:1022E000DD1C9A95E2F790E08C219D21892B09F461 -:1022F00020E028870E94D91C8160782F9A878987DF -:102300004E815F8168858A850E94BE11F801E3597C -:10231000FE4F8081C826C08206C02F5F3F4F263007 -:10232000310569F6AACF0E947D200E94C4109091C9 -:102330006C018917A1F00E94C41080936C012B9648 -:102340000FB6F894DEBF0FBECDBFDF91CF911F91C6 -:102350000F91FF90EF90DF90CF900C94BA092B96DD -:102360000FB6F894DEBF0FBECDBFDF91CF911F91A6 -:102370000F91FF90EF90DF90CF900895CF93DF9370 -:10238000CDB7DEB72B970FB6F894DEBF0FBECDBF2B -:102390004F83588769877A878B87DE01119686E09D -:1023A000FD0111928A95E9F785E0FE0137960190CB -:1023B0000D928A95E1F749815A816B817C818D81EB -:1023C0009E810E94C1182B960FB6F894DEBF0FBEF7 -:1023D000CDBFDF91CF910895CF93C82F882309F403 -:1023E000C1C0823859F40E94C41081FDBBC089E38A -:1023F0000E945E1B0E94161C89E30CC0833879F48E -:102400000E94C41080FDAEC083E50E945E1B0E9446 -:10241000161C83E50E949D1BCF910C94161C8438DA -:1024200059F40E94C41082FD9DC087E40E945E1B87 -:102430000E94161C87E4EECF8CEF8C0F813A48F493 -:102440008C2F0E94BD2281118DC08C2F0E945E1B9B -:10245000E3CF80E28C0F883048F4C77081E001C080 -:10246000880FCA95EAF70E94DF1BD6CF8BE58C0F49 -:10247000833078F4C53A29F0C63A31F083E890E029 -:1024800005C081E890E002C082E890E0CF910C9412 -:10249000E61088E58C0F833108F064C0C83A39F142 -:1024A000C93A41F1CA3A49F1CB3A51F1CC3A59F122 -:1024B000CD3A61F1C03B69F1CE3A71F1CF3A79F191 -:1024C000C13B81F1C23B89F1C33B91F1C43B99F11E -:1024D000C53BA1F1C63BA9F1C73BB1F1C83BB9F17E -:1024E000C93BC1F1CA3BC9F180E090E038C082EE3F -:1024F00090E035C089EE90E032C08AEE90E02FC0C7 -:1025000085EB90E02CC086EB90E029C087EB90E053 -:1025100026C08CEC90E023C08DEC90E020C083E8D6 -:1025200091E01DC08AE891E01AC082E991E017C0ED -:1025300084E991E014C081E292E011C083E292E06C -:102540000EC084E292E00BC085E292E008C086E211 -:1025500092E005C087E292E002C08AE292E0CF9169 -:102560000C94FC10CF910895882309F44BC0823855 -:1025700059F40E94C41081FF45C089E30E945E1B8C -:102580000E94161C89E30CC0833871F40E94C410A9 -:1025900080FF38C083E50E945E1B0E94161C83E505 -:1025A0000E949D1B0C94161C843859F40E94C41080 -:1025B00082FF28C087E40E945E1B0E94161C87E4ED -:1025C000EFCF9CEF980F913A58F390E2980F983024 -:1025D00050F4877091E001C0990F8A95EAF7892F2E -:1025E0000E94E51BDFCF9BE5980F933020F480E03D -:1025F00090E00C94E610885A833120F480E090E05B -:102600000C94FC100895882321F00E94DF1B0C9489 -:10261000161C0895882321F00E94E51B0C94161CBB -:102620000895BF92CF92DF92EF92FF920F931F9384 -:10263000CF93DF9300D000D000D0CDB7DEB77C01C0 -:1026400085E0F701DE01119601900D928A95E1F780 -:10265000F70183819481892B09F4DDC29081818106 -:102660008F3F19F49F3F09F4D6C2F70102812581FB -:1026700022952F7099838A8389819A812E830E9463 -:102680001D1B182FB92E0E941C1B0E94E319EB2D55 -:10269000E295EF704E2F50E0FA01E159FF4F2E8185 -:1026A0000C9401258B2D807F9B2D9F70F92E882304 -:1026B00019F0F29480EFF822002349F0FF2009F48A -:1026C00057C28F2D0E94EF1B0E94161C51C2812FF2 -:1026D0000E94B412FF2009F49EC28F2D0E94F51BA8 -:1026E00026960FB6F894DEBF0FBECDBFDF91CF9117 -:1026F0001F910F91FF90EF90DF90CF90BF900C94BF -:10270000161C3B2D307F8B2D8F70303211F082954F -:10271000807F112319F0113021F12CC00023B9F072 -:10272000222309F490C1213009F08DC126960FB6FD -:10273000F894DEBF0FBECDBFDF91CF911F910F91F7 -:10274000FF90EF90DF90CF90BF900C94FF1B22235F -:1027500019F0213009F45FC28E830E94021C8E8121 -:1027600086C1002321F0223008F055C26CC121112E -:1027700052C27DC1002321F0222309F464C1F8C1B3 -:10278000222309F474C109C28B2D86958695837026 -:1027900019F08130D1F03FC2002321F0812F9B2D11 -:1027A000937002C080E090E026960FB6F894DEBFEA -:1027B0000FBECDBFDF91CF911F910F91FF90EF9092 -:1027C000DF90CF90BF900C94E610002321F0812F72 -:1027D0009B2D937002C080E090E026960FB6F8948F -:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 -:1027F000EF90DF90CF90BF900C94FC10812F0023BE -:1028000019F00E94851F02C00E94ED1F26960FB688 -:10281000F894DEBF0FBECDBFDF91CF911F910F9116 -:10282000FF90EF90DF90CF90BF900C9472208B2D93 -:10283000837009F075C00111EEC1812F82958695D4 -:102840008770880F880F912F9F70C92ED12CE12C93 -:10285000F12C082E04C0CC0CDD1CEE1CFF1C0A94CD -:10286000D2F714FF12C00FE010E020E030E004C007 -:10287000000F111F221F331F8A95D2F7C901B8011B -:10288000609570958095909503C060E070E0CB01F5 -:102890004B2D4695469543704230C1F060F56C294A -:1028A0007D298E299F29413051F126960FB6F89443 -:1028B000DEBF0FBECDBFDF91CF911F910F91FF9073 -:1028C000EF90DF90CF90BF900C940A1A6C297D296D -:1028D0008E299F2926960FB6F894DEBF0FBECDBF76 -:1028E000DF91CF911F910F91FF90EF90DF90CF90EC -:1028F000BF900C94261A0E940A1AC701B6012696A8 -:102900000FB6F894DEBF0FBECDBFDF91CF911F9100 -:102910000F91FF90EF90DF90CF90BF900C94EE1945 -:10292000002319F08B2D817001C08695882309F44E -:1029300072C1812F829586958770880F880F912F9D -:102940009F70C92ED12CE12CF12C082E04C0CC0C88 -:10295000DD1CEE1CFF1C0A94D2F714FF12C00FE01E -:1029600010E020E030E004C0000F111F221F331FD1 -:102970008A95D2F7C901B8016095709580959095B8 -:1029800003C060E070E0CB014B2D46954695437047 -:102990004230C1F060F56C297D298E299F29413094 -:1029A00051F126960FB6F894DEBF0FBECDBFDF9172 -:1029B000CF911F910F91FF90EF90DF90CF90BF903C -:1029C0000C94E41A6C297D298E299F2926960FB62E -:1029D000F894DEBF0FBECDBFDF91CF911F910F9155 -:1029E000FF90EF90DF90CF90BF900C94001B0E945F -:1029F000E41AC701B60126960FB6F894DEBF0FBEE3 -:102A0000CDBFDF91CF911F910F91FF90EF90DF909D -:102A1000CF90BF900C94C81A103FD1F118F4103E1B -:102A200050F4A1C0123F09F463C008F44CC0133F36 -:102A300009F473C098C01F708B2D8F710023A1F013 -:102A40000E94611A812F26960FB6F894DEBF0FBE42 -:102A5000CDBFDF91CF911F910F91FF90EF90DF904D -:102A6000CF90BF900C9403130E94821A812F269658 -:102A70000FB6F894DEBF0FBECDBFDF91CF911F918F -:102A80000F91FF90EF90DF90CF90BF900C940A13BE -:102A90000023A9F02111BFC08B2D8F7126960FB690 -:102AA000F894DEBF0FBECDBFDF91CF911F910F9184 -:102AB000FF90EF90DF90CF90BF900C94A71A223038 -:102AC00008F0A9C0E9CF0023A9F08B2D8F712696BD -:102AD0000FB6F894DEBF0FBECDBFDF91CF911F912F -:102AE0000F91FF90EF90DF90CF90BF900C94611A00 -:102AF000002359F38B2D8F7126960FB6F894DEBF05 -:102B00000FBECDBFDF91CF911F910F91FF90EF903E -:102B1000DF90CF90BF900C94821A002399F08B2DF8 -:102B20008F7126960FB6F894DEBF0FBECDBFDF9132 -:102B3000CF911F910F91FF90EF90DF90CF90BF90BA -:102B40000C944C1A26960FB6F894DEBF0FBECDBF7C -:102B5000DF91CF911F910F91FF90EF90DF90CF9079 -:102B6000BF900C94421A0023A9F0222309F4ADCFA0 -:102B7000812F26960FB6F894DEBF0FBECDBFDF9132 -:102B8000CF911F910F91FF90EF90DF90CF90BF906A -:102B90000C94EC11222309F4ADCF812F26960FB6A9 -:102BA000F894DEBF0FBECDBFDF91CF911F910F9183 -:102BB000FF90EF90DF90CF90BF900C94B4124B2D0C -:102BC0004F70612FC7010E94390426960FB6F89402 -:102BD000DEBF0FBECDBFDF91CF911F910F91FF9050 -:102BE000EF90DF90CF90BF900C9466194B2D4F70F3 -:102BF000612FC70126960FB6F894DEBF0FBECDBF7A -:102C0000DF91CF911F910F91FF90EF90DF90CF90C8 -:102C1000BF900C94570826960FB6F894DEBF0FBEEF -:102C2000CDBFDF91CF911F910F91FF90EF90DF907B -:102C3000CF90BF9008950E94FC1B0E94D11B0E9460 -:102C4000161C0E9422210E94722080E090E00E94C7 -:102C5000E61080E090E00C94FC100E94EC1B0C94B9 -:102C60001B160E941D1B292F22952F702C3030F42B -:102C70002A3048F42250223078F405C02C3041F03C -:102C80002F3031F009C0803E48F0803F29F406C063 -:102C900093FB882780F9089580E0089581E00895E6 -:102CA000CF93DF9300D000D01F92CDB7DEB70F9047 -:102CB0000F900F900F900F90DF91CF910895CF93C9 -:102CC000DF9300D000D000D0CDB7DEB726960FB688 -:102CD000F894DEBF0FBECDBFDF91CF9108951F9353 -:102CE000CF93DF93C0917B0116E080917C01C817E0 -:102CF00099F0D0E01C9FF0011D9FF00D1124E358C6 -:102D0000FE4F4081518162817381848195810E944F -:102D10005F162196C770E9CFDF91CF911F9108957B -:102D20004091AD015091AE016091AF017091B00141 -:102D30008091B1019091B2010C945F168091B20123 -:102D400082958F7009F054C08091AF01882309F4F7 -:102D50004FC080917B01A0917C014091B0015091C6 -:102D6000B1016091AD017091AE01B6E08A1709F42E -:102D70003FC090E041155105C1F17F3F11F46F3F15 -:102D8000A1F1B89FF001B99FF00D1124E358FE4F57 -:102D9000218127132AC02081261327C022812111D7 -:102DA00024C0238134812417350710F421503109C0 -:102DB000241B350B283C3105C0F42091B2012F7043 -:102DC00020612093B20126E0289FF001299FF00D99 -:102DD0001124EE57FE4F80818F70806180838DEAD1 -:102DE00091E00E9411130C946F1601968770BECF6C -:102DF0000895CF92DF92EF92FF920F931F93CF939C -:102E0000DF93CDB7DEB762970FB6F894DEBF0FBE83 -:102E1000CDBF8C0185E0F801DE011D9601900D9279 -:102E20008A95E1F7D8014C9111965C911197129611 -:102E30006C918091B0019091B101009709F475C136 -:102E40003091AD017091AE017F3F19F43F3F09F41D -:102E50006CC1F801C380D480E090AF01EE2009F48A -:102E6000BEC02091B201C816D90628F0D601A81B11 -:102E7000B90BCD0104C0809590958C0D9D1DFF244C -:102E8000F394883C910578F0F12C207F09F0C4C0C0 -:102E90007C2DD98AC88A89890E9450168DEA91E0D2 -:102EA0000E941113AFC0822F807F09F045C05713D5 -:102EB00013C0431311C061110FC02F702061209304 -:102EC000B2010E9490168DEA91E00E941113809148 -:102ED000B201F80185832EC0CD2819F15F3F11F4AE -:102EE0004F3FF9F0F62E61111CC080917B012091BB -:102EF0007C0136E0821709F45BC090E0389FF00156 -:102F0000399FF00D1124E358FE4F7181571306C00D -:102F10007081471303C07281711103C001968770DD -:102F2000E9CFF62E662309F41CC18091B2018160BD -:102F30008093B201F12C15C1571309C0431307C088 -:102F4000611105C08091B201F8018583C8C04D8729 -:102F50005E878D859E856A8B0E9431166A898823DB -:102F6000D1F16623C1F12091B201822F82958F7039 -:102F700090E0029774F08091AD019091AE01988736 -:102F80008F831986DB86CA862C87CE0107960E941E -:102F9000111386E0F801ADEAB1E001900D928A9537 -:102FA000E1F70E949E160E949016FF24F394D9C068 -:102FB0004D875E878D859E850E941D1B292F22953A -:102FC0002F70223008F0C1C09F7009F0BBC0805E36 -:102FD000883008F4C6C0C8010E941113E6CFC81695 -:102FE000D90608F453C0F601E81BF90BCF01883C61 -:102FF000910508F450C0F12C7C2DD98AC88A8989A2 -:103000000E945016EDEAF1E086E0DF011D928A95FC -:10301000E9F70E949016A5C0571314C0431312C0BD -:10302000611110C08091B201F8018583C8010E942E -:10303000111386E0EDEAF1E0DF011D928A95E9F7D0 -:10304000FE2C8FC04D875E878D859E856A8B0E9482 -:1030500031166A89882309F4BECF662309F4BBCFF1 -:103060002091B201822F82958F7090E002970CF42C -:1030700090CF8091AD019091AE019A8389831B829C -:10308000DD82CC822E83CE01019681CF80959095F2 -:103090008C0D9D1DACCFF62E662309F49CCF5713E3 -:1030A00033C0431331C02091B20120FD24C0822FD0 -:1030B00082958F70482F50E041155105E1F0D801FD -:1030C00015962C9315974F30510549F08F5F982F27 -:1030D0009295907F822F8F70892B15968C93C801C3 -:1030E0000E94111386E0F801ADEAB1E001900D9263 -:1030F0008A95E1F78ECF86E0F801ADEAB1E0019064 -:103100000D928A95E1F72DC04D875E878D859E854E -:103110000E94311681113DCF8091B2018160809370 -:10312000B201C8010E9411131CC0662309F453CFD9 -:103130004D875E878D859E850E943116882309F410 -:103140004ACF27CF811143CF0CC0243008F043CFA2 -:103150009F7009F43CCFD80115969C91907F09F09F -:1031600036CF8F2D62960FB6F894DEBF0FBECDBF5F -:10317000DF91CF911F910F91FF90EF90DF90CF9053 -:1031800008951F93CF93DF93CDB7DEB72C970FB67B -:10319000F894DEBF0FBECDBF4F83588769877A870B -:1031A0008B879C87CE0107960E94F916882371F0C1 -:1031B0008A859B85892B09F441C088858F3F09F05A -:1031C00065C08F818F3F09F061C038C086E0FE0185 -:1031D0003796DE01119601900D928A95E1F76A8586 -:1031E0007B856115710551F1FF81E885EF3F11F491 -:1031F000FF3F21F120917C0130E0C90101968770E9 -:10320000992740917B0150E08417950709F447C046 -:10321000F983EA837D836C8396E0929FD001939F2C -:10322000B00D1124A358BE4FFE01319601900D92AE -:103230009A95E1F780937C010E946F1616E08091C9 -:103240007B0190917C018917B9F1189FC00111246D -:1032500083589E4F0E94F916882371F1E0917B01FB -:103260001E9FF0011124E358FE4F4081518162817D -:103270007381848195810E945F1680917B0190E02B -:1032800001968770992780937B01D9CF4F8158850C -:1032900069857A858B859C850E945F16CFCF0E94B9 -:1032A0002D1610927C0110927B01EDEAF1E086E090 -:1032B000DF011D928A95E9F72C960FB6F894DEBFD0 -:1032C0000FBECDBFDF91CF911F910895EF92FF9276 -:1032D0000F931F93CF93DF938C01892B09F46CC05C -:1032E000F12CEE24E394E8012196F80184918437CF -:1032F00040F4843008F051C0813081F0823019F1FF -:103300005BC0853709F444C0A8F19CE7980F90375B -:1033100008F052C08F770E94B41241C00E5F1F4F59 -:10332000FE01849190E2980F983050F48770FE2D42 -:1033300001C0FF0F8A95EAF78F2F0E94EF1B14C080 -:103340000E94EC112DC00E5F1F4FFE01849190E290 -:10335000980F983060F48770FE2D01C0FF0F8A959A -:10336000EAF78F2F0E94F51B0E94161C19C00E94BD -:10337000B41216C00E5F1F4FFE01C491CC2381F022 -:103380008FE99FE00197F1F700C00000C150F6CF30 -:103390000E5F1F4FFE01F49003C00E94EC118E01DE -:1033A0008F2D882309F49FCFEFE9FFE03197F1F7E4 -:1033B00000C000008150F5CFDF91CF911F910F9198 -:1033C000FF90EF90089508956093B7017093B8014E -:1033D0008093B9019093BA010C941B160F931F931D -:1033E0000091B7011091B8012091B9013091BA0153 -:1033F000DC01CB01802B912BA22BB32B8093B70147 -:103400009093B801A093B901B093BA011F910F91A5 -:103410000C941B160F931F930091B7011091B801E4 -:103420002091B9013091BA01DC01CB0180239123B5 -:10343000A223B3238093B7019093B801A093B9015D -:10344000B093BA011F910F910C941B160F931F9309 -:103450000091B7011091B8012091B9013091BA01E2 -:10346000DC01CB0180279127A227B3278093B701E6 -:103470009093B801A093B901B093BA011F910F9135 -:103480000C941B161092B3011092B4011092B50166 -:103490001092B6010C941B1641E050E060E070E021 -:1034A00004C0440F551F661F771F8A95D2F74093BB -:1034B000B3015093B4016093B5017093B6010C94BD -:1034C0001B1641E050E060E070E004C0440F551F5F -:1034D000661F771F8A95D2F78091B3019091B4014E -:1034E000A091B501B091B601482B592B6A2B7B2BCB -:1034F0004093B3015093B4016093B5017093B6014A -:103500000C941B1641E050E060E070E004C0440FF2 -:10351000551F661F771F8A95D2F740955095609585 -:1035200070958091B3019091B401A091B501B091D3 -:10353000B601482359236A237B234093B301509358 -:10354000B4016093B5017093B6010C941B1641E071 -:1035500050E060E070E004C0440F551F661F771F05 -:103560008A95D2F78091B3019091B401A091B501F1 -:10357000B091B601482759276A277B274093B301AA -:103580005093B4016093B5017093B6010C941B166F -:103590000F931F930091B3011091B4012091B501D5 -:1035A0003091B601DC01CB01802B912BA22BB32BE8 -:1035B0008093B3019093B401A093B501B093B60189 -:1035C0001F910F910C941B160F931F930091B30141 -:1035D0001091B4012091B5013091B601DC01CB010D -:1035E00080239123A223B3238093B3019093B4014A -:1035F000A093B501B093B6011F910F910C941B16C7 -:103600000F931F930091B3011091B4012091B50164 -:103610003091B601DC01CB0180279127A227B32787 -:103620008093B3019093B401A093B501B093B60118 -:103630001F910F910C941B160895CF92DF92EF9279 -:10364000FF920F931F93CF93DF938C01C090B30130 -:10365000D090B401E090B501F090B6018091B7012F -:103660009091B801A091B901B091BA01C82AD92AA4 -:10367000EA2AFB2ACFE1D0E0D701C6010C2E04C014 -:10368000B695A795979587950A94D2F780FF07C0BE -:10369000B8018C2F0E947B088130910531F421976D -:1036A00058F7B80180E00E947B08DF91CF911F910D -:1036B0000F91FF90EF90DF90CF90089590910C01C3 -:1036C0009923F1F090910D019923D1F0982F9695BF -:1036D000969596959F3080F5E0910E01F0910F013F +:1007F00024C08091F0019091F101A091F201B0919B +:10080000F3018730904BA740B04BB9F41092F00140 +:100810001092F1011092F2011092F30114BE84B70C +:10082000877F84BF88E10FB6F894809360001092B0 +:1008300060000FBEE0E0FFE3099511E0A0E0B1E049 +:10084000E4E7FAE402C005900D92A433B107D9F7AA +:1008500011E0A4E3B1E001C01D92A03FB107E1F7B0 +:100860000E94650B0C9438250C940000462F50E034 +:100870004F30510508F0DEC0DC01FA01EA5AFF4FA3 +:1008800012968C910C94ED24882321F085EE0E9421 +:10089000D111D0C085EE0E949912CCC0882349F0B6 +:1008A0000E94D31C909335018093340188EF91E02E +:1008B000089580913401909135010E94DF1C8739A1 +:1008C00091050CF0A8C08AEE91E00895882349F0C4 +:1008D0000E94D31C909335018093340187EE91E000 +:1008E000089580913401909135010E94DF1C873971 +:1008F00091050CF093C089ED91E00895882349F0AB +:100900000E94D31C909335018093340182ED91E0D5 +:10091000089580913401909135010E94DF1C873940 +:1009200091050CF07EC080EC91E00895882349F099 +:100930000E94D31C90933501809334018BEB91E09E +:10094000089580913401909135010E94DF1C873910 +:1009500091050CF069C08DEA91E00895882349F073 +:100960000E94D31C909335018093340188EA91E072 +:10097000089580913401909135010E94DF1C8739E0 +:1009800091050CF054C08AE991E00895882309F498 +:1009900051C085E891E00895882309F44BC080E7B1 +:1009A00091E00895882309F445C08BE591E008950E +:1009B000882309F43FC086E491E008958823D1F1AB +:1009C0008DE391E008958823A9F188E291E00895EC +:1009D000882381F183E191E00895882359F18EEF16 +:1009E00090E00895882331F18091B3019091B40192 +:1009F000A091B501B091B60120E2822780729927BB +:100A0000AA27BB278093B3019093B401A093B501AB +:100A1000B093B6010FC085EF91E0089584EE91E0A8 +:100A200008958BEC91E0089586EB91E0089583EAB8 +:100A300091E0089580E090E0089508956091B301F9 +:100A40007091B4018091B5019091B6010E94381C5B +:100A500056985E9825982D9826982E9827982F9826 +:100A60008330C1F028F4813041F0823049F008959C +:100A7000843049F0853051F00895259A2D9A0895D3 +:100A8000269A2E9A0895259A2D9A04C0259A2D9A71 +:100A9000269A2E9A279A2F9A08950C941E055698F6 +:100AA0005E9825982D9826982E9827982F988FEF46 +:100AB00090E0909389008093880090938B008093BE +:100AC0008A0090938D0080938C00259A2D9A2FEFA9 +:100AD00080E792E0215080409040E1F700C00000A4 +:100AE000269A2E9A2FEF80E792E021508040904086 +:100AF000E1F700C00000279A2F9A2FEF80E792E0DD +:100B0000215080409040E1F700C0000025982D98CA +:100B10002FEF80E792E0215080409040E1F700C045 +:100B2000000026982E982FEF80E792E02150804019 +:100B30009040E1F700C0000027982F9856985E98E3 +:100B400025982D9826982E9827982F98089589EA09 +:100B50008093800089E08093810024982C983F98AE +:100B60008AB18F748AB96E98479A8BB1806B8BB9B2 +:100B7000769A0E944F050C941D0580E28093000137 +:100B80008091360181110EC00E940C0681E0809395 +:100B900036012FEF83ED90E3215080409040E1F744 +:100BA00000C0000080E40E941206809300018111C1 +:100BB0002EC00E943C0680930001811128C00E9433 +:100BC0003C0680930001811122C08FE30E943C0605 +:100BD0008093000181111BC00E94340680E40E94B2 +:100BE000120680930001811112C08CE00E943C0625 +:100BF0008093000181110BC00E943C06809300018C +:100C0000811105C08FE30E943C06809300010E9481 +:100C100034068091000108951092B9008AE0809313 +:100C2000B800089594EA9093BC009091BC0097FF9F +:100C3000FCCF9091B900987F983021F0903111F05D +:100C400081E008958093BB0084E88093BC0080918C +:100C5000BC0087FFFCCF8091B900887F883111F0FC +:100C6000803471F780E0089584E98093BC0080911E +:100C7000BC0084FDFCCF08958093BB0084E8809382 +:100C8000BC008091BC0087FFFCCF9091B900987F99 +:100C900081E0983209F480E0089584E88093BC00F4 +:100CA0008091BC0087FFFCCF8091BB0008958091AC +:100CB0000001811115C080E40E941206809300019A +:100CC00081110CC082E10E943C06809300018111D9 +:100CD00005C08FEF0E943C06809300010E943406FD +:100CE00084B1807F84B985B1807F85B98AB1837FE3 +:100CF0008AB98BB1837F8BB93E98469808950E943C +:100D0000BD05809300010E94570680B38C7080BBA4 +:100D100081B3836F81BBA8E3B1E0E6E4F1E08EE04C +:100D20008E0F11921D928E13FCCF0C94A705BF92CB +:100D3000CF92DF92EF92FF920F931F93CF93DF93A7 +:100D400080910001882379F0809137018F5F809333 +:100D50003701811108C00E94BD05809300018111F7 +:100D600002C00E944F0508E311E0C0E0D0E0DD249E +:100D7000D39482E0C82EEE24E394F12CC730D10541 +:100D800000F580910001811164C080E40E94120688 +:100D900080930001811112C082E10E943C06809381 +:100DA000000181110BC0C7010C2E01C0880F0A94ED +:100DB000EAF780950E943C06809300010E94340669 +:100DC00048C0CA30A1F028F4C83059F0C93061F0E9 +:100DD00005C0CC3089F070F0CD3089F0209A289889 +:100DE00010C0219A29980DC0229A2A980AC0239AE5 +:100DF0002B9807C0529A01C0539A5B9802C03E9A42 +:100E0000469890EA9A95F1F79FB1799902C082E0ED +:100E100001C080E091709D25982B7C9902C084E0F0 +:100E200001C080E0892B7D9902C038E001C030E02C +:100E3000832B7E9902C020E101C020E0822B9FB16C +:100E40009095991F9927991F9295990F907E892BBC +:100E50000FC080910001811149C080E40E941206F8 +:100E600080930001882379F1B12C0E9434068B2DE8 +:100E7000F8019081981719F08083C09201010E94B7 +:100E8000570621960F5F1F4FCE30D10509F076CF60 +:100E900080910101882361F18150809301018823B1 +:100EA00039F08FE99FE00197F1F700C0000020C002 +:100EB000A6E4B1E0E8E3F1E0CF01825F91919D9378 +:100EC0008E13FCCF15C083E10E943C068093000185 +:100ED0008111CACF81E40E94120680930001811122 +:100EE000C3CF0E944D06B82EB094BFCF80E0C0CFD4 +:100EF0000E944D0581E0DF91CF911F910F91FF90EE +:100F0000EF90DF90CF90BF900895E82FF0E0EA5B7C +:100F1000FE4F8081089508958B3B910578F4883ABF +:100F2000910540F5853A9105D0F48430910508F09B +:100F3000B1C08130910509F4ADC06BC0803E910510 +:100F400008F467C0883E910508F4A4C09C01205FA6 +:100F500031092031310508F05CC090650895853A6B +:100F6000910509F459C0863A910509F058C082E804 +:100F700090E40895883A910509F454C0893A91059E +:100F800009F453C08A3A910509F452C08B3A91058D +:100F900009F451C08C3A910509F450C08D3A91057D +:100FA00009F44FC0803B910509F44EC08E3A91057B +:100FB00009F44DC08F3A910509F44CC0813B91056D +:100FC00009F44BC0823B910509F44AC0833B91056B +:100FD00009F449C0843B910509F448C0853B91055B +:100FE00009F447C0863B910509F446C0873B91054B +:100FF00009F445C0883B910509F444C0893B91053B +:1010000009F443C08A3B910509F442C080E094E4AE +:10101000089580E090E0089581E890E4089583E8E1 +:1010200090E4089582EE94E4089589EE94E408959E +:101030008AEE94E4089585EB94E4089586EB94E4B5 +:10104000089587EB94E408958CEC94E408958DEC76 +:1010500094E4089583E895E408958AE895E4089572 +:1010600082E995E4089584E995E4089581E296E49F +:10107000089583E296E4089584E296E4089585E273 +:1010800096E4089586E296E4089587E296E408954A +:101090008AE296E40895089596E0799FF00111247C +:1010A00094E5899FE00DF11D1124E60FF11DEE0F6F +:1010B000FF1FEF5FFD4F859194910895880F991F51 +:1010C000FC01E558FF4F859194910895880F991F71 +:1010D000FC01E550FE4F85919491089526E0729FA2 +:1010E000F001112444E5849FE00DF11D1124E60F69 +:1010F000F11DEE0FFF1FEF5FFD4F859194919C0155 +:101100003A9521154FE1340708F41AC13F512115D2 +:10111000304120F49F700E94660808959C0130536E +:101120002115304118F49927906C0895811520E518 +:10113000920769F40E941F164FEF84E39CE0415030 +:1011400080409040E1F700C000000C942E1D8130DB +:1011500020E5920731F48091CE0181608093CE0129 +:1011600008959C0130552115304108F051C0292FB8 +:1011700033272F70332721303105D9F4AC01437068 +:10118000552702C0220F331F4A95E2F73C68AC0195 +:1011900064E0440F551F6A95E1F744275370242BF0 +:1011A000352B73E0880F991F7A95E1F780769927A0 +:1011B0001DC02230310529F4982F8827816F906A4D +:1011C000089523303105A9F4AC014370552721E07F +:1011D00030E002C0220F331F4A95E2F73C6843E03B +:1011E000880F991F4A95E1F7807E9770822B932B89 +:1011F000089524303105E1F4AC014370552721E016 +:1012000030E002C0220F331F4A95E2F73A68E7CF79 +:101210009C0130572115304118F49F709062089559 +:101220009C0130582115304118F49F70906A089540 +:10123000803E9105E0F4803C910558F5813391059D +:1012400009F46FC048F48932910509F463C08A3209 +:10125000910509F46DC072C089339105E9F08238B7 +:101260009105D1F08533910509F44DC067C0833EE7 +:10127000910581F138F4803E9105B9F0823E9105E7 +:10128000D9F05CC0863E910561F1873E9105A1F1E0 +:1012900055C00E945E0808952091E10120FD02C022 +:1012A00021FF4CC080EE90E049C08091E10180FFB9 +:1012B000F9CF89E390E042C08091E10182FF0EC046 +:1012C0008091E10184FF03C080E090E037C083EEAD +:1012D00090E034C08091E10182FFF2CF82EE90E095 +:1012E0002DC08091E10183FF0BC08091E10184FD5D +:1012F000EBCF87EE90E022C08091E10183FFF5CF34 +:1013000086EE90E01BC08091E10185FF07C089E275 +:1013100090E014C08091E10185FFF9CF85E390E072 +:101320000DC08091E10186FF07C08AE290E006C00F +:101330008091E10186FFF9CF81E390E00E948C0764 +:10134000089508950C94A109809164010895CF93A4 +:10135000DF9300D01F92CDB7DEB79C018091E701EB +:10136000843019F593E099833B832A839093E900B5 +:101370008FEF9091E800815095FD06C095ED9A950C +:10138000F1F700008111F5CF8091E80085FF0DC0D5 +:1013900040E050E063E070E0CE0101960E94110C45 +:1013A0008091E8008E778093E8000F900F900F9067 +:1013B000DF91CF910895CF93DF9300D01F92CDB7E7 +:1013C000DEB72091E701243021F522E029839B83B9 +:1013D0008A8383E08093E9008FEF9091E800815049 +:1013E00095FD06C095ED9A95F1F700008111F5CFB6 +:1013F0008091E80085FF0DC040E050E063E070E0C0 +:10140000CE0101960E94110C8091E8008E778093A6 +:10141000E8000F900F900F90DF91CF9108952091E9 +:10142000E7012430F1F422E02093E9002FEF30911E +:10143000E800215035FD06C035ED3A95F1F7000082 +:101440002111F5CF2091E80025FF0BC040E050E0CE +:1014500065E070E00E94110C8091E8008E77809327 +:10146000E8000895CF93DF93EC019091E701943069 +:1014700009F046C080910C018823D9F080910D01BC +:101480008823B9F09093E9008FEF9091E8008150A4 +:1014900095FD06C095E19A95F1F700008111F5CF11 +:1014A0008091E80085FF2CC040E050E060E170E0F2 +:1014B00017C081E08093E9008FEF9091E8008150A0 +:1014C00095FD06C095ED9A95F1F700008111F5CFD5 +:1014D0008091E80085FF14C040E050E068E070E0D3 +:1014E000CE010E94110C8091E8008E778093E80075 +:1014F00080E1FE01A4E5B1E001900D928A95E1F74B +:10150000DF91CF9108958091E601811109C00E9479 +:10151000A60D0E94030E8091E20084608093E20099 +:1015200008951092E601089508950C9465230E9491 +:10153000C41C0E946B230E94A9100C94A20942E0D3 +:1015400061EC81E00E94200D42E061EC82E00E94AB +:10155000200D42E061EC83E00E94200D42E161EC4D +:1015600084E00C94200D8091E901833009F455C08A +:1015700030F4813071F0823009F48EC008958A30E1 +:1015800009F47AC08B3009F460C0893009F09CC03E +:1015900020C08091E801813A09F096C08091E8006E +:1015A000877F8093E8008091EC019091ED01892B79 +:1015B00021F460E184E591E003C060E080E090E028 +:1015C00070E00E945C0C8091E8008B778093E800CB +:1015D00008958091E801813209F076C08091EC0194 +:1015E0009091ED01009719F0039709F06DC080917B +:1015F000E800877F8093E8008091E80082FD05C0C5 +:101600008091E7018111F8CF5FC08091F100809354 +:1016100064018091E8008B7753C08091E801813AA2 +:1016200009F052C08091EC019091ED01892B09F0F5 +:101630004BC08091E800877F8093E8008091E800AC +:1016400080FFFCCF80910C0136C08091E80181328F +:10165000D9F58091EC019091ED01892BA9F580914C +:10166000E800877F8093E8000E94550D8091EA0191 +:1016700080930C010C941F168091E801813221F5B2 +:101680008091E800877F8093E8000E94550D80914B +:10169000EB018093650108958091E801813AA1F4FE +:1016A0008091E800877F8093E8008091E80080FFC8 +:1016B000FCCF809165018093F1008091E8008E77E6 +:1016C0008093E8000C94550D089584B7877F84BFFC +:1016D00088E10FB6F89480936000109260000FBE0E +:1016E00090E080E80FB6F8948093610090936100D9 +:1016F0000FBE0E94F8100E94A60D0E94030E80915A +:10170000E20084608093E20078940E9489100E9435 +:10171000FA1082E091E00E94A4100E94532380916D +:10172000E701853069F40E94881C8091E5018823D7 +:10173000B1F30E94B01C882391F30E94FB0BEFCF02 +:101740000E940011ECCF292F332723303105C9F037 +:1017500064F42130310581F02230310509F043C0B5 +:101760008DE690E025E236E042C021323105F1F00D +:101770002232310541F137C082E190E022E936E0C2 +:1017800036C099278130910541F08230910541F0B2 +:10179000892B49F5E1E2F6E005C0E9E0F6E002C098 +:1017A000E1EFF5E0849190E09F0121C06430D8F42E +:1017B000E62FF0E0EE0FFF1FEE5DFE4F208131813E +:1017C00089E090E014C0643070F470E0FB01EE0F2B +:1017D000FF1FE65EFE4F20813181FB01EA5EFE4F76 +:1017E000808190E004C080E090E020E030E0FA01E9 +:1017F00031832083089580E189BD82E189BD09B4E8 +:1018000000FEFDCF8091D8008F7D8093D80080911D +:10181000E00082608093E0008091E00081FDFCCFD9 +:101820000895CF92DF92EF92FF920F931F93CF9381 +:10183000DF93EC018B016A010E94740D811133C0AA +:10184000C114D10439F0F60180819181081B190B74 +:10185000C80FD91FE12CF12C0115110519F1809148 +:10186000E80085FD16C08091E8008E778093E8003F +:10187000C114D10449F0F60180819181E80EF91E6E +:10188000F182E08285E00FC00E94740D882321F36D +:101890000AC089918093F10001501109FFEFEF1AFE +:1018A000FF0ADACF80E0DF91CF911F910F91FF9077 +:1018B000EF90DF90CF9008952091EE013091EF01ED +:1018C0002617370748F06115710539F42091E800B3 +:1018D0002E772093E80001C0B90140E06115710541 +:1018E000A9F12091E701222309F443C0253009F42E +:1018F00042C02091E80023FD40C02091E80022FD75 +:1019000032C02091E80020FFE9CF4091F300209100 +:10191000F20030E0342BFC01CF016115710559F064 +:101920002830310540F481918093F10061507109B4 +:101930002F5F3F4FF1CF41E02830310509F040E003 +:101940002091E8002E772093E800C8CF4111C9CF3D +:101950000AC08091E701882361F0853061F08091B1 +:10196000E80083FD0AC08091E80082FFF2CF80E0AA +:10197000089582E0089583E0089581E0089520911C +:10198000EE013091EF012617370748F06115710518 +:1019900039F42091E8002E772093E80001C0B901C6 +:1019A000FC0120E06115710591F18091E701882328 +:1019B00009F440C0853009F43FC08091E80083FD00 +:1019C0003DC08091E80082FD2FC08091E80080FF3B +:1019D000E9CF2091F3008091F20090E0922B611505 +:1019E000710559F08830910540F424912093F1005D +:1019F0003196615071090196F2CF21E0089709F004 +:101A000020E08091E8008E778093E800CBCF211111 +:101A1000CCCF0AC08091E701882361F0853061F066 +:101A20008091E80083FD0AC08091E80082FFF2CF38 +:101A300080E0089582E0089583E0089581E00895AC +:101A4000982F973058F59093E900981739F07091D6 +:101A5000EC002091ED005091F00003C0242F762F70 +:101A600050E021FF19C03091EB003E7F3093EB0036 +:101A70003091ED003D7F3093ED003091EB0031600F +:101A80003093EB007093EC002093ED005093F00046 +:101A90002091EE0027FF07C09F5FD3CF8F70809308 +:101AA000E90081E0089580E008958091E80187FFD2 +:101AB00011C08091E80082FD05C08091E70181118D +:101AC000F8CF11C08091E8008B770BC08091E701BF +:101AD000882349F08091E80080FFF8CF8091E800EA +:101AE0008E778093E80008952091E4003091E5001E +:101AF00095E64091EC00842F817040FF22C08091D8 +:101B0000E80080FD1CC08091E701882391F08530BA +:101B100091F08091EB0085FD10C04091E400509160 +:101B2000E5004217530729F39A01915011F784E019 +:101B3000089582E0089583E0089581E0089580E0AB +:101B400008954091E80042FFDECF08950E94140EF0 +:101B50000E941C0EE0EEF0E0808181608083E8ED61 +:101B6000F0E080818F77808319BCA7EDB0E08C9185 +:101B70008E7F8C9380818F7E80831092E601089502 +:101B80000F931F93CF93DF930E94140E0E941C0E9D +:101B9000C8EDD0E088818F778883888180688883CA +:101BA00088818F7D888319BC1092E7011092E30130 +:101BB0001092E5011092E40100EE10E0F80180813E +:101BC0008B7F808388818160888342E060E080E051 +:101BD0000E94200DE1EEF0E080818E7F8083E2EEB6 +:101BE000F0E0808181608083808188608083F8015B +:101BF00080818E7F8083888180618883DF91CF910F +:101C00001F910F910895E8EDF0E080818F7E808331 +:101C1000E7EDF0E080818160808384E082BF81E035 +:101C20008093E6010C94C00DE8EDF0E080818E7F9A +:101C300080831092E20008951092DA001092E10081 +:101C400008951F920F920FB60F9211242F933F9376 +:101C50004F935F936F937F938F939F93AF93BF93B4 +:101C6000EF93FF938091E10082FF0BC08091E2002F +:101C700082FF07C08091E1008B7F8093E1000E948A +:101C800088108091DA0080FF1FC08091D80080FF0B +:101C90001BC08091DA008E7F8093DA008091D9009A +:101CA00080FF0DC080E189BD82E189BD09B400FEDD +:101CB000FDCF81E08093E7010E94830A05C019BC33 +:101CC0001092E7010E94910A8091E10080FF19C003 +:101CD0008091E20080FF15C08091E2008E7F8093AA +:101CE000E2008091E20080618093E2008091D80060 +:101CF00080628093D80019BC85E08093E7010E9440 +:101D0000950A8091E10084FF30C08091E20084FF59 +:101D10002CC080E189BD82E189BD09B400FEFDCF00 +:101D20008091D8008F7D8093D8008091E1008F7ED4 +:101D30008093E1008091E2008F7E8093E2008091A9 +:101D4000E20081608093E2008091E301882311F03A +:101D500084E007C08091E30087FD02C081E001C0FC +:101D600083E08093E7010E94970A8091E10083FF5E +:101D700029C08091E20083FF25C08091E100877F28 +:101D80008093E10082E08093E7011092E30180916B +:101D9000E1008E7F8093E1008091E2008E7F80934E +:101DA000E2008091E20080618093E20042E060E026 +:101DB00080E00E94200D8091F00088608093F00008 +:101DC0000E94940AFF91EF91BF91AF919F918F91E3 +:101DD0007F916F915F914F913F912F910F900FBE27 +:101DE0000F901F9018951F920F920FB60F9211240B +:101DF0002F933F934F935F936F937F938F939F9313 +:101E0000AF93BF93CF93DF93EF93FF93C091E9001C +:101E1000CF708091EC00D82FD17080FDD0E8109267 +:101E2000E9008091F000877F8093F00078940E9411 +:101E3000370F1092E9008091F00088608093F000E5 +:101E4000CD2BCF70C093E900FF91EF91DF91CF913F +:101E5000BF91AF919F918F917F916F915F914F91C2 +:101E60003F912F910F900FBE0F901F9018951F93C9 +:101E7000CF93DF93CDB7DEB7AA970FB6F894DEBF46 +:101E80000FBECDBFE8EEF1E088E08E0F9091F1003B +:101E900091938E13FBCF0E94B30A8091E80083FFD9 +:101EA0001FC18091E8019091E901492F50E04A302B +:101EB000510508F015C1FA01EB59FF4F0C94ED24C0 +:101EC000803881F0823809F00BC18091EC018F706D +:101ED0008093E9008091EB0085FB882780F91092C0 +:101EE000E90006C08091E4019091E50191118260C2 +:101EF0009091E800977F9093E8008093F100109212 +:101F0000F100C8C0282F2D7F09F0EAC0882319F0FE +:101F1000823061F0E5C08091EA01813009F0E0C0D3 +:101F2000933009F080E08093E5012BC08091EA01B5 +:101F3000811127C08091EC018F7009F4D1C080938A +:101F4000E9002091EB0020FF1CC0933021F4809128 +:101F5000EB00806214C09091EB0090619093EB00D5 +:101F600021E030E0A90102C0440F551F8A95E2F735 +:101F70004093EA001092EA008091EB008860809321 +:101F8000EB001092E9008091E800877F86C0811104 +:101F9000A7C01091EA011F778091E3008078812B20 +:101FA0008093E3008091E800877F8093E8000E949F +:101FB000550D8091E80080FFFCCF8091E3008068A0 +:101FC0008093E300111102C082E001C083E080939E +:101FD000E70186C08058823008F082C08091EA0113 +:101FE0009091EB018C3D53E0950779F583E08A836E +:101FF0008AE289834FB7F894DE01139620E03EE031 +:1020000051E2E32FF0E050935700E49120FF03C02A +:10201000E295EF703F5FEF708E2F90E0EA3010F0A6 +:10202000C79601C0C0968D939D932F5F243149F7C9 +:102030004FBF8091E800877F8093E8006AE270E0FC +:10204000CE0101960E945C0C14C0AE014F5F5F4F41 +:102050006091EC010E94A30BBC01892B09F440C0E4 +:102060009091E800977F9093E80089819A810E947F +:10207000BF0C8091E8008B778093E80031C08038F6 +:1020800079F58091E800877F8093E8008091E301F3 +:102090008093F1008091E8008E778093E8000E94A1 +:1020A000550D1EC081111CC09091EA019230C0F400 +:1020B0008091E800877F8093E8009093E3010E947D +:1020C000550D8091E301811106C08091E30087FDE9 +:1020D00002C081E001C084E08093E7010E949F0A72 +:1020E0008091E80083FF0AC08091E800877F809399 +:1020F000E8008091EB0080628093EB00AA960FB617 +:10210000F894DEBF0FBECDBFDF91CF911F91089530 +:102110000895CF938091E7018823A1F0C091E90051 +:10212000CF709091EC00892F817090FD80E8C82BD2 +:102130001092E9008091E80083FD0E94370FCF7074 +:10214000C093E900CF91089590936B0180936A0149 +:102150000895E0916A01F0916B01309721F00190B0 +:10216000F081E02D099480E00895E0916A01F091FA +:102170006B01309721F00280F381E02D09940895DE +:10218000E0916A01F0916B01309721F00480F581B4 +:10219000E02D09940895209168013091690182171A +:1021A000930771F09093690180936801E0916A014F +:1021B000F0916B01309721F00680F781E02D0994B2 +:1021C000089520916601309167018217930771F09D +:1021D0009093670180936601E0916A01F0916B0131 +:1021E000309721F00084F185E02D09940895089539 +:1021F0000C94F7100E94CA1C0E947F060C94901D3C +:10220000CF92DF92EF92FF920F931F93CF93DF93C2 +:10221000CDB7DEB72B970FB6F894DEBF0FBECDBF9C +:102220000E9497068DE6C82E81E0D82E00E010E0CF +:10223000E02E802F0E948507F60141916F01F42E58 +:10224000F826B1F40F5F1F4F0E30110589F78FEF9D +:1022500089838A831B820E94D31C8160782F9D838F +:102260008C8349815A816B818D810E94A31140C06A +:102270009091CE0191FF04C08B870E948B078B85C4 +:1022800020E030E04F2D50E0922FBA01022E02C024 +:10229000759567950A94E2F760FF24C02E83EF825C +:1022A00021E030E0690102C0CC0CDD1C9A95E2F718 +:1022B00090E08C219D21892B09F420E028870E9441 +:1022C000D31C8160782F9A8789874E815F816885CA +:1022D0008A850E94A311F801E359FE4F8081C82628 +:1022E000C08206C02F5F3F4F2630310569F6AACF66 +:1022F0000E94772010916C010E94A9101817A1F07C +:102300000E94A91080936C012B960FB6F894DEBF43 +:102310000FBECDBFDF91CF911F910F91FF90EF9036 +:10232000DF90CF900C94A2092B960FB6F894DEBFE5 +:102330000FBECDBFDF91CF911F910F91FF90EF9016 +:10234000DF90CF900895CF93DF93CDB7DEB72B9773 +:102350000FB6F894DEBF0FBECDBF4F835887698795 +:102360007A878B87DE01119686E0FD0111928A95AE +:10237000E9F785E0FE01379601900D928A95E1F725 +:1023800049815A816B817C818D819E810E94B9181F +:102390002B960FB6F894DEBF0FBECDBFDF91CF9165 +:1023A0000895CF93882309F4C2C0C82F823859F406 +:1023B0000E94A91081FDBBC089E30E94551B0E94A9 +:1023C000121C89E30CC0833879F40E94A91080FDA7 +:1023D000AEC083E50E94551B0E94121C83E50E943B +:1023E000971BCF910C94121C843859F40E94A910A9 +:1023F00082FD9DC087E40E94551B0E94121C87E449 +:10240000EECF8CEF8C0F813A48F48C2F0E94B822CB +:1024100081118DC08C2F0E94551BE3CF80E28C0F61 +:10242000883048F4C77081E001C0880FCA95EAF788 +:102430000E94DB1BD6CF8BE58C0F833078F4C53A36 +:1024400029F0C63A31F083E890E005C081E890E0D9 +:1024500002C082E890E0CF910C94CB1088E58C0FFD +:10246000833108F064C0C83A39F1C93A41F1CA3A37 +:1024700049F1CB3A51F1CC3A59F1CD3A61F1C03B37 +:1024800069F1CE3A71F1CF3A79F1C13B81F1C23BAA +:1024900089F1C33B91F1C43B99F1C53BA1F1C63B26 +:1024A000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B86 +:1024B000C9F180E090E038C082EE90E035C089EE4E +:1024C00090E032C08AEE90E02FC085EB90E02CC007 +:1024D00086EB90E029C087EB90E026C08CEC90E082 +:1024E00023C08DEC90E020C083E891E01DC08AE815 +:1024F00091E01AC082E991E017C084E991E014C02C +:1025000081E292E011C083E292E00EC084E292E0A8 +:102510000BC085E292E008C086E292E005C087E247 +:1025200092E002C08AE292E0CF910C94E110CF9148 +:102530000895882309F44BC0823859F40E94A910E9 +:1025400081FF45C089E30E94551B0E94121C89E34C +:102550000CC0833871F40E94A91080FF38C083E555 +:102560000E94551B0E94121C83E50E94971B0C942D +:10257000121C843859F40E94A91082FF28C087E4F5 +:102580000E94551B0E94121C87E4EFCF9CEF980F0E +:10259000913A58F390E2980F983050F4877091E098 +:1025A00001C0990F8A95EAF7892F0E94E11BDFCFBE +:1025B0009BE5980F933020F480E090E00C94CB10D2 +:1025C000885A833120F480E090E00C94E110089563 +:1025D000882321F00E94DB1B0C94121C0895882391 +:1025E00021F00E94E11B0C94121C0895BF92CF921F +:1025F000DF92EF92FF920F931F93CF93DF9300D060 +:1026000000D000D0CDB7DEB725E0FC01DE01119689 +:1026100001900D922A95E1F7FC0140813181028100 +:10262000258122952F7063817481672B09F4E5C29F +:102630003F3F19F44F3F09F4E0C27C0149833A83DC +:1026400089819A812E830E94141B182FB92E0E9413 +:10265000131B0E94DA19EB2DE295EF70F0E0E159BF +:10266000FF4F2E810C94ED248B2D807F9B2D9F702E +:10267000F92E882319F0F29480EFF822002349F014 +:10268000FF2009F467C28F2D0E94EB1B0E94121CD1 +:1026900061C2812F0E949912FF2009F4AEC28F2DD2 +:1026A0000E94F11B26960FB6F894DEBF0FBECDBF79 +:1026B000DF91CF911F910F91FF90EF90DF90CF901E +:1026C000BF900C94121C3B2D307F8B2D8F703032BD +:1026D00011F08295807F112319F0113021F12CC067 +:1026E0000023B9F0222309F4A0C1213009F09DC1D3 +:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 +:102700001F910F91FF90EF90DF90CF90BF900C94AE +:10271000FB1B222319F0213009F46FC28E830E9423 +:10272000FE1B8E8196C1002321F0223008F065C285 +:102730007CC1211162C28DC1002321F0222309F442 +:1027400074C108C2222309F484C119C22B2D269515 +:102750002695237030E02115310521F02130310517 +:10276000D1F04BC2002321F0812F9B2D937002C02A +:1027700080E090E026960FB6F894DEBF0FBECDBF86 +:10278000DF91CF911F910F91FF90EF90DF90CF904D +:10279000BF900C94CB10002321F0812F9B2D9370C0 +:1027A00002C080E090E026960FB6F894DEBF0FBE20 +:1027B000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1027C000CF90BF900C94E110812F002319F00E944C +:1027D0007F1F02C00E94E71F26960FB6F894DEBF47 +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C946C208B2D837009F0EC +:102800007BC00111FAC1812F829586958770880F50 +:10281000880F912F9F70C92ED12CE12CF12C082EFE +:1028200004C0CC0CDD1CEE1CFF1C0A94D2F714FF74 +:1028300012C04FE050E060E070E004C0440F551F4C +:10284000661F771F8A95D2F7CB01BA016095709504 +:102850008095909503C060E070E0CB012B2D26950C +:1028600026952370422F50E042305105D9F0433075 +:10287000510569F16C297D298E299F294130510527 +:1028800051F126960FB6F894DEBF0FBECDBFDF9193 +:10289000CF911F910F91FF90EF90DF90CF90BF905D +:1028A0000C94011A6C297D298E299F2926960FB632 +:1028B000F894DEBF0FBECDBFDF91CF911F910F9176 +:1028C000FF90EF90DF90CF90BF900C941D1A0E9464 +:1028D000011AC701B60126960FB6F894DEBF0FBEE7 +:1028E000CDBFDF91CF911F910F91FF90EF90DF90BF +:1028F000CF90BF900C94E519002319F08B2D8170B7 +:1029000001C08695882309F478C1812F8295869528 +:102910008770880F880F912F9F70C92ED12CE12CC2 +:10292000F12C082E04C0CC0CDD1CEE1CFF1C0A94FC +:10293000D2F714FF12C04FE050E060E070E004C036 +:10294000440F551F661F771F8A95D2F7CB01BA0136 +:10295000609570958095909503C060E070E0CB0124 +:102960002B2D269526952370422F50E0423051059D +:10297000D9F04330510569F16C297D298E299F29B1 +:102980004130510551F126960FB6F894DEBF0FBEC7 +:10299000CDBFDF91CF911F910F91FF90EF90DF900E +:1029A000CF90BF900C94DB1A6C297D298E299F292A +:1029B00026960FB6F894DEBF0FBECDBFDF91CF9144 +:1029C0001F910F91FF90EF90DF90CF90BF900C94EC +:1029D000F71A0E94DB1AC701B60126960FB6F894C3 +:1029E000DEBF0FBECDBFDF91CF911F910F91FF9042 +:1029F000EF90DF90CF90BF900C94BF1A103FD1F1B1 +:102A000018F4103E50F4A1C0123F09F463C008F45A +:102A10004CC0133F09F473C098C01F708B2D8F7189 +:102A20000023A1F00E94581A812F26960FB6F89421 +:102A3000DEBF0FBECDBFDF91CF911F910F91FF90F1 +:102A4000EF90DF90CF90BF900C94E8120E94791A1B +:102A5000812F26960FB6F894DEBF0FBECDBFDF9153 +:102A6000CF911F910F91FF90EF90DF90CF90BF908B +:102A70000C94EF120023A9F02111BFC08B2D8F7190 +:102A800026960FB6F894DEBF0FBECDBFDF91CF9173 +:102A90001F910F91FF90EF90DF90CF90BF900C941B +:102AA0009E1A223008F0A9C0E9CF0023A9F08B2D8F +:102AB0008F7126960FB6F894DEBF0FBECDBFDF91A3 +:102AC000CF911F910F91FF90EF90DF90CF90BF902B +:102AD0000C94581A002359F38B2D8F7126960FB63C +:102AE000F894DEBF0FBECDBFDF91CF911F910F9144 +:102AF000FF90EF90DF90CF90BF900C94791A002355 +:102B000099F08B2D8F7126960FB6F894DEBF0FBE0D +:102B1000CDBFDF91CF911F910F91FF90EF90DF908C +:102B2000CF90BF900C94431A26960FB6F894DEBF50 +:102B30000FBECDBFDF91CF911F910F91FF90EF900E +:102B4000DF90CF90BF900C94391A0023A9F0222374 +:102B500009F4ADCF812F26960FB6F894DEBF0FBED5 +:102B6000CDBFDF91CF911F910F91FF90EF90DF903C +:102B7000CF90BF900C94D111222309F4ADCF812FB7 +:102B800026960FB6F894DEBF0FBECDBFDF91CF9172 +:102B90001F910F91FF90EF90DF90CF90BF900C941A +:102BA00099124B2D4F70612FC7010E943604269653 +:102BB0000FB6F894DEBF0FBECDBFDF91CF911F914E +:102BC0000F91FF90EF90DF90CF90BF900C945D1924 +:102BD0004B2D4F70612FC70126960FB6F894DEBFBC +:102BE0000FBECDBFDF91CF911F910F91FF90EF905E +:102BF000DF90CF90BF900C944B0826960FB6F894B8 +:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F +:102C1000EF90DF90CF90BF9008950E94F81B0E9424 +:102C2000CD1B0E94121C0E941D210E946C2080E07E +:102C300090E00E94CB1080E090E00C94E1100E94A4 +:102C4000E81B0C940D160E94141B292F22952F703F +:102C500030E02C3031054CF42A3031056CF4225030 +:102C600031092230310588F407C02C30310549F094 +:102C70002F30310531F009C0803E48F0803F29F403 +:102C800006C093FB882780F9089580E0089581E0CD +:102C90000895CF93DF9300D000D01F92CDB7DEB759 +:102CA0000F900F900F900F900F90DF91CF9108959C +:102CB000CF93DF9300D000D000D0CDB7DEB72696FB +:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550 +:102CD0001F93CF93DF93C0917B0116E080917C011D +:102CE000C81799F0D0E01C9FF0011D9FF00D112432 +:102CF000E358FE4F408151816281738184819581C7 +:102D00000E9458162196C770E9CFDF91CF911F918D +:102D100008954091AD015091AE016091AF01709165 +:102D2000B0018091B1019091B2010C94581680913C +:102D3000B20182958F7009F054C08091AF01882351 +:102D400009F44FC080917B01A0917C016091AD019D +:102D50007091AE014091B0015091B101B6E08A1777 +:102D600009F43FC090E041155105C1F17F3F11F4D6 +:102D70006F3FA1F1B89FF001B99FF00D1124E35806 +:102D8000FE4F218172132AC02081621327C0228145 +:102D9000211124C0238134812417350710F42150D8 +:102DA0003109241B350B283C3105C0F42091B201B8 +:102DB0002F7020612093B20126E0289FF001299F07 +:102DC000F00D1124EE57FE4F80818F70806180835B +:102DD0008DEA91E00E94F6120C94681601968770B5 +:102DE000BECF0895CF92DF92EF92FF920F931F9381 +:102DF000CF93DF93CDB7DEB762970FB6F894DEBFFF +:102E00000FBECDBF8C0185E0F801DE011D9601905B +:102E10000D928A95E1F7D8014C9111965C9111972A +:102E200012966C9112971396CD90DC901497309176 +:102E3000AD017091AE018091B0019091B101009708 +:102E400009F46BC17F3F19F43F3F09F466C1E0907C +:102E5000AF01EE2009F4C0C02091B201C816D90616 +:102E600028F0F601E81BF90BCF0104C0809590957E +:102E70008C0D9D1DFF24F394883C910578F0F12C76 +:102E8000207F09F0C6C07C2DD98AC88A89890E9412 +:102E900049168DEA91E00E94F612B1C0822F807F20 +:102EA00009F046C0751314C0341312C0611110C06C +:102EB0002F7020612093B2010E9489168DEA91E063 +:102EC0000E94F6128091B201D80115968C932EC003 +:102ED000CD2819F15F3F11F44F3FF9F0F62E611143 +:102EE0001CC080917B0120917C0136E0821709F49F +:102EF0005AC090E0389FF001399FF00D1124E3583B +:102F0000FE4F7181571306C07081471303C0728151 +:102F1000711103C001968770E9CFF62E662309F47C +:102F200018C18091B20181608093B201F12C11C16E +:102F3000751308C0341306C0611104C08091B2013A +:102F4000D801C3C04D875E878D859E856A8B0E94A0 +:102F500023166A898823E1F16623D1F12091B20119 +:102F6000822F82958F7090E0029774F08091AD016E +:102F70009091AE0198878F831986DB86CA862C874D +:102F8000CE0107960E94F61286E0F801ADEAB1E0A4 +:102F900001900D928A95E1F70E9497160E9489167A +:102FA000FF24F394D6C04D875E878D859E850E9451 +:102FB000141B292F22952F7030E0223031050CF0A0 +:102FC000BCC09F7009F0B6C0805E883008F4C1C0F4 +:102FD000C8010E94F612E4CFC816D90608F453C0FF +:102FE000F601E81BF90BCF01883C910508F450C0AD +:102FF000F12C7C2DD98AC88A89890E944916EDEA6C +:10300000F1E086E0DF011D928A95E9F70E948916BA +:10301000A0C0751314C0341312C0611110C0809188 +:10302000B201F8018583C8010E94F61286E0EDEA3C +:10303000F1E0DF011D928A95E9F7FE2C8AC04D87E9 +:103040005E878D859E856A8B0E9423166A898823F8 +:1030500009F4BECF662309F4BBCF2091B201822FC1 +:1030600082958F7090E002970CF48ECF8091AD0125 +:103070009091AE019A8389831B82DD82CC822E835C +:10308000CE0101967FCF809590958C0D9D1DACCF84 +:10309000F62E662309F49CCF75132EC034132CC072 +:1030A0002091B20120FD1FC0822F82958F70D9F030 +:1030B000D80115962C9315978F3049F08F5F982F74 +:1030C0009295907F822F8F70892B15968C93C801D3 +:1030D0000E94F61286E0F801ADEAB1E001900D928F +:1030E0008A95E1F793CF86E0F801ADEAB1E001906F +:1030F0000D928A95E1F72DC04D875E878D859E855F +:103100000E942316811140CF8091B201816080938B +:10311000B201C8010E94F6121CC0662309F458CF00 +:103120004D875E878D859E850E942316882309F42E +:103130004FCF2ACF811148CF0CC0243031050CF07D +:1031400047CF9F7009F440CFF8019581907F09F037 +:103150003BCF8F2D62960FB6F894DEBF0FBECDBF6A +:10316000DF91CF911F910F91FF90EF90DF90CF9063 +:1031700008951F93CF93DF93CDB7DEB72C970FB68B +:10318000F894DEBF0FBECDBF4F83588769877A871B +:103190008B879C87CE0107960E94F216882369F0E0 +:1031A0008F8198852A853B85232BF1F19F3F09F07C +:1031B00063C08F3F09F060C037C086E0FE013796DC +:1031C000DE01119601900D928A95E1F76F81788565 +:1031D000EA85FB85309741F17F3F11F46F3F21F184 +:1031E00020917C0130E0C9010196877099274091B8 +:1031F0007B0150E08417950709F447C069837A83FF +:10320000FD83EC8396E0929FD001939FB00D112433 +:10321000A358BE4FFE01319601900D929A95E1F7A9 +:1032200080937C010E94681616E080917B0190914A +:103230007C018917C1F1189FC001112483589E4F4A +:103240000E94F216882379F1E0917B011E9FF00124 +:103250001124E358FE4F4081518162817381848142 +:1032600095810E94581680917B0190E001968770AD +:10327000992780937B01D9CF4F81588569857A85BD +:103280008B859C850E945816CFCF0E941F161092E6 +:103290007C0110927B01EDEAF1E086E0DF011D92F6 +:1032A0008A95E9F7C1CF2C960FB6F894DEBF0FBE12 +:1032B000CDBFDF91CF911F910895EF92FF920F93B1 +:1032C0001F93CF93DF938C01892B09F46CC0F12CF1 +:1032D000EE24E394E8012196F8018491843740F4C8 +:1032E000843008F051C0813081F0823019F15BC028 +:1032F000853709F444C0A8F19CE7980F903708F08F +:1033000052C08F770E94991241C00E5F1F4FFE017D +:10331000C49180E28C0F883048F4C7708E2D01C0B4 +:10332000880FCA95EAF70E94EB1B14C08C2F0E94ED +:10333000D1112DC00E5F1F4FFE01C49180E28C0F92 +:10334000883058F4C7708E2D01C0880FCA95EAF7EF +:103350000E94F11B0E94121C1AC08C2F0E9499120D +:1033600016C00E5F1F4FFE01C491CC2381F08FE980 +:103370009FE00197F1F700C00000C150F6CF0E5F4B +:103380001F4FFE01F49003C00E94D1118E018F2DBA +:10339000882309F49FCFEFE9FFE03197F1F700C0F0 +:1033A00000008150F5CFDF91CF911F910F91FF90D9 +:1033B000EF90089508956093B7017093B8018093DA +:1033C000B9019093BA010C940D160F931F930091BD +:1033D000B7011091B8012091B9013091BA01DC0117 +:1033E000CB01802B912BA22BB32B8093B701909311 +:1033F000B801A093B901B093BA011F910F910C9439 +:103400000D160F931F930091B7011091B8012091F1 +:10341000B9013091BA01DC01CB0180239123A223B1 +:10342000B3238093B7019093B801A093B901B093EF +:10343000BA011F910F910C940D160F931F930091D9 +:10344000B7011091B8012091B9013091BA01DC01A6 +:10345000CB0180279127A227B3278093B7019093B0 +:10346000B801A093B901B093BA011F910F910C94C8 +:103470000D161092B3011092B4011092B501109282 +:10348000B6010C940D1641E050E060E070E004C01D +:10349000440F551F661F771F8A95D2F74093B301DB +:1034A0005093B4016093B5017093B6010C940D165E +:1034B00041E050E060E070E004C0440F551F661F1B +:1034C000771F8A95D2F78091B3019091B401A091B2 +:1034D000B501B091B601482B592B6A2B7B2B409339 +:1034E000B3015093B4016093B5017093B6010C948D +:1034F0000D1641E050E060E070E004C0440F551F3D +:10350000661F771F8A95D2F7409550956095709504 +:103510008091B3019091B401A091B501B091B60131 +:10352000482359236A237B234093B3015093B4016A +:103530006093B5017093B6010C940D1641E050E014 +:1035400060E070E004C0440F551F661F771F8A9526 +:10355000D2F78091B3019091B401A091B501B091DF +:10356000B601482759276A277B274093B301509318 +:10357000B4016093B5017093B6010C940D160F93CE +:103580001F930091B3011091B4012091B5013091C6 +:10359000B601DC01CB01802B912BA22BB32B8093A6 +:1035A000B3019093B401A093B501B093B6011F91FC +:1035B0000F910C940D160F931F930091B30110916E +:1035C000B4012091B5013091B601DC01CB0180231B +:1035D0009123A223B3238093B3019093B401A093CA +:1035E000B501B093B6011F910F910C940D160F9376 +:1035F0001F930091B3011091B4012091B501309156 +:10360000B601DC01CB0180279127A227B327809345 +:10361000B3019093B401A093B501B093B6011F918B +:103620000F910C940D160895CF92DF92EF92FF92B6 +:103630000F931F93CF93DF938C01C090B701D0906D +:10364000B801E090B901F090BA014091B3015091F6 +:10365000B4016091B5017091B601C42AD52AE62A59 +:10366000F72ACFE1D0E0D701C6010C2E04C0B695F1 +:10367000A795979587950A94D2F780FF07C0B80160 +:103680008C2F0E946E088130910531F4219758F7F4 +:10369000B80180E00E946E08DF91CF911F910F91D9 +:1036A000FF90EF90DF90CF90089590910C019923B7 +:1036B00021F090910D01911109C020910E013091DE +:1036C0000F01F90132969FEF40E01FC0982F9695A9 +:1036D000969596959F3050F5E0910E01F0910F016F :1036E000E90FF11D877021E030E0A90102C0440F0D :1036F000551F8A95E2F7CA019181892B818308952C -:1037000020910E0130910F01F90132969FEF40E0B8 -:103710005191851789F09F3F19F4511101C0942FE1 -:103720004F5F4E30A9F79F3F39F0F901E90FF11DC6 -:1037300097FDFA9582830895089590910C0199233D -:10374000F9F090910D019923D9F0982F96959695BF -:1037500096959F3028F5E0910E01F0910F01E90F49 -:10376000F11D877021E030E0A90102C0440F551F10 -:103770008A95E2F7CA018095918189238183089512 -:1037800020910E0130910F01F9013296205F3F4FD9 -:103790009081891301C010823196E217F307C1F7B7 -:1037A000089581E090E0E0910E01F0910F01E80FA3 -:1037B000F91F1082019680319105A9F70895909123 -:1037C000CD01892B8093CD01089580959091CD01F5 -:1037D00089238093CD0108951092CD010895909191 -:1037E000CC01892B8093CC01089580959091CC01D8 -:1037F00089238093CC0108951092CC010895809381 -:10380000BB0108951092BB01089580910E01909123 -:103810000F01FC0131969C01205F3F4F80E09191A8 -:1038200091118F5FE217F307D1F70895E0910E0130 -:10383000F0910F018091CD018083E0910E01F09114 -:103840000F0190818091CC01892B80838091BB01F5 -:10385000882361F0E0910E01F0910F019081892B96 -:1038600080830E94051C81111092BB0180910E0182 -:1038700090910F010C94D010CF92DF92EF92FF92B3 -:103880006C01EE24FF24C114D104E104F10421F001 -:10389000C701B60120E101C020E0C72ED82EE92ED5 -:1038A000FF24C114D104E104F10419F0285FC70119 -:1038B000B6016B017C0154E0F694E794D794C79469 -:1038C0005A95D1F7C114D104E104F10419F02C5F29 -:1038D000C701B6016B017C0142E0F694E794D794EE -:1038E000C7944A95D1F7C114D104E104F10419F049 -:1038F0002E5FC701B601DC01CB01B695A795979560 -:103900008795892B8A2B8B2B09F02F5F822FFF90B5 -:10391000EF90DF90CF9008958091E601843011F10F -:1039200020E488E190E00FB6F894A89580936000B9 -:103930000FBE2093600083B7817F846083BF83B70D -:10394000816083BF7894889583B78E7F83BF0FB6DD -:10395000F894A8958091600088618093600010922F -:1039600060000FBE089508950C94B31CCF930E947D -:10397000B41C0E949A060E94B31CC0E08C2F0E94C7 -:103980009007811104C0CF5FCE30C1F701C081E044 -:10399000CF9108950E942D160E94C4100C94BA096C -:1039A00082E084BD93E095BD9AEF97BD80936E0051 -:1039B00008952FB7F8948091CF019091D001A091F4 -:1039C000D101B091D2012FBF0895CF92DF92EF9233 -:1039D000FF920F931F932FB7F8944091CF0150910E -:1039E000D0016091D1017091D2012FBF6A017B019A -:1039F000EE24FF248C0120E030E0C016D106E20660 -:103A0000F30610F4415051099A01281B390BC901E2 -:103A10001F910F91FF90EF90DF90CF9008951F922C -:103A20000F920FB60F9211248F939F93AF93BF9372 -:103A30008091CF019091D001A091D101B091D2019C -:103A40000196A11DB11D8093CF019093D001A09349 -:103A5000D101B093D201BF91AF919F918F910F90FF -:103A60000FBE0F901F9018950E94BC0DF8942FEF79 -:103A700087EA91E6215080409040E1F700C00000C5 -:103A800087E090EBDC018093EF019093F001A0932D -:103A9000F101B093F2019CE088E10FB6F894A8958B -:103AA000809360000FBE90936000FFCFEF92FF9273 -:103AB0000F931F93CF93DF93D82FC0E08C2F0E94DA -:103AC000900700E010E0E82EF12CC701002E02C0A4 -:103AD000959587950A94E2F780FD06C00F5F1F4F0A -:103AE0000630110591F709C0602F7C2F80E00E94FD -:103AF00058088D13F3CF81E004C0CF5FCE30F1F6CC -:103B000080E0DF91CF911F910F91FF90EF9008958A -:103B1000CF93C82F8CE20E94561D882321F08C2F52 -:103B2000CF910C94561D80E0CF910895CF930E94C1 -:103B3000DD1E811102C00E94C31EC5E6C15049F0BE -:103B40000E949A068FE39CE90197F1F700C00000FC -:103B5000F5CF89E20E94881D811113C18AE20E947B -:103B6000881D81110E94C31E85E00E94881D81115D -:103B70000E94341D0E94E81E8093CE0187E00E94BF -:103B8000881D8823A9F18BE10E94881D882351F0AC -:103B90008091CE0181FB222720F991E0922790FBB2 -:103BA00081F90EC08EE00E94881D882361F080910B -:103BB000CE0182FB222720F991E0922790FB82F927 -:103BC0008093CE0115C080E10E94881D9091CE01A6 -:103BD000882341F093FB222720F981E0822780FB94 -:103BE00093F904C0892F809580FB90F99093CE01C2 -:103BF0008091CE010E94EC1E0E94FA1E8093E0018B -:103C000080EE0E94881D882341F08091E001982F6A -:103C1000909590FB80F98093E00189E30E94881DD4 -:103C2000882359F08091E00181FB222720F991E05F -:103C3000922790FB81F98093E00182EE0E94881D1B -:103C4000882359F08091E00182FB222720F991E03E -:103C5000922790FB82F98093E00186EE0E94881DF6 -:103C6000882359F08091E00183FB222720F991E01D -:103C7000922790FB83F98093E00183EE0E94881DD8 -:103C8000882359F08091E00184FB222720F991E0FC -:103C9000922790FB84F98093E00185E30E94881DC0 -:103CA000882359F08091E00185FB222720F991E0DB -:103CB000922790FB85F98093E00181E30E94881DA3 -:103CC000882359F08091E00186FB222720F991E0BA -:103CD000922790FB86F98093E00181E10E94881D84 -:103CE000882359F08091E00187FB222720F991E099 -:103CF000922790FB87F98093E0018091E0010E9478 -:103D0000FE1E8091E00187FB882780F980930D01DA -:103D100087E20E94881DC82F8EE10E94881D8111B4 -:103D2000C2608FE10E94881D8111C46080E20E9400 -:103D3000881D8111C86081E20E94881D8111C061C7 -:103D400082E20E94881D8111C06283E20E94881D68 -:103D50008111C06484E20E94881D882311F0C0682C -:103D600002C0CC2329F08C2F0E94F51E6C2F03C0BB -:103D70000E94F11E682F70E080E090E0CF910C94DB -:103D8000E419CF9108956DEE7EEF80E090E00E94FF -:103D9000372560E082E090E00E94292560E083E022 -:103DA00090E00E94292560E084E090E00E942925AF -:103DB00060E085E090E00C94292580E090E00E948E -:103DC000232521E08D3E9E4F09F020E0822F0895AB -:103DD00082E090E00C941B25682F82E090E00C9428 -:103DE000292583E090E00C941B25682F83E090E068 -:103DF0000C94292584E090E00C941B25682F84E026 -:103E000090E00C9429258091D50180FF0BC0609132 -:103E1000130185E0689FB00111247595679575952C -:103E200067952BC081FF09C06091130185E0689FF1 -:103E3000B00111247595679520C082FF07C060917D -:103E4000130185E0689FB001112417C09091D6013D -:103E50009923D1F060911201961788F720911301F0 -:103E600085E0289F90011124929FA001939F500DFF -:103E7000112470E0CA010E94ED246038710540F4FD -:103E80006115710519F406C065E070E0862F08958C -:103E90008FE7089581E008958091D50180FF08C0E3 -:103EA0006091110170E0759567957595679521C0D2 -:103EB00081FF06C06091110170E07595679519C08A -:103EC00082FF04C06091110170E010C09091D60192 -:103ED000992399F0609110019617A0F78091110134 -:103EE000899FC001112470E00E94ED2460387105A3 -:103EF00040F46115710519F406C061E070E0862F89 -:103F000008958FE7089581E00895803F21F40E948D -:103F1000031F819504C0813F29F40E94031F8093F1 -:103F2000D9010895823F21F40E94031F819504C0A6 -:103F3000833F29F40E94031F8093D8010895893F8D -:103F400019F40E944C1F05C08A3F31F40E944C1F97 -:103F500081958093DA0108958B3F21F40E944C1FD4 -:103F6000819504C08C3F29F40E944C1F8093DB0193 -:103F70000895843F21F48091D701816017C0853F67 -:103F800021F48091D701826011C0863F21F4809195 -:103F9000D70184600BC0873F21F48091D7018860EE -:103FA00005C0883F31F48091D70180618093D701AB -:103FB00008958D3F21F48091D50181600BC08E3F23 -:103FC00021F48091D501826005C08F3F29F4809152 -:103FD000D50184608093D5010895803F39F48091A4 -:103FE000D90187FF6CC01092D90169C0813F29F4C3 -:103FF0008091D9011816BCF362C09091D801823F1C -:1040000029F497FF5CC01092D80159C0833F19F47E -:104010001916CCF354C0893F41F48091DA01181687 -:104020000CF04DC01092DA014AC08A3F29F4809109 -:10403000DA0187FF44C0F6CF8B3F39F48091DB0172 -:1040400087FF3DC01092DB013AC08C3F29F480917C -:10405000DB011816BCF333C0843F21F48091D701F3 -:104060008E7F17C0853F21F48091D7018D7F11C0CD -:10407000863F21F48091D7018B7F0BC0873F21F4CD -:104080008091D701877F05C0883F31F48091D701A7 -:104090008F7E8093D70113C08D3F21F48091D5018D -:1040A0008E7F0BC08E3F21F48091D5018D7F05C09E -:1040B0008F3F29F48091D5018B7F8093D50180912A -:1040C000D80181110EC08091D90181110AC080915F -:1040D000DA01811106C08091DB01811102C01092CA -:1040E000D601089587ED91E00E94DB100E94D91C53 -:1040F0009093D4018093D30108951F93CF93DF93BE -:104100008091D3019091D4010E94E51CAC01909163 -:10411000D601992321F02091140130E006C02091AE -:1041200015018AE0289F900111244217530708F4D3 -:1041300085C08091D801C091D901D091DA01109148 -:10414000DB01811107C0C11175C0D11173C01111FC -:1041500071C074C09F3F19F09F5F9093D6011816ED -:1041600024F40E94031F8093D8018091D80187FF17 -:1041700005C00E94031F81958093D8011C1624F46A -:104180000E94031F8093D9018091D90187FF05C048 -:104190000E94031F81958093D9016091D801662305 -:1041A00031F1C091D901CC2311F1062E000C770B0F -:1041B000880B990B0E94F42323E333E343E35FE38B -:1041C0000E9458240E94BC236093D8016C2FCC0F0E -:1041D000770B880B990B0E94F42323E333E343E32B -:1041E0005FE30E9458240E94BC236093D9011D16EE -:1041F00024F40E944C1F8093DA018091DA0187FF3A -:1042000005C00E944C1F81958093DA01111624F499 -:104210000E944C1F8093DB018091DB0187FF05C06A -:104220000E944C1F81958093DB01DF91CF911F91FC -:104230000C9472209F3F09F08FCFA0CFDF91CF91D8 -:104240001F910895E7EDF1E085E0DF011D928A9569 -:10425000E9F71092D6011092D5010895833081F1CB -:1042600028F4813059F08230D1F00895853009F476 -:1042700049C0B8F1863009F456C0089580911501FF -:10428000262F30E0280F311D2F3F310524F4680F11 -:104290006093150108958FEF809315010895809123 -:1042A0001401262F30E0280F311D2F3F310524F453 -:1042B000680F6093140108958FEF8093140108959F -:1042C00080911301262F30E0280F311D2F3F31053B -:1042D00024F4680F6093130108958FEF8093130106 -:1042E000089580911201262F30E0280F311D2F3FB5 -:1042F000310524F4680F6093120108958FEF8093C5 -:104300001201089580911101262F30E0280F311DF0 -:104310002F3F310524F4680F6093110108958FEF4A -:1043200080931101089580911001262F30E0280F0D -:10433000311D2F3F310524F4680F6093100108955B -:104340008FEF809310010895833011F128F48130AC -:1043500049F0823091F00895853081F120F1863066 -:10436000C1F1089580911501681720F4861B809390 -:104370001501089510921501089580911401681790 -:1043800020F4861B8093140108951092140108955F -:1043900080911301681720F4861B80931301089500 -:1043A00010921301089580911201681720F4861B62 -:1043B00080931201089510921201089580911101C5 -:1043C000681720F4861B8093110108951092110143 -:1043D000089580911001681720F4861B80931001C6 -:1043E00008951092100108950F931F938D3109F4D1 -:1043F0006BC008F03FC08E3009F47DC0C0F4873038 -:1044000009F46EC068F4863009F0AFC08091CE0127 -:10441000817F8E7F8093CE0181E08093DD01A6C0F5 -:10442000883009F458C08B3009F49BC09EC0863197 -:1044300009F497C078F4803109F470C0813109F033 -:1044400094C00E942D1690910D0181E089278093E0 -:104450000D0187C0893109F484C08B3109F085C012 -:104460008091CE0181FB222720F991E0922790FBD9 -:1044700081F94AC0853309F45BC048F4873209F4F6 -:1044800057C008F45AC0893209F452C06EC0833450 -:1044900038F48A3308F067C0883309F462C065C015 -:1044A000833409F445C0883409F05FC00E942D169A -:1044B0000FEF13ED20E3015010402040E1F700C062 -:1044C00000000E94341D4DC00E9476230E94C4103B -:1044D0000E94BA0946C00E94E81E0E94FA1E41C00E -:1044E0009091CE01892F817090FF12C0917F9E7FA5 -:1044F0009093CE013BC08091CE0182FB222720F910 -:1045000091E0922790FB82F98093CE01992349F1A3 -:104510008091CE0181608093CE0123C08091CE0135 -:1045200083FB222720F991E0922790FB83F9ECCFBF -:1045300061E070E080E090E010C08D5141E050E01B -:1045400060E070E08A019B0104C0000F111F221F70 -:10455000331F8A95D2F7C901B8010E94E4190E945D -:104560002D1681E003C08953E9CF80E01F910F91A0 -:10457000089580E008950C94B922CF93C82F8091BC -:10458000DD01813079F018F08230E9F187C0E091E7 -:104590000E01F0910F018081813169F0823209F0C2 -:1045A0007FC009C0E0910E01F0910F01808181313F -:1045B00011F0823261F48C2F0E94BB22811104C061 -:1045C0008C2F0E94F4211DC081E090E01AC08C2F36 -:1045D0000E94B922811114C0C43179F048F4CB3063 -:1045E00079F0C03109F060C082E08093DD0108C03D -:1045F000C93219F0C83321F057C01092DD0154C000 -:1046000081E0817053C0C93289F118F5C43171F16C -:10461000A8F4C73009F046C08AE08093150194E100 -:104620009093140193E0909313018093120188E01A -:104630008093110188E28093100134C0CE51C630BE -:1046400088F5EC2FF0E0E65DFE4F80818093DC0181 -:1046500029C0CE34E9F020F4CB3421F56AE013C050 -:10466000C13579F0C235F1F461E00DC08091DC0113 -:10467000882319F01092DC0115C081E08093DD01E0 -:1046800015C061E006C08091DC010E942E210AC0A5 -:104690006AE08091DC010E94A42104C01092DD0137 -:1046A00080E004C081E002C080E0ABCFCF910895EC -:1046B000E1E8F0E080818860808380818160808390 -:1046C0008FB7F89493E09093890090ED90938800D1 -:1046D0008FBF0895EFE6F0E08081826080830895C7 -:1046E000EFE6F0E080818D7F80830895EFE6F0E0D3 -:1046F000908182E08927808308951F920F920FB6E0 -:104700000F9211242F933F934F935F936F937F9357 -:104710008F939F93AF93BF93EF93FF938091DE01AD -:104720009091DF0101969093DF018093DE0181116A -:1047300003C082E00E94BA09E091DF01E695E695A8 -:10474000F0E0E156F84FE4918091DE018E1303C052 -:1047500080E00E94BA09FF91EF91BF91AF919F91C4 -:104760008F917F916F915F914F913F912F910F901A -:104770000FBE0F901F9018950E94C3236894B1112B -:104780000C94522408950E94372488F09F5798F083 -:10479000B92F9927B751B0F0E1F0660F771F881F46 -:1047A000991F1AF0BA95C9F714C0B13091F00E9460 -:1047B0005124B1E008950C945124672F782F882755 -:1047C000B85F39F0B93FCCF3869577956795B39587 -:1047D000D9F73EF490958095709561957F4F8F4FF6 -:1047E0009F4F0895E89409C097FB3EF490958095FB -:1047F000709561957F4F8F4F9F4F9923A9F0F92FA7 -:1048000096E9BB279395F695879577956795B79524 -:10481000F111F8CFFAF4BB0F11F460FF1BC06F5F0A -:104820007F4F8F4F9F4F16C0882311F096E911C01C -:10483000772321F09EE8872F762F05C0662371F03D -:1048400096E8862F70E060E02AF09A95660F771F51 -:10485000881FDAF7880F9695879597F9089557FD81 -:104860009058440F551F59F05F3F71F04795880FDE -:1048700097FB991F61F09F3F79F087950895121675 -:1048800013061406551FF2CF4695F1DF08C0161621 -:1048900017061806991FF1CF8695710561050894D2 -:1048A0000895E894BB2766277727CB0197F90895E9 -:1048B0000E946B240C94DC240E94CE2438F00E94C9 -:1048C000D52420F0952311F00C94C5240C94CB240E -:1048D00011240C9452240E942F2470F3959FC1F34D -:1048E000950F50E0551F629FF001729FBB27F00D9E -:1048F000B11D639FAA27F00DB11DAA1F649F6627F3 -:10490000B00DA11D661F829F2227B00DA11D621F41 -:10491000739FB00DA11D621F839FA00D611D221FFB -:10492000749F3327A00D611D231F849F600D211DDF -:10493000822F762F6A2F11249F5750409AF0F1F062 -:1049400088234AF0EE0FFF1FBB1F661F771F881FCB -:1049500091505040A9F79E3F510580F00C94C5241A -:104960000C9452245F3FE4F3983ED4F386957795F8 -:104970006795B795F795E7959F5FC1F7FE2B880F71 -:10498000911D9695879597F9089597F99F6780E807 -:1049900070E060E008959FEF80EC089500240A9491 -:1049A0001616170618060906089500240A9412160A -:1049B0001306140605060895092E0394000C11F43D -:1049C000882352F0BB0F40F4BF2B11F460FF04C0EA -:1049D0006F5F7F4F8F4F9F4F089597FB072E16F401 -:1049E000009407D077FD09D00E94072507FC05D069 -:1049F0003EF4909581959F4F0895709561957F4FF6 -:104A00000895EE0FFF1F0590F491E02D0994AA1B65 -:104A1000BB1B51E107C0AA1FBB1FA617B70710F0A9 -:104A2000A61BB70B881F991F5A95A9F780959095DB -:104A3000BC01CD010895F999FECF92BD81BDF89AD0 -:104A4000992780B50895A8E1B0E042E050E00C94C9 -:104A50003E25262FF999FECF1FBA92BD81BD20BDFC -:104A60000FB6F894FA9AF99A0FBE019608950E942B -:104A70002925272F0C942A25DC01CB01FC01F9996B -:104A8000FECF06C0F2BDE1BDF89A319600B40D929A -:0C4A900041505040B8F70895F894FFCF53 -:104A9C002002BB094B0A260AF209BE090101BC011E -:104AAC0028080A03140A3F4D363960071307DD0640 -:104ABC00A4063706500669068206010203040506A1 -:044ACC0007080900CE +:103700009F3F39F04F5F4E3041F051915813F8CF41 +:103710000DC05111F7CF942FF5CF9F3F39F0F9012C +:10372000E90FF11D97FDFA95828308950895909110 +:103730000C01992321F090910D01911109C0209164 +:103740000E0130910F01F9013296205F3F4F1FC0EB +:10375000982F9695969596959F30F0F4E0910E01EE +:10376000F0910F01E90FF11D877021E030E0A90110 +:1037700002C0440F551F8A95E2F7CA0180959181D6 +:103780008923818308953196E217F30729F0908108 +:103790009813F9CF1082F7CF089581E090E0E0917F +:1037A0000E01F0910F01E80FF91F10820196803190 +:1037B0009105A9F708959091CD01892B8093CD01B2 +:1037C000089580959091CD0189238093CD0108952E +:1037D0001092CD0108959091CC01892B8093CC015A +:1037E000089580959091CC0189238093CC01089510 +:1037F0001092CC0108958093BB0108951092BB01F3 +:10380000089580910E0190910F01FC0131969C0169 +:10381000205F3F4F80E0919191118F5FE217F30796 +:10382000D1F70895E0910E01F0910F018091CD0143 +:103830008083E0910E01F0910F0190818091CC0185 +:10384000892B80838091BB01882361F0E0910E0178 +:10385000F0910F019081892B80830E94011C8111BE +:103860001092BB0180910E0190910F010C94B51044 +:10387000CF92DF92EF92FF926C01EE24FF24C114ED +:10388000D104E104F10421F0C701B60120E101C037 +:1038900020E0C72ED82EE92EFF24C114D104E10464 +:1038A000F10419F0285FC701B6016B017C0154E0F7 +:1038B000F694E794D794C7945A95D1F7C114D104DC +:1038C000E104F10419F02C5FC701B6016B017C0122 +:1038D00042E0F694E794D794C7944A95D1F7C1147F +:1038E000D104E104F10419F02E5FC701B601DC0137 +:1038F000CB01B695A79597958795892B8A2B8B2B0E +:1039000009F02F5F822FFF90EF90DF90CF90089506 +:103910008091E701843009F11092CF0120E488E121 +:1039200090E00FB6F894A895809360000FBE2093A6 +:10393000600083B7817F846083BF83B7816083BF6A +:103940007894889583B78E7F83BF88E10FB6F8940B +:1039500080936000109260000FBE0895089508954E +:10396000CF930E94AE1C0E9497060E94AF1CC0E03D +:103970008C2F0E948507811104C0CF5FCE30C1F724 +:1039800001C081E0CF9108950E941F160E94A910E6 +:103990000C94A20982E084BD93E095BD9AEF97BD97 +:1039A00080936E0008952FB7F8948091D001909184 +:1039B000D101A091D201B091D3012FBF0895CF9230 +:1039C000DF92EF92FF920F931F932FB7F8944091DD +:1039D000D0015091D1016091D2017091D3012FBFDC +:1039E0006A017B01EE24FF248C0120E030E0C01648 +:1039F000D106E206F30610F4415051099A01281B42 +:103A0000390BC9011F910F91FF90EF90DF90CF907C +:103A100008951F920F920FB60F9211248F939F93C8 +:103A2000AF93BF938091D0019091D101A091D20129 +:103A3000B091D3010196A11DB11D8093D001909347 +:103A4000D101A093D201B093D301BF91AF919F91C7 +:103A50008F910F900FBE0F901F9018950E94A60D8A +:103A6000F8942FEF87EA91E6215080409040E1F7EB +:103A700000C0000087E090EBDC018093F0019093A0 +:103A8000F101A093F201B093F3019CE088E10FB63D +:103A9000F894A895809360000FBE90936000FFCFCC +:103AA000EF92FF920F931F93CF93DF93D82FC0E035 +:103AB0008C2F0E94850700E010E0E82EF12CC70152 +:103AC000002E02C0959587950A94E2F780FD06C006 +:103AD0000F5F1F4F0630110591F709C0602F7C2F33 +:103AE00080E00E944C08D813F3CF81E004C0CF5F80 +:103AF000CE30F1F680E0DF91CF911F910F91FF90D2 +:103B0000EF900895CF93C82F8CE20E94501D882318 +:103B100021F08C2FCF910C94501D80E0CF9108950F +:103B2000CF930E94D71E811102C00E94BD1EC5E620 +:103B3000C15049F00E9497068FE39CE90197F1F785 +:103B400000C00000F5CF89E20E94821D811113C1DF +:103B50008AE20E94821D81110E94BD1E85E00E94A2 +:103B6000821D81110E942E1D0E94E21E8093CE01B3 +:103B700087E00E94821D8823A9F18BE10E94821DAB +:103B8000882351F08091CE0181FB222720F991E01A +:103B9000922790FB81F90EC08EE00E94821D88233F +:103BA00061F08091CE0182FB222720F991E09227DB +:103BB00090FB82F98093CE0115C080E10E94821DA6 +:103BC0009091CE01882341F093FB222720F981E0D8 +:103BD000822780FB93F904C0892F809580FB90F9A0 +:103BE0009093CE018091CE010E94E61E0E94F41EA9 +:103BF0008093E10180EE0E94821D882341F0809134 +:103C0000E101982F909590FB80F98093E10189E381 +:103C10000E94821D882359F08091E10181FB2227B7 +:103C200020F991E0922790FB81F98093E10182EEE7 +:103C30000E94821D882359F08091E10182FB222796 +:103C400020F991E0922790FB82F98093E10186EEC2 +:103C50000E94821D882359F08091E10183FB222775 +:103C600020F991E0922790FB83F98093E10183EEA4 +:103C70000E94821D882359F08091E10184FB222754 +:103C800020F991E0922790FB84F98093E10185E38C +:103C90000E94821D882359F08091E10185FB222733 +:103CA00020F991E0922790FB85F98093E10181E36F +:103CB0000E94821D882359F08091E10186FB222712 +:103CC00020F991E0922790FB86F98093E10181E150 +:103CD0000E94821D882359F08091E10187FB2227F1 +:103CE00020F991E0922790FB87F98093E101809180 +:103CF000E1010E94F81E8091E10187FB882780F98D +:103D000080930D0187E20E94821DC82F8EE10E94E0 +:103D1000821D8111C2608FE10E94821D8111C460E9 +:103D200080E20E94821D8111C86081E20E94821D92 +:103D30008111C06182E20E94821D8111C06283E212 +:103D40000E94821D8111C06484E20E94821D88232A +:103D500011F0C06802C0CC2329F08C2F0E94EF1E06 +:103D60006C2F03C00E94EB1E682F70E080E090E093 +:103D7000CF910C94DB19CF9108956DEE7EEF80E02A +:103D800090E00E94232560E082E090E00E941525EB +:103D900060E083E090E00E94152560E084E090E020 +:103DA0000E94152560E085E090E00C94152580E0E8 +:103DB00090E00E940F2521E08D3E9E4F09F020E00B +:103DC000822F089582E090E00C940725682F82E00E +:103DD00090E00C94152583E090E00C940725682F63 +:103DE00083E090E00C94152584E090E00C94072586 +:103DF000682F84E090E00C9415258091D60180FF17 +:103E00000BC06091130185E0689FB0011124759586 +:103E10006795759567952BC081FF09C06091130167 +:103E200085E0689FB00111247595679520C082FFD9 +:103E300007C06091130185E0689FB001112417C08D +:103E40009091D7019923D1F060911201961788F7CC +:103E50002091130185E0289F90011124929FA001D9 +:103E6000939F500D112470E0CA010E94D92460383C +:103E7000710540F46115710539F002C065E070E02C +:103E8000862F08958FE7089581E008958091D601E7 +:103E900080FF08C06091110170E075956795759578 +:103EA000679521C081FF06C06091110170E0759592 +:103EB000679519C082FF04C06091110170E010C0C5 +:103EC0009091D7019923C1F0609110019617A0F746 +:103ED00080911101899FC001112470E00E94D924B2 +:103EE0006038710528F46115710521F0862F089559 +:103EF0008FE7089581E0089561E070E0F4CF803F9E +:103F000021F40E94FD1E819504C0813F29F40E9486 +:103F1000FD1E8093DA010895823F21F40E94FD1E68 +:103F2000819504C0833F29F40E94FD1E8093D9012E +:103F30000895893F19F40E94461F05C08A3F31F455 +:103F40000E94461F81958093DB0108958B3F21F4E9 +:103F50000E94461F819504C08C3F29F40E94461F91 +:103F60008093DC010895843F21F48091D801816021 +:103F700017C0853F21F48091D801826011C0863F2F +:103F800021F48091D80184600BC0873F21F4809197 +:103F9000D801886005C0883F31F48091D8018061E4 +:103FA0008093D80108958D3F21F48091D6018160DE +:103FB0000BC08E3F21F48091D601826005C08F3FF7 +:103FC00029F48091D60184608093D6010895803FC2 +:103FD00039F48091DA0187FF6CC01092DA0169C070 +:103FE000813F29F48091DA011816BCF362C09091E8 +:103FF000D901823F29F497FF5CC01092D90159C0C2 +:10400000833F19F41916CCF354C0893F41F48091D1 +:10401000DB0118160CF04DC01092DB014AC08A3F3C +:1040200029F48091DB0187FF44C0F6CF8B3F39F440 +:104030008091DC0187FF3DC01092DC013AC08C3FCB +:1040400029F48091DC011816BCF333C0843F21F4BD +:104050008091D8018E7F17C0853F21F48091D801CF +:104060008D7F11C0863F21F48091D8018B7F0BC0DA +:10407000873F21F48091D801877F05C0883F31F4C4 +:104080008091D8018F7E8093D80113C08D3F21F499 +:104090008091D6018E7F0BC08E3F21F48091D60196 +:1040A0008D7F05C08F3F29F48091D6018B7F80934F +:1040B000D6018091D90181110EC08091DA01811160 +:1040C0000AC08091DB01811106C08091DC01811161 +:1040D00002C01092D701089588ED91E00E94C010AF +:1040E0000E94D31C9093D5018093D40108951F930F +:1040F000CF93DF938091D4019091D5010E94DF1C72 +:10410000AC019091D701992321F02091140130E066 +:1041100006C0209115018AE0289F900111244217C2 +:10412000530708F486C08091D901C091DA01D0917B +:10413000DB011091DC01811107C0C11176C0D111E2 +:1041400074C0111172C075C09F3F19F09F5F9093AA +:10415000D701181624F40E94FD1E8093D901809186 +:10416000D90187FF05C00E94FD1E81958093D9016A +:104170001C1624F40E94FD1E8093DA018091DA015E +:1041800087FF05C00E94FD1E81958093DA01609132 +:10419000D901662339F1C091DA01CC2319F17727CF +:1041A00067FD7095872F972F0E94EA2323E333E35F +:1041B00043E35FE30E944E240E94B7236093D9013A +:1041C0006C2F772767FD7095872F972F0E94EA2322 +:1041D00023E333E343E35FE30E944E240E94B723CB +:1041E0006093DA011D1624F40E94461F8093DB01C0 +:1041F0008091DB0187FF05C00E94461F8195809357 +:10420000DB01111624F40E94461F8093DC0180918B +:10421000DC0187FF05C00E94461F81958093DC0169 +:10422000DF91CF911F910C946C209F3F09F08ECFAE +:1042300096CFDF91CF911F910895E8EDF1E085E0F1 +:10424000DF011D928A95E9F71092D7011092D601ED +:104250000895833081F128F4813059F08230D1F013 +:104260000895853009F449C0B8F1863009F456C084 +:10427000089580911501262F30E0280F311D2F3F22 +:10428000310524F4680F6093150108958FEF809332 +:104290001501089580911401262F30E0280F311D5B +:1042A0002F3F310524F4680F6093140108958FEFB8 +:1042B00080931401089580911301262F30E0280F78 +:1042C000311D2F3F310524F4680F609313010895C9 +:1042D0008FEF80931301089580911201262F30E013 +:1042E000280F311D2F3F310524F4680F6093120110 +:1042F00008958FEF80931201089580911101262F68 +:1043000030E0280F311D2F3F310524F4680F6093F2 +:10431000110108958FEF809311010895809110018C +:10432000262F30E0280F311D2F3F310524F4680F70 +:104330006093100108958FEF8093100108958330EA +:1043400011F128F4813049F0823091F008958530E0 +:1043500081F120F18630C1F108958091150168172F +:1043600020F4861B8093150108951092150108957D +:1043700080911401681720F4861B8093140108951E +:1043800010921401089580911301681720F4861B80 +:1043900080931301089510921301089580911201E2 +:1043A000681720F4861B8093120108951092120161 +:1043B000089580911101681720F4861B80931101E4 +:1043C000089510921101089580911001681720F44A +:1043D000861B8093100108951092100108950F9389 +:1043E0001F938D3109F46BC008F03FC08E3009F483 +:1043F0007DC0C0F4873009F46EC068F4863009F0DF +:10440000AFC08091CE01817F8E7F8093CE0181E00D +:104410008093DE01A6C0883009F458C08B3009F4BF +:104420009BC09EC0863109F497C078F4803109F4AE +:1044300070C0813109F094C00E941F1690910D0147 +:1044400081E0892780930D0187C0893109F484C0F8 +:104450008B3109F085C08091CE0181FB222720F9A4 +:1044600091E0922790FB81F94AC0853309F45BC043 +:1044700048F4873209F457C008F45AC0893209F465 +:1044800052C06EC0833438F48A3308F067C0883372 +:1044900009F462C065C0833409F445C0883409F06A +:1044A0005FC00E941F160FEF13ED20E30150104074 +:1044B0002040E1F700C000000E942E1D4DC00E9468 +:1044C00071230E94A9100E94A20946C00E94E21E08 +:1044D0000E94F41E41C09091CE01892F817090FFFF +:1044E00012C0917F9E7F9093CE013BC08091CE0100 +:1044F00082FB222720F991E0922790FB82F980939A +:10450000CE01992349F18091CE0181608093CE0143 +:1045100023C08091CE0183FB222720F991E09227CE +:1045200090FB83F9ECCF61E070E080E090E010C098 +:104530008D5141E050E060E070E08A019B0104C0D1 +:10454000000F111F221F331F8A95D2F7C901B8012E +:104550000E94DB190E941F1681E003C08953E9CF36 +:1045600080E01F910F91089580E0089580E0089504 +:10457000CF93C82F8091DE01813079F018F082301E +:10458000E9F187C0E0910E01F0910F018081813146 +:1045900069F0823209F07FC009C0E0910E01F0910C +:1045A0000F018081813111F0823261F48C2F0E94E1 +:1045B000B422811104C08C2F0E94EF211DC081E024 +:1045C00090E01AC08C2F0E94B622811114C0C43111 +:1045D00079F048F4CB3079F0C03109F060C082E066 +:1045E0008093DE0108C0C93219F0C83321F057C0EA +:1045F0001092DE0154C081E0817053C0C93289F14C +:1046000018F5C43171F1A8F4C73009F046C08AE04A +:104610008093150194E19093140193E0909313011A +:104620008093120188E08093110188E28093100149 +:1046300034C0CE51C63088F5EC2FF0E0E65DFE4F79 +:1046400080818093DD0129C0CE34E9F020F4CB34A1 +:1046500021F56AE013C0C13579F0C235F1F461E0AB +:104660000DC08091DD01882319F01092DD0115C085 +:1046700081E08093DE0115C061E006C08091DD011C +:104680000E9429210AC06AE08091DD010E949F21D9 +:1046900004C01092DE0180E004C081E002C080E02E +:1046A000ABCFCF910895E1E8F0E08081886080830E +:1046B0008081816080838FB7F89493E09093890024 +:1046C00090ED909388008FBF0895EFE6F0E0808131 +:1046D000826080830895EFE6F0E080818D7F8083A3 +:1046E0000895EFE6F0E0908182E0892780830895C5 +:1046F0001F920F920FB60F9211242F933F934F9357 +:104700005F936F937F938F939F93AF93BF93EF9339 +:10471000FF938091DF019091E00101969093E00179 +:104720008093DF01811103C082E00E94A209E09121 +:10473000E001E695E695F0E0E156F84FE4918091CE +:10474000DF018E1303C080E00E94A209FF91EF9168 +:10475000BF91AF919F918F917F916F915F914F9199 +:104760003F912F910F900FBE0F901F90189504D07E +:104770006894B1118DC0089570D088F09F5790F063 +:10478000B92F9927B751A0F0D1F0660F771F881F76 +:10479000991F1AF0BA95C9F712C0B13081F077D0DD +:1047A000B1E0089574C0672F782F8827B85F39F07B +:1047B000B93FCCF3869577956795B395D9F73EF4D5 +:1047C00090958095709561957F4F8F4F9F4F08957D +:1047D000E89409C097FB3EF490958095709561959B +:1047E0007F4F8F4F9F4F9923A9F0F92F96E9BB2751 +:1047F0009395F695879577956795B795F111F8CFCD +:10480000FAF4BB0F11F460FF1BC06F5F7F4F8F4F37 +:104810009F4F16C0882311F096E911C0772321F02D +:104820009EE8872F762F05C0662371F096E8862FC5 +:1048300070E060E02AF09A95660F771F881FDAF71C +:10484000880F9695879597F9089557FD9058440FCE +:10485000551F59F05F3F71F04795880F97FB991FDF +:1048600061F09F3F79F0879508951216130614069C +:10487000551FF2CF4695F1DF08C016161706180629 +:10488000991FF1CF86957105610508940895E89404 +:10489000BB2766277727CB0197F908950BD078C0FF +:1048A00069D028F06ED018F0952309F05AC05FC087 +:1048B0001124EECFCADFA0F3959FD1F3950F50E0FE +:1048C000551F629FF001729FBB27F00DB11D639FC2 +:1048D000AA27F00DB11DAA1F649F6627B00DA11D68 +:1048E000661F829F2227B00DA11D621F739FB00D0E +:1048F000A11D621F839FA00D611D221F749F33277E +:10490000A00D611D231F849F600D211D822F762F16 +:104910006A2F11249F5750408AF0E1F088234AF013 +:10492000EE0FFF1FBB1F661F771F881F915050405F +:10493000A9F79E3F510570F014C0AACF5F3FECF37A +:10494000983EDCF3869577956795B795F795E7954B +:104950009F5FC1F7FE2B880F911D9695879597F95C +:10496000089597F99F6780E870E060E008959FEFF1 +:1049700080EC089500240A941616170618060906F6 +:10498000089500240A9412161306140605060895C5 +:10499000092E0394000C11F4882352F0BB0F40F44D +:1049A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8D +:1049B000089597FB072E16F4009407D077FD09D0D1 +:1049C0000E94F32407FC05D03EF4909581959F4FFB +:1049D0000895709561957F4F0895EE0FFF1F059024 +:1049E000F491E02D0994AA1BBB1B51E107C0AA1F3B +:1049F000BB1FA617B70710F0A61BB70B881F991F80 +:104A00005A95A9F780959095BC01CD010895F99923 +:104A1000FECF92BD81BDF89A992780B50895A8E18F +:104A2000B0E042E050E00C942A25262FF999FECF01 +:104A30001FBA92BD81BD20BD0FB6F894FA9AF99ABB +:104A40000FBE019608950E941525272F0C94162558 +:104A5000DC01CB01FC01F999FECF06C0F2BDE1BD3E +:104A6000F89A319600B40D9241505040B8F708952D +:044A7000F894FFCFE8 +:104A74002002A409320A0F0ADB09A7090101BC01BB +:104A840028080A03140A3F4D363960071307DD0668 +:104A9400A4063706500669068206010203040506C9 +:044AA40007080900F6 :00000001FF -- cgit v1.2.3 From f4ba9662f41342dd40052c70c4384ff7d03d7c15 Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Thu, 21 Jan 2016 21:25:33 -0500 Subject: A to toggle L2, hjkl to move mouse --- keyboard/ergodox_ez/keymaps/j3rn/keymap.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c index b5463cb72..e5be6fed9 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |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 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + 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_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, + 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, @@ -99,13 +99,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | + * | | | | | | | | | | | | Lclk | Rclk | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * | | | | | | |VolUp |VolDn | Mute | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -116,19 +116,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( +[MDIA] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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, @@ -138,7 +138,8 @@ KEYMAP( }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) + [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) -- cgit v1.2.3 From 6f53e17bf50fbe7bb833a0993e367be81fd2d559 Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Wed, 27 Jan 2016 19:13:54 -0500 Subject: Building a row of level switch buttons --- keyboard/ergodox_ez/keymaps/j3rn/keymap.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c index e5be6fed9..5da697088 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | ~L1 | ~L2 |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | Home | | PgUp |Ctrl/Esc| @@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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, + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - KC_FN1, KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + KC_FN1, KC_FN2, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_HOME, KC_END, -- cgit v1.2.3 From 20a3229faf12d964403becf210bf7ba280ca2e49 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sun, 27 Mar 2016 02:22:41 +0000 Subject: Add manuneo layout --- .../keymaps/german-manuneo/compile_keymap.py | 418 +++++++ .../ergodox_ez/keymaps/german-manuneo/keymap.c | 1278 ++++++++++++++++++++ .../ergodox_ez/keymaps/german-manuneo/keymap.md | 222 ++++ 3 files changed, 1918 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 000000000..3bbb9340b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,418 @@ +# encoding: utf-8 +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 + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +ONELINE_COMMENT_RE = re.compile(r"^\s*//.*$", re.MULTILINE) +INLINE_COMMENT_RE = re.compile( + r"([\,\"\[\]\{\}\d])\s+//\s[^\"\]\}\{\[]*$", re.MULTILINE +) +TRAILING_COMMA_RE = re.compile( + r",$\s*([\]\}])", re.MULTILINE +) + +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", raw_data) + return json.loads(raw_data) + +with io.open("keymap.md", encoding="utf-8") as fh: + lines = fh.readlines() + +SECTIONS = [ + 'layout_config', + 'layers', +] + +config = { + "includes_basedir": "quantum/", + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.':x", + 'separator': "|", + 'default_key_prefix': ["KC_"], + 'unicode_macros': [], + 'macro_ids': ['UMS'], + 'layers': collections.OrderedDict(), + 'layer_lines': collections.OrderedDict(), +} + +section_start_index = -1 +current_section = None +current_layer_name = None +current_layer_lines = [] +config_data = [] + +def end_section(): + global section_start_index + global current_layer_lines + section_start_index = -1 + if current_section == 'layout_config': + config.update(loads("".join( + config_data + ))) + elif current_section == 'layers': + config['layer_lines'][current_layer_name] = current_layer_lines + current_layer_lines = [] + + +for i, line in enumerate(lines): + if line.startswith("# "): + section = line[2:].strip().replace(" ", "_").lower() + if section in SECTIONS: + current_section = section + elif line.startswith("## "): + sub_section = line[3:] + if current_section == 'layers': + current_layer_name = sub_section.strip() + # TODO: parse descriptio + config['layers'][current_layer_name] = "" + elif line.startswith(" "): + if section_start_index < 0: + section_start_index = i + if current_section == 'layout_config': + config_data.append(line) + elif current_section == 'layers': + if not line.strip(): + continue + current_layer_lines.append(line) + elif section_start_index > 0: + end_section() + +end_section() + +KEYDEF_RE = re.compile(r"#define ((?:{})(?:\w+))".format( + "|".join(config['key_prefixes']) +)) +IF0_RE = re.compile(r"^#if 0$.*?#endif", re.MULTILINE | re.DOTALL) +COMMENT_RE = re.compile(r"/\*.*?\*/", re.MULTILINE | re.DOTALL) +ENUM_RE = re.compile(r"(enum\s\w+\s\{.*?\};)", re.MULTILINE | re.DOTALL) +ENUM_KEY_RE = re.compile(r"({}\w+)".format( + "|".join(config['key_prefixes']) +)) + +def parse_keydefs(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + + 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] + +valid_keycodes = set() +basepath = os.path.abspath(os.path.join( + os.path.dirname(__file__), "..", "..", "..", ".." +)) + +valid_keycodes.update(parse_keydefs(os.path.join( + basepath, "tmk_core", "common", "keycode.h" +))) + +for include_path in config['keymaps_includes']: + path = os.path.join(basepath, config['includes_dir'], include_path) + path = path.replace("/", os.sep) + if os.path.exists(path): + valid_keycodes.update(parse_keydefs(path)) + +LAYER_CHANGE_RE = re.compile(r"(DF|TG|MO)\(\d+\)") +MACRO_RE = re.compile(r"M\(\w+\)") +UNICODE_RE = re.compile(r"U[0-9A-F]{4}") +NON_CODE = re.compile(r"^[^A-Z0-9_]$") + + +def UNICODE_MACRO(config, c): + # TODO: don't use macro for codepoints below 0x2000 + macro_id = "UC_" + ( + unicodedata.name(c) + .replace(" ", "_") + .replace("-", "_") + .replace("SUPERSCRIPT_", "SUP_") + .replace("SUBSCRIPT_", "SUB_") + .replace("GREEK_SMALL_LETTER", "GR_LC") + .replace("GREEK_CAPITAL_LETTER", "GR_UC") + .replace("VULGAR_FRACTION_", "FR_") + ) + if macro_id not in config['macro_ids']: + config['macro_ids'].append(macro_id) + code = "{:04X}".format(ord(c)) + if (macro_id, code) not in config['unicode_macros']: + config['unicode_macros'].append((macro_id, code)) + return "M({})".format(macro_id) + + +def MACRO(config, code): + macro_id = code[2:-1] + if macro_id not in config['macro_ids']: + config['macro_ids'].append(macro_id) + return code + +# TODO: presumably we can have a macro or function which takes +# the hex code and produces much smaller code. + +WIN_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LALT), T(KP_PLUS), {1}, U(LALT), END + ); +""" + +LINUX_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END + ); +""" + +def macro_cases(config, mode): + if mode == 'win': + template = WIN_UNICODE_MACRO_TEMPLATE + elif mode == 'linux': + template = LINUX_UNICODE_MACRO_TEMPLATE + else: + raise ValueError("Invalid mode: ", mode) + template = template.strip() + + for macro_id, unimacro_chars in config['unicode_macros']: + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + char if char.isdigit() else char + ) for char in unimacro_chars + ) + yield template.format(macro_id, unimacro_keys) + + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 + +static uint16_t unicode_mode = UC_MODE_WIN; + +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 UMS: + unicode_mode = (unicode_mode + 1) % 2; + break; + {macro_cases} + default: + break; + }} + if (unicode_mode == UC_MODE_WIN) {{ + switch(id) {{ + {win_macro_cases} + default: + break; + }} + }} else if (unicode_mode == UC_MODE_LINUX) {{ + switch(id) {{ + {linux_macro_cases} + default: + break; + }} + }} + return MACRO_NONE; +}}; +""" + + +def iter_keycodes(layer_lines, config): + filler_re = re.compile("[" + + config['filler'] + " " + + "]") + + all_codes = [] + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(config['separator']) + all_codes.extend(codes[1:-1]) + + key_groups = {} + for group_index, key_indexes in enumerate(config['keymap_indexes']): + for key_index in key_indexes: + key_groups[key_index] = group_index + + keymap_indexes = sum(config['keymap_indexes'], []) + assert len(all_codes) == len(keymap_indexes) + code_index_pairs = zip(all_codes, keymap_indexes) + prev_index = None + for i, (code, key_index) in enumerate(code_index_pairs): + code = code.strip() + layer_match = LAYER_CHANGE_RE.match(code) + unicode_match = UNICODE_RE.match(code) + noncode_match = NON_CODE.match(code) + macro_match = MACRO_RE.match(code) + + ws = "\n" if key_groups[key_index] != prev_index else "" + prev_index = key_groups[key_index] + + try: + if not code: + code = 'KC_TRNS' + elif layer_match: + pass + elif macro_match: + code = MACRO(config, code) + elif unicode_match: + hex_code = code[1:] + code = UNICODE_MACRO(config, chr(int(hex_code, 16))) + elif noncode_match: + code = UNICODE_MACRO(config, code) + elif "_" in code: + assert code in valid_keycodes, "unknown code '{}'".format(code) + else: + for prefix in config['key_prefixes']: + if prefix + code in valid_keycodes: + code = prefix + code + break + assert code in valid_keycodes, "unknown code '{}'".format(code) + yield code, key_index, ws + except AssertionError: + print("Error processing code", repr(code).encode("utf-8")) + raise + +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; + } +}; +""" + +def parse_keymaps(config): + keymaps = {} + layer_line_items = config['layer_lines'].items() + for i, (layer_name, layer_lines) in enumerate(layer_line_items): + print("parseing layer", layer_name) + keymap = {} + for code, key_index, ws in iter_keycodes(layer_lines, config): + keymap[key_index] = (code, ws) + keymaps[layer_name] = [v for k, v in sorted(keymap.items())] + return keymaps + + +def iter_keymap_lines(config, keymaps): + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + layer_items = config['layers'].items() + for i, (layer_name, description) in enumerate(layer_items): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + for i, macro_id in enumerate(config['macro_ids']): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + layer_line_items = config['layer_lines'].items() + last_index = config['keymap_indexes'][-1] + for i, (layer_name, layer_lines) in enumerate(layer_line_items): + keymap = keymaps[layer_name] + yield "/*\n" + for line in layer_lines: + yield " *{}".format(line) + yield "*/\n" + + yield "[L{0}] = KEYMAP(\n".format(i) + + for key_index, (code, ws) in enumerate(keymap): + yield "\t{}".format(code) + if key_index < len(keymap) - 1: + yield "," + yield ws + yield "),\n" + + yield "};\n\n" + + yield "const uint16_t PROGMEM fn_actions[] = {\n" + yield "};\n" + + yield MACROCODE.format( + macro_cases="", + win_macro_cases="\n".join(macro_cases(config, mode='win')), + linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + ) + + yield USERCODE + + +with io.open("keymap.c", mode="w", encoding="utf-8") as fh: + for data in iter_keymap_lines(config, parse_keymaps(config)): + fh.write(data) + + +# print("\n".join(sorted(valid_keycodes))) +# print(json.dumps(config, indent=4)) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c new file mode 100644 index 000000000..400ad6fcf --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,1278 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" + +#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 +#define L7 7 // Layer 7 +#define L8 8 // Layer 8 +#define UMS 0 +#define UC_UPWARDS_ARROW 1 +#define UC_LEFTWARDS_ARROW 2 +#define UC_DOWNWARDS_ARROW 3 +#define UC_RIGHTWARDS_ARROW 4 +#define UC_SUP_ONE 5 +#define UC_SUP_TWO 6 +#define UC_SUP_THREE 7 +#define UC_SUP_FOUR 8 +#define UC_SUP_FIVE 9 +#define UC_FOR_ALL 10 +#define UC_SUP_SIX 11 +#define UC_SUP_SEVEN 12 +#define UC_SUP_EIGHT 13 +#define UC_SUP_NINE 14 +#define UC_SUP_ZERO 15 +#define UC_MULTIPLICATION_SIGN 16 +#define UC_FR_ONE_HALF 17 +#define UC_DIVISION_SIGN 18 +#define UC_FR_ONE_QUARTER 19 +#define UC_FR_ONE_FIFTH 20 +#define UC_FR_ONE_SIXTH 21 +#define UC_FR_ONE_EIGHTH 22 +#define UC_PLUS_MINUS_SIGN 23 +#define UC_EMPTY_SET 24 +#define UC_INFINITY 25 +#define UC_SUP_LATIN_SMALL_LETTER_N 26 +#define UC_THERE_EXISTS 27 +#define UC_ELEMENT_OF 28 +#define UC_FR_ONE_THIRD 29 +#define UC_NOT_EQUAL_TO 30 +#define UC_FR_TWO_THIRDS 31 +#define UC_FR_THREE_QUARTERS 32 +#define UC_ASYMPTOTICALLY_EQUAL_TO 33 +#define UC_THERE_DOES_NOT_EXIST 34 +#define UC_NOT_AN_ELEMENT_OF 35 +#define UC_SUB_ONE 36 +#define UC_SUB_TWO 37 +#define UC_SUB_THREE 38 +#define UC_SUB_FOUR 39 +#define UC_SUB_FIVE 40 +#define UC_SUB_SIX 41 +#define UC_SUB_SEVEN 42 +#define UC_SUB_EIGHT 43 +#define UC_SUB_NINE 44 +#define UC_SUB_ZERO 45 +#define UC_GR_LC_CHI 46 +#define UC_GR_LC_PI 47 +#define UC_GR_LC_PHI 48 +#define UC_GR_LC_OMEGA 49 +#define UC_GR_LC_GAMMA 50 +#define UC_GR_LC_ETA 51 +#define UC_GR_LC_XI 52 +#define UC_GR_LC_KAPPA 53 +#define UC_GR_LC_LAMDA 54 +#define UC_GR_LC_ZETA 55 +#define UC_GR_LC_UPSILON 56 +#define UC_GR_LC_IOTA 57 +#define UC_GR_LC_ALPHA 58 +#define UC_GR_LC_EPSILON 59 +#define UC_GR_LC_OMICRON 60 +#define UC_GR_LC_SIGMA 61 +#define UC_GR_LC_NU 62 +#define UC_GR_LC_RHO 63 +#define UC_GR_LC_TAU 64 +#define UC_GR_LC_DELTA 65 +#define UC_GR_LC_FINAL_SIGMA 66 +#define UC_GR_LC_THETA 67 +#define UC_GR_LC_BETA 68 +#define UC_GR_LC_MU 69 +#define UC_GR_LC_PSI 70 +#define UC_GR_UC_CHI 71 +#define UC_GR_UC_PI 72 +#define UC_GR_UC_PHI 73 +#define UC_GR_UC_OMEGA 74 +#define UC_GR_UC_GAMMA 75 +#define UC_GR_UC_ETA 76 +#define UC_GR_UC_XI 77 +#define UC_GR_UC_KAPPA 78 +#define UC_GR_UC_LAMDA 79 +#define UC_GR_UC_ZETA 80 +#define UC_GR_UC_UPSILON 81 +#define UC_GR_UC_IOTA 82 +#define UC_GR_UC_ALPHA 83 +#define UC_GR_UC_EPSILON 84 +#define UC_GR_UC_OMICRON 85 +#define UC_GR_UC_SIGMA 86 +#define UC_GR_UC_NU 87 +#define UC_GR_UC_RHO 88 +#define UC_GR_UC_TAU 89 +#define UC_GR_UC_DELTA 90 +#define UC_GR_UC_THETA 91 +#define UC_GR_UC_BETA 92 +#define UC_GR_UC_MU 93 +#define UC_GR_UC_PSI 94 + +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| !LALT| |LEFT|DOWN|RGHT| + * '------------------------'.-------------. .-------------.'------------------------' + * | INS |TG(2) | !M(UMS)| 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_LALT, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, M(UMS), + 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_SUP_ONE), M(UC_SUP_TWO), M(UC_SUP_THREE), M(UC_SUP_FOUR), M(UC_SUP_FIVE), M(UC_FOR_ALL), KC_TRNS, + M(UC_MULTIPLICATION_SIGN), M(UC_FR_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_FR_ONE_QUARTER), M(UC_FR_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_FR_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_FR_TWO_THIRDS), M(UC_FR_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_SUP_SIX), M(UC_SUP_SEVEN), M(UC_SUP_EIGHT), M(UC_SUP_NINE), M(UC_SUP_ZERO), KC_TRNS, KC_TRNS, + M(UC_FR_ONE_SIXTH), KC_TRNS, M(UC_FR_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_INFINITY), + M(UC_SUP_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_SUB_ONE), M(UC_SUB_TWO), M(UC_SUB_THREE), M(UC_SUB_FOUR), M(UC_SUB_FIVE), KC_TRNS, KC_TRNS, + M(UC_GR_LC_CHI), M(UC_GR_LC_PI), M(UC_GR_LC_PHI), M(UC_GR_LC_OMEGA), M(UC_GR_LC_GAMMA), KC_TRNS, KC_TRNS, + M(UC_GR_LC_UPSILON), M(UC_GR_LC_IOTA), M(UC_GR_LC_ALPHA), M(UC_GR_LC_EPSILON), M(UC_GR_LC_OMICRON), KC_TRNS, + KC_TRNS, M(UC_GR_LC_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_SUB_SIX), M(UC_SUB_SEVEN), M(UC_SUB_EIGHT), M(UC_SUB_NINE), M(UC_SUB_ZERO), KC_TRNS, KC_TRNS, + M(UC_GR_LC_ETA), M(UC_GR_LC_XI), M(UC_GR_LC_KAPPA), M(UC_GR_LC_LAMDA), KC_TRNS, M(UC_GR_LC_ZETA), M(UC_GR_LC_SIGMA), + M(UC_GR_LC_NU), M(UC_GR_LC_RHO), M(UC_GR_LC_TAU), M(UC_GR_LC_DELTA), M(UC_GR_LC_FINAL_SIGMA), KC_TRNS, + M(UC_GR_LC_BETA), M(UC_GR_LC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_LC_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_GR_UC_CHI), M(UC_GR_UC_PI), M(UC_GR_UC_PHI), M(UC_GR_UC_OMEGA), M(UC_GR_UC_GAMMA), KC_TRNS, KC_TRNS, + M(UC_GR_UC_UPSILON), M(UC_GR_UC_IOTA), M(UC_GR_UC_ALPHA), M(UC_GR_UC_EPSILON), M(UC_GR_UC_OMICRON), KC_TRNS, + KC_TRNS, M(UC_GR_UC_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_GR_UC_ETA), M(UC_GR_UC_XI), M(UC_GR_UC_KAPPA), M(UC_GR_UC_LAMDA), KC_TRNS, M(UC_GR_UC_ZETA), M(UC_GR_UC_SIGMA), + M(UC_GR_UC_NU), M(UC_GR_UC_RHO), M(UC_GR_UC_TAU), M(UC_GR_UC_DELTA), KC_TRNS, KC_TRNS, + M(UC_GR_UC_BETA), M(UC_GR_UC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_UC_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), +/* + * .-------------------------------------. .-------------------------------------. + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | |------! !------! | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L7] = 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), +/* + * .-------------------------------------. .-------------------------------------. + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | |------! !------! | | | | | | + * !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + * | | | | | | | | ! | | | | | | | + * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------'.-------------. .-------------.'------------------------' + * | | | ! | | + * .------+------+------! !------+------+------. + * ! ! | | ! | ! ! + * ! ! !------! !------! ! ! + * | | | | ! | | | + * '--------------------' '--------------------' +*/ +[L8] = 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 + +static uint16_t unicode_mode = UC_MODE_WIN; + +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 UMS: + unicode_mode = (unicode_mode + 1) % 2; + break; + + default: + break; + } + if (unicode_mode == UC_MODE_WIN) { + switch(id) { + case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_LEFTWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_SUP_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END + ); +case UC_SUP_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END + ); +case UC_SUP_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END + ); +case UC_SUP_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END + ); +case UC_SUP_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END + ); +case UC_SUP_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END + ); +case UC_SUP_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END + ); +case UC_SUP_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END + ); +case UC_SUP_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END + ); +case UC_SUP_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END + ); +case UC_FR_ONE_HALF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END + ); +case UC_FR_ONE_QUARTER: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END + ); +case UC_FR_ONE_FIFTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END + ); +case UC_FR_ONE_SIXTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END + ); +case UC_FR_ONE_EIGHTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END + ); +case UC_SUP_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END + ); +case UC_FR_ONE_THIRD: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END + ); +case UC_FR_TWO_THIRDS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END + ); +case UC_FR_THREE_QUARTERS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END + ); +case UC_NOT_AN_ELEMENT_OF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END + ); +case UC_SUB_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END + ); +case UC_SUB_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END + ); +case UC_SUB_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END + ); +case UC_SUB_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END + ); +case UC_SUB_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END + ); +case UC_SUB_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END + ); +case UC_SUB_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END + ); +case UC_SUB_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END + ); +case UC_SUB_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END + ); +case UC_SUB_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END + ); +case UC_GR_LC_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END + ); +case UC_GR_LC_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END + ); +case UC_GR_LC_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END + ); +case UC_GR_LC_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END + ); +case UC_GR_LC_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END + ); +case UC_GR_LC_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END + ); +case UC_GR_LC_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END + ); +case UC_GR_LC_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END + ); +case UC_GR_LC_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END + ); +case UC_GR_LC_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END + ); +case UC_GR_LC_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END + ); +case UC_GR_LC_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END + ); +case UC_GR_LC_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END + ); +case UC_GR_LC_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END + ); +case UC_GR_LC_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END + ); +case UC_GR_LC_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END + ); +case UC_GR_LC_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END + ); +case UC_GR_LC_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END + ); +case UC_GR_LC_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END + ); +case UC_GR_LC_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END + ); +case UC_GR_LC_FINAL_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END + ); +case UC_GR_LC_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END + ); +case UC_GR_LC_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END + ); +case UC_GR_LC_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END + ); +case UC_GR_LC_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END + ); +case UC_GR_UC_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END + ); +case UC_GR_UC_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END + ); +case UC_GR_UC_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END + ); +case UC_GR_UC_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END + ); +case UC_GR_UC_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_GR_UC_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END + ); +case UC_GR_UC_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END + ); +case UC_GR_UC_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END + ); +case UC_GR_UC_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END + ); +case UC_GR_UC_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END + ); +case UC_GR_UC_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END + ); +case UC_GR_UC_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END + ); +case UC_GR_UC_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_GR_UC_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END + ); +case UC_GR_UC_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END + ); +case UC_GR_UC_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END + ); +case UC_GR_UC_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END + ); +case UC_GR_UC_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END + ); +case UC_GR_UC_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END + ); +case UC_GR_UC_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END + ); +case UC_GR_UC_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END + ); +case UC_GR_UC_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_GR_UC_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END + ); +case UC_GR_UC_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END + ); + default: + break; + } + } else if (unicode_mode == UC_MODE_LINUX) { + switch(id) { + case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_LEFTWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_RIGHTWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_SUP_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_SUP_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_SUP_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_SUP_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END + ); +case UC_SUP_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END + ); +case UC_SUP_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END + ); +case UC_SUP_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END + ); +case UC_SUP_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END + ); +case UC_SUP_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END + ); +case UC_SUP_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END + ); +case UC_FR_ONE_HALF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END + ); +case UC_DIVISION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END + ); +case UC_FR_ONE_QUARTER: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END + ); +case UC_FR_ONE_FIFTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END + ); +case UC_FR_ONE_SIXTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END + ); +case UC_FR_ONE_EIGHTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END + ); +case UC_INFINITY: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END + ); +case UC_SUP_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END + ); +case UC_ELEMENT_OF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END + ); +case UC_FR_ONE_THIRD: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END + ); +case UC_FR_TWO_THIRDS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END + ); +case UC_FR_THREE_QUARTERS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END + ); +case UC_NOT_AN_ELEMENT_OF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END + ); +case UC_SUB_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END + ); +case UC_SUB_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END + ); +case UC_SUB_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END + ); +case UC_SUB_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END + ); +case UC_SUB_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END + ); +case UC_SUB_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END + ); +case UC_SUB_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END + ); +case UC_SUB_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END + ); +case UC_SUB_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END + ); +case UC_SUB_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_LC_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_LC_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_LC_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_LC_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_LC_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_LC_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_LC_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END + ); +case UC_GR_LC_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END + ); +case UC_GR_LC_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END + ); +case UC_GR_LC_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_LC_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_LC_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_LC_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_LC_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_LC_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END + ); +case UC_GR_LC_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_LC_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END + ); +case UC_GR_LC_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_LC_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_LC_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_LC_FINAL_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_LC_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_LC_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_LC_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END + ); +case UC_GR_LC_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_UC_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_UC_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END + ); +case UC_GR_UC_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_UC_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_UC_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_UC_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END + ); +case UC_GR_UC_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END + ); +case UC_GR_UC_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END + ); +case UC_GR_UC_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END + ); +case UC_GR_UC_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END + ); +case UC_GR_UC_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_UC_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END + ); +case UC_GR_UC_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_UC_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END + ); +case UC_GR_UC_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END + ); +case UC_GR_UC_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END + ); +case UC_GR_UC_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END + ); +case UC_GR_UC_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END + ); +case UC_GR_UC_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_UC_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END + ); +case UC_GR_UC_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END + ); +case UC_GR_UC_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_GR_UC_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END + ); +case UC_GR_UC_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END + ); + 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/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 000000000..9c0c12528 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,222 @@ +# ManuNeo Ergodox Keyboard Layout + +# Layout Config + + { + "includes_dir": "quantum/", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "keymap_indexes": [ + [ 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 ], + ], + "key_prefixes": ["DE_", "KC_"], + "filler": "-+.'!x", + "separator": "|", + "macros": { + "MUC": "", + }, + } + + +# 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| !LALT| |LEFT|DOWN|RGHT| + '------------------------'.-------------. .-------------.'------------------------' + | INS |TG(2) | !M(UMS)| 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----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + +## Layer 7 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' + + +## Layer 8 + + .-------------------------------------. .-------------------------------------. + | | | | | | | | ! | | | | | | | + !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! + | | | | | | | | ! | | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | |------! !------! | | | | | | + !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! + | | | | | | | | ! | | | | | | | + '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------'.-------------. .-------------.'------------------------' + | | | ! | | + .------+------+------! !------+------+------. + ! ! | | ! | ! ! + ! ! !------! !------! ! ! + | | | | ! | | | + '--------------------' '--------------------' -- cgit v1.2.3 From 073b44924cdfd28d64ad2ee1dbe88b00f92d2c72 Mon Sep 17 00:00:00 2001 From: skullY Date: Sun, 27 Mar 2016 16:17:40 -0700 Subject: Adding clueboard/cluepad support to qmk --- .gitignore | 4 +- keyboard/clueboard1/Makefile | 137 +++++++++++++++++++++ keyboard/clueboard1/clueboard1.c | 27 +++++ keyboard/clueboard1/clueboard1.h | 52 ++++++++ keyboard/clueboard1/config.h | 86 ++++++++++++++ keyboard/clueboard1/keymaps/keymap_default.c | 108 +++++++++++++++++ keyboard/clueboard1/led.c | 34 ++++++ keyboard/clueboard2/Makefile | 140 ++++++++++++++++++++++ keyboard/clueboard2/backlight.c | 41 +++++++ keyboard/clueboard2/clueboard2.c | 44 +++++++ keyboard/clueboard2/clueboard2.h | 57 +++++++++ keyboard/clueboard2/config.h | 100 ++++++++++++++++ keyboard/clueboard2/keymaps/keymap_default.c | 170 +++++++++++++++++++++++++++ keyboard/clueboard2/keymaps/keymap_max.c | 147 +++++++++++++++++++++++ keyboard/clueboard2/keymaps/keymap_skully.c | 108 +++++++++++++++++ keyboard/clueboard2/led.c | 36 ++++++ keyboard/cluepad/Makefile | 136 +++++++++++++++++++++ keyboard/cluepad/backlight.c | 54 +++++++++ keyboard/cluepad/cluepad.c | 39 ++++++ keyboard/cluepad/cluepad.h | 41 +++++++ keyboard/cluepad/config.h | 102 ++++++++++++++++ keyboard/cluepad/keymaps/keymap_default.c | 122 +++++++++++++++++++ 22 files changed, 1783 insertions(+), 2 deletions(-) create mode 100644 keyboard/clueboard1/Makefile create mode 100644 keyboard/clueboard1/clueboard1.c create mode 100644 keyboard/clueboard1/clueboard1.h create mode 100644 keyboard/clueboard1/config.h create mode 100644 keyboard/clueboard1/keymaps/keymap_default.c create mode 100644 keyboard/clueboard1/led.c create mode 100644 keyboard/clueboard2/Makefile create mode 100644 keyboard/clueboard2/backlight.c create mode 100644 keyboard/clueboard2/clueboard2.c create mode 100644 keyboard/clueboard2/clueboard2.h create mode 100644 keyboard/clueboard2/config.h create mode 100644 keyboard/clueboard2/keymaps/keymap_default.c create mode 100644 keyboard/clueboard2/keymaps/keymap_max.c create mode 100644 keyboard/clueboard2/keymaps/keymap_skully.c create mode 100644 keyboard/clueboard2/led.c create mode 100644 keyboard/cluepad/Makefile create mode 100644 keyboard/cluepad/backlight.c create mode 100644 keyboard/cluepad/cluepad.c create mode 100644 keyboard/cluepad/cluepad.h create mode 100644 keyboard/cluepad/config.h create mode 100644 keyboard/cluepad/keymaps/keymap_default.c (limited to 'keyboard') diff --git a/.gitignore b/.gitignore index 8b8c45169..a082ea22e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,8 +16,8 @@ build/ .vagrant/ .DS_STORE -# Eclipse Settings +# Eclipse/PyCharm/Other IDE Settings .cproject .project .settings/ - +.idea diff --git a/keyboard/clueboard1/Makefile b/keyboard/clueboard1/Makefile new file mode 100644 index 000000000..767fc95ef --- /dev/null +++ b/keyboard/clueboard1/Makefile @@ -0,0 +1,137 @@ +#---------------------------------------------------------------------------- +# 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". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = clueboard1 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = clueboard1.c \ + led.c \ + +ifdef KEYMAP + SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +else + SRC := keymaps/keymap_default.c $(SRC) +endif + +CONFIG_H = config.h + +# 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 +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 + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/clueboard1/clueboard1.c b/keyboard/clueboard1/clueboard1.c new file mode 100644 index 000000000..252c65fcc --- /dev/null +++ b/keyboard/clueboard1/clueboard1.c @@ -0,0 +1,27 @@ +#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) { + // 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/keyboard/clueboard1/clueboard1.h b/keyboard/clueboard1/clueboard1.h new file mode 100644 index 000000000..1572ea2fd --- /dev/null +++ b/keyboard/clueboard1/clueboard1.h @@ -0,0 +1,52 @@ +#ifndef CLUEBOARD1_H +#define CLUEBOARD1_H + +#include "matrix.h" +#include "keymap_common.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/keyboard/clueboard1/config.h b/keyboard/clueboard1/config.h new file mode 100644 index 000000000..01212078f --- /dev/null +++ b/keyboard/clueboard1/config.h @@ -0,0 +1,86 @@ +/* +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 + +// COLS: Left to right, ROWS: Top to bottom + +/* 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 COLS (int []){ 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 ROWS (int []){ D1, D0, D2, D5, D3 } + +/* COL2ROW or ROW2COL */ +#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/keyboard/clueboard1/keymaps/keymap_default.c b/keyboard/clueboard1/keymaps/keymap_default.c new file mode 100644 index 000000000..bee7e35a0 --- /dev/null +++ b/keyboard/clueboard1/keymaps/keymap_default.c @@ -0,0 +1,108 @@ +#include "clueboard1.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_BSLS, 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_INC, \ + 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, BL_DEC, \ + 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( + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,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/keyboard/clueboard1/led.c b/keyboard/clueboard1/led.c new file mode 100644 index 000000000..deb7143ee --- /dev/null +++ b/keyboard/clueboard1/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< +#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/keyboard/clueboard2/clueboard2.c b/keyboard/clueboard2/clueboard2.c new file mode 100644 index 000000000..97d393d18 --- /dev/null +++ b/keyboard/clueboard2/clueboard2.c @@ -0,0 +1,44 @@ +#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 + + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #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/keyboard/clueboard2/config.h b/keyboard/clueboard2/config.h new file mode 100644 index 000000000..04166c20f --- /dev/null +++ b/keyboard/clueboard2/config.h @@ -0,0 +1,100 @@ +/* +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 + +// COLS: Left to right, ROWS: Top to bottom + +/* Column pin configuration + * col: 0 1 2 3 4 5 6 7 + * pin: F0 F1 F4 F5 F6 F7 E6 B1 + */ +#define COLS (int []){ F0, F1, F4, F5, F6, F7, E6, B1 } + + /* 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 ROWS (int []){ B2, C7, C6, B6, B5, B0, B3, D5, D3, D2 } + +/* COL2ROW or ROW2COL */ +#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)) \ +) + +/* 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/keyboard/clueboard2/keymaps/keymap_default.c b/keyboard/clueboard2/keymaps/keymap_default.c new file mode 100644 index 000000000..5d52f27a7 --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_default.c @@ -0,0 +1,170 @@ +#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| 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( + KC_TRNS, KC_TRNS, 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 { + SHIFT_ESC, + 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(SHIFT_ESC), + [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), +}; + +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 + 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/keyboard/clueboard2/keymaps/keymap_max.c b/keyboard/clueboard2/keymaps/keymap_max.c new file mode 100644 index 000000000..714d6390d --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_max.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/keyboard/clueboard2/keymaps/keymap_skully.c b/keyboard/clueboard2/keymaps/keymap_skully.c new file mode 100644 index 000000000..74a03f2f3 --- /dev/null +++ b/keyboard/clueboard2/keymaps/keymap_skully.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/keyboard/clueboard2/led.c b/keyboard/clueboard2/led.c new file mode 100644 index 000000000..5788fc7b1 --- /dev/null +++ b/keyboard/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(uint8_t usb_led) { + if (usb_led & (1< +#include "backlight.h" +#include "led.h" + +#include "print.h" + +int pwm_level; + +void led_set(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/keyboard/cluepad/cluepad.c b/keyboard/cluepad/cluepad.c new file mode 100644 index 000000000..ff3be5b9b --- /dev/null +++ b/keyboard/cluepad/cluepad.c @@ -0,0 +1,39 @@ +#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 + + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #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/keyboard/cluepad/config.h b/keyboard/cluepad/config.h new file mode 100644 index 000000000..5ed421a6e --- /dev/null +++ b/keyboard/cluepad/config.h @@ -0,0 +1,102 @@ +/* +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 + +// COLS: Left to right, ROWS: Top to bottom + +/* Column pin configuration + * col: 0 1 2 3 + * pin: F4 E6 B1 D2 + */ +#define COLS (int []){ F4, E6, B1, D2 } + + /* Row pin configuration + * row: 0 1 2 3 4 + * pin: + */ +#define ROWS (int []){ B0, D3, D5, D4, D6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 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/keyboard/cluepad/keymaps/keymap_default.c b/keyboard/cluepad/keymaps/keymap_default.c new file mode 100644 index 000000000..32cb43c74 --- /dev/null +++ b/keyboard/cluepad/keymaps/keymap_default.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| + * |-------------------| + * | Fn2| | Fn4| | + * |--------------| | + * | Fn3|BL_S| Fn5| Fn6| + * |-------------------| + * | | | | | + * |--------------| | + * | Fn1| | Fn7| + * '-------------------' + */ +[_FL] = KEYMAP( + LT(_FL, KC_NLCK), KC_TRNS, KC_TRNS, F(0), \ + F(2), KC_TRNS, F(4), F(6), \ + F(3), BL_STEP, F(5), \ + KC_TRNS, KC_TRNS, 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; + } +} + -- cgit v1.2.3 From d3e89b8cbd473ed8b712213104009f0a66432a13 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Sun, 27 Mar 2016 20:14:03 -0700 Subject: Fixed issues, added unicode layer ⌬ ¯\_⩾ツ⩽_/¯ --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 79 +- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 2259 +++++++++++++------------ 2 files changed, 1198 insertions(+), 1140 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index b649e6951..b60a55989 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -5,6 +5,7 @@ #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 @@ -16,15 +17,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| - * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . |//Alt| RShift | + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |LCtrl | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. - * Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | * ,------|------|------| |------+------+------. * | | | PgUp | | Ins | | | - * | Space| BkSp |------| |------| ~L1 |Enter | + * | Enter| BkSp |------| |------| ~L1 |Space | * | | | PgDn | | Del | | | * `--------------------' `--------------------' */ @@ -36,16 +37,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_GRV, ALL_T(KC_NO), KC_LEFT,KC_RGHT, - KC_LALT, KC_F5, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, KC_PGUP, KC_SPC,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, ALT_T(KC_SLSH), KC_RSFT, - KC_DOWN,KC_UP, LCTL(KC_C),LCTL(KC_V), KC_RCTRL, + 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_ENT @@ -103,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -128,17 +129,62 @@ 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_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_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) -}; + [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) { @@ -152,7 +198,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } 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(PPLS), T(P0), T(P0), T(A), T(P3), T(P0), U(LALT), END ); + return MACRO( I(255), D(LALT), T(PPLS), T(P0), T(P0), T(A), T(P3), U(LALT), END ); } break; } @@ -160,12 +206,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); @@ -181,6 +227,9 @@ void * matrix_scan_user(void) { case 2: ergodox_right_led_2_on(); break; + case 3: + ergodox_right_led_3_on(); + break; default: // none break; diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index 9dc1ac412..aadc3550d 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -1,1127 +1,1136 @@ -:100000000C9476020C94BD020C94BD020C94BD02BB -:100010000C94BD020C94BD020C94BD020C94BD0264 -:100020000C94BD020C94BD020C94F80B0C94CA0CF9 -:100030000C94BD020C94BD020C94BD020C94BD0244 -:100040000C94BD020C943E210C94BD020C94BD0294 -:100050000C94BD020C94D01A0C94BD020C94BD02F9 -:100060000C94BD020C94BD020C94BD020C94BD0214 -:100070000C94BD020C94BD020C94BD020C94BD0204 -:100080000C94BD020C94BD020C94BD020C94BD02F4 -:100090000C94BD020C94BD020C94BD020C94BD02E4 -:1000A0000C94BD020C94BD020C94BD02370D590D89 -:1000B0004C0E590D4C0E9E0DC10D4C0E160E290EF8 -:1000C00013111311421142118511BF11CC13CC131E -:1000D000D811CC13CD12CD12A013CC13CC13B7135F +:100000000C94C9020C9410030C9410030C9410036C +:100010000C9410030C9410030C9410030C94100314 +:100020000C9410030C9410030C943A0C0C940C0DCB +:100030000C9410030C9410030C9410030C941003F4 +:100040000C9410030C9480210C9410030C94100356 +:100050000C9410030C94121B0C9410030C941003BA +:100060000C9410030C9410030C9410030C941003C4 +:100070000C9410030C9410030C9410030C941003B4 +:100080000C9410030C9410030C9410030C941003A4 +:100090000C9410030C9410030C9410030C94100394 +:1000A0000C9410030C9410030C941003790D9B0D09 +:1000B0008E0E9B0D8E0EE00D030E8E0E580E6B0EE7 +:1000C0005511551184118411C71101120E140E140B +:1000D0001A120E140F130F13E2130E140E14F91349 :1000E00075FF01E20157025701620262016202627A -:1000F00001040204015B025B0162026202E2000091 -:1001000000F0A1F0A229002B00E300E100E00000D4 -:10011000001E00140004001D7435004E001F001A5C -:100120000016001B00007F2A0020000800070006C0 -:100130000050002C0021001500090019004F004B51 -:1001400000220017000A0005000000E20023002F33 -:100150000000004A0000003E002400300000004D76 -:100160000000003B0025001C000B0011000000C235 -:1001700000260018000D0010005100490027000C57 -:10018000000E003600520028002D0012000F00372C -:10019000000601C1002E0013003300387419014C11 -:1001A000002A0031003400E500E4000000010001F5 -:1001B0000001000100010000003A001E022002229E -:1001C00002033001003B001F022102230201000153 -:1001D000003C002F0226022F00010001003D0030EC -:1001E0000227023000010001003E003102350035D7 -:1001F00002000001003F00010000000100000001BA -:100200000040000100000001000000010041005218 -:100210000051002402000001004200240021001EC1 -:1002200000010001004300250022001F00370001EB -:10023000004400260023002000270001004500257F -:10024000022E0231002E004C054600010001000183 -:10025000003D040000005001000100010001000009 -:100260000001000100010001000100010001000186 -:1002700000F2000100010001000100F000F10001A6 -:1002800000F400010001000100F3000100F500018D -:100290000001000100010001000000010001000157 -:1002A0000000000100000001000100010000000149 -:1002B0000000000100010001000100010000000138 -:1002C000000100010001000100A90001000100017E -:1002D000000100AC00AA00B600010001000100AB63 -:1002E00000A800010001000100010001000100015F -:1002F0000001000100AE00010001000000160345EE -:1003000000720067006F0044006F00780020004515 -:10031000005A00000016034500720067006F004499 -:10032000006F007800200045005A00000004030917 -:100330000409026D00040100A0FA09040000010391 -:10034000010100092111010001223F00070581037D -:1003500008000A090401000103010200092111013A -:100360000001224D000705820308000A090402006B -:1003700001030000000921110100012236000705D8 -:10038000830308000A090403000103000000092197 -:100390001101000122390007058403100001120138 -:1003A000100100000008EDFE07130100010200012A -:1003B00005010906A101050719E029E71500250136 -:1003C0009508750181020508190129059505750132 -:1003D0009102950175039101050719002977150010 -:1003E0002501957875018102C005010980A101856B -:1003F0000216010026B7001A01002AB700751095F1 -:10040000018100C0050C0901A10185031601002628 -:100410009C021A01002A9C02751095018100C005FA -:10042000010902A1010901A1000509190129051508 -:10043000002501950575018102950175038101056E -:1004400001093009311581257F950275088106095A -:10045000381581257F950175088106050C0A38023B -:100460001581257F950175088106C0C00501090623 -:10047000A101050719E029E7150025019508750177 -:100480008102950175088101050819012905950565 -:10049000750191029501750391010507190029FF66 -:1004A000150025FF950675088100C00000000000BA -:1004B000000000000000010204060A0F17202C3A79 -:1004C0004A5D71879DB3C7DAE9F5FCFFFCF5E9DA0F -:1004D000C7B39D87715D4A3A2C20170F0A060402A4 -:1004E00001000000000000000000000011241FBEF9 -:1004F000CFEFDAE0DEBFCDBF04B603FE27C08091A8 -:10050000ED019091EE01A091EF01B091F0018730E3 -:10051000904BA740B04BD1F41092ED011092EE0138 -:100520001092EF011092F00114BE84B7877F84BF50 -:100530000FB6F894A8958091600088618093600060 -:10054000109260000FBEE0E0FFE3099511E0A0E02B -:10055000B1E0EEE1F6E402C005900D92A433B107DC -:10056000D9F721E0A4E3B1E001C01D92AD3EB2078E -:10057000E1F70E943F090C940D230C940000CF93E7 -:10058000DF93EC01662319F0633059F00DC08A81C6 -:10059000882321F085EE0E94AD0F03C085EE0E94F6 -:1005A00075108A81811103C080E090E002C080EE66 -:1005B00090E0DF91CF91089508956091B10170911D -:1005C000B2018091B3019091B4010E94FD19569837 -:1005D0005E9825982D9826982E9827982F988130E8 -:1005E00019F0823021F00895259A2D9A0895269ABF -:1005F0002E9A08958DED92E0892B11F00E94DD0274 -:1006000080E090E0089556985E9825982D98269859 -:100610002E9827982F988FEF90E0909389008093E1 -:10062000880090938B0080938A0090938D00809334 -:100630008C00259A2D9A2FEF80E792E02150804080 -:100640009040E1F700C00000269A2E9A2FEF80E735 -:1006500092E0215080409040E1F700C00000279ACE -:100660002F9A2FEF80E792E0215080409040E1F7F1 -:1006700000C0000025982D982FEF80E792E02150D0 -:1006800080409040E1F700C0000026982E982FEFA0 -:1006900080E792E0215080409040E1F700C00000E8 -:1006A00027982F9856985E9825982D9826982E98DA -:1006B00027982F98089589EA8093800089E0809395 -:1006C000810024982C983F988AB18F748AB96E98CB -:1006D000479A8BB1806B8BB9769A0E9403038CED9D -:1006E00092E0892B11F00E94DC0280E090E00895F6 -:1006F00080E2809300018091340181110EC00E943C -:10070000C70381E0809334012FEF83ED90E3215004 -:1007100080409040E1F700C0000080E40E94CD03DB -:100720008093000181112EC00E94F7038093000185 -:10073000811128C00E94F70380930001811122C01B -:100740008FE30E94F7038093000181111BC00E9478 -:10075000EF0380E40E94CD0380930001811112C059 -:100760008CE00E94F7038093000181110BC00E946E -:10077000F70380930001811105C08FE30E94F70306 -:10078000809300010E94EF03809100010895109270 -:10079000B9008AE08093B800089594EA9093BC0071 -:1007A0009091BC0097FFFCCF9091B900987F983052 -:1007B00021F0903111F081E008958093BB0084E82E -:1007C0008093BC008091BC0087FFFCCF8091B90072 -:1007D000887F883111F0803471F780E0089584E9D2 -:1007E0008093BC008091BC0084FDFCCF0895809371 -:1007F000BB0084E88093BC008091BC0087FFFCCFE5 -:100800009091B900987F81E0983209F480E00895D2 -:1008100084E88093BC008091BC0087FFFCCF80916E -:10082000BB00089580910001811115C080E40E94F1 -:10083000CD038093000181110CC082E10E94F70377 -:1008400080930001811105C08FEF0E94F703809310 -:1008500000010E94EF0384B1807F84B985B1807F5D -:1008600085B98AB1837F8AB98BB1837F8BB93E9872 -:10087000469808950E947803809300010E94120414 -:1008800080B38C7080BB81B3836F81BBE4E4F1E003 -:10089000A6E3B1E011921D9281E0E235F807D1F7AD -:1008A0008BE593E0892B11F00C945B0308959F92E4 -:1008B000AF92BF92CF92DF92EF92FF920F931F936E -:1008C000CF93DF9380910001882379F080913501E7 -:1008D0008F5F80933501811108C00E947803809357 -:1008E0000001811102C00E94030386E3E82E81E02B -:1008F000F82E8701C0E0D0E0BB24B39492E0A92E8B -:10090000CC24C394D12CC730D10500F580910001CF -:10091000811164C080E40E94CD03809300018111A5 -:1009200012C082E10E94F7038093000181110BC085 -:10093000C6010C2E01C0880F0A94EAF780950E9428 -:10094000F703809300010E94EF0348C0CA30A1F072 -:1009500028F4C83059F0C93061F005C0CC3089F0B6 -:1009600070F0CD3089F0209A289810C0219A2998EB -:100970000DC0229A2A980AC0239A2B9807C0529A2F -:1009800001C0539A5B9802C03E9A4698E0EAEA9505 -:10099000F1F78FB181708B25799902C032E001C0E7 -:1009A00030E0832B7C9902C034E001C030E0832B1F -:1009B0007D9902C028E001C020E0822B7E9902C010 -:1009C00090E101C090E0892B9FB19095991F9927E4 -:1009D000991F9295990F907E892B0FC080910001ED -:1009E000811150C080E40E94CD03809300018823D0 -:1009F000B1F1912C0E94EF03892DD8019C91981799 -:100A000019F08C93A09201010E94120421960F5FAD -:100A10001F4FCE30D10509F076CF80910101882398 -:100A2000B9F0815080930101882339F0EFE9FFE0AC -:100A30003197F1F700C000000BC0E4E4F1E0D7010A -:100A40008D917D018193B4E4EB16B1E0FB06B9F71B -:100A50008AEF92E0892BC1F00E94FA0215C083E16F -:100A60000E94F703809300018111C3CF81E40E94AB -:100A7000CD03809300018111BCCF0E940804982E01 -:100A80009094B8CF80E0B9CF81E0DF91CF911F91F2 -:100A90000F91FF90EF90DF90CF90BF90AF909F901D -:100AA0000895E82FF0E0EC5BFE4F808108950895F3 -:100AB0008B3B910580F4883A910548F5853A91057C -:100AC000D8F48430910508F0B2C0019709F06EC0E7 -:100AD00081E090E00895803E910508F467C0883E6B -:100AE000910508F4A4C09C01205F31092031310533 -:100AF00008F05CC090650895853A910509F459C0E5 -:100B0000863A910509F058C082E890E40895883A41 -:100B1000910509F454C0893A910509F453C08A3A01 -:100B2000910509F452C08B3A910509F451C08C3AF1 -:100B3000910509F450C08D3A910509F44FC0803BEE -:100B4000910509F44EC08E3A910509F44DC08F3AD3 -:100B5000910509F44CC0813B910509F44BC0823BDF -:100B6000910509F44AC0833B910509F449C0843BCF -:100B7000910509F448C0853B910509F447C0863BBF -:100B8000910509F446C0873B910509F445C0883BAF -:100B9000910509F444C0893B910509F443C08A3B9F -:100BA000910509F442C080E094E4089580E090E06B -:100BB000089581E890E4089583E890E4089582EE32 -:100BC00094E4089589EE94E408958AEE94E40895F7 -:100BD00085EB94E4089586EB94E4089587EB94E420 -:100BE00008958CEC94E408958DEC94E4089583E8E2 -:100BF00095E408958AE895E4089582E995E40895D6 -:100C000084E995E4089581E296E4089583E296E408 -:100C1000089584E296E4089585E296E4089586E2D4 -:100C200096E4089587E296E408958AE296E40895AA -:100C3000089524E5829FC0011124FC0126E0729FE3 -:100C4000E00DF11D1124E60FF11DEE0FFF1FEB5F0C -:100C5000FE4F859194910895880F991FFC01E158EA -:100C6000F040859194910895880F991FFC01E150FF -:100C7000FF4F85919491089524E5829FC00111242E -:100C8000FC0146E0749FE00DF11D1124E60FF11DFB -:100C9000EE0FFF1FEB5FFE4F859194919C013A95FB -:100CA00021154FE1340708F425C13F51211530418A -:100CB00020F49F700E94340608959C013053211542 -:100CC000304118F49927906C0895811520E592071A -:100CD00069F40E94EE134FEF84E39CE041508040A2 -:100CE0009040E1F700C000000C94F51A813020E537 -:100CF000920731F48091CC0181608093CC010895FA -:100D00009C0130552115304108F05CC0292F332754 -:100D10002F70332721303105E9F4AC0164E0440F32 -:100D2000551F6A95E1F744275370BC01637077271C -:100D300002C0220F331F6A95E2F73C68242B352B43 -:100D400073E0880F991F7A95E1F780769927822BB7 -:100D5000932B08952230310529F4982F8827816F2D -:100D6000906A089523303105A1F4AC0133E0440FBB -:100D7000551F3A95E1F7407E57708370992721E01F -:100D800030E002C0220F331F8A95E2F7C9019C6848 -:100D900016C02430310531F5AC0123E0440F551F56 -:100DA0002A95E1F7407E57708370992721E030E063 -:100DB00002C0220F331F8A95E2F7C9019A68842B7B -:100DC000952B08959C0130572115304118F49F70E0 -:100DD000906208959C0130582115304118F49F709D -:100DE000906A0895803E9105E0F4803C910558F5A5 -:100DF0008133910509F46FC048F48932910509F4F3 -:100E000063C08A32910509F46DC072C089339105BF -:100E1000E9F082389105D1F08533910509F44DC090 -:100E200067C0833E910581F138F4803E9105B9F0A9 -:100E3000823E9105D9F05CC0863E910561F1873E06 -:100E40009105A1F155C00E942C0608952091DE0164 -:100E500020FD02C021FF4CC080EE90E049C080918F -:100E6000DE0180FFF9CF89E390E042C08091DE018E -:100E700082FF0EC08091DE0184FF03C080E090E01D -:100E800037C083EE90E034C08091DE0182FFF2CF64 -:100E900082EE90E02DC08091DE0183FF0BC0809137 -:100EA000DE0184FDEBCF87EE90E022C08091DE0171 -:100EB00083FFF5CF86EE90E01BC08091DE0185FFB9 -:100EC00007C089E290E014C08091DE0185FFF9CF70 -:100ED00085E390E00DC08091DE0186FF07C08AE2C5 -:100EE00090E006C08091DE0186FFF9CF81E390E0BB -:100EF0000E94580508950895809162010895CF9346 -:100F0000DF9300D01F92CDB7DEB79C018091E40142 -:100F1000843019F593E099833B832A839093E90009 -:100F20008FEF9091E800815095FD06C095ED9A9560 -:100F3000F1F700008111F5CF8091E80085FF0DC029 -:100F400040E050E063E070E0CE0101960E94EC09C1 -:100F50008091E8008E778093E8000F900F900F90BB -:100F6000DF91CF910895CF93DF9300D01F92CDB73B -:100F7000DEB72091E401243021F522E029839B8310 -:100F80008A8383E08093E9008FEF9091E80081509D -:100F900095FD06C095ED9A95F1F700008111F5CF0A -:100FA0008091E80085FF0DC040E050E063E070E014 -:100FB000CE0101960E94EC098091E8008E77809323 -:100FC000E8000F900F900F90DF91CF9108959C0152 -:100FD0008091E4018430F9F482E08093E9009FEF8E -:100FE0008091E800915085FD06C085ED8A95F1F766 -:100FF00000009111F5CF8091E80085FF0CC040E022 -:1010000050E065E070E0C9010E94EC098091E800C1 -:101010008E778093E8000895CF93DF93EC01809161 -:10102000E401843009F046C090910C019923D9F075 -:1010300090910D019923B9F08093E9008FEF909181 -:10104000E800815095FD06C095E19A95F1F7000002 -:101050008111F5CF8091E80085FF2CC040E050E081 -:1010600060E170E017C081E08093E9008FEF90911C -:10107000E800815095FD06C095ED9A95F1F70000C6 -:101080008111F5CF8091E80085FF14C040E050E069 -:1010900068E070E0CE010E94EC098091E8008E7754 -:1010A0008093E80080E1FE01A2E5B1E001900D929D -:1010B0008A95E1F7DF91CF9108958091E301811145 -:1010C00009C00E947D0B0E94DA0B8091E2008460CF -:1010D0008093E20008951092E301089508950C941E -:1010E0002B210E948B1A0E9431210E94850E0C94A4 -:1010F0007B0742E061EC81E00E94F60A42E061EC8D -:1011000082E00E94F60A42E061EC83E00E94F60A67 -:1011100042E161EC84E00C94F60A8091E6018330B0 -:1011200009F455C030F4813071F0823009F48EC07A -:1011300008958A3009F47AC08B3009F460C0893090 -:1011400009F09CC020C08091E501813A09F096C069 -:101150008091E800877F8093E8008091E901909179 -:10116000EA01892B21F460E182E591E003C060E0AF -:1011700080E090E070E00E94370A8091E8008B7771 -:101180008093E80008958091E501813209F076C0EE -:101190008091E9019091EA01009719F0039709F015 -:1011A0006DC08091E800877F8093E8008091E8001F -:1011B00082FD05C08091E4018111F8CF5FC080916C -:1011C000F100809362018091E8008B7753C0809199 -:1011D000E501813A09F052C08091E9019091EA015C -:1011E000892B09F04BC08091E800877F8093E8004D -:1011F0008091E80080FFFCCF80910C0136C0809187 -:10120000E5018132D9F58091E9019091EA01892BBC -:10121000A9F58091E800877F8093E8000E942B0B5E -:101220008091E70180930C010C94EE138091E5010D -:10123000813221F58091E800877F8093E8000E9449 -:101240002B0B8091E8018093630108958091E50163 -:10125000813AA1F48091E800877F8093E800809133 -:10126000E80080FFFCCF809163018093F1008091C2 -:10127000E8008E778093E8000C942B0B089584B7D8 -:10128000877F84BF0FB6F894A8958091600088612D -:1012900080936000109260000FBE90E080E80FB66F -:1012A000F89480936100909361000FBE0E94D40E69 -:1012B0000E947D0B0E94DA0B8091E2008460809393 -:1012C000E20078940E94650E0E94D60E82E091E0C2 -:1012D0000E94800E0E9419218091E401853069F4FA -:1012E0000E944D1A8091E2018823B1F30E94771A7F -:1012F000882391F30E94D609EFCF0E94DC0EECCF39 -:10130000292F332723303105C9F060F4213031050E -:1013100081F02230310509F041C08DE690E021E3F3 -:1013200033E040C021323105E1F02232310531F1A4 -:1013300035C082E190E02EE933E034C09927813056 -:10134000910549F028F0029749F5EDEFF2E005C06C -:10135000EDE2F3E002C0E5E1F3E0849190E09F016B -:1013600021C06430D8F4E62FF0E0EE0FFF1FEE5DF1 -:10137000FE4F2081318189E090E014C0643070F428 -:1013800070E0FB01EE0FFF1FE65EFE4F2081318112 -:10139000FB01EA5EFE4F808190E004C080E090E0B7 -:1013A00020E030E0FA0131832083089580E189BD97 -:1013B00082E189BD09B400FEFDCF8091D8008F7D08 -:1013C0008093D8008091E00082608093E00080915B -:1013D000E00081FDFCCF0895CF92DF92EF92FF9263 -:1013E0000F931F93CF93DF93EC018B016A010E944F -:1013F0004A0B811133C0C114D10439F0F601808148 -:101400009181081B190BC80FD91FE12CF12C011574 -:10141000110519F18091E80085FD16C08091E80062 -:101420008E778093E800C114D10449F0F6018081E1 -:101430009181E80EF91EF182E08285E00FC00E94E2 -:101440004A0B882321F30AC089918093F10001504F -:101450001109FFEFEF1AFF0ADACF80E0DF91CF9199 -:101460001F910F91FF90EF90DF90CF900895209102 -:10147000EB013091EC012617370748F06115710533 -:1014800039F42091E8002E772093E80001C0B901DB -:10149000FC0120E06115710579F18091E401882358 -:1014A000F1F18530F1F18091E80083FD3CC080913D -:1014B000E80082FD2EC08091E80080FFEBCF2091F4 -:1014C000F3008091F20090E0922B6115710551F0CC -:1014D0008830910538F421912093F1006150710911 -:1014E0000196F3CF21E0089709F020E08091E80011 -:1014F0008E778093E800CECF2111CFCF0AC08091A4 -:10150000E401882361F0853061F08091E80083FD7B -:101510000AC08091E80082FFF2CF80E0089582E067 -:10152000089583E0089581E008952091EB013091C2 -:10153000EC012617370748F06115710539F4209141 -:10154000E8002E772093E80001C0B901FC0120E0FB -:101550006115710591F18091E401882309F440C07F -:10156000853009F43FC08091E80083FD3DC0809143 -:10157000E80082FD2FC08091E80080FFE9CF209134 -:10158000F3008091F20090E0922B6115710559F003 -:101590008830910540F424912093F10031966150F8 -:1015A00071090196F2CF21E0089709F020E08091BF -:1015B000E8008E778093E800CBCF2111CCCF0AC012 -:1015C0008091E401882361F0853061F08091E8002A -:1015D00083FD0AC08091E80082FFF2CF80E0089589 -:1015E00082E0089583E0089581E00895982F973070 -:1015F00068F59093E900981739F07091EC0020910C -:10160000ED005091F00003C0242F762F50E021FD13 -:1016100002C09F5FECCF3091EB003E7F3093EB0038 -:101620003091ED003D7F3093ED003091EB00316063 -:101630003093EB007093EC002093ED005093F0009A -:101640002091EE0027FDE5CF80E008958F70809314 -:10165000E90081E008958091E50187FF11C0809144 -:10166000E80082FD05C08091E4018111F8CF11C02E -:101670008091E8008B770BC08091E401882349F0CA -:101680008091E80080FFF8CF8091E8008E7780930A -:10169000E80008952091E4003091E50095E640913E -:1016A000EC00842F817040FF23C08091E80080FD12 -:1016B0001DC08091E401882399F0853099F08091D4 -:1016C000EB0085FD11C04091E4005091E500241726 -:1016D000350729F3915011F09A01E1CF84E0089584 -:1016E00082E0089583E0089581E0089580E0089500 -:1016F0004091E80042FFDDCF08950E94EB0B0E946D -:10170000F30BE0EEF0E0808181608083E8EDF0E0B3 -:1017100080818F77808319BCA7EDB0E08C918E7F9C -:101720008C9380818F7E80831092E30108950F93C4 -:101730001F93CF93DF930E94EB0B0E94F30BC8ED36 -:10174000D0E088818F7788838881806888838881CA -:101750008F7D888319BC1092E4011092E0011092F1 -:10176000E2011092E10100EE10E0F80180818B7F30 -:10177000808388818160888342E060E080E00E940D -:10178000F60AE1EEF0E080818E7F8083E2EEF0E009 -:10179000808181608083808188608083F80180817E -:1017A0008E7F8083888180618883DF91CF911F91B4 -:1017B0000F910895E8EDF0E080818F7E8083E7ED62 -:1017C000F0E080818160808384E082BF81E080934B -:1017D000E3010C94970BE8EDF0E080818E7F80832D -:1017E0001092E20008951092DA001092E10008953C -:1017F0001F920F920FB60F9211242F933F934F9386 -:101800005F936F937F938F939F93AF93BF93EF9368 -:10181000FF938091E10082FF0BC08091E20082FF84 -:1018200007C08091E1008B7F8093E1000E94640EED -:101830008091DA0080FF1FC08091D80080FF1BC01C -:101840008091DA008E7F8093DA008091D90080FF4A -:101850000DC080E189BD82E189BD09B400FEFDCFE4 -:1018600081E08093E4010E945D0805C019BC1092DC -:10187000E4010E946B088091E10080FF19C0809113 -:10188000E20080FF15C08091E2008E7F8093E2002D -:101890008091E20080618093E2008091D8008062B4 -:1018A0008093D80019BC85E08093E4010E946F0802 -:1018B0008091E10084FF30C08091E20084FF2CC061 -:1018C00080E189BD82E189BD09B400FEFDCF809130 -:1018D000D8008F7D8093D8008091E1008F7E809327 -:1018E000E1008091E2008F7E8093E2008091E2002F -:1018F00081608093E2008091E001882311F084E010 -:1019000007C08091E30087FD02C081E001C083E051 -:101910008093E4010E9471088091E10083FF29C057 -:101920008091E20083FF25C08091E100877F809352 -:10193000E10082E08093E4011092E0018091E100F7 -:101940008E7F8093E1008091E2008E7F8093E200A1 -:101950008091E20080618093E20042E060E080E0FC -:101960000E94F60A8091F00088608093F0000E9447 -:101970006E08FF91EF91BF91AF919F918F917F91F1 -:101980006F915F914F913F912F910F900FBE0F90EC -:101990001F9018951F920F920FB60F9211242F933C -:1019A0003F934F935F936F937F938F939F93AF93E7 -:1019B000BF93CF93DF93EF93FF93C091E900CF7074 -:1019C0008091EC00D82FD17080FDD0E81092E90012 -:1019D0008091F000877F8093F00078940E940E0D34 -:1019E0001092E9008091F00088608093F000CD2B88 -:1019F000CF70C093E900FF91EF91DF91CF91BF913C -:101A0000AF919F918F917F916F915F914F913F9196 -:101A10002F910F900FBE0F901F9018951F93CF938B -:101A2000DF93CDB7DEB7AA970FB6F894DEBF0FBE2F -:101A3000CDBFE5EEF1E08091F100819321E0ED3E34 -:101A4000F207C9F70E948D088091E80083FF24C146 -:101A50008091E5019091E601492F50E04A3051050F -:101A600008F01AC1FA01EA5AFF4F0C94C2228038DA -:101A700081F0823809F010C18091E9018F70809364 -:101A8000E9008091EB0085FB882780F91092E9003E -:101A900006C08091E1019091E201911182609091E4 -:101AA000E800977F9093E8008093F1001092F10096 -:101AB000C8C0282F2D7F09F0EFC0882319F082308D -:101AC00061F0EAC08091E701813009F0E5C0933010 -:101AD00009F080E08093E2012BC08091E701811141 -:101AE00027C08091E9018F7009F4D6C08093E90086 -:101AF0002091EB0020FF1CC0933021F48091EB007B -:101B0000806214C09091EB0090619093EB0021E013 -:101B100030E0A90102C0440F551F8A95E2F74093B7 -:101B2000EA001092EA008091EB0088608093EB005D -:101B30001092E9008091E800877F86C08111ACC0D7 -:101B40001091E7011F778091E3008078812B8093CB -:101B5000E3008091E800877F8093E8000E942B0BD0 -:101B60008091E80080FFFCCF8091E3008068809343 -:101B7000E300111102C082E001C083E08093E40120 -:101B80008BC08058823008F087C08091E701909127 -:101B9000E8018C3D53E0950779F583E08A838AE27A -:101BA00089834FB7F894DE01139620E03EE051E2BE -:101BB000E32FF0E050935700E49120FF03C0E2953B -:101BC000EF703F5FEF708E2F90E0EA3010F0C79615 -:101BD00001C0C0968D939D932F5F243149F74FBF6D -:101BE0008091E800877F8093E8006AE270E0CE0190 -:101BF00001960E94370A14C0AE014F5F5F4F60919B -:101C0000E9010E948009BC01892B09F445C090912B -:101C1000E800977F9093E80089819A810E94950A55 -:101C20008091E8008B778093E80036C08038A1F57A -:101C30008091E800877F8093E8008091E0018093A5 -:101C4000F1008091E8008E778093E8000E942B0BD2 -:101C500023C0811121C08091E7019091E80199276B -:101C60000297D4F48091E800877F8093E800809108 -:101C7000E7018093E0010E942B0B8091E00181112C -:101C800006C08091E30087FD02C081E001C084E0CE -:101C90008093E4010E9479088091E80083FF0AC0E4 -:101CA0008091E800877F8093E8008091EB0080625C -:101CB0008093EB00AA960FB6F894DEBF0FBECDBF9F -:101CC000DF91CF911F9108950895CF938091E40102 -:101CD0008823A1F0C091E900CF709091EC00892F8A -:101CE000817090FD80E8C82B1092E9008091E80097 -:101CF00083FD0E940E0DCF70C093E900CF9108952F -:101D000090936901809368010895E0916801F091D2 -:101D10006901309721F00190F081E02D099480E075 -:101D20000895E0916801F0916901309721F00280F7 -:101D3000F381E02D09940895E0916801F091690123 -:101D4000309721F00480F581E02D099408952091C9 -:101D50006601309167012817390771F09093670188 -:101D600080936601E0916801F0916901309721F05C -:101D70000680F781E02D0994089520916401309147 -:101D800065012817390771F090936501809364010C -:101D9000E0916801F0916901309721F00084F185AC -:101DA000E02D0994089508950C94D30E0E94911A81 -:101DB0000E943A040C94571BCF92DF92EF92FF924D -:101DC0000F931F93CF93DF93CDB7DEB72B970FB64B -:101DD000F894DEBF0FBECDBF0E9457048BE6C82E1D -:101DE00081E0D82E00E010E0E02E802F0E94510507 -:101DF000F60141916F01F82EF426B1F40F5F1F4FE9 -:101E00000E30110589F78FEF89838A831B820E9428 -:101E10009A1A8160782F9D838C8349815A816B81C6 -:101E20008D810E947F0F40C09091CC0191FF04C032 -:101E30008B870E9457058B8520E030E04F2D50E0C6 -:101E4000922FBA01022E02C0759567950A94E2F7A7 -:101E500060FF24C02E83EF8221E030E0690102C0E0 -:101E6000CC0CDD1C9A95E2F790E08C219D21892B0A -:101E700009F420E028870E949A1A8160782F9A87B7 -:101E800089874E815F8168858A850E947F0FF8016E -:101E9000E559FE4F8081C826C08206C02F5F3F4FA4 -:101EA0002630310569F6AACF0E943E1E0E94850E9B -:101EB00090916A018917A1F00E94850E80936A01B2 -:101EC0002B960FB6F894DEBF0FBECDBFDF91CF913A -:101ED0001F910F91FF90EF90DF90CF900C947B07B4 -:101EE0002B960FB6F894DEBF0FBECDBFDF91CF911A -:101EF0001F910F91FF90EF90DF90CF900895CF93B7 -:101F0000DF93CDB7DEB72B970FB6F894DEBF0FBEC9 -:101F1000CDBF4F83588769877A878B87DE011196FB -:101F200086E0FD0111928A95E9F785E0FE0137967A -:101F300001900D928A95E1F749815A816B817C81EC -:101F40008D819E810E9482162B960FB6F894DEBF7B -:101F50000FBECDBFDF91CF910895CF93C82F8823B7 -:101F600009F4C1C0823859F40E94850E81FDBBC0BE -:101F700089E30E941F190E94D71989E30CC0833896 -:101F800079F40E94850E80FDAEC083E50E941F1982 -:101F90000E94D71983E50E945E19CF910C94D7193E -:101FA000843859F40E94850E82FD9DC087E40E940A -:101FB0001F190E94D71987E4EECF8CEF8C0F813A5E -:101FC00048F48C2F0E947E2081118DC08C2F0E949E -:101FD0001F19E3CF80E28C0F883048F4C77081E08E -:101FE00001C0880FCA95EAF70E94A019D6CF8BE5E9 -:101FF0008C0F833078F4C53A29F0C63A31F083E883 -:1020000090E005C081E890E002C082E890E0CF91C6 -:102010000C94A70E88E58C0F833108F064C0C83A91 -:1020200039F1C93A41F1CA3A49F1CB3A51F1CC3AC6 -:1020300059F1CD3A61F1C03B69F1CE3A71F1CF3A35 -:1020400079F1C13B81F1C23B89F1C33B91F1C43BC2 -:1020500099F1C53BA1F1C63BA9F1C73BB1F1C83B22 -:10206000B9F1C93BC1F1CA3BC9F180E090E038C089 -:1020700082EE90E035C089EE90E032C08AEE90E0CA -:102080002FC085EB90E02CC086EB90E029C087EB59 -:1020900090E026C08CEC90E023C08DEC90E020C056 -:1020A00083E891E01DC08AE891E01AC082E991E0DE -:1020B00017C084E991E014C081E292E011C083E28C -:1020C00092E00EC084E292E00BC085E292E008C08C -:1020D00086E292E005C087E292E002C08AE292E0E6 -:1020E000CF910C94BD0ECF910895882309F44BC075 -:1020F000823859F40E94850E81FF45C089E30E9411 -:102100001F190E94D71989E30CC0833871F40E940B -:10211000850E80FF38C083E50E941F190E94D719E1 -:1021200083E50E945E190C94D719843859F40E94F3 -:10213000850E82FF28C087E40E941F190E94D719CC -:1021400087E4EFCF9CEF980F913A58F390E2980F05 -:10215000983050F4877091E001C0990F8A95EAF7A2 -:10216000892F0E94A619DFCF9BE5980F933020F4AA -:1021700080E090E00C94A70E885A833120F480E030 -:1021800090E00C94BD0E0895882321F00E94A019C0 -:102190000C94D7190895882321F00E94A6190C9455 -:1021A000D7190895BF92CF92DF92EF92FF920F93CB -:1021B0001F93CF93DF9300D000D000D0CDB7DEB710 -:1021C0007C0185E0F701DE01119601900D928A9560 -:1021D000E1F7F70183819481892B09F4DDC29081B5 -:1021E00081818F3F19F49F3F09F4D6C2F701028124 -:1021F000258122952F7099838A8389819A812E83E4 -:102200000E94DE18182FB92E0E94DD180E94A41714 -:10221000EB2DE295EF704E2F50E0FA01E05AFF4FA0 -:102220002E810C94C2228B2D807F9B2D9F70F92EC6 -:10223000882319F0F29480EFF822002349F0FF2060 -:1022400009F457C28F2D0E94B0190E94D71951C2AC -:10225000812F0E947510FF2009F49EC28F2D0E94CD -:10226000B61926960FB6F894DEBF0FBECDBFDF912C -:10227000CF911F910F91FF90EF90DF90CF90BF9083 -:102280000C94D7193B2D307F8B2D8F70303211F08D -:102290008295807F112319F0113021F12CC0002389 -:1022A000B9F0222309F490C1213009F08DC126969E -:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157 -:1022C0000F91FF90EF90DF90CF90BF900C94C019CA -:1022D000222319F0213009F45FC28E830E94C319B2 -:1022E0008E8186C1002321F0223008F055C26CC1D6 -:1022F000211152C27DC1002321F0222309F464C1BF -:10230000F8C1222309F474C109C28B2D86958695E4 -:10231000837019F08130D1F03FC2002321F0812F6A -:102320009B2D937002C080E090E026960FB6F89443 -:10233000DEBF0FBECDBFDF91CF911F910F91FF90F8 -:10234000EF90DF90CF90BF900C94A70E002321F068 -:10235000812F9B2D937002C080E090E026960FB6EF -:10236000F894DEBF0FBECDBFDF91CF911F910F91CB -:10237000FF90EF90DF90CF90BF900C94BD0E812F17 -:10238000002319F00E94461D02C00E94AE1D269631 -:102390000FB6F894DEBF0FBECDBFDF91CF911F9176 -:1023A0000F91FF90EF90DF90CF90BF900C94331E71 -:1023B0008B2D837009F075C00111EEC1812F8295BC -:1023C00086958770880F880F912F9F70C92ED12C0A -:1023D000E12CF12C082E04C0CC0CDD1CEE1CFF1CE3 -:1023E0000A94D2F714FF12C00FE010E020E030E0B2 -:1023F00004C0000F111F221F331F8A95D2F7C90195 -:10240000B801609570958095909503C060E070E08C -:10241000CB014B2D4695469543704230C1F060F597 -:102420006C297D298E299F29413051F126960FB6BE -:10243000F894DEBF0FBECDBFDF91CF911F910F91FA -:10244000FF90EF90DF90CF90BF900C94CB176C294A -:102450007D298E299F2926960FB6F894DEBF0FBEE0 -:10246000CDBFDF91CF911F910F91FF90EF90DF9043 -:10247000CF90BF900C94E7170E94CB17C701B6010D -:1024800026960FB6F894DEBF0FBECDBFDF91CF9179 -:102490001F910F91FF90EF90DF90CF90BF900C9421 -:1024A000AF17002319F08B2D817001C0869588230A -:1024B00009F472C1812F829586958770880F880FE5 -:1024C000912F9F70C92ED12CE12CF12C082E04C025 -:1024D000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA -:1024E0000FE010E020E030E004C0000F111F221FB9 -:1024F000331F8A95D2F7C901B80160957095809510 -:10250000909503C060E070E0CB014B2D4695469559 -:1025100043704230C1F060F56C297D298E299F29D6 -:10252000413051F126960FB6F894DEBF0FBECDBFF5 -:10253000DF91CF911F910F91FF90EF90DF90CF909F -:10254000BF900C94A5186C297D298E299F29269669 -:102550000FB6F894DEBF0FBECDBFDF91CF911F91B4 -:102560000F91FF90EF90DF90CF90BF900C94C11827 -:102570000E94A518C701B60126960FB6F894DEBFD3 -:102580000FBECDBFDF91CF911F910F91FF90EF90C4 -:10259000DF90CF90BF900C948918103FD1F118F4C0 -:1025A000103E50F4A1C0123F09F463C008F44CC0BF -:1025B000133F09F473C098C01F708B2D8F710023D7 -:1025C000A1F00E942218812F26960FB6F894DEBF44 -:1025D0000FBECDBFDF91CF911F910F91FF90EF9074 -:1025E000DF90CF90BF900C94C4100E944318812FAD -:1025F00026960FB6F894DEBF0FBECDBFDF91CF9108 -:102600001F910F91FF90EF90DF90CF90BF900C94AF -:10261000CB100023A9F02111BFC08B2D8F712696FE -:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3 -:102630000F91FF90EF90DF90CF90BF900C946818AF -:10264000223008F0A9C0E9CF0023A9F08B2D8F71AB -:1026500026960FB6F894DEBF0FBECDBFDF91CF91A7 -:102660001F910F91FF90EF90DF90CF90BF900C944F -:102670002218002359F38B2D8F7126960FB6F894EC -:10268000DEBF0FBECDBFDF91CF911F910F91FF90A5 -:10269000EF90DF90CF90BF900C944318002399F0F7 -:1026A0008B2D8F7126960FB6F894DEBF0FBECDBF6F -:1026B000DF91CF911F910F91FF90EF90DF90CF901E -:1026C000BF900C940D1826960FB6F894DEBF0FBE7F -:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1 -:1026E000CF90BF900C9403180023A9F0222309F483 -:1026F000ADCF812F26960FB6F894DEBF0FBECDBFAB -:10270000DF91CF911F910F91FF90EF90DF90CF90CD -:10271000BF900C94AD0F222309F4ADCF812F2696E4 -:102720000FB6F894DEBF0FBECDBFDF91CF911F91E2 -:102730000F91FF90EF90DF90CF90BF900C947510A9 -:102740004B2D4F70612FC7010E94BF0226960FB616 -:10275000F894DEBF0FBECDBFDF91CF911F910F91D7 -:10276000FF90EF90DF90CF90BF900C9427174B2DE8 -:102770004F70612FC70126960FB6F894DEBF0FBECB -:10278000CDBFDF91CF911F910F91FF90EF90DF9020 -:10279000CF90BF900C94180626960FB6F894DEBF23 -:1027A0000FBECDBFDF91CF911F910F91FF90EF90A2 -:1027B000DF90CF90BF9008950E94BD190E9492199A -:1027C0000E94D7190E94E31E0E94331E80E090E011 -:1027D0000E94A70E80E090E00C94BD0E0E94AD19FF -:1027E0000C94DC130E94DE18292F22952F702C30B8 -:1027F00030F42A3048F42250223078F405C02C30CE -:1028000041F02F3031F009C0803E48F0803F29F47C -:1028100006C093FB882780F9089580E0089581E041 -:102820000895CF93DF9300D000D01F92CDB7DEB7CD -:102830000F900F900F900F900F90DF91CF91089510 -:10284000CF93DF9300D000D000D0CDB7DEB726966F -:102850000FB6F894DEBF0FBECDBFDF91CF910895C4 -:102860001F93CF93DF93C091790116E080917A0195 -:10287000C81799F0D0E01C9FF0011D9FF00D1124A6 -:10288000E558FE4F40815181628173818481958139 -:102890000E9420142196C770E9CFDF91CF911F913C -:1028A00008954091AB015091AC016091AD017091E0 -:1028B000AE018091AF019091B0010C9420148091F1 -:1028C000B00182958F7009F054C08091AD018823CA -:1028D00009F44FC080917901A0917A014091AE0135 -:1028E0005091AF016091AB017091AC01B6E08A17D5 -:1028F00009F43FC090E041155105C1F17F3F11F44B -:102900006F3FA1F1B89FF001B99FF00D1124E55878 -:10291000FE4F218127132AC02081261327C0228140 -:10292000211124C0238134812417350710F421504C -:102930003109241B350B283C3105C0F42091B0012E -:102940002F7020612093B00126E0289FF001299F7D -:10295000F00D1124E058FE4F80818F7080618083DC -:102960008BEA91E00E94D2100C943014019687708B -:10297000BECF0895CF92DF92EF92FF920F931F93F5 -:10298000CF93DF93CDB7DEB762970FB6F894DEBF73 -:102990000FBECDBF8C0185E0F801DE011D960190D0 -:1029A0000D928A95E1F7D8014C9111965C9111979F -:1029B00012966C918091AE019091AF01009709F44D -:1029C00075C13091AB017091AC017F3F19F43F3F6D -:1029D00009F46CC1F801C380D480E090AD01EE2011 -:1029E00009F4BEC02091B001C816D90628F0D6015E -:1029F000A81BB90BCD0104C0809590958C0D9D1D31 -:102A0000FF24F394883C910578F0F12C207F09F0A5 -:102A1000C4C07C2DD98AC88A89890E9411148BEA86 -:102A200091E00E94D210AFC0822F807F09F045C094 -:102A3000571313C0431311C061110FC02F702061D1 -:102A40002093B0010E9451148BEA91E00E94D210B1 -:102A50008091B001F80185832EC0CD2819F15F3F28 -:102A600011F44F3FF9F0F62E61111CC080917901ED -:102A700020917A0136E0821709F45BC090E0389F1C -:102A8000F001399FF00D1124E558FE4F7181571365 -:102A900006C07081471303C07281711103C0019693 -:102AA0008770E9CFF62E662309F41CC18091B0012E -:102AB00081608093B001F12C15C1571309C04313F5 -:102AC00007C0611105C08091B001F8018583C8C0BD -:102AD0004D875E878D859E856A8B0E94F2136A8979 -:102AE0008823D1F16623C1F12091B001822F829514 -:102AF0008F7090E0029774F08091AB019091AC01DF -:102B000098878F831986DB86CA862C87CE01079625 -:102B10000E94D21086E0F801ABEAB1E001900D927C -:102B20008A95E1F70E945F140E945114FF24F394E8 -:102B3000D9C04D875E878D859E850E94DE18292F1E -:102B400022952F70223008F0C1C09F7009F0BBC0E1 -:102B5000805E883008F4C6C0C8010E94D210E6CF5B -:102B6000C816D90608F453C0F601E81BF90BCF01CB -:102B7000883C910508F450C0F12C7C2DD98AC88A74 -:102B800089890E941114EBEAF1E086E0DF011D92D1 -:102B90008A95E9F70E945114A5C0571314C0431336 -:102BA00012C0611110C08091B001F8018583C80185 -:102BB0000E94D21086E0EBEAF1E0DF011D928A95D7 -:102BC000E9F7FE2C8FC04D875E878D859E856A8BC9 -:102BD0000E94F2136A89882309F4BECF662309F4A0 -:102BE000BBCF2091B001822F82958F7090E0029729 -:102BF0000CF490CF8091AB019091AC019A838983C2 -:102C00001B82DD82CC822E83CE01019681CF8095FE -:102C100090958C0D9D1DACCFF62E662309F49CCFAC -:102C2000571333C0431331C02091B00120FD24C09D -:102C3000822F82958F70482F50E041155105E1F0A9 -:102C4000D80115962C9315974F30510549F08F5F99 -:102C5000982F9295907F822F8F70892B15968C9349 -:102C6000C8010E94D21086E0F801ABEAB1E0019001 -:102C70000D928A95E1F78ECF86E0F801ABEAB1E0DC -:102C800001900D928A95E1F72DC04D875E878D8565 -:102C90009E850E94F21381113DCF8091B001816029 -:102CA0008093B001C8010E94D2101CC0662309F4B1 -:102CB00053CF4D875E878D859E850E94F2138823B2 -:102CC00009F44ACF27CF811143CF0CC0243008F03C -:102CD00043CF9F7009F43CCFD80115969C91907F0B -:102CE00009F036CF8F2D62960FB6F894DEBF0FBE77 -:102CF000CDBFDF91CF911F910F91FF90EF90DF90AB -:102D0000CF9008951F93CF93DF93CDB7DEB72C9765 -:102D10000FB6F894DEBF0FBECDBF4F8358876987CB -:102D20007A878B879C87CE0107960E94BA148823E6 -:102D300071F08A859B85892B09F441C088858F3F76 -:102D400009F065C08F818F3F09F061C038C086E00F -:102D5000FE013796DE01119601900D928A95E1F7FA -:102D60006A857B856115710551F1FF81E885EF3F2B -:102D700011F4FF3F21F120917A0130E0C901019661 -:102D8000877099274091790150E08417950709F4DD -:102D900047C0F983EA837D836C8396E0929FD001DC -:102DA000939FB00D1124A558BE4FFE01319601909E -:102DB0000D929A95E1F780937A010E94301416E003 -:102DC0008091790190917A018917B9F1189FC0011A -:102DD000112485589E4F0E94BA14882371F1E09106 -:102DE00079011E9FF0011124E558FE4F4081518169 -:102DF00062817381848195810E9420148091790180 -:102E000090E001968770992780937901D9CF4F81FF -:102E1000588569857A858B859C850E942014CFCF43 -:102E20000E94EE1310927A0110927901EBEAF1E020 -:102E300086E0DF011D928A95E9F72C960FB6F8948B -:102E4000DEBF0FBECDBFDF91CF911F910895EF92EE -:102E5000FF920F931F93CF93DF938C01892B09F47B -:102E60006CC0F12CEE24E394E8012196F8018491E2 -:102E7000843740F4843008F051C0813081F08230D2 -:102E800019F15BC0853709F444C0A8F19CE7980F9D -:102E9000903708F052C08F770E94751041C00E5FC6 -:102EA0001F4FFE01849190E2980F983050F4877084 -:102EB000FE2D01C0FF0F8A95EAF78F2F0E94B019EF -:102EC00014C00E94AD0F2DC00E5F1F4FFE018491F4 -:102ED00090E2980F983060F48770FE2D01C0FF0FCC -:102EE0008A95EAF78F2F0E94B6190E94D71919C048 -:102EF0000E94751016C00E5F1F4FFE01C491CC23B7 -:102F000081F08FE99FE00197F1F700C00000C15008 -:102F1000F6CF0E5F1F4FFE01F49003C00E94AD0F6D -:102F20008E018F2D882309F49FCFEFE9FFE03197C1 -:102F3000F1F700C000008150F5CFDF91CF911F91D4 -:102F40000F91FF90EF90089508956093B5017093ED -:102F5000B6018093B7019093B8010C94DC130F93E2 -:102F60001F930091B5011091B6012091B7013091E6 -:102F7000B801DC01CB01802B912BA22BB32B8093CA -:102F8000B5019093B601A093B701B093B8011F911A -:102F90000F910C94DC130F931F930091B5011091C6 -:102FA000B6012091B7013091B801DC01CB0180233B -:102FB0009123A223B3238093B5019093B601A093EC -:102FC000B701B093B8011F910F910C94DC130F93CC -:102FD0001F930091B5011091B6012091B701309176 -:102FE000B801DC01CB0180279127A227B32780936A -:102FF000B5019093B601A093B701B093B8011F91AA -:103000000F910C94DC131092B1011092B201109246 -:10301000B3011092B4010C94DC1341E050E060E085 -:1030200070E004C0440F551F661F771F8A95D2F7C2 -:103030004093B1015093B2016093B3017093B40116 -:103040000C94DC1341E050E060E070E004C0440FF9 -:10305000551F661F771F8A95D2F78091B101909115 -:10306000B201A091B301B091B401482B592B6A2B46 -:103070007B2B4093B1015093B2016093B3017093E5 -:10308000B4010C94DC1341E050E060E070E004C057 -:10309000440F551F661F771F8A95D2F740955095AC -:1030A000609570958091B1019091B201A091B301AA -:1030B000B091B401482359236A237B234093B10183 -:1030C0005093B2016093B3017093B4010C94DC137C -:1030D00041E050E060E070E004C0440F551F661FFF -:1030E000771F8A95D2F78091B1019091B201A0919A -:1030F000B301B091B401482759276A277B27409331 -:10310000B1015093B2016093B3017093B4010C9478 -:10311000DC130F931F930091B1011091B201209124 -:10312000B3013091B401DC01CB01802B912BA22B98 -:10313000B32B8093B1019093B201A093B301B093EC -:10314000B4011F910F910C94DC130F931F93009106 -:10315000B1011091B2012091B3013091B401DC01B1 -:10316000CB0180239123A223B3238093B1019093B9 -:10317000B201A093B301B093B4011F910F910C94CD -:10318000DC130F931F930091B1011091B2012091B4 -:10319000B3013091B401DC01CB0180279127A22734 -:1031A000B3278093B1019093B201A093B301B09380 -:1031B000B4011F910F910C94DC130895CF92DF920C -:1031C000EF92FF920F931F93CF93DF938C01C090E8 -:1031D000B101D090B201E090B301F090B4018091C0 -:1031E000B5019091B601A091B701B091B801C82A7C -:1031F000D92AEA2AFB2ACFE1D0E0D701C6010C2E5A -:1032000004C0B695A795979587950A94D2F780FF45 -:1032100007C0B8018C2F0E943C068130910531F423 -:10322000219758F7B80180E00E943C06DF91CF91CA -:103230001F910F91FF90EF90DF90CF9008959091A4 -:103240000C019923F1F090910D019923D1F0982F61 -:103250009695969596959F3080F5E0910E01F091A8 -:103260000F01E90FF11D877021E030E0A90102C0D4 -:10327000440F551F8A95E2F7CA019181892B8183FA -:10328000089520910E0130910F01F90132969FEFC0 -:1032900040E05191851789F09F3F19F4511101C009 -:1032A000942F4F5F4E30A9F79F3F39F0F901E90F96 -:1032B000F11D97FDFA9582830895089590910C0170 -:1032C0009923F9F090910D019923D9F0982F9695B3 -:1032D000969596959F3028F5E0910E01F0910F019B -:1032E000E90FF11D877021E030E0A90102C0440F11 -:1032F000551F8A95E2F7CA018095918189238183C0 -:10330000089520910E0130910F01F9013296205F4E -:103310003F4F9081891301C010823196E217F30765 -:10332000C1F7089581E090E0E0910E01F0910F0166 -:10333000E80FF91F1082019680319105A9F70895D1 -:103340009091CB01892B8093CB010895809590912A -:10335000CB0189238093CB0108951092CB0108956E -:103360009091CA01892B8093CA010895809590910C -:10337000CA0189238093CA0108951092CA01089551 -:103380008093B90108951092B901089580910E01BA -:1033900090910F01FC0131969C01205F3F4F80E02E -:1033A000919191118F5FE217F307D1F70895E091A2 -:1033B0000E01F0910F018091CB018083E0910E010D -:1033C000F0910F0190818091CA01892B80838091B7 -:1033D000B901882361F0E0910E01F0910F01908115 -:1033E000892B80830E94C61981111092B9018091A6 -:1033F0000E0190910F010C94910ECF92DF92EF92FB -:10340000FF926C01EE24FF24C114D104E104F10405 -:1034100021F0C701B60120E101C020E0C72ED82E5F -:10342000E92EFF24C114D104E104F10419F0285F4E -:10343000C701B6016B017C0154E0F694E794D79480 -:10344000C7945A95D1F7C114D104E104F10419F0DD -:103450002C5FC701B6016B017C0142E0F694E79452 -:10346000D794C7944A95D1F7C114D104E104F1046B -:1034700019F02E5FC701B601DC01CB01B695A79507 -:1034800097958795892B8A2B8B2B09F02F5F822F9D -:10349000FF90EF90DF90CF9008958091E401843009 -:1034A00011F120E488E190E00FB6F894A89580939C -:1034B00060000FBE2093600083B7817F846083BF6C -:1034C00083B7816083BF7894889583B78E7F83BFED -:1034D0000FB6F894A8958091600088618093600091 -:1034E000109260000FBE089508950C94741ACF9343 -:1034F0000E94751A0E9457040E94741AC0E08C2F13 -:103500000E945105811104C0CF5FCE30C1F701C0C8 -:1035100081E0CF9108950E94EE130E94850E0C94D5 -:103520007B0782E084BD93E095BD9AEF97BD8093C1 -:103530006E0008952FB7F8948091CD019091CE013F -:10354000A091CF01B091D0012FBF0895CF92DF920B -:10355000EF92FF920F931F932FB7F8944091CD01F4 -:103560005091CE016091CF017091D0012FBF6A01BF -:103570007B01EE24FF248C0120E030E0C016D10650 -:10358000E206F30610F4415051099A01281B390B49 -:10359000C9011F910F91FF90EF90DF90CF90089598 -:1035A0001F920F920FB60F9211248F939F93AF9398 -:1035B000BF938091CD019091CE01A091CF01B091A8 -:1035C000D0010196A11DB11D8093CD019093CE0134 -:1035D000A093CF01B093D001BF91AF919F918F91F4 -:1035E0000F900FBE0F901F9018950E947D0BF894BE -:1035F0002FEF87EA91E6215080409040E1F700C02C -:10360000000087E090EBDC018093ED019093EE01E8 -:10361000A093EF01B093F0019CE088E10FB6F8941D -:10362000A895809360000FBE90936000FFCFEF924B -:10363000FF920F931F93CF93DF93D82FC0E08C2F6F -:103640000E94510500E010E0E82EF12CC701002E89 -:1036500002C0959587950A94E2F780FD06C00F5F3A -:103660001F4F0630110591F709C0602F7C2F80E0B5 -:103670000E9419068D13F3CF81E004C0CF5FCE30D6 -:10368000F1F680E0DF91CF911F910F91FF90EF90C5 -:103690000895CF93C82F8CE20E94171B882321F036 -:1036A0008C2FCF910C94171B80E0CF910895CF936E -:1036B0000E949E1C811102C00E94841CC5E6C1505C -:1036C00049F00E9457048FE39CE90197F1F700C08D -:1036D0000000F5CF89E20E94491B811113C18AE2E3 -:1036E0000E94491B81110E94841C85E00E94491B95 -:1036F00081110E94F51A0E94A91C8093CC0187E0D9 -:103700000E94491B8823A9F18BE10E94491B882351 -:1037100051F08091CC0181FB222720F991E0922782 -:1037200090FB81F90EC08EE00E94491B882361F056 -:103730008091CC0182FB222720F991E0922790FB17 -:1037400082F98093CC0115C080E10E94491B9091C1 -:10375000CC01882341F093FB222720F981E08227C6 -:1037600080FB93F904C0892F809580FB90F990939A -:10377000CC018091CC010E94AD1C0E94BB1C8093A7 -:10378000DE0180EE0E94491B882341F08091DE011A -:10379000982F909590FB80F98093DE0189E30E9439 -:1037A000491B882359F08091DE0181FB222720F9F3 -:1037B00091E0922790FB81F98093DE0182EE0E94D6 -:1037C000491B882359F08091DE0182FB222720F9D2 -:1037D00091E0922790FB82F98093DE0186EE0E94B1 -:1037E000491B882359F08091DE0183FB222720F9B1 -:1037F00091E0922790FB83F98093DE0183EE0E9493 -:10380000491B882359F08091DE0184FB222720F98F -:1038100091E0922790FB84F98093DE0185E30E947A -:10382000491B882359F08091DE0185FB222720F96E -:1038300091E0922790FB85F98093DE0181E30E945D -:10384000491B882359F08091DE0186FB222720F94D -:1038500091E0922790FB86F98093DE0181E10E943E -:10386000491B882359F08091DE0187FB222720F92C -:1038700091E0922790FB87F98093DE018091DE0131 -:103880000E94BF1C8091DE0187FB882780F980930E -:103890000D0187E20E94491BC82F8EE10E94491B3F -:1038A0008111C2608FE10E94491B8111C46080E2D6 -:1038B0000E94491B8111C86081E20E94491B81114D -:1038C000C06182E20E94491B8111C06283E20E94B2 -:1038D000491B8111C06484E20E94491B882311F0B6 -:1038E000C06802C0CC2329F08C2F0E94B61C6C2F1C -:1038F00003C00E94B21C682F70E080E090E0CF917E -:103900000C94A517CF9108956DEE7EEF80E090E0C6 -:103910000E94F82260E082E090E00E94EA2260E0EB -:1039200083E090E00E94EA2260E084E090E00E9460 -:10393000EA2260E085E090E00C94EA2280E090E0EA -:103940000E94E42221E08D3E9E4F09F020E0822F6C -:10395000089582E090E00C94DC22682F82E090E0F1 -:103960000C94EA2283E090E00C94DC22682F83E040 -:1039700090E00C94EA2284E090E00C94DC22682F22 -:1039800084E090E00C94EA228091D30180FF0BC088 -:103990006091130185E0689FB001112475956795CA -:1039A000759567952BC081FF09C06091130185E073 -:1039B000689FB00111247595679520C082FF07C0EC -:1039C0006091130185E0689FB001112417C09091A8 -:1039D000D4019923D1F060911201961788F72091B4 -:1039E000130185E0289F90011124929FA001939FCD -:1039F000500D112470E0CA010E94AE22603871059A -:103A000040F46115710519F406C065E070E0862F79 -:103A100008958FE7089581E008958091D30180FF94 -:103A200008C06091110170E075956795759567956F -:103A300021C081FF06C06091110170E07595679506 -:103A400019C082FF04C06091110170E010C0909114 -:103A5000D401992399F0609110019617A0F78091F5 -:103A60001101899FC001112470E00E94AE226038CC -:103A7000710540F46115710519F406C061E070E04C -:103A8000862F08958FE7089581E00895803F21F4FF -:103A90000E94C41C819504C0813F29F40E94C41C6B -:103AA0008093D7010895823F21F40E94C41C819520 -:103AB00004C0833F29F40E94C41C8093D60108955A -:103AC000893F19F40E940D1D05C08A3F31F40E9400 -:103AD0000D1D81958093D80108958B3F21F40E949C -:103AE0000D1D819504C08C3F29F40E940D1D80930B -:103AF000D9010895843F21F48091D501816017C0D8 -:103B0000853F21F48091D501826011C0863F21F468 -:103B10008091D50184600BC0873F21F48091D5014D -:103B2000886005C0883F31F48091D5018061809321 -:103B3000D50108958D3F21F48091D30181600BC0A0 -:103B40008E3F21F48091D301826005C08F3F29F41C -:103B50008091D30184608093D3010895803F39F42C -:103B60008091D70187FF6CC01092D70169C0813F57 -:103B700029F48091D7011816BCF362C09091D60148 -:103B8000823F29F497FF5CC01092D60159C0833F51 -:103B900019F41916CCF354C0893F41F48091D8012F -:103BA00018160CF04DC01092D8014AC08A3F29F473 -:103BB0008091D80187FF44C0F6CF8B3F39F48091C4 -:103BC000D90187FF3DC01092D9013AC08C3F29F43A -:103BD0008091D9011816BCF333C0843F21F4809141 -:103BE000D5018E7F17C0853F21F48091D5018D7F4F -:103BF00011C0863F21F48091D5018B7F0BC0873F98 -:103C000021F48091D501877F05C0883F31F48091F0 -:103C1000D5018F7E8093D50113C08D3F21F4809113 -:103C2000D3018E7F0BC08E3F21F48091D3018D7F15 -:103C300005C08F3F29F48091D3018B7F8093D301FE -:103C40008091D60181110EC08091D70181110AC0E7 -:103C50008091D801811106C08091D901811102C0E3 -:103C60001092D401089585ED91E00E949C0E0E946F -:103C70009A1A9093D2018093D10108951F93CF9304 -:103C8000DF938091D1019091D2010E94A61AAC01DC -:103C90009091D401992321F02091140130E006C0C5 -:103CA000209115018AE0289F9001112442175307A3 -:103CB00008F485C08091D601C091D701D091D80178 -:103CC0001091D901811107C0C11175C0D11173C004 -:103CD000111171C074C09F3F19F09F5F9093D40180 -:103CE000181624F40E94C41C8093D6018091D6013A -:103CF00087FF05C00E94C41C81958093D6011C16C5 -:103D000024F40E94C41C8093D7018091D70187FFBF -:103D100005C00E94C41C81958093D7016091D60193 -:103D2000662331F1C091D701CC2311F1062E000C8E -:103D3000770B880B990B0E94B52123E333E343E310 -:103D40005FE30E9419220E947D216093D6016C2FAF -:103D5000CC0F770B880B990B0E94B52123E333E33B -:103D600043E35FE30E9419220E947D216093D70103 -:103D70001D1624F40E940D1D8093D8018091D80156 -:103D800087FF05C00E940D1D81958093D8011116F3 -:103D900024F40E940D1D8093D9018091D90187FFE1 -:103DA00005C00E940D1D81958093D901DF91CF91AF -:103DB0001F910C94331E9F3F09F08FCFA0CFDF914E -:103DC000CF911F910895E5EDF1E085E0DF011D92AF -:103DD0008A95E9F71092D4011092D30108958330A7 -:103DE00081F128F4813059F08230D1F00895853086 -:103DF00009F449C0B8F1863009F456C0089580919D -:103E00001501262F30E0280F311D2F3F310524F4F6 -:103E1000680F6093150108958FEF80931501089541 -:103E200080911401262F30E0280F311D2F3F3105DE -:103E300024F4680F6093140108958FEF80931401A8 -:103E4000089580911301262F30E0280F311D2F3F58 -:103E5000310524F4680F6093130108958FEF809368 -:103E60001301089580911201262F30E0280F311D93 -:103E70002F3F310524F4680F6093120108958FEFEE -:103E800080931201089580911101262F30E0280FB0 -:103E9000311D2F3F310524F4680F609311010895FF -:103EA0008FEF80931101089580911001262F30E04B -:103EB000280F311D2F3F310524F4680F6093100146 -:103EC00008958FEF809310010895833011F128F445 -:103ED000813049F0823091F00895853081F120F1F0 -:103EE0008630C1F1089580911501681720F4861B72 -:103EF0008093150108951092150108958091140181 -:103F0000681720F4861B8093140108951092140101 -:103F1000089580911301681720F4861B8093130184 -:103F2000089510921301089580911201681720F4EA -:103F3000861B8093120108951092120108958091BA -:103F40001101681720F4861B8093110108951092C7 -:103F50001101089580911001681720F4861B809349 -:103F6000100108951092100108950F931F938D3141 -:103F700009F46BC008F03FC08E3009F47DC0C0F476 -:103F8000873009F46EC068F4863009F0AFC08091C4 -:103F9000CC01817F8E7F8093CC0181E08093DB0117 -:103FA000A6C0883009F458C08B3009F49BC09EC06D -:103FB000863109F497C078F4803109F470C08131FA -:103FC00009F094C00E94EE1390910D0181E08927C1 -:103FD00080930D0187C0893109F484C08B3109F0C9 -:103FE00085C08091CC0181FB222720F991E09227A6 -:103FF00090FB81F94AC0853309F45BC048F48732ED -:1040000009F457C008F45AC0893209F452C06EC08E -:10401000833438F48A3308F067C0883309F462C007 -:1040200065C0833409F445C0883409F05FC00E943C -:10403000EE130FEF13ED20E3015010402040E1F7A5 -:1040400000C000000E94F51A4DC00E9437210E9456 -:10405000850E0E947B0746C00E94A91C0E94BB1CC3 -:1040600041C09091CC01892F817090FF12C0917F47 -:104070009E7F9093CC013BC08091CC0182FB222794 -:1040800020F991E0922790FB82F98093CC0199234B -:1040900049F18091CC0181608093CC0123C0809153 -:1040A000CC0183FB222720F991E0922790FB83F932 -:1040B000ECCF61E070E080E090E010C08D5141E015 -:1040C00050E060E070E08A019B0104C0000F111F06 -:1040D000221F331F8A95D2F7C901B8010E94A51784 -:1040E0000E94EE1381E003C08953E9CF80E01F9165 -:1040F0000F91089580E008950C947A20CF93C82FF3 -:104100008091DB01813079F018F08230E9F187C0CD -:10411000E0910E01F0910F018081813169F08232CE -:1041200009F07FC009C0E0910E01F0910F0180817C -:10413000813111F0823261F48C2F0E947C20811138 -:1041400004C08C2F0E94B51F1DC081E090E01AC0F2 -:104150008C2F0E947A20811114C0C43179F048F468 -:10416000CB3079F0C03109F060C082E08093DB0190 -:1041700008C0C93219F0C83321F057C01092DB01D2 -:1041800054C081E0817053C0C93289F118F5C4313F -:1041900071F1A8F4C73009F046C08AE08093150198 -:1041A00094E19093140193E0909313018093120192 -:1041B00088E08093110188E28093100134C0CE51D1 -:1041C000C63088F5EC2FF0E0E65DFE4F80818093ED -:1041D000DA0129C0CE34E9F020F4CB3421F56AE0CD -:1041E00013C0C13579F0C235F1F461E00DC08091A2 -:1041F000DA01882319F01092DA0115C081E080936A -:10420000DB0115C061E006C08091DA010E94EF1E5B -:104210000AC06AE08091DA010E94651F04C0109212 -:10422000DB0180E004C081E002C080E0ABCFCF9131 -:104230000895E1E8F0E0808188608083808181607A -:1042400080838FB7F89493E09093890090ED9093DA -:1042500088008FBF0895EFE6F0E080818260808360 -:104260000895EFE6F0E080818D7F80830895EFE68A -:10427000F0E0908182E08927808308951F920F9259 -:104280000FB60F9211242F933F934F935F936F9329 -:104290007F938F939F93AF93BF93EF93FF938091FF -:1042A000DC019091DD0101969093DD018093DC01AA -:1042B000811103C082E00E947B07E091DD01E69559 -:1042C000E695F0E0E555FB4FE4918091DC018E131B -:1042D00003C080E00E947B07FF91EF91BF91AF91F7 -:1042E0009F918F917F916F915F914F913F912F910E -:1042F0000F900FBE0F901F9018950E948421689414 -:10430000B1110C94132208950E94F82188F09F5750 -:1043100098F0B92F9927B751B0F0E1F0660F771FE9 -:10432000881F991F1AF0BA95C9F714C0B13091F0DF -:104330000E941222B1E008950C941222672F782F68 -:104340008827B85F39F0B93FCCF3869577956795A4 -:10435000B395D9F73EF490958095709561957F4F10 -:104360008F4F9F4F0895E89409C097FB3EF49095B6 -:104370008095709561957F4F8F4F9F4F9923A9F03E -:10438000F92F96E9BB279395F695879577956795CD -:10439000B795F111F8CFFAF4BB0F11F460FF1BC011 -:1043A0006F5F7F4F8F4F9F4F16C0882311F096E9A4 -:1043B00011C0772321F09EE8872F762F05C0662352 -:1043C00071F096E8862F70E060E02AF09A95660F0B -:1043D000771F881FDAF7880F9695879597F90895C4 -:1043E00057FD9058440F551F59F05F3F71F04795A6 -:1043F000880F97FB991F61F09F3F79F0879508958B -:10440000121613061406551FF2CF4695F1DF08C0A9 -:10441000161617061806991FF1CF869571056105C6 -:1044200008940895E894BB2766277727CB0197F96E -:1044300008950E942C220C949D220E948F2238F015 -:104440000E94962220F0952311F00C9486220C9461 -:104450008C2211240C9413220E94F02170F3959F5A -:10446000C1F3950F50E0551F629FF001729FBB276B -:10447000F00DB11D639FAA27F00DB11DAA1F649F07 -:104480006627B00DA11D661F829F2227B00DA11DBA -:10449000621F739FB00DA11D621F839FA00D611D40 -:1044A000221F749F3327A00D611D231F849F600D61 -:1044B000211D822F762F6A2F11249F5750409AF08A -:1044C000F1F088234AF0EE0FFF1FBB1F661F771F16 -:1044D000881F91505040A9F79E3F510580F00C94E1 -:1044E00086220C9413225F3FE4F3983ED4F3869522 -:1044F00077956795B795F795E7959F5FC1F7FE2B81 -:10450000880F911D9695879597F9089597F99F675C -:1045100080E870E060E008959FEF80EC089500244B -:104520000A941616170618060906089500240A9418 -:1045300012161306140605060895092E0394000C9E -:1045400011F4882352F0BB0F40F4BF2B11F460FF2D -:1045500004C06F5F7F4F8F4F9F4F089597FB072ECB -:1045600016F4009407D077FD09D00E94C82207FCFA -:1045700005D03EF4909581959F4F08957095619573 -:104580007F4F0895EE0FFF1F0590F491E02D0994E1 -:10459000AA1BBB1B51E107C0AA1FBB1FA617B70769 -:1045A00010F0A61BB70B881F991F5A95A9F7809585 -:1045B0009095BC01CD010895F999FECF92BD81BDC2 -:1045C000F89A992780B50895A8E1B0E042E050E05C -:1045D0000C94FF22262FF999FECF1FBA92BD81BD00 -:1045E00020BD0FB6F894FA9AF99A0FBE0196089575 -:1045F0000E94EA22272F0C94EB22DC01CB01FC0164 -:10460000F999FECF06C0F2BDE1BDF89A319600B42B -:0E4610000D9241505040B8F70895F894FFCF36 -:10461E0020027C070C08E707B3077F070101BA01E8 -:10462E0028080A03140A3F4D36396C041F04E903A7 -:10463E00B00343035C0375038E03010203040506F6 -:04464E000708090050 +:1000F00001040204015B025B02E2000000F0A1F0D7 +:10010000A2F0A329002B00E300E100E00000001EA4 +:1001100000140004001D7406014E001F001A001692 +:10012000001B0019012A00200008000700060050EB +:10013000002C0021001500090019004F004B00227F +:100140000017000A0005000000C30023002F000074 +:10015000004A0000003E002400300000004D000076 +:10016000003B0025001C000B0011000000C200260F +:100170000018000D0010005100490027000C000E6F +:10018000003600520028002D0012000F003700003A +:100190007FC1002E0013003300380035004C002AC8 +:1001A0000031003400E500E400000001000100011E +:1001B000000100010000003A001E0220022202039A +:1001C0003001003B001F0221022302010001003C1C +:1001D000002F0226022F00010001003D00300227FF +:1001E000023000010001003E0031023500350200FE +:1001F0000001003F0001000000010000000100407C +:100200000001000000010000000100410052005107 +:10021000002402000001004200240021001E000111 +:100220000001004300250022001F003700010044A8 +:100230000026002300200027000100450025022E93 +:100240000231002E004C0546000100010001003D76 +:100250000400000050010001000100010000000145 +:10026000000100010001000100010001000100F295 +:10027000000100010001000100F000F1000100F4A4 +:1002800000010001000100F3000100F50001000180 +:100290000001000100010000000100010001000058 +:1002A0000001000000010001000100000001000049 +:1002B0000001000100010001000100000001000137 +:1002C00000010001000100AA00010001000100017D +:1002D00000AC00A900B600010001000100AB00A8BD +:1002E0000001000100010001000100010001000106 +:1002F000000100AE00010001000000E200E200E2A7 +:1003000000E200E20000005900010004000100E2E8 +:100310000001005A00010001000100E200E2005B60 +:10032000000800070006000100E2005C000100096F +:10033000000100010001005D000100010005000056 +:100340000001005E00010000000100000001005FEC +:100350000001000000010000000100600001000138 +:100360000001000000010061005F005C00590062B4 +:10037000000100620060005D005A006200E2005768 +:100380000061005E005B006200E20057005700570A +:1003900000570057000100010001000100010001A9 +:1003A00000000016034500720067006F0044006FF4 +:1003B000007800200045005A000000160345007236 +:1003C0000067006F0044006F007800200045005A6D +:1003D0000000000403090409026D00040100A0FAF2 +:1003E000090400000103010100092111010001229B +:1003F0003F000705810308000A0904010001030109 +:100400000200092111010001224D000705820308A5 +:10041000000A090402000103000000092111010083 +:10042000012236000705830308000A0904030001BE +:100430000300000009211101000122390007058491 +:10044000031000011201100100000008EDFE071367 +:1004500001000102000105010906A101050719E0DB +:1004600029E7150025019508750181020508190184 +:1004700029059505750191029501750391010507FF +:100480001900297715002501957875018102C005AD +:10049000010980A101850216010026B7001A01009A +:1004A0002AB700751095018100C0050C0901A10152 +:1004B0008503160100269C021A01002A9C02751071 +:1004C00095018100C005010902A1010901A10005F2 +:1004D0000919012905150025019505750181029568 +:1004E00001750381010501093009311581257F95C9 +:1004F000027508810609381581257F9501750881E7 +:1005000006050C0A38021581257F950175088106BC +:10051000C0C005010906A101050719E029E715007A +:10052000250195087501810295017508810105086D +:100530001901290595057501910295017503910130 +:100540000507190029FF150025FF9506750881008C +:10055000C0000000000000000000000001020406CE +:100560000A0F17202C3A4A5D71879DB3C7DAE9F567 +:10057000FCFFFCF5E9DAC7B39D87715D4A3A2C2090 +:10058000170F0A060402010000000000000000002E +:10059000000011241FBECFEFDAE0DEBFCDBF04B6EE +:1005A00003FE27C08091ED019091EE01A091EF0133 +:1005B000B091F0018730904BA740B04BD1F410922E +:1005C000ED011092EE011092EF011092F00114BEB5 +:1005D00084B7877F84BF0FB6F894A8958091600098 +:1005E000886180936000109260000FBEE0E0FFE33E +:1005F000099511E0A0E0B1E0E2EAF6E402C005905E +:100600000D92A433B107D9F721E0A4E3B1E001C012 +:100610001D92AD3EB207E1F70E9481090C944F2371 +:100620000C940000CF93DF93EC01662319F0633044 +:1006300059F00DC08A81882321F085EE0E94EF0FCA +:1006400003C085EE0E94B7108A81811103C080E04B +:1006500090E002C080EE90E0DF91CF910895089580 +:100660006091B1017091B2018091B3019091B40198 +:100670000E943F1A56985E9825982D9826982E9895 +:1006800027982F98823039F0833041F0813041F43F +:10069000259A2D9A0895269A2E9A0895279A2F9A88 +:1006A00008950C94300356985E9825982D982698B6 +:1006B0002E9827982F988FEF90E090938900809341 +:1006C000880090938B0080938A0090938D00809394 +:1006D0008C00259A2D9A2FEF80E792E021508040E0 +:1006E0009040E1F700C00000269A2E9A2FEF80E795 +:1006F00092E0215080409040E1F700C00000279A2E +:100700002F9A2FEF80E792E0215080409040E1F750 +:1007100000C0000025982D982FEF80E792E021502F +:1007200080409040E1F700C0000026982E982FEFFF +:1007300080E792E0215080409040E1F700C0000047 +:1007400027982F9856985E9825982D9826982E9839 +:1007500027982F98089589EA8093800089E08093F4 +:10076000810024982C983F988AB18F748AB96E982A +:10077000479A8BB1806B8BB9769A0E9453030C9485 +:100780002F0380E2809300018091340181110EC01B +:100790000E94100481E0809334012FEF83ED90E3F9 +:1007A000215080409040E1F700C0000080E40E94AA +:1007B00016048093000181112EC00E944004809392 +:1007C0000001811128C00E94400480930001811122 +:1007D00022C08FE30E9440048093000181111BC05E +:1007E0000E94380480E40E94160480930001811165 +:1007F00012C08CE00E9440048093000181110BC064 +:100800000E94400480930001811105C08FE30E9483 +:100810004004809300010E943804809100010895F3 +:100820001092B9008AE08093B800089594EA9093FA +:10083000BC009091BC0097FFFCCF9091B900987FCD +:10084000983021F0903111F081E008958093BB0041 +:1008500084E88093BC008091BC0087FFFCCF80912E +:10086000B900887F883111F0803471F780E00895F5 +:1008700084E98093BC008091BC0084FDFCCF089586 +:100880008093BB0084E88093BC008091BC0087FF0C +:10089000FCCF9091B900987F81E0983209F480E014 +:1008A000089584E88093BC008091BC0087FFFCCF52 +:1008B0008091BB00089580910001811115C080E4F2 +:1008C0000E9416048093000181110CC082E10E94F5 +:1008D000400480930001811105C08FEF0E94400405 +:1008E000809300010E94380484B1807F84B985B16F +:1008F000807F85B98AB1837F8AB98BB1837F8BB9B9 +:100900003E98469808950E94C103809300010E947A +:100910005B0480B38C7080BB81B3836F81BBE4E4E4 +:10092000F1E0A6E3B1E011921D9281E0E235F80713 +:10093000D1F70C94AB039F92AF92BF92CF92DF920C +:10094000EF92FF920F931F93CF93DF93809100015B +:10095000882379F0809135018F5F80933501811173 +:1009600008C00E94C10380930001811102C00E944F +:10097000530386E3E82E81E0F82E8701C0E0D0E043 +:10098000BB24B39492E0A92ECC24C394D12CC730BD +:10099000D10500F580910001811164C080E40E94BE +:1009A000160480930001811112C082E10E9440046C +:1009B0008093000181110BC0C6010C2E01C0880F6D +:1009C0000A94EAF780950E944004809300010E94F7 +:1009D000380448C0CA30A1F028F4C83059F0C930F2 +:1009E00061F005C0CC3089F070F0CD3089F0209AEC +:1009F000289810C0219A29980DC0229A2A980AC0D6 +:100A0000239A2B9807C0529A01C0539A5B9802C050 +:100A10003E9A4698E0EAEA95F1F78FB181708B250E +:100A2000799902C032E001C030E0832B7C9902C08A +:100A300034E001C030E0832B7D9902C028E001C082 +:100A400020E0822B7E9902C090E101C090E0892BCA +:100A50009FB19095991F9927991F9295990F907E14 +:100A6000892B0FC08091000181114AC080E40E944F +:100A7000160480930001882381F1912C0E94380490 +:100A8000892DD8019C91981719F08C93A09201019F +:100A90000E945B0421960F5F1F4FCE30D10509F0F5 +:100AA00076CF80910101882369F181508093010103 +:100AB000882339F0EFE9FFE03197F1F700C000003B +:100AC00021C0E4E4F1E0D7018D917D018193B4E48C +:100AD000EB16B1E0FB06B9F715C083E10E944004B4 +:100AE000809300018111C9CF81E40E941604809394 +:100AF00000018111C2CF0E945104982E9094BECF64 +:100B000080E0BFCF0E94510381E0DF91CF911F9120 +:100B10000F91FF90EF90DF90CF90BF90AF909F909C +:100B20000895E82FF0E0EC5BFE4F80810895089572 +:100B30008B3B910580F4883A910548F5853A9105FB +:100B4000D8F48430910508F0B2C0019709F06EC066 +:100B500081E090E00895803E910508F467C0883EEA +:100B6000910508F4A4C09C01205F310920313105B2 +:100B700008F05CC090650895853A910509F459C064 +:100B8000863A910509F058C082E890E40895883AC1 +:100B9000910509F454C0893A910509F453C08A3A81 +:100BA000910509F452C08B3A910509F451C08C3A71 +:100BB000910509F450C08D3A910509F44FC0803B6E +:100BC000910509F44EC08E3A910509F44DC08F3A53 +:100BD000910509F44CC0813B910509F44BC0823B5F +:100BE000910509F44AC0833B910509F449C0843B4F +:100BF000910509F448C0853B910509F447C0863B3F +:100C0000910509F446C0873B910509F445C0883B2E +:100C1000910509F444C0893B910509F443C08A3B1E +:100C2000910509F442C080E094E4089580E090E0EA +:100C3000089581E890E4089583E890E4089582EEB1 +:100C400094E4089589EE94E408958AEE94E4089576 +:100C500085EB94E4089586EB94E4089587EB94E49F +:100C600008958CEC94E408958DEC94E4089583E861 +:100C700095E408958AE895E4089582E995E4089555 +:100C800084E995E4089581E296E4089583E296E488 +:100C9000089584E296E4089585E296E4089586E254 +:100CA00096E4089587E296E408958AE296E408952A +:100CB000089524E5829FC0011124FC0126E0729F63 +:100CC000E00DF11D1124E60FF11DEE0FFF1FED5F8A +:100CD000FE4F859194910895880F991FFC01E55866 +:100CE000F040859194910895880F991FFC01E5507B +:100CF000FF4F85919491089524E5829FC0011124AE +:100D0000FC0146E0749FE00DF11D1124E60FF11D7A +:100D1000EE0FFF1FED5FFE4F859194919C013A9578 +:100D200021154FE1340708F425C13F512115304109 +:100D300020F49F700E94740608959C013053211581 +:100D4000304118F49927906C0895811520E5920799 +:100D500069F40E9430144FEF84E39CE041508040DE +:100D60009040E1F700C000000C94371B813020E573 +:100D7000920731F48091CC0181608093CC01089579 +:100D80009C0130552115304108F05CC0292F3327D4 +:100D90002F70332721303105E9F4AC0164E0440FB2 +:100DA000551F6A95E1F744275370BC01637077279C +:100DB00002C0220F331F6A95E2F73C68242B352BC3 +:100DC00073E0880F991F7A95E1F780769927822B37 +:100DD000932B08952230310529F4982F8827816FAD +:100DE000906A089523303105A1F4AC0133E0440F3B +:100DF000551F3A95E1F7407E57708370992721E09F +:100E000030E002C0220F331F8A95E2F7C9019C68C7 +:100E100016C02430310531F5AC0123E0440F551FD5 +:100E20002A95E1F7407E57708370992721E030E0E2 +:100E300002C0220F331F8A95E2F7C9019A68842BFA +:100E4000952B08959C0130572115304118F49F705F +:100E5000906208959C0130582115304118F49F701C +:100E6000906A0895803E9105E0F4803C910558F524 +:100E70008133910509F46FC048F48932910509F472 +:100E800063C08A32910509F46DC072C0893391053F +:100E9000E9F082389105D1F08533910509F44DC010 +:100EA00067C0833E910581F138F4803E9105B9F029 +:100EB000823E9105D9F05CC0863E910561F1873E86 +:100EC0009105A1F155C00E946C0608952091DE01A4 +:100ED00020FD02C021FF4CC080EE90E049C080910F +:100EE000DE0180FFF9CF89E390E042C08091DE010E +:100EF00082FF0EC08091DE0184FF03C080E090E09D +:100F000037C083EE90E034C08091DE0182FFF2CFE3 +:100F100082EE90E02DC08091DE0183FF0BC08091B6 +:100F2000DE0184FDEBCF87EE90E022C08091DE01F0 +:100F300083FFF5CF86EE90E01BC08091DE0185FF38 +:100F400007C089E290E014C08091DE0185FFF9CFEF +:100F500085E390E00DC08091DE0186FF07C08AE244 +:100F600090E006C08091DE0186FFF9CF81E390E03A +:100F70000E949805089508950C94BB078091620122 +:100F80000895CF93DF9300D01F92CDB7DEB79C01B9 +:100F90008091E401843019F593E099833B832A839F +:100FA0009093E9008FEF9091E800815095FD06C085 +:100FB00095ED9A95F1F700008111F5CF8091E80049 +:100FC00085FF0DC040E050E063E070E0CE01019687 +:100FD0000E942E0A8091E8008E778093E8000F909F +:100FE0000F900F90DF91CF910895CF93DF9300D0B2 +:100FF0001F92CDB7DEB72091E401243021F522E025 +:1010000029839B838A8383E08093E9008FEF90910B +:10101000E800815095FD06C095ED9A95F1F7000026 +:101020008111F5CF8091E80085FF0DC040E050E0D0 +:1010300063E070E0CE0101960E942E0A8091E800E4 +:101040008E778093E8000F900F900F90DF91CF91F3 +:1010500008959C018091E4018430F9F482E080934A +:10106000E9009FEF8091E800915085FD06C085ED75 +:101070008A95F1F700009111F5CF8091E80085FF86 +:101080000CC040E050E065E070E0C9010E942E0A0B +:101090008091E8008E778093E8000895CF93DF93E6 +:1010A000EC018091E401843009F046C090910C017C +:1010B0009923D9F090910D019923B9F08093E9001B +:1010C0008FEF9091E800815095FD06C095E19A95CB +:1010D000F1F700008111F5CF8091E80085FF2CC069 +:1010E00040E050E060E170E017C081E08093E900EB +:1010F0008FEF9091E800815095FD06C095ED9A958F +:10110000F1F700008111F5CF8091E80085FF14C050 +:1011100040E050E068E070E0CE010E942E0A80912D +:10112000E8008E778093E80080E1FE01A2E5B1E05F +:1011300001900D928A95E1F7DF91CF91089580910A +:10114000E301811109C00E94BF0B0E941C0C809119 +:10115000E20084608093E20008951092E301089514 +:1011600008950C946D210E94CD1A0E9473210E9453 +:10117000C70E0C94BC0742E061EC81E00E94380B82 +:1011800042E061EC82E00E94380B42E061EC83E0D7 +:101190000E94380B42E161EC84E00C94380B8091A2 +:1011A000E601833009F455C030F4813071F08230AB +:1011B00009F48EC008958A3009F47AC08B3009F49E +:1011C00060C0893009F09CC020C08091E501813A5F +:1011D00009F096C08091E800877F8093E8008091B5 +:1011E000E9019091EA01892B21F460E182E591E027 +:1011F00003C060E080E090E070E00E94790A809196 +:10120000E8008B778093E80008958091E5018132B2 +:1012100009F076C08091E9019091EA01009719F0F8 +:10122000039709F06DC08091E800877F8093E80004 +:101230008091E80082FD05C08091E4018111F8CF22 +:101240005FC08091F100809362018091E8008B770C +:1012500053C08091E501813A09F052C08091E901C3 +:101260009091EA01892B09F04BC08091E800877FBB +:101270008093E8008091E80080FFFCCF80910C0112 +:1012800036C08091E5018132D9F58091E9019091D4 +:10129000EA01892BA9F58091E800877F8093E80017 +:1012A0000E946D0B8091E70180930C010C94301427 +:1012B0008091E501813221F58091E800877F80935C +:1012C000E8000E946D0B8091E8018093630108950E +:1012D0008091E501813AA1F48091E800877F8093B5 +:1012E000E8008091E80080FFFCCF8091630180934B +:1012F000F1008091E8008E778093E8000C946D0BEC +:10130000089584B7877F84BF0FB6F894A89580911D +:101310006000886180936000109260000FBE90E0D2 +:1013200080E80FB6F89480936100909361000FBE3F +:101330000E94160F0E94BF0B0E941C0C8091E200BD +:1013400084608093E20078940E94A70E0E94180F98 +:1013500082E091E00E94C20E0E945B218091E40134 +:10136000853069F40E948F1A8091E2018823B1F3DD +:101370000E94B91A882391F30E94180AEFCF0E94A5 +:101380001E0FECCF292F332723303105C9F060F42D +:101390002130310581F02230310509F041C08DE660 +:1013A00090E027ED33E040C021323105E1F02232F8 +:1013B000310531F135C082E190E024E434E034C0FD +:1013C00099278130910549F028F0029749F5E3EA21 +:1013D000F3E005C0E3EDF3E002C0EBEBF3E0849152 +:1013E00090E09F0121C06430D8F4E62FF0E0EE0FCA +:1013F000FF1FEE5DFE4F2081318189E090E014C037 +:10140000643070F470E0FB01EE0FFF1FE65EFE4FEC +:1014100020813181FB01EA5EFE4F808190E004C0B3 +:1014200080E090E020E030E0FA01318320830895ED +:1014300080E189BD82E189BD09B400FEFDCF8091C4 +:10144000D8008F7D8093D8008091E00082608093E7 +:10145000E0008091E00081FDFCCF0895CF92DF9203 +:10146000EF92FF920F931F93CF93DF93EC018B01C9 +:101470006A010E948C0B811133C0C114D10439F070 +:10148000F60180819181081B190BC80FD91FE12C2F +:10149000F12C0115110519F18091E80085FD16C0A8 +:1014A0008091E8008E778093E800C114D10449F060 +:1014B000F60180819181E80EF91EF182E08285E0DB +:1014C0000FC00E948C0B882321F30AC0899180935E +:1014D000F10001501109FFEFEF1AFF0ADACF80E0A7 +:1014E000DF91CF911F910F91FF90EF90DF90CF9000 +:1014F00008952091EB013091EC012617370748F051 +:101500006115710539F42091E8002E772093E800E9 +:1015100001C0B901FC0120E06115710579F18091EC +:10152000E4018823F1F18530F1F18091E80083FD39 +:101530003CC08091E80082FD2EC08091E80080FFD1 +:10154000EBCF2091F3008091F20090E0922B611597 +:10155000710551F08830910538F421912093F10004 +:10156000615071090196F3CF21E0089709F020E05E +:101570008091E8008E778093E800CECF2111CFCF05 +:101580000AC08091E401882361F0853061F0809188 +:10159000E80083FD0AC08091E80082FFF2CF80E07E +:1015A000089582E0089583E0089581E008952091F0 +:1015B000EB013091EC012617370748F061157105F2 +:1015C00039F42091E8002E772093E80001C0B9019A +:1015D000FC0120E06115710591F18091E4018823FF +:1015E00009F440C0853009F43FC08091E80083FDD4 +:1015F0003DC08091E80082FD2FC08091E80080FF0F +:10160000E9CF2091F3008091F20090E0922B6115D8 +:10161000710559F08830910540F424912093F10030 +:101620003196615071090196F2CF21E0089709F0D7 +:1016300020E08091E8008E778093E800CBCF2111E5 +:10164000CCCF0AC08091E401882361F0853061F03D +:101650008091E80083FD0AC08091E80082FFF2CF0C +:1016600080E0089582E0089583E0089581E0089580 +:10167000982F973068F59093E900981739F070919A +:10168000EC002091ED005091F00003C0242F762F44 +:1016900050E021FD02C09F5FECCF3091EB003E7F18 +:1016A0003093EB003091ED003D7F3093ED003091B1 +:1016B000EB0031603093EB007093EC002093ED0071 +:1016C0005093F0002091EE0027FDE5CF80E00895D3 +:1016D0008F708093E90081E008958091E50187FF94 +:1016E00011C08091E80082FD05C08091E401811164 +:1016F000F8CF11C08091E8008B770BC08091E40196 +:10170000882349F08091E80080FFF8CF8091E800BD +:101710008E778093E80008952091E4003091E500F1 +:1017200095E64091EC00842F817040FF23C08091AA +:10173000E80080FD1DC08091E401882399F0853088 +:1017400099F08091EB0085FD11C04091E40050912B +:10175000E5002417350729F3915011F09A01E1CFE4 +:1017600084E0089582E0089583E0089581E008957B +:1017700080E008954091E80042FFDDCF08950E9487 +:101780002D0C0E94350CE0EEF0E0808181608083BA +:10179000E8EDF0E080818F77808319BCA7EDB0E0A1 +:1017A0008C918E7F8C9380818F7E80831092E30159 +:1017B00008950F931F93CF93DF930E942D0C0E94E7 +:1017C000350CC8EDD0E088818F7788838881806868 +:1017D000888388818F7D888319BC1092E4011092E0 +:1017E000E0011092E2011092E10100EE10E0F80138 +:1017F00080818B7F808388818160888342E060E084 +:1018000080E00E94380BE1EEF0E080818E7F8083E3 +:10181000E2EEF0E080818160808380818860808357 +:10182000F80180818E7F8083888180618883DF9149 +:10183000CF911F910F910895E8EDF0E080818F7EA8 +:101840008083E7EDF0E080818160808384E082BF67 +:1018500081E08093E3010C94D90BE8EDF0E0808106 +:101860008E7F80831092E20008951092DA00109229 +:10187000E10008951F920F920FB60F9211242F933B +:101880003F934F935F936F937F938F939F93AF9308 +:10189000BF93EF93FF938091E10082FF0BC0809193 +:1018A000E20082FF07C08091E1008B7F8093E1001E +:1018B0000E94A60E8091DA0080FF1FC08091D800A0 +:1018C00080FF1BC08091DA008E7F8093DA008091C8 +:1018D000D90080FF0DC080E189BD82E189BD09B4D6 +:1018E00000FEFDCF81E08093E4010E949F0805C0C7 +:1018F00019BC1092E4010E94AD088091E10080FFC4 +:1019000019C08091E20080FF15C08091E2008E7FB7 +:101910008093E2008091E20080618093E2008091F8 +:10192000D80080628093D80019BC85E08093E401E0 +:101930000E94B1088091E10084FF30C08091E200F4 +:1019400084FF2CC080E189BD82E189BD09B400FE1D +:10195000FDCF8091D8008F7D8093D8008091E100E9 +:101960008F7E8093E1008091E2008F7E8093E20081 +:101970008091E20081608093E2008091E001882301 +:1019800011F084E007C08091E30087FD02C081E090 +:1019900001C083E08093E4010E94B3088091E100DC +:1019A00083FF29C08091E20083FF25C08091E10080 +:1019B000877F8093E10082E08093E4011092E00150 +:1019C0008091E1008E7F8093E1008091E2008E7F24 +:1019D0008093E2008091E20080618093E20042E027 +:1019E00060E080E00E94380B8091F0008860809376 +:1019F000F0000E94B008FF91EF91BF91AF919F91CD +:101A00008F917F916F915F914F913F912F910F90A7 +:101A10000FBE0F901F9018951F920F920FB60F9246 +:101A200011242F933F934F935F936F937F938F93E3 +:101A30009F93AF93BF93CF93DF93EF93FF93C091A7 +:101A4000E900CF708091EC00D82FD17080FDD0E8F4 +:101A50001092E9008091F000877F8093F0007894E5 +:101A60000E94500D1092E9008091F00088608093F0 +:101A7000F000CD2BCF70C093E900FF91EF91DF9183 +:101A8000CF91BF91AF919F918F917F916F915F9116 +:101A90004F913F912F910F900FBE0F901F9018956F +:101AA0001F93CF93DF93CDB7DEB7AA970FB6F89405 +:101AB000DEBF0FBECDBFE5EEF1E08091F100819376 +:101AC00021E0ED3EF207C9F70E94CF088091E800BF +:101AD00083FF24C18091E5019091E601492F50E0F8 +:101AE0004A30510508F01AC1FA01EA5AFF4F0C9426 +:101AF0000423803881F0823809F010C18091E90117 +:101B00008F708093E9008091EB0085FB882780F936 +:101B10001092E90006C08091E1019091E2019111DB +:101B200082609091E800977F9093E8008093F100A5 +:101B30001092F100C8C0282F2D7F09F0EFC0882334 +:101B400019F0823061F0EAC08091E701813009F03C +:101B5000E5C0933009F080E08093E2012BC08091D2 +:101B6000E701811127C08091E9018F7009F4D6C087 +:101B70008093E9002091EB0020FF1CC0933021F4FA +:101B80008091EB00806214C09091EB009061909383 +:101B9000EB0021E030E0A90102C0440F551F8A95F7 +:101BA000E2F74093EA001092EA008091EB0088602F +:101BB0008093EB001092E9008091E800877F86C057 +:101BC0008111ACC01091E7011F778091E30080780C +:101BD000812B8093E3008091E800877F8093E80069 +:101BE0000E946D0B8091E80080FFFCCF8091E300A4 +:101BF00080688093E300111102C082E001C083E09D +:101C00008093E4018BC08058823008F087C08091B7 +:101C1000E7019091E8018C3D53E0950779F583E069 +:101C20008A838AE289834FB7F894DE01139620E015 +:101C30003EE051E2E32FF0E050935700E49120FFA3 +:101C400003C0E295EF703F5FEF708E2F90E0EA30B7 +:101C500010F0C79601C0C0968D939D932F5F2431DD +:101C600049F74FBF8091E800877F8093E8006AE2E0 +:101C700070E0CE0101960E94790A14C0AE014F5F58 +:101C80005F4F6091E9010E94C209BC01892B09F4F0 +:101C900045C09091E800977F9093E80089819A81F0 +:101CA0000E94D70A8091E8008B778093E80036C0C5 +:101CB0008038A1F58091E800877F8093E8008091CB +:101CC000E0018093F1008091E8008E778093E80036 +:101CD0000E946D0B23C0811121C08091E70190917A +:101CE000E80199270297D4F48091E800877F8093D8 +:101CF000E8008091E7018093E0010E946D0B8091E4 +:101D0000E001811106C08091E30087FD02C081E0FF +:101D100001C084E08093E4010E94BB088091E80048 +:101D200083FF0AC08091E800877F8093E80080915C +:101D3000EB0080628093EB00AA960FB6F894DEBFAA +:101D40000FBECDBFDF91CF911F9108950895CF931E +:101D50008091E4018823A1F0C091E900CF709091B7 +:101D6000EC00892F817090FD80E8C82B1092E9006B +:101D70008091E80083FD0E94500DCF70C093E90070 +:101D8000CF91089590936901809368010895E0913F +:101D90006801F0916901309721F00190F081E02D08 +:101DA000099480E00895E0916801F091690130970D +:101DB00021F00280F381E02D09940895E0916801FB +:101DC000F0916901309721F00480F581E02D0994AC +:101DD000089520916601309167012817390771F045 +:101DE0009093670180936601E0916801F091690129 +:101DF000309721F00680F781E02D09940895209115 +:101E00006401309165012817390771F090936501DD +:101E100080936401E0916801F0916901309721F0AD +:101E20000084F185E02D0994089508950C94150F10 +:101E30000E94D31A0E9483040C94991BCF92DF92C4 +:101E4000EF92FF920F931F93CF93DF93CDB7DEB73F +:101E50002B970FB6F894DEBF0FBECDBF0E949B0438 +:101E60008BE6C82E81E0D82E00E010E0E02E802F17 +:101E70000E949105F60141916F01F82EF426B1F40C +:101E80000F5F1F4F0E30110589F78FEF89838A830B +:101E90001B820E94DC1A8160782F9D838C8349818C +:101EA0005A816B818D810E94C10F40C09091CC01FD +:101EB00091FF04C08B870E9497058B8520E030E05E +:101EC0004F2D50E0922FBA01022E02C075956795F2 +:101ED0000A94E2F760FF24C02E83EF8221E030E015 +:101EE000690102C0CC0CDD1C9A95E2F790E08C21D0 +:101EF0009D21892B09F420E028870E94DC1A81604B +:101F0000782F9A8789874E815F8168858A850E94AC +:101F1000C10FF801E559FE4F8081C826C08206C076 +:101F20002F5F3F4F2630310569F6AACF0E94801EF1 +:101F30000E94C70E90916A018917A1F00E94C70EF6 +:101F400080936A012B960FB6F894DEBF0FBECDBF0B +:101F5000DF91CF911F910F91FF90EF90DF90CF9085 +:101F60000C94BC072B960FB6F894DEBF0FBECDBF06 +:101F7000DF91CF911F910F91FF90EF90DF90CF9065 +:101F80000895CF93DF93CDB7DEB72B970FB6F894B4 +:101F9000DEBF0FBECDBF4F83588769877A878B8797 +:101FA000DE01119686E0FD0111928A95E9F785E040 +:101FB000FE01379601900D928A95E1F749815A8189 +:101FC0006B817C818D819E810E94C4162B960FB6F9 +:101FD000F894DEBF0FBECDBFDF91CF910895CF93B0 +:101FE000C82F882309F4C1C0823859F40E94C70E53 +:101FF00081FDBBC089E30E9461190E94191A89E31F +:102000000CC0833879F40E94C70E80FDAEC083E512 +:102010000E9461190E94191A83E50E94A019CF91AC +:102020000C94191A843859F40E94C70E82FD9DC081 +:1020300087E40E9461190E94191A87E4EECF8CEFA1 +:102040008C0F813A48F48C2F0E94C02081118DC0E2 +:102050008C2F0E946119E3CF80E28C0F883048F406 +:10206000C77081E001C0880FCA95EAF70E94E219A3 +:10207000D6CF8BE58C0F833078F4C53A29F0C63A79 +:1020800031F083E890E005C081E890E002C082E88A +:1020900090E0CF910C94E90E88E58C0F833108F025 +:1020A00064C0C83A39F1C93A41F1CA3A49F1CB3A68 +:1020B00051F1CC3A59F1CD3A61F1C03B69F1CE3AD8 +:1020C00071F1CF3A79F1C13B81F1C23B89F1C33B58 +:1020D00091F1C43B99F1C53BA1F1C63BA9F1C73BC6 +:1020E000B1F1C83BB9F1C93BC1F1CA3BC9F180E0CC +:1020F00090E038C082EE90E035C089EE90E032C0CA +:102100008AEE90E02FC085EB90E02CC086EB90E04B +:1021100029C087EB90E026C08CEC90E023C08DECCA +:1021200090E020C083E891E01DC08AE891E01AC0E9 +:1021300082E991E017C084E991E014C081E292E065 +:1021400011C083E292E00EC084E292E00BC085E20F +:1021500092E008C086E292E005C087E292E002C009 +:102160008AE292E0CF910C94FF0ECF9108958823DC +:1021700009F44BC0823859F40E94C70E81FF45C054 +:1021800089E30E9461190E94191A89E30CC08338FF +:1021900071F40E94C70E80FF38C083E50E94611968 +:1021A0000E94191A83E50E94A0190C94191A843808 +:1021B00059F40E94C70E82FF28C087E40E9461196B +:1021C0000E94191A87E4EFCF9CEF980F913A58F3C9 +:1021D00090E2980F983050F4877091E001C0990F09 +:1021E0008A95EAF7892F0E94E819DFCF9BE5980FBF +:1021F000933020F480E090E00C94E90E885A83310B +:1022000020F480E090E00C94FF0E0895882321F0E4 +:102210000E94E2190C94191A0895882321F00E9453 +:10222000E8190C94191A0895BF92CF92DF92EF9299 +:10223000FF920F931F93CF93DF9300D000D000D075 +:10224000CDB7DEB77C0185E0F701DE011196019084 +:102250000D928A95E1F7F70183819481892B09F426 +:10226000DDC2908181818F3F19F49F3F09F4D6C26E +:10227000F7010281258122952F7099838A838981B4 +:102280009A812E830E942019182FB92E0E941F199F +:102290000E94E617EB2DE295EF704E2F50E0FA0109 +:1022A000E05AFF4F2E810C9404238B2D807F9B2DB1 +:1022B0009F70F92E882319F0F29480EFF822002302 +:1022C00049F0FF2009F457C28F2D0E94F2190E9495 +:1022D000191A51C2812F0E94B710FF2009F49EC223 +:1022E0008F2D0E94F81926960FB6F894DEBF0FBE08 +:1022F000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10230000CF90BF900C94191A3B2D307F8B2D8F707E +:10231000303211F08295807F112319F0113021F1B4 +:102320002CC00023B9F0222309F490C1213009F018 +:102330008DC126960FB6F894DEBF0FBECDBFDF91DC +:10234000CF911F910F91FF90EF90DF90CF90BF90B2 +:102350000C94021A222319F0213009F45FC28E83F3 +:102360000E94051A8E8186C1002321F0223008F0D8 +:1023700055C26CC1211152C27DC1002321F022231C +:1023800009F464C1F8C1222309F474C109C28B2D78 +:1023900086958695837019F08130D1F03FC2002375 +:1023A00021F0812F9B2D937002C080E090E0269653 +:1023B0000FB6F894DEBF0FBECDBFDF91CF911F9156 +:1023C0000F91FF90EF90DF90CF90BF900C94E90EAB +:1023D000002321F0812F9B2D937002C080E090E0BC +:1023E00026960FB6F894DEBF0FBECDBFDF91CF911A +:1023F0001F910F91FF90EF90DF90CF90BF900C94C2 +:10240000FF0E812F002319F00E94881D02C00E9438 +:10241000F01D26960FB6F894DEBF0FBECDBFDF913C +:10242000CF911F910F91FF90EF90DF90CF90BF90D1 +:102430000C94751E8B2D837009F075C00111EEC1CF +:10244000812F829586958770880F880F912F9F70B6 +:10245000C92ED12CE12CF12C082E04C0CC0CDD1C93 +:10246000EE1CFF1C0A94D2F714FF12C00FE010E01C +:1024700020E030E004C0000F111F221F331F8A9597 +:10248000D2F7C901B801609570958095909503C009 +:1024900060E070E0CB014B2D46954695437042308D +:1024A000C1F060F56C297D298E299F29413051F1B9 +:1024B00026960FB6F894DEBF0FBECDBFDF91CF9149 +:1024C0001F910F91FF90EF90DF90CF90BF900C94F1 +:1024D0000D186C297D298E299F2926960FB6F89410 +:1024E000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1024F000EF90DF90CF90BF900C9429180E940D1898 +:10250000C701B60126960FB6F894DEBF0FBECDBF49 +:10251000DF91CF911F910F91FF90EF90DF90CF90BF +:10252000BF900C94F117002319F08B2D817001C01E +:102530008695882309F472C1812F829586958770CC +:10254000880F880F912F9F70C92ED12CE12CF12C70 +:10255000082E04C0CC0CDD1CEE1CFF1C0A94D2F724 +:1025600014FF12C00FE010E020E030E004C0000FC4 +:10257000111F221F331F8A95D2F7C901B801609538 +:1025800070958095909503C060E070E0CB014B2D75 +:102590004695469543704230C1F060F56C297D291F +:1025A0008E299F29413051F126960FB6F894DEBF4F +:1025B0000FBECDBFDF91CF911F910F91FF90EF9094 +:1025C000DF90CF90BF900C94E7186C297D298E295D +:1025D0009F2926960FB6F894DEBF0FBECDBFDF91C0 +:1025E000CF911F910F91FF90EF90DF90CF90BF9010 +:1025F0000C9403190E94E718C701B60126960FB67E +:10260000F894DEBF0FBECDBFDF91CF911F910F9128 +:10261000FF90EF90DF90CF90BF900C94CB18103FBD +:10262000D1F118F4103E50F4A1C0123F09F463C078 +:1026300008F44CC0133F09F473C098C01F708B2D71 +:102640008F710023A1F00E946418812F26960FB687 +:10265000F894DEBF0FBECDBFDF91CF911F910F91D8 +:10266000FF90EF90DF90CF90BF900C9406110E94E6 +:102670008518812F26960FB6F894DEBF0FBECDBF0A +:10268000DF91CF911F910F91FF90EF90DF90CF904E +:10269000BF900C940D110023A9F02111BFC08B2D08 +:1026A0008F7126960FB6F894DEBF0FBECDBFDF91B7 +:1026B000CF911F910F91FF90EF90DF90CF90BF903F +:1026C0000C94AA18223008F0A9C0E9CF0023A9F081 +:1026D0008B2D8F7126960FB6F894DEBF0FBECDBF3F +:1026E000DF91CF911F910F91FF90EF90DF90CF90EE +:1026F000BF900C946418002359F38B2D8F7126968C +:102700000FB6F894DEBF0FBECDBFDF91CF911F9102 +:102710000F91FF90EF90DF90CF90BF900C948518B1 +:10272000002399F08B2D8F7126960FB6F894DEBF9B +:102730000FBECDBFDF91CF911F910F91FF90EF9012 +:10274000DF90CF90BF900C944F1826960FB6F89458 +:10275000DEBF0FBECDBFDF91CF911F910F91FF90D4 +:10276000EF90DF90CF90BF900C9445180023A9F014 +:10277000222309F4ADCF812F26960FB6F894DEBF41 +:102780000FBECDBFDF91CF911F910F91FF90EF90C2 +:10279000DF90CF90BF900C94EF0F222309F4ADCFC0 +:1027A000812F26960FB6F894DEBF0FBECDBFDF9106 +:1027B000CF911F910F91FF90EF90DF90CF90BF903E +:1027C0000C94B7104B2D4F70612FC7010E9412035C +:1027D00026960FB6F894DEBF0FBECDBFDF91CF9126 +:1027E0001F910F91FF90EF90DF90CF90BF900C94CE +:1027F00069174B2D4F70612FC70126960FB6F894BD +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF90BF900C94580626960FB69D +:10282000F894DEBF0FBECDBFDF91CF911F910F9106 +:10283000FF90EF90DF90CF90BF9008950E94FF1916 +:102840000E94D4190E94191A0E94251F0E94751E09 +:1028500080E090E00E94E90E80E090E00C94FF0E92 +:102860000E94EF190C941E140E942019292F229502 +:102870002F702C3030F42A3048F42250223078F473 +:1028800005C02C3041F02F3031F009C0803E48F0B7 +:10289000803F29F406C093FB882780F9089580E0E3 +:1028A000089581E00895CF93DF9300D000D01F9268 +:1028B000CDB7DEB70F900F900F900F900F90DF9174 +:1028C000CF910895CF93DF9300D000D000D0CDB743 +:1028D000DEB726960FB6F894DEBF0FBECDBFDF91F0 +:1028E000CF9108951F93CF93DF93C091790116E0A4 +:1028F00080917A01C81799F0D0E01C9FF0011D9FCC +:10290000F00D1124E558FE4F4081518162817381A1 +:10291000848195810E9462142196C770E9CFDF916E +:10292000CF911F9108954091AB015091AC016091FE +:10293000AD017091AE018091AF019091B0010C9406 +:1029400062148091B00182958F7009F054C080911B +:10295000AD01882309F44FC080917901A0917A01DB +:102960004091AE015091AF016091AB017091AC010B +:10297000B6E08A1709F43FC090E041155105C1F156 +:102980007F3F11F46F3FA1F1B89FF001B99FF00DA7 +:102990001124E558FE4F218127132AC020812613D8 +:1029A00027C02281211124C02381348124173507B7 +:1029B00010F421503109241B350B283C3105C0F49B +:1029C0002091B0012F7020612093B00126E0289F54 +:1029D000F001299FF00D1124E058FE4F80818F7087 +:1029E000806180838BEA91E00E9414110C94721430 +:1029F00001968770BECF0895CF92DF92EF92FF923B +:102A00000F931F93CF93DF93CDB7DEB762970FB6C7 +:102A1000F894DEBF0FBECDBF8C0185E0F801DE016A +:102A20001D9601900D928A95E1F7D8014C9111966F +:102A30005C91119712966C918091AE019091AF01CB +:102A4000009709F475C13091AB017091AC017F3FE3 +:102A500019F43F3F09F46CC1F801C380D480E090C1 +:102A6000AD01EE2009F4BEC02091B001C816D90610 +:102A700028F0D601A81BB90BCD0104C08095909514 +:102A80008C0D9D1DFF24F394883C910578F0F12C6A +:102A9000207F09F0C4C07C2DD98AC88A89890E9408 +:102AA00053148BEA91E00E941411AFC0822F807FF3 +:102AB00009F045C0571313C0431311C061110FC073 +:102AC0002F7020612093B0010E9493148BEA91E053 +:102AD0000E9414118091B001F80185832EC0CD2889 +:102AE00019F15F3F11F44F3FF9F0F62E61111CC050 +:102AF0008091790120917A0136E0821709F45BC058 +:102B000090E0389FF001399FF00D1124E558FE4FF9 +:102B10007181571306C07081471303C07281711110 +:102B200003C001968770E9CFF62E662309F41CC115 +:102B30008091B00181608093B001F12C15C15713D1 +:102B400009C0431307C0611105C08091B001F801AD +:102B50008583C8C04D875E878D859E856A8B0E9460 +:102B600034146A898823D1F16623C1F12091B00120 +:102B7000822F82958F7090E0029774F08091AB0164 +:102B80009091AC0198878F831986DB86CA862C8743 +:102B9000CE0107960E94141186E0F801ABEAB1E07D +:102BA00001900D928A95E1F70E94A1140E9493145E +:102BB000FF24F394D9C04D875E878D859E850E9442 +:102BC0002019292F22952F70223008F0C1C09F7044 +:102BD00009F0BBC0805E883008F4C6C0C8010E94FE +:102BE0001411E6CFC816D90608F453C0F601E81B45 +:102BF000F90BCF01883C910508F450C0F12C7C2DD5 +:102C0000D98AC88A89890E945314EBEAF1E086E0E8 +:102C1000DF011D928A95E9F70E949314A5C057130E +:102C200014C0431312C0611110C08091B001F801AB +:102C30008583C8010E94141186E0EBEAF1E0DF0110 +:102C40001D928A95E9F7FE2C8FC04D875E878D8592 +:102C50009E856A8B0E9434146A89882309F4BECF4A +:102C6000662309F4BBCF2091B001822F82958F702B +:102C700090E002970CF490CF8091AB019091AC0161 +:102C80009A8389831B82DD82CC822E83CE010196BA +:102C900081CF809590958C0D9D1DACCFF62E66232F +:102CA00009F49CCF571333C0431331C02091B001B6 +:102CB00020FD24C0822F82958F70482F50E041154F +:102CC0005105E1F0D80115962C9315974F30510519 +:102CD00049F08F5F982F9295907F822F8F70892B6C +:102CE00015968C93C8010E94141186E0F801ABEA96 +:102CF000B1E001900D928A95E1F78ECF86E0F80160 +:102D0000ABEAB1E001900D928A95E1F72DC04D87B5 +:102D10005E878D859E850E94341481113DCF809100 +:102D2000B00181608093B001C8010E9414111CC0E1 +:102D3000662309F453CF4D875E878D859E850E945B +:102D40003414882309F44ACF27CF811143CF0CC014 +:102D5000243008F043CF9F7009F43CCFD80115967A +:102D60009C91907F09F036CF8F2D62960FB6F89424 +:102D7000DEBF0FBECDBFDF91CF911F910F91FF90AE +:102D8000EF90DF90CF9008951F93CF93DF93CDB74F +:102D9000DEB72C970FB6F894DEBF0FBECDBF4F83C2 +:102DA000588769877A878B879C87CE0107960E9410 +:102DB000FC14882371F08A859B85892B09F441C016 +:102DC00088858F3F09F065C08F818F3F09F061C012 +:102DD00038C086E0FE013796DE01119601900D9213 +:102DE0008A95E1F76A857B856115710551F1FF814F +:102DF000E885EF3F11F4FF3F21F120917A0130E0A7 +:102E0000C9010196877099274091790150E0841794 +:102E1000950709F447C0F983EA837D836C8396E0C4 +:102E2000929FD001939FB00D1124A558BE4FFE0173 +:102E3000319601900D929A95E1F780937A010E9464 +:102E4000721416E08091790190917A018917B9F195 +:102E5000189FC001112485589E4F0E94FC1488239E +:102E600071F1E09179011E9FF0011124E558FE4FA8 +:102E70004081518162817381848195810E946214B5 +:102E80008091790190E0019687709927809379016C +:102E9000D9CF4F81588569857A858B859C850E941D +:102EA0006214CFCF0E94301410927A0110927901EF +:102EB000EBEAF1E086E0DF011D928A95E9F72C96B6 +:102EC0000FB6F894DEBF0FBECDBFDF91CF911F913B +:102ED0000895EF92FF920F931F93CF93DF938C018E +:102EE000892B09F46CC0F12CEE24E394E8012196BF +:102EF000F8018491843740F4843008F051C0813067 +:102F000081F0823019F15BC0853709F444C0A8F123 +:102F10009CE7980F903708F052C08F770E94B71047 +:102F200041C00E5F1F4FFE01849190E2980F9830D0 +:102F300050F48770FE2D01C0FF0F8A95EAF78F2F9E +:102F40000E94F21914C00E94EF0F2DC00E5F1F4F98 +:102F5000FE01849190E2980F983060F48770FE2D06 +:102F600001C0FF0F8A95EAF78F2F0E94F8190E947F +:102F7000191A19C00E94B71016C00E5F1F4FFE012C +:102F8000C491CC2381F08FE99FE00197F1F700C055 +:102F90000000C150F6CF0E5F1F4FFE01F49003C03A +:102FA0000E94EF0F8E018F2D882309F49FCFEFE948 +:102FB000FFE03197F1F700C000008150F5CFDF91BD +:102FC000CF911F910F91FF90EF9008950895609316 +:102FD000B5017093B6018093B7019093B8010C943A +:102FE0001E140F931F930091B5011091B60120910B +:102FF000B7013091B801DC01CB01802B912BA22BC2 +:10300000B32B8093B5019093B601A093B701B09311 +:10301000B8011F910F910C941E140F931F930091F0 +:10302000B5011091B6012091B7013091B801DC01D2 +:10303000CB0180239123A223B3238093B5019093E6 +:10304000B601A093B701B093B8011F910F910C94F2 +:103050001E140F931F930091B5011091B60120919A +:10306000B7013091B801DC01CB0180279127A2275D +:10307000B3278093B5019093B601A093B701B093A5 +:10308000B8011F910F910C941E141092B10110926F +:10309000B2011092B3011092B4010C941E1441E0DD +:1030A00050E060E070E004C0440F551F661F771FBA +:1030B0008A95D2F74093B1015093B2016093B30166 +:1030C0007093B4010C941E1441E050E060E070E095 +:1030D00004C0440F551F661F771F8A95D2F7809151 +:1030E000B1019091B201A091B301B091B401482B0C +:1030F000592B6A2B7B2B4093B1015093B201609303 +:10310000B3017093B4010C941E1441E050E060E0F0 +:1031100070E004C0440F551F661F771F8A95D2F7D1 +:1031200040955095609570958091B1019091B20154 +:10313000A091B301B091B401482359236A237B23A2 +:103140004093B1015093B2016093B3017093B40105 +:103150000C941E1441E050E060E070E004C0440FA5 +:10316000551F661F771F8A95D2F78091B101909104 +:10317000B201A091B301B091B401482759276A2741 +:103180007B274093B1015093B2016093B3017093D8 +:10319000B4010C941E140F931F930091B101109170 +:1031A000B2012091B3013091B401DC01CB01802B3D +:1031B000912BA22BB32B8093B1019093B201A093DA +:1031C000B301B093B4011F910F910C941E140F938F +:1031D0001F930091B1011091B2012091B301309180 +:1031E000B401DC01CB0180239123A223B32380937C +:1031F000B1019093B201A093B301B093B4011F91B8 +:103200000F910C941E140F931F930091B101109114 +:10321000B2012091B3013091B401DC01CB018027D0 +:103220009127A227B3278093B1019093B201A09375 +:10323000B301B093B4011F910F910C941E14089523 +:10324000CF92DF92EF92FF920F931F93CF93DF9372 +:103250008C01C090B101D090B201E090B301F09028 +:10326000B4018091B5019091B601A091B701B091E0 +:10327000B801C82AD92AEA2AFB2ACFE1D0E0D7012F +:10328000C6010C2E04C0B695A795979587950A940C +:10329000D2F780FF07C0B8018C2F0E947C068130D6 +:1032A000910531F4219758F7B80180E00E947C061F +:1032B000DF91CF911F910F91FF90EF90DF90CF9012 +:1032C000089590910C019923F1F090910D019923AB +:1032D000D1F0982F9695969596959F3080F5E09130 +:1032E0000E01F0910F01E90FF11D877021E030E030 +:1032F000A90102C0440F551F8A95E2F7CA019181C6 +:10330000892B8183089520910E0130910F01F901DD +:1033100032969FEF40E05191851789F09F3F19F455 +:10332000511101C0942F4F5F4E30A9F79F3F39F0E4 +:10333000F901E90FF11D97FDFA958283089508952B +:1033400090910C019923F9F090910D019923D9F0F6 +:10335000982F9695969596959F3028F5E0910E01B9 +:10336000F0910F01E90FF11D877021E030E0A90114 +:1033700002C0440F551F8A95E2F7CA0180959181DA +:1033800089238183089520910E0130910F01F90165 +:103390003296205F3F4F9081891301C01082319691 +:1033A000E217F307C1F7089581E090E0E0910E0184 +:1033B000F0910F01E80FF91F1082019680319105FD +:1033C000A9F708959091CB01892B8093CB010895A3 +:1033D00080959091CB0189238093CB010895109221 +:1033E000CB0108959091CA01892B8093CA01089559 +:1033F00080959091CA0189238093CA010895109203 +:10340000CA0108958093B90108951092B9010895F1 +:1034100080910E0190910F01FC0131969C01205F7B +:103420003F4F80E0919191118F5FE217F307D1F741 +:103430000895E0910E01F0910F018091CB018083FE +:10344000E0910E01F0910F0190818091CA01892BCA +:1034500080838091B901882361F0E0910E01F091A1 +:103460000F019081892B80830E94081A811110928C +:10347000B90180910E0190910F010C94D30ECF925F +:10348000DF92EF92FF926C01EE24FF24C114D1046D +:10349000E104F10421F0C701B60120E101C020E000 +:1034A000C72ED82EE92EFF24C114D104E104F10463 +:1034B00019F0285FC701B6016B017C0154E0F69456 +:1034C000E794D794C7945A95D1F7C114D104E10475 +:1034D000F10419F02C5FC701B6016B017C0142E0D9 +:1034E000F694E794D794C7944A95D1F7C114D104C0 +:1034F000E104F10419F02E5FC701B601DC01CB0134 +:10350000B695A79597958795892B8A2B8B2B09F0D4 +:103510002F5F822FFF90EF90DF90CF9008958091E2 +:10352000E401843011F120E488E190E00FB6F894D2 +:10353000A895809360000FBE2093600083B7817FC1 +:10354000846083BF83B7816083BF7894889583B795 +:103550008E7F83BF0FB6F894A89580916000886134 +:1035600080936000109260000FBE089508950C943F +:10357000B61ACF930E94B71A0E949B040E94B61AF3 +:10358000C0E08C2F0E949105811104C0CF5FCE3026 +:10359000C1F701C081E0CF9108950E9430140E94CC +:1035A000C70E0C94BC0782E084BD93E095BD9AEFF2 +:1035B00097BD80936E0008952FB7F8948091CD0148 +:1035C0009091CE01A091CF01B091D0012FBF08956D +:1035D000CF92DF92EF92FF920F931F932FB7F89441 +:1035E0004091CD015091CE016091CF017091D001F9 +:1035F0002FBF6A017B01EE24FF248C0120E030E024 +:10360000C016D106E206F30610F4415051099A01A2 +:10361000281B390BC9011F910F91FF90EF90DF908C +:10362000CF9008951F920F920FB60F9211248F938F +:103630009F93AF93BF938091CD019091CE01A091C4 +:10364000CF01B091D0010196A11DB11D8093CD0194 +:103650009093CE01A093CF01B093D001BF91AF91D1 +:103660009F918F910F900FBE0F901F9018950E9401 +:10367000BF0BF8942FEF87EA91E6215080409040ED +:10368000E1F700C0000087E090EBDC018093ED01E2 +:103690009093EE01A093EF01B093F0019CE088E1DC +:1036A0000FB6F894A895809360000FBE90936000C9 +:1036B000FFCFEF92FF920F931F93CF93DF93D82FFB +:1036C000C0E08C2F0E94910500E010E0E82EF12C64 +:1036D000C701002E02C0959587950A94E2F780FDF8 +:1036E00006C00F5F1F4F0630110591F709C0602F0C +:1036F0007C2F80E00E9459068D13F3CF81E004C037 +:10370000CF5FCE30F1F680E0DF91CF911F910F9126 +:10371000FF90EF900895CF93C82F8CE20E94591B21 +:10372000882321F08C2FCF910C94591B80E0CF91EE +:103730000895CF930E94E01C811102C00E94C61C14 +:10374000C5E6C15049F00E949B048FE39CE90197B4 +:10375000F1F700C00000F5CF89E20E948B1B8111B8 +:1037600013C18AE20E948B1B81110E94C61C85E056 +:103770000E948B1B81110E94371B0E94EB1C8093BF +:10378000CC0187E00E948B1B8823A9F18BE10E946A +:103790008B1B882351F08091CC0181FB222720F9DB +:1037A00091E0922790FB81F90EC08EE00E948B1B66 +:1037B000882361F08091CC0182FB222720F991E0DF +:1037C000922790FB82F98093CC0115C080E10E9482 +:1037D0008B1B9091CC01882341F093FB222720F989 +:1037E00081E0822780FB93F904C0892F809580FBBC +:1037F00090F99093CC018091CC010E94EF1C0E9423 +:10380000FD1C8093DE0180EE0E948B1B882341F01B +:103810008091DE01982F909590FB80F98093DE01D6 +:1038200089E30E948B1B882359F08091DE0181FB84 +:10383000222720F991E0922790FB81F98093DE0105 +:1038400082EE0E948B1B882359F08091DE0182FB5F +:10385000222720F991E0922790FB82F98093DE01E4 +:1038600086EE0E948B1B882359F08091DE0183FB3A +:10387000222720F991E0922790FB83F98093DE01C3 +:1038800083EE0E948B1B882359F08091DE0184FB1C +:10389000222720F991E0922790FB84F98093DE01A2 +:1038A00085E30E948B1B882359F08091DE0185FB04 +:1038B000222720F991E0922790FB85F98093DE0181 +:1038C00081E30E948B1B882359F08091DE0186FBE7 +:1038D000222720F991E0922790FB86F98093DE0160 +:1038E00081E10E948B1B882359F08091DE0187FBC8 +:1038F000222720F991E0922790FB87F98093DE013F +:103900008091DE010E94011D8091DE0187FB8827E6 +:1039100080F980930D0187E20E948B1BC82F8EE1F6 +:103920000E948B1B8111C2608FE10E948B1B811151 +:10393000C46080E20E948B1B8111C86081E20E94FA +:103940008B1B8111C06182E20E948B1B8111C062BE +:1039500083E20E948B1B8111C06484E20E948B1B56 +:10396000882311F0C06802C0CC2329F08C2F0E945C +:10397000F81C6C2F03C00E94F41C682F70E080E0DC +:1039800090E0CF910C94E717CF9108956DEE7EEF04 +:1039900080E090E00E943A2360E082E090E00E94A4 +:1039A0002C2360E083E090E00E942C2360E084E020 +:1039B00090E00E942C2360E085E090E00C942C23A2 +:1039C00080E090E00E94262321E08D3E9E4F09F08A +:1039D00020E0822F089582E090E00C941E23682F4F +:1039E00082E090E00C942C2383E090E00C941E2362 +:1039F000682F83E090E00C942C2384E090E00C94FA +:103A00001E23682F84E090E00C942C238091D30136 +:103A100080FF0BC06091130185E0689FB001112405 +:103A200075956795759567952BC081FF09C0609165 +:103A3000130185E0689FB00111247595679520C03A +:103A400082FF07C06091130185E0689FB0011124D7 +:103A500017C09091D4019923D1F06091120196176B +:103A600088F72091130185E0289F90011124929FEF +:103A7000A001939F500D112470E0CA010E94F02212 +:103A80006038710540F46115710519F406C065E0F0 +:103A900070E0862F08958FE7089581E00895809162 +:103AA000D30180FF08C06091110170E075956795A2 +:103AB0007595679521C081FF06C06091110170E086 +:103AC0007595679519C082FF04C06091110170E07F +:103AD00010C09091D401992399F06091100196172C +:103AE000A0F780911101899FC001112470E00E940C +:103AF000F0226038710540F46115710519F406C0B3 +:103B000061E070E0862F08958FE7089581E00895C1 +:103B1000803F21F40E94061D819504C0813F29F455 +:103B20000E94061D8093D7010895823F21F40E94D0 +:103B3000061D819504C0833F29F40E94061D8093D1 +:103B4000D6010895893F19F40E944F1D05C08A3F90 +:103B500031F40E944F1D81958093D80108958B3FC9 +:103B600021F40E944F1D819504C08C3F29F40E94CE +:103B70004F1D8093D9010895843F21F48091D50190 +:103B8000816017C0853F21F48091D501826011C00A +:103B9000863F21F48091D50184600BC0873F21F4DA +:103BA0008091D501886005C0883F31F48091D501AE +:103BB00080618093D50108958D3F21F48091D301D8 +:103BC00081600BC08E3F21F48091D301826005C0DB +:103BD0008F3F29F48091D30184608093D3010895AD +:103BE000803F39F48091D70187FF6CC01092D701D4 +:103BF00069C0813F29F48091D7011816BCF362C0D7 +:103C00009091D601823F29F497FF5CC01092D601B3 +:103C100059C0833F19F41916CCF354C0893F41F4BD +:103C20008091D80118160CF04DC01092D8014AC0EE +:103C30008A3F29F48091D80187FF44C0F6CF8B3F9B +:103C400039F48091D90187FF3DC01092D9013AC063 +:103C50008C3F29F48091D9011816BCF333C0843FFE +:103C600021F48091D5018E7F17C0853F21F480918A +:103C7000D5018D7F11C0863F21F48091D5018B7FC6 +:103C80000BC0873F21F48091D501877F05C0883F15 +:103C900031F48091D5018F7E8093D50113C08D3F83 +:103CA00021F48091D3018E7F0BC08E3F21F480914F +:103CB000D3018D7F05C08F3F29F48091D3018B7F85 +:103CC0008093D3018091D60181110EC08091D701DC +:103CD00081110AC08091D801811106C08091D9015B +:103CE000811102C01092D401089585ED91E00E94E7 +:103CF000DE0E0E94DC1A9093D2018093D1010895C8 +:103D00001F93CF93DF938091D1019091D2010E94B4 +:103D1000E81AAC019091D401992321F0209114016B +:103D200030E006C0209115018AE0289F90011124FF +:103D30004217530708F485C08091D601C091D7017E +:103D4000D091D8011091D901811107C0C11175C05E +:103D5000D11173C0111171C074C09F3F19F09F5FE2 +:103D60009093D401181624F40E94061D8093D60166 +:103D70008091D60187FF05C00E94061D8195809322 +:103D8000D6011C1624F40E94061D8093D701809151 +:103D9000D70187FF05C00E94061D81958093D7013A +:103DA0006091D601662331F1C091D701CC2311F186 +:103DB000062E000C770B880B990B0E94F72123E34A +:103DC00033E343E35FE30E945B220E94BF216093E1 +:103DD000D6016C2FCC0F770B880B990B0E94F72123 +:103DE00023E333E343E35FE30E945B220E94BF21AE +:103DF0006093D7011D1624F40E944F1D8093D801B3 +:103E00008091D80187FF05C00E944F1D8195809346 +:103E1000D801111624F40E944F1D8093D90180917E +:103E2000D90187FF05C00E944F1D81958093D9015C +:103E3000DF91CF911F910C94751E9F3F09F08FCF9A +:103E4000A0CFDF91CF911F910895E5EDF1E085E0DE +:103E5000DF011D928A95E9F71092D4011092D301E7 +:103E60000895833081F128F4813059F08230D1F007 +:103E70000895853009F449C0B8F1863009F456C078 +:103E8000089580911501262F30E0280F311D2F3F16 +:103E9000310524F4680F6093150108958FEF809326 +:103EA0001501089580911401262F30E0280F311D4F +:103EB0002F3F310524F4680F6093140108958FEFAC +:103EC00080931401089580911301262F30E0280F6C +:103ED000311D2F3F310524F4680F609313010895BD +:103EE0008FEF80931301089580911201262F30E007 +:103EF000280F311D2F3F310524F4680F6093120104 +:103F000008958FEF80931201089580911101262F5B +:103F100030E0280F311D2F3F310524F4680F6093E6 +:103F2000110108958FEF8093110108958091100180 +:103F3000262F30E0280F311D2F3F310524F4680F64 +:103F40006093100108958FEF8093100108958330DE +:103F500011F128F4813049F0823091F008958530D4 +:103F600081F120F18630C1F1089580911501681723 +:103F700020F4861B80931501089510921501089571 +:103F800080911401681720F4861B80931401089512 +:103F900010921401089580911301681720F4861B74 +:103FA00080931301089510921301089580911201D6 +:103FB000681720F4861B8093120108951092120155 +:103FC000089580911101681720F4861B80931101D8 +:103FD000089510921101089580911001681720F43E +:103FE000861B8093100108951092100108950F937D +:103FF0001F938D3109F46BC008F03FC08E3009F477 +:104000007DC0C0F4873009F46EC068F4863009F0D2 +:10401000AFC08091CC01817F8E7F8093CC0181E005 +:104020008093DB01A6C0883009F458C08B3009F4B6 +:104030009BC09EC0863109F497C078F4803109F4A2 +:1040400070C0813109F094C00E94301490910D012C +:1040500081E0892780930D0187C0893109F484C0EC +:104060008B3109F085C08091CC0181FB222720F99A +:1040700091E0922790FB81F94AC0853309F45BC037 +:1040800048F4873209F457C008F45AC0893209F459 +:1040900052C06EC0833438F48A3308F067C0883366 +:1040A00009F462C065C0833409F445C0883409F05E +:1040B0005FC00E9430140FEF13ED20E30150104059 +:1040C0002040E1F700C000000E94371B4DC00E9455 +:1040D00079210E94C70E0E94BC0746C00E94EB1CBB +:1040E0000E94FD1C41C09091CC01892F817090FFEE +:1040F00012C0917F9E7F9093CC013BC08091CC01F8 +:1041000082FB222720F991E0922790FB82F980938D +:10411000CC01992349F18091CC0181608093CC013D +:1041200023C08091CC0183FB222720F991E09227C4 +:1041300090FB83F9ECCF61E070E080E090E010C08C +:104140008D5141E050E060E070E08A019B0104C0C5 +:10415000000F111F221F331F8A95D2F7C901B80122 +:104160000E94E7170E94301481E003C08953E9CF11 +:1041700080E01F910F91089580E008950C94BC2079 +:10418000CF93C82F8091DB01813079F018F0823015 +:10419000E9F187C0E0910E01F0910F01808181313A +:1041A00069F0823209F07FC009C0E0910E01F09100 +:1041B0000F018081813111F0823261F48C2F0E94D5 +:1041C000BE20811104C08C2F0E94F71F1DC081E00A +:1041D00090E01AC08C2F0E94BC20811114C0C43101 +:1041E00079F048F4CB3079F0C03109F060C082E05A +:1041F0008093DB0108C0C93219F0C83321F057C0E1 +:104200001092DB0154C081E0817053C0C93289F142 +:1042100018F5C43171F1A8F4C73009F046C08AE03E +:104220008093150194E19093140193E0909313010E +:104230008093120188E08093110188E2809310013D +:1042400034C0CE51C63088F5EC2FF0E0E65DFE4F6D +:1042500080818093DA0129C0CE34E9F020F4CB3498 +:1042600021F56AE013C0C13579F0C235F1F461E09F +:104270000DC08091DA01882319F01092DA0115C07F +:1042800081E08093DB0115C061E006C08091DA0116 +:104290000E94311F0AC06AE08091DA010E94A71FC4 +:1042A00004C01092DB0180E004C081E002C080E025 +:1042B000ABCFCF910895E1E8F0E080818860808302 +:1042C0008081816080838FB7F89493E09093890018 +:1042D00090ED909388008FBF0895EFE6F0E0808125 +:1042E000826080830895EFE6F0E080818D7F808397 +:1042F0000895EFE6F0E0908182E0892780830895B9 +:104300001F920F920FB60F9211242F933F934F934A +:104310005F936F937F938F939F93AF93BF93EF932D +:10432000FF938091DC019091DD0101969093DD0176 +:104330008093DC01811103C082E00E94BC07E09100 +:10434000DD01E695E695F0E0EF5AFA4FE4918091B1 +:10435000DC018E1303C080E00E94BC07FF91EF9147 +:10436000BF91AF919F918F917F916F915F914F918D +:104370003F912F910F900FBE0F901F9018950E94A4 +:10438000C6216894B1110C94552208950E943A22D6 +:1043900088F09F5798F0B92F9927B751B0F0E1F006 +:1043A000660F771F881F991F1AF0BA95C9F714C0B6 +:1043B000B13091F00E945422B1E008950C9454223F +:1043C000672F782F8827B85F39F0B93FCCF38695EF +:1043D00077956795B395D9F73EF49095809570954C +:1043E00061957F4F8F4F9F4F0895E89409C097FBC9 +:1043F0003EF490958095709561957F4F8F4F9F4FBC +:104400009923A9F0F92F96E9BB279395F6958795FF +:1044100077956795B795F111F8CFFAF4BB0F11F4C2 +:1044200060FF1BC06F5F7F4F8F4F9F4F16C0882369 +:1044300011F096E911C0772321F09EE8872F762F9F +:1044400005C0662371F096E8862F70E060E02AF0E0 +:104450009A95660F771F881FDAF7880F96958795CC +:1044600097F9089557FD9058440F551F59F05F3F35 +:1044700071F04795880F97FB991F61F09F3F79F086 +:1044800087950895121613061406551FF2CF469508 +:10449000F1DF08C0161617061806991FF1CF86958A +:1044A0007105610508940895E894BB27662777276E +:1044B000CB0197F908950E946E220C94DF220E948E +:1044C000D12238F00E94D82220F0952311F00C94CC +:1044D000C8220C94CE2211240C9455220E94322220 +:1044E00070F3959FC1F3950F50E0551F629FF00147 +:1044F000729FBB27F00DB11D639FAA27F00DB11D60 +:10450000AA1F649F6627B00DA11D661F829F2227E8 +:10451000B00DA11D621F739FB00DA11D621F839F6F +:10452000A00D611D221F749F3327A00D611D231F45 +:10453000849F600D211D822F762F6A2F11249F5793 +:1045400050409AF0F1F088234AF0EE0FFF1FBB1F96 +:10455000661F771F881F91505040A9F79E3F510555 +:1045600080F00C94C8220C9455225F3FE4F3983EEF +:10457000D4F3869577956795B795F795E7959F5FFF +:10458000C1F7FE2B880F911D9695879597F9089591 +:1045900097F99F6780E870E060E008959FEF80ECF6 +:1045A000089500240A941616170618060906089599 +:1045B00000240A9412161306140605060895092EFF +:1045C0000394000C11F4882352F0BB0F40F4BF2B6E +:1045D00011F460FF04C06F5F7F4F8F4F9F4F0895AE +:1045E00097FB072E16F4009407D077FD09D00E94A0 +:1045F0000A2307FC05D03EF4909581959F4F0895BE +:10460000709561957F4F0895EE0FFF1F0590F4910F +:10461000E02D0994AA1BBB1B51E107C0AA1FBB1FB9 +:10462000A617B70710F0A61BB70B881F991F5A953E +:10463000A9F780959095BC01CD010895F999FECF19 +:1046400092BD81BDF89A992780B50895A8E1B0E0A0 +:1046500042E050E00C944123262FF999FECF1FBA77 +:1046600092BD81BD20BD0FB6F894FA9AF99A0FBE9B +:10467000019608950E942C23272F0C942D23DC01F2 +:10468000CB01FC01F999FECF06C0F2BDE1BDF89A5D +:10469000319600B40D9241505040B8F70895F89407 +:0246A000FFCF4A +:1046A2002002BE074E082908F507C1070101BA0119 +:1046B20028080A03140A3F4D36391205C5048F042F +:1046C2005604E90302041B04340401020304050630 +:0446D20007080900CC :00000001FF -- cgit v1.2.3 From 1415e3108f3f639238f103da4d6deaaf3dae86dc Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Sun, 27 Mar 2016 20:50:49 -0700 Subject: Fixed issues, added unicode layer ⌬ ¯\_⩾ツ⩽_/¯ --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 51 ++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 6 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index e3a06fe32..f6b160a28 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -34,15 +34,15 @@ Layout |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| -| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . |//Alt| RShift | +| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - |LCtrl | `~ | Hyper| Left | Right| | Down | Up | COPY | PASTE| RCtrl | + |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | `----------------------------------' `----------------------------------' ,-------------. ,-------------. - Hyper = Ctrl+Super+Alt+Shift | Alt | F5 | | F2 | ~L2 | + Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | ,------|------|------| |------+------+------. | | | PgUp | | Ins | | | - | Space| BkSp |------| |------| ~L1 |Enter | + | Enter| BkSp |------| |------| ~L1 |Space | | | | PgDn | | Del | | | `--------------------' `--------------------' ``` @@ -83,7 +83,7 @@ Not touched this, not used either. |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | | | | | | | | | | | | Prev | Next | | | `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | `----------------------------------' `----------------------------------' ,-------------. ,-------------. | | | | | | @@ -93,17 +93,56 @@ Not touched this, not used either. | | | | | | | | `--------------------' `--------------------' ``` +### 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 will momentarily switch to a layer if held and another key is pressed. +~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.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 -- cgit v1.2.3 From beda4e6fd3a7b9e31b9cf591563e7aa1df0c7eed Mon Sep 17 00:00:00 2001 From: Matthew Carroll Date: Sun, 27 Mar 2016 23:51:11 -0400 Subject: Added msc keymap for ergodox_ez --- keyboard/ergodox_ez/keymaps/msc/img/code_layer.png | Bin 0 -> 86217 bytes keyboard/ergodox_ez/keymaps/msc/img/main_layer.png | Bin 0 -> 90624 bytes .../ergodox_ez/keymaps/msc/img/media_layer.png | Bin 0 -> 75750 bytes keyboard/ergodox_ez/keymaps/msc/keymap.c | 184 ++++ keyboard/ergodox_ez/keymaps/msc/msc.hex | 1118 ++++++++++++++++++++ keyboard/ergodox_ez/keymaps/msc/readme.md | 32 + 6 files changed, 1334 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/code_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/main_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/img/media_layer.png create mode 100644 keyboard/ergodox_ez/keymaps/msc/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/msc/msc.hex create mode 100644 keyboard/ergodox_ez/keymaps/msc/readme.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png new file mode 100644 index 000000000..1d707c5ea Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png new file mode 100644 index 000000000..65f92dda1 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png new file mode 100644 index 000000000..a69799b07 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/keymap.c b/keyboard/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 000000000..e567e513f --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/msc/msc.hex b/keyboard/ergodox_ez/keymaps/msc/msc.hex new file mode 100644 index 000000000..a466a37af --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/msc.hex @@ -0,0 +1,1118 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94AD0B0C947F0CB7 +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C9404210C94A9020C94A9020A +:100050000C94A9020C94951A0C94A9020C94A90270 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902EC0C0E0D5C +:1000B000FC0D0E0DFC0D530D760DFC0DCB0DDE0D64 +:1000C000C010C010EF10EF10321170118913891396 +:1000D000891189138A128A125D1389138913741383 +:1000E0000000F0A12E004C002A00E100E300000017 +:1000F0001E00140004001D71E2004D001F001A00D4 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100050004B0025000C007A +:100160000E00360051002800260012000F00370054 +:1001700052002B0027001300330038714F004E004F +:100180002D0031003478E500025400000100010028 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F20001000100F5000100F000F1000100D2 +:100260000100F40001000100F300010001000100A1 +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A000010001000100A800AC00010001000100F4 +:1002B00001000100AA00B6000100010001000100D8 +:1002C000A90001000100010001000100AB000100D4 +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A +:1004E0009091EF01A091F001B091F1018730904B14 +:1004F000A740B04BB9F41092EE011092EF011092A8 +:10050000F0011092F10114BE84B7877F84BF88E1A7 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0ECE8F5E402C0DA +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92AE3EB107E1F70E94F1080C9484 +:10055000C4220C94000061110BC0FC01828188232D +:1005600021F085EE0E945D0F03C085EE0E942510EC +:1005700080E090E0089508956091B1017091B2011A +:100580008091B3019091B4010E94C41956985E986D +:1005900025982D9826982E9827982F98813019F015 +:1005A000823021F00895259A2D9A0895269A2E9A40 +:1005B00008950C94BC0256985E9825982D9826981C +:1005C0002E9827982F988FEF90E090938900809332 +:1005D000880090938B0080938A0090938D00809385 +:1005E0008C00259A2D9A2FEF80E792E021508040D1 +:1005F0009040E1F700C00000269A2E9A2FEF80E786 +:1006000092E0215080409040E1F700C00000279A1E +:100610002F9A2FEF80E792E0215080409040E1F741 +:1006200000C0000025982D982FEF80E792E0215020 +:1006300080409040E1F700C0000026982E982FEFF0 +:1006400080E792E0215080409040E1F700C0000038 +:1006500027982F9856985E9825982D9826982E982A +:1006600027982F98089589EA8093800089E08093E5 +:10067000810024982C983F988AB18F748AB96E981B +:10068000479A8BB1806B8BB9769A0E94DB020C94EF +:10069000BB0280E2809300018091340181110EC081 +:1006A0000E94980381E0809334012FEF83ED90E363 +:1006B000215080409040E1F700C0000080E40E949B +:1006C0009E038093000181112EC00E94C803809375 +:1006D0000001811128C00E94C8038093000181118C +:1006E00022C08FE30E94C8038093000181111BC0C8 +:1006F0000E94C00380E40E949E0380930001811148 +:1007000012C08CE00E94C8038093000181110BC0CD +:100710000E94C80380930001811105C08FE30E94ED +:10072000C803809300010E94C003809100010895D6 +:100730001092B9008AE08093B800089594EA9093EB +:10074000BC009091BC0097FFFCCF9091B900987FBE +:10075000983021F0903111F081E008958093BB0032 +:1007600084E88093BC008091BC0087FFFCCF80911F +:10077000B900887F883111F0803471F780E00895E6 +:1007800084E98093BC008091BC0084FDFCCF089577 +:100790008093BB0084E88093BC008091BC0087FFFD +:1007A000FCCF9091B900987F81E0983209F480E005 +:1007B000089584E88093BC008091BC0087FFFCCF43 +:1007C0008091BB00089580910001811115C080E4E3 +:1007D0000E949E038093000181110CC082E10E945F +:1007E000C80380930001811105C08FEF0E94C803E8 +:1007F000809300010E94C00384B1807F84B985B1D9 +:10080000807F85B98AB1837F8AB98BB1837F8BB9A9 +:100810003E98469808950E944903809300010E94E3 +:10082000E30380B38C7080BB81B3836F81BBA6E38D +:10083000B1E0E4E4F1E08EE08E0F11921D928E1390 +:10084000FCCF0C943303BF92CF92DF92EF92FF92D2 +:100850000F931F93CF93DF9380910001882379F04A +:10086000809135018F5F80933501811108C00E940E +:10087000490380930001811102C00E94DB0206E35C +:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455 +:10089000E394F12CC730D10500F58091000181115E +:1008A00064C080E40E949E0380930001811112C005 +:1008B00082E10E94C8038093000181110BC0C7012F +:1008C0000C2E01C0880F0A94EAF780950E94C80395 +:1008D000809300010E94C00348C0CA30A1F028F4F0 +:1008E000C83059F0C93061F005C0CC3089F070F0E3 +:1008F000CD3089F0209A289810C0219A29980DC0EF +:10090000229A2A980AC0239A2B9807C0529A01C0AB +:10091000539A5B9802C03E9A469890EA9A95F1F7EE +:100920009FB1799902C082E001C080E091709D255D +:10093000982B7C9902C084E001C080E0892B7D99CE +:1009400002C038E001C030E0832B7E9902C020E174 +:1009500001C020E0822B9FB19095991F9927991F84 +:100960009295990F907E892B0FC080910001811183 +:1009700049C080E40E949E0380930001882379F19E +:10098000B12C0E94C0038B2DF8019081981719F0AB +:100990008083C09201010E94E30321960F5F1F4FE5 +:1009A000CE30D10509F076CF80910101882361F125 +:1009B000815080930101882339F08FE99FE00197EE +:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC +:1009D000CF01825F91919D938E13FCCF15C083E16F +:1009E0000E94C803809300018111CACF81E40E9454 +:1009F0009E03809300018111C3CF0E94D903B82EBA +:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7 +:100A1000CF911F910F91FF90EF90DF90CF90BF90FB +:100A20000895E82FF0E0EC5BFE4F80810895089573 +:100A30008B3B910578F4883A910540F5853A91050C +:100A4000D0F48430910508F0B1C08130910509F4EB +:100A5000ADC06BC0803E910508F467C0883E91052B +:100A600008F4A4C09C01205F31092031310508F051 +:100A70005CC090650895853A910509F459C0863A9D +:100A8000910509F058C082E890E40895883A9105EC +:100A900009F454C0893A910509F453C08A3A910582 +:100AA00009F452C08B3A910509F451C08C3A910572 +:100AB00009F450C08D3A910509F44FC0803B91056F +:100AC00009F44EC08E3A910509F44DC08F3A910554 +:100AD00009F44CC0813B910509F44BC0823B910560 +:100AE00009F44AC0833B910509F449C0843B910550 +:100AF00009F448C0853B910509F447C0863B910540 +:100B000009F446C0873B910509F445C0883B91052F +:100B100009F444C0893B910509F443C08A3B91051F +:100B200009F442C080E094E4089580E090E00895E4 +:100B300081E890E4089583E890E4089582EE94E4D7 +:100B4000089589EE94E408958AEE94E4089585EB7F +:100B500094E4089586EB94E4089587EB94E4089573 +:100B60008CEC94E408958DEC94E4089583E895E486 +:100B700008958AE895E4089582E995E4089584E962 +:100B800095E4089581E296E4089583E296E4089559 +:100B900084E296E4089585E296E4089586E296E478 +:100BA000089587E296E408958AE296E40895089508 +:100BB00096E0799FF001112494E5899FE00DF11DE5 +:100BC0001124E60FF11DEE0FFF1FEC51FF4F859131 +:100BD00094910895880F991FFC01E05AF040859187 +:100BE00094910895880F991FFC01E052FF4F859161 +:100BF0009491089526E0729FF001112444E5849FAA +:100C0000E00DF11D1124E60FF11DEE0FFF1FEC5159 +:100C1000FF4F859194919C013A9521154FE134073E +:100C200008F41AC13F512115304120F49F700E94F1 +:100C3000F20508959C0130532115304118F499278D +:100C4000906C0895811520E5920769F40E94AB131A +:100C50004FEF84E39CE0415080409040E1F700C0BA +:100C600000000C94BA1A813020E5920731F480918B +:100C7000CC0181608093CC0108959C0130552115F1 +:100C8000304108F051C0292F33272F7033272130EE +:100C90003105D9F4AC014370552702C0220F331F30 +:100CA0004A95E2F73C68AC0164E0440F551F6A9531 +:100CB000E1F744275370242B352B73E0880F991FDD +:100CC0007A95E1F7807699271DC02230310529F405 +:100CD000982F8827816F906A089523303105A9F4F1 +:100CE000AC014370552721E030E002C0220F331FD2 +:100CF0004A95E2F73C6843E0880F991F4A95E1F76F +:100D0000807E9770822B932B089524303105E1F477 +:100D1000AC014370552721E030E002C0220F331FA1 +:100D20004A95E2F73A68E7CF9C01305721153041E8 +:100D300018F49F70906208959C013058211530413D +:100D400018F49F70906A0895803E9105E0F4803C0D +:100D5000910558F58133910509F46FC048F4893243 +:100D6000910509F463C08A32910509F46DC072C01F +:100D700089339105E9F082389105D1F085339105E9 +:100D800009F44DC067C0833E910581F138F4803E7F +:100D90009105B9F0823E9105D9F05CC0863E91057F +:100DA00061F1873E9105A1F155C00E94EA050895C1 +:100DB0002091DF0120FD02C021FF4CC080EE90E0B9 +:100DC00049C08091DF0180FFF9CF89E390E042C004 +:100DD0008091DF0182FF0EC08091DF0184FF03C09C +:100DE00080E090E037C083EE90E034C08091DF0176 +:100DF00082FFF2CF82EE90E02DC08091DF0183FF71 +:100E00000BC08091DF0184FDEBCF87EE90E022C024 +:100E10008091DF0183FFF5CF86EE90E01BC08091CB +:100E2000DF0185FF07C089E290E014C08091DF01F7 +:100E300085FFF9CF85E390E00DC08091DF0186FF4B +:100E400007C08AE290E006C08091DF0186FFF9CFFB +:100E500081E390E00E941805089508950C942D07F1 +:100E6000809162010895CF93DF9300D01F92CDB798 +:100E7000DEB79C018091E501843019F593E09983F8 +:100E80003B832A839093E9008FEF9091E800815093 +:100E900095FD06C095ED9A95F1F700008111F5CF0B +:100EA0008091E80085FF0DC040E050E063E070E015 +:100EB000CE0101960E949D098091E8008E77809373 +:100EC000E8000F900F900F90DF91CF910895CF938E +:100ED000DF9300D01F92CDB7DEB72091E50124301B +:100EE00021F522E029839B838A8383E08093E900B4 +:100EF0008FEF9091E800815095FD06C095ED9A9591 +:100F0000F1F700008111F5CF8091E80085FF0DC059 +:100F100040E050E063E070E0CE0101960E949D0940 +:100F20008091E8008E778093E8000F900F900F90EB +:100F3000DF91CF9108952091E5012430F1F422E072 +:100F40002093E9002FEF3091E800215035FD06C0D5 +:100F500035ED3A95F1F700002111F5CF2091E80029 +:100F600025FF0BC040E050E065E070E00E949D0965 +:100F70008091E8008E778093E8000895CF93DF9307 +:100F8000EC019091E501943009F046C080910C018C +:100F90008823D9F080910D018823B9F09093E9005E +:100FA0008FEF9091E800815095FD06C095E19A95EC +:100FB000F1F700008111F5CF8091E80085FF2CC08A +:100FC00040E050E060E170E017C081E08093E9000C +:100FD0008FEF9091E800815095FD06C095ED9A95B0 +:100FE000F1F700008111F5CF8091E80085FF14C072 +:100FF00040E050E068E070E0CE010E949D098091E1 +:10100000E8008E778093E80080E1FE01A2E5B1E080 +:1010100001900D928A95E1F7DF91CF91089580912B +:10102000E401811109C00E94320B0E948F0B809154 +:10103000E20084608093E20008951092E401089534 +:1010400008950C94F1200E94501A0E94F7200E94EB +:10105000350E0C942E0742E061EC81E00E94AC0A50 +:1010600042E061EC82E00E94AC0A42E061EC83E085 +:101070000E94AC0A42E161EC84E00C94AC0A8091DD +:10108000E701833009F455C030F4813071F08230CB +:1010900009F48EC008958A3009F47AC08B3009F4BF +:1010A00060C0893009F09CC020C08091E601813A7F +:1010B00009F096C08091E800877F8093E8008091D6 +:1010C000EA019091EB01892B21F460E182E591E046 +:1010D00003C060E080E090E070E00E94E809809149 +:1010E000E8008B778093E80008958091E6018132D3 +:1010F00009F076C08091EA019091EB01009719F018 +:10110000039709F06DC08091E800877F8093E80025 +:101110008091E80082FD05C08091E5018111F8CF42 +:101120005FC08091F100809362018091E8008B772D +:1011300053C08091E601813A09F052C08091EA01E2 +:101140009091EB01892B09F04BC08091E800877FDB +:101150008093E8008091E80080FFFCCF80910C0133 +:1011600036C08091E6018132D9F58091EA019091F3 +:10117000EB01892BA9F58091E800877F8093E80037 +:101180000E94E10A8091E80180930C010C94AB135A +:101190008091E601813221F58091E800877F80937C +:1011A000E8000E94E10A8091E901809363010895BB +:1011B0008091E601813AA1F48091E800877F8093D5 +:1011C000E8008091E80080FFFCCF8091630180936C +:1011D000F1008091E8008E778093E8000C94E10A9A +:1011E000089584B7877F84BF88E10FB6F894809311 +:1011F0006000109260000FBE90E080E80FB6F89497 +:1012000080936100909361000FBE0E94840E0E9443 +:10121000320B0E948F0B8091E20084608093E20089 +:1012200078940E94150E0E94860E82E091E00E9442 +:10123000300E0E94DF208091E501853069F40E9424 +:10124000141A8091E3018823B1F30E943C1A882389 +:1012500091F30E948709EFCF0E948C0EECCF292FCB +:10126000332723303105C9F064F42130310581F092 +:101270002230310509F043C08DE690E020E133E0F3 +:1012800042C021323105F1F02232310541F137C03F +:1012900082E190E02DE733E036C099278130910557 +:1012A00041F08230910541F0892B49F5ECE0F3E003 +:1012B00005C0E4EFF2E002C0ECEDF2E0849190E0D2 +:1012C0009F0121C06430D8F4E62FF0E0EE0FFF1F3D +:1012D000EE5DFE4F2081318189E090E014C06430E2 +:1012E00070F470E0FB01EE0FFF1FE65EFE4F208101 +:1012F0003181FB01EA5EFE4F808190E004C080E016 +:1013000090E020E030E0FA0131832083089580E10D +:1013100089BD82E189BD09B400FEFDCF8091D8006E +:101320008F7D8093D8008091E00082608093E00000 +:101330008091E00081FDFCCF0895CF92DF92EF9283 +:10134000FF920F931F93CF93DF93EC018B016A0100 +:101350000E94000B811133C0C114D10439F0F60191 +:1013600080819181081B190BC80FD91FE12CF12C2A +:101370000115110519F18091E80085FD16C08091D5 +:10138000E8008E778093E800C114D10449F0F6019B +:1013900080819181E80EF91EF182E08285E00FC024 +:1013A0000E94000B882321F30AC089918093F100E9 +:1013B00001501109FFEFEF1AFF0ADACF80E0DF9149 +:1013C000CF911F910F91FF90EF90DF90CF900895F4 +:1013D0002091EC013091ED012617370748F0611597 +:1013E000710539F42091E8002E772093E80001C0C0 +:1013F000B90140E061157105A9F12091E5012223B1 +:1014000009F443C0253009F442C02091E80023FDCF +:1014100040C02091E80022FD32C02091E80020FF6A +:10142000E9CF4091F3002091F20030E0342BFC0131 +:10143000CF016115710559F02830310540F48191D3 +:101440008093F100615071092F5F3F4FF1CF41E070 +:101450002830310509F040E02091E8002E772093F4 +:10146000E800C8CF4111C9CF0AC08091E5018823A7 +:1014700061F0853061F08091E80083FD0AC08091C1 +:10148000E80082FFF2CF80E0089582E0089583E0D3 +:10149000089581E008952091EC013091ED01261727 +:1014A000370748F06115710539F42091E8002E776F +:1014B0002093E80001C0B901FC0120E0611571052D +:1014C00091F18091E501882309F440C0853009F449 +:1014D0003FC08091E80083FD3DC08091E80082FD1F +:1014E0002FC08091E80080FFE9CF2091F300809128 +:1014F000F20090E0922B6115710559F0883091054A +:1015000040F424912093F1003196615071090196C5 +:10151000F2CF21E0089709F020E08091E8008E7773 +:101520008093E800CBCF2111CCCF0AC08091E50198 +:10153000882361F0853061F08091E80083FD0AC066 +:101540008091E80082FFF2CF80E0089582E0089564 +:1015500083E0089581E00895982F973058F590938F +:10156000E900981739F07091EC002091ED0050914E +:10157000F00003C0242F762F50E021FF19C03091D6 +:10158000EB003E7F3093EB003091ED003D7F3093D8 +:10159000ED003091EB0031603093EB007093EC0084 +:1015A0002093ED005093F0002091EE0027FF07C03C +:1015B0009F5FD3CF8F708093E90081E0089580E032 +:1015C00008958091E60187FF11C08091E80082FDB7 +:1015D00005C08091E5018111F8CF11C08091E8002C +:1015E0008B770BC08091E501882349F08091E8005A +:1015F00080FFF8CF8091E8008E778093E80008950F +:101600002091E4003091E50095E64091EC00842FB4 +:10161000817040FF22C08091E80080FD1CC0809155 +:10162000E501882391F0853091F08091EB0085FDF4 +:1016300010C04091E4005091E5004217530729F390 +:101640009A01915011F784E0089582E0089583E0B3 +:10165000089581E0089580E008954091E80042FFF8 +:10166000DECF08950E94A00B0E94A80BE0EEF0E0F0 +:10167000808181608083E8EDF0E080818F778083D6 +:1016800019BCA7EDB0E08C918E7F8C9380818F7E0A +:1016900080831092E40108950F931F93CF93DF93FB +:1016A0000E94A00B0E94A80BC8EDD0E088818F7724 +:1016B000888388818068888388818F7D888319BC2E +:1016C0001092E5011092E1011092E3011092E20103 +:1016D00000EE10E0F80180818B7F8083888181603B +:1016E000888342E060E080E00E94AC0AE1EEF0E036 +:1016F00080818E7F8083E2EEF0E080818160808354 +:10170000808188608083F80180818E7F80838881DA +:1017100080618883DF91CF911F910F910895E8ED4B +:10172000F0E080818F7E8083E7EDF0E08081816052 +:10173000808384E082BF81E08093E4010C944C0BB1 +:10174000E8EDF0E080818E7F80831092E2000895C2 +:101750001092DA001092E10008951F920F920FB6D6 +:101760000F9211242F933F934F935F936F937F9327 +:101770008F939F93AF93BF93EF93FF938091E1007B +:1017800082FF0BC08091E20082FF07C08091E100E0 +:101790008B7F8093E1000E94140E8091DA0080FF1D +:1017A0001FC08091D80080FF1BC08091DA008E7F1F +:1017B0008093DA008091D90080FF0DC080E189BD5F +:1017C00082E189BD09B400FEFDCF81E08093E5018F +:1017D0000E940F0805C019BC1092E5010E941D0867 +:1017E0008091E10080FF19C08091E20080FF15C068 +:1017F0008091E2008E7F8093E2008091E200806120 +:101800008093E2008091D80080628093D80019BC58 +:1018100085E08093E5010E9421088091E10084FF2A +:1018200030C08091E20084FF2CC080E189BD82E15C +:1018300089BD09B400FEFDCF8091D8008F7D8093D3 +:10184000D8008091E1008F7E8093E1008091E200DA +:101850008F7E8093E2008091E20081608093E200BD +:101860008091E101882311F084E007C08091E300BA +:1018700087FD02C081E001C083E08093E5010E9402 +:1018800023088091E10083FF29C08091E20083FF5B +:1018900025C08091E100877F8093E10082E0809302 +:1018A000E5011092E1018091E1008E7F8093E100DB +:1018B0008091E2008E7F8093E2008091E20080615F +:1018C0008093E20042E060E080E00E94AC0A8091F8 +:1018D000F00088608093F0000E942008FF91EF9153 +:1018E000BF91AF919F918F917F916F915F914F9138 +:1018F0003F912F910F900FBE0F901F9018951F9240 +:101900000F920FB60F9211242F933F934F935F9333 +:101910006F937F938F939F93AF93BF93CF93DF93F7 +:10192000EF93FF93C091E900CF708091EC00D82F26 +:10193000D17080FDD0E81092E9008091F000877F9F +:101940008093F00078940E94C30C1092E90080917B +:10195000F00088608093F000CD2BCF70C093E90039 +:10196000FF91EF91DF91CF91BF91AF919F918F91B7 +:101970007F916F915F914F913F912F910F900FBE8B +:101980000F901F9018951F93CF93DF93CDB7DEB7BD +:10199000AA970FB6F894DEBF0FBECDBFE6EEF1E01A +:1019A00088E08E0F9091F10091938E13FBCF0E94EF +:1019B0003F088091E80083FF1FC18091E60190916C +:1019C000E701492F50E04A30510508F015C1FA01EE +:1019D000EA5AFF4F0C947922803881F0823809F05E +:1019E0000BC18091EA018F708093E9008091EB0038 +:1019F00085FB882780F91092E90006C08091E201FA +:101A00009091E301911182609091E800977F90930B +:101A1000E8008093F1001092F100C8C0282F2D7FBC +:101A200009F0EAC0882319F0823061F0E5C08091A6 +:101A3000E801813009F0E0C0933009F080E0809344 +:101A4000E3012BC08091E801811127C08091EA0158 +:101A50008F7009F4D1C08093E9002091EB0020FF42 +:101A60001CC0933021F48091EB00806214C09091EF +:101A7000EB0090619093EB0021E030E0A90102C0FF +:101A8000440F551F8A95E2F74093EA001092EA004E +:101A90008091EB0088608093EB001092E9008091C8 +:101AA000E800877F86C08111A7C01091E8011F77E9 +:101AB0008091E3008078812B8093E3008091E8009F +:101AC000877F8093E8000E94E10A8091E80080FF10 +:101AD000FCCF8091E30080688093E300111102C085 +:101AE00082E001C083E08093E50186C080588230A7 +:101AF00008F082C08091E8019091E9018C3D53E0AB +:101B0000950779F583E08A838AE289834FB7F89451 +:101B1000DE01139620E03EE051E2E32FF0E0509327 +:101B20005700E49120FF03C0E295EF703F5FEF7034 +:101B30008E2F90E0EA3010F0C79601C0C0968D93CA +:101B40009D932F5F243149F74FBF8091E800877F35 +:101B50008093E8006AE270E0CE0101960E94E809F5 +:101B600014C0AE014F5F5F4F6091EA010E942F09E0 +:101B7000BC01892B09F440C09091E800977F9093B5 +:101B8000E80089819A810E944B0A8091E8008B7756 +:101B90008093E80031C0803879F58091E800877F34 +:101BA0008093E8008091E1018093F1008091E8004A +:101BB0008E778093E8000E94E10A1EC081111CC04C +:101BC0009091E8019230C0F48091E800877F809383 +:101BD000E8009093E1010E94E10A8091E101811106 +:101BE00006C08091E30087FD02C081E001C084E06F +:101BF0008093E5010E942B088091E80083FF0AC0D2 +:101C00008091E800877F8093E8008091EB008062FC +:101C10008093EB00AA960FB6F894DEBF0FBECDBF3F +:101C2000DF91CF911F9108950895CF938091E501A1 +:101C30008823A1F0C091E900CF709091EC00892F2A +:101C4000817090FD80E8C82B1092E9008091E80037 +:101C500083FD0E94C30CCF70C093E900CF9108951B +:101C600090936901809368010895E0916801F09173 +:101C70006901309721F00190F081E02D099480E016 +:101C80000895E0916801F0916901309721F0028098 +:101C9000F381E02D09940895E0916801F0916901C4 +:101CA000309721F00480F581E02D0994089520916A +:101CB0006601309167018217930771F09093670175 +:101CC00080936601E0916801F0916901309721F0FD +:101CD0000680F781E02D09940895209164013091E8 +:101CE00065018217930771F09093650180936401F9 +:101CF000E0916801F0916901309721F00084F1854D +:101D0000E02D0994089508950C94830E0E94561AAC +:101D10000E940B040C941C1BCF92DF92EF92FF9257 +:101D20000F931F93CF93DF93CDB7DEB72B970FB6EB +:101D3000F894DEBF0FBECDBF0E9423048BE6C82EF1 +:101D400081E0D82E00E010E0E02E802F0E941105E7 +:101D5000F60141916F01F42EF826B1F40F5F1F4F89 +:101D60000E30110589F78FEF89838A831B820E94C9 +:101D70005F1A8160782F9D838C8349815A816B81A2 +:101D80008D810E942F0F40C09091CC0191FF04C023 +:101D90008B870E9417058B8520E030E04F2D50E0A7 +:101DA000922FBA01022E02C0759567950A94E2F748 +:101DB00060FF24C02E83EF8221E030E0690102C081 +:101DC000CC0CDD1C9A95E2F790E08C219D21892BAB +:101DD00009F420E028870E945F1A8160782F9A8793 +:101DE00089874E815F8168858A850E942F0FF8015F +:101DF000E559FE4F8081C826C08206C02F5F3F4F45 +:101E00002630310569F6AACF0E94031E10916A019F +:101E10000E94350E1817A1F00E94350E80936A01BA +:101E20002B960FB6F894DEBF0FBECDBFDF91CF91DA +:101E30001F910F91FF90EF90DF90CF900C942E07A1 +:101E40002B960FB6F894DEBF0FBECDBFDF91CF91BA +:101E50001F910F91FF90EF90DF90CF900895CF9357 +:101E6000DF93CDB7DEB72B970FB6F894DEBF0FBE6A +:101E7000CDBF4F83588769877A878B87DE0111969C +:101E800086E0FD0111928A95E9F785E0FE0137961B +:101E900001900D928A95E1F749815A816B817C818D +:101EA0008D819E810E9445162B960FB6F894DEBF59 +:101EB0000FBECDBFDF91CF910895CF93882309F452 +:101EC000C2C0C82F823859F40E94350E81FDBBC0B4 +:101ED00089E30E94E1180E949E1989E30CC08338AF +:101EE00079F40E94350E80FDAEC083E50E94E118B2 +:101EF0000E949E1983E50E942319CF910C949E198C +:101F0000843859F40E94350E82FD9DC087E40E94FA +:101F1000E1180E949E1987E4EECF8CEF8C0F813A76 +:101F200048F48C2F0E94442081118DC08C2F0E9478 +:101F3000E118E3CF80E28C0F883048F4C77081E06D +:101F400001C0880FCA95EAF70E946719D6CF8BE5C2 +:101F50008C0F833078F4C53A29F0C63A31F083E823 +:101F600090E005C081E890E002C082E890E0CF9167 +:101F70000C94570E88E58C0F833108F064C0C83A82 +:101F800039F1C93A41F1CA3A49F1CB3A51F1CC3A67 +:101F900059F1CD3A61F1C03B69F1CE3A71F1CF3AD6 +:101FA00079F1C13B81F1C23B89F1C33B91F1C43B63 +:101FB00099F1C53BA1F1C63BA9F1C73BB1F1C83BC3 +:101FC000B9F1C93BC1F1CA3BC9F180E090E038C02A +:101FD00082EE90E035C089EE90E032C08AEE90E06B +:101FE0002FC085EB90E02CC086EB90E029C087EBFA +:101FF00090E026C08CEC90E023C08DEC90E020C0F7 +:1020000083E891E01DC08AE891E01AC082E991E07E +:1020100017C084E991E014C081E292E011C083E22C +:1020200092E00EC084E292E00BC085E292E008C02C +:1020300086E292E005C087E292E002C08AE292E086 +:10204000CF910C946D0ECF910895882309F44BC065 +:10205000823859F40E94350E81FF45C089E30E9401 +:10206000E1180E949E1989E30CC0833871F40E9424 +:10207000350E80FF38C083E50E94E1180E949E194A +:1020800083E50E9423190C949E19843859F40E9408 +:10209000350E82FF28C087E40E94E1180E949E1935 +:1020A00087E4EFCF9CEF980F913A58F390E2980FA6 +:1020B000983050F4877091E001C0990F8A95EAF743 +:1020C000892F0E946D19DFCF9BE5980F933020F484 +:1020D00080E090E00C94570E885A833120F480E021 +:1020E00090E00C946D0E0895882321F00E946719EA +:1020F0000C949E190895882321F00E946D190C9468 +:102100009E190895BF92CF92DF92EF92FF920F93A4 +:102110001F93CF93DF9300D000D000D0CDB7DEB7B0 +:1021200025E0FC01DE01119601900D922A95E1F760 +:10213000FC01408131810281258122952F706381CC +:102140007481672B09F4E5C23F3F19F44F3F09F44E +:10215000E0C27C0149833A8389819A812E830E945F +:10216000A018182FB92E0E949F180E946617EB2DF9 +:10217000E295EF70F0E0E05AFF4F2E810C94792247 +:102180008B2D807F9B2D9F70F92E882319F0F29460 +:1021900080EFF822002349F0FF2009F467C28F2D59 +:1021A0000E9477190E949E1961C2812F0E942510FA +:1021B000FF2009F4AEC28F2D0E947D1926960FB61E +:1021C000F894DEBF0FBECDBFDF91CF911F910F916D +:1021D000FF90EF90DF90CF90BF900C949E193B2D15 +:1021E000307F8B2D8F70303211F08295807F1123DC +:1021F00019F0113021F12CC00023B9F0222309F489 +:10220000A0C1213009F09DC126960FB6F894DEBF1B +:102210000FBECDBFDF91CF911F910F91FF90EF9037 +:10222000DF90CF90BF900C948719222319F02130B2 +:1022300009F46FC28E830E948A198E8196C1002391 +:1022400021F0223008F065C27CC1211162C28DC12B +:10225000002321F0222309F474C108C2222309F4C7 +:1022600084C119C22B2D26952695237030E02115A7 +:10227000310521F021303105D1F04BC2002321F08E +:10228000812F9B2D937002C080E090E026960FB6C0 +:10229000F894DEBF0FBECDBFDF91CF911F910F919C +:1022A000FF90EF90DF90CF90BF900C94570E0023DB +:1022B00021F0812F9B2D937002C080E090E0269644 +:1022C0000FB6F894DEBF0FBECDBFDF91CF911F9147 +:1022D0000F91FF90EF90DF90CF90BF900C946D0E18 +:1022E000812F002319F00E940B1D02C00E94731D54 +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:10231000F81D8B2D837009F07BC00111FAC1812F4C +:10232000829586958770880F880F912F9F70C92E90 +:10233000D12CE12CF12C082E04C0CC0CDD1CEE1CA1 +:10234000FF1C0A94D2F714FF12C04FE050E060E087 +:1023500070E004C0440F551F661F771F8A95D2F79F +:10236000CB01BA01609570958095909503C060E0AF +:1023700070E0CB012B2D269526952370422F50E03F +:1023800042305105D9F04330510569F16C297D295E +:102390008E299F294130510551F126960FB6F894A8 +:1023A000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1023B000EF90DF90CF90BF900C948D176C297D2902 +:1023C0008E299F2926960FB6F894DEBF0FBECDBF8B +:1023D000DF91CF911F910F91FF90EF90DF90CF9001 +:1023E000BF900C94A9170E948D17C701B6012696BD +:1023F0000FB6F894DEBF0FBECDBFDF91CF911F9116 +:102400000F91FF90EF90DF90CF90BF900C947117D9 +:10241000002319F08B2D817001C08695882309F463 +:1024200078C1812F829586958770880F880F912FAC +:102430009F70C92ED12CE12CF12C082E04C0CC0C9D +:10244000DD1CEE1CFF1C0A94D2F714FF12C04FE0F3 +:1024500050E060E070E004C0440F551F661F771F16 +:102460008A95D2F7CB01BA016095709580959095C9 +:1024700003C060E070E0CB012B2D269526952370DC +:10248000422F50E042305105D9F04330510569F1F7 +:102490006C297D298E299F294130510551F12696BD +:1024A0000FB6F894DEBF0FBECDBFDF91CF911F9165 +:1024B0000F91FF90EF90DF90CF90BF900C94671832 +:1024C0006C297D298E299F2926960FB6F894DEBFA8 +:1024D0000FBECDBFDF91CF911F910F91FF90EF9075 +:1024E000DF90CF90BF900C9483180E946718C701AB +:1024F000B60126960FB6F894DEBF0FBECDBFDF91B2 +:10250000CF911F910F91FF90EF90DF90CF90BF90F0 +:102510000C944B18103FD1F118F4103E50F4A1C0A8 +:10252000123F09F463C008F44CC0133F09F473C0B0 +:1025300098C01F708B2D8F710023A1F00E94E417AB +:10254000812F26960FB6F894DEBF0FBECDBFDF9168 +:10255000CF911F910F91FF90EF90DF90CF90BF90A0 +:102560000C9474100E940518812F26960FB6F894CB +:10257000DEBF0FBECDBFDF91CF911F910F91FF90B6 +:10258000EF90DF90CF90BF900C947B100023A9F0C8 +:102590002111BFC08B2D8F7126960FB6F894DEBF28 +:1025A0000FBECDBFDF91CF911F910F91FF90EF90A4 +:1025B000DF90CF90BF900C942A18223008F0A9C069 +:1025C000E9CF0023A9F08B2D8F7126960FB6F894D2 +:1025D000DEBF0FBECDBFDF91CF911F910F91FF9056 +:1025E000EF90DF90CF90BF900C94E417002359F345 +:1025F0008B2D8F7126960FB6F894DEBF0FBECDBF20 +:10260000DF91CF911F910F91FF90EF90DF90CF90CE +:10261000BF900C940518002399F08B2D8F7126968E +:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3 +:102630000F91FF90EF90DF90CF90BF900C94CF1749 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:102650001F910F91FF90EF90DF90CF90BF900C945F +:10266000C5170023A9F0222309F4ADCF812F2696A8 +:102670000FB6F894DEBF0FBECDBFDF91CF911F9193 +:102680000F91FF90EF90DF90CF90BF900C945D0F73 +:10269000222309F4ADCF812F26960FB6F894DEBF22 +:1026A0000FBECDBFDF91CF911F910F91FF90EF90A3 +:1026B000DF90CF90BF900C9425104B2D4F70612F61 +:1026C000C7010E94AB0226960FB6F894DEBF0FBE7C +:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1 +:1026E000CF90BF900C94E9164B2D4F70612FC7010E +:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 +:102700001F910F91FF90EF90DF90CF90BF900C94AE +:10271000D70526960FB6F894DEBF0FBECDBFDF916A +:10272000CF911F910F91FF90EF90DF90CF90BF90CE +:1027300008950E9484190E9459190E949E190E94AE +:10274000A91E0E94F81D80E090E00E94570E80E0D4 +:1027500090E00C946D0E0E9474190C9499130E94D1 +:10276000A018292F22952F7030E02C3031054CF421 +:102770002A3031056CF4225031092230310588F4B9 +:1027800007C02C30310549F02F30310531F009C038 +:10279000803E48F0803F29F406C093FB882780F9EB +:1027A000089580E0089581E00895CF93DF9300D0ED +:1027B00000D01F92CDB7DEB70F900F900F900F9003 +:1027C0000F90DF91CF910895CF93DF9300D000D089 +:1027D00000D0CDB7DEB726960FB6F894DEBF0FBE99 +:1027E000CDBFDF91CF9108951F93CF93DF93C09119 +:1027F000790116E080917A01C81799F0D0E01C9F0A +:10280000F0011D9FF00D1124E558FE4F40815181CC +:1028100062817381848195810E94E4132196C7703F +:10282000E9CFDF91CF911F9108954091AB01509175 +:10283000AC016091AD017091AE018091AF019091BA +:10284000B0010C94E4138091B00182958F7009F06F +:1028500054C08091AD01882309F44FC08091790163 +:10286000A0917A016091AB017091AC014091AE01F1 +:102870005091AF01B6E08A1709F43FC090E04115CE +:102880005105C1F17F3F11F46F3FA1F1B89FF001F5 +:10289000B99FF00D1124E558FE4F218172132AC013 +:1028A0002081621327C02281211124C02381348119 +:1028B0002417350710F421503109241B350B283C0F +:1028C0003105C0F42091B0012F7020612093B00138 +:1028D00026E0289FF001299FF00D1124E058FE4FBB +:1028E00080818F70806180838BEA91E00E948210EA +:1028F0000C94F41301968770BECF0895CF92DF92A7 +:10290000EF92FF920F931F93CF93DF93CDB7DEB774 +:1029100062970FB6F894DEBF0FBECDBF8C0185E085 +:10292000F801DE011D9601900D928A95E1F7D8011C +:102930004C9111965C91119712966C911297139687 +:10294000CD90DC9014973091AB017091AC018091E7 +:10295000AE019091AF01009709F46BC17F3F19F46C +:102960003F3F09F466C1E090AD01EE2009F4C0C01C +:102970002091B001C816D90628F0F601E81BF90B22 +:10298000CF0104C0809590958C0D9D1DFF24F3947C +:10299000883C910578F0F12C207F09F0C6C07C2D91 +:1029A000D98AC88A89890E94D5138BEA91E00E944E +:1029B0008210B1C0822F807F09F046C0751314C009 +:1029C000341312C0611110C02F7020612093B00128 +:1029D0000E9415148BEA91E00E9482108091B00150 +:1029E000D80115968C932EC0CD2819F15F3F11F4B4 +:1029F0004F3FF9F0F62E61111CC0809179012091B2 +:102A00007A0136E0821709F45AC090E0389FF0014D +:102A1000399FF00D1124E558FE4F7181571306C000 +:102A20007081471303C07281711103C001968770D2 +:102A3000E9CFF62E662309F418C18091B0018160B8 +:102A40008093B001F12C11C1751308C0341306C076 +:102A5000611104C08091B001D801C3C04D875E8769 +:102A60008D859E856A8B0E94AF136A898823E1F168 +:102A70006623D1F12091B001822F82958F7090E072 +:102A8000029774F08091AB019091AC0198878F838D +:102A90001986DB86CA862C87CE0107960E94821093 +:102AA00086E0F801ABEAB1E001900D928A95E1F77A +:102AB0000E9423140E941514FF24F394D6C04D875E +:102AC0005E878D859E850E94A018292F22952F70E4 +:102AD00030E0223031050CF0BCC09F7009F0B6C068 +:102AE000805E883008F4C1C0C8010E948210E4CF23 +:102AF000C816D90608F453C0F601E81BF90BCF013C +:102B0000883C910508F450C0F12C7C2DD98AC88AE4 +:102B100089890E94D513EBEAF1E086E0DF011D927E +:102B20008A95E9F70E941514A0C0751314C03413D8 +:102B300012C0611110C08091B001F8018583C801F5 +:102B40000E94821086E0EBEAF1E0DF011D928A9597 +:102B5000E9F7FE2C8AC04D875E878D859E856A8B3E +:102B60000E94AF136A89882309F4BECF662309F453 +:102B7000BBCF2091B001822F82958F7090E0029799 +:102B80000CF48ECF8091AB019091AC019A83898334 +:102B90001B82DD82CC822E83CE0101967FCF809571 +:102BA00090958C0D9D1DACCFF62E662309F49CCF1D +:102BB00075132EC034132CC02091B00120FD1FC00E +:102BC000822F82958F70D9F0D80115962C93159786 +:102BD0008F3049F08F5F982F9295907F822F8F7062 +:102BE000892B15968C93C8010E94821086E0F8010B +:102BF000ABEAB1E001900D928A95E1F793CF86E0C0 +:102C0000F801ABEAB1E001900D928A95E1F72DC091 +:102C10004D875E878D859E850E94AF13811140CFC1 +:102C20008091B00181608093B001C8010E94821040 +:102C30001CC0662309F458CF4D875E878D859E851D +:102C40000E94AF13882309F44FCF2ACF811148CFB8 +:102C50000CC0243031050CF047CF9F7009F440CFF1 +:102C6000F8019581907F09F03BCF8F2D62960FB6CA +:102C7000F894DEBF0FBECDBFDF91CF911F910F91B2 +:102C8000FF90EF90DF90CF9008951F93CF93DF9345 +:102C9000CDB7DEB72C970FB6F894DEBF0FBECDBF11 +:102CA0004F83588769877A878B879C87CE010796E1 +:102CB0000E947E14882369F08F8198852A853B8540 +:102CC000232BF1F19F3F09F063C08F3F09F060C0F3 +:102CD00037C086E0FE013796DE01119601900D9215 +:102CE0008A95E1F76F817885EA85FB85309741F118 +:102CF0007F3F11F46F3F21F120917A0130E0C9014B +:102D00000196877099274091790150E084179507C3 +:102D100009F447C069837A83FD83EC8396E0929F30 +:102D2000D001939FB00D1124A558BE4FFE013196DE +:102D300001900D929A95E1F780937A010E94F41325 +:102D400016E08091790190917A018917C1F1189F5D +:102D5000C001112485589E4F0E947E14882379F16A +:102D6000E09179011E9FF0011124E558FE4F40814A +:102D7000518162817381848195810E94E4138091E5 +:102D8000790190E001968770992780937901D9CFD6 +:102D90004F81588569857A858B859C850E94E413CF +:102DA000CFCF0E94AB1310927A0110927901EBEA17 +:102DB000F1E086E0DF011D928A95E9F7C1CF2C96FC +:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C +:102DD0000895EF92FF920F931F93CF93DF938C018F +:102DE000892B09F46CC0F12CEE24E394E8012196C0 +:102DF000F8018491843740F4843008F051C0813068 +:102E000081F0823019F15BC0853709F444C0A8F124 +:102E10009CE7980F903708F052C08F770E942510DA +:102E200041C00E5F1F4FFE01C49180E28C0F8830BD +:102E300048F4C7708E2D01C0880FCA95EAF70E942A +:102E4000771914C08C2F0E945D0F2DC00E5F1F4F8D +:102E5000FE01C49180E28C0F883058F4C7708E2D2B +:102E600001C0880FCA95EAF70E947D190E949E1939 +:102E70001AC08C2F0E94251016C00E5F1F4FFE0136 +:102E8000C491CC2381F08FE99FE00197F1F700C056 +:102E90000000C150F6CF0E5F1F4FFE01F49003C03B +:102EA0000E945D0F8E018F2D882309F49FCFEFE9DB +:102EB000FFE03197F1F700C000008150F5CFDF91BE +:102EC000CF911F910F91FF90EF9008950895609317 +:102ED000B5017093B6018093B7019093B8010C943B +:102EE00099130F931F930091B5011091B601209192 +:102EF000B7013091B801DC01CB01802B912BA22BC3 +:102F0000B32B8093B5019093B601A093B701B09312 +:102F1000B8011F910F910C9499130F931F93009177 +:102F2000B5011091B6012091B7013091B801DC01D3 +:102F3000CB0180239123A223B3238093B5019093E7 +:102F4000B601A093B701B093B8011F910F910C94F3 +:102F500099130F931F930091B5011091B601209121 +:102F6000B7013091B801DC01CB0180279127A2275E +:102F7000B3278093B5019093B601A093B701B093A6 +:102F8000B8011F910F910C9499131092B1011092F6 +:102F9000B2011092B3011092B4010C94991341E064 +:102FA00050E060E070E004C0440F551F661F771FBB +:102FB0008A95D2F74093B1015093B2016093B30167 +:102FC0007093B4010C94991341E050E060E070E01C +:102FD00004C0440F551F661F771F8A95D2F7809152 +:102FE000B1019091B201A091B301B091B401482B0D +:102FF000592B6A2B7B2B4093B1015093B201609304 +:10300000B3017093B4010C94991341E050E060E077 +:1030100070E004C0440F551F661F771F8A95D2F7D2 +:1030200040955095609570958091B1019091B20155 +:10303000A091B301B091B401482359236A237B23A3 +:103040004093B1015093B2016093B3017093B40106 +:103050000C94991341E050E060E070E004C0440F2C +:10306000551F661F771F8A95D2F78091B101909105 +:10307000B201A091B301B091B401482759276A2742 +:103080007B274093B1015093B2016093B3017093D9 +:10309000B4010C9499130F931F930091B1011091F7 +:1030A000B2012091B3013091B401DC01CB01802B3E +:1030B000912BA22BB32B8093B1019093B201A093DB +:1030C000B301B093B4011F910F910C9499130F9316 +:1030D0001F930091B1011091B2012091B301309181 +:1030E000B401DC01CB0180239123A223B32380937D +:1030F000B1019093B201A093B301B093B4011F91B9 +:103100000F910C9499130F931F930091B10110919B +:10311000B2012091B3013091B401DC01CB018027D1 +:103120009127A227B3278093B1019093B201A09376 +:10313000B301B093B4011F910F910C9499130895AA +:10314000CF92DF92EF92FF920F931F93CF93DF9373 +:103150008C01C090B501D090B601E090B701F0901D +:10316000B8014091B1015091B2016091B3017091E9 +:10317000B401C42AD52AE62AF72ACFE1D0E0D70144 +:10318000C6010C2E04C0B695A795979587950A940D +:10319000D2F780FF07C0B8018C2F0E94FA0581305A +:1031A000910531F4219758F7B80180E00E94FA05A3 +:1031B000DF91CF911F910F91FF90EF90DF90CF9013 +:1031C000089590910C01992321F090910D01911196 +:1031D00009C020910E0130910F01F90132969FEF45 +:1031E00040E01FC0982F9695969596959F3050F584 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B818308959F3F39F04F5F4E3014 +:1032200041F051915813F8CF0DC05111F7CF942FA1 +:10323000F5CF9F3F39F0F901E90FF11D97FDFA95A0 +:1032400082830895089590910C01992321F0909123 +:103250000D01911109C020910E0130910F01F9016A +:103260003296205F3F4F1FC0982F96959695969562 +:103270009F30F0F4E0910E01F0910F01E90FF11D84 +:10328000877021E030E0A90102C0440F551F8A95E4 +:10329000E2F7CA018095918189238183089531964F +:1032A000E217F30729F090819813F9CF1082F7CF36 +:1032B000089581E090E0E0910E01F0910F01E80F98 +:1032C000F91F1082019680319105A9F70895909118 +:1032D000CB01892B8093CB01089580959091CB01F0 +:1032E00089238093CB0108951092CB01089590918A +:1032F000CA01892B8093CA01089580959091CA01D3 +:1033000089238093CA0108951092CA010895809379 +:10331000B90108951092B901089580910E0190911C +:103320000F01FC0131969C01205F3F4F80E091919D +:1033300091118F5FE217F307D1F70895E0910E0125 +:10334000F0910F018091CB018083E0910E01F0910B +:103350000F0190818091CA01892B80838091B901EE +:10336000882361F0E0910E01F0910F019081892B8B +:1033700080830E948D1981111092B90180910E01F4 +:1033800090910F010C94410ECF92DF92EF92FF9239 +:103390006C01EE24FF24C114D104E104F10421F0F6 +:1033A000C701B60120E101C020E0C72ED82EE92ECA +:1033B000FF24C114D104E104F10419F0285FC7010E +:1033C000B6016B017C0154E0F694E794D794C7945E +:1033D0005A95D1F7C114D104E104F10419F02C5F1E +:1033E000C701B6016B017C0142E0F694E794D794E3 +:1033F000C7944A95D1F7C114D104E104F10419F03E +:103400002E5FC701B601DC01CB01B695A795979554 +:103410008795892B8A2B8B2B09F02F5F822FFF90AA +:10342000EF90DF90CF9008958091E501843009F10D +:103430001092CD0120E488E190E00FB6F894A895B1 +:10344000809360000FBE2093600083B7817F84600B +:1034500083BF83B7816083BF7894889583B78E7F5D +:1034600083BF88E10FB6F8948093600010926000EB +:103470000FBE089508950895CF930E943A1A0E94AE +:1034800023040E943B1AC0E08C2F0E941105811179 +:1034900004C0CF5FCE30C1F701C081E0CF91089565 +:1034A0000E94AB130E94350E0C942E0782E084BD5F +:1034B00093E095BD9AEF97BD80936E0008952FB766 +:1034C000F8948091CE019091CF01A091D001B0915C +:1034D000D1012FBF0895CF92DF92EF92FF920F9309 +:1034E0001F932FB7F8944091CE015091CF01609176 +:1034F000D0017091D1012FBF6A017B01EE24FF241E +:103500008C0120E030E0C016D106E206F30610F48C +:10351000415051099A01281B390BC9011F910F9184 +:10352000FF90EF90DF90CF9008951F920F920FB60B +:103530000F9211248F939F93AF93BF938091CE01ED +:103540009091CF01A091D001B091D1010196A11D20 +:10355000B11D8093CE019093CF01A093D001B09381 +:10356000D101BF91AF919F918F910F900FBE0F909E +:103570001F9018950E94320BF8942FEF87EA91E67E +:10358000215080409040E1F700C0000087E090EBC0 +:10359000DC018093EE019093EF01A093F001B093D2 +:1035A000F1019CE088E10FB6F894A8958093600043 +:1035B0000FBE90936000FFCFEF92FF920F931F9387 +:1035C000CF93DF93D82FC0E08C2F0E94110500E02D +:1035D00010E0E82EF12CC701002E02C095958795CA +:1035E0000A94E2F780FD06C00F5F1F4F06301105F9 +:1035F00091F709C0602F7C2F80E00E94D805D81376 +:10360000F3CF81E004C0CF5FCE30F1F680E0DF91F0 +:10361000CF911F910F91FF90EF900895CF93C82FF6 +:103620008CE20E94DC1A882321F08C2FCF910C941D +:10363000DC1A80E0CF910895CF930E94631C811122 +:1036400002C00E94491CC5E6C15049F00E942304F3 +:103650008FE39CE90197F1F700C00000F5CF89E204 +:103660000E940E1B811113C18AE20E940E1B811160 +:103670000E94491C85E00E940E1B81110E94BA1A0B +:103680000E946E1C8093CC0187E00E940E1B882351 +:10369000A9F18BE10E940E1B882351F08091CC018F +:1036A00081FB222720F991E0922790FB81F90EC03F +:1036B0008EE00E940E1B882361F08091CC0182FB7A +:1036C000222720F991E0922790FB82F98093CC0188 +:1036D00015C080E10E940E1B9091CC01882341F01F +:1036E00093FB222720F981E0822780FB93F904C015 +:1036F000892F809580FB90F99093CC018091CC012B +:103700000E94721C0E94801C8093DF0180EE0E9448 +:103710000E1B882341F08091DF01982F909590FB3C +:1037200080F98093DF0189E30E940E1B882359F002 +:103730008091DF0181FB222720F991E0922790FB05 +:1037400081F98093DF0182EE0E940E1B882359F0DD +:103750008091DF0182FB222720F991E0922790FBE4 +:1037600082F98093DF0186EE0E940E1B882359F0B8 +:103770008091DF0183FB222720F991E0922790FBC3 +:1037800083F98093DF0183EE0E940E1B882359F09A +:103790008091DF0184FB222720F991E0922790FBA2 +:1037A00084F98093DF0185E30E940E1B882359F082 +:1037B0008091DF0185FB222720F991E0922790FB81 +:1037C00085F98093DF0181E30E940E1B882359F065 +:1037D0008091DF0186FB222720F991E0922790FB60 +:1037E00086F98093DF0181E10E940E1B882359F046 +:1037F0008091DF0187FB222720F991E0922790FB3F +:1038000087F98093DF018091DF010E94841C809101 +:10381000DF0187FB882780F980930D0187E20E94F2 +:103820000E1BC82F8EE10E940E1B8111C2608FE11A +:103830000E940E1B8111C46080E20E940E1B811148 +:10384000C86081E20E940E1B8111C06182E20E9469 +:103850000E1B8111C06283E20E940E1B8111C064A5 +:1038600084E20E940E1B882311F0C06802C0CC23A2 +:1038700029F08C2F0E947B1C6C2F03C00E94771CA8 +:10388000682F70E080E090E0CF910C946717CF91A3 +:1038900008956DEE7EEF80E090E00E94AF2260E040 +:1038A00082E090E00E94A12260E083E090E00E942C +:1038B000A12260E084E090E00E94A12260E085E027 +:1038C00090E00C94A12280E090E00E949B2221E0F5 +:1038D0008D3E9E4F09F020E0822F089582E090E017 +:1038E0000C949322682F82E090E00C94A12283E054 +:1038F00090E00C949322682F83E090E00C94A12236 +:1039000084E090E00C949322682F84E090E00C9483 +:10391000A1228091D40180FF0BC06091130185E04A +:10392000689FB001112475956795759567952BC0B3 +:1039300081FF09C06091130185E0689FB0011124E7 +:103940007595679520C082FF07C06091130185E0DF +:10395000689FB001112417C09091D5019923D1F02F +:1039600060911201961788F72091130185E0289F36 +:1039700090011124929FA001939F500D112470E09B +:10398000CA010E9465226038710540F46115710515 +:1039900039F002C065E070E0862F08958FE7089542 +:1039A00081E008958091D40180FF08C060911101E9 +:1039B00070E0759567957595679521C081FF06C084 +:1039C0006091110170E07595679519C082FF04C080 +:1039D0006091110170E010C09091D5019923C1F060 +:1039E000609110019617A0F780911101899FC00185 +:1039F000112470E00E9465226038710528F4611579 +:103A0000710521F0862F08958FE7089581E00895CC +:103A100061E070E0F4CF803F21F40E94891C819521 +:103A200004C0813F29F40E94891C8093D801089525 +:103A3000823F21F40E94891C819504C0833F29F4B0 +:103A40000E94891C8093D7010895893F19F40E9430 +:103A5000D21C05C08A3F31F40E94D21C819580930C +:103A6000D90108958B3F21F40E94D21C819504C096 +:103A70008C3F29F40E94D21C8093DA010895843F80 +:103A800021F48091D601816017C0853F21F4809197 +:103A9000D601826011C0863F21F48091D6018460F6 +:103AA0000BC0873F21F48091D601886005C0883F14 +:103AB00031F48091D60180618093D60108958D3FC5 +:103AC00021F48091D40181600BC08E3F21F480915C +:103AD000D401826005C08F3F29F48091D4018460B5 +:103AE0008093D4010895803F39F48091D80187FFF5 +:103AF0006CC01092D80169C0813F29F48091D8012F +:103B00001816BCF362C09091D701823F29F497FF49 +:103B10005CC01092D70159C0833F19F41916CCF339 +:103B200054C0893F41F48091D90118160CF04DC062 +:103B30001092D9014AC08A3F29F48091D90187FFA8 +:103B400044C0F6CF8B3F39F48091DA0187FF3DC046 +:103B50001092DA013AC08C3F29F48091DA011816EC +:103B6000BCF333C0843F21F48091D6018E7F17C00F +:103B7000853F21F48091D6018D7F11C0863F21F4CD +:103B80008091D6018B7F0BC0873F21F48091D601B5 +:103B9000877F05C0883F31F48091D6018F7E809366 +:103BA000D60113C08D3F21F48091D4018E7F0BC0CC +:103BB0008E3F21F48091D4018D7F05C08F3F29F481 +:103BC0008091D4018B7F8093D4018091D7018111A2 +:103BD0000EC08091D80181110AC08091D901811154 +:103BE00006C08091DA01811102C01092D5010895BA +:103BF00086ED91E00E944C0E0E945F1A9093D301D3 +:103C00008093D20108951F93CF93DF938091D201C7 +:103C10009091D3010E946B1AAC019091D501992328 +:103C200021F02091140130E006C0209115018AE0B6 +:103C3000289F900111244217530708F486C08091F1 +:103C4000D701C091D801D091D9011091DA01811129 +:103C500007C0C11176C0D11174C0111172C075C0F6 +:103C60009F3F19F09F5F9093D501181624F40E948E +:103C7000891C8093D7018091D70187FF05C00E94DE +:103C8000891C81958093D7011C1624F40E94891CFD +:103C90008093D8018091D80187FF05C00E94891CBC +:103CA00081958093D8016091D701662339F1C09145 +:103CB000D801CC2319F1772767FD7095872F972FAF +:103CC0000E94762123E333E343E35FE30E94DA219A +:103CD0000E9443216093D7016C2F772767FD709571 +:103CE000872F972F0E94762123E333E343E35FE39B +:103CF0000E94DA210E9443216093D8011D1624F40A +:103D00000E94D21C8093D9018091D90187FF05C000 +:103D10000E94D21C81958093D901111624F40E942F +:103D2000D21C8093DA018091DA0187FF05C00E94DE +:103D3000D21C81958093DA01DF91CF911F910C9471 +:103D4000F81D9F3F09F08ECF96CFDF91CF911F9145 +:103D50000895E6EDF1E085E0DF011D928A95E9F72F +:103D60001092D5011092D4010895833081F128F486 +:103D7000813059F08230D1F00895853009F449C07E +:103D8000B8F1863009F456C0089580911501262FA8 +:103D900030E0280F311D2F3F310524F4680F609368 +:103DA000150108958FEF80931501089580911401F6 +:103DB000262F30E0280F311D2F3F310524F4680FE6 +:103DC0006093140108958FEF8093140108958091FA +:103DD0001301262F30E0280F311D2F3F310524F429 +:103DE000680F6093130108958FEF80931301089576 +:103DF00080911201262F30E0280F311D2F3F310511 +:103E000024F4680F6093120108958FEF80931201DC +:103E1000089580911101262F30E0280F311D2F3F8A +:103E2000310524F4680F6093110108958FEF80939A +:103E30001101089580911001262F30E0280F311DC7 +:103E40002F3F310524F4680F6093100108958FEF20 +:103E5000809310010895833011F128F4813049F0E6 +:103E6000823091F00895853081F120F18630C1F1E2 +:103E7000089580911501681720F4861B8093150121 +:103E8000089510921501089580911401681720F487 +:103E9000861B809314010895109214010895809157 +:103EA0001301681720F4861B809313010895109264 +:103EB0001301089580911201681720F4861B8093E6 +:103EC000120108951092120108958091110168174E +:103ED00020F4861B8093110108951092110108951A +:103EE00080911001681720F4861B809310010895BB +:103EF0001092100108950F931F938D3109F46BC038 +:103F000008F03FC08E3009F47DC0C0F4873009F45A +:103F10006EC068F4863009F0AFC08091CC01817F1B +:103F20008E7F8093CC0181E08093DC01A6C0883035 +:103F300009F458C08B3009F49BC09EC0863109F447 +:103F400097C078F4803109F470C0813109F094C0D1 +:103F50000E94AB1390910D0181E0892780930D01A0 +:103F600087C0893109F484C08B3109F085C0809104 +:103F7000CC0181FB222720F991E0922790FB81F967 +:103F80004AC0853309F45BC048F4873209F457C04E +:103F900008F45AC0893209F452C06EC0833438F430 +:103FA0008A3308F067C0883309F462C065C083347F +:103FB00009F445C0883409F05FC00E94AB130FEFCD +:103FC00013ED20E3015010402040E1F700C0000055 +:103FD0000E94BA1A4DC00E94FD200E94350E0E9418 +:103FE0002E0746C00E946E1C0E94801C41C090910A +:103FF000CC01892F817090FF12C0917F9E7F90939A +:10400000CC013BC08091CC0182FB222720F991E0BA +:10401000922790FB82F98093CC01992349F18091FA +:10402000CC0181608093CC0123C08091CC0183FBC3 +:10403000222720F991E0922790FB83F9ECCF61E0F1 +:1040400070E080E090E010C08D5141E050E060E011 +:1040500070E08A019B0104C0000F111F221F331F53 +:104060008A95D2F7C901B8010E9467170E94AB1365 +:1040700081E003C08953E9CF80E01F910F9108953B +:1040800080E0089580E00895CF93C82F8091DC01EF +:10409000813079F018F08230E9F187C0E0910E01AB +:1040A000F0910F018081813169F0823209F07FC087 +:1040B00009C0E0910E01F0910F018081813111F072 +:1040C000823261F48C2F0E944020811104C08C2F19 +:1040D0000E947B1F1DC081E090E01AC08C2F0E94BF +:1040E0004220811114C0C43179F048F4CB3079F00A +:1040F000C03109F060C082E08093DC0108C0C932A1 +:1041000019F0C83321F057C01092DC0154C081E08F +:10411000817053C0C93289F118F5C43171F1A8F426 +:10412000C73009F046C08AE08093150194E190936E +:10413000140193E0909313018093120188E080931F +:10414000110188E28093100134C0CE51C63088F549 +:10415000EC2FF0E0E65DFE4F80818093DB0129C00B +:10416000CE34E9F020F4CB3421F56AE013C0C13538 +:1041700079F0C235F1F461E00DC08091DB01882354 +:1041800019F01092DB0115C081E08093DC0115C0AD +:1041900061E006C08091DB010E94B51E0AC06AE0A2 +:1041A0008091DB010E942B1F04C01092DC0180E093 +:1041B00004C081E002C080E0ABCFCF910895E1E878 +:1041C000F0E08081886080838081816080838FB708 +:1041D000F89493E09093890090ED909388008FBFBE +:1041E0000895EFE6F0E08081826080830895EFE635 +:1041F000F0E080818D7F80830895EFE6F0E090818C +:1042000082E08927808308951F920F920FB60F9244 +:1042100011242F933F934F935F936F937F938F93CB +:104220009F93AF93BF93EF93FF938091DD019091A4 +:10423000DE0101969093DE018093DD01811103C0C0 +:1042400082E00E942E07E091DE01E695E695F0E01F +:10425000E657FB4FE4918091DD018E1303C080E0AF +:104260000E942E07FF91EF91BF91AF919F918F9187 +:104270007F916F915F914F913F912F910F900FBE62 +:104280000F901F90189504D06894B1118DC00895B7 +:1042900070D088F09F5790F0B92F9927B751A0F0B0 +:1042A000D1F0660F771F881F991F1AF0BA95C9F7CA +:1042B00012C0B13081F077D0B1E0089574C0672F9B +:1042C000782F8827B85F39F0B93FCCF3869577957A +:1042D0006795B395D9F73EF4909580957095619563 +:1042E0007F4F8F4F9F4F0895E89409C097FB3EF48E +:1042F00090958095709561957F4F8F4F9F4F992333 +:10430000A9F0F92F96E9BB279395F69587957795B0 +:104310006795B795F111F8CFFAF4BB0F11F460FF70 +:104320001BC06F5F7F4F8F4F9F4F16C0882311F0C8 +:1043300096E911C0772321F09EE8872F762F05C0DC +:10434000662371F096E8862F70E060E02AF09A9577 +:10435000660F771F881FDAF7880F9695879597F96C +:10436000089557FD9058440F551F59F05F3F71F065 +:104370004795880F97FB991F61F09F3F79F08795CC +:104380000895121613061406551FF2CF4695F1DF55 +:1043900008C0161617061806991FF1CF86957105E5 +:1043A000610508940895E894BB2766277727CB0119 +:1043B00097F908950BD078C069D028F06ED018F026 +:1043C000952309F05AC05FC01124EECFCADFA0F3D5 +:1043D000959FD1F3950F50E0551F629FF001729F9A +:1043E000BB27F00DB11D639FAA27F00DB11DAA1FB9 +:1043F000649F6627B00DA11D661F829F2227B00D06 +:10440000A11D621F739FB00DA11D621F839FA00D90 +:10441000611D221F749F3327A00D611D231F849FE0 +:10442000600D211D822F762F6A2F11249F57504037 +:104430008AF0E1F088234AF0EE0FFF1FBB1F661FD2 +:10444000771F881F91505040A9F79E3F510570F08B +:1044500014C0AACF5F3FECF3983EDCF386957795C6 +:104460006795B795F795E7959F5FC1F7FE2B880F86 +:10447000911D9695879597F9089597F99F6780E81C +:1044800070E060E008959FEF80EC089500240A94A6 +:104490001616170618060906089500240A9412161F +:1044A0001306140605060895092E0394000C11F452 +:1044B000882352F0BB0F40F4BF2B11F460FF04C0FF +:1044C0006F5F7F4F8F4F9F4F089597FB072E16F416 +:1044D000009407D077FD09D00E947F2207FC05D009 +:1044E0003EF4909581959F4F0895709561957F4F0B +:1044F0000895EE0FFF1F0590F491E02D0994AA1B7B +:10450000BB1B51E107C0AA1FBB1FA617B70710F0BE +:10451000A61BB70B881F991F5A95A9F780959095F0 +:10452000BC01CD010895F999FECF92BD81BDF89AE5 +:10453000992780B50895A8E1B0E042E050E00C94DE +:10454000B622262FF999FECF1FBA92BD81BD20BD9C +:104550000FB6F894FA9AF99A0FBE019608950E9440 +:10456000A122272F0C94A222DC01CB01FC01F99996 +:10457000FECF06C0F2BDE1BDF89A319600B40D92AF +:0C45800041505040B8F70895F894FFCF68 +:10458C0020023007BE079B07670733070101BA01FA +:10459C0028080A03140A3F4D36394B04FE03C8039E +:1045AC008F0322033B0354036D030102030405062E +:0445BC0007080900E3 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/msc/readme.md b/keyboard/ergodox_ez/keymaps/msc/readme.md new file mode 100644 index 000000000..0d14fcbd2 --- /dev/null +++ b/keyboard/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. -- cgit v1.2.3 From 577971ab07a49405e1dcd8e5f75b3ecb87e710b9 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Mon, 28 Mar 2016 00:03:21 -0500 Subject: Magic Key Overrides / Keyboard Lock / Forced NKRO Added Magic Key Overrides / Magic Key Cleanup / Added Keyboard Lock option to template / Added forced NKRO option to template (disabled by default) --- keyboard/retro_refit/Makefile | 23 +-- keyboard/retro_refit/config.h | 47 +++++- quantum/template/Makefile | 23 +-- quantum/template/config.h | 47 +++++- tmk_core/common/command.c | 353 +++++++++++++++++++++++++++++------------- tmk_core/common/command.h | 121 +++++++++++++++ tmk_core/common/keyboard.c | 6 + 7 files changed, 488 insertions(+), 132 deletions(-) (limited to 'keyboard') diff --git a/keyboard/retro_refit/Makefile b/keyboard/retro_refit/Makefile index ec51227ff..918b43071 100644 --- a/keyboard/retro_refit/Makefile +++ b/keyboard/retro_refit/Makefile @@ -113,18 +113,19 @@ 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 +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 +# 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 # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/retro_refit/config.h b/keyboard/retro_refit/config.h index ba9a861ed..05fceb92b 100644 --- a/keyboard/retro_refit/config.h +++ b/keyboard/retro_refit/config.h @@ -53,11 +53,54 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ + +/* 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. @@ -76,4 +119,4 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#endif +#endif \ No newline at end of file diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 2efa69138..4fa195468 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -113,18 +113,19 @@ 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 +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 +# 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 # Optimize size but this may cause error "relocation truncated to fit" diff --git a/quantum/template/config.h b/quantum/template/config.h index 7d6149f43..dae4b6313 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -55,11 +55,56 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ +/* 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 + +/* 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. diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index d59bb01bb..b4cd3ca56 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -52,6 +52,8 @@ along with this program. If not, see . static bool command_common(uint8_t code); static void command_common_help(void); +static void print_version(void); +static void print_status(void); static bool command_console(uint8_t code); static void command_console_help(void); #ifdef MOUSEKEY_ENABLE @@ -112,35 +114,140 @@ bool command_console_extra(uint8_t code) ***********************************************************/ static void command_common_help(void) { - print("\n\t- Magic -\n" - "d: debug\n" - "x: debug matrix\n" - "k: debug keyboard\n" - "m: debug mouse\n" - "v: version\n" - "s: status\n" - "c: console mode\n" - "0-4: layer0-4(F10-F4)\n" - "Paus: bootloader\n" + print( "\n\t- Magic -\n" + STR(MAGIC_KEY_DEBUG ) ": Debug Message Toggle\n" + STR(MAGIC_KEY_DEBUG_MATRIX) ": Matrix Debug Mode Toggle - Show keypresses in matrix grid\n" + STR(MAGIC_KEY_DEBUG_KBD ) ": Keyboard Debug Toggle - Show keypress report\n" + STR(MAGIC_KEY_DEBUG_MOUSE ) ": Debug Mouse Toggle\n" + STR(MAGIC_KEY_VERSION ) ": Version\n" + STR(MAGIC_KEY_STATUS ) ": Status\n" + STR(MAGIC_KEY_CONSOLE ) ": Activate Console Mode\n" + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + STR(MAGIC_KEY_LAYER0 ) ": Switch to Layer 0\n" + STR(MAGIC_KEY_LAYER1 ) ": Switch to Layer 1\n" + STR(MAGIC_KEY_LAYER2 ) ": Switch to Layer 2\n" + STR(MAGIC_KEY_LAYER3 ) ": Switch to Layer 3\n" + STR(MAGIC_KEY_LAYER4 ) ": Switch to Layer 4\n" + STR(MAGIC_KEY_LAYER5 ) ": Switch to Layer 5\n" + STR(MAGIC_KEY_LAYER6 ) ": Switch to Layer 6\n" + STR(MAGIC_KEY_LAYER7 ) ": Switch to Layer 7\n" + STR(MAGIC_KEY_LAYER8 ) ": Switch to Layer 8\n" + STR(MAGIC_KEY_LAYER9 ) ": Switch to Layer 9\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + "F1-F10: Switch to Layer 0-9 (F10 = L0)\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + "0-9: Switch to Layer 0-9\n" +#endif + + STR(MAGIC_KEY_LAYER0_ALT1 ) ": Switch to Layer 0 (alternate key 1)\n" + STR(MAGIC_KEY_LAYER0_ALT2 ) ": Switch to Layer 0 (alternate key 2)\n" + STR(MAGIC_KEY_BOOTLOADER ) ": Jump to Bootloader (Reset)\n" #ifdef KEYBOARD_LOCK_ENABLE - "Caps: Lock\n" + STR(MAGIC_KEY_LOCK ) ": Lock\n" #endif #ifdef BOOTMAGIC_ENABLE - "e: eeprom\n" + STR(MAGIC_KEY_EEPROM ) ": Print EEPROM Settings\n" #endif #ifdef NKRO_ENABLE - "n: NKRO\n" + STR(MAGIC_KEY_NKRO ) ": NKRO Toggle\n" #endif #ifdef SLEEP_LED_ENABLE - "z: sleep LED test\n" + STR(MAGIC_KEY_SLEEP_LED ) ": Sleep LED Test\n" #endif ); } +static void print_version(void) +{ + // print version & information + print("\n\t- Version -\n"); + print("DESC: " STR(DESCRIPTION) "\n"); + print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " + "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " + "VER: " STR(DEVICE_VER) "\n"); + print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); + + /* build options */ + print("OPTIONS:" + +#ifdef PROTOCOL_PJRC + " PJRC" +#endif +#ifdef PROTOCOL_LUFA + " LUFA" +#endif +#ifdef PROTOCOL_VUSB + " VUSB" +#endif +#ifdef BOOTMAGIC_ENABLE + " BOOTMAGIC" +#endif +#ifdef MOUSEKEY_ENABLE + " MOUSEKEY" +#endif +#ifdef EXTRAKEY_ENABLE + " EXTRAKEY" +#endif +#ifdef CONSOLE_ENABLE + " CONSOLE" +#endif +#ifdef COMMAND_ENABLE + " COMMAND" +#endif +#ifdef NKRO_ENABLE + " NKRO" +#endif +#ifdef KEYMAP_SECTION_ENABLE + " KEYMAP_SECTION" +#endif + + " " STR(BOOTLOADER_SIZE) "\n"); + + print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) + " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ + " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + + return; +} + +static void print_status(void) +{ + + print("\n\t- Status -\n"); + + print_val_hex8(host_keyboard_leds()); + print_val_hex8(keyboard_protocol); + print_val_hex8(keyboard_idle); +#ifdef NKRO_ENABLE + print_val_hex8(keyboard_nkro); +#endif + print_val_hex32(timer_count); + +#ifdef PROTOCOL_PJRC + print_val_hex8(UDCON); + print_val_hex8(UDIEN); + print_val_hex8(UDINT); + print_val_hex8(usb_keyboard_leds); + print_val_hex8(usb_keyboard_idle_count); +#endif + +#ifdef PROTOCOL_PJRC +# if USB_COUNT_SOF + print_val_hex8(usbSofCount); +# endif +#endif + return; +} + #ifdef BOOTMAGIC_ENABLE static void print_eeconfig(void) { @@ -178,24 +285,36 @@ static void print_eeconfig(void) static bool command_common(uint8_t code) { + +#ifdef KEYBOARD_LOCK_ENABLE static host_driver_t *host_driver = 0; +#endif + switch (code) { + #ifdef SLEEP_LED_ENABLE - case KC_Z: - // test breathing sleep LED - print("Sleep LED test\n"); + + // test breathing sleep LED + case MAGIC_KC(MAGIC_KEY_SLEEP_LED): + print("Sleep LED Test\n"); sleep_led_toggle(); led_set(host_keyboard_leds()); break; #endif + #ifdef BOOTMAGIC_ENABLE - case KC_E: + + // print stored eeprom config + case MAGIC_KC(MAGIC_KEY_EEPROM): print("eeconfig:\n"); print_eeconfig(); break; #endif + #ifdef KEYBOARD_LOCK_ENABLE - case KC_CAPSLOCK: + + // lock/unlock keyboard + case MAGIC_KC(MAGIC_KEY_LOCK): if (host_get_driver()) { host_driver = host_get_driver(); clear_keyboard(); @@ -207,11 +326,15 @@ static bool command_common(uint8_t code) } break; #endif - case KC_H: - case KC_SLASH: /* ? */ + + // print help + case MAGIC_KC(MAGIC_KEY_HELP1): + case MAGIC_KC(MAGIC_KEY_HELP2): command_common_help(); break; - case KC_C: + + // activate console + case MAGIC_KC(MAGIC_KEY_CONSOLE): debug_matrix = false; debug_keyboard = false; debug_mouse = false; @@ -220,25 +343,33 @@ static bool command_common(uint8_t code) print("C> "); command_state = CONSOLE; break; - case KC_PAUSE: - clear_keyboard(); - print("\n\nbootloader... "); + + // jump to bootloader + case MAGIC_KC(MAGIC_KEY_BOOTLOADER): + clear_keyboard(); // clear to prevent stuck keys + print("\n\nJumping to bootloader... "); _delay_ms(1000); bootloader_jump(); // not return break; - case KC_D: + + // debug toggle + case MAGIC_KC(MAGIC_KEY_DEBUG): + debug_enable = !debug_enable; if (debug_enable) { + print("\ndebug: on\n"); + debug_matrix = true; + debug_keyboard = true; + debug_mouse = true; + } else { print("\ndebug: off\n"); debug_matrix = false; debug_keyboard = false; debug_mouse = false; - debug_enable = false; - } else { - print("\ndebug: on\n"); - debug_enable = true; } break; - case KC_X: // debug matrix toggle + + // debug matrix toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX): debug_matrix = !debug_matrix; if (debug_matrix) { print("\nmatrix: on\n"); @@ -247,7 +378,9 @@ static bool command_common(uint8_t code) print("\nmatrix: off\n"); } break; - case KC_K: // debug keyboard toggle + + // debug keyboard toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_KBD): debug_keyboard = !debug_keyboard; if (debug_keyboard) { print("\nkeyboard: on\n"); @@ -256,87 +389,33 @@ static bool command_common(uint8_t code) print("\nkeyboard: off\n"); } break; - case KC_M: // debug mouse toggle + + // debug mouse toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MOUSE): debug_mouse = !debug_mouse; if (debug_mouse) { print("\nmouse: on\n"); debug_enable = true; } else { - print("\nmouse: off\n"); + print("\nmouse: off\n"); } break; - case KC_V: // print version & information - print("\n\t- Version -\n"); - print("DESC: " STR(DESCRIPTION) "\n"); - print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " - "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " - "VER: " STR(DEVICE_VER) "\n"); - print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); - /* build options */ - print("OPTIONS:" -#ifdef PROTOCOL_PJRC - " PJRC" -#endif -#ifdef PROTOCOL_LUFA - " LUFA" -#endif -#ifdef PROTOCOL_VUSB - " VUSB" -#endif -#ifdef BOOTMAGIC_ENABLE - " BOOTMAGIC" -#endif -#ifdef MOUSEKEY_ENABLE - " MOUSEKEY" -#endif -#ifdef EXTRAKEY_ENABLE - " EXTRAKEY" -#endif -#ifdef CONSOLE_ENABLE - " CONSOLE" -#endif -#ifdef COMMAND_ENABLE - " COMMAND" -#endif -#ifdef NKRO_ENABLE - " NKRO" -#endif -#ifdef KEYMAP_SECTION_ENABLE - " KEYMAP_SECTION" -#endif - " " STR(BOOTLOADER_SIZE) "\n"); - print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) - " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ - " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); - break; - case KC_S: - print("\n\t- Status -\n"); - print_val_hex8(host_keyboard_leds()); - print_val_hex8(keyboard_protocol); - print_val_hex8(keyboard_idle); -#ifdef NKRO_ENABLE - print_val_hex8(keyboard_nkro); -#endif - print_val_hex32(timer_count); - -#ifdef PROTOCOL_PJRC - print_val_hex8(UDCON); - print_val_hex8(UDIEN); - print_val_hex8(UDINT); - print_val_hex8(usb_keyboard_leds); - print_val_hex8(usb_keyboard_idle_count); -#endif + // print version + case MAGIC_KC(MAGIC_KEY_VERSION): + print_version(); + break; -#ifdef PROTOCOL_PJRC -# if USB_COUNT_SOF - print_val_hex8(usbSofCount); -# endif -#endif + // print status + case MAGIC_KC(MAGIC_KEY_STATUS): + print_status(); break; + #ifdef NKRO_ENABLE - case KC_N: - clear_keyboard(); //Prevents stuck keys. + + // NKRO toggle + case MAGIC_KC(MAGIC_KEY_NKRO): + clear_keyboard(); // clear to prevent stuck keys keyboard_nkro = !keyboard_nkro; if (keyboard_nkro) print("NKRO: on\n"); @@ -344,18 +423,78 @@ static bool command_common(uint8_t code) print("NKRO: off\n"); break; #endif - case KC_ESC: - case KC_GRV: - case KC_0: + + // switch layers + + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT1): + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT2): + switch_default_layer(0); + break; + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + + case MAGIC_KC(MAGIC_KEY_LAYER0): + switch_default_layer(0); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER1): + switch_default_layer(1); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER2): + switch_default_layer(2); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER3): + switch_default_layer(3); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER4): + switch_default_layer(4); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER5): + switch_default_layer(5); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER6): + switch_default_layer(6); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER7): + switch_default_layer(7); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER8): + switch_default_layer(8); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER9): + switch_default_layer(9); + break; +#endif + + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + + case KC_F1 ... KC_F9: + switch_default_layer((code - KC_F1) + 1); + break; case KC_F10: switch_default_layer(0); break; +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + case KC_1 ... KC_9: switch_default_layer((code - KC_1) + 1); break; - case KC_F1 ... KC_F9: - switch_default_layer((code - KC_F1) + 1); + case KC_0: + switch_default_layer(0); break; +#endif + default: print("?"); return false; diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index b57a6c1ce..92b18849b 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -32,4 +32,125 @@ bool command_proc(uint8_t code); #define command_proc(code) false #endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +#endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +#endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false +#endif + +#ifndef MAGIC_KEY_HELP1 +#define MAGIC_KEY_HELP1 H +#endif + +#ifndef MAGIC_KEY_HELP2 +#define MAGIC_KEY_HELP2 SLASH +#endif + +#ifndef MAGIC_KEY_DEBUG +#define MAGIC_KEY_DEBUG D +#endif + +#ifndef MAGIC_KEY_DEBUG_MATRIX +#define MAGIC_KEY_DEBUG_MATRIX X +#endif + +#ifndef MAGIC_KEY_DEBUG_KBD +#define MAGIC_KEY_DEBUG_KBD K +#endif + +#ifndef MAGIC_KEY_DEBUG_MOUSE +#define MAGIC_KEY_DEBUG_MOUSE M +#endif + +#ifndef MAGIC_KEY_VERSION +#define MAGIC_KEY_VERSION V +#endif + +#ifndef MAGIC_KEY_STATUS +#define MAGIC_KEY_STATUS S +#endif + +#ifndef MAGIC_KEY_CONSOLE +#define MAGIC_KEY_CONSOLE C +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT1 +#define MAGIC_KEY_LAYER0_ALT1 ESC +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT2 +#define MAGIC_KEY_LAYER0_ALT2 GRAVE +#endif + +#ifndef MAGIC_KEY_LAYER0 +#define MAGIC_KEY_LAYER0 0 +#endif + +#ifndef MAGIC_KEY_LAYER1 +#define MAGIC_KEY_LAYER1 1 +#endif + +#ifndef MAGIC_KEY_LAYER2 +#define MAGIC_KEY_LAYER2 2 +#endif + +#ifndef MAGIC_KEY_LAYER3 +#define MAGIC_KEY_LAYER3 3 +#endif + +#ifndef MAGIC_KEY_LAYER4 +#define MAGIC_KEY_LAYER4 4 +#endif + +#ifndef MAGIC_KEY_LAYER5 +#define MAGIC_KEY_LAYER5 5 +#endif + +#ifndef MAGIC_KEY_LAYER6 +#define MAGIC_KEY_LAYER6 6 +#endif + +#ifndef MAGIC_KEY_LAYER7 +#define MAGIC_KEY_LAYER7 7 +#endif + +#ifndef MAGIC_KEY_LAYER8 +#define MAGIC_KEY_LAYER8 8 #endif + +#ifndef MAGIC_KEY_LAYER9 +#define MAGIC_KEY_LAYER9 9 +#endif + +#ifndef MAGIC_KEY_BOOTLOADER +#define MAGIC_KEY_BOOTLOADER PAUSE +#endif + +#ifndef MAGIC_KEY_LOCK +#define MAGIC_KEY_LOCK CAPS +#endif + +#ifndef MAGIC_KEY_EEPROM +#define MAGIC_KEY_EEPROM E +#endif + +#ifndef MAGIC_KEY_NKRO +#define MAGIC_KEY_NKRO N +#endif + +#ifndef MAGIC_KEY_SLEEP_LED +#define MAGIC_KEY_SLEEP_LED Z + +#endif + +#define XMAGIC_KC(key) KC_##key +#define MAGIC_KC(key) XMAGIC_KC(key) + +#endif \ No newline at end of file diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index eb7b096be..e66808485 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -70,6 +70,7 @@ void keyboard_setup(void) void keyboard_init(void) { + timer_init(); matrix_init(); #ifdef PS2_MOUSE_ENABLE @@ -90,6 +91,11 @@ void keyboard_init(void) #ifdef BACKLIGHT_ENABLE backlight_init(); #endif + +#ifdef FORCE_NKRO + keyboard_nkro = true; +#endif + } /* -- cgit v1.2.3 From a1ce1332034a3f01049aab10f4a55ee6fd5560d9 Mon Sep 17 00:00:00 2001 From: Matthew Carroll Date: Mon, 28 Mar 2016 06:00:05 -0400 Subject: Corrected duplicate image issue --- keyboard/ergodox_ez/keymaps/msc/img/code_layer.png | Bin 86217 -> 71266 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png index 1d707c5ea..7b5efaae7 100644 Binary files a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png and b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png differ -- cgit v1.2.3 From 482dbe4c455eb373aaa75fffdd08ec18945a3658 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 28 Mar 2016 07:24:51 -0700 Subject: Didn't --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index b60a55989..97cc3bc35 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, KC_FN3, KC_F5, KC_PGUP, - KC_SPC,KC_BSPC,KC_PGDN, + 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, @@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, KC_F2, KC_FN2, KC_INS, - KC_DELT,KC_FN1, KC_ENT + KC_DELT,KC_FN1, KC_SPC ), /* Keymap 1: Symbol Layer * -- cgit v1.2.3 From bcebb3447c155056819d42668943110ab0868517 Mon Sep 17 00:00:00 2001 From: Damien Pollet Date: Mon, 28 Mar 2016 16:14:54 +0200 Subject: Add action-preprocessing kb/user hooks in planck --- keyboard/planck/planck.c | 32 +++++++++++++++++--------------- keyboard/planck/planck.h | 1 + 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index fe8731ec7..4b39cf1e8 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,28 +1,26 @@ #include "planck.h" __attribute__ ((weak)) -void matrix_init_user(void) { - -} +void matrix_init_user(void) {} __attribute__ ((weak)) -void matrix_scan_user(void) { +void matrix_scan_user(void) {} -} +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {} void matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif - #ifdef RGBLIGHT_ENABLE - rgblight_init(); - #endif +#ifdef RGBLIGHT_ENABLE + rgblight_init(); +#endif - - // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); matrix_init_user(); } @@ -30,3 +28,7 @@ void matrix_init_kb(void) { void matrix_scan_kb(void) { matrix_scan_user(); } + +void process_action_kb(keyrecord_t *record) { + process_action_user(record); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index e9566b922..edcb5fbff 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -42,5 +42,6 @@ void matrix_init_user(void); void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); #endif -- cgit v1.2.3 From ad2d3144eda0f884230610bbb011b40419e76cdb Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 28 Mar 2016 15:50:09 +0100 Subject: Forgot to change ent/spc --- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 1390 +++++++++++++------------ 1 file changed, 697 insertions(+), 693 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index aadc3550d..6e7bd2b73 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -2,27 +2,27 @@ :100010000C9410030C9410030C9410030C94100314 :100020000C9410030C9410030C943A0C0C940C0DCB :100030000C9410030C9410030C9410030C941003F4 -:100040000C9410030C9480210C9410030C94100356 -:100050000C9410030C94121B0C9410030C941003BA +:100040000C9410030C94A0210C9410030C94100336 +:100050000C9410030C94321B0C9410030C9410039A :100060000C9410030C9410030C9410030C941003C4 :100070000C9410030C9410030C9410030C941003B4 :100080000C9410030C9410030C9410030C941003A4 :100090000C9410030C9410030C9410030C94100394 :1000A0000C9410030C9410030C941003790D9B0D09 :1000B0008E0E9B0D8E0EE00D030E8E0E580E6B0EE7 -:1000C0005511551184118411C71101120E140E140B -:1000D0001A120E140F130F13E2130E140E14F91349 +:1000C0005A115A1189118911CC11061213141314E3 +:1000D0001F12131414131413E71313141314FE1321 :1000E00075FF01E20157025701620262016202627A :1000F00001040204015B025B02E2000000F0A1F0D7 :10010000A2F0A329002B00E300E100E00000001EA4 :1001100000140004001D7406014E001F001A001692 :10012000001B0019012A00200008000700060050EB -:10013000002C0021001500090019004F004B00227F +:1001300000280021001500090019004F004B002283 :100140000017000A0005000000C30023002F000074 :10015000004A0000003E002400300000004D000076 :10016000003B0025001C000B0011000000C200260F :100170000018000D0010005100490027000C000E6F -:10018000003600520028002D0012000F003700003A +:1001800000360052002C002D0012000F0037000036 :100190007FC1002E0013003300380035004C002AC8 :1001A0000031003400E500E400000001000100011E :1001B000000100010000003A001E0220022202039A @@ -88,20 +88,20 @@ :10057000FCFFFCF5E9DAC7B39D87715D4A3A2C2090 :10058000170F0A060402010000000000000000002E :10059000000011241FBECFEFDAE0DEBFCDBF04B6EE -:1005A00003FE27C08091ED019091EE01A091EF0133 -:1005B000B091F0018730904BA740B04BD1F410922E -:1005C000ED011092EE011092EF011092F00114BEB5 +:1005A00003FE27C08091EE019091EF01A091F00130 +:1005B000B091F1018730904BA740B04BD1F410922D +:1005C000EE011092EF011092F0011092F10114BEB1 :1005D00084B7877F84BF0FB6F894A8958091600098 :1005E000886180936000109260000FBEE0E0FFE33E -:1005F000099511E0A0E0B1E0E2EAF6E402C005905E +:1005F000099511E0A0E0B1E0E2EEF6E402C005905A :100600000D92A433B107D9F721E0A4E3B1E001C012 -:100610001D92AD3EB207E1F70E9481090C944F2371 +:100610001D92AE3EB207E1F70E9481090C946F2350 :100620000C940000CF93DF93EC01662319F0633044 :1006300059F00DC08A81882321F085EE0E94EF0FCA :1006400003C085EE0E94B7108A81811103C080E04B :1006500090E002C080EE90E0DF91CF910895089580 :100660006091B1017091B2018091B3019091B40198 -:100670000E943F1A56985E9825982D9826982E9895 +:100670000E945F1A56985E9825982D9826982E9875 :1006800027982F98823039F0833041F0813041F43F :10069000259A2D9A0895269A2E9A0895279A2F9A88 :1006A00008950C94300356985E9825982D982698B6 @@ -211,9 +211,9 @@ :100D200021154FE1340708F425C13F512115304109 :100D300020F49F700E94740608959C013053211581 :100D4000304118F49927906C0895811520E5920799 -:100D500069F40E9430144FEF84E39CE041508040DE -:100D60009040E1F700C000000C94371B813020E573 -:100D7000920731F48091CC0181608093CC01089579 +:100D500069F40E9437144FEF84E39CE041508040D7 +:100D60009040E1F700C000000C94571B813020E553 +:100D7000920731F48091CD0181608093CD01089577 :100D80009C0130552115304108F05CC0292F3327D4 :100D90002F70332721303105E9F4AC0164E0440FB2 :100DA000551F6A95E1F744275370BC01637077279C @@ -234,37 +234,37 @@ :100E9000E9F082389105D1F08533910509F44DC010 :100EA00067C0833E910581F138F4803E9105B9F029 :100EB000823E9105D9F05CC0863E910561F1873E86 -:100EC0009105A1F155C00E946C0608952091DE01A4 +:100EC0009105A1F155C00E946C0608952091DF01A3 :100ED00020FD02C021FF4CC080EE90E049C080910F -:100EE000DE0180FFF9CF89E390E042C08091DE010E -:100EF00082FF0EC08091DE0184FF03C080E090E09D -:100F000037C083EE90E034C08091DE0182FFF2CFE3 -:100F100082EE90E02DC08091DE0183FF0BC08091B6 -:100F2000DE0184FDEBCF87EE90E022C08091DE01F0 -:100F300083FFF5CF86EE90E01BC08091DE0185FF38 -:100F400007C089E290E014C08091DE0185FFF9CFEF -:100F500085E390E00DC08091DE0186FF07C08AE244 -:100F600090E006C08091DE0186FFF9CF81E390E03A +:100EE000DF0180FFF9CF89E390E042C08091DF010C +:100EF00082FF0EC08091DF0184FF03C080E090E09C +:100F000037C083EE90E034C08091DF0182FFF2CFE2 +:100F100082EE90E02DC08091DF0183FF0BC08091B5 +:100F2000DF0184FDEBCF87EE90E022C08091DF01EE +:100F300083FFF5CF86EE90E01BC08091DF0185FF37 +:100F400007C089E290E014C08091DF0185FFF9CFEE +:100F500085E390E00DC08091DF0186FF07C08AE243 +:100F600090E006C08091DF0186FFF9CF81E390E039 :100F70000E949805089508950C94BB078091620122 :100F80000895CF93DF9300D01F92CDB7DEB79C01B9 -:100F90008091E401843019F593E099833B832A839F +:100F90008091E501843019F593E099833B832A839E :100FA0009093E9008FEF9091E800815095FD06C085 :100FB00095ED9A95F1F700008111F5CF8091E80049 :100FC00085FF0DC040E050E063E070E0CE01019687 :100FD0000E942E0A8091E8008E778093E8000F909F :100FE0000F900F90DF91CF910895CF93DF9300D0B2 -:100FF0001F92CDB7DEB72091E401243021F522E025 +:100FF0001F92CDB7DEB72091E501243021F522E024 :1010000029839B838A8383E08093E9008FEF90910B :10101000E800815095FD06C095ED9A95F1F7000026 :101020008111F5CF8091E80085FF0DC040E050E0D0 :1010300063E070E0CE0101960E942E0A8091E800E4 :101040008E778093E8000F900F900F90DF91CF91F3 -:1010500008959C018091E4018430F9F482E080934A +:1010500008959C018091E5018430F9F482E0809349 :10106000E9009FEF8091E800915085FD06C085ED75 :101070008A95F1F700009111F5CF8091E80085FF86 :101080000CC040E050E065E070E0C9010E942E0A0B :101090008091E8008E778093E8000895CF93DF93E6 -:1010A000EC018091E401843009F046C090910C017C +:1010A000EC018091E501843009F046C090910C017B :1010B0009923D9F090910D019923B9F08093E9001B :1010C0008FEF9091E800815095FD06C095E19A95CB :1010D000F1F700008111F5CF8091E80085FF2CC069 @@ -274,32 +274,32 @@ :1011100040E050E068E070E0CE010E942E0A80912D :10112000E8008E778093E80080E1FE01A2E5B1E05F :1011300001900D928A95E1F7DF91CF91089580910A -:10114000E301811109C00E94BF0B0E941C0C809119 -:10115000E20084608093E20008951092E301089514 -:1011600008950C946D210E94CD1A0E9473210E9453 +:10114000E401811109C00E94BF0B0E941C0C809118 +:10115000E20084608093E20008951092E401089513 +:1011600008950C948D210E94ED1A0E9493210E94F3 :10117000C70E0C94BC0742E061EC81E00E94380B82 :1011800042E061EC82E00E94380B42E061EC83E0D7 :101190000E94380B42E161EC84E00C94380B8091A2 -:1011A000E601833009F455C030F4813071F08230AB +:1011A000E701833009F455C030F4813071F08230AA :1011B00009F48EC008958A3009F47AC08B3009F49E -:1011C00060C0893009F09CC020C08091E501813A5F +:1011C00060C0893009F09CC020C08091E601813A5E :1011D00009F096C08091E800877F8093E8008091B5 -:1011E000E9019091EA01892B21F460E182E591E027 +:1011E000EA019091EB01892B21F460E182E591E025 :1011F00003C060E080E090E070E00E94790A809196 -:10120000E8008B778093E80008958091E5018132B2 -:1012100009F076C08091E9019091EA01009719F0F8 +:10120000E8008B778093E80008958091E6018132B1 +:1012100009F076C08091EA019091EB01009719F0F6 :10122000039709F06DC08091E800877F8093E80004 -:101230008091E80082FD05C08091E4018111F8CF22 +:101230008091E80082FD05C08091E5018111F8CF21 :101240005FC08091F100809362018091E8008B770C -:1012500053C08091E501813A09F052C08091E901C3 -:101260009091EA01892B09F04BC08091E800877FBB +:1012500053C08091E601813A09F052C08091EA01C1 +:101260009091EB01892B09F04BC08091E800877FBA :101270008093E8008091E80080FFFCCF80910C0112 -:1012800036C08091E5018132D9F58091E9019091D4 -:10129000EA01892BA9F58091E800877F8093E80017 -:1012A0000E946D0B8091E70180930C010C94301427 -:1012B0008091E501813221F58091E800877F80935C -:1012C000E8000E946D0B8091E8018093630108950E -:1012D0008091E501813AA1F48091E800877F8093B5 +:1012800036C08091E6018132D9F58091EA019091D2 +:10129000EB01892BA9F58091E800877F8093E80016 +:1012A0000E946D0B8091E80180930C010C9437141F +:1012B0008091E601813221F58091E800877F80935B +:1012C000E8000E946D0B8091E9018093630108950D +:1012D0008091E601813AA1F48091E800877F8093B4 :1012E000E8008091E80080FFFCCF8091630180934B :1012F000F1008091E8008E778093E8000C946D0BEC :10130000089584B7877F84BF0FB6F894A89580911D @@ -307,9 +307,9 @@ :1013200080E80FB6F89480936100909361000FBE3F :101330000E94160F0E94BF0B0E941C0C8091E200BD :1013400084608093E20078940E94A70E0E94180F98 -:1013500082E091E00E94C20E0E945B218091E40134 -:10136000853069F40E948F1A8091E2018823B1F3DD -:101370000E94B91A882391F30E94180AEFCF0E94A5 +:1013500082E091E00E94C20E0E947B218091E50113 +:10136000853069F40E94AF1A8091E3018823B1F3BC +:101370000E94D91A882391F30E94180AEFCF0E9485 :101380001E0FECCF292F332723303105C9F060F42D :101390002130310581F02230310509F041C08DE660 :1013A00090E027ED33E040C021323105E1F02232F8 @@ -333,28 +333,28 @@ :1014C0000FC00E948C0B882321F30AC0899180935E :1014D000F10001501109FFEFEF1AFF0ADACF80E0A7 :1014E000DF91CF911F910F91FF90EF90DF90CF9000 -:1014F00008952091EB013091EC012617370748F051 +:1014F00008952091EC013091ED012617370748F04F :101500006115710539F42091E8002E772093E800E9 :1015100001C0B901FC0120E06115710579F18091EC -:10152000E4018823F1F18530F1F18091E80083FD39 +:10152000E5018823F1F18530F1F18091E80083FD38 :101530003CC08091E80082FD2EC08091E80080FFD1 :10154000EBCF2091F3008091F20090E0922B611597 :10155000710551F08830910538F421912093F10004 :10156000615071090196F3CF21E0089709F020E05E :101570008091E8008E778093E800CECF2111CFCF05 -:101580000AC08091E401882361F0853061F0809188 +:101580000AC08091E501882361F0853061F0809187 :10159000E80083FD0AC08091E80082FFF2CF80E07E :1015A000089582E0089583E0089581E008952091F0 -:1015B000EB013091EC012617370748F061157105F2 +:1015B000EC013091ED012617370748F061157105F0 :1015C00039F42091E8002E772093E80001C0B9019A -:1015D000FC0120E06115710591F18091E4018823FF +:1015D000FC0120E06115710591F18091E5018823FE :1015E00009F440C0853009F43FC08091E80083FDD4 :1015F0003DC08091E80082FD2FC08091E80080FF0F :10160000E9CF2091F3008091F20090E0922B6115D8 :10161000710559F08830910540F424912093F10030 :101620003196615071090196F2CF21E0089709F0D7 :1016300020E08091E8008E778093E800CBCF2111E5 -:10164000CCCF0AC08091E401882361F0853061F03D +:10164000CCCF0AC08091E501882361F0853061F03C :101650008091E80083FD0AC08091E80082FFF2CF0C :1016600080E0089582E0089583E0089581E0089580 :10167000982F973068F59093E900981739F070919A @@ -363,31 +363,31 @@ :1016A0003093EB003091ED003D7F3093ED003091B1 :1016B000EB0031603093EB007093EC002093ED0071 :1016C0005093F0002091EE0027FDE5CF80E00895D3 -:1016D0008F708093E90081E008958091E50187FF94 -:1016E00011C08091E80082FD05C08091E401811164 -:1016F000F8CF11C08091E8008B770BC08091E40196 +:1016D0008F708093E90081E008958091E60187FF93 +:1016E00011C08091E80082FD05C08091E501811163 +:1016F000F8CF11C08091E8008B770BC08091E50195 :10170000882349F08091E80080FFF8CF8091E800BD :101710008E778093E80008952091E4003091E500F1 :1017200095E64091EC00842F817040FF23C08091AA -:10173000E80080FD1DC08091E401882399F0853088 +:10173000E80080FD1DC08091E501882399F0853087 :1017400099F08091EB0085FD11C04091E40050912B :10175000E5002417350729F3915011F09A01E1CFE4 :1017600084E0089582E0089583E0089581E008957B :1017700080E008954091E80042FFDDCF08950E9487 :101780002D0C0E94350CE0EEF0E0808181608083BA :10179000E8EDF0E080818F77808319BCA7EDB0E0A1 -:1017A0008C918E7F8C9380818F7E80831092E30159 +:1017A0008C918E7F8C9380818F7E80831092E40158 :1017B00008950F931F93CF93DF930E942D0C0E94E7 :1017C000350CC8EDD0E088818F7788838881806868 -:1017D000888388818F7D888319BC1092E4011092E0 -:1017E000E0011092E2011092E10100EE10E0F80138 +:1017D000888388818F7D888319BC1092E5011092DF +:1017E000E1011092E3011092E20100EE10E0F80135 :1017F00080818B7F808388818160888342E060E084 :1018000080E00E94380BE1EEF0E080818E7F8083E3 :10181000E2EEF0E080818160808380818860808357 :10182000F80180818E7F8083888180618883DF9149 :10183000CF911F910F910895E8EDF0E080818F7EA8 :101840008083E7EDF0E080818160808384E082BF67 -:1018500081E08093E3010C94D90BE8EDF0E0808106 +:1018500081E08093E4010C94D90BE8EDF0E0808105 :101860008E7F80831092E20008951092DA00109229 :10187000E10008951F920F920FB60F9211242F933B :101880003F934F935F936F937F938F939F93AF9308 @@ -396,20 +396,20 @@ :1018B0000E94A60E8091DA0080FF1FC08091D800A0 :1018C00080FF1BC08091DA008E7F8093DA008091C8 :1018D000D90080FF0DC080E189BD82E189BD09B4D6 -:1018E00000FEFDCF81E08093E4010E949F0805C0C7 -:1018F00019BC1092E4010E94AD088091E10080FFC4 +:1018E00000FEFDCF81E08093E5010E949F0805C0C6 +:1018F00019BC1092E5010E94AD088091E10080FFC3 :1019000019C08091E20080FF15C08091E2008E7FB7 :101910008093E2008091E20080618093E2008091F8 -:10192000D80080628093D80019BC85E08093E401E0 +:10192000D80080628093D80019BC85E08093E501DF :101930000E94B1088091E10084FF30C08091E200F4 :1019400084FF2CC080E189BD82E189BD09B400FE1D :10195000FDCF8091D8008F7D8093D8008091E100E9 :101960008F7E8093E1008091E2008F7E8093E20081 -:101970008091E20081608093E2008091E001882301 +:101970008091E20081608093E2008091E101882300 :1019800011F084E007C08091E30087FD02C081E090 -:1019900001C083E08093E4010E94B3088091E100DC +:1019900001C083E08093E5010E94B3088091E100DB :1019A00083FF29C08091E20083FF25C08091E10080 -:1019B000877F8093E10082E08093E4011092E00150 +:1019B000877F8093E10082E08093E5011092E1014E :1019C0008091E1008E7F8093E1008091E2008E7F24 :1019D0008093E2008091E20080618093E20042E027 :1019E00060E080E00E94380B8091F0008860809376 @@ -425,49 +425,49 @@ :101A8000CF91BF91AF919F918F917F916F915F9116 :101A90004F913F912F910F900FBE0F901F9018956F :101AA0001F93CF93DF93CDB7DEB7AA970FB6F89405 -:101AB000DEBF0FBECDBFE5EEF1E08091F100819376 -:101AC00021E0ED3EF207C9F70E94CF088091E800BF -:101AD00083FF24C18091E5019091E601492F50E0F8 +:101AB000DEBF0FBECDBFE6EEF1E08091F100819375 +:101AC00021E0EE3EF207C9F70E94CF088091E800BE +:101AD00083FF24C18091E6019091E701492F50E0F6 :101AE0004A30510508F01AC1FA01EA5AFF4F0C9426 -:101AF0000423803881F0823809F010C18091E90117 +:101AF0002423803881F0823809F010C18091EA01F6 :101B00008F708093E9008091EB0085FB882780F936 -:101B10001092E90006C08091E1019091E2019111DB +:101B10001092E90006C08091E2019091E3019111D9 :101B200082609091E800977F9093E8008093F100A5 :101B30001092F100C8C0282F2D7F09F0EFC0882334 -:101B400019F0823061F0EAC08091E701813009F03C -:101B5000E5C0933009F080E08093E2012BC08091D2 -:101B6000E701811127C08091E9018F7009F4D6C087 +:101B400019F0823061F0EAC08091E801813009F03B +:101B5000E5C0933009F080E08093E3012BC08091D1 +:101B6000E801811127C08091EA018F7009F4D6C085 :101B70008093E9002091EB0020FF1CC0933021F4FA :101B80008091EB00806214C09091EB009061909383 :101B9000EB0021E030E0A90102C0440F551F8A95F7 :101BA000E2F74093EA001092EA008091EB0088602F :101BB0008093EB001092E9008091E800877F86C057 -:101BC0008111ACC01091E7011F778091E30080780C +:101BC0008111ACC01091E8011F778091E30080780B :101BD000812B8093E3008091E800877F8093E80069 :101BE0000E946D0B8091E80080FFFCCF8091E300A4 :101BF00080688093E300111102C082E001C083E09D -:101C00008093E4018BC08058823008F087C08091B7 -:101C1000E7019091E8018C3D53E0950779F583E069 +:101C00008093E5018BC08058823008F087C08091B6 +:101C1000E8019091E9018C3D53E0950779F583E067 :101C20008A838AE289834FB7F894DE01139620E015 :101C30003EE051E2E32FF0E050935700E49120FFA3 :101C400003C0E295EF703F5FEF708E2F90E0EA30B7 :101C500010F0C79601C0C0968D939D932F5F2431DD :101C600049F74FBF8091E800877F8093E8006AE2E0 :101C700070E0CE0101960E94790A14C0AE014F5F58 -:101C80005F4F6091E9010E94C209BC01892B09F4F0 +:101C80005F4F6091EA010E94C209BC01892B09F4EF :101C900045C09091E800977F9093E80089819A81F0 :101CA0000E94D70A8091E8008B778093E80036C0C5 :101CB0008038A1F58091E800877F8093E8008091CB -:101CC000E0018093F1008091E8008E778093E80036 -:101CD0000E946D0B23C0811121C08091E70190917A -:101CE000E80199270297D4F48091E800877F8093D8 -:101CF000E8008091E7018093E0010E946D0B8091E4 -:101D0000E001811106C08091E30087FD02C081E0FF -:101D100001C084E08093E4010E94BB088091E80048 +:101CC000E1018093F1008091E8008E778093E80035 +:101CD0000E946D0B23C0811121C08091E801909179 +:101CE000E90199270297D4F48091E800877F8093D7 +:101CF000E8008091E8018093E1010E946D0B8091E2 +:101D0000E101811106C08091E30087FD02C081E0FE +:101D100001C084E08093E5010E94BB088091E80047 :101D200083FF0AC08091E800877F8093E80080915C :101D3000EB0080628093EB00AA960FB6F894DEBFAA :101D40000FBECDBFDF91CF911F9108950895CF931E -:101D50008091E4018823A1F0C091E900CF709091B7 +:101D50008091E5018823A1F0C091E900CF709091B6 :101D6000EC00892F817090FD80E8C82B1092E9006B :101D70008091E80083FD0E94500DCF70C093E90070 :101D8000CF91089590936901809368010895E0913F @@ -481,22 +481,22 @@ :101E00006401309165012817390771F090936501DD :101E100080936401E0916801F0916901309721F0AD :101E20000084F185E02D0994089508950C94150F10 -:101E30000E94D31A0E9483040C94991BCF92DF92C4 +:101E30000E94F31A0E9483040C94B91BCF92DF9284 :101E4000EF92FF920F931F93CF93DF93CDB7DEB73F :101E50002B970FB6F894DEBF0FBECDBF0E949B0438 :101E60008BE6C82E81E0D82E00E010E0E02E802F17 :101E70000E949105F60141916F01F82EF426B1F40C :101E80000F5F1F4F0E30110589F78FEF89838A830B -:101E90001B820E94DC1A8160782F9D838C8349818C -:101EA0005A816B818D810E94C10F40C09091CC01FD +:101E90001B820E94FC1A8160782F9D838C8349816C +:101EA0005A816B818D810E94C10F40C09091CD01FC :101EB00091FF04C08B870E9497058B8520E030E05E :101EC0004F2D50E0922FBA01022E02C075956795F2 :101ED0000A94E2F760FF24C02E83EF8221E030E015 :101EE000690102C0CC0CDD1C9A95E2F790E08C21D0 -:101EF0009D21892B09F420E028870E94DC1A81604B +:101EF0009D21892B09F420E028870E94FC1A81602B :101F0000782F9A8789874E815F8168858A850E94AC :101F1000C10FF801E559FE4F8081C826C08206C076 -:101F20002F5F3F4F2630310569F6AACF0E94801EF1 +:101F20002F5F3F4F2630310569F6AACF0E94A01ED1 :101F30000E94C70E90916A018917A1F00E94C70EF6 :101F400080936A012B960FB6F894DEBF0FBECDBF0B :101F5000DF91CF911F910F91FF90EF90DF90CF9085 @@ -506,17 +506,17 @@ :101F9000DEBF0FBECDBF4F83588769877A878B8797 :101FA000DE01119686E0FD0111928A95E9F785E040 :101FB000FE01379601900D928A95E1F749815A8189 -:101FC0006B817C818D819E810E94C4162B960FB6F9 +:101FC0006B817C818D819E810E94CB162B960FB6F2 :101FD000F894DEBF0FBECDBFDF91CF910895CF93B0 :101FE000C82F882309F4C1C0823859F40E94C70E53 -:101FF00081FDBBC089E30E9461190E94191A89E31F +:101FF00081FDBBC089E30E9468190E94301A89E301 :102000000CC0833879F40E94C70E80FDAEC083E512 -:102010000E9461190E94191A83E50E94A019CF91AC -:102020000C94191A843859F40E94C70E82FD9DC081 -:1020300087E40E9461190E94191A87E4EECF8CEFA1 -:102040008C0F813A48F48C2F0E94C02081118DC0E2 -:102050008C2F0E946119E3CF80E28C0F883048F406 -:10206000C77081E001C0880FCA95EAF70E94E219A3 +:102010000E9468190E94301A83E50E94A719CF9187 +:102020000C94301A843859F40E94C70E82FD9DC06A +:1020300087E40E9468190E94301A87E4EECF8CEF83 +:102040008C0F813A48F48C2F0E94E02081118DC0C2 +:102050008C2F0E946819E3CF80E28C0F883048F4FF +:10206000C77081E001C0880FCA95EAF70E94E9199C :10207000D6CF8BE58C0F833078F4C53A29F0C63A79 :1020800031F083E890E005C081E890E002C082E88A :1020900090E0CF910C94E90E88E58C0F833108F025 @@ -534,603 +534,607 @@ :1021500092E008C086E292E005C087E292E002C009 :102160008AE292E0CF910C94FF0ECF9108958823DC :1021700009F44BC0823859F40E94C70E81FF45C054 -:1021800089E30E9461190E94191A89E30CC08338FF -:1021900071F40E94C70E80FF38C083E50E94611968 -:1021A0000E94191A83E50E94A0190C94191A843808 -:1021B00059F40E94C70E82FF28C087E40E9461196B -:1021C0000E94191A87E4EFCF9CEF980F913A58F3C9 +:1021800089E30E9468190E94301A89E30CC08338E1 +:1021900071F40E94C70E80FF38C083E50E94681961 +:1021A0000E94301A83E50E94A7190C94301A8438D3 +:1021B00059F40E94C70E82FF28C087E40E94681964 +:1021C0000E94301A87E4EFCF9CEF980F913A58F3B2 :1021D00090E2980F983050F4877091E001C0990F09 -:1021E0008A95EAF7892F0E94E819DFCF9BE5980FBF +:1021E0008A95EAF7892F0E94EF19DFCF9BE5980FB8 :1021F000933020F480E090E00C94E90E885A83310B :1022000020F480E090E00C94FF0E0895882321F0E4 -:102210000E94E2190C94191A0895882321F00E9453 -:10222000E8190C94191A0895BF92CF92DF92EF9299 +:102210000E94E9190C94301A0895882321F00E9435 +:10222000EF190C94301A0895BF92CF92DF92EF927B :10223000FF920F931F93CF93DF9300D000D000D075 :10224000CDB7DEB77C0185E0F701DE011196019084 :102250000D928A95E1F7F70183819481892B09F426 -:10226000DDC2908181818F3F19F49F3F09F4D6C26E +:10226000E2C2908181818F3F19F49F3F09F4DBC264 :10227000F7010281258122952F7099838A838981B4 -:102280009A812E830E942019182FB92E0E941F199F -:102290000E94E617EB2DE295EF704E2F50E0FA0109 -:1022A000E05AFF4F2E810C9404238B2D807F9B2DB1 -:1022B0009F70F92E882319F0F29480EFF822002302 -:1022C00049F0FF2009F457C28F2D0E94F2190E9495 -:1022D000191A51C2812F0E94B710FF2009F49EC223 -:1022E0008F2D0E94F81926960FB6F894DEBF0FBE08 -:1022F000CDBFDF91CF911F910F91FF90EF90DF90B5 -:10230000CF90BF900C94191A3B2D307F8B2D8F707E -:10231000303211F08295807F112319F0113021F1B4 -:102320002CC00023B9F0222309F490C1213009F018 -:102330008DC126960FB6F894DEBF0FBECDBFDF91DC -:10234000CF911F910F91FF90EF90DF90CF90BF90B2 -:102350000C94021A222319F0213009F45FC28E83F3 -:102360000E94051A8E8186C1002321F0223008F0D8 -:1023700055C26CC1211152C27DC1002321F022231C -:1023800009F464C1F8C1222309F474C109C28B2D78 -:1023900086958695837019F08130D1F03FC2002375 -:1023A00021F0812F9B2D937002C080E090E0269653 -:1023B0000FB6F894DEBF0FBECDBFDF91CF911F9156 -:1023C0000F91FF90EF90DF90CF90BF900C94E90EAB -:1023D000002321F0812F9B2D937002C080E090E0BC -:1023E00026960FB6F894DEBF0FBECDBFDF91CF911A -:1023F0001F910F91FF90EF90DF90CF90BF900C94C2 -:10240000FF0E812F002319F00E94881D02C00E9438 -:10241000F01D26960FB6F894DEBF0FBECDBFDF913C -:10242000CF911F910F91FF90EF90DF90CF90BF90D1 -:102430000C94751E8B2D837009F075C00111EEC1CF -:10244000812F829586958770880F880F912F9F70B6 -:10245000C92ED12CE12CF12C082E04C0CC0CDD1C93 -:10246000EE1CFF1C0A94D2F714FF12C00FE010E01C -:1024700020E030E004C0000F111F221F331F8A9597 -:10248000D2F7C901B801609570958095909503C009 -:1024900060E070E0CB014B2D46954695437042308D -:1024A000C1F060F56C297D298E299F29413051F1B9 -:1024B00026960FB6F894DEBF0FBECDBFDF91CF9149 -:1024C0001F910F91FF90EF90DF90CF90BF900C94F1 -:1024D0000D186C297D298E299F2926960FB6F89410 -:1024E000DEBF0FBECDBFDF91CF911F910F91FF9047 -:1024F000EF90DF90CF90BF900C9429180E940D1898 -:10250000C701B60126960FB6F894DEBF0FBECDBF49 -:10251000DF91CF911F910F91FF90EF90DF90CF90BF -:10252000BF900C94F117002319F08B2D817001C01E -:102530008695882309F472C1812F829586958770CC -:10254000880F880F912F9F70C92ED12CE12CF12C70 -:10255000082E04C0CC0CDD1CEE1CFF1C0A94D2F724 -:1025600014FF12C00FE010E020E030E004C0000FC4 -:10257000111F221F331F8A95D2F7C901B801609538 -:1025800070958095909503C060E070E0CB014B2D75 -:102590004695469543704230C1F060F56C297D291F -:1025A0008E299F29413051F126960FB6F894DEBF4F -:1025B0000FBECDBFDF91CF911F910F91FF90EF9094 -:1025C000DF90CF90BF900C94E7186C297D298E295D -:1025D0009F2926960FB6F894DEBF0FBECDBFDF91C0 -:1025E000CF911F910F91FF90EF90DF90CF90BF9010 -:1025F0000C9403190E94E718C701B60126960FB67E -:10260000F894DEBF0FBECDBFDF91CF911F910F9128 -:10261000FF90EF90DF90CF90BF900C94CB18103FBD -:10262000D1F118F4103E50F4A1C0123F09F463C078 -:1026300008F44CC0133F09F473C098C01F708B2D71 -:102640008F710023A1F00E946418812F26960FB687 -:10265000F894DEBF0FBECDBFDF91CF911F910F91D8 -:10266000FF90EF90DF90CF90BF900C9406110E94E6 -:102670008518812F26960FB6F894DEBF0FBECDBF0A -:10268000DF91CF911F910F91FF90EF90DF90CF904E -:10269000BF900C940D110023A9F02111BFC08B2D08 -:1026A0008F7126960FB6F894DEBF0FBECDBFDF91B7 -:1026B000CF911F910F91FF90EF90DF90CF90BF903F -:1026C0000C94AA18223008F0A9C0E9CF0023A9F081 -:1026D0008B2D8F7126960FB6F894DEBF0FBECDBF3F -:1026E000DF91CF911F910F91FF90EF90DF90CF90EE -:1026F000BF900C946418002359F38B2D8F7126968C -:102700000FB6F894DEBF0FBECDBFDF91CF911F9102 -:102710000F91FF90EF90DF90CF90BF900C948518B1 -:10272000002399F08B2D8F7126960FB6F894DEBF9B -:102730000FBECDBFDF91CF911F910F91FF90EF9012 -:10274000DF90CF90BF900C944F1826960FB6F89458 -:10275000DEBF0FBECDBFDF91CF911F910F91FF90D4 -:10276000EF90DF90CF90BF900C9445180023A9F014 -:10277000222309F4ADCF812F26960FB6F894DEBF41 -:102780000FBECDBFDF91CF911F910F91FF90EF90C2 -:10279000DF90CF90BF900C94EF0F222309F4ADCFC0 -:1027A000812F26960FB6F894DEBF0FBECDBFDF9106 -:1027B000CF911F910F91FF90EF90DF90CF90BF903E -:1027C0000C94B7104B2D4F70612FC7010E9412035C -:1027D00026960FB6F894DEBF0FBECDBFDF91CF9126 -:1027E0001F910F91FF90EF90DF90CF90BF900C94CE -:1027F00069174B2D4F70612FC70126960FB6F894BD -:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 -:10281000EF90DF90CF90BF900C94580626960FB69D -:10282000F894DEBF0FBECDBFDF91CF911F910F9106 -:10283000FF90EF90DF90CF90BF9008950E94FF1916 -:102840000E94D4190E94191A0E94251F0E94751E09 -:1028500080E090E00E94E90E80E090E00C94FF0E92 -:102860000E94EF190C941E140E942019292F229502 -:102870002F702C3030F42A3048F42250223078F473 -:1028800005C02C3041F02F3031F009C0803E48F0B7 -:10289000803F29F406C093FB882780F9089580E0E3 -:1028A000089581E00895CF93DF9300D000D01F9268 -:1028B000CDB7DEB70F900F900F900F900F90DF9174 -:1028C000CF910895CF93DF9300D000D000D0CDB743 -:1028D000DEB726960FB6F894DEBF0FBECDBFDF91F0 -:1028E000CF9108951F93CF93DF93C091790116E0A4 -:1028F00080917A01C81799F0D0E01C9FF0011D9FCC -:10290000F00D1124E558FE4F4081518162817381A1 -:10291000848195810E9462142196C770E9CFDF916E -:10292000CF911F9108954091AB015091AC016091FE -:10293000AD017091AE018091AF019091B0010C9406 -:1029400062148091B00182958F7009F054C080911B -:10295000AD01882309F44FC080917901A0917A01DB -:102960004091AE015091AF016091AB017091AC010B -:10297000B6E08A1709F43FC090E041155105C1F156 -:102980007F3F11F46F3FA1F1B89FF001B99FF00DA7 -:102990001124E558FE4F218127132AC020812613D8 -:1029A00027C02281211124C02381348124173507B7 -:1029B00010F421503109241B350B283C3105C0F49B -:1029C0002091B0012F7020612093B00126E0289F54 -:1029D000F001299FF00D1124E058FE4F80818F7087 -:1029E000806180838BEA91E00E9414110C94721430 -:1029F00001968770BECF0895CF92DF92EF92FF923B -:102A00000F931F93CF93DF93CDB7DEB762970FB6C7 -:102A1000F894DEBF0FBECDBF8C0185E0F801DE016A -:102A20001D9601900D928A95E1F7D8014C9111966F -:102A30005C91119712966C918091AE019091AF01CB -:102A4000009709F475C13091AB017091AC017F3FE3 -:102A500019F43F3F09F46CC1F801C380D480E090C1 -:102A6000AD01EE2009F4BEC02091B001C816D90610 -:102A700028F0D601A81BB90BCD0104C08095909514 -:102A80008C0D9D1DFF24F394883C910578F0F12C6A -:102A9000207F09F0C4C07C2DD98AC88A89890E9408 -:102AA00053148BEA91E00E941411AFC0822F807FF3 -:102AB00009F045C0571313C0431311C061110FC073 -:102AC0002F7020612093B0010E9493148BEA91E053 -:102AD0000E9414118091B001F80185832EC0CD2889 -:102AE00019F15F3F11F44F3FF9F0F62E61111CC050 -:102AF0008091790120917A0136E0821709F45BC058 -:102B000090E0389FF001399FF00D1124E558FE4FF9 -:102B10007181571306C07081471303C07281711110 -:102B200003C001968770E9CFF62E662309F41CC115 -:102B30008091B00181608093B001F12C15C15713D1 -:102B400009C0431307C0611105C08091B001F801AD -:102B50008583C8C04D875E878D859E856A8B0E9460 -:102B600034146A898823D1F16623C1F12091B00120 -:102B7000822F82958F7090E0029774F08091AB0164 -:102B80009091AC0198878F831986DB86CA862C8743 -:102B9000CE0107960E94141186E0F801ABEAB1E07D -:102BA00001900D928A95E1F70E94A1140E9493145E -:102BB000FF24F394D9C04D875E878D859E850E9442 -:102BC0002019292F22952F70223008F0C1C09F7044 -:102BD00009F0BBC0805E883008F4C6C0C8010E94FE -:102BE0001411E6CFC816D90608F453C0F601E81B45 -:102BF000F90BCF01883C910508F450C0F12C7C2DD5 -:102C0000D98AC88A89890E945314EBEAF1E086E0E8 -:102C1000DF011D928A95E9F70E949314A5C057130E -:102C200014C0431312C0611110C08091B001F801AB -:102C30008583C8010E94141186E0EBEAF1E0DF0110 -:102C40001D928A95E9F7FE2C8FC04D875E878D8592 -:102C50009E856A8B0E9434146A89882309F4BECF4A -:102C6000662309F4BBCF2091B001822F82958F702B -:102C700090E002970CF490CF8091AB019091AC0161 -:102C80009A8389831B82DD82CC822E83CE010196BA -:102C900081CF809590958C0D9D1DACCFF62E66232F -:102CA00009F49CCF571333C0431331C02091B001B6 -:102CB00020FD24C0822F82958F70482F50E041154F -:102CC0005105E1F0D80115962C9315974F30510519 -:102CD00049F08F5F982F9295907F822F8F70892B6C -:102CE00015968C93C8010E94141186E0F801ABEA96 -:102CF000B1E001900D928A95E1F78ECF86E0F80160 -:102D0000ABEAB1E001900D928A95E1F72DC04D87B5 -:102D10005E878D859E850E94341481113DCF809100 -:102D2000B00181608093B001C8010E9414111CC0E1 -:102D3000662309F453CF4D875E878D859E850E945B -:102D40003414882309F44ACF27CF811143CF0CC014 -:102D5000243008F043CF9F7009F43CCFD80115967A -:102D60009C91907F09F036CF8F2D62960FB6F89424 -:102D7000DEBF0FBECDBFDF91CF911F910F91FF90AE -:102D8000EF90DF90CF9008951F93CF93DF93CDB74F -:102D9000DEB72C970FB6F894DEBF0FBECDBF4F83C2 -:102DA000588769877A878B879C87CE0107960E9410 -:102DB000FC14882371F08A859B85892B09F441C016 -:102DC00088858F3F09F065C08F818F3F09F061C012 -:102DD00038C086E0FE013796DE01119601900D9213 -:102DE0008A95E1F76A857B856115710551F1FF814F -:102DF000E885EF3F11F4FF3F21F120917A0130E0A7 -:102E0000C9010196877099274091790150E0841794 -:102E1000950709F447C0F983EA837D836C8396E0C4 -:102E2000929FD001939FB00D1124A558BE4FFE0173 -:102E3000319601900D929A95E1F780937A010E9464 -:102E4000721416E08091790190917A018917B9F195 -:102E5000189FC001112485589E4F0E94FC1488239E -:102E600071F1E09179011E9FF0011124E558FE4FA8 -:102E70004081518162817381848195810E946214B5 -:102E80008091790190E0019687709927809379016C -:102E9000D9CF4F81588569857A858B859C850E941D -:102EA0006214CFCF0E94301410927A0110927901EF -:102EB000EBEAF1E086E0DF011D928A95E9F72C96B6 -:102EC0000FB6F894DEBF0FBECDBFDF91CF911F913B -:102ED0000895EF92FF920F931F93CF93DF938C018E -:102EE000892B09F46CC0F12CEE24E394E8012196BF -:102EF000F8018491843740F4843008F051C0813067 -:102F000081F0823019F15BC0853709F444C0A8F123 -:102F10009CE7980F903708F052C08F770E94B71047 -:102F200041C00E5F1F4FFE01849190E2980F9830D0 -:102F300050F48770FE2D01C0FF0F8A95EAF78F2F9E -:102F40000E94F21914C00E94EF0F2DC00E5F1F4F98 -:102F5000FE01849190E2980F983060F48770FE2D06 -:102F600001C0FF0F8A95EAF78F2F0E94F8190E947F -:102F7000191A19C00E94B71016C00E5F1F4FFE012C -:102F8000C491CC2381F08FE99FE00197F1F700C055 -:102F90000000C150F6CF0E5F1F4FFE01F49003C03A -:102FA0000E94EF0F8E018F2D882309F49FCFEFE948 -:102FB000FFE03197F1F700C000008150F5CFDF91BD -:102FC000CF911F910F91FF90EF9008950895609316 -:102FD000B5017093B6018093B7019093B8010C943A -:102FE0001E140F931F930091B5011091B60120910B -:102FF000B7013091B801DC01CB01802B912BA22BC2 -:10300000B32B8093B5019093B601A093B701B09311 -:10301000B8011F910F910C941E140F931F930091F0 -:10302000B5011091B6012091B7013091B801DC01D2 -:10303000CB0180239123A223B3238093B5019093E6 -:10304000B601A093B701B093B8011F910F910C94F2 -:103050001E140F931F930091B5011091B60120919A -:10306000B7013091B801DC01CB0180279127A2275D -:10307000B3278093B5019093B601A093B701B093A5 -:10308000B8011F910F910C941E141092B10110926F -:10309000B2011092B3011092B4010C941E1441E0DD -:1030A00050E060E070E004C0440F551F661F771FBA -:1030B0008A95D2F74093B1015093B2016093B30166 -:1030C0007093B4010C941E1441E050E060E070E095 -:1030D00004C0440F551F661F771F8A95D2F7809151 -:1030E000B1019091B201A091B301B091B401482B0C -:1030F000592B6A2B7B2B4093B1015093B201609303 -:10310000B3017093B4010C941E1441E050E060E0F0 -:1031100070E004C0440F551F661F771F8A95D2F7D1 -:1031200040955095609570958091B1019091B20154 -:10313000A091B301B091B401482359236A237B23A2 -:103140004093B1015093B2016093B3017093B40105 -:103150000C941E1441E050E060E070E004C0440FA5 -:10316000551F661F771F8A95D2F78091B101909104 -:10317000B201A091B301B091B401482759276A2741 -:103180007B274093B1015093B2016093B3017093D8 -:10319000B4010C941E140F931F930091B101109170 -:1031A000B2012091B3013091B401DC01CB01802B3D -:1031B000912BA22BB32B8093B1019093B201A093DA -:1031C000B301B093B4011F910F910C941E140F938F -:1031D0001F930091B1011091B2012091B301309180 -:1031E000B401DC01CB0180239123A223B32380937C -:1031F000B1019093B201A093B301B093B4011F91B8 -:103200000F910C941E140F931F930091B101109114 -:10321000B2012091B3013091B401DC01CB018027D0 -:103220009127A227B3278093B1019093B201A09375 -:10323000B301B093B4011F910F910C941E14089523 -:10324000CF92DF92EF92FF920F931F93CF93DF9372 -:103250008C01C090B101D090B201E090B301F09028 -:10326000B4018091B5019091B601A091B701B091E0 -:10327000B801C82AD92AEA2AFB2ACFE1D0E0D7012F -:10328000C6010C2E04C0B695A795979587950A940C -:10329000D2F780FF07C0B8018C2F0E947C068130D6 -:1032A000910531F4219758F7B80180E00E947C061F -:1032B000DF91CF911F910F91FF90EF90DF90CF9012 -:1032C000089590910C019923F1F090910D019923AB -:1032D000D1F0982F9695969596959F3080F5E09130 -:1032E0000E01F0910F01E90FF11D877021E030E030 -:1032F000A90102C0440F551F8A95E2F7CA019181C6 -:10330000892B8183089520910E0130910F01F901DD -:1033100032969FEF40E05191851789F09F3F19F455 -:10332000511101C0942F4F5F4E30A9F79F3F39F0E4 -:10333000F901E90FF11D97FDFA958283089508952B -:1033400090910C019923F9F090910D019923D9F0F6 -:10335000982F9695969596959F3028F5E0910E01B9 -:10336000F0910F01E90FF11D877021E030E0A90114 -:1033700002C0440F551F8A95E2F7CA0180959181DA -:1033800089238183089520910E0130910F01F90165 -:103390003296205F3F4F9081891301C01082319691 -:1033A000E217F307C1F7089581E090E0E0910E0184 -:1033B000F0910F01E80FF91F1082019680319105FD -:1033C000A9F708959091CB01892B8093CB010895A3 -:1033D00080959091CB0189238093CB010895109221 -:1033E000CB0108959091CA01892B8093CA01089559 -:1033F00080959091CA0189238093CA010895109203 -:10340000CA0108958093B90108951092B9010895F1 -:1034100080910E0190910F01FC0131969C01205F7B -:103420003F4F80E0919191118F5FE217F307D1F741 -:103430000895E0910E01F0910F018091CB018083FE -:10344000E0910E01F0910F0190818091CA01892BCA -:1034500080838091B901882361F0E0910E01F091A1 -:103460000F019081892B80830E94081A811110928C -:10347000B90180910E0190910F010C94D30ECF925F -:10348000DF92EF92FF926C01EE24FF24C114D1046D -:10349000E104F10421F0C701B60120E101C020E000 -:1034A000C72ED82EE92EFF24C114D104E104F10463 -:1034B00019F0285FC701B6016B017C0154E0F69456 -:1034C000E794D794C7945A95D1F7C114D104E10475 -:1034D000F10419F02C5FC701B6016B017C0142E0D9 -:1034E000F694E794D794C7944A95D1F7C114D104C0 -:1034F000E104F10419F02E5FC701B601DC01CB0134 -:10350000B695A79597958795892B8A2B8B2B09F0D4 -:103510002F5F822FFF90EF90DF90CF9008958091E2 -:10352000E401843011F120E488E190E00FB6F894D2 -:10353000A895809360000FBE2093600083B7817FC1 -:10354000846083BF83B7816083BF7894889583B795 -:103550008E7F83BF0FB6F894A89580916000886134 -:1035600080936000109260000FBE089508950C943F -:10357000B61ACF930E94B71A0E949B040E94B61AF3 -:10358000C0E08C2F0E949105811104C0CF5FCE3026 -:10359000C1F701C081E0CF9108950E9430140E94CC -:1035A000C70E0C94BC0782E084BD93E095BD9AEFF2 -:1035B00097BD80936E0008952FB7F8948091CD0148 -:1035C0009091CE01A091CF01B091D0012FBF08956D -:1035D000CF92DF92EF92FF920F931F932FB7F89441 -:1035E0004091CD015091CE016091CF017091D001F9 -:1035F0002FBF6A017B01EE24FF248C0120E030E024 -:10360000C016D106E206F30610F4415051099A01A2 -:10361000281B390BC9011F910F91FF90EF90DF908C -:10362000CF9008951F920F920FB60F9211248F938F -:103630009F93AF93BF938091CD019091CE01A091C4 -:10364000CF01B091D0010196A11DB11D8093CD0194 -:103650009093CE01A093CF01B093D001BF91AF91D1 -:103660009F918F910F900FBE0F901F9018950E9401 -:10367000BF0BF8942FEF87EA91E6215080409040ED -:10368000E1F700C0000087E090EBDC018093ED01E2 -:103690009093EE01A093EF01B093F0019CE088E1DC -:1036A0000FB6F894A895809360000FBE90936000C9 -:1036B000FFCFEF92FF920F931F93CF93DF93D82FFB -:1036C000C0E08C2F0E94910500E010E0E82EF12C64 -:1036D000C701002E02C0959587950A94E2F780FDF8 -:1036E00006C00F5F1F4F0630110591F709C0602F0C -:1036F0007C2F80E00E9459068D13F3CF81E004C037 -:10370000CF5FCE30F1F680E0DF91CF911F910F9126 -:10371000FF90EF900895CF93C82F8CE20E94591B21 -:10372000882321F08C2FCF910C94591B80E0CF91EE -:103730000895CF930E94E01C811102C00E94C61C14 -:10374000C5E6C15049F00E949B048FE39CE90197B4 -:10375000F1F700C00000F5CF89E20E948B1B8111B8 -:1037600013C18AE20E948B1B81110E94C61C85E056 -:103770000E948B1B81110E94371B0E94EB1C8093BF -:10378000CC0187E00E948B1B8823A9F18BE10E946A -:103790008B1B882351F08091CC0181FB222720F9DB -:1037A00091E0922790FB81F90EC08EE00E948B1B66 -:1037B000882361F08091CC0182FB222720F991E0DF -:1037C000922790FB82F98093CC0115C080E10E9482 -:1037D0008B1B9091CC01882341F093FB222720F989 -:1037E00081E0822780FB93F904C0892F809580FBBC -:1037F00090F99093CC018091CC010E94EF1C0E9423 -:10380000FD1C8093DE0180EE0E948B1B882341F01B -:103810008091DE01982F909590FB80F98093DE01D6 -:1038200089E30E948B1B882359F08091DE0181FB84 -:10383000222720F991E0922790FB81F98093DE0105 -:1038400082EE0E948B1B882359F08091DE0182FB5F -:10385000222720F991E0922790FB82F98093DE01E4 -:1038600086EE0E948B1B882359F08091DE0183FB3A -:10387000222720F991E0922790FB83F98093DE01C3 -:1038800083EE0E948B1B882359F08091DE0184FB1C -:10389000222720F991E0922790FB84F98093DE01A2 -:1038A00085E30E948B1B882359F08091DE0185FB04 -:1038B000222720F991E0922790FB85F98093DE0181 -:1038C00081E30E948B1B882359F08091DE0186FBE7 -:1038D000222720F991E0922790FB86F98093DE0160 -:1038E00081E10E948B1B882359F08091DE0187FBC8 -:1038F000222720F991E0922790FB87F98093DE013F -:103900008091DE010E94011D8091DE0187FB8827E6 -:1039100080F980930D0187E20E948B1BC82F8EE1F6 -:103920000E948B1B8111C2608FE10E948B1B811151 -:10393000C46080E20E948B1B8111C86081E20E94FA -:103940008B1B8111C06182E20E948B1B8111C062BE -:1039500083E20E948B1B8111C06484E20E948B1B56 -:10396000882311F0C06802C0CC2329F08C2F0E945C -:10397000F81C6C2F03C00E94F41C682F70E080E0DC -:1039800090E0CF910C94E717CF9108956DEE7EEF04 -:1039900080E090E00E943A2360E082E090E00E94A4 -:1039A0002C2360E083E090E00E942C2360E084E020 -:1039B00090E00E942C2360E085E090E00C942C23A2 -:1039C00080E090E00E94262321E08D3E9E4F09F08A -:1039D00020E0822F089582E090E00C941E23682F4F -:1039E00082E090E00C942C2383E090E00C941E2362 -:1039F000682F83E090E00C942C2384E090E00C94FA -:103A00001E23682F84E090E00C942C238091D30136 -:103A100080FF0BC06091130185E0689FB001112405 -:103A200075956795759567952BC081FF09C0609165 -:103A3000130185E0689FB00111247595679520C03A -:103A400082FF07C06091130185E0689FB0011124D7 -:103A500017C09091D4019923D1F06091120196176B -:103A600088F72091130185E0289F90011124929FEF -:103A7000A001939F500D112470E0CA010E94F02212 -:103A80006038710540F46115710519F406C065E0F0 -:103A900070E0862F08958FE7089581E00895809162 -:103AA000D30180FF08C06091110170E075956795A2 -:103AB0007595679521C081FF06C06091110170E086 -:103AC0007595679519C082FF04C06091110170E07F -:103AD00010C09091D401992399F06091100196172C -:103AE000A0F780911101899FC001112470E00E940C -:103AF000F0226038710540F46115710519F406C0B3 -:103B000061E070E0862F08958FE7089581E00895C1 -:103B1000803F21F40E94061D819504C0813F29F455 -:103B20000E94061D8093D7010895823F21F40E94D0 -:103B3000061D819504C0833F29F40E94061D8093D1 -:103B4000D6010895893F19F40E944F1D05C08A3F90 -:103B500031F40E944F1D81958093D80108958B3FC9 -:103B600021F40E944F1D819504C08C3F29F40E94CE -:103B70004F1D8093D9010895843F21F48091D50190 -:103B8000816017C0853F21F48091D501826011C00A -:103B9000863F21F48091D50184600BC0873F21F4DA -:103BA0008091D501886005C0883F31F48091D501AE -:103BB00080618093D50108958D3F21F48091D301D8 -:103BC00081600BC08E3F21F48091D301826005C0DB -:103BD0008F3F29F48091D30184608093D3010895AD -:103BE000803F39F48091D70187FF6CC01092D701D4 -:103BF00069C0813F29F48091D7011816BCF362C0D7 -:103C00009091D601823F29F497FF5CC01092D601B3 -:103C100059C0833F19F41916CCF354C0893F41F4BD -:103C20008091D80118160CF04DC01092D8014AC0EE -:103C30008A3F29F48091D80187FF44C0F6CF8B3F9B -:103C400039F48091D90187FF3DC01092D9013AC063 -:103C50008C3F29F48091D9011816BCF333C0843FFE -:103C600021F48091D5018E7F17C0853F21F480918A -:103C7000D5018D7F11C0863F21F48091D5018B7FC6 -:103C80000BC0873F21F48091D501877F05C0883F15 -:103C900031F48091D5018F7E8093D50113C08D3F83 -:103CA00021F48091D3018E7F0BC08E3F21F480914F -:103CB000D3018D7F05C08F3F29F48091D3018B7F85 -:103CC0008093D3018091D60181110EC08091D701DC -:103CD00081110AC08091D801811106C08091D9015B -:103CE000811102C01092D401089585ED91E00E94E7 -:103CF000DE0E0E94DC1A9093D2018093D1010895C8 -:103D00001F93CF93DF938091D1019091D2010E94B4 -:103D1000E81AAC019091D401992321F0209114016B -:103D200030E006C0209115018AE0289F90011124FF -:103D30004217530708F485C08091D601C091D7017E -:103D4000D091D8011091D901811107C0C11175C05E -:103D5000D11173C0111171C074C09F3F19F09F5FE2 -:103D60009093D401181624F40E94061D8093D60166 -:103D70008091D60187FF05C00E94061D8195809322 -:103D8000D6011C1624F40E94061D8093D701809151 -:103D9000D70187FF05C00E94061D81958093D7013A -:103DA0006091D601662331F1C091D701CC2311F186 -:103DB000062E000C770B880B990B0E94F72123E34A -:103DC00033E343E35FE30E945B220E94BF216093E1 -:103DD000D6016C2FCC0F770B880B990B0E94F72123 -:103DE00023E333E343E35FE30E945B220E94BF21AE -:103DF0006093D7011D1624F40E944F1D8093D801B3 -:103E00008091D80187FF05C00E944F1D8195809346 -:103E1000D801111624F40E944F1D8093D90180917E -:103E2000D90187FF05C00E944F1D81958093D9015C -:103E3000DF91CF911F910C94751E9F3F09F08FCF9A -:103E4000A0CFDF91CF911F910895E5EDF1E085E0DE -:103E5000DF011D928A95E9F71092D4011092D301E7 -:103E60000895833081F128F4813059F08230D1F007 -:103E70000895853009F449C0B8F1863009F456C078 -:103E8000089580911501262F30E0280F311D2F3F16 -:103E9000310524F4680F6093150108958FEF809326 -:103EA0001501089580911401262F30E0280F311D4F -:103EB0002F3F310524F4680F6093140108958FEFAC -:103EC00080931401089580911301262F30E0280F6C -:103ED000311D2F3F310524F4680F609313010895BD -:103EE0008FEF80931301089580911201262F30E007 -:103EF000280F311D2F3F310524F4680F6093120104 -:103F000008958FEF80931201089580911101262F5B -:103F100030E0280F311D2F3F310524F4680F6093E6 -:103F2000110108958FEF8093110108958091100180 -:103F3000262F30E0280F311D2F3F310524F4680F64 -:103F40006093100108958FEF8093100108958330DE -:103F500011F128F4813049F0823091F008958530D4 -:103F600081F120F18630C1F1089580911501681723 -:103F700020F4861B80931501089510921501089571 -:103F800080911401681720F4861B80931401089512 -:103F900010921401089580911301681720F4861B74 -:103FA00080931301089510921301089580911201D6 -:103FB000681720F4861B8093120108951092120155 -:103FC000089580911101681720F4861B80931101D8 -:103FD000089510921101089580911001681720F43E -:103FE000861B8093100108951092100108950F937D -:103FF0001F938D3109F46BC008F03FC08E3009F477 -:104000007DC0C0F4873009F46EC068F4863009F0D2 -:10401000AFC08091CC01817F8E7F8093CC0181E005 -:104020008093DB01A6C0883009F458C08B3009F4B6 -:104030009BC09EC0863109F497C078F4803109F4A2 -:1040400070C0813109F094C00E94301490910D012C -:1040500081E0892780930D0187C0893109F484C0EC -:104060008B3109F085C08091CC0181FB222720F99A -:1040700091E0922790FB81F94AC0853309F45BC037 -:1040800048F4873209F457C008F45AC0893209F459 -:1040900052C06EC0833438F48A3308F067C0883366 -:1040A00009F462C065C0833409F445C0883409F05E -:1040B0005FC00E9430140FEF13ED20E30150104059 -:1040C0002040E1F700C000000E94371B4DC00E9455 -:1040D00079210E94C70E0E94BC0746C00E94EB1CBB -:1040E0000E94FD1C41C09091CC01892F817090FFEE -:1040F00012C0917F9E7F9093CC013BC08091CC01F8 -:1041000082FB222720F991E0922790FB82F980938D -:10411000CC01992349F18091CC0181608093CC013D -:1041200023C08091CC0183FB222720F991E09227C4 -:1041300090FB83F9ECCF61E070E080E090E010C08C -:104140008D5141E050E060E070E08A019B0104C0C5 -:10415000000F111F221F331F8A95D2F7C901B80122 -:104160000E94E7170E94301481E003C08953E9CF11 -:1041700080E01F910F91089580E008950C94BC2079 -:10418000CF93C82F8091DB01813079F018F0823015 -:10419000E9F187C0E0910E01F0910F01808181313A -:1041A00069F0823209F07FC009C0E0910E01F09100 -:1041B0000F018081813111F0823261F48C2F0E94D5 -:1041C000BE20811104C08C2F0E94F71F1DC081E00A -:1041D00090E01AC08C2F0E94BC20811114C0C43101 -:1041E00079F048F4CB3079F0C03109F060C082E05A -:1041F0008093DB0108C0C93219F0C83321F057C0E1 -:104200001092DB0154C081E0817053C0C93289F142 -:1042100018F5C43171F1A8F4C73009F046C08AE03E -:104220008093150194E19093140193E0909313010E -:104230008093120188E08093110188E2809310013D -:1042400034C0CE51C63088F5EC2FF0E0E65DFE4F6D -:1042500080818093DA0129C0CE34E9F020F4CB3498 -:1042600021F56AE013C0C13579F0C235F1F461E09F -:104270000DC08091DA01882319F01092DA0115C07F -:1042800081E08093DB0115C061E006C08091DA0116 -:104290000E94311F0AC06AE08091DA010E94A71FC4 -:1042A00004C01092DB0180E004C081E002C080E025 -:1042B000ABCFCF910895E1E8F0E080818860808302 -:1042C0008081816080838FB7F89493E09093890018 -:1042D00090ED909388008FBF0895EFE6F0E0808125 -:1042E000826080830895EFE6F0E080818D7F808397 -:1042F0000895EFE6F0E0908182E0892780830895B9 -:104300001F920F920FB60F9211242F933F934F934A -:104310005F936F937F938F939F93AF93BF93EF932D -:10432000FF938091DC019091DD0101969093DD0176 -:104330008093DC01811103C082E00E94BC07E09100 -:10434000DD01E695E695F0E0EF5AFA4FE4918091B1 -:10435000DC018E1303C080E00E94BC07FF91EF9147 -:10436000BF91AF919F918F917F916F915F914F918D -:104370003F912F910F900FBE0F901F9018950E94A4 -:10438000C6216894B1110C94552208950E943A22D6 -:1043900088F09F5798F0B92F9927B751B0F0E1F006 -:1043A000660F771F881F991F1AF0BA95C9F714C0B6 -:1043B000B13091F00E945422B1E008950C9454223F -:1043C000672F782F8827B85F39F0B93FCCF38695EF -:1043D00077956795B395D9F73EF49095809570954C -:1043E00061957F4F8F4F9F4F0895E89409C097FBC9 -:1043F0003EF490958095709561957F4F8F4F9F4FBC -:104400009923A9F0F92F96E9BB279395F6958795FF -:1044100077956795B795F111F8CFFAF4BB0F11F4C2 -:1044200060FF1BC06F5F7F4F8F4F9F4F16C0882369 -:1044300011F096E911C0772321F09EE8872F762F9F -:1044400005C0662371F096E8862F70E060E02AF0E0 -:104450009A95660F771F881FDAF7880F96958795CC -:1044600097F9089557FD9058440F551F59F05F3F35 -:1044700071F04795880F97FB991F61F09F3F79F086 -:1044800087950895121613061406551FF2CF469508 -:10449000F1DF08C0161617061806991FF1CF86958A -:1044A0007105610508940895E894BB27662777276E -:1044B000CB0197F908950E946E220C94DF220E948E -:1044C000D12238F00E94D82220F0952311F00C94CC -:1044D000C8220C94CE2211240C9455220E94322220 -:1044E00070F3959FC1F3950F50E0551F629FF00147 -:1044F000729FBB27F00DB11D639FAA27F00DB11D60 -:10450000AA1F649F6627B00DA11D661F829F2227E8 -:10451000B00DA11D621F739FB00DA11D621F839F6F -:10452000A00D611D221F749F3327A00D611D231F45 -:10453000849F600D211D822F762F6A2F11249F5793 -:1045400050409AF0F1F088234AF0EE0FFF1FBB1F96 -:10455000661F771F881F91505040A9F79E3F510555 -:1045600080F00C94C8220C9455225F3FE4F3983EEF -:10457000D4F3869577956795B795F795E7959F5FFF -:10458000C1F7FE2B880F911D9695879597F9089591 -:1045900097F99F6780E870E060E008959FEF80ECF6 -:1045A000089500240A941616170618060906089599 -:1045B00000240A9412161306140605060895092EFF -:1045C0000394000C11F4882352F0BB0F40F4BF2B6E -:1045D00011F460FF04C06F5F7F4F8F4F9F4F0895AE -:1045E00097FB072E16F4009407D077FD09D00E94A0 -:1045F0000A2307FC05D03EF4909581959F4F0895BE -:10460000709561957F4F0895EE0FFF1F0590F4910F -:10461000E02D0994AA1BBB1B51E107C0AA1FBB1FB9 -:10462000A617B70710F0A61BB70B881F991F5A953E -:10463000A9F780959095BC01CD010895F999FECF19 -:1046400092BD81BDF89A992780B50895A8E1B0E0A0 -:1046500042E050E00C944123262FF999FECF1FBA77 -:1046600092BD81BD20BD0FB6F894FA9AF99A0FBE9B -:10467000019608950E942C23272F0C942D23DC01F2 -:10468000CB01FC01F999FECF06C0F2BDE1BDF89A5D -:10469000319600B40D9241505040B8F70895F89407 -:0246A000FFCF4A -:1046A2002002BE074E082908F507C1070101BA0119 -:1046B20028080A03140A3F4D36391205C5048F042F -:1046C2005604E90302041B04340401020304050630 -:0446D20007080900CC +:102280009A812E830E942719182FB92E0E94261991 +:102290000E94ED172E81002319F00E94061A2E814C +:1022A000EB2DE295EF704E2F50E0FA01E05AFF4F10 +:1022B0000C9424238B2D807F9B2D9F70F92E8823D7 +:1022C00019F0F29480EFF822002349F0FF2009F47E +:1022D00057C28F2D0E94F9190E94301A51C2812FC6 +:1022E0000E94B710FF2009F49EC28F2D0E94FF1993 +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:10231000301A3B2D307F8B2D8F70303211F082952B +:10232000807F112319F0113021F12CC00023B9F066 +:10233000222309F490C1213009F08DC126960FB6F1 +:10234000F894DEBF0FBECDBFDF91CF911F910F91EB +:10235000FF90EF90DF90CF90BF900C94191A22233A +:1023600019F0213009F45FC28E830E941C1A8E81FD +:1023700086C1002321F0223008F055C26CC1211122 +:1023800052C27DC1002321F0222309F464C1F8C1A7 +:10239000222309F474C109C28B2D8695869583701A +:1023A00019F08130D1F03FC2002321F0812F9B2D05 +:1023B000937002C080E090E026960FB6F894DEBFDE +:1023C0000FBECDBFDF91CF911F910F91FF90EF9086 +:1023D000DF90CF90BF900C94E90E002321F0812F65 +:1023E0009B2D937002C080E090E026960FB6F89483 +:1023F000DEBF0FBECDBFDF91CF911F910F91FF9038 +:10240000EF90DF90CF90BF900C94FF0E812F0023B0 +:1024100019F00E94A81D02C00E94101E26960FB639 +:10242000F894DEBF0FBECDBFDF91CF911F910F910A +:10243000FF90EF90DF90CF90BF900C94951E8B2D66 +:10244000837009F075C00111EEC1812F82958695C8 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9414186C297D2959 +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C9430180E941418C701B60126968B +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C94F81731 +:10253000002319F08B2D817001C08695882309F442 +:1025400072C1812F829586958770880F880F912F91 +:102550009F70C92ED12CE12CF12C082E04C0CC0C7C +:10256000DD1CEE1CFF1C0A94D2F714FF12C00FE012 +:1025700010E020E030E004C0000F111F221F331FC5 +:102580008A95D2F7C901B8016095709580959095AC +:1025900003C060E070E0CB014B2D4695469543703B +:1025A0004230C1F060F56C297D298E299F29413088 +:1025B00051F126960FB6F894DEBF0FBECDBFDF9166 +:1025C000CF911F910F91FF90EF90DF90CF90BF9030 +:1025D0000C94EE186C297D298E299F2926960FB61A +:1025E000F894DEBF0FBECDBFDF91CF911F910F9149 +:1025F000FF90EF90DF90CF90BF900C940A190E944B +:10260000EE18C701B60126960FB6F894DEBF0FBECE +:10261000CDBFDF91CF911F910F91FF90EF90DF9091 +:10262000CF90BF900C94D218103FD1F118F4103E07 +:1026300050F4A1C0123F09F463C008F44CC0133F2A +:1026400009F473C098C01F708B2D8F710023A1F007 +:102650000E946B18812F26960FB6F894DEBF0FBE2E +:10266000CDBFDF91CF911F910F91FF90EF90DF9041 +:10267000CF90BF900C9406110E948C18812F269643 +:102680000FB6F894DEBF0FBECDBFDF91CF911F9183 +:102690000F91FF90EF90DF90CF90BF900C940D11B1 +:1026A0000023A9F02111BFC08B2D8F7126960FB684 +:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 +:1026C000FF90EF90DF90CF90BF900C94B118223024 +:1026D00008F0A9C0E9CF0023A9F08B2D8F712696B1 +:1026E0000FB6F894DEBF0FBECDBFDF91CF911F9123 +:1026F0000F91FF90EF90DF90CF90BF900C946B18EC +:10270000002359F38B2D8F7126960FB6F894DEBFF8 +:102710000FBECDBFDF91CF911F910F91FF90EF9032 +:10272000DF90CF90BF900C948C18002399F08B2DE4 +:102730008F7126960FB6F894DEBF0FBECDBFDF9126 +:10274000CF911F910F91FF90EF90DF90CF90BF90AE +:102750000C94561826960FB6F894DEBF0FBECDBF68 +:10276000DF91CF911F910F91FF90EF90DF90CF906D +:10277000BF900C944C180023A9F0222309F4ADCF8C +:10278000812F26960FB6F894DEBF0FBECDBFDF9126 +:10279000CF911F910F91FF90EF90DF90CF90BF905E +:1027A0000C94EF0F222309F4ADCF812F26960FB69C +:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 +:1027C000FF90EF90DF90CF90BF900C94B7104B2DFF +:1027D0004F70612FC7010E94120326960FB6F8941E +:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 +:1027F000EF90DF90CF90BF900C9470174B2D4F70DF +:10280000612FC70126960FB6F894DEBF0FBECDBF6D +:10281000DF91CF911F910F91FF90EF90DF90CF90BC +:10282000BF900C94580626960FB6F894DEBF0FBEE4 +:10283000CDBFDF91CF911F910F91FF90EF90DF906F +:10284000CF90BF9008950E94061A0E94161A0E9407 +:10285000DB190E94301A0E94451F0E94951E80E0DD +:1028600090E00E94E90E80E090E00C94FF0E0E9440 +:10287000F6190C9423140E942719292F22952F70E2 +:102880002C3030F42A3048F42250223078F405C03D +:102890002C3041F02F3031F009C0803E48F0803FAD +:1028A00029F406C093FB882780F9089580E00895F5 +:1028B00081E00895CF93DF9300D000D01F92CDB771 +:1028C000DEB70F900F900F900F900F90DF91CF9188 +:1028D0000895CF93DF9300D000D000D0CDB7DEB7FE +:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115 +:1028F00008951F93CF93DF93C091790116E08091E3 +:102900007A01C81799F0D0E01C9FF0011D9FF00DCF +:102910001124E558FE4F4081518162817381848189 +:1029200095810E9469142196C770E9CFDF91CF91FC +:102930001F9108954091AB015091AC016091AD01A0 +:102940007091AE018091AF019091B0010C94691427 +:102950008091B00182958F7009F054C08091AD01D3 +:10296000882309F44FC080917901A0917A014091A8 +:10297000AE015091AF016091AB017091AC01B6E036 +:102980008A1709F43FC090E041155105C1F17F3F1E +:1029900011F46F3FA1F1B89FF001B99FF00D112420 +:1029A000E558FE4F218127132AC02081261327C016 +:1029B0002281211124C0238134812417350710F48A +:1029C00021503109241B350B283C3105C0F42091DE +:1029D000B0012F7020612093B00126E0289FF00104 +:1029E000299FF00D1124E058FE4F80818F70806187 +:1029F00080838BEA91E00E9414110C947914019663 +:102A00008770BECF0895CF92DF92EF92FF920F931F +:102A10001F93CF93DF93CDB7DEB762970FB6F894CD +:102A2000DEBF0FBECDBF8C0185E0F801DE011D9633 +:102A300001900D928A95E1F7D8014C9111965C9125 +:102A4000119712966C918091AE019091AF01009711 +:102A500009F475C13091AB017091AC017F3F19F45D +:102A60003F3F09F46CC1F801C380D480E090AD0110 +:102A7000EE2009F4BEC02091B001C816D90628F096 +:102A8000D601A81BB90BCD0104C0809590958C0D83 +:102A90009D1DFF24F394883C910578F0F12C207F54 +:102AA00009F0C4C07C2DD98AC88A89890E945A1429 +:102AB0008BEA91E00E941411AFC0822F807F09F051 +:102AC00045C0571313C0431311C061110FC02F70BD +:102AD00020612093B0010E949A148BEA91E00E9439 +:102AE00014118091B001F80185832EC0CD2819F111 +:102AF0005F3F11F44F3FF9F0F62E61111CC0809139 +:102B0000790120917A0136E0821709F45BC090E0E8 +:102B1000389FF001399FF00D1124E558FE4F718167 +:102B2000571306C07081471303C07281711103C02F +:102B300001968770E9CFF62E662309F41CC18091B7 +:102B4000B00181608093B001F12C15C1571309C009 +:102B5000431307C0611105C08091B001F80185835E +:102B6000C8C04D875E878D859E856A8B0E943B1409 +:102B70006A898823D1F16623C1F12091B001822FA7 +:102B800082958F7090E0029774F08091AB019091E4 +:102B9000AC0198878F831986DB86CA862C87CE0185 +:102BA00007960E94141186E0F801ABEAB1E00190AB +:102BB0000D928A95E1F70E94A8140E949A14FF24AE +:102BC000F394D9C04D875E878D859E850E94271915 +:102BD000292F22952F70223008F0C1C09F7009F074 +:102BE000BBC0805E883008F4C6C0C8010E941411C2 +:102BF000E6CFC816D90608F453C0F601E81BF90B56 +:102C0000CF01883C910508F450C0F12C7C2DD98A65 +:102C1000C88A89890E945A14EBEAF1E086E0DF0154 +:102C20001D928A95E9F70E949A14A5C0571314C003 +:102C3000431312C0611110C08091B001F801858367 +:102C4000C8010E94141186E0EBEAF1E0DF011D9259 +:102C50008A95E9F7FE2C8FC04D875E878D859E850E +:102C60006A8B0E943B146A89882309F4BECF6623CD +:102C700009F4BBCF2091B001822F82958F7090E034 +:102C800002970CF490CF8091AB019091AC019A83A4 +:102C900089831B82DD82CC822E83CE01019681CF77 +:102CA000809590958C0D9D1DACCFF62E662309F472 +:102CB0009CCF571333C0431331C02091B00120FD86 +:102CC00024C0822F82958F70482F50E04115510506 +:102CD000E1F0D80115962C9315974F30510549F026 +:102CE0008F5F982F9295907F822F8F70892B1596EA +:102CF0008C93C8010E94141186E0F801ABEAB1E0A0 +:102D000001900D928A95E1F78ECF86E0F801ABEA4B +:102D1000B1E001900D928A95E1F72DC04D875E8755 +:102D20008D859E850E943B1481113DCF8091B0011D +:102D300081608093B001C8010E9414111CC06623F9 +:102D400009F453CF4D875E878D859E850E943B1485 +:102D5000882309F44ACF27CF811143CF0CC02430F8 +:102D600008F043CF9F7009F43CCFD80115969C9191 +:102D7000907F09F036CF8F2D62960FB6F894DEBFA4 +:102D80000FBECDBFDF91CF911F910F91FF90EF90BC +:102D9000DF90CF9008951F93CF93DF93CDB7DEB729 +:102DA0002C970FB6F894DEBF0FBECDBF4F83588768 +:102DB00069877A878B879C87CE0107960E940315C7 +:102DC000882371F08A859B85892B09F441C0888509 +:102DD0008F3F09F065C08F818F3F09F061C038C017 +:102DE00086E0FE013796DE01119601900D928A95DC +:102DF000E1F76A857B856115710551F1FF81E885F1 +:102E0000EF3F11F4FF3F21F120917A0130E0C90139 +:102E10000196877099274091790150E084179507B2 +:102E200009F447C0F983EA837D836C8396E0929F1F +:102E3000D001939FB00D1124A558BE4FFE013196CD +:102E400001900D929A95E1F780937A010E9479148E +:102E500016E08091790190917A018917B9F1189F54 +:102E6000C001112485589E4F0E940315882371F1DB +:102E7000E09179011E9FF0011124E558FE4F408139 +:102E8000518162817381848195810E94691480914E +:102E9000790190E001968770992780937901D9CFC5 +:102EA0004F81588569857A858B859C850E94691438 +:102EB000CFCF0E94371410927A0110927901EBEA79 +:102EC000F1E086E0DF011D928A95E9F72C960FB6B6 +:102ED000F894DEBF0FBECDBFDF91CF911F91089553 +:102EE000EF92FF920F931F93CF93DF938C01892B67 +:102EF00009F46CC0F12CEE24E394E8012196F8016A +:102F00008491843740F4843008F051C0813081F0DE +:102F1000823019F15BC0853709F444C0A8F19CE701 +:102F2000980F903708F052C08F770E94B71041C0B9 +:102F30000E5F1F4FFE01849190E2980F983050F47D +:102F40008770FE2D01C0FF0F8A95EAF78F2F0E9430 +:102F5000091A14C00E94EF0F2DC00E5F1F4FFE0113 +:102F6000849190E2980F983060F48770FE2D01C034 +:102F7000FF0F8A95EAF78F2F0E940F1A0E94301ACE +:102F800019C00E94B71016C00E5F1F4FFE01C491FA +:102F9000CC2381F08FE99FE00197F1F700C000009A +:102FA000C150F6CF0E5F1F4FFE01F49003C00E9488 +:102FB000EF0F8E018F2D882309F49FCFEFE9FFE0FB +:102FC0003197F1F700C000008150F5CFDF91CF912C +:102FD0001F910F91FF90EF90089508956093B501B0 +:102FE0007093B6018093B7019093B8010C942314A9 +:102FF0000F931F930091B5011091B6012091B70175 +:103000003091B801DC01CB01802B912BA22BB32B8B +:103010008093B5019093B601A093B701B093B80126 +:103020001F910F910C9423140F931F930091B501DE +:103030001091B6012091B7013091B801DC01CB01AC +:1030400080239123A223B3238093B5019093B601EB +:10305000A093B701B093B8011F910F910C94231462 +:103060000F931F930091B5011091B6012091B70104 +:103070003091B801DC01CB0180279127A227B3272B +:103080008093B5019093B601A093B701B093B801B6 +:103090001F910F910C9423141092B1011092B20160 +:1030A0001092B3011092B4010C94231441E050E04B +:1030B00060E070E004C0440F551F661F771F8A95BB +:1030C000D2F74093B1015093B2016093B301709372 +:1030D000B4010C94231441E050E060E070E004C0BF +:1030E000440F551F661F771F8A95D2F78091B10153 +:1030F0009091B201A091B301B091B401482B592B2A +:103100006A2B7B2B4093B1015093B2016093B301C2 +:103110007093B4010C94231441E050E060E070E03F +:1031200004C0440F551F661F771F8A95D2F740953C +:103130005095609570958091B1019091B201A091E8 +:10314000B301B091B401482359236A237B234093F0 +:10315000B1015093B2016093B3017093B4010C9428 +:10316000231441E050E060E070E004C0440F551FBC +:10317000661F771F8A95D2F78091B1019091B201B5 +:10318000A091B301B091B401482759276A277B2742 +:103190004093B1015093B2016093B3017093B401B5 +:1031A0000C9423140F931F930091B1011091B2015D +:1031B0002091B3013091B401DC01CB01802B912B24 +:1031C000A22BB32B8093B1019093B201A093B301D2 +:1031D000B093B4011F910F910C9423140F931F937C +:1031E0000091B1011091B2012091B3013091B4016D +:1031F000DC01CB0180239123A223B3238093B1016F +:103200009093B201A093B301B093B4011F910F91B9 +:103210000C9423140F931F930091B1011091B201EC +:103220002091B3013091B401DC01CB0180279127BB +:10323000A227B3278093B1019093B201A093B30169 +:10324000B093B4011F910F910C9423140895CF9261 +:10325000DF92EF92FF920F931F93CF93DF938C0136 +:10326000C090B101D090B201E090B301F090B401F0 +:103270008091B5019091B601A091B701B091B801CC +:10328000C82AD92AEA2AFB2ACFE1D0E0D701C60111 +:103290000C2E04C0B695A795979587950A94D2F7FA +:1032A00080FF07C0B8018C2F0E947C0681309105F9 +:1032B00031F4219758F7B80180E00E947C06DF9135 +:1032C000CF911F910F91FF90EF90DF90CF900895D5 +:1032D00090910C019923F1F090910D019923D1F077 +:1032E000982F9695969596959F3080F5E0910E01D2 +:1032F000F0910F01E90FF11D877021E030E0A90185 +:1033000002C0440F551F8A95E2F7CA019181892BAB +:103310008183089520910E0130910F01F9013296B9 +:103320009FEF40E05191851789F09F3F19F45111AB +:1033300001C0942F4F5F4E30A9F79F3F39F0F9013C +:10334000E90FF11D97FDFA958283089508959091F4 +:103350000C019923F9F090910D019923D9F0982F40 +:103360009695969596959F3028F5E0910E01F091EF +:103370000F01E90FF11D877021E030E0A90102C0C3 +:10338000440F551F8A95E2F7CA01809591818923E0 +:103390008183089520910E0130910F01F901329639 +:1033A000205F3F4F9081891301C010823196E21750 +:1033B000F307C1F7089581E090E0E0910E01F091EC +:1033C0000F01E80FF91F1082019680319105A9F7CE +:1033D00008959091CC01892B8093CC01089580951C +:1033E0009091CC0189238093CC0108951092CC0157 +:1033F00008959091CB01892B8093CB0108958095FE +:103400009091CB0189238093CB0108951092CB0139 +:1034100008959091CA01892B8093CA0108958095DF +:103420009091CA0189238093CA0108951092CA011C +:1034300008958093B90108951092B901089580917B +:103440000E0190910F01FC0131969C01205F3F4FCE +:1034500080E0919191118F5FE217F307D1F7089502 +:10346000E0910E01F0910F018091CC018083E091F9 +:103470000E01F0910F0190818091CB01892B808307 +:10348000E0910E01F0910F0190818091CA01892B8A +:1034900080838091B901882361F0E0910E01F09161 +:1034A0000F019081892B80830E941F1A8111109235 +:1034B000B90180910E0190910F010C94D30ECF921F +:1034C000DF92EF92FF926C01EE24FF24C114D1042D +:1034D000E104F10421F0C701B60120E101C020E0C0 +:1034E000C72ED82EE92EFF24C114D104E104F10423 +:1034F00019F0285FC701B6016B017C0154E0F69416 +:10350000E794D794C7945A95D1F7C114D104E10434 +:10351000F10419F02C5FC701B6016B017C0142E098 +:10352000F694E794D794C7944A95D1F7C114D1047F +:10353000E104F10419F02E5FC701B601DC01CB01F3 +:10354000B695A79597958795892B8A2B8B2B09F094 +:103550002F5F822FFF90EF90DF90CF9008958091A2 +:10356000E501843011F120E488E190E00FB6F89491 +:10357000A895809360000FBE2093600083B7817F81 +:10358000846083BF83B7816083BF7894889583B755 +:103590008E7F83BF0FB6F894A895809160008861F4 +:1035A00080936000109260000FBE089508950C94FF +:1035B000D61ACF930E94D71A0E949B040E94D61A53 +:1035C000C0E08C2F0E949105811104C0CF5FCE30E6 +:1035D000C1F701C081E0CF9108950E9437140E9485 +:1035E000C70E0C94BC0782E084BD93E095BD9AEFB2 +:1035F00097BD80936E0008952FB7F8948091CE0107 +:103600009091CF01A091D001B091D1012FBF089529 +:10361000CF92DF92EF92FF920F931F932FB7F89400 +:103620004091CE015091CF016091D0017091D101B4 +:103630002FBF6A017B01EE24FF248C0120E030E0E3 +:10364000C016D106E206F30610F4415051099A0162 +:10365000281B390BC9011F910F91FF90EF90DF904C +:10366000CF9008951F920F920FB60F9211248F934F +:103670009F93AF93BF938091CE019091CF01A09182 +:10368000D001B091D1010196A11DB11D8093CE0151 +:103690009093CF01A093D001B093D101BF91AF918E +:1036A0009F918F910F900FBE0F901F9018950E94C1 +:1036B000BF0BF8942FEF87EA91E6215080409040AD +:1036C000E1F700C0000087E090EBDC018093EE01A1 +:1036D0009093EF01A093F001B093F1019CE088E199 +:1036E0000FB6F894A895809360000FBE9093600089 +:1036F000FFCFEF92FF920F931F93CF93DF93D82FBB +:10370000C0E08C2F0E94910500E010E0E82EF12C23 +:10371000C701002E02C0959587950A94E2F780FDB7 +:1037200006C00F5F1F4F0630110591F709C0602FCB +:103730007C2F80E00E9459068D13F3CF81E004C0F6 +:10374000CF5FCE30F1F680E0DF91CF911F910F91E6 +:10375000FF90EF900895CF93C82F8CE20E94791BC1 +:10376000882321F08C2FCF910C94791B80E0CF918E +:103770000895CF930E94001D811102C00E94E61C93 +:10378000C5E6C15049F00E949B048FE39CE9019774 +:10379000F1F700C00000F5CF89E20E94AB1B811158 +:1037A00013C18AE20E94AB1B81110E94E61C85E0D6 +:1037B0000E94AB1B81110E94571B0E940B1D80931E +:1037C000CD0187E00E94AB1B8823A9F18BE10E9409 +:1037D000AB1B882351F08091CD0181FB222720F97A +:1037E00091E0922790FB81F90EC08EE00E94AB1B06 +:1037F000882361F08091CD0182FB222720F991E09E +:10380000922790FB82F98093CD0115C080E10E9440 +:10381000AB1B9091CD01882341F093FB222720F927 +:1038200081E0822780FB93F904C0892F809580FB7B +:1038300090F99093CD018091CD010E940F1D0E94BF +:103840001D1D8093DF0180EE0E94AB1B882341F099 +:103850008091DF01982F909590FB80F98093DF0194 +:1038600089E30E94AB1B882359F08091DF0181FB23 +:10387000222720F991E0922790FB81F98093DF01C4 +:1038800082EE0E94AB1B882359F08091DF0182FBFE +:10389000222720F991E0922790FB82F98093DF01A3 +:1038A00086EE0E94AB1B882359F08091DF0183FBD9 +:1038B000222720F991E0922790FB83F98093DF0182 +:1038C00083EE0E94AB1B882359F08091DF0184FBBB +:1038D000222720F991E0922790FB84F98093DF0161 +:1038E00085E30E94AB1B882359F08091DF0185FBA3 +:1038F000222720F991E0922790FB85F98093DF0140 +:1039000081E30E94AB1B882359F08091DF0186FB85 +:10391000222720F991E0922790FB86F98093DF011E +:1039200081E10E94AB1B882359F08091DF0187FB66 +:10393000222720F991E0922790FB87F98093DF01FD +:103940008091DF010E94211D8091DF0187FB882784 +:1039500080F980930D0187E20E94AB1BC82F8EE196 +:103960000E94AB1B8111C2608FE10E94AB1B8111D1 +:10397000C46080E20E94AB1B8111C86081E20E949A +:10398000AB1B8111C06182E20E94AB1B8111C0623E +:1039900083E20E94AB1B8111C06484E20E94AB1BD6 +:1039A000882311F0C06802C0CC2329F08C2F0E941C +:1039B000181D6C2F03C00E94141D682F70E080E05A +:1039C00090E0CF910C94EE17CF9108956DEE7EEFBD +:1039D00080E090E00E945A2360E082E090E00E9444 +:1039E0004C2360E083E090E00E944C2360E084E0A0 +:1039F00090E00E944C2360E085E090E00C944C2322 +:103A000080E090E00E94462321E08D3E9E4F09F029 +:103A100020E0822F089582E090E00C943E23682FEE +:103A200082E090E00C944C2383E090E00C943E23E1 +:103A3000682F83E090E00C944C2384E090E00C9499 +:103A40003E23682F84E090E00C944C238091D401B5 +:103A500080FF0BC06091130185E0689FB0011124C5 +:103A600075956795759567952BC081FF09C0609125 +:103A7000130185E0689FB00111247595679520C0FA +:103A800082FF07C06091130185E0689FB001112497 +:103A900017C09091D5019923D1F06091120196172A +:103AA00088F72091130185E0289F90011124929FAF +:103AB000A001939F500D112470E0CA010E941023B1 +:103AC0006038710540F46115710519F406C065E0B0 +:103AD00070E0862F08958FE7089581E00895809122 +:103AE000D40180FF08C06091110170E07595679561 +:103AF0007595679521C081FF06C06091110170E046 +:103B00007595679519C082FF04C06091110170E03E +:103B100010C09091D501992399F0609110019617EA +:103B2000A0F780911101899FC001112470E00E94CB +:103B300010236038710540F46115710519F406C051 +:103B400061E070E0862F08958FE7089581E0089581 +:103B5000803F21F40E94261D819504C0813F29F4F5 +:103B60000E94261D8093D8010895823F21F40E946F +:103B7000261D819504C0833F29F40E94261D809351 +:103B8000D7010895893F19F40E946F1D05C08A3F2F +:103B900031F40E946F1D81958093D90108958B3F68 +:103BA00021F40E946F1D819504C08C3F29F40E946E +:103BB0006F1D8093DA010895843F21F48091D6012E +:103BC000816017C0853F21F48091D601826011C0C9 +:103BD000863F21F48091D60184600BC0873F21F499 +:103BE0008091D601886005C0883F31F48091D6016C +:103BF00080618093D60108958D3F21F48091D40196 +:103C000081600BC08E3F21F48091D401826005C099 +:103C10008F3F29F48091D40184608093D40108956A +:103C2000803F39F48091D80187FF6CC01092D80191 +:103C300069C0813F29F48091D8011816BCF362C095 +:103C40009091D701823F29F497FF5CC01092D70171 +:103C500059C0833F19F41916CCF354C0893F41F47D +:103C60008091D90118160CF04DC01092D9014AC0AC +:103C70008A3F29F48091D90187FF44C0F6CF8B3F5A +:103C800039F48091DA0187FF3DC01092DA013AC021 +:103C90008C3F29F48091DA011816BCF333C0843FBD +:103CA00021F48091D6018E7F17C0853F21F4809149 +:103CB000D6018D7F11C0863F21F48091D6018B7F84 +:103CC0000BC0873F21F48091D601877F05C0883FD4 +:103CD00031F48091D6018F7E8093D60113C08D3F41 +:103CE00021F48091D4018E7F0BC08E3F21F480910E +:103CF000D4018D7F05C08F3F29F48091D4018B7F43 +:103D00008093D4018091D70181110EC08091D80198 +:103D100081110AC08091D901811106C08091DA0118 +:103D2000811102C01092D501089586ED91E00E94A4 +:103D3000DE0E0E94FC1A9093D3018093D201089565 +:103D40001F93CF93DF938091D2019091D3010E9472 +:103D5000081BAC019091D501992321F02091140109 +:103D600030E006C0209115018AE0289F90011124BF +:103D70004217530708F485C08091D701C091D8013C +:103D8000D091D9011091DA01811107C0C11175C01C +:103D9000D11173C0111171C074C09F3F19F09F5FA2 +:103DA0009093D501181624F40E94261D8093D70104 +:103DB0008091D70187FF05C00E94261D81958093C1 +:103DC000D7011C1624F40E94261D8093D8018091EF +:103DD000D80187FF05C00E94261D81958093D801D8 +:103DE0006091D701662331F1C091D801CC2311F144 +:103DF000062E000C770B880B990B0E94172223E3E9 +:103E000033E343E35FE30E947B220E94DF21609360 +:103E1000D7016C2FCC0F770B880B990B0E941722C0 +:103E200023E333E343E35FE30E947B220E94DF212D +:103E30006093D8011D1624F40E946F1D8093D90150 +:103E40008091D90187FF05C00E946F1D81958093E5 +:103E5000D901111624F40E946F1D8093DA0180911C +:103E6000DA0187FF05C00E946F1D81958093DA01FA +:103E7000DF91CF911F910C94951E9F3F09F08FCF3A +:103E8000A0CFDF91CF911F910895E6EDF1E085E09D +:103E9000DF011D928A95E9F71092D5011092D401A5 +:103EA0000895833081F128F4813059F08230D1F0C7 +:103EB0000895853009F449C0B8F1863009F456C038 +:103EC000089580911501262F30E0280F311D2F3FD6 +:103ED000310524F4680F6093150108958FEF8093E6 +:103EE0001501089580911401262F30E0280F311D0F +:103EF0002F3F310524F4680F6093140108958FEF6C +:103F000080931401089580911301262F30E0280F2B +:103F1000311D2F3F310524F4680F6093130108957C +:103F20008FEF80931301089580911201262F30E0C6 +:103F3000280F311D2F3F310524F4680F60931201C3 +:103F400008958FEF80931201089580911101262F1B +:103F500030E0280F311D2F3F310524F4680F6093A6 +:103F6000110108958FEF8093110108958091100140 +:103F7000262F30E0280F311D2F3F310524F4680F24 +:103F80006093100108958FEF80931001089583309E +:103F900011F128F4813049F0823091F00895853094 +:103FA00081F120F18630C1F10895809115016817E3 +:103FB00020F4861B80931501089510921501089531 +:103FC00080911401681720F4861B809314010895D2 +:103FD00010921401089580911301681720F4861B34 +:103FE0008093130108951092130108958091120196 +:103FF000681720F4861B8093120108951092120115 +:10400000089580911101681720F4861B8093110197 +:10401000089510921101089580911001681720F4FD +:10402000861B8093100108951092100108950F933C +:104030001F938D3109F46BC008F03FC08E3009F436 +:104040007DC0C0F4873009F46EC068F4863009F092 +:10405000AFC08091CD01817F8E7F8093CD0181E0C3 +:104060008093DC01A6C0883009F458C08B3009F475 +:104070009BC09EC0863109F497C078F4803109F462 +:1040800070C0813109F094C00E94371490910D01E5 +:1040900081E0892780930D0187C0893109F484C0AC +:1040A0008B3109F085C08091CD0181FB222720F959 +:1040B00091E0922790FB81F94AC0853309F45BC0F7 +:1040C00048F4873209F457C008F45AC0893209F419 +:1040D00052C06EC0833438F48A3308F067C0883326 +:1040E00009F462C065C0833409F445C0883409F01E +:1040F0005FC00E9437140FEF13ED20E30150104012 +:104100002040E1F700C000000E94571B4DC00E94F4 +:1041100099210E94C70E0E94BC0746C00E940B1D39 +:104120000E941D1D41C09091CD01892F817090FF8B +:1041300012C0917F9E7F9093CD013BC08091CD01B5 +:1041400082FB222720F991E0922790FB82F980934D +:10415000CD01992349F18091CD0181608093CD01FA +:1041600023C08091CD0183FB222720F991E0922783 +:1041700090FB83F9ECCF61E070E080E090E010C04C +:104180008D5141E050E060E070E08A019B0104C085 +:10419000000F111F221F331F8A95D2F7C901B801E2 +:1041A0000E94EE170E94371481E003C08953E9CFC3 +:1041B00080E01F910F91089580E008950C94DC2019 +:1041C000CF93C82F8091DC01813079F018F08230D4 +:1041D000E9F187C0E0910E01F0910F0180818131FA +:1041E00069F0823209F07FC009C0E0910E01F091C0 +:1041F0000F018081813111F0823261F48C2F0E9495 +:10420000DE20811104C08C2F0E9417201DC081E088 +:1042100090E01AC08C2F0E94DC20811114C0C431A0 +:1042200079F048F4CB3079F0C03109F060C082E019 +:104230008093DC0108C0C93219F0C83321F057C09F +:104240001092DC0154C081E0817053C0C93289F101 +:1042500018F5C43171F1A8F4C73009F046C08AE0FE +:104260008093150194E19093140193E090931301CE +:104270008093120188E08093110188E280931001FD +:1042800034C0CE51C63088F5EC2FF0E0E65DFE4F2D +:1042900080818093DB0129C0CE34E9F020F4CB3457 +:1042A00021F56AE013C0C13579F0C235F1F461E05F +:1042B0000DC08091DB01882319F01092DB0115C03D +:1042C00081E08093DC0115C061E006C08091DB01D4 +:1042D0000E94511F0AC06AE08091DB010E94C71F43 +:1042E00004C01092DC0180E004C081E002C080E0E4 +:1042F000ABCFCF910895E1E8F0E0808188608083C2 +:104300008081816080838FB7F89493E090938900D7 +:1043100090ED909388008FBF0895EFE6F0E08081E4 +:10432000826080830895EFE6F0E080818D7F808356 +:104330000895EFE6F0E0908182E089278083089578 +:104340001F920F920FB60F9211242F933F934F930A +:104350005F936F937F938F939F93AF93BF93EF93ED +:10436000FF938091DD019091DE0101969093DE0133 +:104370008093DD01811103C082E00E94BC07E091BF +:10438000DE01E695E695F0E0EF5AFA4FE491809170 +:10439000DD018E1303C080E00E94BC07FF91EF9106 +:1043A000BF91AF919F918F917F916F915F914F914D +:1043B0003F912F910F900FBE0F901F9018950E9464 +:1043C000E6216894B1110C94752208950E945A2236 +:1043D00088F09F5798F0B92F9927B751B0F0E1F0C6 +:1043E000660F771F881F991F1AF0BA95C9F714C076 +:1043F000B13091F00E947422B1E008950C947422BF +:10440000672F782F8827B85F39F0B93FCCF38695AE +:1044100077956795B395D9F73EF49095809570950B +:1044200061957F4F8F4F9F4F0895E89409C097FB88 +:104430003EF490958095709561957F4F8F4F9F4F7B +:104440009923A9F0F92F96E9BB279395F6958795BF +:1044500077956795B795F111F8CFFAF4BB0F11F482 +:1044600060FF1BC06F5F7F4F8F4F9F4F16C0882329 +:1044700011F096E911C0772321F09EE8872F762F5F +:1044800005C0662371F096E8862F70E060E02AF0A0 +:104490009A95660F771F881FDAF7880F969587958C +:1044A00097F9089557FD9058440F551F59F05F3FF5 +:1044B00071F04795880F97FB991F61F09F3F79F046 +:1044C00087950895121613061406551FF2CF4695C8 +:1044D000F1DF08C0161617061806991FF1CF86954A +:1044E0007105610508940895E894BB27662777272E +:1044F000CB0197F908950E948E220C94FF220E940E +:10450000F12238F00E94F82220F0952311F00C944B +:10451000E8220C94EE2211240C9475220E9452225F +:1045200070F3959FC1F3950F50E0551F629FF00106 +:10453000729FBB27F00DB11D639FAA27F00DB11D1F +:10454000AA1F649F6627B00DA11D661F829F2227A8 +:10455000B00DA11D621F739FB00DA11D621F839F2F +:10456000A00D611D221F749F3327A00D611D231F05 +:10457000849F600D211D822F762F6A2F11249F5753 +:1045800050409AF0F1F088234AF0EE0FFF1FBB1F56 +:10459000661F771F881F91505040A9F79E3F510515 +:1045A00080F00C94E8220C9475225F3FE4F3983E6F +:1045B000D4F3869577956795B795F795E7959F5FBF +:1045C000C1F7FE2B880F911D9695879597F9089551 +:1045D00097F99F6780E870E060E008959FEF80ECB6 +:1045E000089500240A941616170618060906089559 +:1045F00000240A9412161306140605060895092EBF +:104600000394000C11F4882352F0BB0F40F4BF2B2D +:1046100011F460FF04C06F5F7F4F8F4F9F4F08956D +:1046200097FB072E16F4009407D077FD09D00E945F +:104630002A2307FC05D03EF4909581959F4F08955D +:10464000709561957F4F0895EE0FFF1F0590F491CF +:10465000E02D0994AA1BBB1B51E107C0AA1FBB1F79 +:10466000A617B70710F0A61BB70B881F991F5A95FE +:10467000A9F780959095BC01CD010895F999FECFD9 +:1046800092BD81BDF89A992780B50895A8E1B0E060 +:1046900042E050E00C946123262FF999FECF1FBA17 +:1046A00092BD81BD20BD0FB6F894FA9AF99A0FBE5B +:1046B000019608950E944C23272F0C944D23DC0172 +:1046C000CB01FC01F999FECF06C0F2BDE1BDF89A1D +:1046D000319600B40D9241505040B8F70895F894C7 +:0246E000FFCF0A +:1046E2002002BE074E082908F507C1070101BA01D9 +:1046F20028080A03140A3F4D36391205C5048F04EF +:104702005604E90302041B043404010203040506EF +:04471200070809008B :00000001FF -- cgit v1.2.3 From 474eaead3cbbe5d1e99a86a1a33200908a0a1f90 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 28 Mar 2016 08:09:27 -0700 Subject: ££££ --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index 97cc3bc35..3234a4cc8 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -198,7 +198,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } 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(PPLS), T(P0), T(P0), T(A), T(P3), U(LALT), END ); + return MACRO( I(255), D(LALT), T(P1), T(P0), T(P5), T(P6), U(LALT), END ); } break; } -- cgit v1.2.3 From 48899673af8b82638d601455f405f03db165bd57 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Mon, 28 Mar 2016 16:14:25 +0100 Subject: Updated hex --- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 2277 ++++++++++++------------- 1 file changed, 1138 insertions(+), 1139 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index 6e7bd2b73..622a00433 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -1,1140 +1,1139 @@ -:100000000C94C9020C9410030C9410030C9410036C -:100010000C9410030C9410030C9410030C94100314 -:100020000C9410030C9410030C943A0C0C940C0DCB -:100030000C9410030C9410030C9410030C941003F4 -:100040000C9410030C94A0210C9410030C94100336 -:100050000C9410030C94321B0C9410030C9410039A -:100060000C9410030C9410030C9410030C941003C4 -:100070000C9410030C9410030C9410030C941003B4 -:100080000C9410030C9410030C9410030C941003A4 -:100090000C9410030C9410030C9410030C94100394 -:1000A0000C9410030C9410030C941003790D9B0D09 -:1000B0008E0E9B0D8E0EE00D030E8E0E580E6B0EE7 -:1000C0005A115A1189118911CC11061213141314E3 -:1000D0001F12131414131413E71313141314FE1321 -:1000E00075FF01E20157025701620262016202627A -:1000F00001040204015B025B02E2000000F0A1F0D7 -:10010000A2F0A329002B00E300E100E00000001EA4 -:1001100000140004001D7406014E001F001A001692 -:10012000001B0019012A00200008000700060050EB -:1001300000280021001500090019004F004B002283 -:100140000017000A0005000000C30023002F000074 -:10015000004A0000003E002400300000004D000076 -:10016000003B0025001C000B0011000000C200260F -:100170000018000D0010005100490027000C000E6F -:1001800000360052002C002D0012000F0037000036 -:100190007FC1002E0013003300380035004C002AC8 -:1001A0000031003400E500E400000001000100011E -:1001B000000100010000003A001E0220022202039A -:1001C0003001003B001F0221022302010001003C1C -:1001D000002F0226022F00010001003D00300227FF -:1001E000023000010001003E0031023500350200FE -:1001F0000001003F0001000000010000000100407C -:100200000001000000010000000100410052005107 -:10021000002402000001004200240021001E000111 -:100220000001004300250022001F003700010044A8 -:100230000026002300200027000100450025022E93 -:100240000231002E004C0546000100010001003D76 -:100250000400000050010001000100010000000145 -:10026000000100010001000100010001000100F295 -:10027000000100010001000100F000F1000100F4A4 -:1002800000010001000100F3000100F50001000180 -:100290000001000100010000000100010001000058 -:1002A0000001000000010001000100000001000049 -:1002B0000001000100010001000100000001000137 -:1002C00000010001000100AA00010001000100017D -:1002D00000AC00A900B600010001000100AB00A8BD -:1002E0000001000100010001000100010001000106 -:1002F000000100AE00010001000000E200E200E2A7 -:1003000000E200E20000005900010004000100E2E8 -:100310000001005A00010001000100E200E2005B60 -:10032000000800070006000100E2005C000100096F -:10033000000100010001005D000100010005000056 -:100340000001005E00010000000100000001005FEC -:100350000001000000010000000100600001000138 -:100360000001000000010061005F005C00590062B4 -:10037000000100620060005D005A006200E2005768 -:100380000061005E005B006200E20057005700570A -:1003900000570057000100010001000100010001A9 -:1003A00000000016034500720067006F0044006FF4 -:1003B000007800200045005A000000160345007236 -:1003C0000067006F0044006F007800200045005A6D -:1003D0000000000403090409026D00040100A0FAF2 -:1003E000090400000103010100092111010001229B -:1003F0003F000705810308000A0904010001030109 -:100400000200092111010001224D000705820308A5 -:10041000000A090402000103000000092111010083 -:10042000012236000705830308000A0904030001BE -:100430000300000009211101000122390007058491 -:10044000031000011201100100000008EDFE071367 -:1004500001000102000105010906A101050719E0DB -:1004600029E7150025019508750181020508190184 -:1004700029059505750191029501750391010507FF -:100480001900297715002501957875018102C005AD -:10049000010980A101850216010026B7001A01009A -:1004A0002AB700751095018100C0050C0901A10152 -:1004B0008503160100269C021A01002A9C02751071 -:1004C00095018100C005010902A1010901A10005F2 -:1004D0000919012905150025019505750181029568 -:1004E00001750381010501093009311581257F95C9 -:1004F000027508810609381581257F9501750881E7 -:1005000006050C0A38021581257F950175088106BC -:10051000C0C005010906A101050719E029E715007A -:10052000250195087501810295017508810105086D -:100530001901290595057501910295017503910130 -:100540000507190029FF150025FF9506750881008C -:10055000C0000000000000000000000001020406CE -:100560000A0F17202C3A4A5D71879DB3C7DAE9F567 -:10057000FCFFFCF5E9DAC7B39D87715D4A3A2C2090 -:10058000170F0A060402010000000000000000002E -:10059000000011241FBECFEFDAE0DEBFCDBF04B6EE -:1005A00003FE27C08091EE019091EF01A091F00130 -:1005B000B091F1018730904BA740B04BD1F410922D -:1005C000EE011092EF011092F0011092F10114BEB1 -:1005D00084B7877F84BF0FB6F894A8958091600098 -:1005E000886180936000109260000FBEE0E0FFE33E -:1005F000099511E0A0E0B1E0E2EEF6E402C005905A -:100600000D92A433B107D9F721E0A4E3B1E001C012 -:100610001D92AE3EB207E1F70E9481090C946F2350 -:100620000C940000CF93DF93EC01662319F0633044 -:1006300059F00DC08A81882321F085EE0E94EF0FCA -:1006400003C085EE0E94B7108A81811103C080E04B -:1006500090E002C080EE90E0DF91CF910895089580 -:100660006091B1017091B2018091B3019091B40198 -:100670000E945F1A56985E9825982D9826982E9875 -:1006800027982F98823039F0833041F0813041F43F -:10069000259A2D9A0895269A2E9A0895279A2F9A88 -:1006A00008950C94300356985E9825982D982698B6 -:1006B0002E9827982F988FEF90E090938900809341 -:1006C000880090938B0080938A0090938D00809394 -:1006D0008C00259A2D9A2FEF80E792E021508040E0 -:1006E0009040E1F700C00000269A2E9A2FEF80E795 -:1006F00092E0215080409040E1F700C00000279A2E -:100700002F9A2FEF80E792E0215080409040E1F750 -:1007100000C0000025982D982FEF80E792E021502F -:1007200080409040E1F700C0000026982E982FEFFF -:1007300080E792E0215080409040E1F700C0000047 -:1007400027982F9856985E9825982D9826982E9839 -:1007500027982F98089589EA8093800089E08093F4 -:10076000810024982C983F988AB18F748AB96E982A -:10077000479A8BB1806B8BB9769A0E9453030C9485 -:100780002F0380E2809300018091340181110EC01B -:100790000E94100481E0809334012FEF83ED90E3F9 -:1007A000215080409040E1F700C0000080E40E94AA -:1007B00016048093000181112EC00E944004809392 -:1007C0000001811128C00E94400480930001811122 -:1007D00022C08FE30E9440048093000181111BC05E -:1007E0000E94380480E40E94160480930001811165 -:1007F00012C08CE00E9440048093000181110BC064 -:100800000E94400480930001811105C08FE30E9483 -:100810004004809300010E943804809100010895F3 -:100820001092B9008AE08093B800089594EA9093FA -:10083000BC009091BC0097FFFCCF9091B900987FCD -:10084000983021F0903111F081E008958093BB0041 -:1008500084E88093BC008091BC0087FFFCCF80912E -:10086000B900887F883111F0803471F780E00895F5 -:1008700084E98093BC008091BC0084FDFCCF089586 -:100880008093BB0084E88093BC008091BC0087FF0C -:10089000FCCF9091B900987F81E0983209F480E014 -:1008A000089584E88093BC008091BC0087FFFCCF52 -:1008B0008091BB00089580910001811115C080E4F2 -:1008C0000E9416048093000181110CC082E10E94F5 -:1008D000400480930001811105C08FEF0E94400405 -:1008E000809300010E94380484B1807F84B985B16F -:1008F000807F85B98AB1837F8AB98BB1837F8BB9B9 -:100900003E98469808950E94C103809300010E947A -:100910005B0480B38C7080BB81B3836F81BBE4E4E4 -:10092000F1E0A6E3B1E011921D9281E0E235F80713 -:10093000D1F70C94AB039F92AF92BF92CF92DF920C -:10094000EF92FF920F931F93CF93DF93809100015B -:10095000882379F0809135018F5F80933501811173 -:1009600008C00E94C10380930001811102C00E944F -:10097000530386E3E82E81E0F82E8701C0E0D0E043 -:10098000BB24B39492E0A92ECC24C394D12CC730BD -:10099000D10500F580910001811164C080E40E94BE -:1009A000160480930001811112C082E10E9440046C -:1009B0008093000181110BC0C6010C2E01C0880F6D -:1009C0000A94EAF780950E944004809300010E94F7 -:1009D000380448C0CA30A1F028F4C83059F0C930F2 -:1009E00061F005C0CC3089F070F0CD3089F0209AEC -:1009F000289810C0219A29980DC0229A2A980AC0D6 -:100A0000239A2B9807C0529A01C0539A5B9802C050 -:100A10003E9A4698E0EAEA95F1F78FB181708B250E -:100A2000799902C032E001C030E0832B7C9902C08A -:100A300034E001C030E0832B7D9902C028E001C082 -:100A400020E0822B7E9902C090E101C090E0892BCA -:100A50009FB19095991F9927991F9295990F907E14 -:100A6000892B0FC08091000181114AC080E40E944F -:100A7000160480930001882381F1912C0E94380490 -:100A8000892DD8019C91981719F08C93A09201019F -:100A90000E945B0421960F5F1F4FCE30D10509F0F5 -:100AA00076CF80910101882369F181508093010103 -:100AB000882339F0EFE9FFE03197F1F700C000003B -:100AC00021C0E4E4F1E0D7018D917D018193B4E48C -:100AD000EB16B1E0FB06B9F715C083E10E944004B4 -:100AE000809300018111C9CF81E40E941604809394 -:100AF00000018111C2CF0E945104982E9094BECF64 -:100B000080E0BFCF0E94510381E0DF91CF911F9120 -:100B10000F91FF90EF90DF90CF90BF90AF909F909C -:100B20000895E82FF0E0EC5BFE4F80810895089572 -:100B30008B3B910580F4883A910548F5853A9105FB -:100B4000D8F48430910508F0B2C0019709F06EC066 -:100B500081E090E00895803E910508F467C0883EEA -:100B6000910508F4A4C09C01205F310920313105B2 -:100B700008F05CC090650895853A910509F459C064 -:100B8000863A910509F058C082E890E40895883AC1 -:100B9000910509F454C0893A910509F453C08A3A81 -:100BA000910509F452C08B3A910509F451C08C3A71 -:100BB000910509F450C08D3A910509F44FC0803B6E -:100BC000910509F44EC08E3A910509F44DC08F3A53 -:100BD000910509F44CC0813B910509F44BC0823B5F -:100BE000910509F44AC0833B910509F449C0843B4F -:100BF000910509F448C0853B910509F447C0863B3F -:100C0000910509F446C0873B910509F445C0883B2E -:100C1000910509F444C0893B910509F443C08A3B1E -:100C2000910509F442C080E094E4089580E090E0EA -:100C3000089581E890E4089583E890E4089582EEB1 -:100C400094E4089589EE94E408958AEE94E4089576 -:100C500085EB94E4089586EB94E4089587EB94E49F -:100C600008958CEC94E408958DEC94E4089583E861 -:100C700095E408958AE895E4089582E995E4089555 -:100C800084E995E4089581E296E4089583E296E488 -:100C9000089584E296E4089585E296E4089586E254 -:100CA00096E4089587E296E408958AE296E408952A -:100CB000089524E5829FC0011124FC0126E0729F63 -:100CC000E00DF11D1124E60FF11DEE0FFF1FED5F8A -:100CD000FE4F859194910895880F991FFC01E55866 -:100CE000F040859194910895880F991FFC01E5507B -:100CF000FF4F85919491089524E5829FC0011124AE -:100D0000FC0146E0749FE00DF11D1124E60FF11D7A -:100D1000EE0FFF1FED5FFE4F859194919C013A9578 -:100D200021154FE1340708F425C13F512115304109 -:100D300020F49F700E94740608959C013053211581 -:100D4000304118F49927906C0895811520E5920799 -:100D500069F40E9437144FEF84E39CE041508040D7 -:100D60009040E1F700C000000C94571B813020E553 -:100D7000920731F48091CD0181608093CD01089577 -:100D80009C0130552115304108F05CC0292F3327D4 -:100D90002F70332721303105E9F4AC0164E0440FB2 -:100DA000551F6A95E1F744275370BC01637077279C -:100DB00002C0220F331F6A95E2F73C68242B352BC3 -:100DC00073E0880F991F7A95E1F780769927822B37 -:100DD000932B08952230310529F4982F8827816FAD -:100DE000906A089523303105A1F4AC0133E0440F3B -:100DF000551F3A95E1F7407E57708370992721E09F -:100E000030E002C0220F331F8A95E2F7C9019C68C7 -:100E100016C02430310531F5AC0123E0440F551FD5 -:100E20002A95E1F7407E57708370992721E030E0E2 -:100E300002C0220F331F8A95E2F7C9019A68842BFA -:100E4000952B08959C0130572115304118F49F705F -:100E5000906208959C0130582115304118F49F701C -:100E6000906A0895803E9105E0F4803C910558F524 -:100E70008133910509F46FC048F48932910509F472 -:100E800063C08A32910509F46DC072C0893391053F -:100E9000E9F082389105D1F08533910509F44DC010 -:100EA00067C0833E910581F138F4803E9105B9F029 -:100EB000823E9105D9F05CC0863E910561F1873E86 -:100EC0009105A1F155C00E946C0608952091DF01A3 -:100ED00020FD02C021FF4CC080EE90E049C080910F -:100EE000DF0180FFF9CF89E390E042C08091DF010C -:100EF00082FF0EC08091DF0184FF03C080E090E09C -:100F000037C083EE90E034C08091DF0182FFF2CFE2 -:100F100082EE90E02DC08091DF0183FF0BC08091B5 -:100F2000DF0184FDEBCF87EE90E022C08091DF01EE -:100F300083FFF5CF86EE90E01BC08091DF0185FF37 -:100F400007C089E290E014C08091DF0185FFF9CFEE -:100F500085E390E00DC08091DF0186FF07C08AE243 -:100F600090E006C08091DF0186FFF9CF81E390E039 -:100F70000E949805089508950C94BB078091620122 -:100F80000895CF93DF9300D01F92CDB7DEB79C01B9 -:100F90008091E501843019F593E099833B832A839E -:100FA0009093E9008FEF9091E800815095FD06C085 -:100FB00095ED9A95F1F700008111F5CF8091E80049 -:100FC00085FF0DC040E050E063E070E0CE01019687 -:100FD0000E942E0A8091E8008E778093E8000F909F -:100FE0000F900F90DF91CF910895CF93DF9300D0B2 -:100FF0001F92CDB7DEB72091E501243021F522E024 -:1010000029839B838A8383E08093E9008FEF90910B -:10101000E800815095FD06C095ED9A95F1F7000026 -:101020008111F5CF8091E80085FF0DC040E050E0D0 -:1010300063E070E0CE0101960E942E0A8091E800E4 -:101040008E778093E8000F900F900F90DF91CF91F3 -:1010500008959C018091E5018430F9F482E0809349 -:10106000E9009FEF8091E800915085FD06C085ED75 -:101070008A95F1F700009111F5CF8091E80085FF86 -:101080000CC040E050E065E070E0C9010E942E0A0B -:101090008091E8008E778093E8000895CF93DF93E6 -:1010A000EC018091E501843009F046C090910C017B -:1010B0009923D9F090910D019923B9F08093E9001B -:1010C0008FEF9091E800815095FD06C095E19A95CB -:1010D000F1F700008111F5CF8091E80085FF2CC069 -:1010E00040E050E060E170E017C081E08093E900EB -:1010F0008FEF9091E800815095FD06C095ED9A958F -:10110000F1F700008111F5CF8091E80085FF14C050 -:1011100040E050E068E070E0CE010E942E0A80912D -:10112000E8008E778093E80080E1FE01A2E5B1E05F -:1011300001900D928A95E1F7DF91CF91089580910A -:10114000E401811109C00E94BF0B0E941C0C809118 -:10115000E20084608093E20008951092E401089513 -:1011600008950C948D210E94ED1A0E9493210E94F3 -:10117000C70E0C94BC0742E061EC81E00E94380B82 -:1011800042E061EC82E00E94380B42E061EC83E0D7 -:101190000E94380B42E161EC84E00C94380B8091A2 -:1011A000E701833009F455C030F4813071F08230AA -:1011B00009F48EC008958A3009F47AC08B3009F49E -:1011C00060C0893009F09CC020C08091E601813A5E -:1011D00009F096C08091E800877F8093E8008091B5 -:1011E000EA019091EB01892B21F460E182E591E025 -:1011F00003C060E080E090E070E00E94790A809196 -:10120000E8008B778093E80008958091E6018132B1 -:1012100009F076C08091EA019091EB01009719F0F6 -:10122000039709F06DC08091E800877F8093E80004 -:101230008091E80082FD05C08091E5018111F8CF21 -:101240005FC08091F100809362018091E8008B770C -:1012500053C08091E601813A09F052C08091EA01C1 -:101260009091EB01892B09F04BC08091E800877FBA -:101270008093E8008091E80080FFFCCF80910C0112 -:1012800036C08091E6018132D9F58091EA019091D2 -:10129000EB01892BA9F58091E800877F8093E80016 -:1012A0000E946D0B8091E80180930C010C9437141F -:1012B0008091E601813221F58091E800877F80935B -:1012C000E8000E946D0B8091E9018093630108950D -:1012D0008091E601813AA1F48091E800877F8093B4 -:1012E000E8008091E80080FFFCCF8091630180934B -:1012F000F1008091E8008E778093E8000C946D0BEC -:10130000089584B7877F84BF0FB6F894A89580911D -:101310006000886180936000109260000FBE90E0D2 -:1013200080E80FB6F89480936100909361000FBE3F -:101330000E94160F0E94BF0B0E941C0C8091E200BD -:1013400084608093E20078940E94A70E0E94180F98 -:1013500082E091E00E94C20E0E947B218091E50113 -:10136000853069F40E94AF1A8091E3018823B1F3BC -:101370000E94D91A882391F30E94180AEFCF0E9485 -:101380001E0FECCF292F332723303105C9F060F42D -:101390002130310581F02230310509F041C08DE660 -:1013A00090E027ED33E040C021323105E1F02232F8 -:1013B000310531F135C082E190E024E434E034C0FD -:1013C00099278130910549F028F0029749F5E3EA21 -:1013D000F3E005C0E3EDF3E002C0EBEBF3E0849152 -:1013E00090E09F0121C06430D8F4E62FF0E0EE0FCA -:1013F000FF1FEE5DFE4F2081318189E090E014C037 -:10140000643070F470E0FB01EE0FFF1FE65EFE4FEC -:1014100020813181FB01EA5EFE4F808190E004C0B3 -:1014200080E090E020E030E0FA01318320830895ED -:1014300080E189BD82E189BD09B400FEFDCF8091C4 -:10144000D8008F7D8093D8008091E00082608093E7 -:10145000E0008091E00081FDFCCF0895CF92DF9203 -:10146000EF92FF920F931F93CF93DF93EC018B01C9 -:101470006A010E948C0B811133C0C114D10439F070 -:10148000F60180819181081B190BC80FD91FE12C2F -:10149000F12C0115110519F18091E80085FD16C0A8 -:1014A0008091E8008E778093E800C114D10449F060 -:1014B000F60180819181E80EF91EF182E08285E0DB -:1014C0000FC00E948C0B882321F30AC0899180935E -:1014D000F10001501109FFEFEF1AFF0ADACF80E0A7 -:1014E000DF91CF911F910F91FF90EF90DF90CF9000 -:1014F00008952091EC013091ED012617370748F04F -:101500006115710539F42091E8002E772093E800E9 -:1015100001C0B901FC0120E06115710579F18091EC -:10152000E5018823F1F18530F1F18091E80083FD38 -:101530003CC08091E80082FD2EC08091E80080FFD1 -:10154000EBCF2091F3008091F20090E0922B611597 -:10155000710551F08830910538F421912093F10004 -:10156000615071090196F3CF21E0089709F020E05E -:101570008091E8008E778093E800CECF2111CFCF05 -:101580000AC08091E501882361F0853061F0809187 -:10159000E80083FD0AC08091E80082FFF2CF80E07E -:1015A000089582E0089583E0089581E008952091F0 -:1015B000EC013091ED012617370748F061157105F0 -:1015C00039F42091E8002E772093E80001C0B9019A -:1015D000FC0120E06115710591F18091E5018823FE -:1015E00009F440C0853009F43FC08091E80083FDD4 -:1015F0003DC08091E80082FD2FC08091E80080FF0F -:10160000E9CF2091F3008091F20090E0922B6115D8 -:10161000710559F08830910540F424912093F10030 -:101620003196615071090196F2CF21E0089709F0D7 -:1016300020E08091E8008E778093E800CBCF2111E5 -:10164000CCCF0AC08091E501882361F0853061F03C -:101650008091E80083FD0AC08091E80082FFF2CF0C -:1016600080E0089582E0089583E0089581E0089580 -:10167000982F973068F59093E900981739F070919A -:10168000EC002091ED005091F00003C0242F762F44 -:1016900050E021FD02C09F5FECCF3091EB003E7F18 -:1016A0003093EB003091ED003D7F3093ED003091B1 -:1016B000EB0031603093EB007093EC002093ED0071 -:1016C0005093F0002091EE0027FDE5CF80E00895D3 -:1016D0008F708093E90081E008958091E60187FF93 -:1016E00011C08091E80082FD05C08091E501811163 -:1016F000F8CF11C08091E8008B770BC08091E50195 -:10170000882349F08091E80080FFF8CF8091E800BD -:101710008E778093E80008952091E4003091E500F1 -:1017200095E64091EC00842F817040FF23C08091AA -:10173000E80080FD1DC08091E501882399F0853087 -:1017400099F08091EB0085FD11C04091E40050912B -:10175000E5002417350729F3915011F09A01E1CFE4 -:1017600084E0089582E0089583E0089581E008957B -:1017700080E008954091E80042FFDDCF08950E9487 -:101780002D0C0E94350CE0EEF0E0808181608083BA -:10179000E8EDF0E080818F77808319BCA7EDB0E0A1 -:1017A0008C918E7F8C9380818F7E80831092E40158 -:1017B00008950F931F93CF93DF930E942D0C0E94E7 -:1017C000350CC8EDD0E088818F7788838881806868 -:1017D000888388818F7D888319BC1092E5011092DF -:1017E000E1011092E3011092E20100EE10E0F80135 -:1017F00080818B7F808388818160888342E060E084 -:1018000080E00E94380BE1EEF0E080818E7F8083E3 -:10181000E2EEF0E080818160808380818860808357 -:10182000F80180818E7F8083888180618883DF9149 -:10183000CF911F910F910895E8EDF0E080818F7EA8 -:101840008083E7EDF0E080818160808384E082BF67 -:1018500081E08093E4010C94D90BE8EDF0E0808105 -:101860008E7F80831092E20008951092DA00109229 -:10187000E10008951F920F920FB60F9211242F933B -:101880003F934F935F936F937F938F939F93AF9308 -:10189000BF93EF93FF938091E10082FF0BC0809193 -:1018A000E20082FF07C08091E1008B7F8093E1001E -:1018B0000E94A60E8091DA0080FF1FC08091D800A0 -:1018C00080FF1BC08091DA008E7F8093DA008091C8 -:1018D000D90080FF0DC080E189BD82E189BD09B4D6 -:1018E00000FEFDCF81E08093E5010E949F0805C0C6 -:1018F00019BC1092E5010E94AD088091E10080FFC3 -:1019000019C08091E20080FF15C08091E2008E7FB7 -:101910008093E2008091E20080618093E2008091F8 -:10192000D80080628093D80019BC85E08093E501DF -:101930000E94B1088091E10084FF30C08091E200F4 -:1019400084FF2CC080E189BD82E189BD09B400FE1D -:10195000FDCF8091D8008F7D8093D8008091E100E9 -:101960008F7E8093E1008091E2008F7E8093E20081 -:101970008091E20081608093E2008091E101882300 -:1019800011F084E007C08091E30087FD02C081E090 -:1019900001C083E08093E5010E94B3088091E100DB -:1019A00083FF29C08091E20083FF25C08091E10080 -:1019B000877F8093E10082E08093E5011092E1014E -:1019C0008091E1008E7F8093E1008091E2008E7F24 -:1019D0008093E2008091E20080618093E20042E027 -:1019E00060E080E00E94380B8091F0008860809376 -:1019F000F0000E94B008FF91EF91BF91AF919F91CD -:101A00008F917F916F915F914F913F912F910F90A7 -:101A10000FBE0F901F9018951F920F920FB60F9246 -:101A200011242F933F934F935F936F937F938F93E3 -:101A30009F93AF93BF93CF93DF93EF93FF93C091A7 -:101A4000E900CF708091EC00D82FD17080FDD0E8F4 -:101A50001092E9008091F000877F8093F0007894E5 -:101A60000E94500D1092E9008091F00088608093F0 -:101A7000F000CD2BCF70C093E900FF91EF91DF9183 -:101A8000CF91BF91AF919F918F917F916F915F9116 -:101A90004F913F912F910F900FBE0F901F9018956F -:101AA0001F93CF93DF93CDB7DEB7AA970FB6F89405 -:101AB000DEBF0FBECDBFE6EEF1E08091F100819375 -:101AC00021E0EE3EF207C9F70E94CF088091E800BE -:101AD00083FF24C18091E6019091E701492F50E0F6 -:101AE0004A30510508F01AC1FA01EA5AFF4F0C9426 -:101AF0002423803881F0823809F010C18091EA01F6 -:101B00008F708093E9008091EB0085FB882780F936 -:101B10001092E90006C08091E2019091E3019111D9 -:101B200082609091E800977F9093E8008093F100A5 -:101B30001092F100C8C0282F2D7F09F0EFC0882334 -:101B400019F0823061F0EAC08091E801813009F03B -:101B5000E5C0933009F080E08093E3012BC08091D1 -:101B6000E801811127C08091EA018F7009F4D6C085 -:101B70008093E9002091EB0020FF1CC0933021F4FA -:101B80008091EB00806214C09091EB009061909383 -:101B9000EB0021E030E0A90102C0440F551F8A95F7 -:101BA000E2F74093EA001092EA008091EB0088602F -:101BB0008093EB001092E9008091E800877F86C057 -:101BC0008111ACC01091E8011F778091E30080780B -:101BD000812B8093E3008091E800877F8093E80069 -:101BE0000E946D0B8091E80080FFFCCF8091E300A4 -:101BF00080688093E300111102C082E001C083E09D -:101C00008093E5018BC08058823008F087C08091B6 -:101C1000E8019091E9018C3D53E0950779F583E067 -:101C20008A838AE289834FB7F894DE01139620E015 -:101C30003EE051E2E32FF0E050935700E49120FFA3 -:101C400003C0E295EF703F5FEF708E2F90E0EA30B7 -:101C500010F0C79601C0C0968D939D932F5F2431DD -:101C600049F74FBF8091E800877F8093E8006AE2E0 -:101C700070E0CE0101960E94790A14C0AE014F5F58 -:101C80005F4F6091EA010E94C209BC01892B09F4EF -:101C900045C09091E800977F9093E80089819A81F0 -:101CA0000E94D70A8091E8008B778093E80036C0C5 -:101CB0008038A1F58091E800877F8093E8008091CB -:101CC000E1018093F1008091E8008E778093E80035 -:101CD0000E946D0B23C0811121C08091E801909179 -:101CE000E90199270297D4F48091E800877F8093D7 -:101CF000E8008091E8018093E1010E946D0B8091E2 -:101D0000E101811106C08091E30087FD02C081E0FE -:101D100001C084E08093E5010E94BB088091E80047 -:101D200083FF0AC08091E800877F8093E80080915C -:101D3000EB0080628093EB00AA960FB6F894DEBFAA -:101D40000FBECDBFDF91CF911F9108950895CF931E -:101D50008091E5018823A1F0C091E900CF709091B6 -:101D6000EC00892F817090FD80E8C82B1092E9006B -:101D70008091E80083FD0E94500DCF70C093E90070 -:101D8000CF91089590936901809368010895E0913F -:101D90006801F0916901309721F00190F081E02D08 -:101DA000099480E00895E0916801F091690130970D -:101DB00021F00280F381E02D09940895E0916801FB -:101DC000F0916901309721F00480F581E02D0994AC -:101DD000089520916601309167012817390771F045 -:101DE0009093670180936601E0916801F091690129 -:101DF000309721F00680F781E02D09940895209115 -:101E00006401309165012817390771F090936501DD -:101E100080936401E0916801F0916901309721F0AD -:101E20000084F185E02D0994089508950C94150F10 -:101E30000E94F31A0E9483040C94B91BCF92DF9284 -:101E4000EF92FF920F931F93CF93DF93CDB7DEB73F -:101E50002B970FB6F894DEBF0FBECDBF0E949B0438 -:101E60008BE6C82E81E0D82E00E010E0E02E802F17 -:101E70000E949105F60141916F01F82EF426B1F40C -:101E80000F5F1F4F0E30110589F78FEF89838A830B -:101E90001B820E94FC1A8160782F9D838C8349816C -:101EA0005A816B818D810E94C10F40C09091CD01FC -:101EB00091FF04C08B870E9497058B8520E030E05E -:101EC0004F2D50E0922FBA01022E02C075956795F2 -:101ED0000A94E2F760FF24C02E83EF8221E030E015 -:101EE000690102C0CC0CDD1C9A95E2F790E08C21D0 -:101EF0009D21892B09F420E028870E94FC1A81602B -:101F0000782F9A8789874E815F8168858A850E94AC -:101F1000C10FF801E559FE4F8081C826C08206C076 -:101F20002F5F3F4F2630310569F6AACF0E94A01ED1 -:101F30000E94C70E90916A018917A1F00E94C70EF6 -:101F400080936A012B960FB6F894DEBF0FBECDBF0B -:101F5000DF91CF911F910F91FF90EF90DF90CF9085 -:101F60000C94BC072B960FB6F894DEBF0FBECDBF06 -:101F7000DF91CF911F910F91FF90EF90DF90CF9065 -:101F80000895CF93DF93CDB7DEB72B970FB6F894B4 -:101F9000DEBF0FBECDBF4F83588769877A878B8797 -:101FA000DE01119686E0FD0111928A95E9F785E040 -:101FB000FE01379601900D928A95E1F749815A8189 -:101FC0006B817C818D819E810E94CB162B960FB6F2 -:101FD000F894DEBF0FBECDBFDF91CF910895CF93B0 -:101FE000C82F882309F4C1C0823859F40E94C70E53 -:101FF00081FDBBC089E30E9468190E94301A89E301 -:102000000CC0833879F40E94C70E80FDAEC083E512 -:102010000E9468190E94301A83E50E94A719CF9187 -:102020000C94301A843859F40E94C70E82FD9DC06A -:1020300087E40E9468190E94301A87E4EECF8CEF83 -:102040008C0F813A48F48C2F0E94E02081118DC0C2 -:102050008C2F0E946819E3CF80E28C0F883048F4FF -:10206000C77081E001C0880FCA95EAF70E94E9199C -:10207000D6CF8BE58C0F833078F4C53A29F0C63A79 -:1020800031F083E890E005C081E890E002C082E88A -:1020900090E0CF910C94E90E88E58C0F833108F025 -:1020A00064C0C83A39F1C93A41F1CA3A49F1CB3A68 -:1020B00051F1CC3A59F1CD3A61F1C03B69F1CE3AD8 -:1020C00071F1CF3A79F1C13B81F1C23B89F1C33B58 -:1020D00091F1C43B99F1C53BA1F1C63BA9F1C73BC6 -:1020E000B1F1C83BB9F1C93BC1F1CA3BC9F180E0CC -:1020F00090E038C082EE90E035C089EE90E032C0CA -:102100008AEE90E02FC085EB90E02CC086EB90E04B -:1021100029C087EB90E026C08CEC90E023C08DECCA -:1021200090E020C083E891E01DC08AE891E01AC0E9 -:1021300082E991E017C084E991E014C081E292E065 -:1021400011C083E292E00EC084E292E00BC085E20F -:1021500092E008C086E292E005C087E292E002C009 -:102160008AE292E0CF910C94FF0ECF9108958823DC -:1021700009F44BC0823859F40E94C70E81FF45C054 -:1021800089E30E9468190E94301A89E30CC08338E1 -:1021900071F40E94C70E80FF38C083E50E94681961 -:1021A0000E94301A83E50E94A7190C94301A8438D3 -:1021B00059F40E94C70E82FF28C087E40E94681964 -:1021C0000E94301A87E4EFCF9CEF980F913A58F3B2 -:1021D00090E2980F983050F4877091E001C0990F09 -:1021E0008A95EAF7892F0E94EF19DFCF9BE5980FB8 -:1021F000933020F480E090E00C94E90E885A83310B -:1022000020F480E090E00C94FF0E0895882321F0E4 -:102210000E94E9190C94301A0895882321F00E9435 -:10222000EF190C94301A0895BF92CF92DF92EF927B -:10223000FF920F931F93CF93DF9300D000D000D075 -:10224000CDB7DEB77C0185E0F701DE011196019084 -:102250000D928A95E1F7F70183819481892B09F426 -:10226000E2C2908181818F3F19F49F3F09F4DBC264 -:10227000F7010281258122952F7099838A838981B4 -:102280009A812E830E942719182FB92E0E94261991 -:102290000E94ED172E81002319F00E94061A2E814C -:1022A000EB2DE295EF704E2F50E0FA01E05AFF4F10 -:1022B0000C9424238B2D807F9B2D9F70F92E8823D7 -:1022C00019F0F29480EFF822002349F0FF2009F47E -:1022D00057C28F2D0E94F9190E94301A51C2812FC6 -:1022E0000E94B710FF2009F49EC28F2D0E94FF1993 -:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B -:102300001F910F91FF90EF90DF90CF90BF900C94B2 -:10231000301A3B2D307F8B2D8F70303211F082952B -:10232000807F112319F0113021F12CC00023B9F066 -:10233000222309F490C1213009F08DC126960FB6F1 -:10234000F894DEBF0FBECDBFDF91CF911F910F91EB -:10235000FF90EF90DF90CF90BF900C94191A22233A -:1023600019F0213009F45FC28E830E941C1A8E81FD -:1023700086C1002321F0223008F055C26CC1211122 -:1023800052C27DC1002321F0222309F464C1F8C1A7 -:10239000222309F474C109C28B2D8695869583701A -:1023A00019F08130D1F03FC2002321F0812F9B2D05 -:1023B000937002C080E090E026960FB6F894DEBFDE -:1023C0000FBECDBFDF91CF911F910F91FF90EF9086 -:1023D000DF90CF90BF900C94E90E002321F0812F65 -:1023E0009B2D937002C080E090E026960FB6F89483 -:1023F000DEBF0FBECDBFDF91CF911F910F91FF9038 -:10240000EF90DF90CF90BF900C94FF0E812F0023B0 -:1024100019F00E94A81D02C00E94101E26960FB639 -:10242000F894DEBF0FBECDBFDF91CF911F910F910A -:10243000FF90EF90DF90CF90BF900C94951E8B2D66 -:10244000837009F075C00111EEC1812F82958695C8 -:102450008770880F880F912F9F70C92ED12CE12C87 -:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 -:10247000D2F714FF12C00FE010E020E030E004C0FB -:10248000000F111F221F331F8A95D2F7C901B8010F -:10249000609570958095909503C060E070E0CB01E9 -:1024A0004B2D4695469543704230C1F060F56C293E -:1024B0007D298E299F29413051F126960FB6F89437 -:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 -:1024D000EF90DF90CF90BF900C9414186C297D2959 -:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A -:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 -:10250000BF900C9430180E941418C701B60126968B -:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 -:102520000F91FF90EF90DF90CF90BF900C94F81731 -:10253000002319F08B2D817001C08695882309F442 -:1025400072C1812F829586958770880F880F912F91 -:102550009F70C92ED12CE12CF12C082E04C0CC0C7C -:10256000DD1CEE1CFF1C0A94D2F714FF12C00FE012 -:1025700010E020E030E004C0000F111F221F331FC5 -:102580008A95D2F7C901B8016095709580959095AC -:1025900003C060E070E0CB014B2D4695469543703B -:1025A0004230C1F060F56C297D298E299F29413088 -:1025B00051F126960FB6F894DEBF0FBECDBFDF9166 -:1025C000CF911F910F91FF90EF90DF90CF90BF9030 -:1025D0000C94EE186C297D298E299F2926960FB61A -:1025E000F894DEBF0FBECDBFDF91CF911F910F9149 -:1025F000FF90EF90DF90CF90BF900C940A190E944B -:10260000EE18C701B60126960FB6F894DEBF0FBECE -:10261000CDBFDF91CF911F910F91FF90EF90DF9091 -:10262000CF90BF900C94D218103FD1F118F4103E07 -:1026300050F4A1C0123F09F463C008F44CC0133F2A -:1026400009F473C098C01F708B2D8F710023A1F007 -:102650000E946B18812F26960FB6F894DEBF0FBE2E -:10266000CDBFDF91CF911F910F91FF90EF90DF9041 -:10267000CF90BF900C9406110E948C18812F269643 -:102680000FB6F894DEBF0FBECDBFDF91CF911F9183 -:102690000F91FF90EF90DF90CF90BF900C940D11B1 -:1026A0000023A9F02111BFC08B2D8F7126960FB684 -:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 -:1026C000FF90EF90DF90CF90BF900C94B118223024 -:1026D00008F0A9C0E9CF0023A9F08B2D8F712696B1 -:1026E0000FB6F894DEBF0FBECDBFDF91CF911F9123 -:1026F0000F91FF90EF90DF90CF90BF900C946B18EC -:10270000002359F38B2D8F7126960FB6F894DEBFF8 -:102710000FBECDBFDF91CF911F910F91FF90EF9032 -:10272000DF90CF90BF900C948C18002399F08B2DE4 -:102730008F7126960FB6F894DEBF0FBECDBFDF9126 -:10274000CF911F910F91FF90EF90DF90CF90BF90AE -:102750000C94561826960FB6F894DEBF0FBECDBF68 -:10276000DF91CF911F910F91FF90EF90DF90CF906D -:10277000BF900C944C180023A9F0222309F4ADCF8C -:10278000812F26960FB6F894DEBF0FBECDBFDF9126 -:10279000CF911F910F91FF90EF90DF90CF90BF905E -:1027A0000C94EF0F222309F4ADCF812F26960FB69C -:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 -:1027C000FF90EF90DF90CF90BF900C94B7104B2DFF -:1027D0004F70612FC7010E94120326960FB6F8941E -:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 -:1027F000EF90DF90CF90BF900C9470174B2D4F70DF -:10280000612FC70126960FB6F894DEBF0FBECDBF6D -:10281000DF91CF911F910F91FF90EF90DF90CF90BC -:10282000BF900C94580626960FB6F894DEBF0FBEE4 -:10283000CDBFDF91CF911F910F91FF90EF90DF906F -:10284000CF90BF9008950E94061A0E94161A0E9407 -:10285000DB190E94301A0E94451F0E94951E80E0DD -:1028600090E00E94E90E80E090E00C94FF0E0E9440 -:10287000F6190C9423140E942719292F22952F70E2 -:102880002C3030F42A3048F42250223078F405C03D -:102890002C3041F02F3031F009C0803E48F0803FAD -:1028A00029F406C093FB882780F9089580E00895F5 -:1028B00081E00895CF93DF9300D000D01F92CDB771 -:1028C000DEB70F900F900F900F900F90DF91CF9188 -:1028D0000895CF93DF9300D000D000D0CDB7DEB7FE -:1028E00026960FB6F894DEBF0FBECDBFDF91CF9115 -:1028F00008951F93CF93DF93C091790116E08091E3 -:102900007A01C81799F0D0E01C9FF0011D9FF00DCF -:102910001124E558FE4F4081518162817381848189 -:1029200095810E9469142196C770E9CFDF91CF91FC -:102930001F9108954091AB015091AC016091AD01A0 -:102940007091AE018091AF019091B0010C94691427 -:102950008091B00182958F7009F054C08091AD01D3 -:10296000882309F44FC080917901A0917A014091A8 -:10297000AE015091AF016091AB017091AC01B6E036 -:102980008A1709F43FC090E041155105C1F17F3F1E -:1029900011F46F3FA1F1B89FF001B99FF00D112420 -:1029A000E558FE4F218127132AC02081261327C016 -:1029B0002281211124C0238134812417350710F48A -:1029C00021503109241B350B283C3105C0F42091DE -:1029D000B0012F7020612093B00126E0289FF00104 -:1029E000299FF00D1124E058FE4F80818F70806187 -:1029F00080838BEA91E00E9414110C947914019663 -:102A00008770BECF0895CF92DF92EF92FF920F931F -:102A10001F93CF93DF93CDB7DEB762970FB6F894CD -:102A2000DEBF0FBECDBF8C0185E0F801DE011D9633 -:102A300001900D928A95E1F7D8014C9111965C9125 -:102A4000119712966C918091AE019091AF01009711 -:102A500009F475C13091AB017091AC017F3F19F45D -:102A60003F3F09F46CC1F801C380D480E090AD0110 -:102A7000EE2009F4BEC02091B001C816D90628F096 -:102A8000D601A81BB90BCD0104C0809590958C0D83 -:102A90009D1DFF24F394883C910578F0F12C207F54 -:102AA00009F0C4C07C2DD98AC88A89890E945A1429 -:102AB0008BEA91E00E941411AFC0822F807F09F051 -:102AC00045C0571313C0431311C061110FC02F70BD -:102AD00020612093B0010E949A148BEA91E00E9439 -:102AE00014118091B001F80185832EC0CD2819F111 -:102AF0005F3F11F44F3FF9F0F62E61111CC0809139 -:102B0000790120917A0136E0821709F45BC090E0E8 -:102B1000389FF001399FF00D1124E558FE4F718167 -:102B2000571306C07081471303C07281711103C02F -:102B300001968770E9CFF62E662309F41CC18091B7 -:102B4000B00181608093B001F12C15C1571309C009 -:102B5000431307C0611105C08091B001F80185835E -:102B6000C8C04D875E878D859E856A8B0E943B1409 -:102B70006A898823D1F16623C1F12091B001822FA7 -:102B800082958F7090E0029774F08091AB019091E4 -:102B9000AC0198878F831986DB86CA862C87CE0185 -:102BA00007960E94141186E0F801ABEAB1E00190AB -:102BB0000D928A95E1F70E94A8140E949A14FF24AE -:102BC000F394D9C04D875E878D859E850E94271915 -:102BD000292F22952F70223008F0C1C09F7009F074 -:102BE000BBC0805E883008F4C6C0C8010E941411C2 -:102BF000E6CFC816D90608F453C0F601E81BF90B56 -:102C0000CF01883C910508F450C0F12C7C2DD98A65 -:102C1000C88A89890E945A14EBEAF1E086E0DF0154 -:102C20001D928A95E9F70E949A14A5C0571314C003 -:102C3000431312C0611110C08091B001F801858367 -:102C4000C8010E94141186E0EBEAF1E0DF011D9259 -:102C50008A95E9F7FE2C8FC04D875E878D859E850E -:102C60006A8B0E943B146A89882309F4BECF6623CD -:102C700009F4BBCF2091B001822F82958F7090E034 -:102C800002970CF490CF8091AB019091AC019A83A4 -:102C900089831B82DD82CC822E83CE01019681CF77 -:102CA000809590958C0D9D1DACCFF62E662309F472 -:102CB0009CCF571333C0431331C02091B00120FD86 -:102CC00024C0822F82958F70482F50E04115510506 -:102CD000E1F0D80115962C9315974F30510549F026 -:102CE0008F5F982F9295907F822F8F70892B1596EA -:102CF0008C93C8010E94141186E0F801ABEAB1E0A0 -:102D000001900D928A95E1F78ECF86E0F801ABEA4B -:102D1000B1E001900D928A95E1F72DC04D875E8755 -:102D20008D859E850E943B1481113DCF8091B0011D -:102D300081608093B001C8010E9414111CC06623F9 -:102D400009F453CF4D875E878D859E850E943B1485 -:102D5000882309F44ACF27CF811143CF0CC02430F8 -:102D600008F043CF9F7009F43CCFD80115969C9191 -:102D7000907F09F036CF8F2D62960FB6F894DEBFA4 -:102D80000FBECDBFDF91CF911F910F91FF90EF90BC -:102D9000DF90CF9008951F93CF93DF93CDB7DEB729 -:102DA0002C970FB6F894DEBF0FBECDBF4F83588768 -:102DB00069877A878B879C87CE0107960E940315C7 -:102DC000882371F08A859B85892B09F441C0888509 -:102DD0008F3F09F065C08F818F3F09F061C038C017 -:102DE00086E0FE013796DE01119601900D928A95DC -:102DF000E1F76A857B856115710551F1FF81E885F1 -:102E0000EF3F11F4FF3F21F120917A0130E0C90139 -:102E10000196877099274091790150E084179507B2 -:102E200009F447C0F983EA837D836C8396E0929F1F -:102E3000D001939FB00D1124A558BE4FFE013196CD -:102E400001900D929A95E1F780937A010E9479148E -:102E500016E08091790190917A018917B9F1189F54 -:102E6000C001112485589E4F0E940315882371F1DB -:102E7000E09179011E9FF0011124E558FE4F408139 -:102E8000518162817381848195810E94691480914E -:102E9000790190E001968770992780937901D9CFC5 -:102EA0004F81588569857A858B859C850E94691438 -:102EB000CFCF0E94371410927A0110927901EBEA79 -:102EC000F1E086E0DF011D928A95E9F72C960FB6B6 -:102ED000F894DEBF0FBECDBFDF91CF911F91089553 -:102EE000EF92FF920F931F93CF93DF938C01892B67 -:102EF00009F46CC0F12CEE24E394E8012196F8016A -:102F00008491843740F4843008F051C0813081F0DE -:102F1000823019F15BC0853709F444C0A8F19CE701 -:102F2000980F903708F052C08F770E94B71041C0B9 -:102F30000E5F1F4FFE01849190E2980F983050F47D -:102F40008770FE2D01C0FF0F8A95EAF78F2F0E9430 -:102F5000091A14C00E94EF0F2DC00E5F1F4FFE0113 -:102F6000849190E2980F983060F48770FE2D01C034 -:102F7000FF0F8A95EAF78F2F0E940F1A0E94301ACE -:102F800019C00E94B71016C00E5F1F4FFE01C491FA -:102F9000CC2381F08FE99FE00197F1F700C000009A -:102FA000C150F6CF0E5F1F4FFE01F49003C00E9488 -:102FB000EF0F8E018F2D882309F49FCFEFE9FFE0FB -:102FC0003197F1F700C000008150F5CFDF91CF912C -:102FD0001F910F91FF90EF90089508956093B501B0 -:102FE0007093B6018093B7019093B8010C942314A9 -:102FF0000F931F930091B5011091B6012091B70175 -:103000003091B801DC01CB01802B912BA22BB32B8B -:103010008093B5019093B601A093B701B093B80126 -:103020001F910F910C9423140F931F930091B501DE -:103030001091B6012091B7013091B801DC01CB01AC -:1030400080239123A223B3238093B5019093B601EB -:10305000A093B701B093B8011F910F910C94231462 -:103060000F931F930091B5011091B6012091B70104 -:103070003091B801DC01CB0180279127A227B3272B -:103080008093B5019093B601A093B701B093B801B6 -:103090001F910F910C9423141092B1011092B20160 -:1030A0001092B3011092B4010C94231441E050E04B -:1030B00060E070E004C0440F551F661F771F8A95BB -:1030C000D2F74093B1015093B2016093B301709372 -:1030D000B4010C94231441E050E060E070E004C0BF -:1030E000440F551F661F771F8A95D2F78091B10153 -:1030F0009091B201A091B301B091B401482B592B2A -:103100006A2B7B2B4093B1015093B2016093B301C2 -:103110007093B4010C94231441E050E060E070E03F -:1031200004C0440F551F661F771F8A95D2F740953C -:103130005095609570958091B1019091B201A091E8 -:10314000B301B091B401482359236A237B234093F0 -:10315000B1015093B2016093B3017093B4010C9428 -:10316000231441E050E060E070E004C0440F551FBC -:10317000661F771F8A95D2F78091B1019091B201B5 -:10318000A091B301B091B401482759276A277B2742 -:103190004093B1015093B2016093B3017093B401B5 -:1031A0000C9423140F931F930091B1011091B2015D -:1031B0002091B3013091B401DC01CB01802B912B24 -:1031C000A22BB32B8093B1019093B201A093B301D2 -:1031D000B093B4011F910F910C9423140F931F937C -:1031E0000091B1011091B2012091B3013091B4016D -:1031F000DC01CB0180239123A223B3238093B1016F -:103200009093B201A093B301B093B4011F910F91B9 -:103210000C9423140F931F930091B1011091B201EC -:103220002091B3013091B401DC01CB0180279127BB -:10323000A227B3278093B1019093B201A093B30169 -:10324000B093B4011F910F910C9423140895CF9261 -:10325000DF92EF92FF920F931F93CF93DF938C0136 -:10326000C090B101D090B201E090B301F090B401F0 -:103270008091B5019091B601A091B701B091B801CC -:10328000C82AD92AEA2AFB2ACFE1D0E0D701C60111 -:103290000C2E04C0B695A795979587950A94D2F7FA -:1032A00080FF07C0B8018C2F0E947C0681309105F9 -:1032B00031F4219758F7B80180E00E947C06DF9135 -:1032C000CF911F910F91FF90EF90DF90CF900895D5 -:1032D00090910C019923F1F090910D019923D1F077 -:1032E000982F9695969596959F3080F5E0910E01D2 -:1032F000F0910F01E90FF11D877021E030E0A90185 -:1033000002C0440F551F8A95E2F7CA019181892BAB -:103310008183089520910E0130910F01F9013296B9 -:103320009FEF40E05191851789F09F3F19F45111AB -:1033300001C0942F4F5F4E30A9F79F3F39F0F9013C -:10334000E90FF11D97FDFA958283089508959091F4 -:103350000C019923F9F090910D019923D9F0982F40 -:103360009695969596959F3028F5E0910E01F091EF -:103370000F01E90FF11D877021E030E0A90102C0C3 -:10338000440F551F8A95E2F7CA01809591818923E0 -:103390008183089520910E0130910F01F901329639 -:1033A000205F3F4F9081891301C010823196E21750 -:1033B000F307C1F7089581E090E0E0910E01F091EC -:1033C0000F01E80FF91F1082019680319105A9F7CE -:1033D00008959091CC01892B8093CC01089580951C -:1033E0009091CC0189238093CC0108951092CC0157 -:1033F00008959091CB01892B8093CB0108958095FE -:103400009091CB0189238093CB0108951092CB0139 -:1034100008959091CA01892B8093CA0108958095DF -:103420009091CA0189238093CA0108951092CA011C -:1034300008958093B90108951092B901089580917B -:103440000E0190910F01FC0131969C01205F3F4FCE -:1034500080E0919191118F5FE217F307D1F7089502 -:10346000E0910E01F0910F018091CC018083E091F9 -:103470000E01F0910F0190818091CB01892B808307 -:10348000E0910E01F0910F0190818091CA01892B8A -:1034900080838091B901882361F0E0910E01F09161 -:1034A0000F019081892B80830E941F1A8111109235 -:1034B000B90180910E0190910F010C94D30ECF921F -:1034C000DF92EF92FF926C01EE24FF24C114D1042D -:1034D000E104F10421F0C701B60120E101C020E0C0 -:1034E000C72ED82EE92EFF24C114D104E104F10423 -:1034F00019F0285FC701B6016B017C0154E0F69416 -:10350000E794D794C7945A95D1F7C114D104E10434 -:10351000F10419F02C5FC701B6016B017C0142E098 -:10352000F694E794D794C7944A95D1F7C114D1047F -:10353000E104F10419F02E5FC701B601DC01CB01F3 -:10354000B695A79597958795892B8A2B8B2B09F094 -:103550002F5F822FFF90EF90DF90CF9008958091A2 -:10356000E501843011F120E488E190E00FB6F89491 -:10357000A895809360000FBE2093600083B7817F81 -:10358000846083BF83B7816083BF7894889583B755 -:103590008E7F83BF0FB6F894A895809160008861F4 -:1035A00080936000109260000FBE089508950C94FF -:1035B000D61ACF930E94D71A0E949B040E94D61A53 -:1035C000C0E08C2F0E949105811104C0CF5FCE30E6 -:1035D000C1F701C081E0CF9108950E9437140E9485 -:1035E000C70E0C94BC0782E084BD93E095BD9AEFB2 -:1035F00097BD80936E0008952FB7F8948091CE0107 -:103600009091CF01A091D001B091D1012FBF089529 -:10361000CF92DF92EF92FF920F931F932FB7F89400 -:103620004091CE015091CF016091D0017091D101B4 -:103630002FBF6A017B01EE24FF248C0120E030E0E3 -:10364000C016D106E206F30610F4415051099A0162 -:10365000281B390BC9011F910F91FF90EF90DF904C -:10366000CF9008951F920F920FB60F9211248F934F -:103670009F93AF93BF938091CE019091CF01A09182 -:10368000D001B091D1010196A11DB11D8093CE0151 -:103690009093CF01A093D001B093D101BF91AF918E -:1036A0009F918F910F900FBE0F901F9018950E94C1 -:1036B000BF0BF8942FEF87EA91E6215080409040AD -:1036C000E1F700C0000087E090EBDC018093EE01A1 -:1036D0009093EF01A093F001B093F1019CE088E199 -:1036E0000FB6F894A895809360000FBE9093600089 -:1036F000FFCFEF92FF920F931F93CF93DF93D82FBB -:10370000C0E08C2F0E94910500E010E0E82EF12C23 -:10371000C701002E02C0959587950A94E2F780FDB7 -:1037200006C00F5F1F4F0630110591F709C0602FCB -:103730007C2F80E00E9459068D13F3CF81E004C0F6 -:10374000CF5FCE30F1F680E0DF91CF911F910F91E6 -:10375000FF90EF900895CF93C82F8CE20E94791BC1 -:10376000882321F08C2FCF910C94791B80E0CF918E -:103770000895CF930E94001D811102C00E94E61C93 -:10378000C5E6C15049F00E949B048FE39CE9019774 -:10379000F1F700C00000F5CF89E20E94AB1B811158 -:1037A00013C18AE20E94AB1B81110E94E61C85E0D6 -:1037B0000E94AB1B81110E94571B0E940B1D80931E -:1037C000CD0187E00E94AB1B8823A9F18BE10E9409 -:1037D000AB1B882351F08091CD0181FB222720F97A -:1037E00091E0922790FB81F90EC08EE00E94AB1B06 -:1037F000882361F08091CD0182FB222720F991E09E -:10380000922790FB82F98093CD0115C080E10E9440 -:10381000AB1B9091CD01882341F093FB222720F927 -:1038200081E0822780FB93F904C0892F809580FB7B -:1038300090F99093CD018091CD010E940F1D0E94BF -:103840001D1D8093DF0180EE0E94AB1B882341F099 -:103850008091DF01982F909590FB80F98093DF0194 -:1038600089E30E94AB1B882359F08091DF0181FB23 -:10387000222720F991E0922790FB81F98093DF01C4 -:1038800082EE0E94AB1B882359F08091DF0182FBFE -:10389000222720F991E0922790FB82F98093DF01A3 -:1038A00086EE0E94AB1B882359F08091DF0183FBD9 -:1038B000222720F991E0922790FB83F98093DF0182 -:1038C00083EE0E94AB1B882359F08091DF0184FBBB -:1038D000222720F991E0922790FB84F98093DF0161 -:1038E00085E30E94AB1B882359F08091DF0185FBA3 -:1038F000222720F991E0922790FB85F98093DF0140 -:1039000081E30E94AB1B882359F08091DF0186FB85 -:10391000222720F991E0922790FB86F98093DF011E -:1039200081E10E94AB1B882359F08091DF0187FB66 -:10393000222720F991E0922790FB87F98093DF01FD -:103940008091DF010E94211D8091DF0187FB882784 -:1039500080F980930D0187E20E94AB1BC82F8EE196 -:103960000E94AB1B8111C2608FE10E94AB1B8111D1 -:10397000C46080E20E94AB1B8111C86081E20E949A -:10398000AB1B8111C06182E20E94AB1B8111C0623E -:1039900083E20E94AB1B8111C06484E20E94AB1BD6 -:1039A000882311F0C06802C0CC2329F08C2F0E941C -:1039B000181D6C2F03C00E94141D682F70E080E05A -:1039C00090E0CF910C94EE17CF9108956DEE7EEFBD -:1039D00080E090E00E945A2360E082E090E00E9444 -:1039E0004C2360E083E090E00E944C2360E084E0A0 -:1039F00090E00E944C2360E085E090E00C944C2322 -:103A000080E090E00E94462321E08D3E9E4F09F029 -:103A100020E0822F089582E090E00C943E23682FEE -:103A200082E090E00C944C2383E090E00C943E23E1 -:103A3000682F83E090E00C944C2384E090E00C9499 -:103A40003E23682F84E090E00C944C238091D401B5 -:103A500080FF0BC06091130185E0689FB0011124C5 -:103A600075956795759567952BC081FF09C0609125 -:103A7000130185E0689FB00111247595679520C0FA -:103A800082FF07C06091130185E0689FB001112497 -:103A900017C09091D5019923D1F06091120196172A -:103AA00088F72091130185E0289F90011124929FAF -:103AB000A001939F500D112470E0CA010E941023B1 -:103AC0006038710540F46115710519F406C065E0B0 -:103AD00070E0862F08958FE7089581E00895809122 -:103AE000D40180FF08C06091110170E07595679561 -:103AF0007595679521C081FF06C06091110170E046 -:103B00007595679519C082FF04C06091110170E03E -:103B100010C09091D501992399F0609110019617EA -:103B2000A0F780911101899FC001112470E00E94CB -:103B300010236038710540F46115710519F406C051 -:103B400061E070E0862F08958FE7089581E0089581 -:103B5000803F21F40E94261D819504C0813F29F4F5 -:103B60000E94261D8093D8010895823F21F40E946F -:103B7000261D819504C0833F29F40E94261D809351 -:103B8000D7010895893F19F40E946F1D05C08A3F2F -:103B900031F40E946F1D81958093D90108958B3F68 -:103BA00021F40E946F1D819504C08C3F29F40E946E -:103BB0006F1D8093DA010895843F21F48091D6012E -:103BC000816017C0853F21F48091D601826011C0C9 -:103BD000863F21F48091D60184600BC0873F21F499 -:103BE0008091D601886005C0883F31F48091D6016C -:103BF00080618093D60108958D3F21F48091D40196 -:103C000081600BC08E3F21F48091D401826005C099 -:103C10008F3F29F48091D40184608093D40108956A -:103C2000803F39F48091D80187FF6CC01092D80191 -:103C300069C0813F29F48091D8011816BCF362C095 -:103C40009091D701823F29F497FF5CC01092D70171 -:103C500059C0833F19F41916CCF354C0893F41F47D -:103C60008091D90118160CF04DC01092D9014AC0AC -:103C70008A3F29F48091D90187FF44C0F6CF8B3F5A -:103C800039F48091DA0187FF3DC01092DA013AC021 -:103C90008C3F29F48091DA011816BCF333C0843FBD -:103CA00021F48091D6018E7F17C0853F21F4809149 -:103CB000D6018D7F11C0863F21F48091D6018B7F84 -:103CC0000BC0873F21F48091D601877F05C0883FD4 -:103CD00031F48091D6018F7E8093D60113C08D3F41 -:103CE00021F48091D4018E7F0BC08E3F21F480910E -:103CF000D4018D7F05C08F3F29F48091D4018B7F43 -:103D00008093D4018091D70181110EC08091D80198 -:103D100081110AC08091D901811106C08091DA0118 -:103D2000811102C01092D501089586ED91E00E94A4 -:103D3000DE0E0E94FC1A9093D3018093D201089565 -:103D40001F93CF93DF938091D2019091D3010E9472 -:103D5000081BAC019091D501992321F02091140109 -:103D600030E006C0209115018AE0289F90011124BF -:103D70004217530708F485C08091D701C091D8013C -:103D8000D091D9011091DA01811107C0C11175C01C -:103D9000D11173C0111171C074C09F3F19F09F5FA2 -:103DA0009093D501181624F40E94261D8093D70104 -:103DB0008091D70187FF05C00E94261D81958093C1 -:103DC000D7011C1624F40E94261D8093D8018091EF -:103DD000D80187FF05C00E94261D81958093D801D8 -:103DE0006091D701662331F1C091D801CC2311F144 -:103DF000062E000C770B880B990B0E94172223E3E9 -:103E000033E343E35FE30E947B220E94DF21609360 -:103E1000D7016C2FCC0F770B880B990B0E941722C0 -:103E200023E333E343E35FE30E947B220E94DF212D -:103E30006093D8011D1624F40E946F1D8093D90150 -:103E40008091D90187FF05C00E946F1D81958093E5 -:103E5000D901111624F40E946F1D8093DA0180911C -:103E6000DA0187FF05C00E946F1D81958093DA01FA -:103E7000DF91CF911F910C94951E9F3F09F08FCF3A -:103E8000A0CFDF91CF911F910895E6EDF1E085E09D -:103E9000DF011D928A95E9F71092D5011092D401A5 -:103EA0000895833081F128F4813059F08230D1F0C7 -:103EB0000895853009F449C0B8F1863009F456C038 -:103EC000089580911501262F30E0280F311D2F3FD6 -:103ED000310524F4680F6093150108958FEF8093E6 -:103EE0001501089580911401262F30E0280F311D0F -:103EF0002F3F310524F4680F6093140108958FEF6C -:103F000080931401089580911301262F30E0280F2B -:103F1000311D2F3F310524F4680F6093130108957C -:103F20008FEF80931301089580911201262F30E0C6 -:103F3000280F311D2F3F310524F4680F60931201C3 -:103F400008958FEF80931201089580911101262F1B -:103F500030E0280F311D2F3F310524F4680F6093A6 -:103F6000110108958FEF8093110108958091100140 -:103F7000262F30E0280F311D2F3F310524F4680F24 -:103F80006093100108958FEF80931001089583309E -:103F900011F128F4813049F0823091F00895853094 -:103FA00081F120F18630C1F10895809115016817E3 -:103FB00020F4861B80931501089510921501089531 -:103FC00080911401681720F4861B809314010895D2 -:103FD00010921401089580911301681720F4861B34 -:103FE0008093130108951092130108958091120196 -:103FF000681720F4861B8093120108951092120115 -:10400000089580911101681720F4861B8093110197 -:10401000089510921101089580911001681720F4FD -:10402000861B8093100108951092100108950F933C -:104030001F938D3109F46BC008F03FC08E3009F436 -:104040007DC0C0F4873009F46EC068F4863009F092 -:10405000AFC08091CD01817F8E7F8093CD0181E0C3 -:104060008093DC01A6C0883009F458C08B3009F475 -:104070009BC09EC0863109F497C078F4803109F462 -:1040800070C0813109F094C00E94371490910D01E5 -:1040900081E0892780930D0187C0893109F484C0AC -:1040A0008B3109F085C08091CD0181FB222720F959 -:1040B00091E0922790FB81F94AC0853309F45BC0F7 -:1040C00048F4873209F457C008F45AC0893209F419 -:1040D00052C06EC0833438F48A3308F067C0883326 -:1040E00009F462C065C0833409F445C0883409F01E -:1040F0005FC00E9437140FEF13ED20E30150104012 -:104100002040E1F700C000000E94571B4DC00E94F4 -:1041100099210E94C70E0E94BC0746C00E940B1D39 -:104120000E941D1D41C09091CD01892F817090FF8B -:1041300012C0917F9E7F9093CD013BC08091CD01B5 -:1041400082FB222720F991E0922790FB82F980934D -:10415000CD01992349F18091CD0181608093CD01FA -:1041600023C08091CD0183FB222720F991E0922783 -:1041700090FB83F9ECCF61E070E080E090E010C04C -:104180008D5141E050E060E070E08A019B0104C085 -:10419000000F111F221F331F8A95D2F7C901B801E2 -:1041A0000E94EE170E94371481E003C08953E9CFC3 -:1041B00080E01F910F91089580E008950C94DC2019 -:1041C000CF93C82F8091DC01813079F018F08230D4 -:1041D000E9F187C0E0910E01F0910F0180818131FA -:1041E00069F0823209F07FC009C0E0910E01F091C0 -:1041F0000F018081813111F0823261F48C2F0E9495 -:10420000DE20811104C08C2F0E9417201DC081E088 -:1042100090E01AC08C2F0E94DC20811114C0C431A0 -:1042200079F048F4CB3079F0C03109F060C082E019 -:104230008093DC0108C0C93219F0C83321F057C09F -:104240001092DC0154C081E0817053C0C93289F101 -:1042500018F5C43171F1A8F4C73009F046C08AE0FE -:104260008093150194E19093140193E090931301CE -:104270008093120188E08093110188E280931001FD -:1042800034C0CE51C63088F5EC2FF0E0E65DFE4F2D -:1042900080818093DB0129C0CE34E9F020F4CB3457 -:1042A00021F56AE013C0C13579F0C235F1F461E05F -:1042B0000DC08091DB01882319F01092DB0115C03D -:1042C00081E08093DC0115C061E006C08091DB01D4 -:1042D0000E94511F0AC06AE08091DB010E94C71F43 -:1042E00004C01092DC0180E004C081E002C080E0E4 -:1042F000ABCFCF910895E1E8F0E0808188608083C2 -:104300008081816080838FB7F89493E090938900D7 -:1043100090ED909388008FBF0895EFE6F0E08081E4 -:10432000826080830895EFE6F0E080818D7F808356 -:104330000895EFE6F0E0908182E089278083089578 -:104340001F920F920FB60F9211242F933F934F930A -:104350005F936F937F938F939F93AF93BF93EF93ED -:10436000FF938091DD019091DE0101969093DE0133 -:104370008093DD01811103C082E00E94BC07E091BF -:10438000DE01E695E695F0E0EF5AFA4FE491809170 -:10439000DD018E1303C080E00E94BC07FF91EF9106 -:1043A000BF91AF919F918F917F916F915F914F914D -:1043B0003F912F910F900FBE0F901F9018950E9464 -:1043C000E6216894B1110C94752208950E945A2236 -:1043D00088F09F5798F0B92F9927B751B0F0E1F0C6 -:1043E000660F771F881F991F1AF0BA95C9F714C076 -:1043F000B13091F00E947422B1E008950C947422BF -:10440000672F782F8827B85F39F0B93FCCF38695AE -:1044100077956795B395D9F73EF49095809570950B -:1044200061957F4F8F4F9F4F0895E89409C097FB88 -:104430003EF490958095709561957F4F8F4F9F4F7B -:104440009923A9F0F92F96E9BB279395F6958795BF -:1044500077956795B795F111F8CFFAF4BB0F11F482 -:1044600060FF1BC06F5F7F4F8F4F9F4F16C0882329 -:1044700011F096E911C0772321F09EE8872F762F5F -:1044800005C0662371F096E8862F70E060E02AF0A0 -:104490009A95660F771F881FDAF7880F969587958C -:1044A00097F9089557FD9058440F551F59F05F3FF5 -:1044B00071F04795880F97FB991F61F09F3F79F046 -:1044C00087950895121613061406551FF2CF4695C8 -:1044D000F1DF08C0161617061806991FF1CF86954A -:1044E0007105610508940895E894BB27662777272E -:1044F000CB0197F908950E948E220C94FF220E940E -:10450000F12238F00E94F82220F0952311F00C944B -:10451000E8220C94EE2211240C9475220E9452225F -:1045200070F3959FC1F3950F50E0551F629FF00106 -:10453000729FBB27F00DB11D639FAA27F00DB11D1F -:10454000AA1F649F6627B00DA11D661F829F2227A8 -:10455000B00DA11D621F739FB00DA11D621F839F2F -:10456000A00D611D221F749F3327A00D611D231F05 -:10457000849F600D211D822F762F6A2F11249F5753 -:1045800050409AF0F1F088234AF0EE0FFF1FBB1F56 -:10459000661F771F881F91505040A9F79E3F510515 -:1045A00080F00C94E8220C9475225F3FE4F3983E6F -:1045B000D4F3869577956795B795F795E7959F5FBF -:1045C000C1F7FE2B880F911D9695879597F9089551 -:1045D00097F99F6780E870E060E008959FEF80ECB6 -:1045E000089500240A941616170618060906089559 -:1045F00000240A9412161306140605060895092EBF -:104600000394000C11F4882352F0BB0F40F4BF2B2D -:1046100011F460FF04C06F5F7F4F8F4F9F4F08956D -:1046200097FB072E16F4009407D077FD09D00E945F -:104630002A2307FC05D03EF4909581959F4F08955D -:10464000709561957F4F0895EE0FFF1F0590F491CF -:10465000E02D0994AA1BBB1B51E107C0AA1FBB1F79 -:10466000A617B70710F0A61BB70B881F991F5A95FE -:10467000A9F780959095BC01CD010895F999FECFD9 -:1046800092BD81BDF89A992780B50895A8E1B0E060 -:1046900042E050E00C946123262FF999FECF1FBA17 -:1046A00092BD81BD20BD0FB6F894FA9AF99A0FBE5B -:1046B000019608950E944C23272F0C944D23DC0172 -:1046C000CB01FC01F999FECF06C0F2BDE1BDF89A1D -:1046D000319600B40D9241505040B8F70895F894C7 -:0246E000FFCF0A -:1046E2002002BE074E082908F507C1070101BA01D9 -:1046F20028080A03140A3F4D36391205C5048F04EF -:104702005604E90302041B043404010203040506EF -:04471200070809008B +:100000000C94C7020C940E030C940E030C940E0374 +:100010000C940E030C940E030C940E030C940E031C +:100020000C940E030C940E030C94380C0C940A0DD3 +:100030000C940E030C940E030C940E030C940E03FC +:100040000C940E030C949E210C940E030C940E033E +:100050000C940E030C94301B0C940E030C940E03A2 +:100060000C940E030C940E030C940E030C940E03CC +:100070000C940E030C940E030C940E030C940E03BC +:100080000C940E030C940E030C940E030C940E03AC +:100090000C940E030C940E030C940E030C940E039C +:1000A0000C940E030C940E030C940E03770D990D13 +:1000B0008C0E990D8C0EDE0D010E8C0E560E690EF7 +:1000C0005811581187118711CA11041211141114F3 +:1000D0001D12111412131213E51311141114FC1331 +:1000E00075FF01E20159025901620262015D025D80 +:1000F000015E025E02E2000000F0A1F0A2F0A3297E +:10010000002B00E300E100E00000001E00140004EA +:10011000001D7406014E001F001A0016001B001976 +:10012000012A0020000800070006005000280021D6 +:10013000001500090019004F004B00220017000AAB +:100140000005000000C30023002F0000004A00004B +:10015000003E002400300000004D0000003B002560 +:10016000001C000B0011000000C200260018000D4A +:100170000010005100490027000C000E003600520C +:10018000002C002D0012000F003700007FC1002E50 +:100190000013003300380035004C002A00310034D1 +:1001A00000E500E400000001000100010001000181 +:1001B0000000003A001E0220022202033001003B30 +:1001C000001F0221022302010001003C002F022631 +:1001D000022F00010001003D003002270230000123 +:1001E0000001003E00310235003502000001003FF1 +:1001F00000010000000100000001004000010000BB +:1002000000010000000100410052005100240200E2 +:100210000001004200240021001E000100010043F3 +:1002200000250022001F00370001004400260023A3 +:1002300000200027000100450025022E0231002E7B +:10024000004C0546000100010001003D04000000D3 +:100250005001000100010001000000010001000147 +:100260000001000100010001000100F20001000195 +:100270000001000100F000F1000100F400010001A4 +:10028000000100F3000100F5000100010001000180 +:100290000001000000010001000100000001000059 +:1002A0000001000100010000000100000001000148 +:1002B0000001000100010000000100010001000137 +:1002C000000100AA000100010001000100AC00A92A +:1002D00000B600010001000100AB00A80001000110 +:1002E000000100010001000100010001000100AE59 +:1002F00000010001000000E200E200E200E200E292 +:100300000000005900010004000100E20001005A51 +:1003100000010001000100E200E2005B00080007AC +:100320000006000100E2005C00010009000100017C +:100330000001005D00010001000500000001005EF9 +:1003400000010000000100000001005F000100004A +:100350000001000000010060000100010001000038 +:1003600000010061005F005C005900620001006252 +:100370000060005D005A006200E200570061005E0C +:10038000005B006200E2005700570057005700571B +:100390000001000100010001000100010000001641 +:1003A000034500720067006F0044006F0078002072 +:1003B0000045005A00000016034500720067006FF8 +:1003C0000044006F007800200045005A000000043F +:1003D00003090409026D00040100A0FA09040000E9 +:1003E0000103010100092111010001223F0007055D +:1003F000810308000A090401000103010200092128 +:1004000011010001224D000705820308000A0904BA +:100410000200010300000009211101000122360041 +:100420000705830308000A09040300010300000014 +:100430000921110100012239000705840310000180 +:100440001201100100000008EDFE07130100010277 +:10045000000105010906A101050719E029E71500BA +:1004600025019508750181020508190129059505E1 +:10047000750191029501750391010507190029770E +:1004800015002501957875018102C005010980A13B +:1004900001850216010026B7001A01002AB700756F +:1004A0001095018100C0050C0901A1018503160109 +:1004B00000269C021A01002A9C02751095018100F9 +:1004C000C005010902A1010901A1000509190129BD +:1004D00005150025019505750181029501750381BA +:1004E000010501093009311581257F9502750881C3 +:1004F0000609381581257F950175088106050C0AC6 +:1005000038021581257F950175088106C0C0050157 +:100510000906A101050719E029E71500250195083D +:1005200075018102950175088101050819012905E8 +:100530009505750191029501750391010507190053 +:1005400029FF150025FF950675088100C0000000F1 +:100550000000000000000000010204060A0F17203E +:100560002C3A4A5D71879DB3C7DAE9F5FCFFFCF5CB +:10057000E9DAC7B39D87715D4A3A2C20170F0A0646 +:10058000040201000000000000000000000011242F +:100590001FBECFEFDAE0DEBFCDBF04B603FE27C03B +:1005A0008091EE019091EF01A091F001B091F101E5 +:1005B0008730904BA740B04BD1F41092EE011092CF +:1005C000EF011092F0011092F10114BE84B7877F01 +:1005D00084BF0FB6F894A8958091600088618093DD +:1005E0006000109260000FBEE0E0FFE3099511E0AB +:1005F000A0E0B1E0EEEDF6E402C005900D92A43368 +:10060000B107D9F721E0A4E3B1E001C01D92AE3EED +:10061000B207E1F70E947F090C946D230C9400004F +:10062000CF93DF93EC01662319F0633059F00DC0CE +:100630008A81882321F085EE0E94ED0F03C085EEAC +:100640000E94B5108A81811103C080E090E002C051 +:1006500080EE90E0DF91CF91089508956091B1010F +:100660007091B2018091B3019091B4010E945D1A22 +:1006700056985E9825982D9826982E9827982F980A +:10068000823039F0833041F0813041F4259A2D9A3F +:100690000895269A2E9A0895279A2F9A08950C94D1 +:1006A0002E0356985E9825982D9826982E98279870 +:1006B0002F988FEF90E0909389008093880090931B +:1006C0008B0080938A0090938D0080938C00259AF4 +:1006D0002D9A2FEF80E792E0215080409040E1F783 +:1006E00000C00000269A2E9A2FEF80E792E021505A +:1006F00080409040E1F700C00000279A2F9A2FEF2A +:1007000080E792E0215080409040E1F700C0000077 +:1007100025982D982FEF80E792E02150804090405F +:10072000E1F700C0000026982E982FEF80E792E0B6 +:10073000215080409040E1F700C0000027982F989A +:1007400056985E9825982D9826982E9827982F9839 +:10075000089589EA8093800089E08093810024983D +:100760002C983F988AB18F748AB96E98479A8BB14A +:10077000806B8BB9769A0E9451030C942D0380E212 +:10078000809300018091340181110EC00E940E04FB +:1007900081E0809334012FEF83ED90E3215080407E +:1007A0009040E1F700C0000080E40E9414048093B0 +:1007B000000181112EC00E943E048093000181112E +:1007C00028C00E943E0480930001811122C08FE363 +:1007D0000E943E048093000181111BC00E943604D8 +:1007E00080E40E94140480930001811112C08CE007 +:1007F0000E943E048093000181110BC00E943E04C0 +:1008000080930001811105C08FE30E943E04809314 +:1008100000010E9436048091000108951092B900F1 +:100820008AE08093B800089594EA9093BC00909178 +:10083000BC0097FFFCCF9091B900987F983021F0D1 +:10084000903111F081E008958093BB0084E880939B +:10085000BC008091BC0087FFFCCF8091B900887FED +:10086000883111F0803471F780E0089584E9809335 +:10087000BC008091BC0084FDFCCF08958093BB0038 +:1008800084E88093BC008091BC0087FFFCCF9091EE +:10089000B900987F81E0983209F480E0089584E8F7 +:1008A0008093BC008091BC0087FFFCCF8091BB008F +:1008B000089580910001811115C080E40E94140404 +:1008C0008093000181110CC082E10E943E0480935C +:1008D0000001811105C08FEF0E943E04809300014A +:1008E0000E94360484B1807F84B985B1807F85B948 +:1008F0008AB1837F8AB98BB1837F8BB93E98469842 +:1009000008950E94BF03809300010E94590480B3A0 +:100910008C7080BB81B3836F81BBE4E4F1E0A6E31C +:10092000B1E011921D9281E0E235F807D1F70C9405 +:10093000A9039F92AF92BF92CF92DF92EF92FF9264 +:100940000F931F93CF93DF9380910001882379F059 +:10095000809135018F5F80933501811108C00E941D +:10096000BF0380930001811102C00E94510386E3FE +:10097000E82E81E0F82E8701C0E0D0E0BB24B394DC +:1009800092E0A92ECC24C394D12CC730D10500F518 +:1009900080910001811164C080E40E94140480935E +:1009A0000001811112C082E10E943E048093000187 +:1009B00081110BC0C6010C2E01C0880F0A94EAF702 +:1009C00080950E943E04809300010E94360448C036 +:1009D000CA30A1F028F4C83059F0C93061F005C020 +:1009E000CC3089F070F0CD3089F0209A289810C072 +:1009F000219A29980DC0229A2A980AC0239A2B98E6 +:100A000007C0529A01C0539A5B9802C03E9A46981A +:100A1000E0EAEA95F1F78FB181708B25799902C0F0 +:100A200032E001C030E0832B7C9902C034E001C089 +:100A300030E0832B7D9902C028E001C020E0822BAA +:100A40007E9902C090E101C090E0892B9FB1909502 +:100A5000991F9927991F9295990F907E892B0FC006 +:100A60008091000181114AC080E40E9414048093A7 +:100A70000001882381F1912C0E943604892DD80130 +:100A80009C91981719F08C93A09201010E9459042F +:100A900021960F5F1F4FCE30D10509F076CF8091A0 +:100AA0000101882369F1815080930101882339F085 +:100AB000EFE9FFE03197F1F700C0000021C0E4E466 +:100AC000F1E0D7018D917D018193B4E4EB16B1E0A3 +:100AD000FB06B9F715C083E10E943E048093000134 +:100AE0008111C9CF81E40E94140480930001811117 +:100AF000C2CF0E944F04982E9094BECF80E0BFCF0B +:100B00000E944F0381E0DF91CF911F910F91FF90E1 +:100B1000EF90DF90CF90BF90AF909F900895E82F17 +:100B2000F0E0EC5BFE4F8081089508958B3B9105CA +:100B300080F4883A910548F5853A9105D8F48430D7 +:100B4000910508F0B2C0019709F06EC081E090E015 +:100B50000895803E910508F467C0883E910508F429 +:100B6000A4C09C01205F31092031310508F05CC030 +:100B700090650895853A910509F459C0863A910522 +:100B800009F058C082E890E40895883A910509F484 +:100B900054C0893A910509F453C08A3A910509F481 +:100BA00052C08B3A910509F451C08C3A910509F471 +:100BB00050C08D3A910509F44FC0803B910509F46E +:100BC0004EC08E3A910509F44DC08F3A910509F453 +:100BD0004CC0813B910509F44BC0823B910509F45F +:100BE0004AC0833B910509F449C0843B910509F44F +:100BF00048C0853B910509F447C0863B910509F43F +:100C000046C0873B910509F445C0883B910509F42E +:100C100044C0893B910509F443C08A3B910509F41E +:100C200042C080E094E4089580E090E0089581E877 +:100C300090E4089583E890E4089582EE94E40895A2 +:100C400089EE94E408958AEE94E4089585EB94E4A3 +:100C5000089586EB94E4089587EB94E408958CEC72 +:100C600094E408958DEC94E4089583E895E4089560 +:100C70008AE895E4089582E995E4089584E995E485 +:100C8000089581E296E4089583E296E4089584E26B +:100C900096E4089585E296E4089586E296E4089540 +:100CA00087E296E408958AE296E40895089524E59B +:100CB000829FC0011124FC0126E0729FE00DF11D0E +:100CC0001124E60FF11DEE0FFF1FE150FF4F85913C +:100CD00094910895880F991FFC01E958F04085917F +:100CE00094910895880F991FFC01E950FF4F859159 +:100CF0009491089524E5829FC0011124FC0146E0EF +:100D0000749FE00DF11D1124E60FF11DEE0FFF1F82 +:100D1000E150FF4F859194919C013A9521154FE147 +:100D2000340708F425C13F512115304120F49F704C +:100D30000E94720608959C0130532115304118F429 +:100D40009927906C0895811520E5920769F40E9417 +:100D500035144FEF84E39CE0415080409040E1F730 +:100D600000C000000C94551B813020E5920731F43F +:100D70008091CD0181608093CD0108959C01305513 +:100D80002115304108F05CC0292F33272F703327FD +:100D900021303105E9F4AC0164E0440F551F6A9538 +:100DA000E1F744275370BC016370772702C0220F1C +:100DB000331F6A95E2F73C68242B352B73E0880FCC +:100DC000991F7A95E1F780769927822B932B0895C6 +:100DD0002230310529F4982F8827816F906A089571 +:100DE00023303105A1F4AC0133E0440F551F3A958F +:100DF000E1F7407E57708370992721E030E002C010 +:100E0000220F331F8A95E2F7C9019C6816C024306F +:100E1000310531F5AC0123E0440F551F2A95E1F768 +:100E2000407E57708370992721E030E002C0220F86 +:100E3000331F8A95E2F7C9019A68842B952B089590 +:100E40009C0130572115304118F49F70906208952D +:100E50009C0130582115304118F49F70906A089514 +:100E6000803E9105E0F4803C910558F58133910571 +:100E700009F46FC048F48932910509F463C08A32DD +:100E8000910509F46DC072C089339105E9F082388B +:100E90009105D1F08533910509F44DC067C0833EBB +:100EA000910581F138F4803E9105B9F0823E9105BB +:100EB000D9F05CC0863E910561F1873E9105A1F1B4 +:100EC00055C00E946A0608952091DF0120FD02C0EE +:100ED00021FF4CC080EE90E049C08091DF0180FF8F +:100EE000F9CF89E390E042C08091DF0182FF0EC01C +:100EF0008091DF0184FF03C080E090E037C083EE83 +:100F000090E034C08091DF0182FFF2CF82EE90E06A +:100F10002DC08091DF0183FF0BC08091DF0184FD34 +:100F2000EBCF87EE90E022C08091DF0183FFF5CF09 +:100F300086EE90E01BC08091DF0185FF07C089E24B +:100F400090E014C08091DF0185FFF9CF85E390E048 +:100F50000DC08091DF0186FF07C08AE290E006C0E5 +:100F60008091DF0186FFF9CF81E390E00E94960532 +:100F7000089508950C94B907809162010895CF9364 +:100F8000DF9300D01F92CDB7DEB79C018091E501C1 +:100F9000843019F593E099833B832A839093E90089 +:100FA0008FEF9091E800815095FD06C095ED9A95E0 +:100FB000F1F700008111F5CF8091E80085FF0DC0A9 +:100FC00040E050E063E070E0CE0101960E942C0A00 +:100FD0008091E8008E778093E8000F900F900F903B +:100FE000DF91CF910895CF93DF9300D01F92CDB7BB +:100FF000DEB72091E501243021F522E029839B838F +:101000008A8383E08093E9008FEF9091E80081501C +:1010100095FD06C095ED9A95F1F700008111F5CF89 +:101020008091E80085FF0DC040E050E063E070E093 +:10103000CE0101960E942C0A8091E8008E77809361 +:10104000E8000F900F900F90DF91CF9108959C01D1 +:101050008091E5018430F9F482E08093E9009FEF0C +:101060008091E800915085FD06C085ED8A95F1F7E5 +:1010700000009111F5CF8091E80085FF0CC040E0A1 +:1010800050E065E070E0C9010E942C0A8091E80000 +:101090008E778093E8000895CF93DF93EC018091E1 +:1010A000E501843009F046C090910C019923D9F0F4 +:1010B00090910D019923B9F08093E9008FEF909101 +:1010C000E800815095FD06C095E19A95F1F7000082 +:1010D0008111F5CF8091E80085FF2CC040E050E001 +:1010E00060E170E017C081E08093E9008FEF90919C +:1010F000E800815095FD06C095ED9A95F1F7000046 +:101100008111F5CF8091E80085FF14C040E050E0E8 +:1011100068E070E0CE010E942C0A8091E8008E7792 +:101120008093E80080E1FE01A2E5B1E001900D921C +:101130008A95E1F7DF91CF9108958091E4018111C3 +:1011400009C00E94BD0B0E941A0C8091E2008460CD +:101150008093E20008951092E401089508950C949C +:101160008B210E94EB1A0E9491210E94C50E0C94C3 +:10117000BA0742E061EC81E00E94360B42E061EC8C +:1011800082E00E94360B42E061EC83E00E94360B65 +:1011900042E161EC84E00C94360B8091E7018330EE +:1011A00009F455C030F4813071F0823009F48EC0FA +:1011B00008958A3009F47AC08B3009F460C0893010 +:1011C00009F09CC020C08091E601813A09F096C0E8 +:1011D0008091E800877F8093E8008091EA019091F8 +:1011E000EB01892B21F460E182E591E003C060E02E +:1011F00080E090E070E00E94770A8091E8008B77B1 +:101200008093E80008958091E601813209F076C06C +:101210008091EA019091EB01009719F0039709F092 +:101220006DC08091E800877F8093E8008091E8009E +:1012300082FD05C08091E5018111F8CF5FC08091EA +:10124000F100809362018091E8008B7753C0809118 +:10125000E601813A09F052C08091EA019091EB01D8 +:10126000892B09F04BC08091E800877F8093E800CC +:101270008091E80080FFFCCF80910C0136C0809106 +:10128000E6018132D9F58091EA019091EB01892B39 +:10129000A9F58091E800877F8093E8000E946B0B9E +:1012A0008091E80180930C010C9435148091E60143 +:1012B000813221F58091E800877F8093E8000E94C9 +:1012C0006B0B8091E9018093630108958091E601A1 +:1012D000813AA1F48091E800877F8093E8008091B3 +:1012E000E80080FFFCCF809163018093F100809142 +:1012F000E8008E778093E8000C946B0B089584B718 +:10130000877F84BF0FB6F894A895809160008861AC +:1013100080936000109260000FBE90E080E80FB6EE +:10132000F89480936100909361000FBE0E94140FA7 +:101330000E94BD0B0E941A0C8091E2008460809391 +:10134000E20078940E94A50E0E94160F82E091E0C0 +:101350000E94C00E0E9479218091E501853069F4D8 +:101360000E94AD1A8091E3018823B1F30E94D71A3D +:10137000882391F30E94160AEFCF0E941C0FECCF36 +:10138000292F332723303105C9F060F4213031058E +:1013900081F02230310509F041C08DE690E023ED67 +:1013A00033E040C021323105E1F02232310531F124 +:1013B00035C082E190E020E434E034C099278130E8 +:1013C000910549F028F0029749F5EFE9F3E005C0EF +:1013D000EFECF3E002C0E7EBF3E0849190E09F01D3 +:1013E00021C06430D8F4E62FF0E0EE0FFF1FEE5D71 +:1013F000FE4F2081318189E090E014C0643070F4A8 +:1014000070E0FB01EE0FFF1FE65EFE4F2081318191 +:10141000FB01EA5EFE4F808190E004C080E090E036 +:1014200020E030E0FA0131832083089580E189BD16 +:1014300082E189BD09B400FEFDCF8091D8008F7D87 +:101440008093D8008091E00082608093E0008091DA +:10145000E00081FDFCCF0895CF92DF92EF92FF92E2 +:101460000F931F93CF93DF93EC018B016A010E94CE +:101470008A0B811133C0C114D10439F0F601808187 +:101480009181081B190BC80FD91FE12CF12C0115F4 +:10149000110519F18091E80085FD16C08091E800E2 +:1014A0008E778093E800C114D10449F0F601808161 +:1014B0009181E80EF91EF182E08285E00FC00E9462 +:1014C0008A0B882321F30AC089918093F10001508F +:1014D0001109FFEFEF1AFF0ADACF80E0DF91CF9119 +:1014E0001F910F91FF90EF90DF90CF900895209182 +:1014F000EC013091ED012617370748F061157105B1 +:1015000039F42091E8002E772093E80001C0B9015A +:10151000FC0120E06115710579F18091E5018823D6 +:10152000F1F18530F1F18091E80083FD3CC08091BC +:10153000E80082FD2EC08091E80080FFEBCF209173 +:10154000F3008091F20090E0922B6115710551F04B +:101550008830910538F421912093F1006150710990 +:101560000196F3CF21E0089709F020E08091E80090 +:101570008E778093E800CECF2111CFCF0AC0809123 +:10158000E501882361F0853061F08091E80083FDFA +:101590000AC08091E80082FFF2CF80E0089582E0E7 +:1015A000089583E0089581E008952091EC01309141 +:1015B000ED012617370748F06115710539F42091C0 +:1015C000E8002E772093E80001C0B901FC0120E07B +:1015D0006115710591F18091E501882309F440C0FE +:1015E000853009F43FC08091E80083FD3DC08091C3 +:1015F000E80082FD2FC08091E80080FFE9CF2091B4 +:10160000F3008091F20090E0922B6115710559F082 +:101610008830910540F424912093F1003196615077 +:1016200071090196F2CF21E0089709F020E080913E +:10163000E8008E778093E800CBCF2111CCCF0AC091 +:101640008091E501882361F0853061F08091E800A8 +:1016500083FD0AC08091E80082FFF2CF80E0089508 +:1016600082E0089583E0089581E00895982F9730EF +:1016700068F59093E900981739F07091EC0020918B +:10168000ED005091F00003C0242F762F50E021FD93 +:1016900002C09F5FECCF3091EB003E7F3093EB00B8 +:1016A0003091ED003D7F3093ED003091EB003160E3 +:1016B0003093EB007093EC002093ED005093F0001A +:1016C0002091EE0027FDE5CF80E008958F70809394 +:1016D000E90081E008958091E60187FF11C08091C3 +:1016E000E80082FD05C08091E5018111F8CF11C0AD +:1016F0008091E8008B770BC08091E501882349F049 +:101700008091E80080FFF8CF8091E8008E77809389 +:10171000E80008952091E4003091E50095E64091BD +:10172000EC00842F817040FF23C08091E80080FD91 +:101730001DC08091E501882399F0853099F0809152 +:10174000EB0085FD11C04091E4005091E5002417A5 +:10175000350729F3915011F09A01E1CF84E0089503 +:1017600082E0089583E0089581E0089580E008957F +:101770004091E80042FFDDCF08950E942B0C0E94AB +:10178000330CE0EEF0E0808181608083E8EDF0E0F2 +:1017900080818F77808319BCA7EDB0E08C918E7F1C +:1017A0008C9380818F7E80831092E40108950F9343 +:1017B0001F93CF93DF930E942B0C0E94330CC8ED34 +:1017C000D0E088818F77888388818068888388814A +:1017D0008F7D888319BC1092E5011092E10110926F +:1017E000E3011092E20100EE10E0F80180818B7FAE +:1017F000808388818160888342E060E080E00E948D +:10180000360BE1EEF0E080818E7F8083E2EEF0E047 +:10181000808181608083808188608083F8018081FD +:101820008E7F8083888180618883DF91CF911F9133 +:101830000F910895E8EDF0E080818F7E8083E7EDE1 +:10184000F0E080818160808384E082BF81E08093CA +:10185000E4010C94D70BE8EDF0E080818E7F80836B +:101860001092E20008951092DA001092E1000895BB +:101870001F920F920FB60F9211242F933F934F9305 +:101880005F936F937F938F939F93AF93BF93EF93E8 +:10189000FF938091E10082FF0BC08091E20082FF04 +:1018A00007C08091E1008B7F8093E1000E94A40E2D +:1018B0008091DA0080FF1FC08091D80080FF1BC09C +:1018C0008091DA008E7F8093DA008091D90080FFCA +:1018D0000DC080E189BD82E189BD09B400FEFDCF64 +:1018E00081E08093E5010E949D0805C019BC10921B +:1018F000E5010E94AB088091E10080FF19C0809152 +:10190000E20080FF15C08091E2008E7F8093E200AC +:101910008091E20080618093E2008091D800806233 +:101920008093D80019BC85E08093E5010E94AF0840 +:101930008091E10084FF30C08091E20084FF2CC0E0 +:1019400080E189BD82E189BD09B400FEFDCF8091AF +:10195000D8008F7D8093D8008091E1008F7E8093A6 +:10196000E1008091E2008F7E8093E2008091E200AE +:1019700081608093E2008091E101882311F084E08E +:1019800007C08091E30087FD02C081E001C083E0D1 +:101990008093E5010E94B1088091E10083FF29C096 +:1019A0008091E20083FF25C08091E100877F8093D2 +:1019B000E10082E08093E5011092E1018091E10075 +:1019C0008E7F8093E1008091E2008E7F8093E20021 +:1019D0008091E20080618093E20042E060E080E07C +:1019E0000E94360B8091F00088608093F0000E9486 +:1019F000AE08FF91EF91BF91AF919F918F917F9131 +:101A00006F915F914F913F912F910F900FBE0F906B +:101A10001F9018951F920F920FB60F9211242F93BB +:101A20003F934F935F936F937F938F939F93AF9366 +:101A3000BF93CF93DF93EF93FF93C091E900CF70F3 +:101A40008091EC00D82FD17080FDD0E81092E90091 +:101A50008091F000877F8093F00078940E944E0D73 +:101A60001092E9008091F00088608093F000CD2B07 +:101A7000CF70C093E900FF91EF91DF91CF91BF91BB +:101A8000AF919F918F917F916F915F914F913F9116 +:101A90002F910F900FBE0F901F9018951F93CF930B +:101AA000DF93CDB7DEB7AA970FB6F894DEBF0FBEAF +:101AB000CDBFE6EEF1E08091F100819321E0EE3EB2 +:101AC000F207C9F70E94CD088091E80083FF24C186 +:101AD0008091E6019091E701492F50E04A3051058D +:101AE00008F01AC1FA01EA5AFF4F0C9422238038F9 +:101AF00081F0823809F010C18091EA018F708093E3 +:101B0000E9008091EB0085FB882780F91092E900BD +:101B100006C08091E2019091E30191118260909161 +:101B2000E800977F9093E8008093F1001092F10015 +:101B3000C8C0282F2D7F09F0EFC0882319F082300C +:101B400061F0EAC08091E801813009F0E5C093308E +:101B500009F080E08093E3012BC08091E8018111BE +:101B600027C08091EA018F7009F4D6C08093E90004 +:101B70002091EB0020FF1CC0933021F48091EB00FA +:101B8000806214C09091EB0090619093EB0021E093 +:101B900030E0A90102C0440F551F8A95E2F7409337 +:101BA000EA001092EA008091EB0088608093EB00DD +:101BB0001092E9008091E800877F86C08111ACC057 +:101BC0001091E8011F778091E3008078812B80934A +:101BD000E3008091E800877F8093E8000E946B0B10 +:101BE0008091E80080FFFCCF8091E30080688093C3 +:101BF000E300111102C082E001C083E08093E5019F +:101C00008BC08058823008F087C08091E8019091A5 +:101C1000E9018C3D53E0950779F583E08A838AE2F8 +:101C200089834FB7F894DE01139620E03EE051E23D +:101C3000E32FF0E050935700E49120FF03C0E295BA +:101C4000EF703F5FEF708E2F90E0EA3010F0C79694 +:101C500001C0C0968D939D932F5F243149F74FBFEC +:101C60008091E800877F8093E8006AE270E0CE010F +:101C700001960E94770A14C0AE014F5F5F4F6091DA +:101C8000EA010E94C009BC01892B09F445C090916A +:101C9000E800977F9093E80089819A810E94D50A95 +:101CA0008091E8008B778093E80036C08038A1F5FA +:101CB0008091E800877F8093E8008091E101809324 +:101CC000F1008091E8008E778093E8000E946B0B12 +:101CD00023C0811121C08091E8019091E9019927E9 +:101CE0000297D4F48091E800877F8093E800809188 +:101CF000E8018093E1010E946B0B8091E101811169 +:101D000006C08091E30087FD02C081E001C084E04D +:101D10008093E5010E94B9088091E80083FF0AC022 +:101D20008091E800877F8093E8008091EB008062DB +:101D30008093EB00AA960FB6F894DEBF0FBECDBF1E +:101D4000DF91CF911F9108950895CF938091E50180 +:101D50008823A1F0C091E900CF709091EC00892F09 +:101D6000817090FD80E8C82B1092E9008091E80016 +:101D700083FD0E944E0DCF70C093E900CF9108956E +:101D800090936901809368010895E0916801F09152 +:101D90006901309721F00190F081E02D099480E0F5 +:101DA0000895E0916801F0916901309721F0028077 +:101DB000F381E02D09940895E0916801F0916901A3 +:101DC000309721F00480F581E02D09940895209149 +:101DD0006601309167012817390771F09093670108 +:101DE00080936601E0916801F0916901309721F0DC +:101DF0000680F781E02D09940895209164013091C7 +:101E000065012817390771F090936501809364018B +:101E1000E0916801F0916901309721F00084F1852B +:101E2000E02D0994089508950C94130F0E94F11A5F +:101E30000E9481040C94B71BCF92DF92EF92FF9225 +:101E40000F931F93CF93DF93CDB7DEB72B970FB6CA +:101E5000F894DEBF0FBECDBF0E9499048BE6C82E5A +:101E600081E0D82E00E010E0E02E802F0E948F0548 +:101E7000F60141916F01F82EF426B1F40F5F1F4F68 +:101E80000E30110589F78FEF89838A831B820E94A8 +:101E9000FA1A8160782F9D838C8349815A816B81E6 +:101EA0008D810E94BF0F40C09091CD0191FF04C071 +:101EB0008B870E9495058B8520E030E04F2D50E008 +:101EC000922FBA01022E02C0759567950A94E2F727 +:101ED00060FF24C02E83EF8221E030E0690102C060 +:101EE000CC0CDD1C9A95E2F790E08C219D21892B8A +:101EF00009F420E028870E94FA1A8160782F9A87D7 +:101F000089874E815F8168858A850E94BF0FF801AD +:101F1000E559FE4F8081C826C08206C02F5F3F4F23 +:101F20002630310569F6AACF0E949E1E0E94C50E7A +:101F300090916A018917A1F00E94C50E80936A01F1 +:101F40002B960FB6F894DEBF0FBECDBFDF91CF91B9 +:101F50001F910F91FF90EF90DF90CF900C94BA07F4 +:101F60002B960FB6F894DEBF0FBECDBFDF91CF9199 +:101F70001F910F91FF90EF90DF90CF900895CF9336 +:101F8000DF93CDB7DEB72B970FB6F894DEBF0FBE49 +:101F9000CDBF4F83588769877A878B87DE0111967B +:101FA00086E0FD0111928A95E9F785E0FE013796FA +:101FB00001900D928A95E1F749815A816B817C816C +:101FC0008D819E810E94C9162B960FB6F894DEBFB4 +:101FD0000FBECDBFDF91CF910895CF93C82F882337 +:101FE00009F4C1C0823859F40E94C50E81FDBBC0FE +:101FF00089E30E9466190E942E1A89E30CC0833877 +:1020000079F40E94C50E80FDAEC083E50E9466197A +:102010000E942E1A83E50E94A519CF910C942E1AC6 +:10202000843859F40E94C50E82FD9DC087E40E9449 +:1020300066190E942E1A87E4EECF8CEF8C0F813A3E +:1020400048F48C2F0E94DE2081118DC08C2F0E94BD +:102050006619E3CF80E28C0F883048F4C77081E0C6 +:1020600001C0880FCA95EAF70E94E719D6CF8BE521 +:102070008C0F833078F4C53A29F0C63A31F083E802 +:1020800090E005C081E890E002C082E890E0CF9146 +:102090000C94E70E88E58C0F833108F064C0C83AD1 +:1020A00039F1C93A41F1CA3A49F1CB3A51F1CC3A46 +:1020B00059F1CD3A61F1C03B69F1CE3A71F1CF3AB5 +:1020C00079F1C13B81F1C23B89F1C33B91F1C43B42 +:1020D00099F1C53BA1F1C63BA9F1C73BB1F1C83BA2 +:1020E000B9F1C93BC1F1CA3BC9F180E090E038C009 +:1020F00082EE90E035C089EE90E032C08AEE90E04A +:102100002FC085EB90E02CC086EB90E029C087EBD8 +:1021100090E026C08CEC90E023C08DEC90E020C0D5 +:1021200083E891E01DC08AE891E01AC082E991E05D +:1021300017C084E991E014C081E292E011C083E20B +:1021400092E00EC084E292E00BC085E292E008C00B +:1021500086E292E005C087E292E002C08AE292E065 +:10216000CF910C94FD0ECF910895882309F44BC0B4 +:10217000823859F40E94C50E81FF45C089E30E9450 +:1021800066190E942E1A89E30CC0833871F40E94EC +:10219000C50E80FF38C083E50E9466190E942E1A82 +:1021A00083E50E94A5190C942E1A843859F40E94D4 +:1021B000C50E82FF28C087E40E9466190E942E1A6D +:1021C00087E4EFCF9CEF980F913A58F390E2980F85 +:1021D000983050F4877091E001C0990F8A95EAF722 +:1021E000892F0E94ED19DFCF9BE5980F933020F4E3 +:1021F00080E090E00C94E70E885A833120F480E070 +:1022000090E00C94FD0E0895882321F00E94E719B8 +:102210000C942E1A0895882321F00E94ED190C9435 +:102220002E1A0895BF92CF92DF92EF92FF920F93F2 +:102230001F93CF93DF9300D000D000D0CDB7DEB78F +:102240007C0185E0F701DE01119601900D928A95DF +:10225000E1F7F70183819481892B09F4E2C290812F +:1022600081818F3F19F49F3F09F4DBC2F70102819E +:10227000258122952F7099838A8389819A812E8363 +:102280000E942519182FB92E0E9424190E94EB17BD +:102290002E81002319F00E94041A2E81EB2DE29565 +:1022A000EF704E2F50E0FA01E05AFF4F0C942223BA +:1022B0008B2D807F9B2D9F70F92E882319F0F2942F +:1022C00080EFF822002349F0FF2009F457C28F2D38 +:1022D0000E94F7190E942E1A51C2812F0E94B51038 +:1022E000FF2009F49EC28F2D0E94FD1926960FB67D +:1022F000F894DEBF0FBECDBFDF91CF911F910F913C +:10230000FF90EF90DF90CF90BF900C942E1A3B2D52 +:10231000307F8B2D8F70303211F08295807F1123AA +:1023200019F0113021F12CC00023B9F0222309F457 +:1023300090C1213009F08DC126960FB6F894DEBF0A +:102340000FBECDBFDF91CF911F910F91FF90EF9006 +:10235000DF90CF90BF900C94171A222319F02130F0 +:1023600009F45FC28E830E941A1A8E8186C10023EF +:1023700021F0223008F055C26CC1211152C27DC13A +:10238000002321F0222309F464C1F8C1222309F4B7 +:1023900074C109C28B2D86958695837019F08130A2 +:1023A000D1F03FC2002321F0812F9B2D937002C0FA +:1023B00080E090E026960FB6F894DEBF0FBECDBF4A +:1023C000DF91CF911F910F91FF90EF90DF90CF9011 +:1023D000BF900C94E70E002321F0812F9B2D93706A +:1023E00002C080E090E026960FB6F894DEBF0FBEE4 +:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 +:10240000CF90BF900C94FD0E812F002319F00E94F5 +:10241000A61D02C00E940E1E26960FB6F894DEBFBF +:102420000FBECDBFDF91CF911F910F91FF90EF9025 +:10243000DF90CF90BF900C94931E8B2D837009F08A +:1024400075C00111EEC1812F829586958770880F26 +:10245000880F912F9F70C92ED12CE12CF12C082EC2 +:1024600004C0CC0CDD1CEE1CFF1C0A94D2F714FF38 +:1024700012C00FE010E020E030E004C0000F111F98 +:10248000221F331F8A95D2F7C901B8016095709554 +:102490008095909503C060E070E0CB014B2D469590 +:1024A000469543704230C1F060F56C297D298E2934 +:1024B0009F29413051F126960FB6F894DEBF0FBE2A +:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3 +:1024D000CF90BF900C9412186C297D298E299F29CA +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0001F910F91FF90EF90DF90CF90BF900C94C1 +:102500002E180E941218C701B60126960FB6F8942D +:10251000DEBF0FBECDBFDF91CF911F910F91FF9016 +:10252000EF90DF90CF90BF900C94F617002319F036 +:102530008B2D817001C08695882309F472C1812F8B +:10254000829586958770880F880F912F9F70C92E6E +:10255000D12CE12CF12C082E04C0CC0CDD1CEE1C7F +:10256000FF1C0A94D2F714FF12C00FE010E020E025 +:1025700030E004C0000F111F221F331F8A95D2F7CD +:10258000C901B801609570958095909503C060E091 +:1025900070E0CB014B2D4695469543704230C1F01B +:1025A00060F56C297D298E299F29413051F12696AD +:1025B0000FB6F894DEBF0FBECDBFDF91CF911F9154 +:1025C0000F91FF90EF90DF90CF90BF900C94EC189C +:1025D0006C297D298E299F2926960FB6F894DEBF97 +:1025E0000FBECDBFDF91CF911F910F91FF90EF9064 +:1025F000DF90CF90BF900C9408190E94EC18C7018F +:10260000B60126960FB6F894DEBF0FBECDBFDF91A0 +:10261000CF911F910F91FF90EF90DF90CF90BF90DF +:102620000C94D018103FD1F118F4103E50F4A1C012 +:10263000123F09F463C008F44CC0133F09F473C09F +:1026400098C01F708B2D8F710023A1F00E94691814 +:10265000812F26960FB6F894DEBF0FBECDBFDF9157 +:10266000CF911F910F91FF90EF90DF90CF90BF908F +:102670000C9404110E948A18812F26960FB6F894A4 +:10268000DEBF0FBECDBFDF91CF911F910F91FF90A5 +:10269000EF90DF90CF90BF900C940B110023A9F026 +:1026A0002111BFC08B2D8F7126960FB6F894DEBF17 +:1026B0000FBECDBFDF91CF911F910F91FF90EF9093 +:1026C000DF90CF90BF900C94AF18223008F0A9C0D3 +:1026D000E9CF0023A9F08B2D8F7126960FB6F894C1 +:1026E000DEBF0FBECDBFDF91CF911F910F91FF9045 +:1026F000EF90DF90CF90BF900C946918002359F3AE +:102700008B2D8F7126960FB6F894DEBF0FBECDBF0E +:10271000DF91CF911F910F91FF90EF90DF90CF90BD +:10272000BF900C948A18002399F08B2D8F712696F8 +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF900C945418B2 +:1027500026960FB6F894DEBF0FBECDBFDF91CF91A6 +:102760001F910F91FF90EF90DF90CF90BF900C944E +:102770004A180023A9F0222309F4ADCF812F269611 +:102780000FB6F894DEBF0FBECDBFDF91CF911F9182 +:102790000F91FF90EF90DF90CF90BF900C94ED0FD2 +:1027A000222309F4ADCF812F26960FB6F894DEBF11 +:1027B0000FBECDBFDF91CF911F910F91FF90EF9092 +:1027C000DF90CF90BF900C94B5104B2D4F70612FC0 +:1027D000C7010E94100326960FB6F894DEBF0FBE05 +:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1027F000CF90BF900C946E174B2D4F70612FC70177 +:1028000026960FB6F894DEBF0FBECDBFDF91CF91F5 +:102810001F910F91FF90EF90DF90CF90BF900C949D +:10282000560626960FB6F894DEBF0FBECDBFDF91D9 +:10283000CF911F910F91FF90EF90DF90CF90BF90BD +:1028400008950E94041A0E94141A0E94D9190E9425 +:102850002E1A0E94431F0E94931E80E090E00E9467 +:10286000E70E80E090E00C94FD0E0E94F4190C94A9 +:1028700021140E942519292F22952F702C3030F415 +:102880002A3048F42250223078F405C02C3041F030 +:102890002F3031F009C0803E48F0803F29F406C057 +:1028A00093FB882780F9089580E0089581E00895DA +:1028B000CF93DF9300D000D01F92CDB7DEB70F903B +:1028C0000F900F900F900F90DF91CF910895CF93BD +:1028D000DF9300D000D000D0CDB7DEB726960FB67C +:1028E000F894DEBF0FBECDBFDF91CF9108951F9347 +:1028F000CF93DF93C091790116E080917A01C817D8 +:1029000099F0D0E01C9FF0011D9FF00D1124E558B7 +:10291000FE4F4081518162817381848195810E9443 +:1029200067142196C770E9CFDF91CF911F91089569 +:102930004091AB015091AC016091AD017091AE013D +:102940008091AF019091B0010C9467148091B00117 +:1029500082958F7009F054C08091AD01882309F4ED +:102960004FC080917901A0917A014091AE015091C0 +:10297000AF016091AB017091AC01B6E08A1709F428 +:102980003FC090E041155105C1F17F3F11F46F3F09 +:10299000A1F1B89FF001B99FF00D1124E558FE4F49 +:1029A000218127132AC02081261327C022812111CB +:1029B00024C0238134812417350710F421503109B4 +:1029C000241B350B283C3105C0F42091B0012F7039 +:1029D00020612093B00126E0289FF001299FF00D8F +:1029E0001124E058FE4F80818F70806180838BEAD4 +:1029F00091E00E9412110C94771401968770BECF5B +:102A00000895CF92DF92EF92FF920F931F93CF938F +:102A1000DF93CDB7DEB762970FB6F894DEBF0FBE77 +:102A2000CDBF8C0185E0F801DE011D9601900D926D +:102A30008A95E1F7D8014C9111965C911197129605 +:102A40006C918091AE019091AF01009709F475C12E +:102A50003091AB017091AC017F3F19F43F3F09F415 +:102A60006CC1F801C380D480E090AD01EE2009F480 +:102A7000BEC02091B001C816D90628F0D601A81B07 +:102A8000B90BCD0104C0809590958C0D9D1DFF2440 +:102A9000F394883C910578F0F12C207F09F0C4C0B4 +:102AA0007C2DD98AC88A89890E9458148BEA91E0C2 +:102AB0000E941211AFC0822F807F09F045C05713CA +:102AC00013C0431311C061110FC02F7020612093F8 +:102AD000B0010E9498148BEA91E00E94121180913B +:102AE000B001F80185832EC0CD2819F15F3F11F4A4 +:102AF0004F3FF9F0F62E61111CC0809179012091B1 +:102B00007A0136E0821709F45BC090E0389FF0014B +:102B1000399FF00D1124E558FE4F7181571306C0FF +:102B20007081471303C07281711103C001968770D1 +:102B3000E9CFF62E662309F41CC18091B0018160B3 +:102B40008093B001F12C15C1571309C0431307C07E +:102B5000611105C08091B001F8018583C8C04D871F +:102B60005E878D859E856A8B0E9439146A898823C9 +:102B7000D1F16623C1F12091B001822F82958F702F +:102B800090E0029774F08091AB019091AC0198872E +:102B90008F831986DB86CA862C87CE0107960E9412 +:102BA000121186E0F801ABEAB1E001900D928A952E +:102BB000E1F70E94A6140E949814FF24F394D9C050 +:102BC0004D875E878D859E850E942519292F229528 +:102BD0002F70223008F0C1C09F7009F0BBC0805E2A +:102BE000883008F4C6C0C8010E941211E6CFC8168A +:102BF000D90608F453C0F601E81BF90BCF01883C55 +:102C0000910508F450C0F12C7C2DD98AC88A898995 +:102C10000E945814EBEAF1E086E0DF011D928A95EC +:102C2000E9F70E949814A5C0571314C0431312C0AB +:102C3000611110C08091B001F8018583C8010E9424 +:102C4000121186E0EBEAF1E0DF011D928A95E9F7C7 +:102C5000FE2C8FC04D875E878D859E856A8B0E9476 +:102C600039146A89882309F4BECF662309F4BBCFDF +:102C70002091B001822F82958F7090E002970CF422 +:102C800090CF8091AB019091AC019A8389831B8294 +:102C9000DD82CC822E83CE01019681CF80959095E6 +:102CA0008C0D9D1DACCFF62E662309F49CCF5713D7 +:102CB00033C0431331C02091B00120FD24C0822FC6 +:102CC00082958F70482F50E041155105E1F0D801F1 +:102CD00015962C9315974F30510549F08F5F982F1B +:102CE0009295907F822F8F70892B15968C93C801B7 +:102CF0000E94121186E0F801ABEAB1E001900D925A +:102D00008A95E1F78ECF86E0F801ABEAB1E0019059 +:102D10000D928A95E1F72DC04D875E878D859E8542 +:102D20000E94391481113DCF8091B0018160809360 +:102D3000B001C8010E9412111CC0662309F453CFD0 +:102D40004D875E878D859E850E943914882309F4FE +:102D50004ACF27CF811143CF0CC0243008F043CF96 +:102D60009F7009F43CCFD80115969C91907F09F093 +:102D700036CF8F2D62960FB6F894DEBF0FBECDBF53 +:102D8000DF91CF911F910F91FF90EF90DF90CF9047 +:102D900008951F93CF93DF93CDB7DEB72C970FB66F +:102DA000F894DEBF0FBECDBF4F83588769877A87FF +:102DB0008B879C87CE0107960E940115882371F0AE +:102DC0008A859B85892B09F441C088858F3F09F04E +:102DD00065C08F818F3F09F061C038C086E0FE0179 +:102DE0003796DE01119601900D928A95E1F76A857A +:102DF0007B856115710551F1FF81E885EF3F11F485 +:102E0000FF3F21F120917A0130E0C90101968770DE +:102E100099274091790150E08417950709F447C03C +:102E2000F983EA837D836C8396E0929FD001939F20 +:102E3000B00D1124A558BE4FFE01319601900D92A0 +:102E40009A95E1F780937A010E94771416E08091B9 +:102E5000790190917A018917B9F1189FC001112465 +:102E600085589E4F0E940115882371F1E0917901E8 +:102E70001E9FF0011124E558FE4F4081518162816F +:102E80007381848195810E9467148091790190E01B +:102E900001968770992780937901D9CF4F81588502 +:102EA00069857A858B859C850E946714CFCF0E94A7 +:102EB000351410927A0110927901EBEAF1E086E084 +:102EC000DF011D928A95E9F72C960FB6F894DEBFC4 +:102ED0000FBECDBFDF91CF911F910895EF92FF926A +:102EE0000F931F93CF93DF938C01892B09F46CC050 +:102EF000F12CEE24E394E8012196F80184918437C3 +:102F000040F4843008F051C0813081F0823019F1F2 +:102F10005BC0853709F444C0A8F19CE7980F90374F +:102F200008F052C08F770E94B51041C00E5F1F4F4E +:102F3000FE01849190E2980F983050F48770FE2D36 +:102F400001C0FF0F8A95EAF78F2F0E94071A14C05D +:102F50000E94ED0F2DC00E5F1F4FFE01849190E285 +:102F6000980F983060F48770FE2D01C0FF0F8A958E +:102F7000EAF78F2F0E940D1A0E942E1A19C00E9484 +:102F8000B51016C00E5F1F4FFE01C491CC2381F017 +:102F90008FE99FE00197F1F700C00000C150F6CF24 +:102FA0000E5F1F4FFE01F49003C00E94ED0F8E01D3 +:102FB0008F2D882309F49FCFEFE9FFE03197F1F7D8 +:102FC00000C000008150F5CFDF91CF911F910F918C +:102FD000FF90EF90089508956093B5017093B60146 +:102FE0008093B7019093B8010C9421140F931F9311 +:102FF0000091B5011091B6012091B7013091B8014F +:10300000DC01CB01802B912BA22BB32B8093B5013C +:103010009093B601A093B701B093B8011F910F919F +:103020000C9421140F931F930091B5011091B601D8 +:103030002091B7013091B801DC01CB0180239123AD +:10304000A223B3238093B5019093B601A093B70157 +:10305000B093B8011F910F910C9421140F931F93FB +:103060000091B5011091B6012091B7013091B801DE +:10307000DC01CB0180279127A227B3278093B501DC +:103080009093B601A093B701B093B8011F910F912F +:103090000C9421141092B1011092B2011092B3015C +:1030A0001092B4010C94211441E050E060E070E013 +:1030B00004C0440F551F661F771F8A95D2F74093AF +:1030C000B1015093B2016093B3017093B4010C94B9 +:1030D000211441E050E060E070E004C0440F551F4F +:1030E000661F771F8A95D2F78091B1019091B20146 +:1030F000A091B301B091B401482B592B6A2B7B2BC3 +:103100004093B1015093B2016093B3017093B40145 +:103110000C94211441E050E060E070E004C0440FE2 +:10312000551F661F771F8A95D2F740955095609579 +:1031300070958091B1019091B201A091B301B091CD +:10314000B401482359236A237B234093B101509350 +:10315000B2016093B3017093B4010C94211441E067 +:1031600050E060E070E004C0440F551F661F771FF9 +:103170008A95D2F78091B1019091B201A091B301EB +:10318000B091B401482759276A277B274093B101A2 +:103190005093B2016093B3017093B4010C94211465 +:1031A0000F931F930091B1011091B2012091B301CF +:1031B0003091B401DC01CB01802B912BA22BB32BDE +:1031C0008093B1019093B201A093B301B093B40185 +:1031D0001F910F910C9421140F931F930091B10133 +:1031E0001091B2012091B3013091B401DC01CB0107 +:1031F00080239123A223B3238093B1019093B20142 +:10320000A093B301B093B4011F910F910C942114BA +:103210000F931F930091B1011091B2012091B3015E +:103220003091B401DC01CB0180279127A227B3277D +:103230008093B1019093B201A093B301B093B40114 +:103240001F910F910C9421140895CF92DF92EF9269 +:10325000FF920F931F93CF93DF938C01C090B10126 +:10326000D090B201E090B301F090B4018091B5012B +:103270009091B601A091B701B091B801C82AD92A9E +:10328000EA2AFB2ACFE1D0E0D701C6010C2E04C008 +:10329000B695A795979587950A94D2F780FF07C0B2 +:1032A000B8018C2F0E947A068130910531F4219764 +:1032B00058F7B80180E00E947A06DF91CF911F9104 +:1032C0000F91FF90EF90DF90CF90089590910C01B7 +:1032D0009923F1F090910D019923D1F0982F9695B3 +:1032E000969596959F3080F5E0910E01F0910F0133 +:1032F000E90FF11D877021E030E0A90102C0440F01 +:10330000551F8A95E2F7CA019181892B818308951F +:1033100020910E0130910F01F90132969FEF40E0AC +:103320005191851789F09F3F19F4511101C0942FD5 +:103330004F5F4E30A9F79F3F39F0F901E90FF11DBA +:1033400097FDFA9582830895089590910C01992331 +:10335000F9F090910D019923D9F0982F96959695B3 +:1033600096959F3028F5E0910E01F0910F01E90F3D +:10337000F11D877021E030E0A90102C0440F551F04 +:103380008A95E2F7CA018095918189238183089506 +:1033900020910E0130910F01F9013296205F3F4FCD +:1033A0009081891301C010823196E217F307C1F7AB +:1033B000089581E090E0E0910E01F0910F01E80F97 +:1033C000F91F1082019680319105A9F70895909117 +:1033D000CC01892B8093CC01089580959091CC01EC +:1033E00089238093CC0108951092CC010895909187 +:1033F000CB01892B8093CB01089580959091CB01CF +:1034000089238093CB0108951092CB010895909168 +:10341000CA01892B8093CA01089580959091CA01B1 +:1034200089238093CA0108951092CA010895809358 +:10343000B90108951092B901089580910E019091FB +:103440000F01FC0131969C01205F3F4F80E091917C +:1034500091118F5FE217F307D1F70895E0910E0104 +:10346000F0910F018091CC018083E0910E01F091E9 +:103470000F0190818091CB01892B8083E0910E0117 +:10348000F0910F0190818091CA01892B80838091F6 +:10349000B901882361F0E0910E01F0910F01908154 +:1034A000892B80830E941D1A81111092B90180918D +:1034B0000E0190910F010C94D10ECF92DF92EF92FA +:1034C000FF926C01EE24FF24C114D104E104F10445 +:1034D00021F0C701B60120E101C020E0C72ED82E9F +:1034E000E92EFF24C114D104E104F10419F0285F8E +:1034F000C701B6016B017C0154E0F694E794D794C0 +:10350000C7945A95D1F7C114D104E104F10419F01C +:103510002C5FC701B6016B017C0142E0F694E79491 +:10352000D794C7944A95D1F7C114D104E104F104AA +:1035300019F02E5FC701B601DC01CB01B695A79546 +:1035400097958795892B8A2B8B2B09F02F5F822FDC +:10355000FF90EF90DF90CF9008958091E501843047 +:1035600011F120E488E190E00FB6F894A8958093DB +:1035700060000FBE2093600083B7817F846083BFAB +:1035800083B7816083BF7894889583B78E7F83BF2C +:103590000FB6F894A89580916000886180936000D0 +:1035A000109260000FBE089508950C94D41ACF9322 +:1035B0000E94D51A0E9499040E94D41AC0E08C2F50 +:1035C0000E948F05811104C0CF5FCE30C1F701C0CA +:1035D00081E0CF9108950E9435140E94C50E0C948D +:1035E000BA0782E084BD93E095BD9AEF97BD8093C2 +:1035F0006E0008952FB7F8948091CE019091CF017D +:10360000A091D001B091D1012FBF0895CF92DF9248 +:10361000EF92FF920F931F932FB7F8944091CE0132 +:103620005091CF016091D0017091D1012FBF6A01FB +:103630007B01EE24FF248C0120E030E0C016D1068F +:10364000E206F30610F4415051099A01281B390B88 +:10365000C9011F910F91FF90EF90DF90CF900895D7 +:103660001F920F920FB60F9211248F939F93AF93D7 +:10367000BF938091CE019091CF01A091D001B091E4 +:10368000D1010196A11DB11D8093CE019093CF0170 +:10369000A093D001B093D101BF91AF919F918F9131 +:1036A0000F900FBE0F901F9018950E94BD0BF894BD +:1036B0002FEF87EA91E6215080409040E1F700C06B +:1036C000000087E090EBDC018093EE019093EF0126 +:1036D000A093F001B093F1019CE088E10FB6F8945B +:1036E000A895809360000FBE90936000FFCFEF928B +:1036F000FF920F931F93CF93DF93D82FC0E08C2FAF +:103700000E948F0500E010E0E82EF12CC701002E8A +:1037100002C0959587950A94E2F780FD06C00F5F79 +:103720001F4F0630110591F709C0602F7C2F80E0F4 +:103730000E9457068D13F3CF81E004C0CF5FCE30D7 +:10374000F1F680E0DF91CF911F910F91FF90EF9004 +:103750000895CF93C82F8CE20E94771B882321F015 +:103760008C2FCF910C94771B80E0CF910895CF934D +:103770000E94FE1C811102C00E94E41CC5E6C150DB +:1037800049F00E9499048FE39CE90197F1F700C08A +:103790000000F5CF89E20E94A91B811113C18AE2C2 +:1037A0000E94A91B81110E94E41C85E00E94A91BB4 +:1037B00081110E94551B0E94091D8093CD0187E055 +:1037C0000E94A91B8823A9F18BE10E94A91B8823D1 +:1037D00051F08091CD0181FB222720F991E09227C1 +:1037E00090FB81F90EC08EE00E94A91B882361F036 +:1037F0008091CD0182FB222720F991E0922790FB56 +:1038000082F98093CD0115C080E10E94A91B90919F +:10381000CD01882341F093FB222720F981E0822704 +:1038200080FB93F904C0892F809580FB90F99093D9 +:10383000CD018091CD010E940D1D0E941B1D809322 +:10384000DF0180EE0E94A91B882341F08091DF01F7 +:10385000982F909590FB80F98093DF0189E30E9477 +:10386000A91B882359F08091DF0181FB222720F9D1 +:1038700091E0922790FB81F98093DF0182EE0E9414 +:10388000A91B882359F08091DF0182FB222720F9B0 +:1038900091E0922790FB82F98093DF0186EE0E94EF +:1038A000A91B882359F08091DF0183FB222720F98F +:1038B00091E0922790FB83F98093DF0183EE0E94D1 +:1038C000A91B882359F08091DF0184FB222720F96E +:1038D00091E0922790FB84F98093DF0185E30E94B9 +:1038E000A91B882359F08091DF0185FB222720F94D +:1038F00091E0922790FB85F98093DF0181E30E949C +:10390000A91B882359F08091DF0186FB222720F92B +:1039100091E0922790FB86F98093DF0181E10E947C +:10392000A91B882359F08091DF0187FB222720F90A +:1039300091E0922790FB87F98093DF018091DF016E +:103940000E941F1D8091DF0187FB882780F98093EB +:103950000D0187E20E94A91BC82F8EE10E94A91BBE +:103960008111C2608FE10E94A91B8111C46080E2B5 +:103970000E94A91B8111C86081E20E94A91B8111CC +:10398000C06182E20E94A91B8111C06283E20E9491 +:10399000A91B8111C06484E20E94A91B882311F035 +:1039A000C06802C0CC2329F08C2F0E94161D6C2FFA +:1039B00003C00E94121D682F70E080E090E0CF915C +:1039C0000C94EC17CF9108956DEE7EEF80E090E0BF +:1039D0000E94582360E082E090E00E944A2360E069 +:1039E00083E090E00E944A2360E084E090E00E943F +:1039F0004A2360E085E090E00C944A2380E090E068 +:103A00000E94442321E08D3E9E4F09F020E0822F4A +:103A1000089582E090E00C943C23682F82E090E0CF +:103A20000C944A2383E090E00C943C23682F83E0BD +:103A300090E00C944A2384E090E00C943C23682F9F +:103A400084E090E00C944A238091D40180FF0BC065 +:103A50006091130185E0689FB00111247595679509 +:103A6000759567952BC081FF09C06091130185E0B2 +:103A7000689FB00111247595679520C082FF07C02B +:103A80006091130185E0689FB001112417C09091E7 +:103A9000D5019923D1F060911201961788F72091F2 +:103AA000130185E0289F90011124929FA001939F0C +:103AB000500D112470E0CA010E940E236038710578 +:103AC00040F46115710519F406C065E070E0862FB9 +:103AD00008958FE7089581E008958091D40180FFD3 +:103AE00008C06091110170E07595679575956795AF +:103AF00021C081FF06C06091110170E07595679546 +:103B000019C082FF04C06091110170E010C0909153 +:103B1000D501992399F0609110019617A0F7809133 +:103B20001101899FC001112470E00E940E236038AA +:103B3000710540F46115710519F406C061E070E08B +:103B4000862F08958FE7089581E00895803F21F43E +:103B50000E94241D819504C0813F29F40E94241DE8 +:103B60008093D8010895823F21F40E94241D8195FD +:103B700004C0833F29F40E94241D8093D701089537 +:103B8000893F19F40E946D1D05C08A3F31F40E94DF +:103B90006D1D81958093D90108958B3F21F40E947A +:103BA0006D1D819504C08C3F29F40E946D1D80938A +:103BB000DA010895843F21F48091D601816017C015 +:103BC000853F21F48091D601826011C0863F21F4A7 +:103BD0008091D60184600BC0873F21F48091D6018B +:103BE000886005C0883F31F48091D6018061809360 +:103BF000D60108958D3F21F48091D40181600BC0DE +:103C00008E3F21F48091D401826005C08F3F29F45A +:103C10008091D40184608093D4010895803F39F469 +:103C20008091D80187FF6CC01092D80169C0813F94 +:103C300029F48091D8011816BCF362C09091D70185 +:103C4000823F29F497FF5CC01092D70159C0833F8F +:103C500019F41916CCF354C0893F41F48091D9016D +:103C600018160CF04DC01092D9014AC08A3F29F4B1 +:103C70008091D90187FF44C0F6CF8B3F39F4809102 +:103C8000DA0187FF3DC01092DA013AC08C3F29F477 +:103C90008091DA011816BCF333C0843F21F480917F +:103CA000D6018E7F17C0853F21F48091D6018D7F8C +:103CB00011C0863F21F48091D6018B7F0BC0873FD6 +:103CC00021F48091D601877F05C0883F31F480912F +:103CD000D6018F7E8093D60113C08D3F21F4809151 +:103CE000D4018E7F0BC08E3F21F48091D4018D7F53 +:103CF00005C08F3F29F48091D4018B7F8093D4013C +:103D00008091D70181110EC08091D80181110AC024 +:103D10008091D901811106C08091DA01811102C020 +:103D20001092D501089586ED91E00E94DC0E0E946C +:103D3000FA1A9093D3018093D20108951F93CF93E1 +:103D4000DF938091D2019091D3010E94061BAC01B8 +:103D50009091D501992321F02091140130E006C003 +:103D6000209115018AE0289F9001112442175307E2 +:103D700008F485C08091D701C091D801D091D901B4 +:103D80001091DA01811107C0C11175C0D11173C042 +:103D9000111171C074C09F3F19F09F5F9093D501BE +:103DA000181624F40E94241D8093D7018091D70116 +:103DB00087FF05C00E94241D81958093D7011C16A2 +:103DC00024F40E94241D8093D8018091D80187FF9C +:103DD00005C00E94241D81958093D8016091D70170 +:103DE000662331F1C091D801CC2311F1062E000CCD +:103DF000770B880B990B0E94152223E333E343E3EF +:103E00005FE30E9479220E94DD216093D7016C2F2D +:103E1000CC0F770B880B990B0E94152223E333E319 +:103E200043E35FE30E9479220E94DD216093D80181 +:103E30001D1624F40E946D1D8093D9018091D90133 +:103E400087FF05C00E946D1D81958093D9011116D1 +:103E500024F40E946D1D8093DA018091DA0187FFBE +:103E600005C00E946D1D81958093DA01DF91CF918D +:103E70001F910C94931E9F3F09F08FCFA0CFDF912D +:103E8000CF911F910895E6EDF1E085E0DF011D92ED +:103E90008A95E9F71092D5011092D40108958330E4 +:103EA00081F128F4813059F08230D1F008958530C5 +:103EB00009F449C0B8F1863009F456C008958091DC +:103EC0001501262F30E0280F311D2F3F310524F436 +:103ED000680F6093150108958FEF80931501089581 +:103EE00080911401262F30E0280F311D2F3F31051E +:103EF00024F4680F6093140108958FEF80931401E8 +:103F0000089580911301262F30E0280F311D2F3F97 +:103F1000310524F4680F6093130108958FEF8093A7 +:103F20001301089580911201262F30E0280F311DD2 +:103F30002F3F310524F4680F6093120108958FEF2D +:103F400080931201089580911101262F30E0280FEF +:103F5000311D2F3F310524F4680F6093110108953E +:103F60008FEF80931101089580911001262F30E08A +:103F7000280F311D2F3F310524F4680F6093100185 +:103F800008958FEF809310010895833011F128F484 +:103F9000813049F0823091F00895853081F120F12F +:103FA0008630C1F1089580911501681720F4861BB1 +:103FB00080931501089510921501089580911401C0 +:103FC000681720F4861B8093140108951092140141 +:103FD000089580911301681720F4861B80931301C4 +:103FE000089510921301089580911201681720F42A +:103FF000861B8093120108951092120108958091FA +:104000001101681720F4861B809311010895109206 +:104010001101089580911001681720F4861B809388 +:10402000100108951092100108950F931F938D3180 +:1040300009F46BC008F03FC08E3009F47DC0C0F4B5 +:10404000873009F46EC068F4863009F0AFC0809103 +:10405000CD01817F8E7F8093CD0181E08093DC0153 +:10406000A6C0883009F458C08B3009F49BC09EC0AC +:10407000863109F497C078F4803109F470C0813139 +:1040800009F094C00E94351490910D0181E08927B8 +:1040900080930D0187C0893109F484C08B3109F008 +:1040A00085C08091CD0181FB222720F991E09227E4 +:1040B00090FB81F94AC0853309F45BC048F487322C +:1040C00009F457C008F45AC0893209F452C06EC0CE +:1040D000833438F48A3308F067C0883309F462C047 +:1040E00065C0833409F445C0883409F05FC00E947C +:1040F00035140FEF13ED20E3015010402040E1F79D +:1041000000C000000E94551B4DC00E9497210E94D4 +:10411000C50E0E94BA0746C00E94091D0E941B1DC1 +:1041200041C09091CD01892F817090FF12C0917F85 +:104130009E7F9093CD013BC08091CD0182FB2227D1 +:1041400020F991E0922790FB82F98093CD01992389 +:1041500049F18091CD0181608093CD0123C0809190 +:10416000CD0183FB222720F991E0922790FB83F970 +:10417000ECCF61E070E080E090E010C08D5141E054 +:1041800050E060E070E08A019B0104C0000F111F45 +:10419000221F331F8A95D2F7C901B8010E94EC177C +:1041A0000E94351481E003C08953E9CF80E01F915C +:1041B0000F91089580E008950C94DA20CF93C82FD2 +:1041C0008091DC01813079F018F08230E9F187C00C +:1041D000E0910E01F0910F018081813169F082320E +:1041E00009F07FC009C0E0910E01F0910F018081BC +:1041F000813111F0823261F48C2F0E94DC20811118 +:1042000004C08C2F0E9415201DC081E090E01AC0D0 +:104210008C2F0E94DA20811114C0C43179F048F447 +:10422000CB3079F0C03109F060C082E08093DC01CE +:1042300008C0C93219F0C83321F057C01092DC0110 +:1042400054C081E0817053C0C93289F118F5C4317E +:1042500071F1A8F4C73009F046C08AE080931501D7 +:1042600094E19093140193E09093130180931201D1 +:1042700088E08093110188E28093100134C0CE5110 +:10428000C63088F5EC2FF0E0E65DFE4F808180932C +:10429000DB0129C0CE34E9F020F4CB3421F56AE00B +:1042A00013C0C13579F0C235F1F461E00DC08091E1 +:1042B000DB01882319F01092DB0115C081E08093A7 +:1042C000DC0115C061E006C08091DB010E944F1F38 +:1042D0000AC06AE08091DB010E94C51F04C01092F1 +:1042E000DC0180E004C081E002C080E0ABCFCF9170 +:1042F0000895E1E8F0E080818860808380818160BA +:1043000080838FB7F89493E09093890090ED909319 +:1043100088008FBF0895EFE6F0E08081826080839F +:104320000895EFE6F0E080818D7F80830895EFE6C9 +:10433000F0E0908182E08927808308951F920F9298 +:104340000FB60F9211242F933F934F935F936F9368 +:104350007F938F939F93AF93BF93EF93FF9380913E +:10436000DD019091DE0101969093DE018093DD01E5 +:10437000811103C082E00E94BA07E091DE01E69558 +:10438000E695F0E0E35BFA4FE4918091DD018E1356 +:1043900003C080E00E94BA07FF91EF91BF91AF91F7 +:1043A0009F918F917F916F915F914F913F912F914D +:1043B0000F900FBE0F901F9018950E94E4216894F3 +:1043C000B1110C94732208950E94582288F09F57CF +:1043D00098F0B92F9927B751B0F0E1F0660F771F29 +:1043E000881F991F1AF0BA95C9F714C0B13091F01F +:1043F0000E947222B1E008950C947222672F782FE8 +:104400008827B85F39F0B93FCCF3869577956795E3 +:10441000B395D9F73EF490958095709561957F4F4F +:104420008F4F9F4F0895E89409C097FB3EF49095F5 +:104430008095709561957F4F8F4F9F4F9923A9F07D +:10444000F92F96E9BB279395F6958795779567950C +:10445000B795F111F8CFFAF4BB0F11F460FF1BC050 +:104460006F5F7F4F8F4F9F4F16C0882311F096E9E3 +:1044700011C0772321F09EE8872F762F05C0662391 +:1044800071F096E8862F70E060E02AF09A95660F4A +:10449000771F881FDAF7880F9695879597F9089503 +:1044A00057FD9058440F551F59F05F3F71F04795E5 +:1044B000880F97FB991F61F09F3F79F087950895CA +:1044C000121613061406551FF2CF4695F1DF08C0E9 +:1044D000161617061806991FF1CF86957105610506 +:1044E00008940895E894BB2766277727CB0197F9AE +:1044F00008950E948C220C94FD220E94EF2238F035 +:104500000E94F62220F0952311F00C94E6220C94E0 +:10451000EC2211240C9473220E94502270F3959F78 +:10452000C1F3950F50E0551F629FF001729FBB27AA +:10453000F00DB11D639FAA27F00DB11DAA1F649F46 +:104540006627B00DA11D661F829F2227B00DA11DF9 +:10455000621F739FB00DA11D621F839FA00D611D7F +:10456000221F749F3327A00D611D231F849F600DA0 +:10457000211D822F762F6A2F11249F5750409AF0C9 +:10458000F1F088234AF0EE0FFF1FBB1F661F771F55 +:10459000881F91505040A9F79E3F510580F00C9420 +:1045A000E6220C9473225F3FE4F3983ED4F38695A1 +:1045B00077956795B795F795E7959F5FC1F7FE2BC0 +:1045C000880F911D9695879597F9089597F99F679C +:1045D00080E870E060E008959FEF80EC089500248B +:1045E0000A941616170618060906089500240A9458 +:1045F00012161306140605060895092E0394000CDE +:1046000011F4882352F0BB0F40F4BF2B11F460FF6C +:1046100004C06F5F7F4F8F4F9F4F089597FB072E0A +:1046200016F4009407D077FD09D00E94282307FCD8 +:1046300005D03EF4909581959F4F089570956195B2 +:104640007F4F0895EE0FFF1F0590F491E02D099420 +:10465000AA1BBB1B51E107C0AA1FBB1FA617B707A8 +:1046600010F0A61BB70B881F991F5A95A9F78095C4 +:104670009095BC01CD010895F999FECF92BD81BD01 +:10468000F89A992780B50895A8E1B0E042E050E09B +:104690000C945F23262FF999FECF1FBA92BD81BDDE +:1046A00020BD0FB6F894FA9AF99A0FBE01960895B4 +:1046B0000E944A23272F0C944B23DC01CB01FC01E1 +:1046C000F999FECF06C0F2BDE1BDF89A319600B46B +:0E46D0000D9241505040B8F70895F894FFCF76 +:1046DE002002BC074C082708F307BF070101BA01E7 +:1046EE0028080A03140A3F4D36390E05C1048B04FF +:1046FE005204E503FE031704300401020304050609 +:04470E00070809008F :00000001FF -- cgit v1.2.3 From 32c7832609414d02c19b6ec312daabc8c741b266 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Mon, 28 Mar 2016 21:32:16 +0000 Subject: Refactor compiler code --- .../keymaps/german-manuneo/compile_keymap.py | 864 ++++--- .../ergodox_ez/keymaps/german-manuneo/keymap.c | 2359 ++++++++++---------- .../ergodox_ez/keymaps/german-manuneo/keymap.md | 338 +-- 3 files changed, 1900 insertions(+), 1661 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index 3bbb9340b..9767b1e07 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -1,4 +1,13 @@ -# encoding: utf-8 +#!/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 @@ -15,299 +24,423 @@ import collections PY2 = sys.version_info.major == 2 if PY2: - chr = unichr + chr = unichr -ONELINE_COMMENT_RE = re.compile(r"^\s*//.*$", re.MULTILINE) -INLINE_COMMENT_RE = re.compile( - r"([\,\"\[\]\{\}\d])\s+//\s[^\"\]\}\{\[]*$", re.MULTILINE -) -TRAILING_COMMA_RE = re.compile( - r",$\s*([\]\}])", re.MULTILINE -) +BASEPATH = os.path.abspath(os.path.join( + os.path.dirname(__file__), "..", ".." +)) -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", raw_data) - return json.loads(raw_data) -with io.open("keymap.md", encoding="utf-8") as fh: - lines = fh.readlines() +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 ], + ] +} -SECTIONS = [ - 'layout_config', - 'layers', + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.--------------------------------------------. .--------------------------------------------. +| | | | | | | | ! | | | | | | | +!------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+------! +| | | | | | | | ! | | | | | | | +!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! +| | | | | | |-------! !-------! | | | | | | +!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! +| | | | | | | | ! | | | | | | | +'------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+------' + | | | | | | ! | | | | | + '-----------------------------' '-----------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", ] -config = { - "includes_basedir": "quantum/", + +DEFAULT_CONFIG = { + "includes_basedir": "quantum/", "keymaps_includes": [ "keymap_common.h", ], - 'filler': "-+.':x", - 'separator': "|", + 'filler': "-+.':x", + 'separator': "|", 'default_key_prefix': ["KC_"], - 'unicode_macros': [], - 'macro_ids': ['UMS'], - 'layers': collections.OrderedDict(), - 'layer_lines': collections.OrderedDict(), } -section_start_index = -1 -current_section = None -current_layer_name = None -current_layer_lines = [] -config_data = [] - -def end_section(): - global section_start_index - global current_layer_lines - section_start_index = -1 - if current_section == 'layout_config': - config.update(loads("".join( - config_data - ))) - elif current_section == 'layers': - config['layer_lines'][current_layer_name] = current_layer_lines - current_layer_lines = [] - - -for i, line in enumerate(lines): - if line.startswith("# "): - section = line[2:].strip().replace(" ", "_").lower() - if section in SECTIONS: - current_section = section - elif line.startswith("## "): - sub_section = line[3:] - if current_section == 'layers': - current_layer_name = sub_section.strip() - # TODO: parse descriptio - config['layers'][current_layer_name] = "" - elif line.startswith(" "): - if section_start_index < 0: - section_start_index = i - if current_section == 'layout_config': - config_data.append(line) - elif current_section == 'layers': - if not line.strip(): - continue - current_layer_lines.append(line) - elif section_start_index > 0: - end_section() - -end_section() - -KEYDEF_RE = re.compile(r"#define ((?:{})(?:\w+))".format( - "|".join(config['key_prefixes']) -)) -IF0_RE = re.compile(r"^#if 0$.*?#endif", re.MULTILINE | re.DOTALL) -COMMENT_RE = re.compile(r"/\*.*?\*/", re.MULTILINE | re.DOTALL) -ENUM_RE = re.compile(r"(enum\s\w+\s\{.*?\};)", re.MULTILINE | re.DOTALL) -ENUM_KEY_RE = re.compile(r"({}\w+)".format( - "|".join(config['key_prefixes']) -)) -def parse_keydefs(path): - with io.open(path, encoding="utf-8") as fh: - data = fh.read() - data, _ = COMMENT_RE.subn("", data) - data, _ = IF0_RE.subn("", data) +SECTIONS = [ + 'layout_config', + 'layers', +] - 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] +# Markdown Parsing -valid_keycodes = set() -basepath = os.path.abspath(os.path.join( - os.path.dirname(__file__), "..", "..", "..", ".." -)) +def loads(raw_data): + 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 (including newlines) + ([\]\}]) # end of an array or object + """, re.MULTILINE | re.VERBOSE + ) -valid_keycodes.update(parse_keydefs(os.path.join( - basepath, "tmk_core", "common", "keycode.h" -))) - -for include_path in config['keymaps_includes']: - path = os.path.join(basepath, config['includes_dir'], include_path) - path = path.replace("/", os.sep) - if os.path.exists(path): - valid_keycodes.update(parse_keydefs(path)) - -LAYER_CHANGE_RE = re.compile(r"(DF|TG|MO)\(\d+\)") -MACRO_RE = re.compile(r"M\(\w+\)") -UNICODE_RE = re.compile(r"U[0-9A-F]{4}") -NON_CODE = re.compile(r"^[^A-Z0-9_]$") - - -def UNICODE_MACRO(config, c): - # TODO: don't use macro for codepoints below 0x2000 - macro_id = "UC_" + ( - unicodedata.name(c) - .replace(" ", "_") - .replace("-", "_") - .replace("SUPERSCRIPT_", "SUP_") - .replace("SUBSCRIPT_", "SUB_") - .replace("GREEK_SMALL_LETTER", "GR_LC") - .replace("GREEK_CAPITAL_LETTER", "GR_UC") - .replace("VULGAR_FRACTION_", "FR_") - ) - if macro_id not in config['macro_ids']: - config['macro_ids'].append(macro_id) - code = "{:04X}".format(ord(c)) - if (macro_id, code) not in config['unicode_macros']: - config['unicode_macros'].append((macro_id, code)) - return "M({})".format(macro_id) - - -def MACRO(config, code): - macro_id = code[2:-1] - if macro_id not in config['macro_ids']: - config['macro_ids'].append(macro_id) - return code - -# TODO: presumably we can have a macro or function which takes -# the hex code and produces much smaller code. + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') -WIN_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LALT), T(KP_PLUS), {1}, U(LALT), END - ); -""" + 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", raw_data) + return json.loads(raw_data) -LINUX_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END - ); -""" -def macro_cases(config, mode): - if mode == 'win': - template = WIN_UNICODE_MACRO_TEMPLATE - elif mode == 'linux': - template = LINUX_UNICODE_MACRO_TEMPLATE - else: - raise ValueError("Invalid mode: ", mode) - template = template.strip() - - for macro_id, unimacro_chars in config['unicode_macros']: - unimacro_keys = ", ".join( - "T({})".format( - "KP_" + char if char.isdigit() else char - ) for char in unimacro_chars - ) - yield template.format(macro_id, unimacro_keys) +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:] + + 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() + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif + """, re.MULTILINE | re.DOTALL | re.VERBOSE +) -MACROCODE = """ -#define UC_MODE_WIN 0 -#define UC_MODE_LINUX 1 +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" + """, re.MULTILINE | re.DOTALL | re.VERBOSE +) -static uint16_t unicode_mode = UC_MODE_WIN; +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=re.MULTILINE | re.DOTALL | re.VERBOSE): + 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 + """ +) + + +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 + """ +) + +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): + valid_keycodes = set() + paths = [ + os.path.join(BASEPATH, "tmk_core", "common", "keycode.h") + ] + [ + os.path.join( + BASEPATH, config['includes_dir'], include_path + ) for include_path in config['keymaps_includes'] + ] + + for path in paths: + path = path.replace("/", os.sep) + # the config always uses forward slashe + if os.path.exists(path): + header_data = read_header_file(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): + code = macro_id = raw_code[2:-1] + return 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) + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, config['key_prefixes'], valid_keycodes + ) + 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 -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 UMS: - unicode_mode = (unicode_mode + 1) % 2; - break; - {macro_cases} - default: - break; - }} - if (unicode_mode == UC_MODE_WIN) {{ - switch(id) {{ - {win_macro_cases} - default: - break; - }} - }} else if (unicode_mode == UC_MODE_LINUX) {{ - switch(id) {{ - {linux_macro_cases} - default: - break; - }} - }} - return MACRO_NONE; -}}; -""" +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes -def iter_keycodes(layer_lines, config): - filler_re = re.compile("[" + - config['filler'] + " " + - "]") - - all_codes = [] - for line in layer_lines: - line, _ = filler_re.subn("", line.strip()) - if not line: - continue - codes = line.split(config['separator']) - all_codes.extend(codes[1:-1]) - - key_groups = {} - for group_index, key_indexes in enumerate(config['keymap_indexes']): - for key_index in key_indexes: - key_groups[key_index] = group_index - - keymap_indexes = sum(config['keymap_indexes'], []) - assert len(all_codes) == len(keymap_indexes) - code_index_pairs = zip(all_codes, keymap_indexes) - prev_index = None - for i, (code, key_index) in enumerate(code_index_pairs): - code = code.strip() - layer_match = LAYER_CHANGE_RE.match(code) - unicode_match = UNICODE_RE.match(code) - noncode_match = NON_CODE.match(code) - macro_match = MACRO_RE.match(code) - - ws = "\n" if key_groups[key_index] != prev_index else "" - prev_index = key_groups[key_index] - - try: - if not code: - code = 'KC_TRNS' - elif layer_match: - pass - elif macro_match: - code = MACRO(config, code) - elif unicode_match: - hex_code = code[1:] - code = UNICODE_MACRO(config, chr(int(hex_code, 16))) - elif noncode_match: - code = UNICODE_MACRO(config, code) - elif "_" in code: - assert code in valid_keycodes, "unknown code '{}'".format(code) - else: - for prefix in config['key_prefixes']: - if prefix + code in valid_keycodes: - code = prefix + code - break - assert code in valid_keycodes, "unknown code '{}'".format(code) - yield code, key_index, ws - except AssertionError: - print("Error processing code", repr(code).encode("utf-8")) - raise + 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) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); @@ -348,71 +481,158 @@ void * matrix_scan_user(void) { }; """ -def parse_keymaps(config): - keymaps = {} - layer_line_items = config['layer_lines'].items() - for i, (layer_name, layer_lines) in enumerate(layer_line_items): - print("parseing layer", layer_name) - keymap = {} - for code, key_index, ws in iter_keycodes(layer_lines, config): - keymap[key_index] = (code, ws) - keymaps[layer_name] = [v for k, v in sorted(keymap.items())] - return keymaps - - -def iter_keymap_lines(config, keymaps): - for include_path in config['keymaps_includes']: - yield '#include "{}"\n'.format(include_path) - - yield "\n" - - layer_items = config['layers'].items() - for i, (layer_name, description) in enumerate(layer_items): - yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) - - for i, macro_id in enumerate(config['macro_ids']): - yield "#define {} {}\n".format(macro_id, i) - - yield "\n" - - yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" - - layer_line_items = config['layer_lines'].items() - last_index = config['keymap_indexes'][-1] - for i, (layer_name, layer_lines) in enumerate(layer_line_items): - keymap = keymaps[layer_name] - yield "/*\n" - for line in layer_lines: - yield " *{}".format(line) - yield "*/\n" - - yield "[L{0}] = KEYMAP(\n".format(i) - - for key_index, (code, ws) in enumerate(keymap): - yield "\t{}".format(code) - if key_index < len(keymap) - 1: - yield "," - yield ws - yield "),\n" - - yield "};\n\n" - - yield "const uint16_t PROGMEM fn_actions[] = {\n" - yield "};\n" +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 - yield MACROCODE.format( - macro_cases="", - win_macro_cases="\n".join(macro_cases(config, mode='win')), - linux_macro_cases="\n".join(macro_cases(config, mode='linux')), - ) +static uint16_t unicode_mode = UC_MODE_WIN; - yield USERCODE +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} + default: + break; + }} + if (unicode_mode == UC_MODE_WIN) {{ + switch(id) {{ + {win_macro_cases} + default: + break; + }} + }} else if (unicode_mode == UC_MODE_LINUX) {{ + switch(id) {{ + {linux_macro_cases} + default: + break; + }} + }} + return MACRO_NONE; +}}; +""" +WIN_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LALT), T(KP_PLUS), {1}, U(LALT), END + ); +""" -with io.open("keymap.c", mode="w", encoding="utf-8") as fh: - for data in iter_keymap_lines(config, parse_keymaps(config)): - fh.write(data) +LINUX_UNICODE_MACRO_TEMPLATE = """ +case {0}: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END + ); +""" + +def macro_cases(config, mode): + if mode == 'win': + template = WIN_UNICODE_MACRO_TEMPLATE + elif mode == 'linux': + template = LINUX_UNICODE_MACRO_TEMPLATE + else: + raise ValueError("Invalid mode: ", mode) + template = template.strip() + + for macro_id, uc_hex in config['unicode_macros'].items(): + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield template.format(macro_id, unimacro_keys) + + +def iter_keymap_lines(keymap): + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + yield "\n" + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + prev_row_index = row_index + + +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] + keymap_lines = "".join(iter_keymap_lines(keymap)) + 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="", + win_macro_cases="\n".join(macro_cases(config, mode='win')), + linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + ) + + # 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) + 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) -# print("\n".join(sorted(valid_keycodes))) -# print(json.dumps(config, indent=4)) +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c index 400ad6fcf..23611ddd8 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -3,449 +3,458 @@ #include "keymap_common.h" #include "keymap_extras/keymap_german.h" -#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 -#define L7 7 // Layer 7 -#define L8 8 // Layer 8 -#define UMS 0 -#define UC_UPWARDS_ARROW 1 -#define UC_LEFTWARDS_ARROW 2 -#define UC_DOWNWARDS_ARROW 3 -#define UC_RIGHTWARDS_ARROW 4 -#define UC_SUP_ONE 5 -#define UC_SUP_TWO 6 -#define UC_SUP_THREE 7 -#define UC_SUP_FOUR 8 -#define UC_SUP_FIVE 9 -#define UC_FOR_ALL 10 -#define UC_SUP_SIX 11 -#define UC_SUP_SEVEN 12 -#define UC_SUP_EIGHT 13 -#define UC_SUP_NINE 14 -#define UC_SUP_ZERO 15 -#define UC_MULTIPLICATION_SIGN 16 -#define UC_FR_ONE_HALF 17 -#define UC_DIVISION_SIGN 18 -#define UC_FR_ONE_QUARTER 19 -#define UC_FR_ONE_FIFTH 20 -#define UC_FR_ONE_SIXTH 21 -#define UC_FR_ONE_EIGHTH 22 -#define UC_PLUS_MINUS_SIGN 23 -#define UC_EMPTY_SET 24 -#define UC_INFINITY 25 -#define UC_SUP_LATIN_SMALL_LETTER_N 26 -#define UC_THERE_EXISTS 27 -#define UC_ELEMENT_OF 28 -#define UC_FR_ONE_THIRD 29 -#define UC_NOT_EQUAL_TO 30 -#define UC_FR_TWO_THIRDS 31 -#define UC_FR_THREE_QUARTERS 32 -#define UC_ASYMPTOTICALLY_EQUAL_TO 33 -#define UC_THERE_DOES_NOT_EXIST 34 -#define UC_NOT_AN_ELEMENT_OF 35 -#define UC_SUB_ONE 36 -#define UC_SUB_TWO 37 -#define UC_SUB_THREE 38 -#define UC_SUB_FOUR 39 -#define UC_SUB_FIVE 40 -#define UC_SUB_SIX 41 -#define UC_SUB_SEVEN 42 -#define UC_SUB_EIGHT 43 -#define UC_SUB_NINE 44 -#define UC_SUB_ZERO 45 -#define UC_GR_LC_CHI 46 -#define UC_GR_LC_PI 47 -#define UC_GR_LC_PHI 48 -#define UC_GR_LC_OMEGA 49 -#define UC_GR_LC_GAMMA 50 -#define UC_GR_LC_ETA 51 -#define UC_GR_LC_XI 52 -#define UC_GR_LC_KAPPA 53 -#define UC_GR_LC_LAMDA 54 -#define UC_GR_LC_ZETA 55 -#define UC_GR_LC_UPSILON 56 -#define UC_GR_LC_IOTA 57 -#define UC_GR_LC_ALPHA 58 -#define UC_GR_LC_EPSILON 59 -#define UC_GR_LC_OMICRON 60 -#define UC_GR_LC_SIGMA 61 -#define UC_GR_LC_NU 62 -#define UC_GR_LC_RHO 63 -#define UC_GR_LC_TAU 64 -#define UC_GR_LC_DELTA 65 -#define UC_GR_LC_FINAL_SIGMA 66 -#define UC_GR_LC_THETA 67 -#define UC_GR_LC_BETA 68 -#define UC_GR_LC_MU 69 -#define UC_GR_LC_PSI 70 -#define UC_GR_UC_CHI 71 -#define UC_GR_UC_PI 72 -#define UC_GR_UC_PHI 73 -#define UC_GR_UC_OMEGA 74 -#define UC_GR_UC_GAMMA 75 -#define UC_GR_UC_ETA 76 -#define UC_GR_UC_XI 77 -#define UC_GR_UC_KAPPA 78 -#define UC_GR_UC_LAMDA 79 -#define UC_GR_UC_ZETA 80 -#define UC_GR_UC_UPSILON 81 -#define UC_GR_UC_IOTA 82 -#define UC_GR_UC_ALPHA 83 -#define UC_GR_UC_EPSILON 84 -#define UC_GR_UC_OMICRON 85 -#define UC_GR_UC_SIGMA 86 -#define UC_GR_UC_NU 87 -#define UC_GR_UC_RHO 88 -#define UC_GR_UC_TAU 89 -#define UC_GR_UC_DELTA 90 -#define UC_GR_UC_THETA 91 -#define UC_GR_UC_BETA 92 -#define UC_GR_UC_MU 93 -#define UC_GR_UC_PSI 94 +#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 +#define L7 7 // layer_7 +#define L8 8 // layer_8 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| !LALT| |LEFT|DOWN|RGHT| - * '------------------------'.-------------. .-------------.'------------------------' - * | INS |TG(2) | !M(UMS)| DELT | - * .------+------+------! !------+------+------. - * ! ! | APP | ! PGUP | ! ! - * ! ! !------! !------! ! ! - * | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * |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| !LALT| |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_LALT, - KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, M(UMS), - KC_DELT, KC_PGUP, - KC_PGDN, - KC_ENTER, KC_SPACE), + 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_LALT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, + 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| ↑ | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | ← | ↓ | → | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | |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), + 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| - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | 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), + 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| | ∄ | ∉ | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L3] = KEYMAP( - KC_TRNS, - M(UC_SUP_ONE), M(UC_SUP_TWO), M(UC_SUP_THREE), M(UC_SUP_FOUR), M(UC_SUP_FIVE), M(UC_FOR_ALL), KC_TRNS, - M(UC_MULTIPLICATION_SIGN), M(UC_FR_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_FR_ONE_QUARTER), M(UC_FR_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_FR_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_FR_TWO_THIRDS), M(UC_FR_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_SUP_SIX), M(UC_SUP_SEVEN), M(UC_SUP_EIGHT), M(UC_SUP_NINE), M(UC_SUP_ZERO), KC_TRNS, KC_TRNS, - M(UC_FR_ONE_SIXTH), KC_TRNS, M(UC_FR_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_INFINITY), - M(UC_SUP_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), + 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----+----+----+-----! - * | | | θ | | | | | ! | β | μ | | | | ψ | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L4] = KEYMAP( - KC_TRNS, - M(UC_SUB_ONE), M(UC_SUB_TWO), M(UC_SUB_THREE), M(UC_SUB_FOUR), M(UC_SUB_FIVE), KC_TRNS, KC_TRNS, - M(UC_GR_LC_CHI), M(UC_GR_LC_PI), M(UC_GR_LC_PHI), M(UC_GR_LC_OMEGA), M(UC_GR_LC_GAMMA), KC_TRNS, KC_TRNS, - M(UC_GR_LC_UPSILON), M(UC_GR_LC_IOTA), M(UC_GR_LC_ALPHA), M(UC_GR_LC_EPSILON), M(UC_GR_LC_OMICRON), KC_TRNS, - KC_TRNS, M(UC_GR_LC_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_SUB_SIX), M(UC_SUB_SEVEN), M(UC_SUB_EIGHT), M(UC_SUB_NINE), M(UC_SUB_ZERO), KC_TRNS, KC_TRNS, - M(UC_GR_LC_ETA), M(UC_GR_LC_XI), M(UC_GR_LC_KAPPA), M(UC_GR_LC_LAMDA), KC_TRNS, M(UC_GR_LC_ZETA), M(UC_GR_LC_SIGMA), - M(UC_GR_LC_NU), M(UC_GR_LC_RHO), M(UC_GR_LC_TAU), M(UC_GR_LC_DELTA), M(UC_GR_LC_FINAL_SIGMA), KC_TRNS, - M(UC_GR_LC_BETA), M(UC_GR_LC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_LC_PSI), 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_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----+----+----+-----! - * | | | Θ | | | | | ! | Β | Μ | | | | Ψ | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----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_GR_UC_CHI), M(UC_GR_UC_PI), M(UC_GR_UC_PHI), M(UC_GR_UC_OMEGA), M(UC_GR_UC_GAMMA), KC_TRNS, KC_TRNS, - M(UC_GR_UC_UPSILON), M(UC_GR_UC_IOTA), M(UC_GR_UC_ALPHA), M(UC_GR_UC_EPSILON), M(UC_GR_UC_OMICRON), KC_TRNS, - KC_TRNS, M(UC_GR_UC_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_GR_UC_ETA), M(UC_GR_UC_XI), M(UC_GR_UC_KAPPA), M(UC_GR_UC_LAMDA), KC_TRNS, M(UC_GR_UC_ZETA), M(UC_GR_UC_SIGMA), - M(UC_GR_UC_NU), M(UC_GR_UC_RHO), M(UC_GR_UC_TAU), M(UC_GR_UC_DELTA), KC_TRNS, KC_TRNS, - M(UC_GR_UC_BETA), M(UC_GR_UC_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GR_UC_PSI), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, 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_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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----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), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L7] = 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), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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----+----+----+-----! - * | | | | | | | | ! | | | | | | | - * '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------'.-------------. .-------------.'------------------------' - * | | | ! | | - * .------+------+------! !------+------+------. - * ! ! | | ! | ! ! - * ! ! !------! !------! ! ! - * | | | | ! | | | - * '--------------------' '--------------------' + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' */ [L8] = 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), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 uint16_t PROGMEM fn_actions[] = {}; #define UC_MODE_WIN 0 #define UC_MODE_LINUX 1 @@ -453,791 +462,791 @@ const uint16_t PROGMEM fn_actions[] = { static uint16_t unicode_mode = UC_MODE_WIN; 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 + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function switch(id) { - case UMS: - unicode_mode = (unicode_mode + 1) % 2; - break; - - default: - break; + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + + default: + break; } - if (unicode_mode == UC_MODE_WIN) { - switch(id) { - case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END - ); + if (unicode_mode == UC_MODE_WIN) { + switch(id) { + case UC_GREEK_SMALL_LETTER_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END + ); case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END + ); +case UC_SUBSCRIPT_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_EIGHTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_THIRD: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END + ); +case UC_SUPERSCRIPT_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END + ); +case UC_SUBSCRIPT_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_FIFTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END + ); +case UC_SUBSCRIPT_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END + ); +case UC_SUPERSCRIPT_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END + ); case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_SUP_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END - ); -case UC_SUP_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END - ); -case UC_SUP_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END - ); -case UC_SUP_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END - ); -case UC_SUP_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END - ); -case UC_SUP_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END - ); -case UC_SUP_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END - ); -case UC_SUP_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END - ); -case UC_SUP_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END - ); -case UC_SUP_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END - ); -case UC_FR_ONE_HALF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_SUPERSCRIPT_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END + ); +case UC_SUPERSCRIPT_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PSI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END + ); +case UC_SUBSCRIPT_FOUR: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END + ); case UC_DIVISION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END - ); -case UC_FR_ONE_QUARTER: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END - ); -case UC_FR_ONE_FIFTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END - ); -case UC_FR_ONE_SIXTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END - ); -case UC_FR_ONE_EIGHTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_RHO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_SIXTH: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END + ); +case UC_VULGAR_FRACTION_TWO_THIRDS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_NU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END + ); +case UC_SUPERSCRIPT_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_XI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END + ); +case UC_SUBSCRIPT_TWO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_PHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END + ); case UC_INFINITY: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END - ); -case UC_SUP_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_OMICRON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END + ); case UC_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END - ); -case UC_FR_ONE_THIRD: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END - ); -case UC_FR_TWO_THIRDS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END - ); -case UC_FR_THREE_QUARTERS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END - ); -case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END + ); +case UC_SUBSCRIPT_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_SIGMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_OMEGA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END + ); +case UC_SUBSCRIPT_ONE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ZETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END + ); +case UC_SUPERSCRIPT_FIVE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END + ); +case UC_VULGAR_FRACTION_THREE_QUARTERS: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END + ); +case UC_SUPERSCRIPT_THREE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END + ); +case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_SUPERSCRIPT_NINE: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_KAPPA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END + ); +case UC_SUBSCRIPT_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ALPHA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END + ); +case UC_SUBSCRIPT_SEVEN: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_BETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_ETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END + ); +case UC_SUPERSCRIPT_EIGHT: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END + ); +case UC_SUPERSCRIPT_ZERO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END + ); case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END - ); -case UC_SUB_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END - ); -case UC_SUB_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END - ); -case UC_SUB_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END - ); -case UC_SUB_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END - ); -case UC_SUB_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END - ); -case UC_SUB_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END - ); -case UC_SUB_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END - ); -case UC_SUB_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END - ); -case UC_SUB_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END - ); -case UC_SUB_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END - ); -case UC_GR_LC_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END - ); -case UC_GR_LC_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END - ); -case UC_GR_LC_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END - ); -case UC_GR_LC_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END - ); -case UC_GR_LC_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END - ); -case UC_GR_LC_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END - ); -case UC_GR_LC_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END - ); -case UC_GR_LC_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END - ); -case UC_GR_LC_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END - ); -case UC_GR_LC_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END - ); -case UC_GR_LC_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END - ); -case UC_GR_LC_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END - ); -case UC_GR_LC_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END - ); -case UC_GR_LC_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END - ); -case UC_GR_LC_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END - ); -case UC_GR_LC_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END - ); -case UC_GR_LC_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END - ); -case UC_GR_LC_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END - ); -case UC_GR_LC_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END - ); -case UC_GR_LC_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END - ); -case UC_GR_LC_FINAL_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END - ); -case UC_GR_LC_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END - ); -case UC_GR_LC_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END - ); -case UC_GR_LC_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END - ); -case UC_GR_LC_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END - ); -case UC_GR_UC_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END - ); -case UC_GR_UC_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END - ); -case UC_GR_UC_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END - ); -case UC_GR_UC_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END - ); -case UC_GR_UC_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_GR_UC_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END - ); -case UC_GR_UC_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END - ); -case UC_GR_UC_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END - ); -case UC_GR_UC_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END - ); -case UC_GR_UC_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END - ); -case UC_GR_UC_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END - ); -case UC_GR_UC_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END - ); -case UC_GR_UC_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_GR_UC_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END - ); -case UC_GR_UC_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END - ); -case UC_GR_UC_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END - ); -case UC_GR_UC_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END - ); -case UC_GR_UC_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END - ); -case UC_GR_UC_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END - ); -case UC_GR_UC_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END - ); -case UC_GR_UC_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END - ); -case UC_GR_UC_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_GR_UC_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END - ); -case UC_GR_UC_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END - ); - default: - break; - } - } else if (unicode_mode == UC_MODE_LINUX) { - switch(id) { - case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_TAU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_QUARTER: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_CHI: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_THETA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END + ); +case UC_GREEK_SMALL_LETTER_IOTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_LAMDA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END + ); +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_UPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_MU: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_EPSILON: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_GAMMA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END + ); +case UC_SUBSCRIPT_SIX: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END + ); +case UC_GREEK_CAPITAL_LETTER_DELTA: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END + ); +case UC_VULGAR_FRACTION_ONE_HALF: + return MACRODOWN( + D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END + ); + default: + break; + } + } else if (unicode_mode == UC_MODE_LINUX) { + switch(id) { + case UC_GREEK_SMALL_LETTER_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END + ); case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_EIGHTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_THIRD: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END + ); +case UC_THERE_DOES_NOT_EXIST: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_FIFTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END + ); case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END - ); -case UC_SUP_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END - ); -case UC_SUP_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END - ); -case UC_SUP_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END - ); -case UC_SUP_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END - ); -case UC_SUP_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END - ); -case UC_SUP_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END - ); -case UC_SUP_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END - ); -case UC_SUP_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END - ); -case UC_SUP_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END - ); -case UC_SUP_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END - ); -case UC_FR_ONE_HALF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END + ); +case UC_DOWNWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PSI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_FOUR: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END + ); case UC_DIVISION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END - ); -case UC_FR_ONE_QUARTER: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END - ); -case UC_FR_ONE_FIFTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END - ); -case UC_FR_ONE_SIXTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END - ); -case UC_FR_ONE_EIGHTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_RHO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_SIXTH: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_TWO_THIRDS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_NU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_XI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_TWO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END + ); +case UC_ASYMPTOTICALLY_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_PHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END + ); case UC_INFINITY: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END - ); -case UC_SUP_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_OMICRON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END + ); case UC_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END - ); -case UC_FR_ONE_THIRD: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END - ); -case UC_FR_TWO_THIRDS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END - ); -case UC_FR_THREE_QUARTERS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END - ); -case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END - ); + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END + ); +case UC_MULTIPLICATION_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_SIGMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_OMEGA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_ONE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ZETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_FIVE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END + ); +case UC_THERE_EXISTS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END + ); +case UC_PLUS_MINUS_SIGN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_THREE_QUARTERS: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_THREE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END + ); +case UC_EMPTY_SET: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END + ); +case UC_UPWARDS_ARROW: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_NINE: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_KAPPA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ALPHA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_SEVEN: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_BETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_ETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_EIGHT: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_ZERO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END + ); case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END - ); -case UC_SUB_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END - ); -case UC_SUB_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END - ); -case UC_SUB_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END - ); -case UC_SUB_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END - ); -case UC_SUB_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END - ); -case UC_SUB_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END - ); -case UC_SUB_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END - ); -case UC_SUB_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END - ); -case UC_SUB_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END - ); -case UC_SUB_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_LC_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_LC_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_LC_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_LC_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_LC_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_LC_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_LC_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END - ); -case UC_GR_LC_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END - ); -case UC_GR_LC_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END - ); -case UC_GR_LC_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_LC_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_LC_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_LC_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_LC_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_LC_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END - ); -case UC_GR_LC_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_LC_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END - ); -case UC_GR_LC_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_LC_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_LC_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_LC_FINAL_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_LC_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_LC_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_LC_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END - ); -case UC_GR_LC_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_UC_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_UC_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END - ); -case UC_GR_UC_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_UC_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_UC_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_UC_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END - ); -case UC_GR_UC_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END - ); -case UC_GR_UC_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END - ); -case UC_GR_UC_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END - ); -case UC_GR_UC_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END - ); -case UC_GR_UC_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_UC_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END - ); -case UC_GR_UC_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_UC_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END - ); -case UC_GR_UC_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END - ); -case UC_GR_UC_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END - ); -case UC_GR_UC_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END - ); -case UC_GR_UC_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END - ); -case UC_GR_UC_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_UC_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END - ); -case UC_GR_UC_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END - ); -case UC_GR_UC_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END - ); -case UC_GR_UC_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END - ); -case UC_GR_UC_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END - ); - default: - break; - } - } + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END + ); +case UC_NOT_EQUAL_TO: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END + ); +case UC_FOR_ALL: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_TAU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_QUARTER: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_CHI: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_THETA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END + ); +case UC_GREEK_SMALL_LETTER_IOTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_LAMDA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END + ); +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_UPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_MU: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_EPSILON: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_GAMMA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END + ); +case UC_SUBSCRIPT_SIX: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END + ); +case UC_GREEK_CAPITAL_LETTER_DELTA: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END + ); +case UC_VULGAR_FRACTION_ONE_HALF: + return MACRODOWN( + D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END + ); + default: + break; + } + } return MACRO_NONE; }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); ergodox_board_led_off(); diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md index 9c0c12528..1dc019ab0 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -1,8 +1,14 @@ # ManuNeo Ergodox Keyboard Layout +Compile this file to a `keymap.c` file using `compile_keymap.py` + + compile_keymap.py keymaps/german-manuneo/keymap.md + + # Layout Config { + "layout": "ergodox_ez", "includes_dir": "quantum/", "keymaps_includes": [ "ergodox_ez.h", @@ -10,22 +16,14 @@ "keymap_common.h", "keymap_extras/keymap_german.h", ], - "keymap_indexes": [ - [ 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 ], - ], "key_prefixes": ["DE_", "KC_"], "filler": "-+.'!x", "separator": "|", "macros": { - "MUC": "", + // TODO: implement macros + // "MUC": "", }, + // TODO: implement default unicode mode } @@ -34,189 +32,201 @@ ## 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| !LALT| |LEFT|DOWN|RGHT| - '------------------------'.-------------. .-------------.'------------------------' - | INS |TG(2) | !M(UMS)| DELT | - .------+------+------! !------+------+------. - ! ! | APP | ! PGUP | ! ! - ! ! !------! !------! ! ! - | BSPC | LSFT | ESC | ! PGDN |ENTER |SPACE | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + |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| !LALT| |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| ↑ | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | ← | ↓ | → | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | |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| - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | 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| | ∄ | ∉ | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 4 - .-------------------------------------. .-------------------------------------. - | | ₁ | ₂ | ₃ | ₄ | ₅ | | ! | ₆ | ₇ | ₈ | ₉ | ₀ | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | χ | π | φ | ω | γ | | ! | η | ξ | κ | λ | | ζ | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | υ | ι | α | ε | ο |------! !------! σ | ν | ρ | τ | δ | ς | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | θ | | | | | ! | β | μ | | | | ψ | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 5 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | Χ | Π | Φ | Ω | Γ | | ! | Η | Ξ | Κ | Λ | | Ζ | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | Υ | Ι | Α | Ε | Ο |------! !------! Σ | Ν | Ρ | Τ | Δ | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | Θ | | | | | ! | Β | Μ | | | | Ψ | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 6 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + ## Layer 7 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' ## Layer 8 - .-------------------------------------. .-------------------------------------. - | | | | | | | | ! | | | | | | | - !-----+----+----+----+----+-----------! !------+----+----+----+----+----+-----! - | | | | | | | | ! | | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | |------! !------! | | | | | | - !-----+----+----+----x----x----! ! ! !----x----x----+----+----+-----! - | | | | | | | | ! | | | | | | | - '-----+----+----+----+----+-----------' '-----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------'.-------------. .-------------.'------------------------' - | | | ! | | - .------+------+------! !------+------+------. - ! ! | | ! | ! ! - ! ! !------! !------! ! ! - | | | | ! | | | - '--------------------' '--------------------' + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' -- cgit v1.2.3 From a2d3c0bd93bf97264bb94510c126d4fd21b7b135 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Mon, 28 Mar 2016 23:42:55 +0200 Subject: add hex file --- .../keymaps/german-manuneo/german-manuneo.hex | 1624 ++++++++++++++++++++ 1 file changed, 1624 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex new file mode 100644 index 000000000..cb8b7fa8d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex @@ -0,0 +1,1624 @@ +:100000000C94BD0F0C9401100C9401100C94011071 +:100010000C9401100C9401100C9401100C9401101C +:100020000C9401100C9401100C94791B0C944B1C33 +:100030000C9401100C9401100C9401100C940110FC +:100040000C9401100C94D6300C9401100C940110F7 +:100050000C9401100C94782A0C9401100C9401104B +:100060000C9401100C9401100C9401100C940110CC +:100070000C9401100C9401100C9401100C940110BC +:100080000C9401100C9401100C9401100C940110AC +:100090000C9401100C9401100C9401100C9401109C +:1000A0000C9401100C9401100C940110AB107810FA +:1000B0006310BD10E4101711F910FF1014113E1158 +:1000C0003511021138114E10F3102911321175102B +:1000D0006C10BA10B11099106F103010C6101A11B0 +:1000E00023112F119F10CF10AE1048102011ED10CA +:1000F0009010A5109C108410261193103910F01048 +:100100008A10C9106C12B410661054107E107B1047 +:10011000D210A2100E113F108D10B7102D10C0106C +:100120000B111111DB105D10F6104B1072105710EF +:10013000CC10FC103B113310A810C3100511D510C2 +:100140005A102C11EA10451096106010E110691039 +:1001500008114210D810E7103610511041111D112E +:1001600081103C10DE108710D311A0118B11E51106 +:100170000C123F12211227123C1266125D122A1233 +:10018000601276111B1251125A129D119411E21134 +:10019000D911C11197115811EE1142124B12571279 +:1001A000C711F711D611701148121512B811CD11DF +:1001B000C411AC114E12BB1161111812B211F11120 +:1001C0006F12DC118E117C11A611A311FA11CA1144 +:1001D00036126711B511DF115511E81133123912BA +:1001E000031285111E1273119A117F11F41124123A +:1001F00063125B11D011EB112D12FD1182115412FB +:1002000012126D11BE1188110912911130126A116A +:1002100000120F125E11791169124512A9116411B1 +:100220000612AF11B01CD21CBD1DD21CBD1D141D69 +:10023000371DBD1D8C1D9F1D8C208C20BA20BA201F +:10024000FC203821382338235021382347224722E5 +:10025000122338233823262301E001E10118021874 +:1002600002E002E10162026201620262010502052E +:1002700001070207015802580001E001E1011802DC +:100280001802E002E101620262015B025B016102AD +:1002900061015C025C015802580001E001E10118B3 +:1002A000021802E002E1015A025A01620262016090 +:1002B0000260015E025E015802580001E001E101A6 +:1002C00018021802E002E101620262015B025B01B6 +:1002D000610261015B025B015802580001E001E12B +:1002E0000118021802E002E101620262015B025B96 +:1002F00001610261015D025D015802580001E001E7 +:10030000E10118021802E002E101620262015B02EF +:100310005B0161026101060206015802580001E01A +:1003200001E10118021802E002E101620262015BD0 +:10033000025B01040204015D025D015802580001E4 +:10034000E001E10118021802E002E1015A025A013B +:10035000620262015F025F0109020901580258004E +:1003600001E001E10118021802E002E1016202620B +:10037000015B025B0161026101050205015802583F +:100380000001E001E10118021802E002E10162024D +:1003900062015B025B010502050161026101580215 +:1003A000580001E001E10118021802E002E10162D7 +:1003B0000262015B025B016102610160026001583F +:1003C00002580001E001E10118021802E002E10117 +:1003D000620262015B025B01060206015F025F01CD +:1003E0005802580001E001E10118021802E002E1A0 +:1003F0000162026201620262010502050106020653 +:10040000015802580001E001E10118021802E0025F +:10041000E101620262015B025B01040204015C0211 +:100420005C015802580001E001E10118021802E0E5 +:1004300002E1015A025A015A025A01620262016241 +:100440000262015802580001E001E101180218029D +:10045000E002E101620262015B025B01040204014D +:100460005F025F015802580001E001E10118021823 +:1004700002E002E1015A025A015A025A015E025E8A +:1004800001620262015802580001E001E101180214 +:100490001802E002E101620262015B025B010602F6 +:1004A00006015D025D015802580001E001E10118FA +:1004B000021802E002E1015A025A015A025A01628C +:1004C000026201610261015802580001E001E1018C +:1004D00018021802E002E1015A025A0162026201A6 +:1004E0005F025F01620262015802580001E001E10F +:1004F0000118021802E002E1015A025A0162026286 +:10050000015F025F01600260015802580001E001D2 +:10051000E10118021802E002E101620262015B02DD +:100520005B01610261015F025F015802580001E056 +:1005300001E10118021802E002E101620262015BBE +:10054000025B01610261015A025A0158025800011E +:10055000E001E10118021802E002E1015A025A0129 +:1005600062026201600260015F025F01580258008E +:1005700001E001E10118021802E002E101620262F9 +:10058000015B025B01610261015902590158025885 +:100590000001E001E10118021802E002E1015A0243 +:1005A0005A01620262016002600160026001580249 +:1005B000580001E001E10118021802E002E10162C5 +:1005C0000262015B025B01610261010402040158E5 +:1005D00002580001E001E10118021802E002E10105 +:1005E000620262015B025B0105020501060206016F +:1005F0005802580001E001E10118021802E002E18E +:1006000001620262015B025B01050205015C025CA2 +:10061000015802580001E001E10118021802E0024D +:10062000E1015A025A01620262015F025F01610246 +:1006300061015802580001E001E10118021802E0CE +:1006400002E1015A025A015902590161026101593C +:100650000259015802580001E001E1011802180294 +:10066000E002E1015A025A015A025A016202620191 +:100670005D025D015802580001E001E10118021815 +:1006800002E002E10162026201620262010502050A +:10069000015B025B015802580001E001E101180210 +:1006A0001802E002E10162026201620262010502D7 +:1006B0000501080208015802580001E001E1011893 +:1006C000021802E002E101620262016202620105B7 +:1006D000020501590259015802580001E001E101E7 +:1006E00018021802E002E1015A025A015A025A01A4 +:1006F000620262015B025B015802580001E001E105 +:100700000118021802E002E1015A025A0162026273 +:10071000015F025F015D025D015802580001E001C6 +:10072000E10118021802E002E101620262015B02CB +:100730005B01060206015C025C015802580001E000 +:1007400001E10118021802E002E101620262015BAC +:10075000025B01610261015E025E01580258000104 +:10076000E001E10118021802E002E1015A025A0117 +:100770006202620160026001590259015802580088 +:1007800001E001E10118021802E002E101620262E7 +:10079000015B025B01060206016102610158025819 +:1007A0000001E001E10118021802E002E101620229 +:1007B00062015B025B01040204015B025B015802FF +:1007C000580001E001E10118021802E002E1015ABB +:1007D000025A016202620160026001620262015813 +:1007E00002580001E001E10118021802E002E101F3 +:1007F0006202620162026201070207015F025F0199 +:100800005802580001E001E10118021802E002E17B +:10081000015A025A015A025A0162026201600260E0 +:10082000015802580001E001E10118021802E0023B +:10083000E101620262015B025B0161026101090286 +:1008400009015802580001E001E10118021802E014 +:1008500002E1015A025A015A025A01590259010889 +:100860000208015802580001E001E10118021802D3 +:10087000E002E101620262015B025B010602060125 +:100880005E025E015802580001E001E10118021801 +:1008900002E002E101620262015B025B0104020408 +:1008A000015E025E015802580001E001E1011802F8 +:1008B0001802E002E101620262015B025B010502D3 +:1008C0000501590259015802580001E001E10118DF +:1008D000021802E002E1015A025A015A025A015C6E +:1008E000025C015B025B015802580001E001E1017A +:1008F00018021802E002E1015A025A016202620182 +:10090000600260015A025A015802580001E001E1F8 +:100910000118021802E002E101620262015B025B5F +:1009200001050205015F025F015802580001E00164 +:10093000E10118021802E002E101620262015B02B9 +:100940005B0105020501600260015802580001E0E8 +:1009500001E10118021802E002E101620262015B9A +:10096000025B01610261010802080158025800019E +:10097000E001E10118021802E002E10162026201F5 +:100980005B025B01060206015A025A015802580036 +:1009900001E001E10118021802E002E101620262D5 +:1009A000015B025B01040204016202620158025809 +:1009B0000001E001E10118021802E002E1015A021F +:1009C0005A01620262015F025F015F025F01580229 +:1009D000580001E001E10118021802E002E10162A1 +:1009E0000262015B025B0105020501040204015879 +:1009F00002580001E001E10118021802E002E101E1 +:100A0000620262015B025B01050205015D025D019C +:100A10005802580001E001E10118021802E002E169 +:100A200001620262015B025B01050205015E025E7A +:100A3000015802580001E001E10118021802E00229 +:100A4000E101620262015B025B010502050107022E +:100A500007015802580001E001E10118021802E004 +:100A600002E1015A025A01590259015D025D015C1D +:100A7000025C015802580001E001E101180218026D +:100A8000E002E101620262015B025B010502050115 +:100A90005B025B015802580001E001E101180218F5 +:100AA00002E002E1015A025A01590259015D025D58 +:100AB00001610261015802580001E001E1011802E0 +:100AC0001802E002E101620262015B025B010602C0 +:100AD0000601590259015802580001E001E10118CC +:100AE000021802E002E101620262015B025B0106A0 +:100AF0000206015B025B015802580001E001E101BE +:100B000018021802E002E10162026201620262015F +:100B1000090209015F025F015802580001E001E18A +:100B20000118021802E002E101620262015B025B4D +:100B30000161026101070207015802580001E0014A +:100B4000E10118021802E002E1015A025A016202B0 +:100B50006201600260015C025C015802580001E021 +:100B600001E10118021802E002E101620262015B88 +:100B7000025B010402040160026001580258000196 +:100B8000E001E10118021802E002E10162026201E3 +:100B90005B025B010402040161026101580258001A +:100BA00001E001E10118021802E002E101620262C3 +:100BB0000162026201050205015A025A01580258F7 +:100BC0000001E001E10118021802E002E101620205 +:100BD00062015B025B0106020601620262015802C9 +:100BE000580001E001E10118021802E002E1015A97 +:100BF000025A0159025901610261015B025B01580D +:100C000002580001E001E10118021802E002E101CE +:100C10005A025A01620262015F025F015E025E01D6 +:100C20005802580001E001E10118021802E002E157 +:100C3000015A025A0159025901610261015A025ACC +:100C4000015802580001E001E10118021802E00217 +:100C5000E1015A025A01620262015F025F015C0215 +:100C60005C015802580001E001E10118021802E09D +:100C700002E1015A025A01620262016002600161EE +:100C80000261015802580001E001E1011802180256 +:100C9000E002E101620262015B025B010602060101 +:100CA000600260015802580001E001E101180218D9 +:100CB00002E002E1015A025A01590259015D025D46 +:100CC000015D025D015802580001E001E1011802D6 +:100CD0001802E002E101620262015B025B01610253 +:100CE0006101610261015802580001E001E101184F +:100CF000021802E002E1015A025A01620262016036 +:100D00000260015D025D015802580001E001E1014D +:100D100018021802E002E101620262015B025B015B +:100D2000050205015A025A015802580001E001E18A +:100D30000118021802E002E101620262016202622D +:100D40000105020501610261015802580001E0013C +:100D5000E10118021802E002E1015A025A015A02A6 +:100D60005A01620262015C025C015802580001E013 +:100D700001E10118021802E002E101620262015B76 +:100D8000025B010502050108020801580258000132 +:100D9000E001E10118021802E002E1015A025A01E1 +:100DA000590259015D025D015B025B015802580066 +:100DB00001E001E10118021802E002E101620262B1 +:100DC000015B025B0105020501050205015802589D +:100DD0000001E001E10118021802E002E1015A02FB +:100DE0005A01590259015D025D01050205015802CF +:100DF000580001E001E10118021802E002E1015A85 +:100E0000025A0162026201600260015B025B0158EA +:100E100002580001E001E10118021802E002E101BC +:100E2000620262015B025B01040204015902590182 +:100E30005802580001E001E10118021802E002E145 +:100E4000015A025A015902590161026101620262AA +:100E5000015802580001E001E10118021802E00205 +:100E6000E101620262015B025B0105020501090208 +:100E700009015802580001E201570257016202625B +:100E800001620262010502050107020702E2000198 +:100E9000E20157025701620262015B025B016102DB +:100EA00061015C025C02E20001E201570257015A53 +:100EB000025A0162026201600260015E025E02E2A9 +:100EC0000001E20157025701620262015B025B010D +:100ED000610261015B025B02E20001E2015702571D +:100EE00001620262015B025B01610261015D025D00 +:100EF00002E20001E20157025701620262015B0255 +:100F00005B016102610106020602E20001E2015793 +:100F1000025701620262015B025B01040204015D8F +:100F2000025D02E20001E201570257015A025A0132 +:100F3000620262015F025F0109020902E20001E24E +:100F40000157025701620262015B025B01610261AB +:100F50000105020502E20001E201570257016202A7 +:100F600062015B025B010502050161026102E200B0 +:100F700001E20157025701620262015B025B0161FB +:100F800002610160026002E20001E20157025701C2 +:100F9000620262015B025B01060206015F025F0200 +:100FA000E20001E20157025701620262016202623D +:100FB000010502050106020602E20001E2015702F4 +:100FC0005701620262015B025B01040204015C02E0 +:100FD0005C02E20001E201570257015A025A015A2B +:100FE000025A016202620162026202E20001E2014F +:100FF00057025701620262015B025B0104020401B5 +:101000005F025F02E20001E201570257015A025AF1 +:10101000015A025A015E025E0162026202E20001AE +:10102000E20157025701620262015B025B010602A4 +:1010300006015D025D02E20001E201570257015A1A +:10104000025A015A025A016202620161026102E21D +:101050000001E201570257015A025A01620262017D +:101060005F025F0162026202E20001E20157025781 +:10107000015A025A01620262015F025F016002606E +:1010800002E20001E20157025701620262015B02C3 +:101090005B01610261015F025F02E20001E2015750 +:1010A000025701620262015B025B01610261015A47 +:1010B000025A02E20001E201570257015A025A01A4 +:1010C00062026201600260015F025F02E20001E20F +:1010D0000157025701620262015B025B016102611A +:1010E0000159025902E20001E201570257015A0276 +:1010F0005A01620262016002600160026002E20065 +:1011000001E20157025701620262015B025B016169 +:1011100002610104020402E20001E20157025701E8 +:10112000620262015B025B01050205010602060222 +:10113000E20001E20157025701620262015B025BB9 +:1011400001050205015C025C02E20001E2015702B6 +:1011500057015A025A01620262015F025F01610295 +:101160006102E20001E201570257015A025A015995 +:101170000259016102610159025902E20001E201D2 +:10118000570257015A025A015A025A016202620179 +:101190005D025D02E20001E2015702570162026254 +:1011A0000162026201050205015B025B02E20001CD +:1011B000E201570257016202620162026201050206 +:1011C000050108020802E20001E20157025701622C +:1011D000026201620262010502050159025902E23E +:1011E0000001E201570257015A025A015A025A01FC +:1011F000620262015B025B02E20001E201570257F8 +:10120000015A025A01620262015F025F015D025DE2 +:1012100002E20001E20157025701620262015B0231 +:101220005B01060206015C025C02E20001E201577A +:10123000025701620262015B025B01610261015EB1 +:10124000025E02E20001E201570257015A025A010E +:10125000620262016002600159025902E20001E289 +:101260000157025701620262015B025B010602063E +:101270000161026102E20001E201570257016202CC +:1012800062015B025B01040204015B025B02E2009B +:1012900001E201570257015A025A016202620160DB +:1012A00002600162026202E20001E201570257019C +:1012B0006202620162026201070207015F025F02CD +:1012C000E20001E201570257015A025A015A025A3A +:1012D000016202620160026002E20001E201570263 +:1012E0005701620262015B025B0161026101090256 +:1012F0000902E20001E201570257015A025A015A5B +:10130000025A015902590108020802E20001E201F1 +:1013100057025701620262015B025B01060206018D +:101320005E025E02E20001E20157025701620262C0 +:10133000015B025B01040204015E025E02E2000145 +:10134000E20157025701620262015B025B01050282 +:10135000050159025902E20001E201570257015A00 +:10136000025A015A025A015C025C015B025B02E212 +:101370000001E201570257015A025A01620262015A +:10138000600260015A025A02E20001E2015702576C +:1013900001620262015B025B01050205015F025FFF +:1013A00002E20001E20157025701620262015B02A0 +:1013B0005B010502050160026002E20001E20157E3 +:1013C000025701620262015B025B01610261010876 +:1013D000020802E20001E2015702570162026201C3 +:1013E0005B025B01060206015A025A02E20001E2B8 +:1013F0000157025701620262015B025B01040204B1 +:101400000162026202E20001E201570257015A0240 +:101410005A01620262015F025F015F025F02E20045 +:1014200001E20157025701620262015B025B0105A2 +:1014300002050104020402E20001E2015702570121 +:10144000620262015B025B01050205015D025D0251 +:10145000E20001E20157025701620262015B025B96 +:1014600001050205015E025E02E20001E20157028F +:101470005701620262015B025B010502050107027E +:101480000702E20001E201570257015A025A0159CC +:101490000259015D025D015C025C02E20001E201B1 +:1014A00057025701620262015B025B0105020501FE +:1014B0005B025B02E20001E201570257015A025A45 +:1014C00001590259015D025D0161026102E2000100 +:1014D000E20157025701620262015B025B010602F0 +:1014E000060159025902E20001E201570257016266 +:1014F0000262015B025B01060206015B025B02E223 +:101500000001E201570257016202620162026201B8 +:10151000090209015F025F02E20001E2015702577E +:1015200001620262015B025B016102610107020765 +:1015300002E20001E201570257015A025A01620217 +:101540006201600260015C025C02E20001E201579C +:10155000025701620262015B025B01040204016046 +:10156000026002E20001E2015702570162026201D9 +:101570005B025B010402040161026102E20001E21C +:10158000015702570162026201620262010502050F +:10159000015A025A02E20001E201570257016202B7 +:1015A00062015B025B010602060162026202E20066 +:1015B00001E201570257015A025A015902590161C9 +:1015C0000261015B025B02E20001E2015702570186 +:1015D0005A025A01620262015F025F015E025E020C +:1015E000E20001E201570257015A025A0159025919 +:1015F00001610261015A025A02E20001E20157024E +:1016000057015A025A01620262015F025F015C02E5 +:101610005C02E20001E201570257015A025A0162DC +:101620000262016002600161026102E20001E20106 +:1016300057025701620262015B025B01060206016A +:1016400060026002E20001E201570257015A025AA9 +:1016500001590259015D025D015D025D02E2000176 +:10166000E20157025701620262015B025B01610203 +:10167000610161026102E20001E201570257015A71 +:10168000025A0162026201600260015D025D02E2D3 +:101690000001E20157025701620262015B025B0135 +:1016A000050205015A025A02E20001E201570257FF +:1016B00001620262016202620105020501610261CA +:1016C00002E20001E201570257015A025A015A028E +:1016D0005A01620262015C025C02E20001E201570F +:1016E000025701620262015B025B0105020501080B +:1016F000020802E20001E201570257015A025A01B0 +:10170000590259015D025D015B025B02E20001E2E8 +:101710000157025701620262015B025B010502058B +:101720000105020502E20001E201570257015A02D7 +:101730005A01590259015D025D0105020502E200EC +:1017400001E201570257015A025A01620262016026 +:101750000260015B025B02E20001E20157025701F5 +:10176000620262015B025B01040204015902590238 +:10177000E20001E201570257015A025A0159025987 +:10178000016102610162026202E20001E2015702AC +:101790005701620262015B025B0105020501090259 +:1017A0000902E200055204520152035201000000F6 +:1017B0001E001B0018002F00010029001F0013004D +:1017C0000C003300E300E1002000090004003400B5 +:1017D000E2002A0021001A0008000600E00065006F +:1017E00022000A0012001900000049002E004A00E1 +:1017F00000004D00000002542E02025400002B0095 +:1018000000005E0023000B001600050000004C00E5 +:1018100024000D0011001000E2004B0025000E0016 +:101820001500360001002C0026000F0017003700BD +:1018300050002800270014000700520051004E00FD +:1018400035001C002D001D004F00000001000100AC +:1018500001000100010000001E02300238020100F8 +:10186000010001001F026414380030000100010073 +:101870002002240223022702010001000100241497 +:1018800025140100010001000100271426140100A5 +:101890000000010001000100000001000000010043 +:1018A0000100010000000100000001000100310002 +:1018B00021022D1400000100010064002502220213 +:1018C000010001000100640226023602010001004D +:1018D00001000100301437023830010035021F02C8 +:1018E0003102553002300100010001002D020100DB +:1018F0003D30000001000100010001000100000076 +:101900003A00010001000100010001003B0001005C +:1019100001000100010001003C0001000100010084 +:10192000010001003D000100010001000100010073 +:101930003E00010001000100000001004400010020 +:1019400000000100000001004500010000005300FC +:10195000000001003F000100010001000000010043 +:1019600040005F005C00590062000100410060001F +:101970005D005A0085000100420061005E005B00CE +:101980006300010043005500560057005800010055 +:101990006700540056005700580000000100010085 +:1019A00001000100010000004D30393001005B30C2 +:1019B00001000100513058303C303B300100010043 +:1019C0005030013014145D30010001004A305930AC +:1019D00008145C30010001004930573004300030F9 +:1019E00000000100053001000000010000000100BE +:1019F0000100010000000100000001004F305A30DA +:101A000037301E02000001004E3001004B30010053 +:101A100001000100483056305430533001000100BD +:101A20004C30010003303A30010001005230010017 +:101A3000010001000100010001000100010001009E +:101A40000100000001000100010001000100000090 +:101A500042302030343001000100010046302E3089 +:101A6000263033300100010045302D301E3001009A +:101A70000100010040302B30223001000100010044 +:101A80003F3025302C300100000001000100010032 +:101A90000000010000000100010001000000010041 +:101AA000000001004430233031301F3000000100BD +:101AB000433035302A302930010001003E302730D4 +:101AC0003030010001000100413028303230010087 +:101AD0000100010047300100213001000100010038 +:101AE0000100363024302F300100000001000100D9 +:101AF0000100010001000000010008301B3001005E +:101B000001000100010015300D301A300100010004 +:101B10000100143006300100010001000100123004 +:101B20000A3001000100010001000C3013300100F7 +:101B300000000100010001000000010000000100A0 +:101B400001000100000001000000010001000B3055 +:101B5000183007300000010001001C301130103037 +:101B60000100010001000E301730010001000100EA +:101B700001000F30193001000100010001000100D7 +:101B8000093001000100010001001D300100163084 +:101B9000010000000100010001000100010000003F +:101BA000010001000100010001000100010001002D +:101BB000010001000100010001000100010001001D +:101BC000010001000100010001000100010001000D +:101BD00001000100010001000000010001000100FE +:101BE00000000100000001000100010000000100F0 +:101BF00000000100010001000100010000000100DF +:101C000001000100010001000100010001000100CC +:101C100001000100010001000100010001000100BC +:101C200001000100010001000100010001000100AC +:101C3000010001000100010001000000010001009D +:101C4000010001000100000001000100010001008D +:101C5000010001000100010001000100010001007C +:101C6000010001000100010001000100010001006C +:101C7000010001000100010001000100010001005C +:101C8000000001000100010000000100000001004F +:101C9000010001000000010000000100010001003E +:101CA000010001000000010001000100010001002D +:101CB000010001000100010001000100010001001C +:101CC000010001000100010001000100010001000C +:101CD00001000100010001000100010001000100FC +:101CE00001000000010001000100010001000000EE +:101CF00001000100010001000100010001000100DC +:101D000001000100010001000100010001000100CB +:101D100001000100010001000100010001000100BB +:101D200001000100010001000000010001000100AC +:101D3000000001000000010001000100000001009E +:101D4000000001000100010001000100000001008D +:101D5000010001000100010001000100010001007B +:101D6000010001000100010001000100010001006B +:101D7000010001000100010001000100010001005B +:101D800001000100010001000100000016034500F0 +:101D9000720067006F0044006F007800200045006B +:101DA0005A00000016034500720067006F004400EF +:101DB0006F007800200045005A0000000403090469 +:101DC00009026D00040100A0FA09040000010301EA +:101DD0000100092111010001223F000705810308CC +:101DE000000A090401000103010200092111010098 +:101DF00001224D000705820308000A0904020001C0 +:101E000003000000092111010001223600070583AB +:101E10000308000A0904030001030000000921115E +:101E2000010001223900070584031000011201108E +:101E30000100000008EDFE0713010001020001058A +:101E4000010906A101050719E029E71500250195FB +:101E5000087501810205081901290595057501918B +:101E600002950175039101050719002977150025D1 +:101E700001957875018102C005010980A1018502E3 +:101E800016010026B7001A01002AB7007510950147 +:101E90008100C0050C0901A1018503160100269CE3 +:101EA000021A01002A9C02751095018100C00501EB +:101EB0000902A1010901A10005091901290515005F +:101EC00025019505750181029501750381010501C3 +:101ED000093009311581257F950275088106093879 +:101EE0001581257F950175088106050C0A380215B4 +:101EF00081257F950175088106C0C005010906A1ED +:101F000001050719E029E7150025019508750181EC +:101F100002950175088101050819012905950575C6 +:101F20000191029501750391010507190029FF151B +:101F30000025FF950675088100C000000000000024 +:101F40000000000000010204060A0F17202C3A4A84 +:101F50005D71879DB3C7DAE9F5FCFFFCF5E9DAC7E7 +:101F6000B39D87715D4A3A2C20170F0A06040201BF +:101F70000000000000000000000011241FBECFEF91 +:101F8000DAE0DEBFCDBF04B603FE24C08091F001CD +:101F90009091F101A091F201B091F3018730904B43 +:101FA000A740B04BB9F41092F0011092F1011092D9 +:101FB000F2011092F30114BE84B7877F84BF88E1D9 +:101FC0000FB6F89480936000109260000FBEE0E0BE +:101FD000FFE3099511E0A0E0B1E0E0E3F5E602C01F +:101FE00005900D92A433B107D9F711E0A4E3B1E055 +:101FF00001C01D92A03FB107E1F70E94BF180C94E9 +:1020000096320C940000FC018281811103C080E0B3 +:1020100090E008956E3561F42091340130913501DE +:102020002F5F3F4F217033273093350120933401C8 +:1020300020913401309135012115310509F024C179 +:10204000862F90E08E35910528F4FC01EA5AFF4F67 +:102050000C944B3280E090E0089582E797E1089578 +:1020600089E597E1089580E497E1089587E297E193 +:1020700008958EE097E1089585EF96E108958CED3F +:1020800096E1089583EC96E108958AEA96E1089531 +:1020900081E996E1089588E796E108958FE596E154 +:1020A000089586E496E108958DE296E1089584E12D +:1020B00096E108958BEF95E1089582EE95E10895FC +:1020C00089EC95E1089580EB95E1089587E995E124 +:1020D00008958EE795E1089585E695E108958CE4ED +:1020E00095E1089583E395E108958AE195E10895E6 +:1020F00081E095E1089588EE94E108958FEC94E1F4 +:10210000089586EB94E108958DE994E1089584E8BB +:1021100094E108958BE694E1089582E594E10895B1 +:1021200089E394E1089580E294E1089587E094E1E1 +:1021300008958EEE93E1089585ED93E108958CEB7B +:1021400093E1089583EA93E108958AE893E108957D +:1021500081E793E1089588E593E108958FE393E1A2 +:10216000089586E293E108958DE093E1089584EF68 +:1021700092E108958BED92E1089582EC92E1089549 +:1021800089EA92E1089580E992E1089587E792E172 +:1021900008958EE592E1089585E492E108958CE238 +:1021A00092E1089583E192E108958AEF91E1089523 +:1021B00081EE91E1089588EC91E108958FEA91E133 +:1021C000089586E991E108958DE791E1089584E607 +:1021D00091E108958BE491E1089582E391E10895FE +:1021E00089E191E1089580E091E1089587EE90E121 +:1021F00008958EEC90E1089585EB90E108958CE9C7 +:1022000090E1089583E890E108958AE690E10895C9 +:1022100081E590E1089588E390E108958FE190E1F0 +:10222000089586E090E108958DEE9FE0089584ED95 +:102230009FE008958BEB9FE0089582EA9FE0089568 +:1022400089E89FE0089580E79FE0089587E59FE093 +:1022500008958EE39FE0089585E29FE008958CE065 +:102260009FE0089583EF9EE008958AED9EE0089533 +:1022700081EC9EE0089588EA9EE008958FE89EE054 +:10228000089586E79EE008952130310509F0BFCE1C +:10229000862F90E08E35910528F4FC01EC54FF4F19 +:1022A0000C944B3280E090E0089584E39EE0089522 +:1022B00083E19EE0089582EF9DE0089581ED9DE029 +:1022C000089580EB9DE008958FE89DE008958EE6E7 +:1022D0009DE008958DE49DE008958CE29DE00895D1 +:1022E0008BE09DE008958AEE9CE0089589EC9CE0E7 +:1022F000089588EA9CE0089587E89CE0089586E6C2 +:102300009CE0089585E49CE0089584E29CE00895B3 +:1023100083E09CE0089582EE9BE0089581EC9BE0D1 +:10232000089580EA9BE008958FE79BE008958EE58D +:102330009BE008958DE39BE008958CE19BE0089578 +:102340008BEF9AE008958AED9AE0089589EB9AE080 +:10235000089588E99AE0089587E79AE0089586E568 +:102360009AE0089585E39AE0089584E19AE008955B +:1023700083EF99E0089582ED99E0089581EB99E06B +:10238000089580E999E008958FE699E008958EE434 +:1023900099E008958DE299E008958CE099E0089520 +:1023A0008BEE98E008958AEC98E0089589EA98E029 +:1023B000089588E898E0089587E698E0089586E40F +:1023C00098E0089585E298E0089584E098E0089503 +:1023D00083EE97E0089582EC97E0089581EA97E014 +:1023E000089580E897E008958FE597E008958EE3DB +:1023F00097E008958DE197E008958CEF96E00895B9 +:102400008BED96E008958AEB96E0089589E996E0D1 +:10241000089588E796E0089587E596E0089586E3B5 +:1024200096E0089585E196E0089584EF95E008959B +:1024300083ED95E0089582EB95E0089581E995E0BC +:10244000089580E795E008958FE495E008958EE281 +:1024500095E008958DE095E008958CEE94E0089560 +:102460008BEC94E008958AEA94E0089589E894E07A +:10247000089588E694E0089587E494E0089586E25C +:1024800094E0089585E094E0089584EE93E0089543 +:1024900083EC93E0089582EA93E0089581E893E065 +:1024A000089580E693E008958FE393E008958EE128 +:1024B00093E008958DEF92E008958CED92E00895F9 +:1024C0008BEB92E008958AE992E0089589E792E023 +:1024D000089588E592E008958BE897E1089585E5F1 +:1024E0009EE0089508956091B3017091B4018091C8 +:1024F000B5019091B6010E94A42956985E9825983E +:102500002D9826982E9827982F988330A9F028F494 +:10251000813051F0823069F012C0843041F0853052 +:1025200071F4259A2D9A08C0259A2D9A0895259A16 +:102530002D9A269A2E9A0895279A2F9A089556989A +:102540005E9808950C94731256985E9825982D986D +:1025500026982E9827982F988FEF90E090938900D7 +:102560008093880090938B0080938A0090938D00D5 +:1025700080938C00259A2D9A2FEF80E792E02150CE +:1025800080409040E1F700C00000269A2E9A2FEF7D +:1025900080E792E0215080409040E1F700C00000C9 +:1025A000279A2F9A2FEF80E792E0215080409040A9 +:1025B000E1F700C0000025982D982FEF80E792E00A +:1025C000215080409040E1F700C0000026982E98EE +:1025D0002FEF80E792E0215080409040E1F700C06B +:1025E000000027982F9856985E9825982D98269841 +:1025F0002E9827982F98089589EA8093800089E083 +:102600008093810024982C983F988AB18F748AB95E +:102610006E98479A8BB1806B8BB9769A0E94A41200 +:102620000C94721280E28093000180913601811136 +:102630000EC00E94611381E0809336012FEF83ED7D +:1026400090E3215080409040E1F700C0000080E41A +:102650000E9467138093000181112EC00E94911384 +:1026600080930001811128C00E9491138093000182 +:10267000811122C08FE30E94911380930001811188 +:102680001BC00E94891380E40E946713809300019D +:10269000811112C08CE00E9491138093000181117E +:1026A0000BC00E94911380930001811105C08FE33C +:1026B0000E949113809300010E9489138091000170 +:1026C00008951092B9008AE08093B800089594EAC2 +:1026D0009093BC009091BC0097FFFCCF9091B90003 +:1026E000987F983021F0903111F081E00895809327 +:1026F000BB0084E88093BC008091BC0087FFFCCFC6 +:102700008091B900887F883111F0803471F780E0C2 +:10271000089584E98093BC008091BC0084FDFCCFC7 +:1027200008958093BB0084E88093BC008091BC0036 +:1027300087FFFCCF9091B900987F81E0983209F42F +:1027400080E0089584E88093BC008091BC0087FFFE +:10275000FCCF8091BB00089580910001811115C0CC +:1027600080E40E9467138093000181110CC082E114 +:102770000E94911380930001811105C08FEF0E9488 +:102780009113809300010E94891384B1807F84B9E2 +:1027900085B1807F85B98AB1837F8AB98BB1837F08 +:1027A0008BB93E98469808950E94121380930001B9 +:1027B0000E94AC1380B38C7080BB81B3836F81BBEC +:1027C000E6E4F1E0A8E3B1E011921D9281E0E43586 +:1027D000F807D1F70C94FC12BF92CF92DF92EF92E0 +:1027E000FF920F931F93CF93DF9380910001882373 +:1027F00079F0809137018F5F80933701811108C094 +:102800000E94121380930001811102C00E94A41241 +:1028100008E311E0C0E0D0E0DD24D39482E0C82ECC +:10282000EE24E394F12CC73000F580910001811172 +:1028300062C080E40E94671380930001811112C07E +:1028400082E10E9491138093000181110BC0C701A6 +:102850000C2E01C0880F0A94EAF780950E9491130C +:10286000809300010E94891346C0CA30A1F028F469 +:10287000C83059F0C93061F005C0CC3089F070F033 +:10288000CD3089F0209A289810C0219A29980DC03F +:10289000229A2A980AC0239A2B9807C0529A01C0FC +:1028A000539A5B9802C03E9A4698E0EAEA95F1F79F +:1028B0008FB179995AC092E081708D25892B7C9BCC +:1028C00002C090E001C094E0892B7D9B02C090E0A3 +:1028D00001C098E0892B7E9B02C090E001C090E18E +:1028E000892B9FB19095991F9927991F9295990FC0 +:1028F000907E892B0FC08091000181114BC080E434 +:102900000E94671380930001882389F1B12C0E94F3 +:1029100089138B2DF8019081981719F08083C0924C +:1029200001010E94AC1321960F5F1F4FCE30D105DD +:1029300009F079CF80910101882371F18150809352 +:102940000101882339F08FE99FE00197F1F700C07A +:10295000000022C0A6E4B1E0E8E3F1E081918D93AC +:1029600091E0E634F907D1F717C090E0A5CF83E1F5 +:102970000E949113809300018111C8CF81E40E94CD +:102980006713809300018111C1CF0E94A213B82E5A +:10299000B094BDCF80E0BECF0E94A21281E0DF9153 +:1029A000CF911F910F91FF90EF90DF90CF90BF904C +:1029B0000895E82FF0E0EA5BFE4F808108950895C6 +:1029C0008B3B910578F4883A910540F5853A91055D +:1029D000D0F48430910508F0B1C08130910509F43C +:1029E000ADC06BC0803E910508F467C0883E91057C +:1029F00008F4A4C09C01205F31092031310508F0A2 +:102A00005CC090650895853A910509F459C0863AED +:102A1000910509F458C083E890E40895883A910537 +:102A200009F454C0893A910509F453C08A3A9105D2 +:102A300009F452C08B3A910509F451C08C3A9105C2 +:102A400009F450C08D3A910509F44FC0803B9105BF +:102A500009F44EC08E3A910509F44DC08F3A9105A4 +:102A600009F44CC0813B910509F44BC0823B9105B0 +:102A700009F44AC0833B910509F449C0843B9105A0 +:102A800009F448C0853B910509F447C0863B910590 +:102A900009F446C0873B910509F445C0883B910580 +:102AA00009F444C0893B910509F443C08A3B910570 +:102AB00009F042C08AE296E4089580E090E008952B +:102AC00081E890E4089582E890E4089582EE94E429 +:102AD000089589EE94E408958AEE94E4089585EBD0 +:102AE00094E4089586EB94E4089587EB94E40895C4 +:102AF0008CEC94E408958DEC94E4089583E895E4D7 +:102B000008958AE895E4089582E995E4089584E9B2 +:102B100095E4089581E296E4089583E296E40895A9 +:102B200084E296E4089585E296E4089586E296E4C8 +:102B3000089587E296E4089580E094E40895089566 +:102B400096E0799FF001112494E5899FE00DF11D35 +:102B50001124E60FF11DEE0FFF1FEC55F84E859185 +:102B600094910895880F991F8C5D994EFC01859171 +:102B700094910895880F991F8C55984EFC0185916A +:102B80009491089526E0729FF001112444E5849FFA +:102B9000E00DF11D1124E60FF11DEE0FFF1FEC55A6 +:102BA000F84E25913491C9019A9581159F4110F4F1 +:102BB000C9010895C90190528115904128F4C901B5 +:102BC0009F700E94BA150895C901905381159041D4 +:102BD00020F4C9019927906C0895211580E53807E4 +:102BE00069F40E9459239FEF24E34CE09150204068 +:102BF0004040E1F700C000000C949D2A213080E5A0 +:102C0000380731F48091CE0181608093CE01089520 +:102C1000C90190558115904108F050C0832F992724 +:102C20008F70992781309105D9F4A90143705527F8 +:102C300002C0880F991F4A95E2F79C68A90164E0D9 +:102C4000440F551F6A95E1F744275370842B952B49 +:102C500073E0220F331F7A95E1F7207633271DC0EA +:102C60008230910529F4922F8827816F906A089508 +:102C700083309105A9F4A9014370552781E090E0C4 +:102C800002C0880F991F4A95E2F79C6843E0220F23 +:102C9000331F4A95E1F7207E3770822B932B0895DE +:102CA0000497F1F4A9014370552781E090E002C038 +:102CB000880F991F4A95E2F79A68E8CFC9019057A3 +:102CC0008115904120F4C9019F7090620895C90157 +:102CD00090588115904120F4C9019F70906A089521 +:102CE000203E3105E0F4203C310558F52133310513 +:102CF00009F470C048F42932310509F464C02A325D +:102D0000310509F46EC074C029333105F1F0223861 +:102D10003105D9F02533310509F44EC069C0233E91 +:102D2000310589F138F4203E3105C1F0223E3105EC +:102D3000E1F05EC0263E310569F1273E3105A9F17B +:102D400057C0C9010E94B21508958091E10180FD2C +:102D500002C081FF4DC080EE90E04BC08091E10148 +:102D600080FFF9CF89E390E044C08091E10182FFC8 +:102D70000EC08091E10184FF03C080E090E039C083 +:102D800083EE90E036C08091E10182FFF2CF82EEC7 +:102D900090E02FC08091E10183FF0BC08091E101A1 +:102DA00084FDEBCF87EE90E024C08091E10183FFAA +:102DB000F5CF86EE90E01DC08091E10185FF07C050 +:102DC00089E290E016C08091E10185FFF9CF85E3AB +:102DD00090E00FC08091E10186FF07C08AE290E099 +:102DE00008C08091E10186FFF9CF81E390E001C046 +:102DF000C9010E94E014089508950C94FC16809176 +:102E000064010895CF93DF9300D01F92CDB7DEB752 +:102E10002091E701243019F523E029839B838A83DD +:102E20002093E9008FEF9091E800815095FD06C056 +:102E300095ED9A95F1F700008111F5CF8091E800AA +:102E400085FF0DC040E050E063E070E0CE010196E8 +:102E50000E946C198091E8008E778093E8000F90B3 +:102E60000F900F90DF91CF910895CF93DF9300D013 +:102E70001F92CDB7DEB72091E701243021F522E083 +:102E800029839B838A8383E08093E9008FEF90916D +:102E9000E800815095FD06C095ED9A95F1F7000088 +:102EA0008111F5CF8091E80085FF0DC040E050E032 +:102EB00063E070E0CE0101960E946C198091E800F9 +:102EC0008E778093E8000F900F900F90DF91CF9155 +:102ED00008952091E7012430F1F422E02093E900E5 +:102EE0002FEF3091E800215035FD06C035ED3A95C1 +:102EF000F1F700002111F5CF2091E80025FF0BC06C +:102F000040E050E065E070E00E946C198091E800BC +:102F10008E778093E8000895CF93DF93EC01809142 +:102F2000E701843009F046C090910C019923D9F053 +:102F300090910D019923B9F08093E9008FEF909162 +:102F4000E800815095FD06C095E19A95F1F70000E3 +:102F50008111F5CF8091E80085FF2CC040E050E062 +:102F600060E170E017C081E08093E9008FEF9091FD +:102F7000E800815095FD06C095ED9A95F1F70000A7 +:102F80008111F5CF8091E80085FF14C040E050E04A +:102F900068E070E0CE010E946C198091E8008E77A5 +:102FA0008093E80080E1FE01A4E5B1E001900D927C +:102FB0008A95E1F7DF91CF9108958091E601811123 +:102FC00009C00E94FE1A0E945B1B8091E20084608F +:102FD0008093E20008951092E601089508950C94FC +:102FE000C3300E94342A0E94C9300E94F81D0C94FC +:102FF000FD1642E061EC81E00E94781A42E061EC4B +:1030000082E00E94781A42E061EC83E00E94781A24 +:1030100042E161EC84E00C94781A8091E9018330FC +:1030200009F455C030F4813071F0823009F48EC05B +:1030300008958A3009F47AC08B3009F460C0893071 +:1030400009F09CC020C08091E801813A09F096C047 +:103050008091E800877F8093E8008091EC01909157 +:10306000ED01892B21F060E080E090E003C060E199 +:1030700084E591E070E00E94B5198091E8008B77BB +:103080008093E80008958091E801813209F076C0CC +:103090008091EC019091ED01009719F0039709F0F0 +:1030A0006DC08091E800877F8093E8008091E80000 +:1030B00082FD05C08091E7018111F8CF5FC080914A +:1030C000F100809364018091E8008B7753C0809178 +:1030D000E801813A09F052C08091EC019091ED0134 +:1030E000892B09F04BC08091E800877F8093E8002E +:1030F0008091E80080FFFCCF80910C0136C0809168 +:10310000E8018132D9F58091EC019091ED01892B94 +:10311000A9F58091E800877F8093E8000E94AD1AAE +:103120008091EA0180930C010C9459238091E8016D +:10313000813221F58091E800877F8093E8000E942A +:10314000AD1A8091EB018093650108958091E801AB +:10315000813AA1F48091E800877F8093E800809114 +:10316000E80080FFFCCF809165018093F1008091A1 +:10317000E8008E778093E8000C94AD1A089584B728 +:10318000877F84BF88E10FB6F89480936000109227 +:1031900060000FBE90E080E80FB6F8948093610065 +:1031A000909361000FBE0E94471E0E94FE1A0E946B +:1031B0005B1B8091E20084608093E20078940E941F +:1031C000D61D0E94491E82E091E00E94F31D0E94DC +:1031D000B1308091E701853069F40E94F729809130 +:1031E000E5018823B1F30E941F2A882391F30E94EE +:1031F0005619EFCF0E944F1EECCF292F33272330D3 +:103200003105A9F06CF42130310509F442C02230B7 +:10321000310509F043C08DE690E020EC3DE142C06D +:1032200021323105C9F02232310519F137C0992711 +:103230008130910541F08230910541F0892B71F583 +:10324000ECEBFDE105C0E4EAFDE102C0ECE8FDE1E4 +:10325000849190E09F0126C0643000F5E62FF0E0F5 +:10326000EE0FFF1FEE5DFE4F2081318189E090E07F +:1032700019C0643098F4E62FF0E0DF01AA0FBB1FFD +:10328000A65EBE4F2D913C91EA5EFE4F808190E09C +:1032900009C082E190E02DE23EE104C080E090E0D0 +:1032A00020E030E0FA0131832083089580E189BD78 +:1032B00082E189BD09B400FEFDCF8091D8008F7DE9 +:1032C0008093D8008091E00082608093E00080913C +:1032D000E00081FDFCCF0895CF92DF92EF92FF9244 +:1032E0000F931F93CF93DF937C018B01EA010E9420 +:1032F000CE1A811131C0209731F088819981081B45 +:10330000190BE80EF91EC12CD12C0115110519F16C +:103310008091E80085FD14C08091E8008E7780934D +:10332000E800209741F0888199818C0D9D1D99833B +:10333000888385E011C00E94CE1A882331F30CC027 +:10334000F70181917F018093F10001501109FFEF96 +:10335000CF1ADF0ADACF80E0DF91CF911F910F9172 +:10336000FF90EF90DF90CF9008952091EE01309183 +:10337000EF012617370748F06115710539F42091E0 +:10338000E8002E772093E80001C0B901FC0120E09D +:1033900061157105B9F18091E701882309F440C0F6 +:1033A000853009F43FC08091E80083FD3DC08091E5 +:1033B000E80082FF06C08091E80082FF26C080E01E +:1033C00008958091E80080FFE3CF2091F300809181 +:1033D000F20090E0922B6115710551F08830910553 +:1033E00038F421912093F100615071090196F3CFD7 +:1033F00021E0089709F020E08091E8008E77809323 +:10340000E800C6CF2111C7CFD6CF8091E70188232E +:1034100039F0853039F08091E80083FFCCCF04C0CB +:1034200082E0089583E0089581E008952091EE01FF +:103430003091EF012617370748F06115710539F40F +:103440002091E8002E772093E80001C0B901FC012B +:1034500020E061157105C1F18091E701882309F42D +:1034600041C0853009F440C08091E80083FD3EC032 +:103470008091E80082FF06C08091E80082FF27C0AB +:1034800080E008958091E80080FFE3CF2091F30071 +:103490008091F20090E0922B6115710559F088300F +:1034A000910540F424912093F10031966150710907 +:1034B0000196F2CF21E0089709F020E08091E80022 +:1034C0008E778093E800C5CF2111C6CFD5CF8091EC +:1034D000E701882339F0853039F08091E80083FFD7 +:1034E000CBCF04C082E0089583E0089581E0089581 +:1034F000982F973058F59093E900981739F070910C +:10350000EC002091ED005091F00003C0242F762FA5 +:1035100050E021FF19C03091EB003E7F3093EB006B +:103520003091ED003D7F3093ED003091EB00316044 +:103530003093EB007093EC002093ED005093F0007B +:103540002091EE0027FF07C09F5FD3CF8F7080933D +:10355000E90081E0089580E008958091E80187FD09 +:1035600005C08091E80080FF0EC012C08091E80085 +:1035700082FD05C08091E7018111F8CF0895809107 +:10358000E8008B7708C08091E7018111EACF0895A8 +:103590008091E8008E778093E80008958091E400A0 +:1035A0009091E50045E62091EC0020FF21C020919C +:1035B000E80020FD21C02091E701222389F0253079 +:1035C00089F02091EB0025FD0FC02091E40030919F +:1035D000E5002817390739F3415041F0C901E3CF1D +:1035E00082E0089583E0089581E0089584E00895DD +:1035F0002091E80022FFDFCF80E008950E946C1B3D +:103600000E94741BE0EEF0E0808181608083E8ED31 +:10361000F0E080818F77808319BCA7EDB0E08C91BA +:103620008E7F8C9380818F7E80831092E601089537 +:103630000F931F93CF93DF930E946C1B0E94741B08 +:10364000C8EDD0E088818F778883888180688883FF +:1036500088818F7D888319BC1092E7011092E30165 +:103660001092E5011092E40100EE10E0F801808173 +:103670008B7F808388818160888342E060E080E086 +:103680000E94781AE1EEF0E080818E7F8083E2EE86 +:10369000F0E0808181608083808188608083F80190 +:1036A00080818E7F8083888180618883DF91CF9144 +:1036B0001F910F910895E8EDF0E080818F7E808367 +:1036C000E7EDF0E080818160808384E082BF81E06B +:1036D0008093E6010C94181BE8EDF0E080818E7F6A +:1036E00080831092E20008951092DA001092E100B7 +:1036F00008951F920F920FB60F9211242F933F93AC +:103700004F935F936F937F938F939F93AF93BF93E9 +:10371000EF93FF938091E10082FF0BC08091E20064 +:1037200082FF07C08091E1008B7F8093E1000E94BF +:10373000D51D8091DA0080FF1FC08091D80080FFE6 +:103740001BC08091DA008E7F8093DA008091D900CF +:1037500080FF0DC080E189BD82E189BD09B400FE12 +:10376000FDCF81E08093E7010E94DD1705C019BC01 +:103770001092E7010E94EB178091E10080FF19C0D1 +:103780008091E20080FF15C08091E2008E7F8093DF +:10379000E2008091E20080618093E2008091D80095 +:1037A00080628093D80019BC85E08093E7010E9475 +:1037B000EF178091E10084FF30C08091E20084FF28 +:1037C0002CC080E189BD82E189BD09B400FEFDCF36 +:1037D0008091D8008F7D8093D8008091E1008F7E0A +:1037E0008093E1008091E2008F7E8093E2008091DF +:1037F000E20081608093E2008091E301882311F070 +:1038000084E007C08091E30087FF02C083E001C02D +:1038100081E08093E7010E94F1178091E10083FF2E +:1038200029C08091E20083FF25C08091E100877F5D +:103830008093E10082E08093E7011092E3018091A0 +:10384000E1008E7F8093E1008091E2008E7F809383 +:10385000E2008091E20080618093E20042E060E05B +:1038600080E00E94781A8091F00088608093F000D8 +:103870000E94EE17FF91EF91BF91AF919F918F91B1 +:103880007F916F915F914F913F912F910F900FBE5C +:103890000F901F9018951F920F920FB60F92112440 +:1038A0002F933F934F935F936F937F938F939F9348 +:1038B000AF93BF93CF93EF93FF93C091E900CF7085 +:1038C0008091EC001092E9008091F000877F809356 +:1038D000F00078940E94871C1092E9008091F0001B +:1038E00088608093F000C093E900FF91EF91CF9141 +:1038F000BF91AF919F918F917F916F915F914F9108 +:103900003F912F910F900FBE0F901F9018951F930E +:10391000CF93DF93CDB7DEB7AA970FB6F894DEBF8B +:103920000FBECDBFE8EEF1E08091F100819321E080 +:10393000E03FF207C9F70E940D188091E80083FF6D +:103940001CC12091E8013091E901832F90E08A3079 +:10395000910508F012C1FC01EE5EFE4F0C944B3253 +:10396000203881F0223809F008C18091EC018F7075 +:103970008093E9008091EB0085FB882780F9109205 +:10398000E90006C08091E4019091E5019111826007 +:103990009091E800977F9093E8008093F100109257 +:1039A000F100C5C0822F8D7F09F0E7C0222319F0F6 +:1039B000223061F0E2C08091EA01813009F0DDC07F +:1039C000333009F080E08093E50128C08091EA015E +:1039D000811124C02091EC012F7009F4CEC02093F6 +:1039E000E9008091EB0080FF19C08091EB0033303B +:1039F00011F4806211C080618093EB0081E090E05F +:103A0000022E01C0880F0A94EAF78093EA00109210 +:103A1000EA008091EB0088608093EB001092E9004F +:103A20008091E800877F86C02111A7C01091EA012C +:103A30001F778091E3008078812B8093E300809151 +:103A4000E800877F8093E8000E94AD1A8091E8002B +:103A500080FFFCCF8091E30080688093E300112316 +:103A600011F083E001C082E08093E70186C0205816 +:103A7000223008F082C08091EA019091EB018C3DE8 +:103A800023E0920779F583E08A838AE289834FB73E +:103A9000F894DE01139620E03EE051E2E32FF0E0DF +:103AA00050935700E49120FF03C0E295EF703F5F11 +:103AB000EF708E2F90E0EA3010F0C79601C0C096EC +:103AC0008D939D932F5F243149F74FBF8091E8007C +:103AD000877F8093E8006AE270E0CE0101960E9441 +:103AE000B51914C0AE014F5F5F4F6091EC010E94A9 +:103AF000FD18009709F441C02091E800277F20932A +:103B0000E800BC0189819A810E94161A8091E80020 +:103B10008B778093E80031C0203879F58091E800F8 +:103B2000877F8093E8008091E3018093F10080918A +:103B3000E8008E778093E8000E94AD1A1EC0211124 +:103B40001CC09091EA019230C0F48091E800877F18 +:103B50008093E8009093E3010E94AD1A8091E30105 +:103B6000811104C08091E30087FF02C084E001C09E +:103B700081E08093E7010E94F9178091E80083FFBC +:103B80000AC08091E800877F8093E8008091EB0075 +:103B900080628093EB00AA960FB6F894DEBF0FBE4A +:103BA000CDBFDF91CF911F9108950895CF9380915C +:103BB000E7018823B1F08091E9008F709091EC00CB +:103BC00090FF02C090E801C090E0C92FC82B10926E +:103BD000E9008091E80083FD0E94871CCF70C093AC +:103BE000E900CF91089590936B0180936A01089545 +:103BF000E0916A01F0916B01309721F00190F08122 +:103C0000E02D099480E00895E0916A01F0916B0144 +:103C1000309721F00280F381E02D09940895E0911E +:103C20006A01F0916B01309721F00480F581E02D5D +:103C300009940895209168013091690182179307D2 +:103C400071F09093690180936801E0916A01F091AD +:103C50006B01309721F00680F781E02D09940895DB +:103C600020916601309167018217930771F090935C +:103C7000670180936601E0916A01F0916B013097D2 +:103C800021F00084F185E02D0994089508950C94A5 +:103C9000461E0E943A2A0E94D4130C94002BCF9205 +:103CA000DF92EF92FF920F931F93CF93DF93CDB7E5 +:103CB000DEB72B970FB6F894DEBF0FBECDBF0E94C4 +:103CC000EC133DE6E32E31E0F32E00E010E0C02ED1 +:103CD000802F0E94D914F701D1907F01D826B1F42A +:103CE0000F5F1F4F0E30110591F78FEF89838A8385 +:103CF0001B820E94432A8160782F9D838C83498197 +:103D00005A816B818D810E94F21E41C09091CE013B +:103D100091FF04C08B870E94DF148B8520E030E088 +:103D20004D2D50E0922FBA01022E02C07595679575 +:103D30000A94E2F760FF25C02E83CF82EE24E3943D +:103D4000F12C02C0EE0CFF1C9A95E2F790E08E2158 +:103D50009F2121E0892B09F420E028870E94432A33 +:103D60008160782F9A8789874E815F8168858A85EF +:103D70000E94F21EF801E359FE4F80818E25808358 +:103D800006C02F5F3F4F2630310561F6A9CF0E9454 +:103D9000E42D10916C010E94F81D1817A1F00E94EB +:103DA000F81D80936C012B960FB6F894DEBF0FBE02 +:103DB000CDBFDF91CF911F910F91FF90EF90DF90DA +:103DC000CF900C94FD162B960FB6F894DEBF0FBE65 +:103DD000CDBFDF91CF911F910F91FF90EF90DF90BA +:103DE000CF900895CF93DF93CDB7DEB72B970FB663 +:103DF000F894DEBF0FBECDBF4F83588769877A879F +:103E00008B87DE01119686E0FD0111928A95E9F714 +:103E100085E0FE01379601900D928A95E1F7498180 +:103E20005A816B817C818D819E810E9425262B96F3 +:103E30000FB6F894DEBF0FBECDBFDF91CF910895CE +:103E4000CF93C82F882309F4C1C0823859F40E9447 +:103E5000F81D81FDBBC089E30E94C4280E947E2911 +:103E600089E30CC0833879F40E94F81D80FDAEC050 +:103E700083E50E94C4280E947E2983E50E940429CC +:103E8000CF910C947E29843859F40E94F81D82FD4C +:103E90009DC087E40E94C4280E947E2987E4EECF5B +:103EA0008CEF8C0F813A48F48C2F0E9419308111CD +:103EB0008DC08C2F0E94C428E3CF80E28C0F883005 +:103EC00048F4C77081E001C0880FCA95EAF70E94E4 +:103ED0004529D6CF8BE58C0F833078F4C53A29F08D +:103EE000C63A31F482E890E005C081E890E002C073 +:103EF00083E890E0CF910C941A1E88E58C0F8331F3 +:103F000008F064C0C83A39F1C93A41F1CA3A49F1F6 +:103F1000CB3A51F1CC3A59F1CD3A61F1C03B69F15C +:103F2000CE3A71F1CF3A79F1C13B81F1C23B89F1CF +:103F3000C33B91F1C43B99F1C53BA1F1C63BA9F14B +:103F4000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5A7 +:103F50008AE292E038C082EE90E035C089EE90E0CF +:103F600032C08AEE90E02FC085EB90E02CC086EB4B +:103F700090E029C087EB90E026C08CEC90E023C055 +:103F80008DEC90E020C083E891E01DC08AE891E0CC +:103F90001AC082E991E017C084E991E014C081E27F +:103FA00092E011C083E292E00EC084E292E00BC086 +:103FB00085E292E008C086E292E005C087E292E0E6 +:103FC00002C080E090E0CF910C94301ECF91089514 +:103FD000882309F44BC0823859F40E94F81D81FFF0 +:103FE00045C089E30E94C4280E947E2989E30CC051 +:103FF000833871F40E94F81D80FF38C083E50E9469 +:10400000C4280E947E2983E50E9404290C947E29FD +:10401000843859F40E94F81D82FF28C087E40E946A +:10402000C4280E947E2987E4EFCF9CEF980F913A35 +:1040300058F390E2980F983050F4877091E001C0E7 +:10404000990F8A95EAF7892F0E944B29DFCF9BE5CC +:10405000980F933020F480E090E00C941A1E885A58 +:10406000833120F480E090E00C94301E0895882382 +:1040700021F00E9445290C947E290895882321F07F +:104080000E944B290C947E290895CF92DF92EF92E3 +:10409000FF920F931F93CF93DF93CDB7DEB728978F +:1040A0000FB6F894DEBF0FBECDBF8C0185E0F801DE +:1040B000DE01119601900D928A95E1F7F801408199 +:1040C0003181F280258122952F7083819481892B03 +:1040D00031F03F3F31F481E04F3F19F403C081E0FC +:1040E00001C080E080FDC4C249833A8389819A81FE +:1040F0002F830E9482289E8388870E9481280E94A5 +:1041000054274E81E42FE295EF70F0E0E45EFE4F1D +:104110002F8168850C944B32842F807F142F1F7061 +:10412000882311F01295107FFF2059F0112309F414 +:1041300054C2812F68870E9455290E947E29688574 +:104140004CC2862F0E94E81F112309F491C2812FCF +:104150000E945B2928960FB6F894DEBF0FBECDBF34 +:10416000DF91CF911F910F91FF90EF90DF90CF9053 +:104170000C947E29342F307F842F8F70303211F0D1 +:104180008295807F662319F0613019F12BC0FF20E2 +:10419000B1F0222309F493C1213009F090C128968F +:1041A0000FB6F894DEBF0FBECDBFDF91CF911F9148 +:1041B0000F91FF90EF90DF90CF900C946529222310 +:1041C00019F0213009F454C28E830E9468298E812F +:1041D00089C1FF2021F0223008F04AC270C12111AC +:1041E00047C280C1FF2021F0222309F468C1F5C134 +:1041F000222309F477C105C2242F26952695237022 +:1042000030E02115310521F021303105C9F030C2EF +:10421000FF2021F0862F942F937002C080E090E061 +:1042200028960FB6F894DEBF0FBECDBFDF91CF91B9 +:104230001F910F91FF90EF90DF90CF900C941A1E7A +:10424000FF2021F0862F942F937002C080E090E031 +:1042500028960FB6F894DEBF0FBECDBFDF91CF9189 +:104260001F910F91FF90EF90DF90CF900C94301E34 +:10427000862FFF2019F00E94EC2C02C00E94542DC2 +:1042800028960FB6F894DEBF0FBECDBFDF91CF9159 +:104290001F910F91FF90EF90DF90CF900C94D92D4C +:1042A000842F837009F076C0F110E2C1262F229589 +:1042B00026952770220F220F862F8F70C82ED12CA3 +:1042C000E12CF12C022E04C0CC0CDD1CEE1CFF1CDA +:1042D0000A94D2F764FF10C06FE070E080E090E0D5 +:1042E00004C0660F771F881F991F2A95D2F7609523 +:1042F00070958095909503C060E070E0CB01242F0D +:10430000269526952370422F50E042305105D1F07A +:104310004330510559F16C297D298E299F2941305F +:10432000510541F128960FB6F894DEBF0FBECDBF00 +:10433000DF91CF911F910F91FF90EF90DF90CF9081 +:104340000C9479276C297D298E299F2928960FB6F0 +:10435000F894DEBF0FBECDBFDF91CF911F910F91BB +:10436000FF90EF90DF90CF900C9493270E947927D5 +:10437000C701B60128960FB6F894DEBF0FBECDBFB9 +:10438000DF91CF911F910F91FF90EF90DF90CF9031 +:104390000C945F27FF2019F0842F817001C086954F +:1043A000882309F465C1262F229526952770220FB0 +:1043B000220F862F8F70C82ED12CE12CF12C022ECB +:1043C00004C0CC0CDD1CEE1CFF1C0A94D2F764FF69 +:1043D00010C06FE070E080E090E004C0660F771FCF +:1043E000881F991F2A95D2F76095709580959095B2 +:1043F00003C060E070E0CB01242F26952695237042 +:10440000422F50E042305105D1F04330510559F16F +:104410006C297D298E299F294130510541F128962B +:104420000FB6F894DEBF0FBECDBFDF91CF911F91C5 +:104430000F91FF90EF90DF90CF900C944D286C2956 +:104440007D298E299F2928960FB6F894DEBF0FBECE +:10445000CDBFDF91CF911F910F91FF90EF90DF9033 +:10446000CF900C9467280E944D28C701B60128966A +:104470000FB6F894DEBF0FBECDBFDF91CF911F9175 +:104480000F91FF90EF90DF90CF900C943328603F16 +:10449000C9F118F4603E50F49BC0623F09F460C05B +:1044A00008F44AC0633F09F46FC092C0162F1F7012 +:1044B000842F8F71FF2099F00E94CC27812F28969E +:1044C0000FB6F894DEBF0FBECDBFDF91CF911F9125 +:1044D0000F91FF90EF90DF90CF900C9437200E94C7 +:1044E000ED27812F28960FB6F894DEBF0FBECDBF03 +:1044F000DF91CF911F910F91FF90EF90DF90CF90C0 +:104500000C943E20FF20A1F02111B2C0842F8F71A6 +:1045100028960FB6F894DEBF0FBECDBFDF91CF91C6 +:104520001F910F91FF90EF90DF90CF900C94122885 +:10453000223008F09DC0EACFFF20A1F0842F8F71B8 +:1045400028960FB6F894DEBF0FBECDBFDF91CF9196 +:104550001F910F91FF90EF90DF90CF900C94CC279C +:10456000FF2061F3842F8F7128960FB6F894DEBF79 +:104570000FBECDBFDF91CF911F910F91FF90EF90B4 +:10458000DF90CF900C94ED27FF2091F0842F8F7156 +:1045900028960FB6F894DEBF0FBECDBFDF91CF9146 +:1045A0001F910F91FF90EF90DF90CF900C94B72761 +:1045B00028960FB6F894DEBF0FBECDBFDF91CF9126 +:1045C0001F910F91FF90EF90DF90CF900C94AD274B +:1045D000FF20A1F0222309F4B1CF862F28960FB631 +:1045E000F894DEBF0FBECDBFDF91CF911F910F9129 +:1045F000FF90EF90DF90CF900C94201F222309F4BE +:10460000B1CF862F28960FB6F894DEBF0FBECDBF70 +:10461000DF91CF911F910F91FF90EF90DF90CF909E +:104620000C94E81F4F70C8010E94031028960FB623 +:10463000F894DEBF0FBECDBFDF91CF911F910F91D8 +:10464000FF90EF90DF90CF900C94D2264F70C8016E +:1046500028960FB6F894DEBF0FBECDBFDF91CF9185 +:104660001F910F91FF90EF90DF90CF900C949F15CA +:1046700028960FB6F894DEBF0FBECDBFDF91CF9165 +:104680001F910F91FF90EF90DF90CF9008950E94BF +:1046900062290E9437290E947E290E94852E0E944D +:1046A000D92D80E090E00E941A1E80E090E00C94EA +:1046B000301E0E9452290C9447230E948228292FE1 +:1046C00022952F7030E02C3031054CF42A30310522 +:1046D0006CF4225031092230310590F407C02C309F +:1046E000310551F02F30310539F00AC0803E10F00D +:1046F000803F31F481E0089593FB882780F9089585 +:1047000080E00895CF93DF9300D000D01F92CDB703 +:10471000DEB70F900F900F900F900F90DF91CF9119 +:104720000895CF93DF9300D000D000D0CDB7DEB78F +:1047300026960FB6F894DEBF0FBECDBFDF91CF91A6 +:1047400008951F93CF93DF93C0917B0116E0809172 +:104750007C01C81799F0D0E01C9FF0011D9FF00D5F +:104760001124E358FE4F408151816281738184811D +:1047700095810E9491232196C770E9CFDF91CF9157 +:104780001F9108954091AD015091AE016091AF012C +:104790007091B0018091B1019091B2010C9491237C +:1047A000CF938091B20182958F7009F05FC08091A4 +:1047B000AF01882309F45AC020917B01A0917C01AC +:1047C0006091AD017091AE018091B0019091B10105 +:1047D00031E06F3F09F030E0B32FC6E02A1709F44B +:1047E00045C0009721F07F3F21F44B2F03C041E0EB +:1047F00001C040E030E040FD35C0C29FF001C39FE2 +:10480000F00D1124E358FE4F418174132BC04081F9 +:10481000641328C04281411125C043815481481747 +:10482000590710F441505109481B590B483C510598 +:10483000C8F48091B2018F7080618093B20186E0EC +:10484000829FF001839FF00D1124EE57FE4F80816F +:104850008F70806180838DEA91E00E944520CF9126 +:104860000C94A1232F5F3F4F2770B8CFCF910895AD +:10487000CF92DF92EF92FF920F931F93CF93DF932C +:10488000CDB7DEB762970FB6F894DEBF0FBECDBFCF +:104890008C0185E0F801DE011D9601900D928A954C +:1048A000E1F7D8014C9111965C91119712966C9199 +:1048B00012971396ED90FC9014977091AD01E091D2 +:1048C000AE012091B0013091B1012115310531F0D7 +:1048D000EF3F31F481E07F3F19F403C081E001C074 +:1048E00080E0B82FB170CB2E80FD6CC1D090AF01AD +:1048F000DD2009F4F5C0F091B201E216F30638F0BC +:10490000C701821B930B883C910548F09BC0209502 +:1049100030952E0D3F1D283C310508F093C08F2F98 +:10492000807F09F052C0E51314C0741312C0D62E54 +:1049300061110FC0FF70F061F093B2010E94C223B9 +:104940008DEA91E00E9445208091B201F8018583B3 +:104950006CC1EF2831F05F3F31F481E04F3F19F433 +:1049600003C081E001C080E080FD03C081E08627B4 +:1049700001C080E0F82FF170FF2E80FF1CC08091F5 +:104980007B0120917C0136E0821709F428C190E078 +:10499000389FF001399FF00D1124E358FE4F7181CB +:1049A000571306C07081471303C07281671303C099 +:1049B00001968770E9CFD62E662309F436C180911F +:1049C000B20181608093B20153C0E51308C0741333 +:1049D00006C0611104C0D8011596FC93AEC04D8786 +:1049E0005E878D859E856A8B0E945D236A898823F8 +:1049F00029F1D62E662311F12091B201822F8295E2 +:104A00008F7090E002970CF460C08091AD0190919E +:104A1000AE0198878F831986FB86EA862C87CE01A4 +:104A2000079651C0E51731F14D875E878D859E85CC +:104A30006A8B0E945D236A8981112EC0C8010E9481 +:104A40004520A4C08F2F807F69F77E2DF98AE88AE0 +:104A500089890E9482238DEA91E00E944520EDEA37 +:104A6000F1E086E0DF011D928A95E9F70E94C223FA +:104A7000D12CDBC07413D8CF6111D6CFD8011596D5 +:104A8000FC93C8010E944520EDEAF1E086E0DF01D9 +:104A90001D928A95E9F7C9C0D62E662379F2209136 +:104AA000B201822F82958F7090E0029774F080910E +:104AB000AD019091AE019A8389831B82FD82EC82C5 +:104AC0002E83CE0101960E94452086E0F801ADEAD2 +:104AD000B1E001900D928A95E1F70E94D0236FC05A +:104AE000E216F30628F0C701821B930B9C0104C059 +:104AF000209530952E0D3F1D283C310508F052C001 +:104B0000D62E662309F49ACFE5132CC074132AC05D +:104B10008091B20180FD1DC0982F92959F70C9F0C1 +:104B2000D80115968C9315979F3039F09F5F929519 +:104B3000907F8F70892B15968C93C8010E94452019 +:104B400086E0F801ADEAB1E001900D928A95E1F7B7 +:104B500036C086E0F801ADEAB1E001900D928A9589 +:104B6000E1F763C04D875E878D859E850E945D233A +:104B7000882379F086E0F801ADEAB1E001900D926A +:104B80008A95E1F70E94D0230E94C223DD24D394AA +:104B90004CC08091B20181608093B201C8010E9433 +:104BA000452043C07E2DF98AE88A89890E948223A4 +:104BB000EDEAF1E086E0DF011D928A95E9F70E94B7 +:104BC000C22333C0662309F439CF4D875E878D85B4 +:104BD0009E850E945D23882309F430CFCBCF4D877B +:104BE0005E878D859E850E948228292F22952F70B1 +:104BF00030E0223031052CF49F7041F0811106C065 +:104C00000CC0243031052CF49F7049F4805E88304C +:104C100020F0C8010E944520CF2CDC2C06C0D80112 +:104C200015969C91907F91F7F8CF8D2D62960FB6D7 +:104C3000F894DEBF0FBECDBFDF91CF911F910F91D2 +:104C4000FF90EF90DF90CF9008951F93CF93DF9365 +:104C5000CDB7DEB72C970FB6F894DEBF0FBECDBF31 +:104C60004F83588769877A878B879C87CE01079601 +:104C70000E9438248823C1F02F8138858A859B853E +:104C8000892B31F03F3F11F080E003C02F3FE1F767 +:104C900081E0811147C04F81588569857A858B8570 +:104CA0009C850E9491233EC086E0FE013796DE017E +:104CB000119601900D928A95E1F7FF81E8854A856A +:104CC0005B854115510531F0EF3F31F481E0FF3F45 +:104CD00019F403C081E001C080E080FD23C0209171 +:104CE0007C0130E0C90101968770992760917B01B2 +:104CF00070E086179707F1F1F983EA835D834C83AF +:104D000096E0929FD001939FB00D1124A358BE4FFF +:104D1000FE01319601900D929A95E1F780937C0106 +:104D20000E94A12316E080917B0190917C0189175C +:104D300079F1189FC001112483589E4F0E94382496 +:104D4000882331F1E0917B011E9FF0011124E3588B +:104D5000FE4F4081518162817381848195810E94DF +:104D6000912380917B0190E0019687709927809331 +:104D70007B01D9CF0E94592310927C0110927B01B4 +:104D8000EDEAF1E086E0DF011D928A95E9F7CACFEE +:104D90002C960FB6F894DEBF0FBECDBFDF91CF913A +:104DA0001F910895EF92FF920F931F93CF93DF937C +:104DB0009C01009709F471C0F12CEE24E394E90101 +:104DC0002196F9018491843740F4843008F056C06C +:104DD000813081F0823021F160C0853709F449C00B +:104DE000C0F19CE7980F903708F057C08F770E946A +:104DF000E81F46C089010E5F1F4FFE01849190E2BB +:104E0000980F983050F48770FE2D01C0FF0F8A95DF +:104E1000EAF78F2F0E94552915C00E94201F14C049 +:104E200089010E5F1F4FFE01849190E2980F983028 +:104E300068F48770FE2D01C0FF0F8A95EAF78F2F67 +:104E40000E945B290E947E29E8011AC00E94E81F87 +:104E5000FBCF2E5F3F4FFE01C491CC2341F08FE981 +:104E60009FE00197F1F700C00000C150F6CFE901C3 +:104E700007C0FE01F490E901229602C00E94201FA3 +:104E80008F2D882341F0EFE9FFE03197F1F700C063 +:104E900000008150F6CF9E0192CFDF91CF911F91FC +:104EA0000F91FF90EF90089508956093B70170936C +:104EB000B8018093B9019093BA010C9447230F93E2 +:104EC0001F930091B7011091B8012091B901309161 +:104ED000BA01062B172B282B392B0093B7011093FF +:104EE000B8012093B9013093BA011F910F910C942E +:104EF00047230F931F930091B7011091B8012091A0 +:104F0000B9013091BA0106231723282339230093CE +:104F1000B7011093B8012093B9013093BA011F91E2 +:104F20000F910C9447230F931F930091B701109199 +:104F3000B8012091B9013091BA0106271727282717 +:104F400039270093B7011093B8012093B90130932A +:104F5000BA011F910F910C9447231092B301109244 +:104F6000B4011092B5011092B6010C94472341E0B0 +:104F700050E060E070E004C0440F551F661F771FCB +:104F80008A95D2F74093B3015093B4016093B50171 +:104F90007093B6010C94472341E050E060E070E06C +:104FA00004C0440F551F661F771F8A95D2F7809162 +:104FB000B3019091B401A091B501B091B601842BD9 +:104FC000952BA62BB72B8093B3019093B401A0939C +:104FD000B501B093B6010C94472341E050E060E086 +:104FE00070E004C0440F551F661F771F8A95D2F7E3 +:104FF00040955095609570958091B3019091B40162 +:10500000A091B501B091B60184239523A623B723BF +:105010008093B3019093B401A093B501B093B6010E +:105020000C94472341E050E060E070E004C0440F7E +:10503000551F661F771F8A95D2F78091B301909113 +:10504000B401A091B501B091B60184279527A62798 +:10505000B7278093B3019093B401A093B501B093A7 +:10506000B6010C9447230F931F930091B301109145 +:10507000B4012091B5013091B601062B172B282BD6 +:10508000392B0093B3011093B4012093B5013093F1 +:10509000B6011F910F910C9447230F931F9300911A +:1050A000B3011091B4012091B5013091B6010623EE +:1050B0001723282339230093B3011093B4012093BD +:1050C000B5013093B6011F910F910C9447230F93B4 +:1050D0001F930091B3011091B4012091B50130915B +:1050E000B60106271727282739270093B301109305 +:1050F000B4012093B5013093B6011F910F910C9428 +:1051000047230895CF92DF92EF92FF920F931F9360 +:10511000CF93DF93EC01C090B701D090B801E0903D +:10512000B901F090BA018091B3019091B401A091BE +:10513000B501B091B601C82AD92AEA2AFB2A0FE1A3 +:1051400010E0B701A601002E04C07695679557952B +:1051500047950A94D2F740FF07C0BE01802F0E94F6 +:10516000C2158130910539F40150110950F7BE0183 +:1051700080E00E94C215DF91CF911F910F91FF90A7 +:10518000EF90DF90CF90089590910C019923D9F082 +:1051900090910D019923B9F0982F96959695969533 +:1051A0009F3088F5E0910E01F0910F01E90FF11D9C +:1051B000877021E030E001C0220F8A95EAF78181F3 +:1051C000822B8183089540910E0150910F0120E0C0 +:1051D00030E09FEFFA01E20FF31F6281681799F048 +:1051E0009F3F19F4611101C0922F2F5F3F4F2E3066 +:1051F000310581F79F3F39F0FA01E90FF11D97FD65 +:10520000FA9582830895089590910C019923E1F015 +:1052100090910D019923C1F0982F969596959695AA +:105220009F3020F5E0910E01F0910F01E90FF11D83 +:10523000877021E030E001C0220F8A95EAF72095BF +:10524000818128232183089540910E0150910F01FF +:1052500020E030E0FA01E20FF31F9281981301C0C1 +:1052600012822F5F3F4F2E303105A1F7089581E064 +:1052700090E0E0910E01F0910F01E80FF91F10820C +:10528000019680319105A9F708959091CD01982B51 +:105290009093CD01089580959091CD01982390939E +:1052A000CD0108951092CD0108959091CC01982BD5 +:1052B0009093CC01089580959091CC019823909380 +:1052C000CC0108951092CC0108958093BB010895FC +:1052D0001092BB01089540910E0150910F0120E002 +:1052E00030E080E0FA01E20FF31F918191118F5FAE +:1052F0002F5F3F4F2F303105A9F70895E0910E0140 +:10530000F0910F018091CD018083E0910E01F09129 +:105310000F0180819091CC01892B80839091BB01FA +:10532000992361F0E0910E01F0910F018081892BAA +:1053300080830E946B2981111092BB0180910E0124 +:1053400090910F010C94041ECF92DF92EF92FF9286 +:105350000F931F936C01EE24FF24C114D104E104C8 +:10536000F10421F46B017C0180E001C080E133276E +:105370002F2D1E2D0D2D011511052105310519F0BB +:10538000885F6801790197018601A4E03695279529 +:1053900017950795AA95D1F7011511052105310536 +:1053A00019F08C5F6801790197018601F2E036956A +:1053B000279517950795FA95D1F701151105210540 +:1053C000310519F08E5F68017901B701A601769564 +:1053D000679557954795452B462B472B09F08F5FCF +:1053E0001F910F91FF90EF90DF90CF9008958091E3 +:1053F000E701843009F11092CF0120E488E190E0C8 +:105400000FB6F894A895809360000FBE20936000BB +:1054100083B7817F846083BF83B7816083BF7894C3 +:10542000889583B78E7F83BF88E10FB6F894809309 +:105430006000109260000FBE089508950895CF9304 +:105440000E941D2A0E94EC130E941E2AC0E08C2F8D +:105450000E94D914811105C0CF5FCE30C1F780E022 +:1054600001C081E0CF9108950E9459230E94F81D48 +:105470000C94FD1682E084BD93E095BD9AEF97BD34 +:1054800080936E0008952FB7F8948091D001909189 +:10549000D101A091D201B091D3012FBF0895CF9235 +:1054A000DF92EF92FF920F931F932FB7F8944091E2 +:1054B000D0015091D1016091D2017091D3012FBFE1 +:1054C0006A017B01EE24FF248C0120E030E0C0164D +:1054D000D106E206F30610F441505109481B590B5E +:1054E000CA011F910F91FF90EF90DF90CF90089528 +:1054F0001F920F920FB60F9211248F939F93AF9329 +:10550000BF938091D0019091D101A091D201B0912F +:10551000D3010196A11DB11D8093D0019093D101BB +:10552000A093D201B093D301BF91AF919F918F917E +:105530000F900FBE0F901F9018950E94FE1AF894BE +:105540002FEF87EA91E6215080409040E1F700C0BC +:10555000000087E090EBDC018093F0019093F10173 +:10556000A093F201B093F3012CE088E190E00FB634 +:10557000F894A895809360000FBE20936000FFCF41 +:10558000EF92FF920F931F93CF93DF93E82EF12CAE +:105590008F2D0E94D914C0E0D0E0082F10E09801B0 +:1055A0000C2E02C0359527950A94E2F720FD05C020 +:1055B0002196C630D10599F709C06C2F7F2D80E068 +:1055C0000E94A015E812F4CF81E005C0F3948EE0AC +:1055D000F812DECF80E0DF91CF911F910F91FF9005 +:1055E000EF900895CF93C82F8CE20E94C02A8823A1 +:1055F00021F08C2FCF910C94C02A80E0CF91089598 +:10560000CF930E94452C811102C00E942B2CC5E62D +:10561000C15049F00E94EC138FE39CE90197F1F728 +:1056200000C00000F5CF89E20E94F22A811111C169 +:105630008AE20E94F22A81110E942B2C85E00E94AE +:10564000F22A81110E949D2A0E94502C8093CE0143 +:1056500087E00E94F22A882399F18BE10E94F22AC6 +:10566000882351F09091CE0191FB882780F921E0A9 +:10567000822780FB91F922C08EE00E94F22A8823C3 +:1056800051F09091CE0192FB882780F921E082278A +:1056900080FB92F913C080E10E94F22A9091CE0122 +:1056A000882341F093FB882780F921E0822780FB43 +:1056B00093F904C0892F809580FB90F99093CE01D7 +:1056C0008091CE010E94542C0E94622C8093E101B3 +:1056D00080EE0E94F22A882341F08091E101982F08 +:1056E000909590FB80F98093E10189E30E94F22A72 +:1056F000882359F09091E10191FB882780F921E0FE +:10570000822780FB91F99093E10182EE0E94F22AB8 +:10571000882359F09091E10192FB882780F921E0DC +:10572000822780FB92F99093E10186EE0E94F22A93 +:10573000882359F09091E10193FB882780F921E0BB +:10574000822780FB93F99093E10183EE0E94F22A75 +:10575000882359F09091E10194FB882780F921E09A +:10576000822780FB94F99093E10185E30E94F22A5D +:10577000882359F09091E10195FB882780F921E079 +:10578000822780FB95F99093E10181E30E94F22A40 +:10579000882359F09091E10196FB882780F921E058 +:1057A000822780FB96F99093E10181E10E94F22A21 +:1057B000882359F09091E10197FB882780F921E037 +:1057C000822780FB97F99093E1018091E1010E948B +:1057D000662C8091E10187FB882780F980930D0179 +:1057E00087E20E94F22AC82F8EE10E94F22A8111DC +:1057F000C2608FE10E94F22A8111C46080E20E949F +:10580000F22A8111C86081E20E94F22A8111C061EE +:1058100082E20E94F22A8111C06283E20E94F22A8F +:105820008111C06484E20E94F22A882311F0C068CA +:1058300002C0CC2329F08C2F0E945D2C6C2F03C05A +:105840000E94592C682F70E080E090E0CF910C947A +:105850005527CF9108956DEE7EEF80E090E00E9495 +:10586000813260E082E090E00E94733260E083E089 +:1058700090E00E94733260E084E090E00E94733216 +:1058800060E085E090E00C94733280E090E00E944C +:105890006D3221E08D3E9E4F09F020E0822F089569 +:1058A00082E090E00C946532682F82E090E00C94E6 +:1058B000733283E090E00C946532682F83E090E0CF +:1058C0000C94733284E090E00C946532682F84E08D +:1058D00090E00C9473328091D60180FF0BC06091F0 +:1058E000130185E0689FB001112475956795759542 +:1058F00067952AC081FF09C06091130185E0689F08 +:10590000B0011124759567951FC082FF07C0609193 +:10591000130185E0689FB001112416C04091D701A2 +:105920004423C9F060911201461788F720911301B2 +:1059300085E0289F90011124429FC001439F900D54 +:10594000112470E00E9437326038710540F461150F +:10595000710539F002C065E070E0862F08958FE789 +:10596000089581E008958091D60180FF08C060917C +:10597000110170E0759567957595679521C081FF58 +:1059800006C06091110170E07595679519C082FF9E +:1059900004C06091110170E010C08091D70188238C +:1059A000C1F0609110018617A0F790911101989FA6 +:1059B000C001112470E00E9437326038710528F46C +:1059C0006115710521F0862F08958FE7089581E014 +:1059D000089561E070E0F4CF803F21F40E946B2CC9 +:1059E000819504C0813F29F40E946B2C8093DA01D9 +:1059F0000895823F21F40E946B2C819504C0833F5F +:105A000029F40E946B2C8093D9010895893F19F4E1 +:105A10000E94B32C05C08A3F31F40E94B32C8195BB +:105A20008093DB0108958B3F21F40E94B32C819574 +:105A300004C08C3F29F40E94B32C8093DC010895AC +:105A4000843F21F48091D801816017C0853F21F403 +:105A50008091D801826011C0863F21F48091D801E5 +:105A600084600BC0873F21F48091D801886005C015 +:105A7000883F31F48091D80180618093D8010895E6 +:105A80008D3F21F48091D60181600BC08E3F21F4BF +:105A90008091D601826005C08F3F29F48091D601A4 +:105AA00084608093D6010895803F39F48091DA01B3 +:105AB00087FF6CC01092DA0169C0813F29F48091A0 +:105AC000DA011816BCF362C09091D901823F29F423 +:105AD00097FF5CC01092D90159C0833F19F4191681 +:105AE000CCF354C0893F41F48091DB0118160CF0CF +:105AF0004DC01092DB014AC08A3F29F48091DB013E +:105B000087FF44C0F6CF8B3F39F48091DC0187FFDB +:105B10003DC01092DC013AC08C3F29F48091DC0139 +:105B20001816BCF333C0843F21F48091D8018E7FD6 +:105B300017C0853F21F48091D8018D7F11C0863F29 +:105B400021F48091D8018B7F0BC0873F21F4809195 +:105B5000D801877F05C0883F31F48091D8018F7EBE +:105B60008093D80113C08D3F21F48091D6018E7FA0 +:105B70000BC08E3F21F48091D6018D7F05C08F3FF1 +:105B800029F48091D6018B7F8093D6018091D90131 +:105B900081110EC08091DA0181110AC08091DB0170 +:105BA000811106C08091DC01811102C01092D701E1 +:105BB000089588ED91E00E940F1E0E94432A909361 +:105BC000D5018093D40108951F93CF93DF938091E3 +:105BD000D4019091D5010E944F2A4091D7014423CE +:105BE00021F02091140130E006C0209115015AE007 +:105BF000259F900111248217930708F482C0809199 +:105C0000D9011091DA01D091DB01C091DC01811141 +:105C100007C0111105C0D11103C0CC2309F471C014 +:105C20004F3F19F04F5F4093D701181624F40E949C +:105C30006B2C8093D9018091D90187FF05C00E9408 +:105C40006B2C81958093D901111624F40E946B2C42 +:105C50008093DA018091DA0187FF05C00E946B2CE6 +:105C600081958093DA016091D901662339F1109111 +:105C7000DA01112319F1772767FD7095872F972F88 +:105C80000E94483123E333E343E35FE30E94AC31F6 +:105C90000E9415316093D901612F772767FD7095B8 +:105CA000872F972F0E94483123E333E343E35FE3D9 +:105CB0000E94AC310E9415316093DA011D1624F464 +:105CC0000E94B32C8093DB018091DB0187FF05C02C +:105CD0000E94B32C81958093DB011C1624F40E9452 +:105CE000B32C8093DC018091DC0187FF05C00E940A +:105CF000B32C81958093DC01DF91CF911F910C949F +:105D0000D92DDF91CF911F910895E8EDF1E085E065 +:105D1000DF011D928A95E9F71092D7011092D60102 +:105D20000895833081F128F4813059F08230D1F028 +:105D30000895853009F449C0B8F1863009F456C099 +:105D4000089520911501862F90E0820F911D8F3FBD +:105D5000910520F4620F6093150108958FEF8093F1 +:105D60001501089520911401862F90E0820F911D56 +:105D70008F3F910520F4620F6093140108958FEF17 +:105D800080931401089520911301862F90E0820FD3 +:105D9000911D8F3F910520F4620F609313010895C8 +:105DA0008FEF80931301089520911201862F90E0C8 +:105DB000820F911D8F3F910520F4620F60931201B5 +:105DC00008958FEF80931201089520911101862F7D +:105DD00090E0820F911D8F3F910520F4620F609338 +:105DE000110108958FEF8093110108952091100102 +:105DF000862F90E0820F911D8F3F910520F4620F56 +:105E00006093100108958FEF8093100108958330FF +:105E100011F128F4813049F0823091F008958530F5 +:105E200081F120F18630C1F1089580911501681744 +:105E300020F4861B80931501089510921501089592 +:105E400080911401681720F4861B80931401089533 +:105E500010921401089580911301681720F4861B95 +:105E600080931301089510921301089580911201F7 +:105E7000681720F4861B8093120108951092120176 +:105E8000089580911101681720F4861B80931101F9 +:105E9000089510921101089580911001681720F45F +:105EA000861B8093100108951092100108958D3182 +:105EB00009F442C020F58E3009F479C070F48730BF +:105EC00009F45EC020F4863009F442C033C0883043 +:105ED000D1F18B3009F4A7C02DC0863109F4A3C0DD +:105EE00038F4803109F46DC0813109F47BC022C0DF +:105EF000893109F498C08B3109F44FC01BC0853338 +:105F000009F479C048F4873209F475C008F478C000 +:105F1000893209F470C00EC0833438F48A3308F033 +:105F200071C0883309F47FC005C0833409F463C0AD +:105F30008834C1F080E008950E94CF300E94F81D9F +:105F40000E94FD1670C00E94502C0E94622C6BC0F3 +:105F50008091CE01817F8E7F8093CE0181E08093FE +:105F6000DE0108950E9459232FEF83ED90E3215025 +:105F700080409040E1F700C000000E949D2A53C07D +:105F80009091CE01892F817090FF03C0917F9E7FF9 +:105F900026C091609093CE0146C09091CE0191FBB6 +:105FA000882780F921E0822780FB91F913C0909126 +:105FB000CE0192FB882780F921E0822780FB92F9AD +:105FC00009C09091CE0193FB882780F921E08227B8 +:105FD00080FB93F99093CE01882329F191609093EF +:105FE000CE0108950E94592380910D0191E08927E7 +:105FF00080930D0118C061E070E080E090E00FC078 +:1060000023EE01C027EC280F61E070E080E090E013 +:1060100004C0660F771F881F991F2A95D2F70E9428 +:1060200055270E94592381E0089580E0089580E07B +:106030000895CF93C82F8091DE01813079F018F058 +:106040008230D1F184C0A0910E01B0910F018C91EA +:10605000813169F0823209F07CC009C0A0910E0143 +:10606000B0910F018C91813111F0823249F48C2F63 +:106070000E94153081111DC08C2F0E94572F1AC00D +:106080008C2F0E941730811114C0C43179F048F46C +:10609000CB3079F0C03109F060C082E08093DE013E +:1060A00008C0C93219F0C83321F057C01092DE0180 +:1060B00054C081E0817053C0C93289F118F5C431F0 +:1060C00071F1A8F4C73009F046C08AE08093150149 +:1060D00094E19093140193E0909313018093120143 +:1060E00088E08093110188E28093100134C0CE5182 +:1060F000C63088F5EC2FF0E0E65DFE4F808180939E +:10610000DD0129C0CE34E9F020F4CB3421F56AE07A +:1061100013C0C13579F0C235F1F461E00DC0809152 +:10612000DD01882319F01092DD0115C081E0809314 +:10613000DE0115C061E006C08091DD010E94912E54 +:106140000AC06AE08091DD010E94072F04C010920E +:10615000DE0180E004C081E002C080E0ABCFCF91DF +:106160000895E1E8F0E0808188608083808181602B +:1061700080838FB7F89493E09093890090ED90938B +:1061800088008FBF0895EFE6F0E080818260808311 +:106190000895EFE6F0E080818D7F80830895EFE63B +:1061A000F0E0808192E08927808308951F920F920A +:1061B0000FB60F9211242F933F934F935F936F93DA +:1061C0007F938F939F93AF93BF93EF93FF938091B0 +:1061D000DF019091E00101969093E0018093DF014F +:1061E000811103C082E00E94FD16E091E001E69576 +:1061F000E695F0E0E65CF04EE4918091DF018E13CD +:1062000003C080E00E94FD16FF91EF91BF91AF9116 +:106210009F918F917F916F915F914F913F912F91BE +:106220000F900FBE0F901F90189504D06894B11175 +:106230008DC0089570D088F09F5790F0B92F99279E +:10624000B751A0F0D1F0660F771F881F991F1AF081 +:10625000BA95C9F712C0B13081F077D0B1E0089596 +:1062600074C0672F782F8827B85F39F0B93FCCF317 +:10627000869577956795B395D9F73EF49095809577 +:10628000709561957F4F8F4F9F4F0895E89409C097 +:1062900097FB3EF490958095709561957F4F8F4F59 +:1062A0009F4F9923A9F0F92F96E9BB279395F6956F +:1062B000879577956795B795F111F8CFFAF4BB0FED +:1062C00011F460FF1BC06F5F7F4F8F4F9F4F16C051 +:1062D000882311F096E911C0772321F09EE8872FDB +:1062E000762F05C0662371F096E8862F70E060E097 +:1062F0002AF09A95660F771F881FDAF7880F969510 +:10630000879597F9089557FD9058440F551F59F0F8 +:106310005F3F71F04795880F97FB991F61F09F3F92 +:1063200079F087950895121613061406551FF2CFBB +:106330004695F1DF08C0161617061806991FF1CF0B +:1063400086957105610508940895E894BB27662732 +:106350007727CB0197F908950BD078C069D028F042 +:106360006ED018F0952309F05AC05FC01124EECF0B +:10637000CADFA0F3959FD1F3950F50E0551F629FA0 +:10638000F001729FBB27F00DB11D639FAA27F00D8E +:10639000B11DAA1F649F6627B00DA11D661F829FB5 +:1063A0002227B00DA11D621F739FB00DA11D621F9A +:1063B000839FA00D611D221F749F3327A00D611DB7 +:1063C000231F849F600D211D822F762F6A2F112499 +:1063D0009F5750408AF0E1F088234AF0EE0FFF1FEC +:1063E000BB1F661F771F881F91505040A9F79E3F23 +:1063F000510570F014C0AACF5F3FECF3983EDCF378 +:10640000869577956795B795F795E7959F5FC1F75F +:10641000FE2B880F911D9695879597F9089597F90A +:106420009F6780E870E060E008959FEF80EC08953A +:1064300000240A9416161706180609060895002463 +:106440000A9412161306140605060895092E0394DD +:10645000000C11F4882352F0BB0F40F4BF2B11F451 +:1064600060FF04C06F5F7F4F8F4F9F4F089597FB72 +:10647000072E16F4009407D077FD09D00E94513200 +:1064800007FC05D03EF4909581959F4F0895709537 +:1064900061957F4F0895EE0FFF1F0590F491E02D59 +:1064A0000994AA1BBB1B51E107C0AA1FBB1FA6175B +:1064B000B70710F0A61BB70B881F991F5A95A9F7AD +:1064C00080959095BC01CD010895F999FECF92BDBC +:1064D00081BDF89A992780B50895A8E1B0E042E01F +:1064E00050E00C948832262FF999FECF1FBA92BD46 +:1064F00081BD20BD0FB6F894FA9AF99A0FBE0196A5 +:1065000008950E947332272F0C947432DC01CB0162 +:10651000FC01F999FECF06C0F2BDE1BDF89A3196B3 +:1065200000B40D9241505040B8F70895F894FFCF51 +:106530002002FF168C176917351702170101BC01DD +:1065400028080A03140A3F4D3639FB1EAE1E781E7A +:106550003F1ED21DEB1D041E1D1E01020304050675 +:04656000070809001F +:00000001FF -- cgit v1.2.3 From 5e822417d7aaebbb58154092ad2a7b5fd2469fbb Mon Sep 17 00:00:00 2001 From: skullY Date: Mon, 28 Mar 2016 22:49:24 -0700 Subject: Fixup clueboard support and add rgb to clueboard1 --- keyboard/clueboard1/Makefile | 4 +- keyboard/clueboard1/clueboard1.c | 32 +++++------ keyboard/clueboard1/clueboard1.h | 4 +- keyboard/clueboard1/config.h | 10 ++++ keyboard/clueboard1/keymaps/keymap_default.c | 82 +++++++++++++++++++++++++++- keyboard/clueboard1/led.c | 14 ++--- keyboard/clueboard2/clueboard2.c | 8 +-- keyboard/clueboard2/clueboard2.h | 4 +- keyboard/clueboard2/keymaps/keymap_default.c | 22 ++++++-- 9 files changed, 137 insertions(+), 43 deletions(-) (limited to 'keyboard') diff --git a/keyboard/clueboard1/Makefile b/keyboard/clueboard1/Makefile index 767fc95ef..429ea6088 100644 --- a/keyboard/clueboard1/Makefile +++ b/keyboard/clueboard1/Makefile @@ -51,7 +51,7 @@ TARGET_DIR = . # # project specific files SRC = clueboard1.c \ - led.c \ + led.c ifdef KEYMAP SRC := keymaps/keymap_$(KEYMAP).c $(SRC) @@ -62,7 +62,6 @@ endif CONFIG_H = config.h # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. @@ -121,6 +120,7 @@ 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality # MIDI_ENABLE = YES # MIDI controls # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboard/clueboard1/clueboard1.c b/keyboard/clueboard1/clueboard1.c index 252c65fcc..289e4644d 100644 --- a/keyboard/clueboard1/clueboard1.c +++ b/keyboard/clueboard1/clueboard1.c @@ -1,27 +1,23 @@ #include "clueboard1.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +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_init_kb(void) { + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif -void * matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} diff --git a/keyboard/clueboard1/clueboard1.h b/keyboard/clueboard1/clueboard1.h index 1572ea2fd..839a81a15 100644 --- a/keyboard/clueboard1/clueboard1.h +++ b/keyboard/clueboard1/clueboard1.h @@ -46,7 +46,7 @@ { 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); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/clueboard1/config.h b/keyboard/clueboard1/config.h index 01212078f..1801e3d2c 100644 --- a/keyboard/clueboard1/config.h +++ b/keyboard/clueboard1/config.h @@ -65,6 +65,16 @@ along with this program. If not, see . 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 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. diff --git a/keyboard/clueboard1/keymaps/keymap_default.c b/keyboard/clueboard1/keymaps/keymap_default.c index bee7e35a0..33443f582 100644 --- a/keyboard/clueboard1/keymaps/keymap_default.c +++ b/keyboard/clueboard1/keymaps/keymap_default.c @@ -1,5 +1,9 @@ #include "clueboard1.h" +#ifdef ENABLE_RGBLIGHT +#include "rgblight.h" +#endif + // Used for SHIFT_ESC #define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) @@ -26,7 +30,7 @@ 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_BSLS, KC_BSPC, KC_PGUP, \ + 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, \ @@ -46,8 +50,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_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_INC, \ - 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, BL_DEC, \ + 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), @@ -66,19 +70,47 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = KEYMAP( + #ifdef ENABLE_RGBLIGHT + KC_TRNS, KC_TRNS, 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 ENABLE_RGBLIGHT + 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 ENABLE_RGBLIGHT + [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) { @@ -104,5 +136,49 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } } break; + //led operations + #ifdef ENABLE_RGBLIGHT + 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/keyboard/clueboard1/led.c b/keyboard/clueboard1/led.c index deb7143ee..f0dd5662d 100644 --- a/keyboard/clueboard1/led.c +++ b/keyboard/clueboard1/led.c @@ -20,15 +20,13 @@ along with this program. If not, see . #include "led.h" -void led_set(uint8_t usb_led) -{ +void led_set_kb(uint8_t usb_led) { + DDRF |= (1<<0); if (usb_led & (1<event.pressed) { rgblight_toggle(); @@ -166,5 +179,6 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { rgblight_step(); } break; + #endif } } -- cgit v1.2.3 From ac22d1c185fe3caf3581650390309aa8232e55bb Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Tue, 29 Mar 2016 13:02:14 +0200 Subject: added CTL_Shift / Hash macro --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 35 ++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 11 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 0349c749b..df8d99650 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -16,6 +16,7 @@ #define M_DE_PLUS_CTRLALT 12 #define M_DE_CIRC_CTRLCMD 13 #define M_TOGGLE_5 14 +#define M_CTL_SFT_HASH 15 #define SM_SMILE 4 #define SM_SMIRK 5 @@ -30,15 +31,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT| | # | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * ,-----------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' * |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 M_DE_CIRC_CTRLCMD: if (record->event.pressed) { start = timer_read(); -- cgit v1.2.3 From 2ae44470e01287c48f3852ac54a87d7fc4e747c2 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 12:06:32 -0400 Subject: Fix error in Planck makefile comment [This comment](https://www.reddit.com/r/olkb/comments/428umx/rgb_underglow/czaivbc) states that because both audio output and RGB support require the user of timer 3, they can't be enabled at the same time. That makes sense, I can see where audio.c uses timer 3. But this comment in the code states that the incompatibility is with MIDI support, which doesn't make sense based on what I see in the code. Please enlighten me if I'm mistaken.--- keyboard/planck/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 307b0c7f4..03d260176 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -143,7 +143,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. ifdef BACKLIGHT_ENABLE SRC += backlight.c -- cgit v1.2.3 From 77fa2b0056f10c079af541a746fb12cb96fabe72 Mon Sep 17 00:00:00 2001 From: mbarkhau Date: Tue, 29 Mar 2016 18:35:47 +0200 Subject: Update compile_keymap.py --- .../keymaps/german-manuneo/compile_keymap.py | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index 9767b1e07..af6867222 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -121,32 +121,30 @@ def loads(raw_data): // # start of the comment (.*) # the comment $ # until the end of line - """, re.MULTILINE | re.VERBOSE - ) - + """, re.MULTILINE | re.VERBOSE) + INLINE_COMMENT_RE = re.compile(r""" - (?:[\,\"\[\]\{\}\d]) # anythig that might end a expression + ([\,\"\[\]\{\}\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) + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) $ # until the end of line - """, re.MULTILINE | re.VERBOSE - ) - + """, re.MULTILINE | re.VERBOSE) + TRAILING_COMMA_RE = re.compile(r""" , # the comma - \s* # arbitrary whitespace (including newlines) + (?:\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 - ) - + """, re.MULTILINE | re.VERBOSE) 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", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) return json.loads(raw_data) -- cgit v1.2.3 From 95fba250ef2029ccdedb34500c5d1e96f6d065cf Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Tue, 29 Mar 2016 21:53:36 -0400 Subject: Updated several keyboard folders to use new keymap naming scheme --- BUILD_GUIDE.md | 5 +- keyboard/alps64/Makefile | 4 +- keyboard/alps64/keymap_hasu.c | 151 ----------- keyboard/alps64/keymap_plain.c | 12 - keyboard/alps64/keymaps/default.c | 12 + keyboard/alps64/keymaps/hasu.c | 151 +++++++++++ keyboard/atomic/Makefile | 4 +- keyboard/atomic/README.md | 4 +- keyboard/atomic/keymaps/abienz.c | 36 +++ keyboard/atomic/keymaps/default.c | 79 ++++++ keyboard/atomic/keymaps/keymap_abienz.c | 36 --- keyboard/atomic/keymaps/keymap_default.c | 79 ------ keyboard/atomic/keymaps/keymap_michelle.c | 183 ------------- keyboard/atomic/keymaps/michelle.c | 183 +++++++++++++ keyboard/atreus/Makefile | 4 +- keyboard/atreus/README.md | 4 +- keyboard/atreus/keymaps/default.c | 51 ++++ keyboard/atreus/keymaps/gerb.c | 66 +++++ keyboard/atreus/keymaps/keymap_default.c | 51 ---- keyboard/atreus/keymaps/keymap_gerb.c | 66 ----- keyboard/gh60/Makefile | 4 +- keyboard/gh60/Makefile.pjrc | 4 +- keyboard/gh60/README.md | 14 +- keyboard/gh60/keymap_hasu.c | 145 ----------- keyboard/gh60/keymap_hhkb.c | 52 ---- keyboard/gh60/keymap_plain.c | 11 - keyboard/gh60/keymap_poker.c | 104 -------- keyboard/gh60/keymap_poker_bit.c | 50 ---- keyboard/gh60/keymap_poker_set.c | 82 ------ keyboard/gh60/keymap_spacefn.c | 55 ---- keyboard/gh60/keymaps/hasu.c | 145 +++++++++++ keyboard/gh60/keymaps/hhkb.c | 52 ++++ keyboard/gh60/keymaps/plain.c | 11 + keyboard/gh60/keymaps/poker.c | 104 ++++++++ keyboard/gh60/keymaps/poker_bit.c | 50 ++++ keyboard/gh60/keymaps/poker_set.c | 82 ++++++ keyboard/gh60/keymaps/spacefn.c | 55 ++++ keyboard/hhkb/Makefile | 8 +- keyboard/hhkb/Makefile.pjrc | 4 +- keyboard/hhkb/Makefile.rn42 | 8 +- keyboard/hhkb/README.md | 2 +- keyboard/hhkb/keymap_hasu.c | 282 --------------------- keyboard/hhkb/keymap_hhkb.c | 95 ------- keyboard/hhkb/keymap_jp.c | 50 ---- keyboard/hhkb/keymap_spacefn.c | 116 --------- keyboard/hhkb/keymaps/hasu.c | 282 +++++++++++++++++++++ keyboard/hhkb/keymaps/hhkb.c | 95 +++++++ keyboard/hhkb/keymaps/jp.c | 50 ++++ keyboard/hhkb/keymaps/spacefn.c | 116 +++++++++ keyboard/hhkb_qmk/Makefile | 4 +- keyboard/hhkb_qmk/README.md | 4 +- keyboard/hhkb_qmk/keymaps/default.c | 78 ++++++ keyboard/hhkb_qmk/keymaps/keymap_default.c | 78 ------ keyboard/hhkb_qmk/keymaps/keymap_lxol.c | 208 --------------- keyboard/hhkb_qmk/keymaps/lxol.c | 208 +++++++++++++++ keyboard/jd45/Makefile | 4 +- keyboard/jd45/keymaps/default.c | 31 +++ keyboard/jd45/keymaps/justin.c | 101 ++++++++ keyboard/jd45/keymaps/keymap_default.c | 31 --- keyboard/jd45/keymaps/keymap_justin.c | 101 -------- keyboard/planck/README.md | 4 +- keyboard/planck/common_keymaps/keymap_mitch.c | 49 ---- .../old_keymap_files/common_keymaps/keymap_mitch.c | 49 ++++ quantum/template/README.md | 2 +- 64 files changed, 2132 insertions(+), 2129 deletions(-) delete mode 100644 keyboard/alps64/keymap_hasu.c delete mode 100644 keyboard/alps64/keymap_plain.c create mode 100644 keyboard/alps64/keymaps/default.c create mode 100644 keyboard/alps64/keymaps/hasu.c create mode 100644 keyboard/atomic/keymaps/abienz.c create mode 100644 keyboard/atomic/keymaps/default.c delete mode 100644 keyboard/atomic/keymaps/keymap_abienz.c delete mode 100644 keyboard/atomic/keymaps/keymap_default.c delete mode 100644 keyboard/atomic/keymaps/keymap_michelle.c create mode 100644 keyboard/atomic/keymaps/michelle.c create mode 100644 keyboard/atreus/keymaps/default.c create mode 100644 keyboard/atreus/keymaps/gerb.c delete mode 100644 keyboard/atreus/keymaps/keymap_default.c delete mode 100644 keyboard/atreus/keymaps/keymap_gerb.c delete mode 100644 keyboard/gh60/keymap_hasu.c delete mode 100644 keyboard/gh60/keymap_hhkb.c delete mode 100644 keyboard/gh60/keymap_plain.c delete mode 100644 keyboard/gh60/keymap_poker.c delete mode 100644 keyboard/gh60/keymap_poker_bit.c delete mode 100644 keyboard/gh60/keymap_poker_set.c delete mode 100644 keyboard/gh60/keymap_spacefn.c create mode 100644 keyboard/gh60/keymaps/hasu.c create mode 100644 keyboard/gh60/keymaps/hhkb.c create mode 100644 keyboard/gh60/keymaps/plain.c create mode 100644 keyboard/gh60/keymaps/poker.c create mode 100644 keyboard/gh60/keymaps/poker_bit.c create mode 100644 keyboard/gh60/keymaps/poker_set.c create mode 100644 keyboard/gh60/keymaps/spacefn.c delete mode 100644 keyboard/hhkb/keymap_hasu.c delete mode 100644 keyboard/hhkb/keymap_hhkb.c delete mode 100644 keyboard/hhkb/keymap_jp.c delete mode 100644 keyboard/hhkb/keymap_spacefn.c create mode 100644 keyboard/hhkb/keymaps/hasu.c create mode 100644 keyboard/hhkb/keymaps/hhkb.c create mode 100644 keyboard/hhkb/keymaps/jp.c create mode 100644 keyboard/hhkb/keymaps/spacefn.c create mode 100644 keyboard/hhkb_qmk/keymaps/default.c delete mode 100644 keyboard/hhkb_qmk/keymaps/keymap_default.c delete mode 100644 keyboard/hhkb_qmk/keymaps/keymap_lxol.c create mode 100644 keyboard/hhkb_qmk/keymaps/lxol.c create mode 100644 keyboard/jd45/keymaps/default.c create mode 100644 keyboard/jd45/keymaps/justin.c delete mode 100644 keyboard/jd45/keymaps/keymap_default.c delete mode 100644 keyboard/jd45/keymaps/keymap_justin.c delete mode 100644 keyboard/planck/common_keymaps/keymap_mitch.c create mode 100644 keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c (limited to 'keyboard') diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md index 22df53c30..f7a57d2fc 100644 --- a/BUILD_GUIDE.md +++ b/BUILD_GUIDE.md @@ -44,7 +44,10 @@ If you have any problems building the firmware, you can try using a tool called 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. ## Customizing, Building, and Deploying Your Firmware -1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. + +Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly. + +1. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. 2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. 3. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile index e90dcedb6..7634c4280 100644 --- a/keyboard/alps64/Makefile +++ b/keyboard/alps64/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_plain.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/alps64/keymap_hasu.c b/keyboard/alps64/keymap_hasu.c deleted file mode 100644 index d297d72fe..000000000 --- a/keyboard/alps64/keymap_hasu.c +++ /dev/null @@ -1,151 +0,0 @@ -#include "keymap_common.h" - -/* - * Hasu - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Default Layer - * ,-----------------------------------------------------------. - * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | - * |-----------------------------------------------------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|FN1 | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [0] = KEYMAP_AEK( \ - ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, \ - 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,FN1, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ - LCTL,LGUI,LALT, FN4, RALT,FN5, FN0), - - /* HHKB mode[HHKB Fn] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Del | - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [1] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, DEL, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT, \ - LCTL,LGUI,LALT, TRNS, RALT,RGUI,TRNS), - - /* Vi mode[Slash] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|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 | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - */ - [2] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, DEL, \ - 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, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,RCTL), - - /* 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 | | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [3] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ - LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ - LCTL,LGUI,LALT, BTN1, 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 | | - * |-----------------------------------------------------------| - * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - [4] = KEYMAP_AEK( \ - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,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, \ - LCTL,LGUI,LALT, TRNS, TRNS,TRNS,TRNS), -}; - - -/* id for user defined function/macro */ -enum function_id { - NONE, -}; - -enum macro_id { - ALT_TAB, -}; - - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer - [1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer - [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(3), // Mousekey layer(IJKL) - [6] = ACTION_LAYER_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 ALT_TAB: - return (record->event.pressed ? - MACRO( D(LALT), D(TAB), END ) : - MACRO( U(TAB), END )); - } - return MACRO_NONE; -} diff --git a/keyboard/alps64/keymap_plain.c b/keyboard/alps64/keymap_plain.c deleted file mode 100644 index a54899196..000000000 --- a/keyboard/alps64/keymap_plain.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "keymap_common.h" - -const uint8_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/keyboard/alps64/keymaps/default.c b/keyboard/alps64/keymaps/default.c new file mode 100644 index 000000000..a54899196 --- /dev/null +++ b/keyboard/alps64/keymaps/default.c @@ -0,0 +1,12 @@ +#include "keymap_common.h" + +const uint8_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/keyboard/alps64/keymaps/hasu.c b/keyboard/alps64/keymaps/hasu.c new file mode 100644 index 000000000..d297d72fe --- /dev/null +++ b/keyboard/alps64/keymaps/hasu.c @@ -0,0 +1,151 @@ +#include "keymap_common.h" + +/* + * Hasu + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Default Layer + * ,-----------------------------------------------------------. + * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \ | + * |-----------------------------------------------------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc | + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|FN1 | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [0] = KEYMAP_AEK( \ + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, \ + 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,FN1, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, \ + LCTL,LGUI,LALT, FN4, RALT,FN5, FN0), + + /* HHKB mode[HHKB Fn] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| ` | + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Del | + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [1] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, DEL, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS, \ + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT, \ + LCTL,LGUI,LALT, TRNS, RALT,RGUI,TRNS), + + /* Vi mode[Slash] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|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 | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + */ + [2] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, DEL, \ + 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, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,RCTL), + + /* 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 | | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [3] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,FN8, \ + LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT, \ + LCTL,LGUI,LALT, BTN1, 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 | | + * |-----------------------------------------------------------| + * |Ctrl |Gui |Alt | Space |Alt |Fn5 |Ctrl | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + [4] = KEYMAP_AEK( \ + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, GRV, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,MS_U,WH_U,RGHT,FN9, FN10,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, \ + LCTL,LGUI,LALT, TRNS, TRNS,TRNS,TRNS), +}; + + +/* id for user defined function/macro */ +enum function_id { + NONE, +}; + +enum macro_id { + ALT_TAB, +}; + + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), // HHKB layer + [1] = ACTION_LAYER_TAP_KEY(1, KC_ENTER), // HHKB layer + [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(3), // Mousekey layer(IJKL) + [6] = ACTION_LAYER_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 ALT_TAB: + return (record->event.pressed ? + MACRO( D(LALT), D(TAB), END ) : + MACRO( U(TAB), END )); + } + return MACRO_NONE; +} diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index e678b4efa..da6d0ac60 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -54,9 +54,9 @@ SRC = atomic.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/atomic/README.md b/keyboard/atomic/README.md index c8e83cf55..0e42370ba 100644 --- a/keyboard/atomic/README.md +++ b/keyboard/atomic/README.md @@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight 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 `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +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 **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atomic/keymaps/abienz.c b/keyboard/atomic/keymaps/abienz.c new file mode 100644 index 000000000..589a64dc4 --- /dev/null +++ b/keyboard/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/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c new file mode 100644 index 000000000..f37d9d9a5 --- /dev/null +++ b/keyboard/atomic/keymaps/default.c @@ -0,0 +1,79 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* 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_DEL }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 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_BSLS, 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_ENT, 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_RSFT, KC_UP, KC_PGDN }, +// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ +// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ +// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ +// │ X │ │ X │ +// └─────────────────┘ └─────────────────┘ +// ┌─ 2u ────────────┐ +// │ X │ +// └─────────────────┘ + { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, 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[] = { + [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), + +}; + +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/keyboard/atomic/keymaps/keymap_abienz.c b/keyboard/atomic/keymaps/keymap_abienz.c deleted file mode 100644 index 589a64dc4..000000000 --- a/keyboard/atomic/keymaps/keymap_abienz.c +++ /dev/null @@ -1,36 +0,0 @@ -#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/keyboard/atomic/keymaps/keymap_default.c b/keyboard/atomic/keymaps/keymap_default.c deleted file mode 100644 index f37d9d9a5..000000000 --- a/keyboard/atomic/keymaps/keymap_default.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "atomic.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* 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_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 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_BSLS, 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_ENT, 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_RSFT, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, 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[] = { - [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), - -}; - -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/keyboard/atomic/keymaps/keymap_michelle.c b/keyboard/atomic/keymaps/keymap_michelle.c deleted file mode 100644 index 2364c46a1..000000000 --- a/keyboard/atomic/keymaps/keymap_michelle.c +++ /dev/null @@ -1,183 +0,0 @@ -#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/keyboard/atomic/keymaps/michelle.c b/keyboard/atomic/keymaps/michelle.c new file mode 100644 index 000000000..2364c46a1 --- /dev/null +++ b/keyboard/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/keyboard/atreus/Makefile b/keyboard/atreus/Makefile index 2e542d62e..a6fddd70d 100644 --- a/keyboard/atreus/Makefile +++ b/keyboard/atreus/Makefile @@ -53,9 +53,9 @@ TARGET_DIR = . SRC = atreus.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif ifdef TEENSY2 diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md index 4db7ac120..aacf2841f 100644 --- a/keyboard/atreus/README.md +++ b/keyboard/atreus/README.md @@ -177,10 +177,10 @@ Depending on which keymap you would like to use, you will have to compile slight 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 `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +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 **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atreus/keymaps/default.c b/keyboard/atreus/keymaps/default.c new file mode 100644 index 000000000..1c4280ff5 --- /dev/null +++ b/keyboard/atreus/keymaps/default.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/keyboard/atreus/keymaps/gerb.c b/keyboard/atreus/keymaps/gerb.c new file mode 100644 index 000000000..1ba3942e3 --- /dev/null +++ b/keyboard/atreus/keymaps/gerb.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/keyboard/atreus/keymaps/keymap_default.c b/keyboard/atreus/keymaps/keymap_default.c deleted file mode 100644 index 1c4280ff5..000000000 --- a/keyboard/atreus/keymaps/keymap_default.c +++ /dev/null @@ -1,51 +0,0 @@ -// 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/keyboard/atreus/keymaps/keymap_gerb.c b/keyboard/atreus/keymaps/keymap_gerb.c deleted file mode 100644 index 1ba3942e3..000000000 --- a/keyboard/atreus/keymaps/keymap_gerb.c +++ /dev/null @@ -1,66 +0,0 @@ -// 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/keyboard/gh60/Makefile b/keyboard/gh60/Makefile index daba0f644..4c8f9dc8a 100644 --- a/keyboard/gh60/Makefile +++ b/keyboard/gh60/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 11bd3b784..8ed73a248 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index 510cb5c8b..41a757ea3 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -21,7 +21,7 @@ Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason t ## Keymap -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 `keymap_.c` and see keymap document(you can find in top README.md) and existent keymap files. +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 firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like: @@ -29,8 +29,8 @@ To build firmware binary hex file with a certain keymap just do `make` with `KEY ### 1 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[poker.c](keymaps/poker.c) emulates original Poker layers +while both [poker_bit.c](keymaps/poker_bit.c) and [poker_set.c](keymaps/poker_set.c) implement the same layout in different ways and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} @@ -63,7 +63,7 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key ### 2. Plain Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. +See [plain.c](keymaps/plain.c) for detail. #### 1.0 Plain Default layer ,-----------------------------------------------------------. @@ -80,11 +80,11 @@ See [keymap_plain.c](keymap_plain.c) for detail. ### 3. Hasu -This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [hasu.c](keymaps/hasu.c) for detail. ### 4. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [spacefn.c](keymaps/spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). #### 4.0 Default layer ,-----------------------------------------------------------. @@ -113,7 +113,7 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual ### 5. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +[hhkb.c](keymaps/hhkb.c) emulates original HHKB layers. #### 5.0: Default layer ,-----------------------------------------------------------. |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| diff --git a/keyboard/gh60/keymap_hasu.c b/keyboard/gh60/keymap_hasu.c deleted file mode 100644 index e6af28585..000000000 --- a/keyboard/gh60/keymap_hasu.c +++ /dev/null @@ -1,145 +0,0 @@ -#include "keymap_common.h" - -/* - * Hasu - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: 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|Fn3| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - ESC, 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, \ - LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \ - LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0), - /* Keymap 1: colemak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Keymap 2: dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - /* Keymap 3: workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), - - /* Overlay 4: HHKB mode - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser| - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App | | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ - 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, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS), - /* Overlay 5: Vi mode (Slash) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | - * |-----------------------------------------------------------| - * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | | - * |-----------------------------------------------------------| - * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ - LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ - LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), - /* Overlay 6: Mouse mode (Semicolon/App) - * ,-----------------------------------------------------------. - * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | - * |-----------------------------------------------------------| - * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | - * |-----------------------------------------------------------| - * |Ctrl|Gui |Alt | Space | | | | | - * `-----------------------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ - TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ - LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ - LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ - LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), - /* Overlay 7: Layout selector - * ,-----------------------------------------------------------. - * | Lq| Lc| Ld| Lw| | | | | | | | | | | - * |-----------------------------------------------------------| - * | |Lq |Lw | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Ld | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Lc | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - * Lq: set Qwerty layout - * Lc: set Colemak layout - * Ld: set Dvorak layout - * Lw: set Workman layout - */ - KEYMAP_ANSI( - FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(4), - [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), - [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), - [3] = ACTION_LAYER_MOMENTARY(6), - [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector - [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout - [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout - [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout - [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout - [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), -}; diff --git a/keyboard/gh60/keymap_hhkb.c b/keyboard/gh60/keymap_hhkb.c deleted file mode 100644 index ce1b816ec..000000000 --- a/keyboard/gh60/keymap_hhkb.c +++ /dev/null @@ -1,52 +0,0 @@ -#include "keymap_common.h" - -/* - * HHKB Layout - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 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| [| ]|Bspc | - * |-----------------------------------------------------------| - * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn | - * |-----------------------------------------------------------| - * | |Gui |Alt | Space | |Alt |Gui | | - * `-----------------------------------------------------------' - */ - KEYMAP_HHKB( - 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, NO, RALT,RGUI,NO), - /* 1: HHKB Fn layer - * ,-----------------------------------------------------------. - * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | - * |-----------------------------------------------------------| - * | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * | | | | | | | +| -|End|PgD|Dow| | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - */ - KEYMAP_HHKB( - 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,TRNS, \ - TRNS,VOLD,VOLU,MUTE,EJCT,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), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), -}; diff --git a/keyboard/gh60/keymap_plain.c b/keyboard/gh60/keymap_plain.c deleted file mode 100644 index 3138c1807..000000000 --- a/keyboard/gh60/keymap_plain.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP(ESC, 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, \ - CAPS,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, RALT,RGUI,APP, RCTL), -}; -const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/gh60/keymap_poker.c b/keyboard/gh60/keymap_poker.c deleted file mode 100644 index 7a612ee44..000000000 --- a/keyboard/gh60/keymap_poker.c +++ /dev/null @@ -1,104 +0,0 @@ -#include "keymap_common.h" - -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 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, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 1: colemak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ - LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 2: dvorak */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ - TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ - CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ - LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 3: workman */ - KEYMAP_ANSI( - GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ - TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ - BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ - LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 4: Poker with Arrow */ - KEYMAP_ANSI( - 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,LEFT,DOWN,RGHT), - /* 5: Poker with Esc */ - KEYMAP_ANSI( - ESC, 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, TRNS, TRNS,TRNS,TRNS,TRNS), - /* 6: Poker Fn - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | - * |-----------------------------------------------------------| - * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | - * |-----------------------------------------------------------| - * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | - * |-----------------------------------------------------------| - * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | - * |-----------------------------------------------------------| - * | | | | FnS | | | | | - * `-----------------------------------------------------------' - * Fn: to Fn overlay - * FnL: to Layout selector overaly - * FnQ: toggle Esc overlay - * FnS: toggle Arrow overlay - */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), - /* 7: Layout selector - * ,-----------------------------------------------------------. - * | Lq| Lc| Ld| Lw| | | | | | | | | | | - * |-----------------------------------------------------------| - * | |Lq |Lw | | | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Ld | | | | | | | | | | - * |-----------------------------------------------------------| - * | | | |Lc | | | | | | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - * Lq: set Qwerty layout - * Lc: set Colemak layout - * Ld: set Dvorak layout - * Lw: set Workman layout - */ - KEYMAP_ANSI( - FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay - [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay - [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay - [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) - [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector - [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout - [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout - [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout - [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout -}; diff --git a/keyboard/gh60/keymap_poker_bit.c b/keyboard/gh60/keymap_poker_bit.c deleted file mode 100644 index b8870fdd8..000000000 --- a/keyboard/gh60/keymap_poker_bit.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -// Poker fix with toggle and bit operation -// Fn + Esc = ` -// Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 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, \ - 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, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 4: Poker Default + Fn'd */ - [4] = KEYMAP_ANSI( - TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), - /* 5: Poker with Arrow */ - KEYMAP_ANSI( - 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, PGUP, \ - TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), - /* 6: Poker with Esc */ - KEYMAP_ANSI( - ESC, 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, TRNS, TRNS,TRNS,TRNS,TRNS), - /* 7: Poker with Arrow + Fn'd */ - KEYMAP_ANSI( - 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,LEFT,DOWN,RGHT), -}; -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) - [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle - [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle - [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow) - [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc) -}; diff --git a/keyboard/gh60/keymap_poker_set.c b/keyboard/gh60/keymap_poker_set.c deleted file mode 100644 index aaa31fc57..000000000 --- a/keyboard/gh60/keymap_poker_set.c +++ /dev/null @@ -1,82 +0,0 @@ -#include "keymap_common.h" - -// Poker fix with set(state transition) -// Fn + Esc = ` -// Fn + {left, down, up, right} = {home, pgdown, pgup, end} -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* 0: qwerty */ - KEYMAP_ANSI( - GRV, 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, \ - 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, \ - LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), - /* 1: Poker with Arrow */ - KEYMAP_ANSI( - 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, FN1, LEFT,DOWN,RGHT), - /* 2: Poker with Esc */ - KEYMAP_ANSI( - ESC, 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, TRNS, FN2, TRNS,TRNS,TRNS), - /* 3: Poker with Arrow and Esc */ - KEYMAP_ANSI( - ESC, 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, FN3, LEFT,DOWN,RGHT), - /* 4: Poker Fn'd */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), - /* 5: Poker Fn'd arrow */ - KEYMAP_ANSI( - ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), - /* 6: Poker Fn'd Esc */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ - TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), - /* 7: Poker Fn'd Arrow + Esc */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ - TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ - TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ - TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ - TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - /* Poker Layout */ - [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press - [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press - [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press - [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press - - //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release - [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release - [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release - [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release - [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release - - [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) -}; diff --git a/keyboard/gh60/keymap_spacefn.c b/keyboard/gh60/keymap_spacefn.c deleted file mode 100644 index 8077dcee7..000000000 --- a/keyboard/gh60/keymap_spacefn.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "keymap_common.h" - -/* - * SpaceFN - * http://geekhack.org/index.php?topic=51069.0 - */ -const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: 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 |App |Ctrl| - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - ESC, 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, \ - CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ - LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL), - - /* Overlay 1: SpaceFN - * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | - * |-----------------------------------------------------------| - * | | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins | - * |-----------------------------------------------------------| - * | | | | | | |PgU|Lef|Dow|Rig| | | | - * |-----------------------------------------------------------| - * | | | | | |Spc|PgD|` |~ | | | | - * |-----------------------------------------------------------| - * | | | | | | | | | - * `-----------------------------------------------------------' - */ - KEYMAP_ANSI( - GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ - TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,TRNS, TRNS, \ - TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), -}; - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), - [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde -}; diff --git a/keyboard/gh60/keymaps/hasu.c b/keyboard/gh60/keymaps/hasu.c new file mode 100644 index 000000000..e6af28585 --- /dev/null +++ b/keyboard/gh60/keymaps/hasu.c @@ -0,0 +1,145 @@ +#include "keymap_common.h" + +/* + * Hasu + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: 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|Fn3| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + ESC, 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, \ + LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \ + LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0), + /* Keymap 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + /* Keymap 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + /* Keymap 3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0), + + /* Overlay 4: HHKB mode + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |App | | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \ + 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, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS), + /* Overlay 5: Vi mode (Slash) + * ,-----------------------------------------------------------. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | + * |-----------------------------------------------------------| + * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | | + * |-----------------------------------------------------------| + * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | | |Hom|PgD|PgU|End| |Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ + TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \ + LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), + /* Overlay 6: Mouse mode (Semicolon/App) + * ,-----------------------------------------------------------. + * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | + * |-----------------------------------------------------------| + * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | + * |-----------------------------------------------------------| + * |Ctrl|Gui |Alt | Space | | | | | + * `-----------------------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ + TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \ + LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \ + LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \ + LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL), + /* Overlay 7: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(4), + [1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH), + [2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN), + [3] = ACTION_LAYER_MOMENTARY(6), + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout + [9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), +}; diff --git a/keyboard/gh60/keymaps/hhkb.c b/keyboard/gh60/keymaps/hhkb.c new file mode 100644 index 000000000..ce1b816ec --- /dev/null +++ b/keyboard/gh60/keymaps/hhkb.c @@ -0,0 +1,52 @@ +#include "keymap_common.h" + +/* + * HHKB Layout + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 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| [| ]|Bspc | + * |-----------------------------------------------------------| + * |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn | + * |-----------------------------------------------------------| + * | |Gui |Alt | Space | |Alt |Gui | | + * `-----------------------------------------------------------' + */ + KEYMAP_HHKB( + 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, NO, RALT,RGUI,NO), + /* 1: HHKB Fn layer + * ,-----------------------------------------------------------. + * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | | | + * |-----------------------------------------------------------| + * | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * | | | | | | | +| -|End|PgD|Dow| | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP_HHKB( + 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,TRNS, \ + TRNS,VOLD,VOLU,MUTE,EJCT,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), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; diff --git a/keyboard/gh60/keymaps/plain.c b/keyboard/gh60/keymaps/plain.c new file mode 100644 index 000000000..3138c1807 --- /dev/null +++ b/keyboard/gh60/keymaps/plain.c @@ -0,0 +1,11 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP(ESC, 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, \ + CAPS,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, RALT,RGUI,APP, RCTL), +}; +const uint16_t PROGMEM fn_actions[] = {}; diff --git a/keyboard/gh60/keymaps/poker.c b/keyboard/gh60/keymaps/poker.c new file mode 100644 index 000000000..7a612ee44 --- /dev/null +++ b/keyboard/gh60/keymaps/poker.c @@ -0,0 +1,104 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 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, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 1: colemak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \ + LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 2: dvorak */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ + TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \ + CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \ + LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 3: workman */ + KEYMAP_ANSI( + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ + TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \ + BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \ + LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 4: Poker with Arrow */ + KEYMAP_ANSI( + 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,LEFT,DOWN,RGHT), + /* 5: Poker with Esc */ + KEYMAP_ANSI( + ESC, 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, TRNS, TRNS,TRNS,TRNS,TRNS), + /* 6: Poker Fn + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | + * |-----------------------------------------------------------| + * | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL | + * |-----------------------------------------------------------| + * | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| | + * |-----------------------------------------------------------| + * | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| | + * |-----------------------------------------------------------| + * | | | | FnS | | | | | + * `-----------------------------------------------------------' + * Fn: to Fn overlay + * FnL: to Layout selector overaly + * FnQ: toggle Esc overlay + * FnS: toggle Arrow overlay + */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* 7: Layout selector + * ,-----------------------------------------------------------. + * | Lq| Lc| Ld| Lw| | | | | | | | | | | + * |-----------------------------------------------------------| + * | |Lq |Lw | | | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Ld | | | | | | | | | | + * |-----------------------------------------------------------| + * | | | |Lc | | | | | | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + * Lq: set Qwerty layout + * Lc: set Colemak layout + * Ld: set Dvorak layout + * Lw: set Workman layout + */ + KEYMAP_ANSI( + FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay + [1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay + [2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay + [3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc) + [4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector + [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout + [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout + [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout + [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout +}; diff --git a/keyboard/gh60/keymaps/poker_bit.c b/keyboard/gh60/keymaps/poker_bit.c new file mode 100644 index 000000000..b8870fdd8 --- /dev/null +++ b/keyboard/gh60/keymaps/poker_bit.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +// Poker fix with toggle and bit operation +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 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, \ + 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, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 4: Poker Default + Fn'd */ + [4] = KEYMAP_ANSI( + TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), + /* 5: Poker with Arrow */ + KEYMAP_ANSI( + 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, PGUP, \ + TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), + /* 6: Poker with Esc */ + KEYMAP_ANSI( + ESC, 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, TRNS, TRNS,TRNS,TRNS,TRNS), + /* 7: Poker with Arrow + Fn'd */ + KEYMAP_ANSI( + 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,LEFT,DOWN,RGHT), +}; +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc) + [1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle + [2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle + [3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow) + [4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc) +}; diff --git a/keyboard/gh60/keymaps/poker_set.c b/keyboard/gh60/keymaps/poker_set.c new file mode 100644 index 000000000..aaa31fc57 --- /dev/null +++ b/keyboard/gh60/keymaps/poker_set.c @@ -0,0 +1,82 @@ +#include "keymap_common.h" + +// Poker fix with set(state transition) +// Fn + Esc = ` +// Fn + {left, down, up, right} = {home, pgdown, pgup, end} +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* 0: qwerty */ + KEYMAP_ANSI( + GRV, 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, \ + 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, \ + LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), + /* 1: Poker with Arrow */ + KEYMAP_ANSI( + 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, FN1, LEFT,DOWN,RGHT), + /* 2: Poker with Esc */ + KEYMAP_ANSI( + ESC, 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, TRNS, FN2, TRNS,TRNS,TRNS), + /* 3: Poker with Arrow and Esc */ + KEYMAP_ANSI( + ESC, 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, FN3, LEFT,DOWN,RGHT), + /* 4: Poker Fn'd */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), + /* 5: Poker Fn'd arrow */ + KEYMAP_ANSI( + ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), + /* 6: Poker Fn'd Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ + TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), + /* 7: Poker Fn'd Arrow + Esc */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ + TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ + TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \ + TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ + TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + /* Poker Layout */ + [0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press + [1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press + [2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press + [3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press + + //[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release + [4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release + [5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release + [6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release + [7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release + + [8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) +}; diff --git a/keyboard/gh60/keymaps/spacefn.c b/keyboard/gh60/keymaps/spacefn.c new file mode 100644 index 000000000..8077dcee7 --- /dev/null +++ b/keyboard/gh60/keymaps/spacefn.c @@ -0,0 +1,55 @@ +#include "keymap_common.h" + +/* + * SpaceFN + * http://geekhack.org/index.php?topic=51069.0 + */ +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: 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 |App |Ctrl| + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + ESC, 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, \ + CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ + LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL), + + /* Overlay 1: SpaceFN + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | + * |-----------------------------------------------------------| + * | | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | | | | | | |PgU|Lef|Dow|Rig| | | | + * |-----------------------------------------------------------| + * | | | | | |Spc|PgD|` |~ | | | | + * |-----------------------------------------------------------| + * | | | | | | | | | + * `-----------------------------------------------------------' + */ + KEYMAP_ANSI( + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \ + TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,TRNS, TRNS, \ + TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS), +}; + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), + [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde +}; diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile index 5a179bd24..d434246ce 100644 --- a/keyboard/hhkb/Makefile +++ b/keyboard/hhkb/Makefile @@ -129,17 +129,17 @@ NKRO_ENABLE = yes # USB Nkey Rollover # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc index 7d0f8c3a9..403a8ec60 100644 --- a/keyboard/hhkb/Makefile.pjrc +++ b/keyboard/hhkb/Makefile.pjrc @@ -18,9 +18,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_hasu.c $(SRC) + SRC := keymaps/hasu.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb/Makefile.rn42 b/keyboard/hhkb/Makefile.rn42 index cbb2b744c..a730442af 100644 --- a/keyboard/hhkb/Makefile.rn42 +++ b/keyboard/hhkb/Makefile.rn42 @@ -122,17 +122,17 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md index fcd72e194..e20c23d82 100644 --- a/keyboard/hhkb/README.md +++ b/keyboard/hhkb/README.md @@ -76,7 +76,7 @@ Use [Teensy Loader] if your controller is Teensy/Teensy++. ##Keymap -To define your own keymap create file named `keymap_.c` and see [keymap document](../../doc/keymap.md) and existent keymap files. +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. ##Hardware diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymap_hasu.c deleted file mode 100644 index a5602ded3..000000000 --- a/keyboard/hhkb/keymap_hasu.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Hasu: my personal keymap - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* 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|Fn3| '|Fn6 | - * |-----------------------------------------------------------| - * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| - * `-----------------------------------------------------------' - * |Gui|Alt | Fn4 |Fn5 |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, \ - LGUI,LALT, FN4, FN5, RGUI), - - /* Layer 1: HHKB mode[HHKB Fn] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| - * |-----------------------------------------------------------| - * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | - * |-----------------------------------------------------------| - * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | - * `-----------------------------------------------------------' - * |Gui|Alt | Space |Alt |Gui| - * `-------------------------------------------' - */ - [1] = \ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ - LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ - LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ - LGUI,LALT, TRNS, RALT,RGUI), - - /* 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, \ - LGUI,LALT, SPC, RALT,RGUI), - - /* 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, \ - LGUI,LALT, BTN1, 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, \ - LGUI,LALT, TRNS, TRNS,TRNS), - -#if 0 - /* Layer 3: Mouse mode(HJKL)[Semicolon] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| | | |Backs| - * |-----------------------------------------------------------| - * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Mb1 |Alt |Fn0| - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - TAB, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, NO, NO, BSPC, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,SLSH,RSFT,NO, \ - LGUI,LALT, BTN1, RALT,TRNS), - - /* Layer4: Mouse mode(HJKL)[Space] - * ,-----------------------------------------------------------. - * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| - * |-----------------------------------------------------------| - * |Tab | | | | | |MwL|MwD|MwU|MwR| |Wbk|Wfr|Alt-T| - * |-----------------------------------------------------------| - * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | - * |-----------------------------------------------------------| - * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Fn0 |Alt |Fn0| - * `--------------------------------------------' - * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ - FN8, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, FN9, FN10,FN8, \ - LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,BTN1,NO, ENT, \ - LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,NO, \ - LGUI,LALT, TRNS, RALT,RGUI), -#endif -#if 0 - /* Layer x: Matias half-qwerty keyboard style[Space] - * ,-----------------------------------------------------------. - * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| - * |-----------------------------------------------------------| - * |Backs| P| O| I| U| Y| T| R| E| W| Q| | |Tab | - * |-----------------------------------------------------------| - * |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control | - * |-----------------------------------------------------------| - * |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift | | - * `-----------------------------------------------------------' - * |Gui |Alt | Fn0 |Alt |Gui| - * `--------------------------------------------' - */ - KEYMAP(MINS,0, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO, NO, NO, ESC, \ - BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ - LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ - LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ - LGUI,LALT, TRNS, RALT,RGUI), -#endif -}; - - - -/* id for user defined functions */ -enum function_id { - LSHIFT_LPAREN, -}; - -enum macro_id { - HELLO, - VOLUP, - ALT_TAB, -}; - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { -#else -const uint16_t fn_actions[] PROGMEM = { -#endif - [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), - -// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace -// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc -// [x] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' -// [x] = ACTION_MACRO(HELLO), // Macro: say hello -// [x] = ACTION_MACRO(VOLUP), // Macro: media key -}; - - -/* - * 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/keyboard/hhkb/keymap_hhkb.c b/keyboard/hhkb/keymap_hhkb.c deleted file mode 100644 index 86ad0f5ee..000000000 --- a/keyboard/hhkb/keymap_hhkb.c +++ /dev/null @@ -1,95 +0,0 @@ -/* - * HHKB Layout - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* 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| ;| '|Enter | - * |-----------------------------------------------------------| - * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| - * `-----------------------------------------------------------' - * |Alt|Gui | Space |Gui |Alt| - * `-------------------------------------------' - */ - 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, \ - LALT,LGUI, SPC, RGUI,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| | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - 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), -}; - - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { - [0] = ACTION_LAYER_MOMENTARY(1), - [1] = ACTION_LAYER_MOMENTARY(2), - [2] = ACTION_LAYER_MOMENTARY(3), - [3] = ACTION_LAYER_MOMENTARY(4), - [4] = ACTION_LAYER_MOMENTARY(5), - [5] = ACTION_LAYER_MOMENTARY(6), - [6] = ACTION_LAYER_MOMENTARY(7), - [7] = ACTION_LAYER_TOGGLE(1), - [8] = ACTION_LAYER_TOGGLE(2), - [9] = ACTION_LAYER_TOGGLE(3), - [10] = ACTION_LAYER_TAP_TOGGLE(1), - [11] = ACTION_LAYER_TAP_TOGGLE(2), - [12] = ACTION_LAYER_TAP_TOGGLE(3), - [13] = ACTION_LAYER_TAP_KEY(1, KC_A), - [14] = ACTION_LAYER_TAP_KEY(2, KC_F), - [15] = ACTION_LAYER_TAP_KEY(3, KC_J), - [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE), - [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON), - [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE), - [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH), - [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE), - [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE), - [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE), - [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER), - [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC), - [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE), - [26] = ACTION_MODS_ONESHOT(MOD_LCTL), - [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), - [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE), - [29] = ACTION_MODS_ONESHOT(MOD_LSFT), - [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ESC), - [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSPACE), -}; -#else -const uint16_t fn_actions[] PROGMEM = { - [0] = ACTION_LAYER_MOMENTARY(1), -}; -#endif diff --git a/keyboard/hhkb/keymap_jp.c b/keyboard/hhkb/keymap_jp.c deleted file mode 100644 index 48d0ee70b..000000000 --- a/keyboard/hhkb/keymap_jp.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * HHKB JP Layout - */ -#include "keymap_common.h" - - -#ifdef KEYMAP_SECTION_ENABLE -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { -#else -const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { -#endif - /* Layer 0: Default Layer */ - KEYMAP_JP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, \ - LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,BSLS,ENT, \ - LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, UP, RSFT, \ - FN0, ZKHK,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,FN0, LEFT,DOWN,RGHT), - - /* 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| | | | - * |-----------------------------------------------------------| - * | || | | | | | | | | || | | | - * `-----------------------------------------------------------' - */ - KEYMAP_JP(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, \ - TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS,PENT, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS), -}; - - - -/* - * Fn action definition - */ -#ifdef KEYMAP_SECTION_ENABLE -const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { -#else -const uint16_t fn_actions[] PROGMEM = { -#endif - [0] = ACTION_LAYER_MOMENTARY(1), -}; diff --git a/keyboard/hhkb/keymap_spacefn.c b/keyboard/hhkb/keymap_spacefn.c deleted file mode 100644 index deff920ae..000000000 --- a/keyboard/hhkb/keymap_spacefn.c +++ /dev/null @@ -1,116 +0,0 @@ -/* - * SpaceFN - * http://geekhack.org/index.php?topic=51069.0 - */ -#include "keymap_common.h" - - -const uint8_t PROGMEM 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 | SpaceFN |Alt |Gui| - * `-------------------------------------------' - */ - KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, BSPC, \ - TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ - 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, \ - LGUI,LALT, FN1, RALT,RGUI), - - /* 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| | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - 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, SPC, TRNS,TRNS), - - /* Layer 2: SpaceFN - * ,-----------------------------------------------------------. - * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Del| - * |-----------------------------------------------------------| - * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins | - * |-----------------------------------------------------------| - * | | | | | | |PgU|Lef|Dow|Rig| | | | - * |-----------------------------------------------------------| - * | | | | | |Spc|PgD|` |~ | | | | | - * `-----------------------------------------------------------' - * | | | | | | - * `-------------------------------------------' - */ - KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, \ - TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,FN3, END, PSCR,SLCK,PAUS,INS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS, \ - TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN2, TRNS,TRNS,TRNS,NO, \ - TRNS,TRNS, TRNS, TRNS,TRNS), -}; - - -/* - * user defined action function - */ -enum function_id { - CTRL_SPACE_I, // Ctrl + Up(SpaceFN) -> PgUp -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -# define MODS_CTRL_MASK (MOD_BIT(KC_LCTRL)|MOD_BIT(KC_RCTRL)) - static uint8_t ctrl_space_i_prev_ctrl; - - switch (id) { - // Ctrl + Up(SpaceFN) -> PgUp - case CTRL_SPACE_I: - ctrl_space_i_prev_ctrl = get_mods()&MODS_CTRL_MASK; - if (record->event.pressed) { - if (ctrl_space_i_prev_ctrl) { - del_mods(ctrl_space_i_prev_ctrl); // remove Ctrl - add_key(KC_PGUP); - send_keyboard_report(); // send PgUp without Ctrl - add_mods(ctrl_space_i_prev_ctrl); // return Ctrl but not sent - } else { - add_key(KC_UP); - send_keyboard_report(); - } - } else { - if (ctrl_space_i_prev_ctrl) { - del_key(KC_PGUP); - send_keyboard_report(); - } else { - del_key(KC_UP); - send_keyboard_report(); - } - } - break; - } -} - - -/* - * Fn action definition - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_LAYER_MOMENTARY(1), - [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), - [2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde - [3] = ACTION_FUNCTION(CTRL_SPACE_I), // Ctrl + Up(SpaceFN) -> PgUp -}; diff --git a/keyboard/hhkb/keymaps/hasu.c b/keyboard/hhkb/keymaps/hasu.c new file mode 100644 index 000000000..a5602ded3 --- /dev/null +++ b/keyboard/hhkb/keymaps/hasu.c @@ -0,0 +1,282 @@ +/* + * Hasu: my personal keymap + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* 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|Fn3| '|Fn6 | + * |-----------------------------------------------------------| + * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1| + * `-----------------------------------------------------------' + * |Gui|Alt | Fn4 |Fn5 |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, \ + LGUI,LALT, FN4, FN5, RGUI), + + /* Layer 1: HHKB mode[HHKB Fn] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs| + * |-----------------------------------------------------------| + * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter | + * |-----------------------------------------------------------| + * |Shift | | | | | | +| -|End|PgD|Dow|Shift | | + * `-----------------------------------------------------------' + * |Gui|Alt | Space |Alt |Gui| + * `-------------------------------------------' + */ + [1] = \ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSPC, \ + LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT,ENT, \ + LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN,RSFT,TRNS, \ + LGUI,LALT, TRNS, RALT,RGUI), + + /* 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, \ + LGUI,LALT, SPC, RALT,RGUI), + + /* 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, \ + LGUI,LALT, BTN1, 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, \ + LGUI,LALT, TRNS, TRNS,TRNS), + +#if 0 + /* Layer 3: Mouse mode(HJKL)[Semicolon] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| | | |Backs| + * |-----------------------------------------------------------| + * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Mb1 |Alt |Fn0| + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + TAB, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, NO, NO, BSPC, \ + LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,TRNS,QUOT,ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,SLSH,RSFT,NO, \ + LGUI,LALT, BTN1, RALT,TRNS), + + /* Layer4: Mouse mode(HJKL)[Space] + * ,-----------------------------------------------------------. + * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del| + * |-----------------------------------------------------------| + * |Tab | | | | | |MwL|MwD|MwU|MwR| |Wbk|Wfr|Alt-T| + * |-----------------------------------------------------------| + * |Contro| | | | | |McL|McD|McU|McR|Fn0| |Return | + * |-----------------------------------------------------------| + * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Fn0 |Alt |Fn0| + * `--------------------------------------------' + * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \ + FN8, NO, NO, NO, NO, NO, NO, WH_D,WH_U,RGHT,NO, FN9, FN10,FN8, \ + LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,BTN1,NO, ENT, \ + LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,FN9, FN10,NO, RSFT,NO, \ + LGUI,LALT, TRNS, RALT,RGUI), +#endif +#if 0 + /* Layer x: Matias half-qwerty keyboard style[Space] + * ,-----------------------------------------------------------. + * | -| 0| 9| 8| 7| 6| 5| 4| 3| 2| 1| | | |Esc| + * |-----------------------------------------------------------| + * |Backs| P| O| I| U| Y| T| R| E| W| Q| | |Tab | + * |-----------------------------------------------------------| + * |Contro| ;| L| K| J| H| G| F| D| S| A|Con|Control | + * |-----------------------------------------------------------| + * |Shift | /| .| ,| M| N| B| V| C| X| Z|Shift | | + * `-----------------------------------------------------------' + * |Gui |Alt | Fn0 |Alt |Gui| + * `--------------------------------------------' + */ + KEYMAP(MINS,0, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO, NO, NO, ESC, \ + BSPC,P, O, I, U, Y, T, R, E, W, Q, NO, NO, TAB, \ + LCTL,SCLN,L, K, J, H, G, F, D, S, A, RCTL,RCTL, \ + LSFT,SLSH,DOT, COMM,M, N, B, V, C, X, Z, RSFT,NO, \ + LGUI,LALT, TRNS, RALT,RGUI), +#endif +}; + + + +/* id for user defined functions */ +enum function_id { + LSHIFT_LPAREN, +}; + +enum macro_id { + HELLO, + VOLUP, + ALT_TAB, +}; + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { +#else +const uint16_t fn_actions[] PROGMEM = { +#endif + [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), + +// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_BSPC), // LControl with tap Backspace +// [x] = ACTION_LMOD_TAP_KEY(KC_LCTL, KC_ESC), // LControl with tap Esc +// [x] = ACTION_FUNCTION_TAP(LSHIFT_LPAREN), // Function: LShift with tap '(' +// [x] = ACTION_MACRO(HELLO), // Macro: say hello +// [x] = ACTION_MACRO(VOLUP), // Macro: media key +}; + + +/* + * 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/keyboard/hhkb/keymaps/hhkb.c b/keyboard/hhkb/keymaps/hhkb.c new file mode 100644 index 000000000..86ad0f5ee --- /dev/null +++ b/keyboard/hhkb/keymaps/hhkb.c @@ -0,0 +1,95 @@ +/* + * HHKB Layout + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* 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| ;| '|Enter | + * |-----------------------------------------------------------| + * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0| + * `-----------------------------------------------------------' + * |Alt|Gui | Space |Gui |Alt| + * `-------------------------------------------' + */ + 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, \ + LALT,LGUI, SPC, RGUI,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| | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + 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), +}; + + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { + [0] = ACTION_LAYER_MOMENTARY(1), + [1] = ACTION_LAYER_MOMENTARY(2), + [2] = ACTION_LAYER_MOMENTARY(3), + [3] = ACTION_LAYER_MOMENTARY(4), + [4] = ACTION_LAYER_MOMENTARY(5), + [5] = ACTION_LAYER_MOMENTARY(6), + [6] = ACTION_LAYER_MOMENTARY(7), + [7] = ACTION_LAYER_TOGGLE(1), + [8] = ACTION_LAYER_TOGGLE(2), + [9] = ACTION_LAYER_TOGGLE(3), + [10] = ACTION_LAYER_TAP_TOGGLE(1), + [11] = ACTION_LAYER_TAP_TOGGLE(2), + [12] = ACTION_LAYER_TAP_TOGGLE(3), + [13] = ACTION_LAYER_TAP_KEY(1, KC_A), + [14] = ACTION_LAYER_TAP_KEY(2, KC_F), + [15] = ACTION_LAYER_TAP_KEY(3, KC_J), + [16] = ACTION_LAYER_TAP_KEY(4, KC_SPACE), + [17] = ACTION_LAYER_TAP_KEY(5, KC_SCOLON), + [18] = ACTION_LAYER_TAP_KEY(6, KC_QUOTE), + [19] = ACTION_LAYER_TAP_KEY(7, KC_SLASH), + [20] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_SPACE), + [21] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_SPACE), + [22] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_QUOTE), + [23] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENTER), + [24] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ESC), + [25] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_BSPACE), + [26] = ACTION_MODS_ONESHOT(MOD_LCTL), + [27] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_ESC), + [28] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_BSPACE), + [29] = ACTION_MODS_ONESHOT(MOD_LSFT), + [30] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ESC), + [31] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_BSPACE), +}; +#else +const uint16_t fn_actions[] PROGMEM = { + [0] = ACTION_LAYER_MOMENTARY(1), +}; +#endif diff --git a/keyboard/hhkb/keymaps/jp.c b/keyboard/hhkb/keymaps/jp.c new file mode 100644 index 000000000..48d0ee70b --- /dev/null +++ b/keyboard/hhkb/keymaps/jp.c @@ -0,0 +1,50 @@ +/* + * HHKB JP Layout + */ +#include "keymap_common.h" + + +#ifdef KEYMAP_SECTION_ENABLE +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = { +#endif + /* Layer 0: Default Layer */ + KEYMAP_JP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, JYEN,BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, \ + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT,BSLS,ENT, \ + LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RO, UP, RSFT, \ + FN0, ZKHK,LGUI,LALT,MHEN, SPC, HENK,KANA,RALT,FN0, LEFT,DOWN,RGHT), + + /* 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| | | | + * |-----------------------------------------------------------| + * | || | | | | | | | | || | | | + * `-----------------------------------------------------------' + */ + KEYMAP_JP(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, \ + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,TRNS,PENT, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS), +}; + + + +/* + * Fn action definition + */ +#ifdef KEYMAP_SECTION_ENABLE +const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = { +#else +const uint16_t fn_actions[] PROGMEM = { +#endif + [0] = ACTION_LAYER_MOMENTARY(1), +}; diff --git a/keyboard/hhkb/keymaps/spacefn.c b/keyboard/hhkb/keymaps/spacefn.c new file mode 100644 index 000000000..deff920ae --- /dev/null +++ b/keyboard/hhkb/keymaps/spacefn.c @@ -0,0 +1,116 @@ +/* + * SpaceFN + * http://geekhack.org/index.php?topic=51069.0 + */ +#include "keymap_common.h" + + +const uint8_t PROGMEM 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 | SpaceFN |Alt |Gui| + * `-------------------------------------------' + */ + KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, GRV, BSPC, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ + 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, \ + LGUI,LALT, FN1, RALT,RGUI), + + /* 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| | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + 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, SPC, TRNS,TRNS), + + /* Layer 2: SpaceFN + * ,-----------------------------------------------------------. + * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Del| + * |-----------------------------------------------------------| + * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins | + * |-----------------------------------------------------------| + * | | | | | | |PgU|Lef|Dow|Rig| | | | + * |-----------------------------------------------------------| + * | | | | | |Spc|PgD|` |~ | | | | | + * `-----------------------------------------------------------' + * | | | | | | + * `-------------------------------------------' + */ + KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, \ + TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,FN3, END, PSCR,SLCK,PAUS,INS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS,TRNS, \ + TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN2, TRNS,TRNS,TRNS,NO, \ + TRNS,TRNS, TRNS, TRNS,TRNS), +}; + + +/* + * user defined action function + */ +enum function_id { + CTRL_SPACE_I, // Ctrl + Up(SpaceFN) -> PgUp +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +# define MODS_CTRL_MASK (MOD_BIT(KC_LCTRL)|MOD_BIT(KC_RCTRL)) + static uint8_t ctrl_space_i_prev_ctrl; + + switch (id) { + // Ctrl + Up(SpaceFN) -> PgUp + case CTRL_SPACE_I: + ctrl_space_i_prev_ctrl = get_mods()&MODS_CTRL_MASK; + if (record->event.pressed) { + if (ctrl_space_i_prev_ctrl) { + del_mods(ctrl_space_i_prev_ctrl); // remove Ctrl + add_key(KC_PGUP); + send_keyboard_report(); // send PgUp without Ctrl + add_mods(ctrl_space_i_prev_ctrl); // return Ctrl but not sent + } else { + add_key(KC_UP); + send_keyboard_report(); + } + } else { + if (ctrl_space_i_prev_ctrl) { + del_key(KC_PGUP); + send_keyboard_report(); + } else { + del_key(KC_UP); + send_keyboard_report(); + } + } + break; + } +} + + +/* + * Fn action definition + */ +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_MOMENTARY(1), + [1] = ACTION_LAYER_TAP_KEY(2, KC_SPACE), + [2] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde + [3] = ACTION_FUNCTION(CTRL_SPACE_I), // Ctrl + Up(SpaceFN) -> PgUp +}; diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile index 8bd44100b..21ba261a2 100644 --- a/keyboard/hhkb_qmk/Makefile +++ b/keyboard/hhkb_qmk/Makefile @@ -54,9 +54,9 @@ SRC = hhkb_qmk.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md index 606025c41..389407b3a 100644 --- a/keyboard/hhkb_qmk/README.md +++ b/keyboard/hhkb_qmk/README.md @@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight 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 `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +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 **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/keymaps/default.c b/keyboard/hhkb_qmk/keymaps/default.c new file mode 100644 index 000000000..bcd8ead37 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/default.c @@ -0,0 +1,78 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * default HHKB Layout + */ +#include "hhkb_qmk.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/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/keymap_default.c deleted file mode 100644 index bcd8ead37..000000000 --- a/keyboard/hhkb_qmk/keymaps/keymap_default.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * default HHKB Layout - */ -#include "hhkb_qmk.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/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/keymap_lxol.c deleted file mode 100644 index 3256fda51..000000000 --- a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c +++ /dev/null @@ -1,208 +0,0 @@ -/* -*- eval: (turn-on-orgtbl); -*- - * lxol HHKB Layout - */ -#include "hhkb_qmk.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/keyboard/hhkb_qmk/keymaps/lxol.c b/keyboard/hhkb_qmk/keymaps/lxol.c new file mode 100644 index 000000000..3256fda51 --- /dev/null +++ b/keyboard/hhkb_qmk/keymaps/lxol.c @@ -0,0 +1,208 @@ +/* -*- eval: (turn-on-orgtbl); -*- + * lxol HHKB Layout + */ +#include "hhkb_qmk.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/keyboard/jd45/Makefile b/keyboard/jd45/Makefile index 076dced82..f6a8d10c5 100644 --- a/keyboard/jd45/Makefile +++ b/keyboard/jd45/Makefile @@ -54,9 +54,9 @@ SRC = jd45.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/jd45/keymaps/default.c b/keyboard/jd45/keymaps/default.c new file mode 100644 index 000000000..05dd46e79 --- /dev/null +++ b/keyboard/jd45/keymaps/default.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/keyboard/jd45/keymaps/justin.c b/keyboard/jd45/keymaps/justin.c new file mode 100644 index 000000000..f261b5463 --- /dev/null +++ b/keyboard/jd45/keymaps/justin.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/keyboard/jd45/keymaps/keymap_default.c b/keyboard/jd45/keymaps/keymap_default.c deleted file mode 100644 index 05dd46e79..000000000 --- a/keyboard/jd45/keymaps/keymap_default.c +++ /dev/null @@ -1,31 +0,0 @@ -#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/keyboard/jd45/keymaps/keymap_justin.c b/keyboard/jd45/keymaps/keymap_justin.c deleted file mode 100644 index f261b5463..000000000 --- a/keyboard/jd45/keymaps/keymap_justin.c +++ /dev/null @@ -1,101 +0,0 @@ -#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/keyboard/planck/README.md b/keyboard/planck/README.md index 3ba0cc152..d9a1e3bee 100644 --- a/keyboard/planck/README.md +++ b/keyboard/planck/README.md @@ -16,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight 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. +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. +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) diff --git a/keyboard/planck/common_keymaps/keymap_mitch.c b/keyboard/planck/common_keymaps/keymap_mitch.c deleted file mode 100644 index f7df7bbba..000000000 --- a/keyboard/planck/common_keymaps/keymap_mitch.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.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/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c new file mode 100644 index 000000000..f7df7bbba --- /dev/null +++ b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c @@ -0,0 +1,49 @@ +#include "keymap_common.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/quantum/template/README.md b/quantum/template/README.md index dc163a2f4..39f9f59d1 100644 --- a/quantum/template/README.md +++ b/quantum/template/README.md @@ -15,7 +15,7 @@ Depending on which keymap you would like to use, you will have to compile slight 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. +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: ``` -- cgit v1.2.3 From ac0729787ff0e8d1bd1202a28f5edf9125c00b0c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:43:07 -0400 Subject: preonic update --- keyboard/preonic/Makefile | 56 +++-- keyboard/preonic/Makefile.pjrc | 116 ---------- keyboard/preonic/PCB_GUIDE.md | 116 ---------- keyboard/preonic/README.md | 49 +--- keyboard/preonic/__avr_gdbinit | 6 - keyboard/preonic/analog.c | 53 ----- keyboard/preonic/analog.h | 36 --- keyboard/preonic/beeps.c | 246 --------------------- keyboard/preonic/beeps.h | 12 - keyboard/preonic/config.h | 18 +- keyboard/preonic/config_definitions.h | 50 ----- keyboard/preonic/extended_keymap_common.c | 216 ------------------ keyboard/preonic/extended_keymap_common.h | 181 --------------- .../extended_keymaps/extended_keymap_default.c | 70 ------ .../extended_keymaps/extended_keymap_lock.c | 81 ------- keyboard/preonic/keymap_midi.c | 110 --------- keyboard/preonic/keymap_midi.h | 220 ------------------ keyboard/preonic/led.c | 38 ---- keyboard/preonic/matrix.c | 234 -------------------- quantum/keymap_midi.c | 4 +- 20 files changed, 66 insertions(+), 1846 deletions(-) delete mode 100644 keyboard/preonic/Makefile.pjrc delete mode 100644 keyboard/preonic/PCB_GUIDE.md delete mode 100644 keyboard/preonic/__avr_gdbinit delete mode 100644 keyboard/preonic/analog.c delete mode 100644 keyboard/preonic/analog.h delete mode 100644 keyboard/preonic/beeps.c delete mode 100644 keyboard/preonic/beeps.h delete mode 100644 keyboard/preonic/config_definitions.h delete mode 100644 keyboard/preonic/extended_keymap_common.c delete mode 100644 keyboard/preonic/extended_keymap_common.h delete mode 100644 keyboard/preonic/extended_keymaps/extended_keymap_default.c delete mode 100644 keyboard/preonic/extended_keymaps/extended_keymap_lock.c delete mode 100644 keyboard/preonic/keymap_midi.c delete mode 100644 keyboard/preonic/keymap_midi.h delete mode 100644 keyboard/preonic/led.c delete mode 100644 keyboard/preonic/matrix.c (limited to 'keyboard') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 0145e44bc..664aff732 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -27,7 +27,7 @@ # 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, +# 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. @@ -39,25 +39,41 @@ #---------------------------------------------------------------------------- # Target file name (without extension). -TARGET = preonic_lufa +TARGET = preonic + # Directory common source filess exist TOP_DIR = ../.. +TMK_DIR = ../../tmk_core # Directory keyboard dependent files exist TARGET_DIR = . # # project specific files -SRC = extended_keymap_common.c \ - matrix.c \ - led.c \ - backlight.c +SRC = preonic.c + +ifdef keymap + KEYMAP = $(keymap) +endif ifdef KEYMAP - SRC := extended_keymaps/extended_keymap_$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c else - SRC := extended_keymaps/extended_keymap_default.c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +else +$(error Keymap file does not exist) +endif endif +else +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/keymap.c +endif +endif +SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -120,24 +136,26 @@ 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 +# 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 -BACKLIGHT_ENABLE = yes - -ifdef MIDI_ENABLE - SRC += keymap_midi.c \ - beeps.c +MIDI_ENABLE = YES # MIDI controls +AUDIO_ENABLE = YES # Audio output on port C6 +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. + +ifdef BACKLIGHT_ENABLE + SRC += backlight.c endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax # Search Path VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) -include $(TOP_DIR)/protocol/lufa.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/preonic/Makefile.pjrc b/keyboard/preonic/Makefile.pjrc deleted file mode 100644 index be83ba18b..000000000 --- a/keyboard/preonic/Makefile.pjrc +++ /dev/null @@ -1,116 +0,0 @@ -#---------------------------------------------------------------------------- -# 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". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = gh60_pjrc - -# Directory common source filess exist -TOP_DIR = ../.. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# project specific files -SRC = keymap_common.c \ - matrix.c \ - led.c - -ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) -else - SRC := keymap_jack.c $(SRC) -endif - -CONFIG_H = config.h - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -MCU = atmega32u4 -#MCU = at90usb1286 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -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(+5000) -EXTRAKEY_ENABLE = yes # Audio control and System control(+600) -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(+500) -#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support - - -# Search Path -VPATH += $(TARGET_DIR) -VPATH += $(TOP_DIR) - -include $(TOP_DIR)/protocol/pjrc.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk - -plain: OPT_DEFS += -DKEYMAP_PLAIN -plain: all - -poker: OPT_DEFS += -DKEYMAP_POKER -poker: all - -poker_set: OPT_DEFS += -DKEYMAP_POKER_SET -poker_set: all - -poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT -poker_bit: all diff --git a/keyboard/preonic/PCB_GUIDE.md b/keyboard/preonic/PCB_GUIDE.md deleted file mode 100644 index c3004c75a..000000000 --- a/keyboard/preonic/PCB_GUIDE.md +++ /dev/null @@ -1,116 +0,0 @@ -# Planck Firmware Guide - -## Setting up the environment - -### Windows -1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler. -2. Install [DFU-Programmer][dfu-prog] (the -win one). -3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver. - -### Mac -1. Install [CrossPack](http://www.obdev.at/products/crosspack/index.html) or install Xcode from the App Store and install the Command Line Tools from `Xcode->Preferences->Downloads`. -2. Install [DFU-Programmer][dfu-prog]. - -### Linux -1. Install AVR GCC with your favorite package manager. -2. Install [DFU-Programmer][dfu-prog]. - -##Verify Your Installation -1. Clone the following repository: https://github.com/jackhumbert/tmk_keyboard -2. Open a Terminal and `cd` into `tmk_keyboard/keyboard/planck` -3. Run `make`. This should output a lot of information about the build process. - -## Using the built-in functions - -Here is a list of some of the functions available from the command line: - -* `make clean`: clean the environment - may be required in-between builds -* `make`: compile the code -* `make COMMON=true`: compile with the common (non-extended) keymap -* `make MATRIX=`: compile with the referenced matrix file. Default if unspecified is `matrix_pcb.c`. For handwired boards, use `matrix_handwired.c`. -* `make KEYMAP=`: compile with the extended keymap file `extended_keymaps/extended_keymap_.c` -* `make COMMON=true KEYMAP=`: compile with the common keymap file `common_keymaps/keymap_.c` -* `make dfu`: build and flash the layout to the PCB -* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash) - -Generally, the instructions to flash the PCB are as follows: - -1. Make changes to the appropriate keymap file -2. Save the file -3. `make clean` -4. Press the reset button on the PCB/press the key with the `RESET` keycode -5. `make dfu` - use the necessary `KEYMAP=` and/or `COMMON=true` arguments here. - -## Extended keymap - -### Keymap - -Unlike the common keymap, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/planck/extended_keymap_common.h). - -You can use modifiers with keycodes like this: - - LCTL(KC_C) - -Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like: - - LCTL(LALT(KC_C)) - -That will generate Ctrl+Alt+c. The entire list of these functions is here: - -* `LCTL()`: Left control -* `LSFT()` / `S()`: Left shift -* `LALT()`: Left alt/opt -* `LGUI()`: Left win/cmd -* `RCTL()`: Right control -* `RSFT()`: Right shift -* `RALT()`: Right alt/opt -* `RGUI()`: Right win/cmd - -`S(KC_1)`-like entries are useful in writing keymaps for the Planck. - -### Other keycodes - -A number of other keycodes have been added that you may find useful: - -* `CM_`: the Colemak equivalent of a key (in place of `KC_`), when using Colemak in software (`CM_O` generates `KC_SCLN`) -* `RESET`: jump to bootloader for flashing (same as press the reset button) -* `BL_STEP`: step through the backlight brightnesses -* `BL_<0-15>`: set backlight brightness to 0-15 -* `BL_DEC`: lower the backlight brightness -* `BL_INC`: raise the backlight brightness -* `BL_TOGG`: toggle the backlight on/off - -### Function layers - -The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC()` notation. `F()` is a shortcut for this. - -The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action). - -### Macros - -Macros have been setup in the `extended_keymaps/extended_keymaps_default.c` file so that you can use `M()` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`): - - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_A), END); - break; - case 1: - return MACRODOWN(TYPE(KC_B), END); - break; - case 2: - return MACRODOWN(TYPE(KC_C), END); - break; - case 3: - return MACRODOWN(TYPE(KC_D), END); - break; - } - return MACRO_NONE; - -`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke. - -[cygwin]: https://www.cygwin.com/ -[mingw]: http://www.mingw.org/ -[mhv]: https://infernoembedded.com/products/avr-tools -[winavr]: http://winavr.sourceforge.net/ -[crosspack]: http://www.obdev.at/products/crosspack/index.html -[dfu-prog]: http://dfu-programmer.sourceforge.net/ diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index ee824d26e..3ba0cc152 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -2,54 +2,29 @@ Planck keyboard firmware ====================== DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). -## Extended Keymap -If you include extended_keymap_common.h instead of keymap_common.h at the top of your file, you'll have access to a bunch of goodies: +## Quantum MK Firmware -- Use `LSFT()`, `LCTL()`, et. al. (listed in extended_keymap_common.h) as modifiers for keys (daisy-chain-able) -- Use `FUNC(1)` instead of `FN1` (etc.) to access the function layers beyond the 32 function layer limit -- Use `CM_F` instead of `KC_F` to get the ColeMak equivilent for shortcuts (maps backwards) -- Use `MACRODOWN()` instead of `MACRO()` to easily make a keydown macro (`CM_*` works here too) +For the full Quantum feature list, see [the parent README.md](/README.md). -### Some notes on usage: +## Building -- The `KEYMAP()` macro is unable to be used due to the bitwise modifications that take place - refer to extended_keymap_jack.c to see how to set things up with the `KC_` prefix -- Keep an eye on the Makefile - this needs to include the correct files to work -- Don't forget to use `const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {` instead of the 8bit equivilent - -## Build - -Follow [this guide](http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) to setup your development environment before anything else. Abbreviated instructions are provide at the [bottom of this document](https://github.com/rswiernik/tmk_keyboard/tree/rswiernik_dev/keyboard/planck#environment-setup) - -Download the whole firmware [here](https://github.com/jackhumbert/tmk_keyboard/archive/master.zip) and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex that you can load with the Teensy app onto your Planck (once you've hit reset/shorted GND & RST). +Download or clone the whole firmware and navigate to the keyboard/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 move to the tmk\_keyboard/keyboard/planck/ and run `make` as follows: -``` -$ make -``` - -## Keymap -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 `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. - -####**Extended Keymaps** - -To build the firmware binary hex file with an extended keymap just do `make` with `KEYMAP` option like: -``` -$ make KEYMAP=[common|jack|] -``` -_The only applicable keymaps will work with this option._ Extended keymaps follow the format **__extended\_keymap\_\.c__** +### Default +To build with the default keymap, simply run `make`. -####**Common Keymaps** +### 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. -Building with a common keymap is as simple as adding the COMMON option. Note that only +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` -$ make KEYMAP=[common|jack|] COMMON=true +$ make KEYMAP=[default|jack|] ``` -_The only applicable keymaps will work with this option._ Common keymaps follow the format **__keymap\_\.c__** +Keymaps follow the format **__.c__** and are stored in the `keymaps` folder. -## Notable TMK forks (which some of the keymap files are from) +### 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) diff --git a/keyboard/preonic/__avr_gdbinit b/keyboard/preonic/__avr_gdbinit deleted file mode 100644 index afc51e6d1..000000000 --- a/keyboard/preonic/__avr_gdbinit +++ /dev/null @@ -1,6 +0,0 @@ -define reset -SIGNAL SIGHUP -end -file planck_lufa.elf -target remote localhost:4242 -break main diff --git a/keyboard/preonic/analog.c b/keyboard/preonic/analog.c deleted file mode 100644 index 49b84ee0e..000000000 --- a/keyboard/preonic/analog.c +++ /dev/null @@ -1,53 +0,0 @@ -// Simple analog to digitial conversion - -#include -#include -#include -#include "analog.h" - - -static uint8_t aref = (1<= 12) return 0; - return adc_read(pgm_read_byte(pin_to_mux + pin)); -#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) - if (pin >= 8) return 0; - return adc_read(pin); -#else - return 0; -#endif -} - -// Mux input -int16_t adc_read(uint8_t mux) -{ -#if defined(__AVR_AT90USB162__) - return 0; -#else - uint8_t low; - - ADCSRA = (1< - -void analogReference(uint8_t mode); -int16_t analogRead(uint8_t pin); -int16_t adc_read(uint8_t mux); - -#define ADC_REF_POWER (1< -#include -#include -#include - -#define PI 3.14159265 - -void delay_us(int count) { - while(count--) { - _delay_us(1); - } -} - -int voices = 0; -double frequency = 0; -int volume = 0; -int position = 0; - -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; -#define RANGE 1000 -volatile int i=0; //elements of the wave - - -void beeps() { - play_notes(); -} - -void send_freq(double freq, int vol) { - int duty = (((double)F_CPU) / freq); - ICR3 = duty; // Set max to the period - OCR3A = duty >> (0x10 - vol); // Set compare to half the period -} - -void stop_all_notes() { - voices = 0; - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - - for (int i = 0; i < 8; i++) { - frequencies[i] = 0; - volumes[i] = 0; - } -} - -void stop_note(double freq) { - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - if (frequency < freq) { - sliding = true; - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - } -} - -void init_notes() { - // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); - // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); - - // DDRC |= (1<<6); - - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // ICR3 = 0xFFFF; - // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element - - - // cli(); - - // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz, - // this gives a timer interrupt at 15625Hz. */ - // TIMSK3 = (1 << OCIE3A); - - // /* clear/reset timer on match */ - // // TCCR3A = 1<> 8) & 0x00FF) -// #define lowByte(c) (c & 0x00FF) - -ISR(TIMER3_COMPA_vect) { - - if (ICR3 > 0 && !sliding) { - switch (position) { - case 0: { - int duty = (((double)F_CPU) / (frequency)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 1: { - int duty = (((double)F_CPU) / (frequency*2)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 2: { - int duty = (((double)F_CPU) / (frequency*3)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - } - position = (position + 1) % 3; - } -// /* OCR2A has been cleared, per TCCR2A above */ -// // OCR3A = 127; - -// // pos1 += incr1; -// // pos2 += incr2; -// // pos3 += incr3; - -// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)]; - -// // OCR3A = sample; - - -// OCR3A=pgm_read_byte(&sinewave[pos1]); -// pos1++; -// // PORTC &= ~(1<<6); - -// /* buffered, 1x gain, active mode */ -// // SPDR = highByte(sample) | 0x70; -// // while (!(SPSR & (1< 0) { - DDRC |= (1<<6); - - TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - - if (frequency != 0) { - if (frequency < freq) { - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - } else if (frequency > freq) { - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - } - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - // ICR3 = 0xFFFF; - // for (int i = 0; i < 10000; i++) { - // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF; - // // _delay_us(50); - // } - - // TCCR3A = 0; - // TCCR3B = 0; -} - -// void note(int x, float length) { -// DDRC |= (1<<6); -// int t = (int)(440*pow(2,-x/12.0)); // starting note -// for (int y = 0; y < length*1000/t; y++) { // note length -// PORTC |= (1<<6); -// delay_us(t); -// PORTC &= ~(1<<6); -// delay_us(t); -// } -// PORTC &= ~(1<<6); -// } - -// void true_note(float x, float y, float length) { -// for (uint32_t i = 0; i < length * 50; i++) { -// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); -// for (int u = 0; u < 8; u++) { -// if (v & (1 << u) && !(PORTC&(1<<6))) -// PORTC |= (1<<6); -// else if (PORTC&(1<<6)) -// PORTC &= ~(1<<6); -// } -// } -// PORTC &= ~(1<<6); -// } \ No newline at end of file diff --git a/keyboard/preonic/beeps.h b/keyboard/preonic/beeps.h deleted file mode 100644 index 378983c60..000000000 --- a/keyboard/preonic/beeps.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include - -void note(int x, float length); -void beeps(); -void true_note(float x, float y, float length); -void play_note(double freq, int vol); -void stop_note(double freq); -void stop_all_notes(); -void init_notes(); \ No newline at end of file diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h index cad269c9d..5528667fa 100644 --- a/keyboard/preonic/config.h +++ b/keyboard/preonic/config.h @@ -18,11 +18,11 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_definitions.h" +#include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6062 +#define PRODUCT_ID 0x6061 #define DEVICE_VER 0x0001 #define MANUFACTURER Ortholinear Keyboards #define PRODUCT The Preonic Keyboard @@ -34,7 +34,10 @@ along with this program. If not, see . /* Planck PCB default pin-out */ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D1, D0, D5, B5, B6 } +#define ROWS (int []){ D2, D5, B5, B6, D3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -55,6 +58,15 @@ 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/keyboard/preonic/config_definitions.h b/keyboard/preonic/config_definitions.h deleted file mode 100644 index fd138b884..000000000 --- a/keyboard/preonic/config_definitions.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CONFIG_DEFINITIONS_H -#define CONFIG_DEFINITIONS_H - -#define B0 0x20 -#define B1 0x21 -#define B2 0x22 -#define B3 0x23 -#define B4 0x24 -#define B5 0x25 -#define B6 0x26 -#define B7 0x27 -#define C0 0x30 -#define C1 0x31 -#define C2 0x32 -#define C3 0x33 -#define C4 0x34 -#define C5 0x35 -#define C6 0x36 -#define C7 0x37 -#define D0 0x40 -#define D1 0x41 -#define D2 0x42 -#define D3 0x43 -#define D4 0x44 -#define D5 0x45 -#define D6 0x46 -#define D7 0x47 -#define E0 0x50 -#define E1 0x51 -#define E2 0x52 -#define E3 0x53 -#define E4 0x54 -#define E5 0x55 -#define E6 0x56 -#define E7 0x57 -#define F0 0x60 -#define F1 0x61 -#define F2 0x62 -#define F3 0x63 -#define F4 0x64 -#define F5 0x65 -#define F6 0x66 -#define F7 0x67 - - - - - -#endif - diff --git a/keyboard/preonic/extended_keymap_common.c b/keyboard/preonic/extended_keymap_common.c deleted file mode 100644 index 4fa80de7c..000000000 --- a/keyboard/preonic/extended_keymap_common.c +++ /dev/null @@ -1,216 +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 "extended_keymap_common.h" -#include "report.h" -#include "keycode.h" -#include "action_layer.h" -#include "action.h" -#include "action_macro.h" -#include "debug.h" -#include "backlight.h" -#include "keymap_midi.h" -#include - -static action_t keycode_to_action(uint16_t keycode); - -/* 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); - - if (keycode >= 0x0100 && keycode < 0x2000) { - // Has a modifier - action_t action; - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); - return action; - } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits - return keymap_func_to_action(keycode & 0xFFF); - } else if (keycode >= 0x3000 && keycode < 0x4000) { - action_t action; - action.code = ACTION_MACRO(keycode & 0xFF); - return action; - } else if (keycode >= BL_0 & keycode <= BL_15) { - action_t action; - action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); - return action; - } else if (keycode == BL_DEC) { - action_t action; - action.code = ACTION_BACKLIGHT_DECREASE(); - return action; - } else if (keycode == BL_INC) { - action_t action; - action.code = ACTION_BACKLIGHT_INCREASE(); - return action; - } else if (keycode == BL_TOGG) { - action_t action; - action.code = ACTION_BACKLIGHT_TOGGLE(); - return action; - } else if (keycode == BL_STEP) { - action_t action; - action.code = ACTION_BACKLIGHT_STEP(); - return action; - } else if (keycode == RESET) { - bootloader_jump(); - return; - } else if (keycode == DEBUG) { - print("\nDEBUG: enabled.\n"); - debug_enable = true; - return; - } else if (keycode >= 0x6000 && keycode < 0x7000) { - action_t action; - action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); - return action; - } - - switch (keycode) { - case KC_FN0 ... KC_FN31: - return keymap_fn_to_action(keycode); -#ifdef BOOTMAGIC_ENABLE - case KC_CAPSLOCK: - case KC_LOCKING_CAPS: - if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { - return keycode_to_action(KC_LCTL); - } - return keycode_to_action(keycode); - case KC_LCTL: - if (keymap_config.swap_control_capslock) { - return keycode_to_action(KC_CAPSLOCK); - } - return keycode_to_action(KC_LCTL); - case KC_LALT: - if (keymap_config.swap_lalt_lgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - } - return keycode_to_action(KC_LALT); - case KC_LGUI: - if (keymap_config.swap_lalt_lgui) { - return keycode_to_action(KC_LALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - case KC_RALT: - if (keymap_config.swap_ralt_rgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - } - return keycode_to_action(KC_RALT); - case KC_RGUI: - if (keymap_config.swap_ralt_rgui) { - return keycode_to_action(KC_RALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - case KC_GRAVE: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_ESC); - } - return keycode_to_action(KC_GRAVE); - case KC_ESC: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_GRAVE); - } - return keycode_to_action(KC_ESC); - case KC_BSLASH: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSPACE); - } - return keycode_to_action(KC_BSLASH); - case KC_BSPACE: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSLASH); - } - return keycode_to_action(KC_BSPACE); -#endif - default: - return keycode_to_action(keycode); - } -} - - -/* 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 keycode to action */ -static action_t keycode_to_action(uint16_t keycode) -{ - action_t action; - switch (keycode) { - 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; - default: - action.code = ACTION_NO; - break; - } - return action; -} - - -/* 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)]); -} - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; -} - -action_t keymap_func_to_action(uint16_t keycode) -{ - // For FUNC without 8bit limit - return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; -} diff --git a/keyboard/preonic/extended_keymap_common.h b/keyboard/preonic/extended_keymap_common.h deleted file mode 100644 index 7ccfa1b03..000000000 --- a/keyboard/preonic/extended_keymap_common.h +++ /dev/null @@ -1,181 +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 . -*/ - -#ifndef KEYMAP_H -#define KEYMAP_H - -#include -#include -#include "action.h" -#include -#include "keycode.h" -#include "keymap.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -// #include "print.h" -#include "debug.h" - -#ifdef BOOTMAGIC_ENABLE -/* NOTE: Not portable. Bit field order depends on implementation */ -typedef union { - uint16_t raw; - struct { - bool swap_control_capslock:1; - bool capslock_to_control:1; - bool swap_lalt_lgui:1; - bool swap_ralt_rgui:1; - bool no_gui:1; - bool swap_grave_esc:1; - bool swap_backslash_backspace:1; - bool nkro:1; - }; -} keymap_config_t; -keymap_config_t keymap_config; -#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); - -/* translates Fn keycode to action */ -action_t keymap_func_to_action(uint16_t keycode); - -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; - -// Ability to use mods in layouts -#define LCTL(kc) kc | 0x0100 -#define LSFT(kc) kc | 0x0200 -#define LALT(kc) kc | 0x0400 -#define LGUI(kc) kc | 0x0800 -#define RCTL(kc) kc | 0x1100 -#define RSFT(kc) kc | 0x1200 -#define RALT(kc) kc | 0x1400 -#define RGUI(kc) kc | 0x1800 - -// Alias for function layers than expand past FN31 -#define FUNC(kc) kc | 0x2000 - -// Aliases -#define S(kc) LSFT(kc) -#define F(kc) FUNC(kc) - -// For software implementation of colemak -#define CM_Q KC_Q -#define CM_W KC_W -#define CM_F KC_E -#define CM_P KC_R -#define CM_G KC_T -#define CM_J KC_Y -#define CM_L KC_U -#define CM_U KC_I -#define CM_Y KC_O -#define CM_SCLN KC_P - -#define CM_A KC_A -#define CM_R KC_S -#define CM_S KC_D -#define CM_T KC_F -#define CM_D KC_G -#define CM_H KC_H -#define CM_N KC_J -#define CM_E KC_K -#define CM_I KC_L -#define CM_O KC_SCLN - -#define CM_Z KC_Z -#define CM_X KC_X -#define CM_C KC_C -#define CM_V KC_V -#define CM_B KC_B -#define CM_K KC_N -#define CM_M KC_M -#define CM_COMM KC_COMM -#define CM_DOT KC_DOT -#define CM_SLSH KC_SLSH - -// Make it easy to support these in macros -#define KC_CM_Q CM_Q -#define KC_CM_W CM_W -#define KC_CM_F CM_F -#define KC_CM_P CM_P -#define KC_CM_G CM_G -#define KC_CM_J CM_J -#define KC_CM_L CM_L -#define KC_CM_U CM_U -#define KC_CM_Y CM_Y -#define KC_CM_SCLN CM_SCLN - -#define KC_CM_A CM_A -#define KC_CM_R CM_R -#define KC_CM_S CM_S -#define KC_CM_T CM_T -#define KC_CM_D CM_D -#define KC_CM_H CM_H -#define KC_CM_N CM_N -#define KC_CM_E CM_E -#define KC_CM_I CM_I -#define KC_CM_O CM_O - -#define KC_CM_Z CM_Z -#define KC_CM_X CM_X -#define KC_CM_C CM_C -#define KC_CM_V CM_V -#define KC_CM_B CM_B -#define KC_CM_K CM_K -#define KC_CM_M CM_M -#define KC_CM_COMM CM_COMM -#define KC_CM_DOT CM_DOT -#define KC_CM_SLSH CM_SLSH - -#define M(kc) kc | 0x3000 - -#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) - -#define BL_ON 0x4009 -#define BL_OFF 0x4000 -#define BL_0 0x4000 -#define BL_1 0x4001 -#define BL_2 0x4002 -#define BL_3 0x4003 -#define BL_4 0x4004 -#define BL_5 0x4005 -#define BL_6 0x4006 -#define BL_7 0x4007 -#define BL_8 0x4008 -#define BL_9 0x4009 -#define BL_10 0x400A -#define BL_11 0x400B -#define BL_12 0x400C -#define BL_13 0x400D -#define BL_14 0x400E -#define BL_15 0x400F -#define BL_DEC 0x4010 -#define BL_INC 0x4011 -#define BL_TOGG 0x4012 -#define BL_STEP 0x4013 - -#define RESET 0x5000 -#define DEBUG 0x5001 - -#define MIDI(n) n | 0x6000 - -#endif diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_default.c b/keyboard/preonic/extended_keymaps/extended_keymap_default.c deleted file mode 100644 index b52f60fd0..000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_default.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "lufa.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {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_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, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {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_DEL}, - {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_BSLS}, - {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, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {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), 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} -}, -[4] = { /* TENKEY */ - {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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} -}; - -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), - -}; - -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); - midi_send_noteon(&midi_device, 1, 64, 127); - backlight_step(); - } else { - unregister_code(KC_RSFT); - midi_send_noteoff(&midi_device, 1, 64, 127); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c b/keyboard/preonic/extended_keymaps/extended_keymap_lock.c deleted file mode 100644 index ec7bc776a..000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c +++ /dev/null @@ -1,81 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "action_layer.h" -#include "keymap_midi.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* 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_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, 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_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_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_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_BSLS}, - {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, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {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}, - {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), 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} -}, -[4] = { /* TENKEY */ - {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_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[5] = { - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} -} - -}; - -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), - -}; - -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); - backlight_set(BACKLIGHT_LEVELS); - default_layer_and(0); - default_layer_or((1<<5)); - } else { - // unregister_code(KC_RSFT); - backlight_set(0); - default_layer_and(0); - default_layer_or(0); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/keymap_midi.c b/keyboard/preonic/keymap_midi.c deleted file mode 100644 index a0fa59990..000000000 --- a/keyboard/preonic/keymap_midi.c +++ /dev/null @@ -1,110 +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 "extended_keymap_common.h" -#include "keymap_midi.h" -#include - -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.6)*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.6)*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.6)*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.6)*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.6)*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.6)*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.6)*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.6)*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.6)*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.6)*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/keyboard/preonic/keymap_midi.h b/keyboard/preonic/keymap_midi.h deleted file mode 100644 index c5917f884..000000000 --- a/keyboard/preonic/keymap_midi.h +++ /dev/null @@ -1,220 +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 - -#define MIDI 0x6000 -#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 - -#define CHNL(note, channel) (note + (channel << 8)) - -#define SCALE (int []){ 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/keyboard/preonic/led.c b/keyboard/preonic/led.c deleted file mode 100644 index 2c0574660..000000000 --- a/keyboard/preonic/led.c +++ /dev/null @@ -1,38 +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(uint8_t usb_led) -{ - // // Using PE6 Caps Lock LED - // if (usb_led & (1<. -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 10 -#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) -{ - // To use PORTF disable JTAG with writing JTD bit twice within four cycles. - MCUCR |= (1<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); + // 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); + // 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 -- cgit v1.2.3 From b8ac5095708b5023f5e3e375b22534f8b395741f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:45:37 -0400 Subject: .hex files --- keyboard/preonic/Makefile | 4 +- keyboard/preonic/preonic_pcb.hex | 1702 +++++++++++++++++++++++++++++++ keyboard/preonic/preonic_pcb_silent.hex | 1189 +++++++++++++++++++++ 3 files changed, 2893 insertions(+), 2 deletions(-) create mode 100644 keyboard/preonic/preonic_pcb.hex create mode 100644 keyboard/preonic/preonic_pcb_silent.hex (limited to 'keyboard') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 664aff732..89c48e50a 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -139,8 +139,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # 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 -AUDIO_ENABLE = YES # Audio output on port C6 +# MIDI_ENABLE = YES # MIDI controls +# AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex new file mode 100644 index 000000000..5bdc190e1 --- /dev/null +++ b/keyboard/preonic/preonic_pcb.hex @@ -0,0 +1,1702 @@ +:100000000C94D4020C9418030C9418030C94180349 +:100010000C9418030C9418030C9418030C941803F4 +:100020000C9418030C9418030C94E8160C94BA174B +:100030000C946C290C9418030C9418030C9418035A +:100040000C9418030C9418030C9418030C941803C4 +:100050000C9418030C94D9290C9418030C941803CD +:100060000C9418030C9418030C9418030C941803A4 +:100070000C9418030C9418030C9418030C94180394 +:100080000C941C0E0C9418030C9418030C94180375 +:100090000C9418030C9418030C9418030C94180374 +:1000A0000C9418030C9418030C941803076342363D +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE002A035400680065002000FE +:100390005000720065006F006E006900630020006D +:1003A0004B006500790062006F006100720064001C +:1003B00000002C034F007200740068006F006C0096 +:1003C00069006E0065006100720020004B0065004E +:1003D000790062006F006100720064007300000029 +:1003E000040309040902D000060100A0FA09040070 +:1003F000000103010100092111010001223F000752 +:1004000005810308000A0904010001030102000933 +:100410002111010001224D000705820308000A098D +:10042000040200010300000009211101000122362D +:10043000000705830308000A090403000203000003 +:10044000000921110100012220000705840320007A +:100450000107050403200001090404000001010054 +:100460000009240100010900010509040500020139 +:1004700003000007240100014100062402010100DD +:1004800006240202020009240301030102010009FB +:1004900024030204010101000905060240000500D1 +:1004A0000005250101010905850240000500000540 +:1004B000250101031201100100000008EDFE61603A +:1004C0000100010200010631FF0974A1010975153F +:1004D0000025FF9520750881020976150025FF95F6 +:1004E0002075089102C005010980A101850216014D +:1004F0000026B7001A01002AB70075109501810087 +:10050000C0050C0901A1018503160100269C021AF1 +:1005100001002A9C02751095018100C005010902A5 +:10052000A1010901A10005091901290515002501ED +:100530009505750181029501750381010501093059 +:1005400009311581257F95027508810609381581C5 +:10055000257F950175088106050C0A38021581254D +:100560007F950175088106C0C005010906A1010536 +:100570000719E029E7150025019508750181029505 +:100580000175088101050819012905950575019175 +:10059000029501750391010507190029FF15002532 +:1005A000FF950675088100C011241FBECFEFDAE069 +:1005B000DEBFCDBF04B603FE24C080910404909139 +:1005C0000504A0910604B09107048730904BA74022 +:1005D000B04BB9F410920404109205041092060472 +:1005E0001092070414BE84B7877F84BF88E10FB6DA +:1005F000F89480936000109260000FBEE0E0F8E392 +:10060000099512E0A0E0B1E0EEE1F9E602C0059044 +:100610000D92A832B107D9F714E0A8E2B2E001C008 +:100620001D92A430B107E1F70E94A0130C948D3401 +:100630000C94000061110DC0FC018281882331F00F +:1006400085EE0E94671E0E94683003C085EE0E94FE +:100650002F1F80E090E008950E940F0E40E050E0D0 +:1006600069E070E080E091E00C94600F08950E94D2 +:1006700049036E9A769A8CE293E0892B11F00C94E0 +:100680002C03089586E393E0892B11F00C94360334 +:100690000895279A2F988FEF9FEF9093870080936C +:1006A00086008AE08093800089E1809381000C9429 +:1006B000113081110BC080918000877F8093800072 +:1006C00010928D0010928C002F9808952F988330EF +:1006D00041F4809180008860809380008FEF9FEFCD +:1006E00012C09091800098609093800023E030E0E9 +:1006F000281B3109220F331F8FEF9FEF02C0969501 +:1007000087952A95E2F790938D0080938C00089549 +:100710008B3B910568F4883A910530F5853A91054F +:10072000C0F48430910598F4019709F06FC071C04E +:10073000803E910508F46AC0883E910540F09C0116 +:10074000205F31092031310508F060C05CC09C0198 +:10075000A1C0853A910509F45FC0863A910509F474 +:100760005EC023E830E496C0883A910509F45AC087 +:10077000893A910509F459C08A3A910509F458C09B +:100780008B3A910509F457C08C3A910509F456C08B +:100790008D3A910509F455C0803B910509F454C088 +:1007A0008E3A910509F453C08F3A910509F452C06D +:1007B000813B910509F451C0823B910509F450C079 +:1007C000833B910509F44FC0843B910509F44EC069 +:1007D000853B910509F44DC0863B910509F44CC059 +:1007E000873B910509F44BC0883B910509F44AC049 +:1007F000893B910509F449C08A3B910509F048C03D +:100800002AE236E447C09C01306544C020E030E075 +:1008100041C021E030E03EC021E830E43BC022E8A6 +:1008200030E438C022EE34E435C029EE34E432C07E +:100830002AEE34E42FC025EB34E42CC026EB34E45C +:1008400029C027EB34E426C02CEC34E423C02DEC83 +:1008500034E420C023E835E41DC02AE835E41AC09A +:1008600022E935E417C024E935E414C021E236E476 +:1008700011C023E236E40EC024E236E40BC025E2C8 +:1008800036E408C026E236E405C027E236E402C0BA +:1008900020E034E4C90108959CE0799FF00111241F +:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 +:1008B000FF1FE25DFE4F25913491C9010895880F15 +:1008C000991F82559040FC0125913491C9010895EA +:1008D000880F991F825D9E4FFC0125913491C901BB +:1008E00008950E944C049C019A9581159F4110F433 +:1008F000C9010895C90190528115904128F4C90198 +:100900009F700E9468040895C90190538115904119 +:1009100020F4C9019927906C0895C901905440971B +:1009200028F4C9018F709927946D0895203180E4CF +:10093000380719F480E091ED0895213190E43907EA +:1009400019F480E090ED0895223140E4340719F461 +:1009500080E092ED0895233180E4380719F480E0B7 +:1009600093ED0895211590E5390799F40E945623D7 +:1009700040E065E088E491E00E94600F2FEF44E3DF +:100980008CE0215040408040E1F700C000000C9412 +:10099000FE29213090E5390731F48091F002816021 +:1009A0008093F0020895C90190558115904108F097 +:1009B00062C0432F55274F70552741305105F9F438 +:1009C000C90174E0880F991F7A95E1F78827937021 +:1009D000B901E3E0660F771FEA95E1F760767727C4 +:1009E000862B972B9C682370332702C0440F551F1A +:1009F0002A95E2F74F715527842B952B08954230A5 +:100A0000510529F4922F8827816F906A0895433009 +:100A10005105B9F4C90153E0880F991F5A95E1F7C0 +:100A2000807E97702370332741E050E002C0440F6E +:100A3000551F2A95E2F74F715527842B952B9C68FB +:100A400008954430510589F5C90143E0880F991F85 +:100A50004A95E1F7807E97702370332741E050E09C +:100A600002C0440F551F2A95E2F74F715527842B7A +:100A7000952B9A680895C90190568115904118F4F4 +:100A8000C901906F0895C90190578115904120F4D4 +:100A9000C9019F7090620895C901905881159041D5 +:100AA00020F4C9019F70906A0895203E3105E0F45A +:100AB000203C310568F52133310509F475C048F44F +:100AC0002932310509F46BC02A32310509F07BC0A7 +:100AD00075C02933310501F122383105E9F025339C +:100AE000310509F070C051C0233E3105B1F140F429 +:100AF000203E3105D1F0223E310509F064C01CC012 +:100B0000263E310579F1273E310509F05CC038C039 +:100B1000C9010E945F0408958091010380FD02C015 +:100B200081FF51C080EE90E04FC08091010380FFB3 +:100B3000F9CF89E390E048C08091010382FF0AC0A9 +:100B40008091010384FF03C080E090E03DC083EE0C +:100B500090E03AC082EE90E037C08091010382FFBE +:100B6000EFCFF8CF8091010383FF07C0809101038D +:100B700084FDEACF87EE90E027C086EE90E024C0A7 +:100B80008091010383FFF2CFF8CF8091010385FFAD +:100B900003C089E290E018C085E390E015C0809121 +:100BA000010385FDF9CFF5CF8091010386FF03C0D6 +:100BB0008AE290E009C081E390E006C080910103E1 +:100BC00086FDF9CFF5CFC9010E94880308950895E5 +:100BD0005F926F927F928F929F92AF92BF92CF92CD +:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 +:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 +:100C00002F5F3F4F4E018BE0880E911C60E070E03B +:100C100000E010E0E12CF12CC12CD12CA12CB12C46 +:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 +:100C3000A62DB52D872D01900D928A95E1F7F9012A +:100C4000819191919F01FC01E07FFF27E032F10546 +:100C500059F48F709927FA0102C0EE0FFF1F8A9591 +:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E +:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC +:100C8000DF2A29C0E034F10559F48F709927FA0161 +:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 +:100CA000E035F10559F48F709927FA0102C0EE0F73 +:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 +:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 +:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 +:100CE0008A2D8095892384B985B18A2985B997B1E0 +:100CF0008C2D8095892387B988B18C2988B99AB1C0 +:100D00008E2D809589238AB98BB18E298BB99DB19F +:100D1000802F809589238DB98EB1802B8EB990B3A9 +:100D2000862F8095892380BB81B3862B81BB2A9631 +:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC +:100D40000F91FF90EF90DF90CF90BF90AF909F906A +:100D50008F907F906F905F9008955F926F927F92D7 +:100D60008F929F92AF92BF92CF92DF92EF92FF92BB +:100D70000F931F93CF93DF93CDB7DEB768970FB66E +:100D8000F894DEBF0FBECDBF85B7806885BF85B73D +:100D9000806885BF0E94E8059E012F5F3F4F4E018E +:100DA00089E1880E911C60E070E000E010E0E12C29 +:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 +:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 +:100DD00001900D928A95E1F7F901819191919F011E +:100DE000FC01E07FFF27E032F10559F48F7099276D +:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 +:100E000037C0E033F10559F48F709927FA0102C019 +:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 +:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 +:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 +:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 +:100E50000E2B1F2B0DC0E036F10551F48F70992732 +:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F +:100E70002815390509F0A7CF94B18A2D80958923CB +:100E800084B985B18A2985B997B18C2D809589233C +:100E900087B988B18C2988B99AB18E2D809589231C +:100EA0008AB98BB18E298BB99DB1802F809589230A +:100EB0008DB98EB1802B8EB990B3862F8095892302 +:100EC00080BB81B3862B81BB10922902109228022D +:100ED000109233021092320210922B0210922A02C8 +:100EE000109235021092340210922D0210922C02B0 +:100EF000109237021092360210922F0210922E0298 +:100F0000109239021092380210923102109230027F +:100F100010923B0210923A0287E393E0892BB9F0DA +:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC +:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 +:100F40009F908F907F906F905F900C94370368967E +:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA +:100F60000F91FF90EF90DF90CF90BF90AF909F9048 +:100F70008F907F906F905F9008955F926F927F92B5 +:100F80008F929F92AF92BF92CF92DF92EF92FF9299 +:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 +:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 +:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 +:100FC0003AE0532E470101E010E048E1642E55E07D +:100FD000752EE3E9F1E0D401852D01900D928A95FB +:100FE000E1F7F701819191917F019C01207F3327E7 +:100FF0002032310589F424B18F709927A80102C0ED +:10100000440F551F8A95E2F7CA01242B24B995B1E4 +:101010008095892385B94FC02033310589F427B1E4 +:101020008F709927F80102C0EE0FFF1F8A95E2F733 +:10103000CF012E2B27B998B18095892388B93BC061 +:101040002034310589F42AB18F709927A80102C094 +:10105000440F551F8A95E2F7CA01242B2AB99BB188 +:10106000809589238BB927C02035310589F42DB1AE +:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 +:10108000CF012E2B2DB99EB1809589238EB913C027 +:101090002036310581F420B38F709927A80102C052 +:1010A000440F551F8A95E2F7CA01242B20BB91B348 +:1010B0008095892381BB50EA5A95F1F7BE016F5F95 +:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC +:1010D0001196462D01900D924A95E1F7FB01419141 +:1010E0005191BF01FA01E07FFF27E032F10511F4D1 +:1010F000E3B113C0E033F10511F4E6B10EC0E03402 +:10110000F10511F4E9B109C0E035F10511F4ECB1D4 +:1011100004C0E036F105B9F4EFB1F0E04F705527A7 +:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 +:10113000022E02C0440F551F0A94E2F702C040E09D +:1011400050E0842B952B2F5F3F4F2C30310509F059 +:10115000BCCFF601208131812817390721F0918316 +:101160008083709270010E94E805F2E0CF0ED11CDE +:10117000EA14FB0409F02DCF809170018823A1F1BE +:10118000815080937001882339F08FE99FE00197A7 +:10119000F1F700C0000028C0809132029091330224 +:1011A0009093290280932802809134029091350215 +:1011B00090932B0280932A028091360290913702FD +:1011C00090932D0280932C028091380290913902E5 +:1011D00090932F0280932E0280913A0290913B02CD +:1011E000909331028093300282E493E0892B11F0D6 +:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 +:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10121000CF90BF90AF909F908F907F906F905F9096 +:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D +:10123000918108950895CF92DF92EF92FF920F93DC +:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 +:10125000F894DEBF0FBECDBF8C01862F642F88238C +:1012600079F0F80192812FE7482F992329F083E044 +:1012700093E00E94C41904C083E093E00E94D41953 +:10128000F80180818B3091F59181943009F0A8C2EA +:101290009281809173019923B1F08F5F80937301E4 +:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 +:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 +:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 +:1012D000BD4F01900D929A95E1F7E0917101F09167 +:1012E0007201EE0FFF1F21E332E093C08A3009F054 +:1012F000CBC0F8019181943009F072C29281809143 +:101300007301992309F473C081508093730196E4AB +:10131000E5EBF1E0DE01A551BE4F01900D929A95EB +:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA +:1013300031E02C0F3D1FE20FF31F60817181680FB8 +:10134000711D882777FD8095982F0E94AC3120E091 +:1013500030E040E451E40E94113120E030E040E808 +:1013600050E40E94A9309B01AC0160E070E080E095 +:1013700090E40E94C33221E230ED42E053E40E9447 +:1013800060324CE050E00E94BB0F20E04BE760E091 +:1013900083E093E00E94B41920E04BE761E083E032 +:1013A00093E00E94B41920E04BE762E083E093E011 +:1013B0000E94B41920E04BE763E083E093E00E94D1 +:1013C000B41920E04BE764E083E093E0C454DD4FC0 +:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1013E0000F91FF90EF90DF90CF900C94B41996E49A +:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 +:10140000E1F7E0917101F0917201EE0FFF1F25EA03 +:1014100031E02C0F3D1FE20FF31F60817181680FD7 +:10142000711D882777FD8095982F0E94AC3120E0B0 +:1014300030E040E451E40E94113120E030E040E827 +:1014400050E40E94A9309B01AC0160E070E080E0B4 +:1014500090E40E94C33221E230ED42E053E40E9466 +:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F +:101470000FBECDBFDF91CF911F910F91FF90EF90E5 +:10148000DF90CF900C94BE0C893009F0D3C0F801E6 +:101490009181943009F0A4C19281992309F4A0C1EB +:1014A00080917101909172010196909372018093E5 +:1014B000710120E04BE760E083E093E00E94B41903 +:1014C00020E04BE761E083E093E00E94B41920E064 +:1014D0004BE762E083E093E00E94B41920E04BE721 +:1014E00063E083E093E00E94B41920E04BE764E0FE +:1014F00083E093E00E94B4190E94BE0C00E010E06B +:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 +:10151000BE4F9F2D01900D929A95E1F7E0917101D8 +:10152000F0917201E00FF11FEE0FFF1F2FE531E088 +:101530002C0F3D1FE20FF31F60817181680F711D39 +:10154000882777FD8095982F0E94AC3120E030E00D +:1015500040E451E40E94113120E030E040E850E4E2 +:101560000E94A9309B01AC0160E070E080E090E453 +:101570000E94C33221E230ED42E053E40E94603227 +:101580004CE050E00E94BB0F3FEF87EE93E03150FC +:1015900080409040E1F700C0000080917301E5EBCE +:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E +:1015B000E1F7E0917101F0917201E00FF11FEE0F80 +:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 +:1015D0007181680F711D882777FD8095982F0E9473 +:1015E000AC3120E030E040E451E40E94113120E0D1 +:1015F00030E040E850E40E94A9309B01AC0160E07B +:1016000070E080E090E40E94C33221E230ED42E0DD +:1016100053E40E9460320E94EB0C8FEF9CE701972D +:10162000F1F700C000000F5F1F4F0830110509F0EF +:1016300069CF94C1883009F0D3C0F801918194300A +:1016400009F0CEC09281992309F4CAC0809171013A +:10165000909172010197909372018093710120E043 +:101660004BE760E083E093E00E94B41920E04BE791 +:1016700061E083E093E00E94B41920E04BE762E070 +:1016800083E093E00E94B41920E04BE763E083E03D +:1016900093E00E94B41920E04BE764E083E093E01C +:1016A0000E94B4190E94BE0C00E010E056E4F52E32 +:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C +:1016C00001900D929A95E1F7E0917101F09172010C +:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 +:1016E000E20FF31F60817181680F711D882777FDFC +:1016F0008095982F0E94AC3120E030E040E451E426 +:101700000E94113120E030E040E850E40E94A9300E +:101710009B01AC0160E070E080E090E40E94C33285 +:1017200021E230ED42E053E40E9460324CE050E0B0 +:101730000E94BB0F3FEF87EE93E031508040904016 +:10174000E1F700C0000080917301E5EBF1E0DE01FC +:10175000A357BF4F9F2D01900D929A95E1F7E0910D +:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 +:1017700030E02C0F3D1FE20FF31F60817181680F75 +:10178000711D882777FD8095982F0E94AC3120E04D +:1017900030E040E451E40E94113120E030E040E8C4 +:1017A00050E40E94A9309B01AC0160E070E080E051 +:1017B00090E40E94C33221E230ED42E053E40E9403 +:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD +:1017D00000000F5F1F4F0830110509F069CFBEC030 +:1017E000F801228190917301222309F45DC026E45F +:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 +:10180000E1F7E0917101F0917201E80FF11DEE0F27 +:10181000FF1F27E430E02C0F3D1FE20FF31F608114 +:101820007181690F711D882777FD8095982F0E941F +:10183000AC3120E030E040E451E40E9411316B0112 +:101840007C01F801818165E070E0681B71098827DF +:1018500077FD8095982F0E94AC319B01AC01C701A8 +:10186000B6010E94A9309B01AC0160E070E080E00D +:1018700090E40E94C33221E230ED42E053E40E9442 +:1018800060324FE050E0C454DD4F0FB6F894DEBF35 +:101890000FBECDBFDF91CF911F910F91FF90EF90C1 +:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 +:1018B000119601900D922A95E1F7E0917101F09156 +:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 +:1018D0003D1FE20FF31F60817181690F711D882721 +:1018E00077FD8095982F0E94AC3120E030E040E4F5 +:1018F00051E40E9411316B017C01F801818165E0A6 +:1019000070E0681B7109882777FD8095982F0E94E9 +:10191000AC319B01AC01C701B6010E94A9309B010B +:10192000AC0160E070E080E090E40E94C33221E20C +:1019300030ED42E053E40E946032C454DD4F0FB6F4 +:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 +:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 +:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 +:101970000F91FF90EF90DF90CF9008951092870223 +:1019800010928602809171008D7F8093710080910A +:1019900090008F7780939000109248021092470237 +:1019A00010928002109281021092820210928302A1 +:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 +:1019C00011921192119211921D921D9282E0EE37A6 +:1019D000F807B1F708956F927F928F929F92AF921E +:1019E000BF92CF92DF92EF92FF920F931F93CF930C +:1019F000DF936B017C010EE712E04CE5A42E42E080 +:101A0000B42EC7E0D0E0A7019601F801929182912F +:101A1000729162918F010E940D31882349F02197C4 +:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB +:101A3000F8011082118212821382F5011182108244 +:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA +:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 +:101A600055816681778140835183628373831482B9 +:101A700015821682178212962D913C91139711961A +:101A80003C932E9313961C921E92129734961296A4 +:101A90008730910519F7C3CF809186029091870214 +:101AA000019797FD05C0909387028093860204C03A +:101AB0001092870210928602E0918602F0918702CE +:101AC0003097C9F4809171008D7F8093710080916F +:101AD00090008F7780939000109280021092810284 +:101AE000109282021092830210927F0210927E0264 +:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 +:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 +:101B1000FF1FE25BFD4FC081D18160908002709019 +:101B200081028090820290908302A7019601662D27 +:101B3000772D882D992D0E940D3187FF25C0262DE8 +:101B4000372D482D592DC701B6010E94A83020E03D +:101B500030E04AEF54E40E9411315B018C012A2DE0 +:101B60003B2D402F512F662D772D882D992D0E94CA +:101B7000A9303B014C01A7019601772D992D0E94B8 +:101B80000D31181664F72EC0A7019601662D772D2A +:101B9000882D992D0E945C32181634F5A701960104 +:101BA000662D772D882D992D0E94A83020E030E0F9 +:101BB0004AEF54E40E9411315B018C012A2D3B2D28 +:101BC000402F512F662D772D882D992D0E94A830FA +:101BD0003B014C01A7019601772D992D0E945C32A3 +:101BE00087FFECCF10924D02C0928002D09281020A +:101BF000E0928202F0928302D0937F02C0937E0231 +:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 +:101C1000BF90AF909F908F907F906F9008953E9A65 +:101C2000E1E7F0E080818D7F808382E08093900007 +:101C30008AE18093910008951F920F920FB60F9240 +:101C40001124CF92DF92EF92FF922F933F934F9305 +:101C50005F936F937F938F939F93AF93BF93CF9334 +:101C6000DF93EF93FF9380914702882309F479C0B3 +:101C700020E030E0A90160918002709181028091A2 +:101C80008202909183020E945C3218160CF069C0A7 +:101C900020E030E040E251E46091490270914A0254 +:101CA00080914B0290914C020E945C321816BCF459 +:101CB00080918402909185020196609186027091D4 +:101CC00087020E9448349093850280938402109288 +:101CD000490210924A0210924B0210924C02C0919B +:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC +:101CF000DD4F288139814A815B8160E074E284E7AD +:101D00009BE40E9411310E94793170939700609397 +:101D10009600288139814A815B8160E074E284E722 +:101D20009BE40E9411310E947931759567957093FB +:101D300099006093980020E030E040E85FE3609114 +:101D4000490270914A0280914B0290914C020E948C +:101D5000A9306093490270934A0280934B0290939A +:101D60004C0280914802882309F493C0C09043023A +:101D7000D0904402E0904502F090460220E030E02E +:101D8000A901C701B6010E945C321816F4F4A7013C +:101D9000960160E074E284E79BE40E9411310E94A6 +:101DA00079317093970060939600A701960160E0E7 +:101DB00074E284E79BE40E9411310E9479317595A9 +:101DC0006795709399006093980060913D027091BF +:101DD0003E026F5F7F4F70933E0260933D0280E052 +:101DE00090E00E94AA3120913F0230914002409140 +:101DF0004102509142020E945C3287FD4AC08091AC +:101E00003C028F5F80933C029091F0038917A0F011 +:101E10008091F503882319F010923C020DC0809147 +:101E200071008D7F80937100809190008F778093F7 +:101E30009000109248022DC0E091F103F091F2035E +:101E400080913C0298E0899FE00DF11D1124808172 +:101E50009181A281B3818093430290934402A09325 +:101E60004502B093460220E030E040E85EE3648142 +:101E70007581868197810E94603260933F027093E2 +:101E80004002809341029093420210923E021092CF +:101E90003D02FF91EF91DF91CF91BF91AF919F9163 +:101EA0008F917F916F915F914F913F912F91FF9013 +:101EB000EF90DF90CF900F900FBE0F901F9018956E +:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 +:101ED00080914702882331F04A8369830E94BE0CB7 +:101EE00069814A8181E0809348021093F203009354 +:101EF000F1036093F0034093F503109249021092AE +:101F00004A0210924B0210924C0210923C02F801CD +:101F10004081518162817381409343025093440216 +:101F2000609345027093460220E030E040E85EE3B3 +:101F300064817581868197810E94603260933F023F +:101F400070934002809341029093420210923E02AD +:101F500010923D02809171008260809371008091A7 +:101F600090008068809390000F900F90DF91CF9148 +:101F70001F910F9108956F927F928F929F92AF92CF +:101F8000BF92CF92DF92EF92FF920F931F93CF9366 +:101F9000DF936B017C01EA018091480281110E946C +:101FA000BE0C81E08093470220E030E0A901C70128 +:101FB000B6010E945C3218160CF09AC06090800244 +:101FC00070908102809082029090830220E030E045 +:101FD000A901662D772D882D992D0E940D31811133 +:101FE00028C0C0928002D0928102E0928202F092D8 +:101FF0008302D0937F02C0937E02809186029091EB +:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C +:10201000C082D182E282F382FC01EE0FFF1FE25BFD +:10202000FD4FD183C08301969093870280938602EF +:102030005FC0A7019601662D772D882D992D0E94EE +:102040000D3187FF25C0262D372D482D592DC7016D +:10205000B6010E94A83020E030E04AEF54E40E942C +:1020600011315B018C012A2D3B2D402F512F662D04 +:10207000772D882D992D0E94A9303B014C01A70195 +:102080009601772D992D0E940D31181664F7A9CF6E +:10209000A7019601662D772D882D992D0E945C321F +:1020A00018160CF09ECFA7019601662D772D882D6E +:1020B000992D0E94A83020E030E04AEF54E40E94BD +:1020C00011315B018C012A2D3B2D402F512F662DA4 +:1020D000772D882D992D0E94A8303B014C01A70136 +:1020E0009601772D992D0E945C3287FFECCF79CF36 +:1020F000809171008260809371008091900080686F +:1021000080939000DF91CF911F910F91FF90EF90FE +:10211000DF90CF90BF90AF909F908F907F906F9007 +:102120000895809191020895CF93DF9300D01F927C +:10213000CDB7DEB72091FA03243021F523E02983BF +:102140009B838A832093E9008FEF06C095ED9A95D3 +:10215000F1F70000882329F09091E800815095FF65 +:10216000F5CF8091E80085FF0DC040E050E063E0CE +:1021700070E0CE0101960E947E148091E8008E7777 +:102180008093E8000F900F900F90DF91CF9108950A +:10219000CF93DF9300D01F92CDB7DEB72091FA0323 +:1021A000243029F522E029839B838A8383E080936E +:1021B000E9008FEF06C095ED9A95F1F700008823AE +:1021C00029F09091E800815095FFF5CF8091E800CB +:1021D00085FF0DC040E050E063E070E0CE01019665 +:1021E0000E947E148091E8008E778093E8000F9023 +:1021F0000F900F90DF91CF9108952091FA03243032 +:10220000F9F422E02093E9002FEF06C035ED3A956E +:10221000F1F70000222329F03091E800215035FF2A +:10222000F5CF2091E80025FF0BC040E050E065E0CD +:1022300070E00E947E148091E8008E778093E80021 +:102240000895CF93DF93EC018091FA03843041F538 +:1022500081E08093E9008FEF06C095ED9A95F1F744 +:102260000000882329F09091E800815095FFF5CF78 +:102270008091E80085FF14C040E050E068E070E025 +:10228000CE010E947E148091E8008E778093E80052 +:1022900088E0FE01A9E8B2E001900D928A95E1F78D +:1022A000DF91CF910895BF92CF92DF92EF92FF928C +:1022B0000F931F93CF93DF937C01B62EE90100E0CB +:1022C00010E0C42ED12C0BC04991202F2B0D2F775D +:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 +:1022E0001D0594F3DF91CF911F910F91FF90EF9017 +:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 +:1023000077270C94B4190F931F93CF93C42F633086 +:10231000710509F04AC0842F807F803849F18039E7 +:1023200009F043C0622F6F7770E080E090E00E9478 +:10233000AC3120E030E040E451E40E9411319B01D7 +:10234000AC0160E070E080E090E40E94C3320F775F +:1023500010E023E0159507952A95E1F72DEC3CEC6C +:1023600042E053E40E946032A8010E94BB0F1DC0EE +:10237000622F6F7770E080E090E00E94AC3120E047 +:1023800030E040E451E40E9411319B01AC0160E077 +:1023900070E080E090E40E94C3322DEC3CEC42E01F +:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 +:1023B0001F910F910C94BE0CCF911F910F91089516 +:1023C0000F931F93CF93DF93CDB7DEB727970FB649 +:1023D000F894DEBF0FBECDBF8C0114C08A810E946D +:1023E0008E199A819D839B819E839C819F838111FD +:1023F0001EC089818430B1F08730A1F08630A1F011 +:102400008530A1F0BE016F5F7F4F84E791E00E94AD +:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 +:1024200067190DC083E003C082E001C081E0AE0106 +:102430004B5F5F4F682FC8010E94211AE3CF279698 +:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 +:102450000F910895EF92FF920F93CF93DF9300D0E7 +:1024600000D000D0CDB7DEB77B014A832B830C832D +:10247000842F2E834D830E948E192E814D818111D0 +:102480001BC082E0E816F10479F083E0E816F1045D +:1024900021F0EA94EF2821F50BC0073F11F487E003 +:1024A00001C084E089830BC0273FD9F786E0FACFCB +:1024B000473FB9F785E0F6CF42954F704983BE019B +:1024C0006F5F7F4F84E791E00E94B11C84E791E049 +:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0000F91FF90EF9008958091F903811109C029 +:102500000E946D160E94CA168091E200846080933A +:10251000E20008951092F9030895089508950C9427 +:102520006129809192028F5F8093920262E30E9400 +:102530002834911135C01092920280919302882321 +:1025400079F18091FA03843049F58091E9008F7028 +:102550009091EC0090FF02C090E801C090E0982BB1 +:1025600084E08093E9008091EB0080FF14C08091AB +:10257000EE0087FD03C00FC01092F1008091E800CB +:1025800085FDFACF8091E80080FF05C08091E800CA +:102590008E778093E8009F709093E90010929302E9 +:1025A000089542E061EC81E00E94E31542E061ECB5 +:1025B00082E00E94E31542E061EC83E00E94E315B3 +:1025C00042E261EC84E00E94E31542E361E885E0C9 +:1025D0000E94E31542E360E886E00C94E3158091E5 +:1025E000FC03833009F454C030F4813071F0823040 +:1025F00009F0A5C08CC08A3009F479C08B3009F489 +:102600005FC0893009F09BC020C08091FB03813AF4 +:1026100009F095C08091E800877F8093E800809161 +:10262000FF0390910004892B21F060E080E090E0AE +:1026300003C068E089E892E070E00E941C15809178 +:10264000E8008B778093E80008958091FB03813246 +:1026500009F075C08091FF0390910004892B09F067 +:102660006EC08091E800877F8093E80005C080916C +:10267000FA03882309F463C08091E80082FFF7CF52 +:102680008091F100809391028091E8008B7753C094 +:102690008091FB03813A09F052C08091FF03909131 +:1026A0000004892B09F04BC08091E800877F80935C +:1026B000E8008091E80080FFFCCF80918A0136C05D +:1026C0008091FB038132D9F58091FF039091000442 +:1026D000892BA9F58091E800877F8093E8000E940C +:1026E0001A168091FD0380938A010C9456238091E1 +:1026F000FB03813221F58091E800877F8093E80019 +:102700000E941A168091FE0380938802089580919A +:10271000FB03813AA1F48091E800877F8093E80071 +:102720008091E80080FFFCCF809188028093F100C7 +:102730008091E8008E778093E8000C941A16089533 +:1027400083E093E00E94F0196AE272E183E093E093 +:102750000E94461A60EE71E183E093E00E944A1AFB +:1027600084B7877F84BF88E10FB6F89480936000B8 +:10277000109260000FBE90E080E80FB6F89480934E +:102780006100909361000FBE0E94741D0E946D163F +:102790000E94CA168091E20084608093E2007894DF +:1027A00063E871E183E093E00E94EC196CE771E16A +:1027B00083E093E00E94E41963E571E183E093E034 +:1027C0000E94E8190E940F0E0E9467190E94761D50 +:1027D00080E891E00E94201D0BC00E941E2980917C +:1027E000F803882329F00E94492981110E94681466 +:1027F0008091FA03853089F383E093E00E94F91B0E +:102800000E94801DF5CF292F332723303105B1F0E9 +:102810004CF42130310509F44DC02230310509F066 +:102820004EC007C02132310541F12232310591F10C +:1028300046C0E0EDF0E084EE93E045C0992781309A +:10284000910569F08230910589F0892B09F037C034 +:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 +:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 +:10287000E491F0E086E893E026C0643000F5E62FAE +:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF +:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 +:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA +:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 +:1028C000F0E080E090E0DA018D939C93CF010895D1 +:1028D00080E189BD82E189BD09B400FEFDCF809110 +:1028E000D8008F7D8093D8008091E0008260809333 +:1028F000E0008091E00081FDFCCF0895BF92CF926F +:10290000DF92EF92FF920F931F93CF93DF937C019F +:102910008B01EA010E943B16B82E811133C020972B +:1029200031F028813981021B130BE20EF31EC12CFA +:10293000D12C23C08091E80085FD15C08091E8006E +:102940008E778093E800209749F0888199818C0DDB +:102950009D1D9983888325E0B22E14C00E943B16EA +:10296000882359F00EC0F70181917F018093F10017 +:1029700001501109FFEFCF1ADF0A01151105D1F639 +:1029800001C0B82E8B2DDF91CF911F910F91FF9039 +:10299000EF90DF90CF90BF900895BF92CF92DF92DB +:1029A000EF92FF920F931F93CF93DF937C018B01E4 +:1029B000EA010E943B16B82E811133C0209731F0F6 +:1029C00028813981021B130BE20EF31EC12CD12C7E +:1029D00023C08091E80085FD15C08091E8008B77C9 +:1029E0008093E800209749F0888199818C0D9D1D86 +:1029F0009983888345E0B42E14C00E943B16882337 +:102A000059F00EC08091F100F70181937F010150D0 +:102A10001109FFEFCF1ADF0A01151105D1F601C028 +:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA +:102A3000DF90CF90BF90089540910104509102041F +:102A40004617570748F06115710539F44091E800C1 +:102A50004E774093E80001C0BA01FC0140E033C06A +:102A60008091FA03882309F444C0853009F443C0F7 +:102A70008091E80083FD41C08091E80082FD33C071 +:102A80008091E80080FF1FC09091F3008091F200D8 +:102A9000392F20E0A901482BCA0106C0419140937B +:102AA000F1006150710901966115710519F08830C6 +:102AB0009105A0F341E0089709F040E08091E8001B +:102AC0008E778093E8006115710551F64111C8CFEA +:102AD0000AC08091FA03882361F0853061F080910B +:102AE000E80083FD0AC08091E80082FFF2CF80E019 +:102AF000089582E0089583E0089581E0089540916B +:102B00000104509102044617570748F061157105FA +:102B100039F44091E8004E774093E80001C0BA01D3 +:102B2000FC0140E034C08091FA03882309F445C0D9 +:102B3000853009F444C08091E80083FD42C0809153 +:102B4000E80082FD34C08091E80080FF20C09091B1 +:102B5000F3008091F200392F20E0A901482BCA012F +:102B600007C044914093F10031966150710901967C +:102B70006115710519F08830910598F341E00897C7 +:102B800009F040E08091E8008E778093E8006115BD +:102B9000710549F64111C7CF0AC08091FA03882315 +:102BA00061F0853061F08091E80083FD0AC080917A +:102BB000E80082FFF2CF80E0089582E0089583E08C +:102BC000089581E00895982F2CC09093E9009817FC +:102BD00039F07091EC002091ED005091F00003C0AD +:102BE000242F762F50E021FD02C09F5F1AC0309144 +:102BF000EB003E7F3093EB003091ED003D7F309352 +:102C0000ED003091EB0031603093EB007093EC00FD +:102C10002093ED005093F0002091EE0027FDE5CFCA +:102C200007C0973090F28F708093E90081E008959B +:102C300080E008958091FB0387FD05C08091E80046 +:102C400080FF0EC012C08091E80082FD05C0809117 +:102C5000FA038111F8CF08958091E8008B7708C0BE +:102C60008091FA038111EACF08958091E8008E7770 +:102C70008093E80008958091E4009091E50045E696 +:102C80002091EC0020FD1FC023C02091FA032223D5 +:102C900091F0253091F02091EB0025FD10C020919E +:102CA000E4003091E5002817390751F34150C9017C +:102CB00039F784E0089582E0089583E0089581E083 +:102CC000089580E008952091E80020FFDECFF9CF3D +:102CD0002091E80022FFD9CFF4CF0E94DB160E949A +:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 +:102CF00080818F77808319BCA7EDB0E08C918E7FA7 +:102D00008C9380818F7E80831092F90308950F93B6 +:102D10001F93CF93DF930E94DB160E94E316C8ED4A +:102D2000D0E088818F7788838881806888838881D4 +:102D30008F7D888319BC1092FA031092F6031092CB +:102D4000F8031092F70300EE10E0F80180818B7F0A +:102D5000808388818160888342E060E080E00E9417 +:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B +:102D7000808181608083808188608083F801808188 +:102D80008E7F8083888180618883DF91CF911F91BE +:102D90000F910895E8EDF0E080818F7E8083E7ED6C +:102DA000F0E080818160808384E082BF81E0809355 +:102DB000F9030C948716E8EDF0E080818E7F808324 +:102DC0001092E20008951092DA001092E100089546 +:102DD0001F920F920FB60F9211242F933F934F9390 +:102DE0005F936F937F938F939F93AF93BF93EF9373 +:102DF000FF938091E10082FF0BC08091E20082FF8F +:102E000007C08091E1008B7F8093E1000E949112C6 +:102E10008091DA0080FF1FC08091D80080FF1BC026 +:102E20008091DA008E7F8093DA008091D90080FF54 +:102E30000DC080E189BD82E189BD09B400FEFDCFEE +:102E400081E08093FA030E947C1205C019BC1092A5 +:102E5000FA030E948A128091E10080FF19C08091DC +:102E6000E20080FF15C08091E2008E7F8093E20037 +:102E70008091E20080618093E2008091D8008062BE +:102E80008093D80019BC85E08093FA030E948E12CB +:102E90008091E10084FF30C08091E20084FF2CC06B +:102EA00080E189BD82E189BD09B400FEFDCF80913A +:102EB000D8008F7D8093D8008091E1008F7E809331 +:102EC000E1008091E2008F7E8093E2008091E20039 +:102ED00081608093E2008091F603882311F084E002 +:102EE00007C08091E30087FF02C083E001C081E05A +:102EF0008093FA030E948F128091E10083FF29C022 +:102F00008091E20083FF25C08091E100877F80935C +:102F1000E10082E08093FA031092F6038091E100D1 +:102F20008E7F8093E1008091E2008E7F8093E200AB +:102F30008091E20080618093E20042E060E080E006 +:102F40000E94E3158091F00088608093F0000E9459 +:102F50008D12FF91EF91BF91AF919F918F917F91D2 +:102F60006F915F914F913F912F910F900FBE0F90F6 +:102F70001F9018951F920F920FB60F9211242F9346 +:102F80003F934F935F936F937F938F939F93AF93F1 +:102F9000BF93CF93EF93FF938091E9008F7090914F +:102FA000EC0090FF02C090E801C090E0C92FC82B50 +:102FB0001092E9008091F000877F8093F000789470 +:102FC0000E94FE171092E9008091F00088608093C3 +:102FD000F000CF70C093E900FF91EF91CF91BF91C6 +:102FE000AF919F918F917F916F915F914F913F91A1 +:102FF0002F910F900FBE0F901F9018951F93CF9396 +:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 +:10301000CDBFEBEFF3E08091F100819324E0E3304A +:10302000F207C9F70E94EF128091E80083FF37C1D1 +:103030008091FB039091FC03953009F488C038F42B +:103040009130B1F170F0933009F029C131C098305E +:1030500009F4F8C0993009F404C1963009F01FC191 +:103060009DC0803821F0823809F019C108C08091D4 +:10307000F7039091F803992389F082600FC0809143 +:10308000FF03909100048F7099278093E90080914D +:10309000EB0085FB882780F91092E9009091E80009 +:1030A000977F9093E8008093F1001092F100D5C0D3 +:1030B000882319F0823009F0F2C08F7121F082303C +:1030C00009F0EDC00BC08091FD03813009F0E7C02D +:1030D000933009F080E08093F8032FC08091FD03C6 +:1030E00081112BC08091FF03909100048F7099276C +:1030F000009709F4D4C08093E9002091EB0020FFF1 +:103100001CC02091FC03233021F48091EB008062ED +:1031100012C09091EB0090619093EB0021E030E0C1 +:1031200001C0220F8A95EAF72093EA001092EA0084 +:103130008091EB0088608093EB001092E900809111 +:10314000E800877F8093E8000E941A16A8C08111CA +:10315000A6C08091FD039091FE038F779927182FC9 +:103160009091E3009078982B9093E3008091E80091 +:10317000877F8093E8000E941A168091E80080FF04 +:10318000FCCF8091E30080688093E300112311F06D +:1031900083E001C082E08093FA0381C080588230CE +:1031A00008F07DC08091FD039091FE038C3D23E0EB +:1031B000920779F583E08A838AE289834FB7F8948E +:1031C000DE01139620E03EE051E2E32FF0E0509361 +:1031D0005700E49120FF03C0E295EF703F5FEF706E +:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 +:1031F0009D932F5F243149F74FBF8091E800877F6F +:103200008093E8006AE270E0CE0101960E941C15EE +:1032100013C0AE01455D5F4F6091FF030E94031430 +:103220000097E9F12091E800277F2093E800BC0196 +:103230008BA59CA50E947F158091E8008B778093D9 +:10324000E8002DC0803859F58091E800877F809391 +:10325000E8008091F6038093F1008091E8008E777A +:1032600071CF81111CC09091FD039230C0F4809108 +:10327000E800877F8093E8009093F6030E941A1677 +:103280008091F603811104C08091E30087FF02C0A2 +:1032900084E001C081E08093FA030E94D112809102 +:1032A000E80083FF0AC08091E800877F8093E800F0 +:1032B0008091EB0080628093EB00AC960FB6F8949F +:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 +:1032D0008091FA038823B1F08091E9008F7090917A +:1032E000EC0090FF02C090E801C090E0C92FC82B0D +:1032F0001092E9008091E80083FD0E94FE17CF70D4 +:10330000C093E900CF910895881F8827881F0895EA +:1033100091E0883F08F490E0892F0895982F907FDE +:10332000903B99F038F4903981F0903A71F09038F0 +:10333000C9F40BC0903DA1F018F4903C99F410C072 +:10334000903E19F0903F71F402C083E00895E82F99 +:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 +:1033600082E0089580E008950F932F774F776F7074 +:10337000606BDC01ED91FC91022F242F462F63E05E +:1033800070E009950F9108950F932F774F776F7025 +:103390006069DC01ED91FC91022F242F462F63E040 +:1033A00070E009950F9108950F932F774F776F7005 +:1033B0006068DC01ED91FC91022F242F462F63E021 +:1033C00070E009950F910895FC017383628308955D +:1033D000FC01738F628F0895FC01758F648F0895CF +:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A +:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 +:103400001D821C821F821E82198618861B861A86C0 +:103410001D861C861F861E86198A188A1B8A1A8A90 +:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 +:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 +:103440000895CF92DF92FF920F931F93CF93DF9354 +:103450001F92CDB7DEB7F62E6A018C0108511F4FBF +:1034600008C0F60161916F01C80149830E94341CB4 +:1034700049818C2D841B8F15A0F30F90DF91CF9184 +:103480001F910F91FF90DF90CF900895FC01718301 +:1034900060830895FC0171A360A30895AF92BF9269 +:1034A000CF92DF92EF92FF920F931F93CF93DF9310 +:1034B00000D01F92CDB7DEB77C016B01142FB22E66 +:1034C000A02EDC0195968C9195978430F1F45A9654 +:1034D000ED91FC915B97309709F4D8C0CB0101972F +:1034E00063E070E00E943434DB01AA0FBB1FA60F1B +:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 +:103500003F4FBD01C7010995B1C06230710509F493 +:1035100053C06330710529F06130710509F09CC01A +:1035200083C0842F807F803A01F130F48038B9F075 +:10353000803909F0ABC00DC0803EE9F0803F09F151 +:10354000803B09F0A3C0D7011296ED91FC9113972F +:1035500023C0D7011496ED91FC9115971DC0D7019A +:103560001696ED91FC91179717C0D7011896ED911B +:10357000FC91199711C0D7011A96ED91FC911B97F8 +:103580000BC0423F09F082C0D7011C96ED91FC911F +:103590001D97309731F47AC0309709F477C0123F05 +:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C +:1035B0004B2DC70109955AC0842F807F803D59F05B +:1035C000803F79F0803C09F061C0D7011E96ED91F3 +:1035D000FC911F9719C0D7015096ED91FC9151971E +:1035E00013C0433F31F4D7015296ED91FC915397AC +:1035F00008C0413F09F04AC0D7015496ED91FC91B3 +:103600005597309741F442C0309709F43FC0133FBB +:1036100011F0113F19F44B2D612F03C0612F6F7012 +:103620004B2DC701099522C0842F0E948819882339 +:1036300031F0D7015696ED91FC91579707C0163F90 +:1036400029F5D7015896ED91FC9159973097F1F0F3 +:10365000612FC70109950AC064307105A8F416C02E +:103660000A2D2B2D412FB601C7010995D7015E9672 +:10367000ED91FC915F97309789F00A2D2B2D412F0A +:10368000B601C70109950AC0C12CD12CD7015C969F +:10369000ED91FC915D97309719F7E8CF0F900F905F +:1036A0000F90DF91CF911F910F91FF90EF90DF90DE +:1036B000CF90BF90AF900895EF92FF920F931F931A +:1036C000CF93DF93EC01162F862F0E948819882351 +:1036D00069F0FDA081E08DA300E020E0412F61E0D2 +:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 +:1036F00084194DA1882309F440C0443029F01AA34D +:1037000021E030E03FA32EA3812F0E948E1981304B +:1037100031F070F0823051F0833059F507C08DA33D +:1037200000E020E0412F61E070E01EC08DA35AC090 +:10373000103F19F0173FE9F404C084E08DA31AA3E9 +:103740003FC02EA13FA1C90163E070E00E94343464 +:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 +:103760006EA30CA12BA14AA1CE010E944E1A1DA24C +:1037700039C01DA21FA21EA235C0442399F12EA15B +:103780003FA1C90163E070E00E9434347C01FE0176 +:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC +:1037A0008130910591F082E0E816F104D9F40CA182 +:1037B0002BA14AA1CE010E944E1A8DA1843091F016 +:1037C00081E090E09FA38EA30DC0423059F400E049 +:1037D0002BA14AA1CE010E944E1A8DA1843011F076 +:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A +:1037F0000895CF92DF92EF92FF920F931F93CF9392 +:10380000DF93EC01E8A1F9A1309709F009958E0149 +:1038100008511F4FC8010E94661CE12CF12CC82ED4 +:10382000D12C0FC060E0C8010E947A1C682FCE0125 +:103830000E945C1B61E0C8010E948B1C8FEFE81A9C +:10384000F80AEC14FD0470F3DF91CF911F910F91F2 +:10385000FF90EF90DF90CF900895FC014283748336 +:1038600063831182108208950F931F93CF93DF9388 +:10387000EC01062F0E94AC1C182F298130E0C901F1 +:1038800001966A8170E00E944834488150E08417B4 +:10389000950729F4812F0E94AF1C80E012C0EB81B4 +:1038A000FC81E20FF31F00832981822F90E00196B3 +:1038B0006A8170E00E9448348983812F0E94AF1C86 +:1038C00081E0DF91CF911F910F910895CF93DF9306 +:1038D000EC010E94AC1C29819881291710F0C22F9D +:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E +:1038F000CF910895FC012081862F90E0820F911DC9 +:10390000628170E00E9448340380F481E02DE80F6A +:10391000F91F808108950F931F93CF93DF931F9218 +:10392000CDB7DEB78C0169830E94AC1C482FF8012B +:1039300080816981262F30E0280F311D6281C90105 +:1039400070E00E9448348083842F0F90DF91CF91E4 +:103950001F910F910C94AF1C8FB7F89408958FBFEF +:103960000895FC01CB012091FA032430B1F42181A8 +:103970002F702093E90040E050E064E070E00E9486 +:103980007E1481110BC09091E80095FD07C09091C5 +:10399000E8009E779093E800089582E008952091D2 +:1039A000FA032430A9F4FC0181818F708093E9002F +:1039B0003091F3002091F200932F80E0822B892B2D +:1039C00049F08091E8008E778093E8000C943B16D4 +:1039D00082E0089580E008952091FA03243051F4A4 +:1039E000FC0121812F702093E9002091E80020FD47 +:1039F0000C94CF1C0895FC01CB012091FA032430D4 +:103A000011F080E0089526812F702093E900209125 +:103A1000E80022FFF6CF2091E80025FFF2CF40E03A +:103A200050E064E070E00E94CD148091E80085FDD4 +:103A300005C08091E8008B778093E80081E00895CD +:103A400090939502809394020895E0919402F091EE +:103A50009502309721F00190F081E02D099480E0EB +:103A60000895E0919402F0919502309721F0028040 +:103A7000F381E02D09940895E0919402F09195026C +:103A8000309721F00480F581E02D0994089520916C +:103A90009602309197028217930771F090939702E4 +:103AA00080939602E0919402F0919502309721F074 +:103AB0000680F781E02D09940895209198023091B5 +:103AC00099028217930771F090939902809398025C +:103AD000E0919402F0919502309721F00084F185F5 +:103AE000E02D0994089508950C94731D0E94952962 +:103AF0000E94AD060E94692A0C9411300C94E705CF +:103B00005F926F927F928F929F92AF92BF92CF926D +:103B1000DF92EF92FF920F931F93CF93DF93CDB776 +:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 +:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 +:103B4000A394B12C502E802F0E9411093C01F60144 +:103B5000E190F1906F01E826F926E114F10431F4C7 +:103B60000F5F1F4F0530110569F73AC08091F002D1 +:103B700081FD0E941A0920E030E04501022E02C0BA +:103B8000880C991C0A94E2F7C4018E219F21892B8D +:103B900009F12E835F826820792081E0672809F48B +:103BA00080E088870E949E298160782F9A87898784 +:103BB0004E815F8168858A850E94391EF801EE0F6B +:103BC000FF1FE656FD4F80819181882599259183BD +:103BD000808316C02F5F3F4F2C30310571F6C0CF68 +:103BE0008FEF89838A831B820E949E298160782FB0 +:103BF0009D838C8349815A816B818D810E94391EFE +:103C00000E94562D1091A4020E94251D1817D9F06C +:103C10000E94251D8093A4022A960FB6F894DEBF59 +:103C20000FBECDBFDF91CF911F910F91FF90EF900D +:103C3000DF90CF90BF90AF909F908F907F906F90CC +:103C40005F900C947E1D2A960FB6F894DEBF0FBECF +:103C5000CDBFDF91CF911F910F91FF90EF90DF903B +:103C6000CF90BF90AF909F908F907F906F905F901C +:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 +:103C8000DEBF0FBECDBF4F83588769877A878B878A +:103C9000DE01119686E0FD0111928A95E9F785E033 +:103CA000FE01379601900D928A95E1F749815A817C +:103CB0006B817C818D819E810E9415262B960FB68B +:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 +:103CD000C82F882309F4C1C0823859F40E94251DD9 +:103CE00081FDBBC089E30E947C280E94F82889E3FB +:103CF0000CC0833879F40E94251D80FDAEC083E599 +:103D00000E947C280E94F82883E50E949E28CF917B +:103D10000C94F828843859F40E94251D82FD9DC01A +:103D200087E40E947C280E94F82887E4EECF845024 +:103D3000813A48F48C2F0E94732F81118EC08C2FF2 +:103D40000E947C28E4CF8C2F805E883050F4C770AE +:103D500081E090E001C0880FCA95EAF70E94BF2871 +:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD +:103D700031F482E890E005C081E890E002C083E879 +:103D800090E0CF910C94471D8C2F885A833108F016 +:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B +:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB +:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B +:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 +:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF +:103DE00092E038C082EE90E035C089EE90E032C0BB +:103DF0008AEE90E02FC085EB90E02CC086EB90E03F +:103E000029C087EB90E026C08CEC90E023C08DECBD +:103E100090E020C083E891E01DC08AE891E01AC0DC +:103E200082E991E017C084E991E014C081E292E058 +:103E300011C083E292E00EC084E292E00BC085E202 +:103E400092E008C086E292E005C087E292E002C0FC +:103E500080E090E0CF910C945D1DCF910895882370 +:103E600009F44DC0823859F40E94251D81FF47C0D6 +:103E700089E30E947C280E94F82889E30CC08338DB +:103E800071F40E94251D80FF3AC083E50E947C28C2 +:103E90000E94F82883E50E949E280C94F828843814 +:103EA00059F40E94251D82FF2AC087E40E947C28C5 +:103EB0000E94F82887E4EFCF982F9450913A08F4A5 +:103EC000EACF982F905E983058F4282F277081E021 +:103ED00090E001C0880F2A95EAF70E94C528DDCF3F +:103EE000982F955A933020F480E090E00C94471D71 +:103EF000885A833120F480E090E00C945D1D089591 +:103F0000882321F00E94BF280C94F8280895882364 +:103F100021F00E94C5280C94F8280895BF92CF92F2 +:103F2000DF92EF92FF920F931F93CF93DF93CDB762 +:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A +:103F400085E0F801DE01119601900D928A95E1F766 +:103F5000F80130812181F280558152955F70838113 +:103F60009481892B39F02F3F41F481E090E03F3F6D +:103F700031F003C081E090E002C080E090E080FD7D +:103F800073C339832A8389819A815E830E94392889 +:103F9000B92E8F830E9438280E9460272B2D2295EE +:103FA0002F7030E05E816F812530310509F4E6C065 +:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA +:103FC0008F70223031050CF045C017C02C30310500 +:103FD0004CF42A3031050CF0E7C12830310509F0E6 +:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 +:103FF0002F30310509F038C323C3182F411101C0F8 +:1040000002C01295107FFF2059F0112309F46BC2F2 +:10401000812F6F830E94CF280E94F8286F8163C28E +:10402000862F0E942F1F112309F41EC3812F0E9487 +:10403000D52827960FB6F894DEBF0FBECDBFDF910F +:10404000CF911F910F91FF90EF90DF90CF90BF9095 +:104050000C94F828403211F08295807F662319F085 +:10406000613071F523C0FF20B1F0511101C032C0A1 +:10407000513081F527960FB6F894DEBF0FBECDBF45 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94DF28511101C003C0513009F4C6 +:1040A000E3C28E830E94E2288E819AC1FF2021F014 +:1040B000563008F0D9C20EC0553008F0D5C290C1B4 +:1040C000FF20C9F0552331F0F801958190FF0BC214 +:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 +:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 +:1040F000BF900C94801F552309F472C109C22B2D67 +:1041000026952695237030E02115310529F02130C0 +:10411000310509F0A9C219C0FF2021F0862F9B2D7F +:10412000937002C080E090E027960FB6F894DEBF4F +:104130000FBECDBFDF91CF911F910F91FF90EF90F8 +:10414000DF90CF90BF900C94471DFF2021F0862F69 +:104150009B2D937002C080E090E027960FB6F894F4 +:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA +:10417000EF90DF90CF90BF900C945D1D862FFF20B5 +:1041800019F00E945C2C02C00E94C42C27960FB626 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 +:1041B000837009F079C0F11057C2262F22952695F9 +:1041C0002770220F220F862F8F70C82ED12CE12C42 +:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A +:1041E000D2F764FF10C06FE070E080E090E004C0A0 +:1041F000660F771F881F991F2A95D2F760957095D3 +:104200008095909503C060E070E0CB012B2D269542 +:1042100026952370422F50E042305105D9F04330AB +:10422000510569F16C297D298E299F29413051055D +:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 +:10424000CF911F910F91FF90EF90DF90CF90BF9093 +:104250000C9475276C297D298E299F2927960FB6E6 +:10426000F894DEBF0FBECDBFDF91CF911F910F91AC +:10427000FF90EF90DF90CF90BF900C9487270E9423 +:104280007527C701B60127960FB6F894DEBF0FBE9B +:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 +:1042A000CF90BF900C946327FF2019F08B2D817065 +:1042B00001C08695882309F4D7C1262F229526951B +:1042C0002770220F220F862F8F70C82ED12CE12C41 +:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 +:1042E000D2F764FF10C06FE070E080E090E004C09F +:1042F000660F771F881F991F2A95D2F760957095D2 +:104300008095909503C060E070E0CB012B2D269541 +:1043100026952370422F50E042305105D9F04330AA +:10432000510569F16C297D298E299F29413051055C +:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 +:10434000CF911F910F91FF90EF90DF90CF90BF9092 +:104350000C9414286C297D298E299F2927960FB645 +:10436000F894DEBF0FBECDBFDF91CF911F910F91AB +:10437000FF90EF90DF90CF90BF900C9426280E9482 +:104380001428C701B60127960FB6F894DEBF0FBEFA +:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1043A000CF90BF900C940228603F59F120F4603EFA +:1043B00008F494C008C0623F09F467C0F0F1633F9D +:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 +:1043D00021F00E94AD27812F7DCE0E94C827812F1A +:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 +:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 +:10440000871FFF20B1F0553008F02EC18B2D8F7122 +:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 +:104420001F910F91FF90EF90DF90CF90BF900C9471 +:10443000E727563008F018C1E9CFFF2099F08B2DFF +:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 +:10445000CF911F910F91FF90EF90DF90CF90BF9081 +:104460000C94AD278B2D8F7127960FB6F894DEBF75 +:104470000FBECDBFDF91CF911F910F91FF90EF90B5 +:10448000DF90CF90BF900C94C827F110EBCFD7CF1F +:10449000FF2099F08B2D8F7127960FB6F894DEBF11 +:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 +:1044B000DF90CF90BF900C949E2727960FB6F8946C +:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1044D000EF90DF90CF90BF900C949927FF20A9F028 +:1044E000552309F4ACCF862F27960FB6F894DEBF7C +:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 +:10450000DF90CF90BF900C94671E552309F4AACF7B +:10451000862F27960FB6F894DEBF0FBECDBFDF9172 +:10452000CF911F910F91FF90EF90DF90CF90BF90B0 +:104530000C942F1F4B2D4F70C8010E941A03279611 +:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:104550000F91FF90EF90DF90CF90BF900C94CB26FF +:10456000F11082C09B2D9F70492F50E042305105C1 +:1045700099F144F44115510569F04130510509F0B4 +:1045800073C019C043305105C1F14430510509F0E1 +:104590006BC044C027960FB6F894DEBF0FBECDBFE8 +:1045A000DF91CF911F910F91FF90EF90DF90CF900F +:1045B000BF900C94223027960FB6F894DEBF0FBE42 +:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1045D000CF90BF900C94393027960FB6F894DEBF79 +:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 +:1045F000DF90CF90BF900C94553027960FB6F8946B +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C946830862F279654 +:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:104630000F91FF90EF90DF90CF90BF900C948C3053 +:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 +:10465000CDBFDF91CF911F910F91FF90EF90DF9031 +:10466000CF90BF900C941B0927960FB6F894DEBF2D +:104670000FBECDBFDF91CF911F910F91FF90EF90B3 +:10468000DF90CF90BF9008950E94DC280E94B1284F +:104690000E94F8280E94F72D0E944B2D80E090E0A8 +:1046A0000E94471D80E090E00C945D1D0E94CC2884 +:1046B0000C9444230E943928292F22952F7030E032 +:1046C0002C3031054CF42A3031056CF4225031097C +:1046D0002230310590F407C02C30310551F02F30D5 +:1046E000310559F406C0803E10F0803F31F481E07E +:1046F000089593FB882780F9089580E00895CF936B +:10470000DF9300D000D01F92CDB7DEB70F900F908F +:104710000F900F900F90DF91CF910895CF93DF937B +:1047200000D000D000D0CDB7DEB726960FB6F894F3 +:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 +:10474000DF93C091DB0216E012C0D0E01C9FF001A5 +:104750001D9FF00D1124E555FD4F4081518162816F +:104760007381848195810E948E232196C7708091E8 +:10477000DC02C813EACFDF91CF911F9108954091D9 +:10478000A5025091A6026091A7027091A8028091A3 +:10479000A9029091AA020C948E230F931F93CF939A +:1047A000DF938091AA0282958F7009F069C0809191 +:1047B000A702882309F464C0A091DB02D091DC0237 +:1047C000B091A502C091A6028091A8029091A90281 +:1047D00021E030E0BF3F11F020E030E0122FBC01BB +:1047E0006095709506E04AC0009721F0CF3F29F40C +:1047F000212F05C021E030E002C020E030E020FDA4 +:104800003BC04A2F50E0049FF001059FF00D11249A +:10481000E555FD4F2181C2132FC02081B2132CC05A +:104820002281211129C0238134812817390718F0EA +:10483000281B390B02C0260F371F283C3105E0F436 +:104840008091AA028F7080618093AA0286E0849F83 +:10485000F001859FF00D1124E055FD4F80818F7090 +:104860008061808385EA92E00E948E1FDF91CF9164 +:104870001F910F910C949E23AF5FA770AD13B4CF1F +:10488000DF91CF911F910F910895EF92FF920F93B7 +:104890001F93CF93DF93CDB7DEB762970FB6F8942F +:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 +:1048B00001900D928A95E1F7D8014C9111965C9187 +:1048C000119712966C9112971396ED90FC90149795 +:1048D0007091A502E091A6028091A8029091A90290 +:1048E000009739F0EF3F41F421E030E07F3F31F0B5 +:1048F00003C021E030E002C020E030E020FD5CC1D8 +:104900002091A702222309F4F1C0E816F90628F045 +:104910009701281B390BC90104C0809590958E0D15 +:104920009F1D883C910508F098C08091AA02982F9D +:10493000907F09F064C0E51314C0741312C06111B4 +:1049400010C08F7080618093AA020E94BF2385EA05 +:1049500092E00E948E1F8091AA02D80115968C9336 +:1049600043C1EF2839F05F3F41F481E090E04F3FD1 +:1049700031F003C081E090E002C080E090E080FD73 +:1049800003C081E0862702C080E090E080FF2EC057 +:104990008091DB022091DC0236E013C090E0389F6A +:1049A000F001399FF00D1124E555FD4F718157132A +:1049B00006C07081471303C07281671317C0019648 +:1049C00087708213EBCF12C19F7059F0882309F4CE +:1049D0000BC107C09F7029F0F8019581907F09F401 +:1049E00003C1805E883008F4FFC0D2C0662309F49A +:1049F000FBC08091AA0281608093AA02F5C0E513F2 +:104A000008C0741306C0611104C0D80115968C93B8 +:104A10009DC04D875E878D859E856A8B0E945A2337 +:104A20006A89882309F4B4C0662309F4B1C02091CF +:104A3000AA02822F82958F7090E002970CF4C6C074 +:104A40008091A5029091A60298878F831986FB8694 +:104A5000EA862C87CE01079646C08091AA02982F3D +:104A6000907F59F47E2DF98AE88A89890E947F23F4 +:104A700085EA92E00E948E1F95C0E51311C0741361 +:104A80000FC061110DC0F8018583C8010E948E1FFF +:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F +:104AA0004D875E878D859E856A8B0E945A236A8911 +:104AB000882309F46DC0662309F46AC02091AA0214 +:104AC000822F82958F7090E002970CF47FC08091C6 +:104AD000A5029091A6029A8389831B82FD82EC82B3 +:104AE0002E83CE0101960E948E1F70C0E816F90633 +:104AF00028F09701281B390BC90104C080959095B7 +:104B00008E0D9F1D883C910508F046C0662309F470 +:104B10003FC0E51330C074132EC02091AA0220FDBF +:104B200021C0322F32953F70832F90E00097D1F053 +:104B3000D80115962C9315970F9741F0832F8F5F0F +:104B40008295807F2F70282B15962C93C8010E9488 +:104B50008E1F86E0F801A5EAB2E001900D928A95D9 +:104B6000E1F73EC086E0F801A5EAB2E001900D92BF +:104B70008A95E1F737C04D875E878D859E850E94B7 +:104B80005A23811123C08091AA0281608093AA02D6 +:104B9000C8010E948E1F26C07E2DF98AE88A898965 +:104BA0000E947F23E5EAF2E086E0DF011D928A950C +:104BB000E9F70E94BF2318C0662351F34D875E8733 +:104BC0008D859E850E945A23882311F386E0F80183 +:104BD000A5EAB2E001900D928A95E1F70E94CD23FB +:104BE0000E94BF2381E014C080E012C04D875E8721 +:104BF0008D859E850E943928292F22952F7030E0BF +:104C0000223031050CF4E0CE243031050CF6E2CE32 +:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 +:104C20001F910F91FF90EF9008951F93CF93DF9303 +:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 +:104C40004F83588769877A878B879C87CE01079621 +:104C50000E9445248823D9F02F8138858A859B8539 +:104C6000892B39F03F3F19F080E090E004C02F3FDE +:104C7000D9F781E090E0892B09F06DC04F8158850C +:104C800069857A858B859C850E948E2364C086E029 +:104C9000FE013796DE01119601900D928A95E1F79B +:104CA000FF81E8854A855B854115510539F0EF3F65 +:104CB00041F481E090E0FF3F31F003C081E090E0FB +:104CC00002C080E090E080FD46C02091DC0230E030 +:104CD000C9010196877099276091DB0270E0861701 +:104CE000970709F440C0F983EA835D834C8396E01B +:104CF000929FD001939FB00D1124A555BD4FFE0189 +:104D0000319601900D929A95E1F78093DC020E9412 +:104D10009E2321C0189FC001112485559D4F0E94DC +:104D20004524882371F1E091DB021E9FF0011124DC +:104D3000E555FD4F40815181628173818481958168 +:104D40000E948E238091DB0290E001968770992764 +:104D50008093DB0201C016E08091DB029091DC02BF +:104D60008913D8CF0EC00E9456231092DC021092F5 +:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 +:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 +:104D9000CF911F910895DF92EF92FF920F931F938F +:104DA000CF93DF93EC01009709F46EC0D12CEE2471 +:104DB000E394F12C8E010F5F1F4FFE018491843725 +:104DC00048F4843008F04CC0813071F0823009F032 +:104DD0005BC01EC0853709F43FC080F1982F9458FE +:104DE000903708F051C03FC02296F8018491982F67 +:104DF000905E983050F48770FE2D01C0FF0F8A95A9 +:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 +:104E10002296F8018491982F905E983060F4877004 +:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B +:104E30000E94F8281CC00E942F1F19C02296F8015A +:104E4000049107C08FE99FE00197F1F700C00000CF +:104E500001500111F7CF0BC02296F801D49007C082 +:104E60000E94671E03C08F770E942F1FE8018D2DBF +:104E700007C08150EFE9FFE03197F1F700C0000073 +:104E8000882309F497CFF5CFDF91CF911F910F9130 +:104E9000FF90EF90DF9008956093E1027093E2023B +:104EA0008093E3029093E4020C9444236093DD0228 +:104EB0007093DE028093DF029093E0020C9444230F +:104EC00008950C944C270F931F930091E1021091C9 +:104ED000E2022091E3023091E402602B712B822BDD +:104EE000932B1F910F910C944C270F931F930091BC +:104EF000E1021091E2022091E3023091E40260238A +:104F00007123822393231F910F910C944C270F93AD +:104F10001F930091E1021091E2022091E30230918F +:104F2000E40260277127822793271F910F910C9429 +:104F30004C2760E070E0CB010C94562741E050E034 +:104F400060E070E004C0440F551F661F771F8A950C +:104F5000D2F7CB01BA010C94562741E050E060E053 +:104F600070E004C0440F551F661F771F8A95D2F763 +:104F70008091DD029091DE02A091DF02B091E0020B +:104F8000482B592B6A2B7B2BCB01BA010C9456274B +:104F900041E050E060E070E004C0440F551F661F20 +:104FA000771F8A95D2F740955095609570958091BE +:104FB000DD029091DE02A091DF02B091E002482371 +:104FC00059236A237B23CB01BA010C94562741E075 +:104FD00050E060E070E004C0440F551F661F771F6B +:104FE0008A95D2F78091DD029091DE02A091DF02D6 +:104FF000B091E002482759276A277B27CB01BA01E5 +:105000000C9456270F931F930091DD021091DE023E +:105010002091DF023091E002602B712B822B932BC9 +:105020001F910F910C9456270F931F930091DD024F +:105030001091DE022091DF023091E00260237123A3 +:10504000822393231F910F910C9456270F931F9344 +:105050000091DD021091DE022091DF023091E0022A +:1050600060277127822793271F910F910C94562751 +:105070000895CF92DF92EF92FF920F931F93CF93F9 +:10508000DF93EC01C090E102D090E202E090E302F5 +:10509000F090E4028091DD029091DE02A091DF02A7 +:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF +:1050B000B701A601002E04C07695679557954795D0 +:1050C0000A94D2F740FF08C0BE01802F0E947104ED +:1050D0008130910509F007C00150110948F7BE0160 +:1050E00080E00E947104DF91CF911F910F91FF909A +:1050F000EF90DF90CF90089540918B0150918C01FB +:1051000020E030E09FEFFA01E20FF31F62816817A1 +:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 +:105120002630310581F707C0FA01E90FF11D97FD1F +:10513000FA95828308959F3FB9F7089540918B01B6 +:1051400050918C0120E030E0FA01E20FF31F9281D0 +:10515000981301C012822F5F3F4F26303105A1F70F +:10516000089581E090E0E0918B01F0918C01E80FCF +:10517000F91F1082019688309105A9F70895909142 +:10518000E502982B9093E502089580959091E502B1 +:1051900098239093E50208951092E5020895909166 +:1051A000E602982B9093E602089580959091E6028E +:1051B00098239093E60208951092E6020895809352 +:1051C000E70208951092E702089540918B015091F3 +:1051D0008C0120E030E080E0FA01E20FF31F9181C2 +:1051E00091118F5F2F5F3F4F27303105A9F7089549 +:1051F000E0918B01F0918C018091E5028083E09138 +:105200008B01F0918C0180819091E602892B808343 +:105210009091E702992361F0E0918B01F0918C016C +:105220008081892B80830E94E52881110E94E228D9 +:1052300080918B0190918C010C94311D8091FA0327 +:10524000843021F11092F10220E488E190E00FB661 +:10525000F894A895809360000FBE2093600080E0D2 +:105260000E94590383B7817F846083BF83B78160C5 +:1052700083BF7894889583B78E7F83BF88E10FB60C +:10528000F89480936000109260000FBE0895089516 +:105290000895CF9380E00E9459030E9447290E94FD +:1052A000BD070E944829C0E08C2F0E941109892B5C +:1052B00029F4CF5FC530C1F780E001C081E0CF9114 +:1052C00008950E94562380E00E9459030E941130E5 +:1052D0000E94251D0C94E7051F920F920FB60F92A6 +:1052E00011248F939F93AF93BF938091F10281110B +:1052F00013C08091F2029091F302A091F402B09158 +:10530000F5024196A11DB11D8093F2029093F30224 +:10531000A093F402B093F502BF91AF919F918F914A +:105320000F900FBE0F901F90189582E084BD93E000 +:1053300095BD9AEF97BD80936E0008958FB7F8944E +:105340004091F2025091F3026091F4027091F502E3 +:105350008FBFCA010895CF92DF92EF92FF920F9311 +:105360001F932FB7F8944091F2025091F30260918D +:10537000F4027091F5022FBF6A017B01EE24FF2435 +:105380008C0120E030E0C016D106E206F30620F0E2 +:105390009A01281B390B05C09C0120953095240FDC +:1053A000351FC9011F910F91FF90EF90DF90CF90B3 +:1053B00008951F920F920FB60F9211248F939F930F +:1053C000AF93BF938091F2029091F302A091F40207 +:1053D000B091F5020196A11DB11D8093F202909348 +:1053E000F302A093F402B093F502BF91AF919F91A5 +:1053F0008F910F900FBE0F901F9018950E946D1601 +:10540000F8942FEF87EA91E6215080409040E1F731 +:1054100000C0000087E090EBDC01809304049093CF +:105420000504A0930604B09307042CE088E190E003 +:105430000FB6F894A895809360000FBE209360008B +:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 +:10545000DF93C82ED12C01E010E08D2D0E941109A0 +:105460007C01C0E0D0E098010C2E02C0220F331F57 +:105470000A94E2F72E213F21232B29F42196CC30E8 +:10548000D10589F708C06C2F7D2D80E00E944C0467 +:10549000C812F4CF06C0D39485E0D812DECF80E0E6 +:1054A00001C081E0DF91CF911F910F91FF90EF90AC +:1054B000DF90CF900895CF93C82F8CE20E94212ACD +:1054C000882321F08C2FCF910C94212A80E0CF915A +:1054D0000895CF930E94AC2B811102C00E948D2BA6 +:1054E000C5E608C00E94BD078FE39CE90197F1F76C +:1054F00000C00000C150B1F789E20E945B2A81110F +:105500000AC18AE20E945B2A81110E948D2B85E0EC +:105510000E945B2A81110E94FE290E94B72B809372 +:10552000F00287E00E945B2A882399F18BE10E94B8 +:105530005B2A882351F09091F00291FB882780F933 +:1055400021E0822780FB91F922C08EE00E945B2A35 +:10555000882351F09091F00292FB882780F921E096 +:10556000822780FB92F913C080E10E945B2A909110 +:10557000F002882341F093FB882780F921E08227FD +:1055800080FB93F904C0892F809580FB90F990935C +:10559000F0028091F0020E94BB2B0E94C92B8093E5 +:1055A000010380EE0E945B2A882341F08091010371 +:1055B000982F909590FB80F98093010389E30E94D6 +:1055C0005B2A882359F09091010391FB882780F989 +:1055D00021E0822780FB91F99093010382EE0E94E3 +:1055E0005B2A882359F09091010392FB882780F968 +:1055F00021E0822780FB92F99093010386EE0E94BE +:105600005B2A882359F09091010393FB882780F946 +:1056100021E0822780FB93F99093010383EE0E949F +:105620005B2A882359F09091010394FB882780F925 +:1056300021E0822780FB94F99093010385E30E9487 +:105640005B2A882359F09091010395FB882780F904 +:1056500021E0822780FB95F99093010381E30E946A +:105660005B2A882359F09091010396FB882780F9E3 +:1056700021E0822780FB96F99093010381E10E944B +:105680005B2A882359F09091010397FB882780F9C2 +:1056900021E0822780FB97F9909301038091010319 +:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 +:1056B0005B2A8111C2608FE10E945B2A8111C46064 +:1056C00080E20E945B2A8111C86081E20E945B2A0D +:1056D0008111C06182E20E945B2A8111C06283E273 +:1056E0000E945B2A8111C06484E20E945B2A8823A5 +:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B +:105700006C2F03C00E94C02B682F70E080E090E0F7 +:10571000CF910C946127CF9108956DEE7EEF80E0DC +:1057200090E00E94783460E082E090E00E946A3469 +:1057300060E083E090E00E946A3460E084E090E002 +:105740000E946A3460E085E090E00E946A3460E084 +:1057500086E090E00C946A3480E090E00E9464342B +:1057600021E08D3E9E4F09F020E0822F089582E0D7 +:1057700090E00C945C34682F82E090E00C946A34E2 +:1057800083E090E00C945C34682F83E090E00C940C +:105790006A3484E090E00C945C34682F84E090E0FC +:1057A0000C946A3486E090E00C945C34682F86E0B8 +:1057B00090E00C946A348091FE0280FF0BC06091EF +:1057C000900185E0689FB0011124759567957595E6 +:1057D00067952AC081FF09C06091900185E0689FAC +:1057E000B0011124759567951FC082FF07C06091B5 +:1057F000900185E0689FB001112416C04091F80225 +:105800004423C9F060918F01461788F720919001D9 +:1058100085E0289F90011124429FC001439F900D75 +:10582000112470E00E9448346038710540F461151D +:10583000710539F002C065E070E0862F08958FE7AA +:10584000089581E008958091FE0280FF08C0609174 +:105850008E0170E0759567957595679521C081FFFC +:1058600006C060918E0170E07595679519C082FF42 +:1058700004C060918E0170E010C08091F80288230E +:10588000C1F060918D018617A0F790918E01989FCD +:10589000C001112470E00E9448346038710528F47A +:1058A0006115710521F0862F08958FE7089581E035 +:1058B000089561E070E0F4CF803F21F40E94DB2B7B +:1058C000819504C0813F29F40E94DB2B8093FB0269 +:1058D0000895823F21F40E94DB2B819504C0833F11 +:1058E00029F40E94DB2B8093FA020895893F19F472 +:1058F0000E94232C05C08A3F31F40E94232C8195FD +:105900008093FC0208958B3F21F40E94232C819503 +:1059100004C08C3F29F40E94232C8093FD0208953B +:10592000843F21F48091F902816017C0853F21F402 +:105930008091F902826011C0863F21F48091F902C2 +:1059400084600BC0873F21F48091F902886005C014 +:10595000883F31F48091F90280618093F9020895C3 +:105960008D3F21F48091FE0281600BC08E3F21F4B7 +:105970008091FE02826005C08F3F29F48091FE0273 +:1059800084608093FE020895803F29F48091FB0299 +:1059900087FF6EC007C0813F41F48091FB0218165B +:1059A0000CF066C01092FB0263C09091FA02823F35 +:1059B00019F497FF5DC005C0833F31F419160CF050 +:1059C00057C01092FA0254C0893F31F48091FC0212 +:1059D00018160CF04DC006C08A3F39F48091FC02C5 +:1059E00087FF46C01092FC0243C08B3F29F4809190 +:1059F000FD0287FF3DC006C08C3F39F48091FD0257 +:105A00001816B4F51092FD0233C0843F21F4809142 +:105A1000F9028E7F05C0853F31F48091F9028D7FB8 +:105A20008093F90225C0863F21F48091F9028B7F93 +:105A3000F7CF873F21F48091F902877FF1CF883F2C +:105A400021F48091F9028F7EEBCF8D3F21F480917C +:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F +:105A600005C08F3F29F48091FE028B7F8093FE0258 +:105A70008091FA0281110EC08091FB0281110AC04F +:105A80008091FC02811106C08091FD02811102C04B +:105A90001092F802089589EF92E00E943C1D0E9446 +:105AA0009E299093F7028093F6020895CF938091F8 +:105AB000F6029091F7020E94AB294091F80244232C +:105AC00021F02091910130E006C0209192015AE02E +:105AD000259F900111248217930708F486C08091B6 +:105AE000FA0281110DC09091FB02911109C09091B1 +:105AF000FC02911105C09091FD02992309F475C033 +:105B00004F3F19F04F5F4093F802181624F40E949B +:105B1000DB2B8093FA028091FA0287FF05C00E9476 +:105B2000DB2B81958093FA028091FB02181624F4F6 +:105B30000E94DB2B8093FB028091FB0287FF05C054 +:105B40000E94DB2B81958093FB026091FA02662311 +:105B500039F1C091FB02CC2319F1772767FD7095CD +:105B6000872F972F0E94AC3123E333E343E35FE3B6 +:105B70000E9460320E9479316093FA026C2F77277D +:105B800067FD7095872F972F0E94AC3123E333E395 +:105B900043E35FE30E9460320E9479316093FB022D +:105BA0008091FC02181624F40E94232C8093FC029E +:105BB0008091FC0287FF05C00E94232C8195809371 +:105BC000FC028091FD02181624F40E94232C80937D +:105BD000FD028091FD0287FF05C00E94232C819564 +:105BE0008093FD02CF910C944B2DCF910895E9EF56 +:105BF000F2E085E0DF011D928A95E9F71092F80244 +:105C00001092FE020895833089F130F4813061F002 +:105C1000823009F06EC019C0853009F449C0B8F16E +:105C2000863009F066C055C020919201862F90E021 +:105C3000820F911D8F3F910520F4620F60939201B6 +:105C400008958FEF80939201089520919101862FFE +:105C500090E0820F911D8F3F910520F4620F6093B9 +:105C6000910108958FEF8093910108952091900103 +:105C7000862F90E0820F911D8F3F910520F4620FD7 +:105C80006093900108958FEF809390010895209183 +:105C90008F01862F90E0820F911D8F3F910520F498 +:105CA000620F60938F0108958FEF80938F010895A5 +:105CB00020918E01862F90E0820F911D8F3F9105DC +:105CC00020F4620F60938E0108958FEF80938E0110 +:105CD000089520918D01862F90E0820F911D8F3FB6 +:105CE000910520F4620F60938D0108958FEF8093EA +:105CF0008D010895833021F130F4813059F08230E4 +:105D000009F049C012C0853089F128F1863009F0C8 +:105D100042C037C080919201681720F4861B80939F +:105D2000920108951092920108958091910168174F +:105D300020F4861B8093910108951092910108959B +:105D400080919001681720F4861B8093900108953C +:105D500010929001089580918F01681720F4861B9E +:105D600080938F01089510928F01089580918E0184 +:105D7000681720F4861B80938E01089510928E017F +:105D8000089580918D01681720F4861B80938D0102 +:105D9000089510928D01089541E050E060E070E0B8 +:105DA00004C0440F551F661F771F8A95D2F7CB0199 +:105DB000BA010E9461270C945623873200F58E3178 +:105DC00008F086C08E3009F466C060F4873009F4AC +:105DD0004DC018F4863049F531C0883041F18B3020 +:105DE00021F57BC0863109F478C018F48031E9F4DC +:105DF0005CC0893109F471C08B31B9F442C0883379 +:105E000009F46BC048F4893209F460C0853309F4A1 +:105E10005DC0873251F45AC0833409F457C018F476 +:105E20008A3318F057C0883499F080E008950E94B2 +:105E3000B72B0E94C92B0E94D22B4FC08091F00239 +:105E4000817F8E7F8093F00281E08093FF0208952E +:105E50000E9456232FEF83ED90E321508040904025 +:105E6000E1F700C000000E94FE2937C08091F002D7 +:105E700080FF03C0817F8E7F01C081608093F0022C +:105E80002CC09091F00291FB882780F921E08227B5 +:105E900080FB91F913C09091F00292FB882780F962 +:105EA00021E0822780FB92F909C09091F00293FBD8 +:105EB000882780F921E0822780FB93F99093F002F4 +:105EC000882359F091609093F00207C080E003C0EE +:105ED0008D5101C089530E94CC2E81E0089580E04D +:105EE000089580E00895CF93C82F8091FF028130FC +:105EF00071F020F0823009F089C037C0A0918B0189 +:105F0000B0918C018C91823209F082C007C0A091BF +:105F10008B01B0918C018C91823249F48C2F0E94BC +:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 +:105F30000E94712F811115C0C43169F030F4CB304B +:105F400081F0C03109F068C009C0C93221F0C833FE +:105F500009F062C006C01092FF025EC082E080932A +:105F6000FF0281E090E081705AC0C932C9F060F44C +:105F7000C431B1F020F4C73009F04CC034C0CE5168 +:105F8000C63008F047C017C0CE3439F120F4CB3406 +:105F900009F040C01CC0C135C1F0C235D9F513C0ED +:105FA00080910003882319F01092000333C081E030 +:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 +:105FC0008093000327C061E003C061E007C06AE07E +:105FD000809100030E94032E1DC06AE0809100039F +:105FE0000E947A2E17C08EE18093920182E3809303 +:105FF00091018AE08093900184E180938F0188E091 +:1060000080938E0188E280938D0104C01092FF027C +:1060100080E005C081E003C080E090E0A4CFCF9194 +:1060200008950E94AC2B811102C00E948D2B0E940A +:10603000D22B8093030480FF02C0869501C080E0CC +:106040000C94590380910304982F9695292F30E0E2 +:10605000233031054CF49F5F990F8170892B81604B +:10606000809303040E94D62B8091030486950C94A0 +:10607000590380910304982F969591F09158990FA8 +:106080008170892B809303048E7F91E009F490E066 +:106090008091030490FB80F9809303040E94D62B27 +:1060A0008091030486950C94590380910304982FE2 +:1060B000909590FB80F9809303040E94D62B8091E9 +:1060C000030480FF02C0869501C080E00C94590350 +:1060D00030910304232F26952F5F2F77822F90E096 +:1060E000317004972CF4220F232B2093030402C059 +:1060F0003093030480910304282F2E7F91E009F44C +:1061000090E090FB80F9809303040E94D62B80914D +:10611000030486950C94590320910304922F9695BD +:106120009827990F822F8170892B809303048E7F8B +:1061300091E009F490E08091030490FB80F9809352 +:1061400003040E94D62B8091030486950C94590376 +:106150005058BB27AA270ED075C166D130F06BD13D +:1061600020F031F49F3F11F41EF45BC10EF4E09572 +:10617000E7FB51C1E92F77D180F3BA1762077307A4 +:106180008407950718F071F49EF58FC10EF4E09521 +:106190000B2EBA2FA02D0B01B90190010C01CA01E1 +:1061A000A0011124FF27591B99F0593F50F4503E8C +:1061B00068F11A16F040A22F232F342F4427585F7E +:1061C000F3CF469537952795A795F0405395C9F796 +:1061D0007EF41F16BA0B620B730B840BBAF091504E +:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED +:1061F000BA0F621F731F841F48F4879577956795C0 +:10620000B795F7959E3F08F0B3CF9395880F08F0A8 +:106210009927EE0F979587950895D9D008F481E0D6 +:1062200008950CD00FC107D140F0FED030F021F41A +:106230005F3F19F0F0C0511139C1F3C014D198F388 +:106240009923C9F35523B1F3951B550BBB27AA27F7 +:1062500062177307840738F09F5F5F4F220F331F69 +:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 +:1062700091505040E695001CCAF729D0FE2F27D038 +:10628000660F771F881FBB1F261737074807AB0706 +:10629000B0E809F0BB0B802DBF01FF2793585F4F7B +:1062A0002AF09E3F510568F0B6C000C15F3FECF395 +:1062B000983EDCF3869577956795B795F7959F5F40 +:1062C000C9F7880F911D9695879597F90895E1E094 +:1062D000660F771F881FBB1F621773078407BA07F3 +:1062E00020F0621B730B840BBA0BEE1F88F7E0954E +:1062F000089504D06894B111D9C00895BCD088F035 +:106300009F5790F0B92F9927B751A0F0D1F0660FA1 +:10631000771F881F991F1AF0BA95C9F712C0B130BC +:1063200081F0C3D0B1E00895C0C0672F782F8827CF +:10633000B85F39F0B93FCCF3869577956795B395FB +:10634000D9F73EF490958095709561957F4F8F4F6A +:106350009F4F0895E89409C097FB3EF4909580956F +:10636000709561957F4F8F4F9F4F9923A9F0F92F1B +:1063700096E9BB279395F695879577956795B79599 +:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F +:106390007F4F8F4F9F4F16C0882311F096E911C091 +:1063A000772321F09EE8872F762F05C0662371F0B2 +:1063B00096E8862F70E060E02AF09A95660F771FC6 +:1063C000881FDAF7880F9695879597F90895990FA2 +:1063D0000008550FAA0BE0E8FEEF16161706E807AF +:1063E000F907C0F012161306E407F50798F0621BD0 +:1063F000730B840B950B39F40A2661F0232B242BA5 +:10640000252B21F408950A2609F4A140A6958FEFC3 +:10641000811D811D089597F99F6780E870E060E015 +:1064200008959FEF80EC089500240A94161617062D +:1064300018060906089500240A9412161306140675 +:1064400005060895092E0394000C11F4882352F0D8 +:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 +:106460008F4F9F4F089557FD9058440F551F59F077 +:106470005F3F71F04795880F97FB991F61F09F3F31 +:1064800079F087950895121613061406551FF2CF5A +:106490004695F1DF08C0161617061806991FF1CFAA +:1064A00086957105610508940895E894BB276627D1 +:1064B0007727CB0197F908958ADF08F48FEF0895C5 +:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C +:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 +:1064E000950F50E0551F629FF001729FBB27F00D82 +:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 +:10650000B00DA11D661F829F2227B00DA11D621F25 +:10651000739FB00DA11D621F839FA00D611D221FDF +:10652000749F3327A00D611D231F849F600D211DC3 +:10653000822F762F6A2F11249F5750408AF0E1F066 +:1065400088234AF0EE0FFF1FBB1F661F771F881FAF +:1065500091505040A9F79E3F510570F05CCFA6CFF7 +:106560005F3FECF3983EDCF3869577956795B7959A +:10657000F795E7959F5FC1F7FE2B880F911D9695C4 +:10658000879597F90895FA01EE0FFF1F30962105C0 +:10659000310599F16115710561F48038BFE39B07FE +:1065A00049F168949038810561F08038BFEF9B070E +:1065B00041F0992342F5FF3FE1053105210511F135 +:1065C000E8940894E795D901AA2329F4AB2FBE2FAC +:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD +:1065E00050F019F0FF3A38F49F779F930CD00F903A +:1065F00007FC905808953EF014CF60E070E080E80A +:106600009FE308954FE79F775F934F933F932F93B7 +:106610009ED02F913F914F915F9152DF05C019F4A9 +:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 +:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 +:106640000F920F920F924DB75EB70F92C0D0ECEA47 +:10665000F0E016D04F915F91EF91FF91E595EE1F1D +:10666000FF1F49F0FE57E0684427EE0F441FFA95DC +:10667000E1F74195550B32D00F9007FE26C00895E3 +:10668000DF93CF931F930F93FF92EF92DF927B01E3 +:106690008C01689405C0DA2EEF011EDFFE01E8943C +:1066A000A5912591359145915591AEF3EF0162DDAC +:1066B000FE019701A801DA9479F7DF90EF90FF903F +:1066C0000F911F91CF91DF9108959B01AC0160E084 +:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 +:1066E0009923D9F3940F511DBBF39150504094F06E +:1066F00059F0882332F0660F771F881F9150504061 +:10670000C1F79E3F510544F7880F911D96958795D7 +:1067100097F908955F3FACF0983E9CF0BB278695B3 +:1067200077956795B79508F4B1609395C1F7BB0F5E +:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 +:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 +:10675000C8F39923D1F3C6F3DF93CF931F930F931D +:10676000FF92C92FDD2788232AF02197660F771F14 +:10677000881FDAF720E030E040E85FEB9FE38839DC +:1067800020F0803E30F021968F77E3DCE4EDF0E0FE +:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F +:1067A000FB2E6F5771097595771F880B990BD4DDF8 +:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 +:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 +:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 +:1067E0003327442750781FC0B75188F4AB2F0024BB +:1067F000469537952795011CA395D2F3002069F0A3 +:10680000220F331F441FB395DAF30DD0A1CC6130B2 +:106810007105A0E88A07B94630F49B01AC016627F0 +:10682000772788279078309621F020833183428320 +:10683000538308959F3F31F0915020F487957795C9 +:106840006795B795880F911D9695879597F9089547 +:10685000991B79E004C0991F961708F0961B881FB2 +:106860007A95C9F780950895AA1BBB1B51E107C013 +:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 +:10688000991F5A95A9F780959095BC01CD0108955F +:1068900097FB072E16F4009407D077FD09D00E94CD +:1068A000343407FC05D03EF4909581959F4F0895B0 +:1068B000709561957F4F0895F999FECF92BD81BD86 +:1068C000F89A992780B50895A8E1B0E042E050E039 +:1068D0000C947F34262FF999FECF1FBA92BD81BD4B +:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 +:1068F0000E946A34272F0C946B34DC01CB01FC011D +:10690000F999FECF06C0F2BDE1BDF89A319600B408 +:0E6910000D9241505040B8F70895F894FFCF13 +:10691E0055D0A44600001644000000000000484276 +:10692E0061978A460000C8430000000000004842FC +:10693E0055D024460000C843000000000000484225 +:10694E0000005C460000C843000000000000484202 +:10695E0061978A4600007A4455D0A4460000C84389 +:10696E00000000000000484200005C460000C843E2 +:10697E00000000000000484255D024460000164496 +:10698E000507000C058540000001064000000100CF +:10699E0091102111FD10C810941001E8022808145E +:1069AE000A321E42004500250026004300610060A9 +:1069BE000020003700640065006600670044004652 +:1069CE000024004700000002000400050007000933 +:1069DE00000B000C000E0010001100130015001724 +:1069EE000018001A001C001D001F002100230024A7 +:1069FE00002600280029002B002D002F0030003229 +:106A0E000034003500370039003B00F6030F042830 +:106A1E0004410469051C05E604C6043F4D362002F8 +:106A2E000302000001000101010101000101010248 +:086A3E00030405060708090026 +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex new file mode 100644 index 000000000..cc59d3fe8 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_silent.hex @@ -0,0 +1,1189 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94430D0C94150E87 +:100030000C942B1C0C94A9020C94A9020C94A902F8 +:100040000C94A9020C94A9020C94A9020C94A90284 +:100050000C94A9020C94981C0C94A9020C94A9026B +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A90235001E001C +:1000B0001F0020002100220023002400250026002C +:1000C00027002A002B0014001A0008001500170052 +:1000D0001C0018000C00120013002A002900040064 +:1000E0001600070009000A000B000D000E000F00AB +:1000F00033003400E1001D001B000600190005005C +:100100001100100036003700380028000030E000F1 +:10011000E200E30003522C002C0004525000510076 +:1001200052004F0035001E001F0020002100220059 +:10013000230024002500260027002A002B0014009D +:100140001A00090013000A000D000F0018001C001F +:1001500033002A00290004001500160017000700CC +:100160000B00110008000C0012003400E1001D001B +:100170001B000600190005000E00100036003700B5 +:10018000380028000030E000E200E30003522C00B9 +:100190002C0004525000510052004F0035001E0048 +:1001A0001F0020002100220023002400250026003B +:1001B00027002A002B0034003600370013001C00F3 +:1001C00009000A00060015000F002A00290004009B +:1001D0001200080018000C0007000B0017001100A7 +:1001E00016003800E100330014000D000E001B0063 +:1001F000050010001A0019001D0028000030E00062 +:10020000E200E30003522C002C0004525000510085 +:1002100052004F0035001E001F0020002100220068 +:10022000230024002500260027002A0035021E0294 +:100230001F0220022102220223022402250226029A +:1002400027022A0001003A003B003C003D003E002E +:100250003F002D022E022F02300231020100400029 +:100260004100420043004400450000530153025343 +:100270000050010001000100010001000100010027 +:1002800001000100AB00AA00A900AE0035001E006D +:100290001F0020002100220023002400250026004A +:1002A00027002A0035001E001F0020002100220028 +:1002B000230024002500260027002A0001003A0020 +:1002C0003B003C003D003E003F002D002E002F0073 +:1002D0003000310001004000410042004300440072 +:1002E000450000530153025300500100010001007A +:1002F000010001000100010001000100AB00AA00A3 +:10030000A900AE002A0354006800650020005000D8 +:10031000720065006F006E006900630020004B00F2 +:100320006500790062006F006100720064000000E7 +:100330002C034F007200740068006F006C006900AD +:100340006E0065006100720020004B0065007900BE +:1003500062006F006100720064007300000004031B +:10036000090409027400040100A0FA090400000154 +:1003700003010100092111010001223F000705814D +:100380000308000A09040100010301020009211108 +:10039000010001224D000705820308000A0904023A +:1003A00000010300000009211101000122360007AD +:1003B00005830308000A0904030002030000000982 +:1003C00021110100012220000705840320000107FC +:1003D0000504032000011201100100000008EDFED9 +:1003E00061600100010200010631FF0974A10109E9 +:1003F00075150025FF9520750881020976150025E1 +:10040000FF952075089102C005010980A1018502B0 +:1004100016010026B7001A01002AB70075109501D1 +:100420008100C0050C0901A1018503160100269C6D +:10043000021A01002A9C02751095018100C0050175 +:100440000902A1010901A1000509190129051500E9 +:10045000250195057501810295017503810105014D +:10046000093009311581257F950275088106093803 +:100470001581257F950175088106050C0A3802153E +:1004800081257F950175088106C0C005010906A177 +:1004900001050719E029E715002501950875018177 +:1004A0000295017508810105081901290595057551 +:1004B0000191029501750391010507190029FF15A6 +:1004C0000025FF950675088100C011241FBECFEFDF +:1004D000DAE0DEBFCDBF04B603FE24C08091F10197 +:1004E0009091F201A091F301B091F4018730904B0B +:1004F000A740B04BB9F41092F1011092F2011092A2 +:10050000F3011092F40114BE84B7877F84BF88E1A1 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3 +:1005300005900D92A435B107D9F711E0A4E5B1E01B +:1005400001C01D92A13FB107E1F70E94720A0C940D +:10055000EE240C94000061110DC0FC0182818823FF +:1005600031F085EE0E9426110E94272303C085EEFC +:100570000E94EE1180E090E00895089508950E9491 +:10058000D1026E9A769A8DEB92E0892B11F00C9441 +:10059000BD0208958EEB92E0892B11F00C94BE02FF +:1005A0000895279A2F988FEF9FEF9093870080935D +:1005B00086008AE08093800089E1809381000C941A +:1005C000D02281110BC080918000877F80938000B2 +:1005D00010928D0010928C002F9808952F988330E0 +:1005E00041F4809180008860809380008FEF9FEFBE +:1005F00012C09091800098609093800023E030E0DA +:10060000281B3109220F331F8FEF9FEF02C09695F1 +:1006100087952A95E2F790938D0080938C0008953A +:100620008B3B910568F4883A910530F5853A910540 +:10063000C0F48430910598F4019709F06FC071C03F +:10064000803E910508F46AC0883E910540F09C0107 +:10065000205F31092031310508F060C05CC09C0189 +:10066000A1C0853A910509F45FC0863A910509F465 +:100670005EC023E830E496C0883A910509F45AC078 +:10068000893A910509F459C08A3A910509F458C08C +:100690008B3A910509F457C08C3A910509F456C07C +:1006A0008D3A910509F455C0803B910509F454C079 +:1006B0008E3A910509F453C08F3A910509F452C05E +:1006C000813B910509F451C0823B910509F450C06A +:1006D000833B910509F44FC0843B910509F44EC05A +:1006E000853B910509F44DC0863B910509F44CC04A +:1006F000873B910509F44BC0883B910509F44AC03A +:10070000893B910509F449C08A3B910509F048C02D +:100710002AE236E447C09C01306544C020E030E066 +:1007200041C021E030E03EC021E830E43BC022E897 +:1007300030E438C022EE34E435C029EE34E432C06F +:100740002AEE34E42FC025EB34E42CC026EB34E44D +:1007500029C027EB34E426C02CEC34E423C02DEC74 +:1007600034E420C023E835E41DC02AE835E41AC08B +:1007700022E935E417C024E935E414C021E236E467 +:1007800011C023E236E40EC024E236E40BC025E2B9 +:1007900036E408C026E236E405C027E236E402C0AB +:1007A00020E034E4C901089508959CE0799FF001A8 +:1007B00011249CE3899FE00DF11D1124E60FF11D2A +:1007C000EE0FFF1FE455FF4F25913491C9010895A5 +:1007D000880F991F845D9040FC0125913491C901D7 +:1007E0000895880F991F84559F4FFC0125913491DE +:1007F000C90108950E94D5039C019A9581159F41D6 +:1008000010F4C9010895C90190528115904128F44E +:10081000C9019F700E94F1030895C9019053811589 +:10082000904120F4C9019927906C0895C901905412 +:10083000409728F4C9018F709927946D089520314D +:1008400080E4380719F480E091ED0895213190E4B7 +:10085000390719F480E090ED0895223140E434071F +:1008600019F480E092ED0895233180E4380719F4FB +:1008700080E093ED0895211590E5390769F40E9411 +:1008800015162FEF44E38CE0215040408040E1F703 +:1008900000C000000C94BD1C213090E5390731F4F4 +:1008A0008091D00181608093D0010895C901905555 +:1008B0008115904108F062C0432F55274F7055278E +:1008C00041305105F9F4C90174E0880F991F7A95F8 +:1008D000E1F788279370B901E3E0660F771FEA9587 +:1008E000E1F760767727862B972B9C682370332758 +:1008F00002C0440F551F2A95E2F74F715527842BEC +:10090000952B08954230510529F4922F8827816F45 +:10091000906A089543305105B9F4C90153E0880F36 +:10092000991F5A95E1F7807E97702370332741E035 +:1009300050E002C0440F551F2A95E2F74F7155272A +:10094000842B952B9C6808954430510549F5C901C5 +:1009500043E0880F991F4A95E1F7807E97702370D6 +:10096000332741E050E002C0440F551F2A95E2F7BB +:100970004F715527842B952B9A680895C90190577C +:100980008115904120F4C9019F7090620895C901BA +:1009900090588115904120F4C9019F70906A089584 +:1009A000203E3105E0F4203C310568F52133310566 +:1009B00009F475C048F42932310509F46BC02A32B4 +:1009C000310509F07BC075C02933310501F12238AA +:1009D0003105E9F02533310509F070C051C0233EDF +:1009E0003105B1F140F4203E3105D1F0223E310510 +:1009F00009F064C01CC0263E310579F1273E31055F +:100A000009F05CC038C0C9010E94E80308958091D4 +:100A1000E10180FD02C081FF51C080EE90E04FC037 +:100A20008091E10180FFF9CF89E390E048C0809197 +:100A3000E10182FF0AC08091E10184FF03C080E0F0 +:100A400090E03DC083EE90E03AC082EE90E037C087 +:100A50008091E10182FFEFCFF8CF8091E10183FF28 +:100A600007C08091E10184FDEACF87EE90E027C0C6 +:100A700086EE90E024C08091E10183FFF2CFF8CFB1 +:100A80008091E10185FF03C089E290E018C085E311 +:100A900090E015C08091E10185FDF9CFF5CF8091FF +:100AA000E10186FF03C08AE290E009C081E390E0A3 +:100AB00006C08091E10186FDF9CFF5CFC9010E9402 +:100AC0001003089508955F926F927F928F929F9284 +:100AD000AF92BF92CF92DF92EF92FF920F931F934C +:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A +:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92 +:100B0000911C60E070E000E010E0E12CF12CC12CC1 +:100B1000D12CA12CB12C8AE0782E622E532E41E0EC +:100B200050E0E4E1F1E0A62DB52D872D01900D9266 +:100B30008A95E1F7F901819191919F01FC01E07F94 +:100B4000FF27E032F10559F48F709927FA0102C0AE +:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7 +:100B6000F10559F48F709927FA0102C0EE0FFF1FAB +:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C +:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6 +:100B9000EE2AFF2A1BC0E035F10559F48F70992722 +:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2 +:100BB0000DC0E036F10551F48F709927FA0102C09B +:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554 +:100BD00009F0A7CF94B18A2D8095892384B985B176 +:100BE0008A2985B997B18C2D8095892387B988B1D9 +:100BF0008C2988B99AB18E2D809589238AB98BB1B9 +:100C00008E298BB99DB1802F809589238DB98EB1A6 +:100C1000802B8EB990B3862F8095892380BB81B3BA +:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0 +:100C3000DF91CF911F910F91FF90EF90DF90CF90B8 +:100C4000BF90AF909F908F907F906F905F9008952E +:100C50005F926F927F928F929F92AF92BF92CF924C +:100C6000DF92EF92FF920F931F93CF93DF93CDB755 +:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D +:100C8000806885BF85B7806885BF0E9463059E0127 +:100C90002F5F3F4F4E0189E1880E911C60E070E0AC +:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6 +:100CB00098E1792E622E532E41E050E0EEE1F1E012 +:100CC000A62DB52D872D01900D928A95E1F7F9019A +:100CD000819191919F01FC01E07FFF27E032F105B6 +:100CE00059F48F709927FA0102C0EE0FFF1F8A9501 +:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E +:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B +:100D1000DF2A29C0E034F10559F48F709927FA01D0 +:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2 +:100D3000E035F10559F48F709927FA0102C0EE0FE2 +:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531 +:100D500051F48F709927FA0102C0EE0FFF1F8A9598 +:100D6000E2F76E2B7F2B2815390509F0A7CF94B138 +:100D70008A2D8095892384B985B18A2985B997B14F +:100D80008C2D8095892387B988B18C2988B99AB12F +:100D90008E2D809589238AB98BB18E298BB99DB10F +:100DA000802F809589238DB98EB1802B8EB990B319 +:100DB000862F8095892380BB81B3862B81BB1092BF +:100DC00055011092540110925F0110925E01109231 +:100DD0005701109256011092610110926001109219 +:100DE0005901109258011092630110926201109201 +:100DF0005B0110925A0110926501109264011092E9 +:100E00005D0110925C0110926701109266018FEBF8 +:100E100092E0892BB9F068960FB6F894DEBF0FBE4A +:100E2000CDBFDF91CF911F910F91FF90EF90DF9099 +:100E3000CF90BF90AF909F908F907F906F905F907A +:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC +:100E5000DF91CF911F910F91FF90EF90DF90CF9096 +:100E6000BF90AF909F908F907F906F905F9008950C +:100E70005F926F927F928F929F92AF92BF92CF922A +:100E8000DF92EF92FF920F931F93CF93DF93CDB733 +:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE +:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6 +:100EB00053E2A50EB11C3AE0532E470101E010E0C9 +:100EC00048E1642E55E0752EE4E1F1E0D401852D72 +:100ED00001900D928A95E1F7F701819191917F013F +:100EE0009C01207F33272032310589F424B18F7093 +:100EF0009927A80102C0440F551F8A95E2F7CA013D +:100F0000242B24B995B18095892385B94FC020330E +:100F1000310589F427B18F709927F80102C0EE0FCF +:100F2000FF1F8A95E2F7CF012E2B27B998B1809544 +:100F3000892388B93BC02034310589F42AB18F70E8 +:100F40009927A80102C0440F551F8A95E2F7CA01EC +:100F5000242B2AB99BB1809589238BB927C02035D2 +:100F6000310589F42DB18F709927F80102C0EE0F79 +:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8 +:100F800089238EB913C02036310581F420B38F70C8 +:100F90009927A80102C0440F551F8A95E2F7CA019C +:100FA000242B20BB91B38095892381BB50EA5A95AD +:100FB000F1F7BE016F5F7F4F80E090E020E030E00E +:100FC000EEE1F1E0DE011196462D01900D924A9579 +:100FD000E1F7FB0141915191BF01FA01E07FFF2749 +:100FE000E032F10511F4E3B113C0E033F10511F47F +:100FF000E6B10EC0E034F10511F4E9B109C0E03505 +:10100000F10511F4ECB104C0E036F105B9F4EFB12B +:10101000F0E04F70552702C0F595E7954A95E2F745 +:10102000E0FD08C0A801022E02C0440F551F0A941B +:10103000E2F702C040E050E0842B952B2F5F3F4F3A +:101040002C30310509F0BCCFF60120813181281701 +:10105000390721F091838083709200010E9463051B +:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1 +:1010700000018823A1F1815080930001882339F079 +:101080008FE99FE00197F1F700C0000028C0809130 +:101090005E0190915F01909355018093540180917E +:1010A0006001909161019093570180935601809166 +:1010B000620190916301909359018093580180914E +:1010C00064019091650190935B0180935A01809136 +:1010D00066019091670190935D0180935C018AECB9 +:1010E00092E0892B11F00E94CA0281E0A2960FB60D +:1010F000F894DEBF0FBECDBFDF91CF911F910F914E +:10110000FF90EF90DF90CF90BF90AF909F908F9027 +:101110007F906F905F900895E82FF0E0EE0FFF1F33 +:10112000EC5AFE4F8081918108950895809171015C +:101130000895CF93DF9300D01F92CDB7DEB72091F3 +:10114000E701243021F523E029839B838A832093C0 +:10115000E9008FEF06C095ED9A95F1F7000088231E +:1011600029F09091E800815095FFF5CF8091E8003B +:1011700085FF0DC040E050E063E070E0CE010196D5 +:101180000E94280B8091E8008E778093E8000F90F2 +:101190000F900F90DF91CF910895CF93DF9300D000 +:1011A0001F92CDB7DEB72091E701243029F522E068 +:1011B00029839B838A8383E08093E9008FEF06C0B5 +:1011C00095ED9A95F1F70000882329F09091E800B9 +:1011D000815095FFF5CF8091E80085FF0DC040E07C +:1011E00050E063E070E0CE0101960E94280B8091F0 +:1011F000E8008E778093E8000F900F900F90DF91BA +:10120000CF9108952091E7012430F9F422E0209352 +:10121000E9002FEF06C035ED3A95F1F700002223E3 +:1012200029F03091E800215035FFF5CF2091E800FA +:1012300025FF0BC040E050E065E070E00E94280B05 +:101240008091E8008E778093E8000895CF93DF9334 +:10125000EC018091E701843041F581E08093E90061 +:101260008FEF06C095ED9A95F1F70000882329F0DD +:101270009091E800815095FFF5CF8091E80085FFBF +:1012800014C040E050E068E070E0CE010E94280BFE +:101290008091E8008E778093E80088E0FE01A9E65F +:1012A000B1E001900D928A95E1F7DF91CF91089519 +:1012B0008091E601811109C00E94C80C0E94250D91 +:1012C0008091E20084608093E20008951092E6012C +:1012D0000895089508950C94201C809172018F5FE9 +:1012E0008093720162E30E948924911135C01092AB +:1012F000720180917301882379F18091E701843034 +:1013000049F58091E9008F709091EC0090FF02C048 +:1013100090E801C090E0982B84E08093E9008091F0 +:10132000EB0080FF14C08091EE0087FD03C00FC06A +:101330001092F1008091E80085FDFACF8091E800DD +:1013400080FF05C08091E8008E778093E8009F7051 +:101350009093E90010927301089542E061EC81E0FE +:101360000E943E0C42E061EC82E00E943E0C42E0B2 +:1013700061EC83E00E943E0C42E261EC84E00C945C +:101380003E0C8091E901833009F454C030F481307F +:1013900071F0823009F0A5C08CC08A3009F479C0A0 +:1013A0008B3009F45FC0893009F09BC020C0809168 +:1013B000E801813A09F095C08091E800877F809329 +:1013C000E8008091EC019091ED01892B21F060E023 +:1013D00080E090E003C068E089E691E070E00E9460 +:1013E000770B8091E8008B778093E80008958091D7 +:1013F000E801813209F075C08091EC019091ED0116 +:10140000892B09F06EC08091E800877F8093E80007 +:1014100005C08091E701882309F463C08091E8004A +:1014200082FFF7CF8091F100809371018091E800F5 +:101430008B7753C08091E801813A09F052C08091C6 +:10144000EC019091ED01892B09F04BC08091E800EF +:10145000877F8093E8008091E80080FFFCCF809137 +:101460000B0136C08091E8018132D9F58091EC0101 +:101470009091ED01892BA9F58091E800877F8093F9 +:10148000E8000E94750C8091EA0180930B010C9496 +:1014900015168091E801813221F58091E800877F5F +:1014A0008093E8000E94750C8091EB0180936801A5 +:1014B00008958091E801813AA1F48091E800877F46 +:1014C0008093E8008091E80080FFFCCF8091680164 +:1014D0008093F1008091E8008E778093E8000C946F +:1014E000750C089584B7877F84BF88E10FB6F894A0 +:1014F00080936000109260000FBE90E080E80FB60D +:10150000F89480936100909361000FBE0E943310A5 +:101510000E94C80C0E94250D8091E2008460809397 +:10152000E20078940E94C20F0E94351081E091E0A1 +:101530000E94DF0F0BC00E94DD1B8091E501882314 +:1015400029F00E94081C81110E94120B8091E70172 +:10155000853089F30E943F10F9CF292F332723309C +:101560003105B1F04CF42130310509F44DC0223081 +:10157000310509F04EC007C02132310541F1223258 +:10158000310591F146C0E4E7F0E082E693E045C022 +:1015900099278130910569F08230910589F0892B76 +:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A +:1015B00034C0E0E3F3E0E491F0E080E393E02DC099 +:1015C000E4E0F3E0E491F0E084E093E026C06430EE +:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182 +:1015E0009181E9E0F0E019C0643098F4E62FF0E072 +:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD +:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A +:1016100004C0E0E0F0E080E090E0DA018D939C937C +:10162000CF01089580E189BD82E189BD09B400FE42 +:10163000FDCF8091D8008F7D8093D8008091E0000D +:1016400082608093E0008091E00081FDFCCF0895EE +:10165000BF92CF92DF92EF92FF920F931F93CF939F +:10166000DF937C018B01EA010E94960CB82E811158 +:1016700033C0209731F028813981021B130BE20E11 +:10168000F31EC12CD12C23C08091E80085FD15C02C +:101690008091E8008E778093E800209749F0888158 +:1016A00099818C0D9D1D9983888325E0B22E14C0ED +:1016B0000E94960C882359F00EC0F70181917F019A +:1016C0008093F10001501109FFEFCF1ADF0A0115D5 +:1016D0001105D1F601C0B82E8B2DDF91CF911F914E +:1016E0000F91FF90EF90DF90CF90BF9008954091C1 +:1016F000EE015091EF014617570748F0611571054B +:1017000039F44091E8004E774093E80001C0BA01F7 +:10171000FC0140E033C08091E701882309F444C014 +:10172000853009F443C08091E80083FD41C0809179 +:10173000E80082FD33C08091E80080FF1FC09091D7 +:10174000F3008091F200392F20E0A901482BCA0153 +:1017500006C041914093F1006150710901966115F5 +:10176000710519F088309105A0F341E0089709F060 +:1017700040E08091E8008E778093E8006115710564 +:1017800051F64111C8CF0AC08091E701882361F06A +:10179000853061F08091E80083FD0AC08091E80007 +:1017A00082FFF2CF80E0089582E0089583E00895FB +:1017B00081E008954091EE015091EF0146175707DF +:1017C00048F06115710539F44091E8004E77409377 +:1017D000E80001C0BA01FC0140E034C08091E7019B +:1017E000882309F445C0853009F444C08091E8009D +:1017F00083FD42C08091E80082FD34C08091E80002 +:1018000080FF20C09091F3008091F200392F20E0FA +:10181000A901482BCA0107C044914093F1003196B9 +:101820006150710901966115710519F088309105B3 +:1018300098F341E0089709F040E08091E8008E7746 +:101840008093E8006115710549F64111C7CF0AC0C0 +:101850008091E701882361F0853061F08091E80094 +:1018600083FD0AC08091E80082FFF2CF80E00895F6 +:1018700082E0089583E0089581E00895982F2CC0B8 +:101880009093E900981739F07091EC002091ED00E9 +:101890005091F00003C0242F762F50E021FD02C0AC +:1018A0009F5F1AC03091EB003E7F3093EB00309188 +:1018B000ED003D7F3093ED003091EB0031603093CF +:1018C000EB007093EC002093ED005093F00020911A +:1018D000EE0027FDE5CF07C0973090F28F70809320 +:1018E000E90081E0089580E008958091E80187FD96 +:1018F00005C08091E80080FF0EC012C08091E80012 +:1019000082FD05C08091E7018111F8CF0895809193 +:10191000E8008B7708C08091E7018111EACF089534 +:101920008091E8008E778093E80008958091E4002C +:101930009091E50045E62091EC0020FD1FC023C0FA +:101940002091E701222391F0253091F02091EB00C6 +:1019500025FD10C02091E4003091E50028173907DB +:1019600051F34150C90139F784E0089582E00895A8 +:1019700083E0089581E0089580E008952091E800D3 +:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E +:101990000E94360D0E943E0DE0EEF0E080818160F5 +:1019A0008083E8EDF0E080818F77808319BCA7ED1C +:1019B000B0E08C918E7F8C9380818F7E808310929B +:1019C000E60108950F931F93CF93DF930E94360D86 +:1019D0000E943E0DC8EDD0E088818F778883888192 +:1019E0008068888388818F7D888319BC1092E70185 +:1019F0001092E3011092E5011092E40100EE10E074 +:101A0000F80180818B7F808388818160888342E0B8 +:101A100060E080E00E943E0CE1EEF0E080818E7F8D +:101A20008083E2EEF0E08081816080838081886045 +:101A30008083F80180818E7F8083888180618883A4 +:101A4000DF91CF911F910F910895E8EDF0E0808133 +:101A50008F7E8083E7EDF0E080818160808384E089 +:101A600082BF81E08093E6010C94E20CE8EDF0E0A7 +:101A700080818E7F80831092E20008951092DA00B8 +:101A80001092E10008951F920F920FB60F92112449 +:101A90002F933F934F935F936F937F938F939F9376 +:101AA000AF93BF93EF93FF938091E10082FF0BC050 +:101AB0008091E20082FF07C08091E1008B7F8093DC +:101AC000E1000E946D098091DA0080FF1FC08091C3 +:101AD000D80080FF1BC08091DA008E7F8093DA00EF +:101AE0008091D90080FF0DC080E189BD82E189BD70 +:101AF00009B400FEFDCF81E08093E7010E94580900 +:101B000005C019BC1092E7010E9466098091E100AE +:101B100080FF19C08091E20080FF15C08091E20033 +:101B20008E7F8093E2008091E20080618093E200EA +:101B30008091D80080628093D80019BC85E08093A2 +:101B4000E7010E946A098091E10084FF30C0809122 +:101B5000E20084FF2CC080E189BD82E189BD09B427 +:101B600000FEFDCF8091D8008F7D8093D8008091BA +:101B7000E1008F7E8093E1008091E2008F7E809370 +:101B8000E2008091E20081608093E2008091E301B5 +:101B9000882311F084E007C08091E30087FF02C032 +:101BA00083E001C081E08093E7010E946B0980918E +:101BB000E10083FF29C08091E20083FF25C080916E +:101BC000E100877F8093E10082E08093E70110923B +:101BD000E3018091E1008E7F8093E1008091E2003B +:101BE0008E7F8093E2008091E20080618093E2002A +:101BF00042E060E080E00E943E0C8091F00088604E +:101C00008093F0000E946909FF91EF91BF91AF911D +:101C10009F918F917F916F915F914F913F912F9104 +:101C20000F900FBE0F901F9018951F920F920FB636 +:101C30000F9211242F933F934F935F936F937F9352 +:101C40008F939F93AF93BF93CF93EF93FF93809125 +:101C5000E9008F709091EC0090FF02C090E801C005 +:101C600090E0C92FC82B1092E9008091F000877F87 +:101C70008093F00078940E94590E1092E9008091B0 +:101C8000F00088608093F000CF70C093E900FF916E +:101C9000EF91CF91BF91AF919F918F917F916F9174 +:101CA0005F914F913F912F910F900FBE0F901F901A +:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0 +:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9 +:101CD000819321E0E03FF207C9F70E94C10980919A +:101CE000E80083FF37C18091E8019091E9019530C8 +:101CF00009F488C038F49130B1F170F0933009F0F4 +:101D000029C131C0983009F4F8C0993009F404C1F0 +:101D1000963009F01FC19DC0803821F0823809F04B +:101D200019C108C08091E4019091E501992389F0DF +:101D300082600FC08091EC019091ED018F70992726 +:101D40008093E9008091EB0085FB882780F9109251 +:101D5000E9009091E800977F9093E8008093F1006C +:101D60001092F100D5C0882319F0823009F0F2C03A +:101D70008F7121F0823009F0EDC00BC08091EA0133 +:101D8000813009F0E7C0933009F080E08093E501ED +:101D90002FC08091EA0181112BC08091EC019091BC +:101DA000ED018F709927009709F4D4C08093E90062 +:101DB0002091EB0020FF1CC02091E901233021F489 +:101DC0008091EB00806212C09091EB009061909343 +:101DD000EB0021E030E001C0220F8A95EAF7209362 +:101DE000EA001092EA008091EB0088608093EB009B +:101DF0001092E9008091E800877F8093E8000E94BC +:101E0000750CA8C08111A6C08091EA019091EB01E8 +:101E10008F779927182F9091E3009078982B9093C3 +:101E2000E3008091E800877F8093E8000E94750CB2 +:101E30008091E80080FFFCCF8091E3008068809370 +:101E4000E300112311F083E001C082E08093E701F9 +:101E500081C08058823008F07DC08091EA01909165 +:101E6000EB018C3D23E0920779F583E08A838AE2D7 +:101E700089834FB7F894DE01139620E03EE051E2EB +:101E8000E32FF0E050935700E49120FF03C0E29568 +:101E9000EF703F5FEF708E2F90E0EA3010F0C79642 +:101EA00001C0C0968D939D932F5F243149F74FBF9A +:101EB0008091E800877F8093E8006AE270E0CE01BD +:101EC00001960E94770B13C0AE01455D5F4F609194 +:101ED000EC010E94AD0A0097E9F12091E800277F0C +:101EE0002093E800BC018BA59CA50E94DA0B809191 +:101EF000E8008B778093E8002DC0803859F58091F9 +:101F0000E800877F8093E8008091E3018093F100EF +:101F10008091E8008E7771CF81111CC09091EA0109 +:101F20009230C0F48091E800877F8093E80090931E +:101F3000E3010E94750C8091E301811104C080913E +:101F4000E30087FF02C084E001C081E08093E701E5 +:101F50000E94AD098091E80083FF0AC08091E800EB +:101F6000877F8093E8008091EB0080628093EB0094 +:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108 +:101F80001F910895CF938091E7018823B1F080914C +:101F9000E9008F709091EC0090FF02C090E801C0C2 +:101FA00090E0C92FC82B1092E9008091E80083FDD2 +:101FB0000E94590ECF70C093E900CF91089590937D +:101FC0007501809374010895E0917401F091750199 +:101FD000309721F00190F081E02D099480E0089580 +:101FE000E0917401F0917501309721F00280F38146 +:101FF000E02D09940895E0917401F09175013097F6 +:1020000021F00480F581E02D099408952091760156 +:10201000309177018217930771F090937701809345 +:102020007601E0917401F0917501309721F00680FE +:10203000F781E02D0994089520917801309179017C +:102040008217930771F09093790180937801E09162 +:102050007401F0917501309721F00084F185E02D35 +:102060000994089508950C9432100E94541C0E9403 +:1020700028060E94281D0C94D0220C9462055F92C1 +:102080006F927F928F929F92AF92BF92CF92DF9288 +:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED +:1020A0002A970FB6F894DEBF0FBECDBF0E94380747 +:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B +:1020C000B12C502E802F0E948C083C01F601E1902B +:1020D000F1906F01E826F926E114F10431F40F5F65 +:1020E0001F4F0530110569F73AC08091D00181FD7D +:1020F0000E94950820E030E04501022E02C0880CC5 +:10210000991C0A94E2F7C4018E219F21892B09F1C1 +:102110002E835F826820792081E0672809F480E0BF +:1021200088870E945D1C8160782F9A8789874E81FD +:102130005F8168858A850E94F810F801EE0FFF1F05 +:10214000E658FE4F8081918188259925918380836F +:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87 +:1021600089838A831B820E945D1C8160782F9D83F6 +:102170008C8349815A816B818D810E94F8100E9465 +:102180001520109184010E94E40F1817D9F00E94C5 +:10219000E40F809384012A960FB6F894DEBF0FBE39 +:1021A000CDBFDF91CF911F910F91FF90EF90DF9006 +:1021B000CF90BF90AF909F908F907F906F905F90E7 +:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B +:1021D000DF91CF911F910F91FF90EF90DF90CF9003 +:1021E000BF90AF909F908F907F906F905F90089579 +:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42 +:102200000FBECDBF4F83588769877A878B87DE01E2 +:10221000119686E0FD0111928A95E9F785E0FE01AD +:10222000379601900D928A95E1F749815A816B8129 +:102230007C818D819E810E94D4182B960FB6F894D4 +:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2 +:10225000882309F4C1C0823859F40E94E40F81FD3B +:10226000BBC089E30E943B1B0E94B71B89E30CC0E3 +:10227000833879F40E94E40F80FDAEC083E50E94AC +:102280003B1B0E94B71B83E50E945D1BCF910C9402 +:10229000B71B843859F40E94E40F82FD9DC087E487 +:1022A0000E943B1B0E94B71B87E4EECF8450813A0B +:1022B00048F48C2F0E94322281118EC08C2F0E94F4 +:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8 +:1022D00090E001C0880FCA95EAF70E947E1BD6CF16 +:1022E0008C2F855A833078F4C53A29F0C63A31F4F8 +:1022F00082E890E005C081E890E002C083E890E0C9 +:10230000CF910C9406108C2F885A833108F064C04A +:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7 +:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145 +:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5 +:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133 +:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079 +:1023600038C082EE90E035C089EE90E032C08AEE4F +:1023700090E02FC085EB90E02CC086EB90E029C068 +:1023800087EB90E026C08CEC90E023C08DEC90E0D1 +:1023900020C083E891E01DC08AE891E01AC082E97C +:1023A00091E017C084E991E014C081E292E011C08D +:1023B00083E292E00EC084E292E00BC085E292E0FC +:1023C00008C086E292E005C087E292E002C080E0A9 +:1023D00090E0CF910C941C10CF910895882309F4BC +:1023E0004DC0823859F40E94E40F81FF47C089E351 +:1023F0000E943B1B0E94B71B89E30CC0833871F419 +:102400000E94E40F80FF3AC083E50E943B1B0E94BC +:10241000B71B83E50E945D1B0C94B71B843859F4ED +:102420000E94E40F82FF2AC087E40E943B1B0E94A7 +:10243000B71B87E4EFCF982F9450913A08F4EACF76 +:10244000982F905E983058F4282F277081E090E004 +:1024500001C0880F2A95EAF70E94841BDDCF982FD0 +:10246000955A933020F480E090E00C940610885A3E +:10247000833120F480E090E00C941C1008958823B0 +:1024800021F00E947E1B0C94B71B0895882321F035 +:102490000E94841B0C94B71B0895BF92CF92DF92C9 +:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9 +:1024B00027970FB6F894DEBF0FBECDBF8C0185E025 +:1024C000F801DE01119601900D928A95E1F7F8016D +:1024D00030812181F280558152955F708381948192 +:1024E000892B39F02F3F41F481E090E03F3F31F0FC +:1024F00003C081E090E002C080E090E080FD73C303 +:1025000039832A8389819A815E830E94F81AB92EC1 +:102510008F830E94F71A0E941F1A2B2D22952F706D +:1025200030E05E816F812530310509F4E6C06CF43E +:10253000243031050CF0A2C04B2D407F8B2D8F70C5 +:10254000223031050CF045C017C02C3031054CF459 +:102550002A3031050CF0E7C12830310509F043C3BA +:10256000E5C02D30310509F4BAC20CF4A2C22F30F7 +:10257000310509F038C323C3182F411101C002C02F +:102580001295107FFF2059F0112309F46BC2812F9F +:102590006F830E948E1B0E94B71B6F8163C2862FC0 +:1025A0000E94EE11112309F41EC3812F0E94941B77 +:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147 +:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 +:1025D000B71B403211F08295807F662319F061307D +:1025E00071F523C0FF20B1F0511101C032C051304C +:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1 +:10260000CF911F910F91FF90EF90DF90CF90BF90EF +:102610000C949E1B511101C003C0513009F4E3C258 +:102620008E830E94A11B8E819AC1FF2021F056301B +:1026300008F0D9C20EC0553008F0D5C290C1FF20B5 +:10264000C9F0552331F0F801958190FF0BC29F70BE +:10265000958327960FB6F894DEBF0FBECDBFDF91EE +:10266000CF911F910F91FF90EF90DF90CF90BF908F +:102670000C943F12552309F472C109C22B2D2695E3 +:102680002695237030E02115310529F021303105E0 +:1026900009F0A9C219C0FF2021F0862F9B2D93704D +:1026A00002C080E090E027960FB6F894DEBF0FBE20 +:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1 +:1026C000CF90BF900C940610FF2021F0862F9B2DF9 +:1026D000937002C080E090E027960FB6F894DEBFBA +:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 +:1026F000DF90CF90BF900C941C10862FFF2019F014 +:102700000E941B1F02C00E94831F27960FB6F894D9 +:10271000DEBF0FBECDBFDF91CF911F910F91FF9014 +:10272000EF90DF90CF90BF900C940A208B2D837098 +:1027300009F079C0F11057C2262F229526952770EF +:10274000220F220F862F8F70C82ED12CE12CF12C56 +:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728 +:1027600064FF10C06FE070E080E090E004C0660F8E +:10277000771F881F991F2A95D2F7609570958095CD +:10278000909503C060E070E0CB012B2D2695269537 +:102790002370422F50E042305105D9F043305105AB +:1027A00069F16C297D298E299F294130510551F10C +:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145 +:1027C0001F910F91FF90EF90DF90CF90BF900C94EE +:1027D000341A6C297D298E299F2927960FB6F894E3 +:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 +:1027F000EF90DF90CF90BF900C94461A0E94341A4D +:10280000C701B60127960FB6F894DEBF0FBECDBF45 +:10281000DF91CF911F910F91FF90EF90DF90CF90BC +:10282000BF900C94221AFF2019F08B2D817001C0EB +:102830008695882309F4D7C1262F229526952770DF +:10284000220F220F862F8F70C82ED12CE12CF12C55 +:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727 +:1028600064FF10C06FE070E080E090E004C0660F8D +:10287000771F881F991F2A95D2F7609570958095CC +:10288000909503C060E070E0CB012B2D2695269536 +:102890002370422F50E042305105D9F043305105AA +:1028A00069F16C297D298E299F294130510551F10B +:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144 +:1028C0001F910F91FF90EF90DF90CF90BF900C94ED +:1028D000D31A6C297D298E299F2927960FB6F89443 +:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 +:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E +:10290000C701B60127960FB6F894DEBF0FBECDBF44 +:10291000DF91CF911F910F91FF90EF90DF90CF90BB +:10292000BF900C94C11A603F59F120F4603E08F446 +:1029300094C008C0623F09F467C0F0F1633F09F03A +:102940008CC065C0162F1F708B2D8F71FF2021F05A +:102950000E946C1A812F7DCE0E94871A812F2796A4 +:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0 +:102970000F91FF90EF90DF90CF90BF900C94461294 +:10298000FF20B1F0553008F02EC18B2D8F712796A6 +:102990000FB6F894DEBF0FBECDBFDF91CF911F9170 +:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC +:1029B000563008F018C1E9CFFF2099F08B2D8F71A8 +:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133 +:1029D0001F910F91FF90EF90DF90CF90BF900C94DC +:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31 +:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE +:102A0000CF90BF900C94871AF110EBCFD7CFFF2057 +:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD +:102A2000CDBFDF91CF911F910F91FF90EF90DF907D +:102A3000CF90BF900C945D1A27960FB6F894DEBF26 +:102A40000FBECDBFDF91CF911F910F91FF90EF90FF +:102A5000DF90CF90BF900C94581AFF20A9F0552317 +:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1 +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF900C942611552309F4AACF862F1E +:102A900027960FB6F894DEBF0FBECDBFDF91CF9162 +:102AA0001F910F91FF90EF90DF90CF90BF900C940B +:102AB000EE114B2D4F70C8010E94AB0227960FB646 +:102AC000F894DEBF0FBECDBFDF91CF911F910F9164 +:102AD000FF90EF90DF90CF90BF900C948A19F11087 +:102AE00082C09B2D9F70492F50E04230510599F1D3 +:102AF00044F44115510569F04130510509F073C0A6 +:102B000019C043305105C1F14430510509F06BC083 +:102B100044C027960FB6F894DEBF0FBECDBFDF913D +:102B2000CF911F910F91FF90EF90DF90CF90BF90CA +:102B30000C94E12227960FB6F894DEBF0FBECDBFEE +:102B4000DF91CF911F910F91FF90EF90DF90CF9089 +:102B5000BF900C94F82227960FB6F894DEBF0FBEF4 +:102B6000CDBFDF91CF911F910F91FF90EF90DF903C +:102B7000CF90BF900C94142327960FB6F894DEBF25 +:102B80000FBECDBFDF91CF911F910F91FF90EF90BE +:102B9000DF90CF90BF900C942723862F27960FB6F7 +:102BA000F894DEBF0FBECDBFDF91CF911F910F9183 +:102BB000FF90EF90DF90CF90BF900C944B234B2D64 +:102BC0004F70C80127960FB6F894DEBF0FBECDBF79 +:102BD000DF91CF911F910F91FF90EF90DF90CF90F9 +:102BE000BF900C94D40327960FB6F894DEBF0FBEA7 +:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC +:102C0000CF90BF9008950E949B1B0E94701B0E9452 +:102C1000B71B0E94B6200E940A2080E090E00E942C +:102C2000061080E090E00C941C100E948B1B0C940A +:102C300003160E94F81A292F22952F7030E02C30AD +:102C400031054CF42A3031056CF422503109223020 +:102C5000310590F407C02C30310551F02F3031058B +:102C600059F406C0803E10F0803F31F481E00895B1 +:102C700093FB882780F9089580E00895CF93DF9330 +:102C800000D000D01F92CDB7DEB70F900F900F90FD +:102C90000F900F90DF91CF910895CF93DF9300D0E5 +:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1 +:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8 +:102CC000C091BB0116E012C0D0E01C9FF0011D9F17 +:102CD000F00D1124E557FE4F4081518162817381CF +:102CE000848195810E944D162196C7708091BC0108 +:102CF000C813EACFDF91CF911F91089540918501CC +:102D000050918601609187017091880180918901BD +:102D100090918A010C944D160F931F93CF93DF93DC +:102D200080918A0182958F7009F069C08091870136 +:102D3000882309F464C0A091BB01D091BC01B0917B +:102D40008501C0918601809188019091890121E0DF +:102D500030E0BF3F11F020E030E0122FBC01609561 +:102D6000709506E04AC0009721F0CF3F29F4212F4B +:102D700005C021E030E002C020E030E020FD3BC093 +:102D80004A2F50E0049FF001059FF00D1124E557F4 +:102D9000FE4F2181C2132FC02081B2132CC022818B +:102DA000211129C0238134812817390718F0281BE5 +:102DB000390B02C0260F371F283C3105E0F4809103 +:102DC0008A018F70806180938A0186E0849FF00180 +:102DD000859FF00D1124E057FE4F80818F70806138 +:102DE000808385E891E00E944D12DF91CF911F9181 +:102DF0000F910C945D16AF5FA770AD13B4CFDF9148 +:102E0000CF911F910F910895EF92FF920F931F930F +:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE +:102E20000FBECDBF8C0185E0F801DE011D9601903B +:102E30000D928A95E1F7D8014C9111965C9111970A +:102E400012966C9112971396ED90FC9014977091D6 +:102E50008501E09186018091880190918901009718 +:102E600039F0EF3F41F421E030E07F3F31F003C023 +:102E700021E030E002C020E030E020FD5CC1209184 +:102E80008701222309F4F1C0E816F90628F097011A +:102E9000281B390BC90104C0809590958E0D9F1D8C +:102EA000883C910508F098C080918A01982F907F06 +:102EB00009F064C0E51314C0741312C0611110C08E +:102EC0008F70806180938A010E947E1685E891E070 +:102ED0000E944D1280918A01D80115968C9343C1AE +:102EE000EF2839F05F3F41F481E090E04F3F31F04F +:102EF00003C081E090E002C080E090E080FD03C06C +:102F000081E0862702C080E090E080FF2EC08091A3 +:102F1000BB012091BC0136E013C090E0389FF00166 +:102F2000399FF00D1124E557FE4F7181571306C0EC +:102F30007081471303C07281671317C001968770B1 +:102F40008213EBCF12C19F7059F0882309F40BC193 +:102F500007C09F7029F0F8019581907F09F403C1A3 +:102F6000805E883008F4FFC0D2C0662309F4FBC03D +:102F700080918A01816080938A01F5C0E51308C0C1 +:102F8000741306C0611104C0D80115968C939DC0BE +:102F90004D875E878D859E856A8B0E9419166A898A +:102FA000882309F4B4C0662309F4B1C020918A01D2 +:102FB000822F82958F7090E002970CF4C6C08091AA +:102FC00085019091860198878F831986FB86EA8612 +:102FD0002C87CE01079646C080918A01982F907F5A +:102FE00059F47E2DF98AE88A89890E943E1685E87F +:102FF00091E00E944D1295C0E51311C074130FC0EB +:1030000061110DC0F8018583C8010E944D12E5E8E9 +:10301000F1E086E0DF011D928A95E9F7A2C04D87B5 +:103020005E878D859E856A8B0E9419166A89882322 +:1030300009F46DC0662309F46AC020918A01822FC9 +:1030400082958F7090E002970CF47FC0809185018B +:10305000909186019A8389831B82FD82EC822E8364 +:10306000CE0101960E944D1270C0E816F90628F0B4 +:103070009701281B390BC90104C0809590958E0DCE +:103080009F1D883C910508F046C0662309F43FC0A7 +:10309000E51330C074132EC020918A0120FD21C099 +:1030A000322F32953F70832F90E00097D1F0D801F6 +:1030B00015962C9315970F9741F0832F8F5F82956C +:1030C000807F2F70282B15962C93C8010E944D12DB +:1030D00086E0F801A5E8B1E001900D928A95E1F74C +:1030E0003EC086E0F801A5E8B1E001900D928A9516 +:1030F000E1F737C04D875E878D859E850E94191642 +:10310000811123C080918A01816080938A01C80166 +:103110000E944D1226C07E2DF98AE88A89890E9474 +:103120003E16E5E8F1E086E0DF011D928A95E9F7B9 +:103130000E947E1618C0662351F34D875E878D85E9 +:103140009E850E941916882311F386E0F801A5E8F0 +:10315000B1E001900D928A95E1F70E948C160E94D1 +:103160007E1681E014C080E012C04D875E878D8599 +:103170009E850E94F81A292F22952F7030E0223068 +:1031800031050CF4E0CE243031050CF6E2CE629627 +:103190000FB6F894DEBF0FBECDBFDF91CF911F9168 +:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA +:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E +:1031C000588769877A878B879C87CE0107960E94EC +:1031D00004178823D9F02F8138858A859B85892B10 +:1031E00039F03F3F19F080E090E004C02F3FD9F75D +:1031F00081E090E0892B09F06DC04F815885698589 +:103200007A858B859C850E944D1664C086E0FE0100 +:103210003796DE01119601900D928A95E1F7FF81B4 +:10322000E8854A855B854115510539F0EF3F41F44A +:1032300081E090E0FF3F31F003C081E090E002C008 +:1032400080E090E080FD46C02091BC0130E0C901E3 +:103250000196877099276091BB0170E086179707E8 +:1032600009F440C0F983EA835D834C8396E0929F22 +:10327000D001939FB00D1124A557BE4FFE0131968A +:1032800001900D929A95E1F78093BC010E945D1622 +:1032900021C0189FC001112485579E4F0E9404171A +:1032A000882371F1E091BB011E9FF0011124E557C5 +:1032B000FE4F4081518162817381848195810E949A +:1032C0004D168091BB0190E00196877099278093FD +:1032D000BB0101C016E08091BB019091BC01891334 +:1032E000D8CF0EC00E9415161092BC011092BB01DF +:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83 +:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4 +:103310001F910895DF92EF92FF920F931F93CF9327 +:10332000DF93EC01009709F46EC0D12CEE24E394F6 +:10333000F12C8E010F5F1F4FFE018491843748F4FA +:10334000843008F04CC0813071F0823009F05BC0ED +:103350001EC0853709F43FC080F1982F94589037EC +:1033600008F051C03FC02296F8018491982F905EDA +:10337000983050F48770FE2D01C0FF0F8A95EAF750 +:103380008F2F0E948E1B13C00E9426112FC02296E1 +:10339000F8018491982F905E983060F48770FE2D2C +:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D +:1033B000B71B1CC00E94EE1119C02296F80104919F +:1033C00007C08FE99FE00197F1F700C000000150AE +:1033D0000111F7CF0BC02296F801D49007C00E94CC +:1033E000261103C08F770E94EE11E8018D2D07C0D2 +:1033F0008150EFE9FFE03197F1F700C0000088232A +:1034000009F497CFF5CFDF91CF911F910F91FF90E6 +:10341000EF90DF9008956093C1017093C201809393 +:10342000C3019093C4010C9403166093BD01709383 +:10343000BE018093BF019093C0010C9403160895C0 +:103440000C940B1A0F931F930091C1011091C201AC +:103450002091C3013091C401602B712B822B932BDF +:103460001F910F910C940B1A0F931F930091C101A0 +:103470001091C2012091C3013091C40160237123D6 +:10348000822393231F910F910C940B1A0F931F9378 +:103490000091C1011091C2012091C3013091C4017A +:1034A00060277127822793271F910F910C940B1A85 +:1034B00060E070E0CB010C94151A41E050E060E050 +:1034C00070E004C0440F551F661F771F8A95D2F71E +:1034D000CB01BA010C94151A41E050E060E070E0B5 +:1034E00004C0440F551F661F771F8A95D2F780913D +:1034F000BD019091BE01A091BF01B091C001482BC8 +:10350000592B6A2B7B2BCB01BA010C94151A41E085 +:1035100050E060E070E004C0440F551F661F771F45 +:103520008A95D2F740955095609570958091BD0130 +:103530009091BE01A091BF01B091C00148235923D1 +:103540006A237B23CB01BA010C94151A41E050E0A9 +:1035500060E070E004C0440F551F661F771F8A9516 +:10356000D2F78091BD019091BE01A091BF01B091B1 +:10357000C001482759276A277B27CB01BA010C9441 +:10358000151A0F931F930091BD011091BE01209158 +:10359000BF013091C001602B712B822B932B1F91A7 +:1035A0000F910C94151A0F931F930091BD01109168 +:1035B000BE012091BF013091C0016023712382239D +:1035C00093231F910F910C94151A0F931F93009141 +:1035D000BD011091BE012091BF013091C001602753 +:1035E0007127822793271F910F910C94151A089524 +:1035F000CF92DF92EF92FF920F931F93CF93DF93BF +:10360000EC01C090C101D090C201E090C301F090E4 +:10361000C4018091BD019091BE01A091BF01B09104 +:10362000C001C82AD92AEA2AFB2A0FE110E0B70113 +:10363000A601002E04C076956795579547950A9484 +:10364000D2F740FF08C0BE01802F0E94FA038130EC +:10365000910509F007C00150110948F7BE0180E04B +:103660000E94FA03DF91CF911F910F91FF90EF908D +:10367000DF90CF90089540910C0150910D0120E012 +:1036800030E09FEFFA01E20FF31F62816817A1F0AB +:103690009F3F19F4611101C0922F2F5F3F4F2630D9 +:1036A000310581F707C0FA01E90FF11D97FDFA9581 +:1036B000828308959F3FB9F7089540910C0150917E +:1036C0000D0120E030E0FA01E20FF31F9281981320 +:1036D00001C012822F5F3F4F26303105A1F70895B8 +:1036E00081E090E0E0910C01F0910D01E80FF91FED +:1036F0001082019688309105A9F708959091C5012F +:10370000982B9093C501089580959091C5019823B9 +:103710009093C50108951092C50108959091C60136 +:10372000982B9093C601089580959091C601982397 +:103730009093C60108951092C60108958093C70121 +:1037400008951092C701089540910C0150910D0108 +:1037500020E030E080E0FA01E20FF31F9181911147 +:103760008F5F2F5F3F4F27303105A9F70895E09114 +:103770000C01F0910D018091C5018083E0910C0155 +:10378000F0910D0180819091C601892B80839091E9 +:10379000C701992361F0E0910C01F0910D01808146 +:1037A000892B80830E94A41B81110E94A11B809100 +:1037B0000C0190910D010C94F00F8091E701843081 +:1037C00021F11092D10120E488E190E00FB6F89445 +:1037D000A895809360000FBE2093600080E00E9457 +:1037E000E10283B7817F846083BF83B7816083BF39 +:1037F0007894889583B78E7F83BF88E10FB6F8945D +:1038000080936000109260000FBE0895089508959F +:10381000CF9380E00E94E1020E94061C0E943807BC +:103820000E94071CC0E08C2F0E948C08892B29F471 +:10383000CF5FC530C1F780E001C081E0CF9108952E +:103840000E94151680E00E94E1020E94D0220E9490 +:10385000E40F0C9462051F920F920FB60F92112481 +:103860008F939F93AF93BF938091D101811113C028 +:103870008091D2019091D301A091D401B091D50152 +:103880004196A11DB11D8093D2019093D301A093C5 +:10389000D401B093D501BF91AF919F918F910F90BB +:1038A0000FBE0F901F90189582E084BD93E095BDE8 +:1038B0009AEF97BD80936E0008958FB7F89440916A +:1038C000D2015091D3016091D4017091D5018FBF85 +:1038D000CA010895CF92DF92EF92FF920F931F9348 +:1038E0002FB7F8944091D2015091D3016091D40147 +:1038F0007091D5012FBF6A017B01EE24FF248C015A +:1039000020E030E0C016D106E206F30620F09A016E +:10391000281B390B05C09C0120953095240F351FBD +:10392000C9011F910F91FF90EF90DF90CF90089504 +:103930001F920F920FB60F9211248F939F93AF9304 +:10394000BF938091D2019091D301A091D401B09105 +:10395000D5010196A11DB11D8093D2019093D30191 +:10396000A093D401B093D501BF91AF919F918F9156 +:103970000F900FBE0F901F9018950E94C80CF894DE +:103980002FEF87EA91E6215080409040E1F700C098 +:10399000000087E090EBDC018093F1019093F2014D +:1039A000A093F301B093F4012CE088E190E00FB60E +:1039B000F894A895809360000FBE20936000FFCF1D +:1039C000CF92DF92EF92FF920F931F93CF93DF93EB +:1039D000C82ED12C01E010E08D2D0E948C087C01B6 +:1039E000C0E0D0E098010C2E02C0220F331F0A94D1 +:1039F000E2F72E213F21232B29F42196CC30D1054B +:103A000089F708C06C2F7D2D80E00E94D503C81275 +:103A1000F4CF06C0D39485E0D812DECF80E001C099 +:103A200081E0DF91CF911F910F91FF90EF90DF9098 +:103A3000CF900895CF93C82F8CE20E94E01C88237A +:103A400021F08C2FCF910C94E01C80E0CF91089551 +:103A5000CF930E946B1E811102C00E944C1EC5E6CE +:103A600008C00E9438078FE39CE90197F1F700C076 +:103A70000000C150B1F789E20E941A1D81110AC1EC +:103A80008AE20E941A1D81110E944C1E85E00E944C +:103A90001A1D81110E94BD1C0E94761E8093D001C8 +:103AA00087E00E941A1D882399F18BE10E941A1D5C +:103AB000882351F09091D00191FB882780F921E073 +:103AC000822780FB91F922C08EE00E941A1D882374 +:103AD00051F09091D00192FB882780F921E0822754 +:103AE00080FB92F913C080E10E941A1D9091D001D1 +:103AF000882341F093FB882780F921E0822780FB0F +:103B000093F904C0892F809580FB90F99093D001A0 +:103B10008091D0010E947A1E0E94881E8093E1014C +:103B200080EE0E941A1D882341F08091E101982FB8 +:103B3000909590FB80F98093E10189E30E941A1D22 +:103B4000882359F09091E10191FB882780F921E0C9 +:103B5000822780FB91F99093E10182EE0E941A1D69 +:103B6000882359F09091E10192FB882780F921E0A8 +:103B7000822780FB92F99093E10186EE0E941A1D44 +:103B8000882359F09091E10193FB882780F921E087 +:103B9000822780FB93F99093E10183EE0E941A1D26 +:103BA000882359F09091E10194FB882780F921E066 +:103BB000822780FB94F99093E10185E30E941A1D0E +:103BC000882359F09091E10195FB882780F921E045 +:103BD000822780FB95F99093E10181E30E941A1DF1 +:103BE000882359F09091E10196FB882780F921E024 +:103BF000822780FB96F99093E10181E10E941A1DD2 +:103C0000882359F09091E10197FB882780F921E002 +:103C1000822780FB97F99093E1018091E1010E9456 +:103C20008C1E87E20E941A1DC82F8EE10E941A1D69 +:103C30008111C2608FE10E941A1D8111C46080E26F +:103C40000E941A1D8111C86081E20E941A1D811113 +:103C5000C06182E20E941A1D8111C06283E20E944B +:103C60001A1D8111C06484E20E941A1D882311F07C +:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9 +:103C800003C00E947F1E682F70E080E090E0CF911B +:103C90000C94201ACF9108956DEE7EEF80E090E0B5 +:103CA0000E94D92460E082E090E00E94CB2460E092 +:103CB00083E090E00E94CB2460E084E090E00E94EA +:103CC000CB2460E085E090E00E94CB2460E086E0B9 +:103CD00090E00C94CB2480E090E00E94C52421E089 +:103CE0008D3E9E4F09F020E0822F089582E090E003 +:103CF0000C94BD24682F82E090E00C94CB2483E0E8 +:103D000090E00C94BD24682F83E090E00C94CB24C9 +:103D100084E090E00C94BD24682F84E090E00C9443 +:103D2000CB2486E090E00C94BD24682F86E090E0E0 +:103D30000C94CB248091DE0180FF0BC060911101B7 +:103D400085E0689FB0011124759567957595679515 +:103D50002AC081FF09C06091110185E0689FB00110 +:103D60001124759567951FC082FF07C060911101EE +:103D700085E0689FB001112416C04091D80144230A +:103D8000C9F060911001461788F72091110185E074 +:103D9000289F90011124429FC001439F900D112440 +:103DA00070E00E9495246038710540F4611571053A +:103DB00039F002C065E070E0862F08958FE708951E +:103DC00081E008958091DE0180FF08C060910F01BD +:103DD00070E0759567957595679521C081FF06C060 +:103DE00060910F0170E07595679519C082FF04C05E +:103DF00060910F0170E010C08091D8018823C1F05C +:103E000060910E018617A0F790910F01989FC00155 +:103E1000112470E00E9495246038710528F4611522 +:103E2000710521F0862F08958FE7089581E00895A8 +:103E300061E070E0F4CF803F21F40E949A1E8195EA +:103E400004C0813F29F40E949A1E8093DB010895EB +:103E5000823F21F40E949A1E819504C0833F29F479 +:103E60000E949A1E8093DA010895893F19F40E94F6 +:103E7000E21E05C08A3F31F40E94E21E81958093C4 +:103E8000DC0108958B3F21F40E94E21E819504C05D +:103E90008C3F29F40E94E21E8093DD010895843F47 +:103EA00021F48091D901816017C0853F21F4809170 +:103EB000D901826011C0863F21F48091D9018460CC +:103EC0000BC0873F21F48091D901886005C0883FED +:103ED00031F48091D90180618093D90108958D3F9B +:103EE00021F48091DE0181600BC08E3F21F480912E +:103EF000DE01826005C08F3F29F48091DE0184607D +:103F00008093DE010895803F29F48091DB0187FFD3 +:103F10006EC007C0813F41F48091DB0118160CF0A0 +:103F200066C01092DB0163C09091DA01823F19F400 +:103F300097FF5DC005C0833F31F419160CF057C0E0 +:103F40001092DA0154C0893F31F48091DC011816D7 +:103F50000CF04DC006C08A3F39F48091DC0187FF28 +:103F600046C01092DC0143C08B3F29F48091DD01F3 +:103F700087FF3DC006C08C3F39F48091DD011816E3 +:103F8000B4F51092DD0133C0843F21F48091D90152 +:103F90008E7F05C0853F31F48091D9018D7F80935C +:103FA000D90125C0863F21F48091D9018B7FF7CFBD +:103FB000873F21F48091D901877FF1CF883F21F499 +:103FC0008091D9018F7EEBCF8D3F21F48091DE016E +:103FD0008E7F0BC08E3F21F48091DE018D7F05C066 +:103FE0008F3F29F48091DE018B7F8093DE018091E9 +:103FF000DA0181110EC08091DB0181110AC080912C +:10400000DC01811106C08091DD01811102C0109296 +:10401000D801089589ED91E00E94FB0F0E945D1C7C +:104020009093D7018093D6010895CF938091D601C4 +:104030009091D7010E946A1C4091D801442321F03D +:104040002091120130E006C0209113015AE0259F13 +:10405000900111248217930708F486C08091DA0139 +:1040600081110DC09091DB01911109C09091DC018B +:10407000911105C09091DD01992309F475C04F3F5E +:1040800019F04F5F4093D801181624F40E949A1E2D +:104090008093DA018091DA0187FF05C00E949A1EA1 +:1040A00081958093DA018091DB01181624F40E9437 +:1040B0009A1E8093DB018091DB0187FF05C00E947F +:1040C0009A1E81958093DB016091DA01662339F1B4 +:1040D000C091DB01CC2319F1772767FD7095872FFD +:1040E000972F0E949A2323E333E343E35FE30E9485 +:1040F000FE230E9467236093DA016C2F772767FD08 +:104100007095872F972F0E949A2323E333E343E38D +:104110005FE30E94FE230E9467236093DB0180918E +:10412000DC01181624F40E94E21E8093DC018091C9 +:10413000DC0187FF05C00E94E21E81958093DC01AF +:104140008091DD01181624F40E94E21E8093DD01A7 +:104150008091DD0187FF05C00E94E21E819580935A +:10416000DD01CF910C940A20CF910895E9EDF1E0A3 +:1041700085E0DF011D928A95E9F71092D80110922F +:10418000DE010895833089F130F4813061F08230AE +:1041900009F06EC019C0853009F449C0B8F1863005 +:1041A00009F066C055C020911301862F90E0820F60 +:1041B000911D8F3F910520F4620F609313010895C4 +:1041C0008FEF80931301089520911201862F90E0C4 +:1041D000820F911D8F3F910520F4620F60931201B1 +:1041E00008958FEF80931201089520911101862F79 +:1041F00090E0820F911D8F3F910520F4620F609334 +:10420000110108958FEF80931101089520911001FD +:10421000862F90E0820F911D8F3F910520F4620F51 +:104220006093100108958FEF8093100108952091FD +:104230000F01862F90E0820F911D8F3F910520F492 +:10424000620F60930F0108958FEF80930F0108951F +:1042500020910E01862F90E0820F911D8F3F9105D6 +:1042600020F4620F60930E0108958FEF80930E018A +:104270000895833021F130F4813059F0823009F013 +:1042800049C012C0853089F128F1863009F042C05A +:1042900037C080911301681720F4861B80931301A7 +:1042A000089510921301089580911201681720F467 +:1042B000861B809312010895109212010895809137 +:1042C0001101681720F4861B809311010895109244 +:1042D0001101089580911001681720F4861B8093C6 +:1042E0001001089510921001089580910F01681730 +:1042F00020F4861B80930F01089510920F010895FA +:1043000080910E01681720F4861B80930E0108959A +:1043100010920E01089541E050E060E070E004C0AA +:10432000440F551F661F771F8A95D2F7CB01BA013C +:104330000E94201A0C941516873200F58E3108F071 +:1043400086C08E3009F466C060F4873009F44DC031 +:1043500018F4863049F531C0883041F18B3021F5B1 +:104360007BC0863109F478C018F48031E9F45CC070 +:10437000893109F471C08B31B9F442C0883309F432 +:104380006BC048F4893209F460C0853309F45DC01C +:10439000873251F45AC0833409F457C018F48A3371 +:1043A00018F057C0883499F080E008950E94761E76 +:1043B0000E94881E0E94911E4FC08091D001817F73 +:1043C0008E7F8093D00181E08093DF0108950E9469 +:1043D00015162FEF83ED90E3215080409040E1F7D8 +:1043E00000C000000E94BD1C37C08091D00180FF3A +:1043F00003C0817F8E7F01C081608093D0012CC07B +:104400009091D00191FB882780F921E0822780FBE1 +:1044100091F913C09091D00192FB882780F921E097 +:10442000822780FB92F909C09091D00193FB8827E5 +:1044300080F921E0822780FB93F99093D0018823B3 +:1044400059F091609093D00107C080E003C08D5176 +:1044500001C089530E948B2181E0089580E0089576 +:1044600080E00895CF93C82F8091DF01813071F0F3 +:1044700020F0823009F089C037C0A0910C01B091C2 +:104480000D018C91823209F082C007C0A0910C010D +:10449000B0910D018C91823249F48C2F0E942E2212 +:1044A00081111EC08C2F0E949C211CC08C2F0E9449 +:1044B0003022811115C0C43169F030F4CB3081F065 +:1044C000C03109F068C009C0C93221F0C83309F011 +:1044D00062C006C01092DF015EC082E08093DF01FF +:1044E00081E090E081705AC0C932C9F060F4C431F3 +:1044F000B1F020F4C73009F04CC034C0CE51C63002 +:1045000008F047C017C0CE3439F120F4CB3409F09D +:1045100040C01CC0C135C1F0C235D9F513C080916F +:10452000E001882319F01092E00133C081E080930C +:10453000DF0134C0EC2FF0E0E65BFE4F808180931A +:10454000E00127C061E003C061E007C06AE080913C +:10455000E0010E94C2201DC06AE08091E0010E943B +:10456000392117C08EE18093130182E380931201F9 +:104570008AE08093110184E18093100188E08093A8 +:104580000F0188E280930E0104C01092DF0180E0E9 +:1045900005C081E003C080E090E0A4CFCF910895F2 +:1045A0000E946B1E811102C00E944C1E0E94911E2F +:1045B0008093F00180FF02C0869501C080E00C94DA +:1045C000E1028091F001982F9695292F30E0233059 +:1045D00031054CF49F5F990F8170892B8160809326 +:1045E000F0010E94951E8091F00186950C94E102E5 +:1045F0008091F001982F969591F09158990F8170C4 +:10460000892B8093F0018E7F91E009F490E08091F6 +:10461000F00190FB80F98093F0010E94951E80913B +:10462000F00186950C94E1028091F001982F90950D +:1046300090FB80F98093F0010E94951E8091F0011B +:1046400080FF02C0869501C080E00C94E1023091A9 +:10465000F001232F26952F5F2F77822F90E0317066 +:1046600004972CF4220F232B2093F00102C03093E7 +:10467000F0018091F001282F2E7F91E009F490E065 +:1046800090FB80F98093F0010E94951E8091F001CB +:1046900086950C94E1022091F001922F969598272F +:1046A000990F822F8170892B8093F0018E7F91E08A +:1046B00009F490E08091F00190FB80F98093F00183 +:1046C0000E94951E8091F00186950C94E10204D021 +:1046D0006894B1118DC0089570D088F09F5790F004 +:1046E000B92F9927B751A0F0D1F0660F771F881F17 +:1046F000991F1AF0BA95C9F712C0B13081F077D07E +:10470000B1E0089574C0672F782F8827B85F39F01B +:10471000B93FCCF3869577956795B395D9F73EF475 +:1047200090958095709561957F4F8F4F9F4F08951D +:10473000E89409C097FB3EF490958095709561953B +:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1 +:104750009395F695879577956795B795F111F8CF6D +:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8 +:104770009F4F16C0882311F096E911C0772321F0CE +:104780009EE8872F762F05C0662371F096E8862F66 +:1047900070E060E02AF09A95660F771F881FDAF7BD +:1047A000880F9695879597F9089557FD9058440F6F +:1047B000551F59F05F3F71F04795880F97FB991F80 +:1047C00061F09F3F79F0879508951216130614063D +:1047D000551FF2CF4695F1DF08C0161617061806CA +:1047E000991FF1CF86957105610508940895E894A5 +:1047F000BB2766277727CB0197F908950BD078C0A0 +:1048000069D028F06ED018F0952309F05AC05FC027 +:104810001124EECFCADFA0F3959FD1F3950F50E09E +:10482000551F629FF001729FBB27F00DB11D639F62 +:10483000AA27F00DB11DAA1F649F6627B00DA11D08 +:10484000661F829F2227B00DA11D621F739FB00DAE +:10485000A11D621F839FA00D611D221F749F33271E +:10486000A00D611D231F849F600D211D822F762FB7 +:104870006A2F11249F5750408AF0E1F088234AF0B4 +:10488000EE0FFF1FBB1F661F771F881F9150504000 +:10489000A9F79E3F510570F014C0AACF5F3FECF31B +:1048A000983EDCF3869577956795B795F795E795EC +:1048B0009F5FC1F7FE2B880F911D9695879597F9FD +:1048C000089597F99F6780E870E060E008959FEF92 +:1048D00080EC089500240A94161617061806090697 +:1048E000089500240A941216130614060506089566 +:1048F000092E0394000C11F4882352F0BB0F40F4EE +:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D +:104910000895991B79E004C0991F961708F0961B1B +:10492000881F7A95C9F78095089597FB072E16F48E +:10493000009407D077FD09D00E94A92407FC05D078 +:104940003EF4909581959F4F0895709561957F4FA6 +:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6 +:10496000B70710F0A61BB70B881F991F5A95A9F718 +:1049700080959095BC01CD010895F999FECF92BD27 +:1049800081BDF89A992780B50895A8E1B0E042E08A +:1049900050E00C94E024262FF999FECF1FBA92BD67 +:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610 +:1049B00008950E94CB24272F0C94CC24DC01CB013A +:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F +:1049D00000B40D9241505040B8F70895F894FFCFBD +:1049E00005960826090209CD08990801C80128087A +:1049F000140A321E420045002500260043006100D3 +:104A00006000200037006400650066006700440015 +:104A100046002400470074038D03A603BF038B04E4 +:104A20003E040804E8033F4D362001020304050656 +:044A3000070809006A +:00000001FF -- cgit v1.2.3 From 47b537c87fd1d2d7671eaf5c49f20bba40afad25 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 30 Mar 2016 00:46:45 -0400 Subject: preonic readme --- keyboard/preonic/README.md | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index 3ba0cc152..0c0946655 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -1,6 +1,6 @@ -Planck keyboard firmware +Preonic keyboard firmware ====================== -DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). +DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). ## Quantum MK Firmware @@ -8,7 +8,7 @@ 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/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. +Download or clone the whole firmware and navigate to the keyboard/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. @@ -23,9 +23,3 @@ To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` $ 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) -- cgit v1.2.3 From 09d567045cb011b2fd7984cf3277b4875e677153 Mon Sep 17 00:00:00 2001 From: Noah Andrews Date: Wed, 30 Mar 2016 09:17:06 -0400 Subject: Fixed minor issues with Preonic readme --- keyboard/preonic/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index 0c0946655..4a33a3e4e 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -16,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight 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. +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. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. -- cgit v1.2.3 From 3b703eff33963a5756b3e3f16019d6ddae8a7874 Mon Sep 17 00:00:00 2001 From: Miha Rekar Date: Wed, 30 Mar 2016 17:03:03 +0200 Subject: Tiny fix of Planck diagrams --- keyboard/planck/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index d995eb9e5..988deee99 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -76,7 +76,7 @@ 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 | - | = | [ | ] | \ | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -94,7 +94,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| -- cgit v1.2.3 From fe6c3e4f0fe1abb38d64ce3f4d48db7aea63aad0 Mon Sep 17 00:00:00 2001 From: David Mohr Date: Tue, 29 Mar 2016 23:49:34 -0600 Subject: Squisher's international dvorak variant for ergodox ez See README.md --- .../keymaps/dvorak_intl_squisher/README.md | 29 ++++ .../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 +++++++++++++++++++++ 5 files changed, 214 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md new file mode 100644 index 000000000..984106ff4 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png new file mode 100644 index 000000000..6a36f9bfa Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png new file mode 100644 index 000000000..c6e6d913c Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png new file mode 100644 index 000000000..23f56ff4c Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c new file mode 100644 index 000000000..82f55b4bc --- /dev/null +++ b/keyboard/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; + } + +}; -- cgit v1.2.3 From 5fae86849aad46ac003e2959d853f55759809ac9 Mon Sep 17 00:00:00 2001 From: David Mohr Date: Tue, 29 Mar 2016 23:56:21 -0600 Subject: Also add compiled hex file --- .../dvorak_intl_squisher/dvorak_intl_squisher.hex | 1127 ++++++++++++++++++++ 1 file changed, 1127 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex new file mode 100644 index 000000000..bd70f5829 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex @@ -0,0 +1,1127 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94B50B0C94870CA1 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C943B210C94AC020C94AC02CA +:100050000C94AC020C94C71A0C94AC020C94AC0235 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02F40C160D43 +:1000B000040E160D040E5B0D7E0D040ED30DE60D21 +:1000C000D110D11000110011431181119A139A130C +:1000D0009A119A139B129B126E139A139A138513FB +:1000E0000000F0A12E0029002A00E1003581000067 +:1000F0001E00340004003371E2004D001F00360082 +:1001000012001400E3002B002000370008000D004F +:1001100050002C002100130018000E004F004A0070 +:1001200022001C000C001B0000006571B6004C0092 +:100130000000007F00000154AE004900000000777D +:1001400000000254230009000700050000004600DB +:1001500024000A000B00100052004B00250006008E +:1001600017001A0051002800260015001100190080 +:100170002F00E51427000F0016001D7130004E00FF +:10018000318238002D00E500C100000001000100AF +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00AC0001003D0030025F +:1001C00027023000AB0001003E003102350035024D +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:100200000100A9004100250022001F003700010065 +:1002100042002600230020002700A80043002502FA +:100220002E0231002E00AA0044004500010001000A +:1002300001000000010001000100010001000000B8 +:100240000100140004001D710100010001001A00EA +:1002500016001B0001000100010008000700060055 +:100260000100010001001500090019000100010052 +:10027000010017000A000500000001000100010054 +:100280000000010000000100010001000000010069 +:100290000000010001001C000B0011000000010023 +:1002A000010018000D0010000100010001000C0009 +:1002B0000E00360001000100010012000F0037009F +:1002C00001000100010013003382387101000100B8 +:1002D00001000100010001000100000016034500BB +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091EF0196 +:1004E0009091F001A091F101B091F2018730904B11 +:1004F000A740B04BD1F41092EF011092F00110928E +:10050000F1011092F20114BE84B7877F84BF0FB649 +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E8E1F6E402C005900D92A433B107D9F7C3 +:1005400021E0A4E3B1E001C01D92AF3EB207E1F7A4 +:100550000E94F6080C940A230C94000061110BC051 +:10056000FC018281882321F085EE0E94660F03C082 +:1005700085EE0E942E1080E090E00895089560912D +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000F01956985E9825982D9826982E982798A9 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBA6E3B1E0E4E4F1E08EE08E0FCC +:1008400011921D928E13FCCF0C943603BF92CF925F +:10085000DF92EF92FF920F931F93CF93DF938091DC +:100860000001882379F0809135018F5F80933501F5 +:10087000811108C00E944C0380930001811102C0C5 +:100880000E94DE0206E311E0C0E0D0E0DD24D39454 +:1008900082E0C82EEE24E394F12CC730D10500F598 +:1008A00080910001811164C080E40E94A1038093C3 +:1008B0000001811112C082E10E94CB0380930001EC +:1008C00081110BC0C7010C2E01C0880F0A94EAF7F2 +:1008D00080950E94CB03809300010E94C30348C00F +:1008E000CA30A1F028F4C83059F0C93061F005C011 +:1008F000CC3089F070F0CD3089F0209A289810C063 +:10090000219A29980DC0229A2A980AC0239A2B98D6 +:1009100007C0529A01C0539A5B9802C03E9A46980B +:1009200090EA9A95F1F79FB1799902C082E001C0EF +:1009300080E091709D25982B7C9902C084E001C0D5 +:1009400080E0892B7D9902C038E001C030E0832B24 +:100950007E9902C020E101C020E0822B9FB19095DA +:10096000991F9927991F9295990F907E892B0FC0F7 +:1009700080910001811149C080E40E94A10380930D +:100980000001882379F1B12C0E94C3038B2DF8015B +:100990009081981719F08083C09201010E94E603AC +:1009A00021960F5F1F4FCE30D10509F076CF809191 +:1009B0000101882361F1815080930101882339F07E +:1009C0008FE99FE00197F1F700C0000020C0A4E488 +:1009D000B1E0E6E3F1E0CF01825F91919D938E1348 +:1009E000FCCF15C083E10E94CB03809300018111ED +:1009F000CACF81E40E94A103809300018111C3CF7B +:100A00000E94DC03B82EB094BFCF80E0C0CF0E941C +:100A1000DC0281E0DF91CF911F910F91FF90EF9069 +:100A2000DF90CF90BF900895E82FF0E0EC5BFE4F91 +:100A30008081089508958B3B910578F4883A91055B +:100A400040F5853A9105D0F48430910508F0B1C0A5 +:100A50008130910509F4ADC06BC0803E910508F46A +:100A600067C0883E910508F4A4C09C01205F31094D +:100A70002031310508F05CC090650895853A9105F4 +:100A800009F459C0863A910509F058C082E890E40B +:100A90000895883A910509F454C0893A910509F4FA +:100AA00053C08A3A910509F452C08B3A910509F472 +:100AB00051C08C3A910509F450C08D3A910509F462 +:100AC0004FC0803B910509F44EC08E3A910509F460 +:100AD0004DC08F3A910509F44CC0813B910509F452 +:100AE0004BC0823B910509F44AC0833B910509F450 +:100AF00049C0843B910509F448C0853B910509F440 +:100B000047C0863B910509F446C0873B910509F42F +:100B100045C0883B910509F444C0893B910509F41F +:100B200043C08A3B910509F442C080E094E40895F3 +:100B300080E090E0089581E890E4089583E890E4EF +:100B4000089582EE94E4089589EE94E408958AEE7F +:100B500094E4089585EB94E4089586EB94E4089575 +:100B600087EB94E408958CEC94E408958DEC94E480 +:100B7000089583E895E408958AE895E4089582E964 +:100B800095E4089584E995E4089581E296E4089552 +:100B900083E296E4089584E296E4089585E296E47B +:100BA000089586E296E4089587E296E408958AE23D +:100BB00096E40895089596E0799FF001112494E554 +:100BC000899FE00DF11D1124E60FF11DEE0FFF1FAF +:100BD000EC51FF4F859194910895880F991FFC0166 +:100BE000E05AF040859194910895880F991FFC0177 +:100BF000E052FF4F85919491089526E0729FF00195 +:100C0000112444E5849FE00DF11D1124E60FF11D30 +:100C1000EE0FFF1FEC51FF4F859194919C013A9587 +:100C200021154FE1340708F41CC13F512115304113 +:100C300020F49F700E94F50508959C013053211502 +:100C4000304118F49927906C0895811520E592079A +:100C500071F40E94BE134FEF84E39CE0415080404A +:100C60009040E1F700C000000E94EC1AFAC0813009 +:100C700020E5920731F48091CD0181608093CD0110 +:100C8000F0C09C0130552115304108F051C0292F8A +:100C900033272F70332721303105D9F4AC0143704D +:100CA000552702C0220F331F4A95E2F73C68AC017A +:100CB00064E0440F551F6A95E1F744275370242BD5 +:100CC000352B73E0880F991F7A95E1F78076992785 +:100CD0001DC02230310529F4982F8827816F906A32 +:100CE000089523303105A9F4AC014370552721E064 +:100CF00030E002C0220F331F4A95E2F73C6843E020 +:100D0000880F991F4A95E1F7807E9770822B932B6D +:100D1000089524303105E1F4AC014370552721E0FA +:100D200030E002C0220F331F4A95E2F73A68E7CF5E +:100D30009C0130572115304118F49F70906208953E +:100D40009C0130582115304118F49F70906A089525 +:100D5000803E9105E0F4803C910558F58133910582 +:100D600009F46FC048F48932910509F463C08A32EE +:100D7000910509F46DC072C089339105E9F082389C +:100D80009105D1F08533910509F44DC067C0833ECC +:100D9000910581F138F4803E9105B9F0823E9105CC +:100DA000D9F05CC0863E910561F1873E9105A1F1C5 +:100DB00055C00E94ED0508952091E00120FD02C07C +:100DC00021FF4CC080EE90E049C08091E00180FF9F +:100DD000F9CF89E390E042C08091E00182FF0EC02C +:100DE0008091E00184FF03C080E090E037C083EE93 +:100DF00090E034C08091E00182FFF2CF82EE90E07B +:100E00002DC08091E00183FF0BC08091E00184FD43 +:100E1000EBCF87EE90E022C08091E00183FFF5CF19 +:100E200086EE90E01BC08091E00185FF07C089E25B +:100E300090E014C08091E00185FFF9CF85E390E058 +:100E40000DC08091E00186FF07C08AE290E006C0F5 +:100E50008091E00186FFF9CF81E390E00E941B05BD +:100E60000895089508950C943207809162010895C1 +:100E7000CF93DF9300D01F92CDB7DEB79C01809156 +:100E8000E601843019F593E099833B832A8390939C +:100E9000E9008FEF9091E800815095FD06C095ED37 +:100EA0009A95F1F700008111F5CF8091E80085FF58 +:100EB0000DC040E050E063E070E0CE0101960E947A +:100EC000A5098091E8008E778093E8000F900F903D +:100ED0000F90DF91CF910895CF93DF9300D01F92B1 +:100EE000CDB7DEB72091E601243021F522E0298339 +:100EF0009B838A8383E08093E9008FEF9091E800E1 +:100F0000815095FD06C095ED9A95F1F7000081118D +:100F1000F5CF8091E80085FF0DC040E050E063E030 +:100F200070E0CE0101960E94A5098091E8008E77BD +:100F30008093E8000F900F900F90DF91CF9108956C +:100F40002091E6012430F1F422E02093E9002FEF14 +:100F50003091E800215035FD06C035ED3A95F1F7A6 +:100F600000002111F5CF2091E80025FF0BC040E0E3 +:100F700050E065E070E00E94A5098091E8008E775E +:100F80008093E8000895CF93DF93EC019091E60100 +:100F9000943009F046C080910C018823D9F08091EB +:100FA0000D018823B9F09093E9008FEF9091E8004C +:100FB000815095FD06C095E19A95F1F700008111E9 +:100FC000F5CF8091E80085FF2CC040E050E060E163 +:100FD00070E017C081E08093E9008FEF9091E80006 +:100FE000815095FD06C095ED9A95F1F700008111AD +:100FF000F5CF8091E80085FF14C040E050E068E044 +:1010000070E0CE010E94A5098091E8008E77809360 +:10101000E80080E1FE01A2E5B1E001900D928A9521 +:10102000E1F7DF91CF9108958091E501811109C029 +:101030000E943A0B0E94970B8091E200846080939B +:10104000E20008951092E501089508950C94282176 +:101050000E94821A0E942E210E943D0E0C9433079A +:1010600042E061EC81E00E94B40A42E061EC82E07F +:101070000E94B40A42E061EC83E00E94B40A42E1BB +:1010800061EC84E00C94B40A8091E801833009F4A7 +:1010900055C030F4813071F0823009F48EC008956B +:1010A0008A3009F47AC08B3009F460C0893009F0C5 +:1010B0009CC020C08091E701813A09F096C08091E0 +:1010C000E800877F8093E8008091EB019091EC012C +:1010D000892B21F460E182E591E003C060E080E0CB +:1010E00090E070E00E94F0098091E8008B77809397 +:1010F000E80008958091E701813209F076C080917F +:10110000EB019091EC01009719F0039709F06DC085 +:101110008091E800877F8093E8008091E80082FD5D +:1011200005C08091E6018111F8CF5FC08091F10088 +:10113000809362018091E8008B7753C08091E70132 +:10114000813A09F052C08091EB019091EC01892B1A +:1011500009F04BC08091E800877F8093E800809180 +:10116000E80080FFFCCF80910C0136C08091E70140 +:101170008132D9F58091EB019091EC01892BA9F591 +:101180008091E800877F8093E8000E94E90A8091BF +:10119000E90180930C010C94BE138091E701813228 +:1011A00021F58091E800877F8093E8000E94E90A9A +:1011B0008091EA018093630108958091E701813A6B +:1011C000A1F48091E800877F8093E8008091E80097 +:1011D00080FFFCCF809163018093F1008091E80053 +:1011E0008E778093E8000C94E90A089584B7877F8E +:1011F00084BF0FB6F894A8958091600088618093B1 +:101200006000109260000FBE90E080E80FB6F89486 +:1012100080936100909361000FBE0E948C0E0E942B +:101220003A0B0E94970B8091E20084608093E20069 +:1012300078940E941D0E0E948E0E82E091E00E9422 +:10124000380E0E9416218091E601853069F40E94D3 +:10125000401A8091E4018823B1F30E946E1A88231A +:1012600091F30E948F09EFCF0E94940EECCF292FAB +:10127000332723303105C9F064F42130310581F082 +:101280002230310509F043C08DE690E020E133E0E3 +:1012900042C021323105F1F02232310541F137C02F +:1012A00082E190E02DE733E036C099278130910547 +:1012B00041F08230910541F0892B49F5ECE0F3E0F3 +:1012C00005C0E4EFF2E002C0ECEDF2E0849190E0C2 +:1012D0009F0121C06430D8F4E62FF0E0EE0FFF1F2D +:1012E000EE5DFE4F2081318189E090E014C06430D2 +:1012F00070F470E0FB01EE0FFF1FE65EFE4F2081F1 +:101300003181FB01EA5EFE4F808190E004C080E005 +:1013100090E020E030E0FA0131832083089580E1FD +:1013200089BD82E189BD09B400FEFDCF8091D8005E +:101330008F7D8093D8008091E00082608093E000F0 +:101340008091E00081FDFCCF0895CF92DF92EF9273 +:10135000FF920F931F93CF93DF93EC018B016A01F0 +:101360000E94080B811133C0C114D10439F0F60179 +:1013700080819181081B190BC80FD91FE12CF12C1A +:101380000115110519F18091E80085FD16C08091C5 +:10139000E8008E778093E800C114D10449F0F6018B +:1013A00080819181E80EF91EF182E08285E00FC014 +:1013B0000E94080B882321F30AC089918093F100D1 +:1013C00001501109FFEFEF1AFF0ADACF80E0DF9139 +:1013D000CF911F910F91FF90EF90DF90CF900895E4 +:1013E0002091ED013091EE012617370748F0611585 +:1013F000710539F42091E8002E772093E80001C0B0 +:10140000B90140E061157105A9F12091E60122239F +:1014100009F443C0253009F442C02091E80023FDBF +:1014200040C02091E80022FD32C02091E80020FF5A +:10143000E9CF4091F3002091F20030E0342BFC0121 +:10144000CF016115710559F02830310540F48191C3 +:101450008093F100615071092F5F3F4FF1CF41E060 +:101460002830310509F040E02091E8002E772093E4 +:10147000E800C8CF4111C9CF0AC08091E601882396 +:1014800061F0853061F08091E80083FD0AC08091B1 +:10149000E80082FFF2CF80E0089582E0089583E0C3 +:1014A000089581E008952091ED013091EE01261715 +:1014B000370748F06115710539F42091E8002E775F +:1014C0002093E80001C0B901FC0120E0611571051D +:1014D00091F18091E601882309F440C0853009F438 +:1014E0003FC08091E80083FD3DC08091E80082FD0F +:1014F0002FC08091E80080FFE9CF2091F300809118 +:10150000F20090E0922B6115710559F08830910539 +:1015100040F424912093F1003196615071090196B5 +:10152000F2CF21E0089709F020E08091E8008E7763 +:101530008093E800CBCF2111CCCF0AC08091E60187 +:10154000882361F0853061F08091E80083FD0AC056 +:101550008091E80082FFF2CF80E0089582E0089554 +:1015600083E0089581E00895982F973058F590937F +:10157000E900981739F07091EC002091ED0050913E +:10158000F00003C0242F762F50E021FF19C03091C6 +:10159000EB003E7F3093EB003091ED003D7F3093C8 +:1015A000ED003091EB0031603093EB007093EC0074 +:1015B0002093ED005093F0002091EE0027FF07C02C +:1015C0009F5FD3CF8F708093E90081E0089580E022 +:1015D00008958091E70187FF11C08091E80082FDA6 +:1015E00005C08091E6018111F8CF11C08091E8001B +:1015F0008B770BC08091E601882349F08091E80049 +:1016000080FFF8CF8091E8008E778093E8000895FE +:101610002091E4003091E50095E64091EC00842FA4 +:10162000817040FF22C08091E80080FD1CC0809145 +:10163000E601882391F0853091F08091EB0085FDE3 +:1016400010C04091E4005091E5004217530729F380 +:101650009A01915011F784E0089582E0089583E0A3 +:10166000089581E0089580E008954091E80042FFE8 +:10167000DECF08950E94A80B0E94B00BE0EEF0E0D0 +:10168000808181608083E8EDF0E080818F778083C6 +:1016900019BCA7EDB0E08C918E7F8C9380818F7EFA +:1016A00080831092E50108950F931F93CF93DF93EA +:1016B0000E94A80B0E94B00BC8EDD0E088818F7704 +:1016C000888388818068888388818F7D888319BC1E +:1016D0001092E6011092E2011092E4011092E301EF +:1016E00000EE10E0F80180818B7F8083888181602B +:1016F000888342E060E080E00E94B40AE1EEF0E01E +:1017000080818E7F8083E2EEF0E080818160808343 +:10171000808188608083F80180818E7F80838881CA +:1017200080618883DF91CF911F910F910895E8ED3B +:10173000F0E080818F7E8083E7EDF0E08081816042 +:10174000808384E082BF81E08093E5010C94540B98 +:10175000E8EDF0E080818E7F80831092E2000895B2 +:101760001092DA001092E10008951F920F920FB6C6 +:101770000F9211242F933F934F935F936F937F9317 +:101780008F939F93AF93BF93EF93FF938091E1006B +:1017900082FF0BC08091E20082FF07C08091E100D0 +:1017A0008B7F8093E1000E941C0E8091DA0080FF05 +:1017B0001FC08091D80080FF1BC08091DA008E7F0F +:1017C0008093DA008091D90080FF0DC080E189BD4F +:1017D00082E189BD09B400FEFDCF81E08093E6017E +:1017E0000E94140805C019BC1092E6010E9422084C +:1017F0008091E10080FF19C08091E20080FF15C058 +:101800008091E2008E7F8093E2008091E20080610F +:101810008093E2008091D80080628093D80019BC48 +:1018200085E08093E6010E9426088091E10084FF14 +:1018300030C08091E20084FF2CC080E189BD82E14C +:1018400089BD09B400FEFDCF8091D8008F7D8093C3 +:10185000D8008091E1008F7E8093E1008091E200CA +:101860008F7E8093E2008091E20081608093E200AD +:101870008091E201882311F084E007C08091E300A9 +:1018800087FD02C081E001C083E08093E6010E94F1 +:1018900028088091E10083FF29C08091E20083FF46 +:1018A00025C08091E100877F8093E10082E08093F2 +:1018B000E6011092E2018091E1008E7F8093E100C9 +:1018C0008091E2008E7F8093E2008091E20080614F +:1018D0008093E20042E060E080E00E94B40A8091E0 +:1018E000F00088608093F0000E942508FF91EF913E +:1018F000BF91AF919F918F917F916F915F914F9128 +:101900003F912F910F900FBE0F901F9018951F922F +:101910000F920FB60F9211242F933F934F935F9323 +:101920006F937F938F939F93AF93BF93CF93DF93E7 +:10193000EF93FF93C091E900CF708091EC00D82F16 +:10194000D17080FDD0E81092E9008091F000877F8F +:101950008093F00078940E94CB0C1092E900809163 +:10196000F00088608093F000CD2BCF70C093E90029 +:10197000FF91EF91DF91CF91BF91AF919F918F91A7 +:101980007F916F915F914F913F912F910F900FBE7B +:101990000F901F9018951F93CF93DF93CDB7DEB7AD +:1019A000AA970FB6F894DEBF0FBECDBFE7EEF1E009 +:1019B00088E08E0F9091F10091938E13FBCF0E94DF +:1019C00044088091E80083FF1FC18091E701909156 +:1019D000E801492F50E04A30510508F015C1FA01DD +:1019E000EA5AFF4F0C94BF22803881F0823809F008 +:1019F0000BC18091EB018F708093E9008091EB0027 +:101A000085FB882780F91092E90006C08091E301E8 +:101A10009091E401911182609091E800977F9093FA +:101A2000E8008093F1001092F100C8C0282F2D7FAC +:101A300009F0EAC0882319F0823061F0E5C0809196 +:101A4000E901813009F0E0C0933009F080E0809333 +:101A5000E4012BC08091E901811127C08091EB0145 +:101A60008F7009F4D1C08093E9002091EB0020FF32 +:101A70001CC0933021F48091EB00806214C09091DF +:101A8000EB0090619093EB0021E030E0A90102C0EF +:101A9000440F551F8A95E2F74093EA001092EA003E +:101AA0008091EB0088608093EB001092E9008091B8 +:101AB000E800877F86C08111A7C01091E9011F77D8 +:101AC0008091E3008078812B8093E3008091E8008F +:101AD000877F8093E8000E94E90A8091E80080FFF8 +:101AE000FCCF8091E30080688093E300111102C075 +:101AF00082E001C083E08093E60186C08058823096 +:101B000008F082C08091E9019091EA018C3D53E098 +:101B1000950779F583E08A838AE289834FB7F89441 +:101B2000DE01139620E03EE051E2E32FF0E0509317 +:101B30005700E49120FF03C0E295EF703F5FEF7024 +:101B40008E2F90E0EA3010F0C79601C0C0968D93BA +:101B50009D932F5F243149F74FBF8091E800877F25 +:101B60008093E8006AE270E0CE0101960E94F009DD +:101B700014C0AE014F5F5F4F6091EB010E943709C7 +:101B8000BC01892B09F440C09091E800977F9093A5 +:101B9000E80089819A810E94530A8091E8008B773E +:101BA0008093E80031C0803879F58091E800877F24 +:101BB0008093E8008091E2018093F1008091E80039 +:101BC0008E778093E8000E94E90A1EC081111CC034 +:101BD0009091E9019230C0F48091E800877F809372 +:101BE000E8009093E2010E94E90A8091E2018111EC +:101BF00006C08091E30087FD02C081E001C084E05F +:101C00008093E6010E9430088091E80083FF0AC0BB +:101C10008091E800877F8093E8008091EB008062EC +:101C20008093EB00AA960FB6F894DEBF0FBECDBF2F +:101C3000DF91CF911F9108950895CF938091E60190 +:101C40008823A1F0C091E900CF709091EC00892F1A +:101C5000817090FD80E8C82B1092E9008091E80027 +:101C600083FD0E94CB0CCF70C093E900CF91089503 +:101C700090936901809368010895E0916801F09163 +:101C80006901309721F00190F081E02D099480E006 +:101C90000895E0916801F0916901309721F0028088 +:101CA000F381E02D09940895E0916801F0916901B4 +:101CB000309721F00480F581E02D0994089520915A +:101CC0006601309167018217930771F09093670165 +:101CD00080936601E0916801F0916901309721F0ED +:101CE0000680F781E02D09940895209164013091D8 +:101CF00065018217930771F09093650180936401E9 +:101D0000E0916801F0916901309721F00084F1853C +:101D1000E02D0994089508950C948B0E0E94881A62 +:101D20000E940E040C944E1BCF92DF92EF92FF9212 +:101D30000F931F93CF93DF93CDB7DEB72B970FB6DB +:101D4000F894DEBF0FBECDBF0E9426048BE6C82EDE +:101D500081E0D82E00E010E0E02E802F0E941405D4 +:101D6000F60141916F01F42EF826B1F40F5F1F4F79 +:101D70000E30110589F78FEF89838A831B820E94B9 +:101D8000911A8160782F9D838C8349815A816B8160 +:101D90008D810E94370F40C09091CD0191FF04C00A +:101DA0008B870E941A058B8520E030E04F2D50E094 +:101DB000922FBA01022E02C0759567950A94E2F738 +:101DC00060FF24C02E83EF8221E030E0690102C071 +:101DD000CC0CDD1C9A95E2F790E08C219D21892B9B +:101DE00009F420E028870E94911A8160782F9A8751 +:101DF00089874E815F8168858A850E94370FF80147 +:101E0000E559FE4F8081C826C08206C02F5F3F4F34 +:101E10002630310569F6AACF0E94351E10916A015D +:101E20000E943D0E1817A1F00E943D0E80936A019A +:101E30002B960FB6F894DEBF0FBECDBFDF91CF91CA +:101E40001F910F91FF90EF90DF90CF900C9433078C +:101E50002B960FB6F894DEBF0FBECDBFDF91CF91AA +:101E60001F910F91FF90EF90DF90CF900895CF9347 +:101E7000DF93CDB7DEB72B970FB6F894DEBF0FBE5A +:101E8000CDBF4F83588769877A878B87DE0111968C +:101E900086E0FD0111928A95E9F785E0FE0137960B +:101EA00001900D928A95E1F749815A816B817C817D +:101EB0008D819E810E9458162B960FB6F894DEBF36 +:101EC0000FBECDBFDF91CF9108950895CF938823A2 +:101ED00009F4C2C0C82F823859F40E943D0E81FD1A +:101EE000BBC089E30E94F4180E94C11989E30CC0A9 +:101EF000833879F40E943D0E80FDAEC083E50E94D8 +:101F0000F4180E94C11983E50E943619CF910C94F0 +:101F1000C119843859F40E943D0E82FD9DC087E4AA +:101F20000E94F4180E94C11987E4EECF8CEF8C0F49 +:101F3000813A48F48C2F0E947B2081118DC08C2F18 +:101F40000E94F418E3CF80E28C0F883048F4C77009 +:101F500081E001C0880FCA95EAF70E947A19D6CFAE +:101F60008BE58C0F833078F4C53A29F0C63A31F00E +:101F700083E890E005C081E890E002C082E890E04C +:101F8000CF910C945F0E88E58C0F833108F064C00C +:101F9000C83A39F1C93A41F1CA3A49F1CB3A51F15B +:101FA000CC3A59F1CD3A61F1C03B69F1CE3A71F1C9 +:101FB000CF3A79F1C13B81F1C23B89F1C33B91F149 +:101FC000C43B99F1C53BA1F1C63BA9F1C73BB1F1B7 +:101FD000C83BB9F1C93BC1F1CA3BC9F180E090E00F +:101FE00038C082EE90E035C089EE90E032C08AEED3 +:101FF00090E02FC085EB90E02CC086EB90E029C0EC +:1020000087EB90E026C08CEC90E023C08DEC90E054 +:1020100020C083E891E01DC08AE891E01AC082E9FF +:1020200091E017C084E991E014C081E292E011C010 +:1020300083E292E00EC084E292E00BC085E292E07F +:1020400008C086E292E005C087E292E002C08AE220 +:1020500092E0CF910C94750ECF910895882309F4E6 +:102060004BC0823859F40E943D0E81FF45C089E380 +:102070000E94F4180E94C11989E30CC0833871F4DE +:102080000E943D0E80FF38C083E50E94F4180E9434 +:10209000C11983E50E9436190C94C119843859F48A +:1020A0000E943D0E82FF28C087E40E94F4180E941F +:1020B000C11987E4EFCF9CEF980F913A58F390E263 +:1020C000980F983050F4877091E001C0990F8A956D +:1020D000EAF7892F0E948019DFCF9BE5980F933094 +:1020E00020F480E090E00C945F0E885A833120F455 +:1020F00080E090E00C94750E0895882321F00E94F2 +:102100007A190C94C1190895882321F00E9480192E +:102110000C94C1190895BF92CF92DF92EF92FF9273 +:102120000F931F93CF93DF9300D000D000D0CDB793 +:10213000DEB725E0FC01DE01119601900D922A9593 +:10214000E1F7FC01D08011810281258122952F7059 +:1021500043815481452B09F4EDC21F3F21F4FFEF69 +:10216000DF1609F4E7C27C012E830E94650FD98235 +:102170001A8389819A810E94B318182FB92E0E9460 +:10218000B2180E9479172E81002319F00E94971926 +:102190002E81EB2DE295EF70F0E0E05AFF4F0C94AA +:1021A000BF228B2D807F9B2D9F70F92E882319F0E5 +:1021B000F29480EFF822002349F0FF2009F467C26F +:1021C0008F2D0E948A190E94C11961C2812F0E941D +:1021D0002E10FF2009F4AEC28F2D0E949019269672 +:1021E0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1021F0000F91FF90EF90DF90CF90BF900C94C1199A +:102200003B2D307F8B2D8F70303211F08295807F87 +:10221000112319F0113021F12CC00023B9F0222331 +:1022200009F4A0C1213009F09DC126960FB6F8949B +:10223000DEBF0FBECDBFDF91CF911F910F91FF90F9 +:10224000EF90DF90CF90BF900C94AA19222319F041 +:10225000213009F46FC28E830E94AD198E8196C120 +:10226000002321F0223008F065C27CC1211162C236 +:102270008DC1002321F0222309F474C108C2222356 +:1022800009F484C119C22B2D26952695237030E0C0 +:102290002115310521F021303105D1F04BC2002349 +:1022A00021F0812F9B2D937002C080E090E0269654 +:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157 +:1022C0000F91FF90EF90DF90CF90BF900C945F0E36 +:1022D000002321F0812F9B2D937002C080E090E0BD +:1022E00026960FB6F894DEBF0FBECDBFDF91CF911B +:1022F0001F910F91FF90EF90DF90CF90BF900C94C3 +:10230000750E812F002319F00E943D1D02C00E940E +:10231000A51D26960FB6F894DEBF0FBECDBFDF9188 +:10232000CF911F910F91FF90EF90DF90CF90BF90D2 +:102330000C942A1E8B2D837009F07BC00111FAC109 +:10234000812F829586958770880F880F912F9F70B7 +:10235000C92ED12CE12CF12C082E04C0CC0CDD1C94 +:10236000EE1CFF1C0A94D2F714FF12C04FE050E09D +:1023700060E070E004C0440F551F661F771F8A9508 +:10238000D2F7CB01BA01609570958095909503C006 +:1023900060E070E0CB012B2D269526952370422F0F +:1023A00050E042305105D9F04330510569F16C29B4 +:1023B0007D298E299F294130510551F126960FB66E +:1023C000F894DEBF0FBECDBFDF91CF911F910F916B +:1023D000FF90EF90DF90CF90BF900C94A0176C29E6 +:1023E0007D298E299F2926960FB6F894DEBF0FBE51 +:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 +:10240000CF90BF900C94BC170E94A017C701B601D3 +:1024100026960FB6F894DEBF0FBECDBFDF91CF91E9 +:102420001F910F91FF90EF90DF90CF90BF900C9491 +:102430008417002319F08B2D817001C086958823A5 +:1024400009F478C1812F829586958770880F880F4F +:10245000912F9F70C92ED12CE12CF12C082E04C095 +:10246000CC0CDD1CEE1CFF1C0A94D2F714FF12C02A +:102470004FE050E060E070E004C0440F551F661F5D +:10248000771F8A95D2F7CB01BA0160957095809538 +:10249000909503C060E070E0CB012B2D269526952A +:1024A0002370422F50E042305105D9F0433051059E +:1024B00069F16C297D298E299F294130510551F1FF +:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139 +:1024D0001F910F91FF90EF90DF90CF90BF900C94E1 +:1024E0007A186C297D298E299F2926960FB6F89493 +:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 +:10250000EF90DF90CF90BF900C9496180E947A18AD +:10251000C701B60126960FB6F894DEBF0FBECDBF39 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C945E18103FD1F118F4103E50F487 +:10254000A1C0123F09F463C008F44CC0133F09F462 +:1025500073C098C01F708B2D8F710023A1F00E9453 +:10256000F717812F26960FB6F894DEBF0FBECDBFAA +:10257000DF91CF911F910F91FF90EF90DF90CF905F +:10258000BF900C947D100E941818812F26960FB6CC +:10259000F894DEBF0FBECDBFDF91CF911F910F9199 +:1025A000FF90EF90DF90CF90BF900C9484100023A9 +:1025B000A9F02111BFC08B2D8F7126960FB6F8940C +:1025C000DEBF0FBECDBFDF91CF911F910F91FF9066 +:1025D000EF90DF90CF90BF900C943D18223008F020 +:1025E000A9C0E9CF0023A9F08B2D8F7126960FB6D5 +:1025F000F894DEBF0FBECDBFDF91CF911F910F9139 +:10260000FF90EF90DF90CF90BF900C94F7170023CE +:1026100059F38B2D8F7126960FB6F894DEBF0FBE3F +:10262000CDBFDF91CF911F910F91FF90EF90DF9081 +:10263000CF90BF900C941818002399F08B2D8F71B8 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:102650001F910F91FF90EF90DF90CF90BF900C945F +:10266000E21726960FB6F894DEBF0FBECDBFDF91FE +:10267000CF911F910F91FF90EF90DF90CF90BF907F +:102680000C94D8170023A9F0222309F4ADCF812F91 +:1026900026960FB6F894DEBF0FBECDBFDF91CF9167 +:1026A0001F910F91FF90EF90DF90CF90BF900C940F +:1026B000660F222309F4ADCF812F26960FB6F8942A +:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065 +:1026D000EF90DF90CF90BF900C942E104B2D4F7049 +:1026E000612FC7010E94AE0226960FB6F894DEBF96 +:1026F0000FBECDBFDF91CF911F910F91FF90EF9053 +:10270000DF90CF90BF900C94FC164B2D4F70612F33 +:10271000C70126960FB6F894DEBF0FBECDBFDF917E +:10272000CF911F910F91FF90EF90DF90CF90BF90CE +:102730000C94DA0526960FB6F894DEBF0FBECDBF17 +:10274000DF91CF911F910F91FF90EF90DF90CF908D +:10275000BF9008950E9497190E94A7190E946C19B2 +:102760000E94C1190E94DA1E0E942A1E80E090E099 +:102770000E945F0E80E090E00C94750E0E94871915 +:102780000C94AA130E94B318292F22952F7030E0C1 +:102790002C3031054CF42A3031056CF422503109CB +:1027A0002230310588F407C02C30310549F02F3034 +:1027B000310531F009C0803E48F0803F29F406C061 +:1027C00093FB882780F9089580E0089581E00895BB +:1027D000CF93DF9300D000D01F92CDB7DEB70F901C +:1027E0000F900F900F900F90DF91CF910895CF939E +:1027F000DF9300D000D000D0CDB7DEB726960FB65D +:10280000F894DEBF0FBECDBFDF91CF9108951F9327 +:10281000CF93DF93C091790116E080917A01C817B8 +:1028200099F0D0E01C9FF0011D9FF00D1124E55898 +:10283000FE4F4081518162817381848195810E9424 +:10284000F7132196C770E9CFDF91CF911F910895BB +:102850004091AB015091AC016091AD017091AE011E +:102860008091AF019091B0010C94F7138091B00169 +:1028700082958F7009F054C08091AD01882309F4CE +:102880004FC080917901A0917A016091AB01709164 +:10289000AC014091AE015091AF01B6E08A1709F446 +:1028A0003FC090E041155105C1F17F3F11F46F3FEA +:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A +:1028C000218172132AC02081621327C02281211125 +:1028D00024C0238134812417350710F42150310995 +:1028E000241B350B283C3105C0F42091B0012F701A +:1028F00020612093B00126E0289FF001299FF00D70 +:102900001124E058FE4F80818F70806180838BEAB4 +:1029100091E00E948B100C94071401968770BECF33 +:102920000895CF92DF92EF92FF920F931F93CF9370 +:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58 +:10294000CDBF8C0185E0F801DE011D9601900D924E +:102950008A95E1F7D8014C9111965C9111971296E6 +:102960006C9112971396CD90DC9014973091AB0137 +:102970007091AC018091AE019091AF01009709F484 +:102980006BC17F3F19F43F3F09F466C1E090AD0190 +:10299000EE2009F4C0C02091B001C816D90628F075 +:1029A000F601E81BF90BCF0104C0809590958C0DC2 +:1029B0009D1DFF24F394883C910578F0F12C207F35 +:1029C00009F0C6C07C2DD98AC88A89890E94E8137B +:1029D0008BEA91E00E948B10B1C0822F807F09F0BA +:1029E00046C0751314C0341312C0611110C02F708B +:1029F00020612093B0010E9428148BEA91E00E948C +:102A00008B108091B001D80115968C932EC0CD28E3 +:102A100019F15F3F11F44F3FF9F0F62E61111CC020 +:102A20008091790120917A0136E0821709F45AC029 +:102A300090E0389FF001399FF00D1124E558FE4FCA +:102A40007181571306C07081471303C072817111E1 +:102A500003C001968770E9CFF62E662309F418C1EA +:102A60008091B00181608093B001F12C11C1751388 +:102A700008C0341306C0611104C08091B001D801B0 +:102A8000C3C04D875E878D859E856A8B0E94C21369 +:102A90006A898823E1F16623D1F12091B001822F68 +:102AA00082958F7090E0029774F08091AB019091C5 +:102AB000AC0198878F831986DB86CA862C87CE0166 +:102AC00007960E948B1086E0F801ABEAB1E0019016 +:102AD0000D928A95E1F70E9436140E942814FF2473 +:102AE000F394D6C04D875E878D859E850E94B3186E +:102AF000292F22952F7030E0223031050CF0BCC018 +:102B00009F7009F0B6C0805E883008F4C1C0C8016B +:102B10000E948B10E4CFC816D90608F453C0F60102 +:102B2000E81BF90BCF01883C910508F450C0F12C4B +:102B30007C2DD98AC88A89890E94E813EBEAF1E0E2 +:102B400086E0DF011D928A95E9F70E942814A0C053 +:102B5000751314C0341312C0611110C08091B001FC +:102B6000F8018583C8010E948B1086E0EBEAF1E052 +:102B7000DF011D928A95E9F7FE2C8AC04D875E879A +:102B80008D859E856A8B0E94C2136A89882309F409 +:102B9000BECF662309F4BBCF2091B001822F82956E +:102BA0008F7090E002970CF48ECF8091AB019091E2 +:102BB000AC019A8389831B82DD82CC822E83CE0175 +:102BC00001967FCF809590958C0D9D1DACCFF62EF4 +:102BD000662309F49CCF75132EC034132CC02091AA +:102BE000B00120FD1FC0822F82958F70D9F0D801CF +:102BF00015962C9315978F3049F08F5F982F9295EB +:102C0000907F822F8F70892B15968C93C8010E941C +:102C10008B1086E0F801ABEAB1E001900D928A9545 +:102C2000E1F793CF86E0F801ABEAB1E001900D92B5 +:102C30008A95E1F72DC04D875E878D859E850E9420 +:102C4000C213811140CF8091B00181608093B001A7 +:102C5000C8010E948B101CC0662309F458CF4D8711 +:102C60005E878D859E850E94C213882309F44FCF0D +:102C70002ACF811148CF0CC0243031050CF047CF4A +:102C80009F7009F440CFF8019581907F09F03BCF08 +:102C90008F2D62960FB6F894DEBF0FBECDBFDF91C9 +:102CA000CF911F910F91FF90EF90DF90CF900895FB +:102CB0001F93CF93DF93CDB7DEB72C970FB6F89461 +:102CC000DEBF0FBECDBF4F83588769877A878B875A +:102CD0009C87CE0107960E949114882369F08F810A +:102CE00098852A853B85232BF1F19F3F09F063C02E +:102CF0008F3F09F060C037C086E0FE013796DE01E5 +:102D0000119601900D928A95E1F76F817885EA8599 +:102D1000FB85309741F17F3F11F46F3F21F1209106 +:102D20007A0130E0C90101968770992740917901B5 +:102D300050E08417950709F447C069837A83FD83BF +:102D4000EC8396E0929FD001939FB00D1124A5587B +:102D5000BE4FFE01319601900D929A95E1F7809356 +:102D60007A010E94071416E08091790190917A010E +:102D70008917C1F1189FC001112485589E4F0E94E8 +:102D80009114882379F1E09179011E9FF0011124BB +:102D9000E558FE4F40815181628173818481958124 +:102DA0000E94F7138091790190E00196877099272E +:102DB00080937901D9CF4F81588569857A858B8534 +:102DC0009C850E94F713CFCF0E94BE1310927A0108 +:102DD00010927901EBEAF1E086E0DF011D928A951D +:102DE000E9F7C1CF2C960FB6F894DEBF0FBECDBF6A +:102DF000DF91CF911F910895EF92FF920F931F9350 +:102E0000CF93DF938C01892B09F46CC0F12CEE2455 +:102E1000E394E8012196F8018491843740F48430EA +:102E200008F051C0813081F0823019F15BC08537E4 +:102E300009F444C0A8F19CE7980F903708F052C0FD +:102E40008F770E942E1041C00E5F1F4FFE01C4916C +:102E500080E28C0F883048F4C7708E2D01C0880F37 +:102E6000CA95EAF70E949A1914C08C2F0E94660F27 +:102E70002DC00E5F1F4FFE01C49180E28C0F883081 +:102E800058F4C7708E2D01C0880FCA95EAF70E94CA +:102E9000A0190E94C1191AC08C2F0E942E1016C0B2 +:102EA0000E5F1F4FFE01C491CC2381F08FE99FE09C +:102EB0000197F1F700C00000C150F6CF0E5F1F4F21 +:102EC000FE01F49003C00E94660F8E018F2D8823AF +:102ED00009F49FCFEFE9FFE03197F1F700C0000060 +:102EE0008150F5CFDF91CF911F910F91FF90EF901F +:102EF000089508956093B5017093B6018093B7016A +:102F00009093B8010C94AA130F931F930091B501ED +:102F10001091B6012091B7013091B801DC01CB01CD +:102F2000802B912BA22BB32B8093B5019093B601EC +:102F3000A093B701B093B8011F910F910C94AA13FD +:102F40000F931F930091B5011091B6012091B70125 +:102F50003091B801DC01CB0180239123A223B3235C +:102F60008093B5019093B601A093B701B093B801D7 +:102F70001F910F910C94AA130F931F930091B50109 +:102F80001091B6012091B7013091B801DC01CB015D +:102F900080279127A227B3278093B5019093B6018C +:102FA000A093B701B093B8011F910F910C94AA138D +:102FB0001092B1011092B2011092B3011092B401BB +:102FC0000C94AA1341E050E060E070E004C0440FAC +:102FD000551F661F771F8A95D2F74093B101509312 +:102FE000B2016093B3017093B4010C94AA1341E051 +:102FF00050E060E070E004C0440F551F661F771F6B +:103000008A95D2F78091B1019091B201A091B3015C +:10301000B091B401482B592B6A2B7B2B4093B10103 +:103020005093B2016093B3017093B4010C94AA134E +:1030300041E050E060E070E004C0440F551F661F9F +:10304000771F8A95D2F7409550956095709580913D +:10305000B1019091B201A091B301B091B4014823A4 +:1030600059236A237B234093B1015093B2016093AB +:10307000B3017093B4010C94AA1341E050E060E0F6 +:1030800070E004C0440F551F661F771F8A95D2F762 +:103090008091B1019091B201A091B301B091B401BE +:1030A000482759276A277B274093B1015093B201E3 +:1030B0006093B3017093B4010C94AA130F931F9300 +:1030C0000091B1011091B2012091B3013091B4018E +:1030D000DC01CB01802B912BA22BB32B8093B10170 +:1030E0009093B201A093B301B093B4011F910F91DB +:1030F0000C94AA130F931F930091B1011091B20188 +:103100002091B3013091B401DC01CB0180239123E4 +:10311000A223B3238093B1019093B201A093B30192 +:10312000B093B4011F910F910C94AA130F931F93A6 +:103130000091B1011091B2012091B3013091B4011D +:10314000DC01CB0180279127A227B3278093B1010F +:103150009093B201A093B301B093B4011F910F916A +:103160000C94AA130895CF92DF92EF92FF920F93DF +:103170001F93CF93DF938C01C090B501D090B6011F +:10318000E090B701F090B8014091B1015091B201C7 +:103190006091B3017091B401C42AD52AE62AF72AB6 +:1031A000CFE1D0E0D701C6010C2E04C0B695A7959B +:1031B000979587950A94D2F780FF07C0B8018C2FA6 +:1031C0000E94FD058130910531F4219758F7B8012F +:1031D00080E00E94FD05DF91CF911F910F91FF903C +:1031E000EF90DF90CF90089590910C01992321F0FA +:1031F00090910D01911109C020910E0130910F01A4 +:10320000F90132969FEF40E01FC0982F9695969552 +:1032100096959F3050F5E0910E01F0910F01E90F66 +:10322000F11D877021E030E0A90102C0440F551F55 +:103230008A95E2F7CA019181892B818308959F3F86 +:1032400039F04F5F4E3041F051915813F8CF0DC017 +:103250005111F7CF942FF5CF9F3F39F0F901E90FC6 +:10326000F11D97FDFA9582830895089590910C01C0 +:10327000992321F090910D01911109C020910E0127 +:1032800030910F01F9013296205F3F4F1FC0982FF8 +:103290009695969596959F30F0F4E0910E01F091F9 +:1032A0000F01E90FF11D877021E030E0A90102C094 +:1032B000440F551F8A95E2F7CA01809591818923B1 +:1032C000818308953196E217F30729F090819813CE +:1032D000F9CF1082F7CF089581E090E0E0910E01E0 +:1032E000F0910F01E80FF91F1082019680319105CE +:1032F000A9F708959091CC01892B8093CC01089572 +:1033000080959091CC0189238093CC0108951092EF +:10331000CC0108959091CB01892B8093CB01089526 +:1033200080959091CB0189238093CB0108951092D1 +:10333000CB0108959091CA01892B8093CA01089509 +:1033400080959091CA0189238093CA0108951092B3 +:10335000CA0108958093B90108951092B9010895A2 +:1033600080910E0190910F01FC0131969C01205F2C +:103370003F4F80E0919191118F5FE217F307D1F7F2 +:103380000895E0910E01F0910F018091CC018083AE +:10339000E0910E01F0910F0190818091CB01892B7A +:1033A0008083E0910E01F0910F0190818091CA011C +:1033B000892B80838091B901882361F0E0910E010F +:1033C000F0910F019081892B80830E94B0198111A7 +:1033D0001092B90180910E0190910F010C94490E49 +:1033E000CF92DF92EF92FF926C01EE24FF24C11482 +:1033F000D104E104F10421F0C701B60120E101C0CC +:1034000020E0C72ED82EE92EFF24C114D104E104F8 +:10341000F10419F0285FC701B6016B017C0154E08B +:10342000F694E794D794C7945A95D1F7C114D10470 +:10343000E104F10419F02C5FC701B6016B017C01B6 +:1034400042E0F694E794D794C7944A95D1F7C11413 +:10345000D104E104F10419F02E5FC701B601DC01CB +:10346000CB01B695A79597958795892B8A2B8B2BA2 +:1034700009F02F5F822FFF90EF90DF90CF9008959B +:103480008091E601843039F11092CE0120E488E188 +:1034900090E00FB6F894A895809360000FBE20933B +:1034A000600080E00E94330783B7817F846083BF20 +:1034B00083B7816083BF7894889583B78E7F83BFFD +:1034C0000FB6F894A89580916000886180936000A1 +:1034D000109260000FBE089508950895CF930E9442 +:1034E0006C1A0E9426040E946D1AC0E08C2F0E9464 +:1034F0001405811104C0CF5FCE30C1F701C081E057 +:10350000CF9108950E94BE130E943D0E0C94330784 +:1035100082E084BD93E095BD9AEF97BD80936E00E5 +:1035200008952FB7F8948091CF019091D001A09188 +:10353000D101B091D2012FBF0895CF92DF92EF92C7 +:10354000FF920F931F932FB7F8944091CF015091A2 +:10355000D0016091D1017091D2012FBF6A017B012E +:10356000EE24FF248C0120E030E0C016D106E206F4 +:10357000F30610F4415051099A01281B390BC90177 +:103580001F910F91FF90EF90DF90CF9008951F92C1 +:103590000F920FB60F9211248F939F93AF93BF9307 +:1035A0008091CF019091D001A091D101B091D20131 +:1035B0000196A11DB11D8093CF019093D001A093DE +:1035C000D101B093D201BF91AF919F918F910F9094 +:1035D0000FBE0F901F9018950E943A0BF8942FEF92 +:1035E00087EA91E6215080409040E1F700C000005A +:1035F00087E090EBDC018093EF019093F001A093C2 +:10360000F101B093F2019CE088E10FB6F894A8951F +:10361000809360000FBE90936000FFCFEF92FF9207 +:103620000F931F93CF93DF93D82FC0E08C2F0E946E +:10363000140500E010E0E82EF12CC701002E02C0B6 +:10364000959587950A94E2F780FD06C00F5F1F4F9E +:103650000630110591F709C0602F7C2F80E00E9491 +:10366000DB05D813F3CF81E004C0CF5FCE30F1F695 +:1036700080E0DF91CF911F910F91FF90EF9008951F +:10368000CF93C82F8CE20E940E1B882321F08C2F31 +:10369000CF910C940E1B80E0CF910895CF930E94A0 +:1036A000951C811102C00E947B1CC5E6C15049F0E7 +:1036B0000E9426048FE39CE90197F1F700C0000007 +:1036C000F5CF89E20E94401B811113C18AE20E945A +:1036D000401B81110E947B1C85E00E94401B8111D0 +:1036E0000E94EC1A0E94A01C8093CD0187E00E94EA +:1036F000401B8823A9F18BE10E94401B882351F0D5 +:103700008091CD0181FB222720F991E0922790FB47 +:1037100081F90EC08EE00E94401B882361F08091E9 +:10372000CD0182FB222720F991E0922790FB82F9BC +:103730008093CD0115C080E10E94401B9091CD0186 +:10374000882341F093FB222720F981E0822780FB28 +:1037500093F904C0892F809580FB90F99093CD0157 +:103760008091CD010E94A41C0E94B21C8093E001B4 +:1037700080EE0E94401B882341F08091E001982F49 +:10378000909590FB80F98093E00189E30E94401BB3 +:10379000882359F08091E00181FB222720F991E0F4 +:1037A000922790FB81F98093E00182EE0E94401BFA +:1037B000882359F08091E00182FB222720F991E0D3 +:1037C000922790FB82F98093E00186EE0E94401BD5 +:1037D000882359F08091E00183FB222720F991E0B2 +:1037E000922790FB83F98093E00183EE0E94401BB7 +:1037F000882359F08091E00184FB222720F991E091 +:10380000922790FB84F98093E00185E30E94401B9E +:10381000882359F08091E00185FB222720F991E06F +:10382000922790FB85F98093E00181E30E94401B81 +:10383000882359F08091E00186FB222720F991E04E +:10384000922790FB86F98093E00181E10E94401B62 +:10385000882359F08091E00187FB222720F991E02D +:10386000922790FB87F98093E0018091E0010E940C +:10387000B61C8091E00187FB882780F980930D01B9 +:1038800087E20E94401BC82F8EE10E94401B8111DD +:10389000C2608FE10E94401B8111C46080E20E94DF +:1038A000401B8111C86081E20E94401B8111C061F0 +:1038B00082E20E94401B8111C06283E20E94401B91 +:1038C0008111C06484E20E94401B882311F0C0680B +:1038D00002C0CC2329F08C2F0E94AD1C6C2F03C09A +:1038E0000E94A91C682F70E080E090E0CF910C94BA +:1038F0007A17CF9108956DEE7EEF80E090E00E9400 +:10390000F52260E082E090E00E94E72260E083E040 +:1039100090E00E94E72260E084E090E00E94E722CD +:1039200060E085E090E00C94E72280E090E00E9467 +:10393000E12221E08D3E9E4F09F020E0822F089584 +:1039400082E090E00C94D922682F82E090E00C9401 +:10395000E72283E090E00C94D922682F83E090E086 +:103960000C94E72284E090E00C94D922682F84E044 +:1039700090E00C94E7228091D50180FF0BC060910C +:10398000130185E0689FB0011124759567957595C1 +:1039900067952BC081FF09C06091130185E0689F86 +:1039A000B00111247595679520C082FF07C0609112 +:1039B000130185E0689FB001112417C09091D601D2 +:1039C0009923D1F060911201961788F72091130185 +:1039D00085E0289F90011124929FA001939F500D94 +:1039E000112470E0CA010E94AB226038710540F4D6 +:1039F0006115710539F002C065E070E0862F089509 +:103A00008FE7089581E008958091D50180FF08C077 +:103A10006091110170E0759567957595679521C066 +:103A200081FF06C06091110170E07595679519C01E +:103A300082FF04C06091110170E010C09091D60126 +:103A40009923C1F0609110019617A0F780911101A0 +:103A5000899FC001112470E00E94AB22603871057B +:103A600028F46115710521F0862F08958FE70895D8 +:103A700081E0089561E070E0F4CF803F21F40E947E +:103A8000BB1C819504C0813F29F40E94BB1C80931C +:103A9000D9010895823F21F40E94BB1C819504C086 +:103AA000833F29F40E94BB1C8093D8010895893F6D +:103AB00019F40E94041D05C08A3F31F40E94041DC0 +:103AC00081958093DA0108958B3F21F40E94041DB3 +:103AD000819504C08C3F29F40E94041D8093DB0172 +:103AE0000895843F21F48091D701816017C0853FFC +:103AF00021F48091D701826011C0863F21F480912A +:103B0000D70184600BC0873F21F48091D701886082 +:103B100005C0883F31F48091D70180618093D7013F +:103B200008958D3F21F48091D50181600BC08E3FB7 +:103B300021F48091D501826005C08F3F29F48091E6 +:103B4000D50184608093D5010895803F39F4809138 +:103B5000D90187FF6CC01092D90169C0813F29F457 +:103B60008091D9011816BCF362C09091D801823FB0 +:103B700029F497FF5CC01092D80159C0833F19F413 +:103B80001916CCF354C0893F41F48091DA0118161C +:103B90000CF04DC01092DA014AC08A3F29F480919E +:103BA000DA0187FF44C0F6CF8B3F39F48091DB0107 +:103BB00087FF3DC01092DB013AC08C3F29F4809111 +:103BC000DB011816BCF333C0843F21F48091D70188 +:103BD0008E7F17C0853F21F48091D7018D7F11C062 +:103BE000863F21F48091D7018B7F0BC0873F21F462 +:103BF0008091D701877F05C0883F31F48091D7013C +:103C00008F7E8093D70113C08D3F21F48091D50121 +:103C10008E7F0BC08E3F21F48091D5018D7F05C032 +:103C20008F3F29F48091D5018B7F8093D5018091BE +:103C3000D80181110EC08091D90181110AC08091F3 +:103C4000DA01811106C08091DB01811102C010925E +:103C5000D601089587ED91E00E94540E0E94911ABA +:103C60009093D4018093D30108951F93CF93DF9352 +:103C70008091D3019091D4010E949D1AAC01909142 +:103C8000D601992321F02091140130E006C0209143 +:103C900015018AE0289F900111244217530708F468 +:103CA00085C08091D801C091D901D091DA011091DD +:103CB000DB01811107C0C11175C0D11173C0111191 +:103CC00071C074C09F3F19F09F5F9093D601181682 +:103CD00024F40E94BB1C8093D8018091D80187FFF7 +:103CE00005C00E94BB1C81958093D8011C1624F44A +:103CF0000E94BB1C8093D9018091D90187FF05C028 +:103D00000E94BB1C81958093D9016091D8016623E4 +:103D100031F1C091D901CC2311F1062E000C770BA3 +:103D2000880B990B0E94B22123E333E343E35FE363 +:103D30000E9416220E947A216093D8016C2FCC0F2A +:103D4000770B880B990B0E94B22123E333E343E303 +:103D50005FE30E9416220E947A216093D9011D160A +:103D600024F40E94041D8093DA018091DA0187FF18 +:103D700005C00E94041D81958093DA01111624F478 +:103D80000E94041D8093DB018091DB0187FF05C049 +:103D90000E94041D81958093DB01DF91CF911F91DB +:103DA0000C942A1E9F3F09F08FCF97CFDF91CF91C0 +:103DB0001F910895E7EDF1E085E0DF011D928A95FE +:103DC000E9F71092D6011092D5010895833081F160 +:103DD00028F4813059F08230D1F00895853009F40B +:103DE00049C0B8F1863009F456C008958091150194 +:103DF000262F30E0280F311D2F3F310524F4680FA6 +:103E00006093150108958FEF8093150108958091B7 +:103E10001401262F30E0280F311D2F3F310524F4E7 +:103E2000680F6093140108958FEF80931401089533 +:103E300080911301262F30E0280F311D2F3F3105CF +:103E400024F4680F6093130108958FEF809313019A +:103E5000089580911201262F30E0280F311D2F3F49 +:103E6000310524F4680F6093120108958FEF809359 +:103E70001201089580911101262F30E0280F311D85 +:103E80002F3F310524F4680F6093110108958FEFDF +:103E900080931101089580911001262F30E0280FA2 +:103EA000311D2F3F310524F4680F609310010895F0 +:103EB0008FEF809310010895833011F128F4813041 +:103EC00049F0823091F00895853081F120F18630FB +:103ED000C1F1089580911501681720F4861B809325 +:103EE0001501089510921501089580911401681725 +:103EF00020F4861B809314010895109214010895F4 +:103F000080911301681720F4861B80931301089594 +:103F100010921301089580911201681720F4861BF6 +:103F20008093120108951092120108958091110159 +:103F3000681720F4861B80931101089510921101D7 +:103F4000089580911001681720F4861B809310015A +:103F500008951092100108950F931F938D3109F465 +:103F60006AC008F03FC08E3009F484C0C0F48730C6 +:103F700009F46DC068F4863009F0B5C08091CD01B8 +:103F8000817F8E7F8093CD0181E08093DD01ACC085 +:103F9000883009F457C08B3009F46AC0A4C0863158 +:103FA00009F466C078F4803109F477C0813109F0F2 +:103FB0009AC00E94BE1390910D0181E089278093E1 +:103FC0000D0156C0893109F453C08B3109F08BC003 +:103FD0008091CD0181FB222720F991E0922790FB6F +:103FE00081F951C0853309F475C048F4873209F46A +:103FF00071C008F45EC0893209F46CC074C08334A7 +:1040000030F48A3308F053C0883391F16CC08334A4 +:1040100009F460C0883409F066C00E94BE130FEF37 +:1040200013ED20E3015010402040E1F700C00000F4 +:104030000E94EC1A1DC00E9434210E943D0E0E9475 +:10404000330716C00E94A01C0E94B21C11C09091A0 +:10405000CD01892F8095817080FB90F929F09660C1 +:1040600098609093CD0140C0997F977F9093CD0148 +:1040700081E03AC08091CD0182FB222720F991E0B6 +:10408000922790FB82F98093CD01992389F3809147 +:10409000CD0181608093CD01EBCF8091CD0183FB79 +:1040A000222720F991E0922790FB83F9ECCF8953E6 +:1040B00001C08D5141E050E060E070E08A019B0159 +:1040C00004C0000F111F221F331F8A95D2F7C901A8 +:1040D000B80104C061E070E080E090E00E947A17CF +:1040E0000E94BE13C5CF80E01F910F91089580E01C +:1040F000089580E00895CF93C82F8091DD0181302D +:1041000079F018F08230E9F187C0E0910E01F0916A +:104110000F018081813169F0823209F07FC009C0CE +:10412000E0910E01F0910F018081813111F0823216 +:1041300061F48C2F0E947720811104C08C2F0E9483 +:10414000AC1F1DC081E090E01AC08C2F0E94792026 +:10415000811114C0C43179F048F4CB3079F0C0310A +:1041600009F060C082E08093DD0108C0C93219F017 +:10417000C83321F057C01092DD0154C081E0817036 +:1041800053C0C93289F118F5C43171F1A8F4C730B0 +:1041900009F046C08AE08093150194E190931401E0 +:1041A00093E0909313018093120188E080931101B2 +:1041B00088E28093100134C0CE51C63088F5EC2FD0 +:1041C000F0E0E65DFE4F80818093DC0129C0CE34B3 +:1041D000E9F020F4CB3421F56AE013C0C13579F061 +:1041E000C235F1F461E00DC08091DC01882319F043 +:1041F0001092DC0115C081E08093DD0115C061E003 +:1042000006C08091DC010E94E61E0AC06AE080912F +:10421000DC010E945C1F04C01092DD0180E004C03C +:1042200081E002C080E0ABCFCF910895E1E8F0E0FB +:104230008081886080838081816080838FB7F894DB +:1042400093E09093890090ED909388008FBF08953C +:10425000EFE6F0E08081826080830895EFE6F0E091 +:1042600080818D7F80830895EFE6F0E0908182E089 +:104270008927808308951F920F920FB60F92112401 +:104280002F933F934F935F936F937F938F939F935E +:10429000AF93BF93EF93FF938091DE019091DF0185 +:1042A00001969093DF018093DE01811103C082E0CB +:1042B0000E943307E091DF01E695E695F0E0E657CE +:1042C000FB4FE4918091DE018E1303C080E00E94D9 +:1042D0003307FF91EF91BF91AF919F918F917F91A4 +:1042E0006F915F914F913F912F910F900FBE0F9063 +:1042F0001F9018950E9481216894B1110C9410228E +:1043000008950E94F52188F09F5798F0B92F9927BA +:10431000B751B0F0E1F0660F771F881F991F1AF0B0 +:10432000BA95C9F714C0B13091F00E940F22B1E0E4 +:1043300008950C940F22672F782F8827B85F39F0E3 +:10434000B93FCCF3869577956795B395D9F73EF449 +:1043500090958095709561957F4F8F4F9F4F0895F1 +:10436000E89409C097FB3EF490958095709561950F +:104370007F4F8F4F9F4F9923A9F0F92F96E9BB27C5 +:104380009395F695879577956795B795F111F8CF41 +:10439000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAC +:1043A0009F4F16C0882311F096E911C0772321F0A2 +:1043B0009EE8872F762F05C0662371F096E8862F3A +:1043C00070E060E02AF09A95660F771F881FDAF791 +:1043D000880F9695879597F9089557FD9058440F43 +:1043E000551F59F05F3F71F04795880F97FB991F54 +:1043F00061F09F3F79F08795089512161306140611 +:10440000551FF2CF4695F1DF08C01616170618069D +:10441000991FF1CF86957105610508940895E89478 +:10442000BB2766277727CB0197F908950E94292299 +:104430000C949A220E948C2238F00E94932220F041 +:10444000952311F00C9483220C94892211240C944E +:1044500010220E94ED2170F3959FC1F3950F50E05B +:10446000551F629FF001729FBB27F00DB11D639F26 +:10447000AA27F00DB11DAA1F649F6627B00DA11DCC +:10448000661F829F2227B00DA11D621F739FB00D72 +:10449000A11D621F839FA00D611D221F749F3327E2 +:1044A000A00D611D231F849F600D211D822F762F7B +:1044B0006A2F11249F5750409AF0F1F088234AF058 +:1044C000EE0FFF1FBB1F661F771F881F91505040C4 +:1044D000A9F79E3F510580F00C9483220C94102282 +:1044E0005F3FE4F3983ED4F3869577956795B7954B +:1044F000F795E7959F5FC1F7FE2B880F911D969565 +:10450000879597F9089597F99F6780E870E060E0D4 +:1045100008959FEF80EC089500240A94161617065C +:1045200018060906089500240A94121613061406A4 +:1045300005060895092E0394000C11F4882352F007 +:10454000BB0F40F4BF2B11F460FF04C06F5F7F4FBF +:104550008F4F9F4F089597FB072E16F4009407D0B6 +:1045600077FD09D00E94C52207FC05D03EF4909546 +:1045700081959F4F0895709561957F4F0895EE0F37 +:10458000FF1F0590F491E02D0994AA1BBB1B51E17C +:1045900007C0AA1FBB1FA617B70710F0A61BB70BB3 +:1045A000881F991F5A95A9F780959095BC01CD0158 +:1045B0000895F999FECF92BD81BDF89A992780B5EB +:1045C0000895A8E1B0E042E050E00C94FC22262FD0 +:1045D000F999FECF1FBA92BD81BD20BD0FB6F894E8 +:1045E000FA9AF99A0FBE019608950E94E722272FA2 +:1045F0000C94E822DC01CB01FC01F999FECF06C046 +:10460000F2BDE1BDF89A319600B40D924150504090 +:08461000B8F70895F894FFCFFC +:1046180020023507C307A0076C0738070101BA0154 +:1046280028080A03140A3F4D36394B04FE03C80311 +:104638008F0322033B0354036D03010203040506A1 +:044648000708090056 +:00000001FF -- cgit v1.2.3 From dbd4ab3457dd001ab4bbcec14315047b815f7dfe Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Thu, 31 Mar 2016 23:15:59 +0200 Subject: fixed de_osx prefix in keymap include to avoid conflicts --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 50 ++++----- quantum/keymap_extras/keymap_german_osx.h | 156 ++++++++++++++-------------- 2 files changed, 103 insertions(+), 103 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index df8d99650..5d1296419 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -13,8 +13,8 @@ #define M_CTRL_CMDV 1 #define M_CTRL_CMDC 2 #define M_MEH_SH_ACUT 3 -#define M_DE_PLUS_CTRLALT 12 -#define M_DE_CIRC_CTRLCMD 13 +#define M_DE_OSX_PLUS_CTRLALT 12 +#define M_DE_OSX_CIRC_CTRLCMD 13 #define M_TOGGLE_5 14 #define M_CTL_SFT_HASH 15 @@ -54,21 +54,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [BASE] = KEYMAP( // layer 0 : default // left hand - KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTL_SFT_HASH), - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, - KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, - KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, - LT(SYMB,DE_LESS), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), KC_UP, KC_DOWN, + 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(2), KC_HOME, KC_BSPC,KC_DEL, LT(SMLY,KC_END), // right hand - M(M_CTL_SFT_HASH), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, - KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, - DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE), - KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, - KC_LEFT, KC_RIGHT,LGUI(KC_LSFT),LALT(KC_LSFT), LT(SYMB,DE_PLUS), - TG(4), ALL_T(DE_ACUT), + 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(4), ALL_T(DE_OSX_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC ), @@ -97,19 +97,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [SYMB] = KEYMAP( // left hand KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, + KC_TRNS,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 hand 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_LESS, DE_MORE, DE_EXLM, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, - KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), - DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + 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 @@ -210,9 +210,9 @@ KEYMAP( // right hand KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS, + 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_EQL, 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 @@ -309,7 +309,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (timer_elapsed(start) > 150){ return MACRO(U(LCTRL),U(LSFT),U(LALT),END); } else { - return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix } } break; @@ -325,7 +325,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - case M_DE_CIRC_CTRLCMD: + case M_DE_OSX_CIRC_CTRLCMD: if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),D(LGUI),END); @@ -337,7 +337,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - case M_DE_PLUS_CTRLALT: + case M_DE_OSX_PLUS_CTRLALT: if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),D(LALT),END); diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h index da91b4bf4..d0b77fb80 100644 --- a/quantum/keymap_extras/keymap_german_osx.h +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -9,92 +9,92 @@ // Alt gr // normal characters -#define DE_Z KC_Y -#define DE_Y KC_Z +#define DE_OSX_Z KC_Y +#define DE_OSX_Y KC_Z -#define DE_A KC_A -#define DE_B KC_B -#define DE_C KC_C -#define DE_D KC_D -#define DE_E KC_E -#define DE_F KC_F -#define DE_G KC_G -#define DE_H KC_H -#define DE_I KC_I -#define DE_J KC_J -#define DE_K KC_K -#define DE_L KC_L -#define DE_M KC_M -#define DE_N KC_N -#define DE_O KC_O -#define DE_P KC_P -#define DE_Q KC_Q -#define DE_R KC_R -#define DE_S KC_S -#define DE_T KC_T -#define DE_U KC_U -#define DE_V KC_V -#define DE_W KC_W -#define DE_X KC_X +#define DE_OSX_A KC_A +#define DE_OSX_B KC_B +#define DE_OSX_C KC_C +#define DE_OSX_D KC_D +#define DE_OSX_E KC_E +#define DE_OSX_F KC_F +#define DE_OSX_G KC_G +#define DE_OSX_H KC_H +#define DE_OSX_I KC_I +#define DE_OSX_J KC_J +#define DE_OSX_K KC_K +#define DE_OSX_L KC_L +#define DE_OSX_M KC_M +#define DE_OSX_N KC_N +#define DE_OSX_O KC_O +#define DE_OSX_P KC_P +#define DE_OSX_Q KC_Q +#define DE_OSX_R KC_R +#define DE_OSX_S KC_S +#define DE_OSX_T KC_T +#define DE_OSX_U KC_U +#define DE_OSX_V KC_V +#define DE_OSX_W KC_W +#define DE_OSX_X KC_X -#define DE_0 KC_0 -#define DE_1 KC_1 -#define DE_2 KC_2 -#define DE_3 KC_3 -#define DE_4 KC_4 -#define DE_5 KC_5 -#define DE_6 KC_6 -#define DE_7 KC_7 -#define DE_8 KC_8 -#define DE_9 KC_9 +#define DE_OSX_0 KC_0 +#define DE_OSX_1 KC_1 +#define DE_OSX_2 KC_2 +#define DE_OSX_3 KC_3 +#define DE_OSX_4 KC_4 +#define DE_OSX_5 KC_5 +#define DE_OSX_6 KC_6 +#define DE_OSX_7 KC_7 +#define DE_OSX_8 KC_8 +#define DE_OSX_9 KC_9 -#define DE_DOT KC_DOT -#define DE_COMM KC_COMM +#define DE_OSX_DOT KC_DOT +#define DE_OSX_COMM KC_COMM -#define DE_SS KC_MINS -#define DE_AE KC_QUOT -#define DE_UE KC_LBRC -#define DE_OE KC_SCLN +#define DE_OSX_SS KC_MINS +#define DE_OSX_AE KC_QUOT +#define DE_OSX_UE KC_LBRC +#define DE_OSX_OE KC_SCLN -#define DE_CIRC KC_NUBS // accent circumflex ^ and ring ° -#define DE_ACUT KC_EQL // accent acute ´ and grave ` -#define DE_PLUS KC_RBRC // + and * and ~ -#define DE_HASH KC_BSLS // # and ' -#define DE_LESS KC_GRV // < and > and | -#define DE_MINS KC_SLSH // - and _ +#define DE_OSX_CIRC KC_NUBS // accent circumflex ^ and ring ° +#define DE_OSX_ACUT KC_EQL // accent acute ´ and grave ` +#define DE_OSX_PLUS KC_RBRC // + and * and ~ +#define DE_OSX_HASH KC_BSLS // # and ' +#define DE_OSX_LESS KC_GRV // < and > and | +#define DE_OSX_MINS KC_SLSH // - and _ // shifted characters -#define DE_RING LSFT(DE_CIRC) // ° -#define DE_EXLM LSFT(KC_1) // ! -#define DE_DQOT LSFT(KC_2) // " -#define DE_PARA LSFT(KC_3) // § -#define DE_DLR LSFT(KC_4) // $ -#define DE_PERC LSFT(KC_5) // % -#define DE_AMPR LSFT(KC_6) // & -#define DE_SLSH LSFT(KC_7) // / -#define DE_LPRN LSFT(KC_8) // ( -#define DE_RPRN LSFT(KC_9) // ) -#define DE_EQL LSFT(KC_0) // = -#define DE_QST LSFT(DE_SS) // ? -#define DE_GRV LSFT(DE_ACUT) // ` -#define DE_ASTR LSFT(DE_PLUS) // * -#define DE_QUOT LSFT(DE_HASH) // ' -#define DE_MORE LSFT(DE_LESS) // > -#define DE_COLN LSFT(KC_DOT) // : -#define DE_SCLN LSFT(KC_COMM) // ; -#define DE_UNDS LSFT(DE_MINS) // _ +#define DE_OSX_RING LSFT(DE_OSX_CIRC) // ° +#define DE_OSX_EXLM LSFT(KC_1) // ! +#define DE_OSX_DQOT LSFT(KC_2) // " +#define DE_OSX_PARA LSFT(KC_3) // § +#define DE_OSX_DLR LSFT(KC_4) // $ +#define DE_OSX_PERC LSFT(KC_5) // % +#define DE_OSX_AMPR LSFT(KC_6) // & +#define DE_OSX_SLSH LSFT(KC_7) // / +#define DE_OSX_LPRN LSFT(KC_8) // ( +#define DE_OSX_RPRN LSFT(KC_9) // ) +#define DE_OSX_EQL LSFT(KC_0) // = +#define DE_OSX_QST LSFT(DE_OSX_SS) // ? +#define DE_OSX_GRV LSFT(DE_OSX_ACUT) // ` +#define DE_OSX_ASTR LSFT(DE_OSX_PLUS) // * +#define DE_OSX_QUOT LSFT(DE_OSX_HASH) // ' +#define DE_OSX_MORE LSFT(DE_OSX_LESS) // > +#define DE_OSX_COLN LSFT(KC_DOT) // : +#define DE_OSX_SCLN LSFT(KC_COMM) // ; +#define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _ // Alt-ed characters -#define DE_SQ2 LALT(KC_2) // ² -#define DE_SQ3 LALT(KC_3) // ³ -#define DE_LCBR LALT(KC_8) // { -#define DE_LBRC LALT(KC_5) // [ -#define DE_RBRC LALT(KC_6) // ] -#define DE_RCBR LALT(KC_9) // } -#define DE_BSLS LALT(LSFT(KC_7)) // backslash -#define DE_AT LALT(DE_L) // @ -#define DE_EURO LALT(KC_E) // € -#define DE_TILD LALT(DE_N) // ~ -#define DE_PIPE LALT(DE_7) // | +#define DE_OSX_SQ2 LALT(KC_2) // ² +#define DE_OSX_SQ3 LALT(KC_3) // ³ +#define DE_OSX_LCBR LALT(KC_8) // { +#define DE_OSX_LBRC LALT(KC_5) // [ +#define DE_OSX_RBRC LALT(KC_6) // ] +#define DE_OSX_RCBR LALT(KC_9) // } +#define DE_OSX_BSLS LALT(LSFT(KC_7)) // backslash +#define DE_OSX_AT LALT(DE_OSX_L) // @ +#define DE_OSX_EURO LALT(KC_E) // € +#define DE_OSX_TILD LALT(DE_OSX_N) // ~ +#define DE_OSX_PIPE LALT(DE_OSX_7) // | #endif -- cgit v1.2.3 From 54b0a2bf765033f636d1d8440081f75126dfee81 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 1 Apr 2016 14:44:08 -0400 Subject: adding files is always smart --- keyboard/preonic/flash-pcb.sh | 3 + keyboard/preonic/keymaps/default/README.md | 34 ++++++++++ keyboard/preonic/keymaps/default/keymap.c | 96 ++++++++++++++++++++++++++ keyboard/preonic/keymaps/lock/README.md | 3 + keyboard/preonic/keymaps/lock/keymap.c | 105 +++++++++++++++++++++++++++++ keyboard/preonic/preonic.c | 36 ++++++++++ keyboard/preonic/preonic.h | 50 ++++++++++++++ 7 files changed, 327 insertions(+) create mode 100755 keyboard/preonic/flash-pcb.sh create mode 100644 keyboard/preonic/keymaps/default/README.md create mode 100644 keyboard/preonic/keymaps/default/keymap.c create mode 100644 keyboard/preonic/keymaps/lock/README.md create mode 100644 keyboard/preonic/keymaps/lock/keymap.c create mode 100644 keyboard/preonic/preonic.c create mode 100644 keyboard/preonic/preonic.h (limited to 'keyboard') diff --git a/keyboard/preonic/flash-pcb.sh b/keyboard/preonic/flash-pcb.sh new file mode 100755 index 000000000..8b59b83f5 --- /dev/null +++ b/keyboard/preonic/flash-pcb.sh @@ -0,0 +1,3 @@ +dfu-programmer atmega32u4 erase --force +dfu-programmer atmega32u4 flash preonic_pcb.hex +dfu-programmer atmega32u4 reset \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md new file mode 100644 index 000000000..d2f43bbdb --- /dev/null +++ b/keyboard/preonic/keymaps/default/README.md @@ -0,0 +1,34 @@ +# The Default Planck Layout + + 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), KC_SPC, KC_SPC, 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), KC_SPC, KC_SPC, 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), 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(_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} + } + }; \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c new file mode 100644 index 000000000..392197f1d --- /dev/null +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -0,0 +1,96 @@ +// 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 "preonic.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), 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_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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 600}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(55)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 1000}, +}; + +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 * matrix_init_user(void) { +#ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 9, false); +#endif +} diff --git a/keyboard/preonic/keymaps/lock/README.md b/keyboard/preonic/keymaps/lock/README.md new file mode 100644 index 000000000..d21cb990b --- /dev/null +++ b/keyboard/preonic/keymaps/lock/README.md @@ -0,0 +1,3 @@ +# Lock layout + +This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly! \ No newline at end of file diff --git a/keyboard/preonic/keymaps/lock/keymap.c b/keyboard/preonic/keymaps/lock/keymap.c new file mode 100644 index 000000000..e253f2581 --- /dev/null +++ b/keyboard/preonic/keymaps/lock/keymap.c @@ -0,0 +1,105 @@ +// 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 "preonic.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#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. +// 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 _MI 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), 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_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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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} +}, +[_MI] = { /* MIDI */ + {MIDI12}, + {MIDI12}, + {MIDI12}, + {MIDI12}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MIDI, MIDI, MIDI, MIDI} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 600}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(55)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 1000}, +}; + +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 + default_layer_state = 1<<5; + } else { + unregister_code(KC_RSFT); + default_layer_state = 1<<0; + } + break; + } + return MACRO_NONE; +}; + +void * matrix_init_user(void) { + init_notes(); + play_notes(&start_up, 9, false); +} diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c new file mode 100644 index 000000000..a678f7b09 --- /dev/null +++ b/keyboard/preonic/preonic.c @@ -0,0 +1,36 @@ +#include "preonic.h" + +__attribute__ ((weak)) +void * matrix_init_user(void) { + +}; + +__attribute__ ((weak)) +void * matrix_scan_user(void) { + +}; + +void * matrix_init_kb(void) { + #ifdef BACKLIGHT_ENABLE + backlight_init_ports(); + #endif + + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + + + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); + + if (matrix_init_user) { + (*matrix_init_user)(); + } +}; + +void * matrix_scan_kb(void) { + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h new file mode 100644 index 000000000..42d212329 --- /dev/null +++ b/keyboard/preonic/preonic.h @@ -0,0 +1,50 @@ +#ifndef PREONIC_H +#define PREONIC_H + +#include "matrix.h" +#include "keymap_common.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#ifdef RGBLIGHT_ENABLE + #include "rgblight.h" +#endif +#include +#ifdef MIDI_ENABLE + #include +#endif + +#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); + +#endif -- cgit v1.2.3 From ad3ec12fb62b67fa2a69f3950a073fafc22be8f4 Mon Sep 17 00:00:00 2001 From: tak3over Date: Fri, 1 Apr 2016 15:26:09 -0500 Subject: Create tak3over.c Custom keymap with an additional function layer for numpad, pgup, pgdn, del, ins, home, end, and additional arrow keys.--- keyboard/planck/keymaps/tak3over.c | 136 +++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 keyboard/planck/keymaps/tak3over.c (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c new file mode 100644 index 000000000..c49af7d0e --- /dev/null +++ b/keyboard/planck/keymaps/tak3over.c @@ -0,0 +1,136 @@ +// 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. +// +// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over +// keys to make room for a second function key on the left side. Now has a keypad and most all +// standard keyboard keys. Including Delete. See TK layer. + +#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] = { + +/* 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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {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, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), 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 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {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_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* TenKey, Arrow, and Function key Layer + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_TK] = { + {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_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, + {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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} +} +}; + +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; +}; -- cgit v1.2.3 From c274699085b2f922a5e8b14b21aa377249e62d29 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Fri, 1 Apr 2016 23:53:09 +0200 Subject: minor tweaks at the keymap, new png for documentation --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 12 ++++++------ .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 749565 -> 684862 bytes 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index 5d1296419..269e7a0fb 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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(2), + M(M_MEH_SH_ACUT), TG(MDIA), KC_HOME, KC_BSPC,KC_DEL, LT(SMLY,KC_END), // right hand @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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(4), ALL_T(DE_OSX_ACUT), + TG(NUMB), ALL_T(DE_OSX_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC ), @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( +[MDIA] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, @@ -178,7 +178,7 @@ KEYMAP( * | | | | | | | | * `--------------------' `----------------------' */ -KEYMAP( +[SMLY] = 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, @@ -198,7 +198,7 @@ KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS ), //number pad -KEYMAP( +[NUMB] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, @@ -239,7 +239,7 @@ KEYMAP( * | | | F4 | | | | | * `--------------------' `----------------------' */ -KEYMAP( +[EGOS] = 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_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png index 1d5226974..8e709ee26 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ -- cgit v1.2.3 From 71cdfe11682cf63c262380747d8a1b3d48a6bad0 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sat, 2 Apr 2016 15:14:14 +0200 Subject: new keymap --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index df8d99650..a1b47ae8b 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -17,6 +17,7 @@ #define M_DE_CIRC_CTRLCMD 13 #define M_TOGGLE_5 14 #define M_CTL_SFT_HASH 15 +#define M_LGUI_SHFT 16 #define SM_SMILE 4 #define SM_SMIRK 5 @@ -67,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE), KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, - KC_LEFT, KC_RIGHT,LGUI(KC_LSFT),LALT(KC_LSFT), LT(SYMB,DE_PLUS), + KC_LEFT, KC_RIGHT,M(M_LGUI_SHFT),LALT(KC_LSFT), LT(SYMB,DE_PLUS), TG(4), ALL_T(DE_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC @@ -313,6 +314,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; + case M_LGUI_SHFT: + if (record->event.pressed){ + return MACRO(D(LGUI),D(LSFT),END); + }else{ + return MACRO(U(LGUI),U(LSFT),END); + } + break; case M_CTL_SFT_HASH: if (record->event.pressed) { start=timer_read(); -- cgit v1.2.3 From 381a9fd55319d1f29783748f5d6d5c5820e81636 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sat, 2 Apr 2016 23:07:58 +0200 Subject: use action function for unicode --- .../keymaps/german-manuneo/compile_keymap.py | 273 +- .../keymaps/german-manuneo/german-manuneo.hex | 2862 +++++++++----------- .../ergodox_ez/keymaps/german-manuneo/keymap.c | 1004 ++----- .../ergodox_ez/keymaps/german-manuneo/keymap.md | 52 +- 4 files changed, 1651 insertions(+), 2540 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index af6867222..3d2667276 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -20,6 +20,7 @@ import sys import json import unicodedata import collections +import itertools as it PY2 = sys.version_info.major == 2 @@ -27,11 +28,6 @@ if PY2: chr = unichr -BASEPATH = os.path.abspath(os.path.join( - os.path.dirname(__file__), "..", ".." -)) - - KEYBOARD_LAYOUTS = { # These map positions in the parsed layout to # positions in the KEYMAP MATRIX @@ -73,34 +69,33 @@ BLANK_LAYOUTS = [ # Wide Layout """ -.--------------------------------------------. .--------------------------------------------. -| | | | | | | | ! | | | | | | | -!------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+------! -| | | | | | | | ! | | | | | | | -!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! -| | | | | | |-------! !-------! | | | | | | -!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! -| | | | | | | | ! | | | | | | | -'------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+------' - | | | | | | ! | | | | | - '-----------------------------' '-----------------------------' - .---------------. .---------------. - | | | ! | | - .-------+-------+-------! !-------+-------+-------. - ! ! | | ! | ! ! - ! ! !-------! !-------! ! ! - | | | | ! | | | - '-----------------------' '-----------------------' +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' """, ] DEFAULT_CONFIG = { - "includes_basedir": "quantum/", "keymaps_includes": [ "keymap_common.h", ], - 'filler': "-+.':x", + 'filler': "-+.'!:x", 'separator': "|", 'default_key_prefix': ["KC_"], } @@ -114,31 +109,34 @@ SECTIONS = [ # 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): - 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) if isinstance(raw_data, bytes): raw_data = raw_data.decode('utf-8') @@ -164,6 +162,8 @@ def parse_config(path): name = line[2:] elif line.startswith("## "): name = line[3:] + else: + name = "" name = name.strip().replace(" ", "_").lower() if name in SECTIONS: @@ -209,6 +209,7 @@ def parse_config(path): pass end_section() + assert 'layout' in config return config # header file parsing @@ -218,16 +219,15 @@ IF0_RE = re.compile(r""" #if 0 $.*? #endif - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) COMMENT_RE = re.compile(r""" /\* .*? \*/" - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + def read_header_file(path): with io.open(path, encoding="utf-8") as fh: @@ -237,7 +237,7 @@ def read_header_file(path): return data -def regex_partial(re_str_fmt, flags=re.MULTILINE | re.DOTALL | re.VERBOSE): +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) @@ -251,8 +251,7 @@ KEYDEF_REP = regex_partial(r""" (?:{}) # the prefixes (?:\w+) # the key name ) # capture group end - """ -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) ENUM_RE = re.compile(r""" @@ -264,8 +263,7 @@ ENUM_RE = re.compile(r""" \} ; ) # capture group end - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) ENUM_KEY_REP = regex_partial(r""" @@ -273,8 +271,8 @@ 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']) @@ -289,26 +287,31 @@ def parse_keydefs(config, data): yield key_match.groups()[0] -def parse_valid_keys(config): - valid_keycodes = set() - paths = [ - os.path.join(BASEPATH, "tmk_core", "common", "keycode.h") - ] + [ - os.path.join( - BASEPATH, config['includes_dir'], include_path - ) for include_path in config['keymaps_includes'] - ] +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") - for path in paths: - path = path.replace("/", os.sep) - # the config always uses forward slashe - if os.path.exists(path): - header_data = read_header_file(path) + 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): @@ -325,6 +328,7 @@ def iter_raw_codes(layer_lines, filler, separator): 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 @@ -384,8 +388,8 @@ def parse_code(raw_code, key_prefixes, valid_keycodes): return raw_code, None, None if MACRO_RE.match(raw_code): - code = macro_id = raw_code[2:-1] - return code, macro_id, None + macro_id = raw_code[2:-1] + return raw_code, macro_id, None if UNICODE_RE.match(raw_code): hex_code = raw_code[1:] @@ -404,10 +408,17 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): 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, config['key_prefixes'], valid_keycodes + 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: @@ -482,9 +493,64 @@ void matrix_scan_user(void) { 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; @@ -494,57 +560,35 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ case UM: unicode_mode = (unicode_mode + 1) % 2; break; - {macro_cases} +{macro_cases} +{unicode_macro_cases} default: break; }} - if (unicode_mode == UC_MODE_WIN) {{ - switch(id) {{ - {win_macro_cases} - default: - break; - }} - }} else if (unicode_mode == UC_MODE_LINUX) {{ - switch(id) {{ - {linux_macro_cases} - default: - break; - }} - }} return MACRO_NONE; }}; """ -WIN_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LALT), T(KP_PLUS), {1}, U(LALT), END - ); -""" -LINUX_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END - ); -""" +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() -def macro_cases(config, mode): - if mode == 'win': - template = WIN_UNICODE_MACRO_TEMPLATE - elif mode == 'linux': - template = LINUX_UNICODE_MACRO_TEMPLATE - else: - raise ValueError("Invalid mode: ", mode) - template = template.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 template.format(macro_id, unimacro_keys) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) def iter_keymap_lines(keymap): @@ -599,8 +643,7 @@ def iter_keymap_parts(config, keymaps): # macros yield MACROCODE.format( macro_cases="", - win_macro_cases="\n".join(macro_cases(config, mode='win')), - linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + unicode_macro_cases="\n".join(unicode_macro_cases(config)), ) # TODO: dynamically create blinking lights @@ -624,7 +667,7 @@ def main(argv=sys.argv[1:]): out_path = os.path.join(dirname, "keymap.c") config = parse_config(in_path) - valid_keys = parse_valid_keys(config) + 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: diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex index cb8b7fa8d..ee1d30967 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex @@ -1,1624 +1,1240 @@ -:100000000C94BD0F0C9401100C9401100C94011071 -:100010000C9401100C9401100C9401100C9401101C -:100020000C9401100C9401100C94791B0C944B1C33 -:100030000C9401100C9401100C9401100C940110FC -:100040000C9401100C94D6300C9401100C940110F7 -:100050000C9401100C94782A0C9401100C9401104B -:100060000C9401100C9401100C9401100C940110CC -:100070000C9401100C9401100C9401100C940110BC -:100080000C9401100C9401100C9401100C940110AC -:100090000C9401100C9401100C9401100C9401109C -:1000A0000C9401100C9401100C940110AB107810FA -:1000B0006310BD10E4101711F910FF1014113E1158 -:1000C0003511021138114E10F3102911321175102B -:1000D0006C10BA10B11099106F103010C6101A11B0 -:1000E00023112F119F10CF10AE1048102011ED10CA -:1000F0009010A5109C108410261193103910F01048 -:100100008A10C9106C12B410661054107E107B1047 -:10011000D210A2100E113F108D10B7102D10C0106C -:100120000B111111DB105D10F6104B1072105710EF -:10013000CC10FC103B113310A810C3100511D510C2 -:100140005A102C11EA10451096106010E110691039 -:1001500008114210D810E7103610511041111D112E -:1001600081103C10DE108710D311A0118B11E51106 -:100170000C123F12211227123C1266125D122A1233 -:10018000601276111B1251125A129D119411E21134 -:10019000D911C11197115811EE1142124B12571279 -:1001A000C711F711D611701148121512B811CD11DF -:1001B000C411AC114E12BB1161111812B211F11120 -:1001C0006F12DC118E117C11A611A311FA11CA1144 -:1001D00036126711B511DF115511E81133123912BA -:1001E000031285111E1273119A117F11F41124123A -:1001F00063125B11D011EB112D12FD1182115412FB -:1002000012126D11BE1188110912911130126A116A -:1002100000120F125E11791169124512A9116411B1 -:100220000612AF11B01CD21CBD1DD21CBD1D141D69 -:10023000371DBD1D8C1D9F1D8C208C20BA20BA201F -:10024000FC203821382338235021382347224722E5 -:10025000122338233823262301E001E10118021874 -:1002600002E002E10162026201620262010502052E -:1002700001070207015802580001E001E1011802DC -:100280001802E002E101620262015B025B016102AD -:1002900061015C025C015802580001E001E10118B3 -:1002A000021802E002E1015A025A01620262016090 -:1002B0000260015E025E015802580001E001E101A6 -:1002C00018021802E002E101620262015B025B01B6 -:1002D000610261015B025B015802580001E001E12B -:1002E0000118021802E002E101620262015B025B96 -:1002F00001610261015D025D015802580001E001E7 -:10030000E10118021802E002E101620262015B02EF -:100310005B0161026101060206015802580001E01A -:1003200001E10118021802E002E101620262015BD0 -:10033000025B01040204015D025D015802580001E4 -:10034000E001E10118021802E002E1015A025A013B -:10035000620262015F025F0109020901580258004E -:1003600001E001E10118021802E002E1016202620B -:10037000015B025B0161026101050205015802583F -:100380000001E001E10118021802E002E10162024D -:1003900062015B025B010502050161026101580215 -:1003A000580001E001E10118021802E002E10162D7 -:1003B0000262015B025B016102610160026001583F -:1003C00002580001E001E10118021802E002E10117 -:1003D000620262015B025B01060206015F025F01CD -:1003E0005802580001E001E10118021802E002E1A0 -:1003F0000162026201620262010502050106020653 -:10040000015802580001E001E10118021802E0025F -:10041000E101620262015B025B01040204015C0211 -:100420005C015802580001E001E10118021802E0E5 -:1004300002E1015A025A015A025A01620262016241 -:100440000262015802580001E001E101180218029D -:10045000E002E101620262015B025B01040204014D -:100460005F025F015802580001E001E10118021823 -:1004700002E002E1015A025A015A025A015E025E8A -:1004800001620262015802580001E001E101180214 -:100490001802E002E101620262015B025B010602F6 -:1004A00006015D025D015802580001E001E10118FA -:1004B000021802E002E1015A025A015A025A01628C -:1004C000026201610261015802580001E001E1018C -:1004D00018021802E002E1015A025A0162026201A6 -:1004E0005F025F01620262015802580001E001E10F -:1004F0000118021802E002E1015A025A0162026286 -:10050000015F025F01600260015802580001E001D2 -:10051000E10118021802E002E101620262015B02DD -:100520005B01610261015F025F015802580001E056 -:1005300001E10118021802E002E101620262015BBE -:10054000025B01610261015A025A0158025800011E -:10055000E001E10118021802E002E1015A025A0129 -:1005600062026201600260015F025F01580258008E -:1005700001E001E10118021802E002E101620262F9 -:10058000015B025B01610261015902590158025885 -:100590000001E001E10118021802E002E1015A0243 -:1005A0005A01620262016002600160026001580249 -:1005B000580001E001E10118021802E002E10162C5 -:1005C0000262015B025B01610261010402040158E5 -:1005D00002580001E001E10118021802E002E10105 -:1005E000620262015B025B0105020501060206016F -:1005F0005802580001E001E10118021802E002E18E -:1006000001620262015B025B01050205015C025CA2 -:10061000015802580001E001E10118021802E0024D -:10062000E1015A025A01620262015F025F01610246 -:1006300061015802580001E001E10118021802E0CE -:1006400002E1015A025A015902590161026101593C -:100650000259015802580001E001E1011802180294 -:10066000E002E1015A025A015A025A016202620191 -:100670005D025D015802580001E001E10118021815 -:1006800002E002E10162026201620262010502050A -:10069000015B025B015802580001E001E101180210 -:1006A0001802E002E10162026201620262010502D7 -:1006B0000501080208015802580001E001E1011893 -:1006C000021802E002E101620262016202620105B7 -:1006D000020501590259015802580001E001E101E7 -:1006E00018021802E002E1015A025A015A025A01A4 -:1006F000620262015B025B015802580001E001E105 -:100700000118021802E002E1015A025A0162026273 -:10071000015F025F015D025D015802580001E001C6 -:10072000E10118021802E002E101620262015B02CB -:100730005B01060206015C025C015802580001E000 -:1007400001E10118021802E002E101620262015BAC -:10075000025B01610261015E025E01580258000104 -:10076000E001E10118021802E002E1015A025A0117 -:100770006202620160026001590259015802580088 -:1007800001E001E10118021802E002E101620262E7 -:10079000015B025B01060206016102610158025819 -:1007A0000001E001E10118021802E002E101620229 -:1007B00062015B025B01040204015B025B015802FF -:1007C000580001E001E10118021802E002E1015ABB -:1007D000025A016202620160026001620262015813 -:1007E00002580001E001E10118021802E002E101F3 -:1007F0006202620162026201070207015F025F0199 -:100800005802580001E001E10118021802E002E17B -:10081000015A025A015A025A0162026201600260E0 -:10082000015802580001E001E10118021802E0023B -:10083000E101620262015B025B0161026101090286 -:1008400009015802580001E001E10118021802E014 -:1008500002E1015A025A015A025A01590259010889 -:100860000208015802580001E001E10118021802D3 -:10087000E002E101620262015B025B010602060125 -:100880005E025E015802580001E001E10118021801 -:1008900002E002E101620262015B025B0104020408 -:1008A000015E025E015802580001E001E1011802F8 -:1008B0001802E002E101620262015B025B010502D3 -:1008C0000501590259015802580001E001E10118DF -:1008D000021802E002E1015A025A015A025A015C6E -:1008E000025C015B025B015802580001E001E1017A -:1008F00018021802E002E1015A025A016202620182 -:10090000600260015A025A015802580001E001E1F8 -:100910000118021802E002E101620262015B025B5F -:1009200001050205015F025F015802580001E00164 -:10093000E10118021802E002E101620262015B02B9 -:100940005B0105020501600260015802580001E0E8 -:1009500001E10118021802E002E101620262015B9A -:10096000025B01610261010802080158025800019E -:10097000E001E10118021802E002E10162026201F5 -:100980005B025B01060206015A025A015802580036 -:1009900001E001E10118021802E002E101620262D5 -:1009A000015B025B01040204016202620158025809 -:1009B0000001E001E10118021802E002E1015A021F -:1009C0005A01620262015F025F015F025F01580229 -:1009D000580001E001E10118021802E002E10162A1 -:1009E0000262015B025B0105020501040204015879 -:1009F00002580001E001E10118021802E002E101E1 -:100A0000620262015B025B01050205015D025D019C -:100A10005802580001E001E10118021802E002E169 -:100A200001620262015B025B01050205015E025E7A -:100A3000015802580001E001E10118021802E00229 -:100A4000E101620262015B025B010502050107022E -:100A500007015802580001E001E10118021802E004 -:100A600002E1015A025A01590259015D025D015C1D -:100A7000025C015802580001E001E101180218026D -:100A8000E002E101620262015B025B010502050115 -:100A90005B025B015802580001E001E101180218F5 -:100AA00002E002E1015A025A01590259015D025D58 -:100AB00001610261015802580001E001E1011802E0 -:100AC0001802E002E101620262015B025B010602C0 -:100AD0000601590259015802580001E001E10118CC -:100AE000021802E002E101620262015B025B0106A0 -:100AF0000206015B025B015802580001E001E101BE -:100B000018021802E002E10162026201620262015F -:100B1000090209015F025F015802580001E001E18A -:100B20000118021802E002E101620262015B025B4D -:100B30000161026101070207015802580001E0014A -:100B4000E10118021802E002E1015A025A016202B0 -:100B50006201600260015C025C015802580001E021 -:100B600001E10118021802E002E101620262015B88 -:100B7000025B010402040160026001580258000196 -:100B8000E001E10118021802E002E10162026201E3 -:100B90005B025B010402040161026101580258001A -:100BA00001E001E10118021802E002E101620262C3 -:100BB0000162026201050205015A025A01580258F7 -:100BC0000001E001E10118021802E002E101620205 -:100BD00062015B025B0106020601620262015802C9 -:100BE000580001E001E10118021802E002E1015A97 -:100BF000025A0159025901610261015B025B01580D -:100C000002580001E001E10118021802E002E101CE -:100C10005A025A01620262015F025F015E025E01D6 -:100C20005802580001E001E10118021802E002E157 -:100C3000015A025A0159025901610261015A025ACC -:100C4000015802580001E001E10118021802E00217 -:100C5000E1015A025A01620262015F025F015C0215 -:100C60005C015802580001E001E10118021802E09D -:100C700002E1015A025A01620262016002600161EE -:100C80000261015802580001E001E1011802180256 -:100C9000E002E101620262015B025B010602060101 -:100CA000600260015802580001E001E101180218D9 -:100CB00002E002E1015A025A01590259015D025D46 -:100CC000015D025D015802580001E001E1011802D6 -:100CD0001802E002E101620262015B025B01610253 -:100CE0006101610261015802580001E001E101184F -:100CF000021802E002E1015A025A01620262016036 -:100D00000260015D025D015802580001E001E1014D -:100D100018021802E002E101620262015B025B015B -:100D2000050205015A025A015802580001E001E18A -:100D30000118021802E002E101620262016202622D -:100D40000105020501610261015802580001E0013C -:100D5000E10118021802E002E1015A025A015A02A6 -:100D60005A01620262015C025C015802580001E013 -:100D700001E10118021802E002E101620262015B76 -:100D8000025B010502050108020801580258000132 -:100D9000E001E10118021802E002E1015A025A01E1 -:100DA000590259015D025D015B025B015802580066 -:100DB00001E001E10118021802E002E101620262B1 -:100DC000015B025B0105020501050205015802589D -:100DD0000001E001E10118021802E002E1015A02FB -:100DE0005A01590259015D025D01050205015802CF -:100DF000580001E001E10118021802E002E1015A85 -:100E0000025A0162026201600260015B025B0158EA -:100E100002580001E001E10118021802E002E101BC -:100E2000620262015B025B01040204015902590182 -:100E30005802580001E001E10118021802E002E145 -:100E4000015A025A015902590161026101620262AA -:100E5000015802580001E001E10118021802E00205 -:100E6000E101620262015B025B0105020501090208 -:100E700009015802580001E201570257016202625B -:100E800001620262010502050107020702E2000198 -:100E9000E20157025701620262015B025B016102DB -:100EA00061015C025C02E20001E201570257015A53 -:100EB000025A0162026201600260015E025E02E2A9 -:100EC0000001E20157025701620262015B025B010D -:100ED000610261015B025B02E20001E2015702571D -:100EE00001620262015B025B01610261015D025D00 -:100EF00002E20001E20157025701620262015B0255 -:100F00005B016102610106020602E20001E2015793 -:100F1000025701620262015B025B01040204015D8F -:100F2000025D02E20001E201570257015A025A0132 -:100F3000620262015F025F0109020902E20001E24E -:100F40000157025701620262015B025B01610261AB -:100F50000105020502E20001E201570257016202A7 -:100F600062015B025B010502050161026102E200B0 -:100F700001E20157025701620262015B025B0161FB -:100F800002610160026002E20001E20157025701C2 -:100F9000620262015B025B01060206015F025F0200 -:100FA000E20001E20157025701620262016202623D -:100FB000010502050106020602E20001E2015702F4 -:100FC0005701620262015B025B01040204015C02E0 -:100FD0005C02E20001E201570257015A025A015A2B -:100FE000025A016202620162026202E20001E2014F -:100FF00057025701620262015B025B0104020401B5 -:101000005F025F02E20001E201570257015A025AF1 -:10101000015A025A015E025E0162026202E20001AE -:10102000E20157025701620262015B025B010602A4 -:1010300006015D025D02E20001E201570257015A1A -:10104000025A015A025A016202620161026102E21D -:101050000001E201570257015A025A01620262017D -:101060005F025F0162026202E20001E20157025781 -:10107000015A025A01620262015F025F016002606E -:1010800002E20001E20157025701620262015B02C3 -:101090005B01610261015F025F02E20001E2015750 -:1010A000025701620262015B025B01610261015A47 -:1010B000025A02E20001E201570257015A025A01A4 -:1010C00062026201600260015F025F02E20001E20F -:1010D0000157025701620262015B025B016102611A -:1010E0000159025902E20001E201570257015A0276 -:1010F0005A01620262016002600160026002E20065 -:1011000001E20157025701620262015B025B016169 -:1011100002610104020402E20001E20157025701E8 -:10112000620262015B025B01050205010602060222 -:10113000E20001E20157025701620262015B025BB9 -:1011400001050205015C025C02E20001E2015702B6 -:1011500057015A025A01620262015F025F01610295 -:101160006102E20001E201570257015A025A015995 -:101170000259016102610159025902E20001E201D2 -:10118000570257015A025A015A025A016202620179 -:101190005D025D02E20001E2015702570162026254 -:1011A0000162026201050205015B025B02E20001CD -:1011B000E201570257016202620162026201050206 -:1011C000050108020802E20001E20157025701622C -:1011D000026201620262010502050159025902E23E -:1011E0000001E201570257015A025A015A025A01FC -:1011F000620262015B025B02E20001E201570257F8 -:10120000015A025A01620262015F025F015D025DE2 -:1012100002E20001E20157025701620262015B0231 -:101220005B01060206015C025C02E20001E201577A -:10123000025701620262015B025B01610261015EB1 -:10124000025E02E20001E201570257015A025A010E -:10125000620262016002600159025902E20001E289 -:101260000157025701620262015B025B010602063E -:101270000161026102E20001E201570257016202CC -:1012800062015B025B01040204015B025B02E2009B -:1012900001E201570257015A025A016202620160DB -:1012A00002600162026202E20001E201570257019C -:1012B0006202620162026201070207015F025F02CD -:1012C000E20001E201570257015A025A015A025A3A -:1012D000016202620160026002E20001E201570263 -:1012E0005701620262015B025B0161026101090256 -:1012F0000902E20001E201570257015A025A015A5B -:10130000025A015902590108020802E20001E201F1 -:1013100057025701620262015B025B01060206018D -:101320005E025E02E20001E20157025701620262C0 -:10133000015B025B01040204015E025E02E2000145 -:10134000E20157025701620262015B025B01050282 -:10135000050159025902E20001E201570257015A00 -:10136000025A015A025A015C025C015B025B02E212 -:101370000001E201570257015A025A01620262015A -:10138000600260015A025A02E20001E2015702576C -:1013900001620262015B025B01050205015F025FFF -:1013A00002E20001E20157025701620262015B02A0 -:1013B0005B010502050160026002E20001E20157E3 -:1013C000025701620262015B025B01610261010876 -:1013D000020802E20001E2015702570162026201C3 -:1013E0005B025B01060206015A025A02E20001E2B8 -:1013F0000157025701620262015B025B01040204B1 -:101400000162026202E20001E201570257015A0240 -:101410005A01620262015F025F015F025F02E20045 -:1014200001E20157025701620262015B025B0105A2 -:1014300002050104020402E20001E2015702570121 -:10144000620262015B025B01050205015D025D0251 -:10145000E20001E20157025701620262015B025B96 -:1014600001050205015E025E02E20001E20157028F -:101470005701620262015B025B010502050107027E -:101480000702E20001E201570257015A025A0159CC -:101490000259015D025D015C025C02E20001E201B1 -:1014A00057025701620262015B025B0105020501FE -:1014B0005B025B02E20001E201570257015A025A45 -:1014C00001590259015D025D0161026102E2000100 -:1014D000E20157025701620262015B025B010602F0 -:1014E000060159025902E20001E201570257016266 -:1014F0000262015B025B01060206015B025B02E223 -:101500000001E201570257016202620162026201B8 -:10151000090209015F025F02E20001E2015702577E -:1015200001620262015B025B016102610107020765 -:1015300002E20001E201570257015A025A01620217 -:101540006201600260015C025C02E20001E201579C -:10155000025701620262015B025B01040204016046 -:10156000026002E20001E2015702570162026201D9 -:101570005B025B010402040161026102E20001E21C -:10158000015702570162026201620262010502050F -:10159000015A025A02E20001E201570257016202B7 -:1015A00062015B025B010602060162026202E20066 -:1015B00001E201570257015A025A015902590161C9 -:1015C0000261015B025B02E20001E2015702570186 -:1015D0005A025A01620262015F025F015E025E020C -:1015E000E20001E201570257015A025A0159025919 -:1015F00001610261015A025A02E20001E20157024E -:1016000057015A025A01620262015F025F015C02E5 -:101610005C02E20001E201570257015A025A0162DC -:101620000262016002600161026102E20001E20106 -:1016300057025701620262015B025B01060206016A -:1016400060026002E20001E201570257015A025AA9 -:1016500001590259015D025D015D025D02E2000176 -:10166000E20157025701620262015B025B01610203 -:10167000610161026102E20001E201570257015A71 -:10168000025A0162026201600260015D025D02E2D3 -:101690000001E20157025701620262015B025B0135 -:1016A000050205015A025A02E20001E201570257FF -:1016B00001620262016202620105020501610261CA -:1016C00002E20001E201570257015A025A015A028E -:1016D0005A01620262015C025C02E20001E201570F -:1016E000025701620262015B025B0105020501080B -:1016F000020802E20001E201570257015A025A01B0 -:10170000590259015D025D015B025B02E20001E2E8 -:101710000157025701620262015B025B010502058B -:101720000105020502E20001E201570257015A02D7 -:101730005A01590259015D025D0105020502E200EC -:1017400001E201570257015A025A01620262016026 -:101750000260015B025B02E20001E20157025701F5 -:10176000620262015B025B01040204015902590238 -:10177000E20001E201570257015A025A0159025987 -:10178000016102610162026202E20001E2015702AC -:101790005701620262015B025B0105020501090259 -:1017A0000902E200055204520152035201000000F6 -:1017B0001E001B0018002F00010029001F0013004D -:1017C0000C003300E300E1002000090004003400B5 -:1017D000E2002A0021001A0008000600E00065006F -:1017E00022000A0012001900000049002E004A00E1 -:1017F00000004D00000002542E02025400002B0095 -:1018000000005E0023000B001600050000004C00E5 -:1018100024000D0011001000E2004B0025000E0016 -:101820001500360001002C0026000F0017003700BD -:1018300050002800270014000700520051004E00FD -:1018400035001C002D001D004F00000001000100AC -:1018500001000100010000001E02300238020100F8 -:10186000010001001F026414380030000100010073 -:101870002002240223022702010001000100241497 -:1018800025140100010001000100271426140100A5 -:101890000000010001000100000001000000010043 -:1018A0000100010000000100000001000100310002 -:1018B00021022D1400000100010064002502220213 -:1018C000010001000100640226023602010001004D -:1018D00001000100301437023830010035021F02C8 -:1018E0003102553002300100010001002D020100DB -:1018F0003D30000001000100010001000100000076 -:101900003A00010001000100010001003B0001005C -:1019100001000100010001003C0001000100010084 -:10192000010001003D000100010001000100010073 -:101930003E00010001000100000001004400010020 -:1019400000000100000001004500010000005300FC -:10195000000001003F000100010001000000010043 -:1019600040005F005C00590062000100410060001F -:101970005D005A0085000100420061005E005B00CE -:101980006300010043005500560057005800010055 -:101990006700540056005700580000000100010085 -:1019A00001000100010000004D30393001005B30C2 -:1019B00001000100513058303C303B300100010043 -:1019C0005030013014145D30010001004A305930AC -:1019D00008145C30010001004930573004300030F9 -:1019E00000000100053001000000010000000100BE -:1019F0000100010000000100000001004F305A30DA -:101A000037301E02000001004E3001004B30010053 -:101A100001000100483056305430533001000100BD -:101A20004C30010003303A30010001005230010017 -:101A3000010001000100010001000100010001009E -:101A40000100000001000100010001000100000090 -:101A500042302030343001000100010046302E3089 -:101A6000263033300100010045302D301E3001009A -:101A70000100010040302B30223001000100010044 -:101A80003F3025302C300100000001000100010032 -:101A90000000010000000100010001000000010041 -:101AA000000001004430233031301F3000000100BD -:101AB000433035302A302930010001003E302730D4 -:101AC0003030010001000100413028303230010087 -:101AD0000100010047300100213001000100010038 -:101AE0000100363024302F300100000001000100D9 -:101AF0000100010001000000010008301B3001005E -:101B000001000100010015300D301A300100010004 -:101B10000100143006300100010001000100123004 -:101B20000A3001000100010001000C3013300100F7 -:101B300000000100010001000000010000000100A0 -:101B400001000100000001000000010001000B3055 -:101B5000183007300000010001001C301130103037 -:101B60000100010001000E301730010001000100EA -:101B700001000F30193001000100010001000100D7 -:101B8000093001000100010001001D300100163084 -:101B9000010000000100010001000100010000003F -:101BA000010001000100010001000100010001002D -:101BB000010001000100010001000100010001001D -:101BC000010001000100010001000100010001000D -:101BD00001000100010001000000010001000100FE -:101BE00000000100000001000100010000000100F0 -:101BF00000000100010001000100010000000100DF -:101C000001000100010001000100010001000100CC -:101C100001000100010001000100010001000100BC -:101C200001000100010001000100010001000100AC -:101C3000010001000100010001000000010001009D -:101C4000010001000100000001000100010001008D -:101C5000010001000100010001000100010001007C -:101C6000010001000100010001000100010001006C -:101C7000010001000100010001000100010001005C -:101C8000000001000100010000000100000001004F -:101C9000010001000000010000000100010001003E -:101CA000010001000000010001000100010001002D -:101CB000010001000100010001000100010001001C -:101CC000010001000100010001000100010001000C -:101CD00001000100010001000100010001000100FC -:101CE00001000000010001000100010001000000EE -:101CF00001000100010001000100010001000100DC -:101D000001000100010001000100010001000100CB -:101D100001000100010001000100010001000100BB -:101D200001000100010001000000010001000100AC -:101D3000000001000000010001000100000001009E -:101D4000000001000100010001000100000001008D -:101D5000010001000100010001000100010001007B -:101D6000010001000100010001000100010001006B -:101D7000010001000100010001000100010001005B -:101D800001000100010001000100000016034500F0 -:101D9000720067006F0044006F007800200045006B -:101DA0005A00000016034500720067006F004400EF -:101DB0006F007800200045005A0000000403090469 -:101DC00009026D00040100A0FA09040000010301EA -:101DD0000100092111010001223F000705810308CC -:101DE000000A090401000103010200092111010098 -:101DF00001224D000705820308000A0904020001C0 -:101E000003000000092111010001223600070583AB -:101E10000308000A0904030001030000000921115E -:101E2000010001223900070584031000011201108E -:101E30000100000008EDFE0713010001020001058A -:101E4000010906A101050719E029E71500250195FB -:101E5000087501810205081901290595057501918B -:101E600002950175039101050719002977150025D1 -:101E700001957875018102C005010980A1018502E3 -:101E800016010026B7001A01002AB7007510950147 -:101E90008100C0050C0901A1018503160100269CE3 -:101EA000021A01002A9C02751095018100C00501EB -:101EB0000902A1010901A10005091901290515005F -:101EC00025019505750181029501750381010501C3 -:101ED000093009311581257F950275088106093879 -:101EE0001581257F950175088106050C0A380215B4 -:101EF00081257F950175088106C0C005010906A1ED -:101F000001050719E029E7150025019508750181EC -:101F100002950175088101050819012905950575C6 -:101F20000191029501750391010507190029FF151B -:101F30000025FF950675088100C000000000000024 -:101F40000000000000010204060A0F17202C3A4A84 -:101F50005D71879DB3C7DAE9F5FCFFFCF5E9DAC7E7 -:101F6000B39D87715D4A3A2C20170F0A06040201BF -:101F70000000000000000000000011241FBECFEF91 -:101F8000DAE0DEBFCDBF04B603FE24C08091F001CD -:101F90009091F101A091F201B091F3018730904B43 -:101FA000A740B04BB9F41092F0011092F1011092D9 -:101FB000F2011092F30114BE84B7877F84BF88E1D9 -:101FC0000FB6F89480936000109260000FBEE0E0BE -:101FD000FFE3099511E0A0E0B1E0E0E3F5E602C01F -:101FE00005900D92A433B107D9F711E0A4E3B1E055 -:101FF00001C01D92A03FB107E1F70E94BF180C94E9 -:1020000096320C940000FC018281811103C080E0B3 -:1020100090E008956E3561F42091340130913501DE -:102020002F5F3F4F217033273093350120933401C8 -:1020300020913401309135012115310509F024C179 -:10204000862F90E08E35910528F4FC01EA5AFF4F67 -:102050000C944B3280E090E0089582E797E1089578 -:1020600089E597E1089580E497E1089587E297E193 -:1020700008958EE097E1089585EF96E108958CED3F -:1020800096E1089583EC96E108958AEA96E1089531 -:1020900081E996E1089588E796E108958FE596E154 -:1020A000089586E496E108958DE296E1089584E12D -:1020B00096E108958BEF95E1089582EE95E10895FC -:1020C00089EC95E1089580EB95E1089587E995E124 -:1020D00008958EE795E1089585E695E108958CE4ED -:1020E00095E1089583E395E108958AE195E10895E6 -:1020F00081E095E1089588EE94E108958FEC94E1F4 -:10210000089586EB94E108958DE994E1089584E8BB -:1021100094E108958BE694E1089582E594E10895B1 -:1021200089E394E1089580E294E1089587E094E1E1 -:1021300008958EEE93E1089585ED93E108958CEB7B -:1021400093E1089583EA93E108958AE893E108957D -:1021500081E793E1089588E593E108958FE393E1A2 -:10216000089586E293E108958DE093E1089584EF68 -:1021700092E108958BED92E1089582EC92E1089549 -:1021800089EA92E1089580E992E1089587E792E172 -:1021900008958EE592E1089585E492E108958CE238 -:1021A00092E1089583E192E108958AEF91E1089523 -:1021B00081EE91E1089588EC91E108958FEA91E133 -:1021C000089586E991E108958DE791E1089584E607 -:1021D00091E108958BE491E1089582E391E10895FE -:1021E00089E191E1089580E091E1089587EE90E121 -:1021F00008958EEC90E1089585EB90E108958CE9C7 -:1022000090E1089583E890E108958AE690E10895C9 -:1022100081E590E1089588E390E108958FE190E1F0 -:10222000089586E090E108958DEE9FE0089584ED95 -:102230009FE008958BEB9FE0089582EA9FE0089568 -:1022400089E89FE0089580E79FE0089587E59FE093 -:1022500008958EE39FE0089585E29FE008958CE065 -:102260009FE0089583EF9EE008958AED9EE0089533 -:1022700081EC9EE0089588EA9EE008958FE89EE054 -:10228000089586E79EE008952130310509F0BFCE1C -:10229000862F90E08E35910528F4FC01EC54FF4F19 -:1022A0000C944B3280E090E0089584E39EE0089522 -:1022B00083E19EE0089582EF9DE0089581ED9DE029 -:1022C000089580EB9DE008958FE89DE008958EE6E7 -:1022D0009DE008958DE49DE008958CE29DE00895D1 -:1022E0008BE09DE008958AEE9CE0089589EC9CE0E7 -:1022F000089588EA9CE0089587E89CE0089586E6C2 -:102300009CE0089585E49CE0089584E29CE00895B3 -:1023100083E09CE0089582EE9BE0089581EC9BE0D1 -:10232000089580EA9BE008958FE79BE008958EE58D -:102330009BE008958DE39BE008958CE19BE0089578 -:102340008BEF9AE008958AED9AE0089589EB9AE080 -:10235000089588E99AE0089587E79AE0089586E568 -:102360009AE0089585E39AE0089584E19AE008955B -:1023700083EF99E0089582ED99E0089581EB99E06B -:10238000089580E999E008958FE699E008958EE434 -:1023900099E008958DE299E008958CE099E0089520 -:1023A0008BEE98E008958AEC98E0089589EA98E029 -:1023B000089588E898E0089587E698E0089586E40F -:1023C00098E0089585E298E0089584E098E0089503 -:1023D00083EE97E0089582EC97E0089581EA97E014 -:1023E000089580E897E008958FE597E008958EE3DB -:1023F00097E008958DE197E008958CEF96E00895B9 -:102400008BED96E008958AEB96E0089589E996E0D1 -:10241000089588E796E0089587E596E0089586E3B5 -:1024200096E0089585E196E0089584EF95E008959B -:1024300083ED95E0089582EB95E0089581E995E0BC -:10244000089580E795E008958FE495E008958EE281 -:1024500095E008958DE095E008958CEE94E0089560 -:102460008BEC94E008958AEA94E0089589E894E07A -:10247000089588E694E0089587E494E0089586E25C -:1024800094E0089585E094E0089584EE93E0089543 -:1024900083EC93E0089582EA93E0089581E893E065 -:1024A000089580E693E008958FE393E008958EE128 -:1024B00093E008958DEF92E008958CED92E00895F9 -:1024C0008BEB92E008958AE992E0089589E792E023 -:1024D000089588E592E008958BE897E1089585E5F1 -:1024E0009EE0089508956091B3017091B4018091C8 -:1024F000B5019091B6010E94A42956985E9825983E -:102500002D9826982E9827982F988330A9F028F494 -:10251000813051F0823069F012C0843041F0853052 -:1025200071F4259A2D9A08C0259A2D9A0895259A16 -:102530002D9A269A2E9A0895279A2F9A089556989A -:102540005E9808950C94731256985E9825982D986D -:1025500026982E9827982F988FEF90E090938900D7 -:102560008093880090938B0080938A0090938D00D5 -:1025700080938C00259A2D9A2FEF80E792E02150CE -:1025800080409040E1F700C00000269A2E9A2FEF7D -:1025900080E792E0215080409040E1F700C00000C9 -:1025A000279A2F9A2FEF80E792E0215080409040A9 -:1025B000E1F700C0000025982D982FEF80E792E00A -:1025C000215080409040E1F700C0000026982E98EE -:1025D0002FEF80E792E0215080409040E1F700C06B -:1025E000000027982F9856985E9825982D98269841 -:1025F0002E9827982F98089589EA8093800089E083 -:102600008093810024982C983F988AB18F748AB95E -:102610006E98479A8BB1806B8BB9769A0E94A41200 -:102620000C94721280E28093000180913601811136 -:102630000EC00E94611381E0809336012FEF83ED7D -:1026400090E3215080409040E1F700C0000080E41A -:102650000E9467138093000181112EC00E94911384 -:1026600080930001811128C00E9491138093000182 -:10267000811122C08FE30E94911380930001811188 -:102680001BC00E94891380E40E946713809300019D -:10269000811112C08CE00E9491138093000181117E -:1026A0000BC00E94911380930001811105C08FE33C -:1026B0000E949113809300010E9489138091000170 -:1026C00008951092B9008AE08093B800089594EAC2 -:1026D0009093BC009091BC0097FFFCCF9091B90003 -:1026E000987F983021F0903111F081E00895809327 -:1026F000BB0084E88093BC008091BC0087FFFCCFC6 -:102700008091B900887F883111F0803471F780E0C2 -:10271000089584E98093BC008091BC0084FDFCCFC7 -:1027200008958093BB0084E88093BC008091BC0036 -:1027300087FFFCCF9091B900987F81E0983209F42F -:1027400080E0089584E88093BC008091BC0087FFFE -:10275000FCCF8091BB00089580910001811115C0CC -:1027600080E40E9467138093000181110CC082E114 -:102770000E94911380930001811105C08FEF0E9488 -:102780009113809300010E94891384B1807F84B9E2 -:1027900085B1807F85B98AB1837F8AB98BB1837F08 -:1027A0008BB93E98469808950E94121380930001B9 -:1027B0000E94AC1380B38C7080BB81B3836F81BBEC -:1027C000E6E4F1E0A8E3B1E011921D9281E0E43586 -:1027D000F807D1F70C94FC12BF92CF92DF92EF92E0 -:1027E000FF920F931F93CF93DF9380910001882373 -:1027F00079F0809137018F5F80933701811108C094 -:102800000E94121380930001811102C00E94A41241 -:1028100008E311E0C0E0D0E0DD24D39482E0C82ECC -:10282000EE24E394F12CC73000F580910001811172 -:1028300062C080E40E94671380930001811112C07E -:1028400082E10E9491138093000181110BC0C701A6 -:102850000C2E01C0880F0A94EAF780950E9491130C -:10286000809300010E94891346C0CA30A1F028F469 -:10287000C83059F0C93061F005C0CC3089F070F033 -:10288000CD3089F0209A289810C0219A29980DC03F -:10289000229A2A980AC0239A2B9807C0529A01C0FC -:1028A000539A5B9802C03E9A4698E0EAEA95F1F79F -:1028B0008FB179995AC092E081708D25892B7C9BCC -:1028C00002C090E001C094E0892B7D9B02C090E0A3 -:1028D00001C098E0892B7E9B02C090E001C090E18E -:1028E000892B9FB19095991F9927991F9295990FC0 -:1028F000907E892B0FC08091000181114BC080E434 -:102900000E94671380930001882389F1B12C0E94F3 -:1029100089138B2DF8019081981719F08083C0924C -:1029200001010E94AC1321960F5F1F4FCE30D105DD -:1029300009F079CF80910101882371F18150809352 -:102940000101882339F08FE99FE00197F1F700C07A -:10295000000022C0A6E4B1E0E8E3F1E081918D93AC -:1029600091E0E634F907D1F717C090E0A5CF83E1F5 -:102970000E949113809300018111C8CF81E40E94CD -:102980006713809300018111C1CF0E94A213B82E5A -:10299000B094BDCF80E0BECF0E94A21281E0DF9153 -:1029A000CF911F910F91FF90EF90DF90CF90BF904C -:1029B0000895E82FF0E0EA5BFE4F808108950895C6 -:1029C0008B3B910578F4883A910540F5853A91055D -:1029D000D0F48430910508F0B1C08130910509F43C -:1029E000ADC06BC0803E910508F467C0883E91057C -:1029F00008F4A4C09C01205F31092031310508F0A2 -:102A00005CC090650895853A910509F459C0863AED -:102A1000910509F458C083E890E40895883A910537 -:102A200009F454C0893A910509F453C08A3A9105D2 -:102A300009F452C08B3A910509F451C08C3A9105C2 -:102A400009F450C08D3A910509F44FC0803B9105BF -:102A500009F44EC08E3A910509F44DC08F3A9105A4 -:102A600009F44CC0813B910509F44BC0823B9105B0 -:102A700009F44AC0833B910509F449C0843B9105A0 -:102A800009F448C0853B910509F447C0863B910590 -:102A900009F446C0873B910509F445C0883B910580 -:102AA00009F444C0893B910509F443C08A3B910570 -:102AB00009F042C08AE296E4089580E090E008952B -:102AC00081E890E4089582E890E4089582EE94E429 -:102AD000089589EE94E408958AEE94E4089585EBD0 -:102AE00094E4089586EB94E4089587EB94E40895C4 -:102AF0008CEC94E408958DEC94E4089583E895E4D7 -:102B000008958AE895E4089582E995E4089584E9B2 -:102B100095E4089581E296E4089583E296E40895A9 -:102B200084E296E4089585E296E4089586E296E4C8 -:102B3000089587E296E4089580E094E40895089566 -:102B400096E0799FF001112494E5899FE00DF11D35 -:102B50001124E60FF11DEE0FFF1FEC55F84E859185 -:102B600094910895880F991F8C5D994EFC01859171 -:102B700094910895880F991F8C55984EFC0185916A -:102B80009491089526E0729FF001112444E5849FFA -:102B9000E00DF11D1124E60FF11DEE0FFF1FEC55A6 -:102BA000F84E25913491C9019A9581159F4110F4F1 -:102BB000C9010895C90190528115904128F4C901B5 -:102BC0009F700E94BA150895C901905381159041D4 -:102BD00020F4C9019927906C0895211580E53807E4 -:102BE00069F40E9459239FEF24E34CE09150204068 -:102BF0004040E1F700C000000C949D2A213080E5A0 -:102C0000380731F48091CE0181608093CE01089520 -:102C1000C90190558115904108F050C0832F992724 -:102C20008F70992781309105D9F4A90143705527F8 -:102C300002C0880F991F4A95E2F79C68A90164E0D9 -:102C4000440F551F6A95E1F744275370842B952B49 -:102C500073E0220F331F7A95E1F7207633271DC0EA -:102C60008230910529F4922F8827816F906A089508 -:102C700083309105A9F4A9014370552781E090E0C4 -:102C800002C0880F991F4A95E2F79C6843E0220F23 -:102C9000331F4A95E1F7207E3770822B932B0895DE -:102CA0000497F1F4A9014370552781E090E002C038 -:102CB000880F991F4A95E2F79A68E8CFC9019057A3 -:102CC0008115904120F4C9019F7090620895C90157 -:102CD00090588115904120F4C9019F70906A089521 -:102CE000203E3105E0F4203C310558F52133310513 -:102CF00009F470C048F42932310509F464C02A325D -:102D0000310509F46EC074C029333105F1F0223861 -:102D10003105D9F02533310509F44EC069C0233E91 -:102D2000310589F138F4203E3105C1F0223E3105EC -:102D3000E1F05EC0263E310569F1273E3105A9F17B -:102D400057C0C9010E94B21508958091E10180FD2C -:102D500002C081FF4DC080EE90E04BC08091E10148 -:102D600080FFF9CF89E390E044C08091E10182FFC8 -:102D70000EC08091E10184FF03C080E090E039C083 -:102D800083EE90E036C08091E10182FFF2CF82EEC7 -:102D900090E02FC08091E10183FF0BC08091E101A1 -:102DA00084FDEBCF87EE90E024C08091E10183FFAA -:102DB000F5CF86EE90E01DC08091E10185FF07C050 -:102DC00089E290E016C08091E10185FFF9CF85E3AB -:102DD00090E00FC08091E10186FF07C08AE290E099 -:102DE00008C08091E10186FFF9CF81E390E001C046 -:102DF000C9010E94E014089508950C94FC16809176 -:102E000064010895CF93DF9300D01F92CDB7DEB752 -:102E10002091E701243019F523E029839B838A83DD -:102E20002093E9008FEF9091E800815095FD06C056 -:102E300095ED9A95F1F700008111F5CF8091E800AA -:102E400085FF0DC040E050E063E070E0CE010196E8 -:102E50000E946C198091E8008E778093E8000F90B3 -:102E60000F900F90DF91CF910895CF93DF9300D013 -:102E70001F92CDB7DEB72091E701243021F522E083 -:102E800029839B838A8383E08093E9008FEF90916D -:102E9000E800815095FD06C095ED9A95F1F7000088 -:102EA0008111F5CF8091E80085FF0DC040E050E032 -:102EB00063E070E0CE0101960E946C198091E800F9 -:102EC0008E778093E8000F900F900F90DF91CF9155 -:102ED00008952091E7012430F1F422E02093E900E5 -:102EE0002FEF3091E800215035FD06C035ED3A95C1 -:102EF000F1F700002111F5CF2091E80025FF0BC06C -:102F000040E050E065E070E00E946C198091E800BC -:102F10008E778093E8000895CF93DF93EC01809142 -:102F2000E701843009F046C090910C019923D9F053 -:102F300090910D019923B9F08093E9008FEF909162 -:102F4000E800815095FD06C095E19A95F1F70000E3 -:102F50008111F5CF8091E80085FF2CC040E050E062 -:102F600060E170E017C081E08093E9008FEF9091FD -:102F7000E800815095FD06C095ED9A95F1F70000A7 -:102F80008111F5CF8091E80085FF14C040E050E04A -:102F900068E070E0CE010E946C198091E8008E77A5 -:102FA0008093E80080E1FE01A4E5B1E001900D927C -:102FB0008A95E1F7DF91CF9108958091E601811123 -:102FC00009C00E94FE1A0E945B1B8091E20084608F -:102FD0008093E20008951092E601089508950C94FC -:102FE000C3300E94342A0E94C9300E94F81D0C94FC -:102FF000FD1642E061EC81E00E94781A42E061EC4B -:1030000082E00E94781A42E061EC83E00E94781A24 -:1030100042E161EC84E00C94781A8091E9018330FC -:1030200009F455C030F4813071F0823009F48EC05B -:1030300008958A3009F47AC08B3009F460C0893071 -:1030400009F09CC020C08091E801813A09F096C047 -:103050008091E800877F8093E8008091EC01909157 -:10306000ED01892B21F060E080E090E003C060E199 -:1030700084E591E070E00E94B5198091E8008B77BB -:103080008093E80008958091E801813209F076C0CC -:103090008091EC019091ED01009719F0039709F0F0 -:1030A0006DC08091E800877F8093E8008091E80000 -:1030B00082FD05C08091E7018111F8CF5FC080914A -:1030C000F100809364018091E8008B7753C0809178 -:1030D000E801813A09F052C08091EC019091ED0134 -:1030E000892B09F04BC08091E800877F8093E8002E -:1030F0008091E80080FFFCCF80910C0136C0809168 -:10310000E8018132D9F58091EC019091ED01892B94 -:10311000A9F58091E800877F8093E8000E94AD1AAE -:103120008091EA0180930C010C9459238091E8016D -:10313000813221F58091E800877F8093E8000E942A -:10314000AD1A8091EB018093650108958091E801AB -:10315000813AA1F48091E800877F8093E800809114 -:10316000E80080FFFCCF809165018093F1008091A1 -:10317000E8008E778093E8000C94AD1A089584B728 -:10318000877F84BF88E10FB6F89480936000109227 -:1031900060000FBE90E080E80FB6F8948093610065 -:1031A000909361000FBE0E94471E0E94FE1A0E946B -:1031B0005B1B8091E20084608093E20078940E941F -:1031C000D61D0E94491E82E091E00E94F31D0E94DC -:1031D000B1308091E701853069F40E94F729809130 -:1031E000E5018823B1F30E941F2A882391F30E94EE -:1031F0005619EFCF0E944F1EECCF292F33272330D3 -:103200003105A9F06CF42130310509F442C02230B7 -:10321000310509F043C08DE690E020EC3DE142C06D -:1032200021323105C9F02232310519F137C0992711 -:103230008130910541F08230910541F0892B71F583 -:10324000ECEBFDE105C0E4EAFDE102C0ECE8FDE1E4 -:10325000849190E09F0126C0643000F5E62FF0E0F5 -:10326000EE0FFF1FEE5DFE4F2081318189E090E07F -:1032700019C0643098F4E62FF0E0DF01AA0FBB1FFD -:10328000A65EBE4F2D913C91EA5EFE4F808190E09C -:1032900009C082E190E02DE23EE104C080E090E0D0 -:1032A00020E030E0FA0131832083089580E189BD78 -:1032B00082E189BD09B400FEFDCF8091D8008F7DE9 -:1032C0008093D8008091E00082608093E00080913C -:1032D000E00081FDFCCF0895CF92DF92EF92FF9244 -:1032E0000F931F93CF93DF937C018B01EA010E9420 -:1032F000CE1A811131C0209731F088819981081B45 -:10330000190BE80EF91EC12CD12C0115110519F16C -:103310008091E80085FD14C08091E8008E7780934D -:10332000E800209741F0888199818C0D9D1D99833B -:10333000888385E011C00E94CE1A882331F30CC027 -:10334000F70181917F018093F10001501109FFEF96 -:10335000CF1ADF0ADACF80E0DF91CF911F910F9172 -:10336000FF90EF90DF90CF9008952091EE01309183 -:10337000EF012617370748F06115710539F42091E0 -:10338000E8002E772093E80001C0B901FC0120E09D -:1033900061157105B9F18091E701882309F440C0F6 -:1033A000853009F43FC08091E80083FD3DC08091E5 -:1033B000E80082FF06C08091E80082FF26C080E01E -:1033C00008958091E80080FFE3CF2091F300809181 -:1033D000F20090E0922B6115710551F08830910553 -:1033E00038F421912093F100615071090196F3CFD7 -:1033F00021E0089709F020E08091E8008E77809323 -:10340000E800C6CF2111C7CFD6CF8091E70188232E -:1034100039F0853039F08091E80083FFCCCF04C0CB -:1034200082E0089583E0089581E008952091EE01FF -:103430003091EF012617370748F06115710539F40F -:103440002091E8002E772093E80001C0B901FC012B -:1034500020E061157105C1F18091E701882309F42D -:1034600041C0853009F440C08091E80083FD3EC032 -:103470008091E80082FF06C08091E80082FF27C0AB -:1034800080E008958091E80080FFE3CF2091F30071 -:103490008091F20090E0922B6115710559F088300F -:1034A000910540F424912093F10031966150710907 -:1034B0000196F2CF21E0089709F020E08091E80022 -:1034C0008E778093E800C5CF2111C6CFD5CF8091EC -:1034D000E701882339F0853039F08091E80083FFD7 -:1034E000CBCF04C082E0089583E0089581E0089581 -:1034F000982F973058F59093E900981739F070910C -:10350000EC002091ED005091F00003C0242F762FA5 -:1035100050E021FF19C03091EB003E7F3093EB006B -:103520003091ED003D7F3093ED003091EB00316044 -:103530003093EB007093EC002093ED005093F0007B -:103540002091EE0027FF07C09F5FD3CF8F7080933D -:10355000E90081E0089580E008958091E80187FD09 -:1035600005C08091E80080FF0EC012C08091E80085 -:1035700082FD05C08091E7018111F8CF0895809107 -:10358000E8008B7708C08091E7018111EACF0895A8 -:103590008091E8008E778093E80008958091E400A0 -:1035A0009091E50045E62091EC0020FF21C020919C -:1035B000E80020FD21C02091E701222389F0253079 -:1035C00089F02091EB0025FD0FC02091E40030919F -:1035D000E5002817390739F3415041F0C901E3CF1D -:1035E00082E0089583E0089581E0089584E00895DD -:1035F0002091E80022FFDFCF80E008950E946C1B3D -:103600000E94741BE0EEF0E0808181608083E8ED31 -:10361000F0E080818F77808319BCA7EDB0E08C91BA -:103620008E7F8C9380818F7E80831092E601089537 -:103630000F931F93CF93DF930E946C1B0E94741B08 -:10364000C8EDD0E088818F778883888180688883FF -:1036500088818F7D888319BC1092E7011092E30165 -:103660001092E5011092E40100EE10E0F801808173 -:103670008B7F808388818160888342E060E080E086 -:103680000E94781AE1EEF0E080818E7F8083E2EE86 -:10369000F0E0808181608083808188608083F80190 -:1036A00080818E7F8083888180618883DF91CF9144 -:1036B0001F910F910895E8EDF0E080818F7E808367 -:1036C000E7EDF0E080818160808384E082BF81E06B -:1036D0008093E6010C94181BE8EDF0E080818E7F6A -:1036E00080831092E20008951092DA001092E100B7 -:1036F00008951F920F920FB60F9211242F933F93AC -:103700004F935F936F937F938F939F93AF93BF93E9 -:10371000EF93FF938091E10082FF0BC08091E20064 -:1037200082FF07C08091E1008B7F8093E1000E94BF -:10373000D51D8091DA0080FF1FC08091D80080FFE6 -:103740001BC08091DA008E7F8093DA008091D900CF -:1037500080FF0DC080E189BD82E189BD09B400FE12 -:10376000FDCF81E08093E7010E94DD1705C019BC01 -:103770001092E7010E94EB178091E10080FF19C0D1 -:103780008091E20080FF15C08091E2008E7F8093DF -:10379000E2008091E20080618093E2008091D80095 -:1037A00080628093D80019BC85E08093E7010E9475 -:1037B000EF178091E10084FF30C08091E20084FF28 -:1037C0002CC080E189BD82E189BD09B400FEFDCF36 -:1037D0008091D8008F7D8093D8008091E1008F7E0A -:1037E0008093E1008091E2008F7E8093E2008091DF -:1037F000E20081608093E2008091E301882311F070 -:1038000084E007C08091E30087FF02C083E001C02D -:1038100081E08093E7010E94F1178091E10083FF2E -:1038200029C08091E20083FF25C08091E100877F5D -:103830008093E10082E08093E7011092E3018091A0 -:10384000E1008E7F8093E1008091E2008E7F809383 -:10385000E2008091E20080618093E20042E060E05B -:1038600080E00E94781A8091F00088608093F000D8 -:103870000E94EE17FF91EF91BF91AF919F918F91B1 -:103880007F916F915F914F913F912F910F900FBE5C -:103890000F901F9018951F920F920FB60F92112440 -:1038A0002F933F934F935F936F937F938F939F9348 -:1038B000AF93BF93CF93EF93FF93C091E900CF7085 -:1038C0008091EC001092E9008091F000877F809356 -:1038D000F00078940E94871C1092E9008091F0001B -:1038E00088608093F000C093E900FF91EF91CF9141 -:1038F000BF91AF919F918F917F916F915F914F9108 -:103900003F912F910F900FBE0F901F9018951F930E -:10391000CF93DF93CDB7DEB7AA970FB6F894DEBF8B -:103920000FBECDBFE8EEF1E08091F100819321E080 -:10393000E03FF207C9F70E940D188091E80083FF6D -:103940001CC12091E8013091E901832F90E08A3079 -:10395000910508F012C1FC01EE5EFE4F0C944B3253 -:10396000203881F0223809F008C18091EC018F7075 -:103970008093E9008091EB0085FB882780F9109205 -:10398000E90006C08091E4019091E5019111826007 -:103990009091E800977F9093E8008093F100109257 -:1039A000F100C5C0822F8D7F09F0E7C0222319F0F6 -:1039B000223061F0E2C08091EA01813009F0DDC07F -:1039C000333009F080E08093E50128C08091EA015E -:1039D000811124C02091EC012F7009F4CEC02093F6 -:1039E000E9008091EB0080FF19C08091EB0033303B -:1039F00011F4806211C080618093EB0081E090E05F -:103A0000022E01C0880F0A94EAF78093EA00109210 -:103A1000EA008091EB0088608093EB001092E9004F -:103A20008091E800877F86C02111A7C01091EA012C -:103A30001F778091E3008078812B8093E300809151 -:103A4000E800877F8093E8000E94AD1A8091E8002B -:103A500080FFFCCF8091E30080688093E300112316 -:103A600011F083E001C082E08093E70186C0205816 -:103A7000223008F082C08091EA019091EB018C3DE8 -:103A800023E0920779F583E08A838AE289834FB73E -:103A9000F894DE01139620E03EE051E2E32FF0E0DF -:103AA00050935700E49120FF03C0E295EF703F5F11 -:103AB000EF708E2F90E0EA3010F0C79601C0C096EC -:103AC0008D939D932F5F243149F74FBF8091E8007C -:103AD000877F8093E8006AE270E0CE0101960E9441 -:103AE000B51914C0AE014F5F5F4F6091EC010E94A9 -:103AF000FD18009709F441C02091E800277F20932A -:103B0000E800BC0189819A810E94161A8091E80020 -:103B10008B778093E80031C0203879F58091E800F8 -:103B2000877F8093E8008091E3018093F10080918A -:103B3000E8008E778093E8000E94AD1A1EC0211124 -:103B40001CC09091EA019230C0F48091E800877F18 -:103B50008093E8009093E3010E94AD1A8091E30105 -:103B6000811104C08091E30087FF02C084E001C09E -:103B700081E08093E7010E94F9178091E80083FFBC -:103B80000AC08091E800877F8093E8008091EB0075 -:103B900080628093EB00AA960FB6F894DEBF0FBE4A -:103BA000CDBFDF91CF911F9108950895CF9380915C -:103BB000E7018823B1F08091E9008F709091EC00CB -:103BC00090FF02C090E801C090E0C92FC82B10926E -:103BD000E9008091E80083FD0E94871CCF70C093AC -:103BE000E900CF91089590936B0180936A01089545 -:103BF000E0916A01F0916B01309721F00190F08122 -:103C0000E02D099480E00895E0916A01F0916B0144 -:103C1000309721F00280F381E02D09940895E0911E -:103C20006A01F0916B01309721F00480F581E02D5D -:103C300009940895209168013091690182179307D2 -:103C400071F09093690180936801E0916A01F091AD -:103C50006B01309721F00680F781E02D09940895DB -:103C600020916601309167018217930771F090935C -:103C7000670180936601E0916A01F0916B013097D2 -:103C800021F00084F185E02D0994089508950C94A5 -:103C9000461E0E943A2A0E94D4130C94002BCF9205 -:103CA000DF92EF92FF920F931F93CF93DF93CDB7E5 -:103CB000DEB72B970FB6F894DEBF0FBECDBF0E94C4 -:103CC000EC133DE6E32E31E0F32E00E010E0C02ED1 -:103CD000802F0E94D914F701D1907F01D826B1F42A -:103CE0000F5F1F4F0E30110591F78FEF89838A8385 -:103CF0001B820E94432A8160782F9D838C83498197 -:103D00005A816B818D810E94F21E41C09091CE013B -:103D100091FF04C08B870E94DF148B8520E030E088 -:103D20004D2D50E0922FBA01022E02C07595679575 -:103D30000A94E2F760FF25C02E83CF82EE24E3943D -:103D4000F12C02C0EE0CFF1C9A95E2F790E08E2158 -:103D50009F2121E0892B09F420E028870E94432A33 -:103D60008160782F9A8789874E815F8168858A85EF -:103D70000E94F21EF801E359FE4F80818E25808358 -:103D800006C02F5F3F4F2630310561F6A9CF0E9454 -:103D9000E42D10916C010E94F81D1817A1F00E94EB -:103DA000F81D80936C012B960FB6F894DEBF0FBE02 -:103DB000CDBFDF91CF911F910F91FF90EF90DF90DA -:103DC000CF900C94FD162B960FB6F894DEBF0FBE65 -:103DD000CDBFDF91CF911F910F91FF90EF90DF90BA -:103DE000CF900895CF93DF93CDB7DEB72B970FB663 -:103DF000F894DEBF0FBECDBF4F83588769877A879F -:103E00008B87DE01119686E0FD0111928A95E9F714 -:103E100085E0FE01379601900D928A95E1F7498180 -:103E20005A816B817C818D819E810E9425262B96F3 -:103E30000FB6F894DEBF0FBECDBFDF91CF910895CE -:103E4000CF93C82F882309F4C1C0823859F40E9447 -:103E5000F81D81FDBBC089E30E94C4280E947E2911 -:103E600089E30CC0833879F40E94F81D80FDAEC050 -:103E700083E50E94C4280E947E2983E50E940429CC -:103E8000CF910C947E29843859F40E94F81D82FD4C -:103E90009DC087E40E94C4280E947E2987E4EECF5B -:103EA0008CEF8C0F813A48F48C2F0E9419308111CD -:103EB0008DC08C2F0E94C428E3CF80E28C0F883005 -:103EC00048F4C77081E001C0880FCA95EAF70E94E4 -:103ED0004529D6CF8BE58C0F833078F4C53A29F08D -:103EE000C63A31F482E890E005C081E890E002C073 -:103EF00083E890E0CF910C941A1E88E58C0F8331F3 -:103F000008F064C0C83A39F1C93A41F1CA3A49F1F6 -:103F1000CB3A51F1CC3A59F1CD3A61F1C03B69F15C -:103F2000CE3A71F1CF3A79F1C13B81F1C23B89F1CF -:103F3000C33B91F1C43B99F1C53BA1F1C63BA9F14B -:103F4000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5A7 -:103F50008AE292E038C082EE90E035C089EE90E0CF -:103F600032C08AEE90E02FC085EB90E02CC086EB4B -:103F700090E029C087EB90E026C08CEC90E023C055 -:103F80008DEC90E020C083E891E01DC08AE891E0CC -:103F90001AC082E991E017C084E991E014C081E27F -:103FA00092E011C083E292E00EC084E292E00BC086 -:103FB00085E292E008C086E292E005C087E292E0E6 -:103FC00002C080E090E0CF910C94301ECF91089514 -:103FD000882309F44BC0823859F40E94F81D81FFF0 -:103FE00045C089E30E94C4280E947E2989E30CC051 -:103FF000833871F40E94F81D80FF38C083E50E9469 -:10400000C4280E947E2983E50E9404290C947E29FD -:10401000843859F40E94F81D82FF28C087E40E946A -:10402000C4280E947E2987E4EFCF9CEF980F913A35 -:1040300058F390E2980F983050F4877091E001C0E7 -:10404000990F8A95EAF7892F0E944B29DFCF9BE5CC -:10405000980F933020F480E090E00C941A1E885A58 -:10406000833120F480E090E00C94301E0895882382 -:1040700021F00E9445290C947E290895882321F07F -:104080000E944B290C947E290895CF92DF92EF92E3 -:10409000FF920F931F93CF93DF93CDB7DEB728978F -:1040A0000FB6F894DEBF0FBECDBF8C0185E0F801DE -:1040B000DE01119601900D928A95E1F7F801408199 -:1040C0003181F280258122952F7083819481892B03 -:1040D00031F03F3F31F481E04F3F19F403C081E0FC -:1040E00001C080E080FDC4C249833A8389819A81FE -:1040F0002F830E9482289E8388870E9481280E94A5 -:1041000054274E81E42FE295EF70F0E0E45EFE4F1D -:104110002F8168850C944B32842F807F142F1F7061 -:10412000882311F01295107FFF2059F0112309F414 -:1041300054C2812F68870E9455290E947E29688574 -:104140004CC2862F0E94E81F112309F491C2812FCF -:104150000E945B2928960FB6F894DEBF0FBECDBF34 -:10416000DF91CF911F910F91FF90EF90DF90CF9053 -:104170000C947E29342F307F842F8F70303211F0D1 -:104180008295807F662319F0613019F12BC0FF20E2 -:10419000B1F0222309F493C1213009F090C128968F -:1041A0000FB6F894DEBF0FBECDBFDF91CF911F9148 -:1041B0000F91FF90EF90DF90CF900C946529222310 -:1041C00019F0213009F454C28E830E9468298E812F -:1041D00089C1FF2021F0223008F04AC270C12111AC -:1041E00047C280C1FF2021F0222309F468C1F5C134 -:1041F000222309F477C105C2242F26952695237022 -:1042000030E02115310521F021303105C9F030C2EF -:10421000FF2021F0862F942F937002C080E090E061 -:1042200028960FB6F894DEBF0FBECDBFDF91CF91B9 -:104230001F910F91FF90EF90DF90CF900C941A1E7A -:10424000FF2021F0862F942F937002C080E090E031 -:1042500028960FB6F894DEBF0FBECDBFDF91CF9189 -:104260001F910F91FF90EF90DF90CF900C94301E34 -:10427000862FFF2019F00E94EC2C02C00E94542DC2 -:1042800028960FB6F894DEBF0FBECDBFDF91CF9159 -:104290001F910F91FF90EF90DF90CF900C94D92D4C -:1042A000842F837009F076C0F110E2C1262F229589 -:1042B00026952770220F220F862F8F70C82ED12CA3 -:1042C000E12CF12C022E04C0CC0CDD1CEE1CFF1CDA -:1042D0000A94D2F764FF10C06FE070E080E090E0D5 -:1042E00004C0660F771F881F991F2A95D2F7609523 -:1042F00070958095909503C060E070E0CB01242F0D -:10430000269526952370422F50E042305105D1F07A -:104310004330510559F16C297D298E299F2941305F -:10432000510541F128960FB6F894DEBF0FBECDBF00 -:10433000DF91CF911F910F91FF90EF90DF90CF9081 -:104340000C9479276C297D298E299F2928960FB6F0 -:10435000F894DEBF0FBECDBFDF91CF911F910F91BB -:10436000FF90EF90DF90CF900C9493270E947927D5 -:10437000C701B60128960FB6F894DEBF0FBECDBFB9 -:10438000DF91CF911F910F91FF90EF90DF90CF9031 -:104390000C945F27FF2019F0842F817001C086954F -:1043A000882309F465C1262F229526952770220FB0 -:1043B000220F862F8F70C82ED12CE12CF12C022ECB -:1043C00004C0CC0CDD1CEE1CFF1C0A94D2F764FF69 -:1043D00010C06FE070E080E090E004C0660F771FCF -:1043E000881F991F2A95D2F76095709580959095B2 -:1043F00003C060E070E0CB01242F26952695237042 -:10440000422F50E042305105D1F04330510559F16F -:104410006C297D298E299F294130510541F128962B -:104420000FB6F894DEBF0FBECDBFDF91CF911F91C5 -:104430000F91FF90EF90DF90CF900C944D286C2956 -:104440007D298E299F2928960FB6F894DEBF0FBECE -:10445000CDBFDF91CF911F910F91FF90EF90DF9033 -:10446000CF900C9467280E944D28C701B60128966A -:104470000FB6F894DEBF0FBECDBFDF91CF911F9175 -:104480000F91FF90EF90DF90CF900C943328603F16 -:10449000C9F118F4603E50F49BC0623F09F460C05B -:1044A00008F44AC0633F09F46FC092C0162F1F7012 -:1044B000842F8F71FF2099F00E94CC27812F28969E -:1044C0000FB6F894DEBF0FBECDBFDF91CF911F9125 -:1044D0000F91FF90EF90DF90CF900C9437200E94C7 -:1044E000ED27812F28960FB6F894DEBF0FBECDBF03 -:1044F000DF91CF911F910F91FF90EF90DF90CF90C0 -:104500000C943E20FF20A1F02111B2C0842F8F71A6 -:1045100028960FB6F894DEBF0FBECDBFDF91CF91C6 -:104520001F910F91FF90EF90DF90CF900C94122885 -:10453000223008F09DC0EACFFF20A1F0842F8F71B8 -:1045400028960FB6F894DEBF0FBECDBFDF91CF9196 -:104550001F910F91FF90EF90DF90CF900C94CC279C -:10456000FF2061F3842F8F7128960FB6F894DEBF79 -:104570000FBECDBFDF91CF911F910F91FF90EF90B4 -:10458000DF90CF900C94ED27FF2091F0842F8F7156 -:1045900028960FB6F894DEBF0FBECDBFDF91CF9146 -:1045A0001F910F91FF90EF90DF90CF900C94B72761 -:1045B00028960FB6F894DEBF0FBECDBFDF91CF9126 -:1045C0001F910F91FF90EF90DF90CF900C94AD274B -:1045D000FF20A1F0222309F4B1CF862F28960FB631 -:1045E000F894DEBF0FBECDBFDF91CF911F910F9129 -:1045F000FF90EF90DF90CF900C94201F222309F4BE -:10460000B1CF862F28960FB6F894DEBF0FBECDBF70 -:10461000DF91CF911F910F91FF90EF90DF90CF909E -:104620000C94E81F4F70C8010E94031028960FB623 -:10463000F894DEBF0FBECDBFDF91CF911F910F91D8 -:10464000FF90EF90DF90CF900C94D2264F70C8016E -:1046500028960FB6F894DEBF0FBECDBFDF91CF9185 -:104660001F910F91FF90EF90DF90CF900C949F15CA -:1046700028960FB6F894DEBF0FBECDBFDF91CF9165 -:104680001F910F91FF90EF90DF90CF9008950E94BF -:1046900062290E9437290E947E290E94852E0E944D -:1046A000D92D80E090E00E941A1E80E090E00C94EA -:1046B000301E0E9452290C9447230E948228292FE1 -:1046C00022952F7030E02C3031054CF42A30310522 -:1046D0006CF4225031092230310590F407C02C309F -:1046E000310551F02F30310539F00AC0803E10F00D -:1046F000803F31F481E0089593FB882780F9089585 -:1047000080E00895CF93DF9300D000D01F92CDB703 -:10471000DEB70F900F900F900F900F90DF91CF9119 -:104720000895CF93DF9300D000D000D0CDB7DEB78F -:1047300026960FB6F894DEBF0FBECDBFDF91CF91A6 -:1047400008951F93CF93DF93C0917B0116E0809172 -:104750007C01C81799F0D0E01C9FF0011D9FF00D5F -:104760001124E358FE4F408151816281738184811D -:1047700095810E9491232196C770E9CFDF91CF9157 -:104780001F9108954091AD015091AE016091AF012C -:104790007091B0018091B1019091B2010C9491237C -:1047A000CF938091B20182958F7009F05FC08091A4 -:1047B000AF01882309F45AC020917B01A0917C01AC -:1047C0006091AD017091AE018091B0019091B10105 -:1047D00031E06F3F09F030E0B32FC6E02A1709F44B -:1047E00045C0009721F07F3F21F44B2F03C041E0EB -:1047F00001C040E030E040FD35C0C29FF001C39FE2 -:10480000F00D1124E358FE4F418174132BC04081F9 -:10481000641328C04281411125C043815481481747 -:10482000590710F441505109481B590B483C510598 -:10483000C8F48091B2018F7080618093B20186E0EC -:10484000829FF001839FF00D1124EE57FE4F80816F -:104850008F70806180838DEA91E00E944520CF9126 -:104860000C94A1232F5F3F4F2770B8CFCF910895AD -:10487000CF92DF92EF92FF920F931F93CF93DF932C -:10488000CDB7DEB762970FB6F894DEBF0FBECDBFCF -:104890008C0185E0F801DE011D9601900D928A954C -:1048A000E1F7D8014C9111965C91119712966C9199 -:1048B00012971396ED90FC9014977091AD01E091D2 -:1048C000AE012091B0013091B1012115310531F0D7 -:1048D000EF3F31F481E07F3F19F403C081E001C074 -:1048E00080E0B82FB170CB2E80FD6CC1D090AF01AD -:1048F000DD2009F4F5C0F091B201E216F30638F0BC -:10490000C701821B930B883C910548F09BC0209502 -:1049100030952E0D3F1D283C310508F093C08F2F98 -:10492000807F09F052C0E51314C0741312C0D62E54 -:1049300061110FC0FF70F061F093B2010E94C223B9 -:104940008DEA91E00E9445208091B201F8018583B3 -:104950006CC1EF2831F05F3F31F481E04F3F19F433 -:1049600003C081E001C080E080FD03C081E08627B4 -:1049700001C080E0F82FF170FF2E80FF1CC08091F5 -:104980007B0120917C0136E0821709F428C190E078 -:10499000389FF001399FF00D1124E358FE4F7181CB -:1049A000571306C07081471303C07281671303C099 -:1049B00001968770E9CFD62E662309F436C180911F -:1049C000B20181608093B20153C0E51308C0741333 -:1049D00006C0611104C0D8011596FC93AEC04D8786 -:1049E0005E878D859E856A8B0E945D236A898823F8 -:1049F00029F1D62E662311F12091B201822F8295E2 -:104A00008F7090E002970CF460C08091AD0190919E -:104A1000AE0198878F831986FB86EA862C87CE01A4 -:104A2000079651C0E51731F14D875E878D859E85CC -:104A30006A8B0E945D236A8981112EC0C8010E9481 -:104A40004520A4C08F2F807F69F77E2DF98AE88AE0 -:104A500089890E9482238DEA91E00E944520EDEA37 -:104A6000F1E086E0DF011D928A95E9F70E94C223FA -:104A7000D12CDBC07413D8CF6111D6CFD8011596D5 -:104A8000FC93C8010E944520EDEAF1E086E0DF01D9 -:104A90001D928A95E9F7C9C0D62E662379F2209136 -:104AA000B201822F82958F7090E0029774F080910E -:104AB000AD019091AE019A8389831B82FD82EC82C5 -:104AC0002E83CE0101960E94452086E0F801ADEAD2 -:104AD000B1E001900D928A95E1F70E94D0236FC05A -:104AE000E216F30628F0C701821B930B9C0104C059 -:104AF000209530952E0D3F1D283C310508F052C001 -:104B0000D62E662309F49ACFE5132CC074132AC05D -:104B10008091B20180FD1DC0982F92959F70C9F0C1 -:104B2000D80115968C9315979F3039F09F5F929519 -:104B3000907F8F70892B15968C93C8010E94452019 -:104B400086E0F801ADEAB1E001900D928A95E1F7B7 -:104B500036C086E0F801ADEAB1E001900D928A9589 -:104B6000E1F763C04D875E878D859E850E945D233A -:104B7000882379F086E0F801ADEAB1E001900D926A -:104B80008A95E1F70E94D0230E94C223DD24D394AA -:104B90004CC08091B20181608093B201C8010E9433 -:104BA000452043C07E2DF98AE88A89890E948223A4 -:104BB000EDEAF1E086E0DF011D928A95E9F70E94B7 -:104BC000C22333C0662309F439CF4D875E878D85B4 -:104BD0009E850E945D23882309F430CFCBCF4D877B -:104BE0005E878D859E850E948228292F22952F70B1 -:104BF00030E0223031052CF49F7041F0811106C065 -:104C00000CC0243031052CF49F7049F4805E88304C -:104C100020F0C8010E944520CF2CDC2C06C0D80112 -:104C200015969C91907F91F7F8CF8D2D62960FB6D7 -:104C3000F894DEBF0FBECDBFDF91CF911F910F91D2 -:104C4000FF90EF90DF90CF9008951F93CF93DF9365 -:104C5000CDB7DEB72C970FB6F894DEBF0FBECDBF31 -:104C60004F83588769877A878B879C87CE01079601 -:104C70000E9438248823C1F02F8138858A859B853E -:104C8000892B31F03F3F11F080E003C02F3FE1F767 -:104C900081E0811147C04F81588569857A858B8570 -:104CA0009C850E9491233EC086E0FE013796DE017E -:104CB000119601900D928A95E1F7FF81E8854A856A -:104CC0005B854115510531F0EF3F31F481E0FF3F45 -:104CD00019F403C081E001C080E080FD23C0209171 -:104CE0007C0130E0C90101968770992760917B01B2 -:104CF00070E086179707F1F1F983EA835D834C83AF -:104D000096E0929FD001939FB00D1124A358BE4FFF -:104D1000FE01319601900D929A95E1F780937C0106 -:104D20000E94A12316E080917B0190917C0189175C -:104D300079F1189FC001112483589E4F0E94382496 -:104D4000882331F1E0917B011E9FF0011124E3588B -:104D5000FE4F4081518162817381848195810E94DF -:104D6000912380917B0190E0019687709927809331 -:104D70007B01D9CF0E94592310927C0110927B01B4 -:104D8000EDEAF1E086E0DF011D928A95E9F7CACFEE -:104D90002C960FB6F894DEBF0FBECDBFDF91CF913A -:104DA0001F910895EF92FF920F931F93CF93DF937C -:104DB0009C01009709F471C0F12CEE24E394E90101 -:104DC0002196F9018491843740F4843008F056C06C -:104DD000813081F0823021F160C0853709F449C00B -:104DE000C0F19CE7980F903708F057C08F770E946A -:104DF000E81F46C089010E5F1F4FFE01849190E2BB -:104E0000980F983050F48770FE2D01C0FF0F8A95DF -:104E1000EAF78F2F0E94552915C00E94201F14C049 -:104E200089010E5F1F4FFE01849190E2980F983028 -:104E300068F48770FE2D01C0FF0F8A95EAF78F2F67 -:104E40000E945B290E947E29E8011AC00E94E81F87 -:104E5000FBCF2E5F3F4FFE01C491CC2341F08FE981 -:104E60009FE00197F1F700C00000C150F6CFE901C3 -:104E700007C0FE01F490E901229602C00E94201FA3 -:104E80008F2D882341F0EFE9FFE03197F1F700C063 -:104E900000008150F6CF9E0192CFDF91CF911F91FC -:104EA0000F91FF90EF90089508956093B70170936C -:104EB000B8018093B9019093BA010C9447230F93E2 -:104EC0001F930091B7011091B8012091B901309161 -:104ED000BA01062B172B282B392B0093B7011093FF -:104EE000B8012093B9013093BA011F910F910C942E -:104EF00047230F931F930091B7011091B8012091A0 -:104F0000B9013091BA0106231723282339230093CE -:104F1000B7011093B8012093B9013093BA011F91E2 -:104F20000F910C9447230F931F930091B701109199 -:104F3000B8012091B9013091BA0106271727282717 -:104F400039270093B7011093B8012093B90130932A -:104F5000BA011F910F910C9447231092B301109244 -:104F6000B4011092B5011092B6010C94472341E0B0 -:104F700050E060E070E004C0440F551F661F771FCB -:104F80008A95D2F74093B3015093B4016093B50171 -:104F90007093B6010C94472341E050E060E070E06C -:104FA00004C0440F551F661F771F8A95D2F7809162 -:104FB000B3019091B401A091B501B091B601842BD9 -:104FC000952BA62BB72B8093B3019093B401A0939C -:104FD000B501B093B6010C94472341E050E060E086 -:104FE00070E004C0440F551F661F771F8A95D2F7E3 -:104FF00040955095609570958091B3019091B40162 -:10500000A091B501B091B60184239523A623B723BF -:105010008093B3019093B401A093B501B093B6010E -:105020000C94472341E050E060E070E004C0440F7E -:10503000551F661F771F8A95D2F78091B301909113 -:10504000B401A091B501B091B60184279527A62798 -:10505000B7278093B3019093B401A093B501B093A7 -:10506000B6010C9447230F931F930091B301109145 -:10507000B4012091B5013091B601062B172B282BD6 -:10508000392B0093B3011093B4012093B5013093F1 -:10509000B6011F910F910C9447230F931F9300911A -:1050A000B3011091B4012091B5013091B6010623EE -:1050B0001723282339230093B3011093B4012093BD -:1050C000B5013093B6011F910F910C9447230F93B4 -:1050D0001F930091B3011091B4012091B50130915B -:1050E000B60106271727282739270093B301109305 -:1050F000B4012093B5013093B6011F910F910C9428 -:1051000047230895CF92DF92EF92FF920F931F9360 -:10511000CF93DF93EC01C090B701D090B801E0903D -:10512000B901F090BA018091B3019091B401A091BE -:10513000B501B091B601C82AD92AEA2AFB2A0FE1A3 -:1051400010E0B701A601002E04C07695679557952B -:1051500047950A94D2F740FF07C0BE01802F0E94F6 -:10516000C2158130910539F40150110950F7BE0183 -:1051700080E00E94C215DF91CF911F910F91FF90A7 -:10518000EF90DF90CF90089590910C019923D9F082 -:1051900090910D019923B9F0982F96959695969533 -:1051A0009F3088F5E0910E01F0910F01E90FF11D9C -:1051B000877021E030E001C0220F8A95EAF78181F3 -:1051C000822B8183089540910E0150910F0120E0C0 -:1051D00030E09FEFFA01E20FF31F6281681799F048 -:1051E0009F3F19F4611101C0922F2F5F3F4F2E3066 -:1051F000310581F79F3F39F0FA01E90FF11D97FD65 -:10520000FA9582830895089590910C019923E1F015 -:1052100090910D019923C1F0982F969596959695AA -:105220009F3020F5E0910E01F0910F01E90FF11D83 -:10523000877021E030E001C0220F8A95EAF72095BF -:10524000818128232183089540910E0150910F01FF -:1052500020E030E0FA01E20FF31F9281981301C0C1 -:1052600012822F5F3F4F2E303105A1F7089581E064 -:1052700090E0E0910E01F0910F01E80FF91F10820C -:10528000019680319105A9F708959091CD01982B51 -:105290009093CD01089580959091CD01982390939E -:1052A000CD0108951092CD0108959091CC01982BD5 -:1052B0009093CC01089580959091CC019823909380 -:1052C000CC0108951092CC0108958093BB010895FC -:1052D0001092BB01089540910E0150910F0120E002 -:1052E00030E080E0FA01E20FF31F918191118F5FAE -:1052F0002F5F3F4F2F303105A9F70895E0910E0140 -:10530000F0910F018091CD018083E0910E01F09129 -:105310000F0180819091CC01892B80839091BB01FA -:10532000992361F0E0910E01F0910F018081892BAA -:1053300080830E946B2981111092BB0180910E0124 -:1053400090910F010C94041ECF92DF92EF92FF9286 -:105350000F931F936C01EE24FF24C114D104E104C8 -:10536000F10421F46B017C0180E001C080E133276E -:105370002F2D1E2D0D2D011511052105310519F0BB -:10538000885F6801790197018601A4E03695279529 -:1053900017950795AA95D1F7011511052105310536 -:1053A00019F08C5F6801790197018601F2E036956A -:1053B000279517950795FA95D1F701151105210540 -:1053C000310519F08E5F68017901B701A601769564 -:1053D000679557954795452B462B472B09F08F5FCF -:1053E0001F910F91FF90EF90DF90CF9008958091E3 -:1053F000E701843009F11092CF0120E488E190E0C8 -:105400000FB6F894A895809360000FBE20936000BB -:1054100083B7817F846083BF83B7816083BF7894C3 -:10542000889583B78E7F83BF88E10FB6F894809309 -:105430006000109260000FBE089508950895CF9304 -:105440000E941D2A0E94EC130E941E2AC0E08C2F8D -:105450000E94D914811105C0CF5FCE30C1F780E022 -:1054600001C081E0CF9108950E9459230E94F81D48 -:105470000C94FD1682E084BD93E095BD9AEF97BD34 -:1054800080936E0008952FB7F8948091D001909189 -:10549000D101A091D201B091D3012FBF0895CF9235 -:1054A000DF92EF92FF920F931F932FB7F8944091E2 -:1054B000D0015091D1016091D2017091D3012FBFE1 -:1054C0006A017B01EE24FF248C0120E030E0C0164D -:1054D000D106E206F30610F441505109481B590B5E -:1054E000CA011F910F91FF90EF90DF90CF90089528 -:1054F0001F920F920FB60F9211248F939F93AF9329 -:10550000BF938091D0019091D101A091D201B0912F -:10551000D3010196A11DB11D8093D0019093D101BB -:10552000A093D201B093D301BF91AF919F918F917E -:105530000F900FBE0F901F9018950E94FE1AF894BE -:105540002FEF87EA91E6215080409040E1F700C0BC -:10555000000087E090EBDC018093F0019093F10173 -:10556000A093F201B093F3012CE088E190E00FB634 -:10557000F894A895809360000FBE20936000FFCF41 -:10558000EF92FF920F931F93CF93DF93E82EF12CAE -:105590008F2D0E94D914C0E0D0E0082F10E09801B0 -:1055A0000C2E02C0359527950A94E2F720FD05C020 -:1055B0002196C630D10599F709C06C2F7F2D80E068 -:1055C0000E94A015E812F4CF81E005C0F3948EE0AC -:1055D000F812DECF80E0DF91CF911F910F91FF9005 -:1055E000EF900895CF93C82F8CE20E94C02A8823A1 -:1055F00021F08C2FCF910C94C02A80E0CF91089598 -:10560000CF930E94452C811102C00E942B2CC5E62D -:10561000C15049F00E94EC138FE39CE90197F1F728 -:1056200000C00000F5CF89E20E94F22A811111C169 -:105630008AE20E94F22A81110E942B2C85E00E94AE -:10564000F22A81110E949D2A0E94502C8093CE0143 -:1056500087E00E94F22A882399F18BE10E94F22AC6 -:10566000882351F09091CE0191FB882780F921E0A9 -:10567000822780FB91F922C08EE00E94F22A8823C3 -:1056800051F09091CE0192FB882780F921E082278A -:1056900080FB92F913C080E10E94F22A9091CE0122 -:1056A000882341F093FB882780F921E0822780FB43 -:1056B00093F904C0892F809580FB90F99093CE01D7 -:1056C0008091CE010E94542C0E94622C8093E101B3 -:1056D00080EE0E94F22A882341F08091E101982F08 -:1056E000909590FB80F98093E10189E30E94F22A72 -:1056F000882359F09091E10191FB882780F921E0FE -:10570000822780FB91F99093E10182EE0E94F22AB8 -:10571000882359F09091E10192FB882780F921E0DC -:10572000822780FB92F99093E10186EE0E94F22A93 -:10573000882359F09091E10193FB882780F921E0BB -:10574000822780FB93F99093E10183EE0E94F22A75 -:10575000882359F09091E10194FB882780F921E09A -:10576000822780FB94F99093E10185E30E94F22A5D -:10577000882359F09091E10195FB882780F921E079 -:10578000822780FB95F99093E10181E30E94F22A40 -:10579000882359F09091E10196FB882780F921E058 -:1057A000822780FB96F99093E10181E10E94F22A21 -:1057B000882359F09091E10197FB882780F921E037 -:1057C000822780FB97F99093E1018091E1010E948B -:1057D000662C8091E10187FB882780F980930D0179 -:1057E00087E20E94F22AC82F8EE10E94F22A8111DC -:1057F000C2608FE10E94F22A8111C46080E20E949F -:10580000F22A8111C86081E20E94F22A8111C061EE -:1058100082E20E94F22A8111C06283E20E94F22A8F -:105820008111C06484E20E94F22A882311F0C068CA -:1058300002C0CC2329F08C2F0E945D2C6C2F03C05A -:105840000E94592C682F70E080E090E0CF910C947A -:105850005527CF9108956DEE7EEF80E090E00E9495 -:10586000813260E082E090E00E94733260E083E089 -:1058700090E00E94733260E084E090E00E94733216 -:1058800060E085E090E00C94733280E090E00E944C -:105890006D3221E08D3E9E4F09F020E0822F089569 -:1058A00082E090E00C946532682F82E090E00C94E6 -:1058B000733283E090E00C946532682F83E090E0CF -:1058C0000C94733284E090E00C946532682F84E08D -:1058D00090E00C9473328091D60180FF0BC06091F0 -:1058E000130185E0689FB001112475956795759542 -:1058F00067952AC081FF09C06091130185E0689F08 -:10590000B0011124759567951FC082FF07C0609193 -:10591000130185E0689FB001112416C04091D701A2 -:105920004423C9F060911201461788F720911301B2 -:1059300085E0289F90011124429FC001439F900D54 -:10594000112470E00E9437326038710540F461150F -:10595000710539F002C065E070E0862F08958FE789 -:10596000089581E008958091D60180FF08C060917C -:10597000110170E0759567957595679521C081FF58 -:1059800006C06091110170E07595679519C082FF9E -:1059900004C06091110170E010C08091D70188238C -:1059A000C1F0609110018617A0F790911101989FA6 -:1059B000C001112470E00E9437326038710528F46C -:1059C0006115710521F0862F08958FE7089581E014 -:1059D000089561E070E0F4CF803F21F40E946B2CC9 -:1059E000819504C0813F29F40E946B2C8093DA01D9 -:1059F0000895823F21F40E946B2C819504C0833F5F -:105A000029F40E946B2C8093D9010895893F19F4E1 -:105A10000E94B32C05C08A3F31F40E94B32C8195BB -:105A20008093DB0108958B3F21F40E94B32C819574 -:105A300004C08C3F29F40E94B32C8093DC010895AC -:105A4000843F21F48091D801816017C0853F21F403 -:105A50008091D801826011C0863F21F48091D801E5 -:105A600084600BC0873F21F48091D801886005C015 -:105A7000883F31F48091D80180618093D8010895E6 -:105A80008D3F21F48091D60181600BC08E3F21F4BF -:105A90008091D601826005C08F3F29F48091D601A4 -:105AA00084608093D6010895803F39F48091DA01B3 -:105AB00087FF6CC01092DA0169C0813F29F48091A0 -:105AC000DA011816BCF362C09091D901823F29F423 -:105AD00097FF5CC01092D90159C0833F19F4191681 -:105AE000CCF354C0893F41F48091DB0118160CF0CF -:105AF0004DC01092DB014AC08A3F29F48091DB013E -:105B000087FF44C0F6CF8B3F39F48091DC0187FFDB -:105B10003DC01092DC013AC08C3F29F48091DC0139 -:105B20001816BCF333C0843F21F48091D8018E7FD6 -:105B300017C0853F21F48091D8018D7F11C0863F29 -:105B400021F48091D8018B7F0BC0873F21F4809195 -:105B5000D801877F05C0883F31F48091D8018F7EBE -:105B60008093D80113C08D3F21F48091D6018E7FA0 -:105B70000BC08E3F21F48091D6018D7F05C08F3FF1 -:105B800029F48091D6018B7F8093D6018091D90131 -:105B900081110EC08091DA0181110AC08091DB0170 -:105BA000811106C08091DC01811102C01092D701E1 -:105BB000089588ED91E00E940F1E0E94432A909361 -:105BC000D5018093D40108951F93CF93DF938091E3 -:105BD000D4019091D5010E944F2A4091D7014423CE -:105BE00021F02091140130E006C0209115015AE007 -:105BF000259F900111248217930708F482C0809199 -:105C0000D9011091DA01D091DB01C091DC01811141 -:105C100007C0111105C0D11103C0CC2309F471C014 -:105C20004F3F19F04F5F4093D701181624F40E949C -:105C30006B2C8093D9018091D90187FF05C00E9408 -:105C40006B2C81958093D901111624F40E946B2C42 -:105C50008093DA018091DA0187FF05C00E946B2CE6 -:105C600081958093DA016091D901662339F1109111 -:105C7000DA01112319F1772767FD7095872F972F88 -:105C80000E94483123E333E343E35FE30E94AC31F6 -:105C90000E9415316093D901612F772767FD7095B8 -:105CA000872F972F0E94483123E333E343E35FE3D9 -:105CB0000E94AC310E9415316093DA011D1624F464 -:105CC0000E94B32C8093DB018091DB0187FF05C02C -:105CD0000E94B32C81958093DB011C1624F40E9452 -:105CE000B32C8093DC018091DC0187FF05C00E940A -:105CF000B32C81958093DC01DF91CF911F910C949F -:105D0000D92DDF91CF911F910895E8EDF1E085E065 -:105D1000DF011D928A95E9F71092D7011092D60102 -:105D20000895833081F128F4813059F08230D1F028 -:105D30000895853009F449C0B8F1863009F456C099 -:105D4000089520911501862F90E0820F911D8F3FBD -:105D5000910520F4620F6093150108958FEF8093F1 -:105D60001501089520911401862F90E0820F911D56 -:105D70008F3F910520F4620F6093140108958FEF17 -:105D800080931401089520911301862F90E0820FD3 -:105D9000911D8F3F910520F4620F609313010895C8 -:105DA0008FEF80931301089520911201862F90E0C8 -:105DB000820F911D8F3F910520F4620F60931201B5 -:105DC00008958FEF80931201089520911101862F7D -:105DD00090E0820F911D8F3F910520F4620F609338 -:105DE000110108958FEF8093110108952091100102 -:105DF000862F90E0820F911D8F3F910520F4620F56 -:105E00006093100108958FEF8093100108958330FF -:105E100011F128F4813049F0823091F008958530F5 -:105E200081F120F18630C1F1089580911501681744 -:105E300020F4861B80931501089510921501089592 -:105E400080911401681720F4861B80931401089533 -:105E500010921401089580911301681720F4861B95 -:105E600080931301089510921301089580911201F7 -:105E7000681720F4861B8093120108951092120176 -:105E8000089580911101681720F4861B80931101F9 -:105E9000089510921101089580911001681720F45F -:105EA000861B8093100108951092100108958D3182 -:105EB00009F442C020F58E3009F479C070F48730BF -:105EC00009F45EC020F4863009F442C033C0883043 -:105ED000D1F18B3009F4A7C02DC0863109F4A3C0DD -:105EE00038F4803109F46DC0813109F47BC022C0DF -:105EF000893109F498C08B3109F44FC01BC0853338 -:105F000009F479C048F4873209F475C008F478C000 -:105F1000893209F470C00EC0833438F48A3308F033 -:105F200071C0883309F47FC005C0833409F463C0AD -:105F30008834C1F080E008950E94CF300E94F81D9F -:105F40000E94FD1670C00E94502C0E94622C6BC0F3 -:105F50008091CE01817F8E7F8093CE0181E08093FE -:105F6000DE0108950E9459232FEF83ED90E3215025 -:105F700080409040E1F700C000000E949D2A53C07D -:105F80009091CE01892F817090FF03C0917F9E7FF9 -:105F900026C091609093CE0146C09091CE0191FBB6 -:105FA000882780F921E0822780FB91F913C0909126 -:105FB000CE0192FB882780F921E0822780FB92F9AD -:105FC00009C09091CE0193FB882780F921E08227B8 -:105FD00080FB93F99093CE01882329F191609093EF -:105FE000CE0108950E94592380910D0191E08927E7 -:105FF00080930D0118C061E070E080E090E00FC078 -:1060000023EE01C027EC280F61E070E080E090E013 -:1060100004C0660F771F881F991F2A95D2F70E9428 -:1060200055270E94592381E0089580E0089580E07B -:106030000895CF93C82F8091DE01813079F018F058 -:106040008230D1F184C0A0910E01B0910F018C91EA -:10605000813169F0823209F07CC009C0A0910E0143 -:10606000B0910F018C91813111F0823249F48C2F63 -:106070000E94153081111DC08C2F0E94572F1AC00D -:106080008C2F0E941730811114C0C43179F048F46C -:10609000CB3079F0C03109F060C082E08093DE013E -:1060A00008C0C93219F0C83321F057C01092DE0180 -:1060B00054C081E0817053C0C93289F118F5C431F0 -:1060C00071F1A8F4C73009F046C08AE08093150149 -:1060D00094E19093140193E0909313018093120143 -:1060E00088E08093110188E28093100134C0CE5182 -:1060F000C63088F5EC2FF0E0E65DFE4F808180939E -:10610000DD0129C0CE34E9F020F4CB3421F56AE07A -:1061100013C0C13579F0C235F1F461E00DC0809152 -:10612000DD01882319F01092DD0115C081E0809314 -:10613000DE0115C061E006C08091DD010E94912E54 -:106140000AC06AE08091DD010E94072F04C010920E -:10615000DE0180E004C081E002C080E0ABCFCF91DF -:106160000895E1E8F0E0808188608083808181602B -:1061700080838FB7F89493E09093890090ED90938B -:1061800088008FBF0895EFE6F0E080818260808311 -:106190000895EFE6F0E080818D7F80830895EFE63B -:1061A000F0E0808192E08927808308951F920F920A -:1061B0000FB60F9211242F933F934F935F936F93DA -:1061C0007F938F939F93AF93BF93EF93FF938091B0 -:1061D000DF019091E00101969093E0018093DF014F -:1061E000811103C082E00E94FD16E091E001E69576 -:1061F000E695F0E0E65CF04EE4918091DF018E13CD -:1062000003C080E00E94FD16FF91EF91BF91AF9116 -:106210009F918F917F916F915F914F913F912F91BE -:106220000F900FBE0F901F90189504D06894B11175 -:106230008DC0089570D088F09F5790F0B92F99279E -:10624000B751A0F0D1F0660F771F881F991F1AF081 -:10625000BA95C9F712C0B13081F077D0B1E0089596 -:1062600074C0672F782F8827B85F39F0B93FCCF317 -:10627000869577956795B395D9F73EF49095809577 -:10628000709561957F4F8F4F9F4F0895E89409C097 -:1062900097FB3EF490958095709561957F4F8F4F59 -:1062A0009F4F9923A9F0F92F96E9BB279395F6956F -:1062B000879577956795B795F111F8CFFAF4BB0FED -:1062C00011F460FF1BC06F5F7F4F8F4F9F4F16C051 -:1062D000882311F096E911C0772321F09EE8872FDB -:1062E000762F05C0662371F096E8862F70E060E097 -:1062F0002AF09A95660F771F881FDAF7880F969510 -:10630000879597F9089557FD9058440F551F59F0F8 -:106310005F3F71F04795880F97FB991F61F09F3F92 -:1063200079F087950895121613061406551FF2CFBB -:106330004695F1DF08C0161617061806991FF1CF0B -:1063400086957105610508940895E894BB27662732 -:106350007727CB0197F908950BD078C069D028F042 -:106360006ED018F0952309F05AC05FC01124EECF0B -:10637000CADFA0F3959FD1F3950F50E0551F629FA0 -:10638000F001729FBB27F00DB11D639FAA27F00D8E -:10639000B11DAA1F649F6627B00DA11D661F829FB5 -:1063A0002227B00DA11D621F739FB00DA11D621F9A -:1063B000839FA00D611D221F749F3327A00D611DB7 -:1063C000231F849F600D211D822F762F6A2F112499 -:1063D0009F5750408AF0E1F088234AF0EE0FFF1FEC -:1063E000BB1F661F771F881F91505040A9F79E3F23 -:1063F000510570F014C0AACF5F3FECF3983EDCF378 -:10640000869577956795B795F795E7959F5FC1F75F -:10641000FE2B880F911D9695879597F9089597F90A -:106420009F6780E870E060E008959FEF80EC08953A -:1064300000240A9416161706180609060895002463 -:106440000A9412161306140605060895092E0394DD -:10645000000C11F4882352F0BB0F40F4BF2B11F451 -:1064600060FF04C06F5F7F4F8F4F9F4F089597FB72 -:10647000072E16F4009407D077FD09D00E94513200 -:1064800007FC05D03EF4909581959F4F0895709537 -:1064900061957F4F0895EE0FFF1F0590F491E02D59 -:1064A0000994AA1BBB1B51E107C0AA1FBB1FA6175B -:1064B000B70710F0A61BB70B881F991F5A95A9F7AD -:1064C00080959095BC01CD010895F999FECF92BDBC -:1064D00081BDF89A992780B50895A8E1B0E042E01F -:1064E00050E00C948832262FF999FECF1FBA92BD46 -:1064F00081BD20BD0FB6F894FA9AF99A0FBE0196A5 -:1065000008950E947332272F0C947432DC01CB0162 -:10651000FC01F999FECF06C0F2BDE1BDF89A3196B3 -:1065200000B40D9241505040B8F70895F894FFCF51 -:106530002002FF168C176917351702170101BC01DD -:1065400028080A03140A3F4D3639FB1EAE1E781E7A -:106550003F1ED21DEB1D041E1D1E01020304050675 -:04656000070809001F +:100000000C9412040C9456040C9456040C9456044C +:100010000C9456040C9456040C9456040C945604F8 +:100020000C9456040C9456040C944F0F0C9421100D +:100030000C9456040C9456040C9456040C945604D8 +:100040000C9456040C94D6240C9456040C94560428 +:100050000C9456040C94751E0C9456040C9456047F +:100060000C9456040C9456040C9456040C945604A8 +:100070000C9456040C9456040C9456040C94560498 +:100080000C9456040C9456040C9456040C94560488 +:100090000C9456040C9456040C9456040C94560478 +:1000A0000C9456040C9456040C945604A305700545 +:1000B0005B05B505DC050F06F105F7050C063A06EC +:1000C0002F06FA0532064605EB0523062C066D05BC +:1000D0006405B205A905910567052605BE05140648 +:1000E0001D0629069705C705A60540051A06E5055C +:1000F00088059D0594057C0520068B053105E805DE +:100100008205C1052005AC055E054C057605730525 +:10011000CA059A05060637058505AF052305B80506 +:1001200003060906D3055505EE0543056A054F0587 +:10013000C405F40535062905A005BB05FD05CD055B +:1001400052052606E2053D058E055805D9056105CF +:1001500000063A05D005DF052C0549053F061706C0 +:1001600079053405D6057F0514058610A81093116E +:10017000A8109311EA100D119311621175116E14EC +:100180006E149C149C14DE141A151A171A173215C3 +:100190001A1729162916F4161A171A1708170552CE +:1001A000045201520352010000001E001B001800FF +:1001B0002F00010029001F0013000C003300E30092 +:1001C000E1002000090004003400E2002A002100C0 +:1001D0001A0008000600E000650022000A00120074 +:1001E0001900000049002E004A0000004D000000E8 +:1001F00002542E02025400002B0000005E30230047 +:100200000B001600050000004C0024000D0011003A +:100210001000E4004B0025000E0015003600E6003B +:100220002C0026000F001700370050002800270080 +:1002300014000700520051004E0035001C002D0034 +:100240001D004F000000010001000100010001003D +:1002500000001E02300238020100010001001F02EE +:10026000641438003000010001002002240223023F +:1002700027020100010001002414251401000100DF +:1002800001000100271426140100000001000100F4 +:100290000100000001000000010001000100000059 +:1002A0000100000001000100310021022D140000B6 +:1002B000010001006400250222020100010001008A +:1002C0006402260236020100010001000100301420 +:1002D00037023830010035021F023102553002303A +:1002E0000100010001002D0201003D30000001006D +:1002F000010001000100010000003A0001000100BE +:100300000100010001003B000100010001000100AB +:1003100001003C00010001000100010001003D005E +:10032000010001000100010001003E000100010088 +:100330000100000001004400010000000100000075 +:1003400001004500010000005300000001003F00D3 +:100350000100010001000000010040005F005C009E +:10036000590062000100410060005D005A008500F4 +:100370000100420061005E005B0063000100430079 +:100380005500560057005800010067005400560001 +:1003900057005800000001000100010001000100A9 +:1003A00000004D30393001005B3001000100513058 +:1003B00058303C303B300100010050300130141403 +:1003C0005D30010001004A30593008145C300100F2 +:1003D0000100493057300430003000000100053082 +:1003E0000100000001000000010001000100000008 +:1003F0000100000001004F305A3037301E0200006B +:1004000001004E3001004B30010001000100483076 +:10041000563054305330010001004C30010003309D +:100420003A300100010052300100010001000100DA +:1004300001000100010001000100010000000100B5 +:100440000100010001000100000042302030343082 +:1004500001000100010046302E302630333001000B +:10046000010045302D301E300100010001004030F8 +:100470002B3022300100010001003F3025302C30AC +:100480000100000001000100010000000100000067 +:1004900001000100010000000100000001004430E3 +:1004A000233031301F3000000100433035302A3016 +:1004B0002930010001003E302730303001000100BA +:1004C0000100413028303230010001000100473086 +:1004D000010021300100010001000100363024300C +:1004E0002F300100000001000100010001000100A7 +:1004F0000000010008301B30010001000100010074 +:1005000015300D301A3001000100010014300630A2 +:10051000010001000100010012300A300100010059 +:10052000010001000C301330010000000100010047 +:1005300001000000010000000100010001000000B6 +:1005400001000000010001000B30183007300000EE +:10055000010001001C3011301030010001000100C9 +:100560000E30173001000100010001000F3019307A +:10057000010001000100010001000930010001003B +:10058000010001001D3001001630010000000100D3 +:100590000100010001000100000001000100010054 +:1005A0000100010001000100010001000100010043 +:1005B0000100010001000100010001000100010033 +:1005C0000100010001000100010001000100010023 +:1005D0000100000001000100010000000100000016 +:1005E0000100010001000000010000000100010005 +:1005F00001000100010000000100010001000100F4 +:1006000001000100010001000100010001000100E2 +:1006100001000100010001000100010001000100D2 +:1006200001000100010001000100010001000100C2 +:1006300001000100000016034500720067006F0012 +:1006400044006F007800200045005A0000001603A7 +:100650004500720067006F0044006F0078002000C2 +:1006600045005A0000000403090409026D0004015A +:1006700000A0FA0904000001030101000921110191 +:100680000001223F000705810308000A0904010058 +:100690000103010200092111010001224D0007059B +:1006A000820308000A090402000103000000092176 +:1006B000110100012236000705830308000A09041E +:1006C000030001030000000921110100012239008B +:1006D000070584031000011201100100000008ED5D +:1006E000FE071301000102000105010906A1010531 +:1006F0000719E029E7150025019508750181020514 +:100700000819012905950575019102950175039157 +:1007100001050719002977150025019578750181D4 +:1007200002C005010980A101850216010026B7005B +:100730001A01002AB700751095018100C0050C0947 +:1007400001A1018503160100269C021A01002A9CC2 +:1007500002751095018100C005010902A10109017E +:10076000A100050919012905150025019505750147 +:100770008102950175038101050109300931158157 +:10078000257F95027508810609381581257F950119 +:1007900075088106050C0A38021581257F950175BB +:1007A000088106C0C005010906A101050719E02955 +:1007B000E7150025019508750181029501750881ED +:1007C0000105081901290595057501910295017525 +:1007D0000391010507190029FF150025FF950675EE +:1007E000088100C0000000000000000000000001BF +:1007F0000204060A0F17202C3A4A5D71879DB3C781 +:10080000DAE9F5FCFFFCF5E9DAC7B39D87715D4ACB +:100810003A2C20170F0A0604020100000000000015 +:100820000000000011241FBECFEFDAE0DEBFCDBF15 +:1008300004B603FE24C08091F1019091F201A091D1 +:10084000F301B091F4018730904BA740B04BB9F45D +:100850001092F1011092F2011092F3011092F40142 +:1008600014BE84B7877F84BF88E10FB6F894809365 +:100870006000109260000FBEE0E0FFE3099511E018 +:10088000A0E0B1E0E0E3FDE402C005900D92A433E6 +:10089000B107D9F711E0A4E3B1E001C01D92A13F77 +:1008A000B107E1F70E94950C0C9496260C94000079 +:1008B000282F882341F090E02A3018F4885A9F4F5F +:1008C00008950697089582E690E008950F931F9388 +:1008D000CF93DF938C01EB0180913401909135012E +:1008E000009709F448C0019709F089C080EE0E9482 +:1008F000F71281EE0E94F71288E10E94F71288E158 +:100900000E94BF13C801807F992724E096958795A0 +:100910002A95E1F70E945804182F0E94F712812FA0 +:100920000E94BF13802F8F700E945804182F0E94BE +:10093000F712812F0E94BF13CE01807F992734E0E8 +:10094000969587953A95E1F70E945804D82F0E9412 +:10095000F7128D2F0E94BF138C2F8F700E945804A6 +:10096000C82F0E94F7128C2F0E94BF1380EE0E94A6 +:10097000BF1381EE3EC082EE0E94F71287E50E940F +:10098000F71287E50E94BF13C801807F992744E0D2 +:10099000969587954A95E1F70E945804182F0E9472 +:1009A000F712812F0E94BF13802F8F700E9458046E +:1009B000182F0E94F712812F0E94BF13CE01807F53 +:1009C000992754E0969587955A95E1F70E94580427 +:1009D000D82F0E94F7128D2F0E94BF138C2F8F707B +:1009E0000E945804C82F0E94F7128C2F0E94BF1338 +:1009F00082EEDF91CF911F910F910C94BF13DF9185 +:100A0000CF911F910F910895FC018281882309F4F1 +:100A10003CC1862F90E08F35910508F036C1FC016E +:100A2000EA5AFF4F0C944B26809134019091350186 +:100A3000019681709927909335018093340125C1E7 +:100A40006FEB70E019C160E970E008C061EA70E026 +:100A500013C163E870E00BC16BE570E081E290E0E8 +:100A600012C16BEB70E008C163E570E0F7CF6EEB8D +:100A700070E002C164E070E0D4C069EB70E001C1D5 +:100A800062EB70E0F9C065E870E0F1C069E970E020 +:100A9000F3C065E570E0E2CF68EC70E0EDC069E8B6 +:100AA00070E0E5C064E770E0E2C062E970E0D6CFD4 +:100AB00066E770E0DCC063E970E0D0CF60EC70E026 +:100AC000DBC062EB70E0DDC069EA70E0D5C068EAC7 +:100AD00070E0D2C064E870E0CAC06DE970E0CCC0DC +:100AE00067EF70E0CEC063EC70E0C6C061EC70E010 +:100AF000C3C069E570E0B2CF63EB70E0BDC064E5F0 +:100B000070E0ACCF6DEB70E0B7C066EB70E0B4C0E6 +:100B100065EB70E0B1C06AEB70E0AEC067E770E013 +:100B2000A6C060EA70E0A8C062EC70E0A5C06EE903 +:100B300070E0A2C068EB70E09FC067EB70E09CC003 +:100B400062E870E094C063E470E06BC061EB70E059 +:100B500093C066EA70E090C066EC70E08DC06EE114 +:100B600070E05FC06FE970E087C068E070E059C076 +:100B700067ED70E086C060E870E079C063EA70E01D +:100B80007BC069EC70E078C061E870E070C066E935 +:100B900070E072C064EC70E06FC065E770E067C041 +:100BA00063E070E03EC061EB70E06BC06EEB70E044 +:100BB00068C063EB70E065C065E070E032C061E979 +:100BC00070E04CCF69E770E052C064EB70E054C055 +:100BD0006CEB70E051C06AE970E04EC068E870E00C +:100BE00046C061E970E048C067E870E040C062E973 +:100BF00070E042C067E970E03FC068E770E037C06E +:100C000060E770E034C069E070E00BC065EC70E054 +:100C100033C060E670E005C067EA70E02DC060E0B8 +:100C200070E082E290E02FC064EA70E025C06CEBD7 +:100C300070E027C067EC70E01FC068E970E01CC07E +:100C400069EB70E019C06BE970E016C06FE770E007 +:100C50000EC065EA70E010C06CE970E00DC065E997 +:100C600070E00AC063E970E007C066E870E080E207 +:100C700090E009C064E970E083E090E004C06DEBAF +:100C800070E080E090E00E94660480E090E00895CB +:100C900008956091B3017091B4018091B501909174 +:100CA000B6010E94A11D56985E9825982D98269809 +:100CB0002E9827982F988330A9F028F4813051F08E +:100CC000823069F012C0843041F0853071F4259A89 +:100CD0002D9A08C0259A2D9A0895259A2D9A269A1C +:100CE0002E9A0895279A2F9A089556985E980895F7 +:100CF0000C94490656985E9825982D9826982E981B +:100D000027982F988FEF90E0909389008093880028 +:100D100090938B0080938A0090938D0080938C0039 +:100D2000259A2D9A2FEF80E792E021508040904045 +:100D3000E1F700C00000269A2E9A2FEF80E792E09C +:100D4000215080409040E1F700C00000279A2F9A80 +:100D50002FEF80E792E0215080409040E1F700C003 +:100D6000000025982D982FEF80E792E021508040D9 +:100D70009040E1F700C0000026982E982FEF80E702 +:100D800092E0215080409040E1F700C00000279899 +:100D90002F9856985E9825982D9826982E982798E3 +:100DA0002F98089589EA8093800089E080938100DC +:100DB00024982C983F988AB18F748AB96E98479A74 +:100DC0008BB1806B8BB9769A0E947A060C94480698 +:100DD00080E2809300018091360181110EC00E9453 +:100DE000370781E0809336012FEF83ED90E32150A8 +:100DF00080409040E1F700C0000080E40E943D0781 +:100E00008093000181112EC00E946707809300012A +:100E1000811128C00E94670780930001811122C0C0 +:100E20008FE30E9467078093000181111BC00E941D +:100E30005F0780E40E943D0780930001811112C08A +:100E40008CE00E9467078093000181110BC00E9413 +:100E5000670780930001811105C08FE30E94670737 +:100E6000809300010E945F07809100010895109215 +:100E7000B9008AE08093B800089594EA9093BC008A +:100E80009091BC0097FFFCCF9091B900987F98306B +:100E900021F0903111F081E008958093BB0084E847 +:100EA0008093BC008091BC0087FFFCCF8091B9008B +:100EB000887F883111F0803471F780E0089584E9EB +:100EC0008093BC008091BC0084FDFCCF089580938A +:100ED000BB0084E88093BC008091BC0087FFFCCFFE +:100EE0009091B900987F81E0983209F480E00895EC +:100EF00084E88093BC008091BC0087FFFCCF809188 +:100F0000BB00089580910001811115C080E40E940A +:100F10003D078093000181110CC082E10E946707A8 +:100F200080930001811105C08FEF0E9467078093B5 +:100F300000010E945F0784B1807F84B985B1807F02 +:100F400085B98AB1837F8AB98BB1837F8BB93E988B +:100F5000469808950E94E806809300010E94820747 +:100F600080B38C7080BB81B3836F81BBE6E4F1E01A +:100F7000A8E3B1E011921D9281E0E435F807D1F7C2 +:100F80000C94D206BF92CF92DF92EF92FF920F9312 +:100F90001F93CF93DF9380910001882379F0809194 +:100FA00037018F5F80933701811108C00E94E806E6 +:100FB00080930001811102C00E947A0608E311E0CB +:100FC000C0E0D0E0DD24D39482E0C82EEE24E39488 +:100FD000F12CC73000F580910001811162C080E4DE +:100FE0000E943D0780930001811112C082E10E949E +:100FF00067078093000181110BC0C7010C2E01C04F +:10100000880F0A94EAF780950E9467078093000191 +:101010000E945F0746C0CA30A1F028F4C83059F0DA +:10102000C93061F005C0CC3089F070F0CD3089F066 +:10103000209A289810C0219A29980DC0229A2A989F +:101040000AC0239A2B9807C0529A01C0539A5B9802 +:1010500002C03E9A4698E0EAEA95F1F78FB1799995 +:101060005AC092E081708D25892B7C9B02C090E054 +:1010700001C094E0892B7D9B02C090E001C098E004 +:10108000892B7E9B02C090E001C090E1892B9FB12B +:101090009095991F9927991F9295990F907E892B6A +:1010A0000FC08091000181114BC080E40E943D0778 +:1010B00080930001882389F1B12C0E945F078B2D5A +:1010C000F8019081981719F08083C09201010E9465 +:1010D000820721960F5F1F4FCE30D10509F079CFDF +:1010E00080910101882371F181508093010188234F +:1010F00039F08FE99FE00197F1F700C0000022C0AE +:10110000A6E4B1E0E8E3F1E081918D9391E0E6346B +:10111000F907D1F717C090E0A5CF83E10E946707D8 +:10112000809300018111C8CF81E40E943D07809324 +:1011300000018111C1CF0E947807B82EB094BDCFB5 +:1011400080E0BECF0E94780681E0DF91CF911F91B1 +:101150000F91FF90EF90DF90CF90BF900895E82F10 +:10116000F0E0EA5BFE4F8081089508958B3B910586 +:1011700078F4883A910540F5853A9105D0F48430A9 +:10118000910508F0B1C08130910509F4ADC06BC084 +:10119000803E910508F467C0883E910508F4A4C01C +:1011A0009C01205F31092031310508F05CC0906559 +:1011B0000895853A910509F459C0863A910509F4D4 +:1011C00058C083E890E40895883A910509F454C022 +:1011D000893A910509F453C08A3A910509F452C03D +:1011E0008B3A910509F451C08C3A910509F450C02D +:1011F0008D3A910509F44FC0803B910509F44EC02A +:101200008E3A910509F44DC08F3A910509F44CC00E +:10121000813B910509F44BC0823B910509F44AC01A +:10122000833B910509F449C0843B910509F448C00A +:10123000853B910509F447C0863B910509F446C0FA +:10124000873B910509F445C0883B910509F444C0EA +:10125000893B910509F443C08A3B910509F042C0DE +:101260008AE296E4089580E090E0089581E890E4B1 +:10127000089582E890E4089582EE94E4089589EE5A +:1012800094E408958AEE94E4089585EB94E4089537 +:1012900086EB94E4089587EB94E408958CEC94E451 +:1012A00008958DEC94E4089583E895E408958AE820 +:1012B00095E4089582E995E4089584E995E4089514 +:1012C00081E296E4089583E296E4089584E296E448 +:1012D000089585E296E4089586E296E4089587E20B +:1012E00096E4089580E094E40895089596E0799F47 +:1012F000F001112494E5899FE00DF11D1124E60F02 +:10130000F11DEE0FFF1FE256FE4F85919491089557 +:10131000880F991F825E9F4FFC01859194910895DB +:10132000880F991F82569E4FFC01859194910895D4 +:1013300026E0729FF001112444E5849FE00DF11D29 +:101340001124E60FF11DEE0FFF1FE256FE4F25910F +:101350003491C9019A9581159F4110F4C9010895EE +:10136000C90190528115904128F4C9019F700E94D3 +:1013700090090895C90190538115904120F4C90145 +:101380009927906C0895211580E5380769F40E942B +:101390003D179FEF24E34CE0915020404040E1F79F +:1013A00000C000000C949A1E213080E5380731F40B +:1013B0008091CF0181608093CF010895C90190553C +:1013C0008115904108F050C0832F99278F7099277D +:1013D00081309105D9F4A9014370552702C0880FC7 +:1013E000991F4A95E2F79C68A90164E0440F551FD4 +:1013F0006A95E1F744275370842B952B73E0220FF5 +:10140000331F7A95E1F7207633271DC0823091058E +:1014100029F4922F8827816F906A0895833091056F +:10142000A9F4A9014370552781E090E002C0880F1C +:10143000991F4A95E2F79C6843E0220F331F4A95B3 +:10144000E1F7207E3770822B932B08950497F1F4F7 +:10145000A9014370552781E090E002C0880F991FD1 +:101460004A95E2F79A68E8CFC901905781159041F3 +:1014700020F4C9019F7090620895C90190588115A8 +:10148000904120F4C9019F70906A0895203E310573 +:10149000E0F4203C310558F52133310509F470C0E2 +:1014A00048F42932310509F464C02A32310509F4BF +:1014B0006EC074C029333105F1F022383105D9F0FE +:1014C0002533310509F44EC069C0233E310589F149 +:1014D00038F4203E3105C1F0223E3105E1F05EC016 +:1014E000263E310569F1273E3105A9F157C0C901F2 +:1014F0000E94880908958091E20180FD02C081FF69 +:101500004DC080EE90E04BC08091E20180FFF9CFAA +:1015100089E390E044C08091E20182FF0EC0809197 +:10152000E20184FF03C080E090E039C083EE90E0E8 +:1015300036C08091E20182FFF2CF82EE90E02FC0B0 +:101540008091E20183FF0BC08091E20184FDEBCF2B +:1015500087EE90E024C08091E20183FFF5CF86EE14 +:1015600090E01DC08091E20185FF07C089E290E014 +:1015700016C08091E20185FFF9CF85E390E00FC0AE +:101580008091E20186FF07C08AE290E008C0809166 +:10159000E20186FFF9CF81E390E001C0C9010E941A +:1015A000B608089508950C94D20A809164010895B4 +:1015B000CF93DF9300D01F92CDB7DEB72091E80123 +:1015C000243019F523E029839B838A832093E90043 +:1015D0008FEF9091E800815095FD06C095ED9A95AA +:1015E000F1F700008111F5CF8091E80085FF0DC073 +:1015F00040E050E063E070E0CE0101960E94420DB1 +:101600008091E8008E778093E8000F900F900F9004 +:10161000DF91CF910895CF93DF9300D01F92CDB784 +:10162000DEB72091E801243021F522E029839B8355 +:101630008A8383E08093E9008FEF9091E8008150E6 +:1016400095FD06C095ED9A95F1F700008111F5CF53 +:101650008091E80085FF0DC040E050E063E070E05D +:10166000CE0101960E94420D8091E8008E77809312 +:10167000E8000F900F900F90DF91CF910895209187 +:10168000E8012430F1F422E02093E9002FEF3091BB +:10169000E800215035FD06C035ED3A95F1F7000020 +:1016A0002111F5CF2091E80025FF0BC040E050E06C +:1016B00065E070E00E94420D8091E8008E77809393 +:1016C000E8000895CF93DF93EC018091E801843026 +:1016D00009F046C090910C019923D9F090910D0129 +:1016E0009923B9F08093E9008FEF9091E800815041 +:1016F00095FD06C095E19A95F1F700008111F5CFAF +:101700008091E80085FF2CC040E050E060E170E08F +:1017100017C081E08093E9008FEF9091E80081503D +:1017200095FD06C095ED9A95F1F700008111F5CF72 +:101730008091E80085FF14C040E050E068E070E070 +:10174000CE010E94420D8091E8008E778093E800E0 +:1017500080E1FE01A4E5B1E001900D928A95E1F7E8 +:10176000DF91CF9108958091E701811109C00E9416 +:10177000D40E0E94310F8091E20084608093E200D9 +:1017800008951092E701089508950C94C3240E94CF +:10179000311E0E94C9240E94CE110C94D30A42E04B +:1017A00061EC81E00E944E0E42E061EC82E00E941A +:1017B0004E0E42E061EC83E00E944E0E42E161EC8D +:1017C00084E00C944E0E8091EA01833009F455C0F8 +:1017D00030F4813071F0823009F48EC008958A307F +:1017E00009F47AC08B3009F460C0893009F09CC0DC +:1017F00020C08091E901813A09F096C08091E8000B +:10180000877F8093E8008091ED019091EE01892B14 +:1018100021F060E080E090E003C060E184E591E0C9 +:1018200070E00E948B0D8091E8008B778093E80038 +:1018300008958091E901813209F076C08091ED012F +:101840009091EE01009719F0039709F06DC0809117 +:10185000E800877F8093E8008091E80082FD05C062 +:101860008091E8018111F8CF5FC08091F1008093F1 +:1018700064018091E8008B7753C08091E901813A3F +:1018800009F052C08091ED019091EE01892B09F091 +:101890004BC08091E800877F8093E8008091E8004A +:1018A00080FFFCCF80910C0136C08091E90181322C +:1018B000D9F58091ED019091EE01892BA9F58091E8 +:1018C000E800877F8093E8000E94830E8091EB01FF +:1018D00080930C010C943D178091E901813221F530 +:1018E0008091E800877F8093E8000E94830E8091BA +:1018F000EC018093650108958091E901813AA1F49A +:101900008091E800877F8093E8008091E80080FF65 +:10191000FCCF809165018093F1008091E8008E7783 +:101920008093E8000C94830E089584B7877F84BF6A +:1019300088E10FB6F89480936000109260000FBEAB +:1019400090E080E80FB6F894809361009093610076 +:101950000FBE0E941D120E94D40E0E94310F809172 +:10196000E20084608093E20078940E94AC110E94AF +:101970001F1282E091E00E94C9110E94B12480915F +:10198000E801853069F40E94F41D8091E601882306 +:10199000B1F30E941C1E882391F30E942C0DEFCFFF +:1019A0000E942512ECCF292F332723303105A9F0CF +:1019B0006CF42130310509F442C02230310509F0C0 +:1019C00043C08DE690E02AE636E042C02132310580 +:1019D000C9F02232310519F137C0992781309105BC +:1019E00041F08230910541F0892B71F5E6E6F6E091 +:1019F00005C0EEE4F6E002C0E6E3F6E0849190E094 +:101A00009F0126C0643000F5E62FF0E0EE0FFF1FC7 +:101A1000EE5DFE4F2081318189E090E019C0643095 +:101A200098F4E62FF0E0DF01AA0FBB1FA65EBE4FC1 +:101A30002D913C91EA5EFE4F808190E009C082E1E9 +:101A400090E027ED36E004C080E090E020E030E058 +:101A5000FA0131832083089580E189BD82E189BD47 +:101A600009B400FEFDCF8091D8008F7D8093D8000F +:101A70008091E00082608093E0008091E00081FD31 +:101A8000FCCF0895CF92DF92EF92FF920F931F93B6 +:101A9000CF93DF937C018B01EA010E94A40E811198 +:101AA00031C0209731F088819981081B190BE80E0D +:101AB000F91EC12CD12C0115110519F18091E800F6 +:101AC00085FD14C08091E8008E778093E800209710 +:101AD00041F0888199818C0D9D1D9983888385E0D3 +:101AE00011C00E94A40E882331F30CC0F70181912C +:101AF0007F018093F10001501109FFEFCF1ADF0A37 +:101B0000DACF80E0DF91CF911F910F91FF90EF909E +:101B1000DF90CF9008952091EF013091F0012617CA +:101B2000370748F06115710539F42091E8002E77E8 +:101B30002093E80001C0B901FC0120E061157105A6 +:101B4000B9F18091E801882309F440C0853009F497 +:101B50003FC08091E80083FD3DC08091E80082FF96 +:101B600006C08091E80082FF26C080E00895809141 +:101B7000E80080FFE3CF2091F3008091F20090E035 +:101B8000922B6115710551F08830910538F421913F +:101B90002093F100615071090196F3CF21E008977D +:101BA00009F020E08091E8008E778093E800C6CFAE +:101BB0002111C7CFD6CF8091E801882339F0853035 +:101BC00039F08091E80083FFCCCF04C082E0089513 +:101BD00083E0089581E008952091EF013091F001B4 +:101BE0002617370748F06115710539F42091E80090 +:101BF0002E772093E80001C0B901FC0120E06115B7 +:101C00007105C1F18091E801882309F441C0853054 +:101C100009F440C08091E80083FD3EC08091E80057 +:101C200082FF06C08091E80082FF27C080E008950F +:101C30008091E80080FFE3CF2091F3008091F200D3 +:101C400090E0922B6115710559F08830910540F4B0 +:101C500024912093F1003196615071090196F2CFE1 +:101C600021E0089709F020E08091E8008E778093CA +:101C7000E800C5CF2111C6CFD5CF8091E8018823D8 +:101C800039F0853039F08091E80083FFCBCF04C074 +:101C900082E0089583E0089581E00895982F9730B9 +:101CA00058F59093E900981739F07091EC00209165 +:101CB000ED005091F00003C0242F762F50E021FF5B +:101CC00019C03091EB003E7F3093EB003091ED0076 +:101CD0003D7F3093ED003091EB0031603093EB00AD +:101CE0007093EC002093ED005093F0002091EE00F3 +:101CF00027FF07C09F5FD3CF8F708093E90081E0FB +:101D0000089580E008958091E90187FD05C08091E4 +:101D1000E80080FF0EC012C08091E80082FD05C07F +:101D20008091E8018111F8CF08958091E8008B77C8 +:101D300008C08091E8018111EACF08958091E80000 +:101D40008E778093E80008958091E4009091E500FB +:101D500045E62091EC0020FF21C02091E80020FD05 +:101D600021C02091E801222389F0253089F02091BB +:101D7000EB0025FD0FC02091E4003091E50028170D +:101D8000390739F3415041F0C901E3CF82E00895AA +:101D900083E0089581E0089584E008952091E800AB +:101DA00022FFDFCF80E008950E94420F0E944A0F79 +:101DB000E0EEF0E0808181608083E8EDF0E08081FA +:101DC0008F77808319BCA7EDB0E08C918E7F8C93C8 +:101DD00080818F7E80831092E70108950F931F9377 +:101DE000CF93DF930E94420F0E944A0FC8EDD0E0CC +:101DF00088818F77888388818068888388818F7DB8 +:101E0000888319BC1092E8011092E4011092E60157 +:101E10001092E50100EE10E0F80180818B7F808355 +:101E200088818160888342E060E080E00E944E0EFD +:101E3000E1EEF0E080818E7F8083E2EEF0E0808151 +:101E400081608083808188608083F80180818E7FBB +:101E50008083888180618883DF91CF911F910F916A +:101E60000895E8EDF0E080818F7E8083E7EDF0E07B +:101E700080818160808384E082BF81E08093E7017C +:101E80000C94EE0EE8EDF0E080818E7F808310925E +:101E9000E20008951092DA001092E10008951F9276 +:101EA0000F920FB60F9211242F933F934F935F938E +:101EB0006F937F938F939F93AF93BF93EF93FF9312 +:101EC0008091E10082FF0BC08091E20082FF07C099 +:101ED0008091E1008B7F8093E1000E94AB118091A3 +:101EE000DA0080FF1FC08091D80080FF1BC0809166 +:101EF000DA008E7F8093DA008091D90080FF0DC0D8 +:101F000080E189BD82E189BD09B400FEFDCF81E099 +:101F10008093E8010E94B30B05C019BC1092E80140 +:101F20000E94C10B8091E10080FF19C08091E20006 +:101F300080FF15C08091E2008E7F8093E200809147 +:101F4000E20080618093E2008091D80080628093FB +:101F5000D80019BC85E08093E8010E94C50B8091F0 +:101F6000E10084FF30C08091E20084FF2CC080E15A +:101F700089BD82E189BD09B400FEFDCF8091D80002 +:101F80008F7D8093D8008091E1008F7E8093E10067 +:101F90008091E2008F7E8093E2008091E200816078 +:101FA0008093E2008091E401882311F084E007C06F +:101FB0008091E30087FF02C083E001C081E080934D +:101FC000E8010E94C70B8091E10083FF29C0809146 +:101FD000E20083FF25C08091E100877F8093E100CC +:101FE00082E08093E8011092E4018091E1008E7F0D +:101FF0008093E1008091E2008E7F8093E2008091E7 +:10200000E20080618093E20042E060E080E00E94B4 +:102010004E0E8091F00088608093F0000E94C40B07 +:10202000FF91EF91BF91AF919F918F917F916F91B0 +:102030005F914F913F912F910F900FBE0F901F9086 +:1020400018951F920F920FB60F9211242F933F9362 +:102050004F935F936F937F938F939F93AF93BF93B0 +:10206000CF93EF93FF93C091E900CF708091EC0084 +:102070001092E9008091F000877F8093F0007894BF +:102080000E945D101092E9008091F00088608093BA +:10209000F000C093E900FF91EF91CF91BF91AF9114 +:1020A0009F918F917F916F915F914F913F912F9170 +:1020B0000F900FBE0F901F9018951F93CF93DF9333 +:1020C000CDB7DEB7AA970FB6F894DEBF0FBECDBF6F +:1020D000E9EEF1E08091F100819321E0E13FF20728 +:1020E000C9F70E94E30B8091E80083FF1CC1209197 +:1020F000E9013091EA01832F90E08A30910508F0E0 +:1021000012C1FC01EB54FF4F0C944B26203881F098 +:10211000223809F008C18091ED018F708093E900A9 +:102120008091EB0085FB882780F91092E90006C0BA +:102130008091E5019091E601911182609091E80013 +:10214000977F9093E8008093F1001092F100C5C052 +:10215000822F8D7F09F0E7C0222319F0223061F031 +:10216000E2C08091EB01813009F0DDC0333009F02D +:1021700080E08093E60128C08091EB01811124C0AA +:102180002091ED012F7009F4CEC02093E9008091D9 +:10219000EB0080FF19C08091EB00333011F48062B6 +:1021A00011C080618093EB0081E090E0022E01C0BD +:1021B000880F0A94EAF78093EA001092EA0080916F +:1021C000EB0088608093EB001092E9008091E800BA +:1021D000877F86C02111A7C01091EB011F778091E6 +:1021E000E3008078812B8093E3008091E800877F73 +:1021F0008093E8000E94830E8091E80080FFFCCF6E +:102200008091E30080688093E300112311F083E064 +:1022100001C082E08093E80186C02058223008F097 +:1022200082C08091EB019091EC018C3D23E09207FC +:1022300079F583E08A838AE289834FB7F894DE01D7 +:10224000139620E03EE051E2E32FF0E05093570078 +:10225000E49120FF03C0E295EF703F5FEF708E2F97 +:1022600090E0EA3010F0C79601C0C0968D939D9320 +:102270002F5F243149F74FBF8091E800877F80931B +:10228000E8006AE270E0CE0101960E948B0D14C056 +:10229000AE014F5F5F4F6091ED010E94D30C00973C +:1022A00009F441C02091E800277F2093E800BC0199 +:1022B00089819A810E94EC0D8091E8008B77809350 +:1022C000E80031C0203879F58091E800877F80935D +:1022D000E8008091E4018093F1008091E8008E771E +:1022E0008093E8000E94830E1EC021111CC09091B3 +:1022F000EB019230C0F48091E800877F8093E80082 +:102300009093E4010E94830E8091E401811104C046 +:102310008091E30087FF02C084E001C081E08093E8 +:10232000E8010E94CF0B8091E80083FF0AC08091F2 +:10233000E800877F8093E8008091EB0080628093C3 +:10234000EB00AA960FB6F894DEBF0FBECDBFDF91AB +:10235000CF911F9108950895CF938091E80188232C +:10236000B1F08091E9008F709091EC0090FF02C075 +:1023700090E801C090E0C92FC82B1092E90080912D +:10238000E80083FD0E945D10CF70C093E900CF91FB +:10239000089590936B0180936A010895E0916A011A +:1023A000F0916B01309721F00190F081E02D0994BC +:1023B00080E00895E0916A01F0916B01309721F07F +:1023C0000280F381E02D09940895E0916A01F09173 +:1023D0006B01309721F00480F581E02D0994089578 +:1023E00020916801309169018217930771F09093F1 +:1023F000690180936801E0916A01F0916B01309767 +:1024000021F00680F781E02D09940895209166015E +:10241000309167018217930771F090936701809361 +:102420006601E0916A01F0916B01309721F0008420 +:10243000F185E02D0994089508950C941C120E94D2 +:10244000371E0E94AA070C94FD1ECF92DF92EF92D6 +:10245000FF920F931F93CF93DF93CDB7DEB72B97E8 +:102460000FB6F894DEBF0FBECDBF0E94C2073DE697 +:10247000E32E31E0F32E00E010E0C02E802F0E940A +:10248000AF08F701D1907F01D826B1F40F5F1F4F3D +:102490000E30110591F78FEF89838A831B820E948A +:1024A000401E8160782F9D838C8349815A816B8186 +:1024B0008D810E94C81241C09091CF0191FF04C04C +:1024C0008B870E94B5088B8520E030E04D2D50E0D1 +:1024D000922FBA01022E02C0759567950A94E2F711 +:1024E00060FF25C02E83CF82EE24E394F12C02C03E +:1024F000EE0CFF1C9A95E2F790E08E219F2121E0DF +:10250000892B09F420E028870E94401E8160782FE3 +:102510009A8789874E815F8168858A850E94C81263 +:10252000F801E359FE4F80818E25808306C02F5F1E +:102530003F4F2630310561F6A9CF0E94E12110916D +:102540006C010E94CE111817A1F00E94CE11809349 +:102550006C012B960FB6F894DEBF0FBECDBFDF9196 +:10256000CF911F910F91FF90EF90DF90CF900C943F +:10257000D30A2B960FB6F894DEBF0FBECDBFDF9106 +:10258000CF911F910F91FF90EF90DF90CF90089522 +:10259000CF93DF93CDB7DEB72B970FB6F894DEBF9E +:1025A0000FBECDBF4F83588769877A878B87DE013F +:1025B000119686E0FD0111928A95E9F785E0FE010A +:1025C000379601900D928A95E1F749815A816B8186 +:1025D0007C818D819E810E94091A2B960FB6F894FA +:1025E000DEBF0FBECDBFDF91CF9108950895CF9389 +:1025F000C82F882309F4C1C0823859F40E94CE1133 +:1026000081FDBBC089E30E94A81C0E94721D89E362 +:102610000CC0833879F40E94CE1180FDAEC083E5F2 +:102620000E94A81C0E94721D83E50E94E81CCF91A5 +:102630000C94721D843859F40E94CE1182FD9DC005 +:1026400087E40E94A81C0E94721D87E4EECF8CEFE5 +:102650008C0F813A48F48C2F0E94192481118DC06F +:102660008C2F0E94A81CE3CF80E28C0F883048F4A6 +:10267000C77081E001C0880FCA95EAF70E94291D42 +:10268000D6CF8BE58C0F833078F4C53A29F0C63A63 +:1026900031F482E890E005C081E890E002C083E870 +:1026A00090E0CF910C94F01188E58C0F833108F005 +:1026B00064C0C83A39F1C93A41F1CA3A49F1CB3A52 +:1026C00051F1CC3A59F1CD3A61F1C03B69F1CE3AC2 +:1026D00071F1CF3A79F1C13B81F1C23B89F1C33B42 +:1026E00091F1C43B99F1C53BA1F1C63BA9F1C73BB0 +:1026F000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2A6 +:1027000092E038C082EE90E035C089EE90E032C0B1 +:102710008AEE90E02FC085EB90E02CC086EB90E035 +:1027200029C087EB90E026C08CEC90E023C08DECB4 +:1027300090E020C083E891E01DC08AE891E01AC0D3 +:1027400082E991E017C084E991E014C081E292E04F +:1027500011C083E292E00EC084E292E00BC085E2F9 +:1027600092E008C086E292E005C087E292E002C0F3 +:1027700080E090E0CF910C940612CF9108958823C9 +:1027800009F44BC0823859F40E94CE1181FF45C034 +:1027900089E30E94A81C0E94721D89E30CC0833843 +:1027A00071F40E94CE1180FF38C083E50E94A81CFE +:1027B0000E94721D83E50E94E81C0C94721D8438EF +:1027C00059F40E94CE1182FF28C087E40E94A81C01 +:1027D0000E94721D87E4EFCF9CEF980F913A58F357 +:1027E00090E2980F983050F4877091E001C0990FF3 +:1027F0008A95EAF7892F0E942F1DDFCF9BE5980F5E +:10280000933020F480E090E00C94F011885A8331EA +:1028100020F480E090E00C9406120895882321F0C3 +:102820000E94291D0C94721D0895882321F00E9496 +:102830002F1D0C94721D0895CF92DF92EF92FF929C +:102840000F931F93CF93DF93CDB7DEB728970FB6C3 +:10285000F894DEBF0FBECDBF8C0185E0F801DE012C +:10286000119601900D928A95E1F7F801D080E180F0 +:10287000F280258122952F7083819481892B39F0F4 +:10288000FFEFEF1206C081E0DF1203C003C081E05A +:1028900001C080E080FDCEC2C8012F830E94F612E5 +:1028A000D982EA8289819A810E94661C9E838887E8 +:1028B0000E94651C0E94381B2F814E816885FF2075 +:1028C00029F00E94461D68854E812F81E42FE295F4 +:1028D000EF70F0E0E154FF4F0C944B26842F807F83 +:1028E000142F1F70882311F01295107FFF2059F0CC +:1028F000112309F454C2812F68870E94391D0E9458 +:10290000721D68854CC2862F0E94BF13112309F4E3 +:1029100091C2812F0E943F1D28960FB6F894DEBF0A +:102920000FBECDBFDF91CF911F910F91FF90EF9020 +:10293000DF90CF900C94721D342F307F842F8F70D6 +:10294000303211F08295807F662319F0613019F1E1 +:102950002BC0FF20B1F0222309F493C1213009F0EC +:1029600090C128960FB6F894DEBF0FBECDBFDF91A1 +:10297000CF911F910F91FF90EF90DF90CF900C942B +:10298000591D222319F0213009F454C28E830E946C +:102990005C1D8E8189C1FF2021F0223008F04AC2DF +:1029A00070C1211147C280C1FF2021F0222309F408 +:1029B00068C1F5C1222309F477C105C2242F2695E9 +:1029C0002695237030E02115310521F021303105A5 +:1029D000C9F030C2FF2021F0862F942F937002C0DF +:1029E00080E090E028960FB6F894DEBF0FBECDBF12 +:1029F000DF91CF911F910F91FF90EF90DF90CF90DB +:102A00000C94F011FF2021F0862F942F937002C0B8 +:102A100080E090E028960FB6F894DEBF0FBECDBFE1 +:102A2000DF91CF911F910F91FF90EF90DF90CF90AA +:102A30000C940612862FFF2019F00E94E92002C094 +:102A40000E94512128960FB6F894DEBF0FBECDBF6D +:102A5000DF91CF911F910F91FF90EF90DF90CF907A +:102A60000C94D621842F837009F076C0F110E2C156 +:102A7000262F229526952770220F220F862F8F70E2 +:102A8000C82ED12CE12CF12C022E04C0CC0CDD1C64 +:102A9000EE1CFF1C0A94D2F764FF10C06FE070E0D8 +:102AA00080E090E004C0660F771F881F991F2A9569 +:102AB000D2F7609570958095909503C060E070E0C6 +:102AC000CB01242F269526952370422F50E04230CB +:102AD0005105D1F04330510559F16C297D298E29DA +:102AE0009F294130510541F128960FB6F894DEBF79 +:102AF0000FBECDBFDF91CF911F910F91FF90EF904F +:102B0000DF90CF900C945D1B6C297D298E299F2925 +:102B100028960FB6F894DEBF0FBECDBFDF91CF91E0 +:102B20001F910F91FF90EF90DF90CF900C94771B47 +:102B30000E945D1BC701B60128960FB6F894DEBF50 +:102B40000FBECDBFDF91CF911F910F91FF90EF90FE +:102B5000DF90CF900C94431BFF2019F0842F8170DD +:102B600001C08695882309F465C1262F22952695F4 +:102B70002770220F220F862F8F70C82ED12CE12CA8 +:102B8000F12C022E04C0CC0CDD1CEE1CFF1C0A94A0 +:102B9000D2F764FF10C06FE070E080E090E004C006 +:102BA000660F771F881F991F2A95D2F76095709539 +:102BB0008095909503C060E070E0CB01242F2695AE +:102BC00026952370422F50E042305105D1F043301A +:102BD000510559F16C297D298E299F2941305105D4 +:102BE00041F128960FB6F894DEBF0FBECDBFDF913E +:102BF000CF911F910F91FF90EF90DF90CF900C94A9 +:102C0000311C6C297D298E299F2928960FB6F894AE +:102C1000DEBF0FBECDBFDF91CF911F910F91FF900F +:102C2000EF90DF90CF900C944B1C0E94311CC70199 +:102C3000B60128960FB6F894DEBF0FBECDBFDF9168 +:102C4000CF911F910F91FF90EF90DF90CF900C9458 +:102C5000171C603FC9F118F4603E50F49BC0623FFE +:102C600009F460C008F44AC0633F09F46FC092C021 +:102C7000162F1F70842F8F71FF2099F00E94B01BB8 +:102C8000812F28960FB6F894DEBF0FBECDBFDF911F +:102C9000CF911F910F91FF90EF90DF90CF900C9408 +:102CA0000E140E94D11B812F28960FB6F894DEBF18 +:102CB0000FBECDBFDF91CF911F910F91FF90EF908D +:102CC000DF90CF900C941514FF20A1F02111B2C019 +:102CD000842F8F7128960FB6F894DEBF0FBECDBF3C +:102CE000DF91CF911F910F91FF90EF90DF90CF90E8 +:102CF0000C94F61B223008F09DC0EACFFF20A1F013 +:102D0000842F8F7128960FB6F894DEBF0FBECDBF0B +:102D1000DF91CF911F910F91FF90EF90DF90CF90B7 +:102D20000C94B01BFF2061F3842F8F7128960FB68F +:102D3000F894DEBF0FBECDBFDF91CF911F910F91F1 +:102D4000FF90EF90DF90CF900C94D11BFF2091F07B +:102D5000842F8F7128960FB6F894DEBF0FBECDBFBB +:102D6000DF91CF911F910F91FF90EF90DF90CF9067 +:102D70000C949B1B28960FB6F894DEBF0FBECDBFF8 +:102D8000DF91CF911F910F91FF90EF90DF90CF9047 +:102D90000C94911BFF20A1F0222309F4B1CF862FC0 +:102DA00028960FB6F894DEBF0FBECDBFDF91CF914E +:102DB0001F910F91FF90EF90DF90CF900C94F7123E +:102DC000222309F4B1CF862F28960FB6F894DEBFE0 +:102DD0000FBECDBFDF91CF911F910F91FF90EF906C +:102DE000DF90CF900C94BF134F70C8010E94040570 +:102DF00028960FB6F894DEBF0FBECDBFDF91CF91FE +:102E00001F910F91FF90EF90DF90CF900C94B61A26 +:102E10004F70C80128960FB6F894DEBF0FBECDBF25 +:102E2000DF91CF911F910F91FF90EF90DF90CF90A6 +:102E30000C94750928960FB6F894DEBF0FBECDBF6F +:102E4000DF91CF911F910F91FF90EF90DF90CF9086 +:102E500008950E94461D0E94561D0E941B1D0E943F +:102E6000721D0E9482220E94D62180E090E00E9482 +:102E7000F01180E090E00C9406120E94361D0C9434 +:102E800029170E94661C292F22952F7030E02C30C4 +:102E900031054CF42A3031056CF4225031092230CE +:102EA000310590F407C02C30310551F02F30310539 +:102EB00039F00AC0803E10F0803F31F481E008957F +:102EC00093FB882780F9089580E00895CF93DF93DE +:102ED00000D000D01F92CDB7DEB70F900F900F90AB +:102EE0000F900F90DF91CF910895CF93DF9300D093 +:102EF00000D000D0CDB7DEB726960FB6F894DEBF6F +:102F00000FBECDBFDF91CF9108951F93CF93DF9375 +:102F1000C0917B0116E080917C01C81799F0D0E048 +:102F20001C9FF0011D9FF00D1124E358FE4F4081BE +:102F3000518162817381848195810E9475172196E8 +:102F4000C770E9CFDF91CF911F9108954091AD01F6 +:102F50005091AE016091AF017091B0018091B101CB +:102F60009091B2010C947517CF938091B201829524 +:102F70008F7009F05FC08091AF01882309F45AC0B7 +:102F800020917B01A0917C016091AD017091AE0117 +:102F90008091B0019091B10131E06F3F09F030E0D4 +:102FA000B32FC6E02A1709F445C0009721F07F3FF0 +:102FB00021F44B2F03C041E001C040E030E040FD70 +:102FC00035C0C29FF001C39FF00D1124E358FE4F9E +:102FD000418174132BC04081641328C04281411188 +:102FE00025C0438154814817590710F441505109B5 +:102FF000481B590B483C5105C8F48091B2018F70B1 +:1030000080618093B20186E0829FF001839FF00D82 +:103010001124EE57FE4F80818F70806180838DEA8E +:1030200091E00E941C14CF910C9485172F5F3F4FA5 +:103030002770B8CFCF910895CF92DF92EF92FF9291 +:103040000F931F93CF93DF93CDB7DEB762970FB681 +:10305000F894DEBF0FBECDBF8C0185E0F801DE0124 +:103060001D9601900D928A95E1F7D8014C91119629 +:103070005C91119712966C9112971396ED90FC90BB +:1030800014977091AD01E091AE012091B0013091A3 +:10309000B1012115310531F0EF3F31F481E07F3F7F +:1030A00019F403C081E001C080E0B82FB170CB2ECD +:1030B00080FD6CC1D090AF01DD2009F4F5C0F09126 +:1030C000B201E216F30638F0C701821B930B883C6D +:1030D000910548F09BC0209530952E0D3F1D283C52 +:1030E000310508F093C08F2F807F09F052C0E5139F +:1030F00014C0741312C0D62E61110FC0FF70F0619E +:10310000F093B2010E94A6178DEA91E00E941C1470 +:103110008091B201F80185836CC1EF2831F05F3FE7 +:1031200031F481E04F3F19F403C081E001C080E039 +:1031300080FD03C081E0862701C080E0F82FF17098 +:10314000FF2E80FF1CC080917B0120917C0136E026 +:10315000821709F428C190E0389FF001399FF00DE3 +:103160001124E358FE4F7181571306C07081471335 +:1031700003C07281671303C001968770E9CFD62E12 +:10318000662309F436C18091B20181608093B20157 +:1031900053C0E51308C0741306C0611104C0D80100 +:1031A0001596FC93AEC04D875E878D859E856A8B94 +:1031B0000E9441176A89882329F1D62E662311F1CE +:1031C0002091B201822F82958F7090E002970CF4CB +:1031D00060C08091AD019091AE0198878F83198670 +:1031E000FB86EA862C87CE01079651C0E51731F1A0 +:1031F0004D875E878D859E856A8B0E9441176A89FF +:1032000081112EC0C8010E941C14A4C08F2F807F82 +:1032100069F77E2DF98AE88A89890E9466178DEA06 +:1032200091E00E941C14EDEAF1E086E0DF011D92BE +:103230008A95E9F70E94A617D12CDBC07413D8CF6A +:103240006111D6CFD8011596FC93C8010E941C14B9 +:10325000EDEAF1E086E0DF011D928A95E9F7C9C049 +:10326000D62E662379F22091B201822F82958F703B +:1032700090E0029774F08091AD019091AE019A8335 +:1032800089831B82FD82EC822E83CE0101960E94EF +:103290001C1486E0F801ADEAB1E001900D928A9528 +:1032A000E1F70E94B4176FC0E216F30628F0C701D9 +:1032B000821B930B9C0104C0209530952E0D3F1D61 +:1032C000283C310508F052C0D62E662309F49ACF67 +:1032D000E5132CC074132AC08091B20180FD1DC07B +:1032E000982F92959F70C9F0D80115968C931597D9 +:1032F0009F3039F09F5F9295907F8F70892B159644 +:103300008C93C8010E941C1486E0F801ADEAB1E07C +:1033100001900D928A95E1F736C086E0F801ADEA9A +:10332000B1E001900D928A95E1F763C04D875E8709 +:103330008D859E850E944117882379F086E0F801EB +:10334000ADEAB1E001900D928A95E1F70E94B417C1 +:103350000E94A617DD24D3944CC08091B2018160F5 +:103360008093B201C8010E941C1443C07E2DF98ACB +:10337000E88A89890E946617EDEAF1E086E0DF01BC +:103380001D928A95E9F70E94A61733C0662309F4B7 +:1033900039CF4D875E878D859E850E944117882392 +:1033A00009F430CFCBCF4D875E878D859E850E94F7 +:1033B000661C292F22952F7030E0223031052CF425 +:1033C0009F7041F0811106C00CC0243031052CF4EF +:1033D0009F7049F4805E883020F0C8010E941C1460 +:1033E000CF2CDC2C06C0D80115969C91907F91F7CC +:1033F000F8CF8D2D62960FB6F894DEBF0FBECDBF0D +:10340000DF91CF911F910F91FF90EF90DF90CF90C0 +:1034100008951F93CF93DF93CDB7DEB72C970FB6E8 +:10342000F894DEBF0FBECDBF4F83588769877A8778 +:103430008B879C87CE0107960E941C188823C1F0B9 +:103440002F8138858A859B85892B31F03F3F11F08C +:1034500080E003C02F3FE1F781E0811147C04F8139 +:10346000588569857A858B859C850E9475173EC035 +:1034700086E0FE013796DE01119601900D928A9545 +:10348000E1F7FF81E8854A855B854115510531F0FB +:10349000EF3F31F481E0FF3F19F403C081E001C048 +:1034A00080E080FD23C020917C0130E0C9010196BD +:1034B0008770992760917B0170E086179707F1F17B +:1034C000F983EA835D834C8396E0929FD001939FBA +:1034D000B00D1124A358BE4FFE01319601900D92FC +:1034E0009A95E1F780937C010E94851716E0809100 +:1034F0007B0190917C01891779F1189FC0011124FB +:1035000083589E4F0E941C18882331F1E0917B0163 +:103510001E9FF0011124E358FE4F408151816281CA +:103520007381848195810E94751780917B0190E061 +:1035300001968770992780937B01D9CF0E943D1710 +:1035400010927C0110927B01EDEAF1E086E0DF0150 +:103550001D928A95E9F7CACF2C960FB6F894DEBF74 +:103560000FBECDBFDF91CF911F910895EF92FF92D3 +:103570000F931F93CF93DF939C01009709F471C0C1 +:10358000F12CEE24E394E9012196F901849184372A +:1035900040F4843008F056C0813081F0823021F14F +:1035A00060C0853709F449C0C0F19CE7980F903797 +:1035B00008F057C08F770E94BF1346C089010E5F85 +:1035C0001F4FFE01849190E2980F983050F487705D +:1035D000FE2D01C0FF0F8A95EAF78F2F0E94491D2B +:1035E00015C00E94F71214C089010E5F1F4FFE0123 +:1035F000849190E2980F983068F48770FE2D01C096 +:10360000FF0F8A95EAF78F2F0E944F1D0E94721DAF +:10361000E8011AC00E94BF13FBCF2E5F3F4FFE018F +:10362000C491CC2341F08FE99FE00197F1F700C0EE +:103630000000C150F6CFE90107C0FE01F490E90196 +:10364000229602C00E94F7128F2D882341F0EFE9E5 +:10365000FFE03197F1F700C000008150F6CF9E01E6 +:1036600092CFDF91CF911F910F91FF90EF9008952E +:1036700008956093B7017093B8018093B901909356 +:10368000BA010C9429170F931F930091B701109161 +:10369000B8012091B9013091BA01062B172B282BC4 +:1036A000392B0093B7011093B8012093B9013093DF +:1036B000BA011F910F910C9429170F931F9300913A +:1036C000B7011091B8012091B9013091BA010623D8 +:1036D0001723282339230093B7011093B8012093AF +:1036E000B9013093BA011F910F910C9429170F93D0 +:1036F0001F930091B7011091B8012091B901309149 +:10370000BA0106271727282739270093B7011093F6 +:10371000B8012093B9013093BA011F910F910C9415 +:1037200029171092B3011092B4011092B5011092B2 +:10373000B6010C94291741E050E060E070E004C04D +:10374000440F551F661F771F8A95D2F74093B30128 +:103750005093B4016093B5017093B6010C9429178E +:1037600041E050E060E070E004C0440F551F661F68 +:10377000771F8A95D2F78091B3019091B401A091FF +:10378000B501B091B601842B952BA62BB72B809356 +:10379000B3019093B401A093B501B093B6010C941A +:1037A000291741E050E060E070E004C0440F551F6D +:1037B000661F771F8A95D2F7409550956095709552 +:1037C0008091B3019091B401A091B501B091B6017F +:1037D00084239523A623B7238093B3019093B40148 +:1037E000A093B501B093B6010C94291741E050E0C5 +:1037F00060E070E004C0440F551F661F771F8A9574 +:10380000D2F78091B3019091B401A091B501B0912C +:10381000B60184279527A627B7278093B3019093F5 +:10382000B401A093B501B093B6010C9429170F937E +:103830001F930091B3011091B4012091B501309113 +:10384000B601062B172B282B392B0093B3011093AD +:10385000B4012093B5013093B6011F910F910C94E0 +:1038600029170F931F930091B3011091B401209178 +:10387000B5013091B601062317232823392300937D +:10388000B3011093B4012093B5013093B6011F9199 +:103890000F910C9429170F931F930091B30110916E +:1038A000B4012091B5013091B601062717272827CA +:1038B00039270093B3011093B4012093B5013093DD +:1038C000B6011F910F910C9429170895CF92DF92A2 +:1038D000EF92FF920F931F93CF93DF93EC01C09071 +:1038E000B701D090B801E090B901F090BA01809191 +:1038F000B3019091B401A091B501B091B601C82A6D +:10390000D92AEA2AFB2A0FE110E0B701A601002E0E +:1039100004C076956795579547950A94D2F740FF6E +:1039200007C0BE01802F0E9498098130910539F4AB +:103930000150110950F7BE0180E00E949809DF9103 +:10394000CF911F910F91FF90EF90DF90CF9008954E +:1039500090910C019923D9F090910D019923B9F020 +:10396000982F9695969596959F3088F5E0910E0143 +:10397000F0910F01E90FF11D877021E030E001C0E7 +:10398000220F8A95EAF78181822B818308954091E5 +:103990000E0150910F0120E030E09FEFFA01E20F9D +:1039A000F31F6281681799F09F3F19F4611101C0FC +:1039B000922F2F5F3F4F2E30310581F79F3F39F017 +:1039C000FA01E90FF11D97FDFA9582830895089594 +:1039D00090910C019923E1F090910D019923C1F090 +:1039E000982F9695969596959F3020F5E0910E012B +:1039F000F0910F01E90FF11D877021E030E001C067 +:103A0000220F8A95EAF72095818128232183089542 +:103A100040910E0150910F0120E030E0FA01E20FD9 +:103A2000F31F9281981301C012822F5F3F4F2E30F7 +:103A30003105A1F7089581E090E0E0910E01F09149 +:103A40000F01E80FF91F1082019680319105A9F747 +:103A500008959091CE01982B9093CE010895809572 +:103A60009091CE0198239093CE0108951092CE01AB +:103A700008959091CD01982B9093CD010895809554 +:103A80009091CD0198239093CD0108951092CD018E +:103A900008959091CC01982B9093CC010895809536 +:103AA0009091CC0198239093CC0108951092CC0171 +:103AB00008958093BB0108951092BB010895409131 +:103AC0000E0150910F0120E030E080E0FA01E20F9A +:103AD000F31F918191118F5F2F5F3F4F2F30310581 +:103AE000A9F70895E0910E01F0910F018091CE01A8 +:103AF0008083E0910E01F0910F0180819091CD01C2 +:103B0000892B8083E0910E01F0910F0180819091CB +:103B1000CC01892B80839091BB01992361F0E091C6 +:103B20000E01F0910F018081892B80830E945F1D1F +:103B300081111092BB0180910E0190910F010C94A4 +:103B4000DA11CF92DF92EF92FF920F931F936C01E5 +:103B5000EE24FF24C114D104E104F10421F46B012B +:103B60007C0180E001C080E133272F2D1E2D0D2D1B +:103B7000011511052105310519F0885F68017901EA +:103B800097018601A4E03695279517950795AA9584 +:103B9000D1F7011511052105310519F08C5F680178 +:103BA000790197018601F2E03695279517950795DB +:103BB000FA95D1F7011511052105310519F08E5F30 +:103BC00068017901B701A6017695679557954795E4 +:103BD000452B462B472B09F08F5F1F910F91FF90CC +:103BE000EF90DF90CF9008958091E801843009F143 +:103BF0001092D00120E488E190E00FB6F894A895E7 +:103C0000809360000FBE2093600083B7817F846043 +:103C100083BF83B7816083BF7894889583B78E7F95 +:103C200083BF88E10FB6F894809360001092600023 +:103C30000FBE089508950895CF930E941A1E0E9402 +:103C4000C2070E941B1EC0E08C2F0E94AF0881118A +:103C500005C0CF5FCE30C1F780E001C081E0CF91D9 +:103C600008950E943D170E94CE110C94D30A82E061 +:103C700084BD93E095BD9AEF97BD80936E00089543 +:103C80002FB7F8948091D1019091D201A091D301E6 +:103C9000B091D4012FBF0895CF92DF92EF92FF929F +:103CA0000F931F932FB7F8944091D1015091D201F7 +:103CB0006091D3017091D4012FBF6A017B01EE2482 +:103CC000FF248C0120E030E0C016D106E206F306A6 +:103CD00010F441505109481B590BCA011F910F9113 +:103CE000FF90EF90DF90CF9008951F920F920FB644 +:103CF0000F9211248F939F93AF93BF938091D10123 +:103D00009091D201A091D301B091D4010196A11D4F +:103D1000B11D8093D1019093D201A093D301B093B0 +:103D2000D401BF91AF919F918F910F900FBE0F90D3 +:103D30001F9018950E94D40EF8942FEF87EA91E611 +:103D4000215080409040E1F700C0000087E090EBF8 +:103D5000DC018093F1019093F201A093F301B09301 +:103D6000F4012CE088E190E00FB6F894A8958093D8 +:103D700060000FBE20936000FFCFEF92FF920F9381 +:103D80001F93CF93DF93E82EF12C8F2D0E94AF0865 +:103D9000C0E0D0E0082F10E098010C2E02C035954D +:103DA00027950A94E2F720FD05C02196C630D1057B +:103DB00099F709C06C2F7F2D80E00E947609E812E8 +:103DC000F4CF81E005C0F3948EE0F812DECF80E0FE +:103DD000DF91CF911F910F91FF90EF900895CF93B6 +:103DE000C82F8CE20E94BD1E882321F08C2FCF911A +:103DF0000C94BD1E80E0CF910895CF930E94422085 +:103E0000811102C00E942820C5E6C15049F00E94DD +:103E1000C2078FE39CE90197F1F700C00000F5CFDE +:103E200089E20E94EF1E811111C18AE20E94EF1EF9 +:103E300081110E94282085E00E94EF1E81110E94BE +:103E40009A1E0E944D208093CF0187E00E94EF1EB2 +:103E5000882399F18BE10E94EF1E882351F0909105 +:103E6000CF0191FB882780F921E0822780FB91F91F +:103E700022C08EE00E94EF1E882351F09091CF0166 +:103E800092FB882780F921E0822780FB92F913C0FA +:103E900080E10E94EF1E9091CF01882341F093FBB7 +:103EA000882780F921E0822780FB93F904C0892FBD +:103EB000809580FB90F99093CF018091CF010E9473 +:103EC00051200E945F208093E20180EE0E94EF1E4D +:103ED000882341F08091E201982F909590FB80F922 +:103EE0008093E20189E30E94EF1E882359F09091AC +:103EF000E20191FB882780F921E0822780FB91F97C +:103F00009093E20182EE0E94EF1E882359F0909177 +:103F1000E20192FB882780F921E0822780FB92F959 +:103F20009093E20186EE0E94EF1E882359F0909153 +:103F3000E20193FB882780F921E0822780FB93F937 +:103F40009093E20183EE0E94EF1E882359F0909136 +:103F5000E20194FB882780F921E0822780FB94F915 +:103F60009093E20185E30E94EF1E882359F090911F +:103F7000E20195FB882780F921E0822780FB95F9F3 +:103F80009093E20181E30E94EF1E882359F0909103 +:103F9000E20196FB882780F921E0822780FB96F9D1 +:103FA0009093E20181E10E94EF1E882359F09091E5 +:103FB000E20197FB882780F921E0822780FB97F9AF +:103FC0009093E2018091E2010E9463208091E201DE +:103FD00087FB882780F980930D0187E20E94EF1EFE +:103FE000C82F8EE10E94EF1E8111C2608FE10E94F6 +:103FF000EF1E8111C46080E20E94EF1E8111C86033 +:1040000081E20E94EF1E8111C06182E20E94EF1ED8 +:104010008111C06283E20E94EF1E8111C06484E2BC +:104020000E94EF1E882311F0C06802C0CC2329F043 +:104030008C2F0E945A206C2F03C00E945620682F9C +:1040400070E080E090E0CF910C94391BCF910895FF +:104050006DEE7EEF80E090E00E94812660E082E0DD +:1040600090E00E94732660E083E090E00E94732657 +:1040700060E084E090E00E94732660E085E090E0DC +:104080000C94732680E090E00E946D2621E08D3E26 +:104090009E4F09F020E0822F089582E090E00C947A +:1040A0006526682F82E090E00C94732683E090E010 +:1040B0000C946526682F83E090E00C94732684E0CE +:1040C00090E00C946526682F84E090E00C947326B1 +:1040D0008091D70180FF0BC06091130185E0689F3C +:1040E000B001112475956795759567952AC081FF74 +:1040F00009C06091130185E0689FB0011124759596 +:1041000067951FC082FF07C06091130185E0689F1B +:10411000B001112416C04091D8014423C9F0609128 +:104120001201461788F72091130185E0289F90011E +:104130001124429FC001439F900D112470E00E9402 +:1041400037266038710540F46115710539F002C0F9 +:1041500065E070E0862F08958FE7089581E0089567 +:104160008091D70180FF08C06091110170E07595C2 +:1041700067957595679521C081FF06C06091110113 +:1041800070E07595679519C082FF04C060911101B8 +:1041900070E010C08091D8018823C1F060911001B7 +:1041A0008617A0F790911101989FC001112470E02B +:1041B0000E9437266038710528F46115710521F0D9 +:1041C000862F08958FE7089581E0089561E070E0FB +:1041D000F4CF803F21F40E946820819504C0813F84 +:1041E00029F40E9468208093DB010895823F21F426 +:1041F0000E946820819504C0833F29F40E946820B2 +:104200008093DA010895893F19F40E94B02005C017 +:104210008A3F31F40E94B02081958093DC0108959B +:104220008B3F21F40E94B020819504C08C3F29F47B +:104230000E94B0208093DD010895843F21F4809195 +:10424000D901816017C0853F21F48091D901826036 +:1042500011C0863F21F48091D90184600BC0873F53 +:1042600021F48091D901886005C0883F31F48091A4 +:10427000D90180618093D90108958D3F21F4809107 +:10428000D70181600BC08E3F21F48091D7018260FD +:1042900005C08F3F29F48091D70184608093D701B6 +:1042A0000895803F39F48091DB0187FF6CC0109244 +:1042B000DB0169C0813F29F48091DB011816BCF352 +:1042C00062C09091DA01823F29F497FF5CC010929E +:1042D000DA0159C0833F19F41916CCF354C0893F51 +:1042E00041F48091DC0118160CF04DC01092DC01F5 +:1042F0004AC08A3F29F48091DC0187FF44C0F6CF91 +:104300008B3F39F48091DD0187FF3DC01092DD01C4 +:104310003AC08C3F29F48091DD011816BCF333C0FC +:10432000843F21F48091D9018E7F17C0853F21F40D +:104330008091D9018D7F11C0863F21F48091D901F0 +:104340008B7F0BC0873F21F48091D901877F05C007 +:10435000883F31F48091D9018F7E8093D90113C0B9 +:104360008D3F21F48091D7018E7F0BC08E3F21F4C9 +:104370008091D7018D7F05C08F3F29F48091D701AF +:104380008B7F8093D7018091DA0181110EC08091DB +:10439000DB0181110AC08091DC01811106C080918E +:1043A000DD01811102C01092D801089589ED91E0DC +:1043B0000E94E5110E94401E9093D6018093D50182 +:1043C00008951F93CF93DF938091D5019091D601EB +:1043D0000E944C1E4091D801442321F020911401E9 +:1043E00030E006C0209115015AE0259F900111246C +:1043F0008217930708F482C08091DA011091DB01E3 +:10440000D091DC01C091DD01811107C0111105C0FF +:10441000D11103C0CC2309F471C04F3F19F04F5F95 +:104420004093D801181624F40E9468208093DA0182 +:104430008091DA0187FF05C00E94682081958093F2 +:10444000DA01111624F40E9468208093DB01809128 +:10445000DB0187FF05C00E94682081958093DB0106 +:104460006091DA01662339F11091DB01112319F112 +:10447000772767FD7095872F972F0E94482523E3A4 +:1044800033E343E35FE30E94AC250E94152560936C +:10449000DA01612F772767FD7095872F972F0E948C +:1044A000482523E333E343E35FE30E94AC250E9406 +:1044B00015256093DB011D1624F40E94B020809323 +:1044C000DC018091DC0187FF05C00E94B02081954E +:1044D0008093DC011C1624F40E94B0208093DD013F +:1044E0008091DD0187FF05C00E94B02081958093F7 +:1044F000DD01DF91CF911F910C94D621DF91CF91F7 +:104500001F910895E9EDF1E085E0DF011D928A95A4 +:10451000E9F71092D8011092D7010895833081F104 +:1045200028F4813059F08230D1F00895853009F4B3 +:1045300049C0B8F1863009F456C00895209115019C +:10454000862F90E0820F911D8F3F910520F4620F1E +:104550006093150108958FEF8093150108952091C0 +:104560001401862F90E0820F911D8F3F910520F45A +:10457000620F6093140108958FEF809314010895E2 +:1045800020911301862F90E0820F911D8F3F91059E +:1045900020F4620F6093130108958FEF809313014D +:1045A000089520911201862F90E0820F911D8F3F78 +:1045B000910520F4620F6093120108958FEF8093AC +:1045C0001201089520911101862F90E0820F911D14 +:1045D0008F3F910520F4620F6093110108958FEFD2 +:1045E00080931101089520911001862F90E0820F91 +:1045F000911D8F3F910520F4620F60931001089583 +:104600008FEF809310010895833011F128F48130E9 +:1046100049F0823091F00895853081F120F18630A3 +:10462000C1F1089580911501681720F4861B8093CD +:1046300015010895109215010895809114016817CD +:1046400020F4861B8093140108951092140108959C +:1046500080911301681720F4861B8093130108953D +:1046600010921301089580911201681720F4861B9F +:104670008093120108951092120108958091110102 +:10468000681720F4861B8093110108951092110180 +:10469000089580911001681720F4861B8093100103 +:1046A00008951092100108958D3109F442C020F54B +:1046B0008E3009F47CC070F4873009F45EC020F4B9 +:1046C000863009F442C033C08830D1F18B3009F410 +:1046D000AAC02DC0863109F4A6C038F4803109F48F +:1046E00070C0813109F47EC022C0893109F49BC0B9 +:1046F0008B3109F452C01BC0853309F48CC048F4D7 +:10470000873209F488C008F478C0893209F483C07C +:104710000EC0833438F48A3308F06DC0883309F44E +:1047200082C005C0833409F476C08834C1F080E0CB +:1047300008950E94CF240E94CE110E94D30A73C014 +:104740000E944D200E945F206EC08091CF01817F2A +:104750008E7F8093CF0181E08093DF0108950E94D6 +:104760003D172FEF83ED90E3215080409040E1F71B +:1047700000C000000E949A1E56C09091CF01892F60 +:104780008095817080FB90F919F09660986027C041 +:10479000997F977F9093CF0146C09091CF0191FB75 +:1047A000882780F921E0822780FB91F913C090913E +:1047B000CF0192FB882780F921E0822780FB92F9C4 +:1047C00009C09091CF0193FB882780F921E08227CF +:1047D00080FB93F99093CF01882329F19160909306 +:1047E000CF0108950E943D1780910D0191E0892726 +:1047F00080930D0118C027EC01C023EE280F61E063 +:1048000070E080E090E004C0660F771F881F991F5A +:104810002A95D2F704C061E070E080E090E00E9449 +:10482000391B0E943D1781E0089580E0089580E0E3 +:104830000895CF93C82F8091DF01813079F018F06F +:104840008230D1F184C0A0910E01B0910F018C9102 +:10485000813169F0823209F07CC009C0A0910E015B +:10486000B0910F018C91813111F0823249F48C2F7B +:104870000E94152481111DC08C2F0E9454231AC040 +:104880008C2F0E941724811114C0C43179F048F490 +:10489000CB3079F0C03109F060C082E08093DF0155 +:1048A00008C0C93219F0C83321F057C01092DF0197 +:1048B00054C081E0817053C0C93289F118F5C43108 +:1048C00071F1A8F4C73009F046C08AE08093150161 +:1048D00094E19093140193E090931301809312015B +:1048E00088E08093110188E28093100134C0CE519A +:1048F000C63088F5EC2FF0E0E65DFE4F80818093B6 +:10490000DE0129C0CE34E9F020F4CB3421F56AE091 +:1049100013C0C13579F0C235F1F461E00DC080916A +:10492000DE01882319F01092DE0115C081E080932A +:10493000DF0115C061E006C08091DE010E948E2279 +:104940000AC06AE08091DE010E94042304C0109234 +:10495000DF0180E004C081E002C080E0ABCFCF91F6 +:104960000895E1E8F0E08081886080838081816043 +:1049700080838FB7F89493E09093890090ED9093A3 +:1049800088008FBF0895EFE6F0E080818260808329 +:104990000895EFE6F0E080818D7F80830895EFE653 +:1049A000F0E0808192E08927808308951F920F9222 +:1049B0000FB60F9211242F933F934F935F936F93F2 +:1049C0007F938F939F93AF93BF93EF93FF938091C8 +:1049D000E0019091E10101969093E1018093E00163 +:1049E000811103C082E00E94D30AE091E101E695C3 +:1049F000E695F0E0EC51F84FE4918091E0018E13E0 +:104A000003C080E00E94D30AFF91EF91BF91AF9164 +:104A10009F918F917F916F915F914F913F912F91D6 +:104A20000F900FBE0F901F90189504D06894B1118D +:104A30008DC0089570D088F09F5790F0B92F9927B6 +:104A4000B751A0F0D1F0660F771F881F991F1AF099 +:104A5000BA95C9F712C0B13081F077D0B1E00895AE +:104A600074C0672F782F8827B85F39F0B93FCCF32F +:104A7000869577956795B395D9F73EF4909580958F +:104A8000709561957F4F8F4F9F4F0895E89409C0AF +:104A900097FB3EF490958095709561957F4F8F4F71 +:104AA0009F4F9923A9F0F92F96E9BB279395F69587 +:104AB000879577956795B795F111F8CFFAF4BB0F05 +:104AC00011F460FF1BC06F5F7F4F8F4F9F4F16C069 +:104AD000882311F096E911C0772321F09EE8872FF3 +:104AE000762F05C0662371F096E8862F70E060E0AF +:104AF0002AF09A95660F771F881FDAF7880F969528 +:104B0000879597F9089557FD9058440F551F59F010 +:104B10005F3F71F04795880F97FB991F61F09F3FAA +:104B200079F087950895121613061406551FF2CFD3 +:104B30004695F1DF08C0161617061806991FF1CF23 +:104B400086957105610508940895E894BB2766274A +:104B50007727CB0197F908950BD078C069D028F05A +:104B60006ED018F0952309F05AC05FC01124EECF23 +:104B7000CADFA0F3959FD1F3950F50E0551F629FB8 +:104B8000F001729FBB27F00DB11D639FAA27F00DA6 +:104B9000B11DAA1F649F6627B00DA11D661F829FCD +:104BA0002227B00DA11D621F739FB00DA11D621FB2 +:104BB000839FA00D611D221F749F3327A00D611DCF +:104BC000231F849F600D211D822F762F6A2F1124B1 +:104BD0009F5750408AF0E1F088234AF0EE0FFF1F04 +:104BE000BB1F661F771F881F91505040A9F79E3F3B +:104BF000510570F014C0AACF5F3FECF3983EDCF390 +:104C0000869577956795B795F795E7959F5FC1F777 +:104C1000FE2B880F911D9695879597F9089597F922 +:104C20009F6780E870E060E008959FEF80EC089552 +:104C300000240A941616170618060906089500247B +:104C40000A9412161306140605060895092E0394F5 +:104C5000000C11F4882352F0BB0F40F4BF2B11F469 +:104C600060FF04C06F5F7F4F8F4F9F4F089597FB8A +:104C7000072E16F4009407D077FD09D00E94512624 +:104C800007FC05D03EF4909581959F4F089570954F +:104C900061957F4F0895EE0FFF1F0590F491E02D71 +:104CA0000994AA1BBB1B51E107C0AA1FBB1FA61773 +:104CB000B70710F0A61BB70B881F991F5A95A9F7C5 +:104CC00080959095BC01CD010895F999FECF92BDD4 +:104CD00081BDF89A992780B50895A8E1B0E042E037 +:104CE00050E00C948826262FF999FECF1FBA92BD6A +:104CF00081BD20BD0FB6F894FA9AF99A0FBE0196BD +:104D000008950E947326272F0C947426DC01CB0192 +:104D1000FC01F999FECF06C0F2BDE1BDF89A3196CB +:104D200000B40D9241505040B8F70895F894FFCF69 +:104D30002002D50A620B3F0B0B0BD80A0101BC0104 +:104D400028080A03140A3F4D3639A50758072207D9 +:104D5000E9067C069506AE06C706010203040506B1 +:044D60000708090037 :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c index 23611ddd8..92b712bd8 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -106,8 +106,6 @@ #define L4 4 // layer_4 #define L5 5 // layer_5 #define L6 6 // layer_6 -#define L7 7 // layer_7 -#define L8 8 // layer_8 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -120,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| * '------------------------' '------------------------' * .-----------. .-----------. * |INS |TG(2)| !M(UM)|DELT | @@ -143,8 +141,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LALT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, - UM, KC_DELT, + KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, KC_PGUP, KC_PGDN, KC_ENTER, KC_SPACE ), @@ -376,91 +374,70 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | | | | | | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' -*/ -[L7] = 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 -), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | | | | | | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' -*/ -[L8] = 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; @@ -470,772 +447,291 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case UM: unicode_mode = (unicode_mode + 1) % 2; break; - - default: - break; - } - if (unicode_mode == UC_MODE_WIN) { - switch(id) { - case UC_GREEK_SMALL_LETTER_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END - ); -case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END - ); -case UC_SUBSCRIPT_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_EIGHTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_THIRD: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END - ); -case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END - ); -case UC_SUPERSCRIPT_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END - ); -case UC_SUBSCRIPT_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_FIFTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END - ); -case UC_SUBSCRIPT_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END - ); -case UC_SUPERSCRIPT_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END - ); -case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_SUPERSCRIPT_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END - ); -case UC_SUPERSCRIPT_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END - ); -case UC_SUBSCRIPT_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END - ); -case UC_DIVISION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_SIXTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END - ); -case UC_VULGAR_FRACTION_TWO_THIRDS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END - ); -case UC_SUPERSCRIPT_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END - ); -case UC_SUBSCRIPT_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END - ); -case UC_INFINITY: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END - ); -case UC_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END - ); -case UC_SUBSCRIPT_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END - ); -case UC_SUBSCRIPT_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END - ); -case UC_SUPERSCRIPT_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END - ); -case UC_VULGAR_FRACTION_THREE_QUARTERS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END - ); -case UC_SUPERSCRIPT_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END - ); -case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_SUPERSCRIPT_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END - ); -case UC_SUBSCRIPT_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_SUBSCRIPT_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END - ); -case UC_SUPERSCRIPT_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END - ); -case UC_SUPERSCRIPT_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END - ); -case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_QUARTER: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END - ); -case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_SUBSCRIPT_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_HALF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END - ); - default: - break; - } - } else if (unicode_mode == UC_MODE_LINUX) { - switch(id) { - case UC_GREEK_SMALL_LETTER_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END - ); + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x90); + break; case UC_GREEK_CAPITAL_LETTER_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa1); + break; case UC_SUBSCRIPT_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x83); + break; case UC_VULGAR_FRACTION_ONE_EIGHTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x5b); + break; case UC_GREEK_SMALL_LETTER_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbb); + break; case UC_VULGAR_FRACTION_ONE_THIRD: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x53); + break; case UC_GREEK_SMALL_LETTER_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbe); + break; case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x04); + break; case UC_SUPERSCRIPT_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb9); + break; case UC_GREEK_SMALL_LETTER_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb2); + break; case UC_SUBSCRIPT_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x85); + break; case UC_GREEK_CAPITAL_LETTER_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x99); + break; case UC_VULGAR_FRACTION_ONE_FIFTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x55); + break; case UC_GREEK_SMALL_LETTER_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc8); + break; case UC_SUBSCRIPT_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x89); + break; case UC_SUPERSCRIPT_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x74); + break; case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x92); + break; case UC_SUPERSCRIPT_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x76); + break; case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x93); + break; case UC_GREEK_SMALL_LETTER_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc0); + break; case UC_SUPERSCRIPT_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb2); + break; case UC_GREEK_CAPITAL_LETTER_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa9); + break; case UC_GREEK_CAPITAL_LETTER_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa8); + break; case UC_SUBSCRIPT_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x84); + break; case UC_GREEK_CAPITAL_LETTER_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9d); + break; case UC_DIVISION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xf7); + break; case UC_GREEK_SMALL_LETTER_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc3); + break; case UC_GREEK_SMALL_LETTER_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc1); + break; case UC_VULGAR_FRACTION_ONE_SIXTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x59); + break; case UC_GREEK_SMALL_LETTER_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb3); + break; case UC_VULGAR_FRACTION_TWO_THIRDS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x54); + break; case UC_GREEK_SMALL_LETTER_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbd); + break; case UC_GREEK_SMALL_LETTER_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb6); + break; case UC_GREEK_SMALL_LETTER_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb5); + break; case UC_GREEK_SMALL_LETTER_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xba); + break; case UC_SUPERSCRIPT_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x77); + break; case UC_GREEK_CAPITAL_LETTER_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa0); + break; case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc2); + break; case UC_GREEK_CAPITAL_LETTER_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9e); + break; case UC_GREEK_SMALL_LETTER_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb8); + break; case UC_GREEK_SMALL_LETTER_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb7); + break; case UC_SUBSCRIPT_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x82); + break; case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x43); + break; case UC_GREEK_SMALL_LETTER_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb1); + break; case UC_GREEK_CAPITAL_LETTER_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa6); + break; case UC_GREEK_SMALL_LETTER_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc6); + break; case UC_INFINITY: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x1e); + break; case UC_GREEK_CAPITAL_LETTER_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9f); + break; case UC_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x08); + break; case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xd7); + break; case UC_SUBSCRIPT_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x80); + break; case UC_GREEK_CAPITAL_LETTER_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa3); + break; case UC_GREEK_SMALL_LETTER_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc9); + break; case UC_SUBSCRIPT_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x81); + break; case UC_GREEK_CAPITAL_LETTER_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x96); + break; case UC_GREEK_SMALL_LETTER_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc4); + break; case UC_SUPERSCRIPT_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x75); + break; case UC_THERE_EXISTS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x03); + break; case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb1); + break; case UC_VULGAR_FRACTION_THREE_QUARTERS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xbe); + break; case UC_SUPERSCRIPT_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb3); + break; case UC_EMPTY_SET: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x05); + break; case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x91); + break; case UC_SUPERSCRIPT_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x79); + break; case UC_GREEK_SMALL_LETTER_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb4); + break; case UC_GREEK_SMALL_LETTER_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbc); + break; case UC_GREEK_CAPITAL_LETTER_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9a); + break; case UC_SUBSCRIPT_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x88); + break; case UC_GREEK_CAPITAL_LETTER_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x91); + break; case UC_SUBSCRIPT_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x87); + break; case UC_GREEK_CAPITAL_LETTER_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x92); + break; case UC_GREEK_CAPITAL_LETTER_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x97); + break; case UC_SUPERSCRIPT_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x78); + break; case UC_SUPERSCRIPT_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x70); + break; case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x09); + break; case UC_GREEK_SMALL_LETTER_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc5); + break; case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x60); + break; case UC_GREEK_CAPITAL_LETTER_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa7); + break; case UC_FOR_ALL: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x00); + break; case UC_GREEK_CAPITAL_LETTER_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa4); + break; case UC_VULGAR_FRACTION_ONE_QUARTER: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xbc); + break; case UC_GREEK_SMALL_LETTER_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc7); + break; case UC_GREEK_CAPITAL_LETTER_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x98); + break; case UC_GREEK_SMALL_LETTER_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb9); + break; case UC_GREEK_CAPITAL_LETTER_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9b); + break; case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x7f); + break; case UC_GREEK_CAPITAL_LETTER_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa5); + break; case UC_GREEK_CAPITAL_LETTER_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9c); + break; case UC_GREEK_CAPITAL_LETTER_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x95); + break; case UC_GREEK_CAPITAL_LETTER_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x93); + break; case UC_SUBSCRIPT_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x86); + break; case UC_GREEK_CAPITAL_LETTER_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x94); + break; case UC_VULGAR_FRACTION_ONE_HALF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END - ); - default: - break; - } + unicode_action_function(0x00, 0xbd); + break; + default: + break; } return MACRO_NONE; }; diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md index 1dc019ab0..2c9e0a837 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -2,14 +2,15 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` - compile_keymap.py keymaps/german-manuneo/keymap.md + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 # Layout Config { "layout": "ergodox_ez", - "includes_dir": "quantum/", "keymaps_includes": [ "ergodox_ez.h", "action_layer.h", @@ -17,8 +18,6 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` "keymap_extras/keymap_german.h", ], "key_prefixes": ["DE_", "KC_"], - "filler": "-+.'!x", - "separator": "|", "macros": { // TODO: implement macros // "MUC": "", @@ -41,7 +40,7 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| '------------------------' '------------------------' .-----------. .-----------. |INS |TG(2)| !M(UM)|DELT | @@ -187,46 +186,3 @@ http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html | | | | ! | | | '-----------------' '-----------------' - -## Layer 7 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | | | | | | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 8 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | | | | | | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' -- cgit v1.2.3 From 13dcbfdab1c522b9fbffe3959f1c39e136f6febb Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Sun, 3 Apr 2016 12:52:08 +0300 Subject: Links to build guide --- keyboard/ergodox_ez/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/readme.md b/keyboard/ergodox_ez/readme.md index c1d0bd5dc..4afb42c8f 100644 --- a/keyboard/ergodox_ez/readme.md +++ b/keyboard/ergodox_ez/readme.md @@ -15,7 +15,7 @@ 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 [pjrc.com/teensy/gcc.html](https://www.pjrc.com/teensy/gcc.html) +3. Set up a build environment as per [the build guide](/BUILD_GUIDE.md) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` 4. Copy `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. -- cgit v1.2.3 From 22691de580da46c09ba9024f9543e43e115ce2b6 Mon Sep 17 00:00:00 2001 From: Manuel Barkhau Date: Sun, 3 Apr 2016 21:46:32 +0200 Subject: add indent to generated keymap --- .../keymaps/german-manuneo/compile_keymap.py | 37 ++++- .../ergodox_ez/keymaps/german-manuneo/keymap.c | 178 ++++++++++----------- 2 files changed, 123 insertions(+), 92 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index 3d2667276..7076a6ecb 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -43,6 +43,9 @@ KEYBOARD_LAYOUTS = { ] } +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} BLANK_LAYOUTS = [ # Compact Layout @@ -591,16 +594,43 @@ def unicode_macro_cases(config): ) -def iter_keymap_lines(keymap): +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): @@ -628,11 +658,12 @@ def iter_keymap_parts(config, keymaps): # comment layer_lines = config['layer_lines'][layer_name] prefixed_lines = " * " + " * ".join(layer_lines) - yield "/*\n{}*/\n".format(prefixed_lines) + yield "/*\n{} */\n".format(prefixed_lines) # keymap codes keymap = keymaps[layer_name] - keymap_lines = "".join(iter_keymap_lines(keymap)) + 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" diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c index 92b712bd8..d8911af41 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -127,22 +127,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * |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, + 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 ), @@ -165,21 +165,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [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, 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, + 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 @@ -203,21 +203,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [L2] = KEYMAP( - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + 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, + 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 @@ -241,24 +241,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [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, 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, - 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 + KC_TRNS, KC_TRNS, KC_TRNS ), /* * .------------------------------------.------------------------------------. @@ -279,24 +279,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [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, 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 + KC_TRNS, KC_TRNS, KC_TRNS ), /* * .------------------------------------.------------------------------------. @@ -317,24 +317,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [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, 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 + KC_TRNS, KC_TRNS, KC_TRNS ), /* * .------------------------------------.------------------------------------. @@ -355,21 +355,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ! ! !-----! !-----! ! ! * | | | | ! | | | * '-----------------' '-----------------' -*/ + */ [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, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -- cgit v1.2.3 From a90d68739a29debe93bdf9e26f2c126e8eca46e9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 3 Apr 2016 16:00:10 -0400 Subject: music mode file --- keyboard/preonic/Makefile | 4 +- keyboard/preonic/keymaps/default/keymap.c | 2 +- keyboard/preonic/keymaps/lock/keymap.c | 2 +- keyboard/preonic/preonic.c | 16 +- keyboard/preonic/preonic.h | 4 +- keyboard/preonic/preonic_music.hex | 1713 +++++++++++++++++++++++++++++ 6 files changed, 1725 insertions(+), 16 deletions(-) create mode 100644 keyboard/preonic/preonic_music.hex (limited to 'keyboard') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 89c48e50a..664aff732 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -139,8 +139,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # 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 -# AUDIO_ENABLE = YES # Audio output on port C6 +MIDI_ENABLE = YES # MIDI controls +AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 392197f1d..5099b6581 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -88,7 +88,7 @@ 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_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); play_notes(&start_up, 9, false); diff --git a/keyboard/preonic/keymaps/lock/keymap.c b/keyboard/preonic/keymaps/lock/keymap.c index e253f2581..cfb7f0803 100644 --- a/keyboard/preonic/keymaps/lock/keymap.c +++ b/keyboard/preonic/keymaps/lock/keymap.c @@ -99,7 +99,7 @@ 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_init_user(void) { init_notes(); play_notes(&start_up, 9, false); } diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c index a678f7b09..e9ececb6d 100644 --- a/keyboard/preonic/preonic.c +++ b/keyboard/preonic/preonic.c @@ -1,16 +1,16 @@ #include "preonic.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { }; __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { }; -void * matrix_init_kb(void) { +void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); #endif @@ -24,13 +24,9 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } + matrix_init_user(); }; -void * matrix_scan_kb(void) { - if (matrix_scan_user) { - (*matrix_scan_user)(); - } +void matrix_scan_kb(void) { + matrix_scan_user(); }; diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h index 42d212329..6cfe14726 100644 --- a/keyboard/preonic/preonic.h +++ b/keyboard/preonic/preonic.h @@ -44,7 +44,7 @@ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex new file mode 100644 index 000000000..603693bff --- /dev/null +++ b/keyboard/preonic/preonic_music.hex @@ -0,0 +1,1713 @@ +:100000000C9410030C9454030C9454030C94540358 +:100010000C9454030C9454030C9454030C94540304 +:100020000C9454030C9454030C9410170C94E21782 +:100030000C94BD290C9454030C9454030C94540355 +:100040000C9454030C9454030C9454030C945403D4 +:100050000C9454030C942A2A0C9454030C945403C7 +:100060000C9454030C9454030C9454030C945403B4 +:100070000C9454030C9454030C9454030C945403A4 +:100080000C94440E0C9454030C9454030C94540399 +:100090000C9454030C9454030C9454030C94540384 +:1000A0000C9454030C9454030C9454030763423689 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE00006000600060006000608C +:10039000006000600060006000600060006000605D +:1003A000006000600060006000600060006000604D +:1003B000006000600060006000600060006000603D +:1003C000006000600060006000600060006000602D +:1003D000006000600060006000600060006000601D +:1003E00000600060006000300100010001000100B9 +:1003F00001000100010000600060006000602A034D +:1004000054006800650020005000720065006F0015 +:100410006E006900630020004B00650079006200F7 +:100420006F0061007200640000002C034F00720036 +:10043000740068006F006C0069006E006500610068 +:10044000720020004B006500790062006F006100BF +:100450007200640073000000040309040902D00064 +:10046000060100A0FA0904000001030101000921AE +:1004700011010001223F000705810308000A090459 +:1004800001000103010200092111010001224D00B8 +:100490000705820308000A090402000103000000A6 +:1004A0000921110100012236000705830308000A13 +:1004B00009040300020300000009211101000122C8 +:1004C0002000070584032000010705040320000124 +:1004D00009040400000101000009240100010900D1 +:1004E00001050904050002010300000724010001C1 +:1004F0004100062402010100062402020200092430 +:1005000003010301020100092403020401010100A7 +:100510000905060240000500000525010101090545 +:1005200085024000050000052501010312011001AC +:1005300000000008EDFE61600100010200010631CB +:10054000FF0974A1010975150025FF952075088123 +:10055000020976150025FF952075089102C0050156 +:100560000980A101850216010026B7001A01002AA0 +:10057000B700751095018100C0050C0901A1018526 +:1005800003160100269C021A01002A9C0275109590 +:10059000018100C005010902A1010901A1000509AD +:1005A000190129051500250195057501810295019F +:1005B000750381010501093009311581257F9502F7 +:1005C0007508810609381581257F95017508810612 +:1005D000050C0A38021581257F950175088106C032 +:1005E000C005010906A101050719E029E715002545 +:1005F00001950875018102950175088101050819A9 +:100600000129059505750191029501750391010573 +:1006100007190029FF150025FF950675088100C000 +:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C +:1006300024C08091050490910604A0910704B09114 +:1006400008048730904BA740B04BB9F410920504D2 +:1006500010920604109207041092080414BE84B786 +:10066000877F84BF88E10FB6F89480936000109272 +:1006700060000FBEE0E0F8E3099512E0A0E0B1E011 +:10068000E6ECF9E602C005900D92A832B107D9F761 +:1006900014E0A8E2B2E001C01D92A530B107E1F775 +:1006A0000E94C8130C94E1340C94000061111DC029 +:1006B000FC018281882351F085EE0E94901E0E94E9 +:1006C000BC3080E290E0A0E0B0E007C085EE0E9480 +:1006D000581F81E090E0A0E0B0E08093E1029093A9 +:1006E000E202A093E302B093E40280E090E0089578 +:1006F0000E94370E40E050E069E070E080E091E059 +:100700000C94880F08950E948B036E9A769A0C942D +:1007100078030C948203279A2F988FEF9FEF909382 +:100720008700809386008AE08093800089E180932F +:1007300081000C94653081110BC080918000877F0F +:100740008093800010928D0010928C002F98089555 +:100750002F98833041F480918000886080938000DE +:100760008FEF9FEF12C0909180009860909380006F +:1007700023E030E0281B3109220F331F8FEF9FEF5A +:1007800002C0969587952A95E2F790938D00809305 +:100790008C0008958B3B910568F4883A910530F5FB +:1007A000853A9105C0F48430910598F4019709F0D9 +:1007B0006FC071C0803E910508F46AC0883E910503 +:1007C00040F09C01205F31092031310508F060C004 +:1007D0005CC09C01A1C0853A910509F45FC0863ACE +:1007E000910509F45EC023E830E496C0883A91058B +:1007F00009F45AC0893A910509F459C08A3A910519 +:1008000009F458C08B3A910509F457C08C3A910508 +:1008100009F456C08D3A910509F455C0803B910505 +:1008200009F454C08E3A910509F453C08F3A9105EA +:1008300009F452C0813B910509F451C0823B9105F6 +:1008400009F450C0833B910509F44FC0843B9105E6 +:1008500009F44EC0853B910509F44DC0863B9105D6 +:1008600009F44CC0873B910509F44BC0883B9105C6 +:1008700009F44AC0893B910509F449C08A3B9105B6 +:1008800009F048C02AE236E447C09C01306544C004 +:1008900020E030E041C021E030E03EC021E830E41B +:1008A0003BC022E830E438C022EE34E435C029EE03 +:1008B00034E432C02AEE34E42FC025EB34E42CC0FB +:1008C00026EB34E429C027EB34E426C02CEC34E4D6 +:1008D00023C02DEC34E420C023E835E41DC02AE811 +:1008E00035E41AC022E935E417C024E935E414C020 +:1008F00021E236E411C023E236E40EC024E236E4FD +:100900000BC025E236E408C026E236E405C027E243 +:1009100036E402C020E034E4C90108959CE0799FE8 +:10092000F00111249CE3899FE00DF11D1124E60FD5 +:10093000F11DEE0FFF1FE25DFE4F25913491C901BD +:100940000895880F991F82559040FC01259134919C +:10095000C9010895880F991F825D9E4FFC01259162 +:100960003491C90108950E948E049C019A958115C5 +:100970009F4110F4C9010895C90190528115904119 +:1009800028F4C9019F700E94AA040895C9019053D8 +:100990008115904120F4C9019927906C0895C901EF +:1009A0009054409728F4C9018F709927946D089549 +:1009B000203180E4380719F480E091ED0895213169 +:1009C00090E4390719F480E090ED0895223140E475 +:1009D000340719F480E092ED0895233180E438075C +:1009E00019F480E093ED0895211590E53907A1F4FD +:1009F0000E948B2340E065E088E491E00E94880F2C +:100A00002FEF44E38CE0215040408040E1F700C0EC +:100A100000000E944F2A1EC1213090E5390731F4B1 +:100A20008091F10281608093F10214C1C901905557 +:100A30008115904108F062C0432F55274F7055270C +:100A400041305105F9F4C90174E0880F991F7A9576 +:100A5000E1F788279370B901E3E0660F771FEA9505 +:100A6000E1F760767727862B972B9C6823703327D6 +:100A700002C0440F551F2A95E2F74F715527842B6A +:100A8000952B08954230510529F4922F8827816FC4 +:100A9000906A089543305105B9F4C90153E0880FB5 +:100AA000991F5A95E1F7807E97702370332741E0B4 +:100AB00050E002C0440F551F2A95E2F74F715527A9 +:100AC000842B952B9C6808954430510589F5C90104 +:100AD00043E0880F991F4A95E1F7807E9770237055 +:100AE000332741E050E002C0440F551F2A95E2F73A +:100AF0004F715527842B952B9A680895C9019056FC +:100B00008115904118F4C901906F0895C90190575B +:100B10008115904120F4C9019F7090620895C90128 +:100B200090588115904120F4C9019F70906A0895F2 +:100B3000203E3105E0F4203C310568F521333105D4 +:100B400009F475C048F42932310509F46BC02A3222 +:100B5000310509F07BC075C02933310501F1223818 +:100B60003105E9F02533310509F070C051C0233E4D +:100B70003105B1F140F4203E3105D1F0223E31057E +:100B800009F064C01CC0263E310579F1273E3105CD +:100B900009F05CC038C0C9010E94A1040895809189 +:100BA000020380FD02C081FF51C080EE90E04FC083 +:100BB0008091020380FFF9CF89E390E048C08091E3 +:100BC000020382FF0AC08091020384FF03C080E019 +:100BD00090E03DC083EE90E03AC082EE90E037C0F6 +:100BE0008091020382FFEFCFF8CF8091020383FF51 +:100BF00007C08091020384FDEACF87EE90E027C012 +:100C000086EE90E024C08091020383FFF2CFF8CFFC +:100C10008091020385FF03C089E290E018C085E35C +:100C200090E015C08091020385FDF9CFF5CF80914A +:100C3000020386FF03C08AE290E009C081E390E0EE +:100C400006C08091020386FDF9CFF5CFC9010E944D +:100C5000CA030895089508950C942B065F926F922D +:100C60007F928F929F92AF92BF92CF92DF92EF923C +:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1 +:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62 +:100C90004E018BE0880E911C60E070E000E010E0F7 +:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76 +:100CB000622E532E41E050E0E3E9F1E0A62DB52D80 +:100CC000872D01900D928A95E1F7F901819191911B +:100CD0009F01FC01E07FFF27E032F10559F48F709E +:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C +:100CF000BF2A37C0E033F10559F48F709927FA0104 +:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024 +:100D1000E034F10559F48F709927FA0102C0EE0F03 +:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586 +:100D300059F48F709927FA0102C0EE0FFF1F8A95B0 +:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A +:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A +:100D60007F2B2815390509F0A7CF94B18A2D8095DE +:100D7000892384B985B18A2985B997B18C2D80954D +:100D8000892387B988B18C2988B99AB18E2D80952D +:100D900089238AB98BB18E298BB99DB1802F80951B +:100DA00089238DB98EB1802B8EB990B3862F809513 +:100DB000892380BB81B3862B81BB2A960FB6F8941A +:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E +:100DD000EF90DF90CF90BF90AF909F908F907F90DB +:100DE0006F905F9008955F926F927F928F929F9223 +:100DF000AF92BF92CF92DF92EF92FF920F931F9329 +:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08 +:100E10000FBECDBF85B7806885BF85B7806885BFA9 +:100E20000E942E069E012F5F3F4F4E0189E1880EE2 +:100E3000911C60E070E000E010E0E12CF12CC12C8E +:100E4000D12CA12CB12C98E1792E622E532E41E0A9 +:100E500050E0EDE9F1E0A62DB52D872D01900D9222 +:100E60008A95E1F7F901819191919F01FC01E07F61 +:100E7000FF27E032F10559F48F709927FA0102C07B +:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384 +:100E9000F10559F48F709927FA0102C0EE0FFF1F78 +:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409 +:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3 +:100EC000EE2AFF2A1BC0E035F10559F48F709927EF +:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF +:100EE0000DC0E036F10551F48F709927FA0102C068 +:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521 +:100F000009F0A7CF94B18A2D8095892384B985B142 +:100F10008A2985B997B18C2D8095892387B988B1A5 +:100F20008C2988B99AB18E2D809589238AB98BB185 +:100F30008E298BB99DB1802F809589238DB98EB173 +:100F4000802B8EB990B3862F8095892380BB81B387 +:100F5000862B81BB10922902109228021092330234 +:100F60001092320210922B0210922A021092350235 +:100F70001092340210922D0210922C02109237021D +:100F80001092360210922F0210922E021092390205 +:100F900010923802109231021092300210923B02ED +:100FA00010923A0268960FB6F894DEBF0FBECDBF1E +:100FB000DF91CF911F910F91FF90EF90DF90CF9035 +:100FC000BF90AF909F908F907F906F905F900C94A8 +:100FD00083035F926F927F928F929F92AF92BF92A4 +:100FE000CF92DF92EF92FF920F931F93CF93DF93F5 +:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58 +:101000007E0149E1E40EF11C22E3C22E22E0D22E41 +:101010005E0153E2A50EB11C3AE0532E470101E0F8 +:1010200010E048E1642E55E0752EE3E9F1E0D401CB +:10103000852D01900D928A95E1F7F70181919191AB +:101040007F019C01207F33272032310589F424B1B0 +:101050008F709927A80102C0440F551F8A95E2F7A7 +:10106000CA01242B24B995B18095892385B94FC035 +:101070002033310589F427B18F709927F80102C018 +:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB +:101090008095892388B93BC02034310589F42AB171 +:1010A0008F709927A80102C0440F551F8A95E2F757 +:1010B000CA01242B2AB99BB1809589238BB927C0FB +:1010C0002035310589F42DB18F709927F80102C0C0 +:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F +:1010E000809589238EB913C02036310581F420B351 +:1010F0008F709927A80102C0440F551F8A95E2F707 +:10110000CA01242B20BB91B38095892381BB50EA6F +:101110005A95F1F7BE016F5F7F4F80E090E020E0CD +:1011200030E0EDE9F1E0DE011196462D01900D92DF +:101130004A95E1F7FB0141915191BF01FA01E07F2E +:10114000FF27E032F10511F4E3B113C0E033F105FC +:1011500011F4E6B10EC0E034F10511F4E9B109C0B3 +:10116000E035F10511F4ECB104C0E036F105B9F455 +:10117000EFB1F0E04F70552702C0F595E7954A951D +:10118000E2F7E0FD08C0A801022E02C0440F551F7F +:101190000A94E2F702C040E050E0842B952B2F5FC9 +:1011A0003F4F2C30310509F0BCCFF6012081318151 +:1011B0002817390721F091838083709270010E9473 +:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D +:1011D000809170018823A1F1815080937001882350 +:1011E00039F08FE99FE00197F1F700C0000028C0B7 +:1011F00080913202909133029093290280932802C9 +:10120000809134029091350290932B0280932A02B0 +:10121000809136029091370290932D0280932C0298 +:10122000809138029091390290932F0280932E0280 +:1012300080913A0290913B02909331028093300268 +:101240000E94890381E0A2960FB6F894DEBF0FBE1C +:10125000CDBFDF91CF911F910F91FF90EF90DF9065 +:10126000CF90BF90AF909F908F907F906F905F9046 +:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D +:10128000918108950895CF92DF92EF92FF920F938C +:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1 +:1012A000F894DEBF0FBECDBF8C01862F642F88233C +:1012B00079F0F80192812FE7482F992329F084E0F3 +:1012C00093E00E94EC1904C084E093E00E94FC19B2 +:1012D000F80180818B3091F59181943009F0A8C29A +:1012E0009281809173019923B1F08F5F8093730194 +:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7 +:101300009A95E1F7E0917101F0917201EE0FFF1FE4 +:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2 +:10132000BD4F01900D929A95E1F7E0917101F09116 +:101330007201EE0FFF1F21E332E093C08A3009F003 +:10134000CBC0F8019181943009F072C292818091F2 +:101350007301992309F473C081508093730196E45B +:10136000E5EBF1E0DE01A551BE4F01900D929A959B +:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A +:1013800031E02C0F3D1FE20FF31F60817181680F68 +:10139000711D882777FD8095982F0E94003220E0EC +:1013A00030E040E451E40E94653120E030E040E864 +:1013B00050E40E94FD309B01AC0160E070E080E0F1 +:1013C00090E40E94173321E230ED42E053E40E94A2 +:1013D000B4324CE050E00E94E30F20E04BE760E0C5 +:1013E00084E093E00E94DC1920E04BE761E084E0B8 +:1013F00093E00E94DC1920E04BE762E084E093E098 +:101400000E94DC1920E04BE763E084E093E00E9457 +:10141000DC1920E04BE764E084E093E0C454DD4F46 +:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5 +:101430000F91FF90EF90DF90CF900C94DC1996E421 +:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0 +:10145000E1F7E0917101F0917201EE0FFF1F25EAB3 +:1014600031E02C0F3D1FE20FF31F60817181680F87 +:10147000711D882777FD8095982F0E94003220E00B +:1014800030E040E451E40E94653120E030E040E883 +:1014900050E40E94FD309B01AC0160E070E080E010 +:1014A00090E40E94173321E230ED42E053E40E94C1 +:1014B000B4320E94130DC454DD4F0FB6F894DEBF52 +:1014C0000FBECDBFDF91CF911F910F91FF90EF9095 +:1014D000DF90CF900C94E60C893009F0D3C0F8016E +:1014E0009181943009F0A4C19281992309F4A0C19B +:1014F0008091710190917201019690937201809395 +:10150000710120E04BE760E084E093E00E94DC1989 +:1015100020E04BE761E084E093E00E94DC1920E0EA +:101520004BE762E084E093E00E94DC1920E04BE7A7 +:1015300063E084E093E00E94DC1920E04BE764E084 +:1015400084E093E00E94DC190E94E60C00E010E0C9 +:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95 +:10156000BE4F9F2D01900D929A95E1F7E091710188 +:10157000F0917201E00FF11FEE0FFF1F2FE531E038 +:101580002C0F3D1FE20FF31F60817181680F711DE9 +:10159000882777FD8095982F0E94003220E030E068 +:1015A00040E451E40E94653120E030E040E850E43E +:1015B0000E94FD309B01AC0160E070E080E090E4AF +:1015C0000E94173321E230ED42E053E40E94B4322E +:1015D0004CE050E00E94E30F3FEF87EE93E0315084 +:1015E00080409040E1F700C0000080917301E5EB7E +:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE +:10160000E1F7E0917101F0917201E00FF11FEE0F2F +:10161000FF1F29E131E02C0F3D1FE20FF31F608116 +:101620007181680F711D882777FD8095982F0E9422 +:10163000003220E030E040E451E40E94653120E0D7 +:1016400030E040E850E40E94FD309B01AC0160E0D6 +:1016500070E080E090E40E94173321E230ED42E038 +:1016600053E40E94B4320E94130D8FEF9CE7019760 +:10167000F1F700C000000F5F1F4F0830110509F09F +:1016800069CF94C1883009F0D3C0F80191819430BA +:1016900009F0CEC09281992309F4CAC080917101EA +:1016A000909172010197909372018093710120E0F3 +:1016B0004BE760E084E093E00E94DC1920E04BE718 +:1016C00061E084E093E00E94DC1920E04BE762E0F7 +:1016D00084E093E00E94DC1920E04BE763E084E0C3 +:1016E00093E00E94DC1920E04BE764E084E093E0A3 +:1016F0000E94DC190E94E60C00E010E056E4F52E92 +:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB +:1017100001900D929A95E1F7E0917101F0917201BB +:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8 +:10173000E20FF31F60817181680F711D882777FDAB +:101740008095982F0E94003220E030E040E451E480 +:101750000E94653120E030E040E850E40E94FD3016 +:101760009B01AC0160E070E080E090E40E941733E0 +:1017700021E230ED42E053E40E94B4324CE050E00C +:101780000E94E30F3FEF87EE93E03150804090409E +:10179000E1F700C0000080917301E5EBF1E0DE01AC +:1017A000A357BF4F9F2D01900D929A95E1F7E091BD +:1017B0007101F0917201E00FF11FEE0FFF1F2DE894 +:1017C00030E02C0F3D1FE20FF31F60817181680F25 +:1017D000711D882777FD8095982F0E94003220E0A8 +:1017E00030E040E451E40E94653120E030E040E820 +:1017F00050E40E94FD309B01AC0160E070E080E0AD +:1018000090E40E94173321E230ED42E053E40E945D +:10181000B4320E94130D8FEF9CE70197F1F700C0DF +:1018200000000F5F1F4F0830110509F069CFBEC0DF +:10183000F801228190917301222309F45DC026E40E +:10184000E5EBF1E0DE01A95BBF4F01900D922A9517 +:10185000E1F7E0917101F0917201E80FF11DEE0FD7 +:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4 +:101870007181690F711D882777FD8095982F0E94CF +:10188000003220E030E040E451E40E9465316B0119 +:101890007C01F801818165E070E0681B710988278F +:1018A00077FD8095982F0E9400329B01AC01C70103 +:1018B000B6010E94FD309B01AC0160E070E080E069 +:1018C00090E40E94173321E230ED42E053E40E949D +:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91 +:1018E0000FBECDBFDF91CF911F910F91FF90EF9071 +:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE +:10190000119601900D922A95E1F7E0917101F09105 +:101910007201E80FF11DEE0FFF1F21E030E02C0FE8 +:101920003D1FE20FF31F60817181690F711D8827D0 +:1019300077FD8095982F0E94003220E030E040E44F +:1019400051E40E9465316B017C01F801818165E001 +:1019500070E0681B7109882777FD8095982F0E9499 +:1019600000329B01AC01C701B6010E94FD309B0112 +:10197000AC0160E070E080E090E40E94173321E267 +:1019800030ED42E053E40E94B432C454DD4F0FB650 +:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 +:1019A000FF90EF90DF90CF900C94130DC454DD4F57 +:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160 +:1019C0000F91FF90EF90DF90CF90089510928702D3 +:1019D00010928602809171008D7F809371008091BA +:1019E00090008F77809390001092480210924702E7 +:1019F0001092800210928102109282021092830251 +:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8 +:101A100011921192119211921D921D9282E0EE3755 +:101A2000F807B1F708956F927F928F929F92AF92CD +:101A3000BF92CF92DF92EF92FF920F931F93CF93BB +:101A4000DF936B017C010EE712E04CE5A42E42E02F +:101A5000B42EC7E0D0E0A7019601F80192918291DF +:101A6000729162918F010E946131882349F0219720 +:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B +:101A8000F8011082118212821382F50111821082F4 +:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA +:101AA000AA0FBB1FA25BBD4FCE011AC00196448195 +:101AB0005581668177814083518362837383148269 +:101AC00015821682178212962D913C9113971196CA +:101AD0003C932E9313961C921E9212973496129654 +:101AE0008730910519F7C3CF8091860290918702C4 +:101AF000019797FD05C0909387028093860204C0EA +:101B00001092870210928602E0918602F09187027D +:101B10003097C9F4809171008D7F8093710080911E +:101B200090008F7780939000109280021092810233 +:101B3000109282021092830210927F0210927E0213 +:101B40001092470285C03197DF01AA0FBB1FAA0F71 +:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3 +:101B6000FF1FE25BFD4FC081D181609080027090C9 +:101B700081028090820290908302A7019601662DD7 +:101B8000772D882D992D0E94613187FF25C0262D44 +:101B9000372D482D592DC701B6010E94FC3020E099 +:101BA00030E04AEF54E40E9465315B018C012A2D3C +:101BB0003B2D402F512F662D772D882D992D0E947A +:101BC000FD303B014C01A7019601772D992D0E9414 +:101BD0006131181664F72EC0A7019601662D772D86 +:101BE000882D992D0E94B032181634F5A701960160 +:101BF000662D772D882D992D0E94FC3020E030E055 +:101C00004AEF54E40E9465315B018C012A2D3B2D83 +:101C1000402F512F662D772D882D992D0E94FC3055 +:101C20003B014C01A7019601772D992D0E94B032FE +:101C300087FFECCF10924D02C0928002D0928102B9 +:101C4000E0928202F0928302D0937F02C0937E02E0 +:101C5000DF91CF911F910F91FF90EF90DF90CF9088 +:101C6000BF90AF909F908F907F906F9008953E9A15 +:101C7000E1E7F0E080818D7F808382E080939000B7 +:101C80008AE18093910008951F920F920FB60F92F0 +:101C90001124CF92DF92EF92FF922F933F934F93B5 +:101CA0005F936F937F938F939F93AF93BF93CF93E4 +:101CB000DF93EF93FF9380914702882309F479C063 +:101CC00020E030E0A9016091800270918102809152 +:101CD0008202909183020E94B03218160CF069C003 +:101CE00020E030E040E251E46091490270914A0204 +:101CF00080914B0290914C020E94B0321816BCF4B5 +:101D00008091840290918502019660918602709183 +:101D100087020E949C3490938502809384021092E3 +:101D2000490210924A0210924B0210924C02C0914A +:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B +:101D4000DD4F288139814A815B8160E074E284E75C +:101D50009BE40E9465310E94CD317093970060939F +:101D60009600288139814A815B8160E074E284E7D2 +:101D70009BE40E9465310E94CD3175956795709303 +:101D800099006093980020E030E040E85FE36091C4 +:101D9000490270914A0280914B0290914C020E943C +:101DA000FD306093490270934A0280934B029093F6 +:101DB0004C0280914802882309F493C0C0904302EA +:101DC000D0904402E0904502F090460220E030E0DE +:101DD000A901C701B6010E94B0321816F4F4A70198 +:101DE000960160E074E284E79BE40E9465310E9402 +:101DF000CD317093970060939600A701960160E043 +:101E000074E284E79BE40E9465310E94CD317595B0 +:101E10006795709399006093980060913D0270916E +:101E20003E026F5F7F4F70933E0260933D0280E001 +:101E300090E00E94FE3120913F023091400240919B +:101E40004102509142020E94B03287FD4AC0809107 +:101E50003C028F5F80933C029091F1038917A0F0C0 +:101E60008091F603882319F010923C020DC08091F6 +:101E700071008D7F80937100809190008F778093A7 +:101E80009000109248022DC0E091F203F091F3030C +:101E900080913C0298E0899FE00DF11D1124808122 +:101EA0009181A281B3818093430290934402A093D5 +:101EB0004502B093460220E030E040E85EE36481F2 +:101EC0007581868197810E94B43260933F0270933E +:101ED0004002809341029093420210923E0210927F +:101EE0003D02FF91EF91DF91CF91BF91AF919F9113 +:101EF0008F917F916F915F914F913F912F91FF90C3 +:101F0000EF90DF90CF900F900FBE0F901F9018951D +:101F10000F931F93CF93DF9300D0CDB7DEB78C0123 +:101F200080914702882331F04A8369830E94E60C3E +:101F300069814A8181E0809348021093F303009302 +:101F4000F2036093F1034093F6031092490210925A +:101F50004A0210924B0210924C0210923C02F8017D +:101F600040815181628173814093430250934402C6 +:101F7000609345027093460220E030E040E85EE363 +:101F800064817581868197810E94B43260933F029B +:101F900070934002809341029093420210923E025D +:101FA00010923D0280917100826080937100809157 +:101FB00090008068809390000F900F90DF91CF91F8 +:101FC0001F910F9108956F927F928F929F92AF927F +:101FD000BF92CF92DF92EF92FF920F931F93CF9316 +:101FE000DF936B017C01EA018091480281110E941C +:101FF000E60C81E08093470220E030E0A901C701B0 +:10200000B6010E94B03218160CF09AC0609080029F +:1020100070908102809082029090830220E030E0F4 +:10202000A901662D772D882D992D0E94613181118E +:1020300028C0C0928002D0928102E0928202F09287 +:102040008302D0937F02C0937E028091860290919A +:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C +:10206000C082D182E282F382FC01EE0FFF1FE25BAD +:10207000FD4FD183C083019690938702809386029F +:102080005FC0A7019601662D772D882D992D0E949E +:10209000613187FF25C0262D372D482D592DC701C9 +:1020A000B6010E94FC3020E030E04AEF54E40E9488 +:1020B00065315B018C012A2D3B2D402F512F662D60 +:1020C000772D882D992D0E94FD303B014C01A701F1 +:1020D0009601772D992D0E946131181664F7A9CFCA +:1020E000A7019601662D772D882D992D0E94B0327B +:1020F00018160CF09ECFA7019601662D772D882D1E +:10210000992D0E94FC3020E030E04AEF54E40E9418 +:1021100065315B018C012A2D3B2D402F512F662DFF +:10212000772D882D992D0E94FC303B014C01A70191 +:102130009601772D992D0E94B03287FFECCF79CF91 +:10214000809171008260809371008091900080681E +:1021500080939000DF91CF911F910F91FF90EF90AE +:10216000DF90CF90BF90AF909F908F907F906F90B7 +:102170000895809191020895CF93DF9300D01F922C +:10218000CDB7DEB72091FB03243021F523E029836E +:102190009B838A832093E9008FEF06C095ED9A9583 +:1021A000F1F70000882329F09091E800815095FF15 +:1021B000F5CF8091E80085FF0DC040E050E063E07E +:1021C00070E0CE0101960E94A6148091E8008E77FF +:1021D0008093E8000F900F900F90DF91CF910895BA +:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2 +:1021F000243029F522E029839B838A8383E080931E +:10220000E9008FEF06C095ED9A95F1F7000088235D +:1022100029F09091E800815095FFF5CF8091E8007A +:1022200085FF0DC040E050E063E070E0CE01019614 +:102230000E94A6148091E8008E778093E8000F90AA +:102240000F900F90DF91CF9108952091FB032430E0 +:10225000F9F422E02093E9002FEF06C035ED3A951E +:10226000F1F70000222329F03091E800215035FFDA +:10227000F5CF2091E80025FF0BC040E050E065E07D +:1022800070E00E94A6148091E8008E778093E800A9 +:102290000895CF93DF93EC018091FB03843041F5E7 +:1022A00081E08093E9008FEF06C095ED9A95F1F7F4 +:1022B0000000882329F09091E800815095FFF5CF28 +:1022C0008091E80085FF14C040E050E068E070E0D5 +:1022D000CE010E94A6148091E8008E778093E800DA +:1022E00088E0FE01A9E8B2E001900D928A95E1F73D +:1022F000DF91CF910895BF92CF92DF92EF92FF923C +:102300000F931F93CF93DF937C01B62EE90100E07A +:1023100010E0C42ED12C0BC04991202F2B0D2F770C +:102320004F776FE0C7010E94DC190F5F1F4F0C153C +:102330001D0594F3DF91CF911F910F91FF90EF90C6 +:10234000DF90CF90BF90089570E06F5F7F4F6F7008 +:1023500077270C94DC190F931F93CF93C42F63300E +:10236000710509F04AC0842F807F803849F1803997 +:1023700009F043C0622F6F7770E080E090E00E9428 +:10238000003220E030E040E451E40E9465319B01DE +:10239000AC0160E070E080E090E40E9417330F77BA +:1023A00010E023E0159507952A95E1F72DEC3CEC1C +:1023B00042E053E40E94B432A8010E94E30F1DC022 +:1023C000622F6F7770E080E090E00E94003220E0A2 +:1023D00030E040E451E40E9465319B01AC0160E0D3 +:1023E00070E080E090E40E9417332DEC3CEC42E07A +:1023F00053E40E94B4320E94130DCC3F29F4CF91D4 +:102400001F910F910C94E60CCF911F910F9108959D +:102410000F931F93CF93DF93CDB7DEB727970FB6F8 +:10242000F894DEBF0FBECDBF8C0114C08A810E941C +:10243000B6199A819D839B819E839C819F83811184 +:102440001EC089818430B1F08730A1F08630A1F0C0 +:102450008530A1F0BE016F5F7F4F84E791E00E945D +:10246000231D8111E3CF84E791E00E94141D0E9497 +:102470008F190DC083E003C082E001C081E0AE018E +:102480004B5F5F4F682FC8010E94491AE3CF279620 +:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 +:1024A0000F910895EF92FF920F93CF93DF9300D097 +:1024B00000D000D0CDB7DEB77B014A832B830C83DD +:1024C000842F2E834D830E94B6192E814D81811158 +:1024D0001BC082E0E816F10479F083E0E816F1040D +:1024E00021F0EA94EF2821F50BC0073F11F487E0B3 +:1024F00001C084E089830BC0273FD9F786E0FACF7B +:10250000473FB9F785E0F6CF42954F704983BE014A +:102510006F5F7F4F84E791E00E94D91C84E791E0D0 +:102520000E94F71C84E791E00E94141D0E948F19FD +:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8 +:102540000F91FF90EF9008958091FA03811109C0D7 +:102550000E9495160E94F2168091E200846080939A +:10256000E20008951092FA030895089508950C94D6 +:10257000B229809192028F5F8093920262E30E945F +:102580007C34911135C0109292028091930288237D +:1025900079F18091FB03843049F58091E9008F70D7 +:1025A0009091EC0090FF02C090E801C090E0982B61 +:1025B00084E08093E9008091EB0080FF14C080915B +:1025C000EE0087FD03C00FC01092F1008091E8007B +:1025D00085FDFACF8091E80080FF05C08091E8007A +:1025E0008E778093E8009F709093E9001092930299 +:1025F000089542E061EC81E00E940B1642E061EC3C +:1026000082E00E940B1642E061EC83E00E940B1610 +:1026100042E261EC84E00E940B1642E361E885E04F +:102620000E940B1642E360E886E00C940B16809142 +:10263000FD03833009F454C030F4813071F08230EE +:1026400009F0A5C08CC08A3009F479C08B3009F438 +:102650005FC0893009F09BC020C08091FC03813AA3 +:1026600009F095C08091E800877F8093E800809111 +:10267000000490910104892B21F060E080E090E05B +:1026800003C068E089E892E070E00E944415809100 +:10269000E8008B778093E80008958091FC038132F5 +:1026A00009F075C08091000490910104892B09F014 +:1026B0006EC08091E800877F8093E80005C080911C +:1026C000FB03882309F463C08091E80082FFF7CF01 +:1026D0008091F100809391028091E8008B7753C044 +:1026E0008091FC03813A09F052C0809100049091DE +:1026F0000104892B09F04BC08091E800877F80930B +:10270000E8008091E80080FFFCCF80918A0136C00C +:102710008091FC038132D9F58091000490910104ED +:10272000892BA9F58091E800877F8093E8000E94BB +:1027300042168091FE0380938A010C948B23809132 +:10274000FC03813221F58091E800877F8093E800C7 +:102750000E9442168091FF03809388020895809121 +:10276000FC03813AA1F48091E800877F8093E80020 +:102770008091E80080FFFCCF809188028093F10077 +:102780008091E8008E778093E8000C9442160895BB +:1027900084E093E00E94181A62E572E184E093E01D +:1027A0000E946E1A68E072E184E093E00E94721A5F +:1027B00084B7877F84BF88E10FB6F8948093600068 +:1027C000109260000FBE90E080E80FB6F8948093FE +:1027D0006100909361000FBE0E949C1D0E9495169F +:1027E0000E94F2168091E20084608093E200789467 +:1027F0006BEA71E184E093E00E94141A64EA71E1EB +:1028000084E093E00E940C1A6BE771E184E093E0AE +:102810000E94101A0E94370E0E948F190E949E1D5E +:1028200080E891E00E94481D0BC00E946C298091B5 +:10283000F903882329F00E949A2981110E9490149B +:102840008091FB03853089F384E093E00E94211C92 +:102850000E94A81DF5CF292F332723303105B1F071 +:102860004CF42130310509F44DC02230310509F016 +:102870004EC007C02132310541F12232310591F1BC +:1028800046C0E0EDF0E08CE594E045C0992781304A +:10289000910569F08230910589F0892B09F037C0E4 +:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1 +:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082 +:1028C000E491F0E08EEF93E026C0643000F5E62F4F +:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF +:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1 +:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA +:10290000F0E009C0E2E1F0E08CE295E004C0E0E034 +:10291000F0E080E090E0DA018D939C93CF01089580 +:1029200080E189BD82E189BD09B400FEFDCF8091BF +:10293000D8008F7D8093D8008091E00082608093E2 +:10294000E0008091E00081FDFCCF0895BF92CF921E +:10295000DF92EF92FF920F931F93CF93DF937C014F +:102960008B01EA010E946316B82E811133C02097B3 +:1029700031F028813981021B130BE20EF31EC12CAA +:10298000D12C23C08091E80085FD15C08091E8001E +:102990008E778093E800209749F0888199818C0D8B +:1029A0009D1D9983888325E0B22E14C00E94631672 +:1029B000882359F00EC0F70181917F018093F100C7 +:1029C00001501109FFEFCF1ADF0A01151105D1F6E9 +:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9 +:1029E000EF90DF90CF90BF900895BF92CF92DF928B +:1029F000EF92FF920F931F93CF93DF937C018B0194 +:102A0000EA010E946316B82E811133C0209731F07D +:102A100028813981021B130BE20EF31EC12CD12C2D +:102A200023C08091E80085FD15C08091E8008B7778 +:102A30008093E800209749F0888199818C0D9D1D35 +:102A40009983888345E0B42E14C00E9463168823BE +:102A500059F00EC08091F100F70181937F01015080 +:102A60001109FFEFCF1ADF0A01151105D1F601C0D8 +:102A7000B82E8B2DDF91CF911F910F91FF90EF908A +:102A8000DF90CF90BF9008954091020450910304CD +:102A90004617570748F06115710539F44091E80071 +:102AA0004E774093E80001C0BA01FC0140E033C01A +:102AB0008091FB03882309F444C0853009F443C0A6 +:102AC0008091E80083FD41C08091E80082FD33C021 +:102AD0008091E80080FF1FC09091F3008091F20088 +:102AE000392F20E0A901482BCA0106C0419140932B +:102AF000F1006150710901966115710519F0883076 +:102B00009105A0F341E0089709F040E08091E800CA +:102B10008E778093E8006115710551F64111C8CF99 +:102B20000AC08091FB03882361F0853061F08091B9 +:102B3000E80083FD0AC08091E80082FFF2CF80E0C8 +:102B4000089582E0089583E0089581E0089540911A +:102B50000204509103044617570748F061157105A8 +:102B600039F44091E8004E774093E80001C0BA0183 +:102B7000FC0140E034C08091FB03882309F445C088 +:102B8000853009F444C08091E80083FD42C0809103 +:102B9000E80082FD34C08091E80080FF20C0909161 +:102BA000F3008091F200392F20E0A901482BCA01DF +:102BB00007C044914093F10031966150710901962C +:102BC0006115710519F08830910598F341E0089777 +:102BD00009F040E08091E8008E778093E80061156D +:102BE000710549F64111C7CF0AC08091FB038823C4 +:102BF00061F0853061F08091E80083FD0AC080912A +:102C0000E80082FFF2CF80E0089582E0089583E03B +:102C1000089581E00895982F2CC09093E9009817AB +:102C200039F07091EC002091ED005091F00003C05C +:102C3000242F762F50E021FD02C09F5F1AC03091F3 +:102C4000EB003E7F3093EB003091ED003D7F309301 +:102C5000ED003091EB0031603093EB007093EC00AD +:102C60002093ED005093F0002091EE0027FDE5CF7A +:102C700007C0973090F28F708093E90081E008954B +:102C800080E008958091FC0387FD05C08091E800F5 +:102C900080FF0EC012C08091E80082FD05C08091C7 +:102CA000FB038111F8CF08958091E8008B7708C06D +:102CB0008091FB038111EACF08958091E8008E771F +:102CC0008093E80008958091E4009091E50045E646 +:102CD0002091EC0020FD1FC023C02091FB03222384 +:102CE00091F0253091F02091EB0025FD10C020914E +:102CF000E4003091E5002817390751F34150C9012C +:102D000039F784E0089582E0089583E0089581E032 +:102D1000089580E008952091E80020FFDECFF9CFEC +:102D20002091E80022FFD9CFF4CF0E9403170E9420 +:102D30000B17E0EEF0E0808181608083E8EDF0E049 +:102D400080818F77808319BCA7EDB0E08C918E7F56 +:102D50008C9380818F7E80831092FA0308950F9365 +:102D60001F93CF93DF930E9403170E940B17C8EDA8 +:102D7000D0E088818F778883888180688883888184 +:102D80008F7D888319BC1092FB031092F703109279 +:102D9000F9031092F80300EE10E0F80180818B7FB8 +:102DA000808388818160888342E060E080E00E94C7 +:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2 +:102DC000808181608083808188608083F801808138 +:102DD0008E7F8083888180618883DF91CF911F916E +:102DE0000F910895E8EDF0E080818F7E8083E7ED1C +:102DF000F0E080818160808384E082BF81E0809305 +:102E0000FA030C94AF16E8EDF0E080818E7F8083AA +:102E10001092E20008951092DA001092E1000895F5 +:102E20001F920F920FB60F9211242F933F934F933F +:102E30005F936F937F938F939F93AF93BF93EF9322 +:102E4000FF938091E10082FF0BC08091E20082FF3E +:102E500007C08091E1008B7F8093E1000E94B9124E +:102E60008091DA0080FF1FC08091D80080FF1BC0D6 +:102E70008091DA008E7F8093DA008091D90080FF04 +:102E80000DC080E189BD82E189BD09B400FEFDCF9E +:102E900081E08093FB030E94A41205C019BC10922C +:102EA000FB030E94B2128091E10080FF19C0809163 +:102EB000E20080FF15C08091E2008E7F8093E200E7 +:102EC0008091E20080618093E2008091D80080626E +:102ED0008093D80019BC85E08093FB030E94B61252 +:102EE0008091E10084FF30C08091E20084FF2CC01B +:102EF00080E189BD82E189BD09B400FEFDCF8091EA +:102F0000D8008F7D8093D8008091E1008F7E8093E0 +:102F1000E1008091E2008F7E8093E2008091E200E8 +:102F200081608093E2008091F703882311F084E0B0 +:102F300007C08091E30087FF02C083E001C081E009 +:102F40008093FB030E94B7128091E10083FF29C0A8 +:102F50008091E20083FF25C08091E100877F80930C +:102F6000E10082E08093FB031092F7038091E1007F +:102F70008E7F8093E1008091E2008E7F8093E2005B +:102F80008091E20080618093E20042E060E080E0B6 +:102F90000E940B168091F00088608093F0000E94E0 +:102FA000B512FF91EF91BF91AF919F918F917F915A +:102FB0006F915F914F913F912F910F900FBE0F90A6 +:102FC0001F9018951F920F920FB60F9211242F93F6 +:102FD0003F934F935F936F937F938F939F93AF93A1 +:102FE000BF93CF93EF93FF938091E9008F709091FF +:102FF000EC0090FF02C090E801C090E0C92FC82B00 +:103000001092E9008091F000877F8093F00078941F +:103010000E9426181092E9008091F0008860809349 +:10302000F000CF70C093E900FF91EF91CF91BF9175 +:10303000AF919F918F917F916F915F914F913F9150 +:103040002F910F900FBE0F901F9018951F93CF9345 +:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7 +:10306000CDBFECEFF3E08091F100819324E0E430F8 +:10307000F207C9F70E9417138091E80083FF37C158 +:103080008091FC039091FD03953009F488C038F4D9 +:103090009130B1F170F0933009F029C131C098300E +:1030A00009F4F8C0993009F404C1963009F01FC141 +:1030B0009DC0803821F0823809F019C108C0809184 +:1030C000F8039091F903992389F082600FC08091F1 +:1030D0000004909101048F7099278093E9008091FA +:1030E000EB0085FB882780F91092E9009091E800B9 +:1030F000977F9093E8008093F1001092F100D5C083 +:10310000882319F0823009F0F2C08F7121F08230EB +:1031100009F0EDC00BC08091FE03813009F0E7C0DB +:10312000933009F080E08093F9032FC08091FE0373 +:1031300081112BC080910004909101048F70992718 +:10314000009709F4D4C08093E9002091EB0020FFA0 +:103150001CC02091FD03233021F48091EB0080629C +:1031600012C09091EB0090619093EB0021E030E071 +:1031700001C0220F8A95EAF72093EA001092EA0034 +:103180008091EB0088608093EB001092E9008091C1 +:10319000E800877F8093E8000E944216A8C0811152 +:1031A000A6C08091FE039091FF038F779927182F77 +:1031B0009091E3009078982B9093E3008091E80041 +:1031C000877F8093E8000E9442168091E80080FF8C +:1031D000FCCF8091E30080688093E300112311F01D +:1031E00083E001C082E08093FB0381C0805882307D +:1031F00008F07DC08091FE039091FF038C3D23E099 +:10320000920779F583E08A838AE289834FB7F8943D +:10321000DE01139620E03EE051E2E32FF0E0509310 +:103220005700E49120FF03C0E295EF703F5FEF701D +:103230008E2F90E0EA3010F0C79601C0C0968D93B3 +:103240009D932F5F243149F74FBF8091E800877F1E +:103250008093E8006AE270E0CE0101960E94441576 +:1032600013C0AE01455D5F4F609100040E942B14B6 +:103270000097E9F12091E800277F2093E800BC0146 +:103280008BA59CA50E94A7158091E8008B77809361 +:10329000E8002DC0803859F58091E800877F809341 +:1032A000E8008091F7038093F1008091E8008E7729 +:1032B00071CF81111CC09091FE039230C0F48091B7 +:1032C000E800877F8093E8009093F7030E944216FE +:1032D0008091F703811104C08091E30087FF02C051 +:1032E00084E001C081E08093FB030E94F912809189 +:1032F000E80083FF0AC08091E800877F8093E800A0 +:103300008091EB0080628093EB00AC960FB6F8944E +:10331000DEBF0FBECDBFDF91CF911F910895CF9338 +:103320008091FB038823B1F08091E9008F70909128 +:10333000EC0090FF02C090E801C090E0C92FC82BBC +:103340001092E9008091E80083FD0E942618CF705A +:10335000C093E900CF910895881F8827881F08959A +:1033600091E0883F08F490E0892F0895982F907F8E +:10337000903B99F038F4903981F0903A71F09038A0 +:10338000C9F40BC0903DA1F018F4903C99F410C022 +:10339000903E19F0903F71F402C083E00895E82F49 +:1033A000E15FEF3038F4F0E0E15FFD4F8081089598 +:1033B00082E0089580E008950F932F774F776F7024 +:1033C000606BDC01ED91FC91022F242F462F63E00E +:1033D00070E009950F9108950F932F774F776F70D5 +:1033E0006069DC01ED91FC91022F242F462F63E0F0 +:1033F00070E009950F9108950F932F774F776F70B5 +:103400006068DC01ED91FC91022F242F462F63E0D0 +:1034100070E009950F910895FC017383628308950C +:10342000FC01738F628F0895FC01758F648F08957E +:10343000CF93DF93EC011DA21FA21EA2BC01685D09 +:103440007F4F40EC88519F4F0E94551C1B821A826F +:103450001D821C821F821E82198618861B861A8670 +:103460001D861C861F861E86198A188A1B8A1A8A40 +:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10 +:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149 +:103490000895CF92DF92FF920F931F93CF93DF9304 +:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F +:1034B00008C0F60161916F01C80149830E945C1C3C +:1034C00049818C2D841B8F15A0F30F90DF91CF9134 +:1034D0001F910F91FF90DF90CF900895FC017183B1 +:1034E00060830895FC0171A360A30895AF92BF9219 +:1034F000CF92DF92EF92FF920F931F93CF93DF93C0 +:1035000000D01F92CDB7DEB77C016B01142FB22E15 +:10351000A02EDC0195968C9195978430F1F45A9603 +:10352000ED91FC915B97309709F4D8C0CB010197DE +:1035300063E070E00E948834DB01AA0FBB1FA60F76 +:10354000B71F49832A830B834C2D4A1B9E012F5F93 +:103550003F4FBD01C7010995B1C06230710509F443 +:1035600053C06330710529F06130710509F09CC0CA +:1035700083C0842F807F803A01F130F48038B9F025 +:10358000803909F0ABC00DC0803EE9F0803F09F101 +:10359000803B09F0A3C0D7011296ED91FC911397DF +:1035A00023C0D7011496ED91FC9115971DC0D7014A +:1035B0001696ED91FC91179717C0D7011896ED91CB +:1035C000FC91199711C0D7011A96ED91FC911B97A8 +:1035D0000BC0423F09F082C0D7011C96ED91FC91CF +:1035E0001D97309731F47AC0309709F477C0123FB5 +:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C +:103600004B2DC70109955AC0842F807F803D59F00A +:10361000803F79F0803C09F061C0D7011E96ED91A2 +:10362000FC911F9719C0D7015096ED91FC915197CD +:1036300013C0433F31F4D7015296ED91FC9153975B +:1036400008C0413F09F04AC0D7015496ED91FC9162 +:103650005597309741F442C0309709F43FC0133F6B +:1036600011F0113F19F44B2D612F03C0612F6F70C2 +:103670004B2DC701099522C0842F0E94B0198823C1 +:1036800031F0D7015696ED91FC91579707C0163F40 +:1036900029F5D7015896ED91FC9159973097F1F0A3 +:1036A000612FC70109950AC064307105A8F416C0DE +:1036B0000A2D2B2D412FB601C7010995D7015E9622 +:1036C000ED91FC915F97309789F00A2D2B2D412FBA +:1036D000B601C70109950AC0C12CD12CD7015C964F +:1036E000ED91FC915D97309719F7E8CF0F900F900F +:1036F0000F90DF91CF911F910F91FF90EF90DF908E +:10370000CF90BF90AF900895EF92FF920F931F93C9 +:10371000CF93DF93EC01162F862F0E94B0198823D8 +:1037200069F0FDA081E08DA300E020E0412F61E081 +:1037300070E0CE010E94761AFDA27CC0812F0E940B +:10374000AC194DA1882309F440C0443029F01AA3D4 +:1037500021E030E03FA32EA3812F0E94B6198130D3 +:1037600031F070F0823051F0833059F507C08DA3ED +:1037700000E020E0412F61E070E01EC08DA35AC040 +:10378000103F19F0173FE9F404C084E08DA31AA399 +:103790003FC02EA13FA1C90163E070E00E948834C0 +:1037A0008C0F9D1FFC0112A3B9016F5F7F4F7FA398 +:1037B0006EA30CA12BA14AA1CE010E94761A1DA2D4 +:1037C00039C01DA21FA21EA235C0442399F12EA10B +:1037D0003FA1C90163E070E00E9488347C01FE01D2 +:1037E000E80FF91F12A3B9016F5F7F4F7FA36EA38C +:1037F0008130910591F082E0E816F104D9F40CA132 +:103800002BA14AA1CE010E94761A8DA1843091F09D +:1038100081E090E09FA38EA30DC0423059F400E0F8 +:103820002BA14AA1CE010E94761A8DA1843011F0FD +:10383000FFA2EEA2DF91CF911F910F91FF90EF9029 +:103840000895CF92DF92EF92FF920F931F93CF9341 +:10385000DF93EC01E8A1F9A1309709F009958E01F9 +:1038600008511F4FC8010E948E1CE12CF12CC82E5C +:10387000D12C0FC060E0C8010E94A21C682FCE01AD +:103880000E94841B61E0C8010E94B31C8FEFE81AFC +:10389000F80AEC14FD0470F3DF91CF911F910F91A2 +:1038A000FF90EF90DF90CF900895FC0142837483E6 +:1038B00063831182108208950F931F93CF93DF9338 +:1038C000EC01062F0E94D41C182F298130E0C90179 +:1038D00001966A8170E00E949C34488150E0841710 +:1038E000950729F4812F0E94D71C80E012C0EB813C +:1038F000FC81E20FF31F00832981822F90E0019663 +:103900006A8170E00E949C348983812F0E94D71CB9 +:1039100081E0DF91CF911F910F910895CF93DF93B5 +:10392000EC010E94D41C29819881291710F0C22F24 +:1039300002C0CA81C20FC91B0E94D71C8C2FDF9105 +:10394000CF910895FC012081862F90E0820F911D78 +:10395000628170E00E949C340380F481E02DE80FC6 +:10396000F91F808108950F931F93CF93DF931F92C8 +:10397000CDB7DEB78C0169830E94D41C482FF801B3 +:1039800080816981262F30E0280F311D6281C901B5 +:1039900070E00E949C348083842F0F90DF91CF9140 +:1039A0001F910F910C94D71C8FB7F89408958FBF77 +:1039B0000895FC01CB012091FB032430B1F4218157 +:1039C0002F702093E90040E050E064E070E00E9436 +:1039D000A61481110BC09091E80095FD07C090914D +:1039E000E8009E779093E800089582E00895209182 +:1039F000FB032430A9F4FC0181818F708093E900DE +:103A00003091F3002091F200932F80E0822B892BDC +:103A100049F08091E8008E778093E8000C9463165B +:103A200082E0089580E008952091FB03243051F452 +:103A3000FC0121812F702093E9002091E80020FDF6 +:103A40000C94F71C0895FC01CB012091FB0324305A +:103A500011F080E0089526812F702093E9002091D5 +:103A6000E80022FFF6CF2091E80025FFF2CF40E0EA +:103A700050E064E070E00E94F5148091E80085FD5C +:103A800005C08091E8008B778093E80081E008957D +:103A900090939502809394020895E0919402F0919E +:103AA0009502309721F00190F081E02D099480E09B +:103AB0000895E0919402F0919502309721F00280F0 +:103AC000F381E02D09940895E0919402F09195021C +:103AD000309721F00480F581E02D0994089520911C +:103AE0009602309197028217930771F09093970294 +:103AF00080939602E0919402F0919502309721F024 +:103B00000680F781E02D0994089520919802309164 +:103B100099028217930771F090939902809398020B +:103B2000E0919402F0919502309721F00084F185A4 +:103B3000E02D0994089508950C949B1D0E94E62998 +:103B40000E94F3060E94BA2A0C9465300C942C064D +:103B50005F926F927F928F929F92AF92BF92CF921D +:103B6000DF92EF92FF920F931F93CF93DF93CDB726 +:103B7000DEB72A970FB6F894DEBF0FBECDBF0E9406 +:103B8000E9079AE9C92E92E0D92E00E010E0AA24B4 +:103B9000A394B12C502E802F0E9439093C01F601CC +:103BA000E190F1906F01E826F926E114F10431F477 +:103BB0000F5F1F4F0530110569F73AC08091F10280 +:103BC00081FD0E94420920E030E04501022E02C042 +:103BD000880C991C0A94E2F7C4018E219F21892B3D +:103BE00009F12E835F826820792081E0672809F43B +:103BF00080E088870E94EF298160782F9A878987E3 +:103C00004E815F8168858A850E94611EF801EE0FF2 +:103C1000FF1FE656FD4F808191818825992591836C +:103C2000808316C02F5F3F4F2C30310571F6C0CF17 +:103C30008FEF89838A831B820E94EF298160782F0E +:103C40009D838C8349815A816B818D810E94611E85 +:103C50000E94A72D1091A4020E944D1D1817D9F0A3 +:103C60000E944D1D8093A4022A960FB6F894DEBFE1 +:103C70000FBECDBFDF91CF911F910F91FF90EF90BD +:103C8000DF90CF90BF90AF909F908F907F906F907C +:103C90005F900C94A61D2A960FB6F894DEBF0FBE57 +:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB +:103CB000CF90BF90AF909F908F907F906F905F90CC +:103CC0000895CF93DF93CDB7DEB72B970FB6F89457 +:103CD000DEBF0FBECDBF4F83588769877A878B873A +:103CE000DE01119686E0FD0111928A95E9F785E0E3 +:103CF000FE01379601900D928A95E1F749815A812C +:103D00006B817C818D819E810E944A262B960FB605 +:103D1000F894DEBF0FBECDBFDF91CF910895089517 +:103D2000CF93C82F882309F4C1C0823859F40E9468 +:103D30004D1D81FDBBC089E30E94B1280E943D2931 +:103D400089E30CC0833879F40E944D1D80FDAEC01C +:103D500083E50E94B1280E943D2983E50E94D32873 +:103D6000CF910C943D29843859F40E944D1D82FD59 +:103D70009DC087E40E94B1280E943D2987E4EECFD0 +:103D80008450813A48F48C2F0E94C72F81118EC035 +:103D90008C2F0E94B128E4CF8C2F805E883050F4A5 +:103DA000C77081E090E001C0880FCA95EAF70E94D1 +:103DB000F428D6CF8C2F855A833078F4C53A29F071 +:103DC000C63A31F482E890E005C081E890E002C094 +:103DD00083E890E0CF910C946F1D8C2F885A83312B +:103DE00008F064C0C83A39F1C93A41F1CA3A49F118 +:103DF000CB3A51F1CC3A59F1CD3A61F1C03B69F17E +:103E0000CE3A71F1CF3A79F1C13B81F1C23B89F1F0 +:103E1000C33B91F1C43B99F1C53BA1F1C63BA9F16C +:103E2000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5C8 +:103E30008AE292E038C082EE90E035C089EE90E0F0 +:103E400032C08AEE90E02FC085EB90E02CC086EB6C +:103E500090E029C087EB90E026C08CEC90E023C076 +:103E60008DEC90E020C083E891E01DC08AE891E0ED +:103E70001AC082E991E017C084E991E014C081E2A0 +:103E800092E011C083E292E00EC084E292E00BC0A7 +:103E900085E292E008C086E292E005C087E292E007 +:103EA00002C080E090E0CF910C94851DCF910895E1 +:103EB000882309F44DC0823859F40E944D1D81FFBA +:103EC00047C089E30E94B1280E943D2989E30CC0C4 +:103ED000833871F40E944D1D80FF3AC083E50E9433 +:103EE000B1280E943D2983E50E94D3280C943D29E6 +:103EF000843859F40E944D1D82FF2AC087E40E9435 +:103F0000B1280E943D2987E4EFCF982F9450913A31 +:103F100008F4EACF982F905E983058F4282F277035 +:103F200081E090E001C0880F2A95EAF70E94FA2804 +:103F3000DDCF982F955A933020F480E090E00C94D8 +:103F40006F1D885A833120F480E090E00C94851D29 +:103F50000895882321F00E94F4280C943D290895A7 +:103F6000882321F00E94FA280C943D290895BF92DD +:103F7000CF92DF92EF92FF920F931F93CF93DF9335 +:103F8000CDB7DEB727970FB6F894DEBF0FBECDBF13 +:103F90008C0185E0F801DE01119601900D928A9561 +:103FA000E1F7F801D080E180F280558152955F7091 +:103FB00083819481892B41F0FFEFEF1208C081E0EB +:103FC00090E0DF1631F003C081E090E002C080E0B5 +:103FD00090E080FD7CC3C8015E830E948F1ED98261 +:103FE000EA8289819A810E946E28B92E8F830E946D +:103FF0006D280E9495275E816F81FF2021F00E942D +:1040000011296F815E812B2D22952F7030E0253094 +:10401000310509F4E6C06CF4243031050CF0A2C07F +:104020004B2D407F8B2D8F70223031050CF045C019 +:1040300017C02C3031054CF42A3031050CF0E7C1A3 +:104040002830310509F043C3E5C02D30310509F4AE +:10405000BAC20CF4A2C22F30310509F038C323C311 +:10406000182F411101C002C01295107FFF2059F096 +:10407000112309F46BC2812F6F830E9404290E94CF +:104080003D296F8163C2862F0E94581F112309F4B6 +:104090001EC3812F0E940A2927960FB6F894DEBF0F +:1040A0000FBECDBFDF91CF911F910F91FF90EF9089 +:1040B000DF90CF90BF900C943D29403211F0829553 +:1040C000807F662319F0613071F523C0FF20B1F0C5 +:1040D000511101C032C0513081F527960FB6F894C6 +:1040E000DEBF0FBECDBFDF91CF911F910F91FF902B +:1040F000EF90DF90CF90BF900C942429511101C014 +:1041000003C0513009F4E3C28E830E9427298E81B7 +:104110009AC1FF2021F0563008F0D9C20EC05530A8 +:1041200008F0D5C290C1FF20C9F0552331F0F80145 +:10413000958190FF0BC29F70958327960FB6F894D8 +:10414000DEBF0FBECDBFDF91CF911F910F91FF90CA +:10415000EF90DF90CF90BF900C94A91F552309F4E6 +:1041600072C109C22B2D26952695237030E02115AA +:10417000310529F02130310509F0A9C219C0FF200D +:1041800021F0862F9B2D937002C080E090E027964F +:104190000FB6F894DEBF0FBECDBFDF91CF911F9158 +:1041A0000F91FF90EF90DF90CF90BF900C946F1D18 +:1041B000FF2021F0862F9B2D937002C080E090E0BD +:1041C00027960FB6F894DEBF0FBECDBFDF91CF911B +:1041D0001F910F91FF90EF90DF90CF90BF900C94C4 +:1041E000851D862FFF2019F00E94AD2C02C00E9471 +:1041F000152D27960FB6F894DEBF0FBECDBFDF9109 +:10420000CF911F910F91FF90EF90DF90CF90BF90D3 +:104210000C949C2D8B2D837009F079C0F11057C23E +:10422000262F229526952770220F220F862F8F701A +:10423000C82ED12CE12CF12C022E04C0CC0CDD1C9C +:10424000EE1CFF1C0A94D2F764FF10C06FE070E010 +:1042500080E090E004C0660F771F881F991F2A95A1 +:10426000D2F7609570958095909503C060E070E0FE +:10427000CB012B2D269526952370422F50E04230FE +:104280005105D9F04330510569F16C297D298E29FA +:104290009F294130510551F127960FB6F894DEBFA2 +:1042A0000FBECDBFDF91CF911F910F91FF90EF9087 +:1042B000DF90CF90BF900C94AA276C297D298E297E +:1042C0009F2927960FB6F894DEBF0FBECDBFDF91B2 +:1042D000CF911F910F91FF90EF90DF90CF90BF9003 +:1042E0000C94BC270E94AA27C701B60127960FB6D7 +:1042F000F894DEBF0FBECDBFDF91CF911F910F911C +:10430000FF90EF90DF90CF90BF900C949827FF2004 +:1043100019F08B2D817001C08695882309F4D7C1CF +:10432000262F229526952770220F220F862F8F7019 +:10433000C82ED12CE12CF12C022E04C0CC0CDD1C9B +:10434000EE1CFF1C0A94D2F764FF10C06FE070E00F +:1043500080E090E004C0660F771F881F991F2A95A0 +:10436000D2F7609570958095909503C060E070E0FD +:10437000CB012B2D269526952370422F50E04230FD +:104380005105D9F04330510569F16C297D298E29F9 +:104390009F294130510551F127960FB6F894DEBFA1 +:1043A0000FBECDBFDF91CF911F910F91FF90EF9086 +:1043B000DF90CF90BF900C9449286C297D298E29DD +:1043C0009F2927960FB6F894DEBF0FBECDBFDF91B1 +:1043D000CF911F910F91FF90EF90DF90CF90BF9002 +:1043E0000C945B280E944928C701B60127960FB696 +:1043F000F894DEBF0FBECDBFDF91CF911F910F911B +:10440000FF90EF90DF90CF90BF900C943728603FE3 +:1044100059F120F4603E08F494C008C0623F09F4EA +:1044200067C0F0F1633F09F08CC065C0162F1F70A4 +:104430008B2D8F71FF2021F00E94E227812F7DCEEE +:104440000E94FD27812F27960FB6F894DEBF0FBE7E +:10445000CDBFDF91CF911F910F91FF90EF90DF9033 +:10446000CF90BF900C94B01FFF20B1F0553008F0F2 +:104470002EC18B2D8F7127960FB6F894DEBF0FBE1D +:10448000CDBFDF91CF911F910F91FF90EF90DF9003 +:10449000CF90BF900C941C28563008F018C1E9CF7B +:1044A000FF2099F08B2D8F7127960FB6F894DEBF01 +:1044B0000FBECDBFDF91CF911F910F91FF90EF9075 +:1044C000DF90CF90BF900C94E2278B2D8F712796B1 +:1044D0000FB6F894DEBF0FBECDBFDF91CF911F9115 +:1044E0000F91FF90EF90DF90CF90BF900C94FD273D +:1044F000F110EBCFD7CFFF2099F08B2D8F7127963E +:104500000FB6F894DEBF0FBECDBFDF91CF911F91E4 +:104510000F91FF90EF90DF90CF90BF900C94D32736 +:1045200027960FB6F894DEBF0FBECDBFDF91CF91B7 +:104530001F910F91FF90EF90DF90CF90BF900C9460 +:10454000CE27FF20A9F0552309F4ACCF862F27965C +:104550000FB6F894DEBF0FBECDBFDF91CF911F9194 +:104560000F91FF90EF90DF90CF90BF900C94901E32 +:10457000552309F4AACF862F27960FB6F894DEBFED +:104580000FBECDBFDF91CF911F910F91FF90EF90A4 +:10459000DF90CF90BF900C94581F4B2D4F70C801E7 +:1045A0000E94560327960FB6F894DEBF0FBECDBF0C +:1045B000DF91CF911F910F91FF90EF90DF90CF90FF +:1045C000BF900C940027F11082C09B2D9F70492F43 +:1045D00050E04230510599F144F44115510569F01C +:1045E0004130510509F073C019C043305105C1F184 +:1045F0004430510509F06BC044C027960FB6F894BB +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C94763027960FB636 +:10462000F894DEBF0FBECDBFDF91CF911F910F91E8 +:10463000FF90EF90DF90CF90BF900C948D30279635 +:104640000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:104650000F91FF90EF90DF90CF90BF900C94A93016 +:1046600027960FB6F894DEBF0FBECDBFDF91CF9176 +:104670001F910F91FF90EF90DF90CF90BF900C941F +:10468000BC30862F27960FB6F894DEBF0FBECDBF85 +:10469000DF91CF911F910F91FF90EF90DF90CF901E +:1046A000BF900C94E0304B2D4F70C80127960FB689 +:1046B000F894DEBF0FBECDBFDF91CF911F910F9158 +:1046C000FF90EF90DF90CF90BF900C944309279616 +:1046D0000FB6F894DEBF0FBECDBFDF91CF911F9113 +:1046E0000F91FF90EF90DF90CF90BF9008950E94C0 +:1046F00011290E9421290E94E6280E943D290E943A +:10470000482E0E949C2D80E090E00E946F1D80E06A +:1047100090E00C94851D0E9401290C9477230E943F +:104720006E28292F22952F7030E02C3031054CF463 +:104730002A3031056CF4225031092230310590F4D1 +:1047400007C02C30310551F02F30310559F406C027 +:10475000803E10F0803F31F481E0089593FB88277C +:1047600080F9089580E00895CF93DF9300D000D0C2 +:104770001F92CDB7DEB70F900F900F900F900F9054 +:10478000DF91CF910895CF93DF9300D000D000D078 +:10479000CDB7DEB726960FB6F894DEBF0FBECDBFFD +:1047A000DF91CF9108951F93CF93DF93C091DB02E8 +:1047B00016E012C0D0E01C9FF0011D9FF00D1124E7 +:1047C000E555FD4F408151816281738184819581DE +:1047D0000E94C3232196C7708091DC02C813EACFE0 +:1047E000DF91CF911F9108954091A5025091A602AB +:1047F0006091A7027091A8028091A9029091AA02EB +:104800000C94C3230F931F93CF93DF938091AA023D +:1048100082958F7009F069C08091A702882309F4FE +:1048200064C0A091DB02D091DC02B091A502C091DE +:10483000A6028091A8029091A90221E030E0BF3F3A +:1048400011F020E030E0122FBC016095709506E079 +:104850004AC0009721F0CF3F29F4212F05C021E065 +:1048600030E002C020E030E020FD3BC04A2F50E0A5 +:10487000049FF001059FF00D1124E555FD4F2181A6 +:10488000C2132FC02081B2132CC02281211129C054 +:10489000238134812817390718F0281B390B02C0EF +:1048A000260F371F283C3105E0F48091AA028F7053 +:1048B00080618093AA0286E0849FF001859FF00DBD +:1048C0001124E055FD4F80818F708061808385EADF +:1048D00092E00E94B71FDF91CF911F910F910C942E +:1048E000D323AF5FA770AD13B4CFDF91CF911F91EA +:1048F0000F910895EF92FF920F931F93CF93DF9341 +:10490000CDB7DEB762970FB6F894DEBF0FBECDBF4E +:104910008C0185E0F801DE011D9601900D928A95CB +:10492000E1F7D8014C9111965C91119712966C9118 +:1049300012971396ED90FC9014977091A502E09158 +:10494000A6028091A8029091A902009739F0EF3F4A +:1049500041F421E030E07F3F31F003C021E030E05E +:1049600002C020E030E020FD5CC12091A70222239C +:1049700009F4F1C0E816F90628F09701281B390B55 +:10498000C90104C0809590958E0D9F1D883C9105AE +:1049900008F098C08091AA02982F907F09F064C017 +:1049A000E51314C0741312C0611110C08F708061C0 +:1049B0008093AA020E94F42385EA92E00E94B71F26 +:1049C0008091AA02D80115968C9343C1EF2839F043 +:1049D0005F3F41F481E090E04F3F31F003C081E060 +:1049E00090E002C080E090E080FD03C081E0862777 +:1049F00002C080E090E080FF2EC08091DB02209119 +:104A0000DC0236E013C090E0389FF001399FF00DD2 +:104A10001124E555FD4F7181571306C0708147136E +:104A200003C07281671317C0019687708213EBCFA2 +:104A300012C19F7059F0882309F40BC107C09F7001 +:104A400029F0F8019581907F09F403C1805E8830D8 +:104A500008F4FFC0D2C0662309F4FBC08091AA020B +:104A600081608093AA02F5C0E51308C0741306C0E4 +:104A7000611104C0D80115968C939DC04D875E8747 +:104A80008D859E856A8B0E948F236A89882309F40D +:104A9000B4C0662309F4B1C02091AA02822F829586 +:104AA0008F7090E002970CF4C6C08091A50290919F +:104AB000A60298878F831986FB86EA862C87CE010B +:104AC000079646C08091AA02982F907F59F47E2DB8 +:104AD000F98AE88A89890E94B42385EA92E00E94D3 +:104AE000B71F95C0E51311C074130FC061110DC03D +:104AF000F8018583C8010E94B71FE5EAF2E086E06D +:104B0000DF011D928A95E9F7A2C04D875E878D85EA +:104B10009E856A8B0E948F236A89882309F46DC061 +:104B2000662309F46AC02091AA02822F82958F70B1 +:104B300090E002970CF47FC08091A5029091A602AC +:104B40009A8389831B82FD82EC822E83CE0101969B +:104B50000E94B71F70C0E816F90628F09701281BBD +:104B6000390BC90104C0809590958E0D9F1D883C1E +:104B7000910508F046C0662309F43FC0E51330C034 +:104B800074132EC02091AA0220FD21C0322F32952D +:104B90003F70832F90E00097D1F0D80115962C93A9 +:104BA00015970F9741F0832F8F5F8295807F2F702D +:104BB000282B15962C93C8010E94B71F86E0F80198 +:104BC000A5EAB2E001900D928A95E1F73EC086E039 +:104BD000F801A5EAB2E001900D928A95E1F737C09D +:104BE0004D875E878D859E850E948F23811123C00E +:104BF0008091AA0281608093AA02C8010E94B71F17 +:104C000026C07E2DF98AE88A89890E94B423E5EAC4 +:104C1000F2E086E0DF011D928A95E9F70E94F42315 +:104C200018C0662351F34D875E878D859E850E944F +:104C30008F23882311F386E0F801A5EAB2E0019002 +:104C40000D928A95E1F70E9402240E94F42381E0EC +:104C500014C080E012C04D875E878D859E850E94BE +:104C60006E28292F22952F7030E0223031050CF468 +:104C7000E0CE243031050CF6E2CE62960FB6F89401 +:104C8000DEBF0FBECDBFDF91CF911F910F91FF907F +:104C9000EF9008951F93CF93DF93CDB7DEB72C9796 +:104CA0000FB6F894DEBF0FBECDBF4F83588769871C +:104CB0007A878B879C87CE0107960E947A24882367 +:104CC000D9F02F8138858A859B85892B39F03F3F24 +:104CD00019F080E090E004C02F3FD9F781E090E028 +:104CE000892B09F06DC04F81588569857A858B8540 +:104CF0009C850E94C32364C086E0FE013796DE01D6 +:104D0000119601900D928A95E1F7FF81E8854A8519 +:104D10005B854115510539F0EF3F41F481E090E0AA +:104D2000FF3F31F003C081E090E002C080E090E0FE +:104D300080FD46C02091DC0230E0C90101968770F9 +:104D400099276091DB0270E08617970709F440C04D +:104D5000F983EA835D834C8396E0929FD001939F11 +:104D6000B00D1124A555BD4FFE01319601900D9255 +:104D70009A95E1F78093DC020E94D32321C0189F0B +:104D8000C001112485559D4F0E947A24882371F11A +:104D9000E091DB021E9FF0011124E555FD4F40819B +:104DA000518162817381848195810E94C3238091A6 +:104DB000DB0290E00196877099278093DB0201C0A7 +:104DC00016E08091DB029091DC028913D8CF0EC0EF +:104DD0000E948B231092DC021092DB02E5EAF2E0E3 +:104DE00086E0DF011D928A95E9F7EACF2C960FB68F +:104DF000F894DEBF0FBECDBFDF91CF911F91089514 +:104E0000DF92EF92FF920F931F93CF93DF93EC010A +:104E1000009709F46EC0D12CEE24E394F12C8E019E +:104E20000F5F1F4FFE018491843748F4843008F0EF +:104E30004CC0813071F0823009F05BC01EC08537F4 +:104E400009F43FC080F1982F9458903708F051C072 +:104E50003FC02296F8018491982F905E983050F4CC +:104E60008770FE2D01C0FF0F8A95EAF78F2F0E94F1 +:104E7000142913C00E94901E2FC02296F80184911D +:104E8000982F905E983060F48770FE2D01C0FF0F60 +:104E90008A95EAF78F2F0E941A290E943D291CC08B +:104EA0000E94581F19C02296F801049107C08FE98B +:104EB0009FE00197F1F700C0000001500111F7CF0A +:104EC0000BC02296F801D49007C00E94901E03C028 +:104ED0008F770E94581FE8018D2D07C08150EFE9A0 +:104EE000FFE03197F1F700C00000882309F497CF65 +:104EF000F5CFDF91CF911F910F91FF90EF90DF9051 +:104F000008956093E1027093E2028093E30290932C +:104F1000E4020C9477236093DD027093DE028093A9 +:104F2000DF029093E0020C94772308950C9481277C +:104F30000F931F930091E1021091E2022091E3028E +:104F40003091E402602B712B822B932B1F910F91D8 +:104F50000C9481270F931F930091E1021091E202BC +:104F60002091E3023091E402602371238223932392 +:104F70001F910F910C9481270F931F930091E102D1 +:104F80001091E2022091E3023091E4026027712740 +:104F9000822793271F910F910C94812760E070E086 +:104FA000CB010C948B2741E050E060E070E004C03E +:104FB000440F551F661F771F8A95D2F7CB01BA01A0 +:104FC0000C948B2741E050E060E070E004C0440F97 +:104FD000551F661F771F8A95D2F78091DD02909149 +:104FE000DE02A091DF02B091E002482B592B6A2B20 +:104FF0007B2BCB01BA010C948B2741E050E060E0A1 +:1050000070E004C0440F551F661F771F8A95D2F7C2 +:1050100040955095609570958091DD029091DE02EB +:10502000A091DF02B091E002482359236A237B2339 +:10503000CB01BA010C948B2741E050E060E070E0B6 +:1050400004C0440F551F661F771F8A95D2F78091C1 +:10505000DD029091DE02A091DF02B091E0024827CC +:1050600059276A277B27CB01BA010C948B270F9312 +:105070001F930091DD021091DE022091DF0230913A +:10508000E002602B712B822B932B1F910F910C94BC +:105090008B270F931F930091DD021091DE02209168 +:1050A000DF023091E00260237123822393231F915A +:1050B0000F910C948B270F931F930091DD02109199 +:1050C000DE022091DF023091E00260277127822703 +:1050D00093271F910F910C948B270895CF92DF9205 +:1050E000EF92FF920F931F93CF93DF93EC01C09049 +:1050F000E102D090E202E090E302F090E4028091BD +:10510000DD029091DE02A091DF02B091E002C82A98 +:10511000D92AEA2AFB2A0FE110E0B701A601002EE6 +:1051200004C076956795579547950A94D2F740FF46 +:1051300008C0BE01802F0E94B3048130910509F0A0 +:1051400007C00150110948F7BE0180E00E94B30476 +:10515000DF91CF911F910F91FF90EF90DF90CF9053 +:10516000089540918B0150918C0120E030E09FEF39 +:10517000FA01E20FF31F62816817A1F09F3F19F453 +:10518000611101C0922F2F5F3F4F2630310581F70B +:1051900007C0FA01E90FF11D97FDFA958283089582 +:1051A0009F3FB9F7089540918B0150918C0120E009 +:1051B00030E0FA01E20FF31F9281981301C01282CE +:1051C0002F5F3F4F26303105A1F7089581E090E031 +:1051D000E0918B01F0918C01E80FF91F108201968C +:1051E00088309105A9F708959091E502982B909346 +:1051F000E502089580959091E50298239093E50249 +:1052000008951092E50208959091E602982B9093EC +:10521000E602089580959091E60298239093E60225 +:1052200008951092E60208959091E702982B9093CA +:10523000E702089580959091E70298239093E70202 +:1052400008951092E70208958093E802089510925D +:10525000E802089540918B0150918C0120E030E0EC +:1052600080E0FA01E20FF31F918191118F5F2F5FB0 +:105270003F4F27303105A9F70895E0918B01F09158 +:105280008C018091E5028083E0918B01F0918C018B +:1052900080819091E602892B8083E0918B01F091CF +:1052A0008C0180819091E702892B80839091E802A4 +:1052B000992361F0E0918B01F0918C018081892B21 +:1052C00080830E942A2981110E94272980918B01C5 +:1052D00090918C010C94591D8091FB03843039F11D +:1052E0001092F20220E488E190E00FB6F894A895BD +:1052F000809360000FBE2093600080E00E949B03BB +:1053000080E00E942C0683B7817F846083BF83B7CF +:10531000816083BF7894889583B78E7F83BF88E14F +:105320000FB6F89480936000109260000FBE08954D +:1053300008950895CF9380E00E949B030E949829CE +:105340000E94E9070E949929C0E08C2F0E94390928 +:10535000892B29F4CF5FC530C1F780E001C081E01F +:10536000CF9108950E948B2380E00E949B030E94AE +:1053700065300E944D1D0C942C061F920F920FB6A3 +:105380000F9211248F939F93AF93BF938091F2025A +:10539000811113C08091F3029091F402A091F50263 +:1053A000B091F6024196A11DB11D8093F302909336 +:1053B000F402A093F502B093F602BF91AF919F91D2 +:1053C0008F910F900FBE0F901F90189582E084BDB3 +:1053D00093E095BD9AEF97BD80936E0008958FB7C7 +:1053E000F8944091F3025091F4026091F5027091AB +:1053F000F6028FBFCA010895CF92DF92EF92FF921B +:105400000F931F932FB7F8944091F3025091F40239 +:105410006091F5027091F6022FBF6A017B01EE24C4 +:10542000FF248C0120E030E0C016D106E206F3062E +:1054300020F09A01281B390B05C09C01209530955E +:10544000240F351FC9011F910F91FF90EF90DF903E +:10545000CF9008951F920F920FB60F9211248F9341 +:105460009F93AF93BF938091F3029091F402A09128 +:10547000F502B091F6020196A11DB11D8093F302D1 +:105480009093F402A093F502B093F602BF91AF910E +:105490009F918F910F900FBE0F901F9018950E94B3 +:1054A0009516F8942FEF87EA91E6215080409040BE +:1054B000E1F700C0000087E090EBDC018093050479 +:1054C00090930604A0930704B09308042CE088E1AD +:1054D00090E00FB6F894A895809360000FBE2093DB +:1054E0006000FFCFCF92DF92EF92FF920F931F9356 +:1054F000CF93DF93C82ED12C01E010E08D2D0E94B8 +:1055000039097C01C0E0D0E098010C2E02C0220FC6 +:10551000331F0A94E2F72E213F21232B29F42196F1 +:10552000CC30D10589F708C06C2F7D2D80E00E941A +:105530008E04C812F4CF06C0D39485E0D812DECF13 +:1055400080E001C081E0DF91CF911F910F91FF902A +:10555000EF90DF90CF900895CF93C82F8CE20E94F8 +:10556000722A882321F08C2FCF910C94722A80E02C +:10557000CF910895CF930E94FD2B811102C00E940C +:10558000DE2BC5E608C00E94E9078FE39CE901977E +:10559000F1F700C00000C150B1F789E20E94AC2AC7 +:1055A00081110AC18AE20E94AC2A81110E94DE2B7D +:1055B00085E00E94AC2A81110E944F2A0E94082C8B +:1055C0008093F10287E00E94AC2A882399F18BE155 +:1055D0000E94AC2A882351F09091F10291FB882718 +:1055E00080F921E0822780FB91F922C08EE00E94A1 +:1055F000AC2A882351F09091F10292FB882780F920 +:1056000021E0822780FB92F913C080E10E94AC2A3E +:105610009091F102882341F093FB882780F921E0E3 +:10562000822780FB93F904C0892F809580FB90F935 +:105630009093F1028091F1020E940C2C0E941A2C8E +:105640008093020380EE0E94AC2A882341F080916F +:105650000203982F909590FB80F98093020389E3D1 +:105660000E94AC2A882359F09091020391FB88276D +:1056700080F921E0822780FB91F99093020382EE6A +:105680000E94AC2A882359F09091020392FB88274C +:1056900080F921E0822780FB92F99093020386EE45 +:1056A0000E94AC2A882359F09091020393FB88272B +:1056B00080F921E0822780FB93F99093020383EE27 +:1056C0000E94AC2A882359F09091020394FB88270A +:1056D00080F921E0822780FB94F99093020385E30F +:1056E0000E94AC2A882359F09091020395FB8827E9 +:1056F00080F921E0822780FB95F99093020381E3F2 +:105700000E94AC2A882359F09091020396FB8827C7 +:1057100080F921E0822780FB96F99093020381E1D2 +:105720000E94AC2A882359F09091020397FB8827A6 +:1057300080F921E0822780FB97F990930203809102 +:1057400002030E941E2C87E20E94AC2AC82F8EE121 +:105750000E94AC2A8111C2608FE10E94AC2A8111A3 +:10576000C46080E20E94AC2A8111C86081E20E947C +:10577000AC2A8111C06182E20E94AC2A8111C06210 +:1057800083E20E94AC2A8111C06484E20E94AC2AA8 +:10579000882311F0C06802C0CC2329F08C2F0E940E +:1057A000152C6C2F03C00E94112C682F70E080E034 +:1057B00090E0CF910C949627CF9108956DEE7EEFF7 +:1057C00080E090E00E94CC3460E082E090E00E94B3 +:1057D000BE3460E083E090E00E94BE3460E084E08C +:1057E00090E00E94BE3460E085E090E00E94BE340C +:1057F00060E086E090E00C94BE3480E090E00E948F +:10580000B83421E08D3E9E4F09F020E0822F0895AC +:1058100082E090E00C94B034682F82E090E00C9429 +:10582000BE3483E090E00C94B034682F83E090E0C5 +:105830000C94BE3484E090E00C94B034682F84E083 +:1058400090E00C94BE3486E090E00C94B034682F65 +:1058500086E090E00C94BE348091FF0280FF0BC084 +:105860006091900185E0689FB0011124759567955E +:10587000759567952AC081FF09C06091900185E008 +:10588000689FB0011124759567951FC082FF07C0FE +:105890006091900185E0689FB001112416C040918D +:1058A000F9024423C9F060918F01461788F72091CF +:1058B000900185E0289F90011124429FC001439FE1 +:1058C000900D112470E00E949C346038710540F402 +:1058D0006115710539F002C065E070E0862F08950A +:1058E0008FE7089581E008958091FF0280FF08C04E +:1058F00060918E0170E0759567957595679521C0EB +:1059000081FF06C060918E0170E07595679519C0A2 +:1059100082FF04C060918E0170E010C08091F90296 +:105920008823C1F060918D018617A0F790918E01B8 +:10593000989FC001112470E00E949C34603871056A +:1059400028F46115710521F0862F08958FE70895D9 +:1059500081E0089561E070E0F4CF803F21F40E947F +:105960002C2C819504C0813F29F40E942C2C80931B +:10597000FC020895823F21F40E942C2C819504C0E2 +:10598000833F29F40E942C2C8093FB020895893FC9 +:1059900019F40E94742C05C08A3F31F40E94742CC3 +:1059A00081958093FD0208958B3F21F40E94742C11 +:1059B000819504C08C3F29F40E94742C8093FE02D0 +:1059C0000895843F21F48091FA02816017C0853FD9 +:1059D00021F48091FA02826011C0863F21F4809107 +:1059E000FA0284600BC0873F21F48091FA0288603C +:1059F00005C0883F31F48091FA0280618093FA02F9 +:105A000008958D3F21F48091FF0281600BC08E3F8D +:105A100021F48091FF02826005C08F3F29F48091BC +:105A2000FF0284608093FF020895803F29F48091F3 +:105A3000FC0287FF6EC007C0813F41F48091FC02E9 +:105A400018160CF066C01092FC0263C09091FB0225 +:105A5000823F19F497FF5DC005C0833F31F41916EA +:105A60000CF057C01092FB0254C0893F31F4809172 +:105A7000FD0218160CF04DC006C08A3F39F4809123 +:105A8000FD0287FF46C01092FD0243C08B3F29F400 +:105A90008091FE0287FF3DC006C08C3F39F48091A3 +:105AA000FE021816B4F51092FE0233C0843F21F4B2 +:105AB0008091FA028E7F05C0853F31F48091FA0211 +:105AC0008D7F8093FA0225C0863F21F48091FA02EF +:105AD0008B7FF7CF873F21F48091FA02877FF1CF48 +:105AE000883F21F48091FA028F7EEBCF8D3F21F425 +:105AF0008091FF028E7F0BC08E3F21F48091FF02C8 +:105B00008D7F05C08F3F29F48091FF028B7F8093AA +:105B1000FF028091FB0281110EC08091FC02811175 +:105B20000AC08091FD02811106C08091FE028111A0 +:105B300002C01092F90208958AEF92E00E94641D5B +:105B40000E94EF299093F8028093F7020895CF9373 +:105B50008091F7029091F8020E94FC294091F9028D +:105B6000442321F02091910130E006C02091920160 +:105B70005AE0259F900111248217930708F486C0EC +:105B80008091FB0281110DC09091FC02911109C01E +:105B90009091FD02911105C09091FE02992309F4A4 +:105BA00075C04F3F19F04F5F4093F902181624F467 +:105BB0000E942C2C8093FB028091FB0287FF05C082 +:105BC0000E942C2C81958093FB028091FC02181678 +:105BD00024F40E942C2C8093FC028091FC0287FF0D +:105BE00005C00E942C2C81958093FC026091FB02E1 +:105BF000662339F1C091FC02CC2319F1772767FDA8 +:105C00007095872F972F0E94003223E333E343E3FD +:105C10005FE30E94B4320E94CD316093FB026C2F8F +:105C2000772767FD7095872F972F0E94003223E317 +:105C300033E343E35FE30E94B4320E94CD316093CB +:105C4000FC028091FD02181624F40E94742C8093AB +:105C5000FD028091FD0287FF05C00E94742C819592 +:105C60008093FD028091FE02181624F40E94742C89 +:105C70008093FE028091FE0287FF05C00E94742C73 +:105C800081958093FE02CF910C949C2DCF91089525 +:105C9000EAEFF2E085E0DF011D928A95E9F71092C4 +:105CA000F9021092FF020895833089F130F48130B7 +:105CB00061F0823009F06EC019C0853009F449C026 +:105CC000B8F1863009F066C055C020919201862F48 +:105CD00090E0820F911D8F3F910520F4620F609339 +:105CE000920108958FEF8093920108952091910180 +:105CF000862F90E0820F911D8F3F910520F4620F57 +:105D00006093910108958FEF809391010895209100 +:105D10009001862F90E0820F911D8F3F910520F416 +:105D2000620F6093900108958FEF80939001089522 +:105D300020918F01862F90E0820F911D8F3F91055A +:105D400020F4620F60938F0108958FEF80938F018D +:105D5000089520918E01862F90E0820F911D8F3F34 +:105D6000910520F4620F60938E0108958FEF809368 +:105D70008E01089520918D01862F90E0820F911D54 +:105D80008F3F910520F4620F60938D0108958FEF8E +:105D900080938D010895833021F130F4813059F0E2 +:105DA000823009F049C012C0853089F128F186306F +:105DB00009F042C037C080919201681720F4861B19 +:105DC000809392010895109292010895809191011B +:105DD000681720F4861B8093910108951092910119 +:105DE000089580919001681720F4861B809390019C +:105DF000089510929001089580918F01681720F402 +:105E0000861B80938F01089510928F0108958091D1 +:105E10008E01681720F4861B80938E0108951092DE +:105E20008E01089580918D01681720F4861B809360 +:105E30008D01089510928D01089541E050E060E0D9 +:105E400070E004C0440F551F661F771F8A95D2F774 +:105E5000CB01BA010E9496270C948B23873200F560 +:105E60008E3108F089C08E3009F469C060F4873043 +:105E700009F44DC018F4863049F531C0883041F13D +:105E80008B3021F57EC0863109F47BC018F4803157 +:105E9000E9F45FC0893109F474C08B31B9F445C0AD +:105EA000883309F46EC048F4893209F467C0853339 +:105EB00009F464C0873251F461C0833409F45EC0D0 +:105EC00018F48A3318F056C0883499F080E00895A9 +:105ED0000E94082C0E941A2C0E94232C52C08091F0 +:105EE000F102817F8E7F8093F10281E08093000335 +:105EF00008950E948B232FEF83ED90E32150804083 +:105F00009040E1F700C000000E944F2A3AC09091F3 +:105F1000F102892F8095817080FB90F919F09660CD +:105F2000986025C0997F977F22C09091F10291FBE4 +:105F3000882780F921E0822780FB91F913C0909196 +:105F4000F10292FB882780F921E0822780FB92F9F9 +:105F500009C09091F10293FB882780F921E0822704 +:105F600080FB93F99093F102882359F0916090930C +:105F7000F10207C0895303C08D5101C080E00E9427 +:105F80001D2F81E0089580E0089580E00895CF936B +:105F9000C82F80910003813071F020F0823009F029 +:105FA00089C037C0A0918B01B0918C018C91823255 +:105FB00009F082C007C0A0918B01B0918C018C9137 +:105FC000823249F48C2F0E94C32F81111EC08C2F66 +:105FD0000E942E2F1CC08C2F0E94C52F811115C02E +:105FE000C43169F030F4CB3081F0C03109F068C0C1 +:105FF00009C0C93221F0C83309F062C006C010924E +:1060000000035EC082E08093000381E090E0817035 +:106010005AC0C932C9F060F4C431B1F020F4C730BD +:1060200009F04CC034C0CE51C63008F047C017C08C +:10603000CE3439F120F4CB3409F040C01CC0C13556 +:10604000C1F0C235D9F513C080910103882319F03E +:106050001092010333C081E08093000334C0EC2F21 +:10606000F0E0E25EFD4F80818093010327C061E094 +:1060700003C061E007C06AE0809101030E94542ED2 +:106080001DC06AE0809101030E94CB2E17C08EE1F3 +:106090008093920182E3809391018AE08093900142 +:1060A00084E180938F0188E080938E0188E2809361 +:1060B0008D0104C01092000380E005C081E003C0A0 +:1060C00080E090E0A4CFCF9108950E94FD2B811134 +:1060D00002C00E94DE2B0E94232C8093040480FFC8 +:1060E00002C0869501C080E00C949B03809104045B +:1060F000982F9695292F30E0233031054CF49F5F7F +:10610000990F8170892B8160809304040E94272C51 +:106110008091040486950C949B0380910404982F2D +:10612000969591F09158990F8170892B8093040472 +:106130008E7F91E009F490E08091040490FB80F957 +:10614000809304040E94272C8091040486950C946B +:106150009B0380910404982F909590FB80F9809385 +:1061600004040E94272C8091040480FF02C08695BD +:1061700001C080E00C949B0330910404232F2695EA +:106180002F5F2F77822F90E0317004972CF4220F2D +:10619000232B2093040402C0309304048091040450 +:1061A000282F2E7F91E009F490E090FB80F98093F6 +:1061B00004040E94272C8091040486950C949B0370 +:1061C00020910404922F96959827990F822F817021 +:1061D000892B809304048E7F91E009F490E08091F4 +:1061E000040490FB80F9809304040E94272C809182 +:1061F000040486950C949B035058BB27AA270ED005 +:1062000075C166D130F06BD120F031F49F3F11F4AD +:106210001EF45BC10EF4E095E7FB51C1E92F77D185 +:1062200080F3BA17620773078407950718F071F4B3 +:106230009EF58FC10EF4E0950B2EBA2FA02D0B0109 +:10624000B90190010C01CA01A0011124FF27591BBB +:1062500099F0593F50F4503E68F11A16F040A22FC1 +:10626000232F342F4427585FF3CF46953795279532 +:10627000A795F0405395C9F77EF41F16BA0B620B31 +:10628000730B840BBAF09150A1F0FF0FBB1F661F78 +:10629000771F881FC2F70EC0BA0F621F731F841FBB +:1062A00048F4879577956795B795F7959E3F08F0E1 +:1062B000B3CF9395880F08F09927EE0F97958795A0 +:1062C0000895D9D008F481E008950CD00FC107D10A +:1062D00040F0FED030F021F45F3F19F0F0C05111D2 +:1062E00039C1F3C014D198F39923C9F35523B1F3FD +:1062F000951B550BBB27AA2762177307840738F035 +:106300009F5F5F4F220F331F441FAA1FA9F333D093 +:106310000E2E3AF0E0E830D091505040E695001C47 +:10632000CAF729D0FE2F27D0660F771F881FBB1F03 +:10633000261737074807AB07B0E809F0BB0B802DDD +:10634000BF01FF2793585F4F2AF09E3F510568F029 +:10635000B6C000C15F3FECF3983EDCF386957795BD +:106360006795B795F7959F5FC9F7880F911D96952B +:10637000879597F90895E1E0660F771F881FBB1F87 +:10638000621773078407BA0720F0621B730B840B34 +:10639000BA0BEE1F88F7E095089504D06894B11108 +:1063A000D9C00895BCD088F09F5790F0B92F992795 +:1063B000B751A0F0D1F0660F771F881F991F1AF010 +:1063C000BA95C9F712C0B13081F0C3D0B1E00895D9 +:1063D000C0C0672F782F8827B85F39F0B93FCCF35A +:1063E000869577956795B395D9F73EF49095809506 +:1063F000709561957F4F8F4F9F4F0895E89409C026 +:1064000097FB3EF490958095709561957F4F8F4FE7 +:106410009F4F9923A9F0F92F96E9BB279395F695FD +:10642000879577956795B795F111F8CFFAF4BB0F7B +:1064300011F460FF1BC06F5F7F4F8F4F9F4F16C0DF +:10644000882311F096E911C0772321F09EE8872F69 +:10645000762F05C0662371F096E8862F70E060E025 +:106460002AF09A95660F771F881FDAF7880F96959E +:10647000879597F90895990F0008550FAA0BE0E842 +:10648000FEEF16161706E807F907C0F012161306F6 +:10649000E407F50798F0621B730B840B950B39F436 +:1064A0000A2661F0232B242B252B21F408950A269C +:1064B00009F4A140A6958FEF811D811D089597F9DC +:1064C0009F6780E870E060E008959FEF80EC08959A +:1064D00000240A94161617061806090608950024C3 +:1064E0000A9412161306140605060895092E03943D +:1064F000000C11F4882352F0BB0F40F4BF2B11F4B1 +:1065000060FF04C06F5F7F4F8F4F9F4F089557FD0F +:106510009058440F551F59F05F3F71F04795880F11 +:1065200097FB991F61F09F3F79F0879508951216A8 +:1065300013061406551FF2CF4695F1DF08C0161654 +:1065400017061806991FF1CF869571056105089405 +:106550000895E894BB2766277727CB0197F908951C +:106560008ADF08F48FEF08950BD0C0CFB1DF28F099 +:10657000B6DF18F0952309F0A2CFA7CF1124EACFF8 +:10658000C6DFA0F3959FD1F3950F50E0551F629F92 +:10659000F001729FBB27F00DB11D639FAA27F00D7C +:1065A000B11DAA1F649F6627B00DA11D661F829FA3 +:1065B0002227B00DA11D621F739FB00DA11D621F88 +:1065C000839FA00D611D221F749F3327A00D611DA5 +:1065D000231F849F600D211D822F762F6A2F112487 +:1065E0009F5750408AF0E1F088234AF0EE0FFF1FDA +:1065F000BB1F661F771F881F91505040A9F79E3F11 +:10660000510570F05CCFA6CF5F3FECF3983EDCF312 +:10661000869577956795B795F795E7959F5FC1F74D +:10662000FE2B880F911D9695879597F90895FA018D +:10663000EE0FFF1F30962105310599F161157105A7 +:1066400061F48038BFE39B0749F168949038810575 +:1066500061F08038BFEF9B0741F0992342F5FF3F7F +:10666000E1053105210511F1E8940894E795D90178 +:10667000AA2329F4AB2FBE2FF85FD0F310C0FF5F21 +:1066800070F4A695E0F7F73950F019F0FF3A38F4B6 +:106690009F779F930CD00F9007FC905808953EF081 +:1066A00014CF60E070E080E89FE308954FE79F77A4 +:1066B0005F934F933F932F939ED02F913F914F9194 +:1066C0005F9152DF05C019F40EF0F9CE42CFFDCE36 +:1066D00026DFC8F39638C0F707F80F92E8942BE34B +:1066E0003AEA48EB5FE74EDF0F920F920F924DB7F9 +:1066F0005EB70F92C0D0ECEAF0E016D04F915F91F8 +:10670000EF91FF91E595EE1FFF1F49F0FE57E068FE +:106710004427EE0F441FFA95E1F74195550B32D00F +:106720000F9007FE26C00895DF93CF931F930F931A +:10673000FF92EF92DF927B018C01689405C0DA2E04 +:10674000EF011EDFFE01E894A59125913591459159 +:106750005591AEF3EF0162DDFE019701A801DA94D5 +:1067600079F7DF90EF90FF900F911F91CF91DF911C +:1067700008959B01AC0160E070E080E89FE3A5CD47 +:106780009ECEACC0CCDEE8F39923D9F3940F511D13 +:10679000BBF39150504094F059F0882332F0660FCB +:1067A000771F881F91505040C1F79E3F510544F715 +:1067B000880F911D9695879597F908955F3FACF0E6 +:1067C000983E9CF0BB27869577956795B79508F41A +:1067D000B1609395C1F7BB0F58F711F460FFE8CF94 +:1067E0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C0D9 +:1067F0006CCE689464CE93DEC8F39923D1F3C6F3CC +:10680000DF93CF931F930F93FF92C92FDD27882328 +:106810002AF02197660F771F881FDAF720E030E013 +:1068200040E85FEB9FE3883920F0803E30F021960E +:106830008F77E3DCE4EDF0E003C0DFDCE1E0F1E0E2 +:1068400073DF8B01BE01EC01FB2E6F57710975954B +:10685000771F880B990BD4DD28E132E741E35FE332 +:106860008FDEAF2D9801AE01FF900F911F91CF9158 +:10687000DF91D4DC3BCEFA01DC01AA0FBB1F9B01E8 +:10688000AC01BF5728F422273327442750781FC074 +:10689000B75188F4AB2F0024469537952795011CF6 +:1068A000A395D2F3002069F0220F331F441FB39544 +:1068B000DAF30DD0A1CC61307105A0E88A07B946A2 +:1068C00030F49B01AC0166277727882790783096B3 +:1068D00021F0208331834283538308959F3F31F019 +:1068E000915020F4879577956795B795880F911DFE +:1068F0009695879597F90895991B79E004C0991F9B +:10690000961708F0961B881F7A95C9F78095089509 +:10691000AA1BBB1B51E107C0AA1FBB1FA617B707C5 +:1069200010F0A61BB70B881F991F5A95A9F78095E1 +:106930009095BC01CD01089597FB072E16F40094A5 +:1069400007D077FD09D00E94883407FC05D03EF4BB +:10695000909581959F4F0895709561957F4F08950B +:10696000F999FECF92BD81BDF89A992780B5089517 +:10697000A8E1B0E042E050E00C94D334262FF9991E +:10698000FECF1FBA92BD81BD20BD0FB6F894FA9A12 +:10699000F99A0FBE019608950E94BE34272F0C94D9 +:1069A000BF34DC01CB01FC01F999FECF06C0F2BD7A +:1069B000E1BDF89A319600B40D9241505040B8F7BD +:0669C0000895F894FFCFDA +:1069C60055D0A446000016440000000000004842CE +:1069D60061978A460000C843000000000000484254 +:1069E60055D024460000C84300000000000048427D +:1069F60000005C460000C84300000000000048425A +:106A060061978A4600007A4455D0A4460000C843E0 +:106A1600000000000000484200005C460000C84339 +:106A2600000000000000484255D0244600001644ED +:106A36000507000C05854000000106400000010026 +:106A4600B91049112511F010BC1001E902280814EB +:106A56000A321E4200450025002600430061006000 +:106A660000200037006400650066006700440046A9 +:106A7600002400470000000200040005000700098A +:106A8600000B000C000E001000110013001500177B +:106A96000018001A001C001D001F002100230024FE +:106AA600002600280029002B002D002F0030003280 +:106AB6000034003500370039003B006E048704A01F +:106AC60004B904E10594055E053E053F4D362002F6 +:106AD60003020000010001010101010001010102A0 +:086AE60003040506070809007E +:00000001FF -- cgit v1.2.3 From dee6a4338ae5dcdd8154706fca0b050aeded6df2 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 3 Apr 2016 23:48:22 +0200 Subject: minor updates - new PNG --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 36 ++++++++++++--------- .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 684862 -> 263677 bytes 2 files changed, 20 insertions(+), 16 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index dffcb21da..dc47b8c1e 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -271,14 +271,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) static uint16_t start; // MACRODOWN only works in this function switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case 1: + case M_CTRL_CMDV: + //Macro description: long press CTRL, type CMD-V + //Macro type: LT if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL), END); @@ -290,7 +285,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - case 2: + //End Macro + case M_CTRL_CMDC: + //Macro description: + //Macro type: LT if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),END); @@ -302,7 +300,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } } break; - case 3: + case M_MEH_SH_ACUT: if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),D(LSFT),D(LALT),END); @@ -313,7 +311,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix } } - break; + break; + case M_LGUI_SHFT: if (record->event.pressed){ return MACRO(D(LGUI),D(LSFT),END); @@ -358,6 +357,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case SM_SMILE: + //MAcro description: :-) + //Macro type: MACRO if (record->event.pressed) { return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); } @@ -401,11 +402,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case M_TOGGLE_5: + //Macro description: Toggle LAyer 5 (Egoshooter) + //Macro type: LToggle if (record->event.pressed){ layer_state ^= (1<<5); layer_state &= (1<<5); } break; + //Macro End } return MACRO_NONE; }; @@ -426,21 +430,21 @@ void matrix_scan_user(void) { ergodox_right_led_3_off(); switch (layer) { // TODO: Make this relevant to the ErgoDox EZ. - case 1: + case SYMB: ergodox_right_led_1_on(); break; - case 2: + case MDIA: ergodox_right_led_2_on(); break; - case 3: + case SMLY: ergodox_right_led_3_on(); break; - case 4: + case NUMB: ergodox_right_led_1_on(); ergodox_right_led_3_on(); //ergodox_board_led_on(); break; - case 5: + case EGOS: ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png index 8e709ee26..30355c55a 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ -- cgit v1.2.3 From 9cd0c9d589283b5d9e28dcf6da35ec5427cb936f Mon Sep 17 00:00:00 2001 From: tak3over Date: Mon, 4 Apr 2016 13:19:19 -0500 Subject: Minor documentation error. Raise and Lower. The Raise and Lower keys were transposed in the comment key map for all layers. Assuming _RS and _LW should be mapped to Raise and Lower respectively. Probably is the same in the other custom keymaps that copied from this default.--- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 988deee99..a7541b0b8 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_QW] = { @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_CM] = { @@ -62,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ [_DV] = { @@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RS] = { @@ -98,7 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LW] = { -- cgit v1.2.3 From 2a488d1597a37ebc021f7305aed6526f8b0a7c82 Mon Sep 17 00:00:00 2001 From: tak3over Date: Mon, 4 Apr 2016 16:51:30 -0500 Subject: Update tak3over.c --- keyboard/planck/keymaps/tak3over.c | 54 +++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index c49af7d0e..caba6167f 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -3,7 +3,7 @@ // // Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over // keys to make room for a second function key on the left side. Now has a keypad and most all -// standard keyboard keys. Including Delete. See TK layer. +// standard keyboard keys. Including Delete. See TK layer. #include "planck.h" #ifdef BACKLIGHT_ENABLE @@ -16,7 +16,7 @@ // entirely and just use numbers. #define _QW 0 #define _CM 1 -#define _TK 2 +//#define _TK 2 #define _LW 3 #define _RS 4 @@ -30,14 +30,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_QW] = { {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, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, /* Colemak @@ -48,68 +48,68 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_CM] = { {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_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, -/* TenKey, Arrow, and Function key Layer +/* TenKey Layer, obsolete * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Left | Up | Down | Right| Del | * | 4 | 5 | 6 | + | / | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Home | PGUP | PGDN | End | Ins | . | 1 | 2 | 3 | - |Enter | + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Left | Down | Up |Right | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + [_TK] = { {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_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} +},*/ -/* Raise +/* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Esc |Reset | Ins | Home | PGUP | Next | Left | Down | Up |Right | Play | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty|Colemk| - | = | [ | ] |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_RS] = { {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} + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPLY, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), DF(_CM), KC_MINS, KC_EQL, 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} }, /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | TK |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + */ [_LW] = { {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} + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } }; -- cgit v1.2.3 From 931b0a79fc071498c229b0051be0ebadd934a549 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 5 Apr 2016 09:44:01 -0400 Subject: updates to noise --- keyboard/preonic/keymaps/default/keymap.c | 6 +- keyboard/preonic/keymaps/nerdgasm/README.md | 34 ++++++++ keyboard/preonic/keymaps/nerdgasm/keymap.c | 117 ++++++++++++++++++++++++++++ keyboard/preonic/preonic.c | 9 +++ keyboard/preonic/preonic.h | 1 + 5 files changed, 162 insertions(+), 5 deletions(-) create mode 100644 keyboard/preonic/keymaps/nerdgasm/README.md create mode 100644 keyboard/preonic/keymaps/nerdgasm/keymap.c (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 5099b6581..784670784 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -60,13 +60,9 @@ const uint16_t PROGMEM fn_actions[] = { float start_up[][2] = { {440.0*pow(2.0,(67)/12.0), 600}, - {0, 50}, {440.0*pow(2.0,(64)/12.0), 400}, - {0, 50}, {440.0*pow(2.0,(55)/12.0), 400}, - {0, 50}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 50}, {440.0*pow(2.0,(64)/12.0), 1000}, }; @@ -91,6 +87,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 9, false); + play_notes(&start_up, 5, false); #endif } diff --git a/keyboard/preonic/keymaps/nerdgasm/README.md b/keyboard/preonic/keymaps/nerdgasm/README.md new file mode 100644 index 000000000..d2f43bbdb --- /dev/null +++ b/keyboard/preonic/keymaps/nerdgasm/README.md @@ -0,0 +1,34 @@ +# The Default Planck Layout + + 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), KC_SPC, KC_SPC, 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), KC_SPC, KC_SPC, 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), 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(_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} + } + }; \ No newline at end of file diff --git a/keyboard/preonic/keymaps/nerdgasm/keymap.c b/keyboard/preonic/keymaps/nerdgasm/keymap.c new file mode 100644 index 000000000..818102fbd --- /dev/null +++ b/keyboard/preonic/keymaps/nerdgasm/keymap.c @@ -0,0 +1,117 @@ +// 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 "preonic.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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_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_BSPC}, + {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), 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_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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_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} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +// Guitar Notes +#define N_E 13180.5 +#define N_B 9870.8 +#define N_G 15680.0 +#define N_D 11740.7 +#define N_E 13180.5 + +float start_up[][2] = { + { N_E, 500 }, + { 0, 50 }, + { N_E, 500 }, + { 0, 50 }, + { N_E, 500 }, + { 0, 50 }, + { N_B, 500 }, + { 0, 50 }, + { N_E, 1000 }, + { 0, 50 }, + { N_G, 1500 }, + { 0, 50 }, +}; + +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 matrix_init_user(void) { +#ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 12, false); +#endif +} + +void process_action_user(keyrecord_t *record) { +#ifdef AUDIO_ENABLE + if (record->event.pressed) { + float keypress[][2] = { + {440.0*pow(2.0,(record->event.key.col*7)/12.0), 600} + }; + play_notes(&keypress, 1, false); + } +#endif +} diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c index e9ececb6d..f639f247a 100644 --- a/keyboard/preonic/preonic.c +++ b/keyboard/preonic/preonic.c @@ -10,6 +10,11 @@ void matrix_scan_user(void) { }; +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { + +}; + void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -30,3 +35,7 @@ void matrix_init_kb(void) { void matrix_scan_kb(void) { matrix_scan_user(); }; + +void process_action_kb(keyrecord_t *record) { + process_action_user(record); +} \ No newline at end of file diff --git a/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h index 6cfe14726..51ed9ba39 100644 --- a/keyboard/preonic/preonic.h +++ b/keyboard/preonic/preonic.h @@ -46,5 +46,6 @@ void matrix_init_user(void); void matrix_scan_user(void); +void process_action_kb(keyrecord_t *record); #endif -- cgit v1.2.3 From 3fd62428a698a4acf6f619a5f39885c8b163a2ba Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 5 Apr 2016 07:48:13 -0700 Subject: :pound: typo --- keyboard/ergodox_ez/keymaps/alexjj/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c index 3234a4cc8..448f62da0 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -198,7 +198,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } 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(P0), T(P5), T(P6), U(LALT), END ); + return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), U(LALT), END ); } break; } -- cgit v1.2.3 From 50ac511b5625a90a58c4fb4b8c93d8b8340b5778 Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 5 Apr 2016 07:49:35 -0700 Subject: :pound: typo --- keyboard/ergodox_ez/keymaps/alexjj/readme.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md index f6b160a28..239e32d39 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/readme.md +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -132,6 +132,10 @@ This layout is for Windows only. To enter a character Press and Hold Alt, type + 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 -- cgit v1.2.3 From 9bd1caed4468db4580fc785e453c0940cae7345a Mon Sep 17 00:00:00 2001 From: Alex Johnstone Date: Tue, 5 Apr 2016 15:51:13 +0100 Subject: Updated hex --- keyboard/ergodox_ez/keymaps/alexjj/keymap.hex | 1788 +++++++++++++------------ 1 file changed, 895 insertions(+), 893 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex index 622a00433..13338a892 100644 --- a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -1,250 +1,250 @@ -:100000000C94C7020C940E030C940E030C940E0374 -:100010000C940E030C940E030C940E030C940E031C -:100020000C940E030C940E030C94380C0C940A0DD3 -:100030000C940E030C940E030C940E030C940E03FC -:100040000C940E030C949E210C940E030C940E033E -:100050000C940E030C94301B0C940E030C940E03A2 -:100060000C940E030C940E030C940E030C940E03CC -:100070000C940E030C940E030C940E030C940E03BC -:100080000C940E030C940E030C940E030C940E03AC -:100090000C940E030C940E030C940E030C940E039C -:1000A0000C940E030C940E030C940E03770D990D13 +:100000000C94C5020C940C030C940C030C940C037C +:100010000C940C030C940C030C940C030C940C0324 +:100020000C940C030C940C030C94380C0C940A0DD7 +:100030000C940C030C940C030C940C030C940C0304 +:100040000C940C030C94AC210C940C030C940C0336 +:100050000C940C030C94381B0C940C030C940C03A0 +:100060000C940C030C940C030C940C030C940C03D4 +:100070000C940C030C940C030C940C030C940C03C4 +:100080000C940C030C940C030C940C030C940C03B4 +:100090000C940C030C940C030C940C030C940C03A4 +:1000A0000C940C030C940C030C940C03770D990D19 :1000B0008C0E990D8C0EDE0D010E8C0E560E690EF7 -:1000C0005811581187118711CA11041211141114F3 -:1000D0001D12111412131213E51311141114FC1331 -:1000E00075FF01E20159025901620262015D025D80 -:1000F000015E025E02E2000000F0A1F0A2F0A3297E -:10010000002B00E300E100E00000001E00140004EA -:10011000001D7406014E001F001A0016001B001976 -:10012000012A0020000800070006005000280021D6 -:10013000001500090019004F004B00220017000AAB -:100140000005000000C30023002F0000004A00004B -:10015000003E002400300000004D0000003B002560 -:10016000001C000B0011000000C200260018000D4A -:100170000010005100490027000C000E003600520C -:10018000002C002D0012000F003700007FC1002E50 -:100190000013003300380035004C002A00310034D1 -:1001A00000E500E400000001000100010001000181 -:1001B0000000003A001E0220022202033001003B30 -:1001C000001F0221022302010001003C002F022631 -:1001D000022F00010001003D003002270230000123 -:1001E0000001003E00310235003502000001003FF1 -:1001F00000010000000100000001004000010000BB -:1002000000010000000100410052005100240200E2 -:100210000001004200240021001E000100010043F3 -:1002200000250022001F00370001004400260023A3 -:1002300000200027000100450025022E0231002E7B -:10024000004C0546000100010001003D04000000D3 -:100250005001000100010001000000010001000147 -:100260000001000100010001000100F20001000195 -:100270000001000100F000F1000100F400010001A4 -:10028000000100F3000100F5000100010001000180 -:100290000001000000010001000100000001000059 -:1002A0000001000100010000000100000001000148 -:1002B0000001000100010000000100010001000137 -:1002C000000100AA000100010001000100AC00A92A -:1002D00000B600010001000100AB00A80001000110 -:1002E000000100010001000100010001000100AE59 -:1002F00000010001000000E200E200E200E200E292 -:100300000000005900010004000100E20001005A51 -:1003100000010001000100E200E2005B00080007AC -:100320000006000100E2005C00010009000100017C -:100330000001005D00010001000500000001005EF9 -:1003400000010000000100000001005F000100004A -:100350000001000000010060000100010001000038 -:1003600000010061005F005C005900620001006252 -:100370000060005D005A006200E200570061005E0C -:10038000005B006200E2005700570057005700571B -:100390000001000100010001000100010000001641 -:1003A000034500720067006F0044006F0078002072 -:1003B0000045005A00000016034500720067006FF8 -:1003C0000044006F007800200045005A000000043F -:1003D00003090409026D00040100A0FA09040000E9 -:1003E0000103010100092111010001223F0007055D -:1003F000810308000A090401000103010200092128 -:1004000011010001224D000705820308000A0904BA -:100410000200010300000009211101000122360041 -:100420000705830308000A09040300010300000014 -:100430000921110100012239000705840310000180 -:100440001201100100000008EDFE07130100010277 -:10045000000105010906A101050719E029E71500BA -:1004600025019508750181020508190129059505E1 -:10047000750191029501750391010507190029770E -:1004800015002501957875018102C005010980A13B -:1004900001850216010026B7001A01002AB700756F -:1004A0001095018100C0050C0901A1018503160109 -:1004B00000269C021A01002A9C02751095018100F9 -:1004C000C005010902A1010901A1000509190129BD -:1004D00005150025019505750181029501750381BA -:1004E000010501093009311581257F9502750881C3 -:1004F0000609381581257F950175088106050C0AC6 -:1005000038021581257F950175088106C0C0050157 -:100510000906A101050719E029E71500250195083D -:1005200075018102950175088101050819012905E8 -:100530009505750191029501750391010507190053 -:1005400029FF150025FF950675088100C0000000F1 -:100550000000000000000000010204060A0F17203E -:100560002C3A4A5D71879DB3C7DAE9F5FCFFFCF5CB -:10057000E9DAC7B39D87715D4A3A2C20170F0A0646 -:10058000040201000000000000000000000011242F -:100590001FBECFEFDAE0DEBFCDBF04B603FE27C03B -:1005A0008091EE019091EF01A091F001B091F101E5 -:1005B0008730904BA740B04BD1F41092EE011092CF -:1005C000EF011092F0011092F10114BE84B7877F01 -:1005D00084BF0FB6F894A8958091600088618093DD -:1005E0006000109260000FBEE0E0FFE3099511E0AB -:1005F000A0E0B1E0EEEDF6E402C005900D92A43368 -:10060000B107D9F721E0A4E3B1E001C01D92AE3EED -:10061000B207E1F70E947F090C946D230C9400004F -:10062000CF93DF93EC01662319F0633059F00DC0CE -:100630008A81882321F085EE0E94ED0F03C085EEAC -:100640000E94B5108A81811103C080E090E002C051 -:1006500080EE90E0DF91CF91089508956091B1010F -:100660007091B2018091B3019091B4010E945D1A22 -:1006700056985E9825982D9826982E9827982F980A -:10068000823039F0833041F0813041F4259A2D9A3F -:100690000895269A2E9A0895279A2F9A08950C94D1 -:1006A0002E0356985E9825982D9826982E98279870 -:1006B0002F988FEF90E0909389008093880090931B -:1006C0008B0080938A0090938D0080938C00259AF4 -:1006D0002D9A2FEF80E792E0215080409040E1F783 -:1006E00000C00000269A2E9A2FEF80E792E021505A -:1006F00080409040E1F700C00000279A2F9A2FEF2A -:1007000080E792E0215080409040E1F700C0000077 -:1007100025982D982FEF80E792E02150804090405F -:10072000E1F700C0000026982E982FEF80E792E0B6 -:10073000215080409040E1F700C0000027982F989A -:1007400056985E9825982D9826982E9827982F9839 -:10075000089589EA8093800089E08093810024983D -:100760002C983F988AB18F748AB96E98479A8BB14A -:10077000806B8BB9769A0E9451030C942D0380E212 -:10078000809300018091340181110EC00E940E04FB -:1007900081E0809334012FEF83ED90E3215080407E -:1007A0009040E1F700C0000080E40E9414048093B0 -:1007B000000181112EC00E943E048093000181112E -:1007C00028C00E943E0480930001811122C08FE363 -:1007D0000E943E048093000181111BC00E943604D8 -:1007E00080E40E94140480930001811112C08CE007 -:1007F0000E943E048093000181110BC00E943E04C0 -:1008000080930001811105C08FE30E943E04809314 -:1008100000010E9436048091000108951092B900F1 -:100820008AE08093B800089594EA9093BC00909178 -:10083000BC0097FFFCCF9091B900987F983021F0D1 -:10084000903111F081E008958093BB0084E880939B -:10085000BC008091BC0087FFFCCF8091B900887FED -:10086000883111F0803471F780E0089584E9809335 -:10087000BC008091BC0084FDFCCF08958093BB0038 -:1008800084E88093BC008091BC0087FFFCCF9091EE -:10089000B900987F81E0983209F480E0089584E8F7 -:1008A0008093BC008091BC0087FFFCCF8091BB008F -:1008B000089580910001811115C080E40E94140404 -:1008C0008093000181110CC082E10E943E0480935C -:1008D0000001811105C08FEF0E943E04809300014A -:1008E0000E94360484B1807F84B985B1807F85B948 -:1008F0008AB1837F8AB98BB1837F8BB93E98469842 -:1009000008950E94BF03809300010E94590480B3A0 -:100910008C7080BB81B3836F81BBE4E4F1E0A6E31C -:10092000B1E011921D9281E0E235F807D1F70C9405 -:10093000A9039F92AF92BF92CF92DF92EF92FF9264 -:100940000F931F93CF93DF9380910001882379F059 -:10095000809135018F5F80933501811108C00E941D -:10096000BF0380930001811102C00E94510386E3FE -:10097000E82E81E0F82E8701C0E0D0E0BB24B394DC -:1009800092E0A92ECC24C394D12CC730D10500F518 -:1009900080910001811164C080E40E94140480935E -:1009A0000001811112C082E10E943E048093000187 -:1009B00081110BC0C6010C2E01C0880F0A94EAF702 -:1009C00080950E943E04809300010E94360448C036 -:1009D000CA30A1F028F4C83059F0C93061F005C020 -:1009E000CC3089F070F0CD3089F0209A289810C072 -:1009F000219A29980DC0229A2A980AC0239A2B98E6 -:100A000007C0529A01C0539A5B9802C03E9A46981A -:100A1000E0EAEA95F1F78FB181708B25799902C0F0 -:100A200032E001C030E0832B7C9902C034E001C089 -:100A300030E0832B7D9902C028E001C020E0822BAA -:100A40007E9902C090E101C090E0892B9FB1909502 -:100A5000991F9927991F9295990F907E892B0FC006 -:100A60008091000181114AC080E40E9414048093A7 -:100A70000001882381F1912C0E943604892DD80130 -:100A80009C91981719F08C93A09201010E9459042F -:100A900021960F5F1F4FCE30D10509F076CF8091A0 -:100AA0000101882369F1815080930101882339F085 -:100AB000EFE9FFE03197F1F700C0000021C0E4E466 -:100AC000F1E0D7018D917D018193B4E4EB16B1E0A3 -:100AD000FB06B9F715C083E10E943E048093000134 -:100AE0008111C9CF81E40E94140480930001811117 -:100AF000C2CF0E944F04982E9094BECF80E0BFCF0B -:100B00000E944F0381E0DF91CF911F910F91FF90E1 -:100B1000EF90DF90CF90BF90AF909F900895E82F17 -:100B2000F0E0EC5BFE4F8081089508958B3B9105CA -:100B300080F4883A910548F5853A9105D8F48430D7 -:100B4000910508F0B2C0019709F06EC081E090E015 -:100B50000895803E910508F467C0883E910508F429 -:100B6000A4C09C01205F31092031310508F05CC030 -:100B700090650895853A910509F459C0863A910522 -:100B800009F058C082E890E40895883A910509F484 -:100B900054C0893A910509F453C08A3A910509F481 -:100BA00052C08B3A910509F451C08C3A910509F471 -:100BB00050C08D3A910509F44FC0803B910509F46E -:100BC0004EC08E3A910509F44DC08F3A910509F453 -:100BD0004CC0813B910509F44BC0823B910509F45F -:100BE0004AC0833B910509F449C0843B910509F44F -:100BF00048C0853B910509F447C0863B910509F43F -:100C000046C0873B910509F445C0883B910509F42E -:100C100044C0893B910509F443C08A3B910509F41E -:100C200042C080E094E4089580E090E0089581E877 -:100C300090E4089583E890E4089582EE94E40895A2 -:100C400089EE94E408958AEE94E4089585EB94E4A3 -:100C5000089586EB94E4089587EB94E408958CEC72 -:100C600094E408958DEC94E4089583E895E4089560 -:100C70008AE895E4089582E995E4089584E995E485 -:100C8000089581E296E4089583E296E4089584E26B -:100C900096E4089585E296E4089586E296E4089540 -:100CA00087E296E408958AE296E40895089524E59B -:100CB000829FC0011124FC0126E0729FE00DF11D0E -:100CC0001124E60FF11DEE0FFF1FE150FF4F85913C -:100CD00094910895880F991FFC01E958F04085917F -:100CE00094910895880F991FFC01E950FF4F859159 -:100CF0009491089524E5829FC0011124FC0146E0EF -:100D0000749FE00DF11D1124E60FF11DEE0FFF1F82 -:100D1000E150FF4F859194919C013A9521154FE147 -:100D2000340708F425C13F512115304120F49F704C -:100D30000E94720608959C0130532115304118F429 -:100D40009927906C0895811520E5920769F40E9417 -:100D500035144FEF84E39CE0415080409040E1F730 -:100D600000C000000C94551B813020E5920731F43F -:100D70008091CD0181608093CD0108959C01305513 -:100D80002115304108F05CC0292F33272F703327FD -:100D900021303105E9F4AC0164E0440F551F6A9538 -:100DA000E1F744275370BC016370772702C0220F1C -:100DB000331F6A95E2F73C68242B352B73E0880FCC -:100DC000991F7A95E1F780769927822B932B0895C6 -:100DD0002230310529F4982F8827816F906A089571 -:100DE00023303105A1F4AC0133E0440F551F3A958F -:100DF000E1F7407E57708370992721E030E002C010 -:100E0000220F331F8A95E2F7C9019C6816C024306F -:100E1000310531F5AC0123E0440F551F2A95E1F768 -:100E2000407E57708370992721E030E002C0220F86 -:100E3000331F8A95E2F7C9019A68842B952B089590 -:100E40009C0130572115304118F49F70906208952D -:100E50009C0130582115304118F49F70906A089514 -:100E6000803E9105E0F4803C910558F58133910571 -:100E700009F46FC048F48932910509F463C08A32DD -:100E8000910509F46DC072C089339105E9F082388B -:100E90009105D1F08533910509F44DC067C0833EBB -:100EA000910581F138F4803E9105B9F0823E9105BB -:100EB000D9F05CC0863E910561F1873E9105A1F1B4 -:100EC00055C00E946A0608952091DF0120FD02C0EE -:100ED00021FF4CC080EE90E049C08091DF0180FF8F -:100EE000F9CF89E390E042C08091DF0182FF0EC01C -:100EF0008091DF0184FF03C080E090E037C083EE83 -:100F000090E034C08091DF0182FFF2CF82EE90E06A -:100F10002DC08091DF0183FF0BC08091DF0184FD34 -:100F2000EBCF87EE90E022C08091DF0183FFF5CF09 -:100F300086EE90E01BC08091DF0185FF07C089E24B -:100F400090E014C08091DF0185FFF9CF85E390E048 -:100F50000DC08091DF0186FF07C08AE290E006C0E5 -:100F60008091DF0186FFF9CF81E390E00E94960532 +:1000C0005D115D118C118C11CF11091216141614CB +:1000D0002212161417131713EA1316141614011408 +:1000E00075FF01E201590259015D025D015E025E88 +:1000F00002E2000000F0A1F0A2F0A329002B00E32F +:1001000000E100E00000001E00140004001D740661 +:10011000014E001F001A0016001B0019012A0020C2 +:100120000008000700060050002800210015000903 +:100130000019004F004B00220017000A00050000C4 +:1001400000C30023002F0000004A0000003E0024EE +:1001500000300000004D0000003B0025001C000B9B +:100160000011000000C200260018000D0010005110 +:1001700000490027000C000E00360052002C002D14 +:100180000012000F003700007FC1002E0013003363 +:1001900000380035004C002A0031003400E500E44E +:1001A0000000000100010001000100010000003A10 +:1001B000001E0220022202033001003B001F022128 +:1001C000022302010001003C002F0226022F000141 +:1001D0000001003D00300227023000010001003E16 +:1001E00000310235003502000001003F000100002F +:1001F00000010000000100400001000000010000BB +:1002000000010041005200510024020000010042A0 +:1002100000240021001E00010001004300250022EF +:10022000001F0037000100440026002300200027A3 +:10023000000100450025022E0231002E004C05462B +:10024000000100010001003D040000005001000118 +:100250000001000100000001000100010001000197 +:1002600000010001000100F2000100010001000195 +:1002700000F000F1000100F400010001000100F3B2 +:10028000000100F500010001000100010001000073 +:100290000001000100010000000100000001000158 +:1002A0000001000000010000000100010001000148 +:1002B000000100000001000100010001000100AA8E +:1002C000000100010001000100AC00A900B600011E +:1002D0000001000100AB00A80001000100010001C5 +:1002E0000001000100010001000100AE0001000159 +:1002F000000000E200E200E200E200E2000000593B +:1003000000010004000100E20001005A00010001A8 +:10031000000100E200E2005B0008000700060001A7 +:1003200000E2005C00010009000100010001005D25 +:1003300000010001000500000001005E0001000056 +:10034000000100000001005F00010000000100004A +:1003500000010060000100010001000000010061D7 +:10036000005F005C00590062000100620060005DF7 +:10037000005A006200E200570061005E005B00620C +:1003800000E20057005700570057005700010001D6 +:100390000001000100010001000000160345007289 +:1003A0000067006F0044006F007800200045005A8D +:1003B00000000016034500720067006F0044006FE4 +:1003C000007800200045005A0000000403090409D9 +:1003D000026D00040100A0FA0904000001030101FC +:1003E00000092111010001223F00070581030800D7 +:1003F0000A090401000103010200092111010001A1 +:10040000224D000705820308000A090402000103C7 +:1004100000000009211101000122360007058303B5 +:1004200008000A090403000103000000092111016A +:100430000001223900070584031000011201100198 +:1004400000000008EDFE0713010001020001050194 +:100450000906A101050719E029E7150025019508FE +:10046000750181020508190129059505750191029B +:1004700095017503910105071900297715002501DC +:10048000957875018102C005010980A101850216D8 +:10049000010026B7001A01002AB7007510950181E6 +:1004A00000C0050C0901A1018503160100269C026C +:1004B0001A01002A9C02751095018100C0050109EE +:1004C00002A1010901A1000509190129051500254D +:1004D00001950575018102950175038101050109E9 +:1004E0003009311581257F95027508810609381577 +:1004F00081257F950175088106050C0A3802158152 +:10050000257F950175088106C0C005010906A10176 +:10051000050719E029E715002501950875018102F5 +:1005200095017508810105081901290595057501D1 +:1005300091029501750391010507190029FF150026 +:1005400025FF950675088100C0000000000000002E +:1005500000000000010204060A0F17202C3A4A5D31 +:1005600071879DB3C7DAE9F5FCFFFCF5E9DAC7B39B +:100570009D87715D4A3A2C20170F0A06040201007C +:100580000000000000000000000011241FBECFEF9B +:10059000DAE0DEBFCDBF04B603FE27C08091EE01D6 +:1005A0009091EF01A091F001B091F1018730904B53 +:1005B000A740B04BD1F41092EE011092EF011092CF +:1005C000F0011092F10114BE84B7877F84BF0FB68B +:1005D000F894A895809160008861809360001092E3 +:1005E00060000FBEE0E0FFE3099511E0A0E0B1E09C +:1005F000EAEFF6E402C005900D92A433B107D9F7F3 +:1006000021E0A4E3B1E001C01D92AE3EB207E1F7E4 +:100610000E947F090C947B230C940000CF93DF93FE +:10062000EC01662319F0633059F00DC08A818823EC +:1006300021F085EE0E94EE0F03C085EE0E94B610F9 +:100640008A81811103C080E090E002C080EE90E0DA +:10065000DF91CF91089508956091B1017091B20139 +:100660008091B3019091B4010E94621A56985E98ED +:1006700025982D9826982E9827982F98823039F013 +:10068000833041F0813041F4259A2D9A0895269ABD +:100690002E9A0895279A2F9A08950C942C03569811 +:1006A0005E9825982D9826982E9827982F988FEF4A +:1006B00090E0909389008093880090938B008093C2 +:1006C0008A0090938D0080938C00259A2D9A2FEFAD +:1006D00080E792E0215080409040E1F700C00000A8 +:1006E000269A2E9A2FEF80E792E02150804090408A +:1006F000E1F700C00000279A2F9A2FEF80E792E0E1 +:10070000215080409040E1F700C0000025982D98CE +:100710002FEF80E792E0215080409040E1F700C049 +:10072000000026982E982FEF80E792E0215080401D +:100730009040E1F700C0000027982F9856985E98E7 +:1007400025982D9826982E9827982F98089589EA0D +:100750008093800089E08093810024982C983F98B2 +:100760008AB18F748AB96E98479A8BB1806B8BB9B6 +:10077000769A0E944F030C942B0380E28093000131 +:100780008091340181110EC00E940C0481E080939D +:1007900034012FEF83ED90E3215080409040E1F74A +:1007A00000C0000080E40E941204809300018111C7 +:1007B0002EC00E943C0480930001811128C00E9439 +:1007C0003C0480930001811122C08FE30E943C040D +:1007D0008093000181111BC00E94340480E40E94B8 +:1007E000120480930001811112C08CE00E943C042D +:1007F0008093000181110BC00E943C048093000192 +:10080000811105C08FE30E943C04809300010E9487 +:1008100034048091000108951092B9008AE0809319 +:10082000B800089594EA9093BC009091BC0097FFA3 +:10083000FCCF9091B900987F983021F0903111F061 +:1008400081E008958093BB0084E88093BC00809190 +:10085000BC0087FFFCCF8091B900887F883111F000 +:10086000803471F780E0089584E98093BC00809122 +:10087000BC0084FDFCCF08958093BB0084E8809386 +:10088000BC008091BC0087FFFCCF9091B900987F9D +:1008900081E0983209F480E0089584E88093BC00F8 +:1008A0008091BC0087FFFCCF8091BB0008958091B0 +:1008B0000001811115C080E40E94120480930001A0 +:1008C00081110CC082E10E943C04809300018111DF +:1008D00005C08FEF0E943C04809300010E94340405 +:1008E00084B1807F84B985B1807F85B98AB1837FE7 +:1008F0008AB98BB1837F8BB93E98469808950E9440 +:10090000BD03809300010E94570480B38C7080BBAC +:1009100081B3836F81BBE4E4F1E0A6E3B1E011921F +:100920001D9281E0E235F807D1F70C94A7039F925E +:10093000AF92BF92CF92DF92EF92FF920F931F93ED +:10094000CF93DF9380910001882379F08091350166 +:100950008F5F80933501811108C00E94BD03809391 +:100960000001811102C00E944F0386E3E82E81E05E +:10097000F82E8701C0E0D0E0BB24B39492E0A92E0A +:10098000CC24C394D12CC730D10500F5809100014F +:10099000811164C080E40E941204809300018111DF +:1009A00012C082E10E943C048093000181110BC0BF +:1009B000C6010C2E01C0880F0A94EAF780950E94A8 +:1009C0003C04809300010E94340448C0CA30A1F066 +:1009D00028F4C83059F0C93061F005C0CC3089F036 +:1009E00070F0CD3089F0209A289810C0219A29986B +:1009F0000DC0229A2A980AC0239A2B9807C0529AAF +:100A000001C0539A5B9802C03E9A4698E0EAEA9584 +:100A1000F1F78FB181708B25799902C032E001C066 +:100A200030E0832B7C9902C034E001C030E0832B9E +:100A30007D9902C028E001C020E0822B7E9902C08F +:100A400090E101C090E0892B9FB19095991F992763 +:100A5000991F9295990F907E892B0FC0809100016C +:100A600081114AC080E40E9412048093000188230F +:100A700081F1912C0E943404892DD8019C91981702 +:100A800019F08C93A09201010E94570421960F5FE8 +:100A90001F4FCE30D10509F076CF80910101882318 +:100AA00069F1815080930101882339F0EFE9FFE07B +:100AB0003197F1F700C0000021C0E4E4F1E0D70174 +:100AC0008D917D018193B4E4EB16B1E0FB06B9F79B +:100AD00015C083E10E943C04809300018111C9CFBD +:100AE00081E40E941204809300018111C2CF0E9410 +:100AF0004D04982E9094BECF80E0BFCF0E944D034E +:100B000081E0DF91CF911F910F91FF90EF90DF90E7 +:100B1000CF90BF90AF909F900895E82FF0E0EC5BEE +:100B2000FE4F8081089508958B3B910580F4883AAB +:100B3000910548F5853A9105D8F48430910508F07F +:100B4000B2C0019709F06EC081E090E00895803E48 +:100B5000910508F467C0883E910508F4A4C09C0183 +:100B6000205F31092031310508F05CC0906508959F +:100B7000853A910509F459C0863A910509F058C0A3 +:100B800082E890E40895883A910509F454C0893ABE +:100B9000910509F453C08A3A910509F452C08B3A81 +:100BA000910509F451C08C3A910509F450C08D3A71 +:100BB000910509F44FC0803B910509F44EC08E3A6F +:100BC000910509F44DC08F3A910509F44CC0813B61 +:100BD000910509F44BC0823B910509F44AC0833B5F +:100BE000910509F449C0843B910509F448C0853B4F +:100BF000910509F447C0863B910509F446C0873B3F +:100C0000910509F445C0883B910509F444C0893B2E +:100C1000910509F443C08A3B910509F442C080E084 +:100C200094E4089580E090E0089581E890E40895C8 +:100C300083E890E4089582EE94E4089589EE94E4C4 +:100C400008958AEE94E4089585EB94E4089586EB84 +:100C500094E4089587EB94E408958CEC94E408956B +:100C60008DEC94E4089583E895E408958AE895E48A +:100C7000089582E995E4089584E995E4089581E270 +:100C800096E4089583E296E4089584E296E4089554 +:100C900085E296E4089586E296E4089587E296E474 +:100CA00008958AE296E40895089524E5829FC0019C +:100CB0001124FC0126E0729FE00DF11D1124E60FC6 +:100CC000F11DEE0FFF1FE550FF4F859194910895A0 +:100CD000880F991FFC01ED58F0408591949108957B +:100CE000880F991FFC01ED50FF4F85919491089555 +:100CF00024E5829FC0011124FC0146E0749FE00DB1 +:100D0000F11D1124E60FF11DEE0FFF1FE550FF4FFF +:100D1000859194919C013A9521154FE1340708F48F +:100D200027C13F512115304120F49F700E94700669 +:100D300008959C0130532115304118F49927906C87 +:100D40000895811520E5920771F40E943A144FEF3F +:100D500084E39CE0415080409040E1F700C00000F7 +:100D60000E945D1B05C1813020E5920731F480911E +:100D7000CD0181608093CD01FBC09C0130552115D0 +:100D8000304108F05CC0292F33272F7033272130E2 +:100D90003105E9F4AC0164E0440F551F6A95E1F7B1 +:100DA00044275370BC016370772702C0220F331FA2 +:100DB0006A95E2F73C68242B352B73E0880F991F66 +:100DC0007A95E1F780769927822B932B089522302C +:100DD000310529F4982F8827816F906A0895233070 +:100DE0003105A1F4AC0133E0440F551F3A95E1F70A +:100DF000407E57708370992721E030E002C0220FB7 +:100E0000331F8A95E2F7C9019C6816C0243031056A +:100E100031F5AC0123E0440F551F2A95E1F7407EE0 +:100E200057708370992721E030E002C0220F331FF2 +:100E30008A95E2F7C9019A68842B952B08959C0145 +:100E400030572115304118F49F70906208959C012D +:100E500030582115304118F49F70906A0895803EF3 +:100E60009105E0F4803C910558F58133910509F432 +:100E70006FC048F48932910509F463C08A32910544 +:100E800009F46DC072C089339105E9F0823891058B +:100E9000D1F08533910509F44DC067C0833E9105BB +:100EA00081F138F4803E9105B9F0823E9105D9F088 +:100EB0005CC0863E910561F1873E9105A1F155C068 +:100EC0000E94680608952091DF0120FD02C021FFE5 +:100ED0004CC080EE90E049C08091DF0180FFF9CFE7 +:100EE00089E390E042C08091DF0182FF0EC08091D3 +:100EF000DF0184FF03C080E090E037C083EE90E024 +:100F000034C08091DF0182FFF2CF82EE90E02DC0ED +:100F10008091DF0183FF0BC08091DF0184FDEBCF67 +:100F200087EE90E022C08091DF0183FFF5CF86EE4F +:100F300090E01BC08091DF0185FF07C089E290E04F +:100F400014C08091DF0185FFF9CF85E390E00DC0EB +:100F50008091DF0186FF07C08AE290E006C08091A1 +:100F6000DF0186FFF9CF81E390E00E9494050895A8 :100F7000089508950C94B907809162010895CF9364 :100F8000DF9300D01F92CDB7DEB79C018091E501C1 :100F9000843019F593E099833B832A839093E90089 @@ -276,7 +276,7 @@ :101130008A95E1F7DF91CF9108958091E4018111C3 :1011400009C00E94BD0B0E941A0C8091E2008460CD :101150008093E20008951092E401089508950C949C -:101160008B210E94EB1A0E9491210E94C50E0C94C3 +:1011600099210E94F31A0E949F210E94C50E0C949F :10117000BA0742E061EC81E00E94360B42E061EC8C :1011800082E00E94360B42E061EC83E00E94360B65 :1011900042E161EC84E00C94360B8091E7018330EE @@ -296,7 +296,7 @@ :101270008091E80080FFFCCF80910C0136C0809106 :10128000E6018132D9F58091EA019091EB01892B39 :10129000A9F58091E800877F8093E8000E946B0B9E -:1012A0008091E80180930C010C9435148091E60143 +:1012A0008091E80180930C010C943A148091E6013E :1012B000813221F58091E800877F8093E8000E94C9 :1012C0006B0B8091E9018093630108958091E601A1 :1012D000813AA1F48091E800877F8093E8008091B3 @@ -307,15 +307,15 @@ :10132000F89480936100909361000FBE0E94140FA7 :101330000E94BD0B0E941A0C8091E2008460809391 :10134000E20078940E94A50E0E94160F82E091E0C0 -:101350000E94C00E0E9479218091E501853069F4D8 -:101360000E94AD1A8091E3018823B1F30E94D71A3D +:101350000E94C00E0E9487218091E501853069F4CA +:101360000E94B21A8091E3018823B1F30E94DF1A30 :10137000882391F30E94160AEFCF0E941C0FECCF36 :10138000292F332723303105C9F060F4213031058E -:1013900081F02230310509F041C08DE690E023ED67 +:1013900081F02230310509F041C08DE690E02FEC5C :1013A00033E040C021323105E1F02232310531F124 -:1013B00035C082E190E020E434E034C099278130E8 -:1013C000910549F028F0029749F5EFE9F3E005C0EF -:1013D000EFECF3E002C0E7EBF3E0849190E09F01D3 +:1013B00035C082E190E02CE334E034C099278130DD +:1013C000910549F028F0029749F5EBE9F3E005C0F3 +:1013D000EBECF3E002C0E3EBF3E0849190E09F01DB :1013E00021C06430D8F4E62FF0E0EE0FFF1FEE5D71 :1013F000FE4F2081318189E090E014C0643070F4A8 :1014000070E0FB01EE0FFF1FE65EFE4F2081318191 @@ -428,7 +428,7 @@ :101AB000CDBFE6EEF1E08091F100819321E0EE3EB2 :101AC000F207C9F70E94CD088091E80083FF24C186 :101AD0008091E6019091E701492F50E04A3051058D -:101AE00008F01AC1FA01EA5AFF4F0C9422238038F9 +:101AE00008F01AC1FA01EA5AFF4F0C9430238038EB :101AF00081F0823809F010C18091EA018F708093E3 :101B0000E9008091EB0085FB882780F91092E900BD :101B100006C08091E2019091E30191118260909161 @@ -480,23 +480,23 @@ :101DF0000680F781E02D09940895209164013091C7 :101E000065012817390771F090936501809364018B :101E1000E0916801F0916901309721F00084F1852B -:101E2000E02D0994089508950C94130F0E94F11A5F -:101E30000E9481040C94B71BCF92DF92EF92FF9225 +:101E2000E02D0994089508950C94130F0E94F91A57 +:101E30000E947F040C94BF1BCF92DF92EF92FF921F :101E40000F931F93CF93DF93CDB7DEB72B970FB6CA -:101E5000F894DEBF0FBECDBF0E9499048BE6C82E5A -:101E600081E0D82E00E010E0E02E802F0E948F0548 +:101E5000F894DEBF0FBECDBF0E9497048BE6C82E5C +:101E600081E0D82E00E010E0E02E802F0E948D054A :101E7000F60141916F01F82EF426B1F40F5F1F4F68 :101E80000E30110589F78FEF89838A831B820E94A8 -:101E9000FA1A8160782F9D838C8349815A816B81E6 +:101E9000021B8160782F9D838C8349815A816B81DD :101EA0008D810E94BF0F40C09091CD0191FF04C071 -:101EB0008B870E9495058B8520E030E04F2D50E008 +:101EB0008B870E9493058B8520E030E04F2D50E00A :101EC000922FBA01022E02C0759567950A94E2F727 :101ED00060FF24C02E83EF8221E030E0690102C060 :101EE000CC0CDD1C9A95E2F790E08C219D21892B8A -:101EF00009F420E028870E94FA1A8160782F9A87D7 +:101EF00009F420E028870E94021B8160782F9A87CE :101F000089874E815F8168858A850E94BF0FF801AD :101F1000E559FE4F8081C826C08206C02F5F3F4F23 -:101F20002630310569F6AACF0E949E1E0E94C50E7A +:101F20002630310569F6AACF0E94A61E0E94C50E72 :101F300090916A018917A1F00E94C50E80936A01F1 :101F40002B960FB6F894DEBF0FBECDBFDF91CF91B9 :101F50001F910F91FF90EF90DF90CF900C94BA07F4 @@ -506,634 +506,636 @@ :101F9000CDBF4F83588769877A878B87DE0111967B :101FA00086E0FD0111928A95E9F785E0FE013796FA :101FB00001900D928A95E1F749815A816B817C816C -:101FC0008D819E810E94C9162B960FB6F894DEBFB4 -:101FD0000FBECDBFDF91CF910895CF93C82F882337 -:101FE00009F4C1C0823859F40E94C50E81FDBBC0FE -:101FF00089E30E9466190E942E1A89E30CC0833877 -:1020000079F40E94C50E80FDAEC083E50E9466197A -:102010000E942E1A83E50E94A519CF910C942E1AC6 -:10202000843859F40E94C50E82FD9DC087E40E9449 -:1020300066190E942E1A87E4EECF8CEF8C0F813A3E -:1020400048F48C2F0E94DE2081118DC08C2F0E94BD -:102050006619E3CF80E28C0F883048F4C77081E0C6 -:1020600001C0880FCA95EAF70E94E719D6CF8BE521 -:102070008C0F833078F4C53A29F0C63A31F083E802 -:1020800090E005C081E890E002C082E890E0CF9146 -:102090000C94E70E88E58C0F833108F064C0C83AD1 -:1020A00039F1C93A41F1CA3A49F1CB3A51F1CC3A46 -:1020B00059F1CD3A61F1C03B69F1CE3A71F1CF3AB5 -:1020C00079F1C13B81F1C23B89F1C33B91F1C43B42 -:1020D00099F1C53BA1F1C63BA9F1C73BB1F1C83BA2 -:1020E000B9F1C93BC1F1CA3BC9F180E090E038C009 -:1020F00082EE90E035C089EE90E032C08AEE90E04A -:102100002FC085EB90E02CC086EB90E029C087EBD8 -:1021100090E026C08CEC90E023C08DEC90E020C0D5 -:1021200083E891E01DC08AE891E01AC082E991E05D -:1021300017C084E991E014C081E292E011C083E20B -:1021400092E00EC084E292E00BC085E292E008C00B -:1021500086E292E005C087E292E002C08AE292E065 -:10216000CF910C94FD0ECF910895882309F44BC0B4 -:10217000823859F40E94C50E81FF45C089E30E9450 -:1021800066190E942E1A89E30CC0833871F40E94EC -:10219000C50E80FF38C083E50E9466190E942E1A82 -:1021A00083E50E94A5190C942E1A843859F40E94D4 -:1021B000C50E82FF28C087E40E9466190E942E1A6D -:1021C00087E4EFCF9CEF980F913A58F390E2980F85 -:1021D000983050F4877091E001C0990F8A95EAF722 -:1021E000892F0E94ED19DFCF9BE5980F933020F4E3 -:1021F00080E090E00C94E70E885A833120F480E070 -:1022000090E00C94FD0E0895882321F00E94E719B8 -:102210000C942E1A0895882321F00E94ED190C9435 -:102220002E1A0895BF92CF92DF92EF92FF920F93F2 -:102230001F93CF93DF9300D000D000D0CDB7DEB78F -:102240007C0185E0F701DE01119601900D928A95DF -:10225000E1F7F70183819481892B09F4E2C290812F -:1022600081818F3F19F49F3F09F4DBC2F70102819E -:10227000258122952F7099838A8389819A812E8363 -:102280000E942519182FB92E0E9424190E94EB17BD -:102290002E81002319F00E94041A2E81EB2DE29565 -:1022A000EF704E2F50E0FA01E05AFF4F0C942223BA -:1022B0008B2D807F9B2D9F70F92E882319F0F2942F -:1022C00080EFF822002349F0FF2009F457C28F2D38 -:1022D0000E94F7190E942E1A51C2812F0E94B51038 -:1022E000FF2009F49EC28F2D0E94FD1926960FB67D -:1022F000F894DEBF0FBECDBFDF91CF911F910F913C -:10230000FF90EF90DF90CF90BF900C942E1A3B2D52 -:10231000307F8B2D8F70303211F08295807F1123AA -:1023200019F0113021F12CC00023B9F0222309F457 -:1023300090C1213009F08DC126960FB6F894DEBF0A -:102340000FBECDBFDF91CF911F910F91FF90EF9006 -:10235000DF90CF90BF900C94171A222319F02130F0 -:1023600009F45FC28E830E941A1A8E8186C10023EF -:1023700021F0223008F055C26CC1211152C27DC13A -:10238000002321F0222309F464C1F8C1222309F4B7 -:1023900074C109C28B2D86958695837019F08130A2 -:1023A000D1F03FC2002321F0812F9B2D937002C0FA -:1023B00080E090E026960FB6F894DEBF0FBECDBF4A -:1023C000DF91CF911F910F91FF90EF90DF90CF9011 -:1023D000BF900C94E70E002321F0812F9B2D93706A -:1023E00002C080E090E026960FB6F894DEBF0FBEE4 -:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 -:10240000CF90BF900C94FD0E812F002319F00E94F5 -:10241000A61D02C00E940E1E26960FB6F894DEBFBF -:102420000FBECDBFDF91CF911F910F91FF90EF9025 -:10243000DF90CF90BF900C94931E8B2D837009F08A -:1024400075C00111EEC1812F829586958770880F26 -:10245000880F912F9F70C92ED12CE12CF12C082EC2 -:1024600004C0CC0CDD1CEE1CFF1C0A94D2F714FF38 -:1024700012C00FE010E020E030E004C0000F111F98 -:10248000221F331F8A95D2F7C901B8016095709554 -:102490008095909503C060E070E0CB014B2D469590 -:1024A000469543704230C1F060F56C297D298E2934 -:1024B0009F29413051F126960FB6F894DEBF0FBE2A -:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3 -:1024D000CF90BF900C9412186C297D298E299F29CA -:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 -:1024F0001F910F91FF90EF90DF90CF90BF900C94C1 -:102500002E180E941218C701B60126960FB6F8942D -:10251000DEBF0FBECDBFDF91CF911F910F91FF9016 -:10252000EF90DF90CF90BF900C94F617002319F036 -:102530008B2D817001C08695882309F472C1812F8B -:10254000829586958770880F880F912F9F70C92E6E -:10255000D12CE12CF12C082E04C0CC0CDD1CEE1C7F -:10256000FF1C0A94D2F714FF12C00FE010E020E025 -:1025700030E004C0000F111F221F331F8A95D2F7CD -:10258000C901B801609570958095909503C060E091 -:1025900070E0CB014B2D4695469543704230C1F01B -:1025A00060F56C297D298E299F29413051F12696AD -:1025B0000FB6F894DEBF0FBECDBFDF91CF911F9154 -:1025C0000F91FF90EF90DF90CF90BF900C94EC189C -:1025D0006C297D298E299F2926960FB6F894DEBF97 -:1025E0000FBECDBFDF91CF911F910F91FF90EF9064 -:1025F000DF90CF90BF900C9408190E94EC18C7018F -:10260000B60126960FB6F894DEBF0FBECDBFDF91A0 -:10261000CF911F910F91FF90EF90DF90CF90BF90DF -:102620000C94D018103FD1F118F4103E50F4A1C012 -:10263000123F09F463C008F44CC0133F09F473C09F -:1026400098C01F708B2D8F710023A1F00E94691814 -:10265000812F26960FB6F894DEBF0FBECDBFDF9157 -:10266000CF911F910F91FF90EF90DF90CF90BF908F -:102670000C9404110E948A18812F26960FB6F894A4 -:10268000DEBF0FBECDBFDF91CF911F910F91FF90A5 -:10269000EF90DF90CF90BF900C940B110023A9F026 -:1026A0002111BFC08B2D8F7126960FB6F894DEBF17 -:1026B0000FBECDBFDF91CF911F910F91FF90EF9093 -:1026C000DF90CF90BF900C94AF18223008F0A9C0D3 -:1026D000E9CF0023A9F08B2D8F7126960FB6F894C1 -:1026E000DEBF0FBECDBFDF91CF911F910F91FF9045 -:1026F000EF90DF90CF90BF900C946918002359F3AE -:102700008B2D8F7126960FB6F894DEBF0FBECDBF0E -:10271000DF91CF911F910F91FF90EF90DF90CF90BD -:10272000BF900C948A18002399F08B2D8F712696F8 -:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 -:102740000F91FF90EF90DF90CF90BF900C945418B2 -:1027500026960FB6F894DEBF0FBECDBFDF91CF91A6 -:102760001F910F91FF90EF90DF90CF90BF900C944E -:102770004A180023A9F0222309F4ADCF812F269611 -:102780000FB6F894DEBF0FBECDBFDF91CF911F9182 -:102790000F91FF90EF90DF90CF90BF900C94ED0FD2 -:1027A000222309F4ADCF812F26960FB6F894DEBF11 -:1027B0000FBECDBFDF91CF911F910F91FF90EF9092 -:1027C000DF90CF90BF900C94B5104B2D4F70612FC0 -:1027D000C7010E94100326960FB6F894DEBF0FBE05 -:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 -:1027F000CF90BF900C946E174B2D4F70612FC70177 -:1028000026960FB6F894DEBF0FBECDBFDF91CF91F5 -:102810001F910F91FF90EF90DF90CF90BF900C949D -:10282000560626960FB6F894DEBF0FBECDBFDF91D9 -:10283000CF911F910F91FF90EF90DF90CF90BF90BD -:1028400008950E94041A0E94141A0E94D9190E9425 -:102850002E1A0E94431F0E94931E80E090E00E9467 -:10286000E70E80E090E00C94FD0E0E94F4190C94A9 -:1028700021140E942519292F22952F702C3030F415 -:102880002A3048F42250223078F405C02C3041F030 -:102890002F3031F009C0803E48F0803F29F406C057 -:1028A00093FB882780F9089580E0089581E00895DA -:1028B000CF93DF9300D000D01F92CDB7DEB70F903B -:1028C0000F900F900F900F90DF91CF910895CF93BD -:1028D000DF9300D000D000D0CDB7DEB726960FB67C -:1028E000F894DEBF0FBECDBFDF91CF9108951F9347 -:1028F000CF93DF93C091790116E080917A01C817D8 -:1029000099F0D0E01C9FF0011D9FF00D1124E558B7 -:10291000FE4F4081518162817381848195810E9443 -:1029200067142196C770E9CFDF91CF911F91089569 -:102930004091AB015091AC016091AD017091AE013D -:102940008091AF019091B0010C9467148091B00117 -:1029500082958F7009F054C08091AD01882309F4ED -:102960004FC080917901A0917A014091AE015091C0 -:10297000AF016091AB017091AC01B6E08A1709F428 -:102980003FC090E041155105C1F17F3F11F46F3F09 -:10299000A1F1B89FF001B99FF00D1124E558FE4F49 -:1029A000218127132AC02081261327C022812111CB -:1029B00024C0238134812417350710F421503109B4 -:1029C000241B350B283C3105C0F42091B0012F7039 -:1029D00020612093B00126E0289FF001299FF00D8F -:1029E0001124E058FE4F80818F70806180838BEAD4 -:1029F00091E00E9412110C94771401968770BECF5B -:102A00000895CF92DF92EF92FF920F931F93CF938F -:102A1000DF93CDB7DEB762970FB6F894DEBF0FBE77 -:102A2000CDBF8C0185E0F801DE011D9601900D926D -:102A30008A95E1F7D8014C9111965C911197129605 -:102A40006C918091AE019091AF01009709F475C12E -:102A50003091AB017091AC017F3F19F43F3F09F415 -:102A60006CC1F801C380D480E090AD01EE2009F480 -:102A7000BEC02091B001C816D90628F0D601A81B07 -:102A8000B90BCD0104C0809590958C0D9D1DFF2440 -:102A9000F394883C910578F0F12C207F09F0C4C0B4 -:102AA0007C2DD98AC88A89890E9458148BEA91E0C2 -:102AB0000E941211AFC0822F807F09F045C05713CA -:102AC00013C0431311C061110FC02F7020612093F8 -:102AD000B0010E9498148BEA91E00E94121180913B -:102AE000B001F80185832EC0CD2819F15F3F11F4A4 -:102AF0004F3FF9F0F62E61111CC0809179012091B1 -:102B00007A0136E0821709F45BC090E0389FF0014B -:102B1000399FF00D1124E558FE4F7181571306C0FF -:102B20007081471303C07281711103C001968770D1 -:102B3000E9CFF62E662309F41CC18091B0018160B3 -:102B40008093B001F12C15C1571309C0431307C07E -:102B5000611105C08091B001F8018583C8C04D871F -:102B60005E878D859E856A8B0E9439146A898823C9 -:102B7000D1F16623C1F12091B001822F82958F702F -:102B800090E0029774F08091AB019091AC0198872E -:102B90008F831986DB86CA862C87CE0107960E9412 -:102BA000121186E0F801ABEAB1E001900D928A952E -:102BB000E1F70E94A6140E949814FF24F394D9C050 -:102BC0004D875E878D859E850E942519292F229528 -:102BD0002F70223008F0C1C09F7009F0BBC0805E2A -:102BE000883008F4C6C0C8010E941211E6CFC8168A -:102BF000D90608F453C0F601E81BF90BCF01883C55 -:102C0000910508F450C0F12C7C2DD98AC88A898995 -:102C10000E945814EBEAF1E086E0DF011D928A95EC -:102C2000E9F70E949814A5C0571314C0431312C0AB -:102C3000611110C08091B001F8018583C8010E9424 -:102C4000121186E0EBEAF1E0DF011D928A95E9F7C7 -:102C5000FE2C8FC04D875E878D859E856A8B0E9476 -:102C600039146A89882309F4BECF662309F4BBCFDF -:102C70002091B001822F82958F7090E002970CF422 -:102C800090CF8091AB019091AC019A8389831B8294 -:102C9000DD82CC822E83CE01019681CF80959095E6 -:102CA0008C0D9D1DACCFF62E662309F49CCF5713D7 -:102CB00033C0431331C02091B00120FD24C0822FC6 -:102CC00082958F70482F50E041155105E1F0D801F1 -:102CD00015962C9315974F30510549F08F5F982F1B -:102CE0009295907F822F8F70892B15968C93C801B7 -:102CF0000E94121186E0F801ABEAB1E001900D925A -:102D00008A95E1F78ECF86E0F801ABEAB1E0019059 -:102D10000D928A95E1F72DC04D875E878D859E8542 -:102D20000E94391481113DCF8091B0018160809360 -:102D3000B001C8010E9412111CC0662309F453CFD0 -:102D40004D875E878D859E850E943914882309F4FE -:102D50004ACF27CF811143CF0CC0243008F043CF96 -:102D60009F7009F43CCFD80115969C91907F09F093 -:102D700036CF8F2D62960FB6F894DEBF0FBECDBF53 -:102D8000DF91CF911F910F91FF90EF90DF90CF9047 -:102D900008951F93CF93DF93CDB7DEB72C970FB66F -:102DA000F894DEBF0FBECDBF4F83588769877A87FF -:102DB0008B879C87CE0107960E940115882371F0AE -:102DC0008A859B85892B09F441C088858F3F09F04E -:102DD00065C08F818F3F09F061C038C086E0FE0179 -:102DE0003796DE01119601900D928A95E1F76A857A -:102DF0007B856115710551F1FF81E885EF3F11F485 -:102E0000FF3F21F120917A0130E0C90101968770DE -:102E100099274091790150E08417950709F447C03C -:102E2000F983EA837D836C8396E0929FD001939F20 -:102E3000B00D1124A558BE4FFE01319601900D92A0 -:102E40009A95E1F780937A010E94771416E08091B9 -:102E5000790190917A018917B9F1189FC001112465 -:102E600085589E4F0E940115882371F1E0917901E8 -:102E70001E9FF0011124E558FE4F4081518162816F -:102E80007381848195810E9467148091790190E01B -:102E900001968770992780937901D9CF4F81588502 -:102EA00069857A858B859C850E946714CFCF0E94A7 -:102EB000351410927A0110927901EBEAF1E086E084 -:102EC000DF011D928A95E9F72C960FB6F894DEBFC4 -:102ED0000FBECDBFDF91CF911F910895EF92FF926A -:102EE0000F931F93CF93DF938C01892B09F46CC050 -:102EF000F12CEE24E394E8012196F80184918437C3 -:102F000040F4843008F051C0813081F0823019F1F2 -:102F10005BC0853709F444C0A8F19CE7980F90374F -:102F200008F052C08F770E94B51041C00E5F1F4F4E -:102F3000FE01849190E2980F983050F48770FE2D36 -:102F400001C0FF0F8A95EAF78F2F0E94071A14C05D -:102F50000E94ED0F2DC00E5F1F4FFE01849190E285 -:102F6000980F983060F48770FE2D01C0FF0F8A958E -:102F7000EAF78F2F0E940D1A0E942E1A19C00E9484 -:102F8000B51016C00E5F1F4FFE01C491CC2381F017 -:102F90008FE99FE00197F1F700C00000C150F6CF24 -:102FA0000E5F1F4FFE01F49003C00E94ED0F8E01D3 -:102FB0008F2D882309F49FCFEFE9FFE03197F1F7D8 -:102FC00000C000008150F5CFDF91CF911F910F918C -:102FD000FF90EF90089508956093B5017093B60146 -:102FE0008093B7019093B8010C9421140F931F9311 -:102FF0000091B5011091B6012091B7013091B8014F -:10300000DC01CB01802B912BA22BB32B8093B5013C -:103010009093B601A093B701B093B8011F910F919F -:103020000C9421140F931F930091B5011091B601D8 -:103030002091B7013091B801DC01CB0180239123AD -:10304000A223B3238093B5019093B601A093B70157 -:10305000B093B8011F910F910C9421140F931F93FB -:103060000091B5011091B6012091B7013091B801DE -:10307000DC01CB0180279127A227B3278093B501DC -:103080009093B601A093B701B093B8011F910F912F -:103090000C9421141092B1011092B2011092B3015C -:1030A0001092B4010C94211441E050E060E070E013 -:1030B00004C0440F551F661F771F8A95D2F74093AF -:1030C000B1015093B2016093B3017093B4010C94B9 -:1030D000211441E050E060E070E004C0440F551F4F -:1030E000661F771F8A95D2F78091B1019091B20146 -:1030F000A091B301B091B401482B592B6A2B7B2BC3 -:103100004093B1015093B2016093B3017093B40145 -:103110000C94211441E050E060E070E004C0440FE2 -:10312000551F661F771F8A95D2F740955095609579 -:1031300070958091B1019091B201A091B301B091CD -:10314000B401482359236A237B234093B101509350 -:10315000B2016093B3017093B4010C94211441E067 -:1031600050E060E070E004C0440F551F661F771FF9 -:103170008A95D2F78091B1019091B201A091B301EB -:10318000B091B401482759276A277B274093B101A2 -:103190005093B2016093B3017093B4010C94211465 -:1031A0000F931F930091B1011091B2012091B301CF -:1031B0003091B401DC01CB01802B912BA22BB32BDE -:1031C0008093B1019093B201A093B301B093B40185 -:1031D0001F910F910C9421140F931F930091B10133 -:1031E0001091B2012091B3013091B401DC01CB0107 -:1031F00080239123A223B3238093B1019093B20142 -:10320000A093B301B093B4011F910F910C942114BA -:103210000F931F930091B1011091B2012091B3015E -:103220003091B401DC01CB0180279127A227B3277D -:103230008093B1019093B201A093B301B093B40114 -:103240001F910F910C9421140895CF92DF92EF9269 -:10325000FF920F931F93CF93DF938C01C090B10126 -:10326000D090B201E090B301F090B4018091B5012B -:103270009091B601A091B701B091B801C82AD92A9E -:10328000EA2AFB2ACFE1D0E0D701C6010C2E04C008 -:10329000B695A795979587950A94D2F780FF07C0B2 -:1032A000B8018C2F0E947A068130910531F4219764 -:1032B00058F7B80180E00E947A06DF91CF911F9104 -:1032C0000F91FF90EF90DF90CF90089590910C01B7 -:1032D0009923F1F090910D019923D1F0982F9695B3 -:1032E000969596959F3080F5E0910E01F0910F0133 -:1032F000E90FF11D877021E030E0A90102C0440F01 -:10330000551F8A95E2F7CA019181892B818308951F -:1033100020910E0130910F01F90132969FEF40E0AC -:103320005191851789F09F3F19F4511101C0942FD5 -:103330004F5F4E30A9F79F3F39F0F901E90FF11DBA -:1033400097FDFA9582830895089590910C01992331 -:10335000F9F090910D019923D9F0982F96959695B3 -:1033600096959F3028F5E0910E01F0910F01E90F3D -:10337000F11D877021E030E0A90102C0440F551F04 -:103380008A95E2F7CA018095918189238183089506 -:1033900020910E0130910F01F9013296205F3F4FCD -:1033A0009081891301C010823196E217F307C1F7AB -:1033B000089581E090E0E0910E01F0910F01E80F97 -:1033C000F91F1082019680319105A9F70895909117 -:1033D000CC01892B8093CC01089580959091CC01EC -:1033E00089238093CC0108951092CC010895909187 -:1033F000CB01892B8093CB01089580959091CB01CF -:1034000089238093CB0108951092CB010895909168 -:10341000CA01892B8093CA01089580959091CA01B1 -:1034200089238093CA0108951092CA010895809358 -:10343000B90108951092B901089580910E019091FB -:103440000F01FC0131969C01205F3F4F80E091917C -:1034500091118F5FE217F307D1F70895E0910E0104 -:10346000F0910F018091CC018083E0910E01F091E9 -:103470000F0190818091CB01892B8083E0910E0117 -:10348000F0910F0190818091CA01892B80838091F6 -:10349000B901882361F0E0910E01F0910F01908154 -:1034A000892B80830E941D1A81111092B90180918D -:1034B0000E0190910F010C94D10ECF92DF92EF92FA -:1034C000FF926C01EE24FF24C114D104E104F10445 -:1034D00021F0C701B60120E101C020E0C72ED82E9F -:1034E000E92EFF24C114D104E104F10419F0285F8E -:1034F000C701B6016B017C0154E0F694E794D794C0 -:10350000C7945A95D1F7C114D104E104F10419F01C -:103510002C5FC701B6016B017C0142E0F694E79491 -:10352000D794C7944A95D1F7C114D104E104F104AA -:1035300019F02E5FC701B601DC01CB01B695A79546 -:1035400097958795892B8A2B8B2B09F02F5F822FDC -:10355000FF90EF90DF90CF9008958091E501843047 -:1035600011F120E488E190E00FB6F894A8958093DB -:1035700060000FBE2093600083B7817F846083BFAB -:1035800083B7816083BF7894889583B78E7F83BF2C -:103590000FB6F894A89580916000886180936000D0 -:1035A000109260000FBE089508950C94D41ACF9322 -:1035B0000E94D51A0E9499040E94D41AC0E08C2F50 -:1035C0000E948F05811104C0CF5FCE30C1F701C0CA -:1035D00081E0CF9108950E9435140E94C50E0C948D -:1035E000BA0782E084BD93E095BD9AEF97BD8093C2 -:1035F0006E0008952FB7F8948091CE019091CF017D -:10360000A091D001B091D1012FBF0895CF92DF9248 -:10361000EF92FF920F931F932FB7F8944091CE0132 -:103620005091CF016091D0017091D1012FBF6A01FB -:103630007B01EE24FF248C0120E030E0C016D1068F -:10364000E206F30610F4415051099A01281B390B88 -:10365000C9011F910F91FF90EF90DF90CF900895D7 -:103660001F920F920FB60F9211248F939F93AF93D7 -:10367000BF938091CE019091CF01A091D001B091E4 -:10368000D1010196A11DB11D8093CE019093CF0170 -:10369000A093D001B093D101BF91AF919F918F9131 -:1036A0000F900FBE0F901F9018950E94BD0BF894BD -:1036B0002FEF87EA91E6215080409040E1F700C06B -:1036C000000087E090EBDC018093EE019093EF0126 -:1036D000A093F001B093F1019CE088E10FB6F8945B -:1036E000A895809360000FBE90936000FFCFEF928B -:1036F000FF920F931F93CF93DF93D82FC0E08C2FAF -:103700000E948F0500E010E0E82EF12CC701002E8A -:1037100002C0959587950A94E2F780FD06C00F5F79 -:103720001F4F0630110591F709C0602F7C2F80E0F4 -:103730000E9457068D13F3CF81E004C0CF5FCE30D7 -:10374000F1F680E0DF91CF911F910F91FF90EF9004 -:103750000895CF93C82F8CE20E94771B882321F015 -:103760008C2FCF910C94771B80E0CF910895CF934D -:103770000E94FE1C811102C00E94E41CC5E6C150DB -:1037800049F00E9499048FE39CE90197F1F700C08A -:103790000000F5CF89E20E94A91B811113C18AE2C2 -:1037A0000E94A91B81110E94E41C85E00E94A91BB4 -:1037B00081110E94551B0E94091D8093CD0187E055 -:1037C0000E94A91B8823A9F18BE10E94A91B8823D1 -:1037D00051F08091CD0181FB222720F991E09227C1 -:1037E00090FB81F90EC08EE00E94A91B882361F036 -:1037F0008091CD0182FB222720F991E0922790FB56 -:1038000082F98093CD0115C080E10E94A91B90919F -:10381000CD01882341F093FB222720F981E0822704 -:1038200080FB93F904C0892F809580FB90F99093D9 -:10383000CD018091CD010E940D1D0E941B1D809322 -:10384000DF0180EE0E94A91B882341F08091DF01F7 -:10385000982F909590FB80F98093DF0189E30E9477 -:10386000A91B882359F08091DF0181FB222720F9D1 -:1038700091E0922790FB81F98093DF0182EE0E9414 -:10388000A91B882359F08091DF0182FB222720F9B0 -:1038900091E0922790FB82F98093DF0186EE0E94EF -:1038A000A91B882359F08091DF0183FB222720F98F -:1038B00091E0922790FB83F98093DF0183EE0E94D1 -:1038C000A91B882359F08091DF0184FB222720F96E -:1038D00091E0922790FB84F98093DF0185E30E94B9 -:1038E000A91B882359F08091DF0185FB222720F94D -:1038F00091E0922790FB85F98093DF0181E30E949C -:10390000A91B882359F08091DF0186FB222720F92B -:1039100091E0922790FB86F98093DF0181E10E947C -:10392000A91B882359F08091DF0187FB222720F90A -:1039300091E0922790FB87F98093DF018091DF016E -:103940000E941F1D8091DF0187FB882780F98093EB -:103950000D0187E20E94A91BC82F8EE10E94A91BBE -:103960008111C2608FE10E94A91B8111C46080E2B5 -:103970000E94A91B8111C86081E20E94A91B8111CC -:10398000C06182E20E94A91B8111C06283E20E9491 -:10399000A91B8111C06484E20E94A91B882311F035 -:1039A000C06802C0CC2329F08C2F0E94161D6C2FFA -:1039B00003C00E94121D682F70E080E090E0CF915C -:1039C0000C94EC17CF9108956DEE7EEF80E090E0BF -:1039D0000E94582360E082E090E00E944A2360E069 -:1039E00083E090E00E944A2360E084E090E00E943F -:1039F0004A2360E085E090E00C944A2380E090E068 -:103A00000E94442321E08D3E9E4F09F020E0822F4A -:103A1000089582E090E00C943C23682F82E090E0CF -:103A20000C944A2383E090E00C943C23682F83E0BD -:103A300090E00C944A2384E090E00C943C23682F9F -:103A400084E090E00C944A238091D40180FF0BC065 -:103A50006091130185E0689FB00111247595679509 -:103A6000759567952BC081FF09C06091130185E0B2 -:103A7000689FB00111247595679520C082FF07C02B -:103A80006091130185E0689FB001112417C09091E7 -:103A9000D5019923D1F060911201961788F72091F2 -:103AA000130185E0289F90011124929FA001939F0C -:103AB000500D112470E0CA010E940E236038710578 -:103AC00040F46115710519F406C065E070E0862FB9 -:103AD00008958FE7089581E008958091D40180FFD3 -:103AE00008C06091110170E07595679575956795AF -:103AF00021C081FF06C06091110170E07595679546 -:103B000019C082FF04C06091110170E010C0909153 -:103B1000D501992399F0609110019617A0F7809133 -:103B20001101899FC001112470E00E940E236038AA -:103B3000710540F46115710519F406C061E070E08B -:103B4000862F08958FE7089581E00895803F21F43E -:103B50000E94241D819504C0813F29F40E94241DE8 -:103B60008093D8010895823F21F40E94241D8195FD -:103B700004C0833F29F40E94241D8093D701089537 -:103B8000893F19F40E946D1D05C08A3F31F40E94DF -:103B90006D1D81958093D90108958B3F21F40E947A -:103BA0006D1D819504C08C3F29F40E946D1D80938A -:103BB000DA010895843F21F48091D601816017C015 -:103BC000853F21F48091D601826011C0863F21F4A7 -:103BD0008091D60184600BC0873F21F48091D6018B -:103BE000886005C0883F31F48091D6018061809360 -:103BF000D60108958D3F21F48091D40181600BC0DE -:103C00008E3F21F48091D401826005C08F3F29F45A -:103C10008091D40184608093D4010895803F39F469 -:103C20008091D80187FF6CC01092D80169C0813F94 -:103C300029F48091D8011816BCF362C09091D70185 -:103C4000823F29F497FF5CC01092D70159C0833F8F -:103C500019F41916CCF354C0893F41F48091D9016D -:103C600018160CF04DC01092D9014AC08A3F29F4B1 -:103C70008091D90187FF44C0F6CF8B3F39F4809102 -:103C8000DA0187FF3DC01092DA013AC08C3F29F477 -:103C90008091DA011816BCF333C0843F21F480917F -:103CA000D6018E7F17C0853F21F48091D6018D7F8C -:103CB00011C0863F21F48091D6018B7F0BC0873FD6 -:103CC00021F48091D601877F05C0883F31F480912F -:103CD000D6018F7E8093D60113C08D3F21F4809151 -:103CE000D4018E7F0BC08E3F21F48091D4018D7F53 -:103CF00005C08F3F29F48091D4018B7F8093D4013C -:103D00008091D70181110EC08091D80181110AC024 -:103D10008091D901811106C08091DA01811102C020 -:103D20001092D501089586ED91E00E94DC0E0E946C -:103D3000FA1A9093D3018093D20108951F93CF93E1 -:103D4000DF938091D2019091D3010E94061BAC01B8 -:103D50009091D501992321F02091140130E006C003 -:103D6000209115018AE0289F9001112442175307E2 -:103D700008F485C08091D701C091D801D091D901B4 -:103D80001091DA01811107C0C11175C0D11173C042 -:103D9000111171C074C09F3F19F09F5F9093D501BE -:103DA000181624F40E94241D8093D7018091D70116 -:103DB00087FF05C00E94241D81958093D7011C16A2 -:103DC00024F40E94241D8093D8018091D80187FF9C -:103DD00005C00E94241D81958093D8016091D70170 -:103DE000662331F1C091D801CC2311F1062E000CCD -:103DF000770B880B990B0E94152223E333E343E3EF -:103E00005FE30E9479220E94DD216093D7016C2F2D -:103E1000CC0F770B880B990B0E94152223E333E319 -:103E200043E35FE30E9479220E94DD216093D80181 -:103E30001D1624F40E946D1D8093D9018091D90133 -:103E400087FF05C00E946D1D81958093D9011116D1 -:103E500024F40E946D1D8093DA018091DA0187FFBE -:103E600005C00E946D1D81958093DA01DF91CF918D -:103E70001F910C94931E9F3F09F08FCFA0CFDF912D -:103E8000CF911F910895E6EDF1E085E0DF011D92ED -:103E90008A95E9F71092D5011092D40108958330E4 -:103EA00081F128F4813059F08230D1F008958530C5 -:103EB00009F449C0B8F1863009F456C008958091DC -:103EC0001501262F30E0280F311D2F3F310524F436 -:103ED000680F6093150108958FEF80931501089581 -:103EE00080911401262F30E0280F311D2F3F31051E -:103EF00024F4680F6093140108958FEF80931401E8 -:103F0000089580911301262F30E0280F311D2F3F97 -:103F1000310524F4680F6093130108958FEF8093A7 -:103F20001301089580911201262F30E0280F311DD2 -:103F30002F3F310524F4680F6093120108958FEF2D -:103F400080931201089580911101262F30E0280FEF -:103F5000311D2F3F310524F4680F6093110108953E -:103F60008FEF80931101089580911001262F30E08A -:103F7000280F311D2F3F310524F4680F6093100185 -:103F800008958FEF809310010895833011F128F484 -:103F9000813049F0823091F00895853081F120F12F -:103FA0008630C1F1089580911501681720F4861BB1 -:103FB00080931501089510921501089580911401C0 -:103FC000681720F4861B8093140108951092140141 -:103FD000089580911301681720F4861B80931301C4 -:103FE000089510921301089580911201681720F42A -:103FF000861B8093120108951092120108958091FA -:104000001101681720F4861B809311010895109206 -:104010001101089580911001681720F4861B809388 -:10402000100108951092100108950F931F938D3180 -:1040300009F46BC008F03FC08E3009F47DC0C0F4B5 -:10404000873009F46EC068F4863009F0AFC0809103 -:10405000CD01817F8E7F8093CD0181E08093DC0153 -:10406000A6C0883009F458C08B3009F49BC09EC0AC -:10407000863109F497C078F4803109F470C0813139 -:1040800009F094C00E94351490910D0181E08927B8 -:1040900080930D0187C0893109F484C08B3109F008 -:1040A00085C08091CD0181FB222720F991E09227E4 -:1040B00090FB81F94AC0853309F45BC048F487322C -:1040C00009F457C008F45AC0893209F452C06EC0CE -:1040D000833438F48A3308F067C0883309F462C047 -:1040E00065C0833409F445C0883409F05FC00E947C -:1040F00035140FEF13ED20E3015010402040E1F79D -:1041000000C000000E94551B4DC00E9497210E94D4 -:10411000C50E0E94BA0746C00E94091D0E941B1DC1 -:1041200041C09091CD01892F817090FF12C0917F85 -:104130009E7F9093CD013BC08091CD0182FB2227D1 -:1041400020F991E0922790FB82F98093CD01992389 -:1041500049F18091CD0181608093CD0123C0809190 -:10416000CD0183FB222720F991E0922790FB83F970 -:10417000ECCF61E070E080E090E010C08D5141E054 -:1041800050E060E070E08A019B0104C0000F111F45 -:10419000221F331F8A95D2F7C901B8010E94EC177C -:1041A0000E94351481E003C08953E9CF80E01F915C -:1041B0000F91089580E008950C94DA20CF93C82FD2 -:1041C0008091DC01813079F018F08230E9F187C00C -:1041D000E0910E01F0910F018081813169F082320E -:1041E00009F07FC009C0E0910E01F0910F018081BC -:1041F000813111F0823261F48C2F0E94DC20811118 -:1042000004C08C2F0E9415201DC081E090E01AC0D0 -:104210008C2F0E94DA20811114C0C43179F048F447 -:10422000CB3079F0C03109F060C082E08093DC01CE -:1042300008C0C93219F0C83321F057C01092DC0110 -:1042400054C081E0817053C0C93289F118F5C4317E -:1042500071F1A8F4C73009F046C08AE080931501D7 -:1042600094E19093140193E09093130180931201D1 -:1042700088E08093110188E28093100134C0CE5110 -:10428000C63088F5EC2FF0E0E65DFE4F808180932C -:10429000DB0129C0CE34E9F020F4CB3421F56AE00B -:1042A00013C0C13579F0C235F1F461E00DC08091E1 -:1042B000DB01882319F01092DB0115C081E08093A7 -:1042C000DC0115C061E006C08091DB010E944F1F38 -:1042D0000AC06AE08091DB010E94C51F04C01092F1 -:1042E000DC0180E004C081E002C080E0ABCFCF9170 -:1042F0000895E1E8F0E080818860808380818160BA -:1043000080838FB7F89493E09093890090ED909319 -:1043100088008FBF0895EFE6F0E08081826080839F -:104320000895EFE6F0E080818D7F80830895EFE6C9 -:10433000F0E0908182E08927808308951F920F9298 -:104340000FB60F9211242F933F934F935F936F9368 -:104350007F938F939F93AF93BF93EF93FF9380913E -:10436000DD019091DE0101969093DE018093DD01E5 -:10437000811103C082E00E94BA07E091DE01E69558 -:10438000E695F0E0E35BFA4FE4918091DD018E1356 -:1043900003C080E00E94BA07FF91EF91BF91AF91F7 -:1043A0009F918F917F916F915F914F913F912F914D -:1043B0000F900FBE0F901F9018950E94E4216894F3 -:1043C000B1110C94732208950E94582288F09F57CF -:1043D00098F0B92F9927B751B0F0E1F0660F771F29 -:1043E000881F991F1AF0BA95C9F714C0B13091F01F -:1043F0000E947222B1E008950C947222672F782FE8 -:104400008827B85F39F0B93FCCF3869577956795E3 -:10441000B395D9F73EF490958095709561957F4F4F -:104420008F4F9F4F0895E89409C097FB3EF49095F5 -:104430008095709561957F4F8F4F9F4F9923A9F07D -:10444000F92F96E9BB279395F6958795779567950C -:10445000B795F111F8CFFAF4BB0F11F460FF1BC050 -:104460006F5F7F4F8F4F9F4F16C0882311F096E9E3 -:1044700011C0772321F09EE8872F762F05C0662391 -:1044800071F096E8862F70E060E02AF09A95660F4A -:10449000771F881FDAF7880F9695879597F9089503 -:1044A00057FD9058440F551F59F05F3F71F04795E5 -:1044B000880F97FB991F61F09F3F79F087950895CA -:1044C000121613061406551FF2CF4695F1DF08C0E9 -:1044D000161617061806991FF1CF86957105610506 -:1044E00008940895E894BB2766277727CB0197F9AE -:1044F00008950E948C220C94FD220E94EF2238F035 -:104500000E94F62220F0952311F00C94E6220C94E0 -:10451000EC2211240C9473220E94502270F3959F78 -:10452000C1F3950F50E0551F629FF001729FBB27AA -:10453000F00DB11D639FAA27F00DB11DAA1F649F46 -:104540006627B00DA11D661F829F2227B00DA11DF9 -:10455000621F739FB00DA11D621F839FA00D611D7F -:10456000221F749F3327A00D611D231F849F600DA0 -:10457000211D822F762F6A2F11249F5750409AF0C9 -:10458000F1F088234AF0EE0FFF1FBB1F661F771F55 -:10459000881F91505040A9F79E3F510580F00C9420 -:1045A000E6220C9473225F3FE4F3983ED4F38695A1 -:1045B00077956795B795F795E7959F5FC1F7FE2BC0 -:1045C000880F911D9695879597F9089597F99F679C -:1045D00080E870E060E008959FEF80EC089500248B -:1045E0000A941616170618060906089500240A9458 -:1045F00012161306140605060895092E0394000CDE -:1046000011F4882352F0BB0F40F4BF2B11F460FF6C -:1046100004C06F5F7F4F8F4F9F4F089597FB072E0A -:1046200016F4009407D077FD09D00E94282307FCD8 -:1046300005D03EF4909581959F4F089570956195B2 -:104640007F4F0895EE0FFF1F0590F491E02D099420 -:10465000AA1BBB1B51E107C0AA1FBB1FA617B707A8 -:1046600010F0A61BB70B881F991F5A95A9F78095C4 -:104670009095BC01CD010895F999FECF92BD81BD01 -:10468000F89A992780B50895A8E1B0E042E050E09B -:104690000C945F23262FF999FECF1FBA92BD81BDDE -:1046A00020BD0FB6F894FA9AF99A0FBE01960895B4 -:1046B0000E944A23272F0C944B23DC01CB01FC01E1 -:1046C000F999FECF06C0F2BDE1BDF89A319600B46B -:0E46D0000D9241505040B8F70895F894FFCF76 -:1046DE002002BC074C082708F307BF070101BA01E7 -:1046EE0028080A03140A3F4D36390E05C1048B04FF -:1046FE005204E503FE031704300401020304050609 -:04470E00070809008F +:101FC0008D819E810E94CE162B960FB6F894DEBFAF +:101FD0000FBECDBFDF91CF9108950895CF93C82F45 +:101FE000882309F4C1C0823859F40E94C50E81FDCE +:101FF000BBC089E30E946B190E94331A89E30CC0AD +:10200000833879F40E94C50E80FDAEC083E50E943E +:102010006B190E94331A83E50E94AA19CF910C9480 +:10202000331A843859F40E94C50E82FD9DC087E49E +:102030000E946B190E94331A87E4EECF8CEF8C0F4D +:10204000813A48F48C2F0E94EC2081118DC08C2F96 +:102050000E946B19E3CF80E28C0F883048F4C77080 +:1020600081E001C0880FCA95EAF70E94EC19D6CF2B +:102070008BE58C0F833078F4C53A29F0C63A31F0FD +:1020800083E890E005C081E890E002C082E890E03B +:10209000CF910C94E70E88E58C0F833108F064C073 +:1020A000C83A39F1C93A41F1CA3A49F1CB3A51F14A +:1020B000CC3A59F1CD3A61F1C03B69F1CE3A71F1B8 +:1020C000CF3A79F1C13B81F1C23B89F1C33B91F138 +:1020D000C43B99F1C53BA1F1C63BA9F1C73BB1F1A6 +:1020E000C83BB9F1C93BC1F1CA3BC9F180E090E0FE +:1020F00038C082EE90E035C089EE90E032C08AEEC2 +:1021000090E02FC085EB90E02CC086EB90E029C0DA +:1021100087EB90E026C08CEC90E023C08DEC90E043 +:1021200020C083E891E01DC08AE891E01AC082E9EE +:1021300091E017C084E991E014C081E292E011C0FF +:1021400083E292E00EC084E292E00BC085E292E06E +:1021500008C086E292E005C087E292E002C08AE20F +:1021600092E0CF910C94FD0ECF910895882309F44D +:102170004BC0823859F40E94C50E81FF45C089E3E7 +:102180000E946B190E94331A89E30CC0833871F4E2 +:102190000E94C50E80FF38C083E50E946B190E9423 +:1021A000331A83E50E94AA190C94331A843859F41F +:1021B0000E94C50E82FF28C087E40E946B190E940E +:1021C000331A87E4EFCF9CEF980F913A58F390E2DF +:1021D000980F983050F4877091E001C0990F8A955C +:1021E000EAF7892F0E94F219DFCF9BE5980F933011 +:1021F00020F480E090E00C94E70E885A833120F4BC +:1022000080E090E00C94FD0E0895882321F00E9458 +:10221000EC190C94331A0895882321F00E94F219C6 +:102220000C94331A0895BF92CF92DF92EF92FF92EF +:102230000F931F93CF93DF9300D000D000D0CDB782 +:10224000DEB77C0185E0F701DE01119601900D9269 +:102250008A95E1F7F70183819481892B09F4E6C21D +:10226000D08011811F3F21F4FFEFDF1609F4DEC299 +:10227000F7010281258122952F70C7012E830E94CC +:10228000ED0FD9821A8389819A810E942A19182F09 +:10229000B92E0E9429190E94F0172E81002319F0EF +:1022A0000E94091A2E81EB2DE295EF704E2F50E01F +:1022B000FA01E05AFF4F0C9430238B2D807F9B2D29 +:1022C0009F70F92E882319F0F29480EFF8220023F2 +:1022D00049F0FF2009F457C28F2D0E94FC190E947B +:1022E000331A51C2812F0E94B610FF2009F49EC2FA +:1022F0008F2D0E94021A26960FB6F894DEBF0FBEED +:10230000CDBFDF91CF911F910F91FF90EF90DF90A4 +:10231000CF90BF900C94331A3B2D307F8B2D8F7054 +:10232000303211F08295807F112319F0113021F1A4 +:102330002CC00023B9F0222309F490C1213009F008 +:102340008DC126960FB6F894DEBF0FBECDBFDF91CC +:10235000CF911F910F91FF90EF90DF90CF90BF90A2 +:102360000C941C1A222319F0213009F45FC28E83C9 +:102370000E941F1A8E8186C1002321F0223008F0AE +:1023800055C26CC1211152C27DC1002321F022230C +:1023900009F464C1F8C1222309F474C109C28B2D68 +:1023A00086958695837019F08130D1F03FC2002365 +:1023B00021F0812F9B2D937002C080E090E0269643 +:1023C0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1023D0000F91FF90EF90DF90CF90BF900C94E70E9D +:1023E000002321F0812F9B2D937002C080E090E0AC +:1023F00026960FB6F894DEBF0FBECDBFDF91CF910A +:102400001F910F91FF90EF90DF90CF90BF900C94B1 +:10241000FD0E812F002319F00E94AE1D02C00E9404 +:10242000161E26960FB6F894DEBF0FBECDBFDF9105 +:10243000CF911F910F91FF90EF90DF90CF90BF90C1 +:102440000C949B1E8B2D837009F075C00111EEC199 +:10245000812F829586958770880F880F912F9F70A6 +:10246000C92ED12CE12CF12C082E04C0CC0CDD1C83 +:10247000EE1CFF1C0A94D2F714FF12C00FE010E00C +:1024800020E030E004C0000F111F221F331F8A9587 +:10249000D2F7C901B801609570958095909503C0F9 +:1024A00060E070E0CB014B2D46954695437042307D +:1024B000C1F060F56C297D298E299F29413051F1A9 +:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139 +:1024D0001F910F91FF90EF90DF90CF90BF900C94E1 +:1024E00017186C297D298E299F2926960FB6F894F6 +:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 +:10250000EF90DF90CF90BF900C9433180E94171873 +:10251000C701B60126960FB6F894DEBF0FBECDBF39 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C94FB17002319F08B2D817001C004 +:102540008695882309F472C1812F829586958770BC +:10255000880F880F912F9F70C92ED12CE12CF12C60 +:10256000082E04C0CC0CDD1CEE1CFF1C0A94D2F714 +:1025700014FF12C00FE010E020E030E004C0000FB4 +:10258000111F221F331F8A95D2F7C901B801609528 +:1025900070958095909503C060E070E0CB014B2D65 +:1025A0004695469543704230C1F060F56C297D290F +:1025B0008E299F29413051F126960FB6F894DEBF3F +:1025C0000FBECDBFDF91CF911F910F91FF90EF9084 +:1025D000DF90CF90BF900C94F1186C297D298E2943 +:1025E0009F2926960FB6F894DEBF0FBECDBFDF91B0 +:1025F000CF911F910F91FF90EF90DF90CF90BF9000 +:102600000C940D190E94F118C701B60126960FB659 +:10261000F894DEBF0FBECDBFDF91CF911F910F9118 +:10262000FF90EF90DF90CF90BF900C94D518103FA3 +:10263000D1F118F4103E50F4A1C0123F09F463C068 +:1026400008F44CC0133F09F473C098C01F708B2D61 +:102650008F710023A1F00E946E18812F26960FB66D +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C9405110E94D7 +:102680008F18812F26960FB6F894DEBF0FBECDBFF0 +:10269000DF91CF911F910F91FF90EF90DF90CF903E +:1026A000BF900C940C110023A9F02111BFC08B2DF9 +:1026B0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1026C000CF911F910F91FF90EF90DF90CF90BF902F +:1026D0000C94B418223008F0A9C0E9CF0023A9F067 +:1026E0008B2D8F7126960FB6F894DEBF0FBECDBF2F +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:10270000BF900C946E18002359F38B2D8F71269671 +:102710000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:102720000F91FF90EF90DF90CF90BF900C948F1897 +:10273000002399F08B2D8F7126960FB6F894DEBF8B +:102740000FBECDBFDF91CF911F910F91FF90EF9002 +:10275000DF90CF90BF900C94591826960FB6F8943E +:10276000DEBF0FBECDBFDF91CF911F910F91FF90C4 +:10277000EF90DF90CF90BF900C944F180023A9F0FA +:10278000222309F4ADCF812F26960FB6F894DEBF31 +:102790000FBECDBFDF91CF911F910F91FF90EF90B2 +:1027A000DF90CF90BF900C94EE0F222309F4ADCFB1 +:1027B000812F26960FB6F894DEBF0FBECDBFDF91F6 +:1027C000CF911F910F91FF90EF90DF90CF90BF902E +:1027D0000C94B6104B2D4F70612FC7010E940E0351 +:1027E00026960FB6F894DEBF0FBECDBFDF91CF9116 +:1027F0001F910F91FF90EF90DF90CF90BF900C94BE +:1028000073174B2D4F70612FC70126960FB6F894A2 +:10281000DEBF0FBECDBFDF91CF911F910F91FF9013 +:10282000EF90DF90CF90BF900C94540626960FB691 +:10283000F894DEBF0FBECDBFDF91CF911F910F91F6 +:10284000FF90EF90DF90CF90BF9008950E94091AFB +:102850000E94191A0E94DE190E94331A0E944B1F0F +:102860000E949B1E80E090E00E94E70E80E090E0D6 +:102870000C94FD0E0E94F9190C9426140E942A193A +:10288000292F22952F702C3030F42A3048F4225012 +:10289000223078F405C02C3041F02F3031F009C0DF +:1028A000803E48F0803F29F406C093FB882780F9DA +:1028B000089580E0089581E00895CF93DF9300D0DC +:1028C00000D01F92CDB7DEB70F900F900F900F90F2 +:1028D0000F90DF91CF910895CF93DF9300D000D078 +:1028E00000D0CDB7DEB726960FB6F894DEBF0FBE88 +:1028F000CDBFDF91CF9108951F93CF93DF93C09108 +:10290000790116E080917A01C81799F0D0E01C9FF8 +:10291000F0011D9FF00D1124E558FE4F40815181BB +:1029200062817381848195810E946C142196C770A5 +:10293000E9CFDF91CF911F9108954091AB01509164 +:10294000AC016091AD017091AE018091AF019091A9 +:10295000B0010C946C148091B00182958F7009F0D5 +:1029600054C08091AD01882309F44FC08091790152 +:10297000A0917A014091AE015091AF016091AB01FD +:102980007091AC01B6E08A1709F43FC090E04115A0 +:102990005105C1F17F3F11F46F3FA1F1B89FF001E4 +:1029A000B99FF00D1124E558FE4F218127132AC04D +:1029B0002081261327C02281211124C02381348144 +:1029C0002417350710F421503109241B350B283CFE +:1029D0003105C0F42091B0012F7020612093B00127 +:1029E00026E0289FF001299FF00D1124E058FE4FAA +:1029F00080818F70806180838BEA91E00E94131147 +:102A00000C947C1401968770BECF0895CF92DF920C +:102A1000EF92FF920F931F93CF93DF93CDB7DEB763 +:102A200062970FB6F894DEBF0FBECDBF8C0185E074 +:102A3000F801DE011D9601900D928A95E1F7D8010B +:102A40004C9111965C91119712966C918091AE0108 +:102A50009091AF01009709F475C13091AB0170916D +:102A6000AC017F3F19F43F3F09F46CC1F801C3800A +:102A7000D480E090AD01EE2009F4BEC02091B001F9 +:102A8000C816D90628F0D601A81BB90BCD0104C081 +:102A9000809590958C0D9D1DFF24F394883C9105A5 +:102AA00078F0F12C207F09F0C4C07C2DD98AC88A27 +:102AB00089890E945D148BEA91E00E941311AFC0D6 +:102AC000822F807F09F045C0571313C0431311C0F4 +:102AD00061110FC02F7020612093B0010E949D14DE +:102AE0008BEA91E00E9413118091B001F801858377 +:102AF0002EC0CD2819F15F3F11F44F3FF9F0F62EAB +:102B000061111CC08091790120917A0136E0821711 +:102B100009F45BC090E0389FF001399FF00D11245B +:102B2000E558FE4F7181571306C07081471303C0EB +:102B30007281711103C001968770E9CFF62E66236A +:102B400009F41CC18091B00181608093B001F12C27 +:102B500015C1571309C0431307C0611105C0809107 +:102B6000B001F8018583C8C04D875E878D859E853D +:102B70006A8B0E943E146A898823D1F16623C1F1D1 +:102B80002091B001822F82958F7090E0029774F0AF +:102B90008091AB019091AC0198878F831986DB8679 +:102BA000CA862C87CE0107960E94131186E0F80191 +:102BB000ABEAB1E001900D928A95E1F70E94AB1467 +:102BC0000E949D14FF24F394D9C04D875E878D85A4 +:102BD0009E850E942A19292F22952F70223008F0F5 +:102BE000C1C09F7009F0BBC0805E883008F4C6C0C9 +:102BF000C8010E941311E6CFC816D90608F453C0C5 +:102C0000F601E81BF90BCF01883C910508F450C090 +:102C1000F12C7C2DD98AC88A89890E945D14EBEA3F +:102C2000F1E086E0DF011D928A95E9F70E949D148C +:102C3000A5C0571314C0431312C0611110C0809176 +:102C4000B001F8018583C8010E94131186E0EBEA08 +:102C5000F1E0DF011D928A95E9F7FE2C8FC04D87C8 +:102C60005E878D859E856A8B0E943E146A898823C3 +:102C700009F4BECF662309F4BBCF2091B001822FA7 +:102C800082958F7090E002970CF490CF8091AB0109 +:102C90009091AC019A8389831B82DD82CC822E8342 +:102CA000CE01019681CF809590958C0D9D1DACCF66 +:102CB000F62E662309F49CCF571333C0431331C05B +:102CC0002091B00120FD24C0822F82958F70482F63 +:102CD00050E041155105E1F0D80115962C93159758 +:102CE0004F30510549F08F5F982F9295907F822F3A +:102CF0008F70892B15968C93C8010E94131186E062 +:102D0000F801ABEAB1E001900D928A95E1F78ECF20 +:102D100086E0F801ABEAB1E001900D928A95E1F707 +:102D20002DC04D875E878D859E850E943E14811142 +:102D30003DCF8091B00181608093B001C8010E94B5 +:102D400013111CC0662309F453CF4D875E878D8510 +:102D50009E850E943E14882309F44ACF27CF811113 +:102D600043CF0CC0243008F043CF9F7009F43CCF10 +:102D7000D80115969C91907F09F036CF8F2D6296E1 +:102D80000FB6F894DEBF0FBECDBFDF91CF911F917C +:102D90000F91FF90EF90DF90CF9008951F93CF9306 +:102DA000DF93CDB7DEB72C970FB6F894DEBF0FBE1A +:102DB000CDBF4F83588769877A878B879C87CE01E1 +:102DC00007960E940615882371F08A859B85892BBA +:102DD00009F441C088858F3F09F065C08F818F3F1E +:102DE00009F061C038C086E0FE013796DE01119619 +:102DF00001900D928A95E1F76A857B8561157105D1 +:102E000051F1FF81E885EF3F11F4FF3F21F120915F +:102E10007A0130E0C90101968770992740917901C4 +:102E200050E08417950709F447C0F983EA837D834E +:102E30006C8396E0929FD001939FB00D1124A5580A +:102E4000BE4FFE01319601900D929A95E1F7809365 +:102E50007A010E947C1416E08091790190917A01A8 +:102E60008917B9F1189FC001112485589E4F0E94FF +:102E70000615882371F1E09179011E9FF00111245C +:102E8000E558FE4F40815181628173818481958133 +:102E90000E946C148091790190E0019687709927C7 +:102EA00080937901D9CF4F81588569857A858B8543 +:102EB0009C850E946C14CFCF0E943A1410927A0124 +:102EC00010927901EBEAF1E086E0DF011D928A952C +:102ED000E9F72C960FB6F894DEBF0FBECDBFDF9199 +:102EE000CF911F910895EF92FF920F931F93CF936D +:102EF000DF938C01892B09F46CC0F12CEE24E39450 +:102F0000E8012196F8018491843740F4843008F078 +:102F100051C0813081F0823019F15BC0853709F4EE +:102F200044C0A8F19CE7980F903708F052C08F7703 +:102F30000E94B61041C00E5F1F4FFE01849190E2C7 +:102F4000980F983050F48770FE2D01C0FF0F8A95BE +:102F5000EAF78F2F0E940C1A14C00E94EE0F2DC0AA +:102F60000E5F1F4FFE01849190E2980F983060F43D +:102F70008770FE2D01C0FF0F8A95EAF78F2F0E9400 +:102F8000121A0E94331A19C00E94B61016C00E5FA2 +:102F90001F4FFE01C491CC2381F08FE99FE0019780 +:102FA000F1F700C00000C150F6CF0E5F1F4FFE01C9 +:102FB000F49003C00E94EE0F8E018F2D882309F438 +:102FC0009FCFEFE9FFE03197F1F700C0000081509B +:102FD000F5CFDF91CF911F910F91FF90EF90089562 +:102FE00008956093B5017093B6018093B7019093F3 +:102FF000B8010C9426140F931F930091B501109102 +:10300000B6012091B7013091B801DC01CB01802BD2 +:10301000912BA22BB32B8093B5019093B601A09373 +:10302000B701B093B8011F910F910C9426140F9320 +:103030001F930091B5011091B6012091B701309115 +:10304000B801DC01CB0180239123A223B323809319 +:10305000B5019093B601A093B701B093B8011F9149 +:103060000F910C9426140F931F930091B5011091AA +:10307000B6012091B7013091B801DC01CB01802766 +:103080009127A227B3278093B5019093B601A0930F +:10309000B701B093B8011F910F910C9426141092B0 +:1030A000B1011092B2011092B3011092B4010C94CC +:1030B000261441E050E060E070E004C0440F551F6A +:1030C000661F771F8A95D2F74093B1015093B201E2 +:1030D0006093B3017093B4010C94261441E050E066 +:1030E00060E070E004C0440F551F661F771F8A958B +:1030F000D2F78091B1019091B201A091B301B0914A +:10310000B401482B592B6A2B7B2B4093B101509370 +:10311000B2016093B3017093B4010C94261441E0A2 +:1031200050E060E070E004C0440F551F661F771F39 +:103130008A95D2F740955095609570958091B10130 +:103140009091B201A091B301B091B40148235923E9 +:103150006A237B234093B1015093B2016093B30182 +:103160007093B4010C94261441E050E060E070E0EC +:1031700004C0440F551F661F771F8A95D2F78091B0 +:10318000B1019091B201A091B301B091B40148276F +:1031900059276A277B274093B1015093B20160936E +:1031A000B3017093B4010C9426140F931F930091F4 +:1031B000B1011091B2012091B3013091B401DC0151 +:1031C000CB01802B912BA22BB32B8093B101909339 +:1031D000B201A093B301B093B4011F910F910C946D +:1031E00026140F931F930091B1011091B201209109 +:1031F000B3013091B401DC01CB0180239123A223E0 +:10320000B3238093B1019093B201A093B301B09323 +:10321000B4011F910F910C9426140F931F930091EA +:10322000B1011091B2012091B3013091B401DC01E0 +:10323000CB0180279127A227B3278093B1019093D8 +:10324000B201A093B301B093B4011F910F910C94FC +:1032500026140895CF92DF92EF92FF920F931F935F +:10326000CF93DF938C01C090B101D090B201E09078 +:10327000B301F090B4018091B5019091B601A09195 +:10328000B701B091B801C82AD92AEA2AFB2ACFE1AE +:10329000D0E0D701C6010C2E04C0B695A79597952E +:1032A00087950A94D2F780FF07C0B8018C2F0E943F +:1032B00078068130910531F4219758F7B80180E004 +:1032C0000E947806DF91CF911F910F91FF90EF90B0 +:1032D000DF90CF90089590910C019923F1F0909197 +:1032E0000D019923D1F0982F9695969596959F303C +:1032F00080F5E0910E01F0910F01E90FF11D87704B +:1033000021E030E0A90102C0440F551F8A95E2F781 +:10331000CA019181892B8183089520910E013091FA +:103320000F01F90132969FEF40E05191851789F026 +:103330009F3F19F4511101C0942F4F5F4E30A9F7F0 +:103340009F3F39F0F901E90FF11D97FDFA9582834E +:103350000895089590910C019923F9F090910D0131 +:103360009923D9F0982F9695969596959F3028F5A4 +:10337000E0910E01F0910F01E90FF11D877021E03E +:1033800030E0A90102C0440F551F8A95E2F7CA0137 +:103390008095918189238183089520910E01309138 +:1033A0000F01F9013296205F3F4F9081891301C0D0 +:1033B00010823196E217F307C1F7089581E090E09B +:1033C000E0910E01F0910F01E80FF91F10820196B4 +:1033D00080319105A9F708959091CC01892B8093B4 +:1033E000CC01089580959091CC0189238093CC01E4 +:1033F00008951092CC0108959091CB01892B809370 +:10340000CB01089580959091CB0189238093CB01C6 +:1034100008951092CB0108959091CA01892B809351 +:10342000CA01089580959091CA0189238093CA01A9 +:1034300008951092CA0108958093B90108951092D9 +:10344000B901089580910E0190910F01FC01319610 +:103450009C01205F3F4F80E0919191118F5FE217B7 +:10346000F307D1F70895E0910E01F0910F018091DB +:10347000CC018083E0910E01F0910F019081809149 +:10348000CB01892B8083E0910E01F0910F01908197 +:103490008091CA01892B80838091B901882361F0D2 +:1034A000E0910E01F0910F019081892B80830E94A1 +:1034B000221A81111092B90180910E0190910F0191 +:1034C0000C94D10ECF92DF92EF92FF926C01EE241A +:1034D000FF24C114D104E104F10421F0C701B601B5 +:1034E00020E101C020E0C72ED82EE92EFF24C11410 +:1034F000D104E104F10419F0285FC701B6016B01A2 +:103500007C0154E0F694E794D794C7945A95D1F788 +:10351000C114D104E104F10419F02C5FC701B60114 +:103520006B017C0142E0F694E794D794C7944A95E6 +:10353000D1F7C114D104E104F10419F02E5FC701E1 +:10354000B601DC01CB01B695A79597958795892B98 +:103550008A2B8B2B09F02F5F822FFF90EF90DF904B +:10356000CF9008958091E501843029F120E488E12D +:1035700090E00FB6F894A895809360000FBE20935A +:10358000600080E00E94BA0783B7817F846083BFB8 +:1035900083B7816083BF7894889583B78E7F83BF1C +:1035A0000FB6F894A89580916000886180936000C0 +:1035B000109260000FBE089508950C94DC1ACF930A +:1035C0000E94DD1A0E9497040E94DC1AC0E08C2F32 +:1035D0000E948D05811104C0CF5FCE30C1F701C0BC +:1035E00081E0CF9108950E943A140E94C50E0C9478 +:1035F000BA0782E084BD93E095BD9AEF97BD8093B2 +:103600006E0008952FB7F8948091CE019091CF016C +:10361000A091D001B091D1012FBF0895CF92DF9238 +:10362000EF92FF920F931F932FB7F8944091CE0122 +:103630005091CF016091D0017091D1012FBF6A01EB +:103640007B01EE24FF248C0120E030E0C016D1067F +:10365000E206F30610F4415051099A01281B390B78 +:10366000C9011F910F91FF90EF90DF90CF900895C7 +:103670001F920F920FB60F9211248F939F93AF93C7 +:10368000BF938091CE019091CF01A091D001B091D4 +:10369000D1010196A11DB11D8093CE019093CF0160 +:1036A000A093D001B093D101BF91AF919F918F9121 +:1036B0000F900FBE0F901F9018950E94BD0BF894AD +:1036C0002FEF87EA91E6215080409040E1F700C05B +:1036D000000087E090EBDC018093EE019093EF0116 +:1036E000A093F001B093F1019CE088E10FB6F8944B +:1036F000A895809360000FBE90936000FFCFEF927B +:10370000FF920F931F93CF93DF93D82FC0E08C2F9E +:103710000E948D0500E010E0E82EF12CC701002E7C +:1037200002C0959587950A94E2F780FD06C00F5F69 +:103730001F4F0630110591F709C0602F7C2F80E0E4 +:103740000E9455068D13F3CF81E004C0CF5FCE30C9 +:10375000F1F680E0DF91CF911F910F91FF90EF90F4 +:103760000895CF93C82F8CE20E947F1B882321F0FD +:103770008C2FCF910C947F1B80E0CF910895CF9335 +:103780000E94061D811102C00E94EC1CC5E6C150BA +:1037900049F00E9497048FE39CE90197F1F700C07C +:1037A0000000F5CF89E20E94B11B811113C18AE2AA +:1037B0000E94B11B81110E94EC1C85E00E94B11B8C +:1037C00081110E945D1B0E94111D8093CD0187E035 +:1037D0000E94B11B8823A9F18BE10E94B11B8823B1 +:1037E00051F08091CD0181FB222720F991E09227B1 +:1037F00090FB81F90EC08EE00E94B11B882361F01E +:103800008091CD0182FB222720F991E0922790FB45 +:1038100082F98093CD0115C080E10E94B11B909187 +:10382000CD01882341F093FB222720F981E08227F4 +:1038300080FB93F904C0892F809580FB90F99093C9 +:10384000CD018091CD010E94151D0E94231D809302 +:10385000DF0180EE0E94B11B882341F08091DF01DF +:10386000982F909590FB80F98093DF0189E30E9467 +:10387000B11B882359F08091DF0181FB222720F9B9 +:1038800091E0922790FB81F98093DF0182EE0E9404 +:10389000B11B882359F08091DF0182FB222720F998 +:1038A00091E0922790FB82F98093DF0186EE0E94DF +:1038B000B11B882359F08091DF0183FB222720F977 +:1038C00091E0922790FB83F98093DF0183EE0E94C1 +:1038D000B11B882359F08091DF0184FB222720F956 +:1038E00091E0922790FB84F98093DF0185E30E94A9 +:1038F000B11B882359F08091DF0185FB222720F935 +:1039000091E0922790FB85F98093DF0181E30E948B +:10391000B11B882359F08091DF0186FB222720F913 +:1039200091E0922790FB86F98093DF0181E10E946C +:10393000B11B882359F08091DF0187FB222720F9F2 +:1039400091E0922790FB87F98093DF018091DF015E +:103950000E94271D8091DF0187FB882780F98093D3 +:103960000D0187E20E94B11BC82F8EE10E94B11B9E +:103970008111C2608FE10E94B11B8111C46080E29D +:103980000E94B11B8111C86081E20E94B11B8111AC +:10399000C06182E20E94B11B8111C06283E20E9479 +:1039A000B11B8111C06484E20E94B11B882311F015 +:1039B000C06802C0CC2329F08C2F0E941E1D6C2FE2 +:1039C00003C00E941A1D682F70E080E090E0CF9144 +:1039D0000C94F117CF9108956DEE7EEF80E090E0AA +:1039E0000E94662360E082E090E00E94582360E03D +:1039F00083E090E00E94582360E084E090E00E9421 +:103A0000582360E085E090E00C94582380E090E03B +:103A10000E94522321E08D3E9E4F09F020E0822F2C +:103A2000089582E090E00C944A23682F82E090E0B1 +:103A30000C94582383E090E00C944A23682F83E091 +:103A400090E00C94582384E090E00C944A23682F73 +:103A500084E090E00C9458238091D40180FF0BC047 +:103A60006091130185E0689FB001112475956795F9 +:103A7000759567952BC081FF09C06091130185E0A2 +:103A8000689FB00111247595679520C082FF07C01B +:103A90006091130185E0689FB001112417C09091D7 +:103AA000D5019923D1F060911201961788F72091E2 +:103AB000130185E0289F90011124929FA001939FFC +:103AC000500D112470E0CA010E941C23603871055A +:103AD00040F46115710519F406C065E070E0862FA9 +:103AE00008958FE7089581E008958091D40180FFC3 +:103AF00008C06091110170E075956795759567959F +:103B000021C081FF06C06091110170E07595679535 +:103B100019C082FF04C06091110170E010C0909143 +:103B2000D501992399F0609110019617A0F7809123 +:103B30001101899FC001112470E00E941C2360388C +:103B4000710540F46115710519F406C061E070E07B +:103B5000862F08958FE7089581E00895803F21F42E +:103B60000E942C1D819504C0813F29F40E942C1DC8 +:103B70008093D8010895823F21F40E942C1D8195E5 +:103B800004C0833F29F40E942C1D8093D70108951F +:103B9000893F19F40E94751D05C08A3F31F40E94C7 +:103BA000751D81958093D90108958B3F21F40E9462 +:103BB000751D819504C08C3F29F40E94751D80936A +:103BC000DA010895843F21F48091D601816017C005 +:103BD000853F21F48091D601826011C0863F21F497 +:103BE0008091D60184600BC0873F21F48091D6017B +:103BF000886005C0883F31F48091D6018061809350 +:103C0000D60108958D3F21F48091D40181600BC0CD +:103C10008E3F21F48091D401826005C08F3F29F44A +:103C20008091D40184608093D4010895803F39F459 +:103C30008091D80187FF6CC01092D80169C0813F84 +:103C400029F48091D8011816BCF362C09091D70175 +:103C5000823F29F497FF5CC01092D70159C0833F7F +:103C600019F41916CCF354C0893F41F48091D9015D +:103C700018160CF04DC01092D9014AC08A3F29F4A1 +:103C80008091D90187FF44C0F6CF8B3F39F48091F2 +:103C9000DA0187FF3DC01092DA013AC08C3F29F467 +:103CA0008091DA011816BCF333C0843F21F480916F +:103CB000D6018E7F17C0853F21F48091D6018D7F7C +:103CC00011C0863F21F48091D6018B7F0BC0873FC6 +:103CD00021F48091D601877F05C0883F31F480911F +:103CE000D6018F7E8093D60113C08D3F21F4809141 +:103CF000D4018E7F0BC08E3F21F48091D4018D7F43 +:103D000005C08F3F29F48091D4018B7F8093D4012B +:103D10008091D70181110EC08091D80181110AC014 +:103D20008091D901811106C08091DA01811102C010 +:103D30001092D501089586ED91E00E94DC0E0E945C +:103D4000021B9093D3018093D20108951F93CF93C8 +:103D5000DF938091D2019091D3010E940E1BAC01A0 +:103D60009091D501992321F02091140130E006C0F3 +:103D7000209115018AE0289F9001112442175307D2 +:103D800008F485C08091D701C091D801D091D901A4 +:103D90001091DA01811107C0C11175C0D11173C032 +:103DA000111171C074C09F3F19F09F5F9093D501AE +:103DB000181624F40E942C1D8093D7018091D701FE +:103DC00087FF05C00E942C1D81958093D7011C168A +:103DD00024F40E942C1D8093D8018091D80187FF84 +:103DE00005C00E942C1D81958093D8016091D70158 +:103DF000662331F1C091D801CC2311F1062E000CBD +:103E0000770B880B990B0E94232223E333E343E3D0 +:103E10005FE30E9487220E94EB216093D7016C2F01 +:103E2000CC0F770B880B990B0E94232223E333E3FB +:103E300043E35FE30E9487220E94EB216093D80155 +:103E40001D1624F40E94751D8093D9018091D9011B +:103E500087FF05C00E94751D81958093D9011116B9 +:103E600024F40E94751D8093DA018091DA0187FFA6 +:103E700005C00E94751D81958093DA01DF91CF9175 +:103E80001F910C949B1E9F3F09F08FCFA0CFDF9115 +:103E9000CF911F910895E6EDF1E085E0DF011D92DD +:103EA0008A95E9F71092D5011092D40108958330D4 +:103EB00081F128F4813059F08230D1F008958530B5 +:103EC00009F449C0B8F1863009F456C008958091CC +:103ED0001501262F30E0280F311D2F3F310524F426 +:103EE000680F6093150108958FEF80931501089571 +:103EF00080911401262F30E0280F311D2F3F31050E +:103F000024F4680F6093140108958FEF80931401D7 +:103F1000089580911301262F30E0280F311D2F3F87 +:103F2000310524F4680F6093130108958FEF809397 +:103F30001301089580911201262F30E0280F311DC2 +:103F40002F3F310524F4680F6093120108958FEF1D +:103F500080931201089580911101262F30E0280FDF +:103F6000311D2F3F310524F4680F6093110108952E +:103F70008FEF80931101089580911001262F30E07A +:103F8000280F311D2F3F310524F4680F6093100175 +:103F900008958FEF809310010895833011F128F474 +:103FA000813049F0823091F00895853081F120F11F +:103FB0008630C1F1089580911501681720F4861BA1 +:103FC00080931501089510921501089580911401B0 +:103FD000681720F4861B8093140108951092140131 +:103FE000089580911301681720F4861B80931301B4 +:103FF000089510921301089580911201681720F41A +:10400000861B8093120108951092120108958091E9 +:104010001101681720F4861B8093110108951092F6 +:104020001101089580911001681720F4861B809378 +:10403000100108951092100108950F931F938D3170 +:1040400009F46AC008F03FC08E3009F484C0C0F49F +:10405000873009F46DC068F4863009F0B5C08091EE +:10406000CD01817F8E7F8093CD0181E08093DC0143 +:10407000ACC0883009F457C08B3009F46AC0A4C0C2 +:10408000863109F466C078F4803109F477C0813153 +:1040900009F09AC00E943A1490910D0181E089279D +:1040A00080930D0156C0893109F453C08B3109F05A +:1040B0008BC08091CD0181FB222720F991E09227CE +:1040C00090FB81F951C0853309F475C048F48732FB +:1040D00009F471C008F45EC0893209F46CC074C080 +:1040E000833430F48A3308F053C0883391F16CC0C4 +:1040F000833409F460C0883409F066C00E943A1421 +:104100000FEF13ED20E3015010402040E1F700C015 +:1041100000000E945D1B1DC00E94A5210E94C50ECB +:104120000E94BA0716C00E94111D0E94231D11C0D3 +:104130009091CD01892F8095817080FB90F929F0B5 +:10414000966098609093CD0140C0997F977F90933F +:10415000CD0181E03AC08091CD0182FB222720F978 +:1041600091E0922790FB82F98093CD01992389F306 +:104170008091CD0181608093CD01EBCF8091CD0105 +:1041800083FB222720F991E0922790FB83F9ECCF63 +:10419000895301C08D5141E050E060E070E08A0138 +:1041A0009B0104C0000F111F221F331F8A95D2F7F5 +:1041B000C901B80104C061E070E080E090E00E94B5 +:1041C000F1170E943A14C5CF80E01F910F91089516 +:1041D00080E008950C94E820CF93C82F8091DC01F3 +:1041E000813079F018F08230E9F187C0E0910E015A +:1041F000F0910F018081813169F0823209F07FC036 +:1042000009C0E0910E01F0910F018081813111F020 +:10421000823261F48C2F0E94EA20811104C08C2F1D +:104220000E941D201DC081E090E01AC08C2F0E94CA +:10423000E820811114C0C43179F048F4CB3079F012 +:10424000C03109F060C082E08093DC0108C0C9324F +:1042500019F0C83321F057C01092DC0154C081E03E +:10426000817053C0C93289F118F5C43171F1A8F4D5 +:10427000C73009F046C08AE08093150194E190931D +:10428000140193E0909313018093120188E08093CE +:10429000110188E28093100134C0CE51C63088F5F8 +:1042A000EC2FF0E0E65DFE4F80818093DB0129C0BA +:1042B000CE34E9F020F4CB3421F56AE013C0C135E7 +:1042C00079F0C235F1F461E00DC08091DB01882303 +:1042D00019F01092DB0115C081E08093DC0115C05C +:1042E00061E006C08091DB010E94571F0AC06AE0AE +:1042F0008091DB010E94CD1F04C01092DC0180E0A0 +:1043000004C081E002C080E0ABCFCF910895E1E826 +:10431000F0E08081886080838081816080838FB7B6 +:10432000F89493E09093890090ED909388008FBF6C +:104330000895EFE6F0E08081826080830895EFE6E3 +:10434000F0E080818D7F80830895EFE6F0E090813A +:1043500082E08927808308951F920F920FB60F92F3 +:1043600011242F933F934F935F936F937F938F937A +:104370009F93AF93BF93EF93FF938091DD01909153 +:10438000DE0101969093DE018093DD01811103C06F +:1043900082E00E94BA07E091DE01E695E695F0E042 +:1043A000E75BFA4FE4918091DD018E1303C080E05A +:1043B0000E94BA07FF91EF91BF91AF919F918F91AA +:1043C0007F916F915F914F913F912F910F900FBE11 +:1043D0000F901F9018950E94F2216894B1110C94CF +:1043E000812208950E94662288F09F5798F0B92F85 +:1043F0009927B751B0F0E1F0660F771F881F991F1A +:104400001AF0BA95C9F714C0B13091F00E94802219 +:10441000B1E008950C948022672F782F8827B85F29 +:1044200039F0B93FCCF3869577956795B395D9F771 +:104430003EF490958095709561957F4F8F4F9F4F7B +:104440000895E89409C097FB3EF490958095709587 +:1044500061957F4F8F4F9F4F9923A9F0F92F96E9D0 +:10446000BB279395F695879577956795B795F11145 +:10447000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE2 +:104480008F4F9F4F16C0882311F096E911C07723F4 +:1044900021F09EE8872F762F05C0662371F096E8FD +:1044A000862F70E060E02AF09A95660F771F881FCC +:1044B000DAF7880F9695879597F9089557FD9058E4 +:1044C000440F551F59F05F3F71F04795880F97FBD8 +:1044D000991F61F09F3F79F0879508951216130692 +:1044E0001406551FF2CF4695F1DF08C016161706C1 +:1044F0001806991FF1CF86957105610508940895F6 +:10450000E894BB2766277727CB0197F908950E9487 +:104510009A220C940B230E94FD2238F00E9404235F +:1045200020F0952311F00C94F4220C94FA2211241B +:104530000C9481220E945E2270F3959FC1F3950F27 +:1045400050E0551F629FF001729FBB27F00DB11D17 +:10455000639FAA27F00DB11DAA1F649F6627B00DA7 +:10456000A11D661F829F2227B00DA11D621F739F90 +:10457000B00DA11D621F839FA00D611D221F749F9E +:104580003327A00D611D231F849F600D211D822FE5 +:10459000762F6A2F11249F5750409AF0F1F088230C +:1045A0004AF0EE0FFF1FBB1F661F771F881F915039 +:1045B0005040A9F79E3F510580F00C94F4220C94D2 +:1045C00081225F3FE4F3983ED4F386957795679513 +:1045D000B795F795E7959F5FC1F7FE2B880F911D63 +:1045E0009695879597F9089597F99F6780E870E009 +:1045F00060E008959FEF80EC089500240A94161659 +:10460000170618060906089500240A9412161306C0 +:10461000140605060895092E0394000C11F488234E +:1046200052F0BB0F40F4BF2B11F460FF04C06F5F6A +:104630007F4F8F4F9F4F089597FB072E16F40094DE +:1046400007D077FD09D00E94362307FC05D03EF441 +:10465000909581959F4F0895709561957F4F08952E +:10466000EE0FFF1F0590F491E02D0994AA1BBB1BD0 +:1046700051E107C0AA1FBB1FA617B70710F0A61B62 +:10468000B70B881F991F5A95A9F780959095BC0183 +:10469000CD010895F999FECF92BD81BDF89A992771 +:1046A00080B50895A8E1B0E042E050E00C946D239D +:1046B000262FF999FECF1FBA92BD81BD20BD0FB63E +:1046C000F894FA9AF99A0FBE019608950E94582319 +:1046D000272F0C945923DC01CB01FC01F999FECF63 +:1046E00006C0F2BDE1BDF89A319600B40D9241507A +:0A46F0005040B8F70895F894FFCF8A +:1046FA002002BC074C082708F307BF070101BA01CB +:10470A0028080A03140A3F4D36390A05BD048704EE +:10471A004E04E103FA0313042C0401020304050600 +:04472A000708090073 :00000001FF -- cgit v1.2.3 From 028dd16fe61818294790c0190c5fd571ce2e5635 Mon Sep 17 00:00:00 2001 From: tak3over Date: Tue, 5 Apr 2016 16:21:45 -0500 Subject: Modified keymap --- keyboard/planck/keymaps/tak3over.c | 39 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index caba6167f..2c3d8ef1c 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -16,9 +16,8 @@ // entirely and just use numbers. #define _QW 0 #define _CM 1 -//#define _TK 2 -#define _LW 3 -#define _RS 4 +#define _LW 2 +#define _RS 3 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -58,39 +57,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} }, -/* TenKey Layer, obsolete - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Brite | Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | - * `-----------------------------------------------------------------------------------' - -[_TK] = { - {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_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_DEL, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, KC_SLSH}, - {KC_LSFT, KC_HOME, KC_PGUP, KC_PGDN, KC_END, KC_INS, KC_DOT, KC_1, KC_2, KC_3, KC_MINS, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), MO(_RS), KC_SPC, KC_SPC, MO(_RS), MO(_LW), KC_RGUI, KC_RALT, KC_RCTL} -},*/ - -/* Raise +/* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc |Reset | Ins | Home | PGUP | Next | Left | Down | Up |Right | Play | \ | + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | Down | Up |Right | Del | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty|Colemk| - | = | [ | ] |Enter | + * | Shift| Brite| Del | End | PGDN |Qwerty| Next | Mute | Vol- | Vol+ | Play |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' */ [_RS] = { {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, RESET, KC_INS, KC_HOME, KC_PGUP, KC_MNXT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MPLY, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), DF(_CM), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, 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} }, @@ -98,16 +79,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | Next | Vol- | Vol+ | Play | | | + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Ctrl | Alt | GUI |Lower |Raise | Space |Raise |Lower | GUI | Alt | Ctrl | * `-----------------------------------------------------------------------------------' - */ + */ [_LW] = { {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_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} } -- cgit v1.2.3 From 4eadc2a977204fc2f1d863ce0a7f68513a6ad5e8 Mon Sep 17 00:00:00 2001 From: tak3over Date: Tue, 5 Apr 2016 16:39:45 -0500 Subject: updated my keymap --- keyboard/planck/keymaps/tak3over.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c index 2c3d8ef1c..a212efc90 100644 --- a/keyboard/planck/keymaps/tak3over.c +++ b/keyboard/planck/keymaps/tak3over.c @@ -1,9 +1,7 @@ // 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. // -// Custom style by tak3over. Dropped the dvorak layer as it was not being used by me. Shifted over -// keys to make room for a second function key on the left side. Now has a keypad and most all -// standard keyboard keys. Including Delete. See TK layer. +//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. #include "planck.h" #ifdef BACKLIGHT_ENABLE -- cgit v1.2.3 From 34dd96187c5ea2fe6e806f662e6ab0c320d0df1b Mon Sep 17 00:00:00 2001 From: skullY Date: Tue, 5 Apr 2016 20:27:24 -0700 Subject: Fix the clueboard2 led code --- keyboard/clueboard2/led.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/clueboard2/led.c b/keyboard/clueboard2/led.c index 5788fc7b1..3d074e5d2 100644 --- a/keyboard/clueboard2/led.c +++ b/keyboard/clueboard2/led.c @@ -25,7 +25,7 @@ void led_init_ports() { DDRB |= (1<<4); } -void led_set(uint8_t usb_led) { +void led_set_kb(uint8_t usb_led) { if (usb_led & (1<event.pressed) { + register_code(KC_RSFT); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3 From 97f8f378761506914b69d4fd2d5661bfcae28295 Mon Sep 17 00:00:00 2001 From: skullY Date: Sun, 10 Apr 2016 21:16:49 -0700 Subject: Fixup RGBLIGHT support for clueboard2 --- keyboard/clueboard2/keymaps/keymap_default.c | 11 +++++------ quantum/rgblight.c | 6 +++--- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'keyboard') diff --git a/keyboard/clueboard2/keymaps/keymap_default.c b/keyboard/clueboard2/keymaps/keymap_default.c index 10fff7b9a..73179f94c 100644 --- a/keyboard/clueboard2/keymaps/keymap_default.c +++ b/keyboard/clueboard2/keymaps/keymap_default.c @@ -1,6 +1,6 @@ #include "clueboard2.h" -#ifdef ENABLE_RGBLIGHT +#ifdef RGBLIGHT_ENABLE #include "rgblight.h" #endif @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = KEYMAP( - #ifdef ENABLE_RGBLIGHT + #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, \ @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, @@ -101,7 +101,7 @@ enum function_id { const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE [1] = ACTION_FUNCTION(RGBLED_TOGGLE), [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), @@ -137,12 +137,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; //led operations - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE case RGBLED_TOGGLE: if (record->event.pressed) { rgblight_toggle(); } - break; case RGBLED_INCREASE_HUE: if (record->event.pressed) { diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 2215cf5cd..6adc9e278 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -190,7 +190,7 @@ void rgblight_mode(uint8_t mode) { rgblight_config.mode = mode; } eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight mode: %u\n", rgblight_config.mode); + xprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { rgblight_timer_disable(); } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) { @@ -207,7 +207,7 @@ void rgblight_mode(uint8_t mode) { void rgblight_toggle(void) { rgblight_config.enable ^= 1; eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); + xprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); } else { @@ -300,7 +300,7 @@ void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ rgblight_config.sat = sat; rgblight_config.val = val; eeconfig_write_rgblight(rgblight_config.raw); - dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + xprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } } -- cgit v1.2.3 From f26985ad16f2c4e8027cc0d39df52bea87ac9163 Mon Sep 17 00:00:00 2001 From: Roman Zolotarev Date: Mon, 11 Apr 2016 21:45:10 +0800 Subject: Add HJKL layout --- .../romanzolotarev-norman-plover-osx-hjkl/keymap.c | 134 +++ .../readme.md | 50 + .../romanzolotarev-norman-plover-osx-hjkl.hex | 1139 ++++++++++++++++++++ .../romanzolotarev-norman-plover-osx-hjkl.png | Bin 0 -> 130692 bytes .../romanzolotarev-norman-plover-osx/readme.md | 13 +- 5 files changed, 1331 insertions(+), 5 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c new file mode 100644 index 000000000..7c9f67381 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md new file mode 100644 index 000000000..4188d2b50 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex new file mode 100644 index 000000000..c341ba2b2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex @@ -0,0 +1,1139 @@ +:100000000C94BB020C94FF020C94FF020C94FF02B0 +:100010000C94FF020C94FF020C94FF020C94FF025C +:100020000C94FF020C94FF020C94090C0C94DB0C52 +:100030000C94FF020C94FF020C94FF020C94FF023C +:100040000C94FF020C94A9210C94FF020C94FF0263 +:100050000C94FF020C94341B0C94FF020C94FF02CE +:100060000C94FF020C94FF020C94FF020C94FF020C +:100070000C94FF020C94FF020C94FF020C94FF02FC +:100080000C94FF020C94FF020C94FF020C94FF02EC +:100090000C94FF020C94FF020C94FF020C94FF02DC +:1000A0000C94FF020C94FF020C94FF02480D6A0DA1 +:1000B000580E6A0D580EAF0DD20D580E270E3A0E7F +:1000C0002611261163116311A611E411FD13FD130E +:1000D000FD11FD13FE12FE12D113FD13FD13E813E3 +:1000E0000000F0A1F0A2F0A335002B002971E1007F +:1000F0003A0000001E00140004001D003B00C10077 +:100100001F001A0016001B003C0029712000070088 +:1001100008000600E2002A0021000900170019006B +:10012000E300A90022000E000A0005000000AA005A +:100130006900025400002F000000A8006A0031008E +:10014000000030000000AE0023000D001C00130072 +:100150000000AB002400180011001000E700AC0004 +:10016000250015000C003600E6002C0026000F00CC +:10017000120037003D003400270033000B00380028 +:100180003E00C3002E002D002800E5003F000000C7 +:1001900001000100010001000100000001001E003B +:1001A0001E0201000100010001001F001F020100EA +:1001B00001000100010020002002010001000100F7 +:1001C00001002100210201000100010001002200C4 +:1001D00022020100000001000100010000000100F6 +:1001E000000001000100010000000100000001000A +:1001F000010023002302010000000100010024008F +:100200002402010001000100010025002502010077 +:10021000010001000100260026020100010001008A +:100220000100270027020100010001000100010078 +:1002300001000100010000000000000000000000BB +:100240000100000000001E00140004000100000076 +:1002500000001F001A001600010019000000200015 +:10026000080007000000060000002100150009003A +:10027000000001000000220017000A000000010039 +:10028000010001000000000000000100010000006A +:100290000000000000000100000023001C000B0013 +:1002A000000001000000240018000D000000010003 +:1002B000000025000C000E000000100000002600C9 +:1002C00012000F000000110000002700130033008F +:1002D00000000000000000002F00340000000000BB +:1002E0000100010001000100010000000100010007 +:1002F000010001000100010001000100F200010005 +:100300000100010001000100F000010001000100F6 +:1003100001000100F100F4000100010001000100F2 +:10032000F300F500000001000100010000000100E1 +:1003300000000100010001000000010000000100B8 +:100340000100010050000100000001000100010057 +:1003500051000100010001000100010052000100F4 +:1003600001000100010001004F0001000100010037 +:100370000100010001000100010001000100010075 +:100380000100010001000000160345007200670033 +:100390006F0044006F007800200045005A00000004 +:1003A00016034500720067006F0044006F0078007C +:1003B000200045005A0000000403090409026D00F2 +:1003C000040100A0FA090400000103010100092151 +:1003D00011010001223F000705810308000A0904FA +:1003E00001000103010200092111010001224D0059 +:1003F0000705820308000A09040200010300000047 +:100400000921110100012236000705830308000AB3 +:100410000904030001030000000921110100012269 +:1004200039000705840310000112011001000000CB +:1004300008EDFE071301000102000105010906A1F4 +:1004400001050719E029E7150025019508750181C7 +:100450000205081901290595057501910295017597 +:100460000391010507190029771500250195787575 +:10047000018102C005010980A10185021601002643 +:10048000B7001A01002AB700751095018100C00558 +:100490000C0901A1018503160100269C021A010026 +:1004A0002A9C02751095018100C005010902A10175 +:1004B0000901A10005091901290515002501950566 +:1004C000750181029501750381010501093009312A +:1004D0001581257F95027508810609381581257FCC +:1004E000950175088106050C0A38021581257F954E +:1004F0000175088106C0C005010906A1010507199B +:10050000E029E7150025019508750181029501751F +:1005100008810105081901290595057501910295C4 +:1005200001750391010507190029FF150025FF95A5 +:100530000675088100C000000000000000000000F7 +:1005400000010204060A0F17202C3A4A5D71879DAC +:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB +:100560005D4A3A2C20170F0A060402010000000021 +:1005700000000000000011241FBECFEFDAE0DEBF54 +:10058000CDBF04B603FE24C08091EF019091F0012D +:10059000A091F101B091F2018730904BA740B04B90 +:1005A000B9F41092EF011092F0011092F101109243 +:1005B000F20114BE84B7877F84BF88E10FB6F89438 +:1005C00080936000109260000FBEE0E0FFE30995A9 +:1005D00011E0A0E0B1E0E6EDF6E402C005900D9276 +:1005E000A433B107D9F711E0A4E3B1E001C01D9233 +:1005F000AF3EB107E1F70E944D090C9469230C94BA +:10060000000061110BC0FC018281882321F085EE7E +:100610000E94BA0F03C085EE0E94821080E090E035 +:10062000089508956091B1017091B2018091B30174 +:100630009091B4010E94601A56985E9825982D9862 +:1006400026982E9827982F98823039F0833041F0E1 +:10065000813041F4259A2D9A0895269A2E9A08956C +:10066000279A2F9A08950C94120356985E9825980D +:100670002D9826982E9827982F988FEF90E090939A +:1006800089008093880090938B0080938A009093D8 +:100690008D0080938C00259A2D9A2FEF80E792E0B1 +:1006A000215080409040E1F700C00000269A2E9A29 +:1006B0002FEF80E792E0215080409040E1F700C0AA +:1006C0000000279A2F9A2FEF80E792E02150804078 +:1006D0009040E1F700C0000025982D982FEF80E7AB +:1006E00092E0215080409040E1F700C00000269841 +:1006F0002E982FEF80E792E0215080409040E1F764 +:1007000000C0000027982F9856985E9825982D983D +:1007100026982E9827982F98089589EA809380002C +:1007200089E08093810024982C983F988AB18F7437 +:100730008AB96E98479A8BB1806B8BB9769A0E9472 +:1007400035030C94110380E2809300018091340101 +:1007500081110EC00E94F20381E0809334012FEFDB +:1007600083ED90E3215080409040E1F700C000000D +:1007700080E40E94F8038093000181112EC00E9442 +:10078000220480930001811128C00E9422048093DA +:100790000001811122C08FE30E9422048093000196 +:1007A00081111BC00E941A0480E40E94F803809308 +:1007B0000001811112C08CE00E942204809300018C +:1007C00081110BC00E94220480930001811105C099 +:1007D0008FE30E942204809300010E941A048091FA +:1007E000000108951092B9008AE08093B80008953E +:1007F00094EA9093BC009091BC0097FFFCCF90913D +:10080000B900987F983021F0903111F081E008957F +:100810008093BB0084E88093BC008091BC0087FF7C +:10082000FCCF8091B900887F883111F0803471F756 +:1008300080E0089584E98093BC008091BC0084FD31 +:10084000FCCF08958093BB0084E88093BC00809126 +:10085000BC0087FFFCCF9091B900987F81E098326F +:1008600009F480E0089584E88093BC008091BC0086 +:1008700087FFFCCF8091BB0008958091000181111A +:1008800015C080E40E94F8038093000181110CC020 +:1008900082E10E94220480930001811105C08FEF44 +:1008A0000E942204809300010E941A0484B1807F78 +:1008B00084B985B1807F85B98AB1837F8AB98BB1CC +:1008C000837F8BB93E98469808950E94A303809336 +:1008D00000010E943D0480B38C7080BB81B3836FA4 +:1008E00081BBA6E3B1E0E4E4F1E08EE08E0F11926B +:1008F0001D928E13FCCF0C948D03BF92CF92DF928A +:10090000EF92FF920F931F93CF93DF93809100019B +:10091000882379F0809135018F5F809335018111B3 +:1009200008C00E94A30380930001811102C00E94AD +:10093000350306E311E0C0E0D0E0DD24D39482E08B +:10094000C82EEE24E394F12CC730D10500F5809138 +:100950000001811164C080E40E94F80380930001CB +:10096000811112C082E10E94220480930001811152 +:100970000BC0C7010C2E01C0880F0A94EAF78095BE +:100980000E942204809300010E941A0448C0CA30C9 +:10099000A1F028F4C83059F0C93061F005C0CC305E +:1009A00089F070F0CD3089F0209A289810C0219AF3 +:1009B00029980DC0229A2A980AC0239A2B9807C01A +:1009C000529A01C0539A5B9802C03E9A469890EAA8 +:1009D0009A95F1F79FB1799902C082E001C080E059 +:1009E00091709D25982B7C9902C084E001C080E025 +:1009F000892B7D9902C038E001C030E0832B7E99BD +:100A000002C020E101C020E0822B9FB19095991F88 +:100A10009927991F9295990F907E892B0FC08091ED +:100A20000001811149C080E40E94F8038093000115 +:100A3000882379F1B12C0E941A048B2DF801908142 +:100A4000981719F08083C09201010E943D042196FD +:100A50000F5F1F4FCE30D10509F076CF8091010195 +:100A6000882361F1815080930101882339F08FE957 +:100A70009FE00197F1F700C0000020C0A4E4B1E0BE +:100A8000E6E3F1E0CF01825F91919D938E13FCCF5D +:100A900015C083E10E942204809300018111CACF16 +:100AA00081E40E94F803809300018111C3CF0E946A +:100AB0003304B82EB094BFCF80E0C0CF0E94330380 +:100AC00081E0DF91CF911F910F91FF90EF90DF9028 +:100AD000CF90BF900895E82FF0E0EC5BFE4F80814F +:100AE000089508958B3B910578F4883A910540F577 +:100AF000853A9105D0F48430910508F0B1C0813079 +:100B0000910509F4ADC06BC0803E910508F467C043 +:100B1000883E910508F4A4C09C01205F3109203172 +:100B2000310508F05CC090650895853A910509F497 +:100B300059C0863A910509F058C082E890E40895BA +:100B4000883A910509F454C0893A910509F453C0D3 +:100B50008A3A910509F452C08B3A910509F451C0C3 +:100B60008C3A910509F450C08D3A910509F44FC0B3 +:100B7000803B910509F44EC08E3A910509F44DC0B1 +:100B80008F3A910509F44CC0813B910509F44BC0A3 +:100B9000823B910509F44AC0833B910509F449C0A1 +:100BA000843B910509F448C0853B910509F447C091 +:100BB000863B910509F446C0873B910509F445C081 +:100BC000883B910509F444C0893B910509F443C071 +:100BD0008A3B910509F442C080E094E4089580E0E6 +:100BE00090E0089581E890E4089583E890E4089502 +:100BF00082EE94E4089589EE94E408958AEE94E4F4 +:100C0000089585EB94E4089586EB94E4089587EBCA +:100C100094E408958CEC94E408958DEC94E40895A4 +:100C200083E895E408958AE895E4089582E995E4D7 +:100C3000089584E995E4089581E296E4089583E2B5 +:100C400096E4089584E296E4089585E296E4089592 +:100C500086E296E4089587E296E408958AE296E4AF +:100C60000895089596E0799FF001112494E5899FF5 +:100C7000E00DF11D1124E60FF11DEE0FFF1FE851ED +:100C8000FF4F859194910895880F991FFC01E05AB8 +:100C9000F040859194910895880F991FFC01E052CE +:100CA000FF4F85919491089526E0729FF0011124E1 +:100CB00044E5849FE00DF11D1124E60FF11DEE0FB8 +:100CC000FF1FE851FF4F859194919C013A952115A2 +:100CD0004FE1340708F41CC13F512115304120F485 +:100CE0009F700E944C0608959C013053211530419D +:100CF00018F49927906C0895811520E5920771F4F6 +:100D00000E9421144FEF84E39CE0415080409040CA +:100D1000E1F700C000000E94591BFAC0813020E5B5 +:100D2000920731F48091CD0181608093CD01F0C0B4 +:100D30009C0130552115304108F051C0292F33272F +:100D40002F70332721303105D9F4AC01437055277A +:100D500002C0220F331F4A95E2F73C68AC0164E001 +:100D6000440F551F6A95E1F744275370242B352B08 +:100D700073E0880F991F7A95E1F7807699271DC057 +:100D80002230310529F4982F8827816F906A0895C1 +:100D900023303105A9F4AC014370552721E030E040 +:100DA00002C0220F331F4A95E2F73C6843E0880FE8 +:100DB000991F4A95E1F7807E9770822B932B0895B7 +:100DC00024303105E1F4AC014370552721E030E0D7 +:100DD00002C0220F331F4A95E2F73A68E7CF9C0121 +:100DE00030572115304118F49F70906208959C018E +:100DF00030582115304118F49F70906A0895803E54 +:100E00009105E0F4803C910558F58133910509F492 +:100E10006FC048F48932910509F463C08A329105A4 +:100E200009F46DC072C089339105E9F082389105EB +:100E3000D1F08533910509F44DC067C0833E91051B +:100E400081F138F4803E9105B9F0823E9105D9F0E8 +:100E50005CC0863E910561F1873E9105A1F155C0C8 +:100E60000E94440608952091E00120FD02C021FF68 +:100E70004CC080EE90E049C08091E00180FFF9CF46 +:100E800089E390E042C08091E00182FF0EC0809132 +:100E9000E00184FF03C080E090E037C083EE90E083 +:100EA00034C08091E00182FFF2CF82EE90E02DC04D +:100EB0008091E00183FF0BC08091E00184FDEBCFC6 +:100EC00087EE90E022C08091E00183FFF5CF86EEAF +:100ED00090E01BC08091E00185FF07C089E290E0AF +:100EE00014C08091E00185FFF9CF85E390E00DC04B +:100EF0008091E00186FF07C08AE290E006C0809101 +:100F0000E00186FFF9CF81E390E00E947205089529 +:100F1000089508950C948907809162010895CF93F4 +:100F2000DF9300D01F92CDB7DEB79C018091E60120 +:100F3000843019F593E099833B832A839093E900E9 +:100F40008FEF9091E800815095FD06C095ED9A9540 +:100F5000F1F700008111F5CF8091E80085FF0DC009 +:100F600040E050E063E070E0CE0101960E94F90994 +:100F70008091E8008E778093E8000F900F900F909B +:100F8000DF91CF910895CF93DF9300D01F92CDB71B +:100F9000DEB72091E601243021F522E029839B83EE +:100FA0008A8383E08093E9008FEF9091E80081507D +:100FB00095FD06C095ED9A95F1F700008111F5CFEA +:100FC0008091E80085FF0DC040E050E063E070E0F4 +:100FD000CE0101960E94F9098091E8008E778093F6 +:100FE000E8000F900F900F90DF91CF91089520911E +:100FF000E6012430F1F422E02093E9002FEF309154 +:10100000E800215035FD06C035ED3A95F1F70000B6 +:101010002111F5CF2091E80025FF0BC040E050E002 +:1010200065E070E00E94F9098091E8008E77809376 +:10103000E8000895CF93DF93EC019091E60194309E +:1010400009F046C080910C018823D9F080910D01F0 +:101050008823B9F09093E9008FEF9091E8008150D8 +:1010600095FD06C095E19A95F1F700008111F5CF45 +:101070008091E80085FF2CC040E050E060E170E026 +:1010800017C081E08093E9008FEF9091E8008150D4 +:1010900095FD06C095ED9A95F1F700008111F5CF09 +:1010A0008091E80085FF14C040E050E068E070E007 +:1010B000CE010E94F9098091E8008E778093E800C4 +:1010C00080E1FE01A2E5B1E001900D928A95E1F781 +:1010D000DF91CF9108958091E501811109C00E94AF +:1010E0008E0B0E94EB0B8091E20084608093E20003 +:1010F00008951092E501089508950C9496210E9498 +:10110000EF1A0E949C210E94910E0C948A0742E0E3 +:1011100061EC81E00E94080B42E061EC82E00E94F9 +:10112000080B42E061EC83E00E94080B42E161ECB5 +:1011300084E00C94080B8091E801833009F455C0D9 +:1011400030F4813071F0823009F48EC008958A3015 +:1011500009F47AC08B3009F460C0893009F09CC072 +:1011600020C08091E701813A09F096C08091E800A3 +:10117000877F8093E8008091EB019091EC01892BAF +:1011800021F460E182E591E003C060E080E090E05E +:1011900070E00E94440A8091E8008B778093E80019 +:1011A00008958091E701813209F076C08091EB01CA +:1011B0009091EC01009719F0039709F06DC08091B0 +:1011C000E800877F8093E8008091E80082FD05C0F9 +:1011D0008091E6018111F8CF5FC08091F10080938A +:1011E00062018091E8008B7753C08091E701813ADA +:1011F00009F052C08091EB019091EC01892B09F02C +:101200004BC08091E800877F8093E8008091E800E0 +:1012100080FFFCCF80910C0136C08091E7018132C4 +:10122000D9F58091EB019091EC01892BA9F5809182 +:10123000E800877F8093E8000E943D0B8091E901E0 +:1012400080930C010C9421148091E701813221F5E7 +:101250008091E800877F8093E8000E943D0B809199 +:10126000EA018093630108958091E701813AA1F436 +:101270008091E800877F8093E8008091E80080FFFC +:10128000FCCF809163018093F1008091E8008E771C +:101290008093E8000C943D0B089584B7877F84BF4A +:1012A00088E10FB6F89480936000109260000FBE42 +:1012B00090E080E80FB6F89480936100909361000D +:1012C0000FBE0E94E00E0E948E0B0E94EB0B8091DD +:1012D000E20084608093E20078940E94710E0E9484 +:1012E000E20E82E091E00E948C0E0E9484218091A7 +:1012F000E601853069F40E94B01A8091E4018823E8 +:10130000B1F30E94DB1A882391F30E94E309EFCF27 +:101310000E94E80EECCF292F332723303105C9F086 +:1013200064F42130310581F02230310509F043C0E9 +:101330008DE690E02CEB33E042C021323105F1F034 +:101340002232310541F137C082E190E029E234E0F8 +:1013500036C099278130910541F08230910541F0E6 +:10136000892B49F5E8EBF3E005C0E0EAF3E002C0C1 +:10137000E8E8F3E0849190E09F0121C06430D8F464 +:10138000E62FF0E0EE0FFF1FEE5DFE4F2081318172 +:1013900089E090E014C0643070F470E0FB01EE0F5F +:1013A000FF1FE65EFE4F20813181FB01EA5EFE4FAA +:1013B000808190E004C080E090E020E030E0FA011D +:1013C00031832083089580E189BD82E189BD09B41C +:1013D00000FEFDCF8091D8008F7D8093D800809152 +:1013E000E00082608093E0008091E00081FDFCCF0E +:1013F0000895CF92DF92EF92FF920F931F93CF93B6 +:10140000DF93EC018B016A010E945C0B811133C0F8 +:10141000C114D10439F0F60180819181081B190BA8 +:10142000C80FD91FE12CF12C0115110519F180917C +:10143000E80085FD16C08091E8008E778093E80073 +:10144000C114D10449F0F60180819181E80EF91EA2 +:10145000F182E08285E00FC00E945C0B882321F3BB +:101460000AC089918093F10001501109FFEFEF1A32 +:10147000FF0ADACF80E0DF91CF911F910F91FF90AB +:10148000EF90DF90CF9008952091ED013091EE0123 +:101490002617370748F06115710539F42091E800E7 +:1014A0002E772093E80001C0B90140E06115710575 +:1014B000A9F12091E601222309F443C0253009F463 +:1014C00042C02091E80023FD40C02091E80022FDA9 +:1014D00032C02091E80020FFE9CF4091F300209135 +:1014E000F20030E0342BFC01CF016115710559F099 +:1014F0002830310540F481918093F10061507109E9 +:101500002F5F3F4FF1CF41E02830310509F040E037 +:101510002091E8002E772093E800C8CF4111C9CF71 +:101520000AC08091E601882361F0853061F08091E6 +:10153000E80083FD0AC08091E80082FFF2CF80E0DE +:10154000089582E0089583E0089581E00895209150 +:10155000ED013091EE012617370748F0611571054E +:1015600039F42091E8002E772093E80001C0B901FA +:10157000FC0120E06115710591F18091E60188235D +:1015800009F440C0853009F43FC08091E80083FD34 +:101590003DC08091E80082FD2FC08091E80080FF6F +:1015A000E9CF2091F3008091F20090E0922B611539 +:1015B000710559F08830910540F424912093F10091 +:1015C0003196615071090196F2CF21E0089709F038 +:1015D00020E08091E8008E778093E800CBCF211146 +:1015E000CCCF0AC08091E601882361F0853061F09C +:1015F0008091E80083FD0AC08091E80082FFF2CF6D +:1016000080E0089582E0089583E0089581E00895E0 +:10161000982F973058F59093E900981739F070910A +:10162000EC002091ED005091F00003C0242F762FA4 +:1016300050E021FF19C03091EB003E7F3093EB006A +:101640003091ED003D7F3093ED003091EB00316043 +:101650003093EB007093EC002093ED005093F0007A +:101660002091EE0027FF07C09F5FD3CF8F7080933C +:10167000E90081E0089580E008958091E70187FF07 +:1016800011C08091E80082FD05C08091E6018111C2 +:10169000F8CF11C08091E8008B770BC08091E601F4 +:1016A000882349F08091E80080FFF8CF8091E8001E +:1016B0008E778093E80008952091E4003091E50052 +:1016C00095E64091EC00842F817040FF22C080910C +:1016D000E80080FD1CC08091E601882391F08530F0 +:1016E00091F08091EB0085FD10C04091E400509195 +:1016F000E5004217530729F39A01915011F784E04E +:10170000089582E0089583E0089581E0089580E0DF +:1017100008954091E80042FFDECF08950E94FC0B3F +:101720000E94040CE0EEF0E0808181608083E8EDAF +:10173000F0E080818F77808319BCA7EDB0E08C91B9 +:101740008E7F8C9380818F7E80831092E501089537 +:101750000F931F93CF93DF930E94FC0B0E94040C06 +:10176000C8EDD0E088818F778883888180688883FE +:1017700088818F7D888319BC1092E6011092E20166 +:101780001092E4011092E30100EE10E0F801808174 +:101790008B7F808388818160888342E060E080E085 +:1017A0000E94080BE1EEF0E080818E7F8083E2EE04 +:1017B000F0E0808181608083808188608083F8018F +:1017C00080818E7F8083888180618883DF91CF9143 +:1017D0001F910F910895E8EDF0E080818F7E808366 +:1017E000E7EDF0E080818160808384E082BF81E06A +:1017F0008093E5010C94A80BE8EDF0E080818E7FEA +:1018000080831092E20008951092DA001092E100B5 +:1018100008951F920F920FB60F9211242F933F93AA +:101820004F935F936F937F938F939F93AF93BF93E8 +:10183000EF93FF938091E10082FF0BC08091E20063 +:1018400082FF07C08091E1008B7F8093E1000E94BE +:10185000700E8091DA0080FF1FC08091D80080FF59 +:101860001BC08091DA008E7F8093DA008091D900CE +:1018700080FF0DC080E189BD82E189BD09B400FE11 +:10188000FDCF81E08093E6010E946B0805C019BC82 +:101890001092E6010E9479088091E10080FF19C052 +:1018A0008091E20080FF15C08091E2008E7F8093DE +:1018B000E2008091E20080618093E2008091D80094 +:1018C00080628093D80019BC85E08093E6010E9475 +:1018D0007D088091E10084FF30C08091E20084FFA8 +:1018E0002CC080E189BD82E189BD09B400FEFDCF35 +:1018F0008091D8008F7D8093D8008091E1008F7E09 +:101900008093E1008091E2008F7E8093E2008091DD +:10191000E20081608093E2008091E201882311F06F +:1019200084E007C08091E30087FD02C081E001C030 +:1019300083E08093E6010E947F088091E10083FFAD +:1019400029C08091E20083FF25C08091E100877F5C +:101950008093E10082E08093E6011092E2018091A1 +:10196000E1008E7F8093E1008091E2008E7F809382 +:10197000E2008091E20080618093E20042E060E05A +:1019800080E00E94080B8091F00088608093F00056 +:101990000E947C08FF91EF91BF91AF919F918F9131 +:1019A0007F916F915F914F913F912F910F900FBE5B +:1019B0000F901F9018951F920F920FB60F9211243F +:1019C0002F933F934F935F936F937F938F939F9347 +:1019D000AF93BF93CF93DF93EF93FF93C091E90051 +:1019E000CF708091EC00D82FD17080FDD0E810929C +:1019F000E9008091F000877F8093F00078940E9446 +:101A00001F0D1092E9008091F00088608093F00033 +:101A1000CD2BCF70C093E900FF91EF91DF91CF9173 +:101A2000BF91AF919F918F917F916F915F914F91F6 +:101A30003F912F910F900FBE0F901F9018951F93FD +:101A4000CF93DF93CDB7DEB7AA970FB6F894DEBF7A +:101A50000FBECDBFE7EEF1E088E08E0F9091F10070 +:101A600091938E13FBCF0E949B088091E80083FF27 +:101A70001FC18091E7019091E801492F50E04A3061 +:101A8000510508F015C1FA01EA5AFF4F0C941E23C4 +:101A9000803881F0823809F00BC18091EB018F70A2 +:101AA0008093E9008091EB0085FB882780F91092F4 +:101AB000E90006C08091E3019091E40191118260F8 +:101AC0009091E800977F9093E8008093F100109246 +:101AD000F100C8C0282F2D7F09F0EAC0882319F033 +:101AE000823061F0E5C08091E901813009F0E0C009 +:101AF000933009F080E08093E4012BC08091E901EC +:101B0000811127C08091EB018F7009F4D1C08093BF +:101B1000E9002091EB0020FF1CC0933021F480915C +:101B2000EB00806214C09091EB0090619093EB0009 +:101B300021E030E0A90102C0440F551F8A95E2F769 +:101B40004093EA001092EA008091EB008860809355 +:101B5000EB001092E9008091E800877F86C0811138 +:101B6000A7C01091E9011F778091E3008078812B55 +:101B70008093E3008091E800877F8093E8000E94D3 +:101B80003D0B8091E80080FFFCCF8091E3008068EE +:101B90008093E300111102C082E001C083E08093D2 +:101BA000E60186C08058823008F082C08091E90149 +:101BB0009091EA018C3D53E0950779F583E08A83A3 +:101BC0008AE289834FB7F894DE01139620E03EE065 +:101BD00051E2E32FF0E050935700E49120FF03C05F +:101BE000E295EF703F5FEF708E2F90E0EA3010F0DB +:101BF000C79601C0C0968D939D932F5F243149F7FE +:101C00004FBF8091E800877F8093E8006AE270E030 +:101C1000CE0101960E94440A14C0AE014F5F5F4F8F +:101C20006091EB010E948B09BC01892B09F440C033 +:101C30009091E800977F9093E80089819A810E94B3 +:101C4000A70A8091E8008B778093E80031C0803844 +:101C500079F58091E800877F8093E8008091E20128 +:101C60008093F1008091E8008E778093E8000E94D5 +:101C70003D0B1EC081111CC09091E9019230C0F44F +:101C80008091E800877F8093E8009093E2010E94B2 +:101C90003D0B8091E201811106C08091E30087FD38 +:101CA00002C081E001C084E08093E6010E948708C1 +:101CB0008091E80083FF0AC08091E800877F8093CD +:101CC000E8008091EB0080628093EB00AA960FB64B +:101CD000F894DEBF0FBECDBFDF91CF911F91089565 +:101CE0000895CF938091E6018823A1F0C091E90087 +:101CF000CF709091EC00892F817090FD80E8C82B07 +:101D00001092E9008091E80083FD0E941F0DCF70C2 +:101D1000C093E900CF910895909369018093680181 +:101D20000895E0916801F0916901309721F00190E8 +:101D3000F081E02D099480E00895E0916801F09130 +:101D40006901309721F00280F381E02D0994089514 +:101D5000E0916801F0916901309721F00480F581EC +:101D6000E02D099408952091660130916701821752 +:101D7000930771F09093670180936601E091680189 +:101D8000F0916901309721F00680F781E02D0994E8 +:101D9000089520916401309165018217930771F0D5 +:101DA0009093650180936401E0916801F09169016D +:101DB000309721F00084F185E02D0994089508956D +:101DC0000C94DF0E0E94F51A0E9465040C94BB1B54 +:101DD000CF92DF92EF92FF920F931F93CF93DF93F7 +:101DE000CDB7DEB72B970FB6F894DEBF0FBECDBFD1 +:101DF0000E947D048BE6C82E81E0D82E00E010E022 +:101E0000E02E802F0E946B05F60141916F01F42EA8 +:101E1000F826B1F40F5F1F4F0E30110589F78FEFD1 +:101E200089838A831B820E94FE1A8160782F9D839A +:101E30008C8349815A816B818D810E948B0F40C0B8 +:101E40009091CD0191FF04C08B870E9471058B8515 +:101E500020E030E04F2D50E0922FBA01022E02C058 +:101E6000759567950A94E2F760FF24C02E83EF8290 +:101E700021E030E0690102C0CC0CDD1C9A95E2F74C +:101E800090E08C219D21892B09F420E028870E9475 +:101E9000FE1A8160782F9A8789874E815F816885D5 +:101EA0008A850E948B0FF801E559FE4F8081C82674 +:101EB000C08206C02F5F3F4F2630310569F6AACF9A +:101EC0000E94A21E10916A010E94910E1817A1F0A3 +:101ED0000E94910E80936A012B960FB6F894DEBF94 +:101EE0000FBECDBFDF91CF911F910F91FF90EF906B +:101EF000DF90CF900C948A072B960FB6F894DEBF34 +:101F00000FBECDBFDF91CF911F910F91FF90EF904A +:101F1000DF90CF900895CF93DF93CDB7DEB72B97A7 +:101F20000FB6F894DEBF0FBECDBF4F8358876987C9 +:101F30007A878B87DE01119686E0FD0111928A95E2 +:101F4000E9F785E0FE01379601900D928A95E1F759 +:101F500049815A816B817C818D819E810E94BB1653 +:101F60002B960FB6F894DEBF0FBECDBFDF91CF9199 +:101F700008950895CF93882309F4C2C0C82F8238EA +:101F800059F40E94910E81FDBBC089E30E9464193F +:101F90000E94311A89E30CC0833879F40E94910EB3 +:101FA00080FDAEC083E50E9464190E94311A83E56A +:101FB0000E94A619CF910C94311A843859F40E94CA +:101FC000910E82FD9DC087E40E9464190E94311A1F +:101FD00087E4EECF8CEF8C0F813A48F48C2F0E946F +:101FE000E92081118DC08C2F0E946419E3CF80E21B +:101FF0008C0F883048F4C77081E001C0880FCA9503 +:10200000EAF70E94EA19D6CF8BE58C0F833078F47B +:10201000C53A29F0C63A31F083E890E005C081E87E +:1020200090E002C082E890E0CF910C94B30E88E576 +:102030008C0F833108F064C0C83A39F1C93A41F1D4 +:10204000CA3A49F1CB3A51F1CC3A59F1CD3A61F162 +:10205000C03B69F1CE3A71F1CF3A79F1C13B81F1E0 +:10206000C23B89F1C33B91F1C43B99F1C53BA1F15E +:10207000C63BA9F1C73BB1F1C83BB9F1C93BC1F1BE +:10208000CA3BC9F180E090E038C082EE90E035C0F4 +:1020900089EE90E032C08AEE90E02FC085EB90E0B0 +:1020A0002CC086EB90E029C087EB90E026C08CEC3A +:1020B00090E023C08DEC90E020C083E891E01DC04B +:1020C0008AE891E01AC082E991E017C084E991E0C2 +:1020D00014C081E292E011C083E292E00EC084E27B +:1020E00092E00BC085E292E008C086E292E005C073 +:1020F00087E292E002C08AE292E0CF910C94C90E8E +:10210000CF910895882309F44BC0823859F40E9476 +:10211000910E81FF45C089E30E9464190E94311A23 +:1021200089E30CC0833871F40E94910E80FF38C09F +:1021300083E50E9464190E94311A83E50E94A61962 +:102140000C94311A843859F40E94910E82FF28C0F1 +:1021500087E40E9464190E94311A87E4EFCF9CEF54 +:10216000980F913A58F390E2980F983050F4877096 +:1021700091E001C0990F8A95EAF7892F0E94F01922 +:10218000DFCF9BE5980F933020F480E090E00C9433 +:10219000B30E885A833120F480E090E00C94C90E8D +:1021A0000895882321F00E94EA190C94311A0895A9 +:1021B000882321F00E94F0190C94311A0895BF92DF +:1021C000CF92DF92EF92FF920F931F93CF93DF9303 +:1021D00000D000D000D0CDB7DEB725E0FC01DE0195 +:1021E000119601900D922A95E1F7FC01D0801181A2 +:1021F0000281258122952F7043815481452B09F45A +:10220000FCC21F3F21F4FFEFDF1609F4F6C27C0188 +:102210002E830E94B90FD9821A8369817A81802F17 +:102220000E946019182FB92E0E9415190E94DC1700 +:102230002E81002319F00E94071A2E81EB2DE295C2 +:10224000EF70F0E0E05AFF4F0C941E238B2D807F3F +:102250009B2D9F70F92E882319F0F29480EFF822BD +:10226000002389F0FF2009F475C280E2810F8830D5 +:1022700020F48F2D0E94EA1903C08F2D0E94FA19B5 +:102280000E94311A67C2812F0E948210FF2009F438 +:10229000B4C2105E8F2D183018F40E94F01902C0DD +:1022A0000E94001A26960FB6F894DEBF0FBECDBF6F +:1022B000DF91CF911F910F91FF90EF90DF90CF9022 +:1022C000BF900C94311A3B2D307F8B2D8F703032A4 +:1022D00011F08295807F112319F0113021F12CC06B +:1022E0000023B9F0222309F4A0C1213009F09DC1D7 +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:102310001A1A222319F0213009F46FC28E830E9409 +:102320001D1A8E8196C1002321F0223008F065C26B +:102330007CC1211162C28DC1002321F0222309F446 +:1023400074C108C2222309F484C119C22B2D269519 +:102350002695237030E02115310521F0213031051B +:10236000D1F04BC2002321F0812F9B2D937002C02E +:1023700080E090E026960FB6F894DEBF0FBECDBF8A +:10238000DF91CF911F910F91FF90EF90DF90CF9051 +:10239000BF900C94B30E002321F0812F9B2D9370DE +:1023A00002C080E090E026960FB6F894DEBF0FBE24 +:1023B000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1023C000CF90BF900C94C90E812F002319F00E946A +:1023D000AA1D02C00E94121E26960FB6F894DEBFF8 +:1023E0000FBECDBFDF91CF911F910F91FF90EF9066 +:1023F000DF90CF90BF900C94971E8B2D837009F0C7 +:102400007BC00111FAC1812F829586958770880F54 +:10241000880F912F9F70C92ED12CE12CF12C082E02 +:1024200004C0CC0CDD1CEE1CFF1C0A94D2F714FF78 +:1024300012C04FE050E060E070E004C0440F551F50 +:10244000661F771F8A95D2F7CB01BA016095709508 +:102450008095909503C060E070E0CB012B2D269510 +:1024600026952370422F50E042305105D9F0433079 +:10247000510569F16C297D298E299F29413051052B +:1024800051F126960FB6F894DEBF0FBECDBFDF9197 +:10249000CF911F910F91FF90EF90DF90CF90BF9061 +:1024A0000C9403186C297D298E299F2926960FB636 +:1024B000F894DEBF0FBECDBFDF91CF911F910F917A +:1024C000FF90EF90DF90CF90BF900C941F180E9468 +:1024D0000318C701B60126960FB6F894DEBF0FBEEB +:1024E000CDBFDF91CF911F910F91FF90EF90DF90C3 +:1024F000CF90BF900C94E717002319F08B2D8170BB +:1025000001C08695882309F478C1812F829586952C +:102510008770880F880F912F9F70C92ED12CE12CC6 +:10252000F12C082E04C0CC0CDD1CEE1CFF1C0A9400 +:10253000D2F714FF12C04FE050E060E070E004C03A +:10254000440F551F661F771F8A95D2F7CB01BA013A +:10255000609570958095909503C060E070E0CB0128 +:102560002B2D269526952370422F50E042305105A1 +:10257000D9F04330510569F16C297D298E299F29B5 +:102580004130510551F126960FB6F894DEBF0FBECB +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C94DD186C297D298E299F292E +:1025B00026960FB6F894DEBF0FBECDBFDF91CF9148 +:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 +:1025D000F9180E94DD18C701B60126960FB6F894C7 +:1025E000DEBF0FBECDBFDF91CF911F910F91FF9046 +:1025F000EF90DF90CF90BF900C94C118103FD1F1B5 +:1026000018F4103E50F4A1C0123F09F463C008F45E +:102610004CC0133F09F473C098C01F708B2D8F718D +:102620000023A1F00E945A18812F26960FB6F89425 +:10263000DEBF0FBECDBFDF91CF911F910F91FF90F5 +:10264000EF90DF90CF90BF900C94D1100E947B1838 +:10265000812F26960FB6F894DEBF0FBECDBFDF9157 +:10266000CF911F910F91FF90EF90DF90CF90BF908F +:102670000C94D8100023A9F02111BFC08B2D8F71AD +:1026800026960FB6F894DEBF0FBECDBFDF91CF9177 +:102690001F910F91FF90EF90DF90CF90BF900C941F +:1026A000A018223008F0A9C0E9CF0023A9F08B2D93 +:1026B0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1026C000CF911F910F91FF90EF90DF90CF90BF902F +:1026D0000C945A18002359F38B2D8F7126960FB640 +:1026E000F894DEBF0FBECDBFDF91CF911F910F9148 +:1026F000FF90EF90DF90CF90BF900C947B18002359 +:1027000099F08B2D8F7126960FB6F894DEBF0FBE11 +:10271000CDBFDF91CF911F910F91FF90EF90DF9090 +:10272000CF90BF900C94451826960FB6F894DEBF54 +:102730000FBECDBFDF91CF911F910F91FF90EF9012 +:10274000DF90CF90BF900C943B180023A9F0222378 +:1027500009F4ADCF812F26960FB6F894DEBF0FBED9 +:10276000CDBFDF91CF911F910F91FF90EF90DF9040 +:10277000CF90BF900C94BA0F222309F4ADCF812FD4 +:1027800026960FB6F894DEBF0FBECDBFDF91CF9176 +:102790001F910F91FF90EF90DF90CF90BF900C941E +:1027A00082104B2D4F70612FC7010E9401032696A6 +:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152 +:1027C0000F91FF90EF90DF90CF90BF900C945F1728 +:1027D0004B2D4F70612FC70126960FB6F894DEBFC0 +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C94310626960FB6F894D8 +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF90BF9008950E94071A0E941A +:10282000171A0E94DC190E94311A0E94481F0E9448 +:10283000971E80E090E00E94B30E80E090E00C9440 +:10284000C90E0E94F7190C940D140E945519292FD6 +:1028500022952F7030E02C3031054CF42A303105B0 +:102860006CF4225031092230310588F407C02C3035 +:10287000310549F02F30310531F009C0803E48F074 +:10288000803F29F406C093FB882780F9089580E0F3 +:10289000089581E00895CF93DF9300D000D01F9278 +:1028A000CDB7DEB70F900F900F900F900F90DF9184 +:1028B000CF910895CF93DF9300D000D000D0CDB753 +:1028C000DEB726960FB6F894DEBF0FBECDBFDF9100 +:1028D000CF9108951F93CF93DF93C091790116E0B4 +:1028E00080917A01C81799F0D0E01C9FF0011D9FDC +:1028F000F00D1124E558FE4F4081518162817381B2 +:10290000848195810E945A142196C770E9CFDF9186 +:10291000CF911F9108954091AB015091AC0160910E +:10292000AD017091AE018091AF019091B0010C9416 +:102930005A148091B00182958F7009F054C0809133 +:10294000AD01882309F44FC080917901A0917A01EB +:102950006091AB017091AC014091AE015091AF011B +:10296000B6E08A1709F43FC090E041155105C1F166 +:102970007F3F11F46F3FA1F1B89FF001B99FF00DB7 +:102980001124E558FE4F218172132AC02081621361 +:1029900027C02281211124C02381348124173507C7 +:1029A00010F421503109241B350B283C3105C0F4AB +:1029B0002091B0012F7020612093B00126E0289F64 +:1029C000F001299FF00D1124E058FE4F80818F7097 +:1029D000806180838BEA91E00E94DF100C946A147E +:1029E00001968770BECF0895CF92DF92EF92FF924B +:1029F0000F931F93CF93DF93CDB7DEB762970FB6D8 +:102A0000F894DEBF0FBECDBF8C0185E0F801DE017A +:102A10001D9601900D928A95E1F7D8014C9111967F +:102A20005C91119712966C9112971396CD90DC9051 +:102A300014973091AB017091AC018091AE019091EF +:102A4000AF01009709F46BC17F3F19F43F3F09F4D0 +:102A500066C1E090AD01EE2009F4C0C02091B00144 +:102A6000C816D90628F0F601E81BF90BCF0104C0FF +:102A7000809590958C0D9D1DFF24F394883C9105C5 +:102A800078F0F12C207F09F0C6C07C2DD98AC88A45 +:102A900089890E944B148BEA91E00E94DF10B1C03B +:102AA000822F807F09F046C0751314C0341312C002 +:102AB000611110C02F7020612093B0010E948B140F +:102AC0008BEA91E00E94DF108091B001D801159649 +:102AD0008C932EC0CD2819F15F3F11F44F3FF9F0D0 +:102AE000F62E61111CC08091790120917A0136E0A7 +:102AF000821709F45AC090E0389FF001399FF00D19 +:102B00001124E558FE4F7181571306C07081471399 +:102B100003C07281711103C001968770E9CFF62E50 +:102B2000662309F418C18091B00181608093B001DF +:102B3000F12C11C1751308C0341306C0611104C013 +:102B40008091B001D801C3C04D875E878D859E8579 +:102B50006A8B0E9425146A898823E1F16623D1F1EA +:102B60002091B001822F82958F7090E0029774F0CF +:102B70008091AB019091AC0198878F831986DB8699 +:102B8000CA862C87CE0107960E94DF1086E0F801E6 +:102B9000ABEAB1E001900D928A95E1F70E94991499 +:102BA0000E948B14FF24F394D6C04D875E878D85D9 +:102BB0009E850E945519292F22952F7030E02230D2 +:102BC00031050CF0BCC09F7009F0B6C0805E883043 +:102BD00008F4C1C0C8010E94DF10E4CFC816D906AE +:102BE00008F453C0F601E81BF90BCF01883C9105AE +:102BF00008F450C0F12C7C2DD98AC88A89890E949A +:102C00004B14EBEAF1E086E0DF011D928A95E9F7CB +:102C10000E948B14A0C0751314C0341312C061112C +:102C200010C08091B001F8018583C8010E94DF10B7 +:102C300086E0EBEAF1E0DF011D928A95E9F7FE2CD0 +:102C40008AC04D875E878D859E856A8B0E9425147C +:102C50006A89882309F4BECF662309F4BBCF20918B +:102C6000B001822F82958F7090E002970CF48ECF86 +:102C70008091AB019091AC019A8389831B82DD82A4 +:102C8000CC822E83CE0101967FCF809590958C0DBE +:102C90009D1DACCFF62E662309F49CCF75132EC074 +:102CA00034132CC02091B00120FD1FC0822F8295CB +:102CB0008F70D9F0D80115962C9315978F3049F065 +:102CC0008F5F982F9295907F822F8F70892B15960A +:102CD0008C93C8010E94DF1086E0F801ABEAB1E0F6 +:102CE00001900D928A95E1F793CF86E0F801ABEA67 +:102CF000B1E001900D928A95E1F72DC04D875E8776 +:102D00008D859E850E942514811140CF8091B00150 +:102D100081608093B001C8010E94DF101CC066234F +:102D200009F458CF4D875E878D859E850E942514B6 +:102D3000882309F44FCF2ACF811148CF0CC024300B +:102D400031050CF047CF9F7009F440CFF801958111 +:102D5000907F09F03BCF8F2D62960FB6F894DEBFBF +:102D60000FBECDBFDF91CF911F910F91FF90EF90DC +:102D7000DF90CF9008951F93CF93DF93CDB7DEB749 +:102D80002C970FB6F894DEBF0FBECDBF4F83588788 +:102D900069877A878B879C87CE0107960E94F414F7 +:102DA000882369F08F8198852A853B85232BF1F153 +:102DB0009F3F09F063C08F3F09F060C037C086E0D5 +:102DC000FE013796DE01119601900D928A95E1F78A +:102DD0006F817885EA85FB85309741F17F3F11F45B +:102DE0006F3F21F120917A0130E0C901019687708F +:102DF00099274091790150E08417950709F447C05D +:102E000069837A83FD83EC8396E0929FD001939F40 +:102E1000B00D1124A558BE4FFE01319601900D92C0 +:102E20009A95E1F780937A010E946A1416E08091E6 +:102E3000790190917A018917C1F1189FC00111247D +:102E400085589E4F0E94F414882379F1E09179010E +:102E50001E9FF0011124E558FE4F4081518162818F +:102E60007381848195810E945A148091790190E048 +:102E700001968770992780937901D9CF4F81588522 +:102E800069857A858B859C850E945A14CFCF0E94D4 +:102E9000211410927A0110927901EBEAF1E086E0B8 +:102EA000DF011D928A95E9F7C1CF2C960FB6F894F1 +:102EB000DEBF0FBECDBFDF91CF911F910895EF927E +:102EC000FF920F931F93CF93DF938C01892B09F40B +:102ED0006CC0F12CEE24E394E8012196F801849172 +:102EE000843740F4843008F051C0813081F0823062 +:102EF00019F15BC0853709F444C0A8F19CE7980F2D +:102F0000903708F052C08F770E94821041C00E5F48 +:102F10001F4FFE01C49180E28C0F883048F4C770C7 +:102F20008E2D01C0880FCA95EAF70E940A1A14C0B4 +:102F30008C2F0E94BA0F2DC00E5F1F4FFE01C4914F +:102F400080E28C0F883058F4C7708E2D01C0880F36 +:102F5000CA95EAF70E94101A0E94311A1AC08C2FE3 +:102F60000E94821016C00E5F1F4FFE01C491CC2339 +:102F700081F08FE99FE00197F1F700C00000C15098 +:102F8000F6CF0E5F1F4FFE01F49003C00E94BA0FF0 +:102F90008E018F2D882309F49FCFEFE9FFE0319751 +:102FA000F1F700C000008150F5CFDF91CF911F9164 +:102FB0000F91FF90EF90089508956093B50170937D +:102FC000B6018093B7019093B8010C940D140F9340 +:102FD0001F930091B5011091B6012091B701309176 +:102FE000B801DC01CB01802B912BA22BB32B80935A +:102FF000B5019093B601A093B701B093B8011F91AA +:103000000F910C940D140F931F930091B501109123 +:10301000B6012091B7013091B801DC01CB018023CA +:103020009123A223B3238093B5019093B601A0937B +:10303000B701B093B8011F910F910C940D140F9329 +:103040001F930091B5011091B6012091B701309105 +:10305000B801DC01CB0180279127A227B3278093F9 +:10306000B5019093B601A093B701B093B8011F9139 +:103070000F910C940D141092B1011092B2011092A4 +:10308000B3011092B4010C940D1441E050E060E0E3 +:1030900070E004C0440F551F661F771F8A95D2F752 +:1030A0004093B1015093B2016093B3017093B401A6 +:1030B0000C940D1441E050E060E070E004C0440F57 +:1030C000551F661F771F8A95D2F78091B1019091A5 +:1030D000B201A091B301B091B401482B592B6A2BD6 +:1030E0007B2B4093B1015093B2016093B301709375 +:1030F000B4010C940D1441E050E060E070E004C0B5 +:10310000440F551F661F771F8A95D2F7409550953B +:10311000609570958091B1019091B201A091B30139 +:10312000B091B401482359236A237B234093B10112 +:103130005093B2016093B3017093B4010C940D14D9 +:1031400041E050E060E070E004C0440F551F661F8E +:10315000771F8A95D2F78091B1019091B201A09129 +:10316000B301B091B401482759276A277B274093C0 +:10317000B1015093B2016093B3017093B4010C9408 +:103180000D140F931F930091B1011091B201209182 +:10319000B3013091B401DC01CB01802B912BA22B28 +:1031A000B32B8093B1019093B201A093B301B0937C +:1031B000B4011F910F910C940D140F931F93009164 +:1031C000B1011091B2012091B3013091B401DC0141 +:1031D000CB0180239123A223B3238093B101909349 +:1031E000B201A093B301B093B4011F910F910C945D +:1031F0000D140F931F930091B1011091B201209112 +:10320000B3013091B401DC01CB0180279127A227C3 +:10321000B3278093B1019093B201A093B301B0930F +:10322000B4011F910F910C940D140895CF92DF9269 +:10323000EF92FF920F931F93CF93DF938C01C09077 +:10324000B501D090B601E090B701F090B80180913F +:10325000B1019091B201A091B301B091B401C82A1B +:10326000D92AEA2AFB2ACFE1D0E0D701C6010C2EE9 +:1032700004C0B695A795979587950A94D2F780FFD5 +:1032800006C0B8018C2F0E945406019721F42197A3 +:1032900060F780E001C08C2FDF91CF911F910F91DB +:1032A000FF90EF90DF90CF900895CF93DF93EC01E4 +:1032B0000E941619BE010E945406DF91CF91089515 +:1032C000CB010E945519089590910C01992321F08A +:1032D00090910D01911109C020910E0130910F01C3 +:1032E000F90132969FEF40E01FC0982F9695969572 +:1032F00096959F3050F5E0910E01F0910F01E90F86 +:10330000F11D877021E030E0A90102C0440F551F74 +:103310008A95E2F7CA019181892B818308959F3FA5 +:1033200039F04F5F4E3041F051915813F8CF0DC036 +:103330005111F7CF942FF5CF9F3F39F0F901E90FE5 +:10334000F11D97FDFA9582830895089590910C01DF +:10335000992321F090910D01911109C020910E0146 +:1033600030910F01F9013296205F3F4F1FC0982F17 +:103370009695969596959F30F0F4E0910E01F09118 +:103380000F01E90FF11D877021E030E0A90102C0B3 +:10339000440F551F8A95E2F7CA01809591818923D0 +:1033A000818308953196E217F30729F090819813ED +:1033B000F9CF1082F7CF089581E090E0E0910E01FF +:1033C000F0910F01E80FF91F1082019680319105ED +:1033D000A9F708959091CC01892B8093CC01089591 +:1033E00080959091CC0189238093CC01089510920F +:1033F000CC0108959091CB01892B8093CB01089546 +:1034000080959091CB0189238093CB0108951092F0 +:10341000CB0108959091CA01892B8093CA01089528 +:1034200080959091CA0189238093CA0108951092D2 +:10343000CA0108958093B90108951092B9010895C1 +:1034400080910E0190910F01FC0131969C01205F4B +:103450003F4F80E0919191118F5FE217F307D1F711 +:103460000895E0910E01F0910F018091CC018083CD +:10347000E0910E01F0910F0190818091CB01892B99 +:103480008083E0910E01F0910F0190818091CA013B +:10349000892B80838091B901882361F0E0910E012E +:1034A000F0910F019081892B80830E94201A811155 +:1034B0001092B90180910E0190910F010C949D0E14 +:1034C000CF92DF92EF92FF926C01EE24FF24C114A1 +:1034D000D104E104F10421F0C701B60120E101C0EB +:1034E00020E0C72ED82EE92EFF24C114D104E10418 +:1034F000F10419F0285FC701B6016B017C0154E0AB +:10350000F694E794D794C7945A95D1F7C114D1048F +:10351000E104F10419F02C5FC701B6016B017C01D5 +:1035200042E0F694E794D794C7944A95D1F7C11432 +:10353000D104E104F10419F02E5FC701B601DC01EA +:10354000CB01B695A79597958795892B8A2B8B2BC1 +:1035500009F02F5F822FFF90EF90DF90CF900895BA +:103560008091E601843021F11092CE0120E488E1BF +:1035700090E00FB6F894A895809360000FBE20935A +:10358000600080E00E948A0783B7817F846083BFE8 +:1035900083B7816083BF7894889583B78E7F83BF1C +:1035A00088E10FB6F89480936000109260000FBE1F +:1035B000089508950895CF930E94D91A0E947D041A +:1035C0000E94DA1AC0E08C2F0E946B05811104C0A2 +:1035D000CF5FCE30C1F701C081E0CF9108950E9446 +:1035E00021140E94910E0C948A0782E084BD93E01E +:1035F00095BD9AEF97BD80936E0008952FB7F8940C +:103600008091CF019091D001A091D101B091D201D0 +:103610002FBF0895CF92DF92EF92FF920F931F93E7 +:103620002FB7F8944091CF015091D0016091D10112 +:103630007091D2012FBF6A017B01EE24FF248C011F +:1036400020E030E0C016D106E206F30610F4415047 +:1036500051099A01281B390BC9011F910F91FF9045 +:10366000EF90DF90CF9008951F920F920FB60F92B8 +:1036700011248F939F93AF93BF938091CF0190912B +:10368000D001A091D101B091D2010196A11DB11D2F +:103690008093CF019093D001A093D101B093D20138 +:1036A000BF91AF919F918F910F900FBE0F901F9080 +:1036B00018950E948E0BF8942FEF87EA91E621501F +:1036C00080409040E1F700C0000087E090EBDC0113 +:1036D0008093EF019093F001A093F101B093F20178 +:1036E0009CE088E10FB6F894A895809360000FBE27 +:1036F00090936000FFCFEF92FF920F931F93CF93B1 +:10370000DF93D82FC0E08C2F0E946B0500E010E003 +:10371000E82EF12CC701002E02C0959587950A94DA +:10372000E2F780FD06C00F5F1F4F0630110591F7CD +:1037300009C0602F7C2F80E00E943206D813F3CF9F +:1037400081E004C0CF5FCE30F1F680E0DF91CF9111 +:103750001F910F91FF90EF900895CF93C82F8CE2A7 +:103760000E947B1B882321F08C2FCF910C947B1B14 +:1037700080E0CF910895CF930E94021D811102C075 +:103780000E94E81CC5E6C15049F00E947D048FE309 +:103790009CE90197F1F700C00000F5CF89E20E9493 +:1037A000AD1B811113C18AE20E94AD1B81110E94E1 +:1037B000E81C85E00E94AD1B81110E94591B0E94EC +:1037C0000D1D8093CD0187E00E94AD1B8823A9F1D8 +:1037D0008BE10E94AD1B882351F08091CD0181FBCC +:1037E000222720F991E0922790FB81F90EC08EE00C +:1037F0000E94AD1B882361F08091CD0182FB2227BE +:1038000020F991E0922790FB82F98093CD0115C0B9 +:1038100080E10E94AD1B9091CD01882341F093FB84 +:10382000222720F981E0822780FB93F904C0892FA9 +:10383000809580FB90F99093CD018091CD010E94FD +:10384000111D0E941F1D8093E00180EE0E94AD1BA0 +:10385000882341F08091E001982F909590FB80F9AA +:103860008093E00189E30E94AD1B882359F0809189 +:10387000E00181FB222720F991E0922790FB81F95A +:103880008093E00182EE0E94AD1B882359F0809165 +:10389000E00182FB222720F991E0922790FB82F938 +:1038A0008093E00186EE0E94AD1B882359F0809141 +:1038B000E00183FB222720F991E0922790FB83F916 +:1038C0008093E00183EE0E94AD1B882359F0809124 +:1038D000E00184FB222720F991E0922790FB84F9F4 +:1038E0008093E00185E30E94AD1B882359F080910D +:1038F000E00185FB222720F991E0922790FB85F9D2 +:103900008093E00181E30E94AD1B882359F08091F0 +:10391000E00186FB222720F991E0922790FB86F9AF +:103920008093E00181E10E94AD1B882359F08091D2 +:10393000E00187FB222720F991E0922790FB87F98D +:103940008093E0018091E0010E94231D8091E001BD +:1039500087FB882780F980930D0187E20E94AD1BC9 +:10396000C82F8EE10E94AD1B8111C2608FE10E94C1 +:10397000AD1B8111C46080E20E94AD1B8111C86043 +:1039800081E20E94AD1B8111C06182E20E94AD1BE9 +:103990008111C06283E20E94AD1B8111C06484E288 +:1039A0000E94AD1B882311F0C06802C0CC2329F00F +:1039B0008C2F0E941A1D6C2F03C00E94161D682FA9 +:1039C00070E080E090E0CF910C94DD17CF910895E6 +:1039D0006DEE7EEF80E090E00E94542360E082E094 +:1039E00090E00E94462360E083E090E00E9446233E +:1039F00060E084E090E00E94462360E085E090E093 +:103A00000C94462380E090E00E94402321E08D3E0C +:103A10009E4F09F020E0822F089582E090E00C9400 +:103A20003823682F82E090E00C94462383E090E0F6 +:103A30000C943823682F83E090E00C94462384E0B4 +:103A400090E00C943823682F84E090E00C94462397 +:103A50008091D50180FF0BC06091130185E0689FC4 +:103A6000B001112475956795759567952BC081FFF9 +:103A700009C06091130185E0689FB001112475951C +:103A8000679520C082FF07C06091130185E0689FA1 +:103A9000B001112417C09091D6019923D1F0609103 +:103AA0001201961788F72091130185E0289F900155 +:103AB0001124929FA001939F500D112470E0CA0120 +:103AC0000E940A236038710540F46115710539F0D0 +:103AD00002C065E070E0862F08958FE7089581E0C9 +:103AE00008958091D50180FF08C06091110170E0B8 +:103AF000759567957595679521C081FF06C06091A2 +:103B0000110170E07595679519C082FF04C060913E +:103B1000110170E010C09091D6019923C1F060911D +:103B200010019617A0F780911101899FC0011124FF +:103B300070E00E940A236038710528F46115710550 +:103B400021F0862F08958FE7089581E0089561E0C0 +:103B500070E0F4CF803F21F40E94281D819504C0BD +:103B6000813F29F40E94281D8093D9010895823F46 +:103B700021F40E94281D819504C0833F29F40E94EE +:103B8000281D8093D8010895893F19F40E94711D62 +:103B900005C08A3F31F40E94711D81958093DA013E +:103BA00008958B3F21F40E94711D819504C08C3FC4 +:103BB00029F40E94711D8093DB010895843F21F454 +:103BC0008091D701816017C0853F21F48091D70192 +:103BD000826011C0863F21F48091D70184600BC0C0 +:103BE000873F21F48091D701886005C0883F31F478 +:103BF0008091D70180618093D70108958D3F21F492 +:103C00008091D50181600BC08E3F21F48091D50158 +:103C1000826005C08F3F29F48091D5018460809334 +:103C2000D5010895803F39F48091D90187FF6CC098 +:103C30001092D90169C0813F29F48091D9011816E9 +:103C4000BCF362C09091D801823F29F497FF5CC019 +:103C50001092D80159C0833F19F41916CCF354C0FF +:103C6000893F41F48091DA0118160CF04DC0109292 +:103C7000DA014AC08A3F29F48091DA0187FF44C003 +:103C8000F6CF8B3F39F48091DB0187FF3DC0109266 +:103C9000DB013AC08C3F29F48091DB011816BCF39C +:103CA00033C0843F21F48091D7018E7F17C0853FB8 +:103CB00021F48091D7018D7F11C0863F21F480913E +:103CC000D7018B7F0BC0873F21F48091D701877F7D +:103CD00005C0883F31F48091D7018F7E8093D70152 +:103CE00013C08D3F21F48091D5018E7F0BC08E3F94 +:103CF00021F48091D5018D7F05C08F3F29F48091FB +:103D0000D5018B7F8093D5018091D80181110EC0A0 +:103D10008091D90181110AC08091DA01811106C018 +:103D20008091DB01811102C01092D601089587EDC8 +:103D300091E00E94A80E0E94FE1A9093D4018093F5 +:103D4000D30108951F93CF93DF938091D301909176 +:103D5000D4010E940A1BAC019091D601992321F055 +:103D60002091140130E006C0209115018AE0289FBF +:103D7000900111244217530708F486C08091D8019E +:103D8000C091D901D091DA011091DB01811107C0F6 +:103D9000C11176C0D11174C0111172C075C09F3F9E +:103DA00019F09F5F9093D601181624F40E94281DE5 +:103DB0008093D8018091D80187FF05C00E94281DFB +:103DC00081958093D8011C1624F40E94281D8093AD +:103DD000D9018091D90187FF05C00E94281D8195D6 +:103DE0008093D9016091D801662339F1C091D9013E +:103DF000CC2319F1772767FD7095872F972F0E94A5 +:103E00001B2223E333E343E35FE30E947F220E940C +:103E1000E8216093D8016C2F772767FD7095872F75 +:103E2000972F0E941B2223E333E343E35FE30E94C7 +:103E30007F220E94E8216093D9011D1624F40E947C +:103E4000711D8093DA018091DA0187FF05C00E941D +:103E5000711D81958093DA01111624F40E94711D61 +:103E60008093DB018091DB0187FF05C00E94711DFB +:103E700081958093DB01DF91CF911F910C94971E68 +:103E80009F3F09F08ECF96CFDF91CF911F9108957C +:103E9000E7EDF1E085E0DF011D928A95E9F71092E8 +:103EA000D6011092D5010895833081F128F4813034 +:103EB00059F08230D1F00895853009F449C0B8F145 +:103EC000863009F456C0089580911501262F30E000 +:103ED000280F311D2F3F310524F4680F6093150121 +:103EE00008958FEF80931501089580911401262F76 +:103EF00030E0280F311D2F3F310524F4680F609307 +:103F0000140108958FEF8093140108958091130197 +:103F1000262F30E0280F311D2F3F310524F4680F84 +:103F20006093130108958FEF80931301089580919A +:103F30001201262F30E0280F311D2F3F310524F4C8 +:103F4000680F6093120108958FEF80931201089516 +:103F500080911101262F30E0280F311D2F3F3105B0 +:103F600024F4680F6093110108958FEF809311017D +:103F7000089580911001262F30E0280F311D2F3F2A +:103F8000310524F4680F6093100108958FEF80933A +:103F900010010895833011F128F4813049F0823006 +:103FA00091F00895853081F120F18630C1F10895B6 +:103FB00080911501681720F4861B809315010895E0 +:103FC00010921501089580911401681720F4861B42 +:103FD00080931401089510921401089580911301A3 +:103FE000681720F4861B8093130108951092130123 +:103FF000089580911201681720F4861B80931201A6 +:10400000089510921201089580911101681720F40B +:10401000861B8093110108951092110108958091DB +:104020001001681720F4861B8093100108951092E8 +:10403000100108950F931F938D3109F46AC008F0A1 +:104040003FC08E3009F484C0C0F4873009F46DC0DD +:1040500068F4863009F0B5C08091CD01817F8E7FF4 +:104060008093CD0181E08093DD01ACC0883009F4FC +:1040700057C08B3009F46AC0A4C0863109F466C009 +:1040800078F4803109F477C0813109F09AC00E9438 +:10409000211490910D0181E0892780930D0156C074 +:1040A000893109F453C08B3109F08BC08091CD0167 +:1040B00081FB222720F991E0922790FB81F951C0E2 +:1040C000853309F475C048F4873209F471C008F4E7 +:1040D0005EC0893209F46CC074C0833430F48A3312 +:1040E00008F053C0883391F16CC0833409F460C088 +:1040F000883409F066C00E9421140FEF13ED20E30D +:10410000015010402040E1F700C000000E94591B00 +:104110001DC00E94A2210E94910E0E948A0716C013 +:104120000E940D1D0E941F1D11C09091CD01892F6D +:104130008095817080FB90F929F09660986090934B +:10414000CD0140C0997F977F9093CD0181E03AC027 +:104150008091CD0182FB222720F991E0922790FBEC +:1041600082F98093CD01992389F38091CD018160FB +:104170008093CD01EBCF8091CD0183FB222720F9E5 +:1041800091E0922790FB83F9ECCF895301C08D51C8 +:1041900041E050E060E070E08A019B0104C0000F44 +:1041A000111F221F331F8A95D2F7C901B80104C01D +:1041B00061E070E080E090E00E94DD170E94211431 +:1041C000C5CF80E01F910F91089580E0089580E0B1 +:1041D0000895CF93C82F8091DD01813079F018F0D8 +:1041E0008230E9F187C0E0910E01F0910F018081EA +:1041F000813169F0823209F07FC009C0E0910E017F +:10420000F0910F018081813111F0823261F48C2FA5 +:104210000E94E520811104C08C2F0E941A201DC02D +:1042200081E090E01AC08C2F0E94E720811114C019 +:10423000C43179F048F4CB3079F0C03109F060C076 +:1042400082E08093DD0108C0C93219F0C83321F043 +:1042500057C01092DD0154C081E0817053C0C93253 +:1042600089F118F5C43171F1A8F4C73009F046C0DE +:104270008AE08093150194E19093140193E0909368 +:1042800013018093120188E08093110188E28093EA +:10429000100134C0CE51C63088F5EC2FF0E0E65D59 +:1042A000FE4F80818093DC0129C0CE34E9F020F4F8 +:1042B000CB3421F56AE013C0C13579F0C235F1F491 +:1042C00061E00DC08091DC01882319F01092DC01BF +:1042D00015C081E08093DD0115C061E006C08091CA +:1042E000DC010E94541F0AC06AE08091DC010E9438 +:1042F000CA1F04C01092DD0180E004C081E002C04A +:1043000080E0ABCFCF910895E1E8F0E08081886054 +:1043100080838081816080838FB7F89493E090934D +:10432000890090ED909388008FBF0895EFE6F0E04C +:104330008081826080830895EFE6F0E080818D7F48 +:1043400080830895EFE6F0E0908182E08927808302 +:1043500008951F920F920FB60F9211242F933F933F +:104360004F935F936F937F938F939F93AF93BF937D +:10437000EF93FF938091DE019091DF01019690937E +:10438000DF018093DE01811103C082E00E948A0771 +:10439000E091DF01E695E695F0E0EA5CFA4FE49102 +:1043A0008091DE018E1303C080E00E948A07FF9196 +:1043B000EF91BF91AF919F918F917F916F915F919D +:1043C0004F913F912F910F900FBE0F901F90189516 +:1043D00004D06894B1118DC0089570D088F09F57B3 +:1043E00090F0B92F9927B751A0F0D1F0660F771F41 +:1043F000881F991F1AF0BA95C9F712C0B13081F021 +:1044000077D0B1E0089574C0672F782F8827B85F00 +:1044100039F0B93FCCF3869577956795B395D9F781 +:104420003EF490958095709561957F4F8F4F9F4F8B +:104430000895E89409C097FB3EF490958095709597 +:1044400061957F4F8F4F9F4F9923A9F0F92F96E9E0 +:10445000BB279395F695879577956795B795F11155 +:10446000F8CFFAF4BB0F11F460FF1BC06F5F7F4FF2 +:104470008F4F9F4F16C0882311F096E911C0772304 +:1044800021F09EE8872F762F05C0662371F096E80D +:10449000862F70E060E02AF09A95660F771F881FDC +:1044A000DAF7880F9695879597F9089557FD9058F4 +:1044B000440F551F59F05F3F71F04795880F97FBE8 +:1044C000991F61F09F3F79F08795089512161306A2 +:1044D0001406551FF2CF4695F1DF08C016161706D1 +:1044E0001806991FF1CF8695710561050894089506 +:1044F000E894BB2766277727CB0197F908950BD05F +:1045000078C069D028F06ED018F0952309F05AC011 +:104510005FC01124EECFCADFA0F3959FD1F3950FB2 +:1045200050E0551F629FF001729FBB27F00DB11D37 +:10453000639FAA27F00DB11DAA1F649F6627B00DC7 +:10454000A11D661F829F2227B00DA11D621F739FB0 +:10455000B00DA11D621F839FA00D611D221F749FBE +:104560003327A00D611D231F849F600D211D822F05 +:10457000762F6A2F11249F5750408AF0E1F088234C +:104580004AF0EE0FFF1FBB1F661F771F881F915059 +:104590005040A9F79E3F510570F014C0AACF5F3F6D +:1045A000ECF3983EDCF3869577956795B795F7958C +:1045B000E7959F5FC1F7FE2B880F911D9695879514 +:1045C00097F9089597F99F6780E870E060E0089593 +:1045D0009FEF80EC089500240A941616170618061B +:1045E0000906089500240A941216130614060506F7 +:1045F0000895092E0394000C11F4882352F0BB0F88 +:1046000040F4BF2B11F460FF04C06F5F7F4F8F4FEA +:104610009F4F089597FB072E16F4009407D077FD5F +:1046200009D00E94242307FC05D03EF49095819583 +:104630009F4F0895709561957F4F0895EE0FFF1F6E +:104640000590F491E02D0994AA1BBB1B51E107C012 +:10465000AA1FBB1FA617B70710F0A61BB70B881F12 +:10466000991F5A95A9F780959095BC01CD010895A1 +:10467000F999FECF92BD81BDF89A992780B508952A +:10468000A8E1B0E042E050E00C945B23262FF999BA +:10469000FECF1FBA92BD81BD20BD0FB6F894FA9A25 +:1046A000F99A0FBE019608950E944623272F0C9475 +:1046B0004723DC01CB01FC01F999FECF06C0F2BD16 +:1046C000E1BDF89A319600B40D9241505040B8F7D0 +:0646D0000895F894FFCFED +:1046D60020028C071A08F707C3078F070101BA01E2 +:1046E60028080A03140A3F4D3639F704AA0474044D +:1046F6003B04CE03E7030004190401020304050684 +:044706000708090097 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png differ diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md index 9eb4c24db..804c52a76 100644 --- a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -5,7 +5,10 @@ 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. +- **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) @@ -28,11 +31,11 @@ There are four layers: - 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! +- 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 -- cgit v1.2.3 From aaa7af752c89bdf22054c6dd0369c83ca1bee30d Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Mon, 11 Apr 2016 19:01:39 -0400 Subject: Make a also toggle Media layer --- keyboard/ergodox_ez/keymaps/j3rn/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c index 5da697088..5eb157401 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + 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, -- cgit v1.2.3 From 4b03a0f3d5f59c80cce8bb666b3aea166de5e5f1 Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Mon, 11 Apr 2016 19:08:24 -0400 Subject: Stylistic changes --- keyboard/ergodox_ez/keymaps/j3rn/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c index 5eb157401..6e271321d 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/keymap.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // 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, + 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, -- cgit v1.2.3 From 9e2c767c454ff07330b522579f6433276ae9d7cb Mon Sep 17 00:00:00 2001 From: Jonathan Arnett Date: Mon, 11 Apr 2016 19:19:20 -0400 Subject: Added README note about Vim-style navigation --- keyboard/ergodox_ez/keymaps/j3rn/readme.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/j3rn/readme.md b/keyboard/ergodox_ez/keymaps/j3rn/readme.md index b0c4d267b..fc4b64042 100644 --- a/keyboard/ergodox_ez/keymaps/j3rn/readme.md +++ b/keyboard/ergodox_ez/keymaps/j3rn/readme.md @@ -1,10 +1,10 @@ -# J3RN's Mac-centric Ergodox EZ keymap +# 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). +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? +## 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: @@ -18,6 +18,7 @@ This layout more closely resembles that of the Mac keyboard, and has some other ### 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." -- cgit v1.2.3 From 5ef6978cab7de2821eb6bfce4fd04067655a8937 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 12 Apr 2016 06:55:26 -0500 Subject: Adding personal files --- keyboard/planck/Makefile | 4 +- keyboard/planck/config.h | 2 +- keyboard/planck/keymaps/pc.c | 132 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 keyboard/planck/keymaps/pc.c (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 03d260176..17e5cd45c 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -137,8 +137,8 @@ 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 +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 # AUDIO_ENABLE = YES # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..d435cc795 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -76,7 +76,7 @@ along with this program. If not, see . #define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c new file mode 100644 index 000000000..f8254fd46 --- /dev/null +++ b/keyboard/planck/keymaps/pc.c @@ -0,0 +1,132 @@ +// 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 + +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 | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {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, KC_LALT, KC_NO, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {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), KC_SPC, KC_SPC, MO(_RS), 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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, KC_NO, KC_NO, KC_NO, 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} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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, KC_NO, KC_NO, KC_NO, 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} +} +}; + +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; +}; -- cgit v1.2.3 From ff06eaf8537e5f6ab1489c77a6147531c57bb538 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 12 Apr 2016 08:17:02 -0500 Subject: Added del --- keyboard/planck/keymaps/pc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index f8254fd46..0adee8b2e 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -33,7 +33,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_UP, KC_ENT }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} }, /* Colemak -- cgit v1.2.3 From 3a601e76e4efdd6dd42e02146fd52d8ede979756 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 14:43:09 -0500 Subject: Adding PC Atomic --- keyboard/atomic/Makefile | 7 +- keyboard/atomic/config.h | 93 ++++++++++++++++++++++++--- keyboard/atomic/keymaps/default.c | 124 ++++++++++++++++++++---------------- keyboard/atomic/keymaps/pc_atomic.c | 75 ++++++++++++++++++++++ 4 files changed, 231 insertions(+), 68 deletions(-) create mode 100644 keyboard/atomic/keymaps/pc_atomic.c (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index da6d0ac60..95554ea89 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -115,14 +115,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # comment out to disable the options. # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +#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 +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 @@ -137,4 +137,3 @@ VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) include $(TOP_DIR)/quantum/quantum.mk - diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index 149aed471..e28fa18c0 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,36 +32,109 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom +/* + * 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 COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, C6 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ -/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 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 */ +/* + * 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 diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c index f37d9d9a5..d62e5c244 100644 --- a/keyboard/atomic/keymaps/default.c +++ b/keyboard/atomic/keymaps/default.c @@ -1,60 +1,76 @@ #include "atomic.h" +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +// ROW 1 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// | | | | | | | | | | | | | | | | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------. +// | X | +// '-----------------' + +// ROW 2 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// | | | | | | | | | | | | | | | | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------. .- 2u ------------. +// | X | | X | +// '-----------------' '-----------------' + +// ROW 3 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// | | | | | | | | | | | | | | | | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------. .- 2u ------------. +// | X | | X | +// '-----------------' '-----------------' +// .- 2u ------------. +// | X | +// '-----------------' + +// ROW 4 OPTIONS +// .--------------------------------------------------------------------------------------------------------------------------------------. +// | | | | | | | | | | | | | | | | +// '--------------------------------------------------------------------------------------------------------------------------------------' +// .- 2u ------------. +// | X | +// '-----------------' +// .- 2u ------------. .- 2u ------------. +// | X | | X | +// '-----------------' '-----------------' +// .- 2u ------------. +// | X | +// '-----------------' + +// 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] = { - [0] = { /* 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_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 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_BSLS, 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_ENT, 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_RSFT, KC_UP, KC_PGDN }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, 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 │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ + [_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_DEL }, + { 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 }, + { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, } }; diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c new file mode 100644 index 000000000..2792ff6e7 --- /dev/null +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -0,0 +1,75 @@ +#include "atomic.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// [_QW] = { /* QWERTY */ + [0] = { /* 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, XXXXXXX, 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, XXXXXXX, 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, XXXXXXX, KC_RSFT, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), XXXXXXX, KC_SPC, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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_PSCR, KC_PAUS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, 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_PAUS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_FN] = { /* FUNCTION */ + { KC_TILD, 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_PAUS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +}; + +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), + +}; + +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; +}; -- cgit v1.2.3 From 21d4cafb8c2894a71c4022e248b0dbcc1d9ce57d Mon Sep 17 00:00:00 2001 From: skullY Date: Wed, 13 Apr 2016 14:20:08 -0700 Subject: Fixup rgb underlight for clueboard1 --- keyboard/clueboard1/Makefile | 3 +-- keyboard/clueboard1/config.h | 6 +++--- keyboard/clueboard1/keymaps/keymap_default.c | 10 +++++----- 3 files changed, 9 insertions(+), 10 deletions(-) (limited to 'keyboard') diff --git a/keyboard/clueboard1/Makefile b/keyboard/clueboard1/Makefile index 429ea6088..50cde1517 100644 --- a/keyboard/clueboard1/Makefile +++ b/keyboard/clueboard1/Makefile @@ -119,8 +119,7 @@ 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 -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality +# RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality # MIDI_ENABLE = YES # MIDI controls # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboard/clueboard1/config.h b/keyboard/clueboard1/config.h index 1801e3d2c..2b20c3873 100644 --- a/keyboard/clueboard1/config.h +++ b/keyboard/clueboard1/config.h @@ -67,9 +67,9 @@ along with this program. If not, see . /* Underlight configuration */ - #define ws2812_PORTREG PORTF - #define ws2812_DDRREG DDRF - #define ws2812_pin 6 + #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 diff --git a/keyboard/clueboard1/keymaps/keymap_default.c b/keyboard/clueboard1/keymaps/keymap_default.c index 33443f582..3f4f3c414 100644 --- a/keyboard/clueboard1/keymaps/keymap_default.c +++ b/keyboard/clueboard1/keymaps/keymap_default.c @@ -1,6 +1,6 @@ #include "clueboard1.h" -#ifdef ENABLE_RGBLIGHT +#ifdef RGBLIGHT_ENABLE #include "rgblight.h" #endif @@ -70,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `----------------------------------------------------------------------------------' */ [_RS] = KEYMAP( - #ifdef ENABLE_RGBLIGHT + #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, \ @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { enum function_id { SHIFT_ESC, - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE RGBLED_TOGGLE, RGBLED_STEP_MODE, RGBLED_INCREASE_HUE, @@ -101,7 +101,7 @@ enum function_id { const uint16_t PROGMEM fn_actions[] = { [0] = ACTION_FUNCTION(SHIFT_ESC), - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE [1] = ACTION_FUNCTION(RGBLED_TOGGLE), [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), @@ -137,7 +137,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { } break; //led operations - #ifdef ENABLE_RGBLIGHT + #ifdef RGBLIGHT_ENABLE case RGBLED_TOGGLE: if (record->event.pressed) { rgblight_toggle(); -- cgit v1.2.3 From caf3e48de8b29aa21343301dd22ce425e8f7c3ba Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 17:40:16 -0500 Subject: LOCAL COMMIT LOCAL COMMIT --- keyboard/atomic/Makefile | 24 +-- keyboard/atomic/config.h | 95 ++--------- keyboard/atomic/keymaps/default.c | 283 +++++++++++++++++++++++-------- keyboard/atomic/keymaps/pc_atomic.c | 37 ++-- keyboard/planck/keymaps/default/keymap.c | 16 +- 5 files changed, 263 insertions(+), 192 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 95554ea89..17baeaf53 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -114,19 +114,19 @@ 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 +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 +#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 +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index e28fa18c0..11c0e848e 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,109 +32,36 @@ along with this program. If not, see . #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) - * -*/ +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, C6 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ +/* define if matrix has ghost */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ +/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 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 -/* - * 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 */ +/* key combination for 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 @@ -154,4 +81,6 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION +#define MAGIC_KEY_BOOTLOADER B + #endif diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c index d62e5c244..4ed8a71f1 100644 --- a/keyboard/atomic/keymaps/default.c +++ b/keyboard/atomic/keymaps/default.c @@ -1,95 +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 4 -// ROW 1 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. -// | X | -// '-----------------' +/* 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 2 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' +/* 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 | + * '----------------------------------------------------------------------------------------------------------------' + */ -// ROW 3 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' -// .- 2u ------------. -// | X | -// '-----------------' +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// ROW 4 OPTIONS -// .--------------------------------------------------------------------------------------------------------------------------------------. -// | | | | | | | | | | | | | | | | -// '--------------------------------------------------------------------------------------------------------------------------------------' -// .- 2u ------------. -// | X | -// '-----------------' -// .- 2u ------------. .- 2u ------------. -// | X | | X | -// '-----------------' '-----------------' -// .- 2u ------------. -// | X | -// '-----------------' +/* 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 }, + }, -// 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 | -// '----------------------------------------------------------------------------------------------------------------' +/* 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 | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_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_DEL }, - { 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 }, - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, - } + [_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 ------------+--------| + * | | | | | | | | | | | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | | | | | | | | | | 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* RAISED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | | | | | | | | | | | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | | | | | | | | | | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | | | | | | | | | | 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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[] = { - [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), }; -const macro_t *action_get_macro(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 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } + 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/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c index 2792ff6e7..1c0425a76 100644 --- a/keyboard/atomic/keymaps/pc_atomic.c +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -23,34 +23,33 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// [_QW] = { /* QWERTY */ - [0] = { /* 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, XXXXXXX, KC_BSPC }, + [_QW] = { /* 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, XXXXXXX }, { 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, XXXXXXX, 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, XXXXXXX, KC_RSFT, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), XXXXXXX, KC_SPC, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, [_LW] = { /* LOWERED */ - { 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_PSCR, KC_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [_RS] = { /* RAISED */ - { KC_TILD, 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_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { KC_TILD, 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [_FN] = { /* FUNCTION */ - { KC_TILD, 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_PAUS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { 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(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, }; diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 988deee99..f1c7b5610 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -16,6 +16,10 @@ #define _LW 3 #define _RS 4 +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -85,9 +89,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = { {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} + {_______, 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, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -103,9 +107,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LW] = { {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} + {_______, 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, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} } }; -- cgit v1.2.3 From 390fd3107a84277151ceb63255c859307221a290 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 18:48:25 -0500 Subject: local files local files --- keyboard/planck/config.h | 2 +- keyboard/planck/keymaps/pc.c | 40 +++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d435cc795..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ //#define NO_PRINT diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index 0adee8b2e..ed062609f 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -15,6 +15,14 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -26,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | |Raise | Space |Lower | / | Left | Down |Right | + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | * `-----------------------------------------------------------------------------------' */ [_QW] = { @@ -85,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_RS] = { {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, KC_NO, KC_NO, KC_NO, 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} + {_______, 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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -103,9 +111,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_LW] = { {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, KC_NO, KC_NO, KC_NO, 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} + {_______, 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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } }; -- cgit v1.2.3 From 3755ef5ddbdad9f25a53fee951c3eb78035b52c3 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 20:57:51 -0500 Subject: Compiler Warnings / Atomic TLC Corrected compiler warnings for a number of issues. Gave Atomic some TLC. --- keyboard/atomic/Makefile | 4 +- keyboard/atomic/atomic.h | 3 ++ keyboard/atomic/backlight.c | 2 + keyboard/atomic/config.h | 95 ++++++++++++++++++++++++++++++++----- keyboard/atomic/keymaps/default.c | 26 +++++----- keyboard/atomic/keymaps/pc_atomic.c | 3 +- quantum/keymap_common.c | 6 ++- quantum/keymap_common.h | 2 - quantum/keymap_midi.h | 2 +- tmk_core/common/action_code.h | 2 +- tmk_core/common/keymap.c | 3 +- 11 files changed, 113 insertions(+), 35 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 17baeaf53..2b017446d 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -120,13 +120,13 @@ 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 - not yet supported in LUFA -#BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index d8574efa9..d5461e424 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -26,5 +26,8 @@ void matrix_init_user(void); void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); #endif \ No newline at end of file diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c index f69364b2a..647b57e71 100644 --- a/keyboard/atomic/backlight.c +++ b/keyboard/atomic/backlight.c @@ -1,6 +1,8 @@ #include #include "backlight.h" +#include "atomic.h" + #define CHANNEL OCR1C diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index 11c0e848e..f30a9e6cc 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,36 +32,109 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom +/* + * 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 COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, C6 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ -/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 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 */ +/* + * 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 @@ -81,6 +154,4 @@ along with this program. If not, see . //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#define MAGIC_KEY_BOOTLOADER B - #endif diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c index 4ed8a71f1..0ede363a1 100644 --- a/keyboard/atomic/keymaps/default.c +++ b/keyboard/atomic/keymaps/default.c @@ -11,7 +11,7 @@ #define _DV 2 #define _LW 3 #define _RS 4 -#define _FN 4 +#define _FN 5 /* ROW 1 OPTIONS * .--------------------------------------------------------------------------------------------------------------------------------------. @@ -148,11 +148,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | | | | | | | | | | INS | + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | | | | | | | | | | | | | XXXXXX . | | + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | | | | | | | | | | | | XXXXXX . | | | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| * | | | | | | XXXXXX . | | | | | | | | | * '--------------------------------------------------------------------------------------------------------------------------------------' @@ -160,9 +160,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, @@ -170,11 +170,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | | | | | | | | | | | | | | | INS | + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | | | | | | | | | | | | | XXXXXX . | | + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| - * | | | | | | | | | | | | XXXXXX . | | | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| * | | | | | | XXXXXX . | | | | | | | | | * '--------------------------------------------------------------------------------------------------------------------------------------' @@ -182,9 +182,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c index 1c0425a76..bdf575046 100644 --- a/keyboard/atomic/keymaps/pc_atomic.c +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -6,6 +6,7 @@ #define _FN 3 #define _______ KC_TRNS +#define ___T___ KC_TRNS #define XXXXXXX KC_NO /* @@ -48,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { 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(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, }; diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 2eef4f15a..ae6cddb34 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -87,6 +87,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) return action; #endif } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here + action_t action; clear_keyboard(); #ifdef AUDIO_ENABLE play_notes(&goodbye, 5, false); @@ -96,12 +97,13 @@ action_t action_for_key(uint8_t layer, keypos_t key) *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific #endif bootloader_jump(); - return; + return action; } else if (keycode == DEBUG) { // DEBUG is 0x5001 // TODO: Does this actually work? + action_t action; print("\nDEBUG: enabled.\n"); debug_enable = true; - return; + return action; } else if (keycode >= 0x5000 && keycode < 0x6000) { // Layer movement shortcuts // See .h to see constraints/usage diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 3db40772e..4a877d2a7 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -184,8 +184,6 @@ extern const uint16_t fn_actions[]; // Toggle to layer - 256 layer max #define TG(layer) (layer | 0x5400) -#define MIDI(n) (n | 0x6000) - // M-od, T-ap - 256 keycode max #define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8)) #define CTL_T(kc) MT(0x1, kc) diff --git a/quantum/keymap_midi.h b/quantum/keymap_midi.h index a89420ce2..436fb2eb5 100644 --- a/quantum/keymap_midi.h +++ b/quantum/keymap_midi.h @@ -20,7 +20,7 @@ along with this program. If not, see . #include -#define MIDI 0x6000 +#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)) diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index 4fe9c1d58..2b0b0b077 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -301,7 +301,7 @@ enum backlight_opt { #define ACTION_BACKLIGHT_DECREASE() ACTION(ACT_BACKLIGHT, BACKLIGHT_DECREASE << 8) #define ACTION_BACKLIGHT_TOGGLE() ACTION(ACT_BACKLIGHT, BACKLIGHT_TOGGLE << 8) #define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8) -#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | level) +#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level)) /* Command */ #define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (addr)) /* Function */ diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 11f4aa8aa..8955fc710 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -22,7 +22,7 @@ along with this program. If not, see . #include "action_macro.h" #include "wait.h" #include "debug.h" - +#include "bootloader.h" static action_t keycode_to_action(uint8_t keycode); @@ -143,6 +143,7 @@ static action_t keycode_to_action(uint8_t keycode) action.code = ACTION_TRANSPARENT; break; case KC_BOOTLOADER: + action.code = ACTION_NO; clear_keyboard(); wait_ms(50); bootloader_jump(); // not return -- cgit v1.2.3 From 9ff9317720d4fcee6b35800f71d598f9a59de661 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 21:55:04 -0500 Subject: Corrected spacing. --- keyboard/planck/Makefile | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 17e5cd45c..ae637fc29 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -130,20 +130,22 @@ 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 +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 +# 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 +# AUDIO_ENABLE = yes # Audio output on port C6 +# UNICODE_ENABLE = yes # Unicode +# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID +# 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 = 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 -# AUDIO_ENABLE = YES # Audio output on port C6 -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend + ifdef BACKLIGHT_ENABLE SRC += backlight.c -- cgit v1.2.3 From aa9eaa97730d9dea730e74b6d5a01bc344af9bfd Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 21:56:27 -0500 Subject: Corrected spacing. --- keyboard/atomic/Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 2b017446d..20cf4fff1 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -114,19 +114,19 @@ 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 -#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 +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 +#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 # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax -- cgit v1.2.3 From 95a44cdf01a98180363e8039d769fa7be92b0194 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Wed, 13 Apr 2016 22:00:36 -0500 Subject: Disabled print. --- keyboard/planck/config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index 7d64f0977..d3719e0cb 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -//#define NO_DEBUG +#define NO_DEBUG /* disable print */ -//#define NO_PRINT +#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER -- cgit v1.2.3 From 44e4320b2ea508d75f28cb6796f6cf414164564b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 06:34:56 -0500 Subject: Nightly --- keyboard/planck/keymaps/pc.c | 71 +++++++++++++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 18 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c index ed062609f..20bb5d86d 100644 --- a/keyboard/planck/keymaps/pc.c +++ b/keyboard/planck/keymaps/pc.c @@ -2,6 +2,8 @@ // this is the style you want to emulate. #include "planck.h" +#include "print.h" +#include "action_layer.h" #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif @@ -38,10 +40,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ [_QW] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {RESET, 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, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} }, /* Colemak @@ -95,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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_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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Lower @@ -113,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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_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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, /* Function @@ -139,20 +141,53 @@ const uint16_t PROGMEM fn_actions[] = { }; + +int tri_layer = 0; +void update_tri_layer(int layer) { + if (tri_layer > 1) { + layer_on(layer); + } else { + layer_off(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); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; + // MACRODOWN only works in this function + switch(id) + { + case _RS: + if (record->event.pressed) { + print("RS_DN"); + layer_on(_RS); + tri_layer++; + update_tri_layer(_FN); + } else { + print("RS_UP"); + layer_off(_RS); + tri_layer--; + update_tri_layer(_FN); + phex(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN"); + layer_on(_LW); + tri_layer++; + update_tri_layer(_FN); + } else { + print("LW_UP"); + layer_off(_LW); + tri_layer--; + update_tri_layer(_FN); + } + break; + + default: + break; + } + return MACRO_NONE; }; -- cgit v1.2.3 From 59e041672ccd35060aba75c7c05561a39c05d742 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 08:20:55 -0500 Subject: Remapped magic bootloader key to B. --- keyboard/atomic/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index f30a9e6cc..1b34decf9 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -130,7 +130,7 @@ along with this program. If not, see . //#define MAGIC_KEY_LAYER7 7 //#define MAGIC_KEY_LAYER8 8 //#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE +#define MAGIC_KEY_BOOTLOADER B //#define MAGIC_KEY_LOCK CAPS //#define MAGIC_KEY_EEPROM E //#define MAGIC_KEY_NKRO N -- cgit v1.2.3 From 4b4d3069b4e71de370f0fea8a949f1ae39bb0993 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 08:50:01 -0500 Subject: Update and rename pc_atomic.c to pvc_atomic.c Also removed unused FNs--- keyboard/atomic/keymaps/pc_atomic.c | 75 ------------------------------------ keyboard/atomic/keymaps/pvc_atomic.c | 69 +++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 75 deletions(-) delete mode 100644 keyboard/atomic/keymaps/pc_atomic.c create mode 100644 keyboard/atomic/keymaps/pvc_atomic.c (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c deleted file mode 100644 index bdf575046..000000000 --- a/keyboard/atomic/keymaps/pc_atomic.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "atomic.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* - * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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, XXXXXXX }, - { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [_LW] = { /* LOWERED */ - { 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, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_RS] = { /* RAISED */ - { KC_TILD, 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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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[] = { - [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), - -}; - -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/keyboard/atomic/keymaps/pvc_atomic.c b/keyboard/atomic/keymaps/pvc_atomic.c new file mode 100644 index 000000000..b18e3a377 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc_atomic.c @@ -0,0 +1,69 @@ +#include "atomic.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, XXXXXXX }, + { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3 From 19061f2ff1283f756b162055bac776814caa2d84 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 08:54:22 -0500 Subject: Update and rename pc_atomic.c to pvc_atomic.c --- keyboard/atomic/keymaps/pc_atomic.c | 75 ------------------------------------ keyboard/atomic/keymaps/pvc_atomic.c | 69 +++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 75 deletions(-) delete mode 100644 keyboard/atomic/keymaps/pc_atomic.c create mode 100644 keyboard/atomic/keymaps/pvc_atomic.c (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c deleted file mode 100644 index bdf575046..000000000 --- a/keyboard/atomic/keymaps/pc_atomic.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "atomic.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* - * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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, XXXXXXX }, - { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [_LW] = { /* LOWERED */ - { 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, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_RS] = { /* RAISED */ - { KC_TILD, 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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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[] = { - [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), - -}; - -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/keyboard/atomic/keymaps/pvc_atomic.c b/keyboard/atomic/keymaps/pvc_atomic.c new file mode 100644 index 000000000..b18e3a377 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc_atomic.c @@ -0,0 +1,69 @@ +#include "atomic.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, XXXXXXX }, + { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___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: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3 From 3d601c1bce23cf31052b9a61818fd1343970499b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 08:56:27 -0500 Subject: Rename pc.c to pvc_planck.c --- keyboard/planck/keymaps/pc.c | 193 ----------------------------------- keyboard/planck/keymaps/pvc_planck.c | 193 +++++++++++++++++++++++++++++++++++ 2 files changed, 193 insertions(+), 193 deletions(-) delete mode 100644 keyboard/planck/keymaps/pc.c create mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c deleted file mode 100644 index 20bb5d86d..000000000 --- a/keyboard/planck/keymaps/pc.c +++ /dev/null @@ -1,193 +0,0 @@ -// 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 "print.h" -#include "action_layer.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 _FN 5 - -#define XXXXXXX KC_NO -#define _______ KC_TRNS - -#define ASFT(kc) LSFT(RSFT(kc)) -#define MG_B ASFT(KC_B) -#define MG_H ASFT(KC_H) - -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 | , | . | Up |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {RESET, 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, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, 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 |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {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), KC_SPC, KC_SPC, MO(_RS), 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 |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DV] = { - {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {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_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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {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_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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Function - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - -}; - - -int tri_layer = 0; -void update_tri_layer(int layer) { - if (tri_layer > 1) { - layer_on(layer); - } else { - layer_off(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 _RS: - if (record->event.pressed) { - print("RS_DN"); - layer_on(_RS); - tri_layer++; - update_tri_layer(_FN); - } else { - print("RS_UP"); - layer_off(_RS); - tri_layer--; - update_tri_layer(_FN); - phex(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN"); - layer_on(_LW); - tri_layer++; - update_tri_layer(_FN); - } else { - print("LW_UP"); - layer_off(_LW); - tri_layer--; - update_tri_layer(_FN); - } - break; - - default: - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c new file mode 100644 index 000000000..20bb5d86d --- /dev/null +++ b/keyboard/planck/keymaps/pvc_planck.c @@ -0,0 +1,193 @@ +// 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 "print.h" +#include "action_layer.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 _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) + +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 | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {RESET, 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, KC_LALT, KC_DEL, M(_LW), KC_SPC, KC_SPC, M(_RS), KC_SLSH, KC_LEFT, KC_DOWN, 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {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), KC_SPC, KC_SPC, MO(_RS), 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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_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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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_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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + + +int tri_layer = 0; +void update_tri_layer(int layer) { + if (tri_layer > 1) { + layer_on(layer); + } else { + layer_off(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 _RS: + if (record->event.pressed) { + print("RS_DN"); + layer_on(_RS); + tri_layer++; + update_tri_layer(_FN); + } else { + print("RS_UP"); + layer_off(_RS); + tri_layer--; + update_tri_layer(_FN); + phex(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN"); + layer_on(_LW); + tri_layer++; + update_tri_layer(_FN); + } else { + print("LW_UP"); + layer_off(_LW); + tri_layer--; + update_tri_layer(_FN); + } + break; + + default: + break; + } + return MACRO_NONE; +}; -- cgit v1.2.3 From 3dd20f2b6c16ea56bacc5e1581db3fbc1cfc5444 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 11:35:49 -0500 Subject: Rename pc.c to pvc_planck.c --- keyboard/planck/keymaps/pc.c | 158 ----------------------------------- keyboard/planck/keymaps/pvc_planck.c | 158 +++++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+), 158 deletions(-) delete mode 100644 keyboard/planck/keymaps/pc.c create mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c deleted file mode 100644 index ed062609f..000000000 --- a/keyboard/planck/keymaps/pc.c +++ /dev/null @@ -1,158 +0,0 @@ -// 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 _FN 5 - -#define XXXXXXX KC_NO -#define _______ KC_TRNS - -#define ASFT(kc) LSFT(RSFT(kc)) -#define MG_B ASFT(KC_B) -#define MG_H ASFT(KC_H) - -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 | , | . | Up |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {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, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, 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 |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {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), KC_SPC, KC_SPC, MO(_RS), 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 |Raise | Space |Lower | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_DV] = { - {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {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_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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, - {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {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_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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, - {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, - -/* Function - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -} -}; - -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/keyboard/planck/keymaps/pvc_planck.c b/keyboard/planck/keymaps/pvc_planck.c new file mode 100644 index 000000000..ed062609f --- /dev/null +++ b/keyboard/planck/keymaps/pvc_planck.c @@ -0,0 +1,158 @@ +// 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 _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) + +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 | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {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, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {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), KC_SPC, KC_SPC, MO(_RS), 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 |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {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), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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_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, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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_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, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +} +}; + +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; +}; -- cgit v1.2.3 From cf17687f29820b6bf9b8feb3b23dec6e271572c5 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 12:59:16 -0500 Subject: Adding personal build file settings --- keyboard/atomic/Makefile | 4 ++-- keyboard/planck/Makefile | 4 ++-- keyboard/planck/config.h | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 20cf4fff1..f95b2350c 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -119,8 +119,8 @@ 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 -#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +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 diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ae637fc29..5271c2795 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -135,8 +135,8 @@ 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 -# 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 +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 # AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = yes # Unicode diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER -- cgit v1.2.3 From f051496f1343259f4da8c5d917b9c9e47b97e38c Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 18:01:29 -0500 Subject: Checkin --- keyboard/atomic/Makefile | 7 ++ keyboard/atomic/keymaps/pvc_atomic.c | 170 +++++++++++++++++++++++++++++++++-- tmk_core/common/action_layer.h | 1 + 3 files changed, 169 insertions(+), 9 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index f95b2350c..206b5f119 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -136,4 +136,11 @@ VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) +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 + include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/atomic/keymaps/pvc_atomic.c b/keyboard/atomic/keymaps/pvc_atomic.c index b18e3a377..3ddd3e329 100644 --- a/keyboard/atomic/keymaps/pvc_atomic.c +++ b/keyboard/atomic/keymaps/pvc_atomic.c @@ -1,9 +1,12 @@ #include "atomic.h" +#include "action_layer.h" #define _QW 0 #define _LW 1 #define _RS 2 #define _FN 3 +#define _F1 4 +#define _F2 5 #define _______ KC_TRNS #define ___T___ KC_TRNS @@ -29,7 +32,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_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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M(_FN), KC_LALT, M(_RS), KC_SPC, XXXXXXX, M(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, [_LW] = { /* LOWERED */ { 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, ___T___, ___T___ }, @@ -52,18 +55,167 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, + [_F1] = { /* 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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, + [_F2] = { /* 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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, }; +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) +{ + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + } +} + +void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) +{ + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} + +/* ignore me +void change_quad_layer(uint8_t focus_layer, bool desired_focus_layer_state, uint8_t pair_layer, uint8_t layer3, uint8_t layer4) +{ + + // If desired focus layer state == 1 and current focus layer state == 1 + if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) + { + // Do Nothing + } + // If desired focus layer state == 0 and current focus layer state == 1 + else if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) + { + // If + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} +*/ + const uint16_t PROGMEM fn_actions[] = { }; -const macro_t *action_get_macro(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 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; + + // MACRODOWN only works in this function + switch(id) + { + case _FN: + if (record->event.pressed) { + print("FN_DN\n"); + print_val_bin32(layer_state); + layer_on(_FN); + print_val_bin32(layer_state); + } else { + print("FN_UP\n"); + print_val_bin32(layer_state); + layer_off(_FN); + print_val_bin32(layer_state); + } + break; + + case _RS: + if (record->event.pressed) { + print("RS_DN\n"); + print_val_bin32(layer_state); + layer_on(_RS); + //tri_layer++; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 0); + print_val_bin32(layer_state); + } else { + print("RS_UP\n"); + print_val_bin32(layer_state); + layer_off(_RS); + //tri_layer--; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 0); + print_val_bin32(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN\n"); + print_val_bin32(layer_state); + layer_on(_LW); + //tri_layer++; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 1); + print_val_bin32(layer_state); + } else { + print("LW_UP\n"); + print_val_bin32(layer_state); + layer_off(_LW); + //tri_layer--; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 1); + print_val_bin32(layer_state); + } + break; + + default: + break; + } + return MACRO_NONE; }; diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h index 3a4b1e334..025cf5420 100644 --- a/tmk_core/common/action_layer.h +++ b/tmk_core/common/action_layer.h @@ -68,6 +68,7 @@ void layer_xor(uint32_t state); #define layer_and(state) #define layer_xor(state) #define layer_debug() + #endif /* pressed actions cache */ -- cgit v1.2.3 From ddbe4307789b6087c3e6f146a5e02f1084f3cecc Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 19:13:24 -0400 Subject: new defaults --- keyboard/planck/Makefile | 2 +- keyboard/planck/keymaps/default/keymap.c | 146 ++++++++++++++++++++++++++++--- 2 files changed, 133 insertions(+), 15 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ae637fc29..ee1c60fed 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -138,7 +138,7 @@ 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 BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality # MIDI_ENABLE = yes # MIDI controls -# AUDIO_ENABLE = yes # Audio output on port C6 +AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = yes # Unicode # BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 30ad87760..e06567339 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -5,6 +5,10 @@ #ifdef BACKLIGHT_ENABLE #include "backlight.h" #endif +#include "action_layer.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. @@ -15,6 +19,15 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define M_QW 0 +#define M_CM 1 +#define M_DV 2 +#define M_LW 3 +#define M_RS 4 +#define M_BL 5 // Fillers to make layering more clear #define _______ KC_TRNS @@ -37,7 +50,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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -55,7 +68,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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -73,24 +86,24 @@ 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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Raise * ,-----------------------------------------------------------------------------------. * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | + * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_RS] = { {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_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, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {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} }, @@ -98,18 +111,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Next | Vol- | Vol+ | Play | + * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ [_LW] = { {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_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, DF(_QW), DF(_CM), DF(_DV), RESET, _______}, + {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} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, _______, _______, _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; @@ -117,11 +148,85 @@ const uint16_t PROGMEM fn_actions[] = { }; +float tone_qw[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 1600} +}; + +float tone_cm[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 1000}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 1000} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 400}, + {440.0*pow(2.0,(67)/12.0), 800}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 800}, + {0, 200}, + {440.0*pow(2.0,(67)/12.0), 800} +}; + + +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} 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: + case M_QW: + if (record->event.pressed) { + play_notes(&tone_qw, 4, false); + default_layer_set(1UL<<_QW); + } + break; + case M_CM: + if (record->event.pressed) { + play_notes(&tone_cm, 6, false); + default_layer_set(1UL<<_CM); + } + break; + case M_DV: + if (record->event.pressed) { + play_notes(&tone_dv, 8, false); + default_layer_set(1UL<<_DV); + } + break; + case M_LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE @@ -134,3 +239,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } return MACRO_NONE; }; + +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 650}, + {440.0*pow(2.0,(64)/12.0), 450}, + {440.0*pow(2.0,(55)/12.0), 450}, + {440.0*pow(2.0,(60)/12.0), 450}, + {440.0*pow(2.0,(64)/12.0), 1000} +}; + +void matrix_init_user(void) { + init_notes(); + play_notes(&start_up, 5, false); +} -- cgit v1.2.3 From 63462bf8c12cea1c13ca1bd1f105fe53f556806e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 20:42:14 -0400 Subject: changing up the makefile a bit --- keyboard/planck/Makefile | 56 +++++++++++++++++------------ keyboard/planck/keymaps/default/keymap.c | 49 +++++++++++++++---------- keyboard/planck/keymaps/default/makefile.mk | 1 + quantum/quantum.mk | 8 ++--- tmk_core/common.mk | 26 +++++++------- tmk_core/protocol/lufa.mk | 4 +-- 6 files changed, 84 insertions(+), 60 deletions(-) create mode 100644 keyboard/planck/keymaps/default/makefile.mk (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index ee1c60fed..dc6e46df2 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -38,6 +38,27 @@ # 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 = 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 +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 = 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 + # Target file name (without extension). TARGET = planck @@ -62,17 +83,28 @@ ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") else ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif else $(error Keymap file does not exist) +endif endif -endif + else + ifneq ("$(wildcard keymaps/default.c)","") KEYMAP_FILE = keymaps/default.c else KEYMAP_FILE = keymaps/default/keymap.c endif + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk endif + +endif + SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -127,27 +159,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 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 -# 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 -AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = yes # Unicode -# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID -# 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 = yes # Breathing sleep LED during USB suspend - - -ifdef BACKLIGHT_ENABLE +ifeq ($(BACKLIGHT_ENABLE), yes) SRC += backlight.c endif diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e06567339..97ba5d285 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -89,38 +89,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -/* Raise +/* Lower * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RS] = { - {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}, +[_LW] = { + {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} }, -/* Lower +/* Raise * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * | ` | 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 | | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LW] = { - {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}, +[_RS] = { + {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} }, @@ -148,17 +148,18 @@ const uint16_t PROGMEM fn_actions[] = { }; +#ifdef AUDIO_ENABLE float tone_qw[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 1600} }; float tone_cm[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 1000}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 1000} @@ -167,14 +168,14 @@ float tone_cm[][2] = { float tone_dv[][2] = { {440.0*pow(2.0,(67)/12.0), 400}, {440.0*pow(2.0,(60)/12.0), 400}, - {0, 400}, + {0, 800}, {440.0*pow(2.0,(67)/12.0), 800}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 800}, {0, 200}, {440.0*pow(2.0,(67)/12.0), 800} }; - +#endif #define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) #define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) @@ -192,19 +193,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) switch(id) { case M_QW: if (record->event.pressed) { - play_notes(&tone_qw, 4, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif default_layer_set(1UL<<_QW); } break; case M_CM: if (record->event.pressed) { - play_notes(&tone_cm, 6, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif default_layer_set(1UL<<_CM); } break; case M_DV: if (record->event.pressed) { - play_notes(&tone_dv, 8, false); + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif default_layer_set(1UL<<_DV); } break; @@ -240,6 +247,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +#ifdef AUDIO_ENABLE float start_up[][2] = { {440.0*pow(2.0,(67)/12.0), 650}, {440.0*pow(2.0,(64)/12.0), 450}, @@ -247,8 +255,11 @@ float start_up[][2] = { {440.0*pow(2.0,(60)/12.0), 450}, {440.0*pow(2.0,(64)/12.0), 1000} }; +#endif void matrix_init_user(void) { + #ifdef AUDIO_ENABLE init_notes(); play_notes(&start_up, 5, false); + #endif } diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk new file mode 100644 index 000000000..628167ff6 --- /dev/null +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/quantum/quantum.mk b/quantum/quantum.mk index de93af7e8..3069f582c 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -23,19 +23,19 @@ ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) SRC += $(QUANTUM_DIR)/keymap_midi.c endif -ifdef AUDIO_ENABLE +ifeq ($(AUDIO_ENABLE), yes) SRC += $(QUANTUM_DIR)/audio.c endif -ifdef UNICODE_ENABLE +ifeq ($(UNICODE_ENABLE), yes) SRC += $(QUANTUM_DIR)/keymap_unicode.c endif -ifdef RGBLIGHT_ENABLE +ifeq ($(RGBLIGHT_ENABLE), yes) SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c OPT_DEFS += -DRGBLIGHT_ENABLE diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 89c366f55..8d028d52a 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,66 +17,66 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules -ifdef BOOTMAGIC_ENABLE +ifeq ($(BOOTMAGIC_ENABLE), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE endif -ifdef MOUSEKEY_ENABLE +ifeq ($(MOUSEKEY_ENABLE), yes) SRC += $(COMMON_DIR)/mousekey.c OPT_DEFS += -DMOUSEKEY_ENABLE OPT_DEFS += -DMOUSE_ENABLE endif -ifdef EXTRAKEY_ENABLE +ifeq ($(EXTRAKEY_ENABLE), yes) OPT_DEFS += -DEXTRAKEY_ENABLE endif -ifdef CONSOLE_ENABLE +ifeq ($(CONSOLE_ENABLE), yes) OPT_DEFS += -DCONSOLE_ENABLE else OPT_DEFS += -DNO_PRINT OPT_DEFS += -DNO_DEBUG endif -ifdef COMMAND_ENABLE +ifeq ($(COMMAND_ENABLE), yes) SRC += $(COMMON_DIR)/command.c OPT_DEFS += -DCOMMAND_ENABLE endif -ifdef NKRO_ENABLE +ifeq ($(NKRO_ENABLE), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) OPT_DEFS += -DMIDI_ENABLE endif -ifdef AUDIO_ENABLE +ifeq ($(AUDIO_ENABLE), yes) OPT_DEFS += -DAUDIO_ENABLE endif -ifdef USB_6KRO_ENABLE +ifeq ($(USB_6KRO_ENABLE), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -ifdef SLEEP_LED_ENABLE +ifeq ($(SLEEP_LED_ENABLE), yes) SRC += $(COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif -ifdef BACKLIGHT_ENABLE +ifeq ($(BACKLIGHT_ENABLE), yes) SRC += $(COMMON_DIR)/backlight.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -ifdef BLUETOOTH_ENABLE +ifeq ($(BLUETOOTH_ENABLE), yes) OPT_DEFS += -DBLUETOOTH_ENABLE endif -ifdef KEYMAP_SECTION_ENABLE +ifeq ($(KEYMAP_SECTION_ENABLE), yes) OPT_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 4905760bb..f3209c227 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -17,7 +17,7 @@ LUFA_SRC = $(LUFA_DIR)/lufa.c \ $(LUFA_DIR)/descriptor.c \ $(LUFA_SRC_USB) -ifdef MIDI_ENABLE +ifeq ($(MIDI_ENABLE), yes) LUFA_SRC += $(LUFA_DIR)/midi/midi.c \ $(LUFA_DIR)/midi/midi_device.c \ $(LUFA_DIR)/midi/bytequeue/bytequeue.c \ @@ -25,7 +25,7 @@ ifdef MIDI_ENABLE $(LUFA_SRC_USBCLASS) endif -ifdef BLUETOOTH_ENABLE +ifeq ($(BLUETOOTH_ENABLE), yes) LUFA_SRC += $(LUFA_DIR)/bluetooth.c \ $(TMK_DIR)/protocol/serial_uart.c endif -- cgit v1.2.3 From 3993afbb2e022f4e6371c729ac6a025f16bc734e Mon Sep 17 00:00:00 2001 From: IBNobody Date: Thu, 14 Apr 2016 22:27:28 -0500 Subject: adding new per-keymap makefile --- keyboard/atomic/Makefile | 85 ++++++++---- keyboard/atomic/keymaps/pvc/makefile.mk | 16 +++ keyboard/atomic/keymaps/pvc/pvc_atomic.c | 221 +++++++++++++++++++++++++++++++ keyboard/atomic/keymaps/pvc_atomic.c | 221 ------------------------------- 4 files changed, 294 insertions(+), 249 deletions(-) create mode 100644 keyboard/atomic/keymaps/pvc/makefile.mk create mode 100644 keyboard/atomic/keymaps/pvc/pvc_atomic.c delete mode 100644 keyboard/atomic/keymaps/pvc_atomic.c (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 206b5f119..364efa3fa 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -27,7 +27,7 @@ # 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, +# 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. @@ -38,6 +38,27 @@ # 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 = 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 +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 = 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 + # Target file name (without extension). TARGET = atomic @@ -50,15 +71,42 @@ TMK_DIR = ../../tmk_core TARGET_DIR = . # # project specific files -SRC = atomic.c \ - backlight.c +SRC = atomic.c + +ifdef keymap + KEYMAP = $(keymap) +endif ifdef KEYMAP - SRC := keymaps/$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c +else +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +else +$(error Keymap file does not exist) +endif +endif + else - SRC := keymaps/default.c $(SRC) + +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/keymap.c +endif + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + endif +SRC := $(KEYMAP_FILE) $(SRC) + CONFIG_H = config.h # MCU name @@ -111,22 +159,10 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT 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 -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 +ifeq ($(BACKLIGHT_ENABLE), yes) + SRC += backlight.c +endif -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -136,11 +172,4 @@ VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) -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 - -include $(TOP_DIR)/quantum/quantum.mk +include $(TOP_DIR)/quantum/quantum.mk \ No newline at end of file diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk new file mode 100644 index 000000000..ff0a9c338 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -0,0 +1,16 @@ +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 # 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 # 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 diff --git a/keyboard/atomic/keymaps/pvc/pvc_atomic.c b/keyboard/atomic/keymaps/pvc/pvc_atomic.c new file mode 100644 index 000000000..3ddd3e329 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/pvc_atomic.c @@ -0,0 +1,221 @@ +#include "atomic.h" +#include "action_layer.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 +#define _F1 4 +#define _F2 5 + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, XXXXXXX }, + { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M(_FN), KC_LALT, M(_RS), KC_SPC, XXXXXXX, M(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, + [_F1] = { /* 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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, + [_F2] = { /* 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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) +{ + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + } +} + +void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) +{ + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} + +/* ignore me +void change_quad_layer(uint8_t focus_layer, bool desired_focus_layer_state, uint8_t pair_layer, uint8_t layer3, uint8_t layer4) +{ + + // If desired focus layer state == 1 and current focus layer state == 1 + if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) + { + // Do Nothing + } + // If desired focus layer state == 0 and current focus layer state == 1 + else if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) + { + // If + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} +*/ + +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 _FN: + if (record->event.pressed) { + print("FN_DN\n"); + print_val_bin32(layer_state); + layer_on(_FN); + print_val_bin32(layer_state); + } else { + print("FN_UP\n"); + print_val_bin32(layer_state); + layer_off(_FN); + print_val_bin32(layer_state); + } + break; + + case _RS: + if (record->event.pressed) { + print("RS_DN\n"); + print_val_bin32(layer_state); + layer_on(_RS); + //tri_layer++; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 0); + print_val_bin32(layer_state); + } else { + print("RS_UP\n"); + print_val_bin32(layer_state); + layer_off(_RS); + //tri_layer--; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 0); + print_val_bin32(layer_state); + } + break; + + case _LW: + if (record->event.pressed) { + print("LW_DN\n"); + print_val_bin32(layer_state); + layer_on(_LW); + //tri_layer++; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 1); + print_val_bin32(layer_state); + } else { + print("LW_UP\n"); + print_val_bin32(layer_state); + layer_off(_LW); + //tri_layer--; + print_val_bin32(layer_state); + //update_tri_layer(_RS, _LW, _FN); + update_quad_layer(_RS, _LW, _F1, _F2, 1); + print_val_bin32(layer_state); + } + break; + + default: + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atomic/keymaps/pvc_atomic.c b/keyboard/atomic/keymaps/pvc_atomic.c deleted file mode 100644 index 3ddd3e329..000000000 --- a/keyboard/atomic/keymaps/pvc_atomic.c +++ /dev/null @@ -1,221 +0,0 @@ -#include "atomic.h" -#include "action_layer.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 -#define _F1 4 -#define _F2 5 - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* - * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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, XXXXXXX }, - { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M(_FN), KC_LALT, M(_RS), KC_SPC, XXXXXXX, M(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [_LW] = { /* LOWERED */ - { 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, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_RS] = { /* RAISED */ - { KC_TILD, 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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F1] = { /* 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F2] = { /* 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, -}; - -#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) - -void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) -{ - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - } -} - -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} - -/* ignore me -void change_quad_layer(uint8_t focus_layer, bool desired_focus_layer_state, uint8_t pair_layer, uint8_t layer3, uint8_t layer4) -{ - - // If desired focus layer state == 1 and current focus layer state == 1 - if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // Do Nothing - } - // If desired focus layer state == 0 and current focus layer state == 1 - else if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // If - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} -*/ - -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 _FN: - if (record->event.pressed) { - print("FN_DN\n"); - print_val_bin32(layer_state); - layer_on(_FN); - print_val_bin32(layer_state); - } else { - print("FN_UP\n"); - print_val_bin32(layer_state); - layer_off(_FN); - print_val_bin32(layer_state); - } - break; - - case _RS: - if (record->event.pressed) { - print("RS_DN\n"); - print_val_bin32(layer_state); - layer_on(_RS); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } else { - print("RS_UP\n"); - print_val_bin32(layer_state); - layer_off(_RS); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN\n"); - print_val_bin32(layer_state); - layer_on(_LW); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } else { - print("LW_UP\n"); - print_val_bin32(layer_state); - layer_off(_LW); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } - break; - - default: - break; - } - return MACRO_NONE; -}; -- cgit v1.2.3 From 2597fb7c508cf36704291cd48b2c752dd21f2b0d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 23:33:46 -0400 Subject: might have broken something --- keyboard/planck/config.h | 4 ++-- keyboard/planck/keymaps/default/makefile.mk | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index d3719e0cb..7d64f0977 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index 628167ff6..e1c5bd2e8 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1 +1,2 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes +BACKLIGHT_ENABLE = yes \ No newline at end of file -- cgit v1.2.3 From 43a4ffc25971b2aea94b65ca1db66371e653ec5f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 14 Apr 2016 23:53:35 -0400 Subject: bootmagic somehow not getting enabled, so adding eeconfig to backlight src include cond --- keyboard/planck/Makefile | 11 ++++------- keyboard/planck/keymaps/default/keymap.c | 3 --- tmk_core/common.mk | 1 + 3 files changed, 5 insertions(+), 10 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index dc6e46df2..693e9c8aa 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -107,6 +107,10 @@ endif SRC := $(KEYMAP_FILE) $(SRC) +ifeq ($(BACKLIGHT_ENABLE), yes) + SRC := backlight.c $(SRC) +endif + CONFIG_H = config.h # MCU name @@ -126,7 +130,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -158,12 +161,6 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 - -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC += backlight.c -endif - - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 97ba5d285..151a6b4f4 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -2,9 +2,6 @@ // this is the style you want to emulate. #include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif #include "action_layer.h" #ifdef AUDIO_ENABLE #include "audio.h" diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 8d028d52a..030767cc3 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -69,6 +69,7 @@ endif ifeq ($(BACKLIGHT_ENABLE), yes) SRC += $(COMMON_DIR)/backlight.c + SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -- cgit v1.2.3 From bb0836c62016f482f517771a9f5a8dbc68bd0a1c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 00:26:22 -0400 Subject: the spacessss --- keyboard/planck/Makefile | 66 +++++++++++++++++------------ keyboard/planck/keymaps/default/makefile.mk | 3 +- quantum/quantum.mk | 8 ++-- tmk_core/common.mk | 26 ++++++------ tmk_core/protocol/lufa.mk | 4 +- 5 files changed, 60 insertions(+), 47 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 693e9c8aa..8d4e7787a 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -38,31 +38,9 @@ # 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 = 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 -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 = 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 - # Target file name (without extension). TARGET = planck - # Directory common source filess exist TOP_DIR = ../.. TMK_DIR = ../../tmk_core @@ -107,10 +85,6 @@ endif SRC := $(KEYMAP_FILE) $(SRC) -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC := backlight.c $(SRC) -endif - CONFIG_H = config.h # MCU name @@ -161,6 +135,46 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 +# 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 = 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 +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 + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index e1c5bd2e8..8cbec4a1f 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1,2 +1 @@ -AUDIO_ENABLE = yes -BACKLIGHT_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/quantum/quantum.mk b/quantum/quantum.mk index 3069f582c..17bb50171 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -23,19 +23,19 @@ ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) SRC += $(QUANTUM_DIR)/keymap_midi.c endif -ifeq ($(AUDIO_ENABLE), yes) +ifeq ($(strip $(AUDIO_ENABLE)), yes) SRC += $(QUANTUM_DIR)/audio.c endif -ifeq ($(UNICODE_ENABLE), yes) +ifeq ($(strip $(UNICODE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/keymap_unicode.c endif -ifeq ($(RGBLIGHT_ENABLE), yes) +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) SRC += $(QUANTUM_DIR)/light_ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c OPT_DEFS += -DRGBLIGHT_ENABLE diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 030767cc3..f8006c670 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,67 +17,67 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules -ifeq ($(BOOTMAGIC_ENABLE), yes) +ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE endif -ifeq ($(MOUSEKEY_ENABLE), yes) +ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) SRC += $(COMMON_DIR)/mousekey.c OPT_DEFS += -DMOUSEKEY_ENABLE OPT_DEFS += -DMOUSE_ENABLE endif -ifeq ($(EXTRAKEY_ENABLE), yes) +ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) OPT_DEFS += -DEXTRAKEY_ENABLE endif -ifeq ($(CONSOLE_ENABLE), yes) +ifeq ($(strip $(CONSOLE_ENABLE)), yes) OPT_DEFS += -DCONSOLE_ENABLE else OPT_DEFS += -DNO_PRINT OPT_DEFS += -DNO_DEBUG endif -ifeq ($(COMMAND_ENABLE), yes) +ifeq ($(strip $(COMMAND_ENABLE)), yes) SRC += $(COMMON_DIR)/command.c OPT_DEFS += -DCOMMAND_ENABLE endif -ifeq ($(NKRO_ENABLE), yes) +ifeq ($(strip $(NKRO_ENABLE)), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE endif -ifeq ($(AUDIO_ENABLE), yes) +ifeq ($(strip $(AUDIO_ENABLE)), yes) OPT_DEFS += -DAUDIO_ENABLE endif -ifeq ($(USB_6KRO_ENABLE), yes) +ifeq ($(strip $(USB_6KRO_ENABLE)), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -ifeq ($(SLEEP_LED_ENABLE), yes) +ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) SRC += $(COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif -ifeq ($(BACKLIGHT_ENABLE), yes) +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(COMMON_DIR)/backlight.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -ifeq ($(BLUETOOTH_ENABLE), yes) +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE endif -ifeq ($(KEYMAP_SECTION_ENABLE), yes) +ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) OPT_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index f3209c227..9ac6298f1 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -17,7 +17,7 @@ LUFA_SRC = $(LUFA_DIR)/lufa.c \ $(LUFA_DIR)/descriptor.c \ $(LUFA_SRC_USB) -ifeq ($(MIDI_ENABLE), yes) +ifeq ($(strip $(MIDI_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/midi/midi.c \ $(LUFA_DIR)/midi/midi_device.c \ $(LUFA_DIR)/midi/bytequeue/bytequeue.c \ @@ -25,7 +25,7 @@ ifeq ($(MIDI_ENABLE), yes) $(LUFA_SRC_USBCLASS) endif -ifeq ($(BLUETOOTH_ENABLE), yes) +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/bluetooth.c \ $(TMK_DIR)/protocol/serial_uart.c endif -- cgit v1.2.3 From ee2ee7f4f049dda385a9db7dddd8e7e91681315b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 13:44:07 -0400 Subject: audio note length fixes --- keyboard/planck/keymaps/default/keymap.c | 46 ++++++++++++++++---------------- quantum/audio.c | 7 ++++- quantum/keymap_common.c | 10 +++---- 3 files changed, 33 insertions(+), 30 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 151a6b4f4..dee2840f2 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -147,30 +147,30 @@ const uint16_t PROGMEM fn_actions[] = { #ifdef AUDIO_ENABLE float tone_qw[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 1600} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; float tone_cm[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 1000}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 1000} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 16} }; float tone_dv[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 800}, - {440.0*pow(2.0,(67)/12.0), 800}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 800}, - {0, 200}, - {440.0*pow(2.0,(67)/12.0), 800} + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; #endif @@ -246,11 +246,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 650}, - {440.0*pow(2.0,(64)/12.0), 450}, - {440.0*pow(2.0,(55)/12.0), 450}, - {440.0*pow(2.0,(60)/12.0), 450}, - {440.0*pow(2.0,(64)/12.0), 1000} + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} }; #endif diff --git a/quantum/audio.c b/quantum/audio.c index f29d941d7..50e5505fe 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -255,7 +255,12 @@ ISR(TIMER3_COMPA_vect) { note_position++; - if (note_position >= note_length) { + bool end_of_note = false; + if (ICR3 > 0) + end_of_note = (note_position >= (note_length / ICR3 * 0xFFFF)); + else + end_of_note = (note_position >= (note_length * 0x7FF)); + if (end_of_note) { current_note++; if (current_note >= notes_length) { if (notes_repeat) { diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index ae6cddb34..e3030a886 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,11 +33,9 @@ along with this program. If not, see . #include "audio.h" float goodbye[][2] = { - {440.0*pow(2.0,(67)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(60)/12.0), 400}, - {0, 50}, - {440.0*pow(2.0,(55)/12.0), 600}, + {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 12}, }; #endif @@ -90,7 +88,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) action_t action; clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 5, false); + play_notes(&goodbye, 3, false); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3 From 8f85117aa9e060371177e3b523bc89dc7aad19e8 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 15 Apr 2016 14:42:50 -0500 Subject: Added Audio to my Atomic --- keyboard/atomic/Makefile | 67 ++++++---- keyboard/atomic/keymaps/pvc/config.h | 157 ++++++++++++++++++++++ keyboard/atomic/keymaps/pvc/keymap.c | 202 ++++++++++++++++++++++++++++ keyboard/atomic/keymaps/pvc/makefile.mk | 6 +- keyboard/atomic/keymaps/pvc/pvc_atomic.c | 221 ------------------------------- keyboard/planck/Makefile | 31 +---- quantum/audio.h | 4 +- 7 files changed, 405 insertions(+), 283 deletions(-) create mode 100644 keyboard/atomic/keymaps/pvc/config.h create mode 100644 keyboard/atomic/keymaps/pvc/keymap.c delete mode 100644 keyboard/atomic/keymaps/pvc/pvc_atomic.c (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 364efa3fa..1203cf6a3 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -38,31 +38,9 @@ # 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 = 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 -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 = 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 - # Target file name (without extension). TARGET = atomic - # Directory common source filess exist TOP_DIR = ../.. TMK_DIR = ../../tmk_core @@ -73,6 +51,8 @@ TARGET_DIR = . # # project specific files SRC = atomic.c +CONFIG_H = config.h + ifdef keymap KEYMAP = $(keymap) endif @@ -88,7 +68,7 @@ ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") endif else $(error Keymap file does not exist) -endif +endif endif else @@ -107,8 +87,6 @@ endif SRC := $(KEYMAP_FILE) $(SRC) -CONFIG_H = config.h - # MCU name #MCU = at90usb1287 MCU = atmega32u4 @@ -126,7 +104,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -158,11 +135,45 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 +# 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 = 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 +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 + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif -ifeq ($(BACKLIGHT_ENABLE), yes) - SRC += backlight.c endif +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h new file mode 100644 index 000000000..8449fa06d --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -0,0 +1,157 @@ +/* +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 COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } +#define ROWS (int []){ D0, D5, B5, B6, B3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 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/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c new file mode 100644 index 000000000..627f57ff7 --- /dev/null +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -0,0 +1,202 @@ +#include "atomic.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define M_QW 0 +#define M_LW 1 +#define M_RS 2 +#define M_FN 3 + + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* 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, XXXXXXX }, + { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, M(M_FN), KC_LALT, M(M_RS), KC_SPC, XXXXXXX, M(M_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, 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_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) + + +#ifdef AUDIO_ENABLE +float tone_lw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; + +float tone_rs[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 16} +}; + +float tone_fn[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 16}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; +#endif + + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) +{ + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + #ifdef AUDIO_ENABLE + println("PlayNotes FN"); + play_notes(&tone_fn, 8, false); + #endif + layer_on(layer3); + } + else + { + layer_off(layer3); + } +} + +void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) +{ + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} + + +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 M_LW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + println("PlayNotes LW"); + play_notes(&tone_lw, 4, false); + #endif + layer_on(_LW); + update_tri_layer(_LW, _RS, _FN); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _FN); + } + break; + case M_RS: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + println("PlayNotes RS"); + play_notes(&tone_rs, 6, false); + #endif + layer_on(_RS); + update_tri_layer(_LW, _RS, _FN); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _FN); + } + break; + default: + break; + } + return MACRO_NONE; +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} +}; +#endif + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 5, false); + println("Matrix Init"); + #endif +} diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index ff0a9c338..c41102f5d 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -1,16 +1,18 @@ 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) +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 BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 +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 + +CONFIG_H = keymaps/$(KEYMAP)/config.h \ No newline at end of file diff --git a/keyboard/atomic/keymaps/pvc/pvc_atomic.c b/keyboard/atomic/keymaps/pvc/pvc_atomic.c deleted file mode 100644 index 3ddd3e329..000000000 --- a/keyboard/atomic/keymaps/pvc/pvc_atomic.c +++ /dev/null @@ -1,221 +0,0 @@ -#include "atomic.h" -#include "action_layer.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _FN 3 -#define _F1 4 -#define _F2 5 - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* - * .---------------------------------------------------------------------------------------------------------------------- 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | - * '--------------------------------------------------------------------------------------------------------------------------------------' - */ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* 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, XXXXXXX }, - { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M(_FN), KC_LALT, M(_RS), KC_SPC, XXXXXXX, M(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, - }, - [_LW] = { /* LOWERED */ - { 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, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_RS] = { /* RAISED */ - { KC_TILD, 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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - [_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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F1] = { /* 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, - [_F2] = { /* 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, - }, -}; - -#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) - -void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) -{ - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - } -} - -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} - -/* ignore me -void change_quad_layer(uint8_t focus_layer, bool desired_focus_layer_state, uint8_t pair_layer, uint8_t layer3, uint8_t layer4) -{ - - // If desired focus layer state == 1 and current focus layer state == 1 - if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // Do Nothing - } - // If desired focus layer state == 0 and current focus layer state == 1 - else if ((desired_focus_layer_state) && IS_LAYER_ON(layer1)) - { - // If - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} -*/ - -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 _FN: - if (record->event.pressed) { - print("FN_DN\n"); - print_val_bin32(layer_state); - layer_on(_FN); - print_val_bin32(layer_state); - } else { - print("FN_UP\n"); - print_val_bin32(layer_state); - layer_off(_FN); - print_val_bin32(layer_state); - } - break; - - case _RS: - if (record->event.pressed) { - print("RS_DN\n"); - print_val_bin32(layer_state); - layer_on(_RS); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } else { - print("RS_UP\n"); - print_val_bin32(layer_state); - layer_off(_RS); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 0); - print_val_bin32(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN\n"); - print_val_bin32(layer_state); - layer_on(_LW); - //tri_layer++; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } else { - print("LW_UP\n"); - print_val_bin32(layer_state); - layer_off(_LW); - //tri_layer--; - print_val_bin32(layer_state); - //update_tri_layer(_RS, _LW, _FN); - update_quad_layer(_RS, _LW, _F1, _F2, 1); - print_val_bin32(layer_state); - } - break; - - default: - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index c8517e756..83b8303b0 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -157,39 +157,10 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifdef KEYMAP -<<<<<<< HEAD -<<<<<<< HEAD -# 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 -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 -# AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = yes # Unicode -# BLUETOOTH_ENABLE = ye # Enable Bluetooth with the Adafruit EZ-Key HID -# 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 = yes # Breathing sleep LED during USB suspend - - -ifdef BACKLIGHT_ENABLE -======= -ifeq ($(BACKLIGHT_ENABLE), yes) ->>>>>>> master - SRC += backlight.c -======= ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") include keymaps/$(KEYMAP)/makefile.mk endif ->>>>>>> remotes/jackhumbert/new_defaults endif else @@ -212,4 +183,4 @@ VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) -include $(TOP_DIR)/quantum/quantum.mk +include $(TOP_DIR)/quantum/quantum.mk \ No newline at end of file diff --git a/quantum/audio.h b/quantum/audio.h index 99203cea7..31f9a3579 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -6,6 +6,6 @@ void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); -void stop_all_notes(); -void init_notes(); +void stop_all_notes(void); +void init_notes(void); void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file -- cgit v1.2.3 From 2aa51e4416b65317b16660c0676696974b2dcfc5 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 15 Apr 2016 16:32:44 -0500 Subject: Tweaking PVC atomic layout --- keyboard/atomic/Makefile | 30 +++++++++++++++--------------- keyboard/atomic/keymaps/pvc/keymap.c | 13 +++++++++++-- keyboard/atomic/keymaps/pvc/makefile.mk | 27 +++++++++++++-------------- 3 files changed, 39 insertions(+), 31 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 1203cf6a3..3f066aebc 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -51,8 +51,6 @@ TARGET_DIR = . # # project specific files SRC = atomic.c -CONFIG_H = config.h - ifdef keymap KEYMAP = $(keymap) endif @@ -87,6 +85,8 @@ endif SRC := $(KEYMAP_FILE) $(SRC) +CONFIG_H = config.h + # MCU name #MCU = at90usb1287 MCU = atmega32u4 @@ -139,21 +139,21 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # 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 = 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 -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. +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 +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 +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend ifdef KEYMAP diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 627f57ff7..7bfd910a1 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -1,13 +1,15 @@ #include "atomic.h" #include "action_layer.h" + #ifdef AUDIO_ENABLE - #include "audio.h" +#include "audio.h" #endif #define _QW 0 #define _LW 1 #define _RS 2 -#define _FN 3 +#define _AD 3 +#define _FN 4 #define M_QW 0 #define M_LW 1 @@ -62,6 +64,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, + [_ADJ] = { /* ADJUST */ + { 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 }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, }; #define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index c41102f5d..d46996650 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -1,18 +1,17 @@ -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 -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 = 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. +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 +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 +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend CONFIG_H = keymaps/$(KEYMAP)/config.h \ No newline at end of file -- cgit v1.2.3 From 549b797ad1ebb30ebaa19af2cf3b7cc2a2c055bc Mon Sep 17 00:00:00 2001 From: Jason Janse van Rensburg Date: Sat, 16 Apr 2016 01:36:18 +0200 Subject: My Attempt at adapting the Bone2 layout with Neo2 navigation cluster & number block to the Planck. Very much a WIP, will most likely start tweaking further once my Planck kit has dropped --- keyboard/planck/keymaps/bone2planck.c | 112 ++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 keyboard/planck/keymaps/bone2planck.c (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c new file mode 100644 index 000000000..a99e7719f --- /dev/null +++ b/keyboard/planck/keymaps/bone2planck.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "..\..\quantum\keymap_extras\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; +}; -- cgit v1.2.3 From 0faa18eab996c2cfcc5da0b60b702f52335c5854 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 15 Apr 2016 23:38:21 -0400 Subject: audio enable stored in eeprom --- keyboard/planck/keymaps/default/keymap.c | 7 ++++- keyboard/preonic/Makefile | 4 +-- keyboard/preonic/keymaps/default/keymap.c | 12 ++++---- quantum/audio.c | 48 ++++++++++++++++++++++++++++++- quantum/audio.h | 14 ++++++++- tmk_core/common/avr/eeconfig.c | 8 ++++++ tmk_core/common/eeconfig.h | 6 ++++ 7 files changed, 89 insertions(+), 10 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 56092d04f..3f34ba412 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -135,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_AD] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, _______, _______, _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, _______, M(6), _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -231,6 +231,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; + case 6: + if (record->event.pressed) { + audio_toggle(); + } + break; } return MACRO_NONE; }; diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 664aff732..e48052c82 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -139,8 +139,8 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # 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 -AUDIO_ENABLE = YES # Audio output on port C6 +MIDI_ENABLE = yes # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 # UNICODE_ENABLE = YES # Unicode # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 784670784..3da69c215 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -59,11 +59,11 @@ const uint16_t PROGMEM fn_actions[] = { }; float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 600}, - {440.0*pow(2.0,(64)/12.0), 400}, - {440.0*pow(2.0,(55)/12.0), 400}, - {440.0*pow(2.0,(60)/12.0), 400}, - {440.0*pow(2.0,(64)/12.0), 1000}, + {440.0*pow(2.0,(67)/12.0), 4}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 10}, }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -76,8 +76,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef BACKLIGHT_ENABLE backlight_step(); #endif + audio_toggle(); } else { unregister_code(KC_RSFT); + play_notes(&start_up, 5, false); } break; } diff --git a/quantum/audio.c b/quantum/audio.c index 50e5505fe..73985479c 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -8,6 +8,8 @@ #include "audio.h" #include "keymap_common.h" +#include "eeconfig.h" + #define PI 3.14159265 // #define PWM_AUDIO @@ -57,6 +59,25 @@ uint8_t notes_length; bool notes_repeat; uint8_t current_note = 0; +audio_config_t audio_config; + + +void audio_toggle(void) { + audio_config.enable ^= 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_on(void) { + audio_config.enable = 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_off(void) { + audio_config.enable = 0; + eeconfig_write_audio(audio_config.raw); +} + + void stop_all_notes() { voices = 0; #ifdef PWM_AUDIO @@ -129,6 +150,12 @@ void stop_note(double freq) { void init_notes() { + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + #ifdef PWM_AUDIO PLLFRQ = _BV(PDIV2); PLLCSR = _BV(PLLE); @@ -160,7 +187,6 @@ void init_notes() { ISR(TIMER3_COMPA_vect) { - if (note) { #ifdef PWM_AUDIO if (voices == 1) { @@ -288,9 +314,16 @@ ISR(TIMER3_COMPA_vect) { } + if (!audio_config.enable) { + notes = false; + note = false; + } } void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { + +if (audio_config.enable) { + if (note) stop_all_notes(); notes = true; @@ -319,7 +352,12 @@ void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { #endif } +} + void play_sample(uint8_t * s, uint16_t l, bool r) { + +if (audio_config.enable) { + stop_all_notes(); place_int = 0; sample = s; @@ -330,9 +368,15 @@ void play_sample(uint8_t * s, uint16_t l, bool r) { TIMSK3 |= _BV(OCIE3A); #else #endif + +} + } void play_note(double freq, int vol) { + +if (audio_config.enable) { + if (notes) stop_all_notes(); note = true; @@ -367,4 +411,6 @@ void play_note(double freq, int vol) { TCCR3A |= _BV(COM3A1); #endif +} + } \ No newline at end of file diff --git a/quantum/audio.h b/quantum/audio.h index 99203cea7..58270015d 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -3,9 +3,21 @@ #include #include +typedef union { + uint8_t raw; + struct { + bool enable :1; + uint8_t level :7; + }; +} audio_config_t; + +void audio_toggle(void); +void audio_on(void); +void audio_off(void); + void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); \ No newline at end of file +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 5bd47dc6a..d0c3f4f57 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -13,6 +13,9 @@ void eeconfig_init(void) #ifdef BACKLIGHT_ENABLE eeprom_write_byte(EECONFIG_BACKLIGHT, 0); #endif +#ifdef AUDIO_ENABLE + eeprom_write_byte(EECONFIG_AUDIO, 0); +#endif } void eeconfig_enable(void) @@ -43,3 +46,8 @@ void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } #endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } +void eeconfig_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } +#endif \ No newline at end of file diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 3cd1a174f..ddefca134 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -31,6 +31,7 @@ along with this program. If not, see . #define EECONFIG_KEYMAP (uint8_t *)4 #define EECONFIG_MOUSEKEY_ACCEL (uint8_t *)5 #define EECONFIG_BACKLIGHT (uint8_t *)6 +#define EECONFIG_AUDIO (uint8_t *)7 /* debug bit */ @@ -72,4 +73,9 @@ uint8_t eeconfig_read_backlight(void); void eeconfig_write_backlight(uint8_t val); #endif +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void); +void eeconfig_write_audio(uint8_t val); +#endif + #endif -- cgit v1.2.3 From 9d4bfc1bcf9a93b25ce4f7c32d8f3db12c85c23b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 15 Apr 2016 22:40:07 -0500 Subject: Corrected layer macros --- keyboard/atomic/keymaps/pvc/keymap.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 7bfd910a1..7abd7f4f7 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -64,20 +64,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, - [_ADJ] = { /* ADJUST */ - { 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, - { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + [_AD] = { /* ADJUST */ + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, }; -#define IS_LAYER_ON(layer) ((layer_state) & (1<<(layer))) -#define IS_LAYER_OFF(layer) ((!layer_state) & (1<<(layer))) - +#define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) +#define IS_LAYER_OFF(layer) (!IS_LAYER_ON(layer)) #ifdef AUDIO_ENABLE + + + + float tone_lw[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, -- cgit v1.2.3 From d81ef5b7eb888ae2878e60d548854413ee3023c6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 01:19:37 -0400 Subject: new defaults for planck and preonic --- keyboard/planck/keymaps/default/keymap.c | 74 ++++---- keyboard/preonic/Makefile | 55 ++++-- keyboard/preonic/keymaps/default/README.md | 35 +--- keyboard/preonic/keymaps/default/keymap.c | 260 +++++++++++++++++++++++---- keyboard/preonic/keymaps/default/makefile.mk | 1 + 5 files changed, 308 insertions(+), 117 deletions(-) create mode 100644 keyboard/preonic/keymaps/default/makefile.mk (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 3f34ba412..ede08ad7f 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -19,12 +19,16 @@ #define _AD 5 // Macro name shortcuts -#define M_QW 0 -#define M_CM 1 -#define M_DV 2 -#define M_LW 3 -#define M_RS 4 +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) #define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif // Fillers to make layering more clear #define _______ KC_TRNS @@ -47,7 +51,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, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Colemak @@ -65,7 +69,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, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -83,7 +87,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, M(M_LW), KC_SPC, KC_SPC, M(M_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -126,7 +130,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -135,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_AD] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, _______, M(6), _______, _______, M(M_QW), M(M_CM), M(M_DV), _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -146,6 +150,14 @@ const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} +}; + float tone_qw[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, @@ -157,20 +169,20 @@ float tone_cm[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, + {440.0*pow(2.0,(67)/12.0), 12}, {0, 4}, - {440.0*pow(2.0,(71)/12.0), 16} + {440.0*pow(2.0,(71)/12.0), 12} }; float tone_dv[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, + {440.0*pow(2.0,(67)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(69)/12.0), 16}, + {440.0*pow(2.0,(69)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} + {440.0*pow(2.0,(67)/12.0), 8} }; #endif @@ -179,7 +191,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { - case M_QW: + case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_qw, 4, false); @@ -187,7 +199,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_QW); } break; - case M_CM: + case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_cm, 6, false); @@ -195,7 +207,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_CM); } break; - case M_DV: + case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE play_notes(&tone_dv, 8, false); @@ -203,7 +215,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) default_layer_set(1UL<<_DV); } break; - case M_LW: + case _LW: if (record->event.pressed) { layer_on(_LW); update_tri_layer(_LW, _RS, _AD); @@ -212,7 +224,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) update_tri_layer(_LW, _RS, _AD); } break; - case M_RS: + case _RS: if (record->event.pressed) { layer_on(_RS); update_tri_layer(_LW, _RS, _AD); @@ -233,23 +245,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 6: if (record->event.pressed) { - audio_toggle(); + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 5, false); + #endif } break; } return MACRO_NONE; }; -#ifdef AUDIO_ENABLE -float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 12}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 20} -}; -#endif - void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index e48052c82..eaf9ef927 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -126,27 +126,44 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # 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 +# 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 = 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 +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 = 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 -AUDIO_ENABLE = yes # Audio output on port C6 -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID -# RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with MIDI at the same time. - -ifdef BACKLIGHT_ENABLE - SRC += backlight.c +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) endif diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md index d2f43bbdb..e911968dd 100644 --- a/keyboard/preonic/keymaps/default/README.md +++ b/keyboard/preonic/keymaps/default/README.md @@ -1,34 +1 @@ -# The Default Planck Layout - - 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), KC_SPC, KC_SPC, 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), KC_SPC, KC_SPC, 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), 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(_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} - } - }; \ No newline at end of file +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 3da69c215..c52d8472f 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -1,9 +1,7 @@ -// 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 "preonic.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -15,42 +13,150 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) +#define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ + +/* 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 | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { {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_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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_CM] = { /* Colemak */ + +/* 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 | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { {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_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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, -[_DV] = { /* Dvorak */ + +/* 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 | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { {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_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(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, 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_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} + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -[_LW] = { /* LOWER */ + +/* 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 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { {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_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} + {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_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| | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {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}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } }; @@ -58,28 +164,116 @@ const uint16_t PROGMEM fn_actions[] = { }; +#ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 4}, + {440.0*pow(2.0,(55)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 8}, {440.0*pow(2.0,(64)/12.0), 8}, {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 12} +}; + +float tone_qw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 10}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} }; +float tone_cm[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 12} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8} +}; +#endif + + 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: + case _QW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif + default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif + default_layer_set(1UL<<_CM); + } + break; + case _DV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif + default_layer_set(1UL<<_DV); + } + break; + case _LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case _RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: if (record->event.pressed) { register_code(KC_RSFT); #ifdef BACKLIGHT_ENABLE backlight_step(); #endif - audio_toggle(); } else { unregister_code(KC_RSFT); - play_notes(&start_up, 5, false); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 7, false); + #endif } break; } @@ -87,8 +281,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; void matrix_init_user(void) { -#ifdef AUDIO_ENABLE + #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false); -#endif + play_notes(&start_up, 7, false); + #endif } diff --git a/keyboard/preonic/keymaps/default/makefile.mk b/keyboard/preonic/keymaps/default/makefile.mk new file mode 100644 index 000000000..628167ff6 --- /dev/null +++ b/keyboard/preonic/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file -- cgit v1.2.3 From fa2eedb7bd906634b8c500ba0d91638e63eaafed Mon Sep 17 00:00:00 2001 From: Roman Zolotarev Date: Sat, 16 Apr 2016 16:57:58 +0800 Subject: Add Roman's single layer layout based on Norman --- .../keymaps/romanzolotarev-norman-osx/keymap.c | 45 + .../keymaps/romanzolotarev-norman-osx/readme.md | 28 + .../romanzolotarev-norman-osx.hex | 1092 ++++++++++++++++++++ .../romanzolotarev-norman-osx.png | Bin 0 -> 96954 bytes 4 files changed, 1165 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c new file mode 100644 index 000000000..e23c5a1d6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c @@ -0,0 +1,45 @@ +#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) { +}; + +// 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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md new file mode 100644 index 000000000..80475ab21 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex new file mode 100644 index 000000000..1be94c43d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.hex @@ -0,0 +1,1092 @@ +:100000000C94BB010C94FF010C94FF010C94FF01B4 +:100010000C94FF010C94FF010C94FF010C94FF0160 +:100020000C94FF010C94FF010C94E20A0C94B40BA5 +:100030000C94FF010C94FF010C94FF010C94FF0140 +:100040000C94FF010C9432200C94FF010C94FF01DE +:100050000C94FF010C94BD190C94FF010C94FF014A +:100060000C94FF010C94FF010C94FF010C94FF0110 +:100070000C94FF010C94FF010C94FF010C94FF0100 +:100080000C94FF010C94FF010C94FF010C94FF01F0 +:100090000C94FF010C94FF010C94FF010C94FF01E0 +:1000A0000C94FF010C94FF010C94FF01210C430CF4 +:1000B000310D430C310D880CAB0C310D000D130DBF +:1000C000FF0FFF0F3C103C107F10BD10D612D61250 +:1000D000D610D612D711D711AA12D612D612C11223 +:1000E00035002B002971E1003A0000001E001400C9 +:1000F00004001D003B00E2001F001A0016001B0058 +:100100003C00297120000700080006003D002A007D +:100110002100090017001900E300A90022000E00C9 +:100120000A0005000000AA003E00310000002F0078 +:100130000000A8003F000000000030000000AE00FA +:1001400023000D001C0013000000AB002400180069 +:1001500011001000E700AC00250015000C0036006F +:1001600050002C0026000F00120037005100340010 +:10017000270033000B0038005200E6002E002D004F +:100180002800E5004F0000001603450072006700DC +:100190006F0044006F007800200045005A00000006 +:1001A00016034500720067006F0044006F0078007E +:1001B000200045005A0000000403090409026D00F4 +:1001C000040100A0FA090400000103010100092153 +:1001D00011010001223F000705810308000A0904FC +:1001E00001000103010200092111010001224D005B +:1001F0000705820308000A09040200010300000049 +:100200000921110100012236000705830308000AB5 +:10021000090403000103000000092111010001226B +:1002200039000705840310000112011001000000CD +:1002300008EDFE071301000102000105010906A1F6 +:1002400001050719E029E7150025019508750181C9 +:100250000205081901290595057501910295017599 +:100260000391010507190029771500250195787577 +:10027000018102C005010980A10185021601002645 +:10028000B7001A01002AB700751095018100C0055A +:100290000C0901A1018503160100269C021A010028 +:1002A0002A9C02751095018100C005010902A10177 +:1002B0000901A10005091901290515002501950568 +:1002C000750181029501750381010501093009312C +:1002D0001581257F95027508810609381581257FCE +:1002E000950175088106050C0A38021581257F9550 +:1002F0000175088106C0C005010906A1010507199D +:10030000E029E71500250195087501810295017521 +:1003100008810105081901290595057501910295C6 +:1003200001750391010507190029FF150025FF95A7 +:100330000675088100C000000000000000000000F9 +:1003400000010204060A0F17202C3A4A5D71879DAE +:10035000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AD +:100360005D4A3A2C20170F0A060402010000000023 +:1003700000000000000011241FBECFEFDAE0DEBF56 +:10038000CDBF04B603FE24C08091EF019091F0012F +:10039000A091F101B091F2018730904BA740B04B92 +:1003A000B9F41092EF011092F0011092F101109245 +:1003B000F20114BE84B7877F84BF88E10FB6F8943A +:1003C00080936000109260000FBEE0E0FFE30995AB +:1003D00011E0A0E0B1E0E8EEF3E402C005900D9278 +:1003E000A433B107D9F711E0A4E3B1E001C01D9235 +:1003F000AF3EB107E1F70E9426080C94F2210C945D +:100400000000089556985E9825982D9826982E9865 +:1004100027982F98089508950C940B0256985E988B +:1004200025982D9826982E9827982F988FEF90E052 +:10043000909389008093880090938B0080938A002A +:1004400090938D0080938C00259A2D9A2FEF80E752 +:1004500092E0215080409040E1F700C00000269AD1 +:100460002E9A2FEF80E792E0215080409040E1F7F4 +:1004700000C00000279A2F9A2FEF80E792E02150CA +:1004800080409040E1F700C0000025982D982FEFA4 +:1004900080E792E0215080409040E1F700C00000EA +:1004A00026982E982FEF80E792E0215080409040D0 +:1004B000E1F700C0000027982F9856985E9825987D +:1004C0002D9826982E9827982F98089589EA80933A +:1004D000800089E08093810024982C983F988AB10D +:1004E0008F748AB96E98479A8BB1806B8BB9769A64 +:1004F0000E940E020C94020280E28093000180911F +:10050000340181110EC00E94CB0281E0809334013E +:100510002FEF83ED90E3215080409040E1F700C041 +:10052000000080E40E94D1028093000181112EC05E +:100530000E94FB0280930001811128C00E94FB02EF +:1005400080930001811122C08FE30E94FB028093FF +:10055000000181111BC00E94F30280E40E94D102BD +:1005600080930001811112C08CE00E94FB028093F5 +:10057000000181110BC00E94FB02809300018111D8 +:1005800005C08FE30E94FB02809300010E94F302EA +:100590008091000108951092B9008AE08093B8001C +:1005A000089594EA9093BC009091BC0097FFFCCF13 +:1005B0009091B900987F983021F0903111F081E04E +:1005C00008958093BB0084E88093BC008091BC00B8 +:1005D00087FFFCCF8091B900887F883111F080348B +:1005E00071F780E0089584E98093BC008091BC009D +:1005F00084FDFCCF08958093BB0084E88093BC0009 +:100600008091BC0087FFFCCF9091B900987F81E07A +:10061000983209F480E0089584E88093BC008091CA +:10062000BC0087FFFCCF8091BB0008958091000142 +:10063000811115C080E40E94D102809300018111D4 +:100640000CC082E10E94FB0280930001811105C071 +:100650008FEF0E94FB02809300010E94F30284B19D +:10066000807F84B985B1807F85B98AB1837F8AB95B +:100670008BB1837F8BB93E98469808950E947C0287 +:10068000809300010E94160380B38C7080BB81B3FD +:10069000836F81BBA6E3B1E0E4E4F1E08EE08E0F6E +:1006A00011921D928E13FCCF0C946602BF92CF92D2 +:1006B000DF92EF92FF920F931F93CF93DF9380917E +:1006C0000001882379F0809135018F5F8093350197 +:1006D000811108C00E947C0280930001811102C038 +:1006E0000E940E0206E311E0C0E0D0E0DD24D394C6 +:1006F00082E0C82EEE24E394F12CC730D10500F53A +:1007000080910001811164C080E40E94D102809335 +:100710000001811112C082E10E94FB02809300015E +:1007200081110BC0C7010C2E01C0880F0A94EAF793 +:1007300080950E94FB02809300010E94F30248C052 +:10074000CA30A1F028F4C83059F0C93061F005C0B2 +:10075000CC3089F070F0CD3089F0209A289810C004 +:10076000219A29980DC0229A2A980AC0239A2B9878 +:1007700007C0529A01C0539A5B9802C03E9A4698AD +:1007800090EA9A95F1F79FB1799902C082E001C091 +:1007900080E091709D25982B7C9902C084E001C077 +:1007A00080E0892B7D9902C038E001C030E0832BC6 +:1007B0007E9902C020E101C020E0822B9FB190957C +:1007C000991F9927991F9295990F907E892B0FC099 +:1007D00080910001811149C080E40E94D102809380 +:1007E0000001882379F1B12C0E94F3028B2DF801CE +:1007F0009081981719F08083C09201010E9416031E +:1008000021960F5F1F4FCE30D10509F076CF809132 +:100810000101882361F1815080930101882339F01F +:100820008FE99FE00197F1F700C0000020C0A4E429 +:10083000B1E0E6E3F1E0CF01825F91919D938E13E9 +:10084000FCCF15C083E10E94FB028093000181115F +:10085000CACF81E40E94D102809300018111C3CFED +:100860000E940C03B82EB094BFCF80E0C0CF0E948E +:100870000C0281E0DF91CF911F910F91FF90EF90DB +:10088000DF90CF90BF900895E82FF0E0EC5BFE4F33 +:100890008081089508958B3B910578F4883A9105FD +:1008A00040F5853A9105D0F48430910508F0B1C047 +:1008B0008130910509F4ADC06BC0803E910508F40C +:1008C00067C0883E910508F4A4C09C01205F3109EF +:1008D0002031310508F05CC090650895853A910596 +:1008E00009F459C0863A910509F058C082E890E4AD +:1008F0000895883A910509F454C0893A910509F49C +:1009000053C08A3A910509F452C08B3A910509F413 +:1009100051C08C3A910509F450C08D3A910509F403 +:100920004FC0803B910509F44EC08E3A910509F401 +:100930004DC08F3A910509F44CC0813B910509F4F3 +:100940004BC0823B910509F44AC0833B910509F4F1 +:1009500049C0843B910509F448C0853B910509F4E1 +:1009600047C0863B910509F446C0873B910509F4D1 +:1009700045C0883B910509F444C0893B910509F4C1 +:1009800043C08A3B910509F442C080E094E4089595 +:1009900080E090E0089581E890E4089583E890E491 +:1009A000089582EE94E4089589EE94E408958AEE21 +:1009B00094E4089585EB94E4089586EB94E4089517 +:1009C00087EB94E408958CEC94E408958DEC94E422 +:1009D000089583E895E408958AE895E4089582E906 +:1009E00095E4089584E995E4089581E296E40895F4 +:1009F00083E296E4089584E296E4089585E296E41D +:100A0000089586E296E4089587E296E408958AE2DE +:100A100096E40895089596E0799FF001112494E5F5 +:100A2000899FE00DF11D1124E60FF11DEE0FFF1F50 +:100A3000E052FF4F859194910895880F991FFC0112 +:100A4000E05AF040859194910895880F991FFC0118 +:100A5000E052FF4F85919491089526E0729FF00136 +:100A6000112444E5849FE00DF11D1124E60FF11DD2 +:100A7000EE0FFF1FE052FF4F859194919C013A9534 +:100A800021154FE1340708F41CC13F5121153041B5 +:100A900020F49F700E94250508959C013053211574 +:100AA000304118F49927906C0895811520E592073C +:100AB00071F40E94FA124FEF84E39CE041508040B1 +:100AC0009040E1F700C000000E94E219FAC08130B6 +:100AD00020E5920731F48091CD0181608093CD01B2 +:100AE000F0C09C0130552115304108F051C0292F2C +:100AF00033272F70332721303105D9F4AC014370EF +:100B0000552702C0220F331F4A95E2F73C68AC011B +:100B100064E0440F551F6A95E1F744275370242B76 +:100B2000352B73E0880F991F7A95E1F78076992726 +:100B30001DC02230310529F4982F8827816F906AD3 +:100B4000089523303105A9F4AC014370552721E005 +:100B500030E002C0220F331F4A95E2F73C6843E0C1 +:100B6000880F991F4A95E1F7807E9770822B932B0F +:100B7000089524303105E1F4AC014370552721E09C +:100B800030E002C0220F331F4A95E2F73A68E7CF00 +:100B90009C0130572115304118F49F7090620895E0 +:100BA0009C0130582115304118F49F70906A0895C7 +:100BB000803E9105E0F4803C910558F58133910524 +:100BC00009F46FC048F48932910509F463C08A3290 +:100BD000910509F46DC072C089339105E9F082383E +:100BE0009105D1F08533910509F44DC067C0833E6E +:100BF000910581F138F4803E9105B9F0823E91056E +:100C0000D9F05CC0863E910561F1873E9105A1F166 +:100C100055C00E941D0508952091E00120FD02C0ED +:100C200021FF4CC080EE90E049C08091E00180FF40 +:100C3000F9CF89E390E042C08091E00182FF0EC0CD +:100C40008091E00184FF03C080E090E037C083EE34 +:100C500090E034C08091E00182FFF2CF82EE90E01C +:100C60002DC08091E00183FF0BC08091E00184FDE5 +:100C7000EBCF87EE90E022C08091E00183FFF5CFBB +:100C800086EE90E01BC08091E00185FF07C089E2FD +:100C900090E014C08091E00185FFF9CF85E390E0FA +:100CA0000DC08091E00186FF07C08AE290E006C097 +:100CB0008091E00186FFF9CF81E390E00E944B0430 +:100CC0000895089508950C94620680916201089534 +:100CD000CF93DF9300D01F92CDB7DEB79C018091F8 +:100CE000E601843019F593E099833B832A8390933E +:100CF000E9008FEF9091E800815095FD06C095EDD9 +:100D00009A95F1F700008111F5CF8091E80085FFF9 +:100D10000DC040E050E063E070E0CE0101960E941B +:100D2000D2088091E8008E778093E8000F900F90B2 +:100D30000F90DF91CF910895CF93DF9300D01F9252 +:100D4000CDB7DEB72091E601243021F522E02983DA +:100D50009B838A8383E08093E9008FEF9091E80082 +:100D6000815095FD06C095ED9A95F1F7000081112F +:100D7000F5CF8091E80085FF0DC040E050E063E0D2 +:100D800070E0CE0101960E94D2088091E8008E7733 +:100D90008093E8000F900F900F90DF91CF9108950E +:100DA0002091E6012430F1F422E02093E9002FEFB6 +:100DB0003091E800215035FD06C035ED3A95F1F748 +:100DC00000002111F5CF2091E80025FF0BC040E085 +:100DD00050E065E070E00E94D2088091E8008E77D4 +:100DE0008093E8000895CF93DF93EC019091E601A2 +:100DF000943009F046C080910C018823D9F080918D +:100E00000D018823B9F09093E9008FEF9091E800ED +:100E1000815095FD06C095E19A95F1F7000081118A +:100E2000F5CF8091E80085FF2CC040E050E060E104 +:100E300070E017C081E08093E9008FEF9091E800A7 +:100E4000815095FD06C095ED9A95F1F7000081114E +:100E5000F5CF8091E80085FF14C040E050E068E0E5 +:100E600070E0CE010E94D2088091E8008E778093D6 +:100E7000E80080E1FE01A2E5B1E001900D928A95C3 +:100E8000E1F7DF91CF9108958091E501811109C0CB +:100E90000E94670A0E94C40A8091E20084608093E5 +:100EA000E20008951092E501089508950C941F2022 +:100EB0000E9478190E9425200E946A0D0C946306F6 +:100EC00042E061EC81E00E94E10942E061EC82E0F5 +:100ED0000E94E10942E061EC83E00E94E10942E105 +:100EE00061EC84E00C94E1098091E801833009F41D +:100EF00055C030F4813071F0823009F48EC008950D +:100F00008A3009F47AC08B3009F460C0893009F066 +:100F10009CC020C08091E701813A09F096C0809181 +:100F2000E800877F8093E8008091EB019091EC01CD +:100F3000892B21F460E182E591E003C060E080E06C +:100F400090E070E00E941D098091E8008B7780930B +:100F5000E80008958091E701813209F076C0809120 +:100F6000EB019091EC01009719F0039709F06DC027 +:100F70008091E800877F8093E8008091E80082FDFF +:100F800005C08091E6018111F8CF5FC08091F1002A +:100F9000809362018091E8008B7753C08091E701D4 +:100FA000813A09F052C08091EB019091EC01892BBC +:100FB00009F04BC08091E800877F8093E800809122 +:100FC000E80080FFFCCF80910C0136C08091E701E2 +:100FD0008132D9F58091EB019091EC01892BA9F533 +:100FE0008091E800877F8093E8000E94160A809134 +:100FF000E90180930C010C94FA128091E70181328F +:1010000021F58091E800877F8093E8000E94160A0E +:101010008091EA018093630108958091E701813A0C +:10102000A1F48091E800877F8093E8008091E80038 +:1010300080FFFCCF809163018093F1008091E800F4 +:101040008E778093E8000C94160A089584B7877F02 +:1010500084BF88E10FB6F89480936000109260001E +:101060000FBE90E080E80FB6F894809361009093F3 +:1010700061000FBE0E94B90D0E94670A0E94C40A57 +:101080008091E20084608093E20078940E944A0D8F +:101090000E94BB0D82E091E00E94650D0E940D2030 +:1010A0008091E601853069F40E9439198091E4014C +:1010B0008823B1F30E946419882391F30E94BC082D +:1010C000EFCF0E94C10DECCF292F332723303105FC +:1010D000C9F064F42130310581F02230310509F086 +:1010E00043C08DE690E02CEB31E042C02132310567 +:1010F000F1F02232310541F137C082E190E029E27E +:1011000032E036C099278130910541F08230910557 +:1011100041F0892B49F5E8EBF1E005C0E0EAF1E0A8 +:1011200002C0E8E8F1E0849190E09F0121C06430C2 +:10113000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081AA +:10114000318189E090E014C0643070F470E0FB01FC +:10115000EE0FFF1FE65EFE4F20813181FB01EA5E4C +:10116000FE4F808190E004C080E090E020E030E01D +:10117000FA0131832083089580E189BD82E189BD30 +:1011800009B400FEFDCF8091D8008F7D8093D800F8 +:101190008091E00082608093E0008091E00081FD1A +:1011A000FCCF0895CF92DF92EF92FF920F931F939F +:1011B000CF93DF93EC018B016A010E94350A811104 +:1011C00033C0C114D10439F0F60180819181081B2C +:1011D000190BC80FD91FE12CF12C0115110519F1BC +:1011E0008091E80085FD16C08091E8008E7780939D +:1011F000E800C114D10449F0F60180819181E80E24 +:10120000F91EF182E08285E00FC00E94350A882332 +:1012100021F30AC089918093F10001501109FFEF79 +:10122000EF1AFF0ADACF80E0DF91CF911F910F9183 +:10123000FF90EF90DF90CF9008952091ED013091D5 +:10124000EE012617370748F06115710539F4209132 +:10125000E8002E772093E80001C0B90140E0611555 +:101260007105A9F12091E601222309F443C025303C +:1012700009F442C02091E80023FD40C02091E8001D +:1012800022FD32C02091E80020FFE9CF4091F30019 +:101290002091F20030E0342BFC01CF016115710583 +:1012A00059F02830310540F481918093F10061506C +:1012B00071092F5F3F4FF1CF41E02830310509F030 +:1012C00040E02091E8002E772093E800C8CF41113C +:1012D000C9CF0AC08091E601882361F0853061F0B2 +:1012E0008091E80083FD0AC08091E80082FFF2CF80 +:1012F00080E0089582E0089583E0089581E00895F4 +:101300002091ED013091EE012617370748F0611565 +:10131000710539F42091E8002E772093E80001C090 +:10132000B901FC0120E06115710591F18091E601A0 +:10133000882309F440C0853009F43FC08091E8005B +:1013400083FD3DC08091E80082FD2FC08091E800C0 +:1013500080FFE9CF2091F3008091F20090E0922B82 +:101360006115710559F08830910540F4249120935E +:10137000F1003196615071090196F2CF21E0089792 +:1013800009F020E08091E8008E778093E800CBCFD1 +:101390002111CCCF0AC08091E601882361F085300D +:1013A00061F08091E80083FD0AC08091E80082FF2F +:1013B000F2CF80E0089582E0089583E0089581E00F +:1013C0000895982F973058F59093E900981739F0C1 +:1013D0007091EC002091ED005091F00003C0242F9B +:1013E000762F50E021FF19C03091EB003E7F309303 +:1013F000EB003091ED003D7F3093ED003091EB003C +:1014000031603093EB007093EC002093ED0050932B +:10141000F0002091EE0027FF07C09F5FD3CF8F70B1 +:101420008093E90081E0089580E008958091E701CC +:1014300087FF11C08091E80082FD05C08091E60120 +:101440008111F8CF11C08091E8008B770BC080919B +:10145000E601882349F08091E80080FFF8CF809171 +:10146000E8008E778093E80008952091E4003091A1 +:10147000E50095E64091EC00842F817040FF22C08A +:101480008091E80080FD1CC08091E601882391F0E6 +:10149000853091F08091EB0085FD10C04091E40013 +:1014A0005091E5004217530729F39A01915011F723 +:1014B00084E0089582E0089583E0089581E008952E +:1014C00080E008954091E80042FFDECF08950E9439 +:1014D000D50A0E94DD0AE0EEF0E080818160808321 +:1014E000E8EDF0E080818F77808319BCA7EDB0E054 +:1014F0008C918E7F8C9380818F7E80831092E5010A +:1015000008950F931F93CF93DF930E94D50A0E94F3 +:10151000DD0AC8EDD0E088818F7788838881806874 +:10152000888388818F7D888319BC1092E601109290 +:10153000E2011092E4011092E30100EE10E0F801E4 +:1015400080818B7F808388818160888342E060E036 +:1015500080E00E94E109E1EEF0E080818E7F8083EF +:10156000E2EEF0E08081816080838081886080830A +:10157000F80180818E7F8083888180618883DF91FC +:10158000CF911F910F910895E8EDF0E080818F7E5B +:101590008083E7EDF0E080818160808384E082BF1A +:1015A00081E08093E5010C94810AE8EDF0E0808110 +:1015B0008E7F80831092E20008951092DA001092DC +:1015C000E10008951F920F920FB60F9211242F93EE +:1015D0003F934F935F936F937F938F939F93AF93BB +:1015E000BF93EF93FF938091E10082FF0BC0809146 +:1015F000E20082FF07C08091E1008B7F8093E100D1 +:101600000E94490D8091DA0080FF1FC08091D800B0 +:1016100080FF1BC08091DA008E7F8093DA0080917A +:10162000D90080FF0DC080E189BD82E189BD09B488 +:1016300000FEFDCF81E08093E6010E94440705C0D3 +:1016400019BC1092E6010E9452078091E10080FFD0 +:1016500019C08091E20080FF15C08091E2008E7F6A +:101660008093E2008091E20080618093E2008091AB +:10167000D80080628093D80019BC85E08093E60191 +:101680000E9456078091E10084FF30C08091E20003 +:1016900084FF2CC080E189BD82E189BD09B400FED0 +:1016A000FDCF8091D8008F7D8093D8008091E1009C +:1016B0008F7E8093E1008091E2008F7E8093E20034 +:1016C0008091E20081608093E2008091E2018823B2 +:1016D00011F084E007C08091E30087FD02C081E043 +:1016E00001C083E08093E6010E9458078091E100E9 +:1016F00083FF29C08091E20083FF25C08091E10033 +:10170000877F8093E10082E08093E6011092E201FE +:101710008091E1008E7F8093E1008091E2008E7FD6 +:101720008093E2008091E20080618093E20042E0D9 +:1017300060E080E00E94E1098091F0008860809381 +:10174000F0000E945507FF91EF91BF91AF919F91DB +:101750008F917F916F915F914F913F912F910F905A +:101760000FBE0F901F9018951F920F920FB60F92F9 +:1017700011242F933F934F935F936F937F938F9396 +:101780009F93AF93BF93CF93DF93EF93FF93C0915A +:10179000E900CF708091EC00D82FD17080FDD0E8A7 +:1017A0001092E9008091F000877F8093F000789498 +:1017B0000E94F80B1092E9008091F00088608093FD +:1017C000F000CD2BCF70C093E900FF91EF91DF9136 +:1017D000CF91BF91AF919F918F917F916F915F91C9 +:1017E0004F913F912F910F900FBE0F901F90189522 +:1017F0001F93CF93DF93CDB7DEB7AA970FB6F894B8 +:10180000DEBF0FBECDBFE7EEF1E088E08E0F909116 +:10181000F10091938E13FBCF0E9474078091E80032 +:1018200083FF1FC18091E7019091E801492F50E0AB +:101830004A30510508F015C1FA01EA5AFF4F0C94DD +:10184000A721803881F0823809F00BC18091EB012B +:101850008F708093E9008091EB0085FB882780F9E9 +:101860001092E90006C08091E3019091E40191118A +:1018700082609091E800977F9093E8008093F10058 +:101880001092F100C8C0282F2D7F09F0EAC08823EC +:1018900019F0823061F0E5C08091E901813009F0F2 +:1018A000E0C0933009F080E08093E4012BC0809188 +:1018B000E901811127C08091EB018F7009F4D1C03B +:1018C0008093E9002091EB0020FF1CC0933021F4AD +:1018D0008091EB00806214C09091EB009061909336 +:1018E000EB0021E030E0A90102C0440F551F8A95AA +:1018F000E2F74093EA001092EA008091EB008860E2 +:101900008093EB001092E9008091E800877F86C009 +:101910008111A7C01091E9011F778091E3008078C1 +:10192000812B8093E3008091E800877F8093E8001B +:101930000E94160A8091E80080FFFCCF8091E300AE +:1019400080688093E300111102C082E001C083E04F +:101950008093E60186C08058823008F082C0809172 +:10196000E9019091EA018C3D53E0950779F583E018 +:101970008A838AE289834FB7F894DE01139620E0C8 +:101980003EE051E2E32FF0E050935700E49120FF56 +:1019900003C0E295EF703F5FEF708E2F90E0EA306A +:1019A00010F0C79601C0C0968D939D932F5F243190 +:1019B00049F74FBF8091E800877F8093E8006AE293 +:1019C00070E0CE0101960E941D0914C0AE014F5F68 +:1019D0005F4F6091EB010E946408BC01892B09F400 +:1019E00040C09091E800977F9093E80089819A81A8 +:1019F0000E9480098091E8008B778093E80031C0D5 +:101A0000803879F58091E800877F8093E8008091A5 +:101A1000E2018093F1008091E8008E778093E800E6 +:101A20000E94160A1EC081111CC09091E9019230DB +:101A3000C0F48091E800877F8093E8009093E201F2 +:101A40000E94160A8091E201811106C08091E30094 +:101A500087FD02C081E001C084E08093E6010E941E +:101A600060078091E80083FF0AC08091E800877FCB +:101A70008093E8008091EB0080628093EB00AA964F +:101A80000FB6F894DEBF0FBECDBFDF91CF911F918F +:101A900008950895CF938091E6018823A1F0C09125 +:101AA000E900CF709091EC00892F817090FD80E863 +:101AB000C82B1092E9008091E80083FD0E94F80B8A +:101AC000CF70C093E900CF910895909369018093FE +:101AD00068010895E0916801F0916901309721F063 +:101AE0000190F081E02D099480E00895E091680173 +:101AF000F0916901309721F00280F381E02D099483 +:101B00000895E0916801F0916901309721F0048017 +:101B1000F581E02D099408952091660130916701C7 +:101B20008217930771F09093670180936601E091AB +:101B30006801F0916901309721F00680F781E02D6E +:101B400009940895209164013091650182179307EB +:101B500071F09093650180936401E0916801F091C8 +:101B60006901309721F00084F185E02D09940895F2 +:101B700008950C94B80D0E947E190E943E030C94A7 +:101B8000441ACF92DF92EF92FF920F931F93CF935D +:101B9000DF93CDB7DEB72B970FB6F894DEBF0FBE3D +:101BA000CDBF0E9456038BE6C82E81E0D82E00E000 +:101BB00010E0E02E802F0E944404F60141916F0155 +:101BC000F42EF826B1F40F5F1F4F0E30110589F780 +:101BD0008FEF89838A831B820E9487198160782F07 +:101BE0009D838C8349815A816B818D810E94640E13 +:101BF00040C09091CD0191FF04C08B870E944A04A0 +:101C00008B8520E030E04F2D50E0922FBA01022E5C +:101C100002C0759567950A94E2F760FF24C02E8391 +:101C2000EF8221E030E0690102C0CC0CDD1C9A9506 +:101C3000E2F790E08C219D21892B09F420E0288790 +:101C40000E9487198160782F9A8789874E815F81EA +:101C500068858A850E94640EF801E559FE4F8081EF +:101C6000C826C08206C02F5F3F4F2630310569F677 +:101C7000AACF0E942B1D10916A010E946A0D1817AD +:101C8000A1F00E946A0D80936A012B960FB6F8941A +:101C9000DEBF0FBECDBFDF91CF911F910F91FF909F +:101CA000EF90DF90CF900C9463062B960FB6F894CC +:101CB000DEBF0FBECDBFDF91CF911F910F91FF907F +:101CC000EF90DF90CF900895CF93DF93CDB7DEB73D +:101CD0002B970FB6F894DEBF0FBECDBF4F8358874A +:101CE00069877A878B87DE01119686E0FD01119264 +:101CF0008A95E9F785E0FE01379601900D928A9565 +:101D0000E1F749815A816B817C818D819E810E949E +:101D100094152B960FB6F894DEBF0FBECDBFDF91A2 +:101D2000CF9108950895CF93882309F4C2C0C82F96 +:101D3000823859F40E946A0D81FDBBC089E30E947C +:101D40003D180E940A1989E30CC0833879F40E9477 +:101D50006A0D80FDAEC083E50E943D180E940A19FD +:101D600083E50E947F18CF910C940A19843859F4A6 +:101D70000E946A0D82FD9DC087E40E943D180E946A +:101D80000A1987E4EECF8CEF8C0F813A48F48C2F40 +:101D90000E94721F81118DC08C2F0E943D18E3CFCD +:101DA00080E28C0F883048F4C77081E001C0880F52 +:101DB000CA95EAF70E94C318D6CF8BE58C0F833003 +:101DC00078F4C53A29F0C63A31F083E890E005C0CE +:101DD00081E890E002C082E890E0CF910C948C0DF5 +:101DE00088E58C0F833108F064C0C83A39F1C93AEC +:101DF00041F1CA3A49F1CB3A51F1CC3A59F1CD3AD5 +:101E000061F1C03B69F1CE3A71F1CF3A79F1C13B52 +:101E100081F1C23B89F1C33B91F1C43B99F1C53BD0 +:101E2000A1F1C63BA9F1C73BB1F1C83BB9F1C93B30 +:101E3000C1F1CA3BC9F180E090E038C082EE90E089 +:101E400035C089EE90E032C08AEE90E02FC085EB7D +:101E500090E02CC086EB90E029C087EB90E026C094 +:101E60008CEC90E023C08DEC90E020C083E891E002 +:101E70001DC08AE891E01AC082E991E017C084E9A8 +:101E800091E014C081E292E011C083E292E00EC0C2 +:101E900084E292E00BC085E292E008C086E292E024 +:101EA00005C087E292E002C08AE292E0CF910C94F2 +:101EB000A20DCF910895882309F44BC0823859F4BC +:101EC0000E946A0D81FF45C089E30E943D180E946F +:101ED0000A1989E30CC0833871F40E946A0D80FFEF +:101EE00038C083E50E943D180E940A1983E50E94CC +:101EF0007F180C940A19843859F40E946A0D82FFE5 +:101F000028C087E40E943D180E940A1987E4EFCF99 +:101F10009CEF980F913A58F390E2980F983050F454 +:101F2000877091E001C0990F8A95EAF7892F0E9486 +:101F3000C918DFCF9BE5980F933020F480E090E044 +:101F40000C948C0D885A833120F480E090E00C943E +:101F5000A20D0895882321F00E94C3180C940A1939 +:101F60000895882321F00E94C9180C940A19089535 +:101F7000BF92CF92DF92EF92FF920F931F93CF9376 +:101F8000DF9300D000D000D0CDB7DEB725E0FC0154 +:101F9000DE01119601900D922A95E1F7FC01D080A7 +:101FA00011810281258122952F7043815481452B17 +:101FB00009F4FCC21F3F21F4FFEFDF1609F4F6C25B +:101FC0007C012E830E94920ED9821A8369817A81C4 +:101FD000802F0E943918182FB92E0E94EE170E94E8 +:101FE000B5162E81002319F00E94E0182E81EB2DEA +:101FF000E295EF70F0E0E05AFF4F0C94A7218B2D93 +:10200000807F9B2D9F70F92E882319F0F29480EF2A +:10201000F822002389F0FF2009F475C280E2810FC5 +:10202000883020F48F2D0E94C31803C08F2D0E948A +:10203000D3180E940A1967C2812F0E945B0FFF20EC +:1020400009F4B4C2105E8F2D183018F40E94C9181C +:1020500002C00E94D91826960FB6F894DEBF0FBEB4 +:10206000CDBFDF91CF911F910F91FF90EF90DF9047 +:10207000CF90BF900C940A193B2D307F8B2D8F7021 +:10208000303211F08295807F112319F0113021F147 +:102090002CC00023B9F0222309F4A0C1213009F09B +:1020A0009DC126960FB6F894DEBF0FBECDBFDF915F +:1020B000CF911F910F91FF90EF90DF90CF90BF9045 +:1020C0000C94F318222319F0213009F46FC28E8387 +:1020D0000E94F6188E8196C1002321F0223008F06C +:1020E00065C27CC1211162C28DC1002321F022236F +:1020F00009F474C108C2222309F484C119C22B2D2A +:1021000026952695237030E02115310521F02130E8 +:102110003105D1F04BC2002321F0812F9B2D93700C +:1021200002C080E090E026960FB6F894DEBF0FBEA6 +:10213000CDBFDF91CF911F910F91FF90EF90DF9076 +:10214000CF90BF900C948C0D002321F0812F9B2DFC +:10215000937002C080E090E026960FB6F894DEBF40 +:102160000FBECDBFDF91CF911F910F91FF90EF90E8 +:10217000DF90CF90BF900C94A20D812F002319F017 +:102180000E94331C02C00E949B1C26960FB6F89436 +:10219000DEBF0FBECDBFDF91CF911F910F91FF909A +:1021A000EF90DF90CF90BF900C94201D8B2D83700B +:1021B00009F07BC00111FAC1812F82958695877045 +:1021C000880F880F912F9F70C92ED12CE12CF12CF4 +:1021D000082E04C0CC0CDD1CEE1CFF1C0A94D2F7A8 +:1021E00014FF12C04FE050E060E070E004C0440F04 +:1021F000551F661F771F8A95D2F7CB01BA016095EC +:1022000070958095909503C060E070E0CB012B2D18 +:10221000269526952370422F50E042305105D9F083 +:102220004330510569F16C297D298E299F29413060 +:10223000510551F126960FB6F894DEBF0FBECDBF03 +:10224000DF91CF911F910F91FF90EF90DF90CF9092 +:10225000BF900C94DC166C297D298E299F29269627 +:102260000FB6F894DEBF0FBECDBFDF91CF911F91A7 +:102270000F91FF90EF90DF90CF90BF900C94F816E5 +:102280000E94DC16C701B60126960FB6F894DEBF91 +:102290000FBECDBFDF91CF911F910F91FF90EF90B7 +:1022A000DF90CF90BF900C94C016002319F08B2DB7 +:1022B000817001C08695882309F478C1812F8295A9 +:1022C00086958770880F880F912F9F70C92ED12C0B +:1022D000E12CF12C082E04C0CC0CDD1CEE1CFF1CE4 +:1022E0000A94D2F714FF12C04FE050E060E070E0B3 +:1022F00004C0440F551F661F771F8A95D2F7CB0184 +:10230000BA01609570958095909503C060E070E08B +:10231000CB012B2D269526952370422F50E042307D +:102320005105D9F04330510569F16C297D298E2979 +:102330009F294130510551F126960FB6F894DEBF22 +:102340000FBECDBFDF91CF911F910F91FF90EF9006 +:10235000DF90CF90BF900C94B6176C297D298E2901 +:102360009F2926960FB6F894DEBF0FBECDBFDF9132 +:10237000CF911F910F91FF90EF90DF90CF90BF9082 +:102380000C94D2170E94B617C701B60126960FB655 +:10239000F894DEBF0FBECDBFDF91CF911F910F919B +:1023A000FF90EF90DF90CF90BF900C949A17103F62 +:1023B000D1F118F4103E50F4A1C0123F09F463C0EB +:1023C00008F44CC0133F09F473C098C01F708B2DE4 +:1023D0008F710023A1F00E943317812F26960FB62C +:1023E000F894DEBF0FBECDBFDF91CF911F910F914B +:1023F000FF90EF90DF90CF90BF900C94AA0F0E94B7 +:102400005417812F26960FB6F894DEBF0FBECDBFAE +:10241000DF91CF911F910F91FF90EF90DF90CF90C0 +:10242000BF900C94B10F0023A9F02111BFC08B2DD8 +:102430008F7126960FB6F894DEBF0FBECDBFDF9129 +:10244000CF911F910F91FF90EF90DF90CF90BF90B1 +:102450000C947917223008F0A9C0E9CF0023A9F025 +:102460008B2D8F7126960FB6F894DEBF0FBECDBFB1 +:10247000DF91CF911F910F91FF90EF90DF90CF9060 +:10248000BF900C943317002359F38B2D8F71269630 +:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 +:1024A0000F91FF90EF90DF90CF90BF900C94541756 +:1024B000002399F08B2D8F7126960FB6F894DEBF0E +:1024C0000FBECDBFDF91CF911F910F91FF90EF9085 +:1024D000DF90CF90BF900C941E1726960FB6F894FD +:1024E000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1024F000EF90DF90CF90BF900C9414170023A9F0B9 +:10250000222309F4ADCF812F26960FB6F894DEBFB3 +:102510000FBECDBFDF91CF911F910F91FF90EF9034 +:10252000DF90CF90BF900C94930E222309F4ADCF8F +:10253000812F26960FB6F894DEBF0FBECDBFDF9178 +:10254000CF911F910F91FF90EF90DF90CF90BF90B0 +:102550000C945B0F4B2D4F70612FC7010E9401023D +:1025600026960FB6F894DEBF0FBECDBFDF91CF9198 +:102570001F910F91FF90EF90DF90CF90BF900C9440 +:1025800038164B2D4F70612FC70126960FB6F89461 +:10259000DEBF0FBECDBFDF91CF911F910F91FF9096 +:1025A000EF90DF90CF90BF900C940A0526960FB65F +:1025B000F894DEBF0FBECDBFDF91CF911F910F9179 +:1025C000FF90EF90DF90CF90BF9008950E94E018A9 +:1025D0000E94F0180E94B5180E940A190E94D11D8D +:1025E0000E94201D80E090E00E948C0D80E090E031 +:1025F0000C94A20D0E94D0180C94E6120E942E1882 +:10260000292F22952F7030E02C3031054CF42A30E0 +:1026100031056CF4225031092230310588F407C0AD +:102620002C30310549F02F30310531F009C0803EA2 +:1026300048F0803F29F406C093FB882780F908956D +:1026400080E0089581E00895CF93DF9300D000D01B +:102650001F92CDB7DEB70F900F900F900F900F9095 +:10266000DF91CF910895CF93DF9300D000D000D0B9 +:10267000CDB7DEB726960FB6F894DEBF0FBECDBF3E +:10268000DF91CF9108951F93CF93DF93C09179018C +:1026900016E080917A01C81799F0D0E01C9FF001F4 +:1026A0001D9FF00D1124E558FE4F4081518162813C +:1026B0007381848195810E9433132196C770E9CF7D +:1026C000DF91CF911F9108954091AB015091AC01E2 +:1026D0006091AD017091AE018091AF019091B00118 +:1026E0000C9433138091B00182958F7009F054C01F +:1026F0008091AD01882309F44FC080917901A091A8 +:102700007A016091AB017091AC014091AE015091A2 +:10271000AF01B6E08A1709F43FC090E041155105BA +:10272000C1F17F3F11F46F3FA1F1B89FF001B99F54 +:10273000F00D1124E558FE4F218172132AC020812B +:10274000621327C02281211124C0238134812417E0 +:10275000350710F421503109241B350B283C310575 +:10276000C0F42091B0012F7020612093B00126E0C9 +:10277000289FF001299FF00D1124E058FE4F808121 +:102780008F70806180838BEA91E00E94B80F0C9477 +:10279000431301968770BECF0895CF92DF92EF92D8 +:1027A000FF920F931F93CF93DF93CDB7DEB762975E +:1027B0000FB6F894DEBF0FBECDBF8C0185E0F801E7 +:1027C000DE011D9601900D928A95E1F7D8014C919A +:1027D00011965C91119712966C9112971396CD9069 +:1027E000DC9014973091AB017091AC018091AE01F7 +:1027F0009091AF01009709F46BC17F3F19F43F3FFF +:1028000009F466C1E090AD01EE2009F4C0C020914A +:10281000B001C816D90628F0F601E81BF90BCF0164 +:1028200004C0809590958C0D9D1DFF24F394883CE9 +:10283000910578F0F12C207F09F0C6C07C2DD98A53 +:10284000C88A89890E9424138BEA91E00E94B80FFC +:10285000B1C0822F807F09F046C0751314C03413B5 +:1028600012C0611110C02F7020612093B0010E942E +:1028700064138BEA91E00E94B80F8091B001D801F7 +:1028800015968C932EC0CD2819F15F3F11F44F3F60 +:10289000F9F0F62E61111CC08091790120917A0126 +:1028A00036E0821709F45AC090E0389FF001399F52 +:1028B000F00D1124E558FE4F7181571306C0708149 +:1028C000471303C07281711103C001968770E9CF6D +:1028D000F62E662309F418C18091B00181608093BF +:1028E000B001F12C11C1751308C0341306C0611179 +:1028F00004C08091B001D801C3C04D875E878D852B +:102900009E856A8B0E94FE126A898823E1F1662304 +:10291000D1F12091B001822F82958F7090E00297C3 +:1029200074F08091AB019091AC0198878F831986E8 +:10293000DB86CA862C87CE0107960E94B80F86E0F8 +:10294000F801ABEAB1E001900D928A95E1F70E949F +:1029500072130E946413FF24F394D6C04D875E87E0 +:102960008D859E850E942E18292F22952F7030E08C +:10297000223031050CF0BCC09F7009F0B6C0805EFB +:10298000883008F4C1C0C8010E94B80FE4CFC8164F +:10299000D90608F453C0F601E81BF90BCF01883CB7 +:1029A000910508F450C0F12C7C2DD98AC88A8989F8 +:1029B0000E942413EBEAF1E086E0DF011D928A9584 +:1029C000E9F70E946413A0C0751314C0341312C039 +:1029D000611110C08091B001F8018583C8010E9487 +:1029E000B80F86E0EBEAF1E0DF011D928A95E9F786 +:1029F000FE2C8AC04D875E878D859E856A8B0E94DE +:102A0000FE126A89882309F4BECF662309F4BBCF7E +:102A10002091B001822F82958F7090E002970CF484 +:102A20008ECF8091AB019091AC019A8389831B82F8 +:102A3000DD82CC822E83CE0101967FCF809590954A +:102A40008C0D9D1DACCFF62E662309F49CCF75131B +:102A50002EC034132CC02091B00120FD1FC0822F46 +:102A600082958F70D9F0D80115962C9315978F30D9 +:102A700049F08F5F982F9295907F822F8F70892BCE +:102A800015968C93C8010E94B80F86E0F801ABEA56 +:102A9000B1E001900D928A95E1F793CF86E0F801BD +:102AA000ABEAB1E001900D928A95E1F72DC04D8718 +:102AB0005E878D859E850E94FE12811140CF809198 +:102AC000B00181608093B001C8010E94B80F1CC0A2 +:102AD000662309F458CF4D875E878D859E850E94B9 +:102AE000FE12882309F44FCF2ACF811148CF0CC0A2 +:102AF000243031050CF047CF9F7009F440CFF80126 +:102B00009581907F09F03BCF8F2D62960FB6F89498 +:102B1000DEBF0FBECDBFDF91CF911F910F91FF9010 +:102B2000EF90DF90CF9008951F93CF93DF93CDB7B1 +:102B3000DEB72C970FB6F894DEBF0FBECDBF4F8324 +:102B4000588769877A878B879C87CE0107960E9472 +:102B5000CD13882369F08F8198852A853B85232BA7 +:102B6000F1F19F3F09F063C08F3F09F060C037C0AB +:102B700086E0FE013796DE01119601900D928A954E +:102B8000E1F76F817885EA85FB85309741F17F3FDA +:102B900011F46F3F21F120917A0130E0C9010196D3 +:102BA000877099274091790150E08417950709F4BF +:102BB00047C069837A83FD83EC8396E0929FD001BE +:102BC000939FB00D1124A558BE4FFE013196019080 +:102BD0000D929A95E1F780937A010E94431316E0D3 +:102BE0008091790190917A018917C1F1189FC001F4 +:102BF000112485589E4F0E94CD13882379F1E091CE +:102C000079011E9FF0011124E558FE4F408151814A +:102C100062817381848195810E943313809179014F +:102C200090E001968770992780937901D9CF4F81E1 +:102C3000588569857A858B859C850E943313CFCF13 +:102C40000E94FA1210927A0110927901EBEAF1E0F7 +:102C500086E0DF011D928A95E9F7C1CF2C960FB669 +:102C6000F894DEBF0FBECDBFDF91CF911F910895C5 +:102C7000EF92FF920F931F93CF93DF938C01892BD9 +:102C800009F46CC0F12CEE24E394E8012196F801DC +:102C90008491843740F4843008F051C0813081F051 +:102CA000823019F15BC0853709F444C0A8F19CE774 +:102CB000980F903708F052C08F770E945B0F41C089 +:102CC0000E5F1F4FFE01C49180E28C0F883048F4E4 +:102CD000C7708E2D01C0880FCA95EAF70E94E318CD +:102CE00014C08C2F0E94930E2DC00E5F1F4FFE014B +:102CF000C49180E28C0F883058F4C7708E2D01C0CB +:102D0000880FCA95EAF70E94E9180E940A191AC0AA +:102D10008C2F0E945B0F16C00E5F1F4FFE01C491E7 +:102D2000CC2381F08FE99FE00197F1F700C000000C +:102D3000C150F6CF0E5F1F4FFE01F49003C00E94FA +:102D4000930E8E018F2D882309F49FCFEFE9FFE0CA +:102D50003197F1F700C000008150F5CFDF91CF919E +:102D60001F910F91FF90EF90089508956093B50122 +:102D70007093B6018093B7019093B8010C94E6125A +:102D80000F931F930091B5011091B6012091B701E7 +:102D90003091B801DC01CB01802B912BA22BB32BFE +:102DA0008093B5019093B601A093B701B093B80199 +:102DB0001F910F910C94E6120F931F930091B50190 +:102DC0001091B6012091B7013091B801DC01CB011F +:102DD00080239123A223B3238093B5019093B6015E +:102DE000A093B701B093B8011F910F910C94E61214 +:102DF0000F931F930091B5011091B6012091B70177 +:102E00003091B801DC01CB0180279127A227B3279D +:102E10008093B5019093B601A093B701B093B80128 +:102E20001F910F910C94E6121092B1011092B20111 +:102E30001092B3011092B4010C94E61241E050E0FC +:102E400060E070E004C0440F551F661F771F8A952D +:102E5000D2F74093B1015093B2016093B3017093E4 +:102E6000B4010C94E61241E050E060E070E004C070 +:102E7000440F551F661F771F8A95D2F78091B101C5 +:102E80009091B201A091B301B091B401482B592B9C +:102E90006A2B7B2B4093B1015093B2016093B30135 +:102EA0007093B4010C94E61241E050E060E070E0F1 +:102EB00004C0440F551F661F771F8A95D2F74095AF +:102EC0005095609570958091B1019091B201A0915B +:102ED000B301B091B401482359236A237B23409363 +:102EE000B1015093B2016093B3017093B4010C949B +:102EF000E61241E050E060E070E004C0440F551F6E +:102F0000661F771F8A95D2F78091B1019091B20127 +:102F1000A091B301B091B401482759276A277B27B4 +:102F20004093B1015093B2016093B3017093B40127 +:102F30000C94E6120F931F930091B1011091B2010E +:102F40002091B3013091B401DC01CB01802B912B96 +:102F5000A22BB32B8093B1019093B201A093B30144 +:102F6000B093B4011F910F910C94E6120F931F932D +:102F70000091B1011091B2012091B3013091B401DF +:102F8000DC01CB0180239123A223B3238093B101E1 +:102F90009093B201A093B301B093B4011F910F912C +:102FA0000C94E6120F931F930091B1011091B2019E +:102FB0002091B3013091B401DC01CB01802791272E +:102FC000A227B3278093B1019093B201A093B301DC +:102FD000B093B4011F910F910C94E6120895CF9213 +:102FE000DF92EF92FF920F931F93CF93DF938C01A9 +:102FF000C090B501D090B601E090B701F090B80153 +:103000008091B1019091B201A091B301B091B4014E +:10301000C82AD92AEA2AFB2ACFE1D0E0D701C60183 +:103020000C2E04C0B695A795979587950A94D2F76C +:1030300080FF06C0B8018C2F0E942D05019721F456 +:10304000219760F780E001C08C2FDF91CF911F9115 +:103050000F91FF90EF90DF90CF900895CF93DF9383 +:10306000EC010E94EF17BE010E942D05DF91CF9168 +:103070000895CB010E942E18089590910C01992378 +:1030800021F090910D01911109C020910E01309114 +:103090000F01F90132969FEF40E01FC0982F9695DF +:1030A000969596959F3050F5E0910E01F0910F01A5 +:1030B000E90FF11D877021E030E0A90102C0440F43 +:1030C000551F8A95E2F7CA019181892B8183089562 +:1030D0009F3F39F04F5F4E3041F051915813F8CF78 +:1030E0000DC05111F7CF942FF5CF9F3F39F0F90163 +:1030F000E90FF11D97FDFA95828308950895909147 +:103100000C01992321F090910D01911109C020919A +:103110000E0130910F01F9013296205F3F4F1FC021 +:10312000982F9695969596959F30F0F4E0910E0124 +:10313000F0910F01E90FF11D877021E030E0A90146 +:1031400002C0440F551F8A95E2F7CA01809591810C +:103150008923818308953196E217F30729F090813E +:103160009813F9CF1082F7CF089581E090E0E091B5 +:103170000E01F0910F01E80FF91F108201968031C6 +:103180009105A9F708959091CC01892B8093CC01EA +:10319000089580959091CC0189238093CC01089566 +:1031A0001092CC0108959091CB01892B8093CB0193 +:1031B000089580959091CB0189238093CB01089548 +:1031C0001092CB0108959091CA01892B8093CA0176 +:1031D000089580959091CA0189238093CA0108952A +:1031E0001092CA0108958093B90108951092B9010F +:1031F000089580910E0190910F01FC0131969C0180 +:10320000205F3F4F80E0919191118F5FE217F307AC +:10321000D1F70895E0910E01F0910F018091CC015A +:103220008083E0910E01F0910F0190818091CB019C +:10323000892B8083E0910E01F0910F0190818091A4 +:10324000CA01892B80838091B901882361F0E091C4 +:103250000E01F0910F019081892B80830E94F91853 +:1032600081111092B90180910E0190910F010C947F +:10327000760D8091E601843021F11092CE0120E498 +:1032800088E190E00FB6F894A895809360000FBE97 +:103290002093600080E00E94630683B7817F846092 +:1032A00083BF83B7816083BF7894889583B78E7F0F +:1032B00083BF88E10FB6F89480936000109260009D +:1032C0000FBE089508950895CF930E9462190E9439 +:1032D00056030E946319C0E08C2F0E9444048111A0 +:1032E00004C0CF5FCE30C1F701C081E0CF91089517 +:1032F0000E94FA120E946A0D0C94630682E084BD5B +:1033000093E095BD9AEF97BD80936E0008952FB717 +:10331000F8948091CF019091D001A091D101B0910A +:10332000D2012FBF0895CF92DF92EF92FF920F93B9 +:103330001F932FB7F8944091CF015091D001609125 +:10334000D1017091D2012FBF6A017B01EE24FF24CD +:103350008C0120E030E0C016D106E206F30610F43E +:10336000415051099A01281B390BC9011F910F9136 +:10337000FF90EF90DF90CF9008951F920F920FB6BD +:103380000F9211248F939F93AF93BF938091CF019E +:103390009091D001A091D101B091D2010196A11DCF +:1033A000B11D8093CF019093D001A093D101B09330 +:1033B000D201BF91AF919F918F910F900FBE0F904F +:1033C0001F9018950E94670AF8942FEF87EA91E6FC +:1033D000215080409040E1F700C0000087E090EB72 +:1033E000DC018093EF019093F001A093F101B09381 +:1033F000F2019CE088E10FB6F894A89580936000F4 +:103400000FBE90936000FFCFEF92FF920F931F9338 +:10341000CF93DF93D82FC0E08C2F0E94440400E0AC +:1034200010E0E82EF12CC701002E02C0959587957B +:103430000A94E2F780FD06C00F5F1F4F06301105AA +:1034400091F709C0602F7C2F80E00E940B05D813F4 +:10345000F3CF81E004C0CF5FCE30F1F680E0DF91A2 +:10346000CF911F910F91FF90EF900895CF93C82FA8 +:103470008CE20E94041A882321F08C2FCF910C94A7 +:10348000041A80E0CF910895CF930E948B1B811185 +:1034900002C00E94711BC5E6C15049F00E9456034C +:1034A0008FE39CE90197F1F700C00000F5CF89E2B6 +:1034B0000E94361A811113C18AE20E94361A8111C4 +:1034C0000E94711B85E00E94361A81110E94E21948 +:1034D0000E94961B8093CD0187E00E94361A8823B4 +:1034E000A9F18BE10E94361A882351F08091CD0119 +:1034F00081FB222720F991E0922790FB81F90EC0F1 +:103500008EE00E94361A882361F08091CD0182FB03 +:10351000222720F991E0922790FB82F98093CD0138 +:1035200015C080E10E94361A9091CD01882341F0A8 +:1035300093FB222720F981E0822780FB93F904C0C6 +:10354000892F809580FB90F99093CD018091CD01DA +:103550000E949A1B0E94A81B8093E00180EE0E94AB +:10356000361A882341F08091E001982F909590FBC6 +:1035700080F98093E00189E30E94361A882359F08C +:103580008091E00181FB222720F991E0922790FBB6 +:1035900081F98093E00182EE0E94361A882359F067 +:1035A0008091E00182FB222720F991E0922790FB95 +:1035B00082F98093E00186EE0E94361A882359F042 +:1035C0008091E00183FB222720F991E0922790FB74 +:1035D00083F98093E00183EE0E94361A882359F024 +:1035E0008091E00184FB222720F991E0922790FB53 +:1035F00084F98093E00185E30E94361A882359F00C +:103600008091E00185FB222720F991E0922790FB31 +:1036100085F98093E00181E30E94361A882359F0EE +:103620008091E00186FB222720F991E0922790FB10 +:1036300086F98093E00181E10E94361A882359F0CF +:103640008091E00187FB222720F991E0922790FBEF +:1036500087F98093E0018091E0010E94AC1B80918A +:10366000E00187FB882780F980930D0187E20E94A3 +:10367000361AC82F8EE10E94361A8111C2608FE17E +:103680000E94361A8111C46080E20E94361A8111AC +:10369000C86081E20E94361A8111C06182E20E94F4 +:1036A000361A8111C06283E20E94361A8111C06409 +:1036B00084E20E94361A882311F0C06802C0CC232D +:1036C00029F08C2F0E94A31B6C2F03C00E949F1B0C +:1036D000682F70E080E090E0CF910C94B616CF9107 +:1036E00008956DEE7EEF80E090E00E94DD2160E0C5 +:1036F00082E090E00E94CF2160E083E090E00E94B1 +:10370000CF2160E084E090E00E94CF2160E085E07E +:1037100090E00C94CF2180E090E00E94C92121E04C +:103720008D3E9E4F09F020E0822F089582E090E0C8 +:103730000C94C121682F82E090E00C94CF2183E0AB +:1037400090E00C94C121682F83E090E00C94CF218D +:1037500084E090E00C94C121682F84E090E00C9408 +:10376000CF218091D50180FF0BC06091130185E0CE +:10377000689FB001112475956795759567952BC065 +:1037800081FF09C06091130185E0689FB001112499 +:103790007595679520C082FF07C06091130185E091 +:1037A000689FB001112417C09091D6019923D1F0E0 +:1037B00060911201961788F72091130185E0289FE8 +:1037C00090011124929FA001939F500D112470E04D +:1037D000CA010E9493216038710540F4611571059A +:1037E00039F002C065E070E0862F08958FE70895F4 +:1037F00081E008958091D50180FF08C0609111019A +:1038000070E0759567957595679521C081FF06C035 +:103810006091110170E07595679519C082FF04C031 +:103820006091110170E010C09091D6019923C1F010 +:10383000609110019617A0F780911101899FC00136 +:10384000112470E00E9493216038710528F46115FD +:10385000710521F0862F08958FE7089581E008957E +:1038600061E070E0F4CF803F21F40E94B11B8195AC +:1038700004C0813F29F40E94B11B8093D9010895AF +:10388000823F21F40E94B11B819504C0833F29F43B +:103890000E94B11B8093D8010895893F19F40E94BA +:1038A000FA1B05C08A3F31F40E94FA1B8195809370 +:1038B000DA0108958B3F21F40E94FA1B819504C020 +:1038C0008C3F29F40E94FA1B8093DB010895843F0A +:1038D00021F48091D701816017C0853F21F4809148 +:1038E000D701826011C0863F21F48091D7018460A6 +:1038F0000BC0873F21F48091D701886005C0883FC5 +:1039000031F48091D70180618093D70108958D3F74 +:1039100021F48091D50181600BC08E3F21F480910C +:10392000D501826005C08F3F29F48091D501846064 +:103930008093D5010895803F39F48091D90187FFA4 +:103940006CC01092D90169C0813F29F48091D901DE +:103950001816BCF362C09091D801823F29F497FFFA +:103960005CC01092D80159C0833F19F41916CCF3EA +:1039700054C0893F41F48091DA0118160CF04DC013 +:103980001092DA014AC08A3F29F48091DA0187FF58 +:1039900044C0F6CF8B3F39F48091DB0187FF3DC0F7 +:1039A0001092DB013AC08C3F29F48091DB0118169C +:1039B000BCF333C0843F21F48091D7018E7F17C0C0 +:1039C000853F21F48091D7018D7F11C0863F21F47E +:1039D0008091D7018B7F0BC0873F21F48091D70165 +:1039E000877F05C0883F31F48091D7018F7E809317 +:1039F000D70113C08D3F21F48091D5018E7F0BC07C +:103A00008E3F21F48091D5018D7F05C08F3F29F431 +:103A10008091D5018B7F8093D5018091D801811150 +:103A20000EC08091D90181110AC08091DA01811103 +:103A300006C08091DB01811102C01092D601089569 +:103A400087ED91E00E94810D0E9487199093D40127 +:103A50008093D30108951F93CF93DF938091D30177 +:103A60009091D4010E949319AC019091D6019923B1 +:103A700021F02091140130E006C0209115018AE068 +:103A8000289F900111244217530708F486C08091A3 +:103A9000D801C091D901D091DA011091DB018111D7 +:103AA00007C0C11176C0D11174C0111172C075C0A8 +:103AB0009F3F19F09F5F9093D601181624F40E943F +:103AC000B11B8093D8018091D80187FF05C00E9467 +:103AD000B11B81958093D8011C1624F40E94B11B60 +:103AE0008093D9018091D90187FF05C00E94B11B45 +:103AF00081958093D9016091D801662339F1C091F5 +:103B0000D901CC2319F1772767FD7095872F972F5F +:103B10000E94A42023E333E343E35FE30E940821F0 +:103B20000E9471206093D8016C2F772767FD7095F4 +:103B3000872F972F0E94A42023E333E343E35FE31F +:103B40000E9408210E9471206093D9011D1624F45F +:103B50000E94FA1B8093DA018091DA0187FF05C089 +:103B60000E94FA1B81958093DA01111624F40E94B9 +:103B7000FA1B8093DB018091DB0187FF05C00E9467 +:103B8000FA1B81958093DB01DF91CF911F910C94FB +:103B9000201D9F3F09F08ECF96CFDF91CF911F91CF +:103BA0000895E7EDF1E085E0DF011D928A95E9F7E0 +:103BB0001092D6011092D5010895833081F128F436 +:103BC000813059F08230D1F00895853009F449C030 +:103BD000B8F1863009F456C0089580911501262F5A +:103BE00030E0280F311D2F3F310524F4680F60931A +:103BF000150108958FEF80931501089580911401A8 +:103C0000262F30E0280F311D2F3F310524F4680F97 +:103C10006093140108958FEF8093140108958091AB +:103C20001301262F30E0280F311D2F3F310524F4DA +:103C3000680F6093130108958FEF80931301089527 +:103C400080911201262F30E0280F311D2F3F3105C2 +:103C500024F4680F6093120108958FEF809312018E +:103C6000089580911101262F30E0280F311D2F3F3C +:103C7000310524F4680F6093110108958FEF80934C +:103C80001101089580911001262F30E0280F311D79 +:103C90002F3F310524F4680F6093100108958FEFD2 +:103CA000809310010895833011F128F4813049F098 +:103CB000823091F00895853081F120F18630C1F194 +:103CC000089580911501681720F4861B80931501D3 +:103CD000089510921501089580911401681720F439 +:103CE000861B809314010895109214010895809109 +:103CF0001301681720F4861B809313010895109216 +:103D00001301089580911201681720F4861B809397 +:103D100012010895109212010895809111016817FF +:103D200020F4861B809311010895109211010895CB +:103D300080911001681720F4861B8093100108956C +:103D40001092100108950F931F938D3109F46AC0EA +:103D500008F03FC08E3009F484C0C0F4873009F405 +:103D60006DC068F4863009F0B5C08091CD01817FC7 +:103D70008E7F8093CD0181E08093DD01ACC08830DF +:103D800009F457C08B3009F46AC0A4C0863109F425 +:103D900066C078F4803109F477C0813109F09AC0A7 +:103DA0000E94FA1290910D0181E0892780930D0104 +:103DB00056C0893109F453C08B3109F08BC0809112 +:103DC000CD0181FB222720F991E0922790FB81F918 +:103DD00051C0853309F475C048F4873209F471C0C5 +:103DE00008F45EC0893209F46CC074C0833430F4C6 +:103DF0008A3308F053C0883391F16CC0833409F4DE +:103E000060C0883409F066C00E94FA120FEF13ED0B +:103E100020E3015010402040E1F700C000000E9464 +:103E2000E2191DC00E942B200E946A0D0E946306A9 +:103E300016C00E94961B0E94A81B11C09091CD0134 +:103E4000892F8095817080FB90F929F096609860A9 +:103E50009093CD0140C0997F977F9093CD0181E0F1 +:103E60003AC08091CD0182FB222720F991E0922770 +:103E700090FB82F98093CD01992389F38091CD0144 +:103E800081608093CD01EBCF8091CD0183FB222710 +:103E900020F991E0922790FB83F9ECCF895301C080 +:103EA0008D5141E050E060E070E08A019B0104C068 +:103EB000000F111F221F331F8A95D2F7C901B801C5 +:103EC00004C061E070E080E090E00E94B6160E94BD +:103ED000FA12C5CF80E01F910F91089580E00895F8 +:103EE00080E00895CF93C82F8091DD01813079F073 +:103EF00018F08230E9F187C0E0910E01F0910F01D6 +:103F00008081813169F0823209F07FC009C0E0917F +:103F10000E01F0910F018081813111F0823261F444 +:103F20008C2F0E946E1F811104C08C2F0E94A31E33 +:103F30001DC081E090E01AC08C2F0E94701F81117B +:103F400014C0C43179F048F4CB3079F0C03109F0B5 +:103F500060C082E08093DD0108C0C93219F0C83327 +:103F600021F057C01092DD0154C081E0817053C030 +:103F7000C93289F118F5C43171F1A8F4C73009F0DC +:103F800046C08AE08093150194E19093140193E078 +:103F9000909313018093120188E08093110188E2CD +:103FA0008093100134C0CE51C63088F5EC2FF0E07C +:103FB000E65DFE4F80818093DC0129C0CE34E9F0BC +:103FC00020F4CB3421F56AE013C0C13579F0C23555 +:103FD000F1F461E00DC08091DC01882319F01092AA +:103FE000DC0115C081E08093DD0115C061E006C0F1 +:103FF0008091DC010E94DD1D0AC06AE08091DC0135 +:104000000E94531E04C01092DD0180E004C081E0D4 +:1040100002C080E0ABCFCF910895E1E8F0E080816D +:10402000886080838081816080838FB7F89493E07B +:104030009093890090ED909388008FBF0895EFE6EC +:10404000F0E08081826080830895EFE6F0E0808177 +:104050008D7F80830895EFE6F0E0908182E08927EC +:10406000808308951F920F920FB60F9211242F9301 +:104070003F934F935F936F937F938F939F93AF93F0 +:10408000BF93EF93FF938091DE019091DF01019642 +:104090009093DF018093DE01811103C082E00E94D2 +:1040A0006306E091DF01E695E695F0E0EA5CFC4FFF +:1040B000E4918091DE018E1303C080E00E946306CC +:1040C000FF91EF91BF91AF919F918F917F916F91F0 +:1040D0005F914F913F912F910F900FBE0F901F90C6 +:1040E000189504D06894B1118DC0089570D088F0EF +:1040F0009F5790F0B92F9927B751A0F0D1F0660FD4 +:10410000771F881F991F1AF0BA95C9F712C0B130EE +:1041100081F077D0B1E0089574C0672F782F882799 +:10412000B85F39F0B93FCCF3869577956795B3952D +:10413000D9F73EF490958095709561957F4F8F4F9C +:104140009F4F0895E89409C097FB3EF490958095A1 +:10415000709561957F4F8F4F9F4F9923A9F0F92F4D +:1041600096E9BB279395F695879577956795B795CB +:10417000F111F8CFFAF4BB0F11F460FF1BC06F5FB1 +:104180007F4F8F4F9F4F16C0882311F096E911C0C3 +:10419000772321F09EE8872F762F05C0662371F0E4 +:1041A00096E8862F70E060E02AF09A95660F771FF8 +:1041B000881FDAF7880F9695879597F9089557FD28 +:1041C0009058440F551F59F05F3F71F04795880F85 +:1041D00097FB991F61F09F3F79F08795089512161C +:1041E00013061406551FF2CF4695F1DF08C01616C8 +:1041F00017061806991FF1CF869571056105089479 +:104200000895E894BB2766277727CB0197F908958F +:104210000BD078C069D028F06ED018F0952309F043 +:104220005AC05FC01124EECFCADFA0F3959FD1F32F +:10423000950F50E0551F629FF001729FBB27F00D54 +:10424000B11D639FAA27F00DB11DAA1F649F6627A9 +:10425000B00DA11D661F829F2227B00DA11D621FF8 +:10426000739FB00DA11D621F839FA00D611D221FB2 +:10427000749F3327A00D611D231F849F600D211D96 +:10428000822F762F6A2F11249F5750408AF0E1F039 +:1042900088234AF0EE0FFF1FBB1F661F771F881F82 +:1042A00091505040A9F79E3F510570F014C0AACF1D +:1042B0005F3FECF3983EDCF3869577956795B7956D +:1042C000F795E7959F5FC1F7FE2B880F911D969597 +:1042D000879597F9089597F99F6780E870E060E007 +:1042E00008959FEF80EC089500240A94161617068F +:1042F00018060906089500240A94121613061406D7 +:1043000005060895092E0394000C11F4882352F039 +:10431000BB0F40F4BF2B11F460FF04C06F5F7F4FF1 +:104320008F4F9F4F089597FB072E16F4009407D0E8 +:1043300077FD09D00E94AD2107FC05D03EF4909591 +:1043400081959F4F0895709561957F4F0895EE0F69 +:10435000FF1F0590F491E02D0994AA1BBB1B51E1AE +:1043600007C0AA1FBB1FA617B70710F0A61BB70BE5 +:10437000881F991F5A95A9F780959095BC01CD018A +:104380000895F999FECF92BD81BDF89A992780B51D +:104390000895A8E1B0E042E050E00C94E421262F1B +:1043A000F999FECF1FBA92BD81BD20BD0FB6F8941A +:1043B000FA9AF99A0FBE019608950E94CF21272FED +:1043C0000C94D021DC01CB01FC01F999FECF06C091 +:1043D000F2BDE1BDF89A319600B40D9241505040C3 +:0843E000B8F70895F894FFCF2F +:1043E80020026506F306D0069C0668060101BA019C +:1043F80028080A03140A3F4D3639F702AA02740244 +:104408003B02CE01E701000219020102030405067E +:044418000708090088 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png new file mode 100644 index 000000000..4b9433be2 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png differ -- cgit v1.2.3 From 86169833c597fa5f2b5226e1587c48a6692ec017 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 15:47:17 -0400 Subject: updates to preonic default, music mode integrated --- keyboard/preonic/keymaps/default/keymap.c | 160 ++++++++++++++++++++---------- quantum/audio.c | 100 ++++++++++--------- 2 files changed, 165 insertions(+), 95 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index c52d8472f..6824f68b6 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -1,31 +1,40 @@ #include "preonic.h" #include "action_layer.h" +#include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" + #define SCALE (int []){ 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 // 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 _AD 5 +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 5 +#define _MUSIC 6 // Macro name shortcuts -#define QWERTY M(_QW) -#define COLEMAK M(_CM) -#define DVORAK M(_DV) -#define LOWER M(_LW) -#define RAISE M(_RS) +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) #define M_BL 5 #ifdef AUDIO_ENABLE #define AUD_OFF M(6) #define AUD_ON M(7) #endif +#define MUS_OFF M(8) +#define MUS_ON M(9) // Fillers to make layering more clear #define _______ KC_TRNS @@ -46,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |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_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}, @@ -67,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |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_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}, @@ -88,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |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_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}, @@ -109,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_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_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}, @@ -130,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_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_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}, @@ -151,10 +160,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_AD] = { +[_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}, {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -166,24 +186,20 @@ const uint16_t PROGMEM fn_actions[] = { #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(55)/12.0), 12}, - {0, 2}, - {440.0*pow(2.0,(67)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(67)/12.0), 12}, - {0, 2}, - {440.0*pow(2.0,(67)/12.0), 12} + {440.0*pow(2.0,(50)/12.0), 20}, + {440.0*pow(2.0,(62)/12.0), 8}, + {440.0*pow(2.0,(54)/12.0), 20}, + {440.0*pow(2.0,(62)/12.0), 8} }; -float tone_qw[][2] = { +float tone_qwerty[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, {440.0*pow(2.0,(67)/12.0), 16} }; -float tone_cm[][2] = { +float tone_colemak[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, @@ -192,7 +208,7 @@ float tone_cm[][2] = { {440.0*pow(2.0,(71)/12.0), 12} }; -float tone_dv[][2] = { +float tone_dvorak[][2] = { {440.0*pow(2.0,(59)/12.0), 8}, {440.0*pow(2.0,(60)/12.0), 8}, {0, 4}, @@ -202,53 +218,66 @@ float tone_dv[][2] = { {0, 4}, {440.0*pow(2.0,(67)/12.0), 8} }; + +float tone_music[][2] = { + {440.0*pow(2.0,(48)/12.0), 8}, + {440.0*pow(2.0,(50)/12.0), 8}, + {440.0*pow(2.0,(52)/12.0), 8}, + {440.0*pow(2.0,(53)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(57)/12.0), 8}, + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8} +}; #endif const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - // MACRODOWN only works in this function switch(id) { - case _QW: + case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qw, 4, false); + play_notes(&tone_qwerty, 4, false); #endif - default_layer_set(1UL<<_QW); + eeconfig_write_default_layer(1UL<<_QWERTY); + default_layer_set(1UL<<_QWERTY); } break; - case _CM: + case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_cm, 6, false); + play_notes(&tone_colemak, 6, false); #endif - default_layer_set(1UL<<_CM); + eeconfig_write_default_layer(1UL<<_COLEMAK); + default_layer_set(1UL<<_COLEMAK); } break; - case _DV: + case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dv, 8, false); + play_notes(&tone_dvorak, 8, false); #endif - default_layer_set(1UL<<_DV); + eeconfig_write_default_layer(1UL<<_DVORAK); + default_layer_set(1UL<<_DVORAK); } break; - case _LW: + case _LOWER: if (record->event.pressed) { - layer_on(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RS: + case _RAISE: if (record->event.pressed) { - layer_on(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case M_BL: @@ -272,7 +301,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 7, false); + play_notes(&start_up, 4, false); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_music, 8, false); + layer_on(_MUSIC); #endif } break; @@ -280,9 +325,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +uint8_t starting_note = 0x0C; +int offset = 7; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)261.626)*pow(2.0, -2.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)261.626)*pow(2.0, -2.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} + void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 7, false); + play_notes(&start_up, 4, false); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 73985479c..5edcccdbe 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -32,6 +32,8 @@ int voice_place = 0; double frequency = 0; int volume = 0; long position = 0; +int duty_place = 1; +int duty_counter = 0; double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; @@ -98,53 +100,55 @@ void stop_all_notes() { } void stop_note(double freq) { - #ifdef PWM_AUDIO - freq = freq / SAMPLE_RATE; - #endif - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { + if (note) { #ifdef PWM_AUDIO - TIMSK3 &= ~_BV(OCIE3A); - #else - TIMSK3 &= ~_BV(OCIE3A); - TCCR3A &= ~_BV(COM3A1); + freq = freq / SAMPLE_RATE; #endif - frequency = 0; - volume = 0; - note = false; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - double starting_f = frequency; - if (frequency < freq) { - sliding = true; - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { - frequency = f; + for (int i = 7; i >= 0; i--) { + if (frequencies[i] == freq) { + frequencies[i] = 0; + volumes[i] = 0; + for (int j = i; (j < 7); j++) { + frequencies[j] = frequencies[j+1]; + frequencies[j+1] = 0; + volumes[j] = volumes[j+1]; + volumes[j+1] = 0; + } } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { - frequency = f; + } + voices--; + if (voices < 0) + voices = 0; + if (voices == 0) { + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + frequency = 0; + volume = 0; + note = false; + } else { + double freq = frequencies[voices - 1]; + int vol = volumes[voices - 1]; + double starting_f = frequency; + if (frequency < freq) { + sliding = true; + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + frequency = f; + } + sliding = false; + } else if (frequency > freq) { + sliding = true; + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { + frequency = f; + } + sliding = false; } - sliding = false; + frequency = freq; + volume = vol; } - frequency = freq; - volume = vol; } } @@ -239,13 +243,19 @@ ISR(TIMER3_COMPA_vect) { if (frequency > 0) { // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period - if (place > 10) { + voice_place %= voices; + if (place > (frequencies[voice_place] / 500)) { voice_place = (voice_place + 1) % voices; place = 0.0; } ICR3 = (int)(((double)F_CPU) / frequencies[voice_place]); // Set max to the period - OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1; // Set compare to half the period + OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1 * duty_place; // Set compare to half the period place++; + // if (duty_counter > (frequencies[voice_place] / 500)) { + // duty_place = (duty_place % 3) + 1; + // duty_counter = 0; + // } + // duty_counter++; } #endif } @@ -375,7 +385,7 @@ if (audio_config.enable) { void play_note(double freq, int vol) { -if (audio_config.enable) { +if (audio_config.enable && voices < 8) { if (notes) stop_all_notes(); -- cgit v1.2.3 From ab19ebd08a8b955775e6fa94cdf6b8d128d8b43c Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 18:51:58 -0400 Subject: MAGIC functionality, AG swap in default layout --- keyboard/planck/keymaps/default/README.md | 32 ---- keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 19 +-- quantum/keymap_common.c | 250 +++++++++++++++++------------- quantum/keymap_common.h | 28 +++- tmk_core/common.mk | 3 + tmk_core/common/keyboard.c | 8 +- tmk_core/common/keymap.h | 3 - tmk_core/common/magic.c | 36 +++++ tmk_core/common/magic.h | 6 + 10 files changed, 226 insertions(+), 161 deletions(-) create mode 100644 tmk_core/common/magic.c create mode 100644 tmk_core/common/magic.h (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md index d2f43bbdb..de9680b49 100644 --- a/keyboard/planck/keymaps/default/README.md +++ b/keyboard/planck/keymaps/default/README.md @@ -1,34 +1,2 @@ # The Default Planck Layout - 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), KC_SPC, KC_SPC, 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), KC_SPC, KC_SPC, 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), 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(_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} - } - }; \ No newline at end of file diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index eaf9ef927..9199968c3 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -130,7 +130,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # 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 = 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) diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 6824f68b6..e1f9b6202 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -153,9 +153,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Audoff|Aud on| | |Qwerty|Colemk|Dvorak| | | + * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | | | |Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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}, - {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -231,6 +231,10 @@ float tone_music[][2] = { }; #endif +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_write_default_layer(default_layer); + default_layer_set(default_layer); +} const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -240,8 +244,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_qwerty, 4, false); #endif - eeconfig_write_default_layer(1UL<<_QWERTY); - default_layer_set(1UL<<_QWERTY); + persistant_default_layer_set(1UL<<_QWERTY); } break; case _COLEMAK: @@ -249,8 +252,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_colemak, 6, false); #endif - eeconfig_write_default_layer(1UL<<_COLEMAK); - default_layer_set(1UL<<_COLEMAK); + persistant_default_layer_set(1UL<<_COLEMAK); } break; case _DVORAK: @@ -258,8 +260,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE play_notes(&tone_dvorak, 8, false); #endif - eeconfig_write_default_layer(1UL<<_DVORAK); - default_layer_set(1UL<<_DVORAK); + persistant_default_layer_set(1UL<<_DVORAK); } break; case _LOWER: diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 3a00d36f0..b91916685 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -27,6 +27,8 @@ along with this program. If not, see . #include "keymap_midi.h" #include "bootloader.h" +extern keymap_config_t keymap_config; + #include #include #ifdef AUDIO_ENABLE @@ -47,120 +49,9 @@ action_t action_for_key(uint8_t layer, keypos_t key) // 16bit keycodes - important uint16_t keycode = keymap_key_to_keycode(layer, key); - if (keycode >= 0x0100 && keycode < 0x2000) { - // Has a modifier - action_t action; - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key - return action; - } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits - // This means we have 4,096 FN macros at our disposal - return keymap_func_to_action(keycode & 0xFFF); - } else if (keycode >= 0x3000 && keycode < 0x4000) { - // When the code starts with 3, it's an action macro. - action_t action; - action.code = ACTION_MACRO(keycode & 0xFF); - return action; -#ifdef BACKLIGHT_ENABLE - } else if (keycode >= BL_0 && keycode <= BL_15) { - action_t action; - action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); - return action; - } else if (keycode == BL_DEC) { - action_t action; - action.code = ACTION_BACKLIGHT_DECREASE(); - return action; - } else if (keycode == BL_INC) { - action_t action; - action.code = ACTION_BACKLIGHT_INCREASE(); - return action; - } else if (keycode == BL_TOGG) { - action_t action; - action.code = ACTION_BACKLIGHT_TOGGLE(); - return action; - } else if (keycode == BL_STEP) { - action_t action; - action.code = ACTION_BACKLIGHT_STEP(); - return action; -#endif - } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here - action_t action; - clear_keyboard(); - #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false); - #endif - _delay_ms(250); - #ifdef ATREUS_ASTAR - *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific - #endif - bootloader_jump(); - return action; - } else if (keycode == DEBUG) { // DEBUG is 0x5001 - // TODO: Does this actually work? - action_t action; - print("\nDEBUG: enabled.\n"); - debug_enable = true; - return action; - } else if (keycode >= 0x5000 && keycode < 0x6000) { - // Layer movement shortcuts - // See .h to see constraints/usage - int type = (keycode >> 0x8) & 0xF; - if (type == 0x1) { - // Layer set "GOTO" - int when = (keycode >> 0x4) & 0x3; - int layer = keycode & 0xF; - action_t action; - action.code = ACTION_LAYER_SET(layer, when); - return action; - } else if (type == 0x2) { - // Momentary layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_LAYER_MOMENTARY(layer); - return action; - } else if (type == 0x3) { - // Set default layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_DEFAULT_LAYER_SET(layer); - return action; - } else if (type == 0x4) { - // Set default layer - int layer = keycode & 0xFF; - action_t action; - action.code = ACTION_LAYER_TOGGLE(layer); - return action; - } -#ifdef MIDI_ENABLE - } else if (keycode >= 0x6000 && keycode < 0x7000) { - action_t action; - action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); - return action; -#endif - } else if (keycode >= 0x7000 && keycode < 0x8000) { - action_t action; - action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - return action; - } else if (keycode >= 0x8000 && keycode < 0x9000) { - action_t action; - action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); - return action; -#ifdef UNICODE_ENABLE - } else if (keycode >= 0x8000000) { - action_t action; - uint16_t unicode = keycode & ~(0x8000); - action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8); - return action; -#endif - } else { - - } - switch (keycode) { case KC_FN0 ... KC_FN31: return keymap_fn_to_action(keycode); -#ifdef BOOTMAGIC_ENABLE case KC_CAPSLOCK: case KC_LOCKING_CAPS: if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { @@ -224,7 +115,6 @@ action_t action_for_key(uint8_t layer, keypos_t key) return keycode_to_action(KC_BSLASH); } return keycode_to_action(KC_BSPACE); -#endif default: return keycode_to_action(keycode); } @@ -265,6 +155,142 @@ static action_t keycode_to_action(uint16_t keycode) case KC_TRNS: action.code = ACTION_TRANSPARENT; break; + case 0x0100 ... 0x1FFF: ; + // Has a modifier + // Split it up + action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key + break; + case 0x2000 ... 0x2FFF: + // Is a shortcut for function layer, pull last 12bits + // This means we have 4,096 FN macros at our disposal + return keymap_func_to_action(keycode & 0xFFF); + break; + case 0x3000 ... 0x3FFF: ; + // When the code starts with 3, it's an action macro. + action.code = ACTION_MACRO(keycode & 0xFF); + break; + #ifdef BACKLIGHT_ENABLE + case BL_0 ... BL_15: + action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); + 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 + case RESET: ; // RESET is 0x5000, which is why this is here + clear_keyboard(); + #ifdef AUDIO_ENABLE + play_notes(&goodbye, 3, false); + #endif + _delay_ms(250); + #ifdef ATREUS_ASTAR + *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific + #endif + bootloader_jump(); + break; + case DEBUG: ; // DEBUG is 0x5001 + print("\nDEBUG: enabled.\n"); + debug_enable = true; + break; + case 0x5002 ... 0x50FF: + // MAGIC actions (BOOTMAGIC without the boot) + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + /* keymap config */ + keymap_config.raw = eeconfig_read_keymap(); + if (keycode == MAGIC_SWAP_CONTROL_CAPSLOCK) { + keymap_config.swap_control_capslock = 1; + } else if (keycode == MAGIC_CAPSLOCK_TO_CONTROL) { + keymap_config.capslock_to_control = 1; + } else if (keycode == MAGIC_SWAP_LALT_LGUI) { + keymap_config.swap_lalt_lgui = 1; + } else if (keycode == MAGIC_SWAP_RALT_RGUI) { + keymap_config.swap_ralt_rgui = 1; + } else if (keycode == MAGIC_NO_GUI) { + keymap_config.no_gui = 1; + } else if (keycode == MAGIC_SWAP_GRAVE_ESC) { + keymap_config.swap_grave_esc = 1; + } else if (keycode == MAGIC_SWAP_BACKSLASH_BACKSPACE) { + keymap_config.swap_backslash_backspace = 1; + } else if (keycode == MAGIC_HOST_NKRO) { + keymap_config.nkro = 1; + } else if (keycode == MAGIC_SWAP_ALT_GUI) { + keymap_config.swap_lalt_lgui = 1; + keymap_config.swap_ralt_rgui = 1; + } + /* UNs */ + else if (keycode == MAGIC_UNSWAP_CONTROL_CAPSLOCK) { + keymap_config.swap_control_capslock = 0; + } else if (keycode == MAGIC_UNCAPSLOCK_TO_CONTROL) { + keymap_config.capslock_to_control = 0; + } else if (keycode == MAGIC_UNSWAP_LALT_LGUI) { + keymap_config.swap_lalt_lgui = 0; + } else if (keycode == MAGIC_UNSWAP_RALT_RGUI) { + keymap_config.swap_ralt_rgui = 0; + } else if (keycode == MAGIC_UNNO_GUI) { + keymap_config.no_gui = 0; + } else if (keycode == MAGIC_UNSWAP_GRAVE_ESC) { + keymap_config.swap_grave_esc = 0; + } else if (keycode == MAGIC_UNSWAP_BACKSLASH_BACKSPACE) { + keymap_config.swap_backslash_backspace = 0; + } else if (keycode == MAGIC_UNHOST_NKRO) { + keymap_config.nkro = 0; + } else if (keycode == MAGIC_UNSWAP_ALT_GUI) { + keymap_config.swap_lalt_lgui = 0; + keymap_config.swap_ralt_rgui = 0; + } + eeconfig_write_keymap(keymap_config.raw); + break; + case 0x5100 ... 0x5FFF: ; + // Layer movement shortcuts + // See .h to see constraints/usage + int type = (keycode >> 0x8) & 0xF; + if (type == 0x1) { + // Layer set "GOTO" + int when = (keycode >> 0x4) & 0x3; + int layer = keycode & 0xF; + action.code = ACTION_LAYER_SET(layer, when); + } else if (type == 0x2) { + // Momentary layer + int layer = keycode & 0xFF; + action.code = ACTION_LAYER_MOMENTARY(layer); + } else if (type == 0x3) { + // Set default layer + int layer = keycode & 0xFF; + action.code = ACTION_DEFAULT_LAYER_SET(layer); + } else if (type == 0x4) { + // Set default layer + int layer = keycode & 0xFF; + action.code = ACTION_LAYER_TOGGLE(layer); + } + break; + #ifdef MIDI_ENABLE + case 0x6000 ... 0x6FFF: + action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); + break; + #endif + case 0x7000 ... 0x7FFF: + action.code = ACTION_MODS_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + case 0x8000 ... 0x8FFF: + action.code = ACTION_LAYER_TAP_KEY((keycode >> 0x8) & 0xF, keycode & 0xFF); + break; + #ifdef UNICODE_ENABLE + case 0x8000000 ... 0x8FFFFFF: + uint16_t unicode = keycode & ~(0x8000); + action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8); + break; + #endif default: action.code = ACTION_NO; break; diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 7452a1ff3..ce87e4770 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -30,7 +30,6 @@ along with this program. If not, see . // #include "print.h" #include "debug.h" -#ifdef BOOTMAGIC_ENABLE /* NOTE: Not portable. Bit field order depends on implementation */ typedef union { uint16_t raw; @@ -45,8 +44,6 @@ typedef union { bool nkro:1; }; } keymap_config_t; -keymap_config_t keymap_config; -#endif /* translates key to keycode */ @@ -168,6 +165,30 @@ extern const uint16_t fn_actions[]; #define RESET 0x5000 #define DEBUG 0x5001 +// MAGIC keycodes +#define MAGIC_SWAP_CONTROL_CAPSLOCK 0x5002 +#define MAGIC_UNSWAP_CONTROL_CAPSLOCK 0x5003 +#define MAGIC_CAPSLOCK_TO_CONTROL 0x5004 +#define MAGIC_UNCAPSLOCK_TO_CONTROL 0x5005 +#define MAGIC_SWAP_LALT_LGUI 0x5006 +#define MAGIC_UNSWAP_LALT_LGUI 0x5007 +#define MAGIC_SWAP_RALT_RGUI 0x5008 +#define MAGIC_UNSWAP_RALT_RGUI 0x5009 +#define MAGIC_NO_GUI 0x500a +#define MAGIC_UNNO_GUI 0x500b +#define MAGIC_SWAP_GRAVE_ESC 0x500c +#define MAGIC_UNSWAP_GRAVE_ESC 0x500d +#define MAGIC_SWAP_BACKSLASH_BACKSPACE 0x500e +#define MAGIC_UNSWAP_BACKSLASH_BACKSPACE 0x500f +#define MAGIC_HOST_NKRO 0x5010 +#define MAGIC_UNHOST_NKRO 0x5011 +#define MAGIC_SWAP_ALT_GUI 0x5012 +#define MAGIC_UNSWAP_ALT_GUI 0x5013 + +#define AG_SWAP MAGIC_SWAP_ALT_GUI +#define AG_NORM MAGIC_UNSWAP_ALT_GUI + + // GOTO layer - 16 layers max // when: // ON_PRESS = 1 @@ -213,4 +234,5 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); #define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer))) #define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer))) + #endif diff --git a/tmk_core/common.mk b/tmk_core/common.mk index f8006c670..9cb2eb8ec 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -21,6 +21,9 @@ ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE +else + SRC += $(COMMON_DIR)/magic.c + SRC += $(COMMON_DIR)/avr/eeconfig.c endif ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index 302b3ec87..1d9981848 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -27,7 +27,11 @@ along with this program. If not, see . #include "command.h" #include "util.h" #include "sendchar.h" -#include "bootmagic.h" +#ifdef BOOTMAGIC_ENABLE + #include "bootmagic.h" +#else + #include "magic.h" +#endif #include "eeconfig.h" #include "backlight.h" #ifdef MOUSEKEY_ENABLE @@ -86,6 +90,8 @@ void keyboard_init(void) #ifdef BOOTMAGIC_ENABLE bootmagic(); +#else + magic(); #endif #ifdef BACKLIGHT_ENABLE diff --git a/tmk_core/common/keymap.h b/tmk_core/common/keymap.h index e1a6f992e..abc9bdb32 100644 --- a/tmk_core/common/keymap.h +++ b/tmk_core/common/keymap.h @@ -22,8 +22,6 @@ along with this program. If not, see . #include #include "action.h" - -#ifdef BOOTMAGIC_ENABLE /* NOTE: Not portable. Bit field order depends on implementation */ typedef union { uint8_t raw; @@ -39,7 +37,6 @@ typedef union { }; } keymap_config_t; keymap_config_t keymap_config; -#endif /* translates key to keycode */ diff --git a/tmk_core/common/magic.c b/tmk_core/common/magic.c new file mode 100644 index 000000000..f21d1346c --- /dev/null +++ b/tmk_core/common/magic.c @@ -0,0 +1,36 @@ +#include +#include +#include +#include "matrix.h" +#include "bootloader.h" +#include "debug.h" +#include "keymap.h" +#include "host.h" +#include "action_layer.h" +#include "eeconfig.h" +#include "magic.h" + +keymap_config_t keymap_config; + +void magic(void) +{ + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + + /* debug enable */ + debug_config.raw = eeconfig_read_debug(); + + /* keymap config */ + keymap_config.raw = eeconfig_read_keymap(); + +#ifdef NKRO_ENABLE + keyboard_nkro = keymap_config.nkro; +#endif + + uint8_t default_layer = 0; + 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/magic.h b/tmk_core/common/magic.h new file mode 100644 index 000000000..3fa2d8b81 --- /dev/null +++ b/tmk_core/common/magic.h @@ -0,0 +1,6 @@ +#ifndef MAGIC_H +#define MAGIC_H + +void magic(void); + +#endif -- cgit v1.2.3 From c83aa16f1d614c1c10f7597a67ffb9f2ae871951 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 20:26:02 -0400 Subject: fixes audio prescaler to emit correct freq --- keyboard/preonic/keymaps/default/keymap.c | 52 +++++++++++++++---------------- quantum/audio.c | 12 ++++--- quantum/keymap_common.c | 6 ++-- 3 files changed, 36 insertions(+), 34 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index e1f9b6202..6b6262318 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -186,48 +186,48 @@ const uint16_t PROGMEM fn_actions[] = { #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(50)/12.0), 20}, - {440.0*pow(2.0,(62)/12.0), 8}, - {440.0*pow(2.0,(54)/12.0), 20}, - {440.0*pow(2.0,(62)/12.0), 8} + {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] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} + {440.0*pow(2.0,(31)/12.0), 16} }; float tone_colemak[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(31)/12.0), 12}, {0, 4}, - {440.0*pow(2.0,(71)/12.0), 12} + {440.0*pow(2.0,(35)/12.0), 12} }; float tone_dvorak[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(31)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(69)/12.0), 8}, + {440.0*pow(2.0,(33)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8} + {440.0*pow(2.0,(31)/12.0), 8} }; float tone_music[][2] = { - {440.0*pow(2.0,(48)/12.0), 8}, - {440.0*pow(2.0,(50)/12.0), 8}, - {440.0*pow(2.0,(52)/12.0), 8}, - {440.0*pow(2.0,(53)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(57)/12.0), 8}, - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8} + {440.0*pow(2.0,(12)/12.0), 8}, + {440.0*pow(2.0,(14)/12.0), 8}, + {440.0*pow(2.0,(16)/12.0), 8}, + {440.0*pow(2.0,(17)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(21)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8} }; #endif @@ -333,9 +333,9 @@ void process_action_user(keyrecord_t *record) { if (IS_LAYER_ON(_MUSIC)) { if (record->event.pressed) { - play_note(((double)261.626)*pow(2.0, -2.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + play_note(((double)261.626)*pow(2.0, -3.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)261.626)*pow(2.0, -2.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + stop_note(((double)261.626)*pow(2.0, -3.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } diff --git a/quantum/audio.c b/quantum/audio.c index 5edcccdbe..470dc8e0c 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -12,6 +12,8 @@ #define PI 3.14159265 +#define CPU_PRESCALER 8 + // #define PWM_AUDIO #ifdef PWM_AUDIO @@ -244,12 +246,12 @@ ISR(TIMER3_COMPA_vect) { // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period voice_place %= voices; - if (place > (frequencies[voice_place] / 500)) { + if (place > (frequencies[voice_place] / 50)) { voice_place = (voice_place + 1) % voices; place = 0.0; } - ICR3 = (int)(((double)F_CPU) / frequencies[voice_place]); // Set max to the period - OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1 * duty_place; // Set compare to half the period + ICR3 = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period place++; // if (duty_counter > (frequencies[voice_place] / 500)) { // duty_place = (duty_place % 3) + 1; @@ -281,8 +283,8 @@ ISR(TIMER3_COMPA_vect) { place -= SINE_LENGTH; #else if (note_frequency > 0) { - ICR3 = (int)(((double)F_CPU) / note_frequency); // Set max to the period - OCR3A = (int)(((double)F_CPU) / note_frequency) >> 1; // Set compare to half the period + ICR3 = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 1; // Set compare to half the period } else { ICR3 = 0; OCR3A = 0; diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index b91916685..899437f44 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -35,9 +35,9 @@ extern keymap_config_t keymap_config; #include "audio.h" float goodbye[][2] = { - {440.0*pow(2.0,(67)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 12}, + {440.0*pow(2.0,(31)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 12}, }; #endif -- cgit v1.2.3 From b5c22ab5b5b77d5e21cc4145831608eed6756ad7 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 16 Apr 2016 19:27:21 -0500 Subject: Merging with QMK main to fix audio issues --- keyboard/atomic/keymaps/pvc/keymap.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 7abd7f4f7..189da16c4 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -3,8 +3,10 @@ #ifdef AUDIO_ENABLE #include "audio.h" +#include "musical_notes.h" #endif + #define _QW 0 #define _LW 1 #define _RS 2 @@ -82,10 +84,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_lw[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} +Q_NOTE(_C4 ) , +Q_NOTE(_CS4 ) , +Q_NOTE(_D4 ) , +Q_NOTE(_DS4 ) , +Q_NOTE(_E4 ) , +Q_NOTE(_F4 ) , +Q_NOTE(_FS4 ) , +Q_NOTE(_G4 ) , +Q_NOTE(_GS4 ) , +Q_NOTE(_A4 ) , +Q_NOTE(_AS4 ) , +Q_NOTE(_B4 ) , }; float tone_rs[][2] = { @@ -158,6 +168,7 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l const uint16_t PROGMEM fn_actions[] = { }; +#define ARRAY_SIZE(x) ((sizeof x) / (sizeof *x)) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -167,7 +178,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE println("PlayNotes LW"); - play_notes(&tone_lw, 4, false); + print_val_hex32(ARRAY_SIZE(tone_lw)); + play_notes(&tone_lw, 12, false); #endif layer_on(_LW); update_tri_layer(_LW, _RS, _FN); -- cgit v1.2.3 From 41cc35425ab32c9a9492006da8b667d01d32dfa6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 21:31:40 -0400 Subject: rests between notes as an argument --- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- keyboard/preonic/keymaps/default/keymap.c | 16 ++++++++-------- quantum/audio.c | 29 +++++++++++++++++++++-------- quantum/audio.h | 3 ++- quantum/keymap_common.c | 2 +- 5 files changed, 37 insertions(+), 23 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ede08ad7f..a6edefefd 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -194,7 +194,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qw, 4, false); + play_notes(&tone_qw, 4, false, 0); #endif default_layer_set(1UL<<_QW); } @@ -202,7 +202,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_cm, 6, false); + play_notes(&tone_cm, 6, false, 0); #endif default_layer_set(1UL<<_CM); } @@ -210,7 +210,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dv, 8, false); + play_notes(&tone_dv, 8, false, 0); #endif default_layer_set(1UL<<_DV); } @@ -254,7 +254,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 5, false); + play_notes(&start_up, 5, false, 0); #endif } break; @@ -265,6 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false); + play_notes(&start_up, 5, false, 0); #endif } diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 6b6262318..1223793cf 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -242,7 +242,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qwerty, 4, false); + play_notes(&tone_qwerty, 4, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } @@ -250,7 +250,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_colemak, 6, false); + play_notes(&tone_colemak, 6, false, 1); #endif persistant_default_layer_set(1UL<<_COLEMAK); } @@ -258,7 +258,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dvorak, 8, false); + play_notes(&tone_dvorak, 8, false, 10); #endif persistant_default_layer_set(1UL<<_DVORAK); } @@ -302,7 +302,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 4, false); + play_notes(&start_up, 4, false, 0); #endif } break; @@ -317,7 +317,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_music, 8, false); + play_notes(&tone_music, 8, false, 0); layer_on(_MUSIC); #endif } @@ -333,9 +333,9 @@ void process_action_user(keyrecord_t *record) { if (IS_LAYER_ON(_MUSIC)) { if (record->event.pressed) { - play_note(((double)261.626)*pow(2.0, -3.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + 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)261.626)*pow(2.0, -3.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + 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))); } } @@ -344,6 +344,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 4, false); + play_notes(&start_up, 4, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 470dc8e0c..40d09d62f 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -61,7 +61,11 @@ uint16_t note_position = 0; float (* notes_pointer)[][2]; uint8_t notes_length; bool notes_repeat; +float notes_rest; +bool note_resting = false; + uint8_t current_note = 0; +uint8_t rest_counter = 0; audio_config_t audio_config; @@ -314,13 +318,21 @@ ISR(TIMER3_COMPA_vect) { return; } } - #ifdef PWM_AUDIO - note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; - #else - note_frequency = (*notes_pointer)[current_note][0]; - note_length = (*notes_pointer)[current_note][1] / 4; - #endif + if (!note_resting && ((int)notes_rest != 0)) { + note_resting = true; + note_frequency = 0; + note_length = notes_rest; + current_note--; + } else { + note_resting = false; + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + } note_position = 0; } @@ -332,7 +344,7 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest) { if (audio_config.enable) { @@ -343,6 +355,7 @@ if (audio_config.enable) { notes_pointer = np; notes_length = n_length; notes_repeat = n_repeat; + notes_rest = n_rest; place = 0; current_note = 0; diff --git a/quantum/audio.h b/quantum/audio.h index 58270015d..65a6f9434 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -2,6 +2,7 @@ #include #include #include +#include "musical_notes.h" typedef union { uint8_t raw; @@ -20,4 +21,4 @@ void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(); void init_notes(); -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest); diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 899437f44..457f70a44 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -189,7 +189,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false); + play_notes(&goodbye, 3, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3 From a87522033d6385ecd2422f26f5bb6bdad9d44676 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 16 Apr 2016 20:37:22 -0500 Subject: Merging with QMK main to fix rest issues --- keyboard/atomic/keymaps/pvc/keymap.c | 169 ++++++++++++++++++++++++++++------- 1 file changed, 139 insertions(+), 30 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 189da16c4..229708344 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -84,6 +84,59 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_lw[][2] = { +/* +Q_NOTE(_C1 ) , +Q_NOTE(_CS1 ) , +Q_NOTE(_D1 ) , +Q_NOTE(_DS1 ) , +Q_NOTE(_E1 ) , +Q_NOTE(_F1 ) , +Q_NOTE(_FS1 ) , +Q_NOTE(_G1 ) , +Q_NOTE(_GS1 ) , +Q_NOTE(_A1 ) , +Q_NOTE(_AS1 ) , +Q_NOTE(_B1 ) , +*/ + +Q_NOTE(_C4 ) , +Q_NOTE(_CS4 ) , +Q_NOTE(_D4 ) , +Q_NOTE(_DS4 ) , +Q_NOTE(_E4 ) , +Q_NOTE(_F4 ) , +Q_NOTE(_FS4 ) , +Q_NOTE(_G4 ) , +Q_NOTE(_GS4 ) , +Q_NOTE(_A4 ) , +Q_NOTE(_AS4 ) , +Q_NOTE(_B1 ) , + + +Q_NOTE(_C2 ) , +Q_NOTE(_CS2 ) , +Q_NOTE(_D2 ) , +Q_NOTE(_DS2 ) , +Q_NOTE(_E2 ) , +Q_NOTE(_F2 ) , +Q_NOTE(_FS2 ) , +Q_NOTE(_G2 ) , +Q_NOTE(_GS2 ) , +Q_NOTE(_A2 ) , +Q_NOTE(_AS2 ) , +Q_NOTE(_B2 ) , +Q_NOTE(_C3 ) , +Q_NOTE(_CS3 ) , +Q_NOTE(_D3 ) , +Q_NOTE(_DS3 ) , +Q_NOTE(_E3 ) , +Q_NOTE(_F3 ) , +Q_NOTE(_FS3 ) , +Q_NOTE(_G3 ) , +Q_NOTE(_GS3 ) , +Q_NOTE(_A3 ) , +Q_NOTE(_AS3 ) , +Q_NOTE(_B3 ) , Q_NOTE(_C4 ) , Q_NOTE(_CS4 ) , Q_NOTE(_D4 ) , @@ -96,15 +149,64 @@ Q_NOTE(_GS4 ) , Q_NOTE(_A4 ) , Q_NOTE(_AS4 ) , Q_NOTE(_B4 ) , +Q_NOTE(_C5 ) , +Q_NOTE(_CS5 ) , +Q_NOTE(_D5 ) , +Q_NOTE(_DS5 ) , +Q_NOTE(_E5 ) , +Q_NOTE(_F5 ) , +Q_NOTE(_FS5 ) , +Q_NOTE(_G5 ) , +Q_NOTE(_GS5 ) , +Q_NOTE(_A5 ) , +Q_NOTE(_AS5 ) , +Q_NOTE(_B5 ) , +Q_NOTE(_C6 ) , +Q_NOTE(_CS6 ) , +Q_NOTE(_D6 ) , +Q_NOTE(_DS6 ) , +Q_NOTE(_E6 ) , +Q_NOTE(_F6 ) , +Q_NOTE(_FS6 ) , +Q_NOTE(_G6 ) , +Q_NOTE(_GS6 ) , +Q_NOTE(_A6 ) , +Q_NOTE(_AS6 ) , +Q_NOTE(_B6 ) , +Q_NOTE(_C7 ) , +Q_NOTE(_CS7 ) , +Q_NOTE(_D7 ) , +Q_NOTE(_DS7 ) , +Q_NOTE(_E7 ) , +Q_NOTE(_F7 ) , +Q_NOTE(_FS7 ) , +Q_NOTE(_G7 ) , +Q_NOTE(_GS7 ) , +Q_NOTE(_A7 ) , +Q_NOTE(_AS7 ) , +Q_NOTE(_B7 ) , +Q_NOTE(_C8 ) , +Q_NOTE(_CS8 ) , +Q_NOTE(_D8 ) , +Q_NOTE(_DS8 ) , +Q_NOTE(_E8 ) , +Q_NOTE(_F8 ) , +Q_NOTE(_FS8 ) , +Q_NOTE(_G8 ) , +Q_NOTE(_GS8 ) , +Q_NOTE(_A8 ) , +Q_NOTE(_AS8 ) , +Q_NOTE(_B8 ) , + }; float tone_rs[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, - {0, 4}, - {440.0*pow(2.0,(71)/12.0), 16} +Q_NOTE(_F8 ) , +Q_NOTE(_G8 ) , +Q_NOTE(_GS8 ) , +Q_NOTE(_A8 ) , +Q_NOTE(_AS8 ) , +Q_NOTE(_B8 ) , }; float tone_fn[][2] = { @@ -119,23 +221,6 @@ float tone_fn[][2] = { }; #endif - -void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) -{ - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - #ifdef AUDIO_ENABLE - println("PlayNotes FN"); - play_notes(&tone_fn, 8, false); - #endif - layer_on(layer3); - } - else - { - layer_off(layer3); - } -} - void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) { if (order) @@ -179,7 +264,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE println("PlayNotes LW"); print_val_hex32(ARRAY_SIZE(tone_lw)); - play_notes(&tone_lw, 12, false); + play_notes(&tone_lw, 96, false); #endif layer_on(_LW); update_tri_layer(_LW, _RS, _FN); @@ -209,18 +294,42 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 12}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 20} +Q_NOTE(_E4 ) , +{0,1} , +Q_NOTE(_E4 ) , +{0,1} , +Q_NOTE(_F4 ) , +{0,1} , +Q_NOTE(_G4 ) , +{0,1} , +Q_NOTE(_G4 ) , +{0,1} , +Q_NOTE(_F4 ) , +{0,1} , +Q_NOTE(_E4 ) , +{0,1} , +Q_NOTE(_D4 ) , +{0,1} , +Q_NOTE(_C4 ) , +{0,1} , +Q_NOTE(_C4 ) , +{0,1} , +Q_NOTE(_D4 ) , +{0,1} , +Q_NOTE(_E4 ) , +{0,1} , +H_NOTE(_E4 ) , +{0,1} , +Q_NOTE(_D4 ) , +{0,1} , +H_NOTE(_D4 ) , }; #endif void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false); + play_notes(&start_up, 29, false); println("Matrix Init"); #endif } -- cgit v1.2.3 From 8bbd064cf52a76508589579f19595607a1f3af21 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 16 Apr 2016 23:07:50 -0400 Subject: changes to play_notes, goodbye --- keyboard/planck/keymaps/default/keymap.c | 10 +++++----- keyboard/preonic/Makefile | 2 +- keyboard/preonic/config.h | 4 ++-- keyboard/preonic/keymaps/default/keymap.c | 12 ++++++------ quantum/audio.c | 2 +- quantum/keymap_common.c | 16 +++++++++------- 6 files changed, 24 insertions(+), 22 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index a6edefefd..5591b337d 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -194,7 +194,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QW: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qw, 4, false, 0); + play_notes(&tone_qw, false, 0); #endif default_layer_set(1UL<<_QW); } @@ -202,7 +202,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _CM: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_cm, 6, false, 0); + play_notes(&tone_cm, false, 0); #endif default_layer_set(1UL<<_CM); } @@ -210,7 +210,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DV: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dv, 8, false, 0); + play_notes(&tone_dv, false, 0); #endif default_layer_set(1UL<<_DV); } @@ -254,7 +254,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 5, false, 0); + play_notes(&start_up, false, 0); #endif } break; @@ -265,6 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 5, false, 0); + play_notes(&start_up, false, 0); #endif } diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 9199968c3..3504e2720 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 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) +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 diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h index 5528667fa..bb9d29dab 100644 --- a/keyboard/preonic/config.h +++ b/keyboard/preonic/config.h @@ -73,10 +73,10 @@ along with this program. If not, see . */ /* disable debug print */ -#define NO_DEBUG +// #define NO_DEBUG /* disable print */ -#define NO_PRINT +// #define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 1223793cf..c7b6b89f2 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -242,7 +242,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_qwerty, 4, false, 0); + play_notes(&tone_qwerty, false, 0); #endif persistant_default_layer_set(1UL<<_QWERTY); } @@ -250,7 +250,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_colemak, 6, false, 1); + play_notes(&tone_colemak, false, 0); #endif persistant_default_layer_set(1UL<<_COLEMAK); } @@ -258,7 +258,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_dvorak, 8, false, 10); + play_notes(&tone_dvorak, false, 0); #endif persistant_default_layer_set(1UL<<_DVORAK); } @@ -302,7 +302,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - play_notes(&start_up, 4, false, 0); + play_notes(&start_up, false, 0); #endif } break; @@ -317,7 +317,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - play_notes(&tone_music, 8, false, 0); + play_notes(&tone_music, false, 0); layer_on(_MUSIC); #endif } @@ -344,6 +344,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 4, false, 0); + play_notes(&start_up, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 40d09d62f..773edfd8e 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -318,7 +318,7 @@ ISR(TIMER3_COMPA_vect) { return; } } - if (!note_resting && ((int)notes_rest != 0)) { + if (!note_resting && (notes_rest > 0)) { note_resting = true; note_frequency = 0; note_length = notes_rest; diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 457f70a44..8f35521a2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,12 +33,14 @@ extern keymap_config_t keymap_config; #include #ifdef AUDIO_ENABLE #include "audio.h" - - float goodbye[][2] = { - {440.0*pow(2.0,(31)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 12}, - }; + #ifndef GOODBYE_TUNE + #define GOODBYE_TUNE { \ + {440.0*pow(2.0,(31)/12.0), 8}, \ + {440.0*pow(2.0,(24)/12.0), 8}, \ + {440.0*pow(2.0,(19)/12.0), 12}, \ + } + #endif + float goodbye_tune[][2] = GOODBYE_TUNE; #endif static action_t keycode_to_action(uint16_t keycode); @@ -189,7 +191,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false, 0); + play_notes(&goodbye_tune, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3 From 45f10b4c4b308226fa1568277654a13853a03ab4 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sat, 16 Apr 2016 22:10:18 -0500 Subject: Fixed how note arrays are used. --- keyboard/atomic/keymaps/pvc/keymap.c | 44 ++++++++---------------------------- quantum/audio.c | 14 ++++++------ quantum/audio.h | 17 ++++++++++++-- quantum/keymap_common.c | 4 ++-- quantum/musical_notes.h | 7 +++++- 5 files changed, 39 insertions(+), 47 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 229708344..c2081f525 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -75,8 +75,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, }; -#define IS_LAYER_ON(layer) (layer_state & (1UL << (layer))) -#define IS_LAYER_OFF(layer) (!IS_LAYER_ON(layer)) #ifdef AUDIO_ENABLE @@ -201,24 +199,14 @@ Q_NOTE(_B8 ) , }; float tone_rs[][2] = { -Q_NOTE(_F8 ) , -Q_NOTE(_G8 ) , -Q_NOTE(_GS8 ) , -Q_NOTE(_A8 ) , +Q_NOTE(_A4 ) , +Q_NOTE(_A4 ) , +Q_NOTE(_A4 ) , +Q_NOTE(_A4 ) , Q_NOTE(_AS8 ) , Q_NOTE(_B8 ) , }; -float tone_fn[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16}, - {0, 4}, - {440.0*pow(2.0,(69)/12.0), 16}, - {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} -}; #endif void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) @@ -253,18 +241,18 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l const uint16_t PROGMEM fn_actions[] = { }; -#define ARRAY_SIZE(x) ((sizeof x) / (sizeof *x)) +//#define MUSIC_ARRAY_SIZE(x) (((int)(sizeof(x) / (sizeof(x[0][0])))) / 2) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // MACRODOWN only works in this function switch(id) { case M_LW: if (record->event.pressed) { #ifdef AUDIO_ENABLE println("PlayNotes LW"); - print_val_hex32(ARRAY_SIZE(tone_lw)); - play_notes(&tone_lw, 96, false); + PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); #endif layer_on(_LW); update_tri_layer(_LW, _RS, _FN); @@ -277,7 +265,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE println("PlayNotes RS"); - play_notes(&tone_rs, 6, false); + PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); #endif layer_on(_RS); update_tri_layer(_LW, _RS, _FN); @@ -295,33 +283,19 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE float start_up[][2] = { Q_NOTE(_E4 ) , -{0,1} , Q_NOTE(_E4 ) , -{0,1} , Q_NOTE(_F4 ) , -{0,1} , Q_NOTE(_G4 ) , -{0,1} , Q_NOTE(_G4 ) , -{0,1} , Q_NOTE(_F4 ) , -{0,1} , Q_NOTE(_E4 ) , -{0,1} , Q_NOTE(_D4 ) , -{0,1} , Q_NOTE(_C4 ) , -{0,1} , Q_NOTE(_C4 ) , -{0,1} , Q_NOTE(_D4 ) , -{0,1} , Q_NOTE(_E4 ) , -{0,1} , H_NOTE(_E4 ) , -{0,1} , Q_NOTE(_D4 ) , -{0,1} , H_NOTE(_D4 ) , }; #endif @@ -329,7 +303,7 @@ H_NOTE(_D4 ) , void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, 29, false); + PLAY_NOTE_ARRAY(start_up, false, STACCATO); println("Matrix Init"); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 40d09d62f..90f3c5a13 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -181,7 +181,7 @@ void init_notes() { DDRC |= _BV(PORTC6); TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - + TCCR3A = 0x0; // Options not needed TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback @@ -202,14 +202,14 @@ ISR(TIMER3_COMPA_vect) { if (voices == 1) { // SINE OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 2; - + // SQUARE // if (((int)place) >= 1024){ // OCR4A = 0xFF >> 2; // } else { // OCR4A = 0x00; // } - + // SAWTOOTH // OCR4A = (int)place / 4; @@ -298,9 +298,9 @@ ISR(TIMER3_COMPA_vect) { note_position++; bool end_of_note = false; - if (ICR3 > 0) + if (ICR3 > 0) end_of_note = (note_position >= (note_length / ICR3 * 0xFFFF)); - else + else end_of_note = (note_position >= (note_length * 0x7FF)); if (end_of_note) { current_note++; @@ -318,7 +318,7 @@ ISR(TIMER3_COMPA_vect) { return; } } - if (!note_resting && ((int)notes_rest != 0)) { + if (!note_resting && (notes_rest > 0)) { note_resting = true; note_frequency = 0; note_length = notes_rest; @@ -412,7 +412,7 @@ if (audio_config.enable && voices < 8) { if (frequency != 0) { double starting_f = frequency; if (frequency < freq) { - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { frequency = f; } } else if (frequency > freq) { diff --git a/quantum/audio.h b/quantum/audio.h index 65a6f9434..762c98064 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -4,6 +4,9 @@ #include #include "musical_notes.h" +#ifndef AUDIO_H +#define AUDIO_H + typedef union { uint8_t raw; struct { @@ -19,6 +22,16 @@ void audio_off(void); void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); -void stop_all_notes(); -void init_notes(); +void stop_all_notes(void); +void init_notes(void); void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest); + + +// These macros are used to allow play_notes to play an array of indeterminate +// length. This works around the limitation of C's sizeof operation on pointers. +// The global float array for the song must be used here. +#define NOTE_ARRAY_SIZE(x) ((int)(sizeof(x) / (sizeof(x[0])))) +#define PLAY_NOTE_ARRAY(note_array, note_repeat, note_rest_style) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat), (note_rest_style)); + + +#endif \ No newline at end of file diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 457f70a44..61a51aedb 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -189,7 +189,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - play_notes(&goodbye, 3, false, 0); + PLAY_NOTE_ARRAY(goodbye, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR @@ -202,7 +202,7 @@ static action_t keycode_to_action(uint16_t keycode) debug_enable = true; break; case 0x5002 ... 0x50FF: - // MAGIC actions (BOOTMAGIC without the boot) + // MAGIC actions (BOOTMAGIC without the boot) if (!eeconfig_is_enabled()) { eeconfig_init(); } diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index 79f04fd98..837f6a069 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -9,7 +9,7 @@ #define WHOLE_NOTE(note) {(NOTE##note), 64} #define HALF_NOTE(note) {(NOTE##note), 32} #define QUARTER_NOTE(note) {(NOTE##note), 16} -#define EIGTH_NOTE(note) {(NOTE##note), 8} +#define EIGHTH_NOTE(note) {(NOTE##note), 8} #define SIXTEENTH_NOTE(note) {(NOTE##note), 4} // Note Types Short @@ -19,6 +19,11 @@ #define E_NOTE(n) EIGTH_NOTE(n) #define S_NOTE(n) SIXTEENTH_NOTE(n) +// Note Styles +// Staccato makes sure there is a rest between each note. Think: TA TA TA +// Legato makes notes flow together. Think: TAAA +#define STACCATO 0.01 +#define LEGATO 0 // Notes - # = Octave #define NOTE_REST 0.00 -- cgit v1.2.3 From a67d425f4d5278595e7ab785a0f246b83fb1a09f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 17 Apr 2016 01:00:39 -0400 Subject: planck default layout updates --- keyboard/planck/Makefile | 4 +- keyboard/planck/keymaps/default/keymap.c | 183 ++++++++++++++++++++----------- quantum/audio.c | 5 +- quantum/keymap_common.c | 8 +- 4 files changed, 130 insertions(+), 70 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 83b8303b0..01d9e3ce9 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -139,10 +139,10 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # 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 = 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) +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 diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 207af2a1d..aecddec4a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -11,24 +11,27 @@ // 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 _AD 5 +#define _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _ADJUST 5 +#define _MUSIC 6 // Macro name shortcuts -#define QWERTY M(_QW) -#define COLEMAK M(_CM) -#define DVORAK M(_DV) -#define LOWER M(_LW) -#define RAISE M(_RS) +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) #define M_BL 5 #ifdef AUDIO_ENABLE #define AUD_OFF M(6) #define AUD_ON M(7) #endif +#define MUS_OFF M(8) +#define MUS_ON M(9) // Fillers to make layering more clear #define _______ KC_TRNS @@ -47,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_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 }, @@ -65,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_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 }, @@ -83,7 +86,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | * `-----------------------------------------------------------------------------------' */ -[_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 }, @@ -101,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_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_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, _______, _______, _______, _______, _______}, @@ -119,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_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_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, _______, _______, _______, _______, _______}, @@ -130,16 +133,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| * | | | | | | | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_AD] = { +[_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -150,87 +163,102 @@ const uint16_t PROGMEM fn_actions[] = { }; #ifdef AUDIO_ENABLE -float start_up[][2] = { - {440.0*pow(2.0,(67)/12.0), 12}, - {440.0*pow(2.0,(64)/12.0), 8}, - {440.0*pow(2.0,(55)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, - {440.0*pow(2.0,(64)/12.0), 20} +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_qw[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_qwerty[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 16} + {440.0*pow(2.0,(31)/12.0), 16} }; -float tone_cm[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_colemak[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(31)/12.0), 12}, {0, 4}, - {440.0*pow(2.0,(71)/12.0), 12} + {440.0*pow(2.0,(35)/12.0), 12} }; -float tone_dv[][2] = { - {440.0*pow(2.0,(59)/12.0), 8}, - {440.0*pow(2.0,(60)/12.0), 8}, +float tone_dvorak[][2] = { + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(31)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(69)/12.0), 8}, + {440.0*pow(2.0,(33)/12.0), 8}, {0, 4}, - {440.0*pow(2.0,(67)/12.0), 8} + {440.0*pow(2.0,(31)/12.0), 8} +}; + +float tone_music[][2] = { + {440.0*pow(2.0,(12)/12.0), 8}, + {440.0*pow(2.0,(14)/12.0), 8}, + {440.0*pow(2.0,(16)/12.0), 8}, + {440.0*pow(2.0,(17)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(21)/12.0), 8}, + {440.0*pow(2.0,(23)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8} }; #endif +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_write_default_layer(default_layer); + default_layer_set(default_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 _QW: + case _QWERTY: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qw, false, 0); + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); #endif - default_layer_set(1UL<<_QW); + persistant_default_layer_set(1UL<<_QWERTY); } break; - case _CM: + case _COLEMAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_cm, false, 0); + PLAY_NOTE_ARRAY(tone_colemak, false, 0); #endif - default_layer_set(1UL<<_CM); + persistant_default_layer_set(1UL<<_COLEMAK); } break; - case _DV: + case _DVORAK: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_dv, false, 0); + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); #endif - default_layer_set(1UL<<_DV); + persistant_default_layer_set(1UL<<_DVORAK); } break; - case _LW: + case _LOWER: if (record->event.pressed) { - layer_on(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_LW); - update_tri_layer(_LW, _RS, _AD); + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; - case _RS: + case _RAISE: if (record->event.pressed) { - layer_on(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { - layer_off(_RS); - update_tri_layer(_LW, _RS, _AD); + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); } break; case M_BL: @@ -254,7 +282,23 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE audio_on(); - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music, false, 0); + layer_on(_MUSIC); #endif } break; @@ -262,9 +306,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; +uint8_t starting_note = 0x0C; +int offset = 7; + +void 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))); + } + } + +} + void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 90f3c5a13..6bd6532a3 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -350,7 +350,6 @@ if (audio_config.enable) { if (note) stop_all_notes(); - notes = true; notes_pointer = np; notes_length = n_length; @@ -375,6 +374,8 @@ if (audio_config.enable) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif + + notes = true; } } @@ -404,7 +405,6 @@ if (audio_config.enable && voices < 8) { if (notes) stop_all_notes(); - note = true; #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -436,6 +436,7 @@ if (audio_config.enable && voices < 8) { TCCR3A |= _BV(COM3A1); #endif + note = true; } } \ No newline at end of file diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 02d3c74be..d38e6fdb2 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -33,14 +33,14 @@ extern keymap_config_t keymap_config; #include #ifdef AUDIO_ENABLE #include "audio.h" - #ifndef GOODBYE_TUNE - #define GOODBYE_TUNE { \ + #ifndef TONE_GOODBYE + #define TONE_GOODBYE { \ {440.0*pow(2.0,(31)/12.0), 8}, \ {440.0*pow(2.0,(24)/12.0), 8}, \ {440.0*pow(2.0,(19)/12.0), 12}, \ } #endif - float goodbye_tune[][2] = GOODBYE_TUNE; + float tone_goodbye[][2] = TONE_GOODBYE; #endif static action_t keycode_to_action(uint16_t keycode); @@ -191,7 +191,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(goodbye_tune, false, 0); + PLAY_NOTE_ARRAY(tone_goodbye, false, 0); #endif _delay_ms(250); #ifdef ATREUS_ASTAR -- cgit v1.2.3 From 943b5b770955be937a89016680052be56d874c4a Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 00:24:58 -0500 Subject: Adding folding to #if, etc --- keyboard/atomic/keymaps/pvc/keymap.c | 291 ++++++++++++++++------------------- quantum/audio.c | 3 +- quantum/musical_notes.h | 38 +++-- quantum/song_list.h | 12 ++ 4 files changed, 174 insertions(+), 170 deletions(-) create mode 100644 quantum/song_list.h (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index c2081f525..9a2c57cb1 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -3,7 +3,7 @@ #ifdef AUDIO_ENABLE #include "audio.h" -#include "musical_notes.h" +#include "song_list.h" #endif @@ -75,140 +75,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, }; - -#ifdef AUDIO_ENABLE - - - - -float tone_lw[][2] = { -/* -Q_NOTE(_C1 ) , -Q_NOTE(_CS1 ) , -Q_NOTE(_D1 ) , -Q_NOTE(_DS1 ) , -Q_NOTE(_E1 ) , -Q_NOTE(_F1 ) , -Q_NOTE(_FS1 ) , -Q_NOTE(_G1 ) , -Q_NOTE(_GS1 ) , -Q_NOTE(_A1 ) , -Q_NOTE(_AS1 ) , -Q_NOTE(_B1 ) , -*/ - -Q_NOTE(_C4 ) , -Q_NOTE(_CS4 ) , -Q_NOTE(_D4 ) , -Q_NOTE(_DS4 ) , -Q_NOTE(_E4 ) , -Q_NOTE(_F4 ) , -Q_NOTE(_FS4 ) , -Q_NOTE(_G4 ) , -Q_NOTE(_GS4 ) , -Q_NOTE(_A4 ) , -Q_NOTE(_AS4 ) , -Q_NOTE(_B1 ) , - - -Q_NOTE(_C2 ) , -Q_NOTE(_CS2 ) , -Q_NOTE(_D2 ) , -Q_NOTE(_DS2 ) , -Q_NOTE(_E2 ) , -Q_NOTE(_F2 ) , -Q_NOTE(_FS2 ) , -Q_NOTE(_G2 ) , -Q_NOTE(_GS2 ) , -Q_NOTE(_A2 ) , -Q_NOTE(_AS2 ) , -Q_NOTE(_B2 ) , -Q_NOTE(_C3 ) , -Q_NOTE(_CS3 ) , -Q_NOTE(_D3 ) , -Q_NOTE(_DS3 ) , -Q_NOTE(_E3 ) , -Q_NOTE(_F3 ) , -Q_NOTE(_FS3 ) , -Q_NOTE(_G3 ) , -Q_NOTE(_GS3 ) , -Q_NOTE(_A3 ) , -Q_NOTE(_AS3 ) , -Q_NOTE(_B3 ) , -Q_NOTE(_C4 ) , -Q_NOTE(_CS4 ) , -Q_NOTE(_D4 ) , -Q_NOTE(_DS4 ) , -Q_NOTE(_E4 ) , -Q_NOTE(_F4 ) , -Q_NOTE(_FS4 ) , -Q_NOTE(_G4 ) , -Q_NOTE(_GS4 ) , -Q_NOTE(_A4 ) , -Q_NOTE(_AS4 ) , -Q_NOTE(_B4 ) , -Q_NOTE(_C5 ) , -Q_NOTE(_CS5 ) , -Q_NOTE(_D5 ) , -Q_NOTE(_DS5 ) , -Q_NOTE(_E5 ) , -Q_NOTE(_F5 ) , -Q_NOTE(_FS5 ) , -Q_NOTE(_G5 ) , -Q_NOTE(_GS5 ) , -Q_NOTE(_A5 ) , -Q_NOTE(_AS5 ) , -Q_NOTE(_B5 ) , -Q_NOTE(_C6 ) , -Q_NOTE(_CS6 ) , -Q_NOTE(_D6 ) , -Q_NOTE(_DS6 ) , -Q_NOTE(_E6 ) , -Q_NOTE(_F6 ) , -Q_NOTE(_FS6 ) , -Q_NOTE(_G6 ) , -Q_NOTE(_GS6 ) , -Q_NOTE(_A6 ) , -Q_NOTE(_AS6 ) , -Q_NOTE(_B6 ) , -Q_NOTE(_C7 ) , -Q_NOTE(_CS7 ) , -Q_NOTE(_D7 ) , -Q_NOTE(_DS7 ) , -Q_NOTE(_E7 ) , -Q_NOTE(_F7 ) , -Q_NOTE(_FS7 ) , -Q_NOTE(_G7 ) , -Q_NOTE(_GS7 ) , -Q_NOTE(_A7 ) , -Q_NOTE(_AS7 ) , -Q_NOTE(_B7 ) , -Q_NOTE(_C8 ) , -Q_NOTE(_CS8 ) , -Q_NOTE(_D8 ) , -Q_NOTE(_DS8 ) , -Q_NOTE(_E8 ) , -Q_NOTE(_F8 ) , -Q_NOTE(_FS8 ) , -Q_NOTE(_G8 ) , -Q_NOTE(_GS8 ) , -Q_NOTE(_A8 ) , -Q_NOTE(_AS8 ) , -Q_NOTE(_B8 ) , - -}; - -float tone_rs[][2] = { -Q_NOTE(_A4 ) , -Q_NOTE(_A4 ) , -Q_NOTE(_A4 ) , -Q_NOTE(_A4 ) , -Q_NOTE(_AS8 ) , -Q_NOTE(_B8 ) , -}; - -#endif - void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) { if (order) @@ -241,7 +107,6 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l const uint16_t PROGMEM fn_actions[] = { }; -//#define MUSIC_ARRAY_SIZE(x) (((int)(sizeof(x) / (sizeof(x[0][0])))) / 2) const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { @@ -280,30 +145,140 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) return MACRO_NONE; }; + + #ifdef AUDIO_ENABLE -float start_up[][2] = { -Q_NOTE(_E4 ) , -Q_NOTE(_E4 ) , -Q_NOTE(_F4 ) , -Q_NOTE(_G4 ) , -Q_NOTE(_G4 ) , -Q_NOTE(_F4 ) , -Q_NOTE(_E4 ) , -Q_NOTE(_D4 ) , -Q_NOTE(_C4 ) , -Q_NOTE(_C4 ) , -Q_NOTE(_D4 ) , -Q_NOTE(_E4 ) , -H_NOTE(_E4 ) , -Q_NOTE(_D4 ) , -H_NOTE(_D4 ) , + +float start_up[][2] = SONG(ODE_TO_JOY); + +float tone_lw[][2] = { + /* + Q__NOTE(_C1 ) , + Q__NOTE(_CS1 ) , + Q__NOTE(_D1 ) , + Q__NOTE(_DS1 ) , + Q__NOTE(_E1 ) , + Q__NOTE(_F1 ) , + Q__NOTE(_FS1 ) , + Q__NOTE(_G1 ) , + Q__NOTE(_GS1 ) , + Q__NOTE(_A1 ) , + Q__NOTE(_AS1 ) , + Q__NOTE(_B1 ) , + */ + + Q__NOTE(_C4 ) , + Q__NOTE(_CS4 ) , + Q__NOTE(_D4 ) , + Q__NOTE(_DS4 ) , + Q__NOTE(_E4 ) , + Q__NOTE(_F4 ) , + Q__NOTE(_FS4 ) , + Q__NOTE(_G4 ) , + Q__NOTE(_GS4 ) , + Q__NOTE(_A4 ) , + Q__NOTE(_AS4 ) , + Q__NOTE(_B1 ) , + + Q__NOTE(_C2 ) , + Q__NOTE(_CS2 ) , + Q__NOTE(_D2 ) , + Q__NOTE(_DS2 ) , + Q__NOTE(_E2 ) , + Q__NOTE(_F2 ) , + Q__NOTE(_FS2 ) , + Q__NOTE(_G2 ) , + Q__NOTE(_GS2 ) , + Q__NOTE(_A2 ) , + Q__NOTE(_AS2 ) , + Q__NOTE(_B2 ) , + Q__NOTE(_C3 ) , + Q__NOTE(_CS3 ) , + Q__NOTE(_D3 ) , + Q__NOTE(_DS3 ) , + Q__NOTE(_E3 ) , + Q__NOTE(_F3 ) , + Q__NOTE(_FS3 ) , + Q__NOTE(_G3 ) , + Q__NOTE(_GS3 ) , + Q__NOTE(_A3 ) , + Q__NOTE(_AS3 ) , + Q__NOTE(_B3 ) , + Q__NOTE(_C4 ) , + Q__NOTE(_CS4 ) , + Q__NOTE(_D4 ) , + Q__NOTE(_DS4 ) , + Q__NOTE(_E4 ) , + Q__NOTE(_F4 ) , + Q__NOTE(_FS4 ) , + Q__NOTE(_G4 ) , + Q__NOTE(_GS4 ) , + Q__NOTE(_A4 ) , + Q__NOTE(_AS4 ) , + Q__NOTE(_B4 ) , + Q__NOTE(_C5 ) , + Q__NOTE(_CS5 ) , + Q__NOTE(_D5 ) , + Q__NOTE(_DS5 ) , + Q__NOTE(_E5 ) , + Q__NOTE(_F5 ) , + Q__NOTE(_FS5 ) , + Q__NOTE(_G5 ) , + Q__NOTE(_GS5 ) , + Q__NOTE(_A5 ) , + Q__NOTE(_AS5 ) , + Q__NOTE(_B5 ) , + Q__NOTE(_C6 ) , + Q__NOTE(_CS6 ) , + Q__NOTE(_D6 ) , + Q__NOTE(_DS6 ) , + Q__NOTE(_E6 ) , + Q__NOTE(_F6 ) , + Q__NOTE(_FS6 ) , + Q__NOTE(_G6 ) , + Q__NOTE(_GS6 ) , + Q__NOTE(_A6 ) , + Q__NOTE(_AS6 ) , + Q__NOTE(_B6 ) , + Q__NOTE(_C7 ) , + Q__NOTE(_CS7 ) , + Q__NOTE(_D7 ) , + Q__NOTE(_DS7 ) , + Q__NOTE(_E7 ) , + Q__NOTE(_F7 ) , + Q__NOTE(_FS7 ) , + Q__NOTE(_G7 ) , + Q__NOTE(_GS7 ) , + Q__NOTE(_A7 ) , + Q__NOTE(_AS7 ) , + Q__NOTE(_B7 ) , + Q__NOTE(_C8 ) , + Q__NOTE(_CS8 ) , + Q__NOTE(_D8 ) , + Q__NOTE(_DS8 ) , + Q__NOTE(_E8 ) , + Q__NOTE(_F8 ) , + Q__NOTE(_FS8 ) , + Q__NOTE(_G8 ) , + Q__NOTE(_GS8 ) , + Q__NOTE(_A8 ) , + Q__NOTE(_AS8 ) , + Q__NOTE(_B8 ) , +}; + +float tone_rs[][2] = { + Q__NOTE(_A4 ) , + Q__NOTE(_A4 ) , + Q__NOTE(_A4 ) , + Q__NOTE(_A4 ) , + Q__NOTE(_AS8 ) , + Q__NOTE(_B8 ) , }; -#endif void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - PLAY_NOTE_ARRAY(start_up, false, STACCATO); - println("Matrix Init"); - #endif + init_notes(); + PLAY_NOTE_ARRAY(start_up, false, STACCATO); + println("Matrix Init"); } + +#endif diff --git a/quantum/audio.c b/quantum/audio.c index 90f3c5a13..119bd9229 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -288,7 +288,8 @@ ISR(TIMER3_COMPA_vect) { #else if (note_frequency > 0) { ICR3 = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 1; // Set compare to half the period + //OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 1; // Set compare to half the period + OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 2; // Set compare to half the period } else { ICR3 = 0; OCR3A = 0; diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index 837f6a069..d2256a773 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -4,20 +4,36 @@ // Tempo Placeholder #define TEMPO 120 +#define SONG(notes...) { notes } + // Note Types -#define WHOLE_NOTE(note) {(NOTE##note), 64} -#define HALF_NOTE(note) {(NOTE##note), 32} -#define QUARTER_NOTE(note) {(NOTE##note), 16} -#define EIGHTH_NOTE(note) {(NOTE##note), 8} -#define SIXTEENTH_NOTE(note) {(NOTE##note), 4} +#define MUSICAL_NOTE(note, duration) {(NOTE##note), duration} +#define WHOLE_NOTE(note) MUSICAL_NOTE(note, 64) +#define HALF_NOTE(note) MUSICAL_NOTE(note, 32) +#define QUARTER_NOTE(note) MUSICAL_NOTE(note, 16) +#define EIGHTH_NOTE(note) MUSICAL_NOTE(note, 8) +#define SIXTEENTH_NOTE(note) MUSICAL_NOTE(note, 4) + +#define WHOLE_DOT_NOTE(note) MUSICAL_NOTE(note, 64+32) +#define HALF_DOT_NOTE(note) MUSICAL_NOTE(note, 32+16) +#define QUARTER_DOT_NOTE(note) MUSICAL_NOTE(note, 16+8) +#define EIGHTH_DOT_NOTE(note) MUSICAL_NOTE(note, 8+4) +#define SIXTEENTH_DOT_NOTE(note) MUSICAL_NOTE(note, 4+2) + -// Note Types Short -#define W_NOTE(n) WHOLE_NOTE(n) -#define H_NOTE(n) HALF_NOTE(n) -#define Q_NOTE(n) QUARTER_NOTE(n) -#define E_NOTE(n) EIGTH_NOTE(n) -#define S_NOTE(n) SIXTEENTH_NOTE(n) +// Note Type Shortcuts +#define M__NOTE(note, duration) MUSICAL_NOTE(note, duration) +#define W__NOTE(n) WHOLE_NOTE(n) +#define H__NOTE(n) HALF_NOTE(n) +#define Q__NOTE(n) QUARTER_NOTE(n) +#define E__NOTE(n) EIGHTH_NOTE(n) +#define S__NOTE(n) SIXTEENTH_NOTE(n) +#define WD_NOTE(n) WHOLE_DOT_NOTE(n) +#define HD_NOTE(n) HALF_DOT_NOTE(n) +#define QD_NOTE(n) QUARTER_DOT_NOTE(n) +#define ED_NOTE(n) EIGTH_DOT_NOTE(n) +#define SD_NOTE(n) SIXTEENTH_DOT_NOTE(n) // Note Styles // Staccato makes sure there is a rest between each note. Think: TA TA TA diff --git a/quantum/song_list.h b/quantum/song_list.h new file mode 100644 index 000000000..ef25eac35 --- /dev/null +++ b/quantum/song_list.h @@ -0,0 +1,12 @@ +#include "musical_notes.h" + +#ifndef SONG_LIST_H +#define SONG_LIST_H + +#define ODE_TO_JOY \ + Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ + Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ + Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ + QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), + +#endif \ No newline at end of file -- cgit v1.2.3 From 29e495be2a57d1eb41699909b204c12ac6bc4c0e Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 02:52:38 -0500 Subject: Added trimble and tempo adjustments! --- keyboard/atomic/keymaps/pvc/keymap.c | 216 ++++++++++++++++++-------------- keyboard/atomic/keymaps/pvc/makefile.mk | 2 +- quantum/audio.c | 56 +++++++-- quantum/audio.h | 6 +- quantum/musical_notes.h | 13 +- quantum/song_list.h | 6 + 6 files changed, 189 insertions(+), 110 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 9a2c57cb1..aaef6b041 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -17,6 +17,13 @@ #define M_LW 1 #define M_RS 2 #define M_FN 3 +#define M_T1 4 +#define M_T2 5 +#define M_T3 6 +#define M_T4 7 +#define M_TU 8 +#define M_TD 9 +#define M_DF 10 #define _______ KC_TRNS @@ -63,7 +70,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { 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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, M(M_T1), M(M_T2), M(M_T3), M(M_T4), M(M_TU), M(M_TD), M(M_DF), _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, [_AD] = { /* ADJUST */ @@ -75,76 +82,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }, }; -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} - - -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 M_LW: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - println("PlayNotes LW"); - PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); - #endif - layer_on(_LW); - update_tri_layer(_LW, _RS, _FN); - } else { - layer_off(_LW); - update_tri_layer(_LW, _RS, _FN); - } - break; - case M_RS: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - println("PlayNotes RS"); - PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); - #endif - layer_on(_RS); - update_tri_layer(_LW, _RS, _FN); - } else { - layer_off(_RS); - update_tri_layer(_LW, _RS, _FN); - } - break; - default: - break; - } - return MACRO_NONE; -}; - #ifdef AUDIO_ENABLE @@ -152,20 +89,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) float start_up[][2] = SONG(ODE_TO_JOY); float tone_lw[][2] = { - /* - Q__NOTE(_C1 ) , - Q__NOTE(_CS1 ) , - Q__NOTE(_D1 ) , - Q__NOTE(_DS1 ) , - Q__NOTE(_E1 ) , - Q__NOTE(_F1 ) , - Q__NOTE(_FS1 ) , - Q__NOTE(_G1 ) , - Q__NOTE(_GS1 ) , - Q__NOTE(_A1 ) , - Q__NOTE(_AS1 ) , - Q__NOTE(_B1 ) , - */ Q__NOTE(_C4 ) , Q__NOTE(_CS4 ) , @@ -178,6 +101,7 @@ float tone_lw[][2] = { Q__NOTE(_GS4 ) , Q__NOTE(_A4 ) , Q__NOTE(_AS4 ) , + Q__NOTE(_B1 ) , Q__NOTE(_C2 ) , @@ -266,14 +190,7 @@ float tone_lw[][2] = { Q__NOTE(_B8 ) , }; -float tone_rs[][2] = { - Q__NOTE(_A4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_AS8 ) , - Q__NOTE(_B8 ) , -}; +float tone_rs[][2] = SONG(ROCK_A_BYE_BABY); void matrix_init_user(void) { init_notes(); @@ -282,3 +199,116 @@ void matrix_init_user(void) { } #endif + + +void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) +{ + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } +} + + +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 M_LW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); + #endif + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_RS: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); + #endif + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + + case M_FN: + if (record->event.pressed) { + layer_on(_FN); + } else { + layer_off(_FN); + } + break; + + case M_T1: + if (record->event.pressed) set_timbre(TIMBRE_12); + break; + + case M_T2: + if (record->event.pressed) set_timbre(TIMBRE_25); + break; + + case M_T3: + if (record->event.pressed) set_timbre(TIMBRE_50); + break; + + case M_T4: + if (record->event.pressed) set_timbre(TIMBRE_75); + break; + + + case M_TU: + if (record->event.pressed) increase_tempo(10); + break; + + case M_TD: + if (record->event.pressed) decrease_tempo(10); + break; + + case M_DF: + if (record->event.pressed) + { + set_timbre(TIMBRE_DEFAULT); + set_tempo(TEMPO_DEFAULT); + } + break; + + default: + break; + + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index d46996650..eefa42855 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -1,7 +1,7 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration 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 diff --git a/quantum/audio.c b/quantum/audio.c index 119bd9229..9b9589f13 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -4,7 +4,7 @@ #include #include #include - +#include "print.h" #include "audio.h" #include "keymap_common.h" @@ -57,9 +57,11 @@ bool notes = false; bool note = false; float note_frequency = 0; float note_length = 0; +float note_tempo = TEMPO_DEFAULT; +float note_timbre = TIMBRE_DEFAULT; uint16_t note_position = 0; float (* notes_pointer)[][2]; -uint8_t notes_length; +uint8_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; @@ -255,7 +257,8 @@ ISR(TIMER3_COMPA_vect) { place = 0.0; } ICR3 = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period + OCR3A = (int)((((double)F_CPU) / (note_frequency * CPU_PRESCALER)) * note_timbre); // Set compare to half the period + //OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period place++; // if (duty_counter > (frequencies[voice_place] / 500)) { // duty_place = (duty_place % 3) + 1; @@ -288,8 +291,7 @@ ISR(TIMER3_COMPA_vect) { #else if (note_frequency > 0) { ICR3 = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)); // Set max to the period - //OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 1; // Set compare to half the period - OCR3A = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)) >> 2; // Set compare to half the period + OCR3A = (int)((((double)F_CPU) / (note_frequency * CPU_PRESCALER)) * note_timbre); // Set compare to half the period } else { ICR3 = 0; OCR3A = 0; @@ -305,7 +307,7 @@ ISR(TIMER3_COMPA_vect) { end_of_note = (note_position >= (note_length * 0x7FF)); if (end_of_note) { current_note++; - if (current_note >= notes_length) { + if (current_note >= notes_count) { if (notes_repeat) { current_note = 0; } else { @@ -328,10 +330,10 @@ ISR(TIMER3_COMPA_vect) { note_resting = false; #ifdef PWM_AUDIO note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; + note_length = (*notes_pointer)[current_note][1] * (note_tempo / 100); #else note_frequency = (*notes_pointer)[current_note][0]; - note_length = (*notes_pointer)[current_note][1] / 4; + note_length = ((*notes_pointer)[current_note][1] / 4) * (note_tempo / 100); #endif } note_position = 0; @@ -345,7 +347,7 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest) { +void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { if (audio_config.enable) { @@ -354,7 +356,7 @@ if (audio_config.enable) { notes = true; notes_pointer = np; - notes_length = n_length; + notes_count = n_count; notes_repeat = n_repeat; notes_rest = n_rest; @@ -362,10 +364,10 @@ if (audio_config.enable) { current_note = 0; #ifdef PWM_AUDIO note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; - note_length = (*notes_pointer)[current_note][1]; + note_length = (*notes_pointer)[current_note][1] * (note_tempo / 100); #else note_frequency = (*notes_pointer)[current_note][0]; - note_length = (*notes_pointer)[current_note][1] / 4; + note_length = ((*notes_pointer)[current_note][1] / 4) * (note_tempo / 100); #endif note_position = 0; @@ -439,4 +441,32 @@ if (audio_config.enable && voices < 8) { } -} \ No newline at end of file +} + +void set_timbre(float timbre) +{ + note_timbre = timbre; +} + +void set_tempo(float tempo) +{ + note_tempo = tempo; +} + +void decrease_tempo(uint8_t tempo_change) +{ + note_tempo += (float) tempo_change; +} + +void increase_tempo(uint8_t tempo_change) +{ + if (note_tempo - (float) tempo_change < 10) + { + note_tempo = 10; + } + else + { + note_tempo -= (float) tempo_change; + } +} + diff --git a/quantum/audio.h b/quantum/audio.h index 762c98064..8012aa6bf 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -24,8 +24,12 @@ void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(void); void init_notes(void); -void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat, float n_rest); +void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); +void set_timbre(float timbre); +void set_tempo(float tempo); +void increase_tempo(uint8_t tempo_change); +void decrease_tempo(uint8_t tempo_change); // These macros are used to allow play_notes to play an array of indeterminate // length. This works around the limitation of C's sizeof operation on pointers. diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index d2256a773..2170f3f18 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -2,7 +2,8 @@ #define MUSICAL_NOTES_H // Tempo Placeholder -#define TEMPO 120 +#define TEMPO_DEFAULT 100 + #define SONG(notes...) { notes } @@ -21,7 +22,6 @@ #define EIGHTH_DOT_NOTE(note) MUSICAL_NOTE(note, 8+4) #define SIXTEENTH_DOT_NOTE(note) MUSICAL_NOTE(note, 4+2) - // Note Type Shortcuts #define M__NOTE(note, duration) MUSICAL_NOTE(note, duration) #define W__NOTE(n) WHOLE_NOTE(n) @@ -41,6 +41,15 @@ #define STACCATO 0.01 #define LEGATO 0 +// Note Timbre +// Changes how the notes sound +#define TIMBRE_12 0.125 +#define TIMBRE_25 0.250 +#define TIMBRE_50 0.500 +#define TIMBRE_75 0.750 +#define TIMBRE_DEFAULT TIMBRE_50 + + // Notes - # = Octave #define NOTE_REST 0.00 #define NOTE_C0 16.35 diff --git a/quantum/song_list.h b/quantum/song_list.h index ef25eac35..ef36a1cdd 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -9,4 +9,10 @@ Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), +#define ROCK_A_BYE_BABY \ + QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \ + H__NOTE(_A5), Q__NOTE(_G5), \ + QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ + H__NOTE(_FS5), + #endif \ No newline at end of file -- cgit v1.2.3 From 23231fa577f7c6c585124226a83f21a7668e62dd Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 14:16:03 -0500 Subject: Converted goodbye to notes, fixed eighth dotted note macro --- keyboard/atomic/keymaps/pvc/makefile.mk | 2 +- quantum/audio.h | 1 + quantum/keymap_common.c | 14 ++++++-------- quantum/musical_notes.h | 2 +- quantum/song_list.h | 7 ++++++- 5 files changed, 15 insertions(+), 11 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk index eefa42855..d46996650 100644 --- a/keyboard/atomic/keymaps/pvc/makefile.mk +++ b/keyboard/atomic/keymaps/pvc/makefile.mk @@ -1,7 +1,7 @@ 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) +CONSOLE_ENABLE = yes # 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 diff --git a/quantum/audio.h b/quantum/audio.h index 3aba8370a..05d314c94 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -3,6 +3,7 @@ #include #include #include "musical_notes.h" +#include "song_list.h" #ifndef AUDIO_H #define AUDIO_H diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index c705b7a73..2001438b9 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -34,15 +34,13 @@ extern keymap_config_t keymap_config; #include #ifdef AUDIO_ENABLE #include "audio.h" + #ifndef TONE_GOODBYE - #define TONE_GOODBYE { \ - {440.0*pow(2.0,(31)/12.0), 8}, \ - {440.0*pow(2.0,(24)/12.0), 8}, \ - {440.0*pow(2.0,(19)/12.0), 12}, \ - } - #endif - float tone_goodbye[][2] = TONE_GOODBYE; -#endif + #define TONE_GOODBYE OLKB_GOODBYE + #endif /*! TONE_GOODBYE */ + + float tone_goodbye[][2] = SONG(TONE_GOODBYE); +#endif /* AUDIO_ENABLE */ static action_t keycode_to_action(uint16_t keycode); diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index 2170f3f18..ccdc34f27 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -32,7 +32,7 @@ #define WD_NOTE(n) WHOLE_DOT_NOTE(n) #define HD_NOTE(n) HALF_DOT_NOTE(n) #define QD_NOTE(n) QUARTER_DOT_NOTE(n) -#define ED_NOTE(n) EIGTH_DOT_NOTE(n) +#define ED_NOTE(n) EIGHTH_DOT_NOTE(n) #define SD_NOTE(n) SIXTEENTH_DOT_NOTE(n) // Note Styles diff --git a/quantum/song_list.h b/quantum/song_list.h index ef36a1cdd..b626c3fa6 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -15,4 +15,9 @@ QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ H__NOTE(_FS5), -#endif \ No newline at end of file +#define OLKB_GOODBYE \ + E__NOTE(_E7), \ + E__NOTE(_A6), \ + ED_NOTE(_E6), + +#endif -- cgit v1.2.3 From 6d40f7c5060f608068b0c4fc90871687c70b4f05 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 17 Apr 2016 22:19:47 +0200 Subject: added new experimental layout - works with ErgodoxLayoutGenerator --- keyboard/ergodox_ez/keymaps/osx_de/keymap.c | 703 +++++++++------------ .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 263677 -> 189394 bytes .../keymaps/osx_de_experimental/keymap.c | 376 +++++++++++ .../osx_de_experimental_highres.png | Bin 0 -> 187629 bytes quantum/keymap_extras/keymap_german_osx.h | 4 +- 5 files changed, 689 insertions(+), 394 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index dc47b8c1e..174f26cbe 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -1,417 +1,329 @@ #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" +#include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" #include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define SMLY 3 // media keys -#define NUMB 4 // number keys -#define EGOS 5 // Egoshooter layer - -#define M_CTRL_CMDV 1 -#define M_CTRL_CMDC 2 -#define M_MEH_SH_ACUT 3 -#define M_DE_OSX_PLUS_CTRLALT 12 -#define M_DE_OSX_CIRC_CTRLCMD 13 -#define M_TOGGLE_5 14 -#define M_CTL_SFT_HASH 15 -#define M_LGUI_SHFT 16 - -#define SM_SMILE 4 -#define SM_SMIRK 5 -#define SM_FROWN 6 -#define SM_CRY 7 -#define SM_KISS 8 -#define SM_HEART 9 -#define SM_LAUGH 10 -#define SM_SAD 11 +#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] = { -/* Keymap 0: Basic layer - * - * ,-----------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' - * | | ! | ? | | | | | \ | [ | ] | < | > | ! | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | ' | LEFT| DOWN | RIGHT | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | F13 | F12 | - * ,------|------|------| |------+------+------. - * | | | | | F14 | | | - * | | |------| |------| | | - * | | | | | F15 | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - 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 hand - 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 -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | Mute | | | | | | EGOS | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | Left | Down | Right | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |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_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, - KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: Smiley layer - * making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using - * keyboard short commands... - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | :-) | ;-) | :-D | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | :-{ | :-( | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | |------| |------| <3 | :-* | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | r| - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+--------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `----------------------' - */ -[SMLY] = 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 - 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 -), -//number pad -[NUMB] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, 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 -), - -/* Keymap 3: Egoshooter layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | L5 | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | SHIFT | | | | | |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | | | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | CTRL | | | | | | | | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | F1 | F2 | | | | - * ,------|------|------| |------+--------+------. - * | | | F3 | | | | | - * | SPACE| CTRL|------| |------| | | - * | | | F4 | | | | | - * `--------------------' `----------------------' - */ -[EGOS] = 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_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 hand - 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 -), +[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[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(SMLY) // FN2 - Momentary Layer 2 (Smiley) + }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint16_t start; - // MACRODOWN only works in this function - switch(id) { - case M_CTRL_CMDV: - //Macro description: long press CTRL, type CMD-V - //Macro type: LT - 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; - //End Macro - case M_CTRL_CMDC: - //Macro description: - //Macro type: LT - if (record->event.pressed) { +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){ + 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_MEH_SH_ACUT: - if (record->event.pressed) { + +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(LSFT),D(LALT),END); + return MACRO(D(LCTRL),D(LALT),END); } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); } else { - return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); } } - break; - - case M_LGUI_SHFT: - if (record->event.pressed){ + +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 M_CTL_SFT_HASH: - if (record->event.pressed) { - start=timer_read(); - return MACRO(D(LCTRL),D(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){ + if (timer_elapsed(start) >150) { return MACRO(U(LCTRL),U(LSFT),END); } else { return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); } } - break; - case M_DE_OSX_CIRC_CTRLCMD: - if (record->event.pressed) { + +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){ + if (timer_elapsed(start) >150) { return MACRO(U(LCTRL),U(LGUI),END); } else { - return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); } } - break; - case M_DE_OSX_PLUS_CTRLALT: - if (record->event.pressed) { + +break; +case M_CTRL_CMDV: +//Macro: M_CTRL_CMDV//----------------------- +if (record->event.pressed) { start = timer_read(); - return MACRO(D(LCTRL),D(LALT),END); + return MACRO(D(LCTRL),END); } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LALT),END); + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),END); } else { - return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + return MACRO(U(LCTRL),D(LGUI),T(V),U(LGUI),END); } } - break; - case SM_SMILE: - //MAcro description: :-) - //Macro type: MACRO - 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: - if (record->event.pressed) { - return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); - } - break; - case 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_SAD: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); - } - break; - - case SM_HEART: - if (record->event.pressed) { - return MACRO(T(GRV),T(3),END); - } - break; - case 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 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: - if (record->event.pressed) { - return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),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; - case M_TOGGLE_5: - //Macro description: Toggle LAyer 5 (Egoshooter) - //Macro type: LToggle - if (record->event.pressed){ - layer_state ^= (1<<5); - layer_state &= (1<<5); - } - break; - //Macro End - } - return MACRO_NONE; + +break; +} +return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -422,36 +334,43 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); +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 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(); - //ergodox_board_led_on(); - break; - case EGOS: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - default: - // none - break; - } +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/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png index 30355c55a..9249f3d2d 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c new file mode 100644 index 000000000..dbc3eb990 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -0,0 +1,376 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" +#include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" +#include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define M_TOGGLE_5 0 +#define M_CTRL_CMDC 1 +#define M_DE_OSX_PLUS_CTRLALT 2 +#define SM_KISS 3 +#define SM_FROWN 4 +#define SM_CRY 5 +#define SM_SMILE 6 +#define SM_SMIRK 7 +#define M_LGUI_SHFT 8 +#define SM_HEART 9 +#define SM_LAUGH 10 +#define M_CTL_SFT_HASH 11 +#define SM_SAD 12 +#define M_DE_OSX_CIRC_CTRLCMD 13 +#define M_CTRL_CMDV 14 +#define M_MEH_SH_ACUT 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, TG(NUMB), + 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), M(M_CTL_SFT_HASH), KC_LCTRL, + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, + //right half + TG(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, + M(M_MEH_SH_ACUT), 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), +[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), +[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_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_MUTE, 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, 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), +[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 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),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),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/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png new file mode 100644 index 000000000..4ae517d8d Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h index d0b77fb80..ee725bad5 100644 --- a/quantum/keymap_extras/keymap_german_osx.h +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -85,8 +85,8 @@ #define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _ // Alt-ed characters -#define DE_OSX_SQ2 LALT(KC_2) // ² -#define DE_OSX_SQ3 LALT(KC_3) // ³ +//#define DE_OSX_SQ2 LALT(KC_2) // ² +//#define DE_OSX_SQ3 LALT(KC_3) // ³ #define DE_OSX_LCBR LALT(KC_8) // { #define DE_OSX_LBRC LALT(KC_5) // [ #define DE_OSX_RBRC LALT(KC_6) // ] -- cgit v1.2.3 From a9d8c61dbdb3c6d171f73138047d9314f7e368e1 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 17 Apr 2016 23:02:29 +0200 Subject: new iteration, change of lower row --- .../keymaps/osx_de_experimental/keymap.c | 62 ++++++---------------- 1 file changed, 16 insertions(+), 46 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c index dbc3eb990..7c40a4f3c 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -23,21 +23,19 @@ #define EGOS 5 #define M_TOGGLE_5 0 -#define M_CTRL_CMDC 1 -#define M_DE_OSX_PLUS_CTRLALT 2 -#define SM_KISS 3 -#define SM_FROWN 4 -#define SM_CRY 5 -#define SM_SMILE 6 -#define SM_SMIRK 7 -#define M_LGUI_SHFT 8 -#define SM_HEART 9 -#define SM_LAUGH 10 -#define M_CTL_SFT_HASH 11 -#define SM_SAD 12 -#define M_DE_OSX_CIRC_CTRLCMD 13 -#define M_CTRL_CMDV 14 -#define M_MEH_SH_ACUT 15 +#define M_DE_OSX_PLUS_CTRLALT 1 +#define SM_KISS 2 +#define SM_FROWN 3 +#define SM_CRY 4 +#define SM_SMILE 5 +#define SM_SMIRK 6 +#define M_LGUI_SHFT 7 +#define SM_HEART 8 +#define SM_LAUGH 9 +#define M_CTL_SFT_HASH 10 +#define SM_SAD 11 +#define M_DE_OSX_CIRC_CTRLCMD 12 +#define M_MEH_SH_ACUT 13 //Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -47,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), M(M_CTL_SFT_HASH), KC_LCTRL, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), DE_OSX_QUOT, KC_HOME, KC_END, KC_PGUP, KC_BSPC, KC_DEL, KC_PGDN, @@ -56,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, - M(M_MEH_SH_ACUT), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + 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), @@ -172,20 +170,6 @@ case M_TOGGLE_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//----------------------- @@ -241,7 +225,7 @@ case M_LGUI_SHFT: if (record->event.pressed){ return MACRO(D(LGUI),D(LSFT),END); }else{ - return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); + return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); } break; @@ -293,20 +277,6 @@ if (record->event.pressed) { } } -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//----------------------- -- cgit v1.2.3 From 6732d6cf1a3268ece981c6b0c07a1b9e0f61adbe Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Sun, 17 Apr 2016 23:04:43 +0200 Subject: new png --- .../osx_de_experimental_highres.png | Bin 187629 -> 187478 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png index 4ae517d8d..b1e9e763e 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ -- cgit v1.2.3 From ce463ef424c5bd26b84ead7de5f31eab366f98eb Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 17 Apr 2016 18:14:42 -0400 Subject: audio fixes --- keyboard/preonic/keymaps/default/keymap.c | 7 +++++-- quantum/audio.c | 6 +++--- quantum/audio.h | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 48bc72dab..2591af9f0 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -224,6 +224,7 @@ float tone_music[][2] = { {440.0*pow(2.0,(23)/12.0), 8}, {440.0*pow(2.0,(24)/12.0), 8} }; +float ode_to_joy[][2] = SONG(ODE_TO_JOY); #endif void persistant_default_layer_set(uint16_t default_layer) { @@ -312,7 +313,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + init_notes(); + set_tempo(150); + PLAY_NOTE_ARRAY(ode_to_joy, false, .25); layer_on(_MUSIC); #endif } @@ -339,6 +342,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); - play_notes(&start_up, false, 0); + PLAY_NOTE_ARRAY(start_up, false, 0); #endif } diff --git a/quantum/audio.c b/quantum/audio.c index 855e97361..e0413051a 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -257,7 +257,7 @@ ISR(TIMER3_COMPA_vect) { place = 0.0; } ICR3 = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)((((double)F_CPU) / (note_frequency * CPU_PRESCALER)) * note_timbre); // Set compare to half the period + OCR3A = (int)((((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) * note_timbre); // Set compare to half the period //OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period place++; // if (duty_counter > (frequencies[voice_place] / 500)) { @@ -353,6 +353,7 @@ if (audio_config.enable) { if (note) stop_all_notes(); + notes = true; notes_pointer = np; notes_count = n_count; @@ -378,7 +379,6 @@ if (audio_config.enable) { TCCR3A |= _BV(COM3A1); #endif - notes = true; } } @@ -408,6 +408,7 @@ if (audio_config.enable && voices < 8) { if (notes) stop_all_notes(); + note = true; #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -439,7 +440,6 @@ if (audio_config.enable && voices < 8) { TCCR3A |= _BV(COM3A1); #endif - note = true; } } diff --git a/quantum/audio.h b/quantum/audio.h index 3aba8370a..05d314c94 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -3,6 +3,7 @@ #include #include #include "musical_notes.h" +#include "song_list.h" #ifndef AUDIO_H #define AUDIO_H -- cgit v1.2.3 From 5c98ad59606ee95b82c27bf2525383a9ec88542b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 20:14:37 -0500 Subject: Added extra songs, LED indicator notes --- keyboard/atomic/atomic.c | 31 +++- keyboard/atomic/keymaps/pvc/config.h | 10 +- keyboard/atomic/keymaps/pvc/keymap.c | 292 ++++++++++++++++++-------------- keyboard/atomic/keymaps/pvc/makefile.mk | 2 +- keyboard/planck/keymaps/pvc_planck.c | 24 +-- keyboard/retro_refit/retro_refit.c | 32 ++-- quantum/audio.c | 17 +- quantum/audio.h | 2 + quantum/keymap_common.c | 14 +- quantum/musical_notes.h | 5 + quantum/song_list.h | 104 ++++++++++-- tmk_core/common/command.c | 7 + 12 files changed, 346 insertions(+), 194 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index 30e812289..5e31264e6 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -2,12 +2,22 @@ __attribute__ ((weak)) void matrix_init_user(void) { - // leave these blank -} + // leave this function blank - it can be defined in a keymap file +}; __attribute__ ((weak)) void matrix_scan_user(void) { - // leave these blank + // 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) { @@ -33,4 +43,17 @@ void matrix_scan_kb(void) { // runs every cycle (a lot) matrix_scan_user(); -} \ No newline at end of file +} + +void process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + 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); +} diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h index 8449fa06d..cb0b78e44 100644 --- a/keyboard/atomic/keymaps/pvc/config.h +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -41,7 +41,7 @@ along with this program. If not, see . * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * -*/ +*/ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, B3 } @@ -62,17 +62,17 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* +/* * Force NKRO * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * 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 + * 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) @@ -90,7 +90,7 @@ along with this program. If not, see . * 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 + * 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. * */ diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index aaef6b041..563519e4c 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -1,17 +1,18 @@ #include "atomic.h" #include "action_layer.h" +#include "led.h" #ifdef AUDIO_ENABLE #include "audio.h" #include "song_list.h" #endif - #define _QW 0 #define _LW 1 #define _RS 2 #define _AD 3 #define _FN 4 +#define _MUSIC 4 #define M_QW 0 #define M_LW 1 @@ -24,6 +25,24 @@ #define M_TU 8 #define M_TD 9 #define M_DF 10 +#define M_MUSIC_ON 11 +#define M_MUSIC_OFF 12 +#define M_AUDIO_ON 13 +#define M_AUDIO_OFF 14 + +#define TIMBR_1 M(M_T1) +#define TIMBR_2 M(M_T2) +#define TIMBR_3 M(M_T3) +#define TIMBR_4 M(M_T4) +#define TMPO_UP M(M_TU) +#define TMPO_DN M(M_TD) +#define TMPO_DF M(M_DF) + + +#define MUS_ON M(M_MUSIC_ON) +#define MUS_OFF M(M_MUSIC_OFF) +#define AUD_OFF M(M_AUDIO_OFF) +#define AUD_ON M(M_AUDIO_ON) #define _______ KC_TRNS @@ -70,135 +89,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { 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 }, - { _______, M(M_T1), M(M_T2), M(M_T3), M(M_T4), M(M_TU), M(M_TD), M(M_DF), _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, [_AD] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +[_MUSIC] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, -}; - - - -#ifdef AUDIO_ENABLE +} -float start_up[][2] = SONG(ODE_TO_JOY); - -float tone_lw[][2] = { - - Q__NOTE(_C4 ) , - Q__NOTE(_CS4 ) , - Q__NOTE(_D4 ) , - Q__NOTE(_DS4 ) , - Q__NOTE(_E4 ) , - Q__NOTE(_F4 ) , - Q__NOTE(_FS4 ) , - Q__NOTE(_G4 ) , - Q__NOTE(_GS4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_AS4 ) , - - Q__NOTE(_B1 ) , - - Q__NOTE(_C2 ) , - Q__NOTE(_CS2 ) , - Q__NOTE(_D2 ) , - Q__NOTE(_DS2 ) , - Q__NOTE(_E2 ) , - Q__NOTE(_F2 ) , - Q__NOTE(_FS2 ) , - Q__NOTE(_G2 ) , - Q__NOTE(_GS2 ) , - Q__NOTE(_A2 ) , - Q__NOTE(_AS2 ) , - Q__NOTE(_B2 ) , - Q__NOTE(_C3 ) , - Q__NOTE(_CS3 ) , - Q__NOTE(_D3 ) , - Q__NOTE(_DS3 ) , - Q__NOTE(_E3 ) , - Q__NOTE(_F3 ) , - Q__NOTE(_FS3 ) , - Q__NOTE(_G3 ) , - Q__NOTE(_GS3 ) , - Q__NOTE(_A3 ) , - Q__NOTE(_AS3 ) , - Q__NOTE(_B3 ) , - Q__NOTE(_C4 ) , - Q__NOTE(_CS4 ) , - Q__NOTE(_D4 ) , - Q__NOTE(_DS4 ) , - Q__NOTE(_E4 ) , - Q__NOTE(_F4 ) , - Q__NOTE(_FS4 ) , - Q__NOTE(_G4 ) , - Q__NOTE(_GS4 ) , - Q__NOTE(_A4 ) , - Q__NOTE(_AS4 ) , - Q__NOTE(_B4 ) , - Q__NOTE(_C5 ) , - Q__NOTE(_CS5 ) , - Q__NOTE(_D5 ) , - Q__NOTE(_DS5 ) , - Q__NOTE(_E5 ) , - Q__NOTE(_F5 ) , - Q__NOTE(_FS5 ) , - Q__NOTE(_G5 ) , - Q__NOTE(_GS5 ) , - Q__NOTE(_A5 ) , - Q__NOTE(_AS5 ) , - Q__NOTE(_B5 ) , - Q__NOTE(_C6 ) , - Q__NOTE(_CS6 ) , - Q__NOTE(_D6 ) , - Q__NOTE(_DS6 ) , - Q__NOTE(_E6 ) , - Q__NOTE(_F6 ) , - Q__NOTE(_FS6 ) , - Q__NOTE(_G6 ) , - Q__NOTE(_GS6 ) , - Q__NOTE(_A6 ) , - Q__NOTE(_AS6 ) , - Q__NOTE(_B6 ) , - Q__NOTE(_C7 ) , - Q__NOTE(_CS7 ) , - Q__NOTE(_D7 ) , - Q__NOTE(_DS7 ) , - Q__NOTE(_E7 ) , - Q__NOTE(_F7 ) , - Q__NOTE(_FS7 ) , - Q__NOTE(_G7 ) , - Q__NOTE(_GS7 ) , - Q__NOTE(_A7 ) , - Q__NOTE(_AS7 ) , - Q__NOTE(_B7 ) , - Q__NOTE(_C8 ) , - Q__NOTE(_CS8 ) , - Q__NOTE(_D8 ) , - Q__NOTE(_DS8 ) , - Q__NOTE(_E8 ) , - Q__NOTE(_F8 ) , - Q__NOTE(_FS8 ) , - Q__NOTE(_G8 ) , - Q__NOTE(_GS8 ) , - Q__NOTE(_A8 ) , - Q__NOTE(_AS8 ) , - Q__NOTE(_B8 ) , }; -float tone_rs[][2] = SONG(ROCK_A_BYE_BABY); +#ifdef AUDIO_ENABLE -void matrix_init_user(void) { - init_notes(); - PLAY_NOTE_ARRAY(start_up, false, STACCATO); - println("Matrix Init"); -} +float tone_my_startup[][2] = SONG(ODE_TO_JOY); +float tone_my_goodbye[][2] = SONG(ROCK_A_BYE_BABY); +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); -#endif +#endif /* AUDIO_ENABLE */ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) @@ -242,9 +166,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case M_LW: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_lw, false, STACCATO); - #endif layer_on(_LW); update_tri_layer(_LW, _RS, _AD); } else { @@ -254,9 +175,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case M_RS: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_rs, false, LEGATO); - #endif layer_on(_RS); update_tri_layer(_LW, _RS, _AD); } else { @@ -306,9 +224,135 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + case M_AUDIO_OFF: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case M_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case M_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(_MUSIC); + #endif + } + break; + + case M_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + default: break; } return MACRO_NONE; -}; \ No newline at end of file +}; + + +#ifdef AUDIO_ENABLE + +uint8_t starting_note = 0x0C; +int offset = 7; + + +void 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))); + } + } +} + + +void matrix_init_user(void) +{ + init_notes(); + play_startup_tone(); + println("Matrix Init"); +} + +void led_set_user(uint8_t usb_led) +{ + static uint8_t old_usb_led = 0; + static bool first_run = true; + + // Skip first execution to avoid beeps caused by LED states being detected on power-up + if (!first_run) + { + + if ((usb_led & (1< 1) { - layer_on(layer); - } else { - layer_off(layer); - } -} - - const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function @@ -161,13 +151,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { print("RS_DN"); layer_on(_RS); - tri_layer++; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } else { print("RS_UP"); layer_off(_RS); - tri_layer--; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); phex(layer_state); } break; @@ -176,13 +164,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { print("LW_DN"); layer_on(_LW); - tri_layer++; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } else { print("LW_UP"); layer_off(_LW); - tri_layer--; - update_tri_layer(_FN); + update_tri_layer(_RS, _LW, _FN); } break; diff --git a/keyboard/retro_refit/retro_refit.c b/keyboard/retro_refit/retro_refit.c index 0b13eb830..78b6edca7 100644 --- a/keyboard/retro_refit/retro_refit.c +++ b/keyboard/retro_refit/retro_refit.c @@ -2,39 +2,39 @@ __attribute__ ((weak)) void matrix_init_user(void) { - // leave this function blank - it can be defined in a keymap file + // 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 + // 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 + // 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(); + // 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(); + matrix_scan_user(); }; void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here if (usb_led & (1< #ifdef AUDIO_ENABLE #include "audio.h" - - #ifndef TONE_GOODBYE - #define TONE_GOODBYE OLKB_GOODBYE - #endif /*! TONE_GOODBYE */ - - float tone_goodbye[][2] = SONG(TONE_GOODBYE); #endif /* AUDIO_ENABLE */ static action_t keycode_to_action(uint16_t keycode); @@ -47,7 +41,7 @@ static action_t keycode_to_action(uint16_t keycode); /* converts key to action */ action_t action_for_key(uint8_t layer, keypos_t key) { - // 16bit keycodes - important + // 16bit keycodes - important uint16_t keycode = keymap_key_to_keycode(layer, key); switch (keycode) { @@ -190,7 +184,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + play_goodbye_tone(); #endif _delay_ms(250); #ifdef ATREUS_ASTAR @@ -303,7 +297,7 @@ static action_t keycode_to_action(uint16_t keycode) /* translates key to keycode */ uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { - // Read entire word (16bits) + // Read entire word (16bits) return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); } @@ -315,7 +309,7 @@ action_t keymap_fn_to_action(uint16_t keycode) action_t keymap_func_to_action(uint16_t keycode) { - // For FUNC without 8bit limit + // For FUNC without 8bit limit return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; } diff --git a/quantum/musical_notes.h b/quantum/musical_notes.h index ccdc34f27..b08d16a6f 100644 --- a/quantum/musical_notes.h +++ b/quantum/musical_notes.h @@ -51,7 +51,10 @@ // Notes - # = Octave + #define NOTE_REST 0.00 + +/* These notes are currently bugged #define NOTE_C0 16.35 #define NOTE_CS0 17.32 #define NOTE_D0 18.35 @@ -75,6 +78,8 @@ #define NOTE_GS1 51.91 #define NOTE_A1 55.00 #define NOTE_AS1 58.27 +*/ + #define NOTE_B1 61.74 #define NOTE_C2 65.41 #define NOTE_CS2 69.30 diff --git a/quantum/song_list.h b/quantum/song_list.h index b626c3fa6..e992bd18a 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -4,20 +4,98 @@ #define SONG_LIST_H #define ODE_TO_JOY \ - Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ - Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ - Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ - QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), + Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \ + Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \ + Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \ + QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4), #define ROCK_A_BYE_BABY \ - QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \ - H__NOTE(_A5), Q__NOTE(_G5), \ - QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ - H__NOTE(_FS5), - -#define OLKB_GOODBYE \ - E__NOTE(_E7), \ - E__NOTE(_A6), \ - ED_NOTE(_E6), + QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \ + H__NOTE(_A5), Q__NOTE(_G5), \ + QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \ + H__NOTE(_FS5), + +#define CLOSE_ENCOUNTERS_5_NOTE \ + Q__NOTE(_D5), \ + Q__NOTE(_E5), \ + Q__NOTE(_C5), \ + Q__NOTE(_C4), \ + Q__NOTE(_G4), + +#define DOE_A_DEER \ + QD_NOTE(_C4), E__NOTE(_D4), \ + QD_NOTE(_E4), E__NOTE(_C4), \ + Q__NOTE(_E4), Q__NOTE(_C4), \ + Q__NOTE(_E4), + +#define GOODBYE_SOUND \ + E__NOTE(_E7), \ + E__NOTE(_A6), \ + ED_NOTE(_E6), + +#define STARTUP_SOUND \ + ED_NOTE(_E7 ), \ + E__NOTE(_CS7), \ + E__NOTE(_E6 ), \ + E__NOTE(_A6 ), \ + M__NOTE(_CS7, 20), + +#define QWERTY_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + Q__NOTE(_E7 ), + +#define COLEMAK_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_GS7 ), + +#define DVORAK_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + E__NOTE(_E7 ), \ + S__NOTE(_REST), \ + E__NOTE(_FS7 ), \ + S__NOTE(_REST), \ + E__NOTE(_E7 ), + +#define MUSIC_SCALE_SOUND \ + E__NOTE(_A5 ), \ + E__NOTE(_B5 ), \ + E__NOTE(_CS6), \ + E__NOTE(_D6 ), \ + E__NOTE(_E6 ), \ + E__NOTE(_FS6), \ + E__NOTE(_GS6), \ + E__NOTE(_A6 ), + +#define CAPS_LOCK_ON_SOUND \ + E__NOTE(_A3), \ + E__NOTE(_B3), + +#define CAPS_LOCK_OFF_SOUND \ + E__NOTE(_B3), \ + E__NOTE(_A3), + +#define SCROLL_LOCK_ON_SOUND \ + E__NOTE(_D4), \ + E__NOTE(_E4), + +#define SCROLL_LOCK_OFF_SOUND \ + E__NOTE(_E4), \ + E__NOTE(_D4), + +#define NUM_LOCK_ON_SOUND \ + E__NOTE(_D5), \ + E__NOTE(_E5), + +#define NUM_LOCK_OFF_SOUND \ + E__NOTE(_E5), \ + E__NOTE(_D5), #endif diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index 7572b9597..f06abaf7f 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -49,6 +49,10 @@ along with this program. If not, see . # include "usbdrv.h" #endif +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif /* AUDIO_ENABLE */ + static bool command_common(uint8_t code); static void command_common_help(void); @@ -352,6 +356,9 @@ static bool command_common(uint8_t code) case MAGIC_KC(MAGIC_KEY_BOOTLOADER): clear_keyboard(); // clear to prevent stuck keys print("\n\nJumping to bootloader... "); + #ifdef AUDIO_ENABLE + play_goodbye_tone(); + #endif _delay_ms(1000); bootloader_jump(); // not return break; -- cgit v1.2.3 From ef73ab662812232f5e73c8098a059439dcb201fa Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 17 Apr 2016 22:08:05 -0500 Subject: Notes Bugfix --- keyboard/atomic/keymaps/pvc/keymap.c | 65 ++++++++++++++++-------------------- quantum/audio.c | 6 ++-- 2 files changed, 33 insertions(+), 38 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 563519e4c..f88d5117c 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -302,45 +302,38 @@ void matrix_init_user(void) void led_set_user(uint8_t usb_led) { static uint8_t old_usb_led = 0; - static bool first_run = true; - // Skip first execution to avoid beeps caused by LED states being detected on power-up - if (!first_run) + if ((usb_led & (1<event.pressed){ return MACRO(D(LGUI),D(LSFT),END); }else{ - return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); + return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); } break; -- cgit v1.2.3 From 4f4b5b8c18d4f1bf4fd4c51ad6f316501dfbd6cc Mon Sep 17 00:00:00 2001 From: IBNobody Date: Mon, 18 Apr 2016 01:58:25 -0500 Subject: Added CM/DK --- keyboard/atomic/keymaps/pvc/keymap.c | 298 ++++++++++++++++++++++++----------- 1 file changed, 202 insertions(+), 96 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index f88d5117c..380e69ee9 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -1,55 +1,66 @@ #include "atomic.h" #include "action_layer.h" +#include "eeconfig.h" #include "led.h" #ifdef AUDIO_ENABLE -#include "audio.h" -#include "song_list.h" + #include "audio.h" + #include "song_list.h" #endif -#define _QW 0 -#define _LW 1 -#define _RS 2 -#define _AD 3 -#define _FN 4 -#define _MUSIC 4 - -#define M_QW 0 -#define M_LW 1 -#define M_RS 2 -#define M_FN 3 -#define M_T1 4 -#define M_T2 5 -#define M_T3 6 -#define M_T4 7 -#define M_TU 8 -#define M_TD 9 -#define M_DF 10 -#define M_MUSIC_ON 11 -#define M_MUSIC_OFF 12 -#define M_AUDIO_ON 13 -#define M_AUDIO_OFF 14 - -#define TIMBR_1 M(M_T1) -#define TIMBR_2 M(M_T2) -#define TIMBR_3 M(M_T3) -#define TIMBR_4 M(M_T4) -#define TMPO_UP M(M_TU) -#define TMPO_DN M(M_TD) -#define TMPO_DF M(M_DF) - - -#define MUS_ON M(M_MUSIC_ON) -#define MUS_OFF M(M_MUSIC_OFF) -#define AUD_OFF M(M_AUDIO_OFF) -#define AUD_ON M(M_AUDIO_ON) - - -#define _______ KC_TRNS -#define ___T___ KC_TRNS -#define XXXXXXX KC_NO - -/* +#define LAYER_QWERTY 0 +#define LAYER_COLEMAK 1 +#define LAYER_DVORAK 2 +#define LAYER_LOWER 3 +#define LAYER_RAISE 4 +#define LAYER_ADJUST 5 +#define LAYER_FUNCTION 6 +#define LAYER_MUSIC 7 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_LOWER 3 +#define MACRO_RAISE 4 +#define MACRO_FUNCTION 5 +#define MACRO_TIMBRE_1 6 +#define MACRO_TIMBRE_2 7 +#define MACRO_TIMBRE_3 8 +#define MACRO_TIMBRE_4 9 +#define MACRO_TEMPO_U 10 +#define MACRO_TEMPO_D 11 +#define MACRO_TONE_DEFAULT 12 +#define MACRO_MUSIC_ON 13 +#define MACRO_MUSIC_OFF 14 +#define MACRO_AUDIO_ON 15 +#define MACRO_AUDIO_OFF 16 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_LOWER M(MACRO_LOWER) +#define M_RAISE M(MACRO_RAISE) +#define M_FUNCT M(MACRO_FUNCTION) +#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 MUS_ON M(MACRO_MUSIC_ON) +#define MUS_OFF M(MACRO_MUSIC_OFF) +#define AUD_OFF M(MACRO_AUDIO_OFF) +#define AUD_ON M(MACRO_AUDIO_ON) + + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* QWERTY * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| @@ -64,55 +75,109 @@ */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* QWERTY */ + [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, XXXXXXX }, { 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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M(M_FN), KC_LALT, M(M_RS), KC_SPC, XXXXXXX, M(M_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, 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 ------------+--------| + * | CAPS | 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | 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_CAPS, 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_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, 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 | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | 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_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_CAPS, 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 }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, - [_LW] = { /* LOWERED */ + + + [LAYER_LOWER] = { /* LOWERED */ { 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, ___T___, ___T___ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, - [_RS] = { /* RAISED */ + + [LAYER_RAISE] = { /* RAISED */ { KC_TILD, 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_INS }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, - [_FN] = { /* FUNCTION */ + + [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, ___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 }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, - [_AD] = { /* ADJUST */ + + [LAYER_ADJUST] = { /* ADJUST */ { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, }, -[_MUSIC] = { + + [LAYER_MUSIC] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, -} - + }, }; #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(COLEMAK_SOUND); +float tone_colemak[][2] = SONG(DVORAK_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); @@ -124,7 +189,7 @@ float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); #endif /* AUDIO_ENABLE */ - +/* void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) { if (order) @@ -152,71 +217,111 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l } } } +*/ +void persistant_default_layer_set(uint16_t default_layer) +{ + eeconfig_write_default_layer(default_layer); + default_layer_set(default_layer); +} 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 M_LW: - if (record->event.pressed) { - layer_on(_LW); - update_tri_layer(_LW, _RS, _AD); - } else { - layer_off(_LW); - update_tri_layer(_LW, _RS, _AD); + + 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_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } break; - case M_RS: - if (record->event.pressed) { - layer_on(_RS); - update_tri_layer(_LW, _RS, _AD); - } else { - layer_off(_RS); - update_tri_layer(_LW, _RS, _AD); + + case MACRO_RAISE: + if (record->event.pressed) + { + layer_on(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); } break; - case M_FN: - if (record->event.pressed) { - layer_on(_FN); - } else { - layer_off(_FN); + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); } break; - case M_T1: + case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; - case M_T2: + case MACRO_TIMBRE_2: if (record->event.pressed) set_timbre(TIMBRE_25); break; - case M_T3: + case MACRO_TIMBRE_3: if (record->event.pressed) set_timbre(TIMBRE_50); break; - case M_T4: + case MACRO_TIMBRE_4: if (record->event.pressed) set_timbre(TIMBRE_75); break; - - case M_TU: + case MACRO_TEMPO_U: if (record->event.pressed) increase_tempo(10); break; - case M_TD: + case MACRO_TEMPO_D: if (record->event.pressed) decrease_tempo(10); break; - case M_DF: + case MACRO_TONE_DEFAULT: if (record->event.pressed) { set_timbre(TIMBRE_DEFAULT); @@ -224,40 +329,41 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; - case M_AUDIO_OFF: - if (record->event.pressed) { + case MACRO_AUDIO_OFF: + if (record->event.pressed) + { #ifdef AUDIO_ENABLE - audio_off(); + audio_off(); #endif } break; - case M_AUDIO_ON: + case MACRO_AUDIO_ON: if (record->event.pressed) { #ifdef AUDIO_ENABLE - audio_on(); + audio_on(); PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); #endif } break; - case M_MUSIC_ON: + case MACRO_MUSIC_ON: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); - layer_on(_MUSIC); + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); #endif } break; - case M_MUSIC_OFF: + case MACRO_MUSIC_OFF: if (record->event.pressed) { #ifdef AUDIO_ENABLE - layer_off(_MUSIC); - stop_all_notes(); + layer_off(LAYER_MUSIC); + stop_all_notes(); #endif } break; @@ -278,7 +384,7 @@ int offset = 7; void process_action_user(keyrecord_t *record) { - if (IS_LAYER_ON(_MUSIC)) + if (IS_LAYER_ON(LAYER_MUSIC)) { if (record->event.pressed) { -- cgit v1.2.3 From 4b3358acc270772e5605397bab26fb5db981084d Mon Sep 17 00:00:00 2001 From: IBNobody Date: Mon, 18 Apr 2016 18:58:37 -0500 Subject: Fixed speaker being on during sleep. --- keyboard/atomic/keymaps/pvc/keymap.c | 462 ++++++++++++++++++----------------- tmk_core/common/avr/suspend.c | 12 +- 2 files changed, 248 insertions(+), 226 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 380e69ee9..36098f1eb 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -4,8 +4,8 @@ #include "led.h" #ifdef AUDIO_ENABLE - #include "audio.h" - #include "song_list.h" + #include "audio.h" + #include "song_list.h" #endif #define LAYER_QWERTY 0 @@ -56,6 +56,18 @@ #define AUD_ON M(MACRO_AUDIO_ON) +#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 ___T___ KC_TRNS #define XXXXXXX KC_NO @@ -107,11 +119,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* DVORAK * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. - * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | [ | ] | XXXXXX . BACKSP | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| - * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | + * | 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 | + * | 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 ------------+--------+--------+--------+--------+-----------------+--------+--------| @@ -120,9 +132,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [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_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_CAPS, 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_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_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, @@ -130,18 +142,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_LOWER] = { /* LOWERED */ { 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, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, SC_CCLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, SC_REDO, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [LAYER_RAISE] = { /* RAISED */ { KC_TILD, 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_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, SC_ACLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, SC_SELA, SC_SAVE, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, SC_UNDO, SC_CUT, SC_COPY, SC_PSTE, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [LAYER_FUNCTION] = { /* FUNCTION */ @@ -157,7 +169,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, }, [LAYER_MUSIC] = { @@ -165,7 +177,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, }, }; @@ -192,37 +204,37 @@ float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND); /* void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) { - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } + if (order) + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer3); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } + else + { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) + { + layer_on(layer4); + } + else + { + layer_off(layer3); + layer_off(layer4); + } + } } */ void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); - default_layer_set(default_layer); + eeconfig_write_default_layer(default_layer); + default_layer_set(default_layer); } const uint16_t PROGMEM fn_actions[] = { @@ -231,148 +243,148 @@ 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 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_RAISE, LAYER_ADJUST); - } - else - { - layer_off(LAYER_LOWER); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); - } - break; - - case MACRO_RAISE: - if (record->event.pressed) - { - layer_on(LAYER_RAISE); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); - } - else - { - layer_off(LAYER_RAISE); - update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); - } - break; - - case MACRO_FUNCTION: - if (record->event.pressed) - { - layer_on(LAYER_FUNCTION); - } - else - { - layer_off(LAYER_FUNCTION); - } - break; - - 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_OFF: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - - case MACRO_AUDIO_ON: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); - #endif - } - break; - - case MACRO_MUSIC_ON: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); - layer_on(LAYER_MUSIC); - #endif - } - break; - - case MACRO_MUSIC_OFF: - if (record->event.pressed) - { - #ifdef AUDIO_ENABLE - layer_off(LAYER_MUSIC); - stop_all_notes(); - #endif - } - break; - - default: - break; - - } - return MACRO_NONE; + // 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_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_RAISE: + if (record->event.pressed) + { + layer_on(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + layer_off(LAYER_FUNCTION); + } + break; + + 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_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case MACRO_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case MACRO_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); + #endif + } + break; + + case MACRO_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(LAYER_MUSIC); + stop_all_notes(); + #endif + } + break; + + default: + break; + + } + return MACRO_NONE; }; @@ -384,74 +396,74 @@ int offset = 7; void process_action_user(keyrecord_t *record) { - if (IS_LAYER_ON(LAYER_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))); - } - } + if (IS_LAYER_ON(LAYER_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))); + } + } } void matrix_init_user(void) { - init_notes(); - play_startup_tone(); - println("Matrix Init"); + init_notes(); + play_startup_tone(); + println("Matrix Init"); } void led_set_user(uint8_t usb_led) { - static uint8_t old_usb_led = 0; + static uint8_t old_usb_led = 0; - if ((usb_led & (1<event.pressed) { #ifdef AUDIO_ENABLE layer_off(_MUSIC); + layer_off(_STOPPER); stop_all_notes(); #endif } @@ -317,6 +332,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) set_tempo(150); PLAY_NOTE_ARRAY(ode_to_joy, false, .25); layer_on(_MUSIC); + layer_on(_STOPPER); #endif } break; @@ -345,3 +361,9 @@ void matrix_init_user(void) { PLAY_NOTE_ARRAY(start_up, false, 0); #endif } + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(2000); +} \ No newline at end of file diff --git a/quantum/audio.c b/quantum/audio.c index 69c58ca6c..6a5d43013 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -65,6 +65,7 @@ uint8_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; +int note_flipper = 0; uint8_t current_note = 0; uint8_t rest_counter = 0; @@ -127,6 +128,9 @@ void stop_note(double freq) { voices--; if (voices < 0) voices = 0; + if (voice_place >= voices) { + voice_place = 0; + } if (voices == 0) { #ifdef PWM_AUDIO TIMSK3 &= ~_BV(OCIE3A); @@ -137,25 +141,6 @@ void stop_note(double freq) { frequency = 0; volume = 0; note = false; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - double starting_f = frequency; - if (frequency < freq) { - sliding = true; - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { - frequency = f; - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { - frequency = f; - } - sliding = false; - } - frequency = freq; - volume = vol; } } } @@ -248,16 +233,41 @@ ISR(TIMER3_COMPA_vect) { OCR4A = sum; } #else - if (frequency > 0) { + if (frequencies[voice_place] > 0) { + // if (frequencies[voice_place] > 880.0) { + // if (note_flipper == 100) { + // note_flipper = 0; + // return; + // } + // note_flipper++; + // } else { + // note_flipper = 0; + // } // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period - voice_place %= voices; - if (place > (frequencies[voice_place] / 50)) { - voice_place = (voice_place + 1) % voices; - place = 0.0; + + double freq; + if (false) { + voice_place %= voices; + if (place > (frequencies[voice_place] / 50)) { + voice_place = (voice_place + 1) % voices; + place = 0.0; + } + freq = frequencies[voice_place]; + } else { + if (frequency != 0) { + if (frequency < frequencies[voices - 1]) { + frequency = frequency * 1.01454533494; + } else if (frequency > frequencies[voices - 1]) { + frequency = frequency * 0.98566319864; + } + } else { + frequency = frequencies[voices - 1]; + } + freq = frequency; } - ICR3 = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)((((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) * note_timbre); // Set compare to half the period + ICR3 = (int)(((double)F_CPU) / (freq * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)((((double)F_CPU) / (freq * CPU_PRESCALER)) * note_timbre); // Set compare to half the period //OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period place++; // if (duty_counter > (frequencies[voice_place] / 500)) { @@ -413,23 +423,8 @@ if (audio_config.enable && voices < 8) { freq = freq / SAMPLE_RATE; #endif if (freq > 0) { - if (frequency != 0) { - double starting_f = frequency; - if (frequency < freq) { - for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { - frequency = f; - } - } else if (frequency > freq) { - for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { - frequency = f; - } - } - } - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; + frequencies[voices] = freq; + volumes[voices] = vol; voices++; } diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 4ee290ad0..43debf4ef 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -184,6 +184,7 @@ static action_t keycode_to_action(uint16_t keycode) case RESET: ; // RESET is 0x5000, which is why this is here clear_keyboard(); #ifdef AUDIO_ENABLE + stop_all_notes(); play_goodbye_tone(); #endif _delay_ms(250); -- cgit v1.2.3 From 0fbc52809e674633cc053979e435b6305bc243aa Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Tue, 19 Apr 2016 07:50:29 +0200 Subject: new experimental layout --- .../keymaps/osx_de_experimental/keymap.c | 64 ++++++++++----------- .../osx_de_experimental_highres.png | Bin 187478 -> 187506 bytes 2 files changed, 31 insertions(+), 33 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c index 5b8fd28a7..3974dacf6 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -22,17 +22,17 @@ #define NUMB 4 #define EGOS 5 -#define M_TOGGLE_5 0 -#define M_DE_OSX_PLUS_CTRLALT 1 -#define SM_KISS 2 -#define SM_FROWN 3 -#define SM_CRY 4 -#define SM_SMILE 5 -#define SM_SMIRK 6 -#define M_LGUI_SHFT 7 -#define SM_HEART 8 -#define SM_LAUGH 9 -#define M_CTL_SFT_HASH 10 +#define SMLY_TOG_QUOT 0 +#define M_TOGGLE_5 1 +#define M_DE_OSX_PLUS_CTRLALT 2 +#define SM_KISS 3 +#define SM_FROWN 4 +#define SM_CRY 5 +#define SM_SMILE 6 +#define SM_SMIRK 7 +#define M_LGUI_SHFT 8 +#define SM_HEART 9 +#define SM_LAUGH 10 #define SM_SAD 11 #define M_DE_OSX_CIRC_CTRLCMD 12 #define M_MEH_SH_ACUT 13 @@ -45,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), LT(SMLY,DE_OSX_QUOT), + 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, @@ -163,6 +163,23 @@ 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(D(LSFT),T(BSLS),U(LSFT),END); + } + } + +break; case M_TOGGLE_5: //Macro: M_TOGGLE_5//----------------------- if (record->event.pressed){ @@ -225,7 +242,7 @@ case M_LGUI_SHFT: if (record->event.pressed){ return MACRO(D(LGUI),D(LSFT),END); }else{ - return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); + return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); } break; @@ -242,20 +259,6 @@ 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//----------------------- @@ -322,13 +325,8 @@ switch (layer) { 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; diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png index b1e9e763e..7fe2bb19d 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ -- cgit v1.2.3 From a16a9b30b6350ce6115dc1622d517d68dcf0cd68 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Tue, 19 Apr 2016 10:37:37 +0200 Subject: added new macro for toggling and holiding layer --- .../keymaps/osx_de_experimental/keymap.c | 64 ++++++++++++++++------ 1 file changed, 48 insertions(+), 16 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c index 3974dacf6..d723c46e8 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -23,25 +23,27 @@ #define EGOS 5 #define SMLY_TOG_QUOT 0 -#define M_TOGGLE_5 1 -#define M_DE_OSX_PLUS_CTRLALT 2 -#define SM_KISS 3 -#define SM_FROWN 4 -#define SM_CRY 5 -#define SM_SMILE 6 -#define SM_SMIRK 7 -#define M_LGUI_SHFT 8 -#define SM_HEART 9 -#define SM_LAUGH 10 -#define SM_SAD 11 -#define M_DE_OSX_CIRC_CTRLCMD 12 -#define M_MEH_SH_ACUT 13 +#define TOG_HLD_MDIA 1 +#define M_TOGGLE_5 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 SM_LAUGH 11 +#define SM_SAD 12 +#define M_DE_OSX_CIRC_CTRLCMD 13 +#define M_MEH_SH_ACUT 14 +#define TGH_NUM 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, TG(NUMB), + 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, @@ -50,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_PGUP, KC_BSPC, KC_DEL, KC_PGDN, //right half - TG(MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + 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, @@ -187,6 +189,21 @@ case M_TOGGLE_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){ return MACRO(D(LGUI),D(LSFT),END); }else{ - return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); + return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); } break; @@ -252,6 +269,21 @@ if (record->event.pressed) { return MACRO(T(GRV),T(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< 289029 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png index 7fe2bb19d..29f1099d0 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png differ -- cgit v1.2.3 From a2f31c886ff13c5e7adeccccfe672698c1c7efb9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 12:58:13 -0400 Subject: getting ready for getters and setters --- keyboard/preonic/keymaps/default/keymap.c | 28 ++------ quantum/audio.c | 81 ++++++++++++----------- quantum/audio.h | 104 ++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+), 57 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 2546d8f6c..144e9c308 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -14,9 +14,8 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 +#define _MUSIC 5 #define _ADJUST 6 -#define _MUSIC 7 -#define _STOPPER 5 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -159,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_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}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} }, @@ -168,22 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * */ [_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Stopper - * - */ -[_STOPPER] = { {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } }; @@ -237,7 +225,7 @@ float tone_music[][2] = { {440.0*pow(2.0,(23)/12.0), 8}, {440.0*pow(2.0,(24)/12.0), 8} }; -float ode_to_joy[][2] = SONG(ODE_TO_JOY); +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -320,7 +308,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE layer_off(_MUSIC); - layer_off(_STOPPER); stop_all_notes(); #endif } @@ -329,10 +316,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE init_notes(); - set_tempo(150); - PLAY_NOTE_ARRAY(ode_to_joy, false, .25); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); - layer_on(_STOPPER); #endif } break; @@ -358,6 +343,7 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE init_notes(); + _delay_ms(10); PLAY_NOTE_ARRAY(start_up, false, 0); #endif } @@ -365,5 +351,5 @@ void matrix_init_user(void) { void play_goodbye_tone() { PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(2000); + _delay_ms(150); } \ No newline at end of file diff --git a/quantum/audio.c b/quantum/audio.c index d8768f160..c92cb5373 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -34,8 +34,6 @@ int voice_place = 0; double frequency = 0; int volume = 0; long position = 0; -int duty_place = 1; -int duty_counter = 0; double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; @@ -51,7 +49,7 @@ uint16_t place_int = 0; bool repeat = true; uint8_t * sample; uint16_t sample_length = 0; - +double freq = 0; bool notes = false; bool note = false; @@ -65,11 +63,15 @@ uint8_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; -int note_flipper = 0; uint8_t current_note = 0; uint8_t rest_counter = 0; +uint8_t vibrato_counter = 0; +float vibrato_strength = 0; + +float polyphony_rate = 0; + audio_config_t audio_config; @@ -182,6 +184,11 @@ void init_notes() { #endif } +float mod(float a, int b) +{ + float r = fmod(a, b); + return r < 0 ? r + b : r; +} ISR(TIMER3_COMPA_vect) { if (note) { @@ -233,48 +240,41 @@ ISR(TIMER3_COMPA_vect) { OCR4A = sum; } #else - if (frequencies[voice_place] > 0) { - // if (frequencies[voice_place] > 880.0) { - // if (note_flipper == 100) { - // note_flipper = 0; - // return; - // } - // note_flipper++; - // } else { - // note_flipper = 0; - // } - // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period - // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period - - double freq; - if (false) { - voice_place %= voices; - if (place > (frequencies[voice_place] / 50)) { - voice_place = (voice_place + 1) % voices; - place = 0.0; + if (voices > 0) { + if (false && polyphony_rate > 0) { + if (voices > 1) { + voice_place %= voices; + if (place++ > (frequencies[voice_place] / polyphony_rate / CPU_PRESCALER / voices)) { + voice_place = (voice_place + 1) % voices; + place = 0.0; + } } - freq = frequencies[voice_place]; + if (vibrato_strength > 0) { + freq = frequencies[voice_place] * pow(VIBRATO_LUT[(int)vibrato_counter], vibrato_strength); + vibrato_counter = mod((vibrato_counter + 1), VIBRATO_LUT_LENGTH); + } else { + freq = frequencies[voice_place]; + } } else { if (frequency != 0) { if (frequency < frequencies[voices - 1]) { - frequency = frequency * 1.01454533494; + frequency = frequency * pow(2, 440/frequencies[voices - 1]/12/4); } else if (frequency > frequencies[voices - 1]) { - frequency = frequency * 0.98566319864; + frequency = frequency * pow(2, -440/frequencies[voices - 1]/12/4); } } else { frequency = frequencies[voices - 1]; } - freq = frequency; + + if (false && vibrato_strength > 0) { + freq = frequency * pow(VIBRATO_LUT[(int)vibrato_counter], vibrato_strength); + vibrato_counter = mod((vibrato_counter + 1 + 440/frequencies[voices - 1]), VIBRATO_LUT_LENGTH); + } else { + freq = frequency; + } } ICR3 = (int)(((double)F_CPU) / (freq * CPU_PRESCALER)); // Set max to the period OCR3A = (int)((((double)F_CPU) / (freq * CPU_PRESCALER)) * note_timbre); // Set compare to half the period - //OCR3A = (int)(((double)F_CPU) / (frequencies[voice_place] * CPU_PRESCALER)) >> 1 * duty_place; // Set compare to half the period - place++; - // if (duty_counter > (frequencies[voice_place] / 500)) { - // duty_place = (duty_place % 3) + 1; - // duty_counter = 0; - // } - // duty_counter++; } #endif } @@ -300,8 +300,17 @@ ISR(TIMER3_COMPA_vect) { place -= SINE_LENGTH; #else if (note_frequency > 0) { - ICR3 = (int)(((double)F_CPU) / (note_frequency * CPU_PRESCALER)); // Set max to the period - OCR3A = (int)((((double)F_CPU) / (note_frequency * CPU_PRESCALER)) * note_timbre); // Set compare to half the period + float freq; + + if (false && vibrato_strength > 0) { + freq = note_frequency * pow(VIBRATO_LUT[(int)vibrato_counter], vibrato_strength); + vibrato_counter = mod((vibrato_counter + 1), VIBRATO_LUT_LENGTH); + } else { + freq = note_frequency; + } + + ICR3 = (int)(((double)F_CPU) / (freq * CPU_PRESCALER)); // Set max to the period + OCR3A = (int)((((double)F_CPU) / (freq * CPU_PRESCALER)) * note_timbre); // Set compare to half the period } else { ICR3 = 0; OCR3A = 0; diff --git a/quantum/audio.h b/quantum/audio.h index 44cafccd6..f705341d7 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -47,4 +47,108 @@ void decrease_tempo(uint8_t tempo_change); void play_goodbye_tone(void); void play_startup_tone(void); +#define VIBRATO_LUT (float []) { \ +1.00090714186239, \ +1.00181152169061, \ +1.00270955652027, \ +1.00359767896099, \ +1.00447235162891, \ +1.00533008160601, \ +1.00616743486158, \ +1.00698105056935, \ +1.00776765525194, \ +1.00852407668313, \ +1.0092472574777, \ +1.00993426829815, \ +1.01058232060837, \ +1.01118877890462, \ +1.01175117235612, \ +1.01226720578933, \ +1.01273476995269, \ +1.01315195100182, \ +1.0135170391489, \ +1.01382853642434, \ +1.01408516350345, \ +1.01428586555648, \ +1.0144298170856, \ +1.0145164257189, \ +1.01454533493752, \ +1.0145164257189, \ +1.0144298170856, \ +1.01428586555648, \ +1.01408516350345, \ +1.01382853642434, \ +1.0135170391489, \ +1.01315195100182, \ +1.01273476995269, \ +1.01226720578933, \ +1.01175117235612, \ +1.01118877890462, \ +1.01058232060837, \ +1.00993426829815, \ +1.0092472574777, \ +1.00852407668313, \ +1.00776765525194, \ +1.00698105056935, \ +1.00616743486158, \ +1.00533008160601, \ +1.00447235162891, \ +1.00359767896099, \ +1.00270955652027, \ +1.00181152169061, \ +1.00090714186239, \ +1, \ +0.999093680298157, \ +0.998191753986265, \ +0.997297765337276, \ +0.996415217934032, \ +0.995547561242821, \ +0.99469817754036, \ +0.993870369236874, \ +0.993067346634376, \ +0.992292216155724, \ +0.991547969076588, \ +0.990837470789065, \ +0.990163450622494, \ +0.989528492243954, \ +0.988935024658062, \ +0.988385313823004, \ +0.98788145489731, \ +0.987425365129624, \ +0.987018777401739, \ +0.986663234433381, \ +0.986360083655655, \ +0.986110472758728, \ +0.985915345918143, \ +0.985775440703176, \ +0.985691285669809, \ +0.985663198640188, \ +0.985691285669809, \ +0.985775440703176, \ +0.985915345918143, \ +0.986110472758728, \ +0.986360083655655, \ +0.986663234433381, \ +0.987018777401739, \ +0.987425365129624, \ +0.98788145489731, \ +0.988385313823004, \ +0.988935024658062, \ +0.989528492243954, \ +0.990163450622494, \ +0.990837470789065, \ +0.991547969076588, \ +0.992292216155724, \ +0.993067346634376, \ +0.993870369236874, \ +0.99469817754036, \ +0.99554756124282, \ +0.996415217934032, \ +0.997297765337276, \ +0.998191753986265, \ +0.999093680298157, \ +1, \ +} +#define VIBRATO_LUT_LENGTH NOTE_ARRAY_SIZE(VIBRATO_LUT) + #endif \ No newline at end of file -- cgit v1.2.3 From 6ae34f20aa04c3f4c274c268679674ba2288a1aa Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 17:01:04 -0400 Subject: added plover to default layout --- keyboard/planck/keymaps/default/keymap.c | 73 ++++++++++++++++++++++++----- keyboard/planck/keymaps/default/makefile.mk | 3 +- 2 files changed, 62 insertions(+), 14 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index aecddec4a..619112546 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -6,6 +6,9 @@ #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. @@ -16,8 +19,9 @@ #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _ADJUST 5 -#define _MUSIC 6 +#define _MUSIC 5 +#define _PLOVER 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -32,6 +36,8 @@ #endif #define MUS_OFF M(8) #define MUS_ON M(9) +#define PLOVER M(10) +#define EXT_PLV M(11) // Fillers to make layering more clear #define _______ KC_TRNS @@ -129,6 +135,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Plover layer (http://openstenoproject.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | C | V | | N | M | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_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 | @@ -142,20 +177,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } + + }; const uint16_t PROGMEM fn_actions[] = { @@ -302,6 +329,26 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif } break; + case 10: + if (record->event.pressed) { + 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_write_keymap(keymap_config.raw); + } + break; + case 11: + if (record->event.pressed) { + layer_off(_PLOVER); + } + break; + } return MACRO_NONE; }; diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk index 8cbec4a1f..99fbfbd0b 100644 --- a/keyboard/planck/keymaps/default/makefile.mk +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -1 +1,2 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes +NKRO_ENABLE = yes \ No newline at end of file -- cgit v1.2.3 From a2ee27715880616a15756e1b9f42183d9fb08051 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 17:03:43 -0400 Subject: updated comments about plover --- keyboard/planck/keymaps/default/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 619112546..25a0d78f3 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -168,9 +168,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | | | |Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' -- cgit v1.2.3 From f645f9946c11247c19f2347cd25f7ace3a93e9dc Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Tue, 19 Apr 2016 23:27:10 +0200 Subject: re-created all layouts using ErgodoxLayoutGenerator --- keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex | 2426 ++++++++++---------- .../ergodox_ez/keymaps/osx_de/osx_de_highres.png | Bin 189394 -> 298446 bytes .../ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c | 373 ++- .../keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex | 2291 +++++++++--------- .../osx_de_adnw_koy/osx_de_adnw_koy_highres.png | Bin 0 -> 183892 bytes 5 files changed, 2544 insertions(+), 2546 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index c7cb8d863..e6ce5da90 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,1197 +1,1235 @@ -:100000000C94F0030C9434040C9434040C943404D5 -:100010000C9434040C9434040C9434040C94340480 -:100020000C9434040C9434040C94210E0C94F30EB0 -:100030000C9434040C9434040C9434040C94340460 -:100040000C9434040C9478230C9434040C943404ED -:100050000C9434040C94091D0C9434040C94340452 -:100060000C9434040C9434040C9434040C94340430 -:100070000C9434040C9434040C9434040C94340420 -:100080000C9434040C9434040C9434040C94340410 -:100090000C9434040C9434040C9434040C94340400 -:1000A0000C9434040C9434040C94340444044E042E -:1000B00066047E04C604CC04ED04D204E804DE0425 -:1000C000E304D804AE049604F204600F820F7010AB -:1000D000820F7010C70FEA0F70103F1052103413C8 -:1000E000341363136313A613E413FD15FD15FD13F9 -:1000F000FD15FE14FE14D115FD15FD15E81501E1E1 -:100100000137023702E10138023801E201250225F8 -:1001100002E20001E10137023702E1013802380151 -:10012000E10130023002E10001E10137023702E172 -:100130000138023801E10107020702E1000135023E -:1001400035012002200001E10137023702E10138C8 -:10015000023801E10125022502E10001E101360238 -:100160003602E10138023801E10125022502E100F1 -:1001700001E10136023602E10138023801E10126CF -:10018000022602E10001E10137023702E1013802F3 -:100190003801E10126022602E10002E002E201301C -:1001A00002300002E002E20001E001E20002E002AF -:1001B000E3016402640002E002E30001E001E30005 -:1001C00002E002E2012E022E02E10002E002E10260 -:1001D000E20001E001E101E20002E001E3010602C8 -:1001E0000602E30002E00001E00002E001E3011981 -:1001F000021902E30002E00001E0000000F0A1F0BB -:10020000A329002B00E200E100358100001E00144C -:100210000004001D710D304D831F001A0016001BD5 -:10022000000C304C00200008000700060052002A95 -:1002300000210015000900190051004A0022001792 -:10024000000A00050000000330E101E3000000E2C5 -:1002500000000002543100E7000000E60000000446 -:100260005423001C000B00110000002E7F240018F6 -:10027000000D00100050004B0025000C000E003651 -:10028000004F002C00260012000F003700E1082864 -:10029000002700130033003871E1044E002D002FB9 -:1002A000003474E50030810000010001000100010C -:1002B00000010000003A003500310001000100019A -:1002C000003B0035022102350001004C003C001EBD -:1002D0000224062202010001003D002D0224022416 -:1002E00004010001003E000100370011040000017C -:1002F000000100010000000100000001000E3001BB -:100300000000000100000068003F002406240224D1 -:100310000400004500400022042502110431026956 -:100320000041002304260264005000010042003511 -:100330000025045200510001004300350226043814 -:10034000004F006A0044001E02310021020100003B -:100350000001000100010001000100000001000196 -:100360000001000100010001000100F400F200FBA7 -:1003700000010001000100F000F100FA000100019D -:10038000000100F500F300FC00010001000100F98C -:1003900000FA00F600000001000100010000000169 -:1003A0000000000100A800010000000100000001A1 -:1003B0000001000100A900AA0000000100010001E5 -:1003C000000100010001000100010001000100AC7A -:1003D000000100B600010001000100AB0050000167 -:1003E00000010001000100520051000100AE0001B7 -:1003F00000010001004F00000001000100010001A8 -:1004000000010000000100010001000100010001E5 -:1004100000010001000100010001000100010001D4 -:1004200000010001000100010001000100010001C4 -:1004300000010001000100010001000100000001B5 -:100440000001000100000001000000010004300173 -:1004500000000001000000010005300630093001F5 -:1004600000000001000A300B3008300100010001DB -:10047000000100073001000100010001000100013E -:100480000001000100010001000100010001000164 -:100490000001000100010001000100010001000055 -:1004A0000001000100010001000100000001000145 -:1004B00000010001000100010001000100500001E5 -:1004C0000001000100010052005100010001000183 -:1004D00000010001004F00010001000100010001C6 -:1004E0000001000100000001000100010000000106 -:1004F00000000001000100010000000100000001F7 -:10050000003F00520051002302000001004000247F -:100510000021001E00270001004100250022001FCD -:1005200000370001004200260023002000360001B1 -:10053000004300300230002402270201004400453D -:1005400000380001000100000001000100E100018D -:1005500000E0000000010001000100010001003D79 -:100560000001000100010001000100E000010001A4 -:10057000000100010001002C000100010001000148 -:100580000001003C00010001000100010000003AF0 -:1005900000010001000000010000003B000E3001DE -:1005A0000000000100000001000100010001000145 -:1005B0000000000100010001000100010001000134 -:1005C0000001000100010001000100010001000123 -:1005D0000001000100010001000100010001000113 -:1005E0000001000100010001000100010001000004 -:1005F0000016034500720067006F0044006F00782A -:1006000000200045005A00000016034500720067F4 -:10061000006F0044006F007800200045005A000081 -:10062000000403090409026D00040100A0FA090492 -:1006300000000103010100092111010001223F0016 -:100640000705810308000A090401000103010200F3 -:10065000092111010001224D000705820308000A4B -:100660000904020001030000000921110100012218 -:1006700036000705830308000A090403000103008C -:10068000000009211101000122390007058403102F -:1006900000011201100100000008EDFE0713010027 -:1006A0000102000105010906A101050719E029E77A -:1006B0001500250195087501810205081901290514 -:1006C00095057501910295017503910105071900C2 -:1006D000297715002501957875018102C00501096A -:1006E00080A101850216010026B7001A01002AB771 -:1006F00000751095018100C0050C0901A101850359 -:10070000160100269C021A01002A9C027510950110 -:100710008100C005010902A1010901A10005091913 -:1007200001290515002501950575018102950175C1 -:100730000381010501093009311581257F95027575 -:1007400008810609381581257F9501750881060500 -:100750000C0A38021581257F950175088106C0C0F5 -:1007600005010906A101050719E029E71500250182 -:100770009508750181029501750881010508190127 -:1007800029059505750191029501750391010507EC -:10079000190029FF150025FF950675088100C00086 -:1007A00000000000000000000000010204060A0F23 -:1007B00017202C3A4A5D71879DB3C7DAE9F5FCFF33 -:1007C000FCF5E9DAC7B39D87715D4A3A2C20170F13 -:1007D0000A06040201000000000000000000000002 -:1007E00011241FBECFEFDAE0DEBFCDBF04B603FE9B -:1007F00024C08091F0019091F101A091F201B0919B -:10080000F3018730904BA740B04BB9F41092F00140 -:100810001092F1011092F2011092F30114BE84B70C -:10082000877F84BF88E10FB6F894809360001092B0 -:1008300060000FBEE0E0FFE3099511E0A0E0B1E049 -:10084000E4E7FAE402C005900D92A433B107D9F7AA -:1008500011E0A4E3B1E001C01D92A03FB107E1F7B0 -:100860000E94650B0C9438250C940000462F50E034 -:100870004F30510508F0DEC0DC01FA01EA5AFF4FA3 -:1008800012968C910C94ED24882321F085EE0E9421 -:10089000D111D0C085EE0E949912CCC0882349F0B6 -:1008A0000E94D31C909335018093340188EF91E02E -:1008B000089580913401909135010E94DF1C8739A1 -:1008C00091050CF0A8C08AEE91E00895882349F0C4 -:1008D0000E94D31C909335018093340187EE91E000 -:1008E000089580913401909135010E94DF1C873971 -:1008F00091050CF093C089ED91E00895882349F0AB -:100900000E94D31C909335018093340182ED91E0D5 -:10091000089580913401909135010E94DF1C873940 -:1009200091050CF07EC080EC91E00895882349F099 -:100930000E94D31C90933501809334018BEB91E09E -:10094000089580913401909135010E94DF1C873910 -:1009500091050CF069C08DEA91E00895882349F073 -:100960000E94D31C909335018093340188EA91E072 -:10097000089580913401909135010E94DF1C8739E0 -:1009800091050CF054C08AE991E00895882309F498 -:1009900051C085E891E00895882309F44BC080E7B1 -:1009A00091E00895882309F445C08BE591E008950E -:1009B000882309F43FC086E491E008958823D1F1AB -:1009C0008DE391E008958823A9F188E291E00895EC -:1009D000882381F183E191E00895882359F18EEF16 -:1009E00090E00895882331F18091B3019091B40192 -:1009F000A091B501B091B60120E2822780729927BB -:100A0000AA27BB278093B3019093B401A093B501AB -:100A1000B093B6010FC085EF91E0089584EE91E0A8 -:100A200008958BEC91E0089586EB91E0089583EAB8 -:100A300091E0089580E090E0089508956091B301F9 -:100A40007091B4018091B5019091B6010E94381C5B -:100A500056985E9825982D9826982E9827982F9826 -:100A60008330C1F028F4813041F0823049F008959C -:100A7000843049F0853051F00895259A2D9A0895D3 -:100A8000269A2E9A0895259A2D9A04C0259A2D9A71 -:100A9000269A2E9A279A2F9A08950C941E055698F6 -:100AA0005E9825982D9826982E9827982F988FEF46 -:100AB00090E0909389008093880090938B008093BE -:100AC0008A0090938D0080938C00259A2D9A2FEFA9 -:100AD00080E792E0215080409040E1F700C00000A4 -:100AE000269A2E9A2FEF80E792E021508040904086 -:100AF000E1F700C00000279A2F9A2FEF80E792E0DD -:100B0000215080409040E1F700C0000025982D98CA -:100B10002FEF80E792E0215080409040E1F700C045 -:100B2000000026982E982FEF80E792E02150804019 -:100B30009040E1F700C0000027982F9856985E98E3 -:100B400025982D9826982E9827982F98089589EA09 -:100B50008093800089E08093810024982C983F98AE -:100B60008AB18F748AB96E98479A8BB1806B8BB9B2 -:100B7000769A0E944F050C941D0580E28093000137 -:100B80008091360181110EC00E940C0681E0809395 -:100B900036012FEF83ED90E3215080409040E1F744 -:100BA00000C0000080E40E941206809300018111C1 -:100BB0002EC00E943C0680930001811128C00E9433 -:100BC0003C0680930001811122C08FE30E943C0605 -:100BD0008093000181111BC00E94340680E40E94B2 -:100BE000120680930001811112C08CE00E943C0625 -:100BF0008093000181110BC00E943C06809300018C -:100C0000811105C08FE30E943C06809300010E9481 -:100C100034068091000108951092B9008AE0809313 -:100C2000B800089594EA9093BC009091BC0097FF9F -:100C3000FCCF9091B900987F983021F0903111F05D -:100C400081E008958093BB0084E88093BC0080918C -:100C5000BC0087FFFCCF8091B900887F883111F0FC -:100C6000803471F780E0089584E98093BC0080911E -:100C7000BC0084FDFCCF08958093BB0084E8809382 -:100C8000BC008091BC0087FFFCCF9091B900987F99 -:100C900081E0983209F480E0089584E88093BC00F4 -:100CA0008091BC0087FFFCCF8091BB0008958091AC -:100CB0000001811115C080E40E941206809300019A -:100CC00081110CC082E10E943C06809300018111D9 -:100CD00005C08FEF0E943C06809300010E943406FD -:100CE00084B1807F84B985B1807F85B98AB1837FE3 -:100CF0008AB98BB1837F8BB93E98469808950E943C -:100D0000BD05809300010E94570680B38C7080BBA4 -:100D100081B3836F81BBA8E3B1E0E6E4F1E08EE04C -:100D20008E0F11921D928E13FCCF0C94A705BF92CB -:100D3000CF92DF92EF92FF920F931F93CF93DF93A7 -:100D400080910001882379F0809137018F5F809333 -:100D50003701811108C00E94BD05809300018111F7 -:100D600002C00E944F0508E311E0C0E0D0E0DD249E -:100D7000D39482E0C82EEE24E394F12CC730D10541 -:100D800000F580910001811164C080E40E94120688 -:100D900080930001811112C082E10E943C06809381 -:100DA000000181110BC0C7010C2E01C0880F0A94ED -:100DB000EAF780950E943C06809300010E94340669 -:100DC00048C0CA30A1F028F4C83059F0C93061F0E9 -:100DD00005C0CC3089F070F0CD3089F0209A289889 -:100DE00010C0219A29980DC0229A2A980AC0239AE5 -:100DF0002B9807C0529A01C0539A5B9802C03E9A42 -:100E0000469890EA9A95F1F79FB1799902C082E0ED -:100E100001C080E091709D25982B7C9902C084E0F0 -:100E200001C080E0892B7D9902C038E001C030E02C -:100E3000832B7E9902C020E101C020E0822B9FB16C -:100E40009095991F9927991F9295990F907E892BBC -:100E50000FC080910001811149C080E40E941206F8 -:100E600080930001882379F1B12C0E9434068B2DE8 -:100E7000F8019081981719F08083C09201010E94B7 -:100E8000570621960F5F1F4FCE30D10509F076CF60 -:100E900080910101882361F18150809301018823B1 -:100EA00039F08FE99FE00197F1F700C0000020C002 -:100EB000A6E4B1E0E8E3F1E0CF01825F91919D9378 -:100EC0008E13FCCF15C083E10E943C068093000185 -:100ED0008111CACF81E40E94120680930001811122 -:100EE000C3CF0E944D06B82EB094BFCF80E0C0CFD4 -:100EF0000E944D0581E0DF91CF911F910F91FF90EE -:100F0000EF90DF90CF90BF900895E82FF0E0EA5B7C -:100F1000FE4F8081089508958B3B910578F4883ABF -:100F2000910540F5853A9105D0F48430910508F09B -:100F3000B1C08130910509F4ADC06BC0803E910510 -:100F400008F467C0883E910508F4A4C09C01205FA6 -:100F500031092031310508F05CC090650895853A6B -:100F6000910509F459C0863A910509F058C082E804 -:100F700090E40895883A910509F454C0893A91059E -:100F800009F453C08A3A910509F452C08B3A91058D -:100F900009F451C08C3A910509F450C08D3A91057D -:100FA00009F44FC0803B910509F44EC08E3A91057B -:100FB00009F44DC08F3A910509F44CC0813B91056D -:100FC00009F44BC0823B910509F44AC0833B91056B -:100FD00009F449C0843B910509F448C0853B91055B -:100FE00009F447C0863B910509F446C0873B91054B -:100FF00009F445C0883B910509F444C0893B91053B -:1010000009F443C08A3B910509F442C080E094E4AE -:10101000089580E090E0089581E890E4089583E8E1 -:1010200090E4089582EE94E4089589EE94E408959E -:101030008AEE94E4089585EB94E4089586EB94E4B5 -:10104000089587EB94E408958CEC94E408958DEC76 -:1010500094E4089583E895E408958AE895E4089572 -:1010600082E995E4089584E995E4089581E296E49F -:10107000089583E296E4089584E296E4089585E273 -:1010800096E4089586E296E4089587E296E408954A -:101090008AE296E40895089596E0799FF00111247C -:1010A00094E5899FE00DF11D1124E60FF11DEE0F6F -:1010B000FF1FEF5FFD4F859194910895880F991F51 -:1010C000FC01E558FF4F859194910895880F991F71 -:1010D000FC01E550FE4F85919491089526E0729FA2 -:1010E000F001112444E5849FE00DF11D1124E60F69 -:1010F000F11DEE0FFF1FEF5FFD4F859194919C0155 -:101100003A9521154FE1340708F41AC13F512115D2 -:10111000304120F49F700E94660808959C0130536E -:101120002115304118F49927906C0895811520E518 -:10113000920769F40E941F164FEF84E39CE0415030 -:1011400080409040E1F700C000000C942E1D8130DB -:1011500020E5920731F48091CE0181608093CE0129 -:1011600008959C0130552115304108F051C0292FB8 -:1011700033272F70332721303105D9F4AC01437068 -:10118000552702C0220F331F4A95E2F73C68AC0195 -:1011900064E0440F551F6A95E1F744275370242BF0 -:1011A000352B73E0880F991F7A95E1F780769927A0 -:1011B0001DC02230310529F4982F8827816F906A4D -:1011C000089523303105A9F4AC014370552721E07F -:1011D00030E002C0220F331F4A95E2F73C6843E03B -:1011E000880F991F4A95E1F7807E9770822B932B89 -:1011F000089524303105E1F4AC014370552721E016 -:1012000030E002C0220F331F4A95E2F73A68E7CF79 -:101210009C0130572115304118F49F709062089559 -:101220009C0130582115304118F49F70906A089540 -:10123000803E9105E0F4803C910558F5813391059D -:1012400009F46FC048F48932910509F463C08A3209 -:10125000910509F46DC072C089339105E9F08238B7 -:101260009105D1F08533910509F44DC067C0833EE7 -:10127000910581F138F4803E9105B9F0823E9105E7 -:10128000D9F05CC0863E910561F1873E9105A1F1E0 -:1012900055C00E945E0808952091E10120FD02C022 -:1012A00021FF4CC080EE90E049C08091E10180FFB9 -:1012B000F9CF89E390E042C08091E10182FF0EC046 -:1012C0008091E10184FF03C080E090E037C083EEAD -:1012D00090E034C08091E10182FFF2CF82EE90E095 -:1012E0002DC08091E10183FF0BC08091E10184FD5D -:1012F000EBCF87EE90E022C08091E10183FFF5CF34 -:1013000086EE90E01BC08091E10185FF07C089E275 -:1013100090E014C08091E10185FFF9CF85E390E072 -:101320000DC08091E10186FF07C08AE290E006C00F -:101330008091E10186FFF9CF81E390E00E948C0764 -:10134000089508950C94A109809164010895CF93A4 -:10135000DF9300D01F92CDB7DEB79C018091E701EB -:10136000843019F593E099833B832A839093E900B5 -:101370008FEF9091E800815095FD06C095ED9A950C -:10138000F1F700008111F5CF8091E80085FF0DC0D5 -:1013900040E050E063E070E0CE0101960E94110C45 -:1013A0008091E8008E778093E8000F900F900F9067 -:1013B000DF91CF910895CF93DF9300D01F92CDB7E7 -:1013C000DEB72091E701243021F522E029839B83B9 -:1013D0008A8383E08093E9008FEF9091E800815049 -:1013E00095FD06C095ED9A95F1F700008111F5CFB6 -:1013F0008091E80085FF0DC040E050E063E070E0C0 -:10140000CE0101960E94110C8091E8008E778093A6 -:10141000E8000F900F900F90DF91CF9108952091E9 -:10142000E7012430F1F422E02093E9002FEF30911E -:10143000E800215035FD06C035ED3A95F1F7000082 -:101440002111F5CF2091E80025FF0BC040E050E0CE -:1014500065E070E00E94110C8091E8008E77809327 -:10146000E8000895CF93DF93EC019091E701943069 -:1014700009F046C080910C018823D9F080910D01BC -:101480008823B9F09093E9008FEF9091E8008150A4 -:1014900095FD06C095E19A95F1F700008111F5CF11 -:1014A0008091E80085FF2CC040E050E060E170E0F2 -:1014B00017C081E08093E9008FEF9091E8008150A0 -:1014C00095FD06C095ED9A95F1F700008111F5CFD5 -:1014D0008091E80085FF14C040E050E068E070E0D3 -:1014E000CE010E94110C8091E8008E778093E80075 -:1014F00080E1FE01A4E5B1E001900D928A95E1F74B -:10150000DF91CF9108958091E601811109C00E9479 -:10151000A60D0E94030E8091E20084608093E20099 -:1015200008951092E601089508950C9465230E9491 -:10153000C41C0E946B230E94A9100C94A20942E0D3 -:1015400061EC81E00E94200D42E061EC82E00E94AB -:10155000200D42E061EC83E00E94200D42E161EC4D -:1015600084E00C94200D8091E901833009F455C08A -:1015700030F4813071F0823009F48EC008958A30E1 -:1015800009F47AC08B3009F460C0893009F09CC03E -:1015900020C08091E801813A09F096C08091E8006E -:1015A000877F8093E8008091EC019091ED01892B79 -:1015B00021F460E184E591E003C060E080E090E028 -:1015C00070E00E945C0C8091E8008B778093E800CB -:1015D00008958091E801813209F076C08091EC0194 -:1015E0009091ED01009719F0039709F06DC080917B -:1015F000E800877F8093E8008091E80082FD05C0C5 -:101600008091E7018111F8CF5FC08091F100809354 -:1016100064018091E8008B7753C08091E801813AA2 -:1016200009F052C08091EC019091ED01892B09F0F5 -:101630004BC08091E800877F8093E8008091E800AC -:1016400080FFFCCF80910C0136C08091E80181328F -:10165000D9F58091EC019091ED01892BA9F580914C -:10166000E800877F8093E8000E94550D8091EA0191 -:1016700080930C010C941F168091E801813221F5B2 -:101680008091E800877F8093E8000E94550D80914B -:10169000EB018093650108958091E801813AA1F4FE -:1016A0008091E800877F8093E8008091E80080FFC8 -:1016B000FCCF809165018093F1008091E8008E77E6 -:1016C0008093E8000C94550D089584B7877F84BFFC -:1016D00088E10FB6F89480936000109260000FBE0E -:1016E00090E080E80FB6F8948093610090936100D9 -:1016F0000FBE0E94F8100E94A60D0E94030E80915A -:10170000E20084608093E20078940E9489100E9435 -:10171000FA1082E091E00E94A4100E94532380916D -:10172000E701853069F40E94881C8091E5018823D7 -:10173000B1F30E94B01C882391F30E94FB0BEFCF02 -:101740000E940011ECCF292F332723303105C9F037 -:1017500064F42130310581F02230310509F043C0B5 -:101760008DE690E025E236E042C021323105F1F00D -:101770002232310541F137C082E190E022E936E0C2 -:1017800036C099278130910541F08230910541F0B2 -:10179000892B49F5E1E2F6E005C0E9E0F6E002C098 -:1017A000E1EFF5E0849190E09F0121C06430D8F42E -:1017B000E62FF0E0EE0FFF1FEE5DFE4F208131813E -:1017C00089E090E014C0643070F470E0FB01EE0F2B -:1017D000FF1FE65EFE4F20813181FB01EA5EFE4F76 -:1017E000808190E004C080E090E020E030E0FA01E9 -:1017F00031832083089580E189BD82E189BD09B4E8 -:1018000000FEFDCF8091D8008F7D8093D80080911D -:10181000E00082608093E0008091E00081FDFCCFD9 -:101820000895CF92DF92EF92FF920F931F93CF9381 -:10183000DF93EC018B016A010E94740D811133C0AA -:10184000C114D10439F0F60180819181081B190B74 -:10185000C80FD91FE12CF12C0115110519F1809148 -:10186000E80085FD16C08091E8008E778093E8003F -:10187000C114D10449F0F60180819181E80EF91E6E -:10188000F182E08285E00FC00E94740D882321F36D -:101890000AC089918093F10001501109FFEFEF1AFE -:1018A000FF0ADACF80E0DF91CF911F910F91FF9077 -:1018B000EF90DF90CF9008952091EE013091EF01ED -:1018C0002617370748F06115710539F42091E800B3 -:1018D0002E772093E80001C0B90140E06115710541 -:1018E000A9F12091E701222309F443C0253009F42E -:1018F00042C02091E80023FD40C02091E80022FD75 -:1019000032C02091E80020FFE9CF4091F300209100 -:10191000F20030E0342BFC01CF016115710559F064 -:101920002830310540F481918093F10061507109B4 -:101930002F5F3F4FF1CF41E02830310509F040E003 -:101940002091E8002E772093E800C8CF4111C9CF3D -:101950000AC08091E701882361F0853061F08091B1 -:10196000E80083FD0AC08091E80082FFF2CF80E0AA -:10197000089582E0089583E0089581E0089520911C -:10198000EE013091EF012617370748F06115710518 -:1019900039F42091E8002E772093E80001C0B901C6 -:1019A000FC0120E06115710591F18091E701882328 -:1019B00009F440C0853009F43FC08091E80083FD00 -:1019C0003DC08091E80082FD2FC08091E80080FF3B -:1019D000E9CF2091F3008091F20090E0922B611505 -:1019E000710559F08830910540F424912093F1005D -:1019F0003196615071090196F2CF21E0089709F004 -:101A000020E08091E8008E778093E800CBCF211111 -:101A1000CCCF0AC08091E701882361F0853061F066 -:101A20008091E80083FD0AC08091E80082FFF2CF38 -:101A300080E0089582E0089583E0089581E00895AC -:101A4000982F973058F59093E900981739F07091D6 -:101A5000EC002091ED005091F00003C0242F762F70 -:101A600050E021FF19C03091EB003E7F3093EB0036 -:101A70003091ED003D7F3093ED003091EB0031600F -:101A80003093EB007093EC002093ED005093F00046 -:101A90002091EE0027FF07C09F5FD3CF8F70809308 -:101AA000E90081E0089580E008958091E80187FFD2 -:101AB00011C08091E80082FD05C08091E70181118D -:101AC000F8CF11C08091E8008B770BC08091E701BF -:101AD000882349F08091E80080FFF8CF8091E800EA -:101AE0008E778093E80008952091E4003091E5001E -:101AF00095E64091EC00842F817040FF22C08091D8 -:101B0000E80080FD1CC08091E701882391F08530BA -:101B100091F08091EB0085FD10C04091E400509160 -:101B2000E5004217530729F39A01915011F784E019 -:101B3000089582E0089583E0089581E0089580E0AB -:101B400008954091E80042FFDECF08950E94140EF0 -:101B50000E941C0EE0EEF0E0808181608083E8ED61 -:101B6000F0E080818F77808319BCA7EDB0E08C9185 -:101B70008E7F8C9380818F7E80831092E601089502 -:101B80000F931F93CF93DF930E94140E0E941C0E9D -:101B9000C8EDD0E088818F778883888180688883CA -:101BA00088818F7D888319BC1092E7011092E30130 -:101BB0001092E5011092E40100EE10E0F80180813E -:101BC0008B7F808388818160888342E060E080E051 -:101BD0000E94200DE1EEF0E080818E7F8083E2EEB6 -:101BE000F0E0808181608083808188608083F8015B -:101BF00080818E7F8083888180618883DF91CF910F -:101C00001F910F910895E8EDF0E080818F7E808331 -:101C1000E7EDF0E080818160808384E082BF81E035 -:101C20008093E6010C94C00DE8EDF0E080818E7F9A -:101C300080831092E20008951092DA001092E10081 -:101C400008951F920F920FB60F9211242F933F9376 -:101C50004F935F936F937F938F939F93AF93BF93B4 -:101C6000EF93FF938091E10082FF0BC08091E2002F -:101C700082FF07C08091E1008B7F8093E1000E948A -:101C800088108091DA0080FF1FC08091D80080FF0B -:101C90001BC08091DA008E7F8093DA008091D9009A -:101CA00080FF0DC080E189BD82E189BD09B400FEDD -:101CB000FDCF81E08093E7010E94830A05C019BC33 -:101CC0001092E7010E94910A8091E10080FF19C003 -:101CD0008091E20080FF15C08091E2008E7F8093AA -:101CE000E2008091E20080618093E2008091D80060 -:101CF00080628093D80019BC85E08093E7010E9440 -:101D0000950A8091E10084FF30C08091E20084FF59 -:101D10002CC080E189BD82E189BD09B400FEFDCF00 -:101D20008091D8008F7D8093D8008091E1008F7ED4 -:101D30008093E1008091E2008F7E8093E2008091A9 -:101D4000E20081608093E2008091E301882311F03A -:101D500084E007C08091E30087FD02C081E001C0FC -:101D600083E08093E7010E94970A8091E10083FF5E -:101D700029C08091E20083FF25C08091E100877F28 -:101D80008093E10082E08093E7011092E30180916B -:101D9000E1008E7F8093E1008091E2008E7F80934E -:101DA000E2008091E20080618093E20042E060E026 -:101DB00080E00E94200D8091F00088608093F00008 -:101DC0000E94940AFF91EF91BF91AF919F918F91E3 -:101DD0007F916F915F914F913F912F910F900FBE27 -:101DE0000F901F9018951F920F920FB60F9211240B -:101DF0002F933F934F935F936F937F938F939F9313 -:101E0000AF93BF93CF93DF93EF93FF93C091E9001C -:101E1000CF708091EC00D82FD17080FDD0E8109267 -:101E2000E9008091F000877F8093F00078940E9411 -:101E3000370F1092E9008091F00088608093F000E5 -:101E4000CD2BCF70C093E900FF91EF91DF91CF913F -:101E5000BF91AF919F918F917F916F915F914F91C2 -:101E60003F912F910F900FBE0F901F9018951F93C9 -:101E7000CF93DF93CDB7DEB7AA970FB6F894DEBF46 -:101E80000FBECDBFE8EEF1E088E08E0F9091F1003B -:101E900091938E13FBCF0E94B30A8091E80083FFD9 -:101EA0001FC18091E8019091E901492F50E04A302B -:101EB000510508F015C1FA01EB59FF4F0C94ED24C0 -:101EC000803881F0823809F00BC18091EC018F706D -:101ED0008093E9008091EB0085FB882780F91092C0 -:101EE000E90006C08091E4019091E50191118260C2 -:101EF0009091E800977F9093E8008093F100109212 -:101F0000F100C8C0282F2D7F09F0EAC0882319F0FE -:101F1000823061F0E5C08091EA01813009F0E0C0D3 -:101F2000933009F080E08093E5012BC08091EA01B5 -:101F3000811127C08091EC018F7009F4D1C080938A -:101F4000E9002091EB0020FF1CC0933021F4809128 -:101F5000EB00806214C09091EB0090619093EB00D5 -:101F600021E030E0A90102C0440F551F8A95E2F735 -:101F70004093EA001092EA008091EB008860809321 -:101F8000EB001092E9008091E800877F86C0811104 -:101F9000A7C01091EA011F778091E3008078812B20 -:101FA0008093E3008091E800877F8093E8000E949F -:101FB000550D8091E80080FFFCCF8091E3008068A0 -:101FC0008093E300111102C082E001C083E080939E -:101FD000E70186C08058823008F082C08091EA0113 -:101FE0009091EB018C3D53E0950779F583E08A836E -:101FF0008AE289834FB7F894DE01139620E03EE031 -:1020000051E2E32FF0E050935700E49120FF03C02A -:10201000E295EF703F5FEF708E2F90E0EA3010F0A6 -:10202000C79601C0C0968D939D932F5F243149F7C9 -:102030004FBF8091E800877F8093E8006AE270E0FC -:10204000CE0101960E945C0C14C0AE014F5F5F4F41 -:102050006091EC010E94A30BBC01892B09F440C0E4 -:102060009091E800977F9093E80089819A810E947F -:10207000BF0C8091E8008B778093E80031C08038F6 -:1020800079F58091E800877F8093E8008091E301F3 -:102090008093F1008091E8008E778093E8000E94A1 -:1020A000550D1EC081111CC09091EA019230C0F400 -:1020B0008091E800877F8093E8009093E3010E947D -:1020C000550D8091E301811106C08091E30087FDE9 -:1020D00002C081E001C084E08093E7010E949F0A72 -:1020E0008091E80083FF0AC08091E800877F809399 -:1020F000E8008091EB0080628093EB00AA960FB617 -:10210000F894DEBF0FBECDBFDF91CF911F91089530 -:102110000895CF938091E7018823A1F0C091E90051 -:10212000CF709091EC00892F817090FD80E8C82BD2 -:102130001092E9008091E80083FD0E94370FCF7074 -:10214000C093E900CF91089590936B0180936A0149 -:102150000895E0916A01F0916B01309721F00190B0 -:10216000F081E02D099480E00895E0916A01F091FA -:102170006B01309721F00280F381E02D09940895DE -:10218000E0916A01F0916B01309721F00480F581B4 -:10219000E02D09940895209168013091690182171A -:1021A000930771F09093690180936801E0916A014F -:1021B000F0916B01309721F00680F781E02D0994B2 -:1021C000089520916601309167018217930771F09D -:1021D0009093670180936601E0916A01F0916B0131 -:1021E000309721F00084F185E02D09940895089539 -:1021F0000C94F7100E94CA1C0E947F060C94901D3C -:10220000CF92DF92EF92FF920F931F93CF93DF93C2 -:10221000CDB7DEB72B970FB6F894DEBF0FBECDBF9C -:102220000E9497068DE6C82E81E0D82E00E010E0CF -:10223000E02E802F0E948507F60141916F01F42E58 -:10224000F826B1F40F5F1F4F0E30110589F78FEF9D -:1022500089838A831B820E94D31C8160782F9D838F -:102260008C8349815A816B818D810E94A31140C06A -:102270009091CE0191FF04C08B870E948B078B85C4 -:1022800020E030E04F2D50E0922FBA01022E02C024 -:10229000759567950A94E2F760FF24C02E83EF825C -:1022A00021E030E0690102C0CC0CDD1C9A95E2F718 -:1022B00090E08C219D21892B09F420E028870E9441 -:1022C000D31C8160782F9A8789874E815F816885CA -:1022D0008A850E94A311F801E359FE4F8081C82628 -:1022E000C08206C02F5F3F4F2630310569F6AACF66 -:1022F0000E94772010916C010E94A9101817A1F07C -:102300000E94A91080936C012B960FB6F894DEBF43 -:102310000FBECDBFDF91CF911F910F91FF90EF9036 -:10232000DF90CF900C94A2092B960FB6F894DEBFE5 -:102330000FBECDBFDF91CF911F910F91FF90EF9016 -:10234000DF90CF900895CF93DF93CDB7DEB72B9773 -:102350000FB6F894DEBF0FBECDBF4F835887698795 -:102360007A878B87DE01119686E0FD0111928A95AE -:10237000E9F785E0FE01379601900D928A95E1F725 -:1023800049815A816B817C818D819E810E94B9181F -:102390002B960FB6F894DEBF0FBECDBFDF91CF9165 -:1023A0000895CF93882309F4C2C0C82F823859F406 -:1023B0000E94A91081FDBBC089E30E94551B0E94A9 -:1023C000121C89E30CC0833879F40E94A91080FDA7 -:1023D000AEC083E50E94551B0E94121C83E50E943B -:1023E000971BCF910C94121C843859F40E94A910A9 -:1023F00082FD9DC087E40E94551B0E94121C87E449 -:10240000EECF8CEF8C0F813A48F48C2F0E94B822CB -:1024100081118DC08C2F0E94551BE3CF80E28C0F61 -:10242000883048F4C77081E001C0880FCA95EAF788 -:102430000E94DB1BD6CF8BE58C0F833078F4C53A36 -:1024400029F0C63A31F083E890E005C081E890E0D9 -:1024500002C082E890E0CF910C94CB1088E58C0FFD -:10246000833108F064C0C83A39F1C93A41F1CA3A37 -:1024700049F1CB3A51F1CC3A59F1CD3A61F1C03B37 -:1024800069F1CE3A71F1CF3A79F1C13B81F1C23BAA -:1024900089F1C33B91F1C43B99F1C53BA1F1C63B26 -:1024A000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B86 -:1024B000C9F180E090E038C082EE90E035C089EE4E -:1024C00090E032C08AEE90E02FC085EB90E02CC007 -:1024D00086EB90E029C087EB90E026C08CEC90E082 -:1024E00023C08DEC90E020C083E891E01DC08AE815 -:1024F00091E01AC082E991E017C084E991E014C02C -:1025000081E292E011C083E292E00EC084E292E0A8 -:102510000BC085E292E008C086E292E005C087E247 -:1025200092E002C08AE292E0CF910C94E110CF9148 -:102530000895882309F44BC0823859F40E94A910E9 -:1025400081FF45C089E30E94551B0E94121C89E34C -:102550000CC0833871F40E94A91080FF38C083E555 -:102560000E94551B0E94121C83E50E94971B0C942D -:10257000121C843859F40E94A91082FF28C087E4F5 -:102580000E94551B0E94121C87E4EFCF9CEF980F0E -:10259000913A58F390E2980F983050F4877091E098 -:1025A00001C0990F8A95EAF7892F0E94E11BDFCFBE -:1025B0009BE5980F933020F480E090E00C94CB10D2 -:1025C000885A833120F480E090E00C94E110089563 -:1025D000882321F00E94DB1B0C94121C0895882391 -:1025E00021F00E94E11B0C94121C0895BF92CF921F -:1025F000DF92EF92FF920F931F93CF93DF9300D060 -:1026000000D000D0CDB7DEB725E0FC01DE01119689 -:1026100001900D922A95E1F7FC0140813181028100 -:10262000258122952F7063817481672B09F4E5C29F -:102630003F3F19F44F3F09F4E0C27C0149833A83DC -:1026400089819A812E830E94141B182FB92E0E9413 -:10265000131B0E94DA19EB2DE295EF70F0E0E159BF -:10266000FF4F2E810C94ED248B2D807F9B2D9F702E -:10267000F92E882319F0F29480EFF822002349F014 -:10268000FF2009F467C28F2D0E94EB1B0E94121CD1 -:1026900061C2812F0E949912FF2009F4AEC28F2DD2 -:1026A0000E94F11B26960FB6F894DEBF0FBECDBF79 -:1026B000DF91CF911F910F91FF90EF90DF90CF901E -:1026C000BF900C94121C3B2D307F8B2D8F703032BD -:1026D00011F08295807F112319F0113021F12CC067 -:1026E0000023B9F0222309F4A0C1213009F09DC1D3 -:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 -:102700001F910F91FF90EF90DF90CF90BF900C94AE -:10271000FB1B222319F0213009F46FC28E830E9423 -:10272000FE1B8E8196C1002321F0223008F065C285 -:102730007CC1211162C28DC1002321F0222309F442 -:1027400074C108C2222309F484C119C22B2D269515 -:102750002695237030E02115310521F02130310517 -:10276000D1F04BC2002321F0812F9B2D937002C02A -:1027700080E090E026960FB6F894DEBF0FBECDBF86 -:10278000DF91CF911F910F91FF90EF90DF90CF904D -:10279000BF900C94CB10002321F0812F9B2D9370C0 -:1027A00002C080E090E026960FB6F894DEBF0FBE20 -:1027B000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1027C000CF90BF900C94E110812F002319F00E944C -:1027D0007F1F02C00E94E71F26960FB6F894DEBF47 -:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 -:1027F000DF90CF90BF900C946C208B2D837009F0EC -:102800007BC00111FAC1812F829586958770880F50 -:10281000880F912F9F70C92ED12CE12CF12C082EFE -:1028200004C0CC0CDD1CEE1CFF1C0A94D2F714FF74 -:1028300012C04FE050E060E070E004C0440F551F4C -:10284000661F771F8A95D2F7CB01BA016095709504 -:102850008095909503C060E070E0CB012B2D26950C -:1028600026952370422F50E042305105D9F0433075 -:10287000510569F16C297D298E299F294130510527 -:1028800051F126960FB6F894DEBF0FBECDBFDF9193 -:10289000CF911F910F91FF90EF90DF90CF90BF905D -:1028A0000C94011A6C297D298E299F2926960FB632 -:1028B000F894DEBF0FBECDBFDF91CF911F910F9176 -:1028C000FF90EF90DF90CF90BF900C941D1A0E9464 -:1028D000011AC701B60126960FB6F894DEBF0FBEE7 -:1028E000CDBFDF91CF911F910F91FF90EF90DF90BF -:1028F000CF90BF900C94E519002319F08B2D8170B7 -:1029000001C08695882309F478C1812F8295869528 -:102910008770880F880F912F9F70C92ED12CE12CC2 -:10292000F12C082E04C0CC0CDD1CEE1CFF1C0A94FC -:10293000D2F714FF12C04FE050E060E070E004C036 -:10294000440F551F661F771F8A95D2F7CB01BA0136 -:10295000609570958095909503C060E070E0CB0124 -:102960002B2D269526952370422F50E0423051059D -:10297000D9F04330510569F16C297D298E299F29B1 -:102980004130510551F126960FB6F894DEBF0FBEC7 -:10299000CDBFDF91CF911F910F91FF90EF90DF900E -:1029A000CF90BF900C94DB1A6C297D298E299F292A +:100000000C94FC030C9440040C9440040C944004A5 +:100010000C9440040C9440040C9440040C94400450 +:100020000C9440040C9440040C940E0F0C94E00FBC +:100030000C9440040C9440040C9440040C94400430 +:100040000C9440040C94AA240C9440040C94400496 +:100050000C9440040C94391E0C9440040C944004FD +:100060000C9440040C9440040C9440040C94400400 +:100070000C9440040C9440040C9440040C944004F0 +:100080000C9440040C9440040C9440040C944004E0 +:100090000C9440040C9440040C9440040C944004D0 +:1000A0000C9440040C9440040C944004FF046A0433 +:1000B0001605B804C904E7048204AC04B204A6041B +:1000C000E104BD04C3049A04A00450044D106F1051 +:1000D0005D116F105D11B410D7105D112C113F111F +:1000E0002B142B1468146814AB14E91402170217AC +:1000F0000215021703160316D61602170217ED167D +:1001000002E002E2012E022E02E10002E002E10220 +:10011000E20001E001E101E20002E001E301190275 +:100120001902E30002E00001E00002E002E30164E2 +:1001300002640002E002E30001E001E30001E101EA +:1001400037023702E10138023801E10125022502B8 +:10015000E10002E002E1013102310002E002E100CF +:1001600001E001E10001E10137023702E10138025B +:100170003801E10107020702E100013502350120E3 +:1001800002200002E302E10001E301E10001E101DC +:1001900036023602E10138023801E1012602260268 +:1001A000E10001E10137023702E10138023801E1E3 +:1001B0000126022602E10001E10136023602E101D8 +:1001C00038023801E10125022502E10001E1013791 +:1001D000023702E10138023801E20125022502E27C +:1001E0000001E10137023702E10138023801E10183 +:1001F00030023002E10002E002E20130023000028F +:10020000E002E20001E001E20002E001E301060297 +:100210000602E30002E00001E00029002B00E200FA +:10022000E100358100001E00140004001D7105303E +:100230004D831F001A0016001B0006304C002000E2 +:1002400008000700060052002A00210015000900DE +:10025000190051004A00220017000A0005000000A2 +:1002600002300430E3000000E200000002540430D9 +:10027000E7000000E6000000045423001C000B000F +:10028000110000002E7F240018000D001000500007 +:100290004B0025000C000E0036004F002C002600FD +:1002A00012000F003700E108280027001300330078 +:1002B0003871E1044E002D002F003474E5003081C8 +:1002C00000000100010001000100010000003A00EF +:1002D000350031000100010001003B003502210220 +:1002E000350001004C003C001E02240622020100E1 +:1002F00001003D002D0224022404010001003E0003 +:10030000010037001104000001000100010000009D +:100310000100000001000F3001000000010000009A +:1003200068003F0024062402240400004500400029 +:10033000220425021104310269004100230426022F +:1003400064005000010042003500250452005100B5 +:10035000010043003502260438004F006A004400C3 +:100360001E02310021020100000001000100010015 +:100370000100010000000100010001000100010076 +:1003800001000100F400F200FB0001000100010087 +:10039000F000F100FA00010001000100F500F30097 +:1003A000FC00010001000100F900FA00F600000065 +:1003B0000100010001000000010000000100A80090 +:1003C0000100000001000000010001000100A9007F +:1003D000AA0000000100010001000100010001006D +:1003E0000100010001000100AC000100B6000100A5 +:1003F00001000100AB0050000100010001000100FC +:10040000520051000100AE000100010001004F0048 +:1004100000000100010001000100010000000100D6 +:1004200001000100010001000100010001000100C4 +:1004300001000100010001000100010001000100B4 +:1004400001000100010001000100010001000100A4 +:100450000100010001000000010001000100000096 +:100460000100000001000730010000000100000051 +:10047000010008300E300B300100000001000C308C +:100480000A300D30010001000100010009300100B7 +:100490000100010001000100010001000100010054 +:1004A0000100010001000100010001000100010044 +:1004B0000100010001000100000001000100010035 +:1004C0000100010000000100010001000100010025 +:1004D00001000100010050000100010001000100C5 +:1004E00052005100010001000100010001004F0015 +:1004F00001000100010001000100010001000000F5 +:1005000001000100010000000100000001000100E5 +:10051000010000000100000001003F0052005100F6 +:100520002302000001004000240021001E002700DB +:1005300001004100250022001F0037000100420099 +:100540002600230020003600010043003002300066 +:100550002402270201004400450038000100010088 +:10056000000001000100E1000100E00000000100C6 +:1005700001000100010001003D0001000100010037 +:1005800001000100E0000100010001000100010084 +:100590002C00010001000100010001003C000100ED +:1005A00001000100010000003A000100010000000C +:1005B000010000003B000F300100000001000000BE +:1005C0000100010001000100010000000100010024 +:1005D0000100010001000100010001000100010013 +:1005E0000100010001000100010001000100010003 +:1005F00001000100010001000100010001000100F3 +:100600000100010001000100000016034500720016 +:1006100067006F0044006F007800200045005A001A +:10062000000016034500720067006F0044006F0071 +:100630007800200045005A00000004030904090264 +:100640006D00040100A0FA0904000001030101008B +:10065000092111010001223F000705810308000A5A +:100660000904010001030102000921110100012216 +:100670004D000705820308000A0904020001030077 +:10068000000009211101000122360007058303083B +:10069000000A090403000103000000092111010000 +:1006A0000122390007058403100001120110010026 +:1006B000000008EDFE071301000102000105010919 +:1006C00006A101050719E029E71500250195087520 +:1006D0000181020508190129059505750191029509 +:1006E000017503910105071900297715002501956A +:1006F0007875018102C005010980A10185021601FA +:100700000026B7001A01002AB70075109501810074 +:10071000C0050C0901A1018503160100269C021ADF +:1007200001002A9C02751095018100C00501090293 +:10073000A1010901A10005091901290515002501DB +:100740009505750181029501750381010501093047 +:1007500009311581257F95027508810609381581B3 +:10076000257F950175088106050C0A38021581253B +:100770007F950175088106C0C005010906A1010524 +:100780000719E029E71500250195087501810295F3 +:100790000175088101050819012905950575019163 +:1007A000029501750391010507190029FF15002520 +:1007B000FF950675088100C00000000000000000E1 +:1007C000000000010204060A0F17202C3A4A5D714E +:1007D000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DFD +:1007E00087715D4A3A2C20170F0A060402010000A7 +:1007F000000000000000000011241FBECFEFDAE06F +:10080000DEBFCDBF04B603FE24C08091F0019091FD +:10081000F101A091F201B091F3018730904BA74014 +:10082000B04BB9F41092F0011092F1011092F20164 +:100830001092F30114BE84B7877F84BF88E10FB69E +:10084000F89480936000109260000FBEE0E0FFE338 +:10085000099511E0A0E0B1E0E8EDFCE402C00590EC +:100860000D92A433B107D9F711E0A4E3B1E001C0C0 +:100870001D92A03FB107E1F70E94520C0C946A262A +:100880000C940000462F50E04031510508F0F1C0B3 +:10089000DC01FA01EA5AFF4F12968C910C941F2644 +:1008A000882309F4E6C08091B3019091B401A0912E +:1008B000B501B091B60120E2822780729927AA275C +:1008C000BB278093B3019093B401A093B501B0937B +:1008D000B601CFC0882349F00E94031E90933501D2 +:1008E0008093340187E192E00895809134019091E2 +:1008F00035010E940F1E873991050CF0AEC089E0CA +:1009000092E00895882349F00E94031E90933501D8 +:100910008093340184E092E00895809134019091B5 +:1009200035010E940F1E873991050CF099C086EFA2 +:1009300091E00895882309F49CC081EE91E0089528 +:10094000882309F496C08CEC91E00895882309F47B +:1009500090C087EB91E00895882309F48AC082EA69 +:1009600091E00895882309F484C08DE891E008950A +:10097000811179C083E891E00895882309F479C052 +:100980008AE791E00895882309F473C085E691E031 +:100990000895882349F00E94031E909335018093A7 +:1009A000340180E691E00895809134019091350101 +:1009B0000E940F1E873991050CF058C082E591E026 +:1009C0000895882309F455C08DE391E008958823A4 +:1009D00049F00E94031E909335018093340188E30F +:1009E00091E0089580913401909135010E940F1E8D +:1009F000873991050CF040C08AE291E00895882380 +:100A000049F00E94031E909335018093340187E2E0 +:100A100091E0089580913401909135010E940F1E5C +:100A20008739910564F589E191E00895882349F0BB +:100A30000E94031E909335018093340182E191E07E +:100A4000089580913401909135010E940F1E8739DD +:100A50009105C4F480E091E0089584E192E0089566 +:100A60008FEF91E0089588E891E008958BE591E09B +:100A7000089580E090E0089583E391E0089584E292 +:100A800091E008958BE091E0089508956091B3019D +:100A90007091B4018091B5019091B6010E94651DDD +:100AA00056985E9825982D9826982E9827982F98D6 +:100AB0008330C1F028F4813041F0823049F008954C +:100AC000843049F0853051F00895259A2D9A089583 +:100AD000269A2E9A0895259A2D9A04C0259A2D9A21 +:100AE000269A2E9A279A2F9A08950C94460556987E +:100AF0005E9825982D9826982E9827982F988FEFF6 +:100B000090E0909389008093880090938B0080936D +:100B10008A0090938D0080938C00259A2D9A2FEF58 +:100B200080E792E0215080409040E1F700C0000053 +:100B3000269A2E9A2FEF80E792E021508040904035 +:100B4000E1F700C00000279A2F9A2FEF80E792E08C +:100B5000215080409040E1F700C0000025982D987A +:100B60002FEF80E792E0215080409040E1F700C0F5 +:100B7000000026982E982FEF80E792E021508040C9 +:100B80009040E1F700C0000027982F9856985E9893 +:100B900025982D9826982E9827982F98089589EAB9 +:100BA0008093800089E08093810024982C983F985E +:100BB0008AB18F748AB96E98479A8BB1806B8BB962 +:100BC000769A0E9477050C94450580E28093000197 +:100BD0008091360181110EC00E94340681E080931D +:100BE00036012FEF83ED90E3215080409040E1F7F4 +:100BF00000C0000080E40E943A0680930001811149 +:100C00002EC00E94640680930001811128C00E94BA +:100C1000640680930001811122C08FE30E94640664 +:100C20008093000181111BC00E945C0680E40E9439 +:100C30003A0680930001811112C08CE00E94640684 +:100C40008093000181110BC00E9464068093000113 +:100C5000811105C08FE30E946406809300010E9409 +:100C60005C068091000108951092B9008AE080939B +:100C7000B800089594EA9093BC009091BC0097FF4F +:100C8000FCCF9091B900987F983021F0903111F00D +:100C900081E008958093BB0084E88093BC0080913C +:100CA000BC0087FFFCCF8091B900887F883111F0AC +:100CB000803471F780E0089584E98093BC008091CE +:100CC000BC0084FDFCCF08958093BB0084E8809332 +:100CD000BC008091BC0087FFFCCF9091B900987F49 +:100CE00081E0983209F480E0089584E88093BC00A4 +:100CF0008091BC0087FFFCCF8091BB00089580915C +:100D00000001811115C080E40E943A068093000121 +:100D100081110CC082E10E94640680930001811160 +:100D200005C08FEF0E946406809300010E945C065C +:100D300084B1807F84B985B1807F85B98AB1837F92 +:100D40008AB98BB1837F8BB93E98469808950E94EB +:100D5000E505809300010E947F0680B38C7080BB04 +:100D600081B3836F81BBA8E3B1E0E6E4F1E08EE0FC +:100D70008E0F11921D928E13FCCF0C94CF05BF9253 +:100D8000CF92DF92EF92FF920F931F93CF93DF9357 +:100D900080910001882379F0809137018F5F8093E3 +:100DA0003701811108C00E94E5058093000181117F +:100DB00002C00E94770508E311E0C0E0D0E0DD2426 +:100DC000D39482E0C82EEE24E394F12CC730D105F1 +:100DD00000F580910001811164C080E40E943A0610 +:100DE00080930001811112C082E10E946406809309 +:100DF000000181110BC0C7010C2E01C0880F0A949D +:100E0000EAF780950E946406809300010E945C06C8 +:100E100048C0CA30A1F028F4C83059F0C93061F098 +:100E200005C0CC3089F070F0CD3089F0209A289838 +:100E300010C0219A29980DC0229A2A980AC0239A94 +:100E40002B9807C0529A01C0539A5B9802C03E9AF1 +:100E5000469890EA9A95F1F79FB1799902C082E09D +:100E600001C080E091709D25982B7C9902C084E0A0 +:100E700001C080E0892B7D9902C038E001C030E0DC +:100E8000832B7E9902C020E101C020E0822B9FB11C +:100E90009095991F9927991F9295990F907E892B6C +:100EA0000FC080910001811149C080E40E943A0680 +:100EB00080930001882379F1B12C0E945C068B2D70 +:100EC000F8019081981719F08083C09201010E9467 +:100ED0007F0621960F5F1F4FCE30D10509F076CFE8 +:100EE00080910101882361F1815080930101882361 +:100EF00039F08FE99FE00197F1F700C0000020C0B2 +:100F0000A6E4B1E0E8E3F1E0CF01825F91919D9327 +:100F10008E13FCCF15C083E10E946406809300010C +:100F20008111CACF81E40E943A06809300018111A9 +:100F3000C3CF0E947506B82EB094BFCF80E0C0CF5B +:100F40000E94750581E0DF91CF911F910F91FF9075 +:100F5000EF90DF90CF90BF900895E82FF0E0EA5B2C +:100F6000FE4F808108950895089596E0799FF001DD +:100F7000112494E5899FE00DF11D1124E60FF11D68 +:100F8000EE0FFF1FE65EFD4F859194910895880F47 +:100F9000991FFC01E656FF4F859194910895880FA3 +:100FA000991FFC01E65EFD4F8591949108950F9382 +:100FB0001F93CF93DF93EC018115904350F5C1153A +:100FC00080E2D80708F0B3C0CB3BD10590F4C83A13 +:100FD000D10508F05AC0C53AD10508F04BC0C4305D +:100FE000D10508F0BBC1219709F0B5C101E010E0BF +:100FF000F5C1CF3FD10511F008F0B0C1C03FD10518 +:1010000008F092C0CE01805E9109089708F4A6C14D +:10101000A2C1C11591E5D907A8F4C23020E5D207D5 +:1010200008F09EC0C11580E5D80709F485C008F016 +:1010300091C0C11520E4D20708F08DC1DD278E01D3 +:10104000106CCCC1C11580E8D80758F4C11590E7E1 +:10105000D90708F07CC1C11520E6D20708F422C1E7 +:101060007AC1C11580E9D80708F075C1DF708E011B +:10107000106AB4C1C53AD10509F472C1C63AD105A6 +:1010800009F071C102E810E4A9C1C83AD10509F418 +:101090006DC1C93AD10509F46CC1CA3AD10509F448 +:1010A0006BC1CB3AD10509F46AC1CC3AD10509F438 +:1010B00069C1CD3AD10509F468C1C03BD10509F435 +:1010C00067C1CE3AD10509F466C1CF3AD10509F41A +:1010D00065C1C13BD10509F464C1C23BD10509F426 +:1010E00063C1C33BD10509F462C1C43BD10509F416 +:1010F00061C1C53BD10509F460C1C63BD10509F406 +:101100005FC1C73BD10509F45EC1C83BD10509F4F5 +:101110005DC1C93BD10509F45CC1CA3BD10509F4E5 +:101120005BC100E014E45AC18E01106557C1CE01C5 +:101130009F700E94CF0753C10E9426179FEF24E3A0 +:101140008CE0915020408040E1F700C000000E94F8 +:101150005E1E44C18091CF0181608093CF013EC16A +:101160000E940720811102C00E94ED1F0E942420CE +:1011700090E09093F0018093EF01C23090E5D907A1 +:1011800021F48091EF01816086C0C43020E5D20750 +:1011900021F48091EF0182607EC0C63080E5D807DF +:1011A00021F48091EF01846076C0C83090E5D907C2 +:1011B00019F48091EF0127C0CA3020E5D20721F44D +:1011C0008091EF01806167C0CC3080E5D80721F4C1 +:1011D0008091EF0180625FC0CE3090E5D90721F4A5 +:1011E0008091EF01806457C0C03120E5D20721F41F +:1011F0008091EF0180684FC0C23180E5D80729F4A3 +:101200008091EF018460886046C0C33090E5D907C3 +:1012100021F48091EF018E7F3EC0C53020E5D207DA +:1012200021F48091EF018D7F36C0C73080E5D8076B +:1012300021F48091EF018B7F2EC0C93090E5D90752 +:1012400019F48091EF0126C0CB3020E5D20721F4BC +:101250008091EF018F7E1FC0CD3080E5D80721F44B +:101260008091EF018F7D17C0CF3090E5D90721F431 +:101270008091EF018F7B0FC0C13120E5D20721F4AF +:101280008091EF018F7707C0C331D04531F4809151 +:10129000EF018B7F877F8093EF018091EF010E94A8 +:1012A00028209CC08D2F99278F7099278130910518 +:1012B000D9F49E012370332702C0880F991F2A9505 +:1012C000E2F79C688E0144E0000F111F4A95E1F798 +:1012D00000271370802B912B53E0CC0FDD1F5A9504 +:1012E000E1F7C076DD272FC08230910531F4DC2F85 +:1012F000CC278E01016F106A71C08330910569F4AB +:10130000CE018370992701E010E002C0000F111F89 +:101310008A95E2F7C8019C680FC0049709F05EC087 +:10132000CE018370992701E010E002C0000F111F69 +:101330008A95E2F7C8019A6823E0CC0FDD1F2A9551 +:10134000E1F7C07ED7708C010C2B1D2B47C0DF70DE +:101350008E01106243C000E010E040C08E013EC02C +:1013600001E810E43BC003E810E438C002EE14E4E6 +:1013700035C009EE14E432C00AEE14E42FC005EBC8 +:1013800014E42CC006EB14E429C007EB14E426C0D7 +:101390000CEC14E423C00DEC14E420C003E815E4C5 +:1013A0001DC00AE815E41AC002E915E417C004E9F3 +:1013B00015E414C001E216E411C003E216E40EC005 +:1013C00004E216E40BC005E216E408C006E216E4E7 +:1013D00005C007E216E402C00AE216E4C801DF9184 +:1013E000CF911F910F91089596E0799FF0011124FC +:1013F00094E5899FE00DF11D1124E60FF11DEE0F1C +:10140000FF1FE65EFD4F85919491803E9105E0F4CB +:10141000803C910558F58133910509F46FC048F47B +:101420008932910509F463C08A32910509F46DC0CF +:1014300072C089339105E9F082389105D1F0853386 +:10144000910509F44DC067C0833E910581F138F4E0 +:10145000803E9105B9F0823E9105D9F05CC0863E90 +:10146000910561F1873E9105A1F155C00E94C70722 +:1014700008952091EF0120FD02C021FF4CC080EEB5 +:1014800090E049C08091EF0180FFF9CF89E390E0BF +:1014900042C08091EF0182FF0EC08091EF0184FF76 +:1014A00003C080E090E037C083EE90E034C08091CC +:1014B000EF0182FFF2CF82EE90E02DC08091EF012C +:1014C00083FF0BC08091EF0184FDEBCF87EE90E0AE +:1014D00022C08091EF0183FFF5CF86EE90E01BC024 +:1014E0008091EF0185FF07C089E290E014C08091F0 +:1014F000EF0185FFF9CF85E390E00DC08091EF010A +:1015000086FF07C08AE290E006C08091EF0186FF67 +:10151000F9CF81E390E00E94D707089508950C94D5 +:101520008E0A809164010895CF93DF9300D01F92BB +:10153000CDB7DEB79C018091E601843019F593E0C8 +:1015400099833B832A839093E9008FEF9091E80081 +:10155000815095FD06C095ED9A95F1F70000811137 +:10156000F5CF8091E80085FF0DC040E050E063E0DA +:1015700070E0CE0101960E94FE0C8091E8008E770B +:101580008093E8000F900F900F90DF91CF91089516 +:10159000CF93DF9300D01F92CDB7DEB72091E60145 +:1015A000243021F522E029839B838A8383E0809382 +:1015B000E9008FEF9091E800815095FD06C095ED10 +:1015C0009A95F1F700008111F5CF8091E80085FF31 +:1015D0000DC040E050E063E070E0CE0101960E9453 +:1015E000FE0C8091E8008E778093E8000F900F90BA +:1015F0000F90DF91CF9108952091E6012430F1F40E +:1016000022E02093E9002FEF3091E800215035FDD2 +:1016100006C035ED3A95F1F700002111F5CF209184 +:10162000E80025FF0BC040E050E065E070E00E945C +:10163000FE0C8091E8008E778093E8000895CF93A8 +:10164000DF93EC019091E601943009F046C080915F +:101650000C018823D9F080910D018823B9F0909373 +:10166000E9008FEF9091E800815095FD06C095E16B +:101670009A95F1F700008111F5CF8091E80085FF80 +:101680002CC040E050E060E170E017C081E0809342 +:10169000E9008FEF9091E800815095FD06C095ED2F +:1016A0009A95F1F700008111F5CF8091E80085FF50 +:1016B00014C040E050E068E070E0CE010E94FE0CF3 +:1016C0008091E8008E778093E80080E1FE01A4E538 +:1016D000B1E001900D928A95E1F7DF91CF910895E5 +:1016E0008091E501811109C00E94930E0E94F00EC5 +:1016F0008091E20084608093E20008951092E501F9 +:10170000089508950C9497240E94F41D0E949D242E +:101710000E9496110C948F0A42E061EC81E00E94D5 +:101720000D0E42E061EC82E00E940D0E42E061ECA1 +:1017300083E00E940D0E42E161EC84E00C940D0EFA +:101740008091E801833009F455C030F4813071F0A4 +:10175000823009F48EC008958A3009F47AC08B3043 +:1017600009F460C0893009F09CC020C08091E70175 +:10177000813A09F096C08091E800877F8093E80065 +:101780008091EB019091EC01892B21F460E184E5DB +:1017900091E003C060E080E090E070E00E94490DBD +:1017A0008091E8008B778093E80008958091E701AD +:1017B000813209F076C08091EB019091EC010097A5 +:1017C00019F0039709F06DC08091E800877F80933E +:1017D000E8008091E80082FD05C08091E60181115A +:1017E000F8CF5FC08091F100809364018091E800A0 +:1017F0008B7753C08091E701813A09F052C0809104 +:10180000EB019091EC01892B09F04BC08091E8002D +:10181000877F8093E8008091E80080FFFCCF809173 +:101820000C0136C08091E7018132D9F58091EB013E +:101830009091EC01892BA9F58091E800877F809336 +:10184000E8000E94420E8091E90180930C010C9403 +:1018500026178091E701813221F58091E800877F8A +:101860008093E8000E94420E8091EA018093650116 +:1018700008958091E701813AA1F48091E800877F83 +:101880008093E8008091E80080FFFCCF80916501A3 +:101890008093F1008091E8008E778093E8000C94AB +:1018A000420E089584B7877F84BF88E10FB6F8940D +:1018B00080936000109260000FBE90E080E80FB649 +:1018C000F89480936100909361000FBE0E94E5112F +:1018D0000E94930E0E94F00E8091E200846080933B +:1018E000E20078940E9476110E94E71182E091E074 +:1018F0000E9491110E9485248091E601853069F44F +:101900000E94B51D8091E4018823B1F30E94E01D7F +:10191000882391F30E94E80CEFCF0E94ED11ECCFE9 +:10192000292F332723303105C9F064F421303105E4 +:1019300081F02230310509F043C08DE690E02EE3BE +:1019400036E042C021323105F1F02232310541F159 +:1019500037C082E190E02BEA36E036C0992781302B +:10196000910541F08230910541F0892B49F5EAE378 +:10197000F6E005C0E2E2F6E002C0EAE0F6E08491BB +:1019800090E09F0121C06430D8F4E62FF0E0EE0F24 +:10199000FF1FEE5DFE4F2081318189E090E014C091 +:1019A000643070F470E0FB01EE0FFF1FE65EFE4F47 +:1019B00020813181FB01EA5EFE4F808190E004C00E +:1019C00080E090E020E030E0FA0131832083089548 +:1019D00080E189BD82E189BD09B400FEFDCF80911F +:1019E000D8008F7D8093D8008091E0008260809342 +:1019F000E0008091E00081FDFCCF0895CF92DF925E +:101A0000EF92FF920F931F93CF93DF93EC018B0123 +:101A10006A010E94610E811133C0C114D10439F0F2 +:101A2000F60180819181081B190BC80FD91FE12C89 +:101A3000F12C0115110519F18091E80085FD16C002 +:101A40008091E8008E778093E800C114D10449F0BA +:101A5000F60180819181E80EF91EF182E08285E035 +:101A60000FC00E94610E882321F30AC089918093E0 +:101A7000F10001501109FFEFEF1AFF0ADACF80E001 +:101A8000DF91CF911F910F91FF90EF90DF90CF905A +:101A900008952091ED013091EE012617370748F0A7 +:101AA0006115710539F42091E8002E772093E80044 +:101AB00001C0B90140E061157105A9F12091E6016D +:101AC000222309F443C0253009F442C02091E800E4 +:101AD00023FD40C02091E80022FD32C02091E800A3 +:101AE00020FFE9CF4091F3002091F20030E0342B49 +:101AF000FC01CF016115710559F02830310540F422 +:101B000081918093F100615071092F5F3F4FF1CFB8 +:101B100041E02830310509F040E02091E8002E77BF +:101B20002093E800C8CF4111C9CF0AC08091E601D7 +:101B3000882361F0853061F08091E80083FD0AC060 +:101B40008091E80082FFF2CF80E0089582E008955E +:101B500083E0089581E008952091ED013091EE0138 +:101B60002617370748F06115710539F42091E80010 +:101B70002E772093E80001C0B901FC0120E0611537 +:101B8000710591F18091E601882309F440C0853008 +:101B900009F43FC08091E80083FD3DC08091E800DA +:101BA00082FD2FC08091E80080FFE9CF2091F300F3 +:101BB0008091F20090E0922B6115710559F0883008 +:101BC000910540F424912093F10031966150710900 +:101BD0000196F2CF21E0089709F020E08091E8001B +:101BE0008E778093E800CBCF2111CCCF0AC08091B3 +:101BF000E601882361F0853061F08091E80083FD83 +:101C00000AC08091E80082FFF2CF80E0089582E070 +:101C1000089583E0089581E00895982F973058F54E +:101C20009093E900981739F07091EC002091ED0045 +:101C30005091F00003C0242F762F50E021FF19C0EF +:101C40003091EB003E7F3093EB003091ED003D7F13 +:101C50003093ED003091EB0031603093EB007093E6 +:101C6000EC002093ED005093F0002091EE0027FF50 +:101C700007C09F5FD3CF8F708093E90081E0089504 +:101C800080E008958091E70187FF11C08091E8000E +:101C900082FD05C08091E6018111F8CF11C08091CD +:101CA000E8008B770BC08091E601882349F0809192 +:101CB000E80080FFF8CF8091E8008E778093E800FD +:101CC00008952091E4003091E50095E64091EC0004 +:101CD000842F817040FF22C08091E80080FD1CC0ED +:101CE0008091E601882391F0853091F08091EB009E +:101CF00085FD10C04091E4005091E5004217530764 +:101D000029F39A01915011F784E0089582E0089533 +:101D100083E0089581E0089580E008954091E8000F +:101D200042FFDECF08950E94010F0E94090FE0EEEE +:101D3000F0E0808181608083E8EDF0E080818F7742 +:101D4000808319BCA7EDB0E08C918E7F8C9380814D +:101D50008F7E80831092E50108950F931F93CF9398 +:101D6000DF930E94010F0E94090FC8EDD0E0888127 +:101D70008F77888388818068888388818F7D888336 +:101D800019BC1092E6011092E2011092E401109247 +:101D9000E30100EE10E0F80180818B7F8083888171 +:101DA0008160888342E060E080E00E940D0EE1EEF9 +:101DB000F0E080818E7F8083E2EEF0E080818160C0 +:101DC0008083808188608083F80180818E7F80831A +:101DD000888180618883DF91CF911F910F91089551 +:101DE000E8EDF0E080818F7E8083E7EDF0E0808198 +:101DF0008160808384E082BF81E08093E5010C9460 +:101E0000AD0EE8EDF0E080818E7F80831092E200DD +:101E100008951092DA001092E10008951F920F9237 +:101E20000FB60F9211242F933F934F935F936F93AD +:101E30007F938F939F93AF93BF93EF93FF93809183 +:101E4000E10082FF0BC08091E20082FF07C0809119 +:101E5000E1008B7F8093E1000E9475118091DA0090 +:101E600080FF1FC08091D80080FF1BC08091DA00E6 +:101E70008E7F8093DA008091D90080FF0DC080E1D1 +:101E800089BD82E189BD09B400FEFDCF81E0809368 +:101E9000E6010E94700B05C019BC1092E6010E9479 +:101EA0007E0B8091E10080FF19C08091E20080FFED +:101EB00015C08091E2008E7F8093E2008091E20065 +:101EC00080618093E2008091D80080628093D80086 +:101ED00019BC85E08093E6010E94820B8091E100AD +:101EE00084FF30C08091E20084FF2CC080E189BD76 +:101EF00082E189BD09B400FEFDCF8091D8008F7DBD +:101F00008093D8008091E1008F7E8093E1008091E2 +:101F1000E2008F7E8093E2008091E20081608093F6 +:101F2000E2008091E201882311F084E007C08091F3 +:101F3000E30087FD02C081E001C083E08093E601F9 +:101F40000E94840B8091E10083FF29C08091E20010 +:101F500083FF25C08091E100877F8093E10082E0CC +:101F60008093E6011092E2018091E1008E7F8093E0 +:101F7000E1008091E2008E7F8093E2008091E20098 +:101F800080618093E20042E060E080E00E940D0EFC +:101F90008091F00088608093F0000E94810BFF9197 +:101FA000EF91BF91AF919F918F917F916F915F91D1 +:101FB0004F913F912F910F900FBE0F901F9018954A +:101FC0001F920F920FB60F9211242F933F934F93AE +:101FD0005F936F937F938F939F93AF93BF93CF93B1 +:101FE000DF93EF93FF93C091E900CF708091EC00F5 +:101FF000D82FD17080FDD0E81092E9008091F000D8 +:10200000877F8093F00078940E9424101092E9005A +:102010008091F00088608093F000CD2BCF70C0934A +:10202000E900FF91EF91DF91CF91BF91AF919F9127 +:102030008F917F916F915F914F913F912F910F9071 +:102040000FBE0F901F9018951F93CF93DF93CDB7BE +:10205000DEB7AA970FB6F894DEBF0FBECDBFE7EE8E +:10206000F1E088E08E0F9091F10091938E13FBCFF9 +:102070000E94A00B8091E80083FF1FC18091E701BF +:102080009091E801492F50E04A30510508F015C100 +:10209000FA01EA59FF4F0C941F26803881F08238EC +:1020A00009F00BC18091EB018F708093E900809162 +:1020B000EB0085FB882780F91092E90006C080912B +:1020C000E3019091E401911182609091E800977F83 +:1020D0009093E8008093F1001092F100C8C0282F7F +:1020E0002D7F09F0EAC0882319F0823061F0E5C045 +:1020F0008091E901813009F0E0C0933009F080E07F +:102100008093E4012BC08091E901811127C0809167 +:10211000EB018F7009F4D1C08093E9002091EB00AE +:1021200020FF1CC0933021F48091EB00806214C02A +:102130009091EB0090619093EB0021E030E0A901D9 +:1021400002C0440F551F8A95E2F74093EA001092AF +:10215000EA008091EB0088608093EB001092E90028 +:102160008091E800877F86C08111A7C01091E901A6 +:102170001F778091E3008078812B8093E30080912A +:10218000E800877F8093E8000E94420E8091E8007B +:1021900080FFFCCF8091E30080688093E300111101 +:1021A00002C082E001C083E08093E60186C08058CF +:1021B000823008F082C08091E9019091EA018C3D63 +:1021C00053E0950779F583E08A838AE289834FB7E4 +:1021D000F894DE01139620E03EE051E2E32FF0E0B8 +:1021E00050935700E49120FF03C0E295EF703F5FEA +:1021F000EF708E2F90E0EA3010F0C79601C0C096C5 +:102200008D939D932F5F243149F74FBF8091E80054 +:10221000877F8093E8006AE270E0CE0101960E9419 +:10222000490D14C0AE014F5F5F4F6091EB010E94FA +:10223000900CBC01892B09F440C09091E800977F75 +:102240009093E80089819A810E94AC0D8091E8000A +:102250008B778093E80031C0803879F58091E80071 +:10226000877F8093E8008091E2018093F100809164 +:10227000E8008E778093E8000E94420E1EC0811114 +:102280001CC09091E9019230C0F48091E800877FF2 +:102290008093E8009093E2010E94420E8091E20157 +:1022A000811106C08091E30087FD02C081E001C07A +:1022B00084E08093E6010E948C0B8091E80083FF0C +:1022C0000AC08091E800877F8093E8008091EB004E +:1022D00080628093EB00AA960FB6F894DEBF0FBE23 +:1022E000CDBFDF91CF911F9108950895CF93809135 +:1022F000E6018823A1F0C091E900CF709091EC0035 +:10230000892F817090FD80E8C82B1092E9008091A0 +:10231000E80083FD0E942410CF70C093E900CF91A4 +:10232000089590936B0180936A010895E0916A018A +:10233000F0916B01309721F00190F081E02D09942C +:1023400080E00895E0916A01F0916B01309721F0EF +:102350000280F381E02D09940895E0916A01F091E3 +:102360006B01309721F00480F581E02D09940895E8 +:1023700020916801309169018217930771F0909361 +:10238000690180936801E0916A01F0916B013097D7 +:1023900021F00680F781E02D0994089520916601CF +:1023A000309167018217930771F0909367018093D2 +:1023B0006601E0916A01F0916B01309721F0008491 +:1023C000F185E02D0994089508950C94E4110E947C +:1023D000FA1D0E94A7060C94C01ECF92DF92EF92C6 +:1023E000FF920F931F93CF93DF93CDB7DEB72B9759 +:1023F0000FB6F894DEBF0FBECDBF0E94BF068DE6BC +:10240000C82E81E0D82E00E010E0E02E802F0E9440 +:10241000AD07F60141916F01F42EF826B1F40F5F7C +:102420001F4F0E30110589F78FEF89838A831B8236 +:102430000E94031E8160782F9D838C8349815A817D +:102440006B818D810E94901240C09091CF0191FFCD +:1024500004C08B870E94B3078B8520E030E04F2DAE +:1024600050E0922FBA01022E02C0759567950A942A +:10247000E2F760FF24C02E83EF8221E030E06901A3 +:1024800002C0CC0CDD1C9A95E2F790E08C219D21D6 +:10249000892B09F420E028870E94031E8160782F91 +:1024A0009A8789874E815F8168858A850E9490120C +:1024B000F801E359FE4F8081C826C08206C02F5F15 +:1024C0003F4F2630310569F6AACF0E94A72110910F +:1024D0006C010E9496111817A1F00E94961180932A +:1024E0006C012B960FB6F894DEBF0FBECDBFDF9107 +:1024F000CF911F910F91FF90EF90DF90CF900C94B0 +:102500008F0A2B960FB6F894DEBF0FBECDBFDF91BA +:10251000CF911F910F91FF90EF90DF90CF90089592 +:10252000CF93DF93CDB7DEB72B970FB6F894DEBF0E +:102530000FBECDBF4F83588769877A878B87DE01AF +:10254000119686E0FD0111928A95E9F785E0FE017A +:10255000379601900D928A95E1F749815A816B81F6 +:102560007C818D819E810E94C0192B960FB6F894B4 +:10257000DEBF0FBECDBFDF91CF9108950895CF93F9 +:10258000882309F4C2C0C82F823859F40E949611DA +:1025900081FDBBC089E30E94691C0E94361D89E34E +:1025A0000CC0833879F40E94961180FDAEC083E59B +:1025B0000E94691C0E94361D83E50E94AB1CCF91CE +:1025C0000C94361D843859F40E94961182FD9DC0EA +:1025D00087E40E94691C0E94361D87E4EECF8CEFD1 +:1025E0008C0F813A48F48C2F0E94EA2381118DC010 +:1025F0008C2F0E94691CE3CF80E28C0F883048F456 +:10260000C77081E001C0880FCA95EAF70E94EF1CED +:10261000D6CF8BE58C0F833078F4C53A29F0C63AD3 +:1026200031F083E890E005C081E890E002C082E8E4 +:1026300090E0CF910C94B81188E58C0F833108F0AD +:1026400064C0C83A39F1C93A41F1CA3A49F1CB3AC2 +:1026500051F1CC3A59F1CD3A61F1C03B69F1CE3A32 +:1026600071F1CF3A79F1C13B81F1C23B89F1C33BB2 +:1026700091F1C43B99F1C53BA1F1C63BA9F1C73B20 +:10268000B1F1C83BB9F1C93BC1F1CA3BC9F180E026 +:1026900090E038C082EE90E035C089EE90E032C024 +:1026A0008AEE90E02FC085EB90E02CC086EB90E0A6 +:1026B00029C087EB90E026C08CEC90E023C08DEC25 +:1026C00090E020C083E891E01DC08AE891E01AC044 +:1026D00082E991E017C084E991E014C081E292E0C0 +:1026E00011C083E292E00EC084E292E00BC085E26A +:1026F00092E008C086E292E005C087E292E002C064 +:102700008AE292E0CF910C94CE11CF910895882364 +:1027100009F44BC0823859F40E94961181FF45C0DC +:1027200089E30E94691C0E94361D89E30CC083382E +:1027300071F40E94961180FF38C083E50E94691CE5 +:102740000E94361D83E50E94AB1C0C94361D843814 +:1027500059F40E94961182FF28C087E40E94691CE8 +:102760000E94361D87E4EFCF9CEF980F913A58F303 +:1027700090E2980F983050F4877091E001C0990F63 +:102780008A95EAF7892F0E94F51CDFCF9BE5980F09 +:10279000933020F480E090E00C94B811885A833193 +:1027A00020F480E090E00C94CE110895882321F06D +:1027B0000E94EF1C0C94361D0895882321F00E947E +:1027C000F51C0C94361D0895BF92CF92DF92EF92C4 +:1027D000FF920F931F93CF93DF9300D000D000D0D0 +:1027E000CDB7DEB725E0FC01DE01119601900D9218 +:1027F0002A95E1F7FC01D080118102812581229583 +:102800002F7043815481452B09F4FCC21F3F21F4F2 +:10281000FFEFDF1609F4F6C27C012E830E94BE1280 +:10282000D9821A8369817A81802F0E94651C182FB2 +:10283000B92E0E941A1C0E94E11A2E81002319F061 +:102840000E940C1D2E81EB2DE295EF70F0E0E05917 +:10285000FF4F0C941F268B2D807F9B2D9F70F92E90 +:10286000882319F0F29480EFF822002389F0FF20EA +:1028700009F475C280E2810F883020F48F2D0E9408 +:10288000EF1C03C08F2D0E94FF1C0E94361D67C2E3 +:10289000812F0E948713FF2009F4B4C2105E8F2D90 +:1028A000183018F40E94F51C02C00E94051D2696DF +:1028B0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1028C0000F91FF90EF90DF90CF90BF900C94361D4A +:1028D0003B2D307F8B2D8F70303211F08295807FB1 +:1028E000112319F0113021F12CC00023B9F022235B +:1028F00009F4A0C1213009F09DC126960FB6F894C5 +:10290000DEBF0FBECDBFDF91CF911F910F91FF9022 +:10291000EF90DF90CF90BF900C941F1D222319F0F1 +:10292000213009F46FC28E830E94221D8E8196C1D0 +:10293000002321F0223008F065C27CC1211162C25F +:102940008DC1002321F0222309F474C108C222237F +:1029500009F484C119C22B2D26952695237030E0E9 +:102960002115310521F021303105D1F04BC2002372 +:1029700021F0812F9B2D937002C080E090E026967D +:102980000FB6F894DEBF0FBECDBFDF91CF911F9180 +:102990000F91FF90EF90DF90CF90BF900C94B81103 +:1029A000002321F0812F9B2D937002C080E090E0E6 :1029B00026960FB6F894DEBF0FBECDBFDF91CF9144 :1029C0001F910F91FF90EF90DF90CF90BF900C94EC -:1029D000F71A0E94DB1AC701B60126960FB6F894C3 -:1029E000DEBF0FBECDBFDF91CF911F910F91FF9042 -:1029F000EF90DF90CF90BF900C94BF1A103FD1F1B1 -:102A000018F4103E50F4A1C0123F09F463C008F45A -:102A10004CC0133F09F473C098C01F708B2D8F7189 -:102A20000023A1F00E94581A812F26960FB6F89421 -:102A3000DEBF0FBECDBFDF91CF911F910F91FF90F1 -:102A4000EF90DF90CF90BF900C94E8120E94791A1B -:102A5000812F26960FB6F894DEBF0FBECDBFDF9153 -:102A6000CF911F910F91FF90EF90DF90CF90BF908B -:102A70000C94EF120023A9F02111BFC08B2D8F7190 -:102A800026960FB6F894DEBF0FBECDBFDF91CF9173 -:102A90001F910F91FF90EF90DF90CF90BF900C941B -:102AA0009E1A223008F0A9C0E9CF0023A9F08B2D8F -:102AB0008F7126960FB6F894DEBF0FBECDBFDF91A3 -:102AC000CF911F910F91FF90EF90DF90CF90BF902B -:102AD0000C94581A002359F38B2D8F7126960FB63C -:102AE000F894DEBF0FBECDBFDF91CF911F910F9144 -:102AF000FF90EF90DF90CF90BF900C94791A002355 -:102B000099F08B2D8F7126960FB6F894DEBF0FBE0D -:102B1000CDBFDF91CF911F910F91FF90EF90DF908C -:102B2000CF90BF900C94431A26960FB6F894DEBF50 -:102B30000FBECDBFDF91CF911F910F91FF90EF900E -:102B4000DF90CF90BF900C94391A0023A9F0222374 -:102B500009F4ADCF812F26960FB6F894DEBF0FBED5 -:102B6000CDBFDF91CF911F910F91FF90EF90DF903C -:102B7000CF90BF900C94D111222309F4ADCF812FB7 -:102B800026960FB6F894DEBF0FBECDBFDF91CF9172 -:102B90001F910F91FF90EF90DF90CF90BF900C941A -:102BA00099124B2D4F70612FC7010E943604269653 -:102BB0000FB6F894DEBF0FBECDBFDF91CF911F914E -:102BC0000F91FF90EF90DF90CF90BF900C945D1924 -:102BD0004B2D4F70612FC70126960FB6F894DEBFBC -:102BE0000FBECDBFDF91CF911F910F91FF90EF905E -:102BF000DF90CF90BF900C944B0826960FB6F894B8 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF90BF9008950E94F81B0E9424 -:102C2000CD1B0E94121C0E941D210E946C2080E07E -:102C300090E00E94CB1080E090E00C94E1100E94A4 -:102C4000E81B0C940D160E94141B292F22952F703F -:102C500030E02C3031054CF42A3031056CF4225030 -:102C600031092230310588F407C02C30310549F094 -:102C70002F30310531F009C0803E48F0803F29F403 -:102C800006C093FB882780F9089580E0089581E0CD -:102C90000895CF93DF9300D000D01F92CDB7DEB759 -:102CA0000F900F900F900F900F90DF91CF9108959C -:102CB000CF93DF9300D000D000D0CDB7DEB72696FB -:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550 -:102CD0001F93CF93DF93C0917B0116E080917C011D -:102CE000C81799F0D0E01C9FF0011D9FF00D112432 -:102CF000E358FE4F408151816281738184819581C7 -:102D00000E9458162196C770E9CFDF91CF911F918D -:102D100008954091AD015091AE016091AF01709165 -:102D2000B0018091B1019091B2010C94581680913C -:102D3000B20182958F7009F054C08091AF01882351 -:102D400009F44FC080917B01A0917C016091AD019D -:102D50007091AE014091B0015091B101B6E08A1777 -:102D600009F43FC090E041155105C1F17F3F11F4D6 -:102D70006F3FA1F1B89FF001B99FF00D1124E35806 -:102D8000FE4F218172132AC02081621327C0228145 -:102D9000211124C0238134812417350710F42150D8 -:102DA0003109241B350B283C3105C0F42091B201B8 -:102DB0002F7020612093B20126E0289FF001299F07 -:102DC000F00D1124EE57FE4F80818F70806180835B -:102DD0008DEA91E00E94F6120C94681601968770B5 -:102DE000BECF0895CF92DF92EF92FF920F931F9381 -:102DF000CF93DF93CDB7DEB762970FB6F894DEBFFF -:102E00000FBECDBF8C0185E0F801DE011D9601905B -:102E10000D928A95E1F7D8014C9111965C9111972A -:102E200012966C9112971396CD90DC901497309176 -:102E3000AD017091AE018091B0019091B101009708 -:102E400009F46BC17F3F19F43F3F09F466C1E0907C -:102E5000AF01EE2009F4C0C02091B201C816D90616 -:102E600028F0F601E81BF90BCF0104C0809590957E -:102E70008C0D9D1DFF24F394883C910578F0F12C76 -:102E8000207F09F0C6C07C2DD98AC88A89890E9412 -:102E900049168DEA91E00E94F612B1C0822F807F20 -:102EA00009F046C0751314C0341312C0611110C06C -:102EB0002F7020612093B2010E9489168DEA91E063 -:102EC0000E94F6128091B201D80115968C932EC003 -:102ED000CD2819F15F3F11F44F3FF9F0F62E611143 -:102EE0001CC080917B0120917C0136E0821709F49F -:102EF0005AC090E0389FF001399FF00D1124E3583B -:102F0000FE4F7181571306C07081471303C0728151 -:102F1000711103C001968770E9CFF62E662309F47C -:102F200018C18091B20181608093B201F12C11C16E -:102F3000751308C0341306C0611104C08091B2013A -:102F4000D801C3C04D875E878D859E856A8B0E94A0 -:102F500023166A898823E1F16623D1F12091B20119 -:102F6000822F82958F7090E0029774F08091AD016E -:102F70009091AE0198878F831986DB86CA862C874D -:102F8000CE0107960E94F61286E0F801ADEAB1E0A4 -:102F900001900D928A95E1F70E9497160E9489167A -:102FA000FF24F394D6C04D875E878D859E850E9451 -:102FB000141B292F22952F7030E0223031050CF0A0 -:102FC000BCC09F7009F0B6C0805E883008F4C1C0F4 -:102FD000C8010E94F612E4CFC816D90608F453C0FF -:102FE000F601E81BF90BCF01883C910508F450C0AD -:102FF000F12C7C2DD98AC88A89890E944916EDEA6C -:10300000F1E086E0DF011D928A95E9F70E948916BA -:10301000A0C0751314C0341312C0611110C0809188 -:10302000B201F8018583C8010E94F61286E0EDEA3C -:10303000F1E0DF011D928A95E9F7FE2C8AC04D87E9 -:103040005E878D859E856A8B0E9423166A898823F8 -:1030500009F4BECF662309F4BBCF2091B201822FC1 -:1030600082958F7090E002970CF48ECF8091AD0125 -:103070009091AE019A8389831B82DD82CC822E835C -:10308000CE0101967FCF809590958C0D9D1DACCF84 -:10309000F62E662309F49CCF75132EC034132CC072 -:1030A0002091B20120FD1FC0822F82958F70D9F030 -:1030B000D80115962C9315978F3049F08F5F982F74 -:1030C0009295907F822F8F70892B15968C93C801D3 -:1030D0000E94F61286E0F801ADEAB1E001900D928F -:1030E0008A95E1F793CF86E0F801ADEAB1E001906F -:1030F0000D928A95E1F72DC04D875E878D859E855F -:103100000E942316811140CF8091B201816080938B -:10311000B201C8010E94F6121CC0662309F458CF00 -:103120004D875E878D859E850E942316882309F42E -:103130004FCF2ACF811148CF0CC0243031050CF07D -:1031400047CF9F7009F440CFF8019581907F09F037 -:103150003BCF8F2D62960FB6F894DEBF0FBECDBF6A -:10316000DF91CF911F910F91FF90EF90DF90CF9063 -:1031700008951F93CF93DF93CDB7DEB72C970FB68B -:10318000F894DEBF0FBECDBF4F83588769877A871B -:103190008B879C87CE0107960E94F216882369F0E0 -:1031A0008F8198852A853B85232BF1F19F3F09F07C -:1031B00063C08F3F09F060C037C086E0FE013796DC -:1031C000DE01119601900D928A95E1F76F81788565 -:1031D000EA85FB85309741F17F3F11F46F3F21F184 -:1031E00020917C0130E0C9010196877099274091B8 -:1031F0007B0150E08417950709F447C069837A83FF -:10320000FD83EC8396E0929FD001939FB00D112433 -:10321000A358BE4FFE01319601900D929A95E1F7A9 -:1032200080937C010E94681616E080917B0190914A -:103230007C018917C1F1189FC001112483589E4F4A -:103240000E94F216882379F1E0917B011E9FF00124 -:103250001124E358FE4F4081518162817381848142 -:1032600095810E94581680917B0190E001968770AD -:10327000992780937B01D9CF4F81588569857A85BD -:103280008B859C850E945816CFCF0E941F161092E6 -:103290007C0110927B01EDEAF1E086E0DF011D92F6 -:1032A0008A95E9F7C1CF2C960FB6F894DEBF0FBE12 -:1032B000CDBFDF91CF911F910895EF92FF920F93B1 -:1032C0001F93CF93DF938C01892B09F46CC0F12CF1 -:1032D000EE24E394E8012196F8018491843740F4C8 -:1032E000843008F051C0813081F0823019F15BC028 -:1032F000853709F444C0A8F19CE7980F903708F08F -:1033000052C08F770E94991241C00E5F1F4FFE017D -:10331000C49180E28C0F883048F4C7708E2D01C0B4 -:10332000880FCA95EAF70E94EB1B14C08C2F0E94ED -:10333000D1112DC00E5F1F4FFE01C49180E28C0F92 -:10334000883058F4C7708E2D01C0880FCA95EAF7EF -:103350000E94F11B0E94121C1AC08C2F0E9499120D -:1033600016C00E5F1F4FFE01C491CC2381F08FE980 -:103370009FE00197F1F700C00000C150F6CF0E5F4B -:103380001F4FFE01F49003C00E94D1118E018F2DBA -:10339000882309F49FCFEFE9FFE03197F1F700C0F0 -:1033A00000008150F5CFDF91CF911F910F91FF90D9 -:1033B000EF90089508956093B7017093B8018093DA -:1033C000B9019093BA010C940D160F931F930091BD -:1033D000B7011091B8012091B9013091BA01DC0117 -:1033E000CB01802B912BA22BB32B8093B701909311 -:1033F000B801A093B901B093BA011F910F910C9439 -:103400000D160F931F930091B7011091B8012091F1 -:10341000B9013091BA01DC01CB0180239123A223B1 -:10342000B3238093B7019093B801A093B901B093EF -:10343000BA011F910F910C940D160F931F930091D9 -:10344000B7011091B8012091B9013091BA01DC01A6 -:10345000CB0180279127A227B3278093B7019093B0 -:10346000B801A093B901B093BA011F910F910C94C8 -:103470000D161092B3011092B4011092B501109282 -:10348000B6010C940D1641E050E060E070E004C01D -:10349000440F551F661F771F8A95D2F74093B301DB -:1034A0005093B4016093B5017093B6010C940D165E -:1034B00041E050E060E070E004C0440F551F661F1B -:1034C000771F8A95D2F78091B3019091B401A091B2 -:1034D000B501B091B601482B592B6A2B7B2B409339 -:1034E000B3015093B4016093B5017093B6010C948D -:1034F0000D1641E050E060E070E004C0440F551F3D -:10350000661F771F8A95D2F7409550956095709504 -:103510008091B3019091B401A091B501B091B60131 -:10352000482359236A237B234093B3015093B4016A -:103530006093B5017093B6010C940D1641E050E014 -:1035400060E070E004C0440F551F661F771F8A9526 -:10355000D2F78091B3019091B401A091B501B091DF -:10356000B601482759276A277B274093B301509318 -:10357000B4016093B5017093B6010C940D160F93CE -:103580001F930091B3011091B4012091B5013091C6 -:10359000B601DC01CB01802B912BA22BB32B8093A6 -:1035A000B3019093B401A093B501B093B6011F91FC -:1035B0000F910C940D160F931F930091B30110916E -:1035C000B4012091B5013091B601DC01CB0180231B -:1035D0009123A223B3238093B3019093B401A093CA -:1035E000B501B093B6011F910F910C940D160F9376 -:1035F0001F930091B3011091B4012091B501309156 -:10360000B601DC01CB0180279127A227B327809345 -:10361000B3019093B401A093B501B093B6011F918B -:103620000F910C940D160895CF92DF92EF92FF92B6 -:103630000F931F93CF93DF938C01C090B701D0906D -:10364000B801E090B901F090BA014091B3015091F6 -:10365000B4016091B5017091B601C42AD52AE62A59 -:10366000F72ACFE1D0E0D701C6010C2E04C0B695F1 -:10367000A795979587950A94D2F780FF07C0B80160 -:103680008C2F0E946E088130910531F4219758F7F4 -:10369000B80180E00E946E08DF91CF911F910F91D9 -:1036A000FF90EF90DF90CF90089590910C019923B7 -:1036B00021F090910D01911109C020910E013091DE -:1036C0000F01F90132969FEF40E01FC0982F9695A9 -:1036D000969596959F3050F5E0910E01F0910F016F -:1036E000E90FF11D877021E030E0A90102C0440F0D -:1036F000551F8A95E2F7CA019181892B818308952C -:103700009F3F39F04F5F4E3041F051915813F8CF41 -:103710000DC05111F7CF942FF5CF9F3F39F0F9012C -:10372000E90FF11D97FDFA95828308950895909110 -:103730000C01992321F090910D01911109C0209164 -:103740000E0130910F01F9013296205F3F4F1FC0EB -:10375000982F9695969596959F30F0F4E0910E01EE -:10376000F0910F01E90FF11D877021E030E0A90110 -:1037700002C0440F551F8A95E2F7CA0180959181D6 -:103780008923818308953196E217F30729F0908108 -:103790009813F9CF1082F7CF089581E090E0E0917F -:1037A0000E01F0910F01E80FF91F10820196803190 -:1037B0009105A9F708959091CD01892B8093CD01B2 -:1037C000089580959091CD0189238093CD0108952E -:1037D0001092CD0108959091CC01892B8093CC015A -:1037E000089580959091CC0189238093CC01089510 -:1037F0001092CC0108958093BB0108951092BB01F3 -:10380000089580910E0190910F01FC0131969C0169 -:10381000205F3F4F80E0919191118F5FE217F30796 -:10382000D1F70895E0910E01F0910F018091CD0143 -:103830008083E0910E01F0910F0190818091CC0185 -:10384000892B80838091BB01882361F0E0910E0178 -:10385000F0910F019081892B80830E94011C8111BE -:103860001092BB0180910E0190910F010C94B51044 -:10387000CF92DF92EF92FF926C01EE24FF24C114ED -:10388000D104E104F10421F0C701B60120E101C037 -:1038900020E0C72ED82EE92EFF24C114D104E10464 -:1038A000F10419F0285FC701B6016B017C0154E0F7 -:1038B000F694E794D794C7945A95D1F7C114D104DC -:1038C000E104F10419F02C5FC701B6016B017C0122 -:1038D00042E0F694E794D794C7944A95D1F7C1147F -:1038E000D104E104F10419F02E5FC701B601DC0137 -:1038F000CB01B695A79597958795892B8A2B8B2B0E -:1039000009F02F5F822FFF90EF90DF90CF90089506 -:103910008091E701843009F11092CF0120E488E121 -:1039200090E00FB6F894A895809360000FBE2093A6 -:10393000600083B7817F846083BF83B7816083BF6A -:103940007894889583B78E7F83BF88E10FB6F8940B -:1039500080936000109260000FBE0895089508954E -:10396000CF930E94AE1C0E9497060E94AF1CC0E03D -:103970008C2F0E948507811104C0CF5FCE30C1F724 -:1039800001C081E0CF9108950E941F160E94A910E6 -:103990000C94A20982E084BD93E095BD9AEF97BD97 -:1039A00080936E0008952FB7F8948091D001909184 -:1039B000D101A091D201B091D3012FBF0895CF9230 -:1039C000DF92EF92FF920F931F932FB7F8944091DD -:1039D000D0015091D1016091D2017091D3012FBFDC -:1039E0006A017B01EE24FF248C0120E030E0C01648 -:1039F000D106E206F30610F4415051099A01281B42 -:103A0000390BC9011F910F91FF90EF90DF90CF907C -:103A100008951F920F920FB60F9211248F939F93C8 -:103A2000AF93BF938091D0019091D101A091D20129 -:103A3000B091D3010196A11DB11D8093D001909347 -:103A4000D101A093D201B093D301BF91AF919F91C7 -:103A50008F910F900FBE0F901F9018950E94A60D8A -:103A6000F8942FEF87EA91E6215080409040E1F7EB -:103A700000C0000087E090EBDC018093F0019093A0 -:103A8000F101A093F201B093F3019CE088E10FB63D -:103A9000F894A895809360000FBE90936000FFCFCC -:103AA000EF92FF920F931F93CF93DF93D82FC0E035 -:103AB0008C2F0E94850700E010E0E82EF12CC70152 -:103AC000002E02C0959587950A94E2F780FD06C006 -:103AD0000F5F1F4F0630110591F709C0602F7C2F33 -:103AE00080E00E944C08D813F3CF81E004C0CF5F80 -:103AF000CE30F1F680E0DF91CF911F910F91FF90D2 -:103B0000EF900895CF93C82F8CE20E94501D882318 -:103B100021F08C2FCF910C94501D80E0CF9108950F -:103B2000CF930E94D71E811102C00E94BD1EC5E620 -:103B3000C15049F00E9497068FE39CE90197F1F785 -:103B400000C00000F5CF89E20E94821D811113C1DF -:103B50008AE20E94821D81110E94BD1E85E00E94A2 -:103B6000821D81110E942E1D0E94E21E8093CE01B3 -:103B700087E00E94821D8823A9F18BE10E94821DAB -:103B8000882351F08091CE0181FB222720F991E01A -:103B9000922790FB81F90EC08EE00E94821D88233F -:103BA00061F08091CE0182FB222720F991E09227DB -:103BB00090FB82F98093CE0115C080E10E94821DA6 -:103BC0009091CE01882341F093FB222720F981E0D8 -:103BD000822780FB93F904C0892F809580FB90F9A0 -:103BE0009093CE018091CE010E94E61E0E94F41EA9 -:103BF0008093E10180EE0E94821D882341F0809134 -:103C0000E101982F909590FB80F98093E10189E381 -:103C10000E94821D882359F08091E10181FB2227B7 -:103C200020F991E0922790FB81F98093E10182EEE7 -:103C30000E94821D882359F08091E10182FB222796 -:103C400020F991E0922790FB82F98093E10186EEC2 -:103C50000E94821D882359F08091E10183FB222775 -:103C600020F991E0922790FB83F98093E10183EEA4 -:103C70000E94821D882359F08091E10184FB222754 -:103C800020F991E0922790FB84F98093E10185E38C -:103C90000E94821D882359F08091E10185FB222733 -:103CA00020F991E0922790FB85F98093E10181E36F -:103CB0000E94821D882359F08091E10186FB222712 -:103CC00020F991E0922790FB86F98093E10181E150 -:103CD0000E94821D882359F08091E10187FB2227F1 -:103CE00020F991E0922790FB87F98093E101809180 -:103CF000E1010E94F81E8091E10187FB882780F98D -:103D000080930D0187E20E94821DC82F8EE10E94E0 -:103D1000821D8111C2608FE10E94821D8111C460E9 -:103D200080E20E94821D8111C86081E20E94821D92 -:103D30008111C06182E20E94821D8111C06283E212 -:103D40000E94821D8111C06484E20E94821D88232A -:103D500011F0C06802C0CC2329F08C2F0E94EF1E06 -:103D60006C2F03C00E94EB1E682F70E080E090E093 -:103D7000CF910C94DB19CF9108956DEE7EEF80E02A -:103D800090E00E94232560E082E090E00E941525EB -:103D900060E083E090E00E94152560E084E090E020 -:103DA0000E94152560E085E090E00C94152580E0E8 -:103DB00090E00E940F2521E08D3E9E4F09F020E00B -:103DC000822F089582E090E00C940725682F82E00E -:103DD00090E00C94152583E090E00C940725682F63 -:103DE00083E090E00C94152584E090E00C94072586 -:103DF000682F84E090E00C9415258091D60180FF17 -:103E00000BC06091130185E0689FB0011124759586 -:103E10006795759567952BC081FF09C06091130167 -:103E200085E0689FB00111247595679520C082FFD9 -:103E300007C06091130185E0689FB001112417C08D -:103E40009091D7019923D1F060911201961788F7CC -:103E50002091130185E0289F90011124929FA001D9 -:103E6000939F500D112470E0CA010E94D92460383C -:103E7000710540F46115710539F002C065E070E02C -:103E8000862F08958FE7089581E008958091D601E7 -:103E900080FF08C06091110170E075956795759578 -:103EA000679521C081FF06C06091110170E0759592 -:103EB000679519C082FF04C06091110170E010C0C5 -:103EC0009091D7019923C1F0609110019617A0F746 -:103ED00080911101899FC001112470E00E94D924B2 -:103EE0006038710528F46115710521F0862F089559 -:103EF0008FE7089581E0089561E070E0F4CF803F9E -:103F000021F40E94FD1E819504C0813F29F40E9486 -:103F1000FD1E8093DA010895823F21F40E94FD1E68 -:103F2000819504C0833F29F40E94FD1E8093D9012E -:103F30000895893F19F40E94461F05C08A3F31F455 -:103F40000E94461F81958093DB0108958B3F21F4E9 -:103F50000E94461F819504C08C3F29F40E94461F91 -:103F60008093DC010895843F21F48091D801816021 -:103F700017C0853F21F48091D801826011C0863F2F -:103F800021F48091D80184600BC0873F21F4809197 -:103F9000D801886005C0883F31F48091D8018061E4 -:103FA0008093D80108958D3F21F48091D6018160DE -:103FB0000BC08E3F21F48091D601826005C08F3FF7 -:103FC00029F48091D60184608093D6010895803FC2 -:103FD00039F48091DA0187FF6CC01092DA0169C070 -:103FE000813F29F48091DA011816BCF362C09091E8 -:103FF000D901823F29F497FF5CC01092D90159C0C2 -:10400000833F19F41916CCF354C0893F41F48091D1 -:10401000DB0118160CF04DC01092DB014AC08A3F3C -:1040200029F48091DB0187FF44C0F6CF8B3F39F440 -:104030008091DC0187FF3DC01092DC013AC08C3FCB -:1040400029F48091DC011816BCF333C0843F21F4BD -:104050008091D8018E7F17C0853F21F48091D801CF -:104060008D7F11C0863F21F48091D8018B7F0BC0DA -:10407000873F21F48091D801877F05C0883F31F4C4 -:104080008091D8018F7E8093D80113C08D3F21F499 -:104090008091D6018E7F0BC08E3F21F48091D60196 -:1040A0008D7F05C08F3F29F48091D6018B7F80934F -:1040B000D6018091D90181110EC08091DA01811160 -:1040C0000AC08091DB01811106C08091DC01811161 -:1040D00002C01092D701089588ED91E00E94C010AF -:1040E0000E94D31C9093D5018093D40108951F930F -:1040F000CF93DF938091D4019091D5010E94DF1C72 -:10410000AC019091D701992321F02091140130E066 -:1041100006C0209115018AE0289F900111244217C2 -:10412000530708F486C08091D901C091DA01D0917B -:10413000DB011091DC01811107C0C11176C0D111E2 -:1041400074C0111172C075C09F3F19F09F5F9093AA -:10415000D701181624F40E94FD1E8093D901809186 -:10416000D90187FF05C00E94FD1E81958093D9016A -:104170001C1624F40E94FD1E8093DA018091DA015E -:1041800087FF05C00E94FD1E81958093DA01609132 -:10419000D901662339F1C091DA01CC2319F17727CF -:1041A00067FD7095872F972F0E94EA2323E333E35F -:1041B00043E35FE30E944E240E94B7236093D9013A -:1041C0006C2F772767FD7095872F972F0E94EA2322 -:1041D00023E333E343E35FE30E944E240E94B723CB -:1041E0006093DA011D1624F40E94461F8093DB01C0 -:1041F0008091DB0187FF05C00E94461F8195809357 -:10420000DB01111624F40E94461F8093DC0180918B -:10421000DC0187FF05C00E94461F81958093DC0169 -:10422000DF91CF911F910C946C209F3F09F08ECFAE -:1042300096CFDF91CF911F910895E8EDF1E085E0F1 -:10424000DF011D928A95E9F71092D7011092D601ED -:104250000895833081F128F4813059F08230D1F013 -:104260000895853009F449C0B8F1863009F456C084 -:10427000089580911501262F30E0280F311D2F3F22 -:10428000310524F4680F6093150108958FEF809332 -:104290001501089580911401262F30E0280F311D5B -:1042A0002F3F310524F4680F6093140108958FEFB8 -:1042B00080931401089580911301262F30E0280F78 -:1042C000311D2F3F310524F4680F609313010895C9 -:1042D0008FEF80931301089580911201262F30E013 -:1042E000280F311D2F3F310524F4680F6093120110 -:1042F00008958FEF80931201089580911101262F68 -:1043000030E0280F311D2F3F310524F4680F6093F2 -:10431000110108958FEF809311010895809110018C -:10432000262F30E0280F311D2F3F310524F4680F70 -:104330006093100108958FEF8093100108958330EA -:1043400011F128F4813049F0823091F008958530E0 -:1043500081F120F18630C1F108958091150168172F -:1043600020F4861B8093150108951092150108957D -:1043700080911401681720F4861B8093140108951E -:1043800010921401089580911301681720F4861B80 -:1043900080931301089510921301089580911201E2 -:1043A000681720F4861B8093120108951092120161 -:1043B000089580911101681720F4861B80931101E4 -:1043C000089510921101089580911001681720F44A -:1043D000861B8093100108951092100108950F9389 -:1043E0001F938D3109F46BC008F03FC08E3009F483 -:1043F0007DC0C0F4873009F46EC068F4863009F0DF -:10440000AFC08091CE01817F8E7F8093CE0181E00D -:104410008093DE01A6C0883009F458C08B3009F4BF -:104420009BC09EC0863109F497C078F4803109F4AE -:1044300070C0813109F094C00E941F1690910D0147 -:1044400081E0892780930D0187C0893109F484C0F8 -:104450008B3109F085C08091CE0181FB222720F9A4 -:1044600091E0922790FB81F94AC0853309F45BC043 -:1044700048F4873209F457C008F45AC0893209F465 -:1044800052C06EC0833438F48A3308F067C0883372 -:1044900009F462C065C0833409F445C0883409F06A -:1044A0005FC00E941F160FEF13ED20E30150104074 -:1044B0002040E1F700C000000E942E1D4DC00E9468 -:1044C00071230E94A9100E94A20946C00E94E21E08 -:1044D0000E94F41E41C09091CE01892F817090FFFF -:1044E00012C0917F9E7F9093CE013BC08091CE0100 -:1044F00082FB222720F991E0922790FB82F980939A -:10450000CE01992349F18091CE0181608093CE0143 -:1045100023C08091CE0183FB222720F991E09227CE -:1045200090FB83F9ECCF61E070E080E090E010C098 -:104530008D5141E050E060E070E08A019B0104C0D1 -:10454000000F111F221F331F8A95D2F7C901B8012E -:104550000E94DB190E941F1681E003C08953E9CF36 -:1045600080E01F910F91089580E0089580E0089504 -:10457000CF93C82F8091DE01813079F018F082301E -:10458000E9F187C0E0910E01F0910F018081813146 -:1045900069F0823209F07FC009C0E0910E01F0910C -:1045A0000F018081813111F0823261F48C2F0E94E1 -:1045B000B422811104C08C2F0E94EF211DC081E024 -:1045C00090E01AC08C2F0E94B622811114C0C43111 -:1045D00079F048F4CB3079F0C03109F060C082E066 -:1045E0008093DE0108C0C93219F0C83321F057C0EA -:1045F0001092DE0154C081E0817053C0C93289F14C -:1046000018F5C43171F1A8F4C73009F046C08AE04A -:104610008093150194E19093140193E0909313011A -:104620008093120188E08093110188E28093100149 -:1046300034C0CE51C63088F5EC2FF0E0E65DFE4F79 -:1046400080818093DD0129C0CE34E9F020F4CB34A1 -:1046500021F56AE013C0C13579F0C235F1F461E0AB -:104660000DC08091DD01882319F01092DD0115C085 -:1046700081E08093DE0115C061E006C08091DD011C -:104680000E9429210AC06AE08091DD010E949F21D9 -:1046900004C01092DE0180E004C081E002C080E02E -:1046A000ABCFCF910895E1E8F0E08081886080830E -:1046B0008081816080838FB7F89493E09093890024 -:1046C00090ED909388008FBF0895EFE6F0E0808131 -:1046D000826080830895EFE6F0E080818D7F8083A3 -:1046E0000895EFE6F0E0908182E0892780830895C5 -:1046F0001F920F920FB60F9211242F933F934F9357 -:104700005F936F937F938F939F93AF93BF93EF9339 -:10471000FF938091DF019091E00101969093E00179 -:104720008093DF01811103C082E00E94A209E09121 -:10473000E001E695E695F0E0E156F84FE4918091CE -:10474000DF018E1303C080E00E94A209FF91EF9168 -:10475000BF91AF919F918F917F916F915F914F9199 -:104760003F912F910F900FBE0F901F90189504D07E -:104770006894B1118DC0089570D088F09F5790F063 -:10478000B92F9927B751A0F0D1F0660F771F881F76 -:10479000991F1AF0BA95C9F712C0B13081F077D0DD -:1047A000B1E0089574C0672F782F8827B85F39F07B -:1047B000B93FCCF3869577956795B395D9F73EF4D5 -:1047C00090958095709561957F4F8F4F9F4F08957D -:1047D000E89409C097FB3EF490958095709561959B -:1047E0007F4F8F4F9F4F9923A9F0F92F96E9BB2751 -:1047F0009395F695879577956795B795F111F8CFCD -:10480000FAF4BB0F11F460FF1BC06F5F7F4F8F4F37 -:104810009F4F16C0882311F096E911C0772321F02D -:104820009EE8872F762F05C0662371F096E8862FC5 -:1048300070E060E02AF09A95660F771F881FDAF71C -:10484000880F9695879597F9089557FD9058440FCE -:10485000551F59F05F3F71F04795880F97FB991FDF -:1048600061F09F3F79F0879508951216130614069C -:10487000551FF2CF4695F1DF08C016161706180629 -:10488000991FF1CF86957105610508940895E89404 -:10489000BB2766277727CB0197F908950BD078C0FF -:1048A00069D028F06ED018F0952309F05AC05FC087 -:1048B0001124EECFCADFA0F3959FD1F3950F50E0FE -:1048C000551F629FF001729FBB27F00DB11D639FC2 -:1048D000AA27F00DB11DAA1F649F6627B00DA11D68 -:1048E000661F829F2227B00DA11D621F739FB00D0E -:1048F000A11D621F839FA00D611D221F749F33277E -:10490000A00D611D231F849F600D211D822F762F16 -:104910006A2F11249F5750408AF0E1F088234AF013 -:10492000EE0FFF1FBB1F661F771F881F915050405F -:10493000A9F79E3F510570F014C0AACF5F3FECF37A -:10494000983EDCF3869577956795B795F795E7954B -:104950009F5FC1F7FE2B880F911D9695879597F95C -:10496000089597F99F6780E870E060E008959FEFF1 -:1049700080EC089500240A941616170618060906F6 -:10498000089500240A9412161306140605060895C5 -:10499000092E0394000C11F4882352F0BB0F40F44D -:1049A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8D -:1049B000089597FB072E16F4009407D077FD09D0D1 -:1049C0000E94F32407FC05D03EF4909581959F4FFB -:1049D0000895709561957F4F0895EE0FFF1F059024 -:1049E000F491E02D0994AA1BBB1B51E107C0AA1F3B -:1049F000BB1FA617B70710F0A61BB70B881F991F80 -:104A00005A95A9F780959095BC01CD010895F99923 -:104A1000FECF92BD81BDF89A992780B50895A8E18F -:104A2000B0E042E050E00C942A25262FF999FECF01 -:104A30001FBA92BD81BD20BD0FB6F894FA9AF99ABB -:104A40000FBE019608950E941525272F0C94162558 -:104A5000DC01CB01FC01F999FECF06C0F2BDE1BD3E -:104A6000F89A319600B40D9241505040B8F708952D -:044A7000F894FFCFE8 -:104A74002002A409320A0F0ADB09A7090101BC01BB -:104A840028080A03140A3F4D363960071307DD0668 -:104A9400A4063706500669068206010203040506C9 -:044AA40007080900F6 +:1029D000CE11812F002319F00E94AF2002C00E9467 +:1029E000172126960FB6F894DEBF0FBECDBFDF913C +:1029F000CF911F910F91FF90EF90DF90CF90BF90FC +:102A00000C949C218B2D837009F07BC00111FAC1BD +:102A1000812F829586958770880F880F912F9F70E0 +:102A2000C92ED12CE12CF12C082E04C0CC0CDD1CBD +:102A3000EE1CFF1C0A94D2F714FF12C04FE050E0C6 +:102A400060E070E004C0440F551F661F771F8A9531 +:102A5000D2F7CB01BA01609570958095909503C02F +:102A600060E070E0CB012B2D269526952370422F38 +:102A700050E042305105D9F04330510569F16C29DD +:102A80007D298E299F294130510551F126960FB697 +:102A9000F894DEBF0FBECDBFDF91CF911F910F9194 +:102AA000FF90EF90DF90CF90BF900C94081B6C29A3 +:102AB0007D298E299F2926960FB6F894DEBF0FBE7A +:102AC000CDBFDF91CF911F910F91FF90EF90DF90DD +:102AD000CF90BF900C94241B0E94081BC701B60125 +:102AE00026960FB6F894DEBF0FBECDBFDF91CF9113 +:102AF0001F910F91FF90EF90DF90CF90BF900C94BB +:102B0000EC1A002319F08B2D817001C08695882363 +:102B100009F478C1812F829586958770880F880F78 +:102B2000912F9F70C92ED12CE12CF12C082E04C0BE +:102B3000CC0CDD1CEE1CFF1C0A94D2F714FF12C053 +:102B40004FE050E060E070E004C0440F551F661F86 +:102B5000771F8A95D2F7CB01BA0160957095809561 +:102B6000909503C060E070E0CB012B2D2695269553 +:102B70002370422F50E042305105D9F043305105C7 +:102B800069F16C297D298E299F294130510551F128 +:102B900026960FB6F894DEBF0FBECDBFDF91CF9162 +:102BA0001F910F91FF90EF90DF90CF90BF900C940A +:102BB000E21B6C297D298E299F2926960FB6F89451 +:102BC000DEBF0FBECDBFDF91CF911F910F91FF9060 +:102BD000EF90DF90CF90BF900C94FE1B0E94E21B01 +:102BE000C701B60126960FB6F894DEBF0FBECDBF63 +:102BF000DF91CF911F910F91FF90EF90DF90CF90D9 +:102C0000BF900C94C61B103FD1F118F4103E50F445 +:102C1000A1C0123F09F463C008F44CC0133F09F48B +:102C200073C098C01F708B2D8F710023A1F00E947C +:102C30005F1B812F26960FB6F894DEBF0FBECDBF67 +:102C4000DF91CF911F910F91FF90EF90DF90CF9088 +:102C5000BF900C94D6130E94801B812F26960FB62E +:102C6000F894DEBF0FBECDBFDF91CF911F910F91C2 +:102C7000FF90EF90DF90CF90BF900C94DD13002376 +:102C8000A9F02111BFC08B2D8F7126960FB6F89435 +:102C9000DEBF0FBECDBFDF91CF911F910F91FF908F +:102CA000EF90DF90CF90BF900C94A51B223008F0DE +:102CB000A9C0E9CF0023A9F08B2D8F7126960FB6FE +:102CC000F894DEBF0FBECDBFDF91CF911F910F9162 +:102CD000FF90EF90DF90CF90BF900C945F1B00238C +:102CE00059F38B2D8F7126960FB6F894DEBF0FBE69 +:102CF000CDBFDF91CF911F910F91FF90EF90DF90AB +:102D0000CF90BF900C94801B002399F08B2D8F7176 +:102D100026960FB6F894DEBF0FBECDBFDF91CF91E0 +:102D20001F910F91FF90EF90DF90CF90BF900C9488 +:102D30004A1B26960FB6F894DEBF0FBECDBFDF91BB +:102D4000CF911F910F91FF90EF90DF90CF90BF90A8 +:102D50000C94401B0023A9F0222309F4ADCF812F4E +:102D600026960FB6F894DEBF0FBECDBFDF91CF9190 +:102D70001F910F91FF90EF90DF90CF90BF900C9438 +:102D8000BF12222309F4ADCF812F26960FB6F894F7 +:102D9000DEBF0FBECDBFDF91CF911F910F91FF908E +:102DA000EF90DF90CF90BF900C9487134B2D4F7016 +:102DB000612FC7010E94420426960FB6F894DEBF29 +:102DC0000FBECDBFDF91CF911F910F91FF90EF907C +:102DD000DF90CF90BF900C94641A4B2D4F70612FF1 +:102DE000C70126960FB6F894DEBF0FBECDBFDF91A8 +:102DF000CF911F910F91FF90EF90DF90CF90BF90F8 +:102E00000C94B40726960FB6F894DEBF0FBECDBF64 +:102E1000DF91CF911F910F91FF90EF90DF90CF90B6 +:102E2000BF9008950E940C1D0E941C1D0E94E11C71 +:102E30000E94361D0E944D220E949C2180E090E05D +:102E40000E94B81180E090E00C94CE110E94FC1C0E +:102E50000C9412170E945A1C292F22952F7030E0D3 +:102E60002C3031054CF42A3031056CF422503109F4 +:102E70002230310588F407C02C30310549F02F305D +:102E8000310531F009C0803E48F0803F29F406C08A +:102E900093FB882780F9089580E0089581E00895E4 +:102EA000CF93DF9300D000D01F92CDB7DEB70F9045 +:102EB0000F900F900F900F90DF91CF910895CF93C7 +:102EC000DF9300D000D000D0CDB7DEB726960FB686 +:102ED000F894DEBF0FBECDBFDF91CF9108951F9351 +:102EE000CF93DF93C0917B0116E080917C01C817DE +:102EF00099F0D0E01C9FF0011D9FF00D1124E358C4 +:102F0000FE4F4081518162817381848195810E944D +:102F10005F172196C770E9CFDF91CF911F91089578 +:102F20004091AD015091AE016091AF017091B0013F +:102F30008091B1019091B2010C945F178091B20120 +:102F400082958F7009F054C08091AF01882309F4F5 +:102F50004FC080917B01A0917C016091AD01709187 +:102F6000AE014091B0015091B101B6E08A1709F469 +:102F70003FC090E041155105C1F17F3F11F46F3F13 +:102F8000A1F1B89FF001B99FF00D1124E358FE4F55 +:102F9000218172132AC02081621327C0228121114E +:102FA00024C0238134812417350710F421503109BE +:102FB000241B350B283C3105C0F42091B2012F7041 +:102FC00020612093B20126E0289FF001299FF00D97 +:102FD0001124EE57FE4F80818F70806180838DEACF +:102FE00091E00E94E4130C946F1701968770BECF96 +:102FF0000895CF92DF92EF92FF920F931F93CF939A +:10300000DF93CDB7DEB762970FB6F894DEBF0FBE81 +:10301000CDBF8C0185E0F801DE011D9601900D9277 +:103020008A95E1F7D8014C9111965C91119712960F +:103030006C9112971396CD90DC9014973091AD015E +:103040007091AE018091B0019091B101009709F4A7 +:103050006BC17F3F19F43F3F09F466C1E090AF01B7 +:10306000EE2009F4C0C02091B201C816D90628F09C +:10307000F601E81BF90BCF0104C0809590958C0DEB +:103080009D1DFF24F394883C910578F0F12C207F5E +:1030900009F0C6C07C2DD98AC88A89890E94501738 +:1030A0008DEA91E00E94E413B1C0822F807F09F085 +:1030B00046C0751314C0341312C0611110C02F70B4 +:1030C00020612093B2010E9490178DEA91E00E9446 +:1030D000E4138091B201D80115968C932EC0CD28AF +:1030E00019F15F3F11F44F3FF9F0F62E61111CC04A +:1030F00080917B0120917C0136E0821709F45AC04F +:1031000090E0389FF001399FF00D1124E358FE4FF5 +:103110007181571306C07081471303C0728171110A +:1031200003C001968770E9CFF62E662309F418C113 +:103130008091B20181608093B201F12C11C17513AD +:1031400008C0341306C0611104C08091B201D801D7 +:10315000C3C04D875E878D859E856A8B0E942A1726 +:103160006A898823E1F16623D1F12091B201822F8F +:1031700082958F7090E0029774F08091AD019091EC +:10318000AE0198878F831986DB86CA862C87CE018D +:1031900007960E94E41386E0F801ADEAB1E00190E1 +:1031A0000D928A95E1F70E949E170E949017FF24C6 +:1031B000F394D6C04D875E878D859E850E945A1CEC +:1031C000292F22952F7030E0223031050CF0BCC041 +:1031D0009F7009F0B6C0805E883008F4C1C0C80195 +:1031E0000E94E413E4CFC816D90608F453C0F601D0 +:1031F000E81BF90BCF01883C910508F450C0F12C75 +:103200007C2DD98AC88A89890E945017EDEAF1E09D +:1032100086E0DF011D928A95E9F70E949017A0C011 +:10322000751314C0341312C0611110C08091B20123 +:10323000F8018583C8010E94E41386E0EDEAF1E01D +:10324000DF011D928A95E9F7FE2C8AC04D875E87C3 +:103250008D859E856A8B0E942A176A89882309F4C6 +:10326000BECF662309F4BBCF2091B201822F829595 +:103270008F7090E002970CF48ECF8091AD01909109 +:10328000AE019A8389831B82DD82CC822E83CE019C +:1032900001967FCF809590958C0D9D1DACCFF62E1D +:1032A000662309F49CCF75132EC034132CC02091D3 +:1032B000B20120FD1FC0822F82958F70D9F0D801F6 +:1032C00015962C9315978F3049F08F5F982F929514 +:1032D000907F822F8F70892B15968C93C8010E9446 +:1032E000E41386E0F801ADEAB1E001900D928A9511 +:1032F000E1F793CF86E0F801ADEAB1E001900D92DD +:103300008A95E1F72DC04D875E878D859E850E9449 +:103310002A17811140CF8091B20181608093B20160 +:10332000C8010E94E4131CC0662309F458CF4D87DE +:103330005E878D859E850E942A17882309F44FCFCA +:103340002ACF811148CF0CC0243031050CF047CF73 +:103350009F7009F440CFF8019581907F09F03BCF31 +:103360008F2D62960FB6F894DEBF0FBECDBFDF91F2 +:10337000CF911F910F91FF90EF90DF90CF90089524 +:103380001F93CF93DF93CDB7DEB72C970FB6F8948A +:10339000DEBF0FBECDBF4F83588769877A878B8783 +:1033A0009C87CE0107960E94F917882369F08F81C8 +:1033B00098852A853B85232BF1F19F3F09F063C057 +:1033C0008F3F09F060C037C086E0FE013796DE010E +:1033D000119601900D928A95E1F76F817885EA85C3 +:1033E000FB85309741F17F3F11F46F3F21F1209130 +:1033F0007C0130E0C90101968770992740917B01DB +:1034000050E08417950709F447C069837A83FD83E8 +:10341000EC8396E0929FD001939FB00D1124A358A6 +:10342000BE4FFE01319601900D929A95E1F780937F +:103430007C010E946F1716E080917B0190917C01C6 +:103440008917C1F1189FC001112483589E4F0E9413 +:10345000F917882379F1E0917B011E9FF001112477 +:10346000E358FE4F4081518162817381848195814F +:103470000E945F1780917B0190E0019687709927E9 +:1034800080937B01D9CF4F81588569857A858B855B +:103490009C850E945F17CFCF0E94261710927C0157 +:1034A00010927B01EDEAF1E086E0DF011D928A9542 +:1034B000E9F7C1CF2C960FB6F894DEBF0FBECDBF93 +:1034C000DF91CF911F910895EF92FF920F931F9379 +:1034D000CF93DF938C01892B09F46CC0F12CEE247F +:1034E000E394E8012196F8018491843740F4843014 +:1034F00008F051C0813081F0823019F15BC085370E +:1035000009F444C0A8F19CE7980F903708F052C026 +:103510008F770E94871341C00E5F1F4FFE01C49139 +:1035200080E28C0F883048F4C7708E2D01C0880F60 +:10353000CA95EAF70E940F1D14C08C2F0E94BF127B +:103540002DC00E5F1F4FFE01C49180E28C0F8830AA +:1035500058F4C7708E2D01C0880FCA95EAF70E94F3 +:10356000151D0E94361D1AC08C2F0E94871316C08D +:103570000E5F1F4FFE01C491CC2381F08FE99FE0C5 +:103580000197F1F700C00000C150F6CF0E5F1F4F4A +:10359000FE01F49003C00E94BF128E018F2D88237C +:1035A00009F49FCFEFE9FFE03197F1F700C0000089 +:1035B0008150F5CFDF91CF911F910F91FF90EF9048 +:1035C000089508956093B7017093B8018093B9018D +:1035D0009093BA010C9412170F931F930091B701A7 +:1035E0001091B8012091B9013091BA01DC01CB01F1 +:1035F000802B912BA22BB32B8093B7019093B80112 +:10360000A093B901B093BA011F910F910C941217B6 +:103610000F931F930091B7011091B8012091B90148 +:103620003091BA01DC01CB0180239123A223B32383 +:103630008093B7019093B801A093B901B093BA01F8 +:103640001F910F910C9412170F931F930091B701C4 +:103650001091B8012091B9013091BA01DC01CB0180 +:1036600080279127A227B3278093B7019093B801B1 +:10367000A093B901B093BA011F910F910C94121746 +:103680001092B3011092B4011092B5011092B601DC +:103690000C94121741E050E060E070E004C0440F69 +:1036A000551F661F771F8A95D2F74093B301509339 +:1036B000B4016093B5017093B6010C94121741E008 +:1036C00050E060E070E004C0440F551F661F771F94 +:1036D0008A95D2F78091B3019091B401A091B50180 +:1036E000B091B601482B592B6A2B7B2B4093B30129 +:1036F0005093B4016093B5017093B6010C94121706 +:1037000041E050E060E070E004C0440F551F661FC8 +:10371000771F8A95D2F74095509560957095809166 +:10372000B3019091B401A091B501B091B6014823C5 +:1037300059236A237B234093B3015093B4016093D0 +:10374000B5017093B6010C94121741E050E060E0AF +:1037500070E004C0440F551F661F771F8A95D2F78B +:103760008091B3019091B401A091B501B091B601DF +:10377000482759276A277B274093B3015093B40108 +:103780006093B5017093B6010C9412170F931F93B9 +:103790000091B3011091B4012091B5013091B601AF +:1037A000DC01CB01802B912BA22BB32B8093B30197 +:1037B0009093B401A093B501B093B6011F910F91FE +:1037C0000C9412170F931F930091B3011091B40141 +:1037D0002091B5013091B601DC01CB01802391230A +:1037E000A223B3238093B3019093B401A093B501B6 +:1037F000B093B6011F910F910C9412170F931F9362 +:103800000091B3011091B4012091B5013091B6013E +:10381000DC01CB0180279127A227B3278093B30136 +:103820009093B401A093B501B093B6011F910F918D +:103830000C9412170895CF92DF92EF92FF920F939C +:103840001F93CF93DF938C01C090B701D090B80144 +:10385000E090B901F090BA018091B3019091B40168 +:10386000A091B501B091B601C82AD92AEA2AFB2A4B +:10387000CFE1D0E0D701C6010C2E04C0B695A795C4 +:10388000979587950A94D2F780FF06C0B8018C2FD0 +:103890000E94F409019721F4219760F780E001C0AC +:1038A0008C2FDF91CF911F910F91FF90EF90DF90C0 +:1038B000CF900895CF93DF93EC010E941B1CBE01B3 +:1038C0000E94F409DF91CF910895CB010E945A1C08 +:1038D000089590910C01992321F090910D0191117F +:1038E00009C020910E0130910F01F90132969FEF2E +:1038F00040E01FC0982F9695969596959F3050F56D +:10390000E0910E01F0910F01E90FF11D877021E0A8 +:1039100030E0A90102C0440F551F8A95E2F7CA01A1 +:103920009181892B818308959F3F39F04F5F4E30FD +:1039300041F051915813F8CF0DC05111F7CF942F8A +:10394000F5CF9F3F39F0F901E90FF11D97FDFA9589 +:1039500082830895089590910C01992321F090910C +:103960000D01911109C020910E0130910F01F90153 +:103970003296205F3F4F1FC0982F9695969596954B +:103980009F30F0F4E0910E01F0910F01E90FF11D6D +:10399000877021E030E0A90102C0440F551F8A95CD +:1039A000E2F7CA0180959181892381830895319638 +:1039B000E217F30729F090819813F9CF1082F7CF1F +:1039C000089581E090E0E0910E01F0910F01E80F81 +:1039D000F91F1082019680319105A9F70895909101 +:1039E000CE01892B8093CE01089580959091CE01D0 +:1039F00089238093CE0108951092CE01089590916D +:103A0000CD01892B8093CD01089580959091CD01B2 +:103A100089238093CD0108951092CD01089590914E +:103A2000CC01892B8093CC01089580959091CC0195 +:103A300089238093CC0108951092CC01089580933E +:103A4000BB0108951092BB01089580910E019091E1 +:103A50000F01FC0131969C01205F3F4F80E0919166 +:103A600091118F5FE217F307D1F70895E0910E01EE +:103A7000F0910F018091CE018083E0910E01F091D1 +:103A80000F0190818091CD01892B8083E0910E01FF +:103A9000F0910F0190818091CC01892B80838091DE +:103AA000BB01882361F0E0910E01F0910F0190813C +:103AB000892B80830E94251D81111092BB0180916A +:103AC0000E0190910F010C94A211CF92DF92EF9210 +:103AD000FF926C01EE24FF24C114D104E104F1042F +:103AE00021F0C701B60120E101C020E0C72ED82E89 +:103AF000E92EFF24C114D104E104F10419F0285F78 +:103B0000C701B6016B017C0154E0F694E794D794A9 +:103B1000C7945A95D1F7C114D104E104F10419F006 +:103B20002C5FC701B6016B017C0142E0F694E7947B +:103B3000D794C7944A95D1F7C114D104E104F10494 +:103B400019F02E5FC701B601DC01CB01B695A79530 +:103B500097958795892B8A2B8B2B09F02F5F822FC6 +:103B6000FF90EF90DF90CF9008958091E601843030 +:103B700021F11092D00120E488E190E00FB6F89492 +:103B8000A895809360000FBE2093600080E00E94A3 +:103B90008F0A83B7817F846083BF83B7816083BFCF +:103BA0007894889583B78E7F83BF88E10FB6F894A9 +:103BB00080936000109260000FBE089508950895EC +:103BC000CF930E94DE1D0E94BF060E94DF1DC0E051 +:103BD0008C2F0E94AD07811104C0CF5FCE30C1F79A +:103BE00001C081E0CF9108950E9426170E9496118E +:103BF0000C948F0A82E084BD93E095BD9AEF97BD47 +:103C000080936E0008952FB7F8948091D101909120 +:103C1000D201A091D301B091D4012FBF0895CF92CA +:103C2000DF92EF92FF920F931F932FB7F89440917A +:103C3000D1015091D2016091D3017091D4012FBF75 +:103C40006A017B01EE24FF248C0120E030E0C016E5 +:103C5000D106E206F30610F4415051099A01281BDF +:103C6000390BC9011F910F91FF90EF90DF90CF901A +:103C700008951F920F920FB60F9211248F939F9366 +:103C8000AF93BF938091D1019091D201A091D301C4 +:103C9000B091D4010196A11DB11D8093D1019093E3 +:103CA000D201A093D301B093D401BF91AF919F9162 +:103CB0008F910F900FBE0F901F9018950E94930E3A +:103CC000F8942FEF87EA91E6215080409040E1F789 +:103CD00000C0000087E090EBDC018093F00190933E +:103CE000F101A093F201B093F3019CE088E10FB6DB +:103CF000F894A895809360000FBE90936000FFCF6A +:103D0000EF92FF920F931F93CF93DF93D82FC0E0D2 +:103D10008C2F0E94AD0700E010E0E82EF12CC701C7 +:103D2000002E02C0959587950A94E2F780FD06C0A3 +:103D30000F5F1F4F0630110591F709C0602F7C2FD0 +:103D400080E00E94B507D813F3CF81E004C0CF5FB5 +:103D5000CE30F1F680E0DF91CF911F910F91FF906F +:103D6000EF900895CF93C82F8CE20E94801E882385 +:103D700021F08C2FCF910C94801E80E0CF9108957C +:103D8000CF930E940720811102C00E94ED1FC5E65B +:103D9000C15049F00E94BF068FE39CE90197F1F7FB +:103DA00000C00000F5CF89E20E94B21E811113C14C +:103DB0008AE20E94B21E81110E94ED1F85E00E94DE +:103DC000B21E81110E945E1E0E9412208093CF01BC +:103DD00087E00E94B21E8823A9F18BE10E94B21EE7 +:103DE000882351F08091CF0181FB222720F991E0B7 +:103DF000922790FB81F90EC08EE00E94B21E8823AC +:103E000061F08091CF0182FB222720F991E0922777 +:103E100090FB82F98093CF0115C080E10E94B21E11 +:103E20009091CF01882341F093FB222720F981E074 +:103E3000822780FB93F904C0892F809580FB90F93D +:103E40009093CF018091CF010E9416200E942420E0 +:103E50008093EF0180EE0E94B21E882341F0809192 +:103E6000EF01982F909590FB80F98093EF0189E303 +:103E70000E94B21E882359F08091EF0181FB222716 +:103E800020F991E0922790FB81F98093EF0182EE77 +:103E90000E94B21E882359F08091EF0182FB2227F5 +:103EA00020F991E0922790FB82F98093EF0186EE52 +:103EB0000E94B21E882359F08091EF0183FB2227D4 +:103EC00020F991E0922790FB83F98093EF0183EE34 +:103ED0000E94B21E882359F08091EF0184FB2227B3 +:103EE00020F991E0922790FB84F98093EF0185E31C +:103EF0000E94B21E882359F08091EF0185FB222792 +:103F000020F991E0922790FB85F98093EF0181E3FE +:103F10000E94B21E882359F08091EF0186FB222770 +:103F200020F991E0922790FB86F98093EF0181E1DF +:103F30000E94B21E882359F08091EF0187FB22274F +:103F400020F991E0922790FB87F98093EF0180910F +:103F5000EF010E9428208091EF0187FB882780F9DC +:103F600080930D0187E20E94B21EC82F8EE10E944D +:103F7000B21E8111C2608FE10E94B21E8111C46025 +:103F800080E20E94B21E8111C86081E20E94B21ECE +:103F90008111C06182E20E94B21E8111C06283E27F +:103FA0000E94B21E8111C06484E20E94B21E882366 +:103FB00011F0C06802C0CC2329F08C2F0E941F2072 +:103FC0006C2F03C00E941B20682F70E080E090E0FF +:103FD000CF910C94E21ACF9108956DEE7EEF80E0C0 +:103FE00090E00E94552660E082E090E00E94472623 +:103FF00060E083E090E00E94472660E084E090E08B +:104000000E94472660E085E090E00C94472680E01F +:1040100090E00E94412621E08D3E9E4F09F020E075 +:10402000822F089582E090E00C943926682F82E078 +:1040300090E00C94472683E090E00C943926682F9A +:1040400083E090E00C94472684E090E00C943926BD +:10405000682F84E090E00C9447268091D70180FF80 +:104060000BC06091130185E0689FB0011124759524 +:104070006795759567952BC081FF09C06091130105 +:1040800085E0689FB00111247595679520C082FF77 +:1040900007C06091130185E0689FB001112417C02B +:1040A0009091D8019923D1F060911201961788F769 +:1040B0002091130185E0289F90011124929FA00177 +:1040C000939F500D112470E0CA010E940B266038A6 +:1040D000710540F46115710539F002C065E070E0CA +:1040E000862F08958FE7089581E008958091D70184 +:1040F00080FF08C06091110170E075956795759516 +:10410000679521C081FF06C06091110170E075952F +:10411000679519C082FF04C06091110170E010C062 +:104120009091D8019923C1F0609110019617A0F7E2 +:1041300080911101899FC001112470E00E940B261B +:104140006038710528F46115710521F0862F0895F6 +:104150008FE7089581E0089561E070E0F4CF803F3B +:1041600021F40E942D20819504C0813F29F40E94F2 +:104170002D208093DB010895823F21F40E942D20A1 +:10418000819504C0833F29F40E942D208093DA0199 +:104190000895893F19F40E94762005C08A3F31F4C2 +:1041A0000E94762081958093DC0108958B3F21F455 +:1041B0000E947620819504C08C3F29F40E947620CD +:1041C0008093DD010895843F21F48091D9018160BD +:1041D00017C0853F21F48091D901826011C0863FCC +:1041E00021F48091D90184600BC0873F21F4809134 +:1041F000D901886005C0883F31F48091D901806180 +:104200008093D90108958D3F21F48091D701816079 +:104210000BC08E3F21F48091D701826005C08F3F93 +:1042200029F48091D70184608093D7010895803F5D +:1042300039F48091DB0187FF6CC01092DB0169C00B +:10424000813F29F48091DB011816BCF362C0909184 +:10425000DA01823F29F497FF5CC01092DA0159C05D +:10426000833F19F41916CCF354C0893F41F480916F +:10427000DC0118160CF04DC01092DC014AC08A3FD8 +:1042800029F48091DC0187FF44C0F6CF8B3F39F4DD +:104290008091DD0187FF3DC01092DD013AC08C3F67 +:1042A00029F48091DD011816BCF333C0843F21F45A +:1042B0008091D9018E7F17C0853F21F48091D9016B +:1042C0008D7F11C0863F21F48091D9018B7F0BC077 +:1042D000873F21F48091D901877F05C0883F31F461 +:1042E0008091D9018F7E8093D90113C08D3F21F435 +:1042F0008091D7018E7F0BC08E3F21F48091D70132 +:104300008D7F05C08F3F29F48091D7018B7F8093EB +:10431000D7018091DA0181110EC08091DB018111FA +:104320000AC08091DC01811106C08091DD018111FC +:1043300002C01092D801089589ED91E00E94AD115C +:104340000E94031E9093D6018093D50108951F9378 +:10435000CF93DF938091D5019091D6010E940F1EDB +:10436000AC019091D801992321F02091140130E003 +:1043700006C0209115018AE0289F90011124421760 +:10438000530708F486C08091DA01C091DB01D09117 +:10439000DC011091DD01811107C0C11176C0D1117E +:1043A00074C0111172C075C09F3F19F09F5F909348 +:1043B000D801181624F40E942D208093DA018091F0 +:1043C000DA0187FF05C00E942D2081958093DA01D4 +:1043D0001C1624F40E942D208093DB018091DB01C8 +:1043E00087FF05C00E942D2081958093DB0160919D +:1043F000DA01662339F1C091DB01CC2319F177276B +:1044000067FD7095872F972F0E941C2523E333E3C8 +:1044100043E35FE30E9480250E94E9246093DA0170 +:104420006C2F772767FD7095872F972F0E941C258B +:1044300023E333E343E35FE30E9480250E94E92402 +:104440006093DB011D1624F40E9476208093DC012A +:104450008091DC0187FF05C00E94762081958093C2 +:10446000DC01111624F40E9476208093DD018091F6 +:10447000DD0187FF05C00E94762081958093DD01D4 +:10448000DF91CF911F910C949C219F3F09F08ECF1B +:1044900096CFDF91CF911F910895E9EDF1E085E08E +:1044A000DF011D928A95E9F71092D8011092D70189 +:1044B0000895833081F128F4813059F08230D1F0B1 +:1044C0000895853009F449C0B8F1863009F456C022 +:1044D000089580911501262F30E0280F311D2F3FC0 +:1044E000310524F4680F6093150108958FEF8093D0 +:1044F0001501089580911401262F30E0280F311DF9 +:104500002F3F310524F4680F6093140108958FEF55 +:1045100080931401089580911301262F30E0280F15 +:10452000311D2F3F310524F4680F60931301089566 +:104530008FEF80931301089580911201262F30E0B0 +:10454000280F311D2F3F310524F4680F60931201AD +:1045500008958FEF80931201089580911101262F05 +:1045600030E0280F311D2F3F310524F4680F609390 +:10457000110108958FEF809311010895809110012A +:10458000262F30E0280F311D2F3F310524F4680F0E +:104590006093100108958FEF809310010895833088 +:1045A00011F128F4813049F0823091F0089585307E +:1045B00081F120F18630C1F10895809115016817CD +:1045C00020F4861B8093150108951092150108951B +:1045D00080911401681720F4861B809314010895BC +:1045E00010921401089580911301681720F4861B1E +:1045F0008093130108951092130108958091120180 +:10460000681720F4861B80931201089510921201FE +:10461000089580911101681720F4861B8093110181 +:10462000089510921101089580911001681720F4E7 +:10463000861B8093100108951092100108950F9326 +:104640001F938D3109F46BC008F03FC08E3009F420 +:104650007FC0C0F4873009F469C068F4863009F07F +:10466000B1C08091CF01817F8E7F8093CF0181E0A7 +:104670008093DF01A8C0883009F4A2C08B3009F410 +:104680009FC0A0C0863109F49BC078F4803109F442 +:1046900072C0813109F096C00E94261790910D01D9 +:1046A00081E0892780930D018BC0893109F488C08E +:1046B0008B3109F087C08091CF0181FB222720F93F +:1046C00091E0922790FB81F94CC0853309F470C0CA +:1046D00048F4873209F46CC008F459C0893209F4EF +:1046E00067C070C0833438F48A3308F04EC0883312 +:1046F00009F466C067C0833409F45AC0883409F0ED +:1047000061C00E9426170FEF13ED20E30150104007 +:104710002040E1F700C000000E945E1E51C00E94D0 +:10472000A3240E9496110E948F0A4AC09091CF0143 +:10473000892F8095817080FB90F929F096609860B0 +:104740009093CF0140C0997F977F9093CF0138C05D +:104750008091CF0182FB222720F991E0922790FBE4 +:1047600082F98093CF01992359F18091CF01816023 +:104770008093CF0125C08091CF0183FB222720F9B0 +:1047800091E0922790FB83F9ECCF895301C08D51C2 +:1047900041E050E060E070E08A019B0104C0000F3E +:1047A000111F221F331F8A95D2F7C901B80104C017 +:1047B00061E070E080E090E00E94E21A0E9426171B +:1047C00081E001C080E01F910F91089580E008957D +:1047D00080E00895CF93C82F8091DF01813079F078 +:1047E00018F08230E9F187C0E0910E01F0910F01DD +:1047F0008081813169F0823209F07FC009C0E09187 +:104800000E01F0910F018081813111F0823261F44B +:104810008C2F0E94E623811104C08C2F0E941F233D +:104820001DC081E090E01AC08C2F0E94E823811106 +:1048300014C0C43179F048F4CB3079F0C03109F0BC +:1048400060C082E08093DF0108C0C93219F0C8332C +:1048500021F057C01092DF0154C081E0817053C035 +:10486000C93289F118F5C43171F1A8F4C73009F0E3 +:1048700046C08AE08093150194E19093140193E07F +:10488000909313018093120188E08093110188E2D4 +:104890008093100134C0CE51C63088F5EC2FF0E083 +:1048A000E65DFE4F80818093DE0129C0CE34E9F0C1 +:1048B00020F4CB3421F56AE013C0C13579F0C2355C +:1048C000F1F461E00DC08091DE01882319F01092AF +:1048D000DE0115C081E08093DF0115C061E006C0F4 +:1048E0008091DE010E9459220AC06AE08091DE01B7 +:1048F0000E94CF2204C01092DF0180E004C081E05A +:1049000002C080E0ABCFCF910895E1E8F0E0808174 +:10491000886080838081816080838FB7F89493E082 +:104920009093890090ED909388008FBF0895EFE6F3 +:10493000F0E08081826080830895EFE6F0E080817E +:104940008D7F80830895EFE6F0E0908182E08927F3 +:10495000808308951F920F920FB60F9211242F9308 +:104960003F934F935F936F937F938F939F93AF93F7 +:10497000BF93EF93FF938091E0019091E101019645 +:104980009093E1018093E001811103C082E00E94D5 +:104990008F0AE091E101E695E695F0E0E854F84FE2 +:1049A000E4918091E0018E1303C080E00E948F0AA1 +:1049B000FF91EF91BF91AF919F918F917F916F91F7 +:1049C0005F914F913F912F910F900FBE0F901F90CD +:1049D000189504D06894B1118DC0089570D088F0F6 +:1049E0009F5790F0B92F9927B751A0F0D1F0660FDB +:1049F000771F881F991F1AF0BA95C9F712C0B130F6 +:104A000081F077D0B1E0089574C0672F782F8827A0 +:104A1000B85F39F0B93FCCF3869577956795B39534 +:104A2000D9F73EF490958095709561957F4F8F4FA3 +:104A30009F4F0895E89409C097FB3EF490958095A8 +:104A4000709561957F4F8F4F9F4F9923A9F0F92F54 +:104A500096E9BB279395F695879577956795B795D2 +:104A6000F111F8CFFAF4BB0F11F460FF1BC06F5FB8 +:104A70007F4F8F4F9F4F16C0882311F096E911C0CA +:104A8000772321F09EE8872F762F05C0662371F0EB +:104A900096E8862F70E060E02AF09A95660F771FFF +:104AA000881FDAF7880F9695879597F9089557FD2F +:104AB0009058440F551F59F05F3F71F04795880F8C +:104AC00097FB991F61F09F3F79F087950895121623 +:104AD00013061406551FF2CF4695F1DF08C01616CF +:104AE00017061806991FF1CF869571056105089480 +:104AF0000895E894BB2766277727CB0197F9089597 +:104B00000BD078C069D028F06ED018F0952309F04A +:104B10005AC05FC01124EECFCADFA0F3959FD1F336 +:104B2000950F50E0551F629FF001729FBB27F00D5B +:104B3000B11D639FAA27F00DB11DAA1F649F6627B0 +:104B4000B00DA11D661F829F2227B00DA11D621FFF +:104B5000739FB00DA11D621F839FA00D611D221FB9 +:104B6000749F3327A00D611D231F849F600D211D9D +:104B7000822F762F6A2F11249F5750408AF0E1F040 +:104B800088234AF0EE0FFF1FBB1F661F771F881F89 +:104B900091505040A9F79E3F510570F014C0AACF24 +:104BA0005F3FECF3983EDCF3869577956795B79574 +:104BB000F795E7959F5FC1F7FE2B880F911D96959E +:104BC000879597F9089597F99F6780E870E060E00E +:104BD00008959FEF80EC089500240A941616170696 +:104BE00018060906089500240A94121613061406DE +:104BF00005060895092E0394000C11F4882352F041 +:104C0000BB0F40F4BF2B11F460FF04C06F5F7F4FF8 +:104C10008F4F9F4F089597FB072E16F4009407D0EF +:104C200077FD09D00E94252607FC05D03EF490951B +:104C300081959F4F0895709561957F4F0895EE0F70 +:104C4000FF1F0590F491E02D0994AA1BBB1B51E1B5 +:104C500007C0AA1FBB1FA617B70710F0A61BB70BEC +:104C6000881F991F5A95A9F780959095BC01CD0191 +:104C70000895F999FECF92BD81BDF89A992780B524 +:104C80000895A8E1B0E042E050E00C945C26262FA5 +:104C9000F999FECF1FBA92BD81BD20BD0FB6F89421 +:104CA000FA9AF99A0FBE019608950E944726272F77 +:104CB0000C944826DC01CB01FC01F999FECF06C01B +:104CC000F2BDE1BDF89A319600B40D9241505040CA +:084CD000B8F70895F894FFCF36 +:104CD8002002910A1F0BFC0AC80A940A0101BC01B0 +:104CE80028080A03140A3F4D363979072C07F606B7 +:104CF800BD065006690682069B06010203040506E6 +:044D0800070809008F :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png index 9249f3d2d..d442a992c 100644 Binary files a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png and b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c index 70ac8f01f..72ed195eb 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -1,229 +1,153 @@ -// Netable differences vs. the default firmware for the ErgoDox EZ: -// 1. The Cmd key is now on the right side, making Cmd+Space easier. -// 2. The media keys work on OSX (But not on Windows). #include "ergodox_ez.h" #include "debug.h" #include "action_layer.h" +#include "keymap_extras/keymap_french.h" +#include "keymap_extras/keymap_neo2.h" +#include "keymap_extras/keymap_uk.h" +#include "keymap_extras/keymap_colemak.h" +#include "keymap_extras/keymap_french_osx.h" +#include "keymap_extras/keymap_nordic.h" +#include "keymap_extras/keymap_dvorak.h" #include "keymap_extras/keymap_german.h" +#include "keymap_extras/keymap_norwegian.c" +#include "keymap_extras/keymap_fr_ch.h" +#include "keymap_extras/keymap_german_osx.h" +#include "keymap_extras/keymap_spanish.h" +#include "keymap_extras/keymap_bepo.h" -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define ADNW 3 // media keys -#define NUMB 4 // number keys - +#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] = { -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* - -/* Keymap 0: ADNW-Koy layer - * ADNW-Koy is a special layout designed to be ergonomic. Was created using software to determine the most ergonomic way to type German and English texts. - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |Lctrl | |Rctrl | 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | K | . | O | , | Y | CMD | | CMD | V | G | C | L | ß | Z | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | H | A | E | I | U |------| |------| D | T | R | N | S | F/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M |J/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,KC_GRV,LSFT(KC_GRV),DE_EXLM,DE_QST,KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, LALT(LSFT(KC_7)),DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,LALT(KC_7),LALT(KC_N),KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -/* Keymap 3: qwertz layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |event.pressed) { register_code(KC_RSFT); } else { unregister_code(KC_RSFT); } - break; - } - return MACRO_NONE; + + + +break; +} +return MACRO_NONE; }; // Runs just one time when the keyboard initializes. @@ -234,31 +158,18 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); +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) { - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } +default: +// none +break; +} }; + diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex index 56448283d..f574150e3 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy.hex @@ -1,1122 +1,1171 @@ -:100000000C9466020C94AD020C94AD020C94AD02FB -:100010000C94AD020C94AD020C94AD020C94AD02A4 -:100020000C94AD020C94AD020C94CF0B0C94A10C6B -:100030000C94AD020C94AD020C94AD020C94AD0284 -:100040000C94AD020C9415210C94AD020C94AD02ED -:100050000C94AD020C94A71A0C94AD020C94AD0252 -:100060000C94AD020C94AD020C94AD020C94AD0254 -:100070000C94AD020C94AD020C94AD020C94AD0244 -:100080000C94AD020C94AD020C94AD020C94AD0234 -:100090000C94AD020C94AD020C94AD020C94AD0224 -:1000A0000C94AD020C94AD020C94AD020E0D300D0B -:1000B000230E300D230E750D980D230EED0D000E41 -:1000C000EA10EA10191119115C119611A313A31368 -:1000D000AF11A313A412A4127713A313A3138E13A7 -:1000E0000000F0A1F0A329002B000354E1003581AA -:1000F00000001E00140004001D7164004D001F006C -:100100001A0016001B00E1044C0020000800070044 -:10011000060050002A0021001500090019004F00B8 -:100120004A00220017000A000500000002541908C6 -:10013000E3000000E20000002E770608E700000060 -:10014000E60000002E7F23001C000B0011000000C1 -:100150000454240018000D00100052004B0025002C -:100160000C000E00360051002C00260012000F007B -:100170003700E108280027001300330038713000F1 -:100180004E002D002F003482E50031810000010077 -:100190000100010001000100000001000100010058 -:1001A00001000100010001000100500001000100F8 -:1001B0000100010052005100010001000100010096 -:1001C00001004F00010001000100010001000100D9 -:1001D000010000000100010001000000010000001A -:1001E00001000100010000000100000001003F00CB -:1001F00052005100230200000100400024002100B1 -:100200001E00270001004100250022001F003700CA -:1002100001004200260023002000270001004300C7 -:100220003002300024022E0001004400450001008D -:1002300001000100000001000100010001000100B7 -:100240000000010001000100FB00010001000100AD -:100250000100F200F900010001000100F000F100CE -:10026000FA00F400010001000100F300FC00F500B9 -:100270000100010001000100F60000000100010082 -:100280000100000001000000010001000100000069 -:100290000100000001000100010001000100000058 -:1002A0000100010001000100A800A90001000100F7 -:1002B00001000100AC00AA00B6000100010001002D -:1002C000AB0050000100010001000100520051008C -:1002D0000100AE000100010001004F000000160304 -:1002E0004500720067006F0044006F007800200036 -:1002F00045005A00000016034500720067006F00B9 -:1003000044006F007800200045005A0000000403FC -:10031000090409026D00040100A0FA0904000001AB -:1003200003010100092111010001223F000705819D -:100330000308000A09040100010301020009211158 -:10034000010001224D000705820308000A0904028A -:1003500000010300000009211101000122360007FD -:1003600005830308000A09040300010300000009D3 -:100370002111010001223900070584031000011238 -:1003800001100100000008EDFE071301000102004A -:100390000105010906A101050719E029E715002556 -:1003A0000195087501810205081901290595057552 -:1003B000019102950175039101050719002977152F -:1003C000002501957875018102C005010980A10110 -:1003D000850216010026B7001A01002AB700751021 -:1003E00095018100C0050C0901A1018503160100DA -:1003F000269C021A01002A9C02751095018100C0FA -:1004000005010902A1010901A10005091901290538 -:10041000150025019505750181029501750381017E -:100420000501093009311581257F9502750881067E -:1004300009381581257F950175088106050C0A3854 -:10044000021581257F950175088106C0C005010947 -:1004500006A101050719E029E71500250195087592 -:100460000181029501750881010508190129059589 -:100470000575019102950175039101050719002980 -:10048000FF150025FF950675088100C000000000DB -:1004900000000000000000010204060A0F17202CD3 -:1004A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9CF -:1004B000DAC7B39D87715D4A3A2C20170F0A0604EC -:1004C00002010000000000000000000011241FBE17 -:1004D000CFEFDAE0DEBFCDBF04B603FE27C08091C8 -:1004E000ED019091EE01A091EF01B091F001873004 -:1004F000904BA740B04BD1F41092ED011092EE0159 -:100500001092EF011092F00114BE84B7877F84BF70 -:100510000FB6F894A8958091600088618093600080 -:10052000109260000FBEE0E0FFE3099511E0A0E04B -:10053000B1E0ECECF5E402C005900D92A433B107F4 -:10054000D9F721E0A4E3B1E001C01D92AD3EB207AE -:10055000E1F70E9416090C94E4220C94000061114A -:100560000BC0FC018281882321F085EE0E94840F5C -:1005700003C085EE0E944C1080E090E0089508953D -:100580006091B1017091B2018091B3019091B40179 -:100590000E94D41956985E9825982D9826982E98E2 -:1005A00027982F98823061F018F4813031F0089547 -:1005B000833059F0843039F00895259A2D9A0895A2 -:1005C000269A2E9A0895259A2D9A279A2F9A089559 -:1005D0000C94C00256985E9825982D9826982E98CF -:1005E00027982F988FEF90E0909389008093880050 -:1005F00090938B0080938A0090938D0080938C0061 -:10060000259A2D9A2FEF80E792E02150804090406C -:10061000E1F700C00000269A2E9A2FEF80E792E0C3 -:10062000215080409040E1F700C00000279A2F9AA7 -:100630002FEF80E792E0215080409040E1F700C02A -:10064000000025982D982FEF80E792E02150804000 -:100650009040E1F700C0000026982E982FEF80E729 -:1006600092E0215080409040E1F700C000002798C0 -:100670002F9856985E9825982D9826982E9827980A -:100680002F98089589EA8093800089E08093810003 -:1006900024982C983F988AB18F748AB96E98479A9B -:1006A0008BB1806B8BB9769A0E94EA020C94BF02E0 -:1006B00080E2809300018091340181110EC00E947C -:1006C000A70381E0809334012FEF83ED90E3215065 -:1006D00080409040E1F700C0000080E40E94AD033C -:1006E0008093000181112EC00E94D70380930001E6 -:1006F000811128C00E94D70380930001811122C07C -:100700008FE30E94D7038093000181111BC00E94D8 -:10071000CF0380E40E94AD0380930001811112C0D9 -:100720008CE00E94D7038093000181110BC00E94CE -:10073000D70380930001811105C08FE30E94D70386 -:10074000809300010E94CF038091000108951092D0 -:10075000B9008AE08093B800089594EA9093BC00B1 -:100760009091BC0097FFFCCF9091B900987F983092 -:1007700021F0903111F081E008958093BB0084E86E -:100780008093BC008091BC0087FFFCCF8091B900B2 -:10079000887F883111F0803471F780E0089584E912 -:1007A0008093BC008091BC0084FDFCCF08958093B1 -:1007B000BB0084E88093BC008091BC0087FFFCCF25 -:1007C0009091B900987F81E0983209F480E0089513 -:1007D00084E88093BC008091BC0087FFFCCF8091AF -:1007E000BB00089580910001811115C080E40E9432 -:1007F000AD038093000181110CC082E10E94D703F8 -:1008000080930001811105C08FEF0E94D703809370 -:1008100000010E94CF0384B1807F84B985B1807FBD -:1008200085B98AB1837F8AB98BB1837F8BB93E98B2 -:10083000469808950E945803809300010E94F20395 -:1008400080B38C7080BB81B3836F81BBE4E4F1E043 -:10085000A6E3B1E011921D9281E0E235F807D1F7ED -:100860000C9442039F92AF92BF92CF92DF92EF928D -:10087000FF920F931F93CF93DF9380910001882302 -:1008800079F0809135018F5F80933501811108C027 -:100890000E94580380930001811102C00E94EA0265 -:1008A00086E3E82E81E0F82E8701C0E0D0E0BB248B -:1008B000B39492E0A92ECC24C394D12CC730D10597 -:1008C00000F580910001811164C080E40E94AD03B5 -:1008D00080930001811112C082E10E94D7038093AE -:1008E000000181110BC0C6010C2E01C0880F0A94B3 -:1008F000EAF780950E94D703809300010E94CF03FE -:1009000048C0CA30A1F028F4C83059F0C93061F0AD -:1009100005C0CC3089F070F0CD3089F0209A28984D -:1009200010C0219A29980DC0229A2A980AC0239AA9 -:100930002B9807C0529A01C0539A5B9802C03E9A06 -:100940004698E0EAEA95F1F78FB181708B257999A5 -:1009500002C032E001C030E0832B7C9902C034E059 -:1009600001C030E0832B7D9902C028E001C020E067 -:10097000822B7E9902C090E101C090E0892B9FB14B -:100980009095991F9927991F9295990F907E892B81 -:100990000FC08091000181114AC080E40E94AD0324 -:1009A00080930001882381F1912C0E94CF03892D2F -:1009B000D8019C91981719F08C93A09201010E9484 -:1009C000F20321960F5F1F4FCE30D10509F076CF8D -:1009D00080910101882369F181508093010188236E -:1009E00039F0EFE9FFE03197F1F700C0000021C0D6 -:1009F000E4E4F1E0D7018D917D018193B4E4EB163D -:100A0000B1E0FB06B9F715C083E10E94D7038093DC -:100A100000018111C9CF81E40E94AD0380930001E0 -:100A20008111C2CF0E94E803982E9094BECF80E03F -:100A3000BFCF0E94E80281E0DF91CF911F910F911B -:100A4000FF90EF90DF90CF90BF90AF909F90089570 -:100A5000E82FF0E0EC5BFE4F8081089508958B3B1A -:100A6000910580F4883A910548F5853A9105D8F4C6 -:100A70008430910508F0B2C0019709F06EC081E0A2 -:100A800090E00895803E910508F467C0883E910586 -:100A900008F4A4C09C01205F31092031310508F021 -:100AA0005CC090650895853A910509F459C0863A6D -:100AB000910509F058C082E890E40895883A9105BC -:100AC00009F454C0893A910509F453C08A3A910552 -:100AD00009F452C08B3A910509F451C08C3A910542 -:100AE00009F450C08D3A910509F44FC0803B91053F -:100AF00009F44EC08E3A910509F44DC08F3A910524 -:100B000009F44CC0813B910509F44BC0823B91052F -:100B100009F44AC0833B910509F449C0843B91051F -:100B200009F448C0853B910509F447C0863B91050F -:100B300009F446C0873B910509F445C0883B9105FF -:100B400009F444C0893B910509F443C08A3B9105EF -:100B500009F442C080E094E4089580E090E00895B4 -:100B600081E890E4089583E890E4089582EE94E4A7 -:100B7000089589EE94E408958AEE94E4089585EB4F -:100B800094E4089586EB94E4089587EB94E4089543 -:100B90008CEC94E408958DEC94E4089583E895E456 -:100BA00008958AE895E4089582E995E4089584E932 -:100BB00095E4089581E296E4089583E296E4089529 -:100BC00084E296E4089585E296E4089586E296E448 -:100BD000089587E296E408958AE296E408950895D8 -:100BE00024E5829FC0011124FC0126E0729FE00DE4 -:100BF000F11D1124E60FF11DEE0FFF1FEA51FF4F0B -:100C0000859194910895880F991FFC01E05AF04056 -:100C1000859194910895880F991FFC01E052FF4F30 -:100C200085919491089524E5829FC0011124FC01CF -:100C300046E0749FE00DF11D1124E60FF11DEE0F4B -:100C4000FF1FEA51FF4F859194919C013A95211520 -:100C50004FE1340708F425C13F512115304120F4FC -:100C60009F700E940B0608959C013053211530415E -:100C700018F49927906C0895811520E5920769F47E -:100C80000E94C5134FEF84E39CE0415080409040A8 -:100C9000E1F700C000000C94CC1A813020E59207E7 -:100CA00031F48091CC0181608093CC0108959C0146 -:100CB00030552115304108F05CC0292F33272F70A3 -:100CC000332721303105E9F4AC0164E0440F551FAE -:100CD0006A95E1F744275370BC016370772702C01F -:100CE000220F331F6A95E2F73C68242B352B73E003 -:100CF000880F991F7A95E1F780769927822B932B9D -:100D000008952230310529F4982F8827816F906A41 -:100D1000089523303105A1F4AC0133E0440F551F91 -:100D20003A95E1F7407E57708370992721E030E0D3 -:100D300002C0220F331F8A95E2F7C9019C6816C0D2 -:100D40002430310531F5AC0123E0440F551F2A95BD -:100D5000E1F7407E57708370992721E030E002C0B0 -:100D6000220F331F8A95E2F7C9019A68842B952BCD -:100D700008959C0130572115304118F49F709062FE -:100D800008959C0130582115304118F49F70906AE5 -:100D90000895803E9105E0F4803C910558F581333B -:100DA000910509F46FC048F48932910509F463C0D4 -:100DB0008A32910509F46DC072C089339105E9F05A -:100DC00082389105D1F08533910509F44DC067C093 -:100DD000833E910581F138F4803E9105B9F0823E61 -:100DE0009105D9F05CC0863E910561F1873E910581 -:100DF000A1F155C00E94030608952091DE0120FD57 -:100E000002C021FF4CC080EE90E049C08091DE011D -:100E100080FFF9CF89E390E042C08091DE0182FF3C -:100E20000EC08091DE0184FF03C080E090E037C0F7 -:100E300083EE90E034C08091DE0182FFF2CF82EE3B -:100E400090E02DC08091DE0183FF0BC08091DE0118 -:100E500084FDEBCF87EE90E022C08091DE0183FF1E -:100E6000F5CF86EE90E01BC08091DE0185FF07C0C4 -:100E700089E290E014C08091DE0185FFF9CF85E31F -:100E800090E00DC08091DE0186FF07C08AE290E00D -:100E900006C08091DE0186FFF9CF81E390E00E94D9 -:100EA0002F0508950895809162010895CF93DF93EF -:100EB00000D01F92CDB7DEB79C018091E401843051 -:100EC00019F593E099833B832A839093E9008FEF90 -:100ED0009091E800815095FD06C095ED9A95F1F747 -:100EE00000008111F5CF8091E80085FF0DC040E042 -:100EF00050E063E070E0CE0101960E94C30980914A -:100F0000E8008E778093E8000F900F900F90DF91AC -:100F1000CF910895CF93DF9300D01F92CDB7DEB766 -:100F20002091E401243021F522E029839B838A83E8 -:100F300083E08093E9008FEF9091E800815095FD68 -:100F400006C095ED9A95F1F700008111F5CF8091DB -:100F5000E80085FF0DC040E050E063E070E0CE01A6 -:100F600001960E94C3098091E8008E778093E80083 -:100F70000F900F900F90DF91CF9108959C01809179 -:100F8000E4018430F9F482E08093E9009FEF8091DE -:100F9000E800915085FD06C085ED8A95F1F70000C7 -:100FA0009111F5CF8091E80085FF0CC040E050E042 -:100FB00065E070E0C9010E94C3098091E8008E7766 -:100FC0008093E8000895CF93DF93EC018091E401D2 -:100FD000843009F046C090910C019923D9F090918A -:100FE0000D019923B9F08093E9008FEF9091E8000B -:100FF000815095FD06C095E19A95F1F700008111A9 -:10100000F5CF8091E80085FF2CC040E050E060E122 -:1010100070E017C081E08093E9008FEF9091E800C5 -:10102000815095FD06C095ED9A95F1F7000081116C -:10103000F5CF8091E80085FF14C040E050E068E003 -:1010400070E0CE010E94C3098091E8008E77809302 -:10105000E80080E1FE01A2E5B1E001900D928A95E1 -:10106000E1F7DF91CF9108958091E301811109C0EB -:101070000E94540B0E94B10B8091E2008460809327 -:10108000E20008951092E301089508950C9402215E -:101090000E94621A0E9408210E945C0E0C94520762 -:1010A00042E061EC81E00E94CD0A42E061EC82E026 -:1010B0000E94CD0A42E061EC83E00E94CD0A42E149 -:1010C00061EC84E00C94CD0A8091E601833009F450 -:1010D00055C030F4813071F0823009F48EC008952B -:1010E0008A3009F47AC08B3009F460C0893009F085 -:1010F0009CC020C08091E501813A09F096C08091A2 -:10110000E800877F8093E8008091E9019091EA01EF -:10111000892B21F460E182E591E003C060E080E08A -:1011200090E070E00E940E0A8091E8008B77809337 -:10113000E80008958091E501813209F076C0809140 -:10114000E9019091EA01009719F0039709F06DC049 -:101150008091E800877F8093E8008091E80082FD1D -:1011600005C08091E4018111F8CF5FC08091F1004A -:10117000809362018091E8008B7753C08091E501F4 -:10118000813A09F052C08091E9019091EA01892BDE -:1011900009F04BC08091E800877F8093E800809140 -:1011A000E80080FFFCCF80910C0136C08091E50102 -:1011B0008132D9F58091E9019091EA01892BA9F555 -:1011C0008091E800877F8093E8000E94020B809165 -:1011D000E70180930C010C94C5138091E5018132E5 -:1011E00021F58091E800877F8093E8000E94020B40 -:1011F0008091E8018093630108958091E501813A2F -:10120000A1F48091E800877F8093E8008091E80056 -:1012100080FFFCCF809163018093F1008091E80012 -:101220008E778093E8000C94020B089584B7877F33 -:1012300084BF0FB6F894A895809160008861809370 -:101240006000109260000FBE90E080E80FB6F89446 -:1012500080936100909361000FBE0E94AB0E0E94CC -:10126000540B0E94B10B8091E20084608093E200F5 -:1012700078940E943C0E0E94AD0E82E091E00E94A4 -:10128000570E0E94F0208091E401853069F40E949D -:10129000241A8091E2018823B1F30E944E1A882318 -:1012A00091F30E94AD09EFCF0E94B30EECCF292F2E -:1012B000332723303105C9F060F42130310581F046 -:1012C0002230310509F041C08DE690E022E133E0A3 -:1012D00040C021323105E1F02232310531F135C013 -:1012E00082E190E02FE733E034C099278130910507 -:1012F00049F028F0029749F5EEEDF2E005C0EEE086 -:10130000F3E002C0E6EFF2E0849190E09F0121C09B -:101310006430D8F4E62FF0E0EE0FFF1FEE5DFE4FD5 -:101320002081318189E090E014C0643070F470E075 -:10133000FB01EE0FFF1FE65EFE4F20813181FB01B6 -:10134000EA5EFE4F808190E004C080E090E020E003 -:1013500030E0FA0131832083089580E189BD82E184 -:1013600089BD09B400FEFDCF8091D8008F7D8093A8 -:10137000D8008091E00082608093E0008091E000DE -:1013800081FDFCCF0895CF92DF92EF92FF920F93F1 -:101390001F93CF93DF93EC018B016A010E94210B15 -:1013A000811133C0C114D10439F0F60180819181DB -:1013B000081B190BC80FD91FE12CF12C01151105C1 -:1013C00019F18091E80085FD16C08091E8008E77C4 -:1013D0008093E800C114D10449F0F6018081918125 -:1013E000E80EF91EF182E08285E00FC00E94210B19 -:1013F000882321F30AC089918093F10001501109DB -:10140000FFEFEF1AFF0ADACF80E0DF91CF911F9153 -:101410000F91FF90EF90DF90CF9008952091EB0116 -:101420003091EC012617370748F06115710539F442 -:101430002091E8002E772093E80001C0B901FC015B -:1014400020E06115710579F18091E4018823F1F1C3 -:101450008530F1F18091E80083FD3CC08091E80087 -:1014600082FD2EC08091E80080FFEBCF2091F30039 -:101470008091F20090E0922B6115710551F0883057 -:10148000910538F421912093F10061507109019682 -:10149000F3CF21E0089709F020E08091E8008E77F3 -:1014A0008093E800CECF2111CFCF0AC08091E40114 -:1014B000882361F0853061F08091E80083FD0AC0E7 -:1014C0008091E80082FFF2CF80E0089582E00895E5 -:1014D00083E0089581E008952091EB013091EC01C3 -:1014E0002617370748F06115710539F42091E80097 -:1014F0002E772093E80001C0B901FC0120E06115BE -:10150000710591F18091E401882309F440C0853090 -:1015100009F43FC08091E80083FD3DC08091E80060 -:1015200082FD2FC08091E80080FFE9CF2091F30079 -:101530008091F20090E0922B6115710559F088308E -:10154000910540F424912093F10031966150710986 -:101550000196F2CF21E0089709F020E08091E800A1 -:101560008E778093E800CBCF2111CCCF0AC0809139 -:10157000E401882361F0853061F08091E80083FD0B -:101580000AC08091E80082FFF2CF80E0089582E0F7 -:10159000089583E0089581E00895982F973068F5C5 -:1015A0009093E900981739F07091EC002091ED00CC -:1015B0005091F00003C0242F762F50E021FD02C08F -:1015C0009F5FECCF3091EB003E7F3093EB0030918A -:1015D000ED003D7F3093ED003091EB0031603093B2 -:1015E000EB007093EC002093ED005093F0002091FD -:1015F000EE0027FDE5CF80E008958F708093E9002D -:1016000081E008958091E50187FF11C08091E80095 -:1016100082FD05C08091E4018111F8CF11C0809155 -:10162000E8008B770BC08091E401882349F080911A -:10163000E80080FFF8CF8091E8008E778093E80083 -:1016400008952091E4003091E50095E64091EC008A -:10165000842F817040FF23C08091E80080FD1DC071 -:101660008091E401882399F0853099F08091EB0016 -:1016700085FD11C04091E4005091E5002417350725 -:1016800029F3915011F09A01E1CF84E0089582E0AE -:10169000089583E0089581E0089580E008954091E1 -:1016A000E80042FFDDCF08950E94C20B0E94CA0BE2 -:1016B000E0EEF0E0808181608083E8EDF0E0808101 -:1016C0008F77808319BCA7EDB0E08C918E7F8C93CF -:1016D00080818F7E80831092E30108950F931F9382 -:1016E000CF93DF930E94C20B0E94CA0BC8EDD0E0DB -:1016F00088818F77888388818068888388818F7DBF -:10170000888319BC1092E4011092E0011092E2016A -:101710001092E10100EE10E0F80180818B7F808360 -:1017200088818160888342E060E080E00E94CD0A89 -:10173000E1EEF0E080818E7F8083E2EEF0E0808158 -:1017400081608083808188608083F80180818E7FC2 -:101750008083888180618883DF91CF911F910F9171 -:101760000895E8EDF0E080818F7E8083E7EDF0E082 -:1017700080818160808384E082BF81E08093E30187 -:101780000C946E0BE8EDF0E080818E7F80831092E8 -:10179000E20008951092DA001092E10008951F927D -:1017A0000F920FB60F9211242F933F934F935F9395 -:1017B0006F937F938F939F93AF93BF93EF93FF9319 -:1017C0008091E10082FF0BC08091E20082FF07C0A0 -:1017D0008091E1008B7F8093E1000E943B0E80911D -:1017E000DA0080FF1FC08091D80080FF1BC080916D -:1017F000DA008E7F8093DA008091D90080FF0DC0DF -:1018000080E189BD82E189BD09B400FEFDCF81E0A0 -:101810008093E4010E94340805C019BC1092E401D1 -:101820000E9442088091E10080FF19C08091E2008F -:1018300080FF15C08091E2008E7F8093E20080914E -:10184000E20080618093E2008091D8008062809302 -:10185000D80019BC85E08093E4010E94460880917D -:10186000E10084FF30C08091E20084FF2CC080E161 -:1018700089BD82E189BD09B400FEFDCF8091D80009 -:101880008F7D8093D8008091E1008F7E8093E1006E -:101890008091E2008F7E8093E2008091E20081607F -:1018A0008093E2008091E001882311F084E007C07A -:1018B0008091E30087FD02C081E001C083E0809356 -:1018C000E4010E9448088091E10083FF29C08091D3 -:1018D000E20083FF25C08091E100877F8093E100D3 -:1018E00082E08093E4011092E0018091E1008E7F1C -:1018F0008093E1008091E2008E7F8093E2008091EE -:10190000E20080618093E20042E060E080E00E94BB -:10191000CD0A8091F00088608093F0000E94450815 -:10192000FF91EF91BF91AF919F918F917F916F91B7 -:101930005F914F913F912F910F900FBE0F901F908D -:1019400018951F920F920FB60F9211242F933F9369 -:101950004F935F936F937F938F939F93AF93BF93B7 -:10196000CF93DF93EF93FF93C091E900CF70809105 -:10197000EC00D82FD17080FDD0E81092E900809162 -:10198000F000877F8093F00078940E94E50C10921D -:10199000E9008091F00088608093F000CD2BCF703B -:1019A000C093E900FF91EF91DF91CF91BF91AF918B -:1019B0009F918F917F916F915F914F913F912F9167 -:1019C0000F900FBE0F901F9018951F93CF93DF932A -:1019D000CDB7DEB7AA970FB6F894DEBF0FBECDBF66 -:1019E000E5EEF1E08091F100819321E0ED3EF20718 -:1019F000C9F70E9464088091E80083FF24C18091A8 -:101A0000E5019091E601492F50E04A30510508F078 -:101A10001AC1FA01EA5AFF4F0C949922803881F0DA -:101A2000823809F010C18091E9018F708093E9003C -:101A30008091EB0085FB882780F91092E90006C0B1 -:101A40008091E1019091E201911182609091E80012 -:101A5000977F9093E8008093F1001092F100C8C046 -:101A6000282F2D7F09F0EFC0882319F0823061F014 -:101A7000EAC08091E701813009F0E5C0933009F0B8 -:101A800080E08093E2012BC08091E701811127C0A3 -:101A90008091E9018F7009F4D6C08093E90020910C -:101AA000EB0020FF1CC0933021F48091EB0080629A -:101AB00014C09091EB0090619093EB0021E030E036 -:101AC000A90102C0440F551F8A95E2F74093EA002E -:101AD0001092EA008091EB0088608093EB001092F6 -:101AE000E9008091E800877F86C08111ACC0109129 -:101AF000E7011F778091E3008078812B8093E300DA -:101B00008091E800877F8093E8000E94020B80911B -:101B1000E80080FFFCCF8091E30080688093E300C1 -:101B2000111102C082E001C083E08093E4018BC008 -:101B30008058823008F087C08091E7019091E801D9 -:101B40008C3D53E0950779F583E08A838AE28983A7 -:101B50004FB7F894DE01139620E03EE051E2E32F08 -:101B6000F0E050935700E49120FF03C0E295EF703E -:101B70003F5FEF708E2F90E0EA3010F0C79601C003 -:101B8000C0968D939D932F5F243149F74FBF80916D -:101B9000E800877F8093E8006AE270E0CE0101965A -:101BA0000E940E0A14C0AE014F5F5F4F6091E901C1 -:101BB0000E945709BC01892B09F445C09091E800A7 -:101BC000977F9093E80089819A810E946C0A8091A6 -:101BD000E8008B778093E80036C08038A1F58091CB -:101BE000E800877F8093E8008091E0018093F10016 -:101BF0008091E8008E778093E8000E94020B23C05A -:101C0000811121C08091E7019091E8019927029705 -:101C1000D4F48091E800877F8093E8008091E70109 -:101C20008093E0010E94020B8091E001811106C0C7 -:101C30008091E30087FD02C081E001C084E08093D1 -:101C4000E4010E9450088091E80083FF0AC080915F -:101C5000E800877F8093E8008091EB0080628093AA -:101C6000EB00AA960FB6F894DEBF0FBECDBFDF9192 -:101C7000CF911F9108950895CF938091E401882317 -:101C8000A1F0C091E900CF709091EC00892F817094 -:101C900090FD80E8C82B1092E9008091E80083FD58 -:101CA0000E94E50CCF70C093E900CF910895909306 -:101CB0006901809368010895E0916801F0916901DC -:101CC000309721F00190F081E02D099480E0089593 -:101CD000E0916801F0916901309721F00280F38171 -:101CE000E02D09940895E0916801F0916901309721 -:101CF00021F00480F581E02D09940895209166017A -:101D0000309167012817390771F09093670180932C -:101D10006601E0916801F0916901309721F0068039 -:101D2000F781E02D099408952091640130916501B7 -:101D30002817390771F09093650180936401E09151 -:101D40006801F0916901309721F00084F185E02D60 -:101D50000994089508950C94AA0E0E94681A0E948E -:101D60001A040C942E1BCF92DF92EF92FF920F93E6 -:101D70001F93CF93DF93CDB7DEB72B970FB6F894B1 -:101D8000DEBF0FBECDBF0E9432048BE6C82E81E0BD -:101D9000D82E00E010E0E02E802F0E942805F601EA -:101DA00041916F01F82EF426B1F40F5F1F4F0E30F2 -:101DB000110589F78FEF89838A831B820E94711A2C -:101DC0008160782F9D838C8349815A816B818D81BD -:101DD0000E94560F40C09091CC0191FF04C08B87A8 -:101DE0000E942E058B8520E030E04F2D50E0922F91 -:101DF000BA01022E02C0759567950A94E2F760FF5A -:101E000024C02E83EF8221E030E0690102C0CC0CB7 -:101E1000DD1C9A95E2F790E08C219D21892B09F435 -:101E200020E028870E94711A8160782F9A8789871D -:101E30004E815F8168858A850E94560FF801E559B9 -:101E4000FE4F8081C826C08206C02F5F3F4F2630DC -:101E5000310569F6AACF0E94151E0E945C0E909172 -:101E60006A018917A1F00E945C0E80936A012B968B -:101E70000FB6F894DEBF0FBECDBFDF91CF911F919B -:101E80000F91FF90EF90DF90CF900C9452072B961C -:101E90000FB6F894DEBF0FBECDBFDF91CF911F917B -:101EA0000F91FF90EF90DF90CF900895CF93DF9345 -:101EB000CDB7DEB72B970FB6F894DEBF0FBECDBF00 -:101EC0004F83588769877A878B87DE01119686E072 -:101ED000FD0111928A95E9F785E0FE0137960190A0 -:101EE0000D928A95E1F749815A816B817C818D81C0 -:101EF0009E810E9459162B960FB6F894DEBF0FBE36 -:101F0000CDBFDF91CF910895CF93C82F882309F4D7 -:101F1000C1C0823859F40E945C0E81FDBBC089E3C8 -:101F20000E94F6180E94AE1989E30CC0833879F438 -:101F30000E945C0E80FDAEC083E50E94F6180E94F0 -:101F4000AE1983E50E943519CF910C94AE198438EF -:101F500059F40E945C0E82FD9DC087E40E94F61831 -:101F60000E94AE1987E4EECF8CEF8C0F813A48F4D3 -:101F70008C2F0E94552081118DC08C2F0E94F61845 -:101F8000E3CF80E28C0F883048F4C77081E001C055 -:101F9000880FCA95EAF70E947719D6CF8BE58C0F88 -:101FA000833078F4C53A29F0C63A31F083E890E0FE -:101FB00005C081E890E002C082E890E0CF910C94E7 -:101FC0007E0E88E58C0F833108F064C0C83A39F181 -:101FD000C93A41F1CA3A49F1CB3A51F1CC3A59F1F7 -:101FE000CD3A61F1C03B69F1CE3A71F1CF3A79F166 -:101FF000C13B81F1C23B89F1C33B91F1C43B99F1F3 -:10200000C53BA1F1C63BA9F1C73BB1F1C83BB9F152 -:10201000C93BC1F1CA3BC9F180E090E038C082EE13 -:1020200090E035C089EE90E032C08AEE90E02FC09B -:1020300085EB90E02CC086EB90E029C087EB90E028 -:1020400026C08CEC90E023C08DEC90E020C083E8AB -:1020500091E01DC08AE891E01AC082E991E017C0C2 -:1020600084E991E014C081E292E011C083E292E041 -:102070000EC084E292E00BC085E292E008C086E2E6 -:1020800092E005C087E292E002C08AE292E0CF913E -:102090000C94940ECF910895882309F44BC0823894 -:1020A00059F40E945C0E81FF45C089E30E94F61836 -:1020B0000E94AE1989E30CC0833871F40E945C0E53 -:1020C00080FF38C083E50E94F6180E94AE1983E5B0 -:1020D0000E9435190C94AE19843859F40E945C0E94 -:1020E00082FF28C087E40E94F6180E94AE1987E498 -:1020F000EFCF9CEF980F913A58F390E2980F9830F9 -:1021000050F4877091E001C0990F8A95EAF7892F02 -:102110000E947D19DFCF9BE5980F933020F480E07B -:1021200090E00C947E0E885A833120F480E090E099 -:102130000C94940E0895882321F00E9477190C9432 -:10214000AE190895882321F00E947D190C94AE19D0 -:102150000895BF92CF92DF92EF92FF920F931F9359 -:10216000CF93DF9300D000D000D0CDB7DEB77C0195 -:1021700085E0F701DE01119601900D928A95E1F755 -:10218000F70183819481892B09F4DDC290818181DB -:102190008F3F19F49F3F09F4D6C2F70102812581D0 -:1021A00022952F7099838A8389819A812E830E9438 -:1021B000B518182FB92E0E94B4180E947B17EB2D6A -:1021C000E295EF704E2F50E0FA01E05AFF4F2E815A -:1021D0000C9499228B2D807F9B2D9F70F92E882344 -:1021E00019F0F29480EFF822002349F0FF2009F45F -:1021F00057C28F2D0E9487190E94AE1951C2812F9C -:102200000E944C10FF2009F49EC28F2D0E948D1950 -:1022100026960FB6F894DEBF0FBECDBFDF91CF91EB -:102220001F910F91FF90EF90DF90CF90BF900C9493 -:10223000AE193B2D307F8B2D8F70303211F082958F -:10224000807F112319F0113021F12CC00023B9F047 -:10225000222309F490C1213009F08DC126960FB6D2 -:10226000F894DEBF0FBECDBFDF91CF911F910F91CC -:10227000FF90EF90DF90CF90BF900C94971922239E -:1022800019F0213009F45FC28E830E949A198E8161 -:1022900086C1002321F0223008F055C26CC1211103 -:1022A00052C27DC1002321F0222309F464C1F8C188 -:1022B000222309F474C109C28B2D869586958370FB -:1022C00019F08130D1F03FC2002321F0812F9B2DE6 -:1022D000937002C080E090E026960FB6F894DEBFBF -:1022E0000FBECDBFDF91CF911F910F91FF90EF9067 -:1022F000DF90CF90BF900C947E0E002321F0812FB1 -:102300009B2D937002C080E090E026960FB6F89463 -:10231000DEBF0FBECDBFDF91CF911F910F91FF9018 -:10232000EF90DF90CF90BF900C94940E812F0023FC -:1023300019F00E941D1D02C00E94851D26960FB631 -:10234000F894DEBF0FBECDBFDF91CF911F910F91EB -:10235000FF90EF90DF90CF90BF900C940A1E8B2DD2 -:10236000837009F075C00111EEC1812F82958695A9 -:102370008770880F880F912F9F70C92ED12CE12C68 -:10238000F12C082E04C0CC0CDD1CEE1CFF1C0A94A2 -:10239000D2F714FF12C00FE010E020E030E004C0DC -:1023A000000F111F221F331F8A95D2F7C901B801F0 -:1023B000609570958095909503C060E070E0CB01CA -:1023C0004B2D4695469543704230C1F060F56C291F -:1023D0007D298E299F29413051F126960FB6F89418 -:1023E000DEBF0FBECDBFDF91CF911F910F91FF9048 -:1023F000EF90DF90CF90BF900C94A2176C297D29AD -:102400008E299F2926960FB6F894DEBF0FBECDBF4A -:10241000DF91CF911F910F91FF90EF90DF90CF90C0 -:10242000BF900C94BE170E94A217C701B601269652 -:102430000FB6F894DEBF0FBECDBFDF91CF911F91D5 -:102440000F91FF90EF90DF90CF90BF900C94861784 -:10245000002319F08B2D817001C08695882309F423 -:1024600072C1812F829586958770880F880F912F72 -:102470009F70C92ED12CE12CF12C082E04C0CC0C5D -:10248000DD1CEE1CFF1C0A94D2F714FF12C00FE0F3 -:1024900010E020E030E004C0000F111F221F331FA6 -:1024A0008A95D2F7C901B80160957095809590958D -:1024B00003C060E070E0CB014B2D4695469543701C -:1024C0004230C1F060F56C297D298E299F29413069 -:1024D00051F126960FB6F894DEBF0FBECDBFDF9147 -:1024E000CF911F910F91FF90EF90DF90CF90BF9011 -:1024F0000C947C186C297D298E299F2926960FB66D -:10250000F894DEBF0FBECDBFDF91CF911F910F9129 -:10251000FF90EF90DF90CF90BF900C9498180E949E -:102520007C18C701B60126960FB6F894DEBF0FBE21 -:10253000CDBFDF91CF911F910F91FF90EF90DF9072 -:10254000CF90BF900C946018103FD1F118F4103E5A -:1025500050F4A1C0123F09F463C008F44CC0133F0B -:1025600009F473C098C01F708B2D8F710023A1F0E8 -:102570000E94F917812F26960FB6F894DEBF0FBE82 -:10258000CDBFDF91CF911F910F91FF90EF90DF9022 -:10259000CF90BF900C949B100E941A18812F269602 -:1025A0000FB6F894DEBF0FBECDBFDF91CF911F9164 -:1025B0000F91FF90EF90DF90CF90BF900C94A210FE -:1025C0000023A9F02111BFC08B2D8F7126960FB665 -:1025D000F894DEBF0FBECDBFDF91CF911F910F9159 -:1025E000FF90EF90DF90CF90BF900C943F18223077 -:1025F00008F0A9C0E9CF0023A9F08B2D8F71269692 -:102600000FB6F894DEBF0FBECDBFDF91CF911F9103 -:102610000F91FF90EF90DF90CF90BF900C94F9173F -:10262000002359F38B2D8F7126960FB6F894DEBFD9 -:102630000FBECDBFDF91CF911F910F91FF90EF9013 -:10264000DF90CF90BF900C941A18002399F08B2D37 -:102650008F7126960FB6F894DEBF0FBECDBFDF9107 -:10266000CF911F910F91FF90EF90DF90CF90BF908F -:102670000C94E41726960FB6F894DEBF0FBECDBFBC -:10268000DF91CF911F910F91FF90EF90DF90CF904E -:10269000BF900C94DA170023A9F0222309F4ADCFE0 -:1026A000812F26960FB6F894DEBF0FBECDBFDF9107 -:1026B000CF911F910F91FF90EF90DF90CF90BF903F -:1026C0000C94840F222309F4ADCF812F26960FB6E8 -:1026D000F894DEBF0FBECDBFDF91CF911F910F9158 -:1026E000FF90EF90DF90CF90BF900C944C104B2D4B -:1026F0004F70612FC7010E94AF0226960FB6F89463 -:10270000DEBF0FBECDBFDF91CF911F910F91FF9024 -:10271000EF90DF90CF90BF900C94FE164B2D4F7032 -:10272000612FC70126960FB6F894DEBF0FBECDBF4E -:10273000DF91CF911F910F91FF90EF90DF90CF909D -:10274000BF900C94EF0526960FB6F894DEBF0FBE2F -:10275000CDBFDF91CF911F910F91FF90EF90DF9050 -:10276000CF90BF9008950E9494190E9469190E9409 -:10277000AE190E94BA1E0E940A1E80E090E00E94DC -:102780007E0E80E090E00C94940E0E9484190C94CC -:10279000B3130E94B518292F22952F702C3030F4D6 -:1027A0002A3048F42250223078F405C02C3041F011 -:1027B0002F3031F009C0803E48F0803F29F406C038 -:1027C00093FB882780F9089580E0089581E00895BB -:1027D000CF93DF9300D000D01F92CDB7DEB70F901C -:1027E0000F900F900F900F90DF91CF910895CF939E -:1027F000DF9300D000D000D0CDB7DEB726960FB65D -:10280000F894DEBF0FBECDBFDF91CF9108951F9327 -:10281000CF93DF93C091790116E080917A01C817B8 -:1028200099F0D0E01C9FF0011D9FF00D1124E55898 -:10283000FE4F4081518162817381848195810E9424 -:10284000F7132196C770E9CFDF91CF911F910895BB -:102850004091AB015091AC016091AD017091AE011E -:102860008091AF019091B0010C94F7138091B00169 -:1028700082958F7009F054C08091AD01882309F4CE -:102880004FC080917901A0917A014091AE015091A1 -:10289000AF016091AB017091AC01B6E08A1709F409 -:1028A0003FC090E041155105C1F17F3F11F46F3FEA -:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A -:1028C000218127132AC02081261327C022812111AC -:1028D00024C0238134812417350710F42150310995 -:1028E000241B350B283C3105C0F42091B0012F701A -:1028F00020612093B00126E0289FF001299FF00D70 -:102900001124E058FE4F80818F70806180838BEAB4 -:1029100091E00E94A9100C94071401968770BECF15 -:102920000895CF92DF92EF92FF920F931F93CF9370 -:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58 -:10294000CDBF8C0185E0F801DE011D9601900D924E -:102950008A95E1F7D8014C9111965C9111971296E6 -:102960006C918091AE019091AF01009709F475C10F -:102970003091AB017091AC017F3F19F43F3F09F4F6 -:102980006CC1F801C380D480E090AD01EE2009F461 -:10299000BEC02091B001C816D90628F0D601A81BE8 -:1029A000B90BCD0104C0809590958C0D9D1DFF2421 -:1029B000F394883C910578F0F12C207F09F0C4C095 -:1029C0007C2DD98AC88A89890E94E8138BEA91E014 -:1029D0000E94A910AFC0822F807F09F045C0571315 -:1029E00013C0431311C061110FC02F7020612093D9 -:1029F000B0010E9428148BEA91E00E94A9108091F6 -:102A0000B001F80185832EC0CD2819F15F3F11F484 -:102A10004F3FF9F0F62E61111CC080917901209191 -:102A20007A0136E0821709F45BC090E0389FF0012C -:102A3000399FF00D1124E558FE4F7181571306C0E0 -:102A40007081471303C07281711103C001968770B2 -:102A5000E9CFF62E662309F41CC18091B001816094 -:102A60008093B001F12C15C1571309C0431307C05F -:102A7000611105C08091B001F8018583C8C04D8700 -:102A80005E878D859E856A8B0E94C9136A8988231B -:102A9000D1F16623C1F12091B001822F82958F7010 -:102AA00090E0029774F08091AB019091AC0198870F -:102AB0008F831986DB86CA862C87CE0107960E94F3 -:102AC000A91086E0F801ABEAB1E001900D928A9579 -:102AD000E1F70E9436140E942814FF24F394D9C011 -:102AE0004D875E878D859E850E94B518292F22957A -:102AF0002F70223008F0C1C09F7009F0BBC0805E0B -:102B0000883008F4C6C0C8010E94A910E6CFC816D4 -:102B1000D90608F453C0F601E81BF90BCF01883C35 -:102B2000910508F450C0F12C7C2DD98AC88A898976 -:102B30000E94E813EBEAF1E086E0DF011D928A953E -:102B4000E9F70E942814A5C0571314C0431312C0FC -:102B5000611110C08091B001F8018583C8010E9405 -:102B6000A91086E0EBEAF1E0DF011D928A95E9F712 -:102B7000FE2C8FC04D875E878D859E856A8B0E9457 -:102B8000C9136A89882309F4BECF662309F4BBCF31 -:102B90002091B001822F82958F7090E002970CF403 -:102BA00090CF8091AB019091AC019A8389831B8275 -:102BB000DD82CC822E83CE01019681CF80959095C7 -:102BC0008C0D9D1DACCFF62E662309F49CCF5713B8 -:102BD00033C0431331C02091B00120FD24C0822FA7 -:102BE00082958F70482F50E041155105E1F0D801D2 -:102BF00015962C9315974F30510549F08F5F982FFC -:102C00009295907F822F8F70892B15968C93C80197 -:102C10000E94A91086E0F801ABEAB1E001900D92A4 -:102C20008A95E1F78ECF86E0F801ABEAB1E001903A -:102C30000D928A95E1F72DC04D875E878D859E8523 -:102C40000E94C91381113DCF8091B00181608093B2 -:102C5000B001C8010E94A9101CC0662309F453CF1B -:102C60004D875E878D859E850E94C913882309F450 -:102C70004ACF27CF811143CF0CC0243008F043CF77 -:102C80009F7009F43CCFD80115969C91907F09F074 -:102C900036CF8F2D62960FB6F894DEBF0FBECDBF34 -:102CA000DF91CF911F910F91FF90EF90DF90CF9028 -:102CB00008951F93CF93DF93CDB7DEB72C970FB650 -:102CC000F894DEBF0FBECDBF4F83588769877A87E0 -:102CD0008B879C87CE0107960E949114882371F000 -:102CE0008A859B85892B09F441C088858F3F09F02F -:102CF00065C08F818F3F09F061C038C086E0FE015A -:102D00003796DE01119601900D928A95E1F76A855A -:102D10007B856115710551F1FF81E885EF3F11F465 -:102D2000FF3F21F120917A0130E0C90101968770BF -:102D300099274091790150E08417950709F447C01D -:102D4000F983EA837D836C8396E0929FD001939F01 -:102D5000B00D1124A558BE4FFE01319601900D9281 -:102D60009A95E1F780937A010E94071416E080910A -:102D7000790190917A018917B9F1189FC001112446 -:102D800085589E4F0E949114882371F1E09179013A -:102D90001E9FF0011124E558FE4F40815181628150 -:102DA0007381848195810E94F7138091790190E06D -:102DB00001968770992780937901D9CF4F815885E3 -:102DC00069857A858B859C850E94F713CFCF0E94F9 -:102DD000C51310927A0110927901EBEAF1E086E0D6 -:102DE000DF011D928A95E9F72C960FB6F894DEBFA5 -:102DF0000FBECDBFDF91CF911F910895EF92FF924B -:102E00000F931F93CF93DF938C01892B09F46CC030 -:102E1000F12CEE24E394E8012196F80184918437A3 -:102E200040F4843008F051C0813081F0823019F1D3 -:102E30005BC0853709F444C0A8F19CE7980F903730 -:102E400008F052C08F770E944C1041C00E5F1F4F98 -:102E5000FE01849190E2980F983050F48770FE2D17 -:102E600001C0FF0F8A95EAF78F2F0E94871914C0BF -:102E70000E94840F2DC00E5F1F4FFE01849190E2CF -:102E8000980F983060F48770FE2D01C0FF0F8A956F -:102E9000EAF78F2F0E948D190E94AE1919C00E9467 -:102EA0004C1016C00E5F1F4FFE01C491CC2381F061 -:102EB0008FE99FE00197F1F700C00000C150F6CF05 -:102EC0000E5F1F4FFE01F49003C00E94840F8E011D -:102ED0008F2D882309F49FCFEFE9FFE03197F1F7B9 -:102EE00000C000008150F5CFDF91CF911F910F916D -:102EF000FF90EF90089508956093B5017093B60127 -:102F00008093B7019093B8010C94B3130F931F9360 -:102F10000091B5011091B6012091B7013091B8012F -:102F2000DC01CB01802B912BA22BB32B8093B5011D -:102F30009093B601A093B701B093B8011F910F9180 -:102F40000C94B3130F931F930091B5011091B60128 -:102F50002091B7013091B801DC01CB01802391238E -:102F6000A223B3238093B5019093B601A093B70138 -:102F7000B093B8011F910F910C94B3130F931F934B -:102F80000091B5011091B6012091B7013091B801BF -:102F9000DC01CB0180279127A227B3278093B501BD -:102FA0009093B601A093B701B093B8011F910F9110 -:102FB0000C94B3131092B1011092B2011092B301AC -:102FC0001092B4010C94B31341E050E060E070E063 -:102FD00004C0440F551F661F771F8A95D2F7409390 -:102FE000B1015093B2016093B3017093B4010C949A -:102FF000B31341E050E060E070E004C0440F551F9F -:10300000661F771F8A95D2F78091B1019091B20126 -:10301000A091B301B091B401482B592B6A2B7B2BA3 -:103020004093B1015093B2016093B3017093B40126 -:103030000C94B31341E050E060E070E004C0440F32 -:10304000551F661F771F8A95D2F74095509560955A -:1030500070958091B1019091B201A091B301B091AE -:10306000B401482359236A237B234093B101509331 -:10307000B2016093B3017093B4010C94B31341E0B7 -:1030800050E060E070E004C0440F551F661F771FDA -:103090008A95D2F78091B1019091B201A091B301CC -:1030A000B091B401482759276A277B274093B10183 -:1030B0005093B2016093B3017093B4010C94B313B5 -:1030C0000F931F930091B1011091B2012091B301B0 -:1030D0003091B401DC01CB01802B912BA22BB32BBF -:1030E0008093B1019093B201A093B301B093B40166 -:1030F0001F910F910C94B3130F931F930091B10183 -:103100001091B2012091B3013091B401DC01CB01E7 -:1031100080239123A223B3238093B1019093B20122 -:10312000A093B301B093B4011F910F910C94B3130A -:103130000F931F930091B1011091B2012091B3013F -:103140003091B401DC01CB0180279127A227B3275E -:103150008093B1019093B201A093B301B093B401F5 -:103160001F910F910C94B3130895CF92DF92EF92B9 -:10317000FF920F931F93CF93DF938C01C090B10107 -:10318000D090B201E090B301F090B4018091B5010C -:103190009091B601A091B701B091B801C82AD92A7F -:1031A000EA2AFB2ACFE1D0E0D701C6010C2E04C0E9 -:1031B000B695A795979587950A94D2F780FF07C093 -:1031C000B8018C2F0E9413068130910531F42197AC -:1031D00058F7B80180E00E941306DF91CF911F914C -:1031E0000F91FF90EF90DF90CF90089590910C0198 -:1031F0009923F1F090910D019923D1F0982F969594 -:10320000969596959F3080F5E0910E01F0910F0113 -:10321000E90FF11D877021E030E0A90102C0440FE1 -:10322000551F8A95E2F7CA019181892B8183089500 -:1032300020910E0130910F01F90132969FEF40E08D -:103240005191851789F09F3F19F4511101C0942FB6 -:103250004F5F4E30A9F79F3F39F0F901E90FF11D9B -:1032600097FDFA9582830895089590910C01992312 -:10327000F9F090910D019923D9F0982F9695969594 -:1032800096959F3028F5E0910E01F0910F01E90F1E -:10329000F11D877021E030E0A90102C0440F551FE5 -:1032A0008A95E2F7CA0180959181892381830895E7 -:1032B00020910E0130910F01F9013296205F3F4FAE -:1032C0009081891301C010823196E217F307C1F78C -:1032D000089581E090E0E0910E01F0910F01E80F78 -:1032E000F91F1082019680319105A9F708959091F8 -:1032F000CB01892B8093CB01089580959091CB01D0 -:1033000089238093CB0108951092CB010895909169 -:10331000CA01892B8093CA01089580959091CA01B2 -:1033200089238093CA0108951092CA010895809359 -:10333000B90108951092B901089580910E019091FC -:103340000F01FC0131969C01205F3F4F80E091917D -:1033500091118F5FE217F307D1F70895E0910E0105 -:10336000F0910F018091CB018083E0910E01F091EB -:103370000F0190818091CA01892B80838091B901CE -:10338000882361F0E0910E01F0910F019081892B6B -:1033900080830E949D1981111092B90180910E01C4 -:1033A00090910F010C94680ECF92DF92EF92FF92F2 -:1033B0006C01EE24FF24C114D104E104F10421F0D6 -:1033C000C701B60120E101C020E0C72ED82EE92EAA -:1033D000FF24C114D104E104F10419F0285FC701EE -:1033E000B6016B017C0154E0F694E794D794C7943E -:1033F0005A95D1F7C114D104E104F10419F02C5FFE -:10340000C701B6016B017C0142E0F694E794D794C2 -:10341000C7944A95D1F7C114D104E104F10419F01D -:103420002E5FC701B601DC01CB01B695A795979534 -:103430008795892B8A2B8B2B09F02F5F822FFF908A -:10344000EF90DF90CF9008958091E401843011F1E6 -:1034500020E488E190E00FB6F894A895809360008E -:103460000FBE2093600083B7817F846083BF83B7E2 -:10347000816083BF7894889583B78E7F83BF0FB6B2 -:10348000F894A89580916000886180936000109204 -:1034900060000FBE089508950C944B1ACF930E94BC -:1034A0004C1A0E9432040E944B1AC0E08C2F0E94DA -:1034B0002805811104C0CF5FCE30C1F701C081E083 -:1034C000CF9108950E94C5130E945C0E0C94520780 -:1034D00082E084BD93E095BD9AEF97BD80936E0026 -:1034E00008952FB7F8948091CD019091CE01A091CD -:1034F000CF01B091D0012FBF0895CF92DF92EF920C -:10350000FF920F931F932FB7F8944091CD015091E4 -:10351000CE016091CF017091D0012FBF6A017B0174 -:10352000EE24FF248C0120E030E0C016D106E20634 -:10353000F30610F4415051099A01281B390BC901B7 -:103540001F910F91FF90EF90DF90CF9008951F9201 -:103550000F920FB60F9211248F939F93AF93BF9347 -:103560008091CD019091CE01A091CF01B091D00179 -:103570000196A11DB11D8093CD019093CE01A09322 -:10358000CF01B093D001BF91AF919F918F910F90D8 -:103590000FBE0F901F9018950E94540BF8942FEFB8 -:1035A00087EA91E6215080409040E1F700C000009A -:1035B00087E090EBDC018093ED019093EE01A09306 -:1035C000EF01B093F0019CE088E10FB6F894A89564 -:1035D000809360000FBE90936000FFCFEF92FF9248 -:1035E0000F931F93CF93DF93D82FC0E08C2F0E94AF -:1035F000280500E010E0E82EF12CC701002E02C0E3 -:10360000959587950A94E2F780FD06C00F5F1F4FDE -:103610000630110591F709C0602F7C2F80E00E94D1 -:10362000F0058D13F3CF81E004C0CF5FCE30F1F60B -:1036300080E0DF91CF911F910F91FF90EF9008955F -:10364000CF93C82F8CE20E94EE1A882321F08C2F92 -:10365000CF910C94EE1A80E0CF910895CF930E9401 -:10366000751C811102C00E945B1CC5E6C15049F067 -:103670000E9432048FE39CE90197F1F700C000003B -:10368000F5CF89E20E94201B811113C18AE20E94BA -:10369000201B81110E945B1C85E00E94201B811170 -:1036A0000E94CC1A0E94801C8093CC0187E00E946B -:1036B000201B8823A9F18BE10E94201B882351F055 -:1036C0008091CC0181FB222720F991E0922790FB89 -:1036D00081F90EC08EE00E94201B882361F080914A -:1036E000CC0182FB222720F991E0922790FB82F9FE -:1036F0008093CC0115C080E10E94201B9091CC01E9 -:10370000882341F093FB222720F981E0822780FB68 -:1037100093F904C0892F809580FB90F99093CC0198 -:103720008091CC010E94841C0E94921C8093DE0137 -:1037300080EE0E94201B882341F08091DE01982FAB -:10374000909590FB80F98093DE0189E30E94201B15 -:10375000882359F08091DE0181FB222720F991E036 -:10376000922790FB81F98093DE0182EE0E94201B5C -:10377000882359F08091DE0182FB222720F991E015 -:10378000922790FB82F98093DE0186EE0E94201B37 -:10379000882359F08091DE0183FB222720F991E0F4 -:1037A000922790FB83F98093DE0183EE0E94201B19 -:1037B000882359F08091DE0184FB222720F991E0D3 -:1037C000922790FB84F98093DE0185E30E94201B01 -:1037D000882359F08091DE0185FB222720F991E0B2 -:1037E000922790FB85F98093DE0181E30E94201BE4 -:1037F000882359F08091DE0186FB222720F991E091 -:10380000922790FB86F98093DE0181E10E94201BC4 -:10381000882359F08091DE0187FB222720F991E06F -:10382000922790FB87F98093DE018091DE010E9450 -:10383000961C8091DE0187FB882780F980930D011B -:1038400087E20E94201BC82F8EE10E94201B81115D -:10385000C2608FE10E94201B8111C46080E20E943F -:10386000201B8111C86081E20E94201B8111C06170 -:1038700082E20E94201B8111C06283E20E94201B11 -:103880008111C06484E20E94201B882311F0C0686B -:1038900002C0CC2329F08C2F0E948D1C6C2F03C0FA -:1038A0000E94891C682F70E080E090E0CF910C941A -:1038B0007C17CF9108956DEE7EEF80E090E00E943E -:1038C000CF2260E082E090E00E94C12260E083E0CD -:1038D00090E00E94C12260E084E090E00E94C1225A -:1038E00060E085E090E00C94C12280E090E00E94CE -:1038F000BB2221E08D3E9E4F09F020E0822F0895EB -:1039000082E090E00C94B322682F82E090E00C9467 -:10391000C12283E090E00C94B322682F83E090E012 -:103920000C94C12284E090E00C94B322682F84E0D0 -:1039300090E00C94C1228091D30180FF0BC0609174 -:10394000130185E0689FB001112475956795759501 -:1039500067952BC081FF09C06091130185E0689FC6 -:10396000B00111247595679520C082FF07C0609152 -:10397000130185E0689FB001112417C09091D40114 -:103980009923D1F060911201961788F720911301C5 -:1039900085E0289F90011124929FA001939F500DD4 -:1039A000112470E0CA010E9485226038710540F43C -:1039B0006115710519F406C065E070E0862F089561 -:1039C0008FE7089581E008958091D30180FF08C0BA -:1039D0006091110170E0759567957595679521C0A7 -:1039E00081FF06C06091110170E07595679519C05F -:1039F00082FF04C06091110170E010C09091D40169 -:103A0000992399F0609110019617A0F78091110108 -:103A1000899FC001112470E00E94852260387105E1 -:103A200040F46115710519F406C061E070E0862F5D -:103A300008958FE7089581E00895803F21F40E9462 -:103A40009B1C819504C0813F29F40E949B1C80939C -:103A5000D7010895823F21F40E949B1C819504C0E8 -:103A6000833F29F40E949B1C8093D6010895893FCF -:103A700019F40E94E41C05C08A3F31F40E94E41C42 -:103A800081958093D80108958B3F21F40E94E41C16 -:103A9000819504C08C3F29F40E94E41C8093D901D5 -:103AA0000895843F21F48091D501816017C0853F3E -:103AB00021F48091D501826011C0863F21F480916C -:103AC000D50184600BC0873F21F48091D5018860C7 -:103AD00005C0883F31F48091D50180618093D50184 -:103AE00008958D3F21F48091D30181600BC08E3FFA -:103AF00021F48091D301826005C08F3F29F4809129 -:103B0000D30184608093D3010895803F39F480917C -:103B1000D70187FF6CC01092D70169C0813F29F49B -:103B20008091D7011816BCF362C09091D601823FF4 -:103B300029F497FF5CC01092D60159C0833F19F455 -:103B40001916CCF354C0893F41F48091D80118165E -:103B50000CF04DC01092D8014AC08A3F29F48091E0 -:103B6000D80187FF44C0F6CF8B3F39F48091D9014B -:103B700087FF3DC01092D9013AC08C3F29F4809153 -:103B8000D9011816BCF333C0843F21F48091D501CC -:103B90008E7F17C0853F21F48091D5018D7F11C0A4 -:103BA000863F21F48091D5018B7F0BC0873F21F4A4 -:103BB0008091D501877F05C0883F31F48091D50180 -:103BC0008F7E8093D50113C08D3F21F48091D30166 -:103BD0008E7F0BC08E3F21F48091D3018D7F05C075 -:103BE0008F3F29F48091D3018B7F8093D301809103 -:103BF000D60181110EC08091D70181110AC0809138 -:103C0000D801811106C08091D901811102C01092A2 -:103C1000D401089585ED91E00E94730E0E94711AFF -:103C20009093D2018093D10108951F93CF93DF9396 -:103C30008091D1019091D2010E947D1AAC019091A6 -:103C4000D401992321F02091140130E006C0209185 -:103C500015018AE0289F900111244217530708F4A8 -:103C600085C08091D601C091D701D091D801109123 -:103C7000D901811107C0C11175C0D11173C01111D3 -:103C800071C074C09F3F19F09F5F9093D4011816C4 -:103C900024F40E949B1C8093D6018091D60187FF5B -:103CA00005C00E949B1C81958093D6011C1624F4AC -:103CB0000E949B1C8093D7018091D70187FF05C08C -:103CC0000E949B1C81958093D7016091D601662349 -:103CD00031F1C091D701CC2311F1062E000C770BE6 -:103CE000880B990B0E948C2123E333E343E35FE3CA -:103CF0000E94F0210E9454216093D6016C2FCC0FBA -:103D0000770B880B990B0E948C2123E333E343E369 -:103D10005FE30E94F0210E9454216093D7011D1699 -:103D200024F40E94E41C8093D8018091D80187FF7D -:103D300005C00E94E41C81958093D801111624F4DB -:103D40000E94E41C8093D9018091D90187FF05C0AE -:103D50000E94E41C81958093D901DF91CF911F913E -:103D60000C940A1E9F3F09F08FCFA0CFDF91CF9117 -:103D70001F910895E5EDF1E085E0DF011D928A9540 -:103D8000E9F71092D4011092D3010895833081F1A4 -:103D900028F4813059F08230D1F00895853009F44B -:103DA00049C0B8F1863009F456C0089580911501D4 -:103DB000262F30E0280F311D2F3F310524F4680FE6 -:103DC0006093150108958FEF8093150108958091F8 -:103DD0001401262F30E0280F311D2F3F310524F428 -:103DE000680F6093140108958FEF80931401089574 -:103DF00080911301262F30E0280F311D2F3F310510 -:103E000024F4680F6093130108958FEF80931301DA -:103E1000089580911201262F30E0280F311D2F3F89 -:103E2000310524F4680F6093120108958FEF809399 -:103E30001201089580911101262F30E0280F311DC5 -:103E40002F3F310524F4680F6093110108958FEF1F -:103E500080931101089580911001262F30E0280FE2 -:103E6000311D2F3F310524F4680F60931001089530 -:103E70008FEF809310010895833011F128F4813081 -:103E800049F0823091F00895853081F120F186303B -:103E9000C1F1089580911501681720F4861B809365 -:103EA0001501089510921501089580911401681765 -:103EB00020F4861B80931401089510921401089534 -:103EC00080911301681720F4861B809313010895D5 -:103ED00010921301089580911201681720F4861B37 -:103EE000809312010895109212010895809111019A -:103EF000681720F4861B8093110108951092110118 -:103F0000089580911001681720F4861B809310019A -:103F100008951092100108950F931F938D3109F4A5 -:103F20006BC008F03FC08E3009F47DC0C0F487300C -:103F300009F46EC068F4863009F0AFC08091CC01FE -:103F4000817F8E7F8093CC0181E08093DB01A6C0CE -:103F5000883009F458C08B3009F49BC09EC086316C -:103F600009F497C078F4803109F470C0813109F008 -:103F700094C00E94C51390910D0181E08927809320 -:103F80000D0187C0893109F484C08B3109F085C0E7 -:103F90008091CC0181FB222720F991E0922790FBB0 -:103FA00081F94AC0853309F45BC048F4873209F4CB -:103FB00057C008F45AC0893209F452C06EC0833425 -:103FC00038F48A3308F067C0883309F462C065C0EA -:103FD000833409F445C0883409F05FC00E94C513DA -:103FE0000FEF13ED20E3015010402040E1F700C037 -:103FF00000000E94CC1A4DC00E940E210E945C0E4F -:104000000E94520746C00E94801C0E94921C41C020 -:104010009091CC01892F817090FF12C0917F9E7F7B -:104020009093CC013BC08091CC0182FB222720F9E8 -:1040300091E0922790FB82F98093CC01992349F17A -:104040008091CC0181608093CC0123C08091CC0110 -:1040500083FB222720F991E0922790FB83F9ECCF94 -:1040600061E070E080E090E010C08D5141E050E0F0 -:1040700060E070E08A019B0104C0000F111F221F45 -:10408000331F8A95D2F7C901B8010E947C170E949C -:10409000C51381E003C08953E9CF80E01F910F91E0 -:1040A000089580E008950C945120CF93C82F8091FB -:1040B000DB01813079F018F08230E9F187C0E091BE -:1040C0000E01F0910F018081813169F0823209F097 -:1040D0007FC009C0E0910E01F0910F018081813114 -:1040E00011F0823261F48C2F0E945320811104C0A0 -:1040F0008C2F0E948C1F1DC081E090E01AC08C2F75 -:104100000E945120811114C0C43179F048F4CB30A1 -:1041100079F0C03109F060C082E08093DB0108C013 -:10412000C93219F0C83321F057C01092DB0154C0D6 -:1041300081E0817053C0C93289F118F5C43171F141 -:10414000A8F4C73009F046C08AE08093150194E1D5 -:104150009093140193E0909313018093120188E0EF -:104160008093110188E28093100134C0CE51C63093 -:1041700088F5EC2FF0E0E65DFE4F80818093DA0158 -:1041800029C0CE34E9F020F4CB3421F56AE013C025 -:10419000C13579F0C235F1F461E00DC08091DA01EA -:1041A000882319F01092DA0115C081E08093DB01B9 -:1041B00015C061E006C08091DA010E94C61E0AC0E7 -:1041C0006AE08091DA010E943C1F04C01092DB017A -:1041D00080E004C081E002C080E0ABCFCF910895C1 -:1041E000E1E8F0E080818860808380818160808365 -:1041F0008FB7F89493E09093890090ED90938800A6 -:104200008FBF0895EFE6F0E080818260808308959B -:10421000EFE6F0E080818D7F80830895EFE6F0E0A7 -:10422000908182E08927808308951F920F920FB6B4 -:104230000F9211242F933F934F935F936F937F932C -:104240008F939F93AF93BF93EF93FF938091DC0184 -:104250009091DD0101969093DD018093DC01811145 -:1042600003C082E00E945207E091DD01E695E695E9 -:10427000F0E0E457FB4FE4918091DC018E1303C022 -:1042800080E00E945207FF91EF91BF91AF919F9103 -:104290008F917F916F915F914F913F912F910F90EF -:1042A0000FBE0F901F9018950E945B216894B1116A -:1042B0000C94EA2108950E94CF2188F09F5798F02E -:1042C000B92F9927B751B0F0E1F0660F771F881F1B -:1042D000991F1AF0BA95C9F714C0B13091F00E9435 -:1042E000E921B1E008950C94E921672F782F882700 -:1042F000B85F39F0B93FCCF3869577956795B3955C -:10430000D9F73EF490958095709561957F4F8F4FCA -:104310009F4F0895E89409C097FB3EF490958095CF -:10432000709561957F4F8F4F9F4F9923A9F0F92F7B -:1043300096E9BB279395F695879577956795B795F9 -:10434000F111F8CFFAF4BB0F11F460FF1BC06F5FDF -:104350007F4F8F4F9F4F16C0882311F096E911C0F1 -:10436000772321F09EE8872F762F05C0662371F012 -:1043700096E8862F70E060E02AF09A95660F771F26 -:10438000881FDAF7880F9695879597F9089557FD56 -:104390009058440F551F59F05F3F71F04795880FB3 -:1043A00097FB991F61F09F3F79F08795089512164A -:1043B00013061406551FF2CF4695F1DF08C01616F6 -:1043C00017061806991FF1CF8695710561050894A7 -:1043D0000895E894BB2766277727CB0197F90895BE -:1043E0000E9403220C9474220E94662238F00E94DC -:1043F0006D2220F0952311F00C945D220C94632221 -:1044000011240C94EA210E94C72170F3959FC1F3F7 -:10441000950F50E0551F629FF001729FBB27F00D72 -:10442000B11D639FAA27F00DB11DAA1F649F6627C7 -:10443000B00DA11D661F829F2227B00DA11D621F16 -:10444000739FB00DA11D621F839FA00D611D221FD0 -:10445000749F3327A00D611D231F849F600D211DB4 -:10446000822F762F6A2F11249F5750409AF0F1F037 -:1044700088234AF0EE0FFF1FBB1F661F771F881FA0 -:1044800091505040A9F79E3F510580F00C945D2259 -:104490000C94EA215F3FE4F3983ED4F38695779538 -:1044A0006795B795F795E7959F5FC1F7FE2B880F46 -:1044B000911D9695879597F9089597F99F6780E8DC -:1044C00070E060E008959FEF80EC089500240A9466 -:1044D0001616170618060906089500240A941216DF -:1044E0001306140605060895092E0394000C11F412 -:1044F000882352F0BB0F40F4BF2B11F460FF04C0BF -:104500006F5F7F4F8F4F9F4F089597FB072E16F4D5 -:10451000009407D077FD09D00E949F2207FC05D0A8 -:104520003EF4909581959F4F0895709561957F4FCA -:104530000895EE0FFF1F0590F491E02D0994AA1B3A -:10454000BB1B51E107C0AA1FBB1FA617B70710F07E -:10455000A61BB70B881F991F5A95A9F780959095B0 -:10456000BC01CD010895F999FECF92BD81BDF89AA5 -:10457000992780B50895A8E1B0E042E050E00C949E -:10458000D622262FF999FECF1FBA92BD81BD20BD3C -:104590000FB6F894FA9AF99A0FBE019608950E9400 -:1045A000C122272F0C94C222DC01CB01FC01F99916 -:1045B000FECF06C0F2BDE1BDF89A319600B40D926F -:0C45C00041505040B8F70895F894FFCF28 -:1045CC0020025307E307BE078A0756070101BA0109 -:1045DC0028080A03140A3F4D36394D040004CA0357 -:1045EC00910324033D0356036F03010203040506E4 -:0445FC0007080900A3 +:100000000C940B030C944F030C944F030C944F036C +:100010000C944F030C944F030C944F030C944F0318 +:100020000C944F030C944F030C940E0D0C94E00DA4 +:100030000C944F030C944F030C944F030C944F03F8 +:100040000C944F030C94AA220C944F030C944F036E +:100050000C944F030C94391C0C944F030C944F03D5 +:100060000C944F030C944F030C944F030C944F03C8 +:100070000C944F030C944F030C944F030C944F03B8 +:100080000C944F030C944F030C944F030C944F03A8 +:100090000C944F030C944F030C944F030C944F0398 +:1000A0000C944F030C944F030C944F034D0E6F0EA2 +:1000B0005D0F6F0E5D0FB40ED70E5D0F2C0F3F0F4F +:1000C0002B122B1268126812AB12E91202150215DC +:1000D0000213021503140314D61402150215ED14AD +:1000E00029002B000354E100358100001E000E00A2 +:1000F0000B001B7164004D001F003700040014004A +:10010000E1044C00200012000800340050002A00D6 +:10011000210036000C002F004F004A0022001D0075 +:100120001800330000000254E000E3000000E20089 +:1001300000002E77E400E7000000E60000002E7FBC +:1001400023001900070005000000045424000A00E1 +:100150001700130052004B002500060015001A007E +:1001600051002C0026000F0011001000E1082800AB +:1001700027002D0016000D7130004E0038001C00C5 +:100180000982E50031810000010001000100010049 +:10019000010000003A0035003100010001000100BB +:1001A0003B0035022102640001004C003C001E02AD +:1001B00024062202010001003D002D022402240435 +:1001C000010001003E0001003700110400000100A1 +:1001D0000100010000000100000001000100010019 +:1001E00000000100000001003F0024062402230259 +:1001F000000001004000220425023500010001003A +:100200004100230426023502370001004200240485 +:1002100025041F021E0201004300310026043102A2 +:10022000010001004400450001002D020100000012 +:1002300001000100010001000100000001000100B7 +:100240000100FB000100010001000100F200F900C3 +:10025000010001000100F000F100FA00F4000100CB +:1002600001000100F300FC00F500010001000100A5 +:100270000100F60000000100010001000000010083 +:100280000000010001000100000001000000010069 +:100290000100010001000100000001000100010057 +:1002A0000100A800A9000100010001000100AC004C +:1002B000AA00B600010001000100AB0050000100DF +:1002C000010001000100520051000100AE000100D8 +:1002D000010001004F00000029002B000100E10097 +:1002E000358100001E00140004001D7164004D00E3 +:1002F0001F001A0016001B00E1044C00200008003B +:100300000700060050002A0021001500090019000E +:100310004F004A00220017000A00050000000100FB +:100320001908E3000000E20000002E770608E7004D +:100330000000E60000002E7F23001C000B001100CF +:1003400000000100240018000D00100052004B00B6 +:1003500025000C000E00360051002C002600120073 +:100360000F003700E1082800270013003300387120 +:1003700030004E002D002F003482E5003181000056 +:100380000100010001000100010000000100010066 +:100390000100010001000100010001005000010006 +:1003A00001000100010052005100010001000100A4 +:1003B000010001004F0001000100010001000100E7 +:1003C0000100010000000100010001000000010027 +:1003D0000000010001000100000001000000010018 +:1003E0003F005200510023020000010040002400A1 +:1003F00021001E00270001004100250022001F00EF +:1004000037000100420026002300200027000100E1 +:1004100043003002300024022E0001004400450059 +:100420000100010001000000160345007200670092 +:100430006F0044006F007800200045005A00000063 +:1004400016034500720067006F0044006F007800DB +:10045000200045005A0000000403090409026D0051 +:10046000040100A0FA0904000001030101000921B0 +:1004700011010001223F000705810308000A090459 +:1004800001000103010200092111010001224D00B8 +:100490000705820308000A090402000103000000A6 +:1004A0000921110100012236000705830308000A13 +:1004B00009040300010300000009211101000122C9 +:1004C000390007058403100001120110010000002B +:1004D00008EDFE071301000102000105010906A154 +:1004E00001050719E029E715002501950875018127 +:1004F00002050819012905950575019102950175F7 +:1005000003910105071900297715002501957875D4 +:10051000018102C005010980A101850216010026A2 +:10052000B7001A01002AB700751095018100C005B7 +:100530000C0901A1018503160100269C021A010085 +:100540002A9C02751095018100C005010902A101D4 +:100550000901A100050919012905150025019505C5 +:100560007501810295017503810105010930093189 +:100570001581257F95027508810609381581257F2B +:10058000950175088106050C0A38021581257F95AD +:100590000175088106C0C005010906A101050719FA +:1005A000E029E7150025019508750181029501757F +:1005B0000881010508190129059505750191029524 +:1005C00001750391010507190029FF150025FF9505 +:1005D0000675088100C00000000000000000000057 +:1005E00000010204060A0F17202C3A4A5D71879D0C +:1005F000B3C7DAE9F5FCFFFCF5E9DAC7B39D87710B +:100600005D4A3A2C20170F0A060402010000000080 +:1006100000000000000011241FBECFEFDAE0DEBFB3 +:10062000CDBF04B603FE24C08091EE019091EF018E +:10063000A091F001B091F1018730904BA740B04BF1 +:10064000B9F41092EE011092EF011092F0011092A5 +:10065000F10114BE84B7877F84BF88E10FB6F89498 +:1006600080936000109260000FBEE0E0FFE3099508 +:1006700011E0A0E0B1E0E8EDF8E402C005900D92D1 +:10068000A433B107D9F711E0A4E3B1E001C01D9292 +:10069000AE3EB107E1F70E94520A0C946A240C9412 +:1006A000000061110BC0FC018281882321F085EEDE +:1006B0000E94BF1003C085EE0E94871180E090E089 +:1006C000089508956091B1017091B2018091B301D4 +:1006D0009091B4010E94651B56985E9825982D98BC +:1006E00026982E9827982F9808950C946203569870 +:1006F0005E9825982D9826982E9827982F988FEFFA +:1007000090E0909389008093880090938B00809371 +:100710008A0090938D0080938C00259A2D9A2FEF5C +:1007200080E792E0215080409040E1F700C0000057 +:10073000269A2E9A2FEF80E792E021508040904039 +:10074000E1F700C00000279A2F9A2FEF80E792E090 +:10075000215080409040E1F700C0000025982D987E +:100760002FEF80E792E0215080409040E1F700C0F9 +:10077000000026982E982FEF80E792E021508040CD +:100780009040E1F700C0000027982F9856985E9897 +:1007900025982D9826982E9827982F98089589EABD +:1007A0008093800089E08093810024982C983F9862 +:1007B0008AB18F748AB96E98479A8BB1806B8BB966 +:1007C000769A0E9477030C94610380E28093000183 +:1007D0008091340181110EC00E94340481E0809325 +:1007E00034012FEF83ED90E3215080409040E1F7FA +:1007F00000C0000080E40E943A048093000181114F +:100800002EC00E94640480930001811128C00E94C0 +:10081000640480930001811122C08FE30E9464046C +:100820008093000181111BC00E945C0480E40E943F +:100830003A0480930001811112C08CE00E9464048C +:100840008093000181110BC00E9464048093000119 +:10085000811105C08FE30E946404809300010E940F +:100860005C048091000108951092B9008AE08093A1 +:10087000B800089594EA9093BC009091BC0097FF53 +:10088000FCCF9091B900987F983021F0903111F011 +:1008900081E008958093BB0084E88093BC00809140 +:1008A000BC0087FFFCCF8091B900887F883111F0B0 +:1008B000803471F780E0089584E98093BC008091D2 +:1008C000BC0084FDFCCF08958093BB0084E8809336 +:1008D000BC008091BC0087FFFCCF9091B900987F4D +:1008E00081E0983209F480E0089584E88093BC00A8 +:1008F0008091BC0087FFFCCF8091BB000895809160 +:100900000001811115C080E40E943A048093000127 +:1009100081110CC082E10E94640480930001811166 +:1009200005C08FEF0E946404809300010E945C0464 +:1009300084B1807F84B985B1807F85B98AB1837F96 +:100940008AB98BB1837F8BB93E98469808950E94EF +:10095000E503809300010E947F0480B38C7080BB0C +:1009600081B3836F81BBA6E3B1E0E4E4F1E08EE004 +:100970008E0F11921D928E13FCCF0C94CF03BF9259 +:10098000CF92DF92EF92FF920F931F93CF93DF935B +:1009900080910001882379F0809135018F5F8093E9 +:1009A0003501811108C00E94E50380930001811187 +:1009B00002C00E94770306E311E0C0E0D0E0DD242E +:1009C000D39482E0C82EEE24E394F12CC730D105F5 +:1009D00000F580910001811164C080E40E943A0416 +:1009E00080930001811112C082E10E94640480930F +:1009F000000181110BC0C7010C2E01C0880F0A94A1 +:100A0000EAF780950E946404809300010E945C04D0 +:100A100048C0CA30A1F028F4C83059F0C93061F09C +:100A200005C0CC3089F070F0CD3089F0209A28983C +:100A300010C0219A29980DC0229A2A980AC0239A98 +:100A40002B9807C0529A01C0539A5B9802C03E9AF5 +:100A5000469890EA9A95F1F79FB1799902C082E0A1 +:100A600001C080E091709D25982B7C9902C084E0A4 +:100A700001C080E0892B7D9902C038E001C030E0E0 +:100A8000832B7E9902C020E101C020E0822B9FB120 +:100A90009095991F9927991F9295990F907E892B70 +:100AA0000FC080910001811149C080E40E943A0486 +:100AB00080930001882379F1B12C0E945C048B2D76 +:100AC000F8019081981719F08083C09201010E946B +:100AD0007F0421960F5F1F4FCE30D10509F076CFEE +:100AE00080910101882361F1815080930101882365 +:100AF00039F08FE99FE00197F1F700C0000020C0B6 +:100B0000A4E4B1E0E6E3F1E0CF01825F91919D932F +:100B10008E13FCCF15C083E10E9464048093000112 +:100B20008111CACF81E40E943A04809300018111AF +:100B3000C3CF0E947504B82EB094BFCF80E0C0CF61 +:100B40000E94750381E0DF91CF911F910F91FF907B +:100B5000EF90DF90CF90BF900895E82FF0E0EC5B2E +:100B6000FE4F808108950895089596E0799FF001E1 +:100B7000112494E5899FE00DF11D1124E60FF11D6C +:100B8000EE0FFF1FE052FF4F859194910895880F5B +:100B9000991FFC01E05AF040859194910895880FC7 +:100BA000991FFC01E052FF4F8591949108950F9396 +:100BB0001F93CF93DF93EC018115904350F5C1153E +:100BC00080E2D80708F0B3C0CB3BD10590F4C83A17 +:100BD000D10508F05AC0C53AD10508F04BC0C43061 +:100BE000D10508F0BBC1219709F0B5C101E010E0C3 +:100BF000F5C1CF3FD10511F008F0B0C1C03FD1051C +:100C000008F092C0CE01805E9109089708F4A6C151 +:100C1000A2C1C11591E5D907A8F4C23020E5D207D9 +:100C200008F09EC0C11580E5D80709F485C008F01A +:100C300091C0C11520E4D20708F08DC1DD278E01D7 +:100C4000106CCCC1C11580E8D80758F4C11590E7E5 +:100C5000D90708F07CC1C11520E6D20708F422C1EB +:100C60007AC1C11580E9D80708F075C1DF708E011F +:100C7000106AB4C1C53AD10509F472C1C63AD105AA +:100C800009F071C102E810E4A9C1C83AD10509F41C +:100C90006DC1C93AD10509F46CC1CA3AD10509F44C +:100CA0006BC1CB3AD10509F46AC1CC3AD10509F43C +:100CB00069C1CD3AD10509F468C1C03BD10509F439 +:100CC00067C1CE3AD10509F466C1CF3AD10509F41E +:100CD00065C1C13BD10509F464C1C23BD10509F42A +:100CE00063C1C33BD10509F462C1C43BD10509F41A +:100CF00061C1C53BD10509F460C1C63BD10509F40A +:100D00005FC1C73BD10509F45EC1C83BD10509F4F9 +:100D10005DC1C93BD10509F45CC1CA3BD10509F4E9 +:100D20005BC100E014E45AC18E01106557C1CE01C9 +:100D30009F700E94CF0553C10E9426159FEF24E3A8 +:100D40008CE0915020408040E1F700C000000E94FC +:100D50005E1C44C18091CD0181608093CD013EC174 +:100D60000E94071E811102C00E94ED1D0E94241ED8 +:100D700090E09093EE018093ED01C23090E5D907A9 +:100D800021F48091ED01816086C0C43020E5D20756 +:100D900021F48091ED0182607EC0C63080E5D807E5 +:100DA00021F48091ED01846076C0C83090E5D907C8 +:100DB00019F48091ED0127C0CA3020E5D20721F453 +:100DC0008091ED01806167C0CC3080E5D80721F4C7 +:100DD0008091ED0180625FC0CE3090E5D90721F4AB +:100DE0008091ED01806457C0C03120E5D20721F425 +:100DF0008091ED0180684FC0C23180E5D80729F4A9 +:100E00008091ED018460886046C0C33090E5D907C9 +:100E100021F48091ED018E7F3EC0C53020E5D207E0 +:100E200021F48091ED018D7F36C0C73080E5D80771 +:100E300021F48091ED018B7F2EC0C93090E5D90758 +:100E400019F48091ED0126C0CB3020E5D20721F4C2 +:100E50008091ED018F7E1FC0CD3080E5D80721F451 +:100E60008091ED018F7D17C0CF3090E5D90721F437 +:100E70008091ED018F7B0FC0C13120E5D20721F4B5 +:100E80008091ED018F7707C0C331D04531F4809157 +:100E9000ED018B7F877F8093ED018091ED010E94B2 +:100EA000281E9CC08D2F99278F709927813091051E +:100EB000D9F49E012370332702C0880F991F2A9509 +:100EC000E2F79C688E0144E0000F111F4A95E1F79C +:100ED00000271370802B912B53E0CC0FDD1F5A9508 +:100EE000E1F7C076DD272FC08230910531F4DC2F89 +:100EF000CC278E01016F106A71C08330910569F4AF +:100F0000CE018370992701E010E002C0000F111F8D +:100F10008A95E2F7C8019C680FC0049709F05EC08B +:100F2000CE018370992701E010E002C0000F111F6D +:100F30008A95E2F7C8019A6823E0CC0FDD1F2A9555 +:100F4000E1F7C07ED7708C010C2B1D2B47C0DF70E2 +:100F50008E01106243C000E010E040C08E013EC030 +:100F600001E810E43BC003E810E438C002EE14E4EA +:100F700035C009EE14E432C00AEE14E42FC005EBCC +:100F800014E42CC006EB14E429C007EB14E426C0DB +:100F90000CEC14E423C00DEC14E420C003E815E4C9 +:100FA0001DC00AE815E41AC002E915E417C004E9F7 +:100FB00015E414C001E216E411C003E216E40EC009 +:100FC00004E216E40BC005E216E408C006E216E4EB +:100FD00005C007E216E402C00AE216E4C801DF9188 +:100FE000CF911F910F91089596E0799FF001112400 +:100FF00094E5899FE00DF11D1124E60FF11DEE0F20 +:10100000FF1FE052FF4F85919491803E9105E0F4DF +:10101000803C910558F58133910509F46FC048F47F +:101020008932910509F463C08A32910509F46DC0D3 +:1010300072C089339105E9F082389105D1F085338A +:10104000910509F44DC067C0833E910581F138F4E4 +:10105000803E9105B9F0823E9105D9F05CC0863E94 +:10106000910561F1873E9105A1F155C00E94C70528 +:1010700008952091ED0120FD02C021FF4CC080EEBB +:1010800090E049C08091ED0180FFF9CF89E390E0C5 +:1010900042C08091ED0182FF0EC08091ED0184FF7E +:1010A00003C080E090E037C083EE90E034C08091D0 +:1010B000ED0182FFF2CF82EE90E02DC08091ED0134 +:1010C00083FF0BC08091ED0184FDEBCF87EE90E0B4 +:1010D00022C08091ED0183FFF5CF86EE90E01BC02A +:1010E0008091ED0185FF07C089E290E014C08091F6 +:1010F000ED0185FFF9CF85E390E00DC08091ED0112 +:1011000086FF07C08AE290E006C08091ED0186FF6D +:10111000F9CF81E390E00E94D705089508950C94DB +:101120008E08809162010895CF93DF9300D01F92C3 +:10113000CDB7DEB79C018091E401843019F593E0CE +:1011400099833B832A839093E9008FEF9091E80085 +:10115000815095FD06C095ED9A95F1F7000081113B +:10116000F5CF8091E80085FF0DC040E050E063E0DE +:1011700070E0CE0101960E94FE0A8091E8008E7711 +:101180008093E8000F900F900F90DF91CF9108951A +:10119000CF93DF9300D01F92CDB7DEB72091E4014B +:1011A000243021F522E029839B838A8383E0809386 +:1011B000E9008FEF9091E800815095FD06C095ED14 +:1011C0009A95F1F700008111F5CF8091E80085FF35 +:1011D0000DC040E050E063E070E0CE0101960E9457 +:1011E000FE0A8091E8008E778093E8000F900F90C0 +:1011F0000F90DF91CF9108952091E4012430F1F414 +:1012000022E02093E9002FEF3091E800215035FDD6 +:1012100006C035ED3A95F1F700002111F5CF209188 +:10122000E80025FF0BC040E050E065E070E00E9460 +:10123000FE0A8091E8008E778093E8000895CF93AE +:10124000DF93EC019091E401943009F046C0809165 +:101250000C018823D9F080910D018823B9F0909377 +:10126000E9008FEF9091E800815095FD06C095E16F +:101270009A95F1F700008111F5CF8091E80085FF84 +:101280002CC040E050E060E170E017C081E0809346 +:10129000E9008FEF9091E800815095FD06C095ED33 +:1012A0009A95F1F700008111F5CF8091E80085FF54 +:1012B00014C040E050E068E070E0CE010E94FE0AF9 +:1012C0008091E8008E778093E80080E1FE01A2E53E +:1012D000B1E001900D928A95E1F7DF91CF910895E9 +:1012E0008091E301811109C00E94930C0E94F00CCF +:1012F0008091E20084608093E20008951092E301FF +:10130000089508950C9497220E94F41B0E949D2238 +:101310000E94960F0C948F0842E061EC81E00E94DD +:101320000D0C42E061EC82E00E940D0C42E061ECA9 +:1013300083E00E940D0C42E161EC84E00C940D0C02 +:101340008091E601833009F455C030F4813071F0AA +:10135000823009F48EC008958A3009F47AC08B3047 +:1013600009F460C0893009F09CC020C08091E5017B +:10137000813A09F096C08091E800877F8093E80069 +:101380008091E9019091EA01892B21F460E182E5E5 +:1013900091E003C060E080E090E070E00E94490BC3 +:1013A0008091E8008B778093E80008958091E501B3 +:1013B000813209F076C08091E9019091EA010097AD +:1013C00019F0039709F06DC08091E800877F809342 +:1013D000E8008091E80082FD05C08091E401811160 +:1013E000F8CF5FC08091F100809362018091E800A6 +:1013F0008B7753C08091E501813A09F052C080910A +:10140000E9019091EA01892B09F04BC08091E80035 +:10141000877F8093E8008091E80080FFFCCF809177 +:101420000C0136C08091E5018132D9F58091E90146 +:101430009091EA01892BA9F58091E800877F80933C +:10144000E8000E94420C8091E70180930C010C940B +:1014500026158091E501813221F58091E800877F92 +:101460008093E8000E94420C8091E8018093630120 +:1014700008958091E501813AA1F48091E800877F89 +:101480008093E8008091E80080FFFCCF80916301A9 +:101490008093F1008091E8008E778093E8000C94AF +:1014A000420C089584B7877F84BF88E10FB6F89413 +:1014B00080936000109260000FBE90E080E80FB64D +:1014C000F89480936100909361000FBE0E94E50F35 +:1014D0000E94930C0E94F00C8091E2008460809343 +:1014E000E20078940E94760F0E94E70F82E091E07C +:1014F0000E94910F0E9485228091E401853069F459 +:101500000E94B51B8091E2018823B1F30E94E01B89 +:10151000882391F30E94E80AEFCF0E94ED0FECCFF1 +:10152000292F332723303105C9F064F421303105E8 +:1015300081F02230310509F043C08DE690E02CE5C2 +:1015400034E042C021323105F1F02232310541F15F +:1015500037C082E190E029EC34E036C09927813031 +:10156000910541F08230910541F0892B49F5E8E57C +:10157000F4E005C0E0E4F4E002C0E8E2F4E08491C5 +:1015800090E09F0121C06430D8F4E62FF0E0EE0F28 +:10159000FF1FEE5DFE4F2081318189E090E014C095 +:1015A000643070F470E0FB01EE0FFF1FE65EFE4F4B +:1015B00020813181FB01EA5EFE4F808190E004C012 +:1015C00080E090E020E030E0FA013183208308954C +:1015D00080E189BD82E189BD09B400FEFDCF809123 +:1015E000D8008F7D8093D8008091E0008260809346 +:1015F000E0008091E00081FDFCCF0895CF92DF9262 +:10160000EF92FF920F931F93CF93DF93EC018B0127 +:101610006A010E94610C811133C0C114D10439F0F8 +:10162000F60180819181081B190BC80FD91FE12C8D +:10163000F12C0115110519F18091E80085FD16C006 +:101640008091E8008E778093E800C114D10449F0BE +:10165000F60180819181E80EF91EF182E08285E039 +:101660000FC00E94610C882321F30AC089918093E6 +:10167000F10001501109FFEFEF1AFF0ADACF80E005 +:10168000DF91CF911F910F91FF90EF90DF90CF905E +:1016900008952091EB013091EC012617370748F0AF +:1016A0006115710539F42091E8002E772093E80048 +:1016B00001C0B90140E061157105A9F12091E40173 +:1016C000222309F443C0253009F442C02091E800E8 +:1016D00023FD40C02091E80022FD32C02091E800A7 +:1016E00020FFE9CF4091F3002091F20030E0342B4D +:1016F000FC01CF016115710559F02830310540F426 +:1017000081918093F100615071092F5F3F4FF1CFBC +:1017100041E02830310509F040E02091E8002E77C3 +:101720002093E800C8CF4111C9CF0AC08091E401DD +:10173000882361F0853061F08091E80083FD0AC064 +:101740008091E80082FFF2CF80E0089582E0089562 +:1017500083E0089581E008952091EB013091EC0140 +:101760002617370748F06115710539F42091E80014 +:101770002E772093E80001C0B901FC0120E061153B +:10178000710591F18091E401882309F440C085300E +:1017900009F43FC08091E80083FD3DC08091E800DE +:1017A00082FD2FC08091E80080FFE9CF2091F300F7 +:1017B0008091F20090E0922B6115710559F088300C +:1017C000910540F424912093F10031966150710904 +:1017D0000196F2CF21E0089709F020E08091E8001F +:1017E0008E778093E800CBCF2111CCCF0AC08091B7 +:1017F000E401882361F0853061F08091E80083FD89 +:101800000AC08091E80082FFF2CF80E0089582E074 +:10181000089583E0089581E00895982F973058F552 +:101820009093E900981739F07091EC002091ED0049 +:101830005091F00003C0242F762F50E021FF19C0F3 +:101840003091EB003E7F3093EB003091ED003D7F17 +:101850003093ED003091EB0031603093EB007093EA +:10186000EC002093ED005093F0002091EE0027FF54 +:1018700007C09F5FD3CF8F708093E90081E0089508 +:1018800080E008958091E50187FF11C08091E80014 +:1018900082FD05C08091E4018111F8CF11C08091D3 +:1018A000E8008B770BC08091E401882349F0809198 +:1018B000E80080FFF8CF8091E8008E778093E80001 +:1018C00008952091E4003091E50095E64091EC0008 +:1018D000842F817040FF22C08091E80080FD1CC0F1 +:1018E0008091E401882391F0853091F08091EB00A4 +:1018F00085FD10C04091E4005091E5004217530768 +:1019000029F39A01915011F784E0089582E0089537 +:1019100083E0089581E0089580E008954091E80013 +:1019200042FFDECF08950E94010D0E94090DE0EEF6 +:10193000F0E0808181608083E8EDF0E080818F7746 +:10194000808319BCA7EDB0E08C918E7F8C93808151 +:101950008F7E80831092E30108950F931F93CF939E +:10196000DF930E94010D0E94090DC8EDD0E088812F +:101970008F77888388818068888388818F7D88833A +:1019800019BC1092E4011092E0011092E201109251 +:10199000E10100EE10E0F80180818B7F8083888177 +:1019A0008160888342E060E080E00E940D0CE1EEFF +:1019B000F0E080818E7F8083E2EEF0E080818160C4 +:1019C0008083808188608083F80180818E7F80831E +:1019D000888180618883DF91CF911F910F91089555 +:1019E000E8EDF0E080818F7E8083E7EDF0E080819C +:1019F0008160808384E082BF81E08093E3010C9466 +:101A0000AD0CE8EDF0E080818E7F80831092E200E3 +:101A100008951092DA001092E10008951F920F923B +:101A20000FB60F9211242F933F934F935F936F93B1 +:101A30007F938F939F93AF93BF93EF93FF93809187 +:101A4000E10082FF0BC08091E20082FF07C080911D +:101A5000E1008B7F8093E1000E94750F8091DA0096 +:101A600080FF1FC08091D80080FF1BC08091DA00EA +:101A70008E7F8093DA008091D90080FF0DC080E1D5 +:101A800089BD82E189BD09B400FEFDCF81E080936C +:101A9000E4010E94700905C019BC1092E4010E9483 +:101AA0007E098091E10080FF19C08091E20080FFF3 +:101AB00015C08091E2008E7F8093E2008091E20069 +:101AC00080618093E2008091D80080628093D8008A +:101AD00019BC85E08093E4010E9482098091E100B5 +:101AE00084FF30C08091E20084FF2CC080E189BD7A +:101AF00082E189BD09B400FEFDCF8091D8008F7DC1 +:101B00008093D8008091E1008F7E8093E1008091E6 +:101B1000E2008F7E8093E2008091E20081608093FA +:101B2000E2008091E001882311F084E007C08091F9 +:101B3000E30087FD02C081E001C083E08093E401FF +:101B40000E9484098091E10083FF29C08091E20016 +:101B500083FF25C08091E100877F8093E10082E0D0 +:101B60008093E4011092E0018091E1008E7F8093E8 +:101B7000E1008091E2008E7F8093E2008091E2009C +:101B800080618093E20042E060E080E00E940D0C02 +:101B90008091F00088608093F0000E948109FF919D +:101BA000EF91BF91AF919F918F917F916F915F91D5 +:101BB0004F913F912F910F900FBE0F901F9018954E +:101BC0001F920F920FB60F9211242F933F934F93B2 +:101BD0005F936F937F938F939F93AF93BF93CF93B5 +:101BE000DF93EF93FF93C091E900CF708091EC00F9 +:101BF000D82FD17080FDD0E81092E9008091F000DC +:101C0000877F8093F00078940E94240E1092E90060 +:101C10008091F00088608093F000CD2BCF70C0934E +:101C2000E900FF91EF91DF91CF91BF91AF919F912B +:101C30008F917F916F915F914F913F912F910F9075 +:101C40000FBE0F901F9018951F93CF93DF93CDB7C2 +:101C5000DEB7AA970FB6F894DEBF0FBECDBFE5EE94 +:101C6000F1E088E08E0F9091F10091938E13FBCFFD +:101C70000E94A0098091E80083FF1FC18091E501C7 +:101C80009091E601492F50E04A30510508F015C106 +:101C9000FA01EA5AFF4F0C941F24803881F08238F1 +:101CA00009F00BC18091E9018F708093E900809168 +:101CB000EB0085FB882780F91092E90006C080912F +:101CC000E1019091E201911182609091E800977F8B +:101CD0009093E8008093F1001092F100C8C0282F83 +:101CE0002D7F09F0EAC0882319F0823061F0E5C049 +:101CF0008091E701813009F0E0C0933009F080E085 +:101D00008093E2012BC08091E701811127C080916F +:101D1000E9018F7009F4D1C08093E9002091EB00B4 +:101D200020FF1CC0933021F48091EB00806214C02E +:101D30009091EB0090619093EB0021E030E0A901DD +:101D400002C0440F551F8A95E2F74093EA001092B3 +:101D5000EA008091EB0088608093EB001092E9002C +:101D60008091E800877F86C08111A7C01091E701AC +:101D70001F778091E3008078812B8093E30080912E +:101D8000E800877F8093E8000E94420C8091E80081 +:101D900080FFFCCF8091E30080688093E300111105 +:101DA00002C082E001C083E08093E40186C08058D5 +:101DB000823008F082C08091E7019091E8018C3D6B +:101DC00053E0950779F583E08A838AE289834FB7E8 +:101DD000F894DE01139620E03EE051E2E32FF0E0BC +:101DE00050935700E49120FF03C0E295EF703F5FEE +:101DF000EF708E2F90E0EA3010F0C79601C0C096C9 +:101E00008D939D932F5F243149F74FBF8091E80058 +:101E1000877F8093E8006AE270E0CE0101960E941D +:101E2000490B14C0AE014F5F5F4F6091E9010E9402 +:101E3000900ABC01892B09F440C09091E800977F7B +:101E40009093E80089819A810E94AC0B8091E80010 +:101E50008B778093E80031C0803879F58091E80075 +:101E6000877F8093E8008091E0018093F10080916A +:101E7000E8008E778093E8000E94420C1EC081111A +:101E80001CC09091E7019230C0F48091E800877FF8 +:101E90008093E8009093E0010E94420C8091E00161 +:101EA000811106C08091E30087FD02C081E001C07E +:101EB00084E08093E4010E948C098091E80083FF14 +:101EC0000AC08091E800877F8093E8008091EB0052 +:101ED00080628093EB00AA960FB6F894DEBF0FBE27 +:101EE000CDBFDF91CF911F9108950895CF93809139 +:101EF000E4018823A1F0C091E900CF709091EC003B +:101F0000892F817090FD80E8C82B1092E9008091A4 +:101F1000E80083FD0E94240ECF70C093E900CF91AA +:101F2000089590936901809368010895E091680194 +:101F3000F0916901309721F00190F081E02D099432 +:101F400080E00895E0916801F0916901309721F0F7 +:101F50000280F381E02D09940895E0916801F091E9 +:101F60006901309721F00480F581E02D09940895EE +:101F700020916601309167018217930771F0909369 +:101F8000670180936601E0916801F09169013097E3 +:101F900021F00680F781E02D0994089520916401D5 +:101FA000309165018217930771F0909365018093DA +:101FB0006401E0916801F0916901309721F000849B +:101FC000F185E02D0994089508950C94E40F0E9482 +:101FD000FA1B0E94A7040C94C01CCF92DF92EF92D0 +:101FE000FF920F931F93CF93DF93CDB7DEB72B975D +:101FF0000FB6F894DEBF0FBECDBF0E94BF048BE6C4 +:10200000C82E81E0D82E00E010E0E02E802F0E9444 +:10201000AD05F60141916F01F42EF826B1F40F5F82 +:102020001F4F0E30110589F78FEF89838A831B823A +:102030000E94031C8160782F9D838C8349815A8183 +:102040006B818D810E94901040C09091CD0191FFD5 +:1020500004C08B870E94B3058B8520E030E04F2DB4 +:1020600050E0922FBA01022E02C0759567950A942E +:10207000E2F760FF24C02E83EF8221E030E06901A7 +:1020800002C0CC0CDD1C9A95E2F790E08C219D21DA +:10209000892B09F420E028870E94031C8160782F97 +:1020A0009A8789874E815F8168858A850E94901012 +:1020B000F801E559FE4F8081C826C08206C02F5F17 +:1020C0003F4F2630310569F6AACF0E94A71F109115 +:1020D0006A010E94960F1817A1F00E94960F809334 +:1020E0006A012B960FB6F894DEBF0FBECDBFDF910D +:1020F000CF911F910F91FF90EF90DF90CF900C94B4 +:102100008F082B960FB6F894DEBF0FBECDBFDF91C0 +:10211000CF911F910F91FF90EF90DF90CF90089596 +:10212000CF93DF93CDB7DEB72B970FB6F894DEBF12 +:102130000FBECDBF4F83588769877A878B87DE01B3 +:10214000119686E0FD0111928A95E9F785E0FE017E +:10215000379601900D928A95E1F749815A816B81FA +:102160007C818D819E810E94C0172B960FB6F894BA +:10217000DEBF0FBECDBFDF91CF9108950895CF93FD +:10218000882309F4C2C0C82F823859F40E94960FE0 +:1021900081FDBBC089E30E94691A0E94361B89E356 +:1021A0000CC0833879F40E94960F80FDAEC083E5A1 +:1021B0000E94691A0E94361B83E50E94AB1ACF91D8 +:1021C0000C94361B843859F40E94960F82FD9DC0F2 +:1021D00087E40E94691A0E94361B87E4EECF8CEFD9 +:1021E0008C0F813A48F48C2F0E94EA2181118DC016 +:1021F0008C2F0E94691AE3CF80E28C0F883048F45C +:10220000C77081E001C0880FCA95EAF70E94EF1AF3 +:10221000D6CF8BE58C0F833078F4C53A29F0C63AD7 +:1022200031F083E890E005C081E890E002C082E8E8 +:1022300090E0CF910C94B80F88E58C0F833108F0B3 +:1022400064C0C83A39F1C93A41F1CA3A49F1CB3AC6 +:1022500051F1CC3A59F1CD3A61F1C03B69F1CE3A36 +:1022600071F1CF3A79F1C13B81F1C23B89F1C33BB6 +:1022700091F1C43B99F1C53BA1F1C63BA9F1C73B24 +:10228000B1F1C83BB9F1C93BC1F1CA3BC9F180E02A +:1022900090E038C082EE90E035C089EE90E032C028 +:1022A0008AEE90E02FC085EB90E02CC086EB90E0AA +:1022B00029C087EB90E026C08CEC90E023C08DEC29 +:1022C00090E020C083E891E01DC08AE891E01AC048 +:1022D00082E991E017C084E991E014C081E292E0C4 +:1022E00011C083E292E00EC084E292E00BC085E26E +:1022F00092E008C086E292E005C087E292E002C068 +:102300008AE292E0CF910C94CE0FCF91089588236A +:1023100009F44BC0823859F40E94960F81FF45C0E2 +:1023200089E30E94691A0E94361B89E30CC0833836 +:1023300071F40E94960F80FF38C083E50E94691AED +:102340000E94361B83E50E94AB1A0C94361B84381E +:1023500059F40E94960F82FF28C087E40E94691AF0 +:102360000E94361B87E4EFCF9CEF980F913A58F309 +:1023700090E2980F983050F4877091E001C0990F67 +:102380008A95EAF7892F0E94F51ADFCF9BE5980F0F +:10239000933020F480E090E00C94B80F885A833199 +:1023A00020F480E090E00C94CE0F0895882321F073 +:1023B0000E94EF1A0C94361B0895882321F00E9486 +:1023C000F51A0C94361B0895BF92CF92DF92EF92CC +:1023D000FF920F931F93CF93DF9300D000D000D0D4 +:1023E000CDB7DEB725E0FC01DE01119601900D921C +:1023F0002A95E1F7FC01D080118102812581229587 +:102400002F7043815481452B09F4FCC21F3F21F4F6 +:10241000FFEFDF1609F4F6C27C012E830E94BE1086 +:10242000D9821A8369817A81802F0E94651A182FB8 +:10243000B92E0E941A1A0E94E1182E81002319F069 +:102440000E940C1B2E81EB2DE295EF70F0E0E05A1C +:10245000FF4F0C941F248B2D807F9B2D9F70F92E96 +:10246000882319F0F29480EFF822002389F0FF20EE +:1024700009F475C280E2810F883020F48F2D0E940C +:10248000EF1A03C08F2D0E94FF1A0E94361B67C2ED +:10249000812F0E948711FF2009F4B4C2105E8F2D96 +:1024A000183018F40E94F51A02C00E94051B2696E7 +:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155 +:1024C0000F91FF90EF90DF90CF90BF900C94361B50 +:1024D0003B2D307F8B2D8F70303211F08295807FB5 +:1024E000112319F0113021F12CC00023B9F022235F +:1024F00009F4A0C1213009F09DC126960FB6F894C9 +:10250000DEBF0FBECDBFDF91CF911F910F91FF9026 +:10251000EF90DF90CF90BF900C941F1B222319F0F7 +:10252000213009F46FC28E830E94221B8E8196C1D6 +:10253000002321F0223008F065C27CC1211162C263 +:102540008DC1002321F0222309F474C108C2222383 +:1025500009F484C119C22B2D26952695237030E0ED +:102560002115310521F021303105D1F04BC2002376 +:1025700021F0812F9B2D937002C080E090E0269681 +:102580000FB6F894DEBF0FBECDBFDF91CF911F9184 +:102590000F91FF90EF90DF90CF90BF900C94B80F09 +:1025A000002321F0812F9B2D937002C080E090E0EA +:1025B00026960FB6F894DEBF0FBECDBFDF91CF9148 +:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 +:1025D000CE0F812F002319F00E94AF1E02C00E946F +:1025E000171F26960FB6F894DEBF0FBECDBFDF9142 +:1025F000CF911F910F91FF90EF90DF90CF90BF9000 +:102600000C949C1F8B2D837009F07BC00111FAC1C3 +:10261000812F829586958770880F880F912F9F70E4 +:10262000C92ED12CE12CF12C082E04C0CC0CDD1CC1 +:10263000EE1CFF1C0A94D2F714FF12C04FE050E0CA +:1026400060E070E004C0440F551F661F771F8A9535 +:10265000D2F7CB01BA01609570958095909503C033 +:1026600060E070E0CB012B2D269526952370422F3C +:1026700050E042305105D9F04330510569F16C29E1 +:102680007D298E299F294130510551F126960FB69B +:10269000F894DEBF0FBECDBFDF91CF911F910F9198 +:1026A000FF90EF90DF90CF90BF900C9408196C29A9 +:1026B0007D298E299F2926960FB6F894DEBF0FBE7E +:1026C000CDBFDF91CF911F910F91FF90EF90DF90E1 +:1026D000CF90BF900C9424190E940819C701B6012D +:1026E00026960FB6F894DEBF0FBECDBFDF91CF9117 +:1026F0001F910F91FF90EF90DF90CF90BF900C94BF +:10270000EC18002319F08B2D817001C08695882369 +:1027100009F478C1812F829586958770880F880F7C +:10272000912F9F70C92ED12CE12CF12C082E04C0C2 +:10273000CC0CDD1CEE1CFF1C0A94D2F714FF12C057 +:102740004FE050E060E070E004C0440F551F661F8A +:10275000771F8A95D2F7CB01BA0160957095809565 +:10276000909503C060E070E0CB012B2D2695269557 +:102770002370422F50E042305105D9F043305105CB +:1027800069F16C297D298E299F294130510551F12C +:1027900026960FB6F894DEBF0FBECDBFDF91CF9166 +:1027A0001F910F91FF90EF90DF90CF90BF900C940E +:1027B000E2196C297D298E299F2926960FB6F89457 +:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064 +:1027D000EF90DF90CF90BF900C94FE190E94E21909 +:1027E000C701B60126960FB6F894DEBF0FBECDBF67 +:1027F000DF91CF911F910F91FF90EF90DF90CF90DD +:10280000BF900C94C619103FD1F118F4103E50F44B +:10281000A1C0123F09F463C008F44CC0133F09F48F +:1028200073C098C01F708B2D8F710023A1F00E9480 +:102830005F19812F26960FB6F894DEBF0FBECDBF6D +:10284000DF91CF911F910F91FF90EF90DF90CF908C +:10285000BF900C94D6110E948019812F26960FB636 +:10286000F894DEBF0FBECDBFDF91CF911F910F91C6 +:10287000FF90EF90DF90CF90BF900C94DD1100237C +:10288000A9F02111BFC08B2D8F7126960FB6F89439 +:10289000DEBF0FBECDBFDF91CF911F910F91FF9093 +:1028A000EF90DF90CF90BF900C94A519223008F0E4 +:1028B000A9C0E9CF0023A9F08B2D8F7126960FB602 +:1028C000F894DEBF0FBECDBFDF91CF911F910F9166 +:1028D000FF90EF90DF90CF90BF900C945F19002392 +:1028E00059F38B2D8F7126960FB6F894DEBF0FBE6D +:1028F000CDBFDF91CF911F910F91FF90EF90DF90AF +:10290000CF90BF900C948019002399F08B2D8F717C +:1029100026960FB6F894DEBF0FBECDBFDF91CF91E4 +:102920001F910F91FF90EF90DF90CF90BF900C948C +:102930004A1926960FB6F894DEBF0FBECDBFDF91C1 +:10294000CF911F910F91FF90EF90DF90CF90BF90AC +:102950000C9440190023A9F0222309F4ADCF812F54 +:1029600026960FB6F894DEBF0FBECDBFDF91CF9194 +:102970001F910F91FF90EF90DF90CF90BF900C943C +:10298000BF10222309F4ADCF812F26960FB6F894FD +:10299000DEBF0FBECDBFDF91CF911F910F91FF9092 +:1029A000EF90DF90CF90BF900C9487114B2D4F701C +:1029B000612FC7010E94510326960FB6F894DEBF1F +:1029C0000FBECDBFDF91CF911F910F91FF90EF9080 +:1029D000DF90CF90BF900C9464184B2D4F70612FF7 +:1029E000C70126960FB6F894DEBF0FBECDBFDF91AC +:1029F000CF911F910F91FF90EF90DF90CF90BF90FC +:102A00000C94B40526960FB6F894DEBF0FBECDBF6A +:102A1000DF91CF911F910F91FF90EF90DF90CF90BA +:102A2000BF9008950E940C1B0E941C1B0E94E11A7B +:102A30000E94361B0E944D200E949C1F80E090E067 +:102A40000E94B80F80E090E00C94CE0F0E94FC1A18 +:102A50000C9412150E945A1A292F22952F7030E0DB +:102A60002C3031054CF42A3031056CF422503109F8 +:102A70002230310588F407C02C30310549F02F3061 +:102A8000310531F009C0803E48F0803F29F406C08E +:102A900093FB882780F9089580E0089581E00895E8 +:102AA000CF93DF9300D000D01F92CDB7DEB70F9049 +:102AB0000F900F900F900F90DF91CF910895CF93CB +:102AC000DF9300D000D000D0CDB7DEB726960FB68A +:102AD000F894DEBF0FBECDBFDF91CF9108951F9355 +:102AE000CF93DF93C091790116E080917A01C817E6 +:102AF00099F0D0E01C9FF0011D9FF00D1124E558C6 +:102B0000FE4F4081518162817381848195810E9451 +:102B10005F152196C770E9CFDF91CF911F9108957E +:102B20004091AB015091AC016091AD017091AE014B +:102B30008091AF019091B0010C945F158091B0012C +:102B400082958F7009F054C08091AD01882309F4FB +:102B50004FC080917901A0917A016091AB01709191 +:102B6000AC014091AE015091AF01B6E08A1709F473 +:102B70003FC090E041155105C1F17F3F11F46F3F17 +:102B8000A1F1B89FF001B99FF00D1124E558FE4F57 +:102B9000218172132AC02081621327C02281211152 +:102BA00024C0238134812417350710F421503109C2 +:102BB000241B350B283C3105C0F42091B0012F7047 +:102BC00020612093B00126E0289FF001299FF00D9D +:102BD0001124E058FE4F80818F70806180838BEAE2 +:102BE00091E00E94E4110C946F1501968770BECF9E +:102BF0000895CF92DF92EF92FF920F931F93CF939E +:102C0000DF93CDB7DEB762970FB6F894DEBF0FBE85 +:102C1000CDBF8C0185E0F801DE011D9601900D927B +:102C20008A95E1F7D8014C9111965C911197129613 +:102C30006C9112971396CD90DC9014973091AB0164 +:102C40007091AC018091AE019091AF01009709F4B1 +:102C50006BC17F3F19F43F3F09F466C1E090AD01BD +:102C6000EE2009F4C0C02091B001C816D90628F0A2 +:102C7000F601E81BF90BCF0104C0809590958C0DEF +:102C80009D1DFF24F394883C910578F0F12C207F62 +:102C900009F0C6C07C2DD98AC88A89890E9450153E +:102CA0008BEA91E00E94E411B1C0822F807F09F08D +:102CB00046C0751314C0341312C0611110C02F70B8 +:102CC00020612093B0010E9490158BEA91E00E9450 +:102CD000E4118091B001D80115968C932EC0CD28B7 +:102CE00019F15F3F11F44F3FF9F0F62E61111CC04E +:102CF0008091790120917A0136E0821709F45AC057 +:102D000090E0389FF001399FF00D1124E558FE4FF7 +:102D10007181571306C07081471303C0728171110E +:102D200003C001968770E9CFF62E662309F418C117 +:102D30008091B00181608093B001F12C11C17513B5 +:102D400008C0341306C0611104C08091B001D801DD +:102D5000C3C04D875E878D859E856A8B0E942A152C +:102D60006A898823E1F16623D1F12091B001822F95 +:102D700082958F7090E0029774F08091AB019091F2 +:102D8000AC0198878F831986DB86CA862C87CE0193 +:102D900007960E94E41186E0F801ABEAB1E00190E9 +:102DA0000D928A95E1F70E949E150E949015FF24CE +:102DB000F394D6C04D875E878D859E850E945A1AF2 +:102DC000292F22952F7030E0223031050CF0BCC045 +:102DD0009F7009F0B6C0805E883008F4C1C0C80199 +:102DE0000E94E411E4CFC816D90608F453C0F601D6 +:102DF000E81BF90BCF01883C910508F450C0F12C79 +:102E00007C2DD98AC88A89890E945015EBEAF1E0A5 +:102E100086E0DF011D928A95E9F70E949015A0C017 +:102E2000751314C0341312C0611110C08091B00129 +:102E3000F8018583C8010E94E41186E0EBEAF1E025 +:102E4000DF011D928A95E9F7FE2C8AC04D875E87C7 +:102E50008D859E856A8B0E942A156A89882309F4CC +:102E6000BECF662309F4BBCF2091B001822F82959B +:102E70008F7090E002970CF48ECF8091AB0190910F +:102E8000AC019A8389831B82DD82CC822E83CE01A2 +:102E900001967FCF809590958C0D9D1DACCFF62E21 +:102EA000662309F49CCF75132EC034132CC02091D7 +:102EB000B00120FD1FC0822F82958F70D9F0D801FC +:102EC00015962C9315978F3049F08F5F982F929518 +:102ED000907F822F8F70892B15968C93C8010E944A +:102EE000E41186E0F801ABEAB1E001900D928A9519 +:102EF000E1F793CF86E0F801ABEAB1E001900D92E3 +:102F00008A95E1F72DC04D875E878D859E850E944D +:102F10002A15811140CF8091B00181608093B0016A +:102F2000C8010E94E4111CC0662309F458CF4D87E4 +:102F30005E878D859E850E942A15882309F44FCFD0 +:102F40002ACF811148CF0CC0243031050CF047CF77 +:102F50009F7009F440CFF8019581907F09F03BCF35 +:102F60008F2D62960FB6F894DEBF0FBECDBFDF91F6 +:102F7000CF911F910F91FF90EF90DF90CF90089528 +:102F80001F93CF93DF93CDB7DEB72C970FB6F8948E +:102F9000DEBF0FBECDBF4F83588769877A878B8787 +:102FA0009C87CE0107960E94F915882369F08F81CE +:102FB00098852A853B85232BF1F19F3F09F063C05B +:102FC0008F3F09F060C037C086E0FE013796DE0112 +:102FD000119601900D928A95E1F76F817885EA85C7 +:102FE000FB85309741F17F3F11F46F3F21F1209134 +:102FF0007A0130E0C90101968770992740917901E3 +:1030000050E08417950709F447C069837A83FD83EC +:10301000EC8396E0929FD001939FB00D1124A558A8 +:10302000BE4FFE01319601900D929A95E1F7809383 +:103030007A010E946F1516E08091790190917A01D2 +:103040008917C1F1189FC001112485589E4F0E9415 +:10305000F915882379F1E09179011E9FF00111247F +:10306000E558FE4F40815181628173818481958151 +:103070000E945F158091790190E0019687709927F1 +:1030800080937901D9CF4F81588569857A858B8561 +:103090009C850E945F15CFCF0E94261510927A0161 +:1030A00010927901EBEAF1E086E0DF011D928A954A +:1030B000E9F7C1CF2C960FB6F894DEBF0FBECDBF97 +:1030C000DF91CF911F910895EF92FF920F931F937D +:1030D000CF93DF938C01892B09F46CC0F12CEE2483 +:1030E000E394E8012196F8018491843740F4843018 +:1030F00008F051C0813081F0823019F15BC0853712 +:1031000009F444C0A8F19CE7980F903708F052C02A +:103110008F770E94871141C00E5F1F4FFE01C4913F +:1031200080E28C0F883048F4C7708E2D01C0880F64 +:10313000CA95EAF70E940F1B14C08C2F0E94BF1083 +:103140002DC00E5F1F4FFE01C49180E28C0F8830AE +:1031500058F4C7708E2D01C0880FCA95EAF70E94F7 +:10316000151B0E94361B1AC08C2F0E94871116C097 +:103170000E5F1F4FFE01C491CC2381F08FE99FE0C9 +:103180000197F1F700C00000C150F6CF0E5F1F4F4E +:10319000FE01F49003C00E94BF108E018F2D882382 +:1031A00009F49FCFEFE9FFE03197F1F700C000008D +:1031B0008150F5CFDF91CF911F910F91FF90EF904C +:1031C000089508956093B5017093B6018093B70197 +:1031D0009093B8010C9412150F931F930091B501B1 +:1031E0001091B6012091B7013091B801DC01CB01FB +:1031F000802B912BA22BB32B8093B5019093B6011A +:10320000A093B701B093B8011F910F910C941215C0 +:103210000F931F930091B5011091B6012091B70152 +:103220003091B801DC01CB0180239123A223B32389 +:103230008093B5019093B601A093B701B093B80104 +:103240001F910F910C9412150F931F930091B501CC +:103250001091B6012091B7013091B801DC01CB018A +:1032600080279127A227B3278093B5019093B601B9 +:10327000A093B701B093B8011F910F910C94121550 +:103280001092B1011092B2011092B3011092B401E8 +:103290000C94121541E050E060E070E004C0440F6F +:1032A000551F661F771F8A95D2F74093B10150933F +:1032B000B2016093B3017093B4010C94121541E014 +:1032C00050E060E070E004C0440F551F661F771F98 +:1032D0008A95D2F78091B1019091B201A091B3018A +:1032E000B091B401482B592B6A2B7B2B4093B10131 +:1032F0005093B2016093B3017093B4010C94121512 +:1033000041E050E060E070E004C0440F551F661FCC +:10331000771F8A95D2F7409550956095709580916A +:10332000B1019091B201A091B301B091B4014823D1 +:1033300059236A237B234093B1015093B2016093D8 +:10334000B3017093B4010C94121541E050E060E0B9 +:1033500070E004C0440F551F661F771F8A95D2F78F +:103360008091B1019091B201A091B301B091B401EB +:10337000482759276A277B274093B1015093B20110 +:103380006093B3017093B4010C9412150F931F93C3 +:103390000091B1011091B2012091B3013091B401BB +:1033A000DC01CB01802B912BA22BB32B8093B1019D +:1033B0009093B201A093B301B093B4011F910F9108 +:1033C0000C9412150F931F930091B1011091B2014B +:1033D0002091B3013091B401DC01CB018023912312 +:1033E000A223B3238093B1019093B201A093B301C0 +:1033F000B093B4011F910F910C9412150F931F936A +:103400000091B1011091B2012091B3013091B4014A +:10341000DC01CB0180279127A227B3278093B1013C +:103420009093B201A093B301B093B4011F910F9197 +:103430000C9412150895CF92DF92EF92FF920F93A2 +:103440001F93CF93DF938C01C090B501D090B6014C +:10345000E090B701F090B8018091B1019091B20174 +:10346000A091B301B091B401C82AD92AEA2AFB2A53 +:10347000CFE1D0E0D701C6010C2E04C0B695A795C8 +:10348000979587950A94D2F780FF06C0B8018C2FD4 +:103490000E94F407019721F4219760F780E001C0B2 +:1034A0008C2FDF91CF911F910F91FF90EF90DF90C4 +:1034B000CF900895CF93DF93EC010E941B1ABE01B9 +:1034C0000E94F407DF91CF910895CB010E945A1A10 +:1034D000089590910C01992321F090910D01911183 +:1034E00009C020910E0130910F01F90132969FEF32 +:1034F00040E01FC0982F9695969596959F3050F571 +:10350000E0910E01F0910F01E90FF11D877021E0AC +:1035100030E0A90102C0440F551F8A95E2F7CA01A5 +:103520009181892B818308959F3F39F04F5F4E3001 +:1035300041F051915813F8CF0DC05111F7CF942F8E +:10354000F5CF9F3F39F0F901E90FF11D97FDFA958D +:1035500082830895089590910C01992321F0909110 +:103560000D01911109C020910E0130910F01F90157 +:103570003296205F3F4F1FC0982F9695969596954F +:103580009F30F0F4E0910E01F0910F01E90FF11D71 +:10359000877021E030E0A90102C0440F551F8A95D1 +:1035A000E2F7CA018095918189238183089531963C +:1035B000E217F30729F090819813F9CF1082F7CF23 +:1035C000089581E090E0E0910E01F0910F01E80F85 +:1035D000F91F1082019680319105A9F70895909105 +:1035E000CC01892B8093CC01089580959091CC01DA +:1035F00089238093CC0108951092CC010895909175 +:10360000CB01892B8093CB01089580959091CB01BC +:1036100089238093CB0108951092CB010895909156 +:10362000CA01892B8093CA01089580959091CA019F +:1036300089238093CA0108951092CA010895809346 +:10364000B90108951092B901089580910E019091E9 +:103650000F01FC0131969C01205F3F4F80E091916A +:1036600091118F5FE217F307D1F70895E0910E01F2 +:10367000F0910F018091CC018083E0910E01F091D7 +:103680000F0190818091CB01892B8083E0910E0105 +:10369000F0910F0190818091CA01892B80838091E4 +:1036A000B901882361F0E0910E01F0910F01908142 +:1036B000892B80830E94251B81111092B901809172 +:1036C0000E0190910F010C94A20FCF92DF92EF9216 +:1036D000FF926C01EE24FF24C114D104E104F10433 +:1036E00021F0C701B60120E101C020E0C72ED82E8D +:1036F000E92EFF24C114D104E104F10419F0285F7C +:10370000C701B6016B017C0154E0F694E794D794AD +:10371000C7945A95D1F7C114D104E104F10419F00A +:103720002C5FC701B6016B017C0142E0F694E7947F +:10373000D794C7944A95D1F7C114D104E104F10498 +:1037400019F02E5FC701B601DC01CB01B695A79534 +:1037500097958795892B8A2B8B2B09F02F5F822FCA +:10376000FF90EF90DF90CF9008958091E401843036 +:1037700021F11092CE0120E488E190E00FB6F89498 +:10378000A895809360000FBE2093600080E00E94A7 +:103790008F0883B7817F846083BF83B7816083BFD5 +:1037A0007894889583B78E7F83BF88E10FB6F894AD +:1037B00080936000109260000FBE089508950895F0 +:1037C000CF930E94DE1B0E94BF040E94DF1BC0E05B +:1037D0008C2F0E94AD05811104C0CF5FCE30C1F7A0 +:1037E00001C081E0CF9108950E9426150E94960F96 +:1037F0000C948F0882E084BD93E095BD9AEF97BD4D +:1038000080936E0008952FB7F8948091CF01909126 +:10381000D001A091D101B091D2012FBF0895CF92D4 +:10382000DF92EF92FF920F931F932FB7F89440917E +:10383000CF015091D0016091D1017091D2012FBF81 +:103840006A017B01EE24FF248C0120E030E0C016E9 +:10385000D106E206F30610F4415051099A01281BE3 +:10386000390BC9011F910F91FF90EF90DF90CF901E +:1038700008951F920F920FB60F9211248F939F936A +:10388000AF93BF938091CF019091D001A091D101CE +:10389000B091D2010196A11DB11D8093CF019093EB +:1038A000D001A093D101B093D201BF91AF919F916C +:1038B0008F910F900FBE0F901F9018950E94930C40 +:1038C000F8942FEF87EA91E6215080409040E1F78D +:1038D00000C0000087E090EBDC018093EE01909344 +:1038E000EF01A093F001B093F1019CE088E10FB6E5 +:1038F000F894A895809360000FBE90936000FFCF6E +:10390000EF92FF920F931F93CF93DF93D82FC0E0D6 +:103910008C2F0E94AD0500E010E0E82EF12CC701CD +:10392000002E02C0959587950A94E2F780FD06C0A7 +:103930000F5F1F4F0630110591F709C0602F7C2FD4 +:1039400080E00E94B505D813F3CF81E004C0CF5FBB +:10395000CE30F1F680E0DF91CF911F910F91FF9073 +:10396000EF900895CF93C82F8CE20E94801C88238B +:1039700021F08C2FCF910C94801C80E0CF91089582 +:10398000CF930E94071E811102C00E94ED1DC5E663 +:10399000C15049F00E94BF048FE39CE90197F1F701 +:1039A00000C00000F5CF89E20E94B21C811113C152 +:1039B0008AE20E94B21C81110E94ED1D85E00E94E6 +:1039C000B21C81110E945E1C0E94121E8093CD01C8 +:1039D00087E00E94B21C8823A9F18BE10E94B21CEF +:1039E000882351F08091CD0181FB222720F991E0BD +:1039F000922790FB81F90EC08EE00E94B21C8823B2 +:103A000061F08091CD0182FB222720F991E092277D +:103A100090FB82F98093CD0115C080E10E94B21C19 +:103A20009091CD01882341F093FB222720F981E07A +:103A3000822780FB93F904C0892F809580FB90F941 +:103A40009093CD018091CD010E94161E0E94241EEC +:103A50008093ED0180EE0E94B21C882341F080919A +:103A6000ED01982F909590FB80F98093ED0189E30B +:103A70000E94B21C882359F08091ED0181FB22271E +:103A800020F991E0922790FB81F98093ED0182EE7D +:103A90000E94B21C882359F08091ED0182FB2227FD +:103AA00020F991E0922790FB82F98093ED0186EE58 +:103AB0000E94B21C882359F08091ED0183FB2227DC +:103AC00020F991E0922790FB83F98093ED0183EE3A +:103AD0000E94B21C882359F08091ED0184FB2227BB +:103AE00020F991E0922790FB84F98093ED0185E322 +:103AF0000E94B21C882359F08091ED0185FB22279A +:103B000020F991E0922790FB85F98093ED0181E304 +:103B10000E94B21C882359F08091ED0186FB222778 +:103B200020F991E0922790FB86F98093ED0181E1E5 +:103B30000E94B21C882359F08091ED0187FB222757 +:103B400020F991E0922790FB87F98093ED01809115 +:103B5000ED010E94281E8091ED0187FB882780F9E6 +:103B600080930D0187E20E94B21CC82F8EE10E9453 +:103B7000B21C8111C2608FE10E94B21C8111C4602D +:103B800080E20E94B21C8111C86081E20E94B21CD6 +:103B90008111C06182E20E94B21C8111C06283E285 +:103BA0000E94B21C8111C06484E20E94B21C88236E +:103BB00011F0C06802C0CC2329F08C2F0E941F1E78 +:103BC0006C2F03C00E941B1E682F70E080E090E005 +:103BD000CF910C94E218CF9108956DEE7EEF80E0C6 +:103BE00090E00E94552460E082E090E00E9447242B +:103BF00060E083E090E00E94472460E084E090E091 +:103C00000E94472460E085E090E00C94472480E027 +:103C100090E00E94412421E08D3E9E4F09F020E07B +:103C2000822F089582E090E00C943924682F82E07E +:103C300090E00C94472483E090E00C943924682FA2 +:103C400083E090E00C94472484E090E00C943924C5 +:103C5000682F84E090E00C9447248091D50180FF88 +:103C60000BC06091130185E0689FB0011124759528 +:103C70006795759567952BC081FF09C06091130109 +:103C800085E0689FB00111247595679520C082FF7B +:103C900007C06091130185E0689FB001112417C02F +:103CA0009091D6019923D1F060911201961788F76F +:103CB0002091130185E0289F90011124929FA0017B +:103CC000939F500D112470E0CA010E940B246038AC +:103CD000710540F46115710539F002C065E070E0CE +:103CE000862F08958FE7089581E008958091D5018A +:103CF00080FF08C06091110170E07595679575951A +:103D0000679521C081FF06C06091110170E0759533 +:103D1000679519C082FF04C06091110170E010C066 +:103D20009091D6019923C1F0609110019617A0F7E8 +:103D300080911101899FC001112470E00E940B2421 +:103D40006038710528F46115710521F0862F0895FA +:103D50008FE7089581E0089561E070E0F4CF803F3F +:103D600021F40E942D1E819504C0813F29F40E94F8 +:103D70002D1E8093D9010895823F21F40E942D1EAB +:103D8000819504C0833F29F40E942D1E8093D801A1 +:103D90000895893F19F40E94761E05C08A3F31F4C8 +:103DA0000E94761E81958093DA0108958B3F21F45D +:103DB0000E94761E819504C08C3F29F40E94761ED5 +:103DC0008093DB010895843F21F48091D7018160C5 +:103DD00017C0853F21F48091D701826011C0863FD2 +:103DE00021F48091D70184600BC0873F21F480913A +:103DF000D701886005C0883F31F48091D701806188 +:103E00008093D70108958D3F21F48091D501816081 +:103E10000BC08E3F21F48091D501826005C08F3F99 +:103E200029F48091D50184608093D5010895803F65 +:103E300039F48091D90187FF6CC01092D90169C013 +:103E4000813F29F48091D9011816BCF362C090918A +:103E5000D801823F29F497FF5CC01092D80159C065 +:103E6000833F19F41916CCF354C0893F41F4809173 +:103E7000DA0118160CF04DC01092DA014AC08A3FE0 +:103E800029F48091DA0187FF44C0F6CF8B3F39F4E3 +:103E90008091DB0187FF3DC01092DB013AC08C3F6F +:103EA00029F48091DB011816BCF333C0843F21F460 +:103EB0008091D7018E7F17C0853F21F48091D70173 +:103EC0008D7F11C0863F21F48091D7018B7F0BC07D +:103ED000873F21F48091D701877F05C0883F31F467 +:103EE0008091D7018F7E8093D70113C08D3F21F43D +:103EF0008091D5018E7F0BC08E3F21F48091D5013A +:103F00008D7F05C08F3F29F48091D5018B7F8093F1 +:103F1000D5018091D80181110EC08091D901811104 +:103F20000AC08091DA01811106C08091DB01811104 +:103F300002C01092D601089587ED91E00E94AD0F66 +:103F40000E94031C9093D4018093D30108951F9382 +:103F5000CF93DF938091D3019091D4010E940F1CE5 +:103F6000AC019091D601992321F02091140130E009 +:103F700006C0209115018AE0289F90011124421764 +:103F8000530708F486C08091D801C091D901D0911F +:103F9000DA011091DB01811107C0C11176C0D11186 +:103FA00074C0111172C075C09F3F19F09F5F90934C +:103FB000D601181624F40E942D1E8093D8018091FA +:103FC000D80187FF05C00E942D1E81958093D801DE +:103FD0001C1624F40E942D1E8093D9018091D901D2 +:103FE00087FF05C00E942D1E81958093D9016091A5 +:103FF000D801662339F1C091D901CC2319F1772773 +:1040000067FD7095872F972F0E941C2323E333E3CE +:1040100043E35FE30E9480230E94E9226093D8017A +:104020006C2F772767FD7095872F972F0E941C2391 +:1040300023E333E343E35FE30E9480230E94E9220A +:104040006093D9011D1624F40E94761E8093DA0134 +:104050008091DA0187FF05C00E94761E81958093CA +:10406000DA01111624F40E94761E8093DB01809100 +:10407000DB0187FF05C00E94761E81958093DB01DE +:10408000DF91CF911F910C949C1F9F3F09F08ECF21 +:1040900096CFDF91CF911F910895E7EDF1E085E094 +:1040A000DF011D928A95E9F71092D6011092D50191 +:1040B0000895833081F128F4813059F08230D1F0B5 +:1040C0000895853009F449C0B8F1863009F456C026 +:1040D000089580911501262F30E0280F311D2F3FC4 +:1040E000310524F4680F6093150108958FEF8093D4 +:1040F0001501089580911401262F30E0280F311DFD +:104100002F3F310524F4680F6093140108958FEF59 +:1041100080931401089580911301262F30E0280F19 +:10412000311D2F3F310524F4680F6093130108956A +:104130008FEF80931301089580911201262F30E0B4 +:10414000280F311D2F3F310524F4680F60931201B1 +:1041500008958FEF80931201089580911101262F09 +:1041600030E0280F311D2F3F310524F4680F609394 +:10417000110108958FEF809311010895809110012E +:10418000262F30E0280F311D2F3F310524F4680F12 +:104190006093100108958FEF80931001089583308C +:1041A00011F128F4813049F0823091F00895853082 +:1041B00081F120F18630C1F10895809115016817D1 +:1041C00020F4861B8093150108951092150108951F +:1041D00080911401681720F4861B809314010895C0 +:1041E00010921401089580911301681720F4861B22 +:1041F0008093130108951092130108958091120184 +:10420000681720F4861B8093120108951092120102 +:10421000089580911101681720F4861B8093110185 +:10422000089510921101089580911001681720F4EB +:10423000861B8093100108951092100108950F932A +:104240001F938D3109F46BC008F03FC08E3009F424 +:104250007FC0C0F4873009F469C068F4863009F083 +:10426000B1C08091CD01817F8E7F8093CD0181E0AF +:104270008093DD01A8C0883009F4A2C08B3009F416 +:104280009FC0A0C0863109F49BC078F4803109F446 +:1042900072C0813109F096C00E94261590910D01DF +:1042A00081E0892780930D018BC0893109F488C092 +:1042B0008B3109F087C08091CD0181FB222720F945 +:1042C00091E0922790FB81F94CC0853309F470C0CE +:1042D00048F4873209F46CC008F459C0893209F4F3 +:1042E00067C070C0833438F48A3308F04EC0883316 +:1042F00009F466C067C0833409F45AC0883409F0F1 +:1043000061C00E9426150FEF13ED20E3015010400D +:104310002040E1F700C000000E945E1C51C00E94D6 +:10432000A3220E94960F0E948F084AC09091CD014F +:10433000892F8095817080FB90F929F096609860B4 +:104340009093CD0140C0997F977F9093CD0138C065 +:104350008091CD0182FB222720F991E0922790FBEA +:1043600082F98093CD01992359F18091CD0181602B +:104370008093CD0125C08091CD0183FB222720F9B8 +:1043800091E0922790FB83F9ECCF895301C08D51C6 +:1043900041E050E060E070E08A019B0104C0000F42 +:1043A000111F221F331F8A95D2F7C901B80104C01B +:1043B00061E070E080E090E00E94E2180E94261523 +:1043C00081E001C080E01F910F91089580E0089581 +:1043D00080E00895CF93C82F8091DD01813079F07E +:1043E00018F08230E9F187C0E0910E01F0910F01E1 +:1043F0008081813169F0823209F07FC009C0E0918B +:104400000E01F0910F018081813111F0823261F44F +:104410008C2F0E94E621811104C08C2F0E941F2145 +:104420001DC081E090E01AC08C2F0E94E82181110C +:1044300014C0C43179F048F4CB3079F0C03109F0C0 +:1044400060C082E08093DD0108C0C93219F0C83332 +:1044500021F057C01092DD0154C081E0817053C03B +:10446000C93289F118F5C43171F1A8F4C73009F0E7 +:1044700046C08AE08093150194E19093140193E083 +:10448000909313018093120188E08093110188E2D8 +:104490008093100134C0CE51C63088F5EC2FF0E087 +:1044A000E65DFE4F80818093DC0129C0CE34E9F0C7 +:1044B00020F4CB3421F56AE013C0C13579F0C23560 +:1044C000F1F461E00DC08091DC01882319F01092B5 +:1044D000DC0115C081E08093DD0115C061E006C0FC +:1044E0008091DC010E9459200AC06AE08091DC01C1 +:1044F0000E94CF2004C01092DD0180E004C081E062 +:1045000002C080E0ABCFCF910895E1E8F0E0808178 +:10451000886080838081816080838FB7F89493E086 +:104520009093890090ED909388008FBF0895EFE6F7 +:10453000F0E08081826080830895EFE6F0E0808182 +:104540008D7F80830895EFE6F0E0908182E08927F7 +:10455000808308951F920F920FB60F9211242F930C +:104560003F934F935F936F937F938F939F93AF93FB +:10457000BF93EF93FF938091DE019091DF0101964D +:104580009093DF018093DE01811103C082E00E94DD +:104590008F08E091DF01E695E695F0E0EA52FA4FE8 +:1045A000E4918091DE018E1303C080E00E948F08A9 +:1045B000FF91EF91BF91AF919F918F917F916F91FB +:1045C0005F914F913F912F910F900FBE0F901F90D1 +:1045D000189504D06894B1118DC0089570D088F0FA +:1045E0009F5790F0B92F9927B751A0F0D1F0660FDF +:1045F000771F881F991F1AF0BA95C9F712C0B130FA +:1046000081F077D0B1E0089574C0672F782F8827A4 +:10461000B85F39F0B93FCCF3869577956795B39538 +:10462000D9F73EF490958095709561957F4F8F4FA7 +:104630009F4F0895E89409C097FB3EF490958095AC +:10464000709561957F4F8F4F9F4F9923A9F0F92F58 +:1046500096E9BB279395F695879577956795B795D6 +:10466000F111F8CFFAF4BB0F11F460FF1BC06F5FBC +:104670007F4F8F4F9F4F16C0882311F096E911C0CE +:10468000772321F09EE8872F762F05C0662371F0EF +:1046900096E8862F70E060E02AF09A95660F771F03 +:1046A000881FDAF7880F9695879597F9089557FD33 +:1046B0009058440F551F59F05F3F71F04795880F90 +:1046C00097FB991F61F09F3F79F087950895121627 +:1046D00013061406551FF2CF4695F1DF08C01616D3 +:1046E00017061806991FF1CF869571056105089484 +:1046F0000895E894BB2766277727CB0197F908959B +:104700000BD078C069D028F06ED018F0952309F04E +:104710005AC05FC01124EECFCADFA0F3959FD1F33A +:10472000950F50E0551F629FF001729FBB27F00D5F +:10473000B11D639FAA27F00DB11DAA1F649F6627B4 +:10474000B00DA11D661F829F2227B00DA11D621F03 +:10475000739FB00DA11D621F839FA00D611D221FBD +:10476000749F3327A00D611D231F849F600D211DA1 +:10477000822F762F6A2F11249F5750408AF0E1F044 +:1047800088234AF0EE0FFF1FBB1F661F771F881F8D +:1047900091505040A9F79E3F510570F014C0AACF28 +:1047A0005F3FECF3983EDCF3869577956795B79578 +:1047B000F795E7959F5FC1F7FE2B880F911D9695A2 +:1047C000879597F9089597F99F6780E870E060E012 +:1047D00008959FEF80EC089500240A94161617069A +:1047E00018060906089500240A94121613061406E2 +:1047F00005060895092E0394000C11F4882352F045 +:10480000BB0F40F4BF2B11F460FF04C06F5F7F4FFC +:104810008F4F9F4F089597FB072E16F4009407D0F3 +:1048200077FD09D00E94252407FC05D03EF4909521 +:1048300081959F4F0895709561957F4F0895EE0F74 +:10484000FF1F0590F491E02D0994AA1BBB1B51E1B9 +:1048500007C0AA1FBB1FA617B70710F0A61BB70BF0 +:10486000881F991F5A95A9F780959095BC01CD0195 +:104870000895F999FECF92BD81BDF89A992780B528 +:104880000895A8E1B0E042E050E00C945C24262FAB +:10489000F999FECF1FBA92BD81BD20BD0FB6F89425 +:1048A000FA9AF99A0FBE019608950E944724272F7D +:1048B0000C944824DC01CB01FC01F999FECF06C021 +:1048C000F2BDE1BDF89A319600B40D9241505040CE +:0848D000B8F70895F894FFCF3A +:1048D800200291081F09FC08C80894080101BA01C0 +:1048E80028080A03140A3F4D363997054A05140566 +:1048F800DB046E048704A004B9040102030405065E +:044908000708090093 :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboard/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/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png differ -- cgit v1.2.3 From 462601f5e8de3476963c6fef44a88653e19fc3fd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 19 Apr 2016 21:25:48 -0400 Subject: breaking changes - restructuring audio.c a little --- keyboard/planck/keymaps/default/keymap.c | 24 +++---- keyboard/preonic/keymaps/default/keymap.c | 37 +++++----- quantum/audio.c | 108 +++++++++++++++++------------- quantum/audio.h | 1 - 4 files changed, 94 insertions(+), 76 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 25a0d78f3..ccf9c7ade 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} }, -/* Plover layer (http://openstenoproject.org) +/* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | * |------+------+------+------+------+-------------+------+------+------+------+------| @@ -225,16 +225,10 @@ float tone_dvorak[][2] = { {440.0*pow(2.0,(31)/12.0), 8} }; -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); + #endif @@ -324,7 +318,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_music, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif } @@ -374,3 +368,9 @@ void matrix_init_user(void) { PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } + +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 144e9c308..ecf3400f8 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -15,7 +15,7 @@ #define _LOWER 3 #define _RAISE 4 #define _MUSIC 5 -#define _ADJUST 6 +#define _ADJUST 16 // Macro name shortcuts #define QWERTY M(_QWERTY) @@ -142,6 +142,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | @@ -161,19 +172,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -}, - -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} } + }; const uint16_t PROGMEM fn_actions[] = { @@ -315,7 +316,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 9: if (record->event.pressed) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(music_scale, false, 0); layer_on(_MUSIC); #endif @@ -341,11 +341,12 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - init_notes(); - _delay_ms(10); - PLAY_NOTE_ARRAY(start_up, false, 0); - #endif + play_startup_tone(); +} + +void play_startup_tone() +{ + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() diff --git a/quantum/audio.c b/quantum/audio.c index 8ea1bf6ff..bbdbc824c 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -74,7 +74,9 @@ float vibrato_counter = 0; float vibrato_strength = .5; float vibrato_rate = 0.125; -float polyphony_rate = .5; +float polyphony_rate = 0; + +bool inited = false; audio_config_t audio_config; @@ -170,7 +172,49 @@ void increase_tempo(uint8_t tempo_change) { } } +void audio_init() { + + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + + #ifdef PWM_AUDIO + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + #else + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + #endif + + inited = true; +} + void stop_all_notes() { + if (!inited) { + audio_init(); + } voices = 0; #ifdef PWM_AUDIO TIMSK3 &= ~_BV(OCIE3A); @@ -191,7 +235,9 @@ void stop_all_notes() { void stop_note(double freq) { if (note) { - cli(); + if (!inited) { + audio_init(); + } #ifdef PWM_AUDIO freq = freq / SAMPLE_RATE; #endif @@ -225,47 +271,9 @@ void stop_note(double freq) { volume = 0; note = false; } - sei(); } } -void init_notes() { - - /* check signature */ - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - audio_config.raw = eeconfig_read_audio(); - - #ifdef PWM_AUDIO - PLLFRQ = _BV(PDIV2); - PLLCSR = _BV(PLLE); - while(!(PLLCSR & _BV(PLOCK))); - PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ - - /* Init a fast PWM on Timer4 */ - TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ - TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ - OCR4A = 0; - - /* Enable the OC4A output */ - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = 0x0; // Options not needed - TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC - OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback - #else - DDRC |= _BV(PORTC6); - - TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs - - TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - #endif -} - float mod(float a, int b) { float r = fmod(a, b); @@ -456,7 +464,10 @@ ISR(TIMER3_COMPA_vect) { void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { if (audio_config.enable) { - cli(); + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } // Cancel note if a note is playing if (note) stop_all_notes(); @@ -485,7 +496,6 @@ if (audio_config.enable) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif - sei(); } } @@ -493,7 +503,10 @@ if (audio_config.enable) { void play_sample(uint8_t * s, uint16_t l, bool r) { if (audio_config.enable) { - + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } stop_all_notes(); place_int = 0; sample = s; @@ -512,7 +525,10 @@ if (audio_config.enable) { void play_note(double freq, int vol) { if (audio_config.enable && voices < 8) { - cli(); + TIMSK3 &= ~_BV(OCIE3A); + if (!inited) { + audio_init(); + } // Cancel notes if notes are playing if (notes) stop_all_notes(); @@ -532,7 +548,6 @@ if (audio_config.enable && voices < 8) { TIMSK3 |= _BV(OCIE3A); TCCR3A |= _BV(COM3A1); #endif - sei(); } } @@ -545,8 +560,11 @@ void play_startup_tone() { } + + __attribute__ ((weak)) void play_goodbye_tone() { + } //------------------------------------------------------------------------------ diff --git a/quantum/audio.h b/quantum/audio.h index 85756af9d..0fe3eac9a 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -55,7 +55,6 @@ void play_sample(uint8_t * s, uint16_t l, bool r); void play_note(double freq, int vol); void stop_note(double freq); void stop_all_notes(void); -void init_notes(void); void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); #define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ -- cgit v1.2.3 From de4690593cec908b19f97509f45c78534fd5440f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 01:08:17 -0400 Subject: fixed startup audio with a 500ms delay --- keyboard/planck/keymaps/default/keymap.c | 1 - keyboard/preonic/Makefile | 2 +- keyboard/preonic/keymaps/default/keymap.c | 43 ++-------- quantum/audio.c | 136 +++++++++++++++++------------- quantum/audio.h | 21 ++++- quantum/vibrato_lut.h | 82 +----------------- 6 files changed, 104 insertions(+), 181 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ccf9c7ade..29a3ccf6a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -364,7 +364,6 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE - init_notes(); PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e2720..c2648d229 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 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) +CONSOLE_ENABLE = on # 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 diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index ecf3400f8..9ee803b06 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,6 +3,7 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" + #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -189,43 +190,10 @@ float start_up[][2] = { {440.0*pow(2.0,(26)/12.0), 8} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8} -}; - -float tone_music[][2] = { - {440.0*pow(2.0,(12)/12.0), 8}, - {440.0*pow(2.0,(14)/12.0), 8}, - {440.0*pow(2.0,(16)/12.0), 8}, - {440.0*pow(2.0,(17)/12.0), 8}, - {440.0*pow(2.0,(19)/12.0), 8}, - {440.0*pow(2.0,(21)/12.0), 8}, - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8} -}; float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -341,12 +309,13 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { + // audio_init(); play_startup_tone(); } void play_startup_tone() { - PLAY_NOTE_ARRAY(start_up, false, 0); + PLAY_NOTE_ARRAY(music_scale, false, 0); } void play_goodbye_tone() diff --git a/quantum/audio.c b/quantum/audio.c index bbdbc824c..ab3444bc9 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -10,20 +10,23 @@ #include "eeconfig.h" -#include "vibrato_lut.h" +#ifdef VIBRATO_ENABLE + #include "vibrato_lut.h" +#endif #define PI 3.14159265 #define CPU_PRESCALER 8 -// Largely untested PWM audio mode (doesn't sound as good) -// #define PWM_AUDIO - #ifdef PWM_AUDIO #include "wave.h" #define SAMPLE_DIVIDER 39 #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap + + float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + uint16_t place_int = 0; + bool repeat = true; #endif void delay_us(int count) { @@ -34,25 +37,21 @@ void delay_us(int count) { int voices = 0; int voice_place = 0; -double frequency = 0; +float frequency = 0; int volume = 0; long position = 0; -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +float frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; bool sliding = false; int max = 0xFF; float sum = 0; -int value = 128; float place = 0; -float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -uint16_t place_int = 0; -bool repeat = true; uint8_t * sample; uint16_t sample_length = 0; -double freq = 0; +// float freq = 0; bool notes = false; bool note = false; @@ -62,7 +61,7 @@ float note_tempo = TEMPO_DEFAULT; float note_timbre = TIMBRE_DEFAULT; uint16_t note_position = 0; float (* notes_pointer)[][2]; -uint8_t notes_count; +uint16_t notes_count; bool notes_repeat; float notes_rest; bool note_resting = false; @@ -70,9 +69,11 @@ bool note_resting = false; uint8_t current_note = 0; uint8_t rest_counter = 0; +#ifdef VIBRATO_ENABLE float vibrato_counter = 0; float vibrato_strength = .5; float vibrato_rate = 0.125; +#endif float polyphony_rate = 0; @@ -96,6 +97,7 @@ void audio_off(void) { eeconfig_write_audio(audio_config.raw); } +#ifdef VIBRATO_ENABLE // Vibrato rate functions void set_vibrato_rate(float rate) { @@ -126,6 +128,8 @@ void decrease_vibrato_strength(float change) { #endif +#endif + // Polyphony functions void set_polyphony_rate(float rate) { @@ -209,6 +213,7 @@ void audio_init() { #endif inited = true; + _delay_ms(500); } void stop_all_notes() { @@ -233,7 +238,7 @@ void stop_all_notes() { } } -void stop_note(double freq) { +void stop_note(float freq) { if (note) { if (!inited) { audio_init(); @@ -274,6 +279,8 @@ void stop_note(double freq) { } } +#ifdef VIBRATO_ENABLE + float mod(float a, int b) { float r = fmod(a, b); @@ -290,6 +297,8 @@ float vibrato(float average_freq) { return vibrated_freq; } +#endif + ISR(TIMER3_COMPA_vect) { if (note) { #ifdef PWM_AUDIO @@ -341,6 +350,7 @@ ISR(TIMER3_COMPA_vect) { } #else if (voices > 0) { + float freq; if (polyphony_rate > 0) { if (voices > 1) { voice_place %= voices; @@ -349,9 +359,13 @@ ISR(TIMER3_COMPA_vect) { place = 0.0; } } + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(frequencies[voice_place]); } else { + #else + { + #endif freq = frequencies[voice_place]; } } else { @@ -363,9 +377,14 @@ ISR(TIMER3_COMPA_vect) { frequency = frequencies[voices - 1]; } + + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(frequency); } else { + #else + { + #endif freq = frequency; } } @@ -398,9 +417,13 @@ ISR(TIMER3_COMPA_vect) { if (note_frequency > 0) { float freq; + #ifdef VIBRATO_ENABLE if (vibrato_strength > 0) { freq = vibrato(note_frequency); } else { + #else + { + #endif freq = note_frequency; } @@ -461,13 +484,45 @@ ISR(TIMER3_COMPA_vect) { } } -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest) { +void play_note(float freq, int vol) { -if (audio_config.enable) { + if (!inited) { + audio_init(); + } + +if (audio_config.enable && voices < 8) { TIMSK3 &= ~_BV(OCIE3A); + // Cancel notes if notes are playing + if (notes) + stop_all_notes(); + note = true; + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + if (freq > 0) { + frequencies[voices] = freq; + volumes[voices] = vol; + voices++; + } + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif +} + +} + +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest) { + if (!inited) { audio_init(); } + +if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); // Cancel note if a note is playing if (note) stop_all_notes(); @@ -500,57 +555,24 @@ if (audio_config.enable) { } +#ifdef PWM_AUDIO void play_sample(uint8_t * s, uint16_t l, bool r) { - -if (audio_config.enable) { - TIMSK3 &= ~_BV(OCIE3A); if (!inited) { audio_init(); } - stop_all_notes(); - place_int = 0; - sample = s; - sample_length = l; - repeat = r; - #ifdef PWM_AUDIO - TIMSK3 |= _BV(OCIE3A); - #else - #endif - -} - -} - -void play_note(double freq, int vol) { - -if (audio_config.enable && voices < 8) { - TIMSK3 &= ~_BV(OCIE3A); - if (!inited) { - audio_init(); - } - // Cancel notes if notes are playing - if (notes) + if (audio_config.enable) { + TIMSK3 &= ~_BV(OCIE3A); stop_all_notes(); - note = true; - #ifdef PWM_AUDIO - freq = freq / SAMPLE_RATE; - #endif - if (freq > 0) { - frequencies[voices] = freq; - volumes[voices] = vol; - voices++; - } + place_int = 0; + sample = s; + sample_length = l; + repeat = r; - #ifdef PWM_AUDIO TIMSK3 |= _BV(OCIE3A); - #else - TIMSK3 |= _BV(OCIE3A); - TCCR3A |= _BV(COM3A1); - #endif -} - + } } +#endif //------------------------------------------------------------------------------ // Override these functions in your keymap file to play different tunes on diff --git a/quantum/audio.h b/quantum/audio.h index 0fe3eac9a..2d4d303ce 100644 --- a/quantum/audio.h +++ b/quantum/audio.h @@ -8,6 +8,11 @@ #ifndef AUDIO_H #define AUDIO_H +// Largely untested PWM audio mode (doesn't sound as good) +// #define PWM_AUDIO + +// #define VIBRATO_ENABLE + // Enable vibrato strength/amplitude - slows down ISR too much // #define VIBRATO_STRENGTH_ENABLE @@ -25,6 +30,8 @@ void audio_off(void); // Vibrato rate functions +#ifdef VIBRATO_ENABLE + void set_vibrato_rate(float rate); void increase_vibrato_rate(float change); void decrease_vibrato_rate(float change); @@ -37,6 +44,8 @@ void decrease_vibrato_strength(float change); #endif +#endif + // Polyphony functions void set_polyphony_rate(float rate); @@ -51,11 +60,15 @@ void set_tempo(float tempo); void increase_tempo(uint8_t tempo_change); void decrease_tempo(uint8_t tempo_change); +void audio_init(); + +#ifdef PWM_AUDIO void play_sample(uint8_t * s, uint16_t l, bool r); -void play_note(double freq, int vol); -void stop_note(double freq); +#endif +void play_note(float freq, int vol); +void stop_note(float freq); void stop_all_notes(void); -void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); +void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest); #define SCALE (int []){ 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), \ @@ -66,7 +79,7 @@ void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest); // These macros are used to allow play_notes to play an array of indeterminate // length. This works around the limitation of C's sizeof operation on pointers. // The global float array for the song must be used here. -#define NOTE_ARRAY_SIZE(x) ((int)(sizeof(x) / (sizeof(x[0])))) +#define NOTE_ARRAY_SIZE(x) ((int16_t)(sizeof(x) / (sizeof(x[0])))) #define PLAY_NOTE_ARRAY(note_array, note_repeat, note_rest_style) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat), (note_rest_style)); void play_goodbye_tone(void); diff --git a/quantum/vibrato_lut.h b/quantum/vibrato_lut.h index 4c267a626..a2b1f3e5c 100644 --- a/quantum/vibrato_lut.h +++ b/quantum/vibrato_lut.h @@ -2,107 +2,27 @@ #include #include -#define VIBRATO_LUT_LENGTH 100 +#define VIBRATO_LUT_LENGTH 20 const float VIBRATO_LUT[VIBRATO_LUT_LENGTH] = { \ -1.00045346811453, -1.00090535101508, -1.00135386178926, -1.00179722447259, 1.00223368114872, -1.0026614990145, -1.00307897737994, -1.00348445457284, -1.00387631471807, 1.00425299436105, -1.00461298890553, -1.00495485883603, -1.00527723569589, -1.00557882779254, 1.00585842560279, -1.00611490685176, -1.00634724124066, -1.00655449479987, -1.00673583384565, 1.00689052852052, -1.00701795589922, -1.00711760264454, -1.0071890671992, -1.00723206150266, 1.0072464122237, -1.00723206150266, -1.0071890671992, -1.00711760264454, -1.00701795589922, 1.00689052852052, -1.00673583384565, -1.00655449479987, -1.00634724124066, -1.00611490685176, 1.00585842560279, -1.00557882779254, -1.00527723569589, -1.00495485883603, -1.00461298890553, 1.00425299436105, -1.00387631471807, -1.00348445457284, -1.00307897737994, -1.0026614990145, 1.00223368114872, -1.00179722447259, -1.00135386178926, -1.00090535101508, -1.00045346811453, 1, -0.999546737425598, -0.999095467903976, -0.998647968674285, -0.998205999748565, 0.99777129706302, -0.997345565759612, -0.996930473622346, -0.996527644691494, -0.996138653077835, 0.99576501699778, -0.995408193048995, -0.995069570744927, -0.994750467325326, -0.994452122858643, 0.994175695650927, -0.993922257974591, -0.99369279212925, -0.993488186845591, -0.993309234042139, 0.993156625943589, -0.993030952568311, -0.99293269959154, -0.992862246589715, -0.992819865670409, 0.992805720491269, -0.992819865670409, -0.992862246589715, -0.99293269959154, -0.993030952568311, 0.993156625943589, -0.993309234042139, -0.993488186845591, -0.99369279212925, -0.993922257974591, 0.994175695650927, -0.994452122858643, -0.994750467325326, -0.995069570744927, -0.995408193048995, 0.99576501699778, -0.996138653077835, -0.996527644691494, -0.996930473622346, -0.997345565759612, 0.99777129706302, -0.998205999748565, -0.998647968674285, -0.999095467903976, -0.999546737425598, 1 }; \ No newline at end of file -- cgit v1.2.3 From 17140ec082d4a8374f13775465ab24dabcc566cb Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Wed, 20 Apr 2016 11:16:29 +0200 Subject: added some words about the ELG in the readme --- keyboard/ergodox_ez/keymaps/osx_de/readme.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de/readme.md b/keyboard/ergodox_ez/keymaps/osx_de/readme.md index 44d7a334e..5011a9dd6 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/readme.md +++ b/keyboard/ergodox_ez/keymaps/osx_de/readme.md @@ -11,6 +11,12 @@ Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyb - 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). + + ------------------------------ @@ -26,3 +32,10 @@ This is only a little tweak of the existing default layout for the ErgoDox keyb - 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/). + -- cgit v1.2.3 From e065ff8cba0dcade86a1877e595011ca2f0ad399 Mon Sep 17 00:00:00 2001 From: Stephan Bösebeck Date: Wed, 20 Apr 2016 22:34:02 +0200 Subject: changed the macro generation of the ELG to use UP, DOWN, TYPE instead of U,D,T - makes it work with custom keycodes --- .../keymaps/osx_de_experimental/keymap.c | 48 +++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c index d723c46e8..b3ed55f21 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -23,8 +23,8 @@ #define EGOS 5 #define SMLY_TOG_QUOT 0 -#define TOG_HLD_MDIA 1 -#define M_TOGGLE_5 2 +#define M_TOGGLE_5 1 +#define TGH_NUM 2 #define M_DE_OSX_PLUS_CTRLALT 3 #define SM_KISS 4 #define SM_FROWN 5 @@ -33,11 +33,11 @@ #define SM_SMIRK 8 #define M_LGUI_SHFT 9 #define SM_HEART 10 -#define SM_LAUGH 11 -#define SM_SAD 12 -#define M_DE_OSX_CIRC_CTRLCMD 13 -#define M_MEH_SH_ACUT 14 -#define TGH_NUM 15 +#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] = { @@ -177,7 +177,7 @@ if (record->event.pressed) { if (timer_elapsed(start) >150) { return MACRO_NONE; } else { - return MACRO(D(LSFT),T(BSLS),U(LSFT),END); + return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); } } @@ -209,12 +209,12 @@ 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); + 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(U(LCTRL),U(LALT),T(RBRC),END); + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); } } @@ -222,51 +222,51 @@ 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); + 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(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + 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(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + 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(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + 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(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + 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(D(LGUI),D(LSFT),END); + return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); }else{ - return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END); + 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),U(LGUI),U(LSFT),END); } break; case SM_HEART: //Macro: SM_HEART//----------------------- if (record->event.pressed) { - return MACRO(T(GRV),T(3),END); + return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); } break; @@ -288,14 +288,14 @@ 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); + 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(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + 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; @@ -303,12 +303,12 @@ 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); + 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(U(LCTRL),U(LGUI),T(NUBS),END); + return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); } } @@ -317,12 +317,12 @@ 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); + 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(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END); } } -- cgit v1.2.3 From b8c932f9aa3ad0a255c00dc9d2acf2b19c102fee Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:39:17 -0400 Subject: makes the plover keymap correct --- keyboard/planck/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 29a3ccf6a..5f8a86c50 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -153,7 +153,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------|------+------+------+------+------+------| * | | S | K | W | R | * | * | R | B | G | S | Z | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Exit | | | C | V | | N | M | | | | + * | Exit | | | A | O | | E | U | | | | * `-----------------------------------------------------------------------------------' */ -- cgit v1.2.3 From b0635e58eb33b0ed4f6b4a3846660feae15681ad Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:39:36 -0400 Subject: delay isn't the problem here --- keyboard/preonic/keymaps/default/keymap.c | 2 +- quantum/audio.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 9ee803b06..16f8a8bf1 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -315,7 +315,7 @@ void matrix_init_user(void) { void play_startup_tone() { - PLAY_NOTE_ARRAY(music_scale, false, 0); + PLAY_NOTE_ARRAY(start_up, false, 0); } void play_goodbye_tone() diff --git a/quantum/audio.c b/quantum/audio.c index ab3444bc9..e4f0bf30e 100644 --- a/quantum/audio.c +++ b/quantum/audio.c @@ -213,7 +213,6 @@ void audio_init() { #endif inited = true; - _delay_ms(500); } void stop_all_notes() { -- cgit v1.2.3 From 0fd093b4007229fc0e8bbb440b6febaaea109fb1 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 18:41:10 -0400 Subject: there is no on --- keyboard/preonic/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index c2648d229..3504e2720 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -133,7 +133,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 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 = on # Console for debug(+400) +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 -- cgit v1.2.3 From 157ddccc2c0b865582fb488ea5346e2996b05468 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 20:11:05 -0400 Subject: start-up sound working, removes tick with some devices --- keyboard/preonic/keymaps/default/keymap.c | 2 +- tmk_core/common/avr/suspend.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 16f8a8bf1..267bfab3d 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -309,7 +309,7 @@ void process_action_user(keyrecord_t *record) { } void matrix_init_user(void) { - // audio_init(); + _delay_ms(10); // gets rid of tick play_startup_tone(); } diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index e295dbe18..498068019 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -79,7 +79,8 @@ static void power_down(uint8_t wdto) led_set(0); #ifdef AUDIO_ENABLE - stop_all_notes(); + // This sometimes disables the start-up noise, so it's been disabled + // stop_all_notes(); #endif /* AUDIO_ENABLE */ // TODO: more power saving -- cgit v1.2.3 From 7d1a683607a95aa9715b5decb1013f3e644b96c9 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 20 Apr 2016 22:28:47 -0400 Subject: sounds for plover layout --- keyboard/planck/keymaps/default/keymap.c | 39 ++++++++++---------------------- quantum/song_list.h | 16 +++++++++++++ 2 files changed, 28 insertions(+), 27 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 5f8a86c50..3239dda71 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -198,33 +198,11 @@ float tone_startup[][2] = { {440.0*pow(2.0,(28)/12.0), 20} }; -float tone_qwerty[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 16} -}; - -float tone_colemak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 12}, - {0, 4}, - {440.0*pow(2.0,(35)/12.0), 12} -}; - -float tone_dvorak[][2] = { - {440.0*pow(2.0,(23)/12.0), 8}, - {440.0*pow(2.0,(24)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(33)/12.0), 8}, - {0, 4}, - {440.0*pow(2.0,(31)/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 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); @@ -325,6 +303,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 10: if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); @@ -339,6 +320,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) break; case 11: if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif layer_off(_PLOVER); } break; @@ -364,6 +348,7 @@ void process_action_user(keyrecord_t *record) { void matrix_init_user(void) { #ifdef AUDIO_ENABLE + _delay_ms(10); // stops the tick PLAY_NOTE_ARRAY(tone_startup, false, 0); #endif } diff --git a/quantum/song_list.h b/quantum/song_list.h index e992bd18a..fc6fcdeef 100644 --- a/quantum/song_list.h +++ b/quantum/song_list.h @@ -64,6 +64,22 @@ S__NOTE(_REST), \ E__NOTE(_E7 ), +#define PLOVER_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), + +#define PLOVER_GOODBYE_SOUND \ + E__NOTE(_GS6 ), \ + E__NOTE(_A6 ), \ + S__NOTE(_REST), \ + ED_NOTE(_A7 ), \ + S__NOTE(_REST), \ + ED_NOTE(_E7 ), + #define MUSIC_SCALE_SOUND \ E__NOTE(_A5 ), \ E__NOTE(_B5 ), \ -- cgit v1.2.3 From 9828aba2a12f03fccbc1095bc8e4918ae58fa31b Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 21 Apr 2016 18:14:25 -0400 Subject: adds multiple voices and the ability to iterate/deiterate between them --- keyboard/preonic/keymaps/default/keymap.c | 21 +++++++++++++++++++-- quantum/audio/voices.c | 31 +++++++++++++++++++++++++++++-- quantum/audio/voices.h | 6 +++++- 3 files changed, 53 insertions(+), 5 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 267bfab3d..f0d5ed603 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -3,7 +3,6 @@ #include "eeconfig.h" #ifdef AUDIO_ENABLE #include "audio.h" - #include "song_list.h" #endif // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -31,6 +30,8 @@ #endif #define MUS_OFF M(8) #define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) // Fillers to make layering more clear #define _______ KC_TRNS @@ -171,7 +172,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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}, {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -289,6 +290,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif } break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; } return MACRO_NONE; }; diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 51652927b..92ada47f7 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -1,23 +1,35 @@ #include "voices.h" +// these are imported from audio.c extern uint16_t envelope_index; extern float note_timbre; +extern float polyphony_rate; -voice_type voice = default_voice; +voice_type voice = duty_osc; void set_voice(voice_type v) { voice = v; } +void voice_iterate() { + voice = (voice + 1) % number_of_voices; +} + +void voice_deiterate() { + voice = (voice - 1) % number_of_voices; +} + float voice_envelope(float frequency) { // envelope_index ranges from 0 to 0xFFFF, which is preserved at 880.0 Hz uint16_t compensated_index = (uint16_t)((float)envelope_index * (880.0 / frequency)); switch (voice) { case default_voice: - // nothing here on purpose + note_timbre = TIMBRE_50; + polyphony_rate = 0; break; case butts_fader: + polyphony_rate = 0; switch (compensated_index) { case 0 ... 9: frequency = frequency / 4; @@ -36,6 +48,7 @@ float voice_envelope(float frequency) { } break; case octave_crunch: + polyphony_rate = 0; switch (compensated_index) { case 0 ... 9: case 20 ... 24: @@ -54,6 +67,20 @@ float voice_envelope(float frequency) { break; } break; + case duty_osc: + // This slows the loop down a substantial amount, so higher notes may freeze + polyphony_rate = 0; + switch (compensated_index) { + default: + #define SPEED 10 + #define AMP .75 + // sine wave is slow + // note_timbre = (sin((float)compensated_index/10000*SPEED) * AMP / 2) + .5; + // triangle wave is a bit faster + note_timbre = (float)abs((compensated_index*SPEED % 3000) - 1500) * ( AMP / 1500 ) + (1 - AMP) / 2; + break; + } + break; } return frequency; diff --git a/quantum/audio/voices.h b/quantum/audio/voices.h index 317f5d98c..44c5066b5 100644 --- a/quantum/audio/voices.h +++ b/quantum/audio/voices.h @@ -13,9 +13,13 @@ float voice_envelope(float frequency); typedef enum { default_voice, butts_fader, - octave_crunch + octave_crunch, + duty_osc, + number_of_voices // important that this is last } voice_type; void set_voice(voice_type v); +void voice_iterate(); +void voice_deiterate(); #endif \ No newline at end of file -- cgit v1.2.3 From 620ac4b260fa663d12b11a0b15ac50379523c125 Mon Sep 17 00:00:00 2001 From: Eric Tang Date: Thu, 21 Apr 2016 19:35:18 -0700 Subject: Update functions used to write to EEPROM --- keyboard/atomic/keymaps/pvc/keymap.c | 2 +- keyboard/hhkb/rn42/rn42_task.c | 2 +- keyboard/planck/keymaps/default/keymap.c | 4 +-- keyboard/preonic/keymaps/default/keymap.c | 2 +- quantum/audio/audio.c | 6 ++--- quantum/keymap_common.c | 2 +- quantum/rgblight.c | 20 +++++++-------- quantum/rgblight.h | 4 +-- tmk_core/common/avr/eeconfig.c | 30 +++++++++++----------- tmk_core/common/backlight.c | 10 ++++---- tmk_core/common/bootmagic.c | 6 ++--- tmk_core/common/eeconfig.h | 10 ++++---- .../lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c | 4 +-- .../lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c | 2 +- 14 files changed, 52 insertions(+), 52 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 36098f1eb..95a26c5b4 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -233,7 +233,7 @@ void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t l void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } diff --git a/keyboard/hhkb/rn42/rn42_task.c b/keyboard/hhkb/rn42/rn42_task.c index 5107fef48..84001b3f1 100644 --- a/keyboard/hhkb/rn42/rn42_task.c +++ b/keyboard/hhkb/rn42/rn42_task.c @@ -219,7 +219,7 @@ static void store_link(uint8_t *eeaddr) xprintf("%s(%d)\r\n", s, strlen(s)); if (strlen(s) == 12) { for (int i = 0; i < 12; i++) { - eeprom_write_byte(eeaddr+i, *(s+i)); + eeprom_update_byte(eeaddr+i, *(s+i)); dprintf("%c ", *(s+i)); } dprint("\r\n"); diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 3239dda71..19d24f6a0 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -211,7 +211,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND); void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } @@ -315,7 +315,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } keymap_config.raw = eeconfig_read_keymap(); keymap_config.nkro = 1; - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); } break; case 11: diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index f0d5ed603..3a6dfa31a 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -200,7 +200,7 @@ float goodbye[][2] = SONG(GOODBYE_SOUND); #endif void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 3225557ba..e85370d95 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -85,17 +85,17 @@ uint16_t envelope_index = 0; void audio_toggle(void) { audio_config.enable ^= 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_on(void) { audio_config.enable = 1; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } void audio_off(void) { audio_config.enable = 0; - eeconfig_write_audio(audio_config.raw); + eeconfig_update_audio(audio_config.raw); } #ifdef VIBRATO_ENABLE diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 43debf4ef..4b4bd6210 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -245,7 +245,7 @@ static action_t keycode_to_action(uint16_t keycode) keymap_config.swap_lalt_lgui = 0; keymap_config.swap_ralt_rgui = 0; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); break; case 0x5100 ... 0x5FFF: ; // Layer movement shortcuts diff --git a/quantum/rgblight.c b/quantum/rgblight.c index 2215cf5cd..5623c65de 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -107,17 +107,17 @@ void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) { uint32_t eeconfig_read_rgblight(void) { return eeprom_read_dword(EECONFIG_RGBLIGHT); } -void eeconfig_write_rgblight(uint32_t val) { - eeprom_write_dword(EECONFIG_RGBLIGHT, val); +void eeconfig_update_rgblight(uint32_t val) { + eeprom_update_dword(EECONFIG_RGBLIGHT, val); } -void eeconfig_write_rgblight_default(void) { - dprintf("eeconfig_write_rgblight_default\n"); +void eeconfig_update_rgblight_default(void) { + dprintf("eeconfig_update_rgblight_default\n"); rgblight_config.enable = 1; rgblight_config.mode = 1; rgblight_config.hue = 200; rgblight_config.sat = 204; rgblight_config.val = 204; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); } void eeconfig_debug_rgblight(void) { dprintf("rgblight_config eprom\n"); @@ -136,12 +136,12 @@ void rgblight_init(void) { if (!eeconfig_is_enabled()) { dprintf("rgblight_init eeconfig is not enabled.\n"); eeconfig_init(); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); } rgblight_config.raw = eeconfig_read_rgblight(); if (!rgblight_config.mode) { dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); - eeconfig_write_rgblight_default(); + eeconfig_update_rgblight_default(); rgblight_config.raw = eeconfig_read_rgblight(); } eeconfig_debug_rgblight(); // display current eeprom values @@ -189,7 +189,7 @@ void rgblight_mode(uint8_t mode) { } else { rgblight_config.mode = mode; } - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight mode: %u\n", rgblight_config.mode); if (rgblight_config.mode == 1) { rgblight_timer_disable(); @@ -206,7 +206,7 @@ void rgblight_mode(uint8_t mode) { void rgblight_toggle(void) { rgblight_config.enable ^= 1; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); if (rgblight_config.enable) { rgblight_mode(rgblight_config.mode); @@ -299,7 +299,7 @@ void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ rgblight_config.hue = hue; rgblight_config.sat = sat; rgblight_config.val = val; - eeconfig_write_rgblight(rgblight_config.raw); + eeconfig_update_rgblight(rgblight_config.raw); dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); } } diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 9e1562328..37e207578 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -66,8 +66,8 @@ void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); #define EECONFIG_RGBLIGHT (uint8_t *)7 uint32_t eeconfig_read_rgblight(void); -void eeconfig_write_rgblight(uint32_t val); -void eeconfig_write_rgblight_default(void); +void eeconfig_update_rgblight(uint32_t val); +void eeconfig_update_rgblight_default(void); void eeconfig_debug_rgblight(void); void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 25bb9e849..c5391f5cf 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -5,27 +5,27 @@ void eeconfig_init(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); - eeprom_write_byte(EECONFIG_DEBUG, 0); - eeprom_write_byte(EECONFIG_DEFAULT_LAYER, 0); - eeprom_write_byte(EECONFIG_KEYMAP, 0); - eeprom_write_byte(EECONFIG_MOUSEKEY_ACCEL, 0); + 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_write_byte(EECONFIG_BACKLIGHT, 0); + eeprom_update_byte(EECONFIG_BACKLIGHT, 0); #endif #ifdef AUDIO_ENABLE - eeprom_write_byte(EECONFIG_AUDIO, 0xFF); // On by default + eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default #endif } void eeconfig_enable(void) { - eeprom_write_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); + eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER); } void eeconfig_disable(void) { - eeprom_write_word(EECONFIG_MAGIC, 0xFFFF); + eeprom_update_word(EECONFIG_MAGIC, 0xFFFF); } bool eeconfig_is_enabled(void) @@ -34,20 +34,20 @@ bool eeconfig_is_enabled(void) } uint8_t eeconfig_read_debug(void) { return eeprom_read_byte(EECONFIG_DEBUG); } -void eeconfig_write_debug(uint8_t val) { eeprom_write_byte(EECONFIG_DEBUG, val); } +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_write_default_layer(uint8_t val) { eeprom_write_byte(EECONFIG_DEFAULT_LAYER, val); } +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_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val); } +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_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } +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_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } -#endif \ No newline at end of file +void eeconfig_update_audio(uint8_t val) { eeprom_update_byte(EECONFIG_AUDIO, val); } +#endif diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 558ad9b01..2f6fc1cd6 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -37,7 +37,7 @@ void backlight_increase(void) { backlight_config.level++; backlight_config.enable = 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight increase: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -49,7 +49,7 @@ void backlight_decrease(void) { backlight_config.level--; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); } dprintf("backlight decrease: %u\n", backlight_config.level); backlight_set(backlight_config.level); @@ -58,7 +58,7 @@ void backlight_decrease(void) void backlight_toggle(void) { backlight_config.enable ^= 1; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight toggle: %u\n", backlight_config.enable); backlight_set(backlight_config.enable ? backlight_config.level : 0); } @@ -71,7 +71,7 @@ void backlight_step(void) backlight_config.level = 0; } backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); dprintf("backlight step: %u\n", backlight_config.level); backlight_set(backlight_config.level); } @@ -80,6 +80,6 @@ void backlight_level(uint8_t level) { backlight_config.level ^= level; backlight_config.enable = !!backlight_config.level; - eeconfig_write_backlight(backlight_config.raw); + eeconfig_update_backlight(backlight_config.raw); backlight_set(backlight_config.level); } diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index b002a5856..2c1b1adfc 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c @@ -52,7 +52,7 @@ void bootmagic(void) debug_config.enable = !debug_config.enable; } } - eeconfig_write_debug(debug_config.raw); + eeconfig_update_debug(debug_config.raw); /* keymap config */ keymap_config.raw = eeconfig_read_keymap(); @@ -80,7 +80,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_HOST_NKRO)) { keymap_config.nkro = !keymap_config.nkro; } - eeconfig_write_keymap(keymap_config.raw); + eeconfig_update_keymap(keymap_config.raw); #ifdef NKRO_ENABLE keyboard_nkro = keymap_config.nkro; @@ -97,7 +97,7 @@ void bootmagic(void) if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_6)) { default_layer |= (1<<6); } if (bootmagic_scan_keycode(BOOTMAGIC_KEY_DEFAULT_LAYER_7)) { default_layer |= (1<<7); } if (default_layer) { - eeconfig_write_default_layer(default_layer); + eeconfig_update_default_layer(default_layer); default_layer_set((uint32_t)default_layer); } else { default_layer = eeconfig_read_default_layer(); diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index ddefca134..ca47e0d2f 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -60,22 +60,22 @@ void eeconfig_enable(void); void eeconfig_disable(void); uint8_t eeconfig_read_debug(void); -void eeconfig_write_debug(uint8_t val); +void eeconfig_update_debug(uint8_t val); uint8_t eeconfig_read_default_layer(void); -void eeconfig_write_default_layer(uint8_t val); +void eeconfig_update_default_layer(uint8_t val); uint8_t eeconfig_read_keymap(void); -void eeconfig_write_keymap(uint8_t val); +void eeconfig_update_keymap(uint8_t val); #ifdef BACKLIGHT_ENABLE uint8_t eeconfig_read_backlight(void); -void eeconfig_write_backlight(uint8_t val); +void eeconfig_update_backlight(uint8_t val); #endif #ifdef AUDIO_ENABLE uint8_t eeconfig_read_audio(void); -void eeconfig_write_audio(uint8_t val); +void eeconfig_update_audio(uint8_t val); #endif #endif diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c index f66a483e6..58bb33892 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/CDC/BootloaderCDC.c @@ -327,7 +327,7 @@ static void ReadWriteMemoryBlock(const uint8_t Command) else { /* Write the next EEPROM byte from the endpoint */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address counter after use */ CurrAddress += 2; @@ -581,7 +581,7 @@ static void CDC_Task(void) else if (Command == AVR109_COMMAND_WriteEEPROM) { /* Read the byte from the endpoint and write it to the EEPROM */ - eeprom_write_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); + eeprom_update_byte((uint8_t*)((intptr_t)(CurrAddress >> 1)), FetchNextCommandByte()); /* Increment the address after use */ CurrAddress += 2; diff --git a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c index 0385bfc49..00e673268 100644 --- a/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c +++ b/tmk_core/protocol/lufa/LUFA-git/Bootloaders/DFU/BootloaderDFU.c @@ -370,7 +370,7 @@ void EVENT_USB_Device_ControlRequest(void) } /* Read the byte from the USB interface and write to to the EEPROM */ - eeprom_write_byte((uint8_t*)StartAddr, Endpoint_Read_8()); + eeprom_update_byte((uint8_t*)StartAddr, Endpoint_Read_8()); /* Adjust counters */ StartAddr++; -- cgit v1.2.3 From 082a0f313d8c842a5de7bae30ec8a3597e35880b Mon Sep 17 00:00:00 2001 From: IBNobody Date: Fri, 22 Apr 2016 00:01:38 -0500 Subject: fixed compiler warnings (#273) --- keyboard/atomic/keymaps/pvc/config.h | 4 +++ keyboard/atomic/keymaps/pvc/keymap.c | 69 +++++++++++++++++++++++++----------- quantum/audio/audio.h | 6 ++-- quantum/audio/voices.c | 37 ++++++++++++------- quantum/audio/voices.h | 4 +-- 5 files changed, 83 insertions(+), 37 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h index cb0b78e44..cc9263464 100644 --- a/keyboard/atomic/keymaps/pvc/config.h +++ b/keyboard/atomic/keymaps/pvc/config.h @@ -62,6 +62,10 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +// Enable Keyboard Locking via magic key +#define KEYBOARD_LOCK_ENABLE + + /* * Force NKRO * diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 95a26c5b4..c6642919b 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -13,9 +13,9 @@ #define LAYER_DVORAK 2 #define LAYER_LOWER 3 #define LAYER_RAISE 4 -#define LAYER_ADJUST 5 -#define LAYER_FUNCTION 6 -#define LAYER_MUSIC 7 +#define LAYER_FUNCTION 5 +#define LAYER_MUSIC 6 +#define LAYER_ADJUST 7 #define MACRO_QWERTY 0 #define MACRO_COLEMAK 1 @@ -34,6 +34,8 @@ #define MACRO_MUSIC_OFF 14 #define MACRO_AUDIO_ON 15 #define MACRO_AUDIO_OFF 16 +#define MACRO_INC_VOICE 17 +#define MACRO_DEC_VOICE 18 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) @@ -54,6 +56,8 @@ #define MUS_OFF M(MACRO_MUSIC_OFF) #define AUD_OFF M(MACRO_AUDIO_OFF) #define AUD_ON M(MACRO_AUDIO_ON) +#define VC_UP M(MACRO_INC_VOICE) +#define VC_DOWN M(MACRO_DEC_VOICE) #define SC_UNDO LCTL(KC_Z) @@ -164,20 +168,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, }, + [LAYER_MUSIC] = { + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + }, + [LAYER_ADJUST] = { /* ADJUST */ { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, - }, - - [LAYER_MUSIC] = { - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, VC_UP, _______ }, + { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ }, }, }; @@ -187,8 +191,8 @@ 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(COLEMAK_SOUND); -float tone_colemak[][2] = SONG(DVORAK_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); @@ -198,6 +202,7 @@ 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 */ @@ -380,6 +385,26 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } 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; + default: break; @@ -390,12 +415,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #ifdef AUDIO_ENABLE -uint8_t starting_note = 0x0C; -int offset = 7; - void process_action_user(keyrecord_t *record) { + + uint8_t starting_note = 0x0C; + int offset = 7; + if (IS_LAYER_ON(LAYER_MUSIC)) { if (record->event.pressed) @@ -412,7 +438,7 @@ void process_action_user(keyrecord_t *record) void matrix_init_user(void) { - init_notes(); + set_voice(default_voice); play_startup_tone(); println("Matrix Init"); } @@ -421,6 +447,8 @@ 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< 221317 bytes keyboard/ergodox_ez/keymaps/plums/readme.md | 11 ++ 3 files changed, 240 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/plums/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/plums/plums.png create mode 100644 keyboard/ergodox_ez/keymaps/plums/readme.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/plums/keymap.c b/keyboard/ergodox_ez/keymaps/plums/keymap.c new file mode 100644 index 000000000..46eb2e42b --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/plums/plums.png b/keyboard/ergodox_ez/keymaps/plums/plums.png new file mode 100644 index 000000000..075ea6d27 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/plums/plums.png differ diff --git a/keyboard/ergodox_ez/keymaps/plums/readme.md b/keyboard/ergodox_ez/keymaps/plums/readme.md new file mode 100644 index 000000000..b72329eef --- /dev/null +++ b/keyboard/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) -- cgit v1.2.3 From def68535322956f4d3fd8e96c565ef75f35b4da6 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sat, 23 Apr 2016 23:30:09 -0400 Subject: adds voice iteration to planck default --- keyboard/planck/keymaps/default/keymap.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 19d24f6a0..92396d0ce 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -36,8 +36,10 @@ extern keymap_config_t keymap_config; #endif #define MUS_OFF M(8) #define MUS_ON M(9) -#define PLOVER M(10) -#define EXT_PLV M(11) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) // Fillers to make layering more clear #define _______ KC_TRNS @@ -178,7 +180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, _______, _______, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -302,6 +304,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover, false, 0); @@ -309,6 +327,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); + layer_off(_MUSIC); + stop_all_notes(); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); @@ -318,7 +338,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) eeconfig_update_keymap(keymap_config.raw); } break; - case 11: + case 13: if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); -- cgit v1.2.3 From 93da70a43abf98d219492887df1da57bad4e71de Mon Sep 17 00:00:00 2001 From: Jason T. Wong Date: Sat, 23 Apr 2016 23:36:41 -0400 Subject: Update keymap image Why: * The transparency made it ugly. This change addresses the need by: * Make transparent parts white. --- keyboard/ergodox_ez/keymaps/plums/plums.png | Bin 221317 -> 223300 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/plums/plums.png b/keyboard/ergodox_ez/keymaps/plums/plums.png index 075ea6d27..2f127c4ca 100644 Binary files a/keyboard/ergodox_ez/keymaps/plums/plums.png and b/keyboard/ergodox_ez/keymaps/plums/plums.png differ -- cgit v1.2.3 From 5713083e911dcff371e7e1fb62022e2063cb98de Mon Sep 17 00:00:00 2001 From: James ‘Twey’ Kay Date: Sat, 23 Apr 2016 18:49:32 +0100 Subject: Add Twey's keymap --- keyboard/ergodox_ez/keymaps/twey/keymap.c | 225 ++++++ keyboard/ergodox_ez/keymaps/twey/readme.md | 19 + keyboard/ergodox_ez/keymaps/twey/twey.hex | 1122 ++++++++++++++++++++++++++++ 3 files changed, 1366 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/twey/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/twey/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/twey/twey.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/twey/keymap.c b/keyboard/ergodox_ez/keymaps/twey/keymap.c new file mode 100644 index 000000000..75d264bdb --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/keymap.c @@ -0,0 +1,225 @@ +#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 MDIA 2 // media keys +#define STEN 3 // steno + + +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 / L2|- / Cmd | + * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right | | Up | Down | [ | ] | ~L1 | + * `-----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | PgUp | PgDn | | Home | End | + * ,------|------|------| |-------+-------+------. + * | | | NONE | | NONE | | | + * | Alt | NONE |------| |-------| Space | Ctrl | + * | | | Supr | | AltGr | | | + * `--------------------' `----------------------' + */ +// 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, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), 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, LT(MDIA, KC_S), GUI_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_HOME,KC_END, + KC_NO, + KC_RALT,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 +), +/* 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 +), + +[STEN] = KEYMAP( // layout: layer 4: 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_NO, 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_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, PV_E, PV_U +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +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_LS); + register_code(PV_LH); + register_code(PV_RF); + register_code(PV_RT); + } else { + unregister_code(PV_LS); + unregister_code(PV_LH); + unregister_code(PV_RF); + unregister_code(PV_RT); + } +} + +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) { + 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/keyboard/ergodox_ez/keymaps/twey/readme.md b/keyboard/ergodox_ez/keymaps/twey/readme.md new file mode 100644 index 000000000..d44c0a238 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/readme.md @@ -0,0 +1,19 @@ +# 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: Default media/mouse layout. +- Layer 3: Plover-oriented stenography layer. + +## 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: + + "SH-FT": "{PLOVER:TOGGLE}" + +to your Plover dictionary. diff --git a/keyboard/ergodox_ez/keymaps/twey/twey.hex b/keyboard/ergodox_ez/keymaps/twey/twey.hex new file mode 100644 index 000000000..14f5b7c79 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/twey/twey.hex @@ -0,0 +1,1122 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94C50B0C94970C87 +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C9422210C94A9020C94A902EC +:100050000C94A9020C94C41A0C94A9020C94A90241 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902FC0C1E0D3C +:1000B000090E1E0D090E600D830D090ED80DEB0DF6 +:1000C000D810D81006110611481184118413841316 +:1000D0009C118413931293125E138413841372136E +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002800260012000F00370054 +:100170002F002B00270013003382387130004E000F +:100180002D0031003478E500C100000001000100BD +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A +:1004E0009091EF01A091F001B091F1018730904B14 +:1004F000A740B04BB9F41092EE011092EF011092A8 +:10050000F0011092F10114BE84B7877F84BF88E1A7 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0E8ECF5E402C0DA +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92AE3EB107E1F70E940B090C9469 +:10055000E2220C94000061110BC0FC01828188230F +:1005600021F085EE0E946C0F03C085EE0E943410CE +:1005700080E090E0089508956091B1017091B2011A +:100580008091B3019091B4010E94F01956985E9841 +:1005900025982D9826982E9827982F98813019F015 +:1005A000823021F00895259A2D9A0895269A2E9A40 +:1005B00008958CEB92E0892B11F00E94BC0280E040 +:1005C00090E0089556985E9825982D9826982E9834 +:1005D00027982F988FEF90E0909389008093880060 +:1005E00090938B0080938A0090938D0080938C0071 +:1005F000259A2D9A2FEF80E792E02150804090407D +:10060000E1F700C00000269A2E9A2FEF80E792E0D3 +:10061000215080409040E1F700C00000279A2F9AB7 +:100620002FEF80E792E0215080409040E1F700C03A +:10063000000025982D982FEF80E792E02150804010 +:100640009040E1F700C0000026982E982FEF80E739 +:1006500092E0215080409040E1F700C000002798D0 +:100660002F9856985E9825982D9826982E9827981A +:100670002F98089589EA8093800089E08093810013 +:1006800024982C983F988AB18F748AB96E98479AAB +:100690008BB1806B8BB9769A0E94E2028BEB92E071 +:1006A000892B11F00E94BB0280E090E0089580E267 +:1006B000809300018091340181110EC00E94A60335 +:1006C00081E0809334012FEF83ED90E3215080404F +:1006D0009040E1F700C0000080E40E94AC038093EA +:1006E000000181112EC00E94D60380930001811168 +:1006F00028C00E94D60380930001811122C08FE39D +:100700000E94D6038093000181111BC00E94CE037A +:1007100080E40E94AC0380930001811112C08CE040 +:100720000E94D6038093000181110BC00E94D60362 +:1007300080930001811105C08FE30E94D60380934E +:1007400000010E94CE038091000108951092B9002B +:100750008AE08093B800089594EA9093BC00909149 +:10076000BC0097FFFCCF9091B900987F983021F0A2 +:10077000903111F081E008958093BB0084E880936C +:10078000BC008091BC0087FFFCCF8091B900887FBE +:10079000883111F0803471F780E0089584E9809306 +:1007A000BC008091BC0084FDFCCF08958093BB0009 +:1007B00084E88093BC008091BC0087FFFCCF9091BF +:1007C000B900987F81E0983209F480E0089584E8C8 +:1007D0008093BC008091BC0087FFFCCF8091BB0060 +:1007E000089580910001811115C080E40E94AC033E +:1007F0008093000181110CC082E10E94D603809396 +:100800000001811105C08FEF0E94D6038093000183 +:100810000E94CE0384B1807F84B985B1807F85B981 +:100820008AB1837F8AB98BB1837F8BB93E98469812 +:1008300008950E945703809300010E94F10380B342 +:100840008C7080BB81B3836F81BBE4E4F1E0A6E3ED +:10085000B1E011921D9281E0E235F807D1F78AE309 +:1008600093E0892B11F00C943A030895BF92CF9234 +:10087000DF92EF92FF920F931F93CF93DF938091BC +:100880000001882379F0809135018F5F80933501D5 +:10089000811108C00E94570380930001811102C09A +:1008A0000E94E20206E311E0C0E0D0E0DD24D39430 +:1008B00082E0C82EEE24E394F12CC73000F580913D +:1008C0000001811162C080E40E94AC0380930001AA +:1008D000811112C082E10E94D60380930001811130 +:1008E0000BC0C7010C2E01C0880F0A94EAF780954F +:1008F0000E94D603809300010E94CE0346C0CA30F6 +:10090000A1F028F4C83059F0C93061F005C0CC30EE +:1009100089F070F0CD3089F0209A289810C0219A83 +:1009200029980DC0229A2A980AC0239A2B9807C0AA +:10093000529A01C0539A5B9802C03E9A4698E0EAE8 +:10094000EA95F1F78FB1799960C092E081708D25B9 +:10095000892B7C9B02C090E001C094E0892B7D9B99 +:1009600002C090E001C098E0892B7E9B02C090E01D +:1009700001C090E1892B9FB19095991F9927991FEC +:100980009295990F907E892B0FC080910001811163 +:1009900051C080E40E94AC03809300018823B9F128 +:1009A000B12C0E94CE038B2DF8019081981719F07D +:1009B0008083C09201010E94F10321960F5F1F4FB7 +:1009C000CE30D10509F079CF809101018823B1F0B3 +:1009D000815080930101882339F08FE99FE00197CE +:1009E000F1F700C000000AC0A4E4B1E0E6E3F1E0E2 +:1009F00081918D9391E0E434F907D1F789ED92E08C +:100A0000892BD1F00E94D90217C090E09FCF83E1DB +:100A10000E94D603809300018111C2CF81E40E941D +:100A2000AC03809300018111BBCF0E94E703B82E75 +:100A3000B094B7CF80E0B8CF81E0DF91CF911F9124 +:100A40000F91FF90EF90DF90CF90BF900895E82F27 +:100A5000F0E0EC5BFE4F8081089508958B3B91059B +:100A600078F4883A910540F5853A9105D0F48430C0 +:100A7000910508F0B1C08130910509F4ADC06BC09B +:100A8000803E910508F467C0883E910508F4A4C033 +:100A90009C01205F31092031310508F05CC0906570 +:100AA0000895853A910509F459C0863A910509F4EB +:100AB00058C083E890E40895883A910509F454C039 +:100AC000893A910509F453C08A3A910509F452C054 +:100AD0008B3A910509F451C08C3A910509F450C044 +:100AE0008D3A910509F44FC0803B910509F44EC041 +:100AF0008E3A910509F44DC08F3A910509F44CC026 +:100B0000813B910509F44BC0823B910509F44AC031 +:100B1000833B910509F449C0843B910509F448C021 +:100B2000853B910509F447C0863B910509F446C011 +:100B3000873B910509F445C0883B910509F444C001 +:100B4000893B910509F443C08A3B910509F042C0F5 +:100B50008AE296E4089580E090E0089581E890E4C8 +:100B6000089582E890E4089582EE94E4089589EE71 +:100B700094E408958AEE94E4089585EB94E408954E +:100B800086EB94E4089587EB94E408958CEC94E468 +:100B900008958DEC94E4089583E895E408958AE837 +:100BA00095E4089582E995E4089584E995E408952B +:100BB00081E296E4089583E296E4089584E296E45F +:100BC000089585E296E4089586E296E4089587E222 +:100BD00096E4089580E094E40895089596E0799F5E +:100BE000F001112494E5899FE00DF11D1124E60F19 +:100BF000F11DEE0FFF1FEC51FF4F85919491089569 +:100C0000880F991F805A9040FC0185919491089516 +:100C1000880F991F80529F4FFC01859194910895F0 +:100C200026E0729FF001112444E5849FE00DF11D40 +:100C30001124E60FF11DEE0FFF1FEC51FF4F259120 +:100C40003491C9019A9581159F4110F4C901089505 +:100C5000C90190528115904128F4C9019F700E94EA +:100C600008060895C90190538115904120F4C901E7 +:100C70009927906C0895211580E5380769F40E9442 +:100C8000A5139FEF24E34CE0915020404040E1F752 +:100C900000C000000C94E91A213080E5380731F4D7 +:100CA0008091CC0181608093CC010895C901905559 +:100CB0008115904108F050C0832F99278F70992794 +:100CC00081309105D9F4A9014370552702C0880FDE +:100CD000991F4A95E2F79C68A90164E0440F551FEB +:100CE0006A95E1F744275370842B952B73E0220F0C +:100CF000331F7A95E1F7207633271DC082309105A6 +:100D000029F4922F8827816F906A08958330910586 +:100D1000A9F4A9014370552781E090E002C0880F33 +:100D2000991F4A95E2F79C6843E0220F331F4A95CA +:100D3000E1F7207E3770822B932B08950497F1F40E +:100D4000A9014370552781E090E002C0880F991FE8 +:100D50004A95E2F79A68E8CFC9019057811590410A +:100D600020F4C9019F7090620895C90190588115BF +:100D7000904120F4C9019F70906A0895203E31058A +:100D8000E0F4203C310558F52133310509F470C0F9 +:100D900048F42932310509F464C02A32310509F4D6 +:100DA0006EC074C029333105F1F022383105D9F015 +:100DB0002533310509F44EC069C0233E310589F160 +:100DC00038F4203E3105C1F0223E3105E1F05EC02D +:100DD000263E310569F1273E3105A9F157C0C90109 +:100DE0000E94000608958091DF0180FD02C081FF0E +:100DF0004DC080EE90E04BC08091DF0180FFF9CFC5 +:100E000089E390E044C08091DF0182FF0EC08091B1 +:100E1000DF0184FF03C080E090E039C083EE90E002 +:100E200036C08091DF0182FFF2CF82EE90E02FC0CA +:100E30008091DF0183FF0BC08091DF0184FDEBCF48 +:100E400087EE90E024C08091DF0183FFF5CF86EE2E +:100E500090E01DC08091DF0185FF07C089E290E02E +:100E600016C08091DF0185FFF9CF85E390E00FC0C8 +:100E70008091DF0186FF07C08AE290E008C0809180 +:100E8000DF0186FFF9CF81E390E001C0C9010E9434 +:100E90002E0508950895809162010895CF93DF9300 +:100EA00000D01F92CDB7DEB72091E501243019F5AF +:100EB00023E029839B838A832093E9008FEF90911D +:100EC000E800815095FD06C095ED9A95F1F7000078 +:100ED0008111F5CF8091E80085FF0DC040E050E022 +:100EE00063E070E0CE0101960E94B8098091E800AD +:100EF0008E778093E8000F900F900F90DF91CF9145 +:100F00000895CF93DF9300D01F92CDB7DEB7209125 +:100F1000E501243021F522E029839B838A8383E045 +:100F20008093E9008FEF9091E800815095FD06C015 +:100F300095ED9A95F1F700008111F5CF8091E800C9 +:100F400085FF0DC040E050E063E070E0CE01019607 +:100F50000E94B8098091E8008E778093E8000F9096 +:100F60000F900F90DF91CF9108952091E5012430EB +:100F7000F1F422E02093E9002FEF3091E8002150B6 +:100F800035FD06C035ED3A95F1F700002111F5CF9A +:100F90002091E80025FF0BC040E050E065E070E0E4 +:100FA0000E94B8098091E8008E778093E800089548 +:100FB000CF93DF93EC018091E501843009F046C0C6 +:100FC00090910C019923D9F090910D019923B9F0DA +:100FD0008093E9008FEF9091E800815095FD06C065 +:100FE00095E19A95F1F700008111F5CF8091E80025 +:100FF00085FF2CC040E050E060E170E017C081E068 +:101000008093E9008FEF9091E800815095FD06C034 +:1010100095ED9A95F1F700008111F5CF8091E800E8 +:1010200085FF14C040E050E068E070E0CE010E940F +:10103000B8098091E8008E778093E80080E1FE0196 +:10104000A2E5B1E001900D928A95E1F7DF91CF9191 +:1010500008958091E401811109C00E944A0B0E9409 +:10106000A70B8091E20084608093E20008951092C3 +:10107000E401089508950C940F210E94801A0E94A3 +:1010800015210E94440E0C944A0742E061EC81E075 +:101090000E94C40A42E061EC82E00E94C40A42E07D +:1010A00061EC83E00E94C40A42E161EC84E00C94AC +:1010B000C40A8091E701833009F455C030F48130CF +:1010C00071F0823009F48EC008958A3009F47AC034 +:1010D0008B3009F460C0893009F09CC020C0809139 +:1010E000E601813A09F096C08091E800877F8093FD +:1010F000E8008091EA019091EB01892B21F060E0FA +:1011000080E090E003C060E182E591E070E00E9441 +:10111000010A8091E8008B778093E8000895809120 +:10112000E601813209F076C08091EA019091EB01ED +:10113000009719F0039709F06DC08091E800877F50 +:101140008093E8008091E80082FD05C08091E50170 +:101150008111F8CF5FC08091F1008093620180918E +:10116000E8008B7753C08091E601813A09F052C0C4 +:101170008091EA019091EB01892B09F04BC080919D +:10118000E800877F8093E8008091E80080FFFCCF33 +:1011900080910C0136C08091E6018132D9F58091B1 +:1011A000EA019091EB01892BA9F58091E800877FF6 +:1011B0008093E8000E94F90A8091E80180930C0175 +:1011C0000C94A5138091E601813221F58091E8000D +:1011D000877F8093E8000E94F90A8091E90180935B +:1011E000630108958091E601813AA1F48091E800BD +:1011F000877F8093E8008091E80080FFFCCF80919A +:1012000063018093F1008091E8008E778093E8007D +:101210000C94F90A089584B7877F84BF88E10FB6DC +:10122000F89480936000109260000FBE90E080E818 +:101230000FB6F89480936100909361000FBE0E94F6 +:10124000930E0E944A0B0E94A70B8091E2008460DB +:101250008093E20078940E94220E0E94950E82E014 +:1012600091E00E943F0E0E94FD208091E5018530B3 +:1012700069F40E94431A8091E3018823B1F30E942C +:101280006B1A882391F30E94A209EFCF0E949B0E54 +:10129000ECCF292F332723303105A9F06CF421300E +:1012A000310509F442C02230310509F043C08DE612 +:1012B00090E020E133E042C021323105C9F0223212 +:1012C000310519F137C099278130910541F08230FD +:1012D000910541F0892B71F5ECE0F3E005C0E4EFF6 +:1012E000F2E002C0ECEDF2E0849190E09F0126C0B4 +:1012F000643000F5E62FF0E0EE0FFF1FEE5DFE4FCD +:101300002081318189E090E019C0643098F4E62FA3 +:10131000F0E0DF01AA0FBB1FA65EBE4F2D913C91EE +:10132000EA5EFE4F808190E009C082E190E02DE707 +:1013300033E004C080E090E020E030E0FA01318347 +:101340002083089580E189BD82E189BD09B400FE52 +:10135000FDCF8091D8008F7D8093D8008091E000F0 +:1013600082608093E0008091E00081FDFCCF0895D1 +:10137000CF92DF92EF92FF920F931F93CF93DF9361 +:101380007C018B01EA010E941A0B811131C0209768 +:1013900031F088819981081B190BE80EF91EC12CC8 +:1013A000D12C0115110519F18091E80085FD14C0BB +:1013B0008091E8008E778093E800209741F0888143 +:1013C00099818C0D9D1D9983888385E011C00E94B1 +:1013D0001A0B882331F30CC0F70181917F018093B0 +:1013E000F10001501109FFEFCF1ADF0ADACF80E0D8 +:1013F000DF91CF911F910F91FF90EF90DF90CF90F1 +:1014000008952091EC013091ED012617370748F03F +:101410006115710539F42091E8002E772093E800DA +:1014200001C0B901FC0120E061157105B9F180919D +:10143000E501882309F440C0853009F43FC080915C +:10144000E80083FD3DC08091E80082FF06C08091E6 +:10145000E80082FF26C080E008958091E80080FFC8 +:10146000E3CF2091F3008091F20090E0922B611580 +:10147000710551F08830910538F421912093F100E5 +:10148000615071090196F3CF21E0089709F020E03F +:101490008091E8008E778093E800C6CF2111C7CFF6 +:1014A000D6CF8091E501882339F0853039F08091DD +:1014B000E80083FFCCCF04C082E0089583E0089564 +:1014C00081E008952091EC013091ED012617370756 +:1014D00048F06115710539F42091E8002E772093CA +:1014E000E80001C0B901FC0120E061157105C1F1FE +:1014F0008091E501882309F441C0853009F440C09A +:101500008091E80083FD3EC08091E80082FF06C024 +:101510008091E80082FF27C080E008958091E80074 +:1015200080FFE3CF2091F3008091F20090E0922BB6 +:101530006115710559F08830910540F4249120938C +:10154000F1003196615071090196F2CF21E00897C0 +:1015500009F020E08091E8008E778093E800C5CF05 +:101560002111C6CFD5CF8091E501882339F0853090 +:1015700039F08091E80083FFCBCF04C082E008956A +:1015800083E0089581E00895982F973058F590935F +:10159000E900981739F07091EC002091ED0050911E +:1015A000F00003C0242F762F50E021FF19C03091A6 +:1015B000EB003E7F3093EB003091ED003D7F3093A8 +:1015C000ED003091EB0031603093EB007093EC0054 +:1015D0002093ED005093F0002091EE0027FF07C00C +:1015E0009F5FD3CF8F708093E90081E0089580E002 +:1015F00008958091E60187FD05C08091E80080FF95 +:101600000EC012C08091E80082FD05C08091E50106 +:101610008111F8CF08958091E8008B7708C0809100 +:10162000E5018111EACF08958091E8008E778093DB +:10163000E80008958091E4009091E50045E620914E +:10164000EC0020FF21C02091E80020FD21C0209166 +:10165000E501222389F0253089F02091EB0025FD5A +:101660000FC02091E4003091E5002817390739F3C5 +:10167000415041F0C901E3CF82E0089583E008952D +:1016800081E0089584E008952091E80022FFDFCFF3 +:1016900080E008950E94B80B0E94C00BE0EEF0E0DD +:1016A000808181608083E8EDF0E080818F778083A6 +:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA +:1016C00080831092E40108950F931F93CF93DF93CB +:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4 +:1016E000888388818068888388818F7D888319BCFE +:1016F0001092E5011092E1011092E3011092E201D3 +:1017000000EE10E0F80180818B7F8083888181600A +:10171000888342E060E080E00E94C40AE1EEF0E0ED +:1017200080818E7F8083E2EEF0E080818160808323 +:10173000808188608083F80180818E7F80838881AA +:1017400080618883DF91CF911F910F910895E8ED1B +:10175000F0E080818F7E8083E7EDF0E08081816022 +:10176000808384E082BF81E08093E4010C94640B69 +:10177000E8EDF0E080818E7F80831092E200089592 +:101780001092DA001092E10008951F920F920FB6A6 +:101790000F9211242F933F934F935F936F937F93F7 +:1017A0008F939F93AF93BF93EF93FF938091E1004B +:1017B00082FF0BC08091E20082FF07C08091E100B0 +:1017C0008B7F8093E1000E94210E8091DA0080FFE0 +:1017D0001FC08091D80080FF1BC08091DA008E7FEF +:1017E0008093DA008091D90080FF0DC080E189BD2F +:1017F00082E189BD09B400FEFDCF81E08093E5015F +:101800000E94290805C019BC1092E5010E94370802 +:101810008091E10080FF19C08091E20080FF15C037 +:101820008091E2008E7F8093E2008091E2008061EF +:101830008093E2008091D80080628093D80019BC28 +:1018400085E08093E5010E943B088091E10084FFE0 +:1018500030C08091E20084FF2CC080E189BD82E12C +:1018600089BD09B400FEFDCF8091D8008F7D8093A3 +:10187000D8008091E1008F7E8093E1008091E200AA +:101880008F7E8093E2008091E20081608093E2008D +:101890008091E101882311F084E007C08091E3008A +:1018A00087FF02C083E001C081E08093E5010E94D0 +:1018B0003D088091E10083FF29C08091E20083FF11 +:1018C00025C08091E100877F8093E10082E08093D2 +:1018D000E5011092E1018091E1008E7F8093E100AB +:1018E0008091E2008E7F8093E2008091E20080612F +:1018F0008093E20042E060E080E00E94C40A8091B0 +:10190000F00088608093F0000E943A08FF91EF9108 +:10191000BF91AF919F918F917F916F915F914F9107 +:101920003F912F910F900FBE0F901F9018951F920F +:101930000F920FB60F9211242F933F934F935F9303 +:101940006F937F938F939F93AF93BF93CF93EF93B7 +:10195000FF93C091E900CF708091EC001092E900F4 +:101960008091F000877F8093F00078940E94D30CE0 +:101970001092E9008091F00088608093F000C0939D +:10198000E900FF91EF91CF91BF91AF919F918F911E +:101990007F916F915F914F913F912F910F900FBE6B +:1019A0000F901F9018951F93CF93DF93CDB7DEB79D +:1019B000AA970FB6F894DEBF0FBECDBFE6EEF1E0FA +:1019C0008091F100819321E0EE3EF207C9F70E9479 +:1019D00059088091E80083FF1CC12091E6013091F5 +:1019E000E701832F90E08A30910508F012C1FC01D5 +:1019F000EA5AFF4F0C949722203881F0223809F0E0 +:101A000008C18091EA018F708093E9008091EB001A +:101A100085FB882780F91092E90006C08091E201D9 +:101A20009091E301911182609091E800977F9093EB +:101A3000E8008093F1001092F100C5C0822F8D7FE5 +:101A400009F0E7C0222319F0223061F0E2C0809152 +:101A5000E801813009F0DDC0333009F080E0809387 +:101A6000E30128C08091E801811124C02091EA019E +:101A70002F7009F4CEC02093E9008091EB0080FF25 +:101A800019C08091EB00333011F4806211C0806185 +:101A90008093EB0081E090E0022E01C0880F0A9451 +:101AA000EAF78093EA001092EA008091EB008860E8 +:101AB0008093EB001092E9008091E800877F86C058 +:101AC0002111A7C01091E8011F778091E300807871 +:101AD000812B8093E3008091E800877F8093E8006A +:101AE0000E94F90A8091E80080FFFCCF8091E3001A +:101AF00080688093E300112311F083E001C082E04D +:101B00008093E50186C02058223008F082C0809181 +:101B1000E8019091E9018C3D23E0920779F583E09B +:101B20008A838AE289834FB7F894DE01139620E016 +:101B30003EE051E2E32FF0E050935700E49120FFA4 +:101B400003C0E295EF703F5FEF708E2F90E0EA30B8 +:101B500010F0C79601C0C0968D939D932F5F2431DE +:101B600049F74FBF8091E800877F8093E8006AE2E1 +:101B700070E0CE0101960E94010A14C0AE014F5FD1 +:101B80005F4F6091EA010E944909009709F441C042 +:101B90002091E800277F2093E800BC0189819A8189 +:101BA0000E94620A8091E8008B778093E80031C040 +:101BB000203879F58091E800877F8093E800809154 +:101BC000E1018093F1008091E8008E778093E80036 +:101BD0000E94F90A1EC021111CC09091E8019230A8 +:101BE000C0F48091E800877F8093E8009093E10142 +:101BF0000E94F90A8091E101811104C08091E30003 +:101C000087FF02C084E001C081E08093E5010E946B +:101C100045088091E80083FF0AC08091E800877F33 +:101C20008093E8008091EB0080628093EB00AA969D +:101C30000FB6F894DEBF0FBECDBFDF91CF911F91DD +:101C400008950895CF938091E5018823B1F08091A4 +:101C5000E9008F709091EC0090FF02C090E801C005 +:101C600090E0C92FC82B1092E9008091E80083FD15 +:101C70000E94D30CCF70C093E900CF910895909348 +:101C80006901809368010895E0916801F09169010C +:101C9000309721F00190F081E02D099480E00895C3 +:101CA000E0916801F0916901309721F00280F381A1 +:101CB000E02D09940895E0916801F0916901309751 +:101CC00021F00480F581E02D0994089520916601AA +:101CD000309167018217930771F0909367018093A9 +:101CE0006601E0916801F0916901309721F006806A +:101CF000F781E02D099408952091640130916501E8 +:101D00008217930771F09093650180936401E091CD +:101D10006801F0916901309721F00084F185E02D90 +:101D20000994089508950C94920E0E94861A0E94B8 +:101D300019040C944C1BCF92DF92EF92FF920F93F9 +:101D40001F93CF93DF93CDB7DEB72B970FB6F894E1 +:101D5000DEBF0FBECDBF0E9436043BE6E32E31E06E +:101D6000F32E00E010E0C02E802F0E942705F7011F +:101D7000D1907F01D826B1F40F5F1F4F0E301105AF +:101D800091F78FEF89838A831B820E948F1A81606B +:101D9000782F9D838C8349815A816B818D810E942C +:101DA0003E0F41C09091CC0191FF04C08B870E94EF +:101DB0002D058B8520E030E04D2D50E0922FBA01AB +:101DC000022E02C0759567950A94E2F760FF25C060 +:101DD0002E83CF82EE24E394F12C02C0EE0CFF1C84 +:101DE0009A95E2F790E08E219F2121E0892B09F45A +:101DF00020E028870E948F1A8160782F9A87898730 +:101E00004E815F8168858A850E943E0FF801E55901 +:101E1000FE4F80818E25808306C02F5F3F4F263086 +:101E2000310561F6A9CF0E94301E10916A010E940F +:101E3000440E1817A1F00E94440E80936A012B965D +:101E40000FB6F894DEBF0FBECDBFDF91CF911F91CB +:101E50000F91FF90EF90DF90CF900C944A072B9654 +:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB +:101E70000F91FF90EF90DF90CF900895CF93DF9375 +:101E8000CDB7DEB72B970FB6F894DEBF0FBECDBF30 +:101E90004F83588769877A878B87DE01119686E0A2 +:101EA000FD0111928A95E9F785E0FE0137960190D0 +:101EB0000D928A95E1F749815A816B817C818D81F0 +:101EC0009E810E9471162B960FB6F894DEBF0FBE4E +:101ED000CDBFDF91CF910895CF93C82F882309F408 +:101EE000C1C0823859F40E94440E81FDBBC089E311 +:101EF0000E9410190E94CA1989E30CC0833879F432 +:101F00000E94440E80FDAEC083E50E9410190E941D +:101F1000CA1983E50E945019CF910C94CA198438CC +:101F200059F40E94440E82FD9DC087E40E9410195E +:101F30000E94CA1987E4EECF8CEF8C0F813A48F4E7 +:101F40008C2F0E94652081118DC08C2F0E9410194A +:101F5000E3CF80E28C0F883048F4C77081E001C085 +:101F6000880FCA95EAF70E949119D6CF8BE58C0F9E +:101F7000833078F4C53A29F0C63A31F482E890E02B +:101F800005C081E890E002C083E890E0CF910C9416 +:101F9000660E88E58C0F833108F064C0C83A39F1C9 +:101FA000C93A41F1CA3A49F1CB3A51F1CC3A59F127 +:101FB000CD3A61F1C03B69F1CE3A71F1CF3A79F196 +:101FC000C13B81F1C23B89F1C33B91F1C43B99F123 +:101FD000C53BA1F1C63BA9F1C73BB1F1C83BB9F183 +:101FE000C93BC1F1CA3BC9F58AE292E038C082EE32 +:101FF00090E035C089EE90E032C08AEE90E02FC0CC +:1020000085EB90E02CC086EB90E029C087EB90E058 +:1020100026C08CEC90E023C08DEC90E020C083E8DB +:1020200091E01DC08AE891E01AC082E991E017C0F2 +:1020300084E991E014C081E292E011C083E292E071 +:102040000EC084E292E00BC085E292E008C086E216 +:1020500092E005C087E292E002C080E090E0CF917C +:102060000C947C0ECF910895882309F44BC08238DC +:1020700059F40E94440E81FF45C089E30E94101963 +:102080000E94CA1989E30CC0833871F40E94440E7F +:1020900080FF38C083E50E9410190E94CA1983E5A9 +:1020A0000E9450190C94CA19843859F40E94440EA5 +:1020B00082FF28C087E40E9410190E94CA1987E491 +:1020C000EFCF9CEF980F913A58F390E2980F983029 +:1020D00050F4877091E001C0990F8A95EAF7892F33 +:1020E0000E949719DFCF9BE5980F933020F480E092 +:1020F00090E00C94660E885A833120F480E090E0E2 +:102100000C947C0E0895882321F00E9491190C9460 +:10211000CA190895882321F00E9497190C94CA19AE +:102120000895CF92DF92EF92FF920F931F93CF9378 +:10213000DF93CDB7DEB728970FB6F894DEBF0FBE9A +:10214000CDBF8C0185E0F801DE01119601900D9262 +:102150008A95E1F7F80140813181F280258122954D +:102160002F7083819481892B31F03F3F31F481E0DE +:102170004F3F19F403C081E001C080E080FDC4C27C +:1021800049833A8389819A812F830E94CE189E8346 +:1021900088870E94CD180E94A0174E81E42FE295F7 +:1021A000EF70F0E0E05AFF4F2F8168850C94972282 +:1021B000842F807F142F1F70882311F01295107FB9 +:1021C000FF2059F0112309F454C2812F68870E941F +:1021D000A1190E94CA1968854CC2862F0E9434102A +:1021E000112309F491C2812F0E94A71928960FB6D6 +:1021F000F894DEBF0FBECDBFDF91CF911F910F913D +:10220000FF90EF90DF90CF900C94CA19342F307F5D +:10221000842F8F70303211F08295807F662319F001 +:10222000613019F12BC0FF20B1F0222309F493C1D2 +:10223000213009F090C128960FB6F894DEBF0FBE8A +:10224000CDBFDF91CF911F910F91FF90EF90DF9065 +:10225000CF900C94B119222319F0213009F454C203 +:102260008E830E94B4198E8189C1FF2021F0223013 +:1022700008F04AC270C1211147C280C1FF2021F07D +:10228000222309F468C1F5C1222309F477C105C2EC +:10229000242F26952695237030E02115310521F055 +:1022A00021303105C9F030C2FF2021F0862F942F54 +:1022B000937002C080E090E028960FB6F894DEBFDD +:1022C0000FBECDBFDF91CF911F910F91FF90EF9087 +:1022D000DF90CF900C94660EFF2021F0862F942F74 +:1022E000937002C080E090E028960FB6F894DEBFAD +:1022F0000FBECDBFDF91CF911F910F91FF90EF9057 +:10230000DF90CF900C947C0E862FFF2019F00E9456 +:10231000381D02C00E94A01D28960FB6F894DEBF9B +:102320000FBECDBFDF91CF911F910F91FF90EF9026 +:10233000DF90CF900C94251E842F837009F076C017 +:10234000F110E2C1262F229526952770220F220F29 +:10235000862F8F70C82ED12CE12CF12C022E04C0B8 +:10236000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DD +:102370006FE070E080E090E004C0660F771F881F78 +:10238000991F2A95D2F7609570958095909503C016 +:1023900060E070E0CB01242F269526952370422F14 +:1023A00050E042305105D1F04330510559F16C29CC +:1023B0007D298E299F294130510541F128960FB67C +:1023C000F894DEBF0FBECDBFDF91CF911F910F916B +:1023D000FF90EF90DF90CF900C94C5176C297D296A +:1023E0008E299F2928960FB6F894DEBF0FBECDBF69 +:1023F000DF91CF911F910F91FF90EF90DF90CF90E1 +:102400000C94DF170E94C517C701B60128960FB6B6 +:10241000F894DEBF0FBECDBFDF91CF911F910F911A +:10242000FF90EF90DF90CF900C94AB17FF2019F046 +:10243000842F817001C08695882309F465C1262FF9 +:10244000229526952770220F220F862F8F70C82E77 +:10245000D12CE12CF12C022E04C0CC0CDD1CEE1C86 +:10246000FF1C0A94D2F764FF10C06FE070E080E0B8 +:1024700090E004C0660F771F881F991F2A95D2F736 +:10248000609570958095909503C060E070E0CB01F9 +:10249000242F269526952370422F50E04230510577 +:1024A000D1F04330510559F16C297D298E299F299E +:1024B0004130510541F128960FB6F894DEBF0FBEAA +:1024C000CDBFDF91CF911F910F91FF90EF90DF90E3 +:1024D000CF900C9499186C297D298E299F292896D4 +:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125 +:1024F0000F91FF90EF90DF90CF900C94B3180E9453 +:102500009918C701B60128960FB6F894DEBF0FBE22 +:10251000CDBFDF91CF911F910F91FF90EF90DF9092 +:10252000CF900C947F18603FC9F118F4603E50F4CE +:102530009BC0623F09F460C008F44AC0633F09F4DD +:102540006FC092C0162F1F70842F8F71FF2099F0DB +:102550000E941818812F28960FB6F894DEBF0FBE80 +:10256000CDBFDF91CF911F910F91FF90EF90DF9042 +:10257000CF900C9483100E943918812F28960FB6A3 +:10258000F894DEBF0FBECDBFDF91CF911F910F91A9 +:10259000FF90EF90DF90CF900C948A10FF20A1F075 +:1025A0002111B2C0842F8F7128960FB6F894DEBF28 +:1025B0000FBECDBFDF91CF911F910F91FF90EF9094 +:1025C000DF90CF900C945E18223008F09DC0EACFC7 +:1025D000FF20A1F0842F8F7128960FB6F894DEBFEC +:1025E0000FBECDBFDF91CF911F910F91FF90EF9064 +:1025F000DF90CF900C941818FF2061F3842F8F7117 +:1026000028960FB6F894DEBF0FBECDBFDF91CF91F5 +:102610001F910F91FF90EF90DF90CF900C9439189D +:10262000FF2091F0842F8F7128960FB6F894DEBFAB +:102630000FBECDBFDF91CF911F910F91FF90EF9013 +:10264000DF90CF900C94031828960FB6F894DEBF55 +:102650000FBECDBFDF91CF911F910F91FF90EF90F3 +:10266000DF90CF900C94F917FF20A1F0222309F4FA +:10267000B1CF862F28960FB6F894DEBF0FBECDBF20 +:10268000DF91CF911F910F91FF90EF90DF90CF904E +:102690000C946C0F222309F4B1CF862F28960FB625 +:1026A000F894DEBF0FBECDBFDF91CF911F910F9188 +:1026B000FF90EF90DF90CF900C9434104F70C801D2 +:1026C0000E94AB0228960FB6F894DEBF0FBECDBFB6 +:1026D000DF91CF911F910F91FF90EF90DF90CF90FE +:1026E0000C941E174F70C80128960FB6F894DEBFE1 +:1026F0000FBECDBFDF91CF911F910F91FF90EF9053 +:10270000DF90CF900C94ED0528960FB6F894DEBFBD +:102710000FBECDBFDF91CF911F910F91FF90EF9032 +:10272000DF90CF9008950E94AE190E9483190E94F5 +:10273000CA190E94D11E0E94251E80E090E00E94CE +:10274000660E80E090E00C947C0E0E949E190C9422 +:1027500093130E94CE18292F22952F7030E02C3031 +:1027600031054CF42A3031056CF422503109223005 +:10277000310590F407C02C30310551F02F30310570 +:1027800039F00AC0803E10F0803F31F481E00895B6 +:1027900093FB882780F9089580E00895CF93DF9315 +:1027A00000D000D01F92CDB7DEB70F900F900F90E2 +:1027B0000F900F90DF91CF910895CF93DF9300D0CA +:1027C00000D000D0CDB7DEB726960FB6F894DEBFA6 +:1027D0000FBECDBFDF91CF9108951F93CF93DF93AD +:1027E000C091790116E080917A01C81799F0D0E084 +:1027F0001C9FF0011D9FF00D1124E558FE4F4081F4 +:10280000518162817381848195810E94DD132196BB +:10281000C770E9CFDF91CF911F9108954091AB012F +:102820005091AC016091AD017091AE018091AF010A +:102830009091B0010C94DD13CF938091B0018295FB +:102840008F7009F05FC08091AD01882309F45AC0F0 +:1028500020917901A0917A016091AB017091AC0156 +:102860008091AE019091AF0131E06F3F09F030E00F +:10287000B32FC6E02A1709F445C0009721F07F3F27 +:1028800021F44B2F03C041E001C040E030E040FDA7 +:1028900035C0C29FF001C39FF00D1124E558FE4FD3 +:1028A000418174132BC04081641328C042814111BF +:1028B00025C0438154814817590710F441505109EC +:1028C000481B590B483C5105C8F48091B0018F70EA +:1028D00080618093B00186E0829FF001839FF00DBC +:1028E0001124E058FE4F80818F70806180838BEAD5 +:1028F00091E00E949110CF910C94ED132F5F3F4F08 +:102900002770B8CFCF910895CF92DF92EF92FF92C8 +:102910000F931F93CF93DF93CDB7DEB762970FB6B8 +:10292000F894DEBF0FBECDBF8C0185E0F801DE015B +:102930001D9601900D928A95E1F7D8014C91119660 +:102940005C91119712966C9112971396ED90FC90F2 +:1029500014977091AB01E091AC012091AE013091E0 +:10296000AF012115310531F0EF3F31F481E07F3FB8 +:1029700019F403C081E001C080E0B82FB170CB2E04 +:1029800080FD6CC1D090AD01DD2009F4F5C0F0915F +:10299000B001E216F30638F0C701821B930B883CA6 +:1029A000910548F09BC0209530952E0D3F1D283C89 +:1029B000310508F093C08F2F807F09F052C0E513D6 +:1029C00014C0741312C0D62E61110FC0FF70F061D5 +:1029D000F093B0010E940E148BEA91E00E949110D6 +:1029E0008091B001F80185836CC1EF2831F05F3F21 +:1029F00031F481E04F3F19F403C081E001C080E071 +:102A000080FD03C081E0862701C080E0F82FF170CF +:102A1000FF2E80FF1CC08091790120917A0136E061 +:102A2000821709F428C190E0389FF001399FF00D1A +:102A30001124E558FE4F7181571306C0708147136A +:102A400003C07281671303C001968770E9CFD62E49 +:102A5000662309F436C18091B00181608093B00192 +:102A600053C0E51308C0741306C0611104C0D80137 +:102A70001596FC93AEC04D875E878D859E856A8BCB +:102A80000E94A9136A89882329F1D62E662311F1A1 +:102A90002091B001822F82958F7090E002970CF404 +:102AA00060C08091AB019091AC0198878F831986AB +:102AB000FB86EA862C87CE01079651C0E51731F1D7 +:102AC0004D875E878D859E856A8B0E94A9136A89D2 +:102AD00081112EC0C8010E949110A4C08F2F807F49 +:102AE00069F77E2DF98AE88A89890E94CE138BEADC +:102AF00091E00E949110EBEAF1E086E0DF011D9287 +:102B00008A95E9F70E940E14D12CDBC07413D8CF3C +:102B10006111D6CFD8011596FC93C8010E9491107F +:102B2000EBEAF1E086E0DF011D928A95E9F7C9C082 +:102B3000D62E662379F22091B001822F82958F7074 +:102B400090E0029774F08091AB019091AC019A8370 +:102B500089831B82FD82EC822E83CE0101960E9426 +:102B6000911086E0F801ABEAB1E001900D928A95F0 +:102B7000E1F70E941C146FC0E216F30628F0C701AB +:102B8000821B930B9C0104C0209530952E0D3F1D98 +:102B9000283C310508F052C0D62E662309F49ACF9E +:102BA000E5132CC074132AC08091B00180FD1DC0B4 +:102BB000982F92959F70C9F0D80115968C93159710 +:102BC0009F3039F09F5F9295907F8F70892B15967B +:102BD0008C93C8010E94911086E0F801ABEAB1E045 +:102BE00001900D928A95E1F736C086E0F801ABEAD4 +:102BF000B1E001900D928A95E1F763C04D875E8741 +:102C00008D859E850E94A913882379F086E0F801BE +:102C1000ABEAB1E001900D928A95E1F70E941C1495 +:102C20000E940E14DD24D3944CC08091B0018160C9 +:102C30008093B001C8010E94911043C07E2DF98A93 +:102C4000E88A89890E94CE13EBEAF1E086E0DF0191 +:102C50001D928A95E9F70E940E1433C0662309F489 +:102C600039CF4D875E878D859E850E94A913882365 +:102C700009F430CFCBCF4D875E878D859E850E942E +:102C8000CE18292F22952F7030E0223031052CF4F8 +:102C90009F7041F0811106C00CC0243031052CF426 +:102CA0009F7049F4805E883020F0C8010E94911026 +:102CB000CF2CDC2C06C0D80115969C91907F91F703 +:102CC000F8CF8D2D62960FB6F894DEBF0FBECDBF44 +:102CD000DF91CF911F910F91FF90EF90DF90CF90F8 +:102CE00008951F93CF93DF93CDB7DEB72C970FB620 +:102CF000F894DEBF0FBECDBF4F83588769877A87B0 +:102D00008B879C87CE0107960E9484148823C1F08C +:102D10002F8138858A859B85892B31F03F3F11F0C3 +:102D200080E003C02F3FE1F781E0811147C04F8170 +:102D3000588569857A858B859C850E94DD133EC008 +:102D400086E0FE013796DE01119601900D928A957C +:102D5000E1F7FF81E8854A855B854115510531F032 +:102D6000EF3F31F481E0FF3F19F403C081E001C07F +:102D700080E080FD23C020917A0130E0C9010196F6 +:102D8000877099276091790170E086179707F1F1B4 +:102D9000F983EA835D834C8396E0929FD001939FF1 +:102DA000B00D1124A558BE4FFE01319601900D9231 +:102DB0009A95E1F780937A010E94ED1316E08091D5 +:102DC000790190917A01891779F1189FC001112436 +:102DD00085589E4F0E948414882331F1E091790137 +:102DE0001E9FF0011124E558FE4F40815181628100 +:102DF0007381848195810E94DD138091790190E037 +:102E000001968770992780937901D9CF0E94A513E5 +:102E100010927A0110927901EBEAF1E086E0DF018D +:102E20001D928A95E9F7CACF2C960FB6F894DEBFAB +:102E30000FBECDBFDF91CF911F910895EF92FF920A +:102E40000F931F93CF93DF939C01009709F471C0F8 +:102E5000F12CEE24E394E9012196F9018491843761 +:102E600040F4843008F056C0813081F0823021F186 +:102E700060C0853709F449C0C0F19CE7980F9037CE +:102E800008F057C08F770E94341046C089010E5F4A +:102E90001F4FFE01849190E2980F983050F4877094 +:102EA000FE2D01C0FF0F8A95EAF78F2F0E94A1190E +:102EB00015C00E946C0F14C089010E5F1F4FFE01E8 +:102EC000849190E2980F983068F48770FE2D01C0CD +:102ED000FF0F8A95EAF78F2F0E94A7190E94CA193F +:102EE000E8011AC00E943410FBCF2E5F3F4FFE0155 +:102EF000C491CC2341F08FE99FE00197F1F700C026 +:102F00000000C150F6CFE90107C0FE01F490E901CD +:102F1000229602C00E946C0F8F2D882341F0EFE9AA +:102F2000FFE03197F1F700C000008150F6CF9E011D +:102F300092CFDF91CF911F910F91FF90EF90089565 +:102F400008956093B5017093B6018093B701909393 +:102F5000B8010C9493130F931F930091B501109136 +:102F6000B6012091B7013091B801062B172B282B01 +:102F7000392B0093B5011093B6012093B70130931C +:102F8000B8011F910F910C9493130F931F9300910D +:102F9000B5011091B6012091B7013091B801062317 +:102FA0001723282339230093B5011093B6012093EA +:102FB000B7013093B8011F910F910C9493130F93A5 +:102FC0001F930091B5011091B6012091B701309186 +:102FD000B80106271727282739270093B501109332 +:102FE000B6012093B7013093B8011F910F910C9453 +:102FF00093131092B1011092B2011092B30110928A +:10300000B4010C94931341E050E060E070E004C020 +:10301000440F551F661F771F8A95D2F74093B10161 +:103020005093B2016093B3017093B4010C94931365 +:1030300041E050E060E070E004C0440F551F661F9F +:10304000771F8A95D2F78091B1019091B201A0913A +:10305000B301B091B401842B952BA62BB72B809391 +:10306000B1019093B201A093B301B093B4010C9459 +:10307000931341E050E060E070E004C0440F551F3E +:10308000661F771F8A95D2F7409550956095709589 +:103090008091B1019091B201A091B301B091B401BE +:1030A00084239523A623B7238093B1019093B20183 +:1030B000A093B301B093B4010C94931341E050E09A +:1030C00060E070E004C0440F551F661F771F8A95AB +:1030D000D2F78091B1019091B201A091B301B0916A +:1030E000B40184279527A627B7278093B101909331 +:1030F000B201A093B301B093B4010C9493130F9356 +:103100001F930091B1011091B2012091B301309150 +:10311000B401062B172B282B392B0093B1011093E8 +:10312000B2012093B3013093B4011F910F910C941D +:1031300093130F931F930091B1011091B20120914D +:10314000B3013091B40106231723282339230093B8 +:10315000B1011093B2012093B3013093B4011F91D8 +:103160000F910C9493130F931F930091B101109141 +:10317000B2012091B3013091B40106271727282707 +:1031800039270093B1011093B2012093B30130931A +:10319000B4011F910F910C9493130895CF92DF9275 +:1031A000EF92FF920F931F93CF93DF93EC01C090A8 +:1031B000B501D090B601E090B701F090B8018091D0 +:1031C000B1019091B201A091B301B091B401C82AAC +:1031D000D92AEA2AFB2A0FE110E0B701A601002E46 +:1031E00004C076956795579547950A94D2F740FFA6 +:1031F00007C0BE01802F0E9410068130910539F46E +:103200000150110950F7BE0180E00E941006DF91C5 +:10321000CF911F910F91FF90EF90DF90CF90089585 +:1032200090910C019923D9F090910D019923B9F057 +:10323000982F9695969596959F3088F5E0910E017A +:10324000F0910F01E90FF11D877021E030E001C01E +:10325000220F8A95EAF78181822B8183089540911C +:103260000E0150910F0120E030E09FEFFA01E20FD4 +:10327000F31F6281681799F09F3F19F4611101C033 +:10328000922F2F5F3F4F2E30310581F79F3F39F04E +:10329000FA01E90FF11D97FDFA95828308950895CB +:1032A00090910C019923E1F090910D019923C1F0C7 +:1032B000982F9695969596959F3020F5E0910E0162 +:1032C000F0910F01E90FF11D877021E030E001C09E +:1032D000220F8A95EAF7209581812823218308957A +:1032E00040910E0150910F0120E030E0FA01E20F11 +:1032F000F31F9281981301C012822F5F3F4F2E302F +:103300003105A1F7089581E090E0E0910E01F09180 +:103310000F01E80FF91F1082019680319105A9F77E +:1033200008959091CB01982B9093CB0108958095AF +:103330009091CB0198239093CB0108951092CB01EB +:1033400008959091CA01982B9093CA010895809591 +:103350009091CA0198239093CA0108951092CA01CE +:1033600008958093B90108951092B901089540918C +:103370000E0150910F0120E030E080E0FA01E20FF1 +:10338000F31F918191118F5F2F5F3F4F2F303105D8 +:10339000A9F70895E0910E01F0910F018091CB0102 +:1033A0008083E0910E01F0910F0180819091CA011C +:1033B000892B80839091B901992361F0E0910E01EE +:1033C000F0910F018081892B80830E94B7198111B0 +:1033D0001092B90180910E0190910F010C94500E42 +:1033E000CF92DF92EF92FF920F931F936C01EE2426 +:1033F000FF24C114D104E104F10421F46B017C0128 +:1034000080E001C080E133272F2D1E2D0D2D0115E9 +:1034100011052105310519F0885F680179019701CF +:103420008601A4E03695279517950795AA95D1F7BB +:10343000011511052105310519F08C5F680179012D +:1034400097018601F2E03695279517950795FA952D +:10345000D1F7011511052105310519F08E5F6801BD +:103460007901B701A6017695679557954795452B44 +:10347000462B472B09F08F5F1F910F91FF90EF9024 +:10348000DF90CF9008958091E501843009F110928A +:10349000CD0120E488E190E00FB6F894A8958093E0 +:1034A00060000FBE2093600083B7817F846083BF7C +:1034B00083B7816083BF7894889583B78E7F83BFFD +:1034C00088E10FB6F89480936000109260000FBE00 +:1034D000089508950895CF930E94691A0E943604B2 +:1034E0000E946A1AC0E08C2F0E942705811105C036 +:1034F000CF5FCE30C1F780E001C081E0CF91089569 +:103500000E94A5130E94440E0C944A0782E084BDD9 +:1035100093E095BD9AEF97BD80936E0008952FB705 +:10352000F8948091CE019091CF01A091D001B091FB +:10353000D1012FBF0895CF92DF92EF92FF920F93A8 +:103540001F932FB7F8944091CE015091CF01609115 +:10355000D0017091D1012FBF6A017B01EE24FF24BD +:103560008C0120E030E0C016D106E206F30610F42C +:1035700041505109481B590BCA011F910F91FF90EF +:10358000EF90DF90CF9008951F920F920FB60F9299 +:1035900011248F939F93AF93BF938091CE0190910D +:1035A000CF01A091D001B091D1010196A11DB11D13 +:1035B0008093CE019093CF01A093D001B093D1011D +:1035C000BF91AF919F918F910F900FBE0F901F9061 +:1035D00018950E944A0BF8942FEF87EA91E6215044 +:1035E00080409040E1F700C0000087E090EBDC01F4 +:1035F0008093EE019093EF01A093F001B093F1015D +:103600002CE088E190E00FB6F894A89580936000D4 +:103610000FBE20936000FFCFEF92FF920F931F9396 +:10362000CF93DF93E82EF12C8F2D0E942705C0E069 +:10363000D0E0082F10E098010C2E02C03595279598 +:103640000A94E2F720FD05C02196C630D10599F70E +:1036500009C06C2F7F2D80E00E94EE05E812F4CFA8 +:1036600081E005C0F3948EE0F812DECF80E0DF91B8 +:10367000CF911F910F91FF90EF900895CF93C82F96 +:103680008CE20E940C1B882321F08C2FCF910C948C +:103690000C1B80E0CF910895CF930E94911C811163 +:1036A00002C00E94771CC5E6C15049F00E94360452 +:1036B0008FE39CE90197F1F700C00000F5CF89E2A4 +:1036C0000E943E1B811111C18AE20E943E1B8111A2 +:1036D0000E94771C85E00E943E1B81110E94E91A1E +:1036E0000E949C1C8093CC0187E00E943E1B882393 +:1036F00099F18BE10E943E1B882351F09091CC01FF +:1037000091FB882780F921E0822780FB91F922C074 +:103710008EE00E943E1B882351F09091CC0192FBD9 +:10372000882780F921E0822780FB92F913C080E18D +:103730000E943E1B9091CC01882341F093FB882787 +:1037400080F921E0822780FB93F904C0892F8095BE +:1037500080FB90F99093CC018091CC010E94A01C39 +:103760000E94AE1C8093DF0180EE0E943E1B8823E6 +:1037700041F08091DF01982F909590FB80F9809324 +:10378000DF0189E30E943E1B882359F09091DF01FD +:1037900091FB882780F921E0822780FB91F99093A3 +:1037A000DF0182EE0E943E1B882359F09091DF01D9 +:1037B00092FB882780F921E0822780FB92F9909381 +:1037C000DF0186EE0E943E1B882359F09091DF01B5 +:1037D00093FB882780F921E0822780FB93F990935F +:1037E000DF0183EE0E943E1B882359F09091DF0198 +:1037F00094FB882780F921E0822780FB94F990933D +:10380000DF0185E30E943E1B882359F09091DF0180 +:1038100095FB882780F921E0822780FB95F990931A +:10382000DF0181E30E943E1B882359F09091DF0164 +:1038300096FB882780F921E0822780FB96F99093F8 +:10384000DF0181E10E943E1B882359F09091DF0146 +:1038500097FB882780F921E0822780FB97F99093D6 +:10386000DF018091DF010E94B21C8091DF0187FBA4 +:10387000882780F980930D0187E20E943E1BC82FA4 +:103880008EE10E943E1B8111C2608FE10E943E1BAF +:103890008111C46080E20E943E1B8111C86081E2F8 +:1038A0000E943E1B8111C06182E20E943E1B811179 +:1038B000C06283E20E943E1B8111C06484E20E94C8 +:1038C0003E1B882311F0C06802C0CC2329F08C2F46 +:1038D0000E94A91C6C2F03C00E94A51C682F70E0D9 +:1038E00080E090E0CF910C94A117CF9108956DEEF8 +:1038F0007EEF80E090E00E94CD2260E082E090E0E8 +:103900000E94BF2260E083E090E00E94BF2260E05E +:1039100084E090E00E94BF2260E085E090E00C949B +:10392000BF2280E090E00E94B92221E08D3E9E4FB0 +:1039300009F020E0822F089582E090E00C94B122FB +:10394000682F82E090E00C94BF2283E090E00C941A +:10395000B122682F83E090E00C94BF2284E090E0D5 +:103960000C94B122682F84E090E00C94BF228091E7 +:10397000D40180FF0BC06091130185E0689FB00106 +:10398000112475956795759567952AC081FF09C0C3 +:103990006091130185E0689FB001112475956795CA +:1039A0001FC082FF07C06091130185E0689FB001CE +:1039B000112416C04091D5014423C9F06091120131 +:1039C000461788F72091130185E0289F9001112464 +:1039D000429FC001439F900D112470E00E948322FA +:1039E0006038710540F46115710539F002C065E079 +:1039F00070E0862F08958FE7089581E00895809103 +:103A0000D40180FF08C06091110170E07595679541 +:103A10007595679521C081FF06C06091110170E026 +:103A20007595679519C082FF04C06091110170E01F +:103A300010C08091D5018823C1F0609110018617D4 +:103A4000A0F790911101989FC001112470E00E948D +:103A500083226038710528F46115710521F0862FE5 +:103A600008958FE7089581E0089561E070E0F4CF54 +:103A7000803F21F40E94B71C819504C0813F29F446 +:103A80000E94B71C8093D8010895823F21F40E94C0 +:103A9000B71C819504C0833F29F40E94B71C809312 +:103AA000D7010895893F19F40E94FF1C05C08A3F81 +:103AB00031F40E94FF1C81958093D90108958B3FBA +:103AC00021F40E94FF1C819504C08C3F29F40E94C0 +:103AD000FF1C8093DA010895843F21F48091D60180 +:103AE000816017C0853F21F48091D601826011C0AA +:103AF000863F21F48091D60184600BC0873F21F47A +:103B00008091D601886005C0883F31F48091D6014C +:103B100080618093D60108958D3F21F48091D40176 +:103B200081600BC08E3F21F48091D401826005C07A +:103B30008F3F29F48091D40184608093D40108954B +:103B4000803F39F48091D80187FF6CC01092D80172 +:103B500069C0813F29F48091D8011816BCF362C076 +:103B60009091D701823F29F497FF5CC01092D70152 +:103B700059C0833F19F41916CCF354C0893F41F45E +:103B80008091D90118160CF04DC01092D9014AC08D +:103B90008A3F29F48091D90187FF44C0F6CF8B3F3B +:103BA00039F48091DA0187FF3DC01092DA013AC002 +:103BB0008C3F29F48091DA011816BCF333C0843F9E +:103BC00021F48091D6018E7F17C0853F21F480912A +:103BD000D6018D7F11C0863F21F48091D6018B7F65 +:103BE0000BC0873F21F48091D601877F05C0883FB5 +:103BF00031F48091D6018F7E8093D60113C08D3F22 +:103C000021F48091D4018E7F0BC08E3F21F48091EE +:103C1000D4018D7F05C08F3F29F48091D4018B7F23 +:103C20008093D4018091D70181110EC08091D80179 +:103C300081110AC08091D901811106C08091DA01F9 +:103C4000811102C01092D501089586ED91E00E9485 +:103C50005B0E0E948F1A9093D3018093D201089536 +:103C60001F93CF93DF938091D2019091D3010E9453 +:103C70009B1A4091D501442321F02091140130E09A +:103C800006C0209115015AE0259F9001112482174A +:103C9000930708F482C08091D7011091D801D09188 +:103CA000D901C091DA01811107C0111105C0D111EC +:103CB00003C0CC2309F471C04F3F19F04F5F40930C +:103CC000D501181624F40E94B71C8093D701809167 +:103CD000D70187FF05C00E94B71C81958093D7014B +:103CE000111624F40E94B71C8093D8018091D8014A +:103CF00087FF05C00E94B71C81958093D801609111 +:103D0000D701662339F11091D801112319F17727D2 +:103D100067FD7095872F972F0E94942123E333E34B +:103D200043E35FE30E94F8210E9461216093D70181 +:103D3000612F772767FD7095872F972F0E94942119 +:103D400023E333E343E35FE30E94F8210E94612110 +:103D50006093D8011D1624F40E94FF1C8093D901A2 +:103D60008091D90187FF05C00E94FF1C8195809337 +:103D7000D9011C1624F40E94FF1C8093DA01809163 +:103D8000DA0187FF05C00E94FF1C81958093DA014C +:103D9000DF91CF911F910C94251EDF91CF911F9140 +:103DA0000895E6EDF1E085E0DF011D928A95E9F7DF +:103DB0001092D5011092D4010895833081F128F436 +:103DC000813059F08230D1F00895853009F449C02E +:103DD000B8F1863009F456C0089520911501862F58 +:103DE00090E0820F911D8F3F910520F4620F609348 +:103DF000150108958FEF8093150108952091140106 +:103E0000862F90E0820F911D8F3F910520F4620F65 +:103E10006093140108958FEF809314010895209109 +:103E20001301862F90E0820F911D8F3F910520F4A2 +:103E3000620F6093130108958FEF8093130108952B +:103E400020911201862F90E0820F911D8F3F9105E6 +:103E500020F4620F6093120108958FEF8093120196 +:103E6000089520911101862F90E0820F911D8F3FC0 +:103E7000910520F4620F6093110108958FEF8093F4 +:103E80001101089520911001862F90E0820F911D5D +:103E90008F3F910520F4620F6093100108958FEF1A +:103EA000809310010895833011F128F4813049F096 +:103EB000823091F00895853081F120F18630C1F192 +:103EC000089580911501681720F4861B80931501D1 +:103ED000089510921501089580911401681720F437 +:103EE000861B809314010895109214010895809107 +:103EF0001301681720F4861B809313010895109214 +:103F00001301089580911201681720F4861B809395 +:103F100012010895109212010895809111016817FD +:103F200020F4861B809311010895109211010895C9 +:103F300080911001681720F4861B8093100108956A +:103F40001092100108958D3109F442C020F58E3091 +:103F500009F479C070F4873009F45EC020F486302B +:103F600009F442C033C08830D1F18B3009F4A7C0C6 +:103F70002DC0863109F4A3C038F4803109F46DC036 +:103F8000813109F47BC022C0893109F498C08B319A +:103F900009F44FC01BC0853309F479C048F4873257 +:103FA00009F475C008F478C0893209F470C00EC0F5 +:103FB000833438F48A3308F071C0883309F47FC041 +:103FC00005C0833409F463C08834C1F080E00895EB +:103FD0000E941B210E94440E0E944A0770C00E944A +:103FE0009C1C0E94AE1C6BC08091CC01817F8E7F97 +:103FF0008093CC0181E08093DC0108950E94A51399 +:104000002FEF83ED90E3215080409040E1F700C016 +:1040100000000E94E91A53C09091CC01892F817051 +:1040200090FF03C0917F9E7F26C091609093CC014A +:1040300046C09091CC0191FB882780F921E082272E +:1040400080FB91F913C09091CC0192FB882780F9F5 +:1040500021E0822780FB92F909C09091CC0193FB6B +:10406000882780F921E0822780FB93F99093CC0187 +:10407000882329F191609093CC0108950E94A513A3 +:1040800080910D0191E0892780930D0118C061E0B6 +:1040900070E080E090E00FC023EE01C027EC280F15 +:1040A00061E070E080E090E004C0660F771F881F39 +:1040B000991F2A95D2F70E94A1170E94A51381E0AB +:1040C000089580E0089580E00895CF93C82F8091EF +:1040D000DC01813079F018F08230D1F184C0A091F8 +:1040E0000E01B0910F018C91813169F0823209F09B +:1040F0007CC009C0A0910E01B0910F018C9181315B +:1041000011F0823249F48C2F0E94612081111DC070 +:104110008C2F0E94A31F1AC08C2F0E946320811134 +:1041200014C0C43179F048F4CB3079F0C03109F0D3 +:1041300060C082E08093DC0108C0C93219F0C83346 +:1041400021F057C01092DC0154C081E0817053C04F +:10415000C93289F118F5C43171F1A8F4C73009F0FA +:1041600046C08AE08093150194E19093140193E096 +:10417000909313018093120188E08093110188E2EB +:104180008093100134C0CE51C63088F5EC2FF0E09A +:10419000E65DFE4F80818093DB0129C0CE34E9F0DB +:1041A00020F4CB3421F56AE013C0C13579F0C23573 +:1041B000F1F461E00DC08091DB01882319F01092C9 +:1041C000DB0115C081E08093DC0115C061E006C011 +:1041D0008091DB010E94DD1E0AC06AE08091DB0154 +:1041E0000E94531F04C01092DC0180E004C081E0F3 +:1041F00002C080E0ABCFCF910895E1E8F0E080818C +:10420000886080838081816080838FB7F89493E099 +:104210009093890090ED909388008FBF0895EFE60A +:10422000F0E08081826080830895EFE6F0E0808195 +:104230008D7F80830895EFE6F0E0808192E089270A +:10424000808308951F920F920FB60F9211242F931F +:104250003F934F935F936F937F938F939F93AF930E +:10426000BF93EF93FF938091DD019091DE01019662 +:104270009093DE018093DD01811103C082E00E94F2 +:104280004A07E091DE01E695E695F0E0E657FB4F40 +:10429000E4918091DD018E1303C080E00E944A0703 +:1042A000FF91EF91BF91AF919F918F917F916F910E +:1042B0005F914F913F912F910F900FBE0F901F90E4 +:1042C000189504D06894B1118DC0089570D088F00D +:1042D0009F5790F0B92F9927B751A0F0D1F0660FF2 +:1042E000771F881F991F1AF0BA95C9F712C0B1300D +:1042F00081F077D0B1E0089574C0672F782F8827B8 +:10430000B85F39F0B93FCCF3869577956795B3954B +:10431000D9F73EF490958095709561957F4F8F4FBA +:104320009F4F0895E89409C097FB3EF490958095BF +:10433000709561957F4F8F4F9F4F9923A9F0F92F6B +:1043400096E9BB279395F695879577956795B795E9 +:10435000F111F8CFFAF4BB0F11F460FF1BC06F5FCF +:104360007F4F8F4F9F4F16C0882311F096E911C0E1 +:10437000772321F09EE8872F762F05C0662371F002 +:1043800096E8862F70E060E02AF09A95660F771F16 +:10439000881FDAF7880F9695879597F9089557FD46 +:1043A0009058440F551F59F05F3F71F04795880FA3 +:1043B00097FB991F61F09F3F79F08795089512163A +:1043C00013061406551FF2CF4695F1DF08C01616E6 +:1043D00017061806991FF1CF869571056105089497 +:1043E0000895E894BB2766277727CB0197F90895AE +:1043F0000BD078C069D028F06ED018F0952309F062 +:104400005AC05FC01124EECFCADFA0F3959FD1F34D +:10441000950F50E0551F629FF001729FBB27F00D72 +:10442000B11D639FAA27F00DB11DAA1F649F6627C7 +:10443000B00DA11D661F829F2227B00DA11D621F16 +:10444000739FB00DA11D621F839FA00D611D221FD0 +:10445000749F3327A00D611D231F849F600D211DB4 +:10446000822F762F6A2F11249F5750408AF0E1F057 +:1044700088234AF0EE0FFF1FBB1F661F771F881FA0 +:1044800091505040A9F79E3F510570F014C0AACF3B +:104490005F3FECF3983EDCF3869577956795B7958B +:1044A000F795E7959F5FC1F7FE2B880F911D9695B5 +:1044B000879597F9089597F99F6780E870E060E025 +:1044C00008959FEF80EC089500240A9416161706AD +:1044D00018060906089500240A94121613061406F5 +:1044E00005060895092E0394000C11F4882352F058 +:1044F000BB0F40F4BF2B11F460FF04C06F5F7F4F10 +:104500008F4F9F4F089597FB072E16F4009407D006 +:1045100077FD09D00E949D2207FC05D03EF49095BE +:1045200081959F4F0895709561957F4F0895EE0F87 +:10453000FF1F0590F491E02D0994AA1BBB1B51E1CC +:1045400007C0AA1FBB1FA617B70710F0A61BB70B03 +:10455000881F991F5A95A9F780959095BC01CD01A8 +:104560000895F999FECF92BD81BDF89A992780B53B +:104570000895A8E1B0E042E050E00C94D422262F48 +:10458000F999FECF1FBA92BD81BD20BD0FB6F89438 +:10459000FA9AF99A0FBE019608950E94BF22272F1A +:1045A0000C94C022DC01CB01FC01F999FECF06C0BE +:1045B000F2BDE1BDF89A319600B40D9241505040E1 +:0845C000B8F70895F894FFCF4D +:1045C80020024B07D807B50781074E070101BA013A +:1045D80028080A03140A3F4D36394B04FE03C80362 +:1045E8008F0322033B0354036D03010203040506F2 +:0445F80007080900A7 +:00000001FF -- cgit v1.2.3 From f32f80cf3298877f7f0aa2ee4bb33df649113323 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Sun, 24 Apr 2016 21:06:59 -0500 Subject: updating personal atomic keymap (#285) --- keyboard/atomic/keymaps/pvc/keymap.c | 183 +++++++++++++++++++---------------- 1 file changed, 97 insertions(+), 86 deletions(-) (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index c6642919b..28aa2c359 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -14,8 +14,9 @@ #define LAYER_LOWER 3 #define LAYER_RAISE 4 #define LAYER_FUNCTION 5 -#define LAYER_MUSIC 6 -#define LAYER_ADJUST 7 +#define LAYER_MOUSE 6 +#define LAYER_MUSIC 7 +#define LAYER_ADJUST 8 #define MACRO_QWERTY 0 #define MACRO_COLEMAK 1 @@ -23,19 +24,20 @@ #define MACRO_LOWER 3 #define MACRO_RAISE 4 #define MACRO_FUNCTION 5 -#define MACRO_TIMBRE_1 6 -#define MACRO_TIMBRE_2 7 -#define MACRO_TIMBRE_3 8 -#define MACRO_TIMBRE_4 9 -#define MACRO_TEMPO_U 10 -#define MACRO_TEMPO_D 11 -#define MACRO_TONE_DEFAULT 12 -#define MACRO_MUSIC_ON 13 -#define MACRO_MUSIC_OFF 14 -#define MACRO_AUDIO_ON 15 -#define MACRO_AUDIO_OFF 16 -#define MACRO_INC_VOICE 17 -#define MACRO_DEC_VOICE 18 +#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_ON 14 +#define MACRO_MUSIC_OFF 15 +#define MACRO_AUDIO_ON 16 +#define MACRO_AUDIO_OFF 17 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) @@ -43,6 +45,7 @@ #define M_LOWER M(MACRO_LOWER) #define M_RAISE M(MACRO_RAISE) #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) @@ -73,8 +76,11 @@ #define _______ KC_TRNS -#define ___T___ KC_TRNS #define XXXXXXX KC_NO +#define ________________ _______, _______ +#define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* QWERTY * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. @@ -90,13 +96,12 @@ * '--------------------------------------------------------------------------------------------------------------------------------------' */ -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [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, XXXXXXX }, + [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, XXXXXXX, 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, XXXXXXX, KC_UP, KC_PGDN }, - { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { 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_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* COLEMAK @@ -105,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| - * | CAPS | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * | 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 ------------+--------+--------+--------+--------+-----------------+--------+--------| @@ -113,12 +118,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_COLEMAK] = { /* COLEMAK */ + [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_CAPS, 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_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_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* DVORAK @@ -135,40 +140,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * '--------------------------------------------------------------------------------------------------------------------------------------' */ - [LAYER_DVORAK] = { /* DVORAK */ + [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_RAISE, KC_SPC, XXXXXXX, M_LOWER, KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, - [LAYER_LOWER] = { /* LOWERED */ - { 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, ___T___, ___T___ }, + [LAYER_LOWER] = { /* LOWERED */ + { 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, ________________ }, { _______, _______, _______, _______, SC_CCLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, SC_REDO, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, + { _______, SC_REDO, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, KC_END }, { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______ }, }, - [LAYER_RAISE] = { /* RAISED */ - { KC_TILD, 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___ }, + [LAYER_RAISE] = { /* RAISED */ + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, { _______, _______, _______, _______, SC_ACLS, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, - { _______, SC_SELA, SC_SAVE, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, SC_UNDO, SC_CUT, SC_COPY, SC_PSTE, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, SC_SELA, SC_SAVE, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, + { _______, SC_UNDO, SC_CUT, SC_COPY, SC_PSTE, _______, _______, _______, _______, _______, _______, ________________, _______, 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 }, }, - [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, ___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 }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, +#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 }, }, - [LAYER_MUSIC] = { +#endif + + [LAYER_MUSIC] = { /* MUSIC */ { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, @@ -176,13 +193,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, }, - [LAYER_ADJUST] = { /* ADJUST */ - { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ___T___, ___T___ }, + [LAYER_ADJUST] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ________________ }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, - { _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, ___T___, ___T___, VC_UP, _______ }, - { _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, ________________, VC_UP, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ }, }, + + +/* + [LAYER_EMPTY] = { + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______ }, + { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, +*/ + }; #ifdef AUDIO_ENABLE @@ -206,36 +235,6 @@ float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); #endif /* AUDIO_ENABLE */ -/* -void update_quad_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3, uint8_t layer4, bool order) -{ - if (order) - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer3); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } - else - { - if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) - { - layer_on(layer4); - } - else - { - layer_off(layer3); - layer_off(layer4); - } - } -} -*/ - void persistant_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -314,6 +313,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; +#ifdef MOUSEKEY_ENABLE + + case MACRO_MOUSE: + if (record->event.pressed) + { + layer_invert(LAYER_MOUSE); + } + break; + +#endif /* MOUSEKEY_ENABLE */ + + case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); break; @@ -389,8 +400,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); #endif } break; @@ -399,8 +410,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, STACCATO); + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, STACCATO); #endif } break; @@ -419,8 +430,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) void process_action_user(keyrecord_t *record) { - uint8_t starting_note = 0x0C; - int offset = 7; + uint8_t starting_note = 0x0C; + int offset = 7; if (IS_LAYER_ON(LAYER_MUSIC)) { @@ -485,7 +496,7 @@ void led_set_user(uint8_t usb_led) void play_startup_tone() { - _delay_ms(10); // gets rid of tick + _delay_ms(10); // gets rid of tick PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); } @@ -495,4 +506,4 @@ void play_goodbye_tone() _delay_ms(1000); } -#endif /* AUDIO_ENABLE */ +#endif /* AUDIO_ENABLE */ \ No newline at end of file -- cgit v1.2.3 From 9f8f34119a7d2dcb7cbf729d95ede37861ebd304 Mon Sep 17 00:00:00 2001 From: Jason T. Wong Date: Sun, 24 Apr 2016 22:14:09 -0400 Subject: Compiled Hex File The keymap file to use without compilation.--- keyboard/ergodox_ez/keymaps/plums/plums.hex | 1159 +++++++++++++++++++++++++++ 1 file changed, 1159 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/plums/plums.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/plums/plums.hex b/keyboard/ergodox_ez/keymaps/plums/plums.hex new file mode 100644 index 000000000..f950ba3ab --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plums/plums.hex @@ -0,0 +1,1159 @@ +:100000000C946E020C94B2020C94B2020C94B202E4 +:100010000C94B2020C94B2020C94B2020C94B20290 +:100020000C94B2020C94B2020C94A60C0C94780DB1 +:100030000C94B2020C94B2020C94B2020C94B20270 +:100040000C94B2020C9442220C94B2020C94B202B0 +:100050000C94B2020C94D11B0C94B2020C94B20218 +:100060000C94B2020C94B2020C94B2020C94B20240 +:100070000C94B2020C94B2020C94B2020C94B20230 +:100080000C94B2020C94B2020C94B2020C94B20220 +:100090000C94B2020C94B2020C94B2020C94B20210 +:1000A0000C94B2020C94B2020C94B202E50D070E4D +:1000B000F50E070EF50E4C0E6F0EF50EC40ED70E94 +:1000C000C311C31100120012431281129A149A1420 +:1000D0009A129A149B139B136E149A149A148514F3 +:1000E00001E40135023502E40001E00104020402EA +:1000F000E00000C801C835002B00E300E10000204B +:1001000000001E00140004001D002F024D001F00FF +:100110001A0016001B002602290020000800070014 +:10012000060031022A0021001500090019003302DF +:100130004A00220017000A0005000000E2083E0005 +:100140002F00000001540000E200100F30000000FA +:1001500002540000E60023001C000B001100000008 +:10016000AE00240018000D0010002D004B002500EB +:100170000C000E0036002E002C00260012000F008E +:100180003700270228002700130033003800300210 +:100190004E00A80031003400E500012000000100FD +:1001A000010001000100010000003A001E022002CF +:1001B0002202010001003B001F0221022302010074 +:1001C00001003C002F0226022F00010001003D002B +:1001D000300227023000010001003E0031023500EC +:1001E00035020000010001000100000001000000D4 +:1001F00001000100010000000100000001003F00BB +:100200000100500001000000010040000100510009 +:100210000100010001004100010052000100010045 +:100220000100420001004F000100010001004300F5 +:10023000010001000100010001004400450001002F +:100240000100010000000100010001000100A900FF +:1002500000000100010001000100AA0001000100EE +:10026000010001000100AC000100010001000100DB +:100270000100AB00010001000100010001000100CC +:100280000100010001000100010000000100010067 +:100290000100000001000000010001000100000059 +:1002A00001000000010001000100F2000100000057 +:1002B000010001000100F1000100F4000100010053 +:1002C0000100F0000100F500B60001000100F3009C +:1002D0000100010001000100010001000100010016 +:1002E00001000100010001000100010000001603EF +:1002F0004500720067006F0044006F007800200026 +:1003000045005A00000016034500720067006F00A8 +:1003100044006F007800200045005A0000000403EC +:10032000090409026D00040100A0FA09040000019B +:1003300003010100092111010001223F000705818D +:100340000308000A09040100010301020009211148 +:10035000010001224D000705820308000A0904027A +:1003600000010300000009211101000122360007ED +:1003700005830308000A09040300010300000009C3 +:100380002111010001223900070584031000011228 +:1003900001100100000008EDFE071301000102003A +:1003A0000105010906A101050719E029E715002546 +:1003B0000195087501810205081901290595057542 +:1003C000019102950175039101050719002977151F +:1003D000002501957875018102C005010980A10100 +:1003E000850216010026B7001A01002AB700751011 +:1003F00095018100C0050C0901A1018503160100CA +:10040000269C021A01002A9C02751095018100C0E9 +:1004100005010902A1010901A10005091901290528 +:10042000150025019505750181029501750381016E +:100430000501093009311581257F9502750881066E +:1004400009381581257F950175088106050C0A3844 +:10045000021581257F950175088106C0C005010937 +:1004600006A101050719E029E71500250195087582 +:100470000181029501750881010508190129059579 +:100480000575019102950175039101050719002970 +:10049000FF150025FF950675088100C000000000CB +:1004A00000000000000000010204060A0F17202CC3 +:1004B0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9BF +:1004C000DAC7B39D87715D4A3A2C20170F0A0604DC +:1004D00002010000000000000000000011241FBE07 +:1004E000CFEFDAE0DEBFCDBF04B603FE24C08091BB +:1004F000EE019091EF01A091F001B091F1018730F0 +:10050000904BA740B04BB9F41092EE011092EF015E +:100510001092F0011092F10114BE84B7877F84BF5E +:1005200088E10FB6F89480936000109260000FBECF +:10053000E0E0FFE3099511E0A0E0B1E0E2E1F8E4DA +:1005400002C005900D92A433B107D9F711E0A4E3DE +:10055000B1E001C01D92AE3EB107E1F70E94EA0989 +:100560000C9407240C940000CF93DF93EC016623D6 +:1005700019F06130C9F015C09A818D81992349F035 +:10058000982F907F21F080FF22C08F708D8380EEA6 +:1005900017C0807F19F480EE0E941F118D818F702B +:1005A0008D8380E090E018C09A818D81992359F065 +:1005B000982F907F21F080FF0DC08F708D8384EE87 +:1005C0000E945710EECF807F49F784EEE5CF89EE89 +:1005D00090E002C080EE90E0DF91CF910895089501 +:1005E0006091B1017091B2018091B3019091B40119 +:1005F0000E94FD1A56985E9825982D9826982E9858 +:1006000027982F98813019F0823021F00895259A8B +:100610002D9A0895269A2E9A08950C94F0025698D1 +:100620005E9825982D9826982E9827982F988FEFCA +:1006300090E0909389008093880090938B00809342 +:100640008A0090938D0080938C00259A2D9A2FEF2D +:1006500080E792E0215080409040E1F700C0000028 +:10066000269A2E9A2FEF80E792E02150804090400A +:10067000E1F700C00000279A2F9A2FEF80E792E061 +:10068000215080409040E1F700C0000025982D984F +:100690002FEF80E792E0215080409040E1F700C0CA +:1006A000000026982E982FEF80E792E0215080409E +:1006B0009040E1F700C0000027982F9856985E9868 +:1006C00025982D9826982E9827982F98089589EA8E +:1006D0008093800089E08093810024982C983F9833 +:1006E0008AB18F748AB96E98479A8BB1806B8BB937 +:1006F000769A0E940F030C94EF0280E2809300012F +:100700008091340181110EC00E94CC0381E080935E +:1007100034012FEF83ED90E3215080409040E1F7CA +:1007200000C0000080E40E94D20380930001811188 +:100730002EC00E94FC0380930001811128C00E94FA +:10074000FC0380930001811122C08FE30E94FC030F +:100750008093000181111BC00E94F40380E40E9479 +:10076000D20380930001811112C08CE00E94FC032F +:100770008093000181110BC00E94FC038093000153 +:10078000811105C08FE30E94FC03809300010E9449 +:10079000F4038091000108951092B9008AE08093DB +:1007A000B800089594EA9093BC009091BC0097FF24 +:1007B000FCCF9091B900987F983021F0903111F0E2 +:1007C00081E008958093BB0084E88093BC00809111 +:1007D000BC0087FFFCCF8091B900887F883111F081 +:1007E000803471F780E0089584E98093BC008091A3 +:1007F000BC0084FDFCCF08958093BB0084E8809307 +:10080000BC008091BC0087FFFCCF9091B900987F1D +:1008100081E0983209F480E0089584E88093BC0078 +:100820008091BC0087FFFCCF8091BB000895809130 +:100830000001811115C080E40E94D2038093000161 +:1008400081110CC082E10E94FC03809300018111A0 +:1008500005C08FEF0E94FC03809300010E94F40307 +:1008600084B1807F84B985B1807F85B98AB1837F67 +:100870008AB98BB1837F8BB93E98469808950E94C0 +:100880007D03809300010E94170480B38C7080BBAD +:1008900081B3836F81BBA6E3B1E0E4E4F1E08EE0D5 +:1008A0008E0F11921D928E13FCCF0C946703BF9292 +:1008B000CF92DF92EF92FF920F931F93CF93DF932C +:1008C00080910001882379F0809135018F5F8093BA +:1008D0003501811108C00E947D03809300018111C0 +:1008E00002C00E940F0306E311E0C0E0D0E0DD2467 +:1008F000D39482E0C82EEE24E394F12CC730D105C6 +:1009000000F580910001811164C080E40E94D2034F +:1009100080930001811112C082E10E94FC03809348 +:10092000000181110BC0C7010C2E01C0880F0A9471 +:10093000EAF780950E94FC03809300010E94F40373 +:1009400048C0CA30A1F028F4C83059F0C93061F06D +:1009500005C0CC3089F070F0CD3089F0209A28980D +:1009600010C0219A29980DC0229A2A980AC0239A69 +:100970002B9807C0529A01C0539A5B9802C03E9AC6 +:10098000469890EA9A95F1F79FB1799902C082E072 +:1009900001C080E091709D25982B7C9902C084E075 +:1009A00001C080E0892B7D9902C038E001C030E0B1 +:1009B000832B7E9902C020E101C020E0822B9FB1F1 +:1009C0009095991F9927991F9295990F907E892B41 +:1009D0000FC080910001811149C080E40E94D203C0 +:1009E00080930001882379F1B12C0E94F4038B2DB0 +:1009F000F8019081981719F08083C09201010E943C +:100A0000170421960F5F1F4FCE30D10509F076CF26 +:100A100080910101882361F1815080930101882335 +:100A200039F08FE99FE00197F1F700C0000020C086 +:100A3000A4E4B1E0E6E3F1E0CF01825F91919D9300 +:100A40008E13FCCF15C083E10E94FC03809300014C +:100A50008111CACF81E40E94D203809300018111E9 +:100A6000C3CF0E940D04B82EB094BFCF80E0C0CF9A +:100A70000E940D0381E0DF91CF911F910F91FF90B4 +:100A8000EF90DF90CF90BF900895E82FF0E0EC5BFF +:100A9000FE4F808108950895089596E0799FF001B2 +:100AA000112494E5899FE00DF11D1124E60FF11D3D +:100AB000EE0FFF1FEA50FF4F859194910895880F24 +:100AC000991FFC01EE58F040859194910895880F8C +:100AD000991FFC01EE50FF4F8591949108950F935B +:100AE0001F93CF93DF93EC018115904350F5C1150F +:100AF00080E2D80708F0B3C0CB3BD10590F4C83AE8 +:100B0000D10508F05AC0C53AD10508F04BC0C43031 +:100B1000D10508F0BBC1219709F0B5C101E010E093 +:100B2000F5C1CF3FD10511F008F0B0C1C03FD105EC +:100B300008F092C0CE01805E9109089708F4A6C122 +:100B4000A2C1C11591E5D907A8F4C23020E5D207AA +:100B500008F09EC0C11580E5D80709F485C008F0EB +:100B600091C0C11520E4D20708F08DC1DD278E01A8 +:100B7000106CCCC1C11580E8D80758F4C11590E7B6 +:100B8000D90708F07CC1C11520E6D20708F422C1BC +:100B90007AC1C11580E9D80708F075C1DF708E01F0 +:100BA000106AB4C1C53AD10509F472C1C63AD1057B +:100BB00009F071C102E810E4A9C1C83AD10509F4ED +:100BC0006DC1C93AD10509F46CC1CA3AD10509F41D +:100BD0006BC1CB3AD10509F46AC1CC3AD10509F40D +:100BE00069C1CD3AD10509F468C1C03BD10509F40A +:100BF00067C1CE3AD10509F466C1CF3AD10509F4EF +:100C000065C1C13BD10509F464C1C23BD10509F4FA +:100C100063C1C33BD10509F462C1C43BD10509F4EA +:100C200061C1C53BD10509F460C1C63BD10509F4DA +:100C30005FC1C73BD10509F45EC1C83BD10509F4CA +:100C40005DC1C93BD10509F45CC1CA3BD10509F4BA +:100C50005BC100E014E45AC18E01106557C1CE019A +:100C60009F700E94670553C10E94BE149FEF24E34A +:100C70008CE0915020408040E1F700C000000E94CD +:100C8000F61B44C18091CD0181608093CD013EC1AE +:100C90000E949F1D811102C00E94851D0E94BC1DE3 +:100CA00090E09093EE018093ED01C23090E5D9077A +:100CB00021F48091ED01816086C0C43020E5D20727 +:100CC00021F48091ED0182607EC0C63080E5D807B6 +:100CD00021F48091ED01846076C0C83090E5D90799 +:100CE00019F48091ED0127C0CA3020E5D20721F424 +:100CF0008091ED01806167C0CC3080E5D80721F498 +:100D00008091ED0180625FC0CE3090E5D90721F47B +:100D10008091ED01806457C0C03120E5D20721F4F5 +:100D20008091ED0180684FC0C23180E5D80729F479 +:100D30008091ED018460886046C0C33090E5D9079A +:100D400021F48091ED018E7F3EC0C53020E5D207B1 +:100D500021F48091ED018D7F36C0C73080E5D80742 +:100D600021F48091ED018B7F2EC0C93090E5D90729 +:100D700019F48091ED0126C0CB3020E5D20721F493 +:100D80008091ED018F7E1FC0CD3080E5D80721F422 +:100D90008091ED018F7D17C0CF3090E5D90721F408 +:100DA0008091ED018F7B0FC0C13120E5D20721F486 +:100DB0008091ED018F7707C0C331D04531F4809128 +:100DC000ED018B7F877F8093ED018091ED010E9483 +:100DD000C01D9CC08D2F99278F7099278130910558 +:100DE000D9F49E012370332702C0880F991F2A95DA +:100DF000E2F79C688E0144E0000F111F4A95E1F76D +:100E000000271370802B912B53E0CC0FDD1F5A95D8 +:100E1000E1F7C076DD272FC08230910531F4DC2F59 +:100E2000CC278E01016F106A71C08330910569F47F +:100E3000CE018370992701E010E002C0000F111F5E +:100E40008A95E2F7C8019C680FC0049709F05EC05C +:100E5000CE018370992701E010E002C0000F111F3E +:100E60008A95E2F7C8019A6823E0CC0FDD1F2A9526 +:100E7000E1F7C07ED7708C010C2B1D2B47C0DF70B3 +:100E80008E01106243C000E010E040C08E013EC001 +:100E900001E810E43BC003E810E438C002EE14E4BB +:100EA00035C009EE14E432C00AEE14E42FC005EB9D +:100EB00014E42CC006EB14E429C007EB14E426C0AC +:100EC0000CEC14E423C00DEC14E420C003E815E49A +:100ED0001DC00AE815E41AC002E915E417C004E9C8 +:100EE00015E414C001E216E411C003E216E40EC0DA +:100EF00004E216E40BC005E216E408C006E216E4BC +:100F000005C007E216E402C00AE216E4C801DF9158 +:100F1000CF911F910F91089596E0799FF0011124D0 +:100F200094E5899FE00DF11D1124E60FF11DEE0FF0 +:100F3000FF1FEA50FF4F85919491803E9105E0F4A8 +:100F4000803C910558F58133910509F46FC048F450 +:100F50008932910509F463C08A32910509F46DC0A4 +:100F600072C089339105E9F082389105D1F085335B +:100F7000910509F44DC067C0833E910581F138F4B5 +:100F8000803E9105B9F0823E9105D9F05CC0863E65 +:100F9000910561F1873E9105A1F155C00E945F0561 +:100FA00008952091ED0120FD02C021FF4CC080EE8C +:100FB00090E049C08091ED0180FFF9CF89E390E096 +:100FC00042C08091ED0182FF0EC08091ED0184FF4F +:100FD00003C080E090E037C083EE90E034C08091A1 +:100FE000ED0182FFF2CF82EE90E02DC08091ED0105 +:100FF00083FF0BC08091ED0184FDEBCF87EE90E085 +:1010000022C08091ED0183FFF5CF86EE90E01BC0FA +:101010008091ED0185FF07C089E290E014C08091C6 +:10102000ED0185FFF9CF85E390E00DC08091ED01E2 +:1010300086FF07C08AE290E006C08091ED0186FF3E +:10104000F9CF81E390E00E946F05089508950C9414 +:101050002608809162010895CF93DF9300D01F92FC +:10106000CDB7DEB79C018091E401843019F593E09F +:1010700099833B832A839093E9008FEF9091E80056 +:10108000815095FD06C095ED9A95F1F7000081110C +:10109000F5CF8091E80085FF0DC040E050E063E0AF +:1010A00070E0CE0101960E94960A8091E8008E774A +:1010B0008093E8000F900F900F90DF91CF910895EB +:1010C000CF93DF9300D01F92CDB7DEB72091E4011C +:1010D000243021F522E029839B838A8383E0809357 +:1010E000E9008FEF9091E800815095FD06C095EDE5 +:1010F0009A95F1F700008111F5CF8091E80085FF06 +:101100000DC040E050E063E070E0CE0101960E9427 +:10111000960A8091E8008E778093E8000F900F90F8 +:101120000F90DF91CF9108952091E4012430F1F4E4 +:1011300022E02093E9002FEF3091E800215035FDA7 +:1011400006C035ED3A95F1F700002111F5CF209159 +:10115000E80025FF0BC040E050E065E070E00E9431 +:10116000960A8091E8008E778093E8000895CF93E7 +:10117000DF93EC019091E401943009F046C0809136 +:101180000C018823D9F080910D018823B9F0909348 +:10119000E9008FEF9091E800815095FD06C095E140 +:1011A0009A95F1F700008111F5CF8091E80085FF55 +:1011B0002CC040E050E060E170E017C081E0809317 +:1011C000E9008FEF9091E800815095FD06C095ED04 +:1011D0009A95F1F700008111F5CF8091E80085FF25 +:1011E00014C040E050E068E070E0CE010E94960A32 +:1011F0008091E8008E778093E80080E1FE01A2E50F +:10120000B1E001900D928A95E1F7DF91CF910895B9 +:101210008091E301811109C00E942B0C0E94880C6F +:101220008091E20084608093E20008951092E301CF +:10123000089508950C942F220E948C1B0E94352241 +:101240000E942E0F0C94270842E061EC81E00E947E +:10125000A50B42E061EC82E00E94A50B42E061EC4C +:1012600083E00E94A50B42E161EC84E00C94A50BA5 +:101270008091E601833009F455C030F4813071F07B +:10128000823009F48EC008958A3009F47AC08B3018 +:1012900009F460C0893009F09CC020C08091E5014C +:1012A000813A09F096C08091E800877F8093E8003A +:1012B0008091E9019091EA01892B21F460E182E5B6 +:1012C00091E003C060E080E090E070E00E94E10AFD +:1012D0008091E8008B778093E80008958091E50184 +:1012E000813209F076C08091E9019091EA0100977E +:1012F00019F0039709F06DC08091E800877F809313 +:10130000E8008091E80082FD05C08091E401811130 +:10131000F8CF5FC08091F100809362018091E80076 +:101320008B7753C08091E501813A09F052C08091DA +:10133000E9019091EA01892B09F04BC08091E80006 +:10134000877F8093E8008091E80080FFFCCF809148 +:101350000C0136C08091E5018132D9F58091E90117 +:101360009091EA01892BA9F58091E800877F80930D +:10137000E8000E94DA0B8091E70180930C010C9445 +:10138000BE148091E501813221F58091E800877FCC +:101390008093E8000E94DA0B8091E801809363015A +:1013A00008958091E501813AA1F48091E800877F5A +:1013B0008093E8008091E80080FFFCCF809163017A +:1013C0008093F1008091E8008E778093E8000C9480 +:1013D000DA0B089584B7877F84BF88E10FB6F8944D +:1013E00080936000109260000FBE90E080E80FB61E +:1013F000F89480936100909361000FBE0E947D0F6E +:101400000E942B0C0E94880C8091E20084608093E3 +:10141000E20078940E940E0F0E947F0F82E091E01C +:101420000E94290F0E941D228091E401853069F4F9 +:101430000E944D1B8091E2018823B1F30E94781B2A +:10144000882391F30E94800AEFCF0E94850FECCF92 +:10145000292F332723303105C9F064F421303105B9 +:1014600081F02230310509F043C08DE690E022E2A0 +:1014700033E042C021323105F1F02232310541F131 +:1014800037C082E190E02FE833E036C09927813001 +:10149000910541F08230910541F0892B49F5EEE14B +:1014A000F3E005C0E6E0F3E002C0EEEEF2E0849186 +:1014B00090E09F0121C06430D8F4E62FF0E0EE0FF9 +:1014C000FF1FEE5DFE4F2081318189E090E014C066 +:1014D000643070F470E0FB01EE0FFF1FE65EFE4F1C +:1014E00020813181FB01EA5EFE4F808190E004C0E3 +:1014F00080E090E020E030E0FA013183208308951D +:1015000080E189BD82E189BD09B400FEFDCF8091F3 +:10151000D8008F7D8093D8008091E0008260809316 +:10152000E0008091E00081FDFCCF0895CF92DF9232 +:10153000EF92FF920F931F93CF93DF93EC018B01F8 +:101540006A010E94F90B811133C0C114D10439F032 +:10155000F60180819181081B190BC80FD91FE12C5E +:10156000F12C0115110519F18091E80085FD16C0D7 +:101570008091E8008E778093E800C114D10449F08F +:10158000F60180819181E80EF91EF182E08285E00A +:101590000FC00E94F90B882321F30AC08991809320 +:1015A000F10001501109FFEFEF1AFF0ADACF80E0D6 +:1015B000DF91CF911F910F91FF90EF90DF90CF902F +:1015C00008952091EB013091EC012617370748F080 +:1015D0006115710539F42091E8002E772093E80019 +:1015E00001C0B90140E061157105A9F12091E40144 +:1015F000222309F443C0253009F442C02091E800B9 +:1016000023FD40C02091E80022FD32C02091E80077 +:1016100020FFE9CF4091F3002091F20030E0342B1D +:10162000FC01CF016115710559F02830310540F4F6 +:1016300081918093F100615071092F5F3F4FF1CF8D +:1016400041E02830310509F040E02091E8002E7794 +:101650002093E800C8CF4111C9CF0AC08091E401AE +:10166000882361F0853061F08091E80083FD0AC035 +:101670008091E80082FFF2CF80E0089582E0089533 +:1016800083E0089581E008952091EB013091EC0111 +:101690002617370748F06115710539F42091E800E5 +:1016A0002E772093E80001C0B901FC0120E061150C +:1016B000710591F18091E401882309F440C08530DF +:1016C00009F43FC08091E80083FD3DC08091E800AF +:1016D00082FD2FC08091E80080FFE9CF2091F300C8 +:1016E0008091F20090E0922B6115710559F08830DD +:1016F000910540F424912093F100319661507109D5 +:101700000196F2CF21E0089709F020E08091E800EF +:101710008E778093E800CBCF2111CCCF0AC0809187 +:10172000E401882361F0853061F08091E80083FD59 +:101730000AC08091E80082FFF2CF80E0089582E045 +:10174000089583E0089581E00895982F973058F523 +:101750009093E900981739F07091EC002091ED001A +:101760005091F00003C0242F762F50E021FF19C0C4 +:101770003091EB003E7F3093EB003091ED003D7FE8 +:101780003093ED003091EB0031603093EB007093BB +:10179000EC002093ED005093F0002091EE0027FF25 +:1017A00007C09F5FD3CF8F708093E90081E00895D9 +:1017B00080E008958091E50187FF11C08091E800E5 +:1017C00082FD05C08091E4018111F8CF11C08091A4 +:1017D000E8008B770BC08091E401882349F0809169 +:1017E000E80080FFF8CF8091E8008E778093E800D2 +:1017F00008952091E4003091E50095E64091EC00D9 +:10180000842F817040FF22C08091E80080FD1CC0C1 +:101810008091E401882391F0853091F08091EB0074 +:1018200085FD10C04091E4005091E5004217530738 +:1018300029F39A01915011F784E0089582E0089508 +:1018400083E0089581E0089580E008954091E800E4 +:1018500042FFDECF08950E94990C0E94A10CE0EE99 +:10186000F0E0808181608083E8EDF0E080818F7717 +:10187000808319BCA7EDB0E08C918E7F8C93808122 +:101880008F7E80831092E30108950F931F93CF936F +:10189000DF930E94990C0E94A10CC8EDD0E08881D2 +:1018A0008F77888388818068888388818F7D88830B +:1018B00019BC1092E4011092E0011092E201109222 +:1018C000E10100EE10E0F80180818B7F8083888148 +:1018D0008160888342E060E080E00E94A50BE1EE39 +:1018E000F0E080818E7F8083E2EEF0E08081816095 +:1018F0008083808188608083F80180818E7F8083EF +:10190000888180618883DF91CF911F910F91089525 +:10191000E8EDF0E080818F7E8083E7EDF0E080816C +:101920008160808384E082BF81E08093E3010C9436 +:10193000450CE8EDF0E080818E7F80831092E2001C +:1019400008951092DA001092E10008951F920F920C +:101950000FB60F9211242F933F934F935F936F9382 +:101960007F938F939F93AF93BF93EF93FF93809158 +:10197000E10082FF0BC08091E20082FF07C08091EE +:10198000E1008B7F8093E1000E940D0F8091DA00CF +:1019900080FF1FC08091D80080FF1BC08091DA00BB +:1019A0008E7F8093DA008091D90080FF0DC080E1A6 +:1019B00089BD82E189BD09B400FEFDCF81E080933D +:1019C000E4010E94080905C019BC1092E4010E94BC +:1019D00016098091E10080FF19C08091E20080FF2C +:1019E00015C08091E2008E7F8093E2008091E2003A +:1019F00080618093E2008091D80080628093D8005B +:101A000019BC85E08093E4010E941A098091E100ED +:101A100084FF30C08091E20084FF2CC080E189BD4A +:101A200082E189BD09B400FEFDCF8091D8008F7D91 +:101A30008093D8008091E1008F7E8093E1008091B7 +:101A4000E2008F7E8093E2008091E20081608093CB +:101A5000E2008091E001882311F084E007C08091CA +:101A6000E30087FD02C081E001C083E08093E401D0 +:101A70000E941C098091E10083FF29C08091E2004F +:101A800083FF25C08091E100877F8093E10082E0A1 +:101A90008093E4011092E0018091E1008E7F8093B9 +:101AA000E1008091E2008E7F8093E2008091E2006D +:101AB00080618093E20042E060E080E00E94A50B3C +:101AC0008091F00088608093F0000E941909FF91D6 +:101AD000EF91BF91AF919F918F917F916F915F91A6 +:101AE0004F913F912F910F900FBE0F901F9018951F +:101AF0001F920F920FB60F9211242F933F934F9383 +:101B00005F936F937F938F939F93AF93BF93CF9385 +:101B1000DF93EF93FF93C091E900CF708091EC00C9 +:101B2000D82FD17080FDD0E81092E9008091F000AC +:101B3000877F8093F00078940E94BC0D1092E9009A +:101B40008091F00088608093F000CD2BCF70C0931F +:101B5000E900FF91EF91DF91CF91BF91AF919F91FC +:101B60008F917F916F915F914F913F912F910F9046 +:101B70000FBE0F901F9018951F93CF93DF93CDB793 +:101B8000DEB7AA970FB6F894DEBF0FBECDBFE5EE65 +:101B9000F1E088E08E0F9091F10091938E13FBCFCE +:101BA0000E9438098091E80083FF1FC18091E50100 +:101BB0009091E601492F50E04A30510508F015C1D7 +:101BC000FA01EA5AFF4F0C94B723803881F082382B +:101BD00009F00BC18091E9018F708093E900809139 +:101BE000EB0085FB882780F91092E90006C0809100 +:101BF000E1019091E201911182609091E800977F5C +:101C00009093E8008093F1001092F100C8C0282F53 +:101C10002D7F09F0EAC0882319F0823061F0E5C019 +:101C20008091E701813009F0E0C0933009F080E055 +:101C30008093E2012BC08091E701811127C0809140 +:101C4000E9018F7009F4D1C08093E9002091EB0085 +:101C500020FF1CC0933021F48091EB00806214C0FF +:101C60009091EB0090619093EB0021E030E0A901AE +:101C700002C0440F551F8A95E2F74093EA00109284 +:101C8000EA008091EB0088608093EB001092E900FD +:101C90008091E800877F86C08111A7C01091E7017D +:101CA0001F778091E3008078812B8093E3008091FF +:101CB000E800877F8093E8000E94DA0B8091E800BB +:101CC00080FFFCCF8091E30080688093E3001111D6 +:101CD00002C082E001C083E08093E40186C08058A6 +:101CE000823008F082C08091E7019091E8018C3D3C +:101CF00053E0950779F583E08A838AE289834FB7B9 +:101D0000F894DE01139620E03EE051E2E32FF0E08C +:101D100050935700E49120FF03C0E295EF703F5FBE +:101D2000EF708E2F90E0EA3010F0C79601C0C09699 +:101D30008D939D932F5F243149F74FBF8091E80029 +:101D4000877F8093E8006AE270E0CE0101960E94EE +:101D5000E10A14C0AE014F5F5F4F6091E9010E943C +:101D6000280ABC01892B09F440C09091E800977FB4 +:101D70009093E80089819A810E94440B8091E80049 +:101D80008B778093E80031C0803879F58091E80046 +:101D9000877F8093E8008091E0018093F10080913B +:101DA000E8008E778093E8000E94DA0B1EC0811154 +:101DB0001CC09091E7019230C0F48091E800877FC9 +:101DC0008093E8009093E0010E94DA0B8091E0019B +:101DD000811106C08091E30087FD02C081E001C04F +:101DE00084E08093E4010E9424098091E80083FF4D +:101DF0000AC08091E800877F8093E8008091EB0023 +:101E000080628093EB00AA960FB6F894DEBF0FBEF7 +:101E1000CDBFDF91CF911F9108950895CF93809109 +:101E2000E4018823A1F0C091E900CF709091EC000B +:101E3000892F817090FD80E8C82B1092E900809175 +:101E4000E80083FD0E94BC0DCF70C093E900CF91E4 +:101E5000089590936901809368010895E091680165 +:101E6000F0916901309721F00190F081E02D099403 +:101E700080E00895E0916801F0916901309721F0C8 +:101E80000280F381E02D09940895E0916801F091BA +:101E90006901309721F00480F581E02D09940895BF +:101EA00020916601309167018217930771F090933A +:101EB000670180936601E0916801F09169013097B4 +:101EC00021F00680F781E02D0994089520916401A6 +:101ED000309165018217930771F0909365018093AB +:101EE0006401E0916801F0916901309721F000846C +:101EF000F185E02D0994089508950C947C0F0E94BB +:101F0000921B0E943F040C94581CCF92DF92EF92D8 +:101F1000FF920F931F93CF93DF93CDB7DEB72B972D +:101F20000FB6F894DEBF0FBECDBF0E9457048BE6FC +:101F3000C82E81E0D82E00E010E0E02E802F0E9415 +:101F40004505F60141916F01F42EF826B1F40F5FBB +:101F50001F4F0E30110589F78FEF89838A831B820B +:101F60000E949B1B8160782F9D838C8349815A81BD +:101F70006B818D810E94281040C09091CD0191FF0E +:101F800004C08B870E944B058B8520E030E04F2DED +:101F900050E0922FBA01022E02C0759567950A94FF +:101FA000E2F760FF24C02E83EF8221E030E0690178 +:101FB00002C0CC0CDD1C9A95E2F790E08C219D21AB +:101FC000892B09F420E028870E949B1B8160782FD1 +:101FD0009A8789874E815F8168858A850E9428104B +:101FE000F801E559FE4F8081C826C08206C02F5FE8 +:101FF0003F4F2630310569F6AACF0E943F1F10914E +:102000006A010E942E0F1817A1F00E942E0F8093D4 +:102010006A012B960FB6F894DEBF0FBECDBFDF91DD +:10202000CF911F910F91FF90EF90DF90CF900C9484 +:1020300027082B960FB6F894DEBF0FBECDBFDF91F9 +:10204000CF911F910F91FF90EF90DF90CF90089567 +:10205000CF93DF93CDB7DEB72B970FB6F894DEBFE3 +:102060000FBECDBF4F83588769877A878B87DE0184 +:10207000119686E0FD0111928A95E9F785E0FE014F +:10208000379601900D928A95E1F749815A816B81CB +:102090007C818D819E810E9458172B960FB6F894F3 +:1020A000DEBF0FBECDBFDF91CF9108950895CF93CE +:1020B000882309F4C2C0C82F823859F40E942E0F19 +:1020C00081FDBBC089E30E94011A0E94CE1A89E3F8 +:1020D0000CC0833879F40E942E0F80FDAEC083E5DA +:1020E0000E94011A0E94CE1A83E50E94431ACF91E2 +:1020F0000C94CE1A843859F40E942E0F82FD9DC094 +:1021000087E40E94011A0E94CE1A87E4EECF8CEF7A +:102110008C0F813A48F48C2F0E94822181118DC04E +:102120008C2F0E94011AE3CF80E28C0F883048F494 +:10213000C77081E001C0880FCA95EAF70E94871A2C +:10214000D6CF8BE58C0F833078F4C53A29F0C63AA8 +:1021500031F083E890E005C081E890E002C082E8B9 +:1021600090E0CF910C94500F88E58C0F833108F0EC +:1021700064C0C83A39F1C93A41F1CA3A49F1CB3A97 +:1021800051F1CC3A59F1CD3A61F1C03B69F1CE3A07 +:1021900071F1CF3A79F1C13B81F1C23B89F1C33B87 +:1021A00091F1C43B99F1C53BA1F1C63BA9F1C73BF5 +:1021B000B1F1C83BB9F1C93BC1F1CA3BC9F180E0FB +:1021C00090E038C082EE90E035C089EE90E032C0F9 +:1021D0008AEE90E02FC085EB90E02CC086EB90E07B +:1021E00029C087EB90E026C08CEC90E023C08DECFA +:1021F00090E020C083E891E01DC08AE891E01AC019 +:1022000082E991E017C084E991E014C081E292E094 +:1022100011C083E292E00EC084E292E00BC085E23E +:1022200092E008C086E292E005C087E292E002C038 +:102230008AE292E0CF910C94660FCF9108958823A3 +:1022400009F44BC0823859F40E942E0F81FF45C01B +:1022500089E30E94011A0E94CE1A89E30CC08338D8 +:1022600071F40E942E0F80FF38C083E50E94011A8E +:102270000E94CE1A83E50E94431A0C94CE1A843829 +:1022800059F40E942E0F82FF28C087E40E94011A91 +:102290000E94CE1A87E4EFCF9CEF980F913A58F343 +:1022A00090E2980F983050F4877091E001C0990F38 +:1022B0008A95EAF7892F0E948D1ADFCF9BE5980F48 +:1022C000933020F480E090E00C94500F885A8331D2 +:1022D00020F480E090E00C94660F0895882321F0AC +:1022E0000E94871A0C94CE1A0895882321F00E9428 +:1022F0008D1A0C94CE1A0895BF92CF92DF92EF926E +:10230000FF920F931F93CF93DF9300D000D000D0A4 +:10231000CDB7DEB725E0FC01DE01119601900D92EC +:102320002A95E1F7FC01D080118102812581229557 +:102330002F7043815481452B09F4FCC21F3F21F4C7 +:10234000FFEFDF1609F4F6C27C012E830E945610BF +:10235000D9821A8369817A81802F0E94FD19182FF2 +:10236000B92E0E94B2190E9479182E81002319F00B +:102370000E94A41A2E81EB2DE295EF70F0E0E05A56 +:10238000FF4F0C94B7238B2D807F9B2D9F70F92ED0 +:10239000882319F0F29480EFF822002389F0FF20BF +:1023A00009F475C280E2810F883020F48F2D0E94DD +:1023B000871A03C08F2D0E94971A0E94CE1A67C2F7 +:1023C000812F0E941F11FF2009F4B4C2105E8F2DCF +:1023D000183018F40E948D1A02C00E949D1A269689 +:1023E0000FB6F894DEBF0FBECDBFDF91CF911F9126 +:1023F0000F91FF90EF90DF90CF90BF900C94CE1A8A +:102400003B2D307F8B2D8F70303211F08295807F85 +:10241000112319F0113021F12CC00023B9F022232F +:1024200009F4A0C1213009F09DC126960FB6F89499 +:10243000DEBF0FBECDBFDF91CF911F910F91FF90F7 +:10244000EF90DF90CF90BF900C94B71A222319F031 +:10245000213009F46FC28E830E94BA1A8E8196C110 +:10246000002321F0223008F065C27CC1211162C234 +:102470008DC1002321F0222309F474C108C2222354 +:1024800009F484C119C22B2D26952695237030E0BE +:102490002115310521F021303105D1F04BC2002347 +:1024A00021F0812F9B2D937002C080E090E0269652 +:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155 +:1024C0000F91FF90EF90DF90CF90BF900C94500F42 +:1024D000002321F0812F9B2D937002C080E090E0BB +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0001F910F91FF90EF90DF90CF90BF900C94C1 +:10250000660F812F002319F00E94471E02C00E940F +:10251000AF1E26960FB6F894DEBF0FBECDBFDF917B +:10252000CF911F910F91FF90EF90DF90CF90BF90D0 +:102530000C94341F8B2D837009F07BC00111FAC1FC +:10254000812F829586958770880F880F912F9F70B5 +:10255000C92ED12CE12CF12C082E04C0CC0CDD1C92 +:10256000EE1CFF1C0A94D2F714FF12C04FE050E09B +:1025700060E070E004C0440F551F661F771F8A9506 +:10258000D2F7CB01BA01609570958095909503C004 +:1025900060E070E0CB012B2D269526952370422F0D +:1025A00050E042305105D9F04330510569F16C29B2 +:1025B0007D298E299F294130510551F126960FB66C +:1025C000F894DEBF0FBECDBFDF91CF911F910F9169 +:1025D000FF90EF90DF90CF90BF900C94A0186C29E3 +:1025E0007D298E299F2926960FB6F894DEBF0FBE4F +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94BC180E94A018C701B601CF +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630008418002319F08B2D817001C086958823A2 +:1026400009F478C1812F829586958770880F880F4D +:10265000912F9F70C92ED12CE12CF12C082E04C093 +:10266000CC0CDD1CEE1CFF1C0A94D2F714FF12C028 +:102670004FE050E060E070E004C0440F551F661F5B +:10268000771F8A95D2F7CB01BA0160957095809536 +:10269000909503C060E070E0CB012B2D2695269528 +:1026A0002370422F50E042305105D9F0433051059C +:1026B00069F16C297D298E299F294130510551F1FD +:1026C00026960FB6F894DEBF0FBECDBFDF91CF9137 +:1026D0001F910F91FF90EF90DF90CF90BF900C94DF +:1026E0007A196C297D298E299F2926960FB6F89490 +:1026F000DEBF0FBECDBFDF91CF911F910F91FF9035 +:10270000EF90DF90CF90BF900C9496190E947A19A9 +:10271000C701B60126960FB6F894DEBF0FBECDBF37 +:10272000DF91CF911F910F91FF90EF90DF90CF90AD +:10273000BF900C945E19103FD1F118F4103E50F484 +:10274000A1C0123F09F463C008F44CC0133F09F460 +:1027500073C098C01F708B2D8F710023A1F00E9451 +:10276000F718812F26960FB6F894DEBF0FBECDBFA7 +:10277000DF91CF911F910F91FF90EF90DF90CF905D +:10278000BF900C946E110E941819812F26960FB6D7 +:10279000F894DEBF0FBECDBFDF91CF911F910F9197 +:1027A000FF90EF90DF90CF90BF900C9475110023B5 +:1027B000A9F02111BFC08B2D8F7126960FB6F8940A +:1027C000DEBF0FBECDBFDF91CF911F910F91FF9064 +:1027D000EF90DF90CF90BF900C943D19223008F01D +:1027E000A9C0E9CF0023A9F08B2D8F7126960FB6D3 +:1027F000F894DEBF0FBECDBFDF91CF911F910F9137 +:10280000FF90EF90DF90CF90BF900C94F7180023CB +:1028100059F38B2D8F7126960FB6F894DEBF0FBE3D +:10282000CDBFDF91CF911F910F91FF90EF90DF907F +:10283000CF90BF900C941819002399F08B2D8F71B5 +:1028400026960FB6F894DEBF0FBECDBFDF91CF91B5 +:102850001F910F91FF90EF90DF90CF90BF900C945D +:10286000E21826960FB6F894DEBF0FBECDBFDF91FB +:10287000CF911F910F91FF90EF90DF90CF90BF907D +:102880000C94D8180023A9F0222309F4ADCF812F8E +:1028900026960FB6F894DEBF0FBECDBFDF91CF9165 +:1028A0001F910F91FF90EF90DF90CF90BF900C940D +:1028B0005710222309F4ADCF812F26960FB6F89436 +:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1028D000EF90DF90CF90BF900C941F114B2D4F7055 +:1028E000612FC7010E94B40226960FB6F894DEBF8E +:1028F0000FBECDBFDF91CF911F910F91FF90EF9051 +:10290000DF90CF90BF900C94FC174B2D4F70612F30 +:10291000C70126960FB6F894DEBF0FBECDBFDF917C +:10292000CF911F910F91FF90EF90DF90CF90BF90CC +:102930000C944C0526960FB6F894DEBF0FBECDBFA3 +:10294000DF91CF911F910F91FF90EF90DF90CF908B +:10295000BF9008950E94A41A0E94B41A0E94791A86 +:102960000E94CE1A0E94E51F0E94341F80E090E072 +:102970000E94500F80E090E00C94660F0E94941A21 +:102980000C94AA140E94F219292F22952F7030E07E +:102990002C3031054CF42A3031056CF422503109C9 +:1029A0002230310588F407C02C30310549F02F3032 +:1029B000310531F009C0803E48F0803F29F406C05F +:1029C00093FB882780F9089580E0089581E00895B9 +:1029D000CF93DF9300D000D01F92CDB7DEB70F901A +:1029E0000F900F900F900F90DF91CF910895CF939C +:1029F000DF9300D000D000D0CDB7DEB726960FB65B +:102A0000F894DEBF0FBECDBFDF91CF9108951F9325 +:102A1000CF93DF93C091790116E080917A01C817B6 +:102A200099F0D0E01C9FF0011D9FF00D1124E55896 +:102A3000FE4F4081518162817381848195810E9422 +:102A4000F7142196C770E9CFDF91CF911F910895B8 +:102A50004091AB015091AC016091AD017091AE011C +:102A60008091AF019091B0010C94F7148091B00166 +:102A700082958F7009F054C08091AD01882309F4CC +:102A80004FC080917901A0917A016091AB01709162 +:102A9000AC014091AE015091AF01B6E08A1709F444 +:102AA0003FC090E041155105C1F17F3F11F46F3FE8 +:102AB000A1F1B89FF001B99FF00D1124E558FE4F28 +:102AC000218172132AC02081621327C02281211123 +:102AD00024C0238134812417350710F42150310993 +:102AE000241B350B283C3105C0F42091B0012F7018 +:102AF00020612093B00126E0289FF001299FF00D6E +:102B00001124E058FE4F80818F70806180838BEAB2 +:102B100091E00E947C110C94071501968770BECF3E +:102B20000895CF92DF92EF92FF920F931F93CF936E +:102B3000DF93CDB7DEB762970FB6F894DEBF0FBE56 +:102B4000CDBF8C0185E0F801DE011D9601900D924C +:102B50008A95E1F7D8014C9111965C9111971296E4 +:102B60006C9112971396CD90DC9014973091AB0135 +:102B70007091AC018091AE019091AF01009709F482 +:102B80006BC17F3F19F43F3F09F466C1E090AD018E +:102B9000EE2009F4C0C02091B001C816D90628F073 +:102BA000F601E81BF90BCF0104C0809590958C0DC0 +:102BB0009D1DFF24F394883C910578F0F12C207F33 +:102BC00009F0C6C07C2DD98AC88A89890E94E81478 +:102BD0008BEA91E00E947C11B1C0822F807F09F0C6 +:102BE00046C0751314C0341312C0611110C02F7089 +:102BF00020612093B0010E9428158BEA91E00E9489 +:102C00007C118091B001D80115968C932EC0CD28EF +:102C100019F15F3F11F44F3FF9F0F62E61111CC01E +:102C20008091790120917A0136E0821709F45AC027 +:102C300090E0389FF001399FF00D1124E558FE4FC8 +:102C40007181571306C07081471303C072817111DF +:102C500003C001968770E9CFF62E662309F418C1E8 +:102C60008091B00181608093B001F12C11C1751386 +:102C700008C0341306C0611104C08091B001D801AE +:102C8000C3C04D875E878D859E856A8B0E94C21466 +:102C90006A898823E1F16623D1F12091B001822F66 +:102CA00082958F7090E0029774F08091AB019091C3 +:102CB000AC0198878F831986DB86CA862C87CE0164 +:102CC00007960E947C1186E0F801ABEAB1E0019022 +:102CD0000D928A95E1F70E9436150E942815FF246F +:102CE000F394D6C04D875E878D859E850E94F2192C +:102CF000292F22952F7030E0223031050CF0BCC016 +:102D00009F7009F0B6C0805E883008F4C1C0C80169 +:102D10000E947C11E4CFC816D90608F453C0F6010E +:102D2000E81BF90BCF01883C910508F450C0F12C49 +:102D30007C2DD98AC88A89890E94E814EBEAF1E0DF +:102D400086E0DF011D928A95E9F70E942815A0C050 +:102D5000751314C0341312C0611110C08091B001FA +:102D6000F8018583C8010E947C1186E0EBEAF1E05E +:102D7000DF011D928A95E9F7FE2C8AC04D875E8798 +:102D80008D859E856A8B0E94C2146A89882309F406 +:102D9000BECF662309F4BBCF2091B001822F82956C +:102DA0008F7090E002970CF48ECF8091AB019091E0 +:102DB000AC019A8389831B82DD82CC822E83CE0173 +:102DC00001967FCF809590958C0D9D1DACCFF62EF2 +:102DD000662309F49CCF75132EC034132CC02091A8 +:102DE000B00120FD1FC0822F82958F70D9F0D801CD +:102DF00015962C9315978F3049F08F5F982F9295E9 +:102E0000907F822F8F70892B15968C93C8010E941A +:102E10007C1186E0F801ABEAB1E001900D928A9551 +:102E2000E1F793CF86E0F801ABEAB1E001900D92B3 +:102E30008A95E1F72DC04D875E878D859E850E941E +:102E4000C214811140CF8091B00181608093B001A4 +:102E5000C8010E947C111CC0662309F458CF4D871D +:102E60005E878D859E850E94C214882309F44FCF0A +:102E70002ACF811148CF0CC0243031050CF047CF48 +:102E80009F7009F440CFF8019581907F09F03BCF06 +:102E90008F2D62960FB6F894DEBF0FBECDBFDF91C7 +:102EA000CF911F910F91FF90EF90DF90CF900895F9 +:102EB0001F93CF93DF93CDB7DEB72C970FB6F8945F +:102EC000DEBF0FBECDBF4F83588769877A878B8758 +:102ED0009C87CE0107960E949115882369F08F8107 +:102EE00098852A853B85232BF1F19F3F09F063C02C +:102EF0008F3F09F060C037C086E0FE013796DE01E3 +:102F0000119601900D928A95E1F76F817885EA8597 +:102F1000FB85309741F17F3F11F46F3F21F1209104 +:102F20007A0130E0C90101968770992740917901B3 +:102F300050E08417950709F447C069837A83FD83BD +:102F4000EC8396E0929FD001939FB00D1124A55879 +:102F5000BE4FFE01319601900D929A95E1F7809354 +:102F60007A010E94071516E08091790190917A010B +:102F70008917C1F1189FC001112485589E4F0E94E6 +:102F80009115882379F1E09179011E9FF0011124B8 +:102F9000E558FE4F40815181628173818481958122 +:102FA0000E94F7148091790190E00196877099272B +:102FB00080937901D9CF4F81588569857A858B8532 +:102FC0009C850E94F714CFCF0E94BE1410927A0104 +:102FD00010927901EBEAF1E086E0DF011D928A951B +:102FE000E9F7C1CF2C960FB6F894DEBF0FBECDBF68 +:102FF000DF91CF911F910895EF92FF920F931F934E +:10300000CF93DF938C01892B09F46CC0F12CEE2453 +:10301000E394E8012196F8018491843740F48430E8 +:1030200008F051C0813081F0823019F15BC08537E2 +:1030300009F444C0A8F19CE7980F903708F052C0FB +:103040008F770E941F1141C00E5F1F4FFE01C49178 +:1030500080E28C0F883048F4C7708E2D01C0880F35 +:10306000CA95EAF70E94A71A14C08C2F0E94571025 +:103070002DC00E5F1F4FFE01C49180E28C0F88307F +:1030800058F4C7708E2D01C0880FCA95EAF70E94C8 +:10309000AD1A0E94CE1A1AC08C2F0E941F1116C0A2 +:1030A0000E5F1F4FFE01C491CC2381F08FE99FE09A +:1030B0000197F1F700C00000C150F6CF0E5F1F4F1F +:1030C000FE01F49003C00E9457108E018F2D8823BB +:1030D00009F49FCFEFE9FFE03197F1F700C000005E +:1030E0008150F5CFDF91CF911F910F91FF90EF901D +:1030F000089508956093B5017093B6018093B70168 +:103100009093B8010C94AA140F931F930091B501EA +:103110001091B6012091B7013091B801DC01CB01CB +:10312000802B912BA22BB32B8093B5019093B601EA +:10313000A093B701B093B8011F910F910C94AA14FA +:103140000F931F930091B5011091B6012091B70123 +:103150003091B801DC01CB0180239123A223B3235A +:103160008093B5019093B601A093B701B093B801D5 +:103170001F910F910C94AA140F931F930091B50106 +:103180001091B6012091B7013091B801DC01CB015B +:1031900080279127A227B3278093B5019093B6018A +:1031A000A093B701B093B8011F910F910C94AA148A +:1031B0001092B1011092B2011092B3011092B401B9 +:1031C0000C94AA1441E050E060E070E004C0440FA9 +:1031D000551F661F771F8A95D2F74093B101509310 +:1031E000B2016093B3017093B4010C94AA1441E04E +:1031F00050E060E070E004C0440F551F661F771F69 +:103200008A95D2F78091B1019091B201A091B3015A +:10321000B091B401482B592B6A2B7B2B4093B10101 +:103220005093B2016093B3017093B4010C94AA144B +:1032300041E050E060E070E004C0440F551F661F9D +:10324000771F8A95D2F7409550956095709580913B +:10325000B1019091B201A091B301B091B4014823A2 +:1032600059236A237B234093B1015093B2016093A9 +:10327000B3017093B4010C94AA1441E050E060E0F3 +:1032800070E004C0440F551F661F771F8A95D2F760 +:103290008091B1019091B201A091B301B091B401BC +:1032A000482759276A277B274093B1015093B201E1 +:1032B0006093B3017093B4010C94AA140F931F93FD +:1032C0000091B1011091B2012091B3013091B4018C +:1032D000DC01CB01802B912BA22BB32B8093B1016E +:1032E0009093B201A093B301B093B4011F910F91D9 +:1032F0000C94AA140F931F930091B1011091B20185 +:103300002091B3013091B401DC01CB0180239123E2 +:10331000A223B3238093B1019093B201A093B30190 +:10332000B093B4011F910F910C94AA140F931F93A3 +:103330000091B1011091B2012091B3013091B4011B +:10334000DC01CB0180279127A227B3278093B1010D +:103350009093B201A093B301B093B4011F910F9168 +:103360000C94AA140895CF92DF92EF92FF920F93DC +:103370001F93CF93DF938C01C090B501D090B6011D +:10338000E090B701F090B8018091B1019091B20145 +:10339000A091B301B091B401C82AD92AEA2AFB2A24 +:1033A000CFE1D0E0D701C6010C2E04C0B695A79599 +:1033B000979587950A94D2F780FF06C0B8018C2FA5 +:1033C0000E948C07019721F4219760F780E001C0EB +:1033D0008C2FDF91CF911F910F91FF90EF90DF9095 +:1033E000CF900895CF93DF93EC010E94B319BE01F3 +:1033F0000E948C07DF91CF910895CB010E94F219B2 +:10340000089590910C01992321F090910D01911153 +:1034100009C020910E0130910F01F90132969FEF02 +:1034200040E01FC0982F9695969596959F3050F541 +:10343000E0910E01F0910F01E90FF11D877021E07D +:1034400030E0A90102C0440F551F8A95E2F7CA0176 +:103450009181892B818308959F3F39F04F5F4E30D2 +:1034600041F051915813F8CF0DC05111F7CF942F5F +:10347000F5CF9F3F39F0F901E90FF11D97FDFA955E +:1034800082830895089590910C01992321F09091E1 +:103490000D01911109C020910E0130910F01F90128 +:1034A0003296205F3F4F1FC0982F96959695969520 +:1034B0009F30F0F4E0910E01F0910F01E90FF11D42 +:1034C000877021E030E0A90102C0440F551F8A95A2 +:1034D000E2F7CA018095918189238183089531960D +:1034E000E217F30729F090819813F9CF1082F7CFF4 +:1034F000089581E090E0E0910E01F0910F01E80F56 +:10350000F91F1082019680319105A9F708959091D5 +:10351000CC01892B8093CC01089580959091CC01AA +:1035200089238093CC0108951092CC010895909145 +:10353000CB01892B8093CB01089580959091CB018D +:1035400089238093CB0108951092CB010895909127 +:10355000CA01892B8093CA01089580959091CA0170 +:1035600089238093CA0108951092CA010895809317 +:10357000B90108951092B901089580910E019091BA +:103580000F01FC0131969C01205F3F4F80E091913B +:1035900091118F5FE217F307D1F70895E0910E01C3 +:1035A000F0910F018091CC018083E0910E01F091A8 +:1035B0000F0190818091CB01892B8083E0910E01D6 +:1035C000F0910F0190818091CA01892B80838091B5 +:1035D000B901882361F0E0910E01F0910F01908113 +:1035E000892B80830E94BD1A81111092B9018091AC +:1035F0000E0190910F010C943A0FCF92DF92EF924F +:10360000FF926C01EE24FF24C114D104E104F10403 +:1036100021F0C701B60120E101C020E0C72ED82E5D +:10362000E92EFF24C114D104E104F10419F0285F4C +:10363000C701B6016B017C0154E0F694E794D7947E +:10364000C7945A95D1F7C114D104E104F10419F0DB +:103650002C5FC701B6016B017C0142E0F694E79450 +:10366000D794C7944A95D1F7C114D104E104F10469 +:1036700019F02E5FC701B601DC01CB01B695A79505 +:1036800097958795892B8A2B8B2B09F02F5F822F9B +:10369000FF90EF90DF90CF9008958091E401843007 +:1036A00021F11092CE0120E488E190E00FB6F89469 +:1036B000A895809360000FBE2093600080E00E9478 +:1036C000270883B7817F846083BF83B7816083BF0E +:1036D0007894889583B78E7F83BF88E10FB6F8947E +:1036E00080936000109260000FBE089508950895C1 +:1036F000CF930E94761B0E9457040E94771BC0E064 +:103700008C2F0E944505811104C0CF5FCE30C1F7D8 +:1037100001C081E0CF9108950E94BE140E942E0F37 +:103720000C94270882E084BD93E095BD9AEF97BD85 +:1037300080936E0008952FB7F8948091CF019091F7 +:10374000D001A091D101B091D2012FBF0895CF92A5 +:10375000DF92EF92FF920F931F932FB7F89440914F +:10376000CF015091D0016091D1017091D2012FBF52 +:103770006A017B01EE24FF248C0120E030E0C016BA +:10378000D106E206F30610F4415051099A01281BB4 +:10379000390BC9011F910F91FF90EF90DF90CF90EF +:1037A00008951F920F920FB60F9211248F939F933B +:1037B000AF93BF938091CF019091D001A091D1019F +:1037C000B091D2010196A11DB11D8093CF019093BC +:1037D000D001A093D101B093D201BF91AF919F913D +:1037E0008F910F900FBE0F901F9018950E942B0C79 +:1037F000F8942FEF87EA91E6215080409040E1F75E +:1038000000C0000087E090EBDC018093EE01909314 +:10381000EF01A093F001B093F1019CE088E10FB6B5 +:10382000F894A895809360000FBE90936000FFCF3E +:10383000EF92FF920F931F93CF93DF93D82FC0E0A7 +:103840008C2F0E94450500E010E0E82EF12CC70106 +:10385000002E02C0959587950A94E2F780FD06C078 +:103860000F5F1F4F0630110591F709C0602F7C2FA5 +:1038700080E00E944D05D813F3CF81E004C0CF5FF4 +:10388000CE30F1F680E0DF91CF911F910F91FF9044 +:10389000EF900895CF93C82F8CE20E94181C8823C4 +:1038A00021F08C2FCF910C94181C80E0CF910895BB +:1038B000CF930E949F1D811102C00E94851DC5E605 +:1038C000C15049F00E9457048FE39CE90197F1F73A +:1038D00000C00000F5CF89E20E944A1C811113C18B +:1038E0008AE20E944A1C81110E94851D85E00E9487 +:1038F0004A1C81110E94F61B0E94AA1D8093CD01D3 +:1039000087E00E944A1C8823A9F18BE10E944A1C8F +:10391000882351F08091CD0181FB222720F991E08D +:10392000922790FB81F90EC08EE00E944A1C8823EA +:1039300061F08091CD0182FB222720F991E092274E +:1039400090FB82F98093CD0115C080E10E944A1C52 +:103950009091CD01882341F093FB222720F981E04B +:10396000822780FB93F904C0892F809580FB90F912 +:103970009093CD018091CD010E94AE1D0E94BC1D8F +:103980008093ED0180EE0E944A1C882341F08091D3 +:10399000ED01982F909590FB80F98093ED0189E3DC +:1039A0000E944A1C882359F08091ED0181FB222757 +:1039B00020F991E0922790FB81F98093ED0182EE4E +:1039C0000E944A1C882359F08091ED0182FB222736 +:1039D00020F991E0922790FB82F98093ED0186EE29 +:1039E0000E944A1C882359F08091ED0183FB222715 +:1039F00020F991E0922790FB83F98093ED0183EE0B +:103A00000E944A1C882359F08091ED0184FB2227F3 +:103A100020F991E0922790FB84F98093ED0185E3F2 +:103A20000E944A1C882359F08091ED0185FB2227D2 +:103A300020F991E0922790FB85F98093ED0181E3D5 +:103A40000E944A1C882359F08091ED0186FB2227B1 +:103A500020F991E0922790FB86F98093ED0181E1B6 +:103A60000E944A1C882359F08091ED0187FB222790 +:103A700020F991E0922790FB87F98093ED018091E6 +:103A8000ED010E94C01D8091ED0187FB882780F920 +:103A900080930D0187E20E944A1CC82F8EE10E948C +:103AA0004A1C8111C2608FE10E944A1C8111C460CE +:103AB00080E20E944A1C8111C86081E20E944A1C77 +:103AC0008111C06182E20E944A1C8111C06283E2BE +:103AD0000E944A1C8111C06484E20E944A1C88230F +:103AE00011F0C06802C0CC2329F08C2F0E94B71DB2 +:103AF0006C2F03C00E94B31D682F70E080E090E03F +:103B0000CF910C947A18CF9108956DEE7EEF80E0FE +:103B100090E00E94F12360E082E090E00E94DF23C9 +:103B200060E083E090E00E94DF2360E084E090E0CA +:103B30000E94DF2360E085E090E00C94DF2380E0CA +:103B400090E00E94D92321E08D3E9E4F09F020E0B5 +:103B5000822F089582E090E00C94D123682F82E0B8 +:103B600090E00C94DF2383E090E00C94D123682F45 +:103B700083E090E00C94DF2384E090E00C94D12368 +:103B8000682F84E090E00C94DF238091D50180FFC2 +:103B90000BC06091130185E0689FB00111247595F9 +:103BA0006795759567952BC081FF09C060911301DA +:103BB00085E0689FB00111247595679520C082FF4C +:103BC00007C06091130185E0689FB001112417C000 +:103BD0009091D6019923D1F060911201961788F740 +:103BE0002091130185E0289F90011124929FA0014C +:103BF000939F500D112470E0CA010E94A3236038E6 +:103C0000710540F46115710539F002C065E070E09E +:103C1000862F08958FE7089581E008958091D5015A +:103C200080FF08C06091110170E0759567957595EA +:103C3000679521C081FF06C06091110170E0759504 +:103C4000679519C082FF04C06091110170E010C037 +:103C50009091D6019923C1F0609110019617A0F7B9 +:103C600080911101899FC001112470E00E94A3235B +:103C70006038710528F46115710521F0862F0895CB +:103C80008FE7089581E0089561E070E0F4CF803F10 +:103C900021F40E94C51D819504C0813F29F40E9432 +:103CA000C51D8093D9010895823F21F40E94C51D4E +:103CB000819504C0833F29F40E94C51D8093D801DB +:103CC0000895893F19F40E940E1E05C08A3F31F401 +:103CD0000E940E1E81958093DA0108958B3F21F496 +:103CE0000E940E1E819504C08C3F29F40E940E1E76 +:103CF0008093DB010895843F21F48091D701816096 +:103D000017C0853F21F48091D701826011C0863FA2 +:103D100021F48091D70184600BC0873F21F480910A +:103D2000D701886005C0883F31F48091D701806158 +:103D30008093D70108958D3F21F48091D501816052 +:103D40000BC08E3F21F48091D501826005C08F3F6A +:103D500029F48091D50184608093D5010895803F36 +:103D600039F48091D90187FF6CC01092D90169C0E4 +:103D7000813F29F48091D9011816BCF362C090915B +:103D8000D801823F29F497FF5CC01092D80159C036 +:103D9000833F19F41916CCF354C0893F41F4809144 +:103DA000DA0118160CF04DC01092DA014AC08A3FB1 +:103DB00029F48091DA0187FF44C0F6CF8B3F39F4B4 +:103DC0008091DB0187FF3DC01092DB013AC08C3F40 +:103DD00029F48091DB011816BCF333C0843F21F431 +:103DE0008091D7018E7F17C0853F21F48091D70144 +:103DF0008D7F11C0863F21F48091D7018B7F0BC04E +:103E0000873F21F48091D701877F05C0883F31F437 +:103E10008091D7018F7E8093D70113C08D3F21F40D +:103E20008091D5018E7F0BC08E3F21F48091D5010A +:103E30008D7F05C08F3F29F48091D5018B7F8093C2 +:103E4000D5018091D80181110EC08091D9018111D5 +:103E50000AC08091DA01811106C08091DB018111D5 +:103E600002C01092D601089587ED91E00E94450F9F +:103E70000E949B1B9093D4018093D30108951F93BC +:103E8000CF93DF938091D3019091D4010E94A71B1F +:103E9000AC019091D601992321F02091140130E0DA +:103EA00006C0209115018AE0289F90011124421735 +:103EB000530708F486C08091D801C091D901D091F0 +:103EC000DA011091DB01811107C0C11176C0D11157 +:103ED00074C0111172C075C09F3F19F09F5F90931D +:103EE000D601181624F40E94C51D8093D801809134 +:103EF000D80187FF05C00E94C51D81958093D80118 +:103F00001C1624F40E94C51D8093D9018091D9010B +:103F100087FF05C00E94C51D81958093D9016091DE +:103F2000D801662339F1C091D901CC2319F1772743 +:103F300067FD7095872F972F0E94B42223E333E308 +:103F400043E35FE30E9418230E9481226093D8011B +:103F50006C2F772767FD7095872F972F0E94B422CB +:103F600023E333E343E35FE30E9418230E948122AB +:103F70006093D9011D1624F40E940E1E8093DA016D +:103F80008091DA0187FF05C00E940E1E8195809303 +:103F9000DA01111624F40E940E1E8093DB01809139 +:103FA000DB0187FF05C00E940E1E81958093DB0117 +:103FB000DF91CF911F910C94341F9F3F09F08ECF5A +:103FC00096CFDF91CF911F910895E7EDF1E085E065 +:103FD000DF011D928A95E9F71092D6011092D50162 +:103FE0000895833081F128F4813059F08230D1F086 +:103FF0000895853009F449C0B8F1863009F456C0F7 +:10400000089580911501262F30E0280F311D2F3F94 +:10401000310524F4680F6093150108958FEF8093A4 +:104020001501089580911401262F30E0280F311DCD +:104030002F3F310524F4680F6093140108958FEF2A +:1040400080931401089580911301262F30E0280FEA +:10405000311D2F3F310524F4680F6093130108953B +:104060008FEF80931301089580911201262F30E085 +:10407000280F311D2F3F310524F4680F6093120182 +:1040800008958FEF80931201089580911101262FDA +:1040900030E0280F311D2F3F310524F4680F609365 +:1040A000110108958FEF80931101089580911001FF +:1040B000262F30E0280F311D2F3F310524F4680FE3 +:1040C0006093100108958FEF80931001089583305D +:1040D00011F128F4813049F0823091F00895853053 +:1040E00081F120F18630C1F10895809115016817A2 +:1040F00020F4861B809315010895109215010895F0 +:1041000080911401681720F4861B80931401089590 +:1041100010921401089580911301681720F4861BF2 +:104120008093130108951092130108958091120154 +:10413000681720F4861B80931201089510921201D3 +:10414000089580911101681720F4861B8093110156 +:10415000089510921101089580911001681720F4BC +:10416000861B8093100108951092100108950F93FB +:104170001F938D3109F46BC008F03FC08E3009F4F5 +:104180007FC0C0F4873009F469C068F4863009F054 +:10419000B1C08091CD01817F8E7F8093CD0181E080 +:1041A0008093DD01A8C0883009F4A2C08B3009F4E7 +:1041B0009FC0A0C0863109F49BC078F4803109F417 +:1041C00072C0813109F096C00E94BE1490910D0119 +:1041D00081E0892780930D018BC0893109F488C063 +:1041E0008B3109F087C08091CD0181FB222720F916 +:1041F00091E0922790FB81F94CC0853309F470C09F +:1042000048F4873209F46CC008F459C0893209F4C3 +:1042100067C070C0833438F48A3308F04EC08833E6 +:1042200009F466C067C0833409F45AC0883409F0C1 +:1042300061C00E94BE140FEF13ED20E30150104047 +:104240002040E1F700C000000E94F61B51C00E9410 +:104250003B220E942E0F0E9427084AC09091CD0158 +:10426000892F8095817080FB90F929F09660986085 +:104270009093CD0140C0997F977F9093CD0138C036 +:104280008091CD0182FB222720F991E0922790FBBB +:1042900082F98093CD01992359F18091CD018160FC +:1042A0008093CD0125C08091CD0183FB222720F989 +:1042B00091E0922790FB83F9ECCF895301C08D5197 +:1042C00041E050E060E070E08A019B0104C0000F13 +:1042D000111F221F331F8A95D2F7C901B80104C0EC +:1042E00061E070E080E090E00E947A180E94BE14C5 +:1042F00081E001C080E01F910F91089580E0089552 +:1043000080E00895CF93C82F8091DD01813079F04E +:1043100018F08230E9F187C0E0910E01F0910F01B1 +:104320008081813169F0823209F07FC009C0E0915B +:104330000E01F0910F018081813111F0823261F420 +:104340008C2F0E947E21811104C08C2F0E94B720E7 +:104350001DC081E090E01AC08C2F0E948021811145 +:1043600014C0C43179F048F4CB3079F0C03109F091 +:1043700060C082E08093DD0108C0C93219F0C83303 +:1043800021F057C01092DD0154C081E0817053C00C +:10439000C93289F118F5C43171F1A8F4C73009F0B8 +:1043A00046C08AE08093150194E19093140193E054 +:1043B000909313018093120188E08093110188E2A9 +:1043C0008093100134C0CE51C63088F5EC2FF0E058 +:1043D000E65DFE4F80818093DC0129C0CE34E9F098 +:1043E00020F4CB3421F56AE013C0C13579F0C23531 +:1043F000F1F461E00DC08091DC01882319F0109286 +:10440000DC0115C081E08093DD0115C061E006C0CC +:104410008091DC010E94F11F0AC06AE08091DC01FA +:104420000E94672004C01092DD0180E004C081E09A +:1044300002C080E0ABCFCF910895E1E8F0E0808149 +:10444000886080838081816080838FB7F89493E057 +:104450009093890090ED909388008FBF0895EFE6C8 +:10446000F0E08081826080830895EFE6F0E0808153 +:104470008D7F80830895EFE6F0E0908182E08927C8 +:10448000808308951F920F920FB60F9211242F93DD +:104490003F934F935F936F937F938F939F93AF93CC +:1044A000BF93EF93FF938091DE019091DF0101961E +:1044B0009093DF018093DE01811103C082E00E94AE +:1044C0002708E091DF01E695E695F0E0E456FB4F22 +:1044D000E4918091DE018E1303C080E00E942708E2 +:1044E000FF91EF91BF91AF919F918F917F916F91CC +:1044F0005F914F913F912F910F900FBE0F901F90A2 +:10450000189504D06894B1118DC0089570D088F0CA +:104510009F5790F0B92F9927B751A0F0D1F0660FAF +:10452000771F881F991F1AF0BA95C9F712C0B130CA +:1045300081F077D0B1E0089574C0672F782F882775 +:10454000B85F39F0B93FCCF3869577956795B39509 +:10455000D9F73EF490958095709561957F4F8F4F78 +:104560009F4F0895E89409C097FB3EF4909580957D +:10457000709561957F4F8F4F9F4F9923A9F0F92F29 +:1045800096E9BB279395F695879577956795B795A7 +:10459000F111F8CFFAF4BB0F11F460FF1BC06F5F8D +:1045A0007F4F8F4F9F4F16C0882311F096E911C09F +:1045B000772321F09EE8872F762F05C0662371F0C0 +:1045C00096E8862F70E060E02AF09A95660F771FD4 +:1045D000881FDAF7880F9695879597F9089557FD04 +:1045E0009058440F551F59F05F3F71F04795880F61 +:1045F00097FB991F61F09F3F79F0879508951216F8 +:1046000013061406551FF2CF4695F1DF08C01616A3 +:1046100017061806991FF1CF869571056105089454 +:104620000895E894BB2766277727CB0197F908956B +:104630000BD078C069D028F06ED018F0952309F01F +:104640005AC05FC01124EECFCADFA0F3959FD1F30B +:10465000950F50E0551F629FF001729FBB27F00D30 +:10466000B11D639FAA27F00DB11DAA1F649F662785 +:10467000B00DA11D661F829F2227B00DA11D621FD4 +:10468000739FB00DA11D621F839FA00D611D221F8E +:10469000749F3327A00D611D231F849F600D211D72 +:1046A000822F762F6A2F11249F5750408AF0E1F015 +:1046B00088234AF0EE0FFF1FBB1F661F771F881F5E +:1046C00091505040A9F79E3F510570F014C0AACFF9 +:1046D0005F3FECF3983EDCF3869577956795B79549 +:1046E000F795E7959F5FC1F7FE2B880F911D969573 +:1046F000879597F9089597F99F6780E870E060E0E3 +:1047000008959FEF80EC089500240A94161617066A +:1047100018060906089500240A94121613061406B2 +:1047200005060895092E0394000C11F4882352F015 +:10473000BB0F40F4BF2B11F460FF04C06F5F7F4FCD +:104740008F4F9F4F089597FB072E16F4009407D0C4 +:1047500077FD09D00E94BD2307FC05D03EF490955B +:1047600081959F4F0895709561957F4F0895EE0F45 +:10477000FF1F0590F491E02D0994AA1BBB1B51E18A +:1047800007C0AA1FBB1FA617B70710F0A61BB70BC1 +:10479000881F991F5A95A9F780959095BC01CD0166 +:1047A0000895F999FECF92BD81BDF89A992780B5F9 +:1047B0000895A8E1B0E042E050E00C94F923262FE0 +:1047C000F999FECF92BD81BDF89A019700B4021607 +:1047D00039F01FBA20BD0FB6F894FA9AF99A0FBEB5 +:1047E00008950196272F0E94E0230C94DF23DC011B +:1047F000CB01FC01F999FECF06C0F2BDE1BDF89AEC +:10480000319600B40D9241505040B8F70895F89495 +:02481000FFCFD8 +:1048120020022908B708940860082C080101BA018F +:1048220028080A03140A3F4D36395D041004DA03DE +:10483200A10334034D0366037F030102030405064B +:04484200070809005A +:00000001FF -- cgit v1.2.3 From 130a485bf79c4d7b700793a3f21e8527f07e0bb3 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 00:15:21 -0400 Subject: updates planck default keymap --- keyboard/planck/keymaps/default/keymap.c | 37 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 92396d0ce..fa9c3915a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -30,10 +30,8 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#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) @@ -172,7 +170,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |Mus on|Musoff| | | | | | | | + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -208,7 +206,6 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); - #endif @@ -351,6 +348,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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 = 7; @@ -365,16 +376,4 @@ void process_action_user(keyrecord_t *record) { } } - -void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - _delay_ms(10); // stops the tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif -} - -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} +#endif -- cgit v1.2.3 From 9fb1e5441fd59496a55d1d171dc7dba5f2ea1c22 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 00:22:35 -0400 Subject: updates preonic default keymap --- keyboard/preonic/keymaps/default/keymap.c | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'keyboard') diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 3a6dfa31a..95b971876 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -24,10 +24,8 @@ #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#ifdef AUDIO_ENABLE - #define AUD_OFF M(6) - #define AUD_ON M(7) -#endif +#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) @@ -163,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | | |Audoff|Aud on|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | | |Musoff|Mus on| | | | | | | | + * | |Voice-|Voice+|Musoff|Mus on| | | | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' @@ -310,6 +308,16 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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 + uint8_t starting_note = 0x0C; int offset = 7; @@ -325,18 +333,10 @@ void process_action_user(keyrecord_t *record) { } -void matrix_init_user(void) { - _delay_ms(10); // gets rid of tick - play_startup_tone(); -} - -void play_startup_tone() -{ - PLAY_NOTE_ARRAY(start_up, false, 0); -} - void play_goodbye_tone() { PLAY_NOTE_ARRAY(goodbye, false, 0); _delay_ms(150); -} \ No newline at end of file +} + +#endif \ No newline at end of file -- cgit v1.2.3 From 170d9b7d15c8483cee8ff976936aad0da21e4c92 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 00:25:49 -0400 Subject: addresses memory limits concerns for atomic default makefile --- keyboard/atomic/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 3f066aebc..1d91c34b7 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -142,7 +142,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration 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 -- cgit v1.2.3 From 0889cc0d9adc1a69136acd28e880089c05a75778 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 01:00:34 -0400 Subject: removes old .hex files --- keyboard/planck/planck_pcb.hex | 1544 ------------------------ keyboard/planck/planck_with_bootloader.hex | 1796 ---------------------------- keyboard/preonic/preonic_music.hex | 1713 -------------------------- keyboard/preonic/preonic_pcb.hex | 1702 -------------------------- keyboard/preonic/preonic_pcb_silent.hex | 1189 ------------------ 5 files changed, 7944 deletions(-) delete mode 100644 keyboard/planck/planck_pcb.hex delete mode 100755 keyboard/planck/planck_with_bootloader.hex delete mode 100644 keyboard/preonic/preonic_music.hex delete mode 100644 keyboard/preonic/preonic_pcb.hex delete mode 100644 keyboard/preonic/preonic_pcb_silent.hex (limited to 'keyboard') diff --git a/keyboard/planck/planck_pcb.hex b/keyboard/planck/planck_pcb.hex deleted file mode 100644 index 11f523c05..000000000 --- a/keyboard/planck/planck_pcb.hex +++ /dev/null @@ -1,1544 +0,0 @@ -:100000000C949D020C94E1020C94E1020C94E10228 -:100010000C94E1020C94E1020C94E1020C94E102D4 -:100020000C94E1020C94E1020C941C120C94EE125C -:100030000C948D240C94E1020C94E1020C94E102E6 -:100040000C94E1020C94E1020C94E1020C94E102A4 -:100050000C94E1020C94FA240C94E1020C94E10259 -:100060000C94E1020C94E1020C94E1020C94E10284 -:100070000C94E1020C94E1020C94E1020C94E10274 -:100080000C94860A0C94E1020C94E1020C94E102B7 -:100090000C94E1020C94E1020C94E1020C94E10254 -:1000A0000C94E1020C94E1020C94E10207634236E5 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F0000000000000021 -:10013000F1A4F1A3018C028C048C2B0014001A0092 -:100140000800150017001C0018000C001200130016 -:100150002A00290004001600070009000A000B000D -:100160000D000E000F0033003400E1001D001B00E5 -:100170000600190005001100100036003700380095 -:1001800028000030E000E200E30002202C002C00F8 -:1001900001205000510052004F002B0014001A00A3 -:1001A000090013000A000D000F0018001C003300A6 -:1001B0002A002900040015001600170007000B0094 -:1001C000110008000C0012003400E1001D001B00AB -:1001D0000600190005000E00100036003700380038 -:1001E00028000030E000E200E30002202C002C0098 -:1001F00001205000510052004F002B003400360007 -:10020000370013001C0009000A00060015000F004B -:100210002A00290004001200080018000C00070042 -:100220000B001700110016003800E1003300140025 -:100230000D000E001B00050010001A0019001D0023 -:1002400028000030E000E200E30002202C002C0037 -:1002500001205000510052004F0035021E021F02C3 -:100260002002210222022302240225022602270262 -:100270002A0001003A003B003C003D003E003F00E8 -:100280002D022E022F0230023102010040004100F7 -:100290004200430044004500032004200520005094 -:1002A0000100010001000100010002200100010025 -:1002B0000100AB00AA00A900AE0035001E001F001F -:1002C0002000210022002300240025002600270012 -:1002D0002A0001003A003B003C003D003E003F0088 -:1002E0002D002E002F0030003100010040004100A1 -:1002F0004200430044004500032004200520005034 -:1003000001000100010001000100010001000100E5 -:100310000120AB00AA00A900AE0028035400680029 -:100320006500200050006C0061006E0063006B00EF -:1003300020004B006500790062006F0061007200D0 -:10034000640000002C034F007200740068006F000E -:100350006C0069006E0065006100720020004B00B7 -:100360006500790062006F00610072006400730034 -:100370000000040309040902D000060100A03209AC -:100380000400000103010100092111010001223FC5 -:10039000000705810308000A0904010001030102A6 -:1003A00000092111010001224D0007058203080008 -:1003B0000A090402000103000000092111010001E3 -:1003C0002236000705830308000A0904030002031C -:1003D000000000092111010001222000070584030B -:1003E00020000107050403200001090404000001A6 -:1003F00001000009240100010900010509040500AC -:10040000020103000007240100014100062402014B -:100410000100062402020200092403010301020173 -:10042000000924030204010101000905060240003D -:1004300005000005250101010905850240000500B0 -:100440000005250101031201100100000008EDFE66 -:1004500060600100010200010631FF0974A1010979 -:1004600075150025FF952075088102097615002570 -:10047000FF952075089102C005010980A101850240 -:1004800016010026B7001A01002AB7007510950161 -:100490008100C0050C0901A1018503160100269CFD -:1004A000021A01002A9C02751095018100C0050105 -:1004B0000902A1010901A100050919012905150079 -:1004C00025019505750181029501750381010501DD -:1004D000093009311581257F950275088106093893 -:1004E0001581257F950175088106050C0A380215CE -:1004F00081257F950175088106C0C005010906A107 -:1005000001050719E029E715002501950875018106 -:1005100002950175088101050819012905950575E0 -:100520000191029501750391010507190029FF1535 -:100530000025FF950675088100C011241FBECFEF6E -:10054000DAE0DEBFCDBF04B603FE24C0809178039D -:1005500090917903A0917A03B0917B038730904BFF -:10056000A740B04BB9F4109278031092790310921F -:100570007A0310927B0314BE84B7877F84BF88E11F -:100580000FB6F89480936000109260000FBEE0E018 -:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E -:1005A00005900D92A63BB107D9F713E0A6EBB1E099 -:1005B00001C01D92A837B107E1F70E94F90E0C9413 -:1005C000CF2F0C9400000895089561110DC0FC0117 -:1005D0008281882331F085EE0E949D190E94B62BFE -:1005E00003C085EE0E94651A80E090E008958B3B81 -:1005F000910568F4883A910530F5853A9105C0F483 -:100600008430910598F4019709F06FC071C0803E65 -:10061000910508F46AC0883E910540F09C01205F76 -:1006200031092031310508F060C05CC09C01A1C0D7 -:10063000853A910509F45FC0863A910509F45EC0D8 -:1006400023E830E496C0883A910509F45AC0893A03 -:10065000910509F459C08A3A910509F458C08B3ABA -:10066000910509F457C08C3A910509F456C08D3AAA -:10067000910509F455C0803B910509F454C08E3AA8 -:10068000910509F453C08F3A910509F452C0813B9A -:10069000910509F451C0823B910509F450C0833B98 -:1006A000910509F44FC0843B910509F44EC0853B88 -:1006B000910509F44DC0863B910509F44CC0873B78 -:1006C000910509F44BC0883B910509F44AC0893B68 -:1006D000910509F449C08A3B910509F048C02AE216 -:1006E00036E447C09C01306544C020E030E041C0A2 -:1006F00021E030E03EC021E830E43BC022E830E4B5 -:1007000038C022EE34E435C029EE34E432C02AEE9B -:1007100034E42FC025EB34E42CC026EB34E429C0AC -:1007200027EB34E426C02CEC34E423C02DEC34E475 -:1007300020C023E835E41DC02AE835E41AC022E9C8 -:1007400035E417C024E935E414C021E236E411C0D1 -:1007500023E236E40EC024E236E40BC025E236E4A0 -:1007600008C026E236E405C027E236E402C020E0F5 -:1007700034E4C90108959CE0799FF001112490E3CD -:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 -:10079000E65CFE4F25913491C9010895880F991F99 -:1007A00082559040FC0125913491C9010895880F2C -:1007B000991F825D9E4FFC0125913491C9010895D6 -:1007C0000E94BB039C013A9521153F4108F4DFC00C -:1007D0009C0130522115304120F49F700E94D703B4 -:1007E00008959C0130532115304118F49927906CDD -:1007F00008959C0130542031310520F48F709927E1 -:10080000946D0895803120E4920719F480E091ED11 -:100810000895813140E4940719F480E090ED089543 -:10082000823120E4920719F480E092ED089583313B -:1008300040E4940719F480E093ED0895811520E5D4 -:10084000920711F40C941F25813040E5940731F490 -:100850008091680281608093680208959C013056FF -:100860002115304108F402C097FF02C0906F08952F -:10087000803E9105E0F4803C910568F58133910557 -:1008800009F474C048F48932910509F46AC08A32C7 -:10089000910509F07AC074C089339105F9F0823866 -:1008A0009105E1F08533910509F06FC050C0833E9A -:1008B0009105A9F140F4803E9105C9F0823E910571 -:1008C00009F063C01BC0863E910571F1873E91051A -:1008D00009F05BC037C00E94CE03089520917B02CF -:1008E00020FD02C021FF51C080EE90E04EC08091FB -:1008F0007B0280FFF9CF89E390E047C080917B02C3 -:1009000082FF0AC080917B0284FF03C080E090E0F8 -:100910003CC083EE90E039C082EE90E036C080911A -:100920007B0282FFEFCFF8CF80917B0283FF07C06D -:1009300080917B0284FDEACF87EE90E026C086EEB0 -:1009400090E023C080917B0283FFF2CFF8CF8091AB -:100950007B0285FF03C089E290E017C085E390E049 -:1009600014C080917B0285FDF9CFF5CF80917B0289 -:1009700086FF03C08AE290E008C081E390E005C0F2 -:1009800080917B0286FDF9CFF5CF0E94F702089592 -:100990005F926F927F928F929F92AF92BF92CF920F -:1009A000DF92EF92FF920F931F93CF93DF93CDB718 -:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD -:1009C0002F5F3F4F4E0189E0880E911C60E070E080 -:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 -:1009E00088E0782E622E532E41E050E0E3E2F1E001 -:1009F000A62DB52D872D01900D928A95E1F7F9016D -:100A0000819191919F01FC01E07FFF27E032F10588 -:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 -:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 -:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E -:100A4000DF2A29C0E034F10559F48F709927FA01A3 -:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 -:100A6000E035F10559F48F709927FA0102C0EE0FB5 -:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 -:100A800051F48F709927FA0102C0EE0FFF1F8A956B -:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B -:100AA0008A2D8095892384B985B18A2985B997B122 -:100AB0008C2D8095892387B988B18C2988B99AB102 -:100AC0008E2D809589238AB98BB18E298BB99DB1E2 -:100AD000802F809589238DB98EB1802B8EB990B3EC -:100AE000862F8095892380BB81B3862B81BB289676 -:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F -:100B00000F91FF90EF90DF90CF90BF90AF909F90AC -:100B10008F907F906F905F9008955F926F927F9219 -:100B20008F929F92AF92BF92CF92DF92EF92FF92FD -:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 -:100B4000F894DEBF0FBECDBF85B7806885BF85B77F -:100B5000806885BF0E94CF076E9A769A0E94C8046B -:100B60009E012F5F3F4F4E0189E1880E911C60E08E -:100B700070E000E010E0E12CF12CC12CD12CA12C74 -:100B8000B12C98E1792E622E532E41E050E0EBE239 -:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 -:100BA000F901819191919F01FC01E07FFF27E032E3 -:100BB000F10559F48F709927FA0102C0EE0FFF1F5B -:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F -:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 -:100BE000CE2ADF2A29C0E034F10559F48F70992705 -:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 -:100C00001BC0E035F10559F48F709927FA0102C035 -:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B -:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 -:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F -:100C400094B18A2D8095892384B985B18A2985B983 -:100C500097B18C2D8095892387B988B18C2988B963 -:100C60009AB18E2D809589238AB98BB18E298BB943 -:100C70009DB1802F809589238DB98EB1802B8EB93F -:100C800090B3862F8095892380BB81B3862B81BB4F -:100C90001092B7011092B6011092BF011092BE01DE -:100CA0001092B9011092B8011092C1011092C001C6 -:100CB0001092BB011092BA011092C3011092C201AE -:100CC0001092BD011092BC011092C5011092C40196 -:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF -:100CE0001F910F91FF90EF90DF90CF90BF90AF904A -:100CF0009F908F907F906F905F9008955F926F921A -:100D00007F928F929F92AF92BF92CF92DF92EF929B -:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA -:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 -:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 -:100D4000B11C38E0532E470101E010E048E1642E69 -:100D500055E0752EE3E2F1E0D401852D01900D926E -:100D60008A95E1F7F701819191917F019C01207FA4 -:100D700033272032310589F424B18F709927A801D7 -:100D800002C0440F551F8A95E2F7CA01242B24B9EB -:100D900095B18095892385B94FC02033310589F4F9 -:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 -:100DB000E2F7CF012E2B27B998B18095892388B906 -:100DC0003BC02034310589F42AB18F709927A801DE -:100DD00002C0440F551F8A95E2F7CA01242B2AB995 -:100DE0009BB1809589238BB927C02035310589F4C3 -:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 -:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 -:100E100013C02036310581F420B38F709927A801C3 -:100E200002C0440F551F8A95E2F7CA01242B20BB4C -:100E300091B38095892381BB50EA5A95F1F7BE01A1 -:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 -:100E5000DE011196462D01900D924A95E1F7FB01B6 -:100E600041915191BF01FA01E07FFF27E032F10586 -:100E700011F4E3B113C0E033F10511F4E6B10EC093 -:100E8000E034F10511F4E9B109C0E035F10511F4E0 -:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 -:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 -:100EB000A801022E02C0440F551F0A94E2F702C097 -:100EC00040E050E0842B952B2F5F3F4F2C303105B5 -:100ED00009F0BCCFF601208131812817390721F0B4 -:100EE00091838083709200010E94C804F2E0CF0ECB -:100EF000D11CEA14FB0409F02DCF80910001882356 -:100F000061F1815080930001811121C08091BE0167 -:100F10009091BF019093B7018093B6018091C00179 -:100F20009091C1019093B9018093B8018091C20161 -:100F30009091C3019093BB018093BA018091C40149 -:100F40009091C5019093BD018093BC0106C08FE9CB -:100F50009FE00197F1F700C0000081E0A0960FB676 -:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF -:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 -:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 -:100F9000EA54FE4F80819181089508950895279A1B -:100FA0002F988FEF9FEF90938700809386008AE0C1 -:100FB0008093800089E1809381000C945F2B8111E4 -:100FC0000BC080918000877F8093800010928D00FD -:100FD00010928C002F9808952F98833041F48091BF -:100FE00080008860809380008FEF9FEF12C0909107 -:100FF000800098609093800023E030E0281B310946 -:10100000220F331F8FEF9FEF02C0969587952A9589 -:10101000E2F790938D0080938C0008950F931F93B7 -:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 -:10103000DEBF0FBECDBF8C01862F642F882379F0D1 -:10104000F80192812FE7482F992329F08DE792E04C -:101050000E94F81404C08DE792E00E940815F80180 -:1010600080818B3061F49181933009F068C0828176 -:10107000882309F4CDC0809103018F5F0EC08A30B0 -:10108000E1F5F8019181933009F059C082818823FC -:1010900009F4BEC08091030181508093030120E0D8 -:1010A0004BE760E08DE792E00E94E81420E04BE718 -:1010B00061E08DE792E00E94E81420E04BE762E0F7 -:1010C0008DE792E00E94E81420E04BE763E08DE7B3 -:1010D00092E00E94E81420E04BE764E08DE792E0A4 -:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 -:1010F000CF911F910F910C94E814893069F4F80195 -:1011000091819330E1F492819923C9F0809101019A -:101110009091020101960EC0883089F4F801918106 -:10112000933069F49281992351F08091010190915B -:10113000020101979093020180930101B0CFF80161 -:10114000928140910301992391F196E4E3E4F1E067 -:10115000DE01A95BBF4F01900D929A95E1F7405DCA -:10116000F8019181FCE09F9F40191124E091010159 -:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 -:101180008C0F9D1FE80FF91F8081480F2FE760E04B -:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 -:1011A000CDBFDF91CF911F910F910C94F81496E46D -:1011B000E3E4F1E0DE01119601900D929A95E1F7DA -:1011C000405DF8019181FCE09F9F40191124E0915E -:1011D0000101F0910201E80FF11DEE0FFF1F81E008 -:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB -:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 -:101200000FBECDBFDF91CF911F910F910C940815A8 -:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE -:10122000CF911F910F910895CF93DF93EA019B0116 -:10123000AC0160E074E284E79BE40E945F2C0E94B2 -:10124000C72C709397006093960020E130E02C1B30 -:101250003D0B02C0759567952A95E2F7709399004A -:1012600060939800DF91CF9108951092020210923E -:10127000010210929000109291001092FD011092C4 -:10128000FE011092FF01109200021092FC011092D8 -:10129000FB01E9EDF1E0A9ECB1E01192119211929C -:1012A00011921D921D9281E0E93FF807B1F7089570 -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 -:1012C000CF93DF936B017C0109EF11E047EDA42E72 -:1012D00041E0B42EC7E0D0E0A7019601F801929159 -:1012E0008291729162918F010E945B2C882349F058 -:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F -:1013000034C0F8011082118212821382F501118219 -:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 -:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 -:1013300044815581668177814083518362837383C1 -:10134000148215821682178212962D913C91139762 -:1013500011963C932E9313961C921E9212973496DC -:1013600012968730910519F7C3CF809101029091B1 -:101370000202019797FD05C090930202809301023B -:1013800004C01092020210920102E0910102F09159 -:101390000202309789F410929000109291001092FE -:1013A000FD011092FE011092FF01109200021092B6 -:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 -:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 -:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA -:1013E000B090FE010091FF0110910002A70196014B -:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 -:1014000081E08093C801AE016A2D7B2D802F912F42 -:101410000E9414092091FD013091FE014091FF01CD -:1014200050910002C701B6010E94F62B20E030E087 -:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 -:10144000802F912F0E94F72B5B018C01A701960141 -:101450007B2D912F0E945B2C1816ACF638C0A7018B -:1014600096016A2D7B2D802F912F0E94AA2D181690 -:1014700084F581E08093C801AE016A2D7B2D802F19 -:10148000912F0E941409A70196016091FD017091AE -:10149000FE018091FF01909100020E94F62B20E056 -:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF -:1014B0007B2D802F912F0E94F62B5B018C01A701C1 -:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 -:1014D000C801AE01C701B6010E941409C092FD0106 -:1014E000D092FE01E092FF01F0920002D093FC0145 -:1014F000C093FB01DF91CF911F910F91FF90EF906F -:10150000DF90CF90BF90AF90089508951F920F92F3 -:101510000FB60F9211242F933F934F935F936F93C6 -:101520007F938F939F93AF93BF93EF93FF9380919C -:10153000960090919700892B09F455C08091C801BD -:10154000811151C08091F9019091FA01813091058A -:1015500071F082309105C1F0892BC1F52091FD0118 -:101560003091FE014091FF01509100021DC0609139 -:10157000FD017091FE018091FF01909100029B019D -:10158000AC010E94F72B0EC020E030E040E450E4B4 -:101590006091FD017091FE018091FF019091000228 -:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 -:1015B0000E945F2C0E94C72C709397006093960046 -:1015C0007595679570939900609398008091F901E3 -:1015D0009091FA01019663E070E00E948A2F909347 -:1015E000FA018093F901FF91EF91BF91AF919F9123 -:1015F0008F917F916F915F914F913F912F910F90BC -:101600000FBE0F901F901895AF92BF92CF92DF92AE -:10161000EF92FF920F931F93CF93DF936B017C01A7 -:10162000EA0120E030E0A9010E94AA2D18160CF072 -:10163000B4C03E9A82E8809390008AE18093910042 -:10164000A090FD01B090FE010091FF0110910002F9 -:1016500020E030E0A9016A2D7B2D802F912F0E9480 -:101660005B2C81112DC0AE01C701B6010E94140987 -:10167000C092FD01D092FE01E092FF01F0920002C3 -:10168000D093FC01C093FB01809101029091020272 -:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F -:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F -:1016B000D183C083019690930202809301026DC092 -:1016C000A70196016A2D7B2D802F912F0E945B2C04 -:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 -:1016E00014092091FD013091FE014091FF015091BC -:1016F0000002C701B6010E94F62B20E030E04AEF5D -:1017000053E40E945F2C9B01AC016A2D7B2D802F3E -:10171000912F0E94F72B5B018C01A70196017B2D75 -:10172000912F0E945B2C1816ACF69DCFA701960155 -:101730006A2D7B2D802F912F0E94AA2D18160CF058 -:1017400092CFAE016A2D7B2D802F912F0E9414091C -:10175000A70196016091FD017091FE018091FF014A -:10176000909100020E94F62B20E030E04AEF53E413 -:101770000E945F2C9B01AC016A2D7B2D802F912F45 -:101780000E94F62B5B018C01A70196017B2D912F06 -:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 -:1017A0000F91FF90EF90DF90CF90BF90AF90089592 -:1017B00080910C020895CF93DF9300D01F92CDB794 -:1017C000DEB720916E03243021F523E029839B832B -:1017D0008A832093E9008FEF06C095ED9A95F1F783 -:1017E0000000882329F09091E800815095FFF5CF03 -:1017F0008091E80085FF0DC040E050E063E070E0BC -:10180000CE0101960E94BA0F8091E8008E778093F6 -:10181000E8000F900F900F90DF91CF910895CF9334 -:10182000DF9300D01F92CDB7DEB720916E03243036 -:1018300029F522E029839B838A8383E08093E90052 -:101840008FEF06C095ED9A95F1F70000882329F0F7 -:101850009091E800815095FFF5CF8091E80085FFD9 -:101860000DC040E050E063E070E0CE0101960E94C0 -:10187000BA0F8091E8008E778093E8000F900F9068 -:101880000F90DF91CF91089520916E032430F9F4E9 -:1018900022E02093E9002FEF06C035ED3A95F1F7ED -:1018A0000000222329F03091E800215035FFF5CFC8 -:1018B0002091E80025FF0BC040E050E065E070E0BB -:1018C0000E94BA0F8091E8008E778093E800089517 -:1018D000CF93DF93EC0180916E03843041F581E07A -:1018E0008093E9008FEF06C095ED9A95F1F700001F -:1018F000882329F09091E800815095FFF5CF8091E1 -:10190000E80085FF14C040E050E068E070E0CE01E0 -:101910000E94BA0F8091E8008E778093E80088E0FB -:10192000FE01A4E0B2E001900D928A95E1F7DF910B -:10193000CF910895BF92CF92DF92EF92FF920F93D3 -:101940001F93CF93DF937C01B62EE90100E010E0F6 -:10195000C42ED12C0BC04991202F2B0D2F774F7700 -:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 -:1019700094F3DF91CF911F910F91FF90EF90DF9043 -:10198000CF90BF90089570E06F5F7F4F6F707727A3 -:101990000C94E8140F931F93CF93C42F63307105F9 -:1019A00009F04AC0842F807F803849F1803909F0DE -:1019B00043C0622F6F7770E080E090E00E94FA2CC5 -:1019C00020E030E040E451E40E945F2C9B01AC0138 -:1019D00060E070E080E090E40E94112E0F7710E04C -:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 -:1019F00053E40E94AE2DA8010E94040B1DC0622F6B -:101A00006F7770E080E090E00E94FA2C20E030E0F8 -:101A100040E451E40E945F2C9B01AC0160E070E067 -:101A200080E090E40E94112E2DEC3CEC42E053E467 -:101A30000E94AE2D0E945809CC3F29F4CF911F91EE -:101A40000F910C943509CF911F910F9108950F9329 -:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 -:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C -:101A70009A819D839B819E839C819F8381111EC03F -:101A800089818430B1F08730A1F08630A1F08530B3 -:101A9000A1F0BE016F5F7F4F84E091E00E942F189C -:101AA0008111E3CF84E091E00E9420180E949B14F2 -:101AB0000DC083E003C082E001C081E0AE014B5F56 -:101AC0005F4F682FC8010E945515E3CF27960FB6C8 -:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 -:101AE0000895EF92FF920F93CF93DF9300D000D031 -:101AF00000D0CDB7DEB77B014A832B830C83842FC4 -:101B00002E834D830E94C2142E814D8181111BC0F2 -:101B100082E0E816F10479F083E0E816F10421F0A0 -:101B2000EA94EF2821F50BC0073F11F487E001C0CC -:101B300084E089830BC0273FD9F786E0FACF473F7F -:101B4000B9F785E0F6CF42954F704983BE016F5FCC -:101B50007F4F84E091E00E94E51784E091E00E94CD -:101B6000031884E091E00E9420180E949B1426969E -:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE -:101B8000FF90EF90089580916D03811109C00E942C -:101B9000A1110E94FE118091E20084608093E20016 -:101BA000089510926D03089508950C94E4020C9426 -:101BB000892480916E03843049F58091E9008F700B -:101BC0009091EC0090FF02C090E801C090E0982B4B -:101BD00084E08093E9008091EB0080FF14C0809145 -:101BE000EE0087FD03C00FC01092F1008091E80065 -:101BF00085FDFACF8091E80080FF05C08091E80064 -:101C00008E778093E8009F709093E900089542E0FA -:101C100061EC81E00E94171142E061EC82E00E94D9 -:101C2000171142E061EC83E00E94171146E261EC7B -:101C300084E00E94171142E361E885E00E941711D9 -:101C400042E360E886E00C941711809170038330C2 -:101C500009F454C030F4813071F0823009F0AAC028 -:101C600091C08A3009F47EC08B3009F45FC089309E -:101C700009F0A0C020C080916F03813A09F09AC09A -:101C80008091E800877F8093E800809173039091B2 -:101C90007403892B21F060E080E090E003C068E0ED -:101CA00084E092E070E00E9458108091E8008B7709 -:101CB0008093E800089580916F03813209F07AC023 -:101CC0008091730390917403892B09F073C0809104 -:101CD000E800877F8093E80005C080916E03882329 -:101CE00009F468C08091E80082FFF7CF8091F1008D -:101CF00080930C028091E8008B7758C080916F032D -:101D0000813A09F057C08091730390917403892B35 -:101D100009F050C08091E800877F8093E8008091AF -:101D2000E80080FFFCCF80911A013BC080916F03D7 -:101D3000813209F03FC08091730390917403892B25 -:101D4000C9F58091E800877F8093E8000E944E11DA -:101D50009091710381E0911101C080E080931A019C -:101D60000C948C1E80916F03813221F58091E800E4 -:101D7000877F8093E8000E944E11809172038093C8 -:101D80000302089580916F03813AA1F48091E800E5 -:101D9000877F8093E8008091E80080FFFCCF8091EE -:101DA00003028093F1008091E8008E778093E80031 -:101DB0000C944E11089584B7877F84BF88E10FB6D5 -:101DC000F89480936000109260000FBE90E080E86D -:101DD0000FB6F89480936100909361000FBE0E944B -:101DE000A1110E94FE11E2EEF0E080818460808308 -:101DF00008958DE792E00E94241561E77DE08DE76C -:101E000092E00E947A1567E27DE08DE792E00E9401 -:101E10007E150E94DB0E78946AEC7CE08DE792E000 -:101E20000E94201563EC7CE08DE792E00E9418157B -:101E30006AE97CE08DE792E00E941C150E94850A09 -:101E40000E949B140E94AC1880E191E00E945418FB -:101E50000BC00E944E2480916C03882329F00E94BD -:101E6000742481110E94A40F80916E03853089F340 -:101E70008DE792E00E942D170E94B618F5CF292F0A -:101E8000332723303105B1F04CF42130310509F40A -:101E90004DC02230310509F04EC007C02132310556 -:101EA00041F12232310591F146C0E0EDF0E086E7E4 -:101EB00093E045C099278130910569F08230910502 -:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 -:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA -:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 -:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 -:101F0000FE4F80819181E9E0F0E019C0643098F4DF -:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 -:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D -:101F300086E494E004C0E0E0F0E080E090E0DA01C4 -:101F40008D939C93CF01089580E189BD82E189BD85 -:101F500009B400FEFDCF8091D8008F7D8093D8001A -:101F60008091E00082608093E0008091E00081FD3C -:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 -:101F80001F93CF93DF937C018B01EA010E946F11B5 -:101F9000B82E811133C0209731F028813981021B7E -:101FA000130BE20EF31EC12CD12C23C08091E8004C -:101FB00085FD15C08091E8008E778093E80020971A -:101FC00049F0888199818C0D9D1D9983888325E036 -:101FD000B22E14C00E946F11882359F00EC0F70171 -:101FE00081917F018093F10001501109FFEFCF1A19 -:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 -:10200000CF911F910F91FF90EF90DF90CF90BF90F5 -:102010000895BF92CF92DF92EF92FF920F931F939A -:10202000CF93DF937C018B01EA010E946F11B82EE0 -:10203000811133C0209731F028813981021B130BA5 -:10204000E20EF31EC12CD12C23C08091E80085FD47 -:1020500015C08091E8008B778093E800209749F0C5 -:10206000888199818C0D9D1D9983888345E0B42ECC -:1020700014C00E946F11882359F00EC08091F100A6 -:10208000F70181937F0101501109FFEFCF1ADF0A99 -:1020900001151105D1F601C0B82E8B2DDF91CF911E -:1020A0001F910F91FF90EF90DF90CF90BF90089518 -:1020B00040917503509176034617570748F0611514 -:1020C000710539F44091E8004E774093E80001C073 -:1020D000BA01FC0140E033C080916E03882309F40B -:1020E00042C0853009F441C08091E80083FD39C0C9 -:1020F0008091E80082FD2FC08091E80080FF1FC022 -:102100009091F3008091F200392F20E0A901482B33 -:10211000CA0106C041914093F100615071090196D6 -:102120006115710519F088309105A0F341E0089719 -:1021300009F040E08091E8008E778093E800611517 -:10214000710551F64111C8CF06C080916E038823F6 -:1021500051F0853051F08091E80082FFF6CF80E0A9 -:10216000089581E0089582E0089583E00895409104 -:102170007503509176034617570748F061157105AE -:1021800039F44091E8004E774093E80001C0BA016D -:10219000FC0140E034C080916E03882309F443C001 -:1021A000853009F442C08091E80083FD3AC08091F7 -:1021B000E80082FD30C08091E80080FF20C090914F -:1021C000F3008091F200392F20E0A901482BCA01C9 -:1021D00007C044914093F100319661507109019616 -:1021E0006115710519F08830910598F341E0089761 -:1021F00009F040E08091E8008E778093E800611557 -:10220000710549F64111C7CF06C080916E0388233E -:1022100051F0853051F08091E80082FFF6CF80E0E8 -:10222000089581E0089582E0089583E00895982F4D -:102230002CC09093E900981739F07091EC00209130 -:10224000ED005091F00003C0242F762F50E021FDC7 -:1022500002C09F5F1AC03091EB003E7F3093EB00CD -:102260003091ED003D7F3093ED003091EB00316017 -:102270003093EB007093EC002093ED005093F0004E -:102280002091EE0027FDE5CF07C0973090F28F70C8 -:102290008093E90081E0089580E0089580916F03C4 -:1022A00087FD05C08091E80080FF0EC012C08091BC -:1022B000E80082FD05C080916E038111F8CF08957A -:1022C0008091E8008B7708C080916E038111EACF7E -:1022D00008958091E8008E778093E80008958091BA -:1022E000E4009091E50045E62091EC0020FD1FC040 -:1022F00023C020916E03222391F0253091F020918C -:10230000EB0025FD10C02091E4003091E500281776 -:10231000390751F34150C90139F784E0089582E04B -:10232000089583E0089581E0089580E00895209164 -:10233000E80020FFDECFF9CF2091E80022FFD9CFBF -:10234000F4CF0E940F120E941712E0EEF0E080819D -:1023500081608083E8EDF0E080818F77808319BC15 -:10236000A7EDB0E08C918E7F8C9380818F7E8083EF -:1023700010926D0308950F931F93CF93DF930E94E4 -:102380000F120E941712C8EDD0E088818F778883E2 -:1023900088818068888388818F7D888319BC1092AA -:1023A0006E0310926A0310926C0310926B0300EE9E -:1023B00010E0F80180818B7F808388818160888331 -:1023C00042E060E080E00E941711E1EEF0E08081E1 -:1023D0008E7F8083E2EEF0E0808181608083808167 -:1023E00088608083F80180818E7F8083888180610E -:1023F0008883DF91CF911F910F910895E8EDF0E070 -:1024000080818F7E8083E7EDF0E080818160808332 -:1024100084E082BF81E080936D030C94BB11E8EDF2 -:10242000F0E080818E7F80831092E2000895109208 -:10243000DA001092E10008951F920F920FB60F92EA -:1024400011242F933F934F935F936F937F938F93B9 -:102450009F93AF93BF93EF93FF938091E10082FF2F -:102460000BC08091E20082FF07C08091E1008B7F6A -:102470008093E1000E94D90D8091DA0080FF1FC097 -:102480008091D80080FF1BC08091DA008E7F8093FE -:10249000DA008091D90080FF0DC080E189BD82E122 -:1024A00089BD09B400FEFDCF81E080936E030E94D8 -:1024B000C30D05C019BC10926E030E94D10D80910E -:1024C000E10080FF19C08091E20080FF15C080917B -:1024D000E2008E7F8093E2008091E2008061809331 -:1024E000E2008091D80080628093D80019BC85E01A -:1024F00080936E030E94D50D8091E10084FF30C06F -:102500008091E20084FF2CC080E189BD82E189BD19 -:1025100009B400FEFDCF8091D8008F7D8093D80054 -:102520008091E1008F7E8093E1008091E2008F7EB8 -:102530008093E2008091E20081608093E2008091CC -:102540006A03882311F084E007C08091E30087FFCD -:1025500002C083E001C081E080936E030E94D70D2A -:102560008091E10083FF29C08091E20083FF25C0B4 -:102570008091E100877F8093E10082E080936E0389 -:1025800010926A038091E1008E7F8093E100809138 -:10259000E2008E7F8093E2008091E2008061809370 -:1025A000E20042E060E080E00E9417118091F000BC -:1025B00088608093F0000E94D40DFF91EF91BF914D -:1025C000AF919F918F917F916F915F914F913F91CB -:1025D0002F910F900FBE0F901F9018951F920F9282 -:1025E0000FB60F9211242F933F934F935F936F93E6 -:1025F0007F938F939F93AF93BF93CF93EF93FF936B -:102600008091E9008F709091EC0090FF02C090E8FB -:1026100001C090E0C92FC82B1092E9008091F00012 -:10262000877F8093F00078940E9432131092E90023 -:102630008091F00088608093F000CF70C093E90033 -:10264000FF91EF91CF91BF91AF919F918F917F912A -:102650006F915F914F913F912F910F900FBE0F900F -:102660001F9018951F93CF93DF93CDB7DEB7AC972C -:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A -:10268000F100819323E0E737F207C9F70E94250E96 -:102690008091E80083FF37C180916F0390917003B0 -:1026A000953009F488C038F49130B1F170F093306E -:1026B00009F029C131C0983009F4F8C0993009F403 -:1026C00004C1963009F01FC19DC0803821F08238C6 -:1026D00009F019C108C080916B0390916C03992394 -:1026E00089F082600FC080917303909174038F70A2 -:1026F00099278093E9008091EB0085FB882780F97A -:102700001092E9009091E800977F9093E800809301 -:10271000F1001092F100D5C0882319F0823009F041 -:10272000F2C08F7121F0823009F0EDC00BC08091B2 -:102730007103813009F0E7C0933009F080E08093A5 -:102740006C032FC08091710381112BC080917303A2 -:10275000909174038F709927009709F4D4C08093E7 -:10276000E9002091EB0020FF1CC020917003233072 -:1027700021F48091EB00806212C09091EB00906197 -:102780009093EB0021E030E001C0220F8A95EAF738 -:102790002093EA001092EA008091EB008860809319 -:1027A000EB001092E9008091E800877F8093E800B9 -:1027B0000E944E11A8C08111A6C080917103909112 -:1027C00072038F779927182F9091E3009078982BB8 -:1027D0009093E3008091E800877F8093E8000E9457 -:1027E0004E118091E80080FFFCCF8091E30080686B -:1027F0008093E300112311F083E001C082E0809315 -:102800006E0381C08058823008F07DC080917103D2 -:10281000909172038C3D23E0920779F583E08A83DF -:102820008AE289834FB7F894DE01139620E03EE0F8 -:1028300051E2E32FF0E050935700E49120FF03C0F2 -:10284000E295EF703F5FEF708E2F90E0EA3010F06E -:10285000C79601C0C0968D939D932F5F243149F791 -:102860004FBF8091E800877F8093E8006AE270E0C4 -:10287000CE0101960E94581013C0AE01455D5F4F16 -:10288000609173030E943F0F0097E9F12091E800E7 -:10289000277F2093E800BC018BA59CA50E94B71060 -:1028A0008091E8008B778093E8002DC0803859F53F -:1028B0008091E800877F8093E80080916A0380938D -:1028C000F1008091E8008E7771CF81111CC090914A -:1028D00071039230C0F48091E800877F8093E80014 -:1028E00090936A030E944E1180916A03811104C083 -:1028F0008091E30087FF02C084E001C081E0809303 -:102900006E030E94070E8091E80083FF0AC0809149 -:10291000E800877F8093E8008091EB0080628093DD -:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 -:10293000CF911F910895CF9380916E038823B1F0BA -:102940008091E9008F709091EC0090FF02C090E8B8 -:1029500001C090E0C92FC82B1092E9008091E800D7 -:1029600083FD0E943213CF70C093E900CF91089588 -:10297000881F8827881F089591E0883F08F490E019 -:10298000892F0895982F907F903B99F038F49039D3 -:1029900081F0903A71F09038C9F40BC0903DA1F0ED -:1029A00018F4903C99F410C0903E19F0903F71F4E7 -:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 -:1029C000E356FE4F8081089582E0089580E00895E7 -:1029D0000F932F774F776F70606BDC01ED91FC9157 -:1029E000022F242F462F63E070E009950F91089580 -:1029F0000F932F774F776F706069DC01ED91FC9139 -:102A0000022F242F462F63E070E009950F9108955F -:102A10000F932F774F776F706068DC01ED91FC9119 -:102A2000022F242F462F63E070E009950F9108953F -:102A3000FC01738362830895FC01738F628F089594 -:102A4000FC01758F648F0895CF93DF93EC011DA275 -:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 -:102A60000E9461171B821A821D821C821F821E8295 -:102A7000198618861B861A861D861C861F861E864A -:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A -:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA -:102AA00019A218A2DF91CF910895CF92DF92FF92E1 -:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 -:102AC0006A018C0108511F4F08C0F60161916F0126 -:102AD000C80149830E94681749818C2D841B8F157A -:102AE000A0F30F90DF91CF911F910F91FF90DF9096 -:102AF000CF900895FC01718360830895FC0171A358 -:102B000060A30895AF92BF92CF92DF92EF92FF92AF -:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 -:102B20007C016B01142FB22EA02EDC0195968C91A6 -:102B300095978430F1F45A96ED91FC915B9730971C -:102B400009F4D8C0CB01019763E070E00E94762FB2 -:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 -:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 -:102B7000B1C06230710509F453C06330710529F0AA -:102B80006130710509F09CC083C0842F807F803A3A -:102B900001F130F48038B9F0803909F0ABC00DC0D4 -:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 -:102BB0001296ED91FC91139723C0D7011496ED91D5 -:102BC000FC9115971DC0D7011696ED91FC911797B2 -:102BD00017C0D7011896ED91FC91199711C0D70134 -:102BE0001A96ED91FC911B970BC0423F09F082C0F1 -:102BF000D7011C96ED91FC911D97309731F47AC066 -:102C0000309709F477C0123F21F42A2D4B2D62EF43 -:102C100004C0612F6F702A2D4B2DC70109955AC032 -:102C2000842F807F803D59F0803F79F0803C09F00F -:102C300061C0D7011E96ED91FC911F9719C0D70175 -:102C40005096ED91FC91519713C0433F31F4D70159 -:102C50005296ED91FC91539708C0413F09F04AC04C -:102C6000D7015496ED91FC915597309741F442C0AD -:102C7000309709F43FC0133F11F0113F19F44B2D69 -:102C8000612F03C0612F6F704B2DC701099522C0C2 -:102C9000842F0E94BC14882331F0D7015696ED9101 -:102CA000FC91579707C0163F29F5D7015896ED912B -:102CB000FC9159973097F1F0612FC70109950AC02F -:102CC00064307105A8F416C00A2D2B2D412FB601D2 -:102CD000C7010995D7015E96ED91FC915F973097FA -:102CE00089F00A2D2B2D412FB601C70109950AC085 -:102CF000C12CD12CD7015C96ED91FC915D9730975A -:102D000019F7E8CF0F900F900F90DF91CF911F919F -:102D10000F91FF90EF90DF90CF90BF90AF9008950C -:102D2000EF92FF920F931F93CF93DF93EC01162F37 -:102D3000862F0E94BC14882369F0FDA081E08DA33A -:102D400000E020E0412F61E070E0CE010E9482159A -:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 -:102D600040C0443029F01AA321E030E03FA32EA355 -:102D7000812F0E94C214813031F070F0823051F006 -:102D8000833059F507C08DA300E020E0412F61E0BA -:102D900070E01EC08DA35AC0103F19F0173FE9F430 -:102DA00004C084E08DA31AA33FC02EA13FA1C90196 -:102DB00063E070E00E94762F8C0F9D1FFC0112A330 -:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 -:102DD000CE010E9482151DA239C01DA21FA21EA2F3 -:102DE00035C0442399F12EA13FA1C90163E070E0F1 -:102DF0000E94762F7C01FE01E80FF91F12A3B90192 -:102E00006F5F7F4F7FA36EA38130910591F082E0C9 -:102E1000E816F104D9F40CA12BA14AA1CE010E941D -:102E200082158DA1843091F081E090E09FA38EA364 -:102E30000DC0423059F400E02BA14AA1CE010E94FE -:102E400082158DA1843011F0FFA2EEA2DF91CF9107 -:102E50001F910F91FF90EF900895CF92DF92EF9224 -:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 -:102E7000309709F009958E0108511F4FC8010E9433 -:102E80009A17E12CF12CC82ED12C0FC060E0C8019C -:102E90000E94AE17682FCE010E94901661E0C80113 -:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 -:102EB000DF91CF911F910F91FF90EF90DF90CF9016 -:102EC0000895FC0142837483638311821082089504 -:102ED0000F931F93CF93DF93EC01062F0E94E0170F -:102EE000182F298130E0C90101966A8170E00E94A3 -:102EF0008A2F488150E08417950729F4812F0E947A -:102F0000E31780E012C0EB81FC81E20FF31F008326 -:102F10002981822F90E001966A8170E00E948A2FB9 -:102F20008983812F0E94E31781E0DF91CF911F9168 -:102F30000F910895CF93DF93EC010E94E017298150 -:102F40009881291710F0C22F02C0CA81C20FC91B75 -:102F50000E94E3178C2FDF91CF910895FC0120810F -:102F6000862F90E0820F911D628170E00E948A2F6F -:102F70000380F481E02DE80FF91F808108950F93FD -:102F80001F93CF93DF931F92CDB7DEB78C01698378 -:102F90000E94E017482FF80180816981262F30E0D8 -:102FA000280F311D6281C90170E00E948A2F808341 -:102FB000842F0F90DF91CF911F910F910C94E31705 -:102FC0008FB7F89408958FBF0895FC01CB0120912D -:102FD0006E032430B1F421812F702093E90040E08A -:102FE00050E064E070E00E94BA0F81110BC0909134 -:102FF000E80095FD07C09091E8009E779093E80067 -:10300000089582E0089520916E032430A9F4FC0114 -:1030100081818F708093E9003091F3002091F2005C -:10302000932F80E0822B892B49F08091E8008E77E6 -:103030008093E8000C946F1182E0089580E0089579 -:1030400020916E03243051F4FC0121812F702093D4 -:10305000E9002091E80020FD0C9403180895FC017C -:10306000CB0120916E03243011F080E00895268179 -:103070002F702093E9002091E80022FFF6CF2091E5 -:10308000E80025FFF2CF40E050E064E070E00E94ED -:1030900009108091E80085FD05C08091E8008B77DC -:1030A0008093E80081E0089590930F0280930E02D0 -:1030B000089580910E0290910F020895E0910E0202 -:1030C000F0910F02309721F00190F081E02D0994EA -:1030D00080E00895E0910E02F0910F02309721F008 -:1030E0000280F381E02D09940895E0910E02F091A1 -:1030F0000F02309721F00480F581E02D09940895A6 -:1031000020911002309111028217930771F0909371 -:10311000110280931002E0910E02F0910F0230979D -:1031200021F00680F781E02D099408952091120284 -:10313000309113028217930771F0909313028093DA -:103140001202E0910E02F0910F02309721F00084FC -:10315000F185E02D099408950E94B6240E948D0502 -:103160000E948A250C945F2B0C94CE075F926F927D -:103170007F928F929F92AF92BF92CF92DF92EF9207 -:10318000FF920F931F93CF93DF93CDB7DEB72A97AC -:103190000FB6F894DEBF0FBECDBF0E947E0694E14D -:1031A000C92E92E0D92E00E010E0AA24A394B12CFD -:1031B000502E802F0E94C4073C01F601E190F1904F -:1031C0006F01E826F926E114F10431F40F5F1F4F77 -:1031D0000430110569F73AC08091680281FD0E94B0 -:1031E000CD0720E030E04501022E02C0880C991C7A -:1031F0000A94E2F7C4018E219F21892B09F12E83C5 -:103200005F826820792081E0672809F480E0888760 -:103210000E94BF248160782F9A8789874E815F81C1 -:1032200068858A850E946F19F801EE0FFF1FEC5E1A -:10323000FD4F80819181882599259183808316C0D7 -:103240002F5F3F4F2C30310571F6C0CF8FEF898350 -:103250008A831B820E94BF248160782F9D838C8388 -:1032600049815A816B818D810E946F190E94772854 -:1032700010911C020E945E181817D9F00E945E1867 -:1032800080931C022A960FB6F894DEBF0FBECDBF06 -:10329000DF91CF911F910F91FF90EF90DF90CF9032 -:1032A000BF90AF909F908F907F906F905F900C94A5 -:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB -:1032C000CF911F910F91FF90EF90DF90CF90BF9023 -:1032D000AF909F908F907F906F905F900895CF9365 -:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 -:1032F000CDBF4F83588769877A878B87DE01119608 -:1033000086E0FD0111928A95E9F785E0FE01379686 -:1033100001900D928A95E1F749815A816B817C81F8 -:103320008D819E810E9447212B960FB6F894DEBFB7 -:103330000FBECDBFDF91CF910895CF93C82F8823C3 -:1033400009F4C1C0823859F40E945E1881FDBBC0E7 -:1033500089E30E94AC230E94282489E30CC08338AF -:1033600079F40E945E1880FDAEC083E50E94AC2314 -:103370000E94282483E50E94CE23CF910C94282418 -:10338000843859F40E945E1882FD9DC087E40E9433 -:10339000AC230E94282487E4EECF8450813A48F47D -:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 -:1033B000E4CF8C2F805E883050F4C77081E090E0BD -:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 -:1033D000855A833078F4C53A29F0C63A31F482E848 -:1033E00090E005C081E890E002C083E890E0CF91D2 -:1033F0000C9480188C2F885A833108F064C0C83A26 -:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 -:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 -:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE -:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E -:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 -:1034500082EE90E035C089EE90E032C08AEE90E0D6 -:103460002FC085EB90E02CC086EB90E029C087EB65 -:1034700090E026C08CEC90E023C08DEC90E020C062 -:1034800083E891E01DC08AE891E01AC082E991E0EA -:1034900017C084E991E014C081E292E011C083E298 -:1034A00092E00EC084E292E00BC085E292E008C098 -:1034B00086E292E005C087E292E002C080E090E000 -:1034C000CF910C949618CF910895882309F44DC09C -:1034D000823859F40E945E1881FF47C089E30E9438 -:1034E000AC230E94282489E30CC0833871F40E9425 -:1034F0005E1880FF3AC083E50E94AC230E94282416 -:1035000083E50E94CE230C942824843859F40E9429 -:103510005E1882FF2AC087E40E94AC230E94282400 -:1035200087E4EFCF982F9450913A08F4EACF982F80 -:10353000905E983058F4282F277081E090E001C009 -:10354000880F2A95EAF70E94F523DDCF982F955A28 -:10355000933020F480E090E00C948018885A8331F6 -:1035600020F480E090E00C9496180895882321F0D0 -:103570000E94EF230C9428240895882321F00E94B0 -:10358000F5230C9428240895BF92CF92DF92EF92F6 -:10359000FF920F931F93CF93DF93CDB7DEB727979B -:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 -:1035B000DE01119601900D928A95E1F7F8013081B4 -:1035C0002181F280558152955F7083819481892B8E -:1035D00039F02F3F41F481E090E03F3F31F003C0EC -:1035E00081E090E002C080E090E080FD73C3398309 -:1035F0002A8389819A815E830E946923B92E8F83F1 -:103600000E9468230E9490222B2D22952F7030E07B -:103610005E816F812530310509F4E6C06CF42430F9 -:1036200031050CF0A2C04B2D407F8B2D8F702230C6 -:1036300031050CF045C017C02C3031054CF42A3050 -:1036400031050CF0E7C12830310509F043C3E5C06E -:103650002D30310509F4BAC20CF4A2C22F30310565 -:1036600009F038C323C3182F411101C002C01295BD -:10367000107FFF2059F0112309F46BC2812F6F8353 -:103680000E94FF230E9428246F8163C2862F0E941C -:10369000651A112309F41EC3812F0E940524279661 -:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 -:1036B0000F91FF90EF90DF90CF90BF900C94282453 -:1036C000403211F08295807F662319F0613071F5E8 -:1036D00023C0FF20B1F0511101C032C0513081F53B -:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 -:1036F0001F910F91FF90EF90DF90CF90BF900C94AF -:103700000F24511101C003C0513009F4E3C28E836C -:103710000E9412248E819AC1FF2021F0563008F0B9 -:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 -:10373000552331F0F801958190FF0BC29F7095835E -:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 -:103750001F910F91FF90EF90DF90CF90BF900C944E -:10376000B61A552309F472C109C22B2D2695269548 -:10377000237030E02115310529F02130310509F0A1 -:10378000A9C219C0FF2021F0862F9B2D937002C083 -:1037900080E090E027960FB6F894DEBF0FBECDBF55 -:1037A000DF91CF911F910F91FF90EF90DF90CF901D -:1037B000BF900C948018FF2021F0862F9B2D9370D2 -:1037C00002C080E090E027960FB6F894DEBF0FBEEF -:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 -:1037E000CF90BF900C949618862FFF2019F00E945E -:1037F0007D2702C00E94E52727960FB6F894DEBF0A -:103800000FBECDBFDF91CF911F910F91FF90EF9031 -:10381000DF90CF90BF900C946C288B2D837009F0B3 -:1038200079C0F11057C2262F229526952770220FB6 -:10383000220F862F8F70C82ED12CE12CF12C022E56 -:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 -:1038500010C06FE070E080E090E004C0660F771F5A -:10386000881F991F2A95D2F760957095809590953D -:1038700003C060E070E0CB012B2D269526952370C8 -:10388000422F50E042305105D9F04330510569F1E3 -:103890006C297D298E299F294130510551F12796A8 -:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 -:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 -:1038C0006C297D298E299F2927960FB6F894DEBF93 -:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 -:1038E000DF90CF90BF900C94B7220E94A522C70111 -:1038F000B60127960FB6F894DEBF0FBECDBFDF919D -:10390000CF911F910F91FF90EF90DF90CF90BF90DC -:103910000C949322FF2019F08B2D817001C08695A5 -:10392000882309F4D7C1262F229526952770220FC8 -:10393000220F862F8F70C82ED12CE12CF12C022E55 -:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 -:1039500010C06FE070E080E090E004C0660F771F59 -:10396000881F991F2A95D2F760957095809590953C -:1039700003C060E070E0CB012B2D269526952370C7 -:10398000422F50E042305105D9F04330510569F1E2 -:103990006C297D298E299F294130510551F12796A7 -:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 -:1039B0000F91FF90EF90DF90CF90BF900C94442335 -:1039C0006C297D298E299F2927960FB6F894DEBF92 -:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 -:1039E000DF90CF90BF900C9456230E944423C701D0 -:1039F000B60127960FB6F894DEBF0FBECDBFDF919C -:103A0000CF911F910F91FF90EF90DF90CF90BF90DB -:103A10000C943223603F59F120F4603E08F494C0C6 -:103A200008C0623F09F467C0F0F1633F09F08CC041 -:103A300065C0162F1F708B2D8F71FF2021F00E9403 -:103A4000DD22812F7DCE0E94F822812F27960FB68E -:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 -:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 -:103A7000B1F0553008F02EC18B2D8F7127960FB6FF -:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 -:103A9000FF90EF90DF90CF90BF900C94172356309B -:103AA00008F018C1E9CFFF2099F08B2D8F71279670 -:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F -:103AC0000F91FF90EF90DF90CF90BF900C94DD228C -:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A -:103AE000DF91CF911F910F91FF90EF90DF90CF90DA -:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 -:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 -:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 -:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E -:103B3000CDBFDF91CF911F910F91FF90EF90DF905C -:103B4000CF90BF900C94C922FF20A9F0552309F40F -:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 -:103B6000DF91CF911F910F91FF90EF90DF90CF9059 -:103B7000BF900C949D19552309F4AACF862F279640 -:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E -:103B90000F91FF90EF90DF90CF90BF900C94651A3B -:103BA0004B2D4F70C8010E94E50227960FB6F8947E -:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 -:103BC000EF90DF90CF90BF900C94FD21F11082C058 -:103BD0009B2D9F70492F50E04230510599F144F4DC -:103BE0004115510569F04130510509F073C019C004 -:103BF00043305105C1F14430510509F06BC044C058 -:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 -:103C10001F910F91FF90EF90DF90CF90BF900C9489 -:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 -:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 -:103C40000C94872B27960FB6F894DEBF0FBECDBF1E -:103C5000DF91CF911F910F91FF90EF90DF90CF9068 -:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F -:103C7000CDBFDF91CF911F910F91FF90EF90DF901B -:103C8000CF90BF900C94B62B862F27960FB6F89442 -:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F -:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C -:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 -:103CC000CF911F910F91FF90EF90DF90CF90BF9019 -:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A -:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 -:103CF000BF9008950E940C240E94E1230E94282472 -:103D00000E9418290E946C2880E090E00E94801890 -:103D100080E090E00C9496180E94FC230C947A1E8C -:103D20000E946923292F22952F7030E02C30310515 -:103D30004CF42A3031056CF422503109223031051F -:103D400070F407C02C30310531F02F30310539F4D3 -:103D500002C081E0089593FB882780F9089580E0F0 -:103D60000895CF93DF9300D000D01F92CDB7DEB778 -:103D70000F900F900F900F900F90DF91CF910895BB -:103D8000CF93DF9300D000D000D0CDB7DEB726961A -:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F -:103DA0001F93CF93DF93C091530216E012C0D0E06F -:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 -:103DC000518162817381848195810E94C01E2196F8 -:103DD000C77080915402C813EACFDF91CF911F9131 -:103DE000089540911D0250911E0260911F02709132 -:103DF000200280912102909122020C94C01E0F9308 -:103E00001F93CF93DF938091220282958F7009F0E8 -:103E100069C080911F02882309F464C0A0915302F5 -:103E2000D0915402B0911D02C0911E0280912002D7 -:103E30009091210221E030E0BF3F11F020E030E01E -:103E4000122FBC016095709506E04AC0009721F0E2 -:103E5000CF3F29F4212F05C021E030E002C020E04F -:103E600030E020FD3BC04A2F50E0049FF001059F49 -:103E7000F00D1124ED5DFD4F2181C2132FC0208173 -:103E8000B2132CC02281211129C02381348128172B -:103E9000390718F0281B390B02C0260F371F283CA2 -:103EA0003105E0F4809122028F70806180932202BC -:103EB00086E0849FF001859FF00D1124E85DFD4FA1 -:103EC00080818F70806180838DE192E00E94C41AAE -:103ED000DF91CF911F910F910C94D01EAF5FA7700F -:103EE000AD13B4CFDF91CF911F910F910895EF9251 -:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 -:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F -:103F1000DE011D9601900D928A95E1F7D8014C9132 -:103F200011965C91119712966C9112971396ED90E1 -:103F3000FC90149770911D02E0911E028091200266 -:103F400090912102009739F0EF3F41F421E030E0F9 -:103F50007F3F31F003C021E030E002C020E030E0DC -:103F600020FD5CC120911F02222309F4F1C0E81654 -:103F7000F90628F09701281B390BC90104C0809568 -:103F800090958E0D9F1D883C910508F098C08091FA -:103F90002202982F907F09F064C0E51314C07413B7 -:103FA00012C0611110C08F708061809322020E9444 -:103FB000F11E8DE192E00E94C41A80912202D80184 -:103FC00015968C9343C1EF2839F05F3F41F481E0AF -:103FD00090E04F3F31F003C081E090E002C080E00C -:103FE00090E080FD03C081E0862702C080E090E081 -:103FF00080FF2EC0809153022091540236E013C0FE -:1040000090E0389FF001399FF00D1124ED5DFD4FD8 -:104010007181571306C07081471303C07281671303 -:1040200017C0019687708213EBCF12C19F7059F0B1 -:10403000882309F40BC107C09F7029F0F80195810E -:10404000907F09F403C1805E883008F4FFC0D2C0BD -:10405000662309F4FBC080912202816080932202D2 -:10406000F5C0E51308C0741306C0611104C0D8017F -:1040700015968C939DC04D875E878D859E856A8B36 -:104080000E94901E6A89882309F4B4C0662309F44B -:10409000B1C020912202822F82958F7090E002970A -:1040A0000CF4C6C080911D0290911E0298878F83E8 -:1040B0001986FB86EA862C87CE01079646C080913A -:1040C0002202982F907F59F47E2DF98AE88A8989F7 -:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 -:1040E00011C074130FC061110DC0F8018583C801A0 -:1040F0000E94C41AEDE1F2E086E0DF011D928A958C -:10410000E9F7A2C04D875E878D859E856A8B0E94E8 -:10411000901E6A89882309F46DC0662309F46AC079 -:1041200020912202822F82958F7090E002970CF4EA -:104130007FC080911D0290911E029A8389831B8209 -:10414000FD82EC822E83CE0101960E94C41A70C0BB -:10415000E816F90628F09701281B390BC90104C09D -:10416000809590958E0D9F1D883C910508F046C066 -:10417000662309F43FC0E51330C074132EC02091AC -:10418000220220FD21C0322F32953F70832F90E014 -:104190000097D1F0D80115962C9315970F9741F001 -:1041A000832F8F5F8295807F2F70282B15962C93FD -:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 -:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC -:1041D00001900D928A95E1F737C04D875E878D85F6 -:1041E0009E850E94901E811123C0809122028160D1 -:1041F00080932202C8010E94C41A26C07E2DF98A2B -:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 -:104210001D928A95E9F70E94F11E18C0662351F39A -:104220004D875E878D859E850E94901E882311F3A1 -:1042300086E0F801ADE1B2E001900D928A95E1F7D8 -:104240000E94FF1E0E94F11E81E014C080E012C097 -:104250004D875E878D859E850E946923292F229533 -:104260002F7030E0223031050CF4E0CE24303105DF -:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D -:10428000DF91CF911F910F91FF90EF9008951F93B1 -:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 -:1042A0000FBECDBF4F83588769877A878B879C87DE -:1042B000CE0107960E94771F8823D9F02F81388579 -:1042C0008A859B85892B39F03F3F19F080E090E08B -:1042D00004C02F3FD9F781E090E0892B09F06DC031 -:1042E0004F81588569857A858B859C850E94C01E83 -:1042F00064C086E0FE013796DE01119601900D92B2 -:104300008A95E1F7FF81E8854A855B85411551056E -:1043100039F0EF3F41F481E090E0FF3F31F003C01E -:1043200081E090E002C080E090E080FD46C02091F6 -:10433000540230E0C90101968770992760915302B9 -:1043400070E08617970709F440C0F983EA835D831C -:104350004C8396E0929FD001939FB00D1124AD5DE8 -:10436000BD4FFE01319601900D929A95E1F7809331 -:1043700054020E94D01E21C0189FC00111248D5DDF -:104380009D4F0E94771F882371F1E09153021E9F79 -:10439000F0011124ED5DFD4F4081518162817381F7 -:1043A000848195810E94C01E8091530290E0019605 -:1043B000877099278093530201C016E080915302C1 -:1043C000909154028913D8CF0EC00E948C1E109277 -:1043D000540210925302EDE1F2E086E0DF011D92FB -:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 -:1043F000CDBFDF91CF911F910895DF92EF92FF9291 -:104400000F931F93CF93DF93EC01009709F46CC0D7 -:10441000D12CEE24E394F12C8E010F5F1F4FFE018F -:104420008491843748F4843008F04AC0813071F0B8 -:10443000823009F059C01EC0853709F43DC070F1C3 -:10444000982F9458903708F04FC03DC02296F8013D -:104450008491982F905E983050F48770FE2D01C0A3 -:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A -:104470009D192DC02296F8018491982F905E983056 -:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 -:104490000E9405241CC00E94651A19C02296F801CA -:1044A000049107C08FE99FE00197F1F700C0000079 -:1044B00001500111F7CF0BC02296F801D49007C02C -:1044C0000E949D1903C08F770E94651AE8018D2D07 -:1044D00007C08150EFE9FFE03197F1F700C000001D -:1044E000882309F499CFF5CFDF91CF911F910F91D8 -:1044F000FF90EF90DF9008956093590270935A02F5 -:1045000080935B0290935C020C947A1E6093550238 -:104510007093560280935702909358020C947A1E1F -:1045200008950C947C220F931F93009159021091CF -:104530005A0220915B0230915C02602B712B822B1E -:10454000932B1F910F910C947C220F931F9300913A -:10455000590210915A0220915B0230915C02602353 -:104560007123822393231F910F910C947C220F932C -:104570001F930091590210915A0220915B023091D1 -:104580005C0260277127822793271F910F910C945B -:104590007C2260E070E0CB010C94862241E050E088 -:1045A00060E070E004C0440F551F661F771F8A95B6 -:1045B000D2F7CB01BA010C94862241E050E060E0D2 -:1045C00070E004C0440F551F661F771F8A95D2F70D -:1045D0008091550290915602A0915702B0915802D5 -:1045E000482B592B6A2B7B2BCB01BA010C948622CA -:1045F00041E050E060E070E004C0440F551F661FCA -:10460000771F8A95D2F74095509560957095809167 -:10461000550290915602A0915702B091580248233A -:1046200059236A237B23CB01BA010C94862241E0F3 -:1046300050E060E070E004C0440F551F661F771F14 -:104640008A95D2F78091550290915602A091570217 -:10465000B0915802482759276A277B27CB01BA0116 -:104660000C9486220F931F930091550210915602CD -:104670002091570230915802602B712B822B932B83 -:104680001F910F910C9486220F931F930091550256 -:1046900010915602209157023091580260237123E5 -:1046A000822393231F910F910C9486220F931F93C3 -:1046B00000915502109156022091570230915802F4 -:1046C00060277127822793271F910F910C948622D0 -:1046D0000895CF92DF92EF92FF920F931F93CF93A3 -:1046E000DF93EC01C0905902D0905A02E0905B0237 -:1046F000F0905C028091550290915602A091570271 -:10470000B0915802C82AD92AEA2AFB2A0FE110E000 -:10471000B701A601002E04C0769567955795479579 -:104720000A94D2F740FF08C0BE01802F0E94E00328 -:104730008130910509F007C00150110948F7BE0109 -:1047400080E00E94E003DF91CF911F910F91FF90D5 -:10475000EF90DF90CF90089540911B0150911C0184 -:1047600020E030E09FEFFA01E20FF31F628168174B -:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD -:104780002630310581F707C0FA01E90FF11D97FDC9 -:10479000FA95828308959F3FB9F7089540911B01D0 -:1047A00050911C0120E030E0FA01E20FF31F9281EA -:1047B000981301C012822F5F3F4F26303105A1F7B9 -:1047C000089581E090E0E0911B01F0911C01E80F59 -:1047D000F91F1082019688309105A9F708959091EC -:1047E0005D02982B90935D020895809590915D02F3 -:1047F000982390935D02089510925D020895909120 -:104800005E02982B90935E020895809590915E02CF -:10481000982390935E02089510925E02089580930B -:104820005F02089510925F02089540911B0150911C -:104830001C0120E030E080E0FA01E20FF31F9181DB -:1048400091118F5F2F5F3F4F27303105A9F70895F2 -:10485000E0911B01F0911C0180915D028083E09149 -:104860001B01F0911C01808190915E02892B808355 -:1048700090915F02992361F0E0911B01F0911C017E -:104880008081892B80830E94152481110E9412242B -:1048900080911B0190911C010C946A1880916E0309 -:1048A000843009F11092690220E488E190E00FB6AB -:1048B000F894A895809360000FBE2093600083B7A2 -:1048C000817F846083BF83B7816083BF789488953C -:1048D00083B78E7F83BF88E10FB6F8948093600022 -:1048E000109260000FBE0895CF930E94E3020E94D1 -:1048F0007E060E94E402C0E08C2F0E94C407892B30 -:1049000029F4CF5FC430C1F780E001C081E0CF91CE -:1049100008950E948C1E0C945F2B1F920F920FB66D -:104920000F9211248F939F93AF93BF93809169024D -:10493000811113C080916A0290916B02A0916C0268 -:10494000B0916D024196A11DB11D80936A029093B2 -:104950006B02A0936C02B0936D02BF91AF919F91D7 -:104960008F910F900FBE0F901F90189582E084BD1D -:1049700093E095BD9AEF97BD80936E0008958FB731 -:10498000F89440916A0250916B0260916C027091B0 -:104990006D028FBFCA010895CF92DF92EF92FF920E -:1049A0000F931F932FB7F89440916A0250916B02B6 -:1049B00060916C0270916D022FBF6A017B01EE2441 -:1049C000FF248C0120E030E0C016D106E206F30699 -:1049D00020F09A01281B390B05C09C0120953095C9 -:1049E000240F351FC9011F910F91FF90EF90DF90A9 -:1049F000CF9008951F920F920FB60F9211248F93AC -:104A00009F93AF93BF9380916A0290916B02A091A4 -:104A10006C02B0916D020196A11DB11D80936A02D6 -:104A200090936B02A0936C02B0936D02BF91AF9113 -:104A30009F918F910F900FBE0F901F9018950E941D -:104A4000A111F8942FEF87EA91E621508040904021 -:104A5000E1F700C0000087E090EBDC018093780371 -:104A600090937903A0937A03B0937B032CE088E1C1 -:104A700090E00FB6F894A895809360000FBE209345 -:104A80006000FFCFCF92DF92EF92FF920F931F93C0 -:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 -:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 -:104AB000331F0A94E2F72E213F21232B29F421965C -:104AC000CC30D10589F708C06C2F7D2D80E00E9485 -:104AD000BB03C812F4CF06C0D39484E0D812DECF53 -:104AE00080E001C081E0DF91CF911F910F91FF9095 -:104AF000EF90DF90CF900895CF93C82F8CE20E9463 -:104B00004225882321F08C2FCF910C94422580E000 -:104B1000CF910895CF930E94CD26811102C00E94AB -:104B2000AE26C5E608C00E947E068FE39CE9019789 -:104B3000F1F700C00000C150B1F789E20E947C2566 -:104B400081110AC18AE20E947C2581110E94AE2651 -:104B500085E00E947C2581110E941F250E94D82695 -:104B60008093680287E00E947C25882399F18BE17D -:104B70000E947C25882351F09091680291FB882740 -:104B800080F921E0822780FB91F922C08EE00E940B -:104B90007C25882351F09091680292FB882780F948 -:104BA00021E0822780FB92F913C080E10E947C25DE -:104BB00090916802882341F093FB882780F921E0D7 -:104BC000822780FB93F904C0892F809580FB90F9A0 -:104BD00090936802809168020E94DC260E94EA2677 -:104BE00080937B0280EE0E947C25882341F0809197 -:104BF0007B02982F909590FB80F980937B0289E34C -:104C00000E947C25882359F090917B0291FB882794 -:104C100080F921E0822780FB91F990937B0282EE5C -:104C20000E947C25882359F090917B0292FB882773 -:104C300080F921E0822780FB92F990937B0286EE37 -:104C40000E947C25882359F090917B0293FB882752 -:104C500080F921E0822780FB93F990937B0283EE19 -:104C60000E947C25882359F090917B0294FB882731 -:104C700080F921E0822780FB94F990937B0285E301 -:104C80000E947C25882359F090917B0295FB882710 -:104C900080F921E0822780FB95F990937B0281E3E4 -:104CA0000E947C25882359F090917B0296FB8827EF -:104CB00080F921E0822780FB96F990937B0281E1C5 -:104CC0000E947C25882359F090917B0297FB8827CE -:104CD00080F921E0822780FB97F990937B028091F5 -:104CE0007B020E94EE2687E20E947C25C82F8EE17F -:104CF0000E947C258111C2608FE10E947C25811178 -:104D0000C46080E20E947C258111C86081E20E941B -:104D10007C258111C06182E20E947C258111C062E4 -:104D200083E20E947C258111C06484E20E947C257C -:104D3000882311F0C06802C0CC2329F08C2F0E9478 -:104D4000E5266C2F03C00E94E126682F70E080E00A -:104D500090E0CF910C949122CF9108956DEE7EEF6B -:104D600080E090E00E94BA2F60E082E090E00E9434 -:104D7000AC2F60E083E090E00E94AC2F60E084E024 -:104D800090E00E94AC2F60E085E090E00E94AC2FA4 -:104D900060E086E090E00C94AC2F80E090E00E9410 -:104DA000A62F21E08D3E9E4F09F020E0822F08952E -:104DB00082E090E00C949E2F682F82E090E00C94AB -:104DC000AC2F83E090E00C949E2F682F83E090E05E -:104DD0000C94AC2F84E090E00C949E2F682F84E01C -:104DE00090E00C94AC2F86E090E00C949E2F682FFE -:104DF00086E090E00C94AC2F8091760280FF0BC08F -:104E00006091200185E0689FB00111247595679538 -:104E1000759567952AC081FF09C06091200185E0E2 -:104E2000689FB0011124759567951FC082FF07C068 -:104E30006091200185E0689FB001112416C0409167 -:104E400070024423C9F060911F01461788F7209132 -:104E5000200185E0289F90011124429FC001439FBB -:104E6000900D112470E00E948A2F6038710540F483 -:104E70006115710539F002C065E070E0862F089574 -:104E80008FE7089581E008958091760280FF08C041 -:104E900060911E0170E0759567957595679521C0C5 -:104EA00081FF06C060911E0170E07595679519C07D -:104EB00082FF04C060911E0170E010C080917002FA -:104EC0008823C1F060911D018617A0F790911E0103 -:104ED000989FC001112470E00E948A2F60387105EC -:104EE00028F46115710521F0862F08958FE7089544 -:104EF00081E0089561E070E0F4CF803F21F40E94EA -:104F0000FC26819504C0813F29F40E94FC268093F1 -:104F100073020895823F21F40E94FC26819504C00B -:104F2000833F29F40E94FC26809372020895893FF2 -:104F300019F40E94442705C08A3F31F40E94442797 -:104F400081958093740208958B3F21F40E94442739 -:104F5000819504C08C3F29F40E94442780937502F8 -:104F60000895843F21F480917102816017C0853FCC -:104F700021F480917102826011C0863F21F48091FA -:104F8000710284600BC0873F21F4809171028860B8 -:104F900005C0883F31F48091710280618093710275 -:104FA00008958D3F21F48091760281600BC08E3F81 -:104FB00021F480917602826005C08F3F29F48091B0 -:104FC00076028460809376020895803F29F4809170 -:104FD000730287FF6EC007C0813F41F48091730266 -:104FE00018160CF066C01092730263C090917202A2 -:104FF000823F19F497FF5DC005C0833F31F4191655 -:105000000CF057C01092720254C0893F31F4809165 -:10501000740218160CF04DC006C08A3F39F4809116 -:10502000740287FF46C01092740243C08B3F29F47C -:105030008091750287FF3DC006C08C3F39F4809196 -:1050400075021816B4F51092750233C0843F21F42E -:10505000809171028E7F05C0853F31F4809171028D -:105060008D7F8093710225C0863F21F4809171026B -:105070008B7FF7CF873F21F480917102877FF1CF3B -:10508000883F21F4809171028F7EEBCF8D3F21F418 -:10509000809176028E7F0BC08E3F21F48091760244 -:1050A0008D7F05C08F3F29F4809176028B7F80939E -:1050B00076028091720281110EC08091730281117B -:1050C0000AC080917402811106C08091750281111D -:1050D00002C010927002089581E792E00E94751854 -:1050E0000E94BF2490936F0280936E020895CF9325 -:1050F00080916E0290916F020E94CC2440917002C8 -:10510000442321F02091210130E006C020912201AA -:105110005AE0259F900111248217930708F486C056 -:105120008091720281110DC090917302911109C09A -:1051300090917402911105C090917502992309F420 -:1051400075C04F3F19F04F5F40937002181624F45A -:105150000E94FC26809372028091720287FF05C034 -:105160000E94FC268195809372028091730218162A -:1051700024F40E94FC26809373028091730287FFBF -:1051800005C00E94FC268195809373026091720293 -:10519000662339F1C0917302CC2319F1772767FD9B -:1051A0007095872F972F0E94FA2C23E333E343E374 -:1051B0005FE30E94AE2D0E94C72C609372026C2F99 -:1051C000772767FD7095872F972F0E94FA2C23E38E -:1051D00033E343E35FE30E94AE2D0E94C72C60934C -:1051E000730280917402181624F40E94442780935D -:1051F00074028091740287FF05C00E944427819544 -:105200008093740280917502181624F40E9444273A -:10521000809375028091750287FF05C00E94442724 -:10522000819580937502CF910C946C28CF9108954D -:10523000E1E7F2E085E0DF011D928A95E9F710923F -:105240007002109276020895833089F130F4813033 -:1052500061F0823009F06EC019C0853009F449C090 -:10526000B8F1863009F066C055C020912201862F22 -:1052700090E0820F911D8F3F910520F4620F6093A3 -:10528000220108958FEF809322010895209121013A -:10529000862F90E0820F911D8F3F910520F4620FC1 -:1052A0006093210108958FEF80932101089520914B -:1052B0002001862F90E0820F911D8F3F910520F4F1 -:1052C000620F6093200108958FEF8093200108956D -:1052D00020911F01862F90E0820F911D8F3F910535 -:1052E00020F4620F60931F0108958FEF80931F01D8 -:1052F000089520911E01862F90E0820F911D8F3F0F -:10530000910520F4620F60931E0108958FEF809342 -:105310001E01089520911D01862F90E0820F911D9E -:105320008F3F910520F4620F60931D0108958FEF68 -:1053300080931D010895833021F130F4813059F0BC -:10534000823009F049C012C0853089F128F18630D9 -:1053500009F042C037C080912201681720F4861BF3 -:1053600080932201089510922201089580912101D5 -:10537000681720F4861B8093210108951092210163 -:10538000089580912001681720F4861B80932001E6 -:10539000089510922001089580911F01681720F44C -:1053A000861B80931F01089510921F01089580911C -:1053B0001E01681720F4861B80931E010895109229 -:1053C0001E01089580911D01681720F4861B8093AB -:1053D0001D01089510921D01089541E050E060E024 -:1053E00070E004C0440F551F661F771F8A95D2F7DF -:1053F000CB01BA010E9491220C948C1E873208F5D1 -:105400008E3108F0B9C08E3009F47EC060F4873068 -:1054100009F465C018F4863059F549C0883051F157 -:105420008B3031F5AEC0883130F4863108F0A9C038 -:105430008031F1F473C0893109F4A3C08B31C1F418 -:1054400059C08933F1F068F4893209F493C018F433 -:10545000873271F48FC0853309F48CC0883341F4EE -:1054600090C0863409F46BC008F488C0883449F1D0 -:1054700080E008950E94D8260E94EA260E94F32622 -:1054800080C00E945918892B59F00E945918909396 -:105490007902809378020E948C1E80E090E004C024 -:1054A00080917802909179020E9454186AC080918C -:1054B0006802817F8E7F8093680281E0809377020B -:1054C00008950E948C1E2FEF83ED90E321508040C1 -:1054D0009040E1F700C000000E941F2552C080915B -:1054E000680280FF03C0817F8E7F01C0816080934E -:1054F000680247C09091680291FB882780F921E0FB -:10550000822780FB91F913C09091680292FB882753 -:1055100080F921E0822780FB92F909C0909168020E -:1055200093FB882780F921E0822780FB93F99093F1 -:105530006802882331F191609093680222C081E86B -:1055400090E00E9480182FEF81EE94E0215080407F -:105550009040E1F700C0000080E090E00E948018D9 -:105560002FEF89E698E1215080409040E1F700C09C -:10557000000007C080E003C08D5101C089530E9424 -:10558000ED2981E0089580E0089580E00895CF93AB -:10559000C82F80917702813071F020F0823009F0BD -:1055A00083C037C0A0911B01B0911C018C91823245 -:1055B00009F07CC007C0A0911B01B0911C018C9127 -:1055C000823249F48C2F0E94C32A81111EC08C2F75 -:1055D0000E94FE291CC08C2F0E94C52A811115C073 -:1055E000C43169F030F4CB3081F0C03109F062C0D1 -:1055F00009C0C93221F0C83309F05CC006C010925E -:10560000770258C082E08093770281E090E0817059 -:1056100054C0C932C1F060F4C431A9F020F4C730DD -:1056200009F046C02EC0CE51CA3008F041C011C0AA -:10563000CE3409F118F4CB34D9F517C0C13599F03F -:10564000C235B1F50EC010927A0281E080937702E4 -:1056500034C0EC2FF0E0E455FE4F808180937A0255 -:1056600027C061E003C061E007C06AE080917A0270 -:105670000E9424291DC06AE080917A020E949B2921 -:1056800017C08EE18093220182E3809321018AE09A -:105690008093200184E180931F0188E080931E01A4 -:1056A00088E280931D0104C01092770280E005C05B -:1056B00081E003C080E090E0AACFCF9108950E94DE -:1056C000CD26811102C00E94AE260E94F32680934F -:1056D000770380FF02C0869501C080E00C94DF074D -:1056E00080917703982F9695292F30E0233031054C -:1056F0004CF49F5F990F8170892B816080937703B1 -:105700000E94F7268091770386950C94DF0780919D -:105710007703982F969591F09158990F8170892B66 -:10572000809377038E7F91E009F490E08091770376 -:1057300090FB80F9809377030E94F726809177038E -:1057400086950C94DF0780917703982F909590FBB6 -:1057500080F9809377030E94F7268091770380FF7A -:1057600002C0869501C080E00C94DF07309177037A -:10577000232F26952F5F2F77822F90E0317004978B -:105780002CF4220F232B2093770302C0309377034E -:1057900080917703282F2E7F91E009F490E090FB11 -:1057A00080F9809377030E94F7268091770386958E -:1057B0000C94DF0720917703922F96959827990FE5 -:1057C000822F8170892B809377038E7F91E009F47B -:1057D00090E08091770390FB80F9809377030E949B -:1057E000F7268091770386950C94DF075058BB27E6 -:1057F000AA270ED075C166D130F06BD120F031F4FC -:105800009F3F11F41EF45BC10EF4E095E7FB51C11C -:10581000E92F77D180F3BA176207730784079507DA -:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F -:10583000A02D0B01B90190010C01CA01A001112496 -:10584000FF27591B99F0593F50F4503E68F11A1642 -:10585000F040A22F232F342F4427585FF3CF4695D3 -:1058600037952795A795F0405395C9F77EF41F16F5 -:10587000BA0B620B730B840BBAF09150A1F0FF0FBF -:10588000BB1F661F771F881FC2F70EC0BA0F621FAB -:10589000731F841F48F4879577956795B795F7959B -:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D -:1058B000979587950895D9D008F481E008950CD084 -:1058C0000FC107D140F0FED030F021F45F3F19F056 -:1058D000F0C0511139C1F3C014D198F39923C9F321 -:1058E0005523B1F3951B550BBB27AA2762177307E6 -:1058F000840738F09F5F5F4F220F331F441FAA1F9A -:10590000A9F333D00E2E3AF0E0E830D09150504059 -:10591000E695001CCAF729D0FE2F27D0660F771F07 -:10592000881FBB1F261737074807AB07B0E809F0E9 -:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E -:10594000510568F0B6C000C15F3FECF3983EDCF350 -:10595000869577956795B795F7959F5FC9F7880FF7 -:10596000911D9695879597F90895E1E0660F771F49 -:10597000881FBB1F621773078407BA0720F0621BDA -:10598000730B840BBA0BEE1F88F7E095089504D0D3 -:105990006894B111D9C00895BCD088F09F5790F099 -:1059A000B92F9927B751A0F0D1F0660F771F881F44 -:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F -:1059C000B1E00895C0C0672F782F8827B85F39F0FD -:1059D000B93FCCF3869577956795B395D9F73EF4A3 -:1059E00090958095709561957F4F8F4F9F4F08954B -:1059F000E89409C097FB3EF4909580957095619569 -:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E -:105A10009395F695879577956795B795F111F8CF9A -:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 -:105A30009F4F16C0882311F096E911C0772321F0FB -:105A40009EE8872F762F05C0662371F096E8862F93 -:105A500070E060E02AF09A95660F771F881FDAF7EA -:105A6000880F9695879597F90895990F0008550F17 -:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 -:105A800012161306E407F50798F0621B730B840BDC -:105A9000950B39F40A2661F0232B242B252B21F4B6 -:105AA00008950A2609F4A140A6958FEF811D811D56 -:105AB000089597F99F6780E870E060E008959FEF90 -:105AC00080EC089500240A94161617061806090695 -:105AD000089500240A941216130614060506089564 -:105AE000092E0394000C11F4882352F0BB0F40F4EC -:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C -:105B0000089557FD9058440F551F59F05F3F71F0AD -:105B10004795880F97FB991F61F09F3F79F0879514 -:105B20000895121613061406551FF2CF4695F1DF9D -:105B300008C0161617061806991FF1CF869571052D -:105B4000610508940895E894BB2766277727CB0161 -:105B500097F908958ADF08F48FEF08950BD0C0CF2E -:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 -:105B70001124EACFC6DFA0F3959FD1F3950F50E033 -:105B8000551F629FF001729FBB27F00DB11D639FEF -:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 -:105BA000661F829F2227B00DA11D621F739FB00D3B -:105BB000A11D621F839FA00D611D221F749F3327AB -:105BC000A00D611D231F849F600D211D822F762F44 -:105BD0006A2F11249F5750408AF0E1F088234AF041 -:105BE000EE0FFF1FBB1F661F771F881F915050408D -:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 -:105C0000983EDCF3869577956795B795F795E79578 -:105C10009F5FC1F7FE2B880F911D9695879597F989 -:105C20000895FA01EE0FFF1F30962105310599F115 -:105C30006115710561F48038BFE39B0749F16894F1 -:105C40009038810561F08038BFEF9B0741F09923C0 -:105C500042F5FF3FE1053105210511F1E894089473 -:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 -:105C700010C0FF5F70F4A695E0F7F73950F019F007 -:105C8000FF3A38F49F779F930CD00F9007FC905801 -:105C900008953EF014CF60E070E080E89FE308953F -:105CA0004FE79F775F934F933F932F939ED02F9112 -:105CB0003F914F915F9152DF05C019F40EF0F9CE7C -:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 -:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E -:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D -:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 -:105D0000FE57E0684427EE0F441FFA95E1F74195EE -:105D1000550B32D00F9007FE26C00895DF93CF9326 -:105D20001F930F93FF92EF92DF927B018C01689497 -:105D300005C0DA2EEF011EDFFE01E894A591259142 -:105D4000359145915591AEF3EF0162DDFE0197016A -:105D5000A801DA9479F7DF90EF90FF900F911F91EF -:105D6000CF91DF9108959B01AC0160E070E080E885 -:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A -:105D8000940F511DBBF39150504094F059F088236B -:105D900032F0660F771F881F91505040C1F79E3F29 -:105DA000510544F7880F911D9695879597F90895A9 -:105DB0005F3FACF0983E9CF0BB2786957795679542 -:105DC000B79508F4B1609395C1F7BB0F58F711F47C -:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 -:105DE0000EF076C06CCE689464CE93DEC8F399232F -:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 -:105E0000DD2788232AF02197660F771F881FDAF78E -:105E100020E030E040E85FEB9FE3883920F0803EEF -:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 -:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 -:105E400071097595771F880B990BD4DD28E132E72E -:105E500041E35FE38FDEAF2D9801AE01FF900F911C -:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 -:105E7000BB1F9B01AC01BF5728F4222733274427BF -:105E800050781FC0B75188F4AB2F00244695379542 -:105E90002795011CA395D2F3002069F0220F331F30 -:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 -:105EB0008A07B94630F49B01AC016627772788270B -:105EC0009078309621F02083318342835383089564 -:105ED0009F3F31F0915020F4879577956795B7955E -:105EE000880F911D9695879597F90895AA1BBB1B5E -:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA -:105F0000B70B881F991F5A95A9F780959095BC01EA -:105F1000CD01089597FB072E16F4009407D077FD66 -:105F200009D00E94762F07FC05D03EF4909581950C -:105F30009F4F0895709561957F4F0895F999FECF11 -:105F400092BD81BDF89A992780B50895A8E1B0E087 -:105F500042E050E00C94C12F262FF999FECF1FBAD2 -:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 -:105F7000019608950E94AC2F272F0C94AD2FDC01C1 -:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 -:105F9000319600B40D9241505040B8F70895F894EE -:025FA000FFCF31 -:105FA2000507000C058540000001064000000100C5 -:105FB200D80B680C440C0F0CDB0B01600228081490 -:105FC2000A321E40004500250026006100600020C4 -:105FD2000037006400650066006700440046002444 -:105FE2000047000000020004000500070009000B42 -:105FF200000C000E0010001100130015001700180D -:10600200001A001C001D001F00210023002400268E -:1060120000280029002B002D002F00300032003410 -:10602200003500370039003B008803A103BA03D3CF -:1060320003FB04AE04780458043F4D3620020302E9 -:10604200000001000101010101000101010203043C -:0660520005060708090025 -:00000001FF diff --git a/keyboard/planck/planck_with_bootloader.hex b/keyboard/planck/planck_with_bootloader.hex deleted file mode 100755 index c61dfb743..000000000 --- a/keyboard/planck/planck_with_bootloader.hex +++ /dev/null @@ -1,1796 +0,0 @@ -:020000020000FC -:047000000C948D3E21 -:047028000C94B73DD0 -:10702F0012010002FF010020EB03F42F0000010208 -:10703F00030109021200010100803209040000005F -:10704F00000000000C03410054004D0045004C00AF -:10705F001603410054006D00330032005500340018 -:10706F004400460055000C0331002E0030002E0066 -:10707F0030000403090416010C0100000C0000018C -:02708F006C7F14 -:1070920012BD01BDF89A00B5089501E00895F9996D -:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 -:1070B200FECF0C944938F80104910895F8013491F7 -:1070C20031962491890108950091610000930C0189 -:1070D20000E80093610001E00093610005BF02E057 -:1070E20005BF0C9486380091D70001600093D70049 -:1070F200A89507EF04BF0091600000610093600053 -:1071020000E00093600001E008950E94AA3D0E9401 -:10711200B53DFDCF0CD00F7708D0006806D00061D6 -:1071220004D0016028D0789408950093D80000918B -:10713200D8000895FCDF00621ED04CD009B500FFD4 -:10714200FDCFF5DF0F7D17D00091E0000E7F009399 -:10715200E0000091E000077F0093E0000091E20070 -:1071620001600093E2000091E20008600093E200F7 -:1071720078940C94743B0093D800089500910D010B -:10718200002359F40091D90000FF07C0D0DF006846 -:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 -:1071A200018100FF0DC0008111811E7F11830083C8 -:1071B20001E00093EA0000E00093EA0000931E025F -:1071C20000E00093E9000091E80003FF02C00E9482 -:1071D200F23B0895A89539D000E40093600000E0E6 -:1071E200009381000093800010E0009385000093DB -:1071F200840001E006BB00918100036000938100DE -:107202000091600007FFFCCF00E80093600010933C -:107212008100A89507EF04BF18D010936000209159 -:1072220084003091850010938100109380001093A8 -:1072320085001093840001E006BB2D3D354010F01F -:1072420002E101C002E009BD089500916000006101 -:107252000093600008950E94AD3E239741D100E063 -:1072620000930901B5D104811581012B51F437D165 -:1072720000910701002309F4B9C000E0009307015F -:10728200B5C058D102FFFDCF37D1068335D1009367 -:107292000F0132D1009310012FD1009311012CD193 -:1072A2000093120129D10093130102852091130149 -:1072B20030911201409111015091100116811A95DD -:1072C20041F01250A9F01A9599F11A9509F473C078 -:1072D2008BC010910F01113011F411E001C010E0C8 -:1072E200138799D00C3F11F414D17FC077D17DC0A0 -:1072F20092D010910F01112329F01A9549F01A9595 -:10730200A9F073C010E013870C3F09F06EC0ECCFF8 -:1073120056D103C04CD109F468C00D911C9144D1DF -:107322000F3FC1F305E0009309015FC011E0EBCF0D -:10733200D2D029F00250E1F10A9541F056C0FDD0B9 -:107342000E94A33F0FEF00930A014FC0552319F08B -:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE -:1073620003FFFDCF67D051D04AD008E00093600000 -:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F -:1073820044D00FEF1FE004C009811A810150104060 -:1073920009831A8309811A81012BB1F700E800934E -:1073A200610000910C01009361000C940000FFCF7A -:1073B20001E003871AC08FD019F00A9539F015C081 -:1073C200535098F4BAD002E000870FC0505339F0FE -:1073D2005A9541F05F52B1F35A95A1F306C002E00B -:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 -:1073F2000C94BA3E01E005BF00E005BF089500917C -:10740200D8000F770093D800089509B50D7F09BD04 -:1074120000E009BD08955183408333832283109194 -:10742200E8001B7F1093E8001091E8001F7710938B -:10743200E80008955DD053D0F8940091E000016017 -:107442000093E000089579D04AC0219749D0009175 -:107452000601035019F00250B9F00BC03CD021F0E4 -:107462000A9559F00A9529F400910A010C3F19F482 -:1074720050D02196089567D0FCCF0091010100936E -:10748200F100009100010AC01091100124D019F0FE -:107492000A9549F0EECF135018F400E00093F10082 -:1074A2001ED044D0E6CF105339F01A9539F01F524E -:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 -:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 -:1074D20030E00C94113F00910F010023089521C068 -:1074E2000BD008D007D00093040106D00093050109 -:1074F20021D00BC000D008830091F10008950091C3 -:10750200EB0000620093EB0015D0077F0093E800C8 -:107512000895F5DF02E00093080103E000930901FA -:10752200089559D007D000FFFDCF089503D002FF80 -:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A -:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD -:107552002BD00093F1002BD059F43DD0082F092BEA -:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 -:10757200042D4394003289F300910B0100230D91F5 -:107582001C9131F311970E945838E3CFD3DF00FFEB -:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B -:1075A200CCDFE5E00C94B93E11970C945C380D9158 -:1075B2001C910F5F1F4F1C930E93019708958281B8 -:1075C200938100811181801B910B0196DF01089547 -:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 -:1075E200F7DF80819181A081B181AF710481158122 -:1075F20000521040048315830AC000910B0100233E -:1076020031F4A301920103E911E00E943B3F47D00C -:10761200B8F1662477242C0111C06EDFF301ED5618 -:10762200FE4F008301E0600E00E0701E01960091A3 -:10763200F200002311F033D0B8F47FDF30D0E8F24B -:10764200F301B096E238F040C0F674DF02FFFDCFDE -:107652000091F200BDDF24813581201B304024835C -:107662003583E5CF49DFAA95AA23E1F700910B0103 -:10767200013099F62091F1008C010E945038D6CF4A -:1076820004811581012B21F055DF02FFFDCF55DF6B -:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 -:1076A200F1E0028113810817190708952091EB0078 -:1076B20021602093EB000093EC000091ED0002703A -:1076C200012B0093ED000091ED0002600093ED00AC -:1076D2001091EE00012F000F00E0001F0895412FCE -:1076E2000093E900089500E009D000FD05C000E024 -:1076F200F7DF10E202E0DACF00E00895F1DF009157 -:10770200EB0008950F770132A9F5112369F11A955B -:1077120059F01A9561F01A9569F01A95F9F01A95CF -:10772200C1F01A95D9F024C00E942C3920C00E94C1 -:10773200263A1DC029D00091090123D001E01FD0B3 -:1077420020D0009108011BD00E94923A0E94973AE1 -:107752000EC01AD00091080114D007C002E00093B5 -:10776200080100E0009309010FD00E94923A03C081 -:107772000E94803A02C001E0089500E0089501D01D -:1077820000E00093F10008950091E800077F009364 -:10779200E800089508950350F9F4112339F01A9579 -:1077A20051F01A9581F01A9599F016C004E016D09E -:1077B20001E810E703C011D003E510E7E7E1F2E0CA -:1077C20000831183D8CF06E109D00FE510E7F6CF89 -:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 -:1077E200089527D120D100931D02E1D0212F11232A -:1077F20029F12A95E9F02250F1F0225099F02A95C8 -:1078020049F0225061F02A9581F02A95E1F02A95FB -:10781200E9F023C0003809F44FC00C94833B0038D0 -:10782200E1F7C8C00023C9F71EC00023B1F72DC07D -:10783200033098F744C1033080F70BC1003868F376 -:10784200033858F7C9C0013841F77BC1013051F400 -:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA -:1078620009F41ED008951091E3001078DCD00F7750 -:10787200012B0093E300E9D0ACD000FFFDCF0091D3 -:10788200E30000680093E300089591D0123040F4C1 -:107892000FD010931E02DAD000911E020C94CB3B43 -:1078A2000091EB0001D004C000620093EB00089548 -:1078B2000091E800077FC0C0BA93AA93229700E024 -:1078C2000093190274D0AFD0202F2A9519F02A956F -:1078D200E9F022C002E100931A020FE210E7E7E1A9 -:1078E200F2E0008311839DD008839DD00983E0DFFD -:1078F20000911A0210E02881398102171307A8F4B7 -:107902000F7181F401E00093190211C002E10093AA -:107912001A0201E410E7E3CF0E94CC3B002319F7DF -:107922008ED040C01093190202C020931A027ED05A -:10793200A7E1B2E001C08AD000911A02002309F146 -:1079420048D004FD1EC045D000FD03C042D004FF54 -:10795200FACF10E0012F1395003281F0ED91FC91E6 -:107962001197049133D02D913C912F5F3F4F3C935F -:107972002E93FD0103810A95038361F72AD004FF48 -:10798200DACF00911902013039F423D004FD04C08A -:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F -:1079A20018D00B7F49D02296A991B99108951091D0 -:1079B200F10008957DDF00911E0208D047D009D062 -:1079C2000F773AD006D002FFFDCFBFC00093F1007F -:1079D20008950091E800089524D010911D021058D6 -:1079E20029F01A9589F01A9591F019C061DF00917A -:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 -:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 -:107A12000F7710E0F801E55EFD4F0081EACF0FD04D -:107A22000BC001D000D00091F1000895D2DF0F7E8B -:107A320003C00091E8000B7F0093E80008950091D5 -:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 -:107A5200F3CF00911D02002329F00A9509F10A953E -:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE -:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 -:107A82001091EB0010FF0BC00ED010E01093E90034 -:107A920021E0F801E55EFD4F20834FD003C042D0C4 -:107AA20045D0CFDFC9CF1091EB0010621093EB00ED -:107AB20008951091E800177F1093E800089500914F -:107AC2001D02002311F4AFDF02C0013011F4B7DF51 -:107AD200B3CF023031F52DD019F52091F1002F7777 -:107AE2002093E90023D000FF19C081F01FD000616C -:107AF200DCDE01E010E0422F0E949F3E0093EA008C -:107B020000E00093EA0012D00860CFDE0BD030E034 -:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 -:107B2200BFDE089500E00093E90008950091EB00A4 -:107B3200089579DF3CDF00230895BADE4ADF0E7F25 -:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 -:107B520073CF0091D70001600093D7000E948B3849 -:107B620000E000931F0208950C94BF388A93FA93A1 -:107B7200EA933A922A921A920A927A936A935A93BF -:107B82004A933A932A931A930A938FB70091DA0091 -:107B920000FF24C00091D80000FF20C00EEF009328 -:107BA200DA000091D90000FF11C001E000930D013D -:107BB200ABD0026096D09AD00860A2D00E949B38C7 -:107BC2000091E0000E7F0093E00008C000E0009307 -:107BD2000D0100931E0298D0046083D07FD002FF73 -:107BE20005C084D002FF02C00BEF75D077D000FF32 -:107BF2001BC07CD000FF18C001E000930E016AD0C8 -:107C020083D000626ED00EEF6FD0006179D06ED05B -:107C12000F7D76D00091D80000620093D80009B59C -:107C22000D7F09BD00E009BD59D004FF20C05ED020 -:107C320004FF1DC009B500FD05C00E94EB3809B55F -:107C420000FFFDCF0091D8000F7D0093D80042D0F5 -:107C520000910E01002359F04CD00FEE45D00F7E5B -:107C620052D000643ED042D001604AD042D036D0D9 -:107C720005FF0FC03BD005FF0CC000E000930E01D2 -:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 -:107C920028D024D003FF0DC029D003FF0AC000E082 -:107CA20000931F0207EF17D00E94743B2DD0116082 -:107CB20018D08FBF09911991299139914991599100 -:107CC200699179910990199029903990E991F991E6 -:107CD200899118950FEE0093E10008950091E1005B -:107CE20008951183008308950093E1000091E2005A -:107CF20008950091E200006203D00091E200086062 -:107D02000093E2000895FCDFE0E2F2E000811181DD -:107D1200089500008895FECF01E60DBF02E00EBF78 -:107D2200C2EED2E00E947438002311F00E94D33ECA -:107D32000E9465380E948A3E0C948A3E4A951AF047 -:107D4200000F111FFBCF0895BA92AA929A928A92BB -:107D52007A926A925A924A92BA93AA939A938A937D -:107D62000895BB84AA84998488847F806E805D8014 -:107D72004C80BB81AA8199818881F0E00FB6F8948A -:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 -:107D9200259102D0E9F708952D9301501040202F2C -:107DA200212B089585E890E7FC0105911491FC01CF -:107DB2003296A591B491FC01349625913491422FCB -:107DC200432B19F0F901E4DF01C0DEDF069610E76C -:107DD2008139910748F308952F930CD02F9101D048 -:107DE20008953CD0F12FE02F45E047BFE89536D00B -:107DF20012D0089533D0F12FE02F43E047BFE8952A -:107E02002DD008952BD0F12FE02F43E047BFE89506 -:107E120025D001D0089522D041E147BFE8951EC088 -:107E22001DD0F12FE02F41E247BFC895002D16C0AB -:107E320015D0F12FE02F49E047BFC895002D0EC0A5 -:107E4200F32FE22F012E102E41E047BFE89506C026 -:107E520005D0002E29E027BFE89500C0022E27B7E3 -:107E620020FDFCCF202D0895022E27B726FDFCCF42 -:107E7200202D08950E94A53E22974801C901DA01EA -:107E820010C05BD001E0A00E00E0B01E00E4A0161E -:107E920000E0B00608F440C0830120E030E00E9418 -:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 -:107EB2002C01401A510A320100E4A02E03C00A2FFD -:107EC2000B2BE1F04816590680F0F40101914F01A5 -:107ED2000983119729F001914F010883119711C06D -:107EE200F2013196049108830CC0F20104910983D6 -:107EF2003196E817F907A1F7F401EDCF1BD00883FB -:107F020019839201088119810E94213F16D0AA94F7 -:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE -:107F220009F4AFCF83011DD0B7CF01E02296ECE078 -:107F32000C94B23E82010C945F3802E0400E00E0E5 -:107F4200501E08959A938A9380E090E08C0109D0A4 -:107F520080589F4F8F3F0FE69007C0F38991999108 -:107F6200089520E030E00C94FB3E00000000000089 -:067F720000000000FC000D -:107FE4000C94ED3E0C94113F0C94193F0C94213FDA -:0C7FF4000C94F23E0C94033F0C94293FC7 -:040000030000700089 -:100000000C949D020C94E1020C94E1020C94E10228 -:100010000C94E1020C94E1020C94E1020C94E102D4 -:100020000C94E1020C94E1020C941C120C94EE125C -:100030000C948D240C94E1020C94E1020C94E102E6 -:100040000C94E1020C94E1020C94E1020C94E102A4 -:100050000C94E1020C94FA240C94E1020C94E10259 -:100060000C94E1020C94E1020C94E1020C94E10284 -:100070000C94E1020C94E1020C94E1020C94E10274 -:100080000C94860A0C94E1020C94E1020C94E102B7 -:100090000C94E1020C94E1020C94E1020C94E10254 -:1000A0000C94E1020C94E1020C94E10207634236E5 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F0000000000000021 -:10013000F1A4F1A3018C028C048C2B0014001A0092 -:100140000800150017001C0018000C001200130016 -:100150002A00290004001600070009000A000B000D -:100160000D000E000F0033003400E1001D001B00E5 -:100170000600190005001100100036003700380095 -:1001800028000030E000E200E30002202C002C00F8 -:1001900001205000510052004F002B0014001A00A3 -:1001A000090013000A000D000F0018001C003300A6 -:1001B0002A002900040015001600170007000B0094 -:1001C000110008000C0012003400E1001D001B00AB -:1001D0000600190005000E00100036003700380038 -:1001E00028000030E000E200E30002202C002C0098 -:1001F00001205000510052004F002B003400360007 -:10020000370013001C0009000A00060015000F004B -:100210002A00290004001200080018000C00070042 -:100220000B001700110016003800E1003300140025 -:100230000D000E001B00050010001A0019001D0023 -:1002400028000030E000E200E30002202C002C0037 -:1002500001205000510052004F0035021E021F02C3 -:100260002002210222022302240225022602270262 -:100270002A0001003A003B003C003D003E003F00E8 -:100280002D022E022F0230023102010040004100F7 -:100290004200430044004500032004200520005094 -:1002A0000100010001000100010002200100010025 -:1002B0000100AB00AA00A900AE0035001E001F001F -:1002C0002000210022002300240025002600270012 -:1002D0002A0001003A003B003C003D003E003F0088 -:1002E0002D002E002F0030003100010040004100A1 -:1002F0004200430044004500032004200520005034 -:1003000001000100010001000100010001000100E5 -:100310000120AB00AA00A900AE0028035400680029 -:100320006500200050006C0061006E0063006B00EF -:1003300020004B006500790062006F0061007200D0 -:10034000640000002C034F007200740068006F000E -:100350006C0069006E0065006100720020004B00B7 -:100360006500790062006F00610072006400730034 -:100370000000040309040902D000060100A03209AC -:100380000400000103010100092111010001223FC5 -:10039000000705810308000A0904010001030102A6 -:1003A00000092111010001224D0007058203080008 -:1003B0000A090402000103000000092111010001E3 -:1003C0002236000705830308000A0904030002031C -:1003D000000000092111010001222000070584030B -:1003E00020000107050403200001090404000001A6 -:1003F00001000009240100010900010509040500AC -:10040000020103000007240100014100062402014B -:100410000100062402020200092403010301020173 -:10042000000924030204010101000905060240003D -:1004300005000005250101010905850240000500B0 -:100440000005250101031201100100000008EDFE66 -:1004500060600100010200010631FF0974A1010979 -:1004600075150025FF952075088102097615002570 -:10047000FF952075089102C005010980A101850240 -:1004800016010026B7001A01002AB7007510950161 -:100490008100C0050C0901A1018503160100269CFD -:1004A000021A01002A9C02751095018100C0050105 -:1004B0000902A1010901A100050919012905150079 -:1004C00025019505750181029501750381010501DD -:1004D000093009311581257F950275088106093893 -:1004E0001581257F950175088106050C0A380215CE -:1004F00081257F950175088106C0C005010906A107 -:1005000001050719E029E715002501950875018106 -:1005100002950175088101050819012905950575E0 -:100520000191029501750391010507190029FF1535 -:100530000025FF950675088100C011241FBECFEF6E -:10054000DAE0DEBFCDBF04B603FE24C0809178039D -:1005500090917903A0917A03B0917B038730904BFF -:10056000A740B04BB9F4109278031092790310921F -:100570007A0310927B0314BE84B7877F84BF88E11F -:100580000FB6F89480936000109260000FBEE0E018 -:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E -:1005A00005900D92A63BB107D9F713E0A6EBB1E099 -:1005B00001C01D92A837B107E1F70E94F90E0C9413 -:1005C000CF2F0C9400000895089561110DC0FC0117 -:1005D0008281882331F085EE0E949D190E94B62BFE -:1005E00003C085EE0E94651A80E090E008958B3B81 -:1005F000910568F4883A910530F5853A9105C0F483 -:100600008430910598F4019709F06FC071C0803E65 -:10061000910508F46AC0883E910540F09C01205F76 -:1006200031092031310508F060C05CC09C01A1C0D7 -:10063000853A910509F45FC0863A910509F45EC0D8 -:1006400023E830E496C0883A910509F45AC0893A03 -:10065000910509F459C08A3A910509F458C08B3ABA -:10066000910509F457C08C3A910509F456C08D3AAA -:10067000910509F455C0803B910509F454C08E3AA8 -:10068000910509F453C08F3A910509F452C0813B9A -:10069000910509F451C0823B910509F450C0833B98 -:1006A000910509F44FC0843B910509F44EC0853B88 -:1006B000910509F44DC0863B910509F44CC0873B78 -:1006C000910509F44BC0883B910509F44AC0893B68 -:1006D000910509F449C08A3B910509F048C02AE216 -:1006E00036E447C09C01306544C020E030E041C0A2 -:1006F00021E030E03EC021E830E43BC022E830E4B5 -:1007000038C022EE34E435C029EE34E432C02AEE9B -:1007100034E42FC025EB34E42CC026EB34E429C0AC -:1007200027EB34E426C02CEC34E423C02DEC34E475 -:1007300020C023E835E41DC02AE835E41AC022E9C8 -:1007400035E417C024E935E414C021E236E411C0D1 -:1007500023E236E40EC024E236E40BC025E236E4A0 -:1007600008C026E236E405C027E236E402C020E0F5 -:1007700034E4C90108959CE0799FF001112490E3CD -:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 -:10079000E65CFE4F25913491C9010895880F991F99 -:1007A00082559040FC0125913491C9010895880F2C -:1007B000991F825D9E4FFC0125913491C9010895D6 -:1007C0000E94BB039C013A9521153F4108F4DFC00C -:1007D0009C0130522115304120F49F700E94D703B4 -:1007E00008959C0130532115304118F49927906CDD -:1007F00008959C0130542031310520F48F709927E1 -:10080000946D0895803120E4920719F480E091ED11 -:100810000895813140E4940719F480E090ED089543 -:10082000823120E4920719F480E092ED089583313B -:1008300040E4940719F480E093ED0895811520E5D4 -:10084000920711F40C941F25813040E5940731F490 -:100850008091680281608093680208959C013056FF -:100860002115304108F402C097FF02C0906F08952F -:10087000803E9105E0F4803C910568F58133910557 -:1008800009F474C048F48932910509F46AC08A32C7 -:10089000910509F07AC074C089339105F9F0823866 -:1008A0009105E1F08533910509F06FC050C0833E9A -:1008B0009105A9F140F4803E9105C9F0823E910571 -:1008C00009F063C01BC0863E910571F1873E91051A -:1008D00009F05BC037C00E94CE03089520917B02CF -:1008E00020FD02C021FF51C080EE90E04EC08091FB -:1008F0007B0280FFF9CF89E390E047C080917B02C3 -:1009000082FF0AC080917B0284FF03C080E090E0F8 -:100910003CC083EE90E039C082EE90E036C080911A -:100920007B0282FFEFCFF8CF80917B0283FF07C06D -:1009300080917B0284FDEACF87EE90E026C086EEB0 -:1009400090E023C080917B0283FFF2CFF8CF8091AB -:100950007B0285FF03C089E290E017C085E390E049 -:1009600014C080917B0285FDF9CFF5CF80917B0289 -:1009700086FF03C08AE290E008C081E390E005C0F2 -:1009800080917B0286FDF9CFF5CF0E94F702089592 -:100990005F926F927F928F929F92AF92BF92CF920F -:1009A000DF92EF92FF920F931F93CF93DF93CDB718 -:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD -:1009C0002F5F3F4F4E0189E0880E911C60E070E080 -:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 -:1009E00088E0782E622E532E41E050E0E3E2F1E001 -:1009F000A62DB52D872D01900D928A95E1F7F9016D -:100A0000819191919F01FC01E07FFF27E032F10588 -:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 -:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 -:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E -:100A4000DF2A29C0E034F10559F48F709927FA01A3 -:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 -:100A6000E035F10559F48F709927FA0102C0EE0FB5 -:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 -:100A800051F48F709927FA0102C0EE0FFF1F8A956B -:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B -:100AA0008A2D8095892384B985B18A2985B997B122 -:100AB0008C2D8095892387B988B18C2988B99AB102 -:100AC0008E2D809589238AB98BB18E298BB99DB1E2 -:100AD000802F809589238DB98EB1802B8EB990B3EC -:100AE000862F8095892380BB81B3862B81BB289676 -:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F -:100B00000F91FF90EF90DF90CF90BF90AF909F90AC -:100B10008F907F906F905F9008955F926F927F9219 -:100B20008F929F92AF92BF92CF92DF92EF92FF92FD -:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 -:100B4000F894DEBF0FBECDBF85B7806885BF85B77F -:100B5000806885BF0E94CF076E9A769A0E94C8046B -:100B60009E012F5F3F4F4E0189E1880E911C60E08E -:100B700070E000E010E0E12CF12CC12CD12CA12C74 -:100B8000B12C98E1792E622E532E41E050E0EBE239 -:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 -:100BA000F901819191919F01FC01E07FFF27E032E3 -:100BB000F10559F48F709927FA0102C0EE0FFF1F5B -:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F -:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 -:100BE000CE2ADF2A29C0E034F10559F48F70992705 -:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 -:100C00001BC0E035F10559F48F709927FA0102C035 -:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B -:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 -:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F -:100C400094B18A2D8095892384B985B18A2985B983 -:100C500097B18C2D8095892387B988B18C2988B963 -:100C60009AB18E2D809589238AB98BB18E298BB943 -:100C70009DB1802F809589238DB98EB1802B8EB93F -:100C800090B3862F8095892380BB81B3862B81BB4F -:100C90001092B7011092B6011092BF011092BE01DE -:100CA0001092B9011092B8011092C1011092C001C6 -:100CB0001092BB011092BA011092C3011092C201AE -:100CC0001092BD011092BC011092C5011092C40196 -:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF -:100CE0001F910F91FF90EF90DF90CF90BF90AF904A -:100CF0009F908F907F906F905F9008955F926F921A -:100D00007F928F929F92AF92BF92CF92DF92EF929B -:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA -:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 -:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 -:100D4000B11C38E0532E470101E010E048E1642E69 -:100D500055E0752EE3E2F1E0D401852D01900D926E -:100D60008A95E1F7F701819191917F019C01207FA4 -:100D700033272032310589F424B18F709927A801D7 -:100D800002C0440F551F8A95E2F7CA01242B24B9EB -:100D900095B18095892385B94FC02033310589F4F9 -:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 -:100DB000E2F7CF012E2B27B998B18095892388B906 -:100DC0003BC02034310589F42AB18F709927A801DE -:100DD00002C0440F551F8A95E2F7CA01242B2AB995 -:100DE0009BB1809589238BB927C02035310589F4C3 -:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 -:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 -:100E100013C02036310581F420B38F709927A801C3 -:100E200002C0440F551F8A95E2F7CA01242B20BB4C -:100E300091B38095892381BB50EA5A95F1F7BE01A1 -:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 -:100E5000DE011196462D01900D924A95E1F7FB01B6 -:100E600041915191BF01FA01E07FFF27E032F10586 -:100E700011F4E3B113C0E033F10511F4E6B10EC093 -:100E8000E034F10511F4E9B109C0E035F10511F4E0 -:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 -:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 -:100EB000A801022E02C0440F551F0A94E2F702C097 -:100EC00040E050E0842B952B2F5F3F4F2C303105B5 -:100ED00009F0BCCFF601208131812817390721F0B4 -:100EE00091838083709200010E94C804F2E0CF0ECB -:100EF000D11CEA14FB0409F02DCF80910001882356 -:100F000061F1815080930001811121C08091BE0167 -:100F10009091BF019093B7018093B6018091C00179 -:100F20009091C1019093B9018093B8018091C20161 -:100F30009091C3019093BB018093BA018091C40149 -:100F40009091C5019093BD018093BC0106C08FE9CB -:100F50009FE00197F1F700C0000081E0A0960FB676 -:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF -:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 -:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 -:100F9000EA54FE4F80819181089508950895279A1B -:100FA0002F988FEF9FEF90938700809386008AE0C1 -:100FB0008093800089E1809381000C945F2B8111E4 -:100FC0000BC080918000877F8093800010928D00FD -:100FD00010928C002F9808952F98833041F48091BF -:100FE00080008860809380008FEF9FEF12C0909107 -:100FF000800098609093800023E030E0281B310946 -:10100000220F331F8FEF9FEF02C0969587952A9589 -:10101000E2F790938D0080938C0008950F931F93B7 -:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 -:10103000DEBF0FBECDBF8C01862F642F882379F0D1 -:10104000F80192812FE7482F992329F08DE792E04C -:101050000E94F81404C08DE792E00E940815F80180 -:1010600080818B3061F49181933009F068C0828176 -:10107000882309F4CDC0809103018F5F0EC08A30B0 -:10108000E1F5F8019181933009F059C082818823FC -:1010900009F4BEC08091030181508093030120E0D8 -:1010A0004BE760E08DE792E00E94E81420E04BE718 -:1010B00061E08DE792E00E94E81420E04BE762E0F7 -:1010C0008DE792E00E94E81420E04BE763E08DE7B3 -:1010D00092E00E94E81420E04BE764E08DE792E0A4 -:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 -:1010F000CF911F910F910C94E814893069F4F80195 -:1011000091819330E1F492819923C9F0809101019A -:101110009091020101960EC0883089F4F801918106 -:10112000933069F49281992351F08091010190915B -:10113000020101979093020180930101B0CFF80161 -:10114000928140910301992391F196E4E3E4F1E067 -:10115000DE01A95BBF4F01900D929A95E1F7405DCA -:10116000F8019181FCE09F9F40191124E091010159 -:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 -:101180008C0F9D1FE80FF91F8081480F2FE760E04B -:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 -:1011A000CDBFDF91CF911F910F910C94F81496E46D -:1011B000E3E4F1E0DE01119601900D929A95E1F7DA -:1011C000405DF8019181FCE09F9F40191124E0915E -:1011D0000101F0910201E80FF11DEE0FFF1F81E008 -:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB -:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 -:101200000FBECDBFDF91CF911F910F910C940815A8 -:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE -:10122000CF911F910F910895CF93DF93EA019B0116 -:10123000AC0160E074E284E79BE40E945F2C0E94B2 -:10124000C72C709397006093960020E130E02C1B30 -:101250003D0B02C0759567952A95E2F7709399004A -:1012600060939800DF91CF9108951092020210923E -:10127000010210929000109291001092FD011092C4 -:10128000FE011092FF01109200021092FC011092D8 -:10129000FB01E9EDF1E0A9ECB1E01192119211929C -:1012A00011921D921D9281E0E93FF807B1F7089570 -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 -:1012C000CF93DF936B017C0109EF11E047EDA42E72 -:1012D00041E0B42EC7E0D0E0A7019601F801929159 -:1012E0008291729162918F010E945B2C882349F058 -:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F -:1013000034C0F8011082118212821382F501118219 -:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 -:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 -:1013300044815581668177814083518362837383C1 -:10134000148215821682178212962D913C91139762 -:1013500011963C932E9313961C921E9212973496DC -:1013600012968730910519F7C3CF809101029091B1 -:101370000202019797FD05C090930202809301023B -:1013800004C01092020210920102E0910102F09159 -:101390000202309789F410929000109291001092FE -:1013A000FD011092FE011092FF01109200021092B6 -:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 -:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 -:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA -:1013E000B090FE010091FF0110910002A70196014B -:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 -:1014000081E08093C801AE016A2D7B2D802F912F42 -:101410000E9414092091FD013091FE014091FF01CD -:1014200050910002C701B6010E94F62B20E030E087 -:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 -:10144000802F912F0E94F72B5B018C01A701960141 -:101450007B2D912F0E945B2C1816ACF638C0A7018B -:1014600096016A2D7B2D802F912F0E94AA2D181690 -:1014700084F581E08093C801AE016A2D7B2D802F19 -:10148000912F0E941409A70196016091FD017091AE -:10149000FE018091FF01909100020E94F62B20E056 -:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF -:1014B0007B2D802F912F0E94F62B5B018C01A701C1 -:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 -:1014D000C801AE01C701B6010E941409C092FD0106 -:1014E000D092FE01E092FF01F0920002D093FC0145 -:1014F000C093FB01DF91CF911F910F91FF90EF906F -:10150000DF90CF90BF90AF90089508951F920F92F3 -:101510000FB60F9211242F933F934F935F936F93C6 -:101520007F938F939F93AF93BF93EF93FF9380919C -:10153000960090919700892B09F455C08091C801BD -:10154000811151C08091F9019091FA01813091058A -:1015500071F082309105C1F0892BC1F52091FD0118 -:101560003091FE014091FF01509100021DC0609139 -:10157000FD017091FE018091FF01909100029B019D -:10158000AC010E94F72B0EC020E030E040E450E4B4 -:101590006091FD017091FE018091FF019091000228 -:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 -:1015B0000E945F2C0E94C72C709397006093960046 -:1015C0007595679570939900609398008091F901E3 -:1015D0009091FA01019663E070E00E948A2F909347 -:1015E000FA018093F901FF91EF91BF91AF919F9123 -:1015F0008F917F916F915F914F913F912F910F90BC -:101600000FBE0F901F901895AF92BF92CF92DF92AE -:10161000EF92FF920F931F93CF93DF936B017C01A7 -:10162000EA0120E030E0A9010E94AA2D18160CF072 -:10163000B4C03E9A82E8809390008AE18093910042 -:10164000A090FD01B090FE010091FF0110910002F9 -:1016500020E030E0A9016A2D7B2D802F912F0E9480 -:101660005B2C81112DC0AE01C701B6010E94140987 -:10167000C092FD01D092FE01E092FF01F0920002C3 -:10168000D093FC01C093FB01809101029091020272 -:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F -:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F -:1016B000D183C083019690930202809301026DC092 -:1016C000A70196016A2D7B2D802F912F0E945B2C04 -:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 -:1016E00014092091FD013091FE014091FF015091BC -:1016F0000002C701B6010E94F62B20E030E04AEF5D -:1017000053E40E945F2C9B01AC016A2D7B2D802F3E -:10171000912F0E94F72B5B018C01A70196017B2D75 -:10172000912F0E945B2C1816ACF69DCFA701960155 -:101730006A2D7B2D802F912F0E94AA2D18160CF058 -:1017400092CFAE016A2D7B2D802F912F0E9414091C -:10175000A70196016091FD017091FE018091FF014A -:10176000909100020E94F62B20E030E04AEF53E413 -:101770000E945F2C9B01AC016A2D7B2D802F912F45 -:101780000E94F62B5B018C01A70196017B2D912F06 -:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 -:1017A0000F91FF90EF90DF90CF90BF90AF90089592 -:1017B00080910C020895CF93DF9300D01F92CDB794 -:1017C000DEB720916E03243021F523E029839B832B -:1017D0008A832093E9008FEF06C095ED9A95F1F783 -:1017E0000000882329F09091E800815095FFF5CF03 -:1017F0008091E80085FF0DC040E050E063E070E0BC -:10180000CE0101960E94BA0F8091E8008E778093F6 -:10181000E8000F900F900F90DF91CF910895CF9334 -:10182000DF9300D01F92CDB7DEB720916E03243036 -:1018300029F522E029839B838A8383E08093E90052 -:101840008FEF06C095ED9A95F1F70000882329F0F7 -:101850009091E800815095FFF5CF8091E80085FFD9 -:101860000DC040E050E063E070E0CE0101960E94C0 -:10187000BA0F8091E8008E778093E8000F900F9068 -:101880000F90DF91CF91089520916E032430F9F4E9 -:1018900022E02093E9002FEF06C035ED3A95F1F7ED -:1018A0000000222329F03091E800215035FFF5CFC8 -:1018B0002091E80025FF0BC040E050E065E070E0BB -:1018C0000E94BA0F8091E8008E778093E800089517 -:1018D000CF93DF93EC0180916E03843041F581E07A -:1018E0008093E9008FEF06C095ED9A95F1F700001F -:1018F000882329F09091E800815095FFF5CF8091E1 -:10190000E80085FF14C040E050E068E070E0CE01E0 -:101910000E94BA0F8091E8008E778093E80088E0FB -:10192000FE01A4E0B2E001900D928A95E1F7DF910B -:10193000CF910895BF92CF92DF92EF92FF920F93D3 -:101940001F93CF93DF937C01B62EE90100E010E0F6 -:10195000C42ED12C0BC04991202F2B0D2F774F7700 -:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 -:1019700094F3DF91CF911F910F91FF90EF90DF9043 -:10198000CF90BF90089570E06F5F7F4F6F707727A3 -:101990000C94E8140F931F93CF93C42F63307105F9 -:1019A00009F04AC0842F807F803849F1803909F0DE -:1019B00043C0622F6F7770E080E090E00E94FA2CC5 -:1019C00020E030E040E451E40E945F2C9B01AC0138 -:1019D00060E070E080E090E40E94112E0F7710E04C -:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 -:1019F00053E40E94AE2DA8010E94040B1DC0622F6B -:101A00006F7770E080E090E00E94FA2C20E030E0F8 -:101A100040E451E40E945F2C9B01AC0160E070E067 -:101A200080E090E40E94112E2DEC3CEC42E053E467 -:101A30000E94AE2D0E945809CC3F29F4CF911F91EE -:101A40000F910C943509CF911F910F9108950F9329 -:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 -:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C -:101A70009A819D839B819E839C819F8381111EC03F -:101A800089818430B1F08730A1F08630A1F08530B3 -:101A9000A1F0BE016F5F7F4F84E091E00E942F189C -:101AA0008111E3CF84E091E00E9420180E949B14F2 -:101AB0000DC083E003C082E001C081E0AE014B5F56 -:101AC0005F4F682FC8010E945515E3CF27960FB6C8 -:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 -:101AE0000895EF92FF920F93CF93DF9300D000D031 -:101AF00000D0CDB7DEB77B014A832B830C83842FC4 -:101B00002E834D830E94C2142E814D8181111BC0F2 -:101B100082E0E816F10479F083E0E816F10421F0A0 -:101B2000EA94EF2821F50BC0073F11F487E001C0CC -:101B300084E089830BC0273FD9F786E0FACF473F7F -:101B4000B9F785E0F6CF42954F704983BE016F5FCC -:101B50007F4F84E091E00E94E51784E091E00E94CD -:101B6000031884E091E00E9420180E949B1426969E -:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE -:101B8000FF90EF90089580916D03811109C00E942C -:101B9000A1110E94FE118091E20084608093E20016 -:101BA000089510926D03089508950C94E4020C9426 -:101BB000892480916E03843049F58091E9008F700B -:101BC0009091EC0090FF02C090E801C090E0982B4B -:101BD00084E08093E9008091EB0080FF14C0809145 -:101BE000EE0087FD03C00FC01092F1008091E80065 -:101BF00085FDFACF8091E80080FF05C08091E80064 -:101C00008E778093E8009F709093E900089542E0FA -:101C100061EC81E00E94171142E061EC82E00E94D9 -:101C2000171142E061EC83E00E94171146E261EC7B -:101C300084E00E94171142E361E885E00E941711D9 -:101C400042E360E886E00C941711809170038330C2 -:101C500009F454C030F4813071F0823009F0AAC028 -:101C600091C08A3009F47EC08B3009F45FC089309E -:101C700009F0A0C020C080916F03813A09F09AC09A -:101C80008091E800877F8093E800809173039091B2 -:101C90007403892B21F060E080E090E003C068E0ED -:101CA00084E092E070E00E9458108091E8008B7709 -:101CB0008093E800089580916F03813209F07AC023 -:101CC0008091730390917403892B09F073C0809104 -:101CD000E800877F8093E80005C080916E03882329 -:101CE00009F468C08091E80082FFF7CF8091F1008D -:101CF00080930C028091E8008B7758C080916F032D -:101D0000813A09F057C08091730390917403892B35 -:101D100009F050C08091E800877F8093E8008091AF -:101D2000E80080FFFCCF80911A013BC080916F03D7 -:101D3000813209F03FC08091730390917403892B25 -:101D4000C9F58091E800877F8093E8000E944E11DA -:101D50009091710381E0911101C080E080931A019C -:101D60000C948C1E80916F03813221F58091E800E4 -:101D7000877F8093E8000E944E11809172038093C8 -:101D80000302089580916F03813AA1F48091E800E5 -:101D9000877F8093E8008091E80080FFFCCF8091EE -:101DA00003028093F1008091E8008E778093E80031 -:101DB0000C944E11089584B7877F84BF88E10FB6D5 -:101DC000F89480936000109260000FBE90E080E86D -:101DD0000FB6F89480936100909361000FBE0E944B -:101DE000A1110E94FE11E2EEF0E080818460808308 -:101DF00008958DE792E00E94241561E77DE08DE76C -:101E000092E00E947A1567E27DE08DE792E00E9401 -:101E10007E150E94DB0E78946AEC7CE08DE792E000 -:101E20000E94201563EC7CE08DE792E00E9418157B -:101E30006AE97CE08DE792E00E941C150E94850A09 -:101E40000E949B140E94AC1880E191E00E945418FB -:101E50000BC00E944E2480916C03882329F00E94BD -:101E6000742481110E94A40F80916E03853089F340 -:101E70008DE792E00E942D170E94B618F5CF292F0A -:101E8000332723303105B1F04CF42130310509F40A -:101E90004DC02230310509F04EC007C02132310556 -:101EA00041F12232310591F146C0E0EDF0E086E7E4 -:101EB00093E045C099278130910569F08230910502 -:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 -:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA -:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 -:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 -:101F0000FE4F80819181E9E0F0E019C0643098F4DF -:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 -:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D -:101F300086E494E004C0E0E0F0E080E090E0DA01C4 -:101F40008D939C93CF01089580E189BD82E189BD85 -:101F500009B400FEFDCF8091D8008F7D8093D8001A -:101F60008091E00082608093E0008091E00081FD3C -:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 -:101F80001F93CF93DF937C018B01EA010E946F11B5 -:101F9000B82E811133C0209731F028813981021B7E -:101FA000130BE20EF31EC12CD12C23C08091E8004C -:101FB00085FD15C08091E8008E778093E80020971A -:101FC00049F0888199818C0D9D1D9983888325E036 -:101FD000B22E14C00E946F11882359F00EC0F70171 -:101FE00081917F018093F10001501109FFEFCF1A19 -:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 -:10200000CF911F910F91FF90EF90DF90CF90BF90F5 -:102010000895BF92CF92DF92EF92FF920F931F939A -:10202000CF93DF937C018B01EA010E946F11B82EE0 -:10203000811133C0209731F028813981021B130BA5 -:10204000E20EF31EC12CD12C23C08091E80085FD47 -:1020500015C08091E8008B778093E800209749F0C5 -:10206000888199818C0D9D1D9983888345E0B42ECC -:1020700014C00E946F11882359F00EC08091F100A6 -:10208000F70181937F0101501109FFEFCF1ADF0A99 -:1020900001151105D1F601C0B82E8B2DDF91CF911E -:1020A0001F910F91FF90EF90DF90CF90BF90089518 -:1020B00040917503509176034617570748F0611514 -:1020C000710539F44091E8004E774093E80001C073 -:1020D000BA01FC0140E033C080916E03882309F40B -:1020E00042C0853009F441C08091E80083FD39C0C9 -:1020F0008091E80082FD2FC08091E80080FF1FC022 -:102100009091F3008091F200392F20E0A901482B33 -:10211000CA0106C041914093F100615071090196D6 -:102120006115710519F088309105A0F341E0089719 -:1021300009F040E08091E8008E778093E800611517 -:10214000710551F64111C8CF06C080916E038823F6 -:1021500051F0853051F08091E80082FFF6CF80E0A9 -:10216000089581E0089582E0089583E00895409104 -:102170007503509176034617570748F061157105AE -:1021800039F44091E8004E774093E80001C0BA016D -:10219000FC0140E034C080916E03882309F443C001 -:1021A000853009F442C08091E80083FD3AC08091F7 -:1021B000E80082FD30C08091E80080FF20C090914F -:1021C000F3008091F200392F20E0A901482BCA01C9 -:1021D00007C044914093F100319661507109019616 -:1021E0006115710519F08830910598F341E0089761 -:1021F00009F040E08091E8008E778093E800611557 -:10220000710549F64111C7CF06C080916E0388233E -:1022100051F0853051F08091E80082FFF6CF80E0E8 -:10222000089581E0089582E0089583E00895982F4D -:102230002CC09093E900981739F07091EC00209130 -:10224000ED005091F00003C0242F762F50E021FDC7 -:1022500002C09F5F1AC03091EB003E7F3093EB00CD -:102260003091ED003D7F3093ED003091EB00316017 -:102270003093EB007093EC002093ED005093F0004E -:102280002091EE0027FDE5CF07C0973090F28F70C8 -:102290008093E90081E0089580E0089580916F03C4 -:1022A00087FD05C08091E80080FF0EC012C08091BC -:1022B000E80082FD05C080916E038111F8CF08957A -:1022C0008091E8008B7708C080916E038111EACF7E -:1022D00008958091E8008E778093E80008958091BA -:1022E000E4009091E50045E62091EC0020FD1FC040 -:1022F00023C020916E03222391F0253091F020918C -:10230000EB0025FD10C02091E4003091E500281776 -:10231000390751F34150C90139F784E0089582E04B -:10232000089583E0089581E0089580E00895209164 -:10233000E80020FFDECFF9CF2091E80022FFD9CFBF -:10234000F4CF0E940F120E941712E0EEF0E080819D -:1023500081608083E8EDF0E080818F77808319BC15 -:10236000A7EDB0E08C918E7F8C9380818F7E8083EF -:1023700010926D0308950F931F93CF93DF930E94E4 -:102380000F120E941712C8EDD0E088818F778883E2 -:1023900088818068888388818F7D888319BC1092AA -:1023A0006E0310926A0310926C0310926B0300EE9E -:1023B00010E0F80180818B7F808388818160888331 -:1023C00042E060E080E00E941711E1EEF0E08081E1 -:1023D0008E7F8083E2EEF0E0808181608083808167 -:1023E00088608083F80180818E7F8083888180610E -:1023F0008883DF91CF911F910F910895E8EDF0E070 -:1024000080818F7E8083E7EDF0E080818160808332 -:1024100084E082BF81E080936D030C94BB11E8EDF2 -:10242000F0E080818E7F80831092E2000895109208 -:10243000DA001092E10008951F920F920FB60F92EA -:1024400011242F933F934F935F936F937F938F93B9 -:102450009F93AF93BF93EF93FF938091E10082FF2F -:102460000BC08091E20082FF07C08091E1008B7F6A -:102470008093E1000E94D90D8091DA0080FF1FC097 -:102480008091D80080FF1BC08091DA008E7F8093FE -:10249000DA008091D90080FF0DC080E189BD82E122 -:1024A00089BD09B400FEFDCF81E080936E030E94D8 -:1024B000C30D05C019BC10926E030E94D10D80910E -:1024C000E10080FF19C08091E20080FF15C080917B -:1024D000E2008E7F8093E2008091E2008061809331 -:1024E000E2008091D80080628093D80019BC85E01A -:1024F00080936E030E94D50D8091E10084FF30C06F -:102500008091E20084FF2CC080E189BD82E189BD19 -:1025100009B400FEFDCF8091D8008F7D8093D80054 -:102520008091E1008F7E8093E1008091E2008F7EB8 -:102530008093E2008091E20081608093E2008091CC -:102540006A03882311F084E007C08091E30087FFCD -:1025500002C083E001C081E080936E030E94D70D2A -:102560008091E10083FF29C08091E20083FF25C0B4 -:102570008091E100877F8093E10082E080936E0389 -:1025800010926A038091E1008E7F8093E100809138 -:10259000E2008E7F8093E2008091E2008061809370 -:1025A000E20042E060E080E00E9417118091F000BC -:1025B00088608093F0000E94D40DFF91EF91BF914D -:1025C000AF919F918F917F916F915F914F913F91CB -:1025D0002F910F900FBE0F901F9018951F920F9282 -:1025E0000FB60F9211242F933F934F935F936F93E6 -:1025F0007F938F939F93AF93BF93CF93EF93FF936B -:102600008091E9008F709091EC0090FF02C090E8FB -:1026100001C090E0C92FC82B1092E9008091F00012 -:10262000877F8093F00078940E9432131092E90023 -:102630008091F00088608093F000CF70C093E90033 -:10264000FF91EF91CF91BF91AF919F918F917F912A -:102650006F915F914F913F912F910F900FBE0F900F -:102660001F9018951F93CF93DF93CDB7DEB7AC972C -:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A -:10268000F100819323E0E737F207C9F70E94250E96 -:102690008091E80083FF37C180916F0390917003B0 -:1026A000953009F488C038F49130B1F170F093306E -:1026B00009F029C131C0983009F4F8C0993009F403 -:1026C00004C1963009F01FC19DC0803821F08238C6 -:1026D00009F019C108C080916B0390916C03992394 -:1026E00089F082600FC080917303909174038F70A2 -:1026F00099278093E9008091EB0085FB882780F97A -:102700001092E9009091E800977F9093E800809301 -:10271000F1001092F100D5C0882319F0823009F041 -:10272000F2C08F7121F0823009F0EDC00BC08091B2 -:102730007103813009F0E7C0933009F080E08093A5 -:102740006C032FC08091710381112BC080917303A2 -:10275000909174038F709927009709F4D4C08093E7 -:10276000E9002091EB0020FF1CC020917003233072 -:1027700021F48091EB00806212C09091EB00906197 -:102780009093EB0021E030E001C0220F8A95EAF738 -:102790002093EA001092EA008091EB008860809319 -:1027A000EB001092E9008091E800877F8093E800B9 -:1027B0000E944E11A8C08111A6C080917103909112 -:1027C00072038F779927182F9091E3009078982BB8 -:1027D0009093E3008091E800877F8093E8000E9457 -:1027E0004E118091E80080FFFCCF8091E30080686B -:1027F0008093E300112311F083E001C082E0809315 -:102800006E0381C08058823008F07DC080917103D2 -:10281000909172038C3D23E0920779F583E08A83DF -:102820008AE289834FB7F894DE01139620E03EE0F8 -:1028300051E2E32FF0E050935700E49120FF03C0F2 -:10284000E295EF703F5FEF708E2F90E0EA3010F06E -:10285000C79601C0C0968D939D932F5F243149F791 -:102860004FBF8091E800877F8093E8006AE270E0C4 -:10287000CE0101960E94581013C0AE01455D5F4F16 -:10288000609173030E943F0F0097E9F12091E800E7 -:10289000277F2093E800BC018BA59CA50E94B71060 -:1028A0008091E8008B778093E8002DC0803859F53F -:1028B0008091E800877F8093E80080916A0380938D -:1028C000F1008091E8008E7771CF81111CC090914A -:1028D00071039230C0F48091E800877F8093E80014 -:1028E00090936A030E944E1180916A03811104C083 -:1028F0008091E30087FF02C084E001C081E0809303 -:102900006E030E94070E8091E80083FF0AC0809149 -:10291000E800877F8093E8008091EB0080628093DD -:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 -:10293000CF911F910895CF9380916E038823B1F0BA -:102940008091E9008F709091EC0090FF02C090E8B8 -:1029500001C090E0C92FC82B1092E9008091E800D7 -:1029600083FD0E943213CF70C093E900CF91089588 -:10297000881F8827881F089591E0883F08F490E019 -:10298000892F0895982F907F903B99F038F49039D3 -:1029900081F0903A71F09038C9F40BC0903DA1F0ED -:1029A00018F4903C99F410C0903E19F0903F71F4E7 -:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 -:1029C000E356FE4F8081089582E0089580E00895E7 -:1029D0000F932F774F776F70606BDC01ED91FC9157 -:1029E000022F242F462F63E070E009950F91089580 -:1029F0000F932F774F776F706069DC01ED91FC9139 -:102A0000022F242F462F63E070E009950F9108955F -:102A10000F932F774F776F706068DC01ED91FC9119 -:102A2000022F242F462F63E070E009950F9108953F -:102A3000FC01738362830895FC01738F628F089594 -:102A4000FC01758F648F0895CF93DF93EC011DA275 -:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 -:102A60000E9461171B821A821D821C821F821E8295 -:102A7000198618861B861A861D861C861F861E864A -:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A -:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA -:102AA00019A218A2DF91CF910895CF92DF92FF92E1 -:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 -:102AC0006A018C0108511F4F08C0F60161916F0126 -:102AD000C80149830E94681749818C2D841B8F157A -:102AE000A0F30F90DF91CF911F910F91FF90DF9096 -:102AF000CF900895FC01718360830895FC0171A358 -:102B000060A30895AF92BF92CF92DF92EF92FF92AF -:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 -:102B20007C016B01142FB22EA02EDC0195968C91A6 -:102B300095978430F1F45A96ED91FC915B9730971C -:102B400009F4D8C0CB01019763E070E00E94762FB2 -:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 -:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 -:102B7000B1C06230710509F453C06330710529F0AA -:102B80006130710509F09CC083C0842F807F803A3A -:102B900001F130F48038B9F0803909F0ABC00DC0D4 -:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 -:102BB0001296ED91FC91139723C0D7011496ED91D5 -:102BC000FC9115971DC0D7011696ED91FC911797B2 -:102BD00017C0D7011896ED91FC91199711C0D70134 -:102BE0001A96ED91FC911B970BC0423F09F082C0F1 -:102BF000D7011C96ED91FC911D97309731F47AC066 -:102C0000309709F477C0123F21F42A2D4B2D62EF43 -:102C100004C0612F6F702A2D4B2DC70109955AC032 -:102C2000842F807F803D59F0803F79F0803C09F00F -:102C300061C0D7011E96ED91FC911F9719C0D70175 -:102C40005096ED91FC91519713C0433F31F4D70159 -:102C50005296ED91FC91539708C0413F09F04AC04C -:102C6000D7015496ED91FC915597309741F442C0AD -:102C7000309709F43FC0133F11F0113F19F44B2D69 -:102C8000612F03C0612F6F704B2DC701099522C0C2 -:102C9000842F0E94BC14882331F0D7015696ED9101 -:102CA000FC91579707C0163F29F5D7015896ED912B -:102CB000FC9159973097F1F0612FC70109950AC02F -:102CC00064307105A8F416C00A2D2B2D412FB601D2 -:102CD000C7010995D7015E96ED91FC915F973097FA -:102CE00089F00A2D2B2D412FB601C70109950AC085 -:102CF000C12CD12CD7015C96ED91FC915D9730975A -:102D000019F7E8CF0F900F900F90DF91CF911F919F -:102D10000F91FF90EF90DF90CF90BF90AF9008950C -:102D2000EF92FF920F931F93CF93DF93EC01162F37 -:102D3000862F0E94BC14882369F0FDA081E08DA33A -:102D400000E020E0412F61E070E0CE010E9482159A -:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 -:102D600040C0443029F01AA321E030E03FA32EA355 -:102D7000812F0E94C214813031F070F0823051F006 -:102D8000833059F507C08DA300E020E0412F61E0BA -:102D900070E01EC08DA35AC0103F19F0173FE9F430 -:102DA00004C084E08DA31AA33FC02EA13FA1C90196 -:102DB00063E070E00E94762F8C0F9D1FFC0112A330 -:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 -:102DD000CE010E9482151DA239C01DA21FA21EA2F3 -:102DE00035C0442399F12EA13FA1C90163E070E0F1 -:102DF0000E94762F7C01FE01E80FF91F12A3B90192 -:102E00006F5F7F4F7FA36EA38130910591F082E0C9 -:102E1000E816F104D9F40CA12BA14AA1CE010E941D -:102E200082158DA1843091F081E090E09FA38EA364 -:102E30000DC0423059F400E02BA14AA1CE010E94FE -:102E400082158DA1843011F0FFA2EEA2DF91CF9107 -:102E50001F910F91FF90EF900895CF92DF92EF9224 -:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 -:102E7000309709F009958E0108511F4FC8010E9433 -:102E80009A17E12CF12CC82ED12C0FC060E0C8019C -:102E90000E94AE17682FCE010E94901661E0C80113 -:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 -:102EB000DF91CF911F910F91FF90EF90DF90CF9016 -:102EC0000895FC0142837483638311821082089504 -:102ED0000F931F93CF93DF93EC01062F0E94E0170F -:102EE000182F298130E0C90101966A8170E00E94A3 -:102EF0008A2F488150E08417950729F4812F0E947A -:102F0000E31780E012C0EB81FC81E20FF31F008326 -:102F10002981822F90E001966A8170E00E948A2FB9 -:102F20008983812F0E94E31781E0DF91CF911F9168 -:102F30000F910895CF93DF93EC010E94E017298150 -:102F40009881291710F0C22F02C0CA81C20FC91B75 -:102F50000E94E3178C2FDF91CF910895FC0120810F -:102F6000862F90E0820F911D628170E00E948A2F6F -:102F70000380F481E02DE80FF91F808108950F93FD -:102F80001F93CF93DF931F92CDB7DEB78C01698378 -:102F90000E94E017482FF80180816981262F30E0D8 -:102FA000280F311D6281C90170E00E948A2F808341 -:102FB000842F0F90DF91CF911F910F910C94E31705 -:102FC0008FB7F89408958FBF0895FC01CB0120912D -:102FD0006E032430B1F421812F702093E90040E08A -:102FE00050E064E070E00E94BA0F81110BC0909134 -:102FF000E80095FD07C09091E8009E779093E80067 -:10300000089582E0089520916E032430A9F4FC0114 -:1030100081818F708093E9003091F3002091F2005C -:10302000932F80E0822B892B49F08091E8008E77E6 -:103030008093E8000C946F1182E0089580E0089579 -:1030400020916E03243051F4FC0121812F702093D4 -:10305000E9002091E80020FD0C9403180895FC017C -:10306000CB0120916E03243011F080E00895268179 -:103070002F702093E9002091E80022FFF6CF2091E5 -:10308000E80025FFF2CF40E050E064E070E00E94ED -:1030900009108091E80085FD05C08091E8008B77DC -:1030A0008093E80081E0089590930F0280930E02D0 -:1030B000089580910E0290910F020895E0910E0202 -:1030C000F0910F02309721F00190F081E02D0994EA -:1030D00080E00895E0910E02F0910F02309721F008 -:1030E0000280F381E02D09940895E0910E02F091A1 -:1030F0000F02309721F00480F581E02D09940895A6 -:1031000020911002309111028217930771F0909371 -:10311000110280931002E0910E02F0910F0230979D -:1031200021F00680F781E02D099408952091120284 -:10313000309113028217930771F0909313028093DA -:103140001202E0910E02F0910F02309721F00084FC -:10315000F185E02D099408950E94B6240E948D0502 -:103160000E948A250C945F2B0C94CE075F926F927D -:103170007F928F929F92AF92BF92CF92DF92EF9207 -:10318000FF920F931F93CF93DF93CDB7DEB72A97AC -:103190000FB6F894DEBF0FBECDBF0E947E0694E14D -:1031A000C92E92E0D92E00E010E0AA24A394B12CFD -:1031B000502E802F0E94C4073C01F601E190F1904F -:1031C0006F01E826F926E114F10431F40F5F1F4F77 -:1031D0000430110569F73AC08091680281FD0E94B0 -:1031E000CD0720E030E04501022E02C0880C991C7A -:1031F0000A94E2F7C4018E219F21892B09F12E83C5 -:103200005F826820792081E0672809F480E0888760 -:103210000E94BF248160782F9A8789874E815F81C1 -:1032200068858A850E946F19F801EE0FFF1FEC5E1A -:10323000FD4F80819181882599259183808316C0D7 -:103240002F5F3F4F2C30310571F6C0CF8FEF898350 -:103250008A831B820E94BF248160782F9D838C8388 -:1032600049815A816B818D810E946F190E94772854 -:1032700010911C020E945E181817D9F00E945E1867 -:1032800080931C022A960FB6F894DEBF0FBECDBF06 -:10329000DF91CF911F910F91FF90EF90DF90CF9032 -:1032A000BF90AF909F908F907F906F905F900C94A5 -:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB -:1032C000CF911F910F91FF90EF90DF90CF90BF9023 -:1032D000AF909F908F907F906F905F900895CF9365 -:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 -:1032F000CDBF4F83588769877A878B87DE01119608 -:1033000086E0FD0111928A95E9F785E0FE01379686 -:1033100001900D928A95E1F749815A816B817C81F8 -:103320008D819E810E9447212B960FB6F894DEBFB7 -:103330000FBECDBFDF91CF910895CF93C82F8823C3 -:1033400009F4C1C0823859F40E945E1881FDBBC0E7 -:1033500089E30E94AC230E94282489E30CC08338AF -:1033600079F40E945E1880FDAEC083E50E94AC2314 -:103370000E94282483E50E94CE23CF910C94282418 -:10338000843859F40E945E1882FD9DC087E40E9433 -:10339000AC230E94282487E4EECF8450813A48F47D -:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 -:1033B000E4CF8C2F805E883050F4C77081E090E0BD -:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 -:1033D000855A833078F4C53A29F0C63A31F482E848 -:1033E00090E005C081E890E002C083E890E0CF91D2 -:1033F0000C9480188C2F885A833108F064C0C83A26 -:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 -:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 -:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE -:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E -:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 -:1034500082EE90E035C089EE90E032C08AEE90E0D6 -:103460002FC085EB90E02CC086EB90E029C087EB65 -:1034700090E026C08CEC90E023C08DEC90E020C062 -:1034800083E891E01DC08AE891E01AC082E991E0EA -:1034900017C084E991E014C081E292E011C083E298 -:1034A00092E00EC084E292E00BC085E292E008C098 -:1034B00086E292E005C087E292E002C080E090E000 -:1034C000CF910C949618CF910895882309F44DC09C -:1034D000823859F40E945E1881FF47C089E30E9438 -:1034E000AC230E94282489E30CC0833871F40E9425 -:1034F0005E1880FF3AC083E50E94AC230E94282416 -:1035000083E50E94CE230C942824843859F40E9429 -:103510005E1882FF2AC087E40E94AC230E94282400 -:1035200087E4EFCF982F9450913A08F4EACF982F80 -:10353000905E983058F4282F277081E090E001C009 -:10354000880F2A95EAF70E94F523DDCF982F955A28 -:10355000933020F480E090E00C948018885A8331F6 -:1035600020F480E090E00C9496180895882321F0D0 -:103570000E94EF230C9428240895882321F00E94B0 -:10358000F5230C9428240895BF92CF92DF92EF92F6 -:10359000FF920F931F93CF93DF93CDB7DEB727979B -:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 -:1035B000DE01119601900D928A95E1F7F8013081B4 -:1035C0002181F280558152955F7083819481892B8E -:1035D00039F02F3F41F481E090E03F3F31F003C0EC -:1035E00081E090E002C080E090E080FD73C3398309 -:1035F0002A8389819A815E830E946923B92E8F83F1 -:103600000E9468230E9490222B2D22952F7030E07B -:103610005E816F812530310509F4E6C06CF42430F9 -:1036200031050CF0A2C04B2D407F8B2D8F702230C6 -:1036300031050CF045C017C02C3031054CF42A3050 -:1036400031050CF0E7C12830310509F043C3E5C06E -:103650002D30310509F4BAC20CF4A2C22F30310565 -:1036600009F038C323C3182F411101C002C01295BD -:10367000107FFF2059F0112309F46BC2812F6F8353 -:103680000E94FF230E9428246F8163C2862F0E941C -:10369000651A112309F41EC3812F0E940524279661 -:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 -:1036B0000F91FF90EF90DF90CF90BF900C94282453 -:1036C000403211F08295807F662319F0613071F5E8 -:1036D00023C0FF20B1F0511101C032C0513081F53B -:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 -:1036F0001F910F91FF90EF90DF90CF90BF900C94AF -:103700000F24511101C003C0513009F4E3C28E836C -:103710000E9412248E819AC1FF2021F0563008F0B9 -:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 -:10373000552331F0F801958190FF0BC29F7095835E -:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 -:103750001F910F91FF90EF90DF90CF90BF900C944E -:10376000B61A552309F472C109C22B2D2695269548 -:10377000237030E02115310529F02130310509F0A1 -:10378000A9C219C0FF2021F0862F9B2D937002C083 -:1037900080E090E027960FB6F894DEBF0FBECDBF55 -:1037A000DF91CF911F910F91FF90EF90DF90CF901D -:1037B000BF900C948018FF2021F0862F9B2D9370D2 -:1037C00002C080E090E027960FB6F894DEBF0FBEEF -:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 -:1037E000CF90BF900C949618862FFF2019F00E945E -:1037F0007D2702C00E94E52727960FB6F894DEBF0A -:103800000FBECDBFDF91CF911F910F91FF90EF9031 -:10381000DF90CF90BF900C946C288B2D837009F0B3 -:1038200079C0F11057C2262F229526952770220FB6 -:10383000220F862F8F70C82ED12CE12CF12C022E56 -:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 -:1038500010C06FE070E080E090E004C0660F771F5A -:10386000881F991F2A95D2F760957095809590953D -:1038700003C060E070E0CB012B2D269526952370C8 -:10388000422F50E042305105D9F04330510569F1E3 -:103890006C297D298E299F294130510551F12796A8 -:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 -:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 -:1038C0006C297D298E299F2927960FB6F894DEBF93 -:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 -:1038E000DF90CF90BF900C94B7220E94A522C70111 -:1038F000B60127960FB6F894DEBF0FBECDBFDF919D -:10390000CF911F910F91FF90EF90DF90CF90BF90DC -:103910000C949322FF2019F08B2D817001C08695A5 -:10392000882309F4D7C1262F229526952770220FC8 -:10393000220F862F8F70C82ED12CE12CF12C022E55 -:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 -:1039500010C06FE070E080E090E004C0660F771F59 -:10396000881F991F2A95D2F760957095809590953C -:1039700003C060E070E0CB012B2D269526952370C7 -:10398000422F50E042305105D9F04330510569F1E2 -:103990006C297D298E299F294130510551F12796A7 -:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 -:1039B0000F91FF90EF90DF90CF90BF900C94442335 -:1039C0006C297D298E299F2927960FB6F894DEBF92 -:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 -:1039E000DF90CF90BF900C9456230E944423C701D0 -:1039F000B60127960FB6F894DEBF0FBECDBFDF919C -:103A0000CF911F910F91FF90EF90DF90CF90BF90DB -:103A10000C943223603F59F120F4603E08F494C0C6 -:103A200008C0623F09F467C0F0F1633F09F08CC041 -:103A300065C0162F1F708B2D8F71FF2021F00E9403 -:103A4000DD22812F7DCE0E94F822812F27960FB68E -:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 -:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 -:103A7000B1F0553008F02EC18B2D8F7127960FB6FF -:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 -:103A9000FF90EF90DF90CF90BF900C94172356309B -:103AA00008F018C1E9CFFF2099F08B2D8F71279670 -:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F -:103AC0000F91FF90EF90DF90CF90BF900C94DD228C -:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A -:103AE000DF91CF911F910F91FF90EF90DF90CF90DA -:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 -:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 -:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 -:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E -:103B3000CDBFDF91CF911F910F91FF90EF90DF905C -:103B4000CF90BF900C94C922FF20A9F0552309F40F -:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 -:103B6000DF91CF911F910F91FF90EF90DF90CF9059 -:103B7000BF900C949D19552309F4AACF862F279640 -:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E -:103B90000F91FF90EF90DF90CF90BF900C94651A3B -:103BA0004B2D4F70C8010E94E50227960FB6F8947E -:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 -:103BC000EF90DF90CF90BF900C94FD21F11082C058 -:103BD0009B2D9F70492F50E04230510599F144F4DC -:103BE0004115510569F04130510509F073C019C004 -:103BF00043305105C1F14430510509F06BC044C058 -:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 -:103C10001F910F91FF90EF90DF90CF90BF900C9489 -:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 -:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 -:103C40000C94872B27960FB6F894DEBF0FBECDBF1E -:103C5000DF91CF911F910F91FF90EF90DF90CF9068 -:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F -:103C7000CDBFDF91CF911F910F91FF90EF90DF901B -:103C8000CF90BF900C94B62B862F27960FB6F89442 -:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F -:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C -:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 -:103CC000CF911F910F91FF90EF90DF90CF90BF9019 -:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A -:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 -:103CF000BF9008950E940C240E94E1230E94282472 -:103D00000E9418290E946C2880E090E00E94801890 -:103D100080E090E00C9496180E94FC230C947A1E8C -:103D20000E946923292F22952F7030E02C30310515 -:103D30004CF42A3031056CF422503109223031051F -:103D400070F407C02C30310531F02F30310539F4D3 -:103D500002C081E0089593FB882780F9089580E0F0 -:103D60000895CF93DF9300D000D01F92CDB7DEB778 -:103D70000F900F900F900F900F90DF91CF910895BB -:103D8000CF93DF9300D000D000D0CDB7DEB726961A -:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F -:103DA0001F93CF93DF93C091530216E012C0D0E06F -:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 -:103DC000518162817381848195810E94C01E2196F8 -:103DD000C77080915402C813EACFDF91CF911F9131 -:103DE000089540911D0250911E0260911F02709132 -:103DF000200280912102909122020C94C01E0F9308 -:103E00001F93CF93DF938091220282958F7009F0E8 -:103E100069C080911F02882309F464C0A0915302F5 -:103E2000D0915402B0911D02C0911E0280912002D7 -:103E30009091210221E030E0BF3F11F020E030E01E -:103E4000122FBC016095709506E04AC0009721F0E2 -:103E5000CF3F29F4212F05C021E030E002C020E04F -:103E600030E020FD3BC04A2F50E0049FF001059F49 -:103E7000F00D1124ED5DFD4F2181C2132FC0208173 -:103E8000B2132CC02281211129C02381348128172B -:103E9000390718F0281B390B02C0260F371F283CA2 -:103EA0003105E0F4809122028F70806180932202BC -:103EB00086E0849FF001859FF00D1124E85DFD4FA1 -:103EC00080818F70806180838DE192E00E94C41AAE -:103ED000DF91CF911F910F910C94D01EAF5FA7700F -:103EE000AD13B4CFDF91CF911F910F910895EF9251 -:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 -:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F -:103F1000DE011D9601900D928A95E1F7D8014C9132 -:103F200011965C91119712966C9112971396ED90E1 -:103F3000FC90149770911D02E0911E028091200266 -:103F400090912102009739F0EF3F41F421E030E0F9 -:103F50007F3F31F003C021E030E002C020E030E0DC -:103F600020FD5CC120911F02222309F4F1C0E81654 -:103F7000F90628F09701281B390BC90104C0809568 -:103F800090958E0D9F1D883C910508F098C08091FA -:103F90002202982F907F09F064C0E51314C07413B7 -:103FA00012C0611110C08F708061809322020E9444 -:103FB000F11E8DE192E00E94C41A80912202D80184 -:103FC00015968C9343C1EF2839F05F3F41F481E0AF -:103FD00090E04F3F31F003C081E090E002C080E00C -:103FE00090E080FD03C081E0862702C080E090E081 -:103FF00080FF2EC0809153022091540236E013C0FE -:1040000090E0389FF001399FF00D1124ED5DFD4FD8 -:104010007181571306C07081471303C07281671303 -:1040200017C0019687708213EBCF12C19F7059F0B1 -:10403000882309F40BC107C09F7029F0F80195810E -:10404000907F09F403C1805E883008F4FFC0D2C0BD -:10405000662309F4FBC080912202816080932202D2 -:10406000F5C0E51308C0741306C0611104C0D8017F -:1040700015968C939DC04D875E878D859E856A8B36 -:104080000E94901E6A89882309F4B4C0662309F44B -:10409000B1C020912202822F82958F7090E002970A -:1040A0000CF4C6C080911D0290911E0298878F83E8 -:1040B0001986FB86EA862C87CE01079646C080913A -:1040C0002202982F907F59F47E2DF98AE88A8989F7 -:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 -:1040E00011C074130FC061110DC0F8018583C801A0 -:1040F0000E94C41AEDE1F2E086E0DF011D928A958C -:10410000E9F7A2C04D875E878D859E856A8B0E94E8 -:10411000901E6A89882309F46DC0662309F46AC079 -:1041200020912202822F82958F7090E002970CF4EA -:104130007FC080911D0290911E029A8389831B8209 -:10414000FD82EC822E83CE0101960E94C41A70C0BB -:10415000E816F90628F09701281B390BC90104C09D -:10416000809590958E0D9F1D883C910508F046C066 -:10417000662309F43FC0E51330C074132EC02091AC -:10418000220220FD21C0322F32953F70832F90E014 -:104190000097D1F0D80115962C9315970F9741F001 -:1041A000832F8F5F8295807F2F70282B15962C93FD -:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 -:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC -:1041D00001900D928A95E1F737C04D875E878D85F6 -:1041E0009E850E94901E811123C0809122028160D1 -:1041F00080932202C8010E94C41A26C07E2DF98A2B -:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 -:104210001D928A95E9F70E94F11E18C0662351F39A -:104220004D875E878D859E850E94901E882311F3A1 -:1042300086E0F801ADE1B2E001900D928A95E1F7D8 -:104240000E94FF1E0E94F11E81E014C080E012C097 -:104250004D875E878D859E850E946923292F229533 -:104260002F7030E0223031050CF4E0CE24303105DF -:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D -:10428000DF91CF911F910F91FF90EF9008951F93B1 -:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 -:1042A0000FBECDBF4F83588769877A878B879C87DE -:1042B000CE0107960E94771F8823D9F02F81388579 -:1042C0008A859B85892B39F03F3F19F080E090E08B -:1042D00004C02F3FD9F781E090E0892B09F06DC031 -:1042E0004F81588569857A858B859C850E94C01E83 -:1042F00064C086E0FE013796DE01119601900D92B2 -:104300008A95E1F7FF81E8854A855B85411551056E -:1043100039F0EF3F41F481E090E0FF3F31F003C01E -:1043200081E090E002C080E090E080FD46C02091F6 -:10433000540230E0C90101968770992760915302B9 -:1043400070E08617970709F440C0F983EA835D831C -:104350004C8396E0929FD001939FB00D1124AD5DE8 -:10436000BD4FFE01319601900D929A95E1F7809331 -:1043700054020E94D01E21C0189FC00111248D5DDF -:104380009D4F0E94771F882371F1E09153021E9F79 -:10439000F0011124ED5DFD4F4081518162817381F7 -:1043A000848195810E94C01E8091530290E0019605 -:1043B000877099278093530201C016E080915302C1 -:1043C000909154028913D8CF0EC00E948C1E109277 -:1043D000540210925302EDE1F2E086E0DF011D92FB -:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 -:1043F000CDBFDF91CF911F910895DF92EF92FF9291 -:104400000F931F93CF93DF93EC01009709F46CC0D7 -:10441000D12CEE24E394F12C8E010F5F1F4FFE018F -:104420008491843748F4843008F04AC0813071F0B8 -:10443000823009F059C01EC0853709F43DC070F1C3 -:10444000982F9458903708F04FC03DC02296F8013D -:104450008491982F905E983050F48770FE2D01C0A3 -:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A -:104470009D192DC02296F8018491982F905E983056 -:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 -:104490000E9405241CC00E94651A19C02296F801CA -:1044A000049107C08FE99FE00197F1F700C0000079 -:1044B00001500111F7CF0BC02296F801D49007C02C -:1044C0000E949D1903C08F770E94651AE8018D2D07 -:1044D00007C08150EFE9FFE03197F1F700C000001D -:1044E000882309F499CFF5CFDF91CF911F910F91D8 -:1044F000FF90EF90DF9008956093590270935A02F5 -:1045000080935B0290935C020C947A1E6093550238 -:104510007093560280935702909358020C947A1E1F -:1045200008950C947C220F931F93009159021091CF -:104530005A0220915B0230915C02602B712B822B1E -:10454000932B1F910F910C947C220F931F9300913A -:10455000590210915A0220915B0230915C02602353 -:104560007123822393231F910F910C947C220F932C -:104570001F930091590210915A0220915B023091D1 -:104580005C0260277127822793271F910F910C945B -:104590007C2260E070E0CB010C94862241E050E088 -:1045A00060E070E004C0440F551F661F771F8A95B6 -:1045B000D2F7CB01BA010C94862241E050E060E0D2 -:1045C00070E004C0440F551F661F771F8A95D2F70D -:1045D0008091550290915602A0915702B0915802D5 -:1045E000482B592B6A2B7B2BCB01BA010C948622CA -:1045F00041E050E060E070E004C0440F551F661FCA -:10460000771F8A95D2F74095509560957095809167 -:10461000550290915602A0915702B091580248233A -:1046200059236A237B23CB01BA010C94862241E0F3 -:1046300050E060E070E004C0440F551F661F771F14 -:104640008A95D2F78091550290915602A091570217 -:10465000B0915802482759276A277B27CB01BA0116 -:104660000C9486220F931F930091550210915602CD -:104670002091570230915802602B712B822B932B83 -:104680001F910F910C9486220F931F930091550256 -:1046900010915602209157023091580260237123E5 -:1046A000822393231F910F910C9486220F931F93C3 -:1046B00000915502109156022091570230915802F4 -:1046C00060277127822793271F910F910C948622D0 -:1046D0000895CF92DF92EF92FF920F931F93CF93A3 -:1046E000DF93EC01C0905902D0905A02E0905B0237 -:1046F000F0905C028091550290915602A091570271 -:10470000B0915802C82AD92AEA2AFB2A0FE110E000 -:10471000B701A601002E04C0769567955795479579 -:104720000A94D2F740FF08C0BE01802F0E94E00328 -:104730008130910509F007C00150110948F7BE0109 -:1047400080E00E94E003DF91CF911F910F91FF90D5 -:10475000EF90DF90CF90089540911B0150911C0184 -:1047600020E030E09FEFFA01E20FF31F628168174B -:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD -:104780002630310581F707C0FA01E90FF11D97FDC9 -:10479000FA95828308959F3FB9F7089540911B01D0 -:1047A00050911C0120E030E0FA01E20FF31F9281EA -:1047B000981301C012822F5F3F4F26303105A1F7B9 -:1047C000089581E090E0E0911B01F0911C01E80F59 -:1047D000F91F1082019688309105A9F708959091EC -:1047E0005D02982B90935D020895809590915D02F3 -:1047F000982390935D02089510925D020895909120 -:104800005E02982B90935E020895809590915E02CF -:10481000982390935E02089510925E02089580930B -:104820005F02089510925F02089540911B0150911C -:104830001C0120E030E080E0FA01E20FF31F9181DB -:1048400091118F5F2F5F3F4F27303105A9F70895F2 -:10485000E0911B01F0911C0180915D028083E09149 -:104860001B01F0911C01808190915E02892B808355 -:1048700090915F02992361F0E0911B01F0911C017E -:104880008081892B80830E94152481110E9412242B -:1048900080911B0190911C010C946A1880916E0309 -:1048A000843009F11092690220E488E190E00FB6AB -:1048B000F894A895809360000FBE2093600083B7A2 -:1048C000817F846083BF83B7816083BF789488953C -:1048D00083B78E7F83BF88E10FB6F8948093600022 -:1048E000109260000FBE0895CF930E94E3020E94D1 -:1048F0007E060E94E402C0E08C2F0E94C407892B30 -:1049000029F4CF5FC430C1F780E001C081E0CF91CE -:1049100008950E948C1E0C945F2B1F920F920FB66D -:104920000F9211248F939F93AF93BF93809169024D -:10493000811113C080916A0290916B02A0916C0268 -:10494000B0916D024196A11DB11D80936A029093B2 -:104950006B02A0936C02B0936D02BF91AF919F91D7 -:104960008F910F900FBE0F901F90189582E084BD1D -:1049700093E095BD9AEF97BD80936E0008958FB731 -:10498000F89440916A0250916B0260916C027091B0 -:104990006D028FBFCA010895CF92DF92EF92FF920E -:1049A0000F931F932FB7F89440916A0250916B02B6 -:1049B00060916C0270916D022FBF6A017B01EE2441 -:1049C000FF248C0120E030E0C016D106E206F30699 -:1049D00020F09A01281B390B05C09C0120953095C9 -:1049E000240F351FC9011F910F91FF90EF90DF90A9 -:1049F000CF9008951F920F920FB60F9211248F93AC -:104A00009F93AF93BF9380916A0290916B02A091A4 -:104A10006C02B0916D020196A11DB11D80936A02D6 -:104A200090936B02A0936C02B0936D02BF91AF9113 -:104A30009F918F910F900FBE0F901F9018950E941D -:104A4000A111F8942FEF87EA91E621508040904021 -:104A5000E1F700C0000087E090EBDC018093780371 -:104A600090937903A0937A03B0937B032CE088E1C1 -:104A700090E00FB6F894A895809360000FBE209345 -:104A80006000FFCFCF92DF92EF92FF920F931F93C0 -:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 -:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 -:104AB000331F0A94E2F72E213F21232B29F421965C -:104AC000CC30D10589F708C06C2F7D2D80E00E9485 -:104AD000BB03C812F4CF06C0D39484E0D812DECF53 -:104AE00080E001C081E0DF91CF911F910F91FF9095 -:104AF000EF90DF90CF900895CF93C82F8CE20E9463 -:104B00004225882321F08C2FCF910C94422580E000 -:104B1000CF910895CF930E94CD26811102C00E94AB -:104B2000AE26C5E608C00E947E068FE39CE9019789 -:104B3000F1F700C00000C150B1F789E20E947C2566 -:104B400081110AC18AE20E947C2581110E94AE2651 -:104B500085E00E947C2581110E941F250E94D82695 -:104B60008093680287E00E947C25882399F18BE17D -:104B70000E947C25882351F09091680291FB882740 -:104B800080F921E0822780FB91F922C08EE00E940B -:104B90007C25882351F09091680292FB882780F948 -:104BA00021E0822780FB92F913C080E10E947C25DE -:104BB00090916802882341F093FB882780F921E0D7 -:104BC000822780FB93F904C0892F809580FB90F9A0 -:104BD00090936802809168020E94DC260E94EA2677 -:104BE00080937B0280EE0E947C25882341F0809197 -:104BF0007B02982F909590FB80F980937B0289E34C -:104C00000E947C25882359F090917B0291FB882794 -:104C100080F921E0822780FB91F990937B0282EE5C -:104C20000E947C25882359F090917B0292FB882773 -:104C300080F921E0822780FB92F990937B0286EE37 -:104C40000E947C25882359F090917B0293FB882752 -:104C500080F921E0822780FB93F990937B0283EE19 -:104C60000E947C25882359F090917B0294FB882731 -:104C700080F921E0822780FB94F990937B0285E301 -:104C80000E947C25882359F090917B0295FB882710 -:104C900080F921E0822780FB95F990937B0281E3E4 -:104CA0000E947C25882359F090917B0296FB8827EF -:104CB00080F921E0822780FB96F990937B0281E1C5 -:104CC0000E947C25882359F090917B0297FB8827CE -:104CD00080F921E0822780FB97F990937B028091F5 -:104CE0007B020E94EE2687E20E947C25C82F8EE17F -:104CF0000E947C258111C2608FE10E947C25811178 -:104D0000C46080E20E947C258111C86081E20E941B -:104D10007C258111C06182E20E947C258111C062E4 -:104D200083E20E947C258111C06484E20E947C257C -:104D3000882311F0C06802C0CC2329F08C2F0E9478 -:104D4000E5266C2F03C00E94E126682F70E080E00A -:104D500090E0CF910C949122CF9108956DEE7EEF6B -:104D600080E090E00E94BA2F60E082E090E00E9434 -:104D7000AC2F60E083E090E00E94AC2F60E084E024 -:104D800090E00E94AC2F60E085E090E00E94AC2FA4 -:104D900060E086E090E00C94AC2F80E090E00E9410 -:104DA000A62F21E08D3E9E4F09F020E0822F08952E -:104DB00082E090E00C949E2F682F82E090E00C94AB -:104DC000AC2F83E090E00C949E2F682F83E090E05E -:104DD0000C94AC2F84E090E00C949E2F682F84E01C -:104DE00090E00C94AC2F86E090E00C949E2F682FFE -:104DF00086E090E00C94AC2F8091760280FF0BC08F -:104E00006091200185E0689FB00111247595679538 -:104E1000759567952AC081FF09C06091200185E0E2 -:104E2000689FB0011124759567951FC082FF07C068 -:104E30006091200185E0689FB001112416C0409167 -:104E400070024423C9F060911F01461788F7209132 -:104E5000200185E0289F90011124429FC001439FBB -:104E6000900D112470E00E948A2F6038710540F483 -:104E70006115710539F002C065E070E0862F089574 -:104E80008FE7089581E008958091760280FF08C041 -:104E900060911E0170E0759567957595679521C0C5 -:104EA00081FF06C060911E0170E07595679519C07D -:104EB00082FF04C060911E0170E010C080917002FA -:104EC0008823C1F060911D018617A0F790911E0103 -:104ED000989FC001112470E00E948A2F60387105EC -:104EE00028F46115710521F0862F08958FE7089544 -:104EF00081E0089561E070E0F4CF803F21F40E94EA -:104F0000FC26819504C0813F29F40E94FC268093F1 -:104F100073020895823F21F40E94FC26819504C00B -:104F2000833F29F40E94FC26809372020895893FF2 -:104F300019F40E94442705C08A3F31F40E94442797 -:104F400081958093740208958B3F21F40E94442739 -:104F5000819504C08C3F29F40E94442780937502F8 -:104F60000895843F21F480917102816017C0853FCC -:104F700021F480917102826011C0863F21F48091FA -:104F8000710284600BC0873F21F4809171028860B8 -:104F900005C0883F31F48091710280618093710275 -:104FA00008958D3F21F48091760281600BC08E3F81 -:104FB00021F480917602826005C08F3F29F48091B0 -:104FC00076028460809376020895803F29F4809170 -:104FD000730287FF6EC007C0813F41F48091730266 -:104FE00018160CF066C01092730263C090917202A2 -:104FF000823F19F497FF5DC005C0833F31F4191655 -:105000000CF057C01092720254C0893F31F4809165 -:10501000740218160CF04DC006C08A3F39F4809116 -:10502000740287FF46C01092740243C08B3F29F47C -:105030008091750287FF3DC006C08C3F39F4809196 -:1050400075021816B4F51092750233C0843F21F42E -:10505000809171028E7F05C0853F31F4809171028D -:105060008D7F8093710225C0863F21F4809171026B -:105070008B7FF7CF873F21F480917102877FF1CF3B -:10508000883F21F4809171028F7EEBCF8D3F21F418 -:10509000809176028E7F0BC08E3F21F48091760244 -:1050A0008D7F05C08F3F29F4809176028B7F80939E -:1050B00076028091720281110EC08091730281117B -:1050C0000AC080917402811106C08091750281111D -:1050D00002C010927002089581E792E00E94751854 -:1050E0000E94BF2490936F0280936E020895CF9325 -:1050F00080916E0290916F020E94CC2440917002C8 -:10510000442321F02091210130E006C020912201AA -:105110005AE0259F900111248217930708F486C056 -:105120008091720281110DC090917302911109C09A -:1051300090917402911105C090917502992309F420 -:1051400075C04F3F19F04F5F40937002181624F45A -:105150000E94FC26809372028091720287FF05C034 -:105160000E94FC268195809372028091730218162A -:1051700024F40E94FC26809373028091730287FFBF -:1051800005C00E94FC268195809373026091720293 -:10519000662339F1C0917302CC2319F1772767FD9B -:1051A0007095872F972F0E94FA2C23E333E343E374 -:1051B0005FE30E94AE2D0E94C72C609372026C2F99 -:1051C000772767FD7095872F972F0E94FA2C23E38E -:1051D00033E343E35FE30E94AE2D0E94C72C60934C -:1051E000730280917402181624F40E94442780935D -:1051F00074028091740287FF05C00E944427819544 -:105200008093740280917502181624F40E9444273A -:10521000809375028091750287FF05C00E94442724 -:10522000819580937502CF910C946C28CF9108954D -:10523000E1E7F2E085E0DF011D928A95E9F710923F -:105240007002109276020895833089F130F4813033 -:1052500061F0823009F06EC019C0853009F449C090 -:10526000B8F1863009F066C055C020912201862F22 -:1052700090E0820F911D8F3F910520F4620F6093A3 -:10528000220108958FEF809322010895209121013A -:10529000862F90E0820F911D8F3F910520F4620FC1 -:1052A0006093210108958FEF80932101089520914B -:1052B0002001862F90E0820F911D8F3F910520F4F1 -:1052C000620F6093200108958FEF8093200108956D -:1052D00020911F01862F90E0820F911D8F3F910535 -:1052E00020F4620F60931F0108958FEF80931F01D8 -:1052F000089520911E01862F90E0820F911D8F3F0F -:10530000910520F4620F60931E0108958FEF809342 -:105310001E01089520911D01862F90E0820F911D9E -:105320008F3F910520F4620F60931D0108958FEF68 -:1053300080931D010895833021F130F4813059F0BC -:10534000823009F049C012C0853089F128F18630D9 -:1053500009F042C037C080912201681720F4861BF3 -:1053600080932201089510922201089580912101D5 -:10537000681720F4861B8093210108951092210163 -:10538000089580912001681720F4861B80932001E6 -:10539000089510922001089580911F01681720F44C -:1053A000861B80931F01089510921F01089580911C -:1053B0001E01681720F4861B80931E010895109229 -:1053C0001E01089580911D01681720F4861B8093AB -:1053D0001D01089510921D01089541E050E060E024 -:1053E00070E004C0440F551F661F771F8A95D2F7DF -:1053F000CB01BA010E9491220C948C1E873208F5D1 -:105400008E3108F0B9C08E3009F47EC060F4873068 -:1054100009F465C018F4863059F549C0883051F157 -:105420008B3031F5AEC0883130F4863108F0A9C038 -:105430008031F1F473C0893109F4A3C08B31C1F418 -:1054400059C08933F1F068F4893209F493C018F433 -:10545000873271F48FC0853309F48CC0883341F4EE -:1054600090C0863409F46BC008F488C0883449F1D0 -:1054700080E008950E94D8260E94EA260E94F32622 -:1054800080C00E945918892B59F00E945918909396 -:105490007902809378020E948C1E80E090E004C024 -:1054A00080917802909179020E9454186AC080918C -:1054B0006802817F8E7F8093680281E0809377020B -:1054C00008950E948C1E2FEF83ED90E321508040C1 -:1054D0009040E1F700C000000E941F2552C080915B -:1054E000680280FF03C0817F8E7F01C0816080934E -:1054F000680247C09091680291FB882780F921E0FB -:10550000822780FB91F913C09091680292FB882753 -:1055100080F921E0822780FB92F909C0909168020E -:1055200093FB882780F921E0822780FB93F99093F1 -:105530006802882331F191609093680222C081E86B -:1055400090E00E9480182FEF81EE94E0215080407F -:105550009040E1F700C0000080E090E00E948018D9 -:105560002FEF89E698E1215080409040E1F700C09C -:10557000000007C080E003C08D5101C089530E9424 -:10558000ED2981E0089580E0089580E00895CF93AB -:10559000C82F80917702813071F020F0823009F0BD -:1055A00083C037C0A0911B01B0911C018C91823245 -:1055B00009F07CC007C0A0911B01B0911C018C9127 -:1055C000823249F48C2F0E94C32A81111EC08C2F75 -:1055D0000E94FE291CC08C2F0E94C52A811115C073 -:1055E000C43169F030F4CB3081F0C03109F062C0D1 -:1055F00009C0C93221F0C83309F05CC006C010925E -:10560000770258C082E08093770281E090E0817059 -:1056100054C0C932C1F060F4C431A9F020F4C730DD -:1056200009F046C02EC0CE51CA3008F041C011C0AA -:10563000CE3409F118F4CB34D9F517C0C13599F03F -:10564000C235B1F50EC010927A0281E080937702E4 -:1056500034C0EC2FF0E0E455FE4F808180937A0255 -:1056600027C061E003C061E007C06AE080917A0270 -:105670000E9424291DC06AE080917A020E949B2921 -:1056800017C08EE18093220182E3809321018AE09A -:105690008093200184E180931F0188E080931E01A4 -:1056A00088E280931D0104C01092770280E005C05B -:1056B00081E003C080E090E0AACFCF9108950E94DE -:1056C000CD26811102C00E94AE260E94F32680934F -:1056D000770380FF02C0869501C080E00C94DF074D -:1056E00080917703982F9695292F30E0233031054C -:1056F0004CF49F5F990F8170892B816080937703B1 -:105700000E94F7268091770386950C94DF0780919D -:105710007703982F969591F09158990F8170892B66 -:10572000809377038E7F91E009F490E08091770376 -:1057300090FB80F9809377030E94F726809177038E -:1057400086950C94DF0780917703982F909590FBB6 -:1057500080F9809377030E94F7268091770380FF7A -:1057600002C0869501C080E00C94DF07309177037A -:10577000232F26952F5F2F77822F90E0317004978B -:105780002CF4220F232B2093770302C0309377034E -:1057900080917703282F2E7F91E009F490E090FB11 -:1057A00080F9809377030E94F7268091770386958E -:1057B0000C94DF0720917703922F96959827990FE5 -:1057C000822F8170892B809377038E7F91E009F47B -:1057D00090E08091770390FB80F9809377030E949B -:1057E000F7268091770386950C94DF075058BB27E6 -:1057F000AA270ED075C166D130F06BD120F031F4FC -:105800009F3F11F41EF45BC10EF4E095E7FB51C11C -:10581000E92F77D180F3BA176207730784079507DA -:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F -:10583000A02D0B01B90190010C01CA01A001112496 -:10584000FF27591B99F0593F50F4503E68F11A1642 -:10585000F040A22F232F342F4427585FF3CF4695D3 -:1058600037952795A795F0405395C9F77EF41F16F5 -:10587000BA0B620B730B840BBAF09150A1F0FF0FBF -:10588000BB1F661F771F881FC2F70EC0BA0F621FAB -:10589000731F841F48F4879577956795B795F7959B -:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D -:1058B000979587950895D9D008F481E008950CD084 -:1058C0000FC107D140F0FED030F021F45F3F19F056 -:1058D000F0C0511139C1F3C014D198F39923C9F321 -:1058E0005523B1F3951B550BBB27AA2762177307E6 -:1058F000840738F09F5F5F4F220F331F441FAA1F9A -:10590000A9F333D00E2E3AF0E0E830D09150504059 -:10591000E695001CCAF729D0FE2F27D0660F771F07 -:10592000881FBB1F261737074807AB07B0E809F0E9 -:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E -:10594000510568F0B6C000C15F3FECF3983EDCF350 -:10595000869577956795B795F7959F5FC9F7880FF7 -:10596000911D9695879597F90895E1E0660F771F49 -:10597000881FBB1F621773078407BA0720F0621BDA -:10598000730B840BBA0BEE1F88F7E095089504D0D3 -:105990006894B111D9C00895BCD088F09F5790F099 -:1059A000B92F9927B751A0F0D1F0660F771F881F44 -:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F -:1059C000B1E00895C0C0672F782F8827B85F39F0FD -:1059D000B93FCCF3869577956795B395D9F73EF4A3 -:1059E00090958095709561957F4F8F4F9F4F08954B -:1059F000E89409C097FB3EF4909580957095619569 -:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E -:105A10009395F695879577956795B795F111F8CF9A -:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 -:105A30009F4F16C0882311F096E911C0772321F0FB -:105A40009EE8872F762F05C0662371F096E8862F93 -:105A500070E060E02AF09A95660F771F881FDAF7EA -:105A6000880F9695879597F90895990F0008550F17 -:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 -:105A800012161306E407F50798F0621B730B840BDC -:105A9000950B39F40A2661F0232B242B252B21F4B6 -:105AA00008950A2609F4A140A6958FEF811D811D56 -:105AB000089597F99F6780E870E060E008959FEF90 -:105AC00080EC089500240A94161617061806090695 -:105AD000089500240A941216130614060506089564 -:105AE000092E0394000C11F4882352F0BB0F40F4EC -:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C -:105B0000089557FD9058440F551F59F05F3F71F0AD -:105B10004795880F97FB991F61F09F3F79F0879514 -:105B20000895121613061406551FF2CF4695F1DF9D -:105B300008C0161617061806991FF1CF869571052D -:105B4000610508940895E894BB2766277727CB0161 -:105B500097F908958ADF08F48FEF08950BD0C0CF2E -:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 -:105B70001124EACFC6DFA0F3959FD1F3950F50E033 -:105B8000551F629FF001729FBB27F00DB11D639FEF -:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 -:105BA000661F829F2227B00DA11D621F739FB00D3B -:105BB000A11D621F839FA00D611D221F749F3327AB -:105BC000A00D611D231F849F600D211D822F762F44 -:105BD0006A2F11249F5750408AF0E1F088234AF041 -:105BE000EE0FFF1FBB1F661F771F881F915050408D -:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 -:105C0000983EDCF3869577956795B795F795E79578 -:105C10009F5FC1F7FE2B880F911D9695879597F989 -:105C20000895FA01EE0FFF1F30962105310599F115 -:105C30006115710561F48038BFE39B0749F16894F1 -:105C40009038810561F08038BFEF9B0741F09923C0 -:105C500042F5FF3FE1053105210511F1E894089473 -:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 -:105C700010C0FF5F70F4A695E0F7F73950F019F007 -:105C8000FF3A38F49F779F930CD00F9007FC905801 -:105C900008953EF014CF60E070E080E89FE308953F -:105CA0004FE79F775F934F933F932F939ED02F9112 -:105CB0003F914F915F9152DF05C019F40EF0F9CE7C -:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 -:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E -:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D -:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 -:105D0000FE57E0684427EE0F441FFA95E1F74195EE -:105D1000550B32D00F9007FE26C00895DF93CF9326 -:105D20001F930F93FF92EF92DF927B018C01689497 -:105D300005C0DA2EEF011EDFFE01E894A591259142 -:105D4000359145915591AEF3EF0162DDFE0197016A -:105D5000A801DA9479F7DF90EF90FF900F911F91EF -:105D6000CF91DF9108959B01AC0160E070E080E885 -:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A -:105D8000940F511DBBF39150504094F059F088236B -:105D900032F0660F771F881F91505040C1F79E3F29 -:105DA000510544F7880F911D9695879597F90895A9 -:105DB0005F3FACF0983E9CF0BB2786957795679542 -:105DC000B79508F4B1609395C1F7BB0F58F711F47C -:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 -:105DE0000EF076C06CCE689464CE93DEC8F399232F -:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 -:105E0000DD2788232AF02197660F771F881FDAF78E -:105E100020E030E040E85FEB9FE3883920F0803EEF -:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 -:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 -:105E400071097595771F880B990BD4DD28E132E72E -:105E500041E35FE38FDEAF2D9801AE01FF900F911C -:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 -:105E7000BB1F9B01AC01BF5728F4222733274427BF -:105E800050781FC0B75188F4AB2F00244695379542 -:105E90002795011CA395D2F3002069F0220F331F30 -:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 -:105EB0008A07B94630F49B01AC016627772788270B -:105EC0009078309621F02083318342835383089564 -:105ED0009F3F31F0915020F4879577956795B7955E -:105EE000880F911D9695879597F90895AA1BBB1B5E -:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA -:105F0000B70B881F991F5A95A9F780959095BC01EA -:105F1000CD01089597FB072E16F4009407D077FD66 -:105F200009D00E94762F07FC05D03EF4909581950C -:105F30009F4F0895709561957F4F0895F999FECF11 -:105F400092BD81BDF89A992780B50895A8E1B0E087 -:105F500042E050E00C94C12F262FF999FECF1FBAD2 -:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 -:105F7000019608950E94AC2F272F0C94AD2FDC01C1 -:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 -:105F9000319600B40D9241505040B8F70895F894EE -:025FA000FFCF31 -:105FA2000507000C058540000001064000000100C5 -:105FB200D80B680C440C0F0CDB0B01600228081490 -:105FC2000A321E40004500250026006100600020C4 -:105FD2000037006400650066006700440046002444 -:105FE2000047000000020004000500070009000B42 -:105FF200000C000E0010001100130015001700180D -:10600200001A001C001D001F00210023002400268E -:1060120000280029002B002D002F00300032003410 -:10602200003500370039003B008803A103BA03D3CF -:1060320003FB04AE04780458043F4D3620020302E9 -:10604200000001000101010101000101010203043C -:0660520005060708090025 -:00000001FF diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex deleted file mode 100644 index 603693bff..000000000 --- a/keyboard/preonic/preonic_music.hex +++ /dev/null @@ -1,1713 +0,0 @@ -:100000000C9410030C9454030C9454030C94540358 -:100010000C9454030C9454030C9454030C94540304 -:100020000C9454030C9454030C9410170C94E21782 -:100030000C94BD290C9454030C9454030C94540355 -:100040000C9454030C9454030C9454030C945403D4 -:100050000C9454030C942A2A0C9454030C945403C7 -:100060000C9454030C9454030C9454030C945403B4 -:100070000C9454030C9454030C9454030C945403A4 -:100080000C94440E0C9454030C9454030C94540399 -:100090000C9454030C9454030C9454030C94540384 -:1000A0000C9454030C9454030C9454030763423689 -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE00006000600060006000608C -:10039000006000600060006000600060006000605D -:1003A000006000600060006000600060006000604D -:1003B000006000600060006000600060006000603D -:1003C000006000600060006000600060006000602D -:1003D000006000600060006000600060006000601D -:1003E00000600060006000300100010001000100B9 -:1003F00001000100010000600060006000602A034D -:1004000054006800650020005000720065006F0015 -:100410006E006900630020004B00650079006200F7 -:100420006F0061007200640000002C034F00720036 -:10043000740068006F006C0069006E006500610068 -:10044000720020004B006500790062006F006100BF -:100450007200640073000000040309040902D00064 -:10046000060100A0FA0904000001030101000921AE -:1004700011010001223F000705810308000A090459 -:1004800001000103010200092111010001224D00B8 -:100490000705820308000A090402000103000000A6 -:1004A0000921110100012236000705830308000A13 -:1004B00009040300020300000009211101000122C8 -:1004C0002000070584032000010705040320000124 -:1004D00009040400000101000009240100010900D1 -:1004E00001050904050002010300000724010001C1 -:1004F0004100062402010100062402020200092430 -:1005000003010301020100092403020401010100A7 -:100510000905060240000500000525010101090545 -:1005200085024000050000052501010312011001AC -:1005300000000008EDFE61600100010200010631CB -:10054000FF0974A1010975150025FF952075088123 -:10055000020976150025FF952075089102C0050156 -:100560000980A101850216010026B7001A01002AA0 -:10057000B700751095018100C0050C0901A1018526 -:1005800003160100269C021A01002A9C0275109590 -:10059000018100C005010902A1010901A1000509AD -:1005A000190129051500250195057501810295019F -:1005B000750381010501093009311581257F9502F7 -:1005C0007508810609381581257F95017508810612 -:1005D000050C0A38021581257F950175088106C032 -:1005E000C005010906A101050719E029E715002545 -:1005F00001950875018102950175088101050819A9 -:100600000129059505750191029501750391010573 -:1006100007190029FF150025FF950675088100C000 -:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C -:1006300024C08091050490910604A0910704B09114 -:1006400008048730904BA740B04BB9F410920504D2 -:1006500010920604109207041092080414BE84B786 -:10066000877F84BF88E10FB6F89480936000109272 -:1006700060000FBEE0E0F8E3099512E0A0E0B1E011 -:10068000E6ECF9E602C005900D92A832B107D9F761 -:1006900014E0A8E2B2E001C01D92A530B107E1F775 -:1006A0000E94C8130C94E1340C94000061111DC029 -:1006B000FC018281882351F085EE0E94901E0E94E9 -:1006C000BC3080E290E0A0E0B0E007C085EE0E9480 -:1006D000581F81E090E0A0E0B0E08093E1029093A9 -:1006E000E202A093E302B093E40280E090E0089578 -:1006F0000E94370E40E050E069E070E080E091E059 -:100700000C94880F08950E948B036E9A769A0C942D -:1007100078030C948203279A2F988FEF9FEF909382 -:100720008700809386008AE08093800089E180932F -:1007300081000C94653081110BC080918000877F0F -:100740008093800010928D0010928C002F98089555 -:100750002F98833041F480918000886080938000DE -:100760008FEF9FEF12C0909180009860909380006F -:1007700023E030E0281B3109220F331F8FEF9FEF5A -:1007800002C0969587952A95E2F790938D00809305 -:100790008C0008958B3B910568F4883A910530F5FB -:1007A000853A9105C0F48430910598F4019709F0D9 -:1007B0006FC071C0803E910508F46AC0883E910503 -:1007C00040F09C01205F31092031310508F060C004 -:1007D0005CC09C01A1C0853A910509F45FC0863ACE -:1007E000910509F45EC023E830E496C0883A91058B -:1007F00009F45AC0893A910509F459C08A3A910519 -:1008000009F458C08B3A910509F457C08C3A910508 -:1008100009F456C08D3A910509F455C0803B910505 -:1008200009F454C08E3A910509F453C08F3A9105EA -:1008300009F452C0813B910509F451C0823B9105F6 -:1008400009F450C0833B910509F44FC0843B9105E6 -:1008500009F44EC0853B910509F44DC0863B9105D6 -:1008600009F44CC0873B910509F44BC0883B9105C6 -:1008700009F44AC0893B910509F449C08A3B9105B6 -:1008800009F048C02AE236E447C09C01306544C004 -:1008900020E030E041C021E030E03EC021E830E41B -:1008A0003BC022E830E438C022EE34E435C029EE03 -:1008B00034E432C02AEE34E42FC025EB34E42CC0FB -:1008C00026EB34E429C027EB34E426C02CEC34E4D6 -:1008D00023C02DEC34E420C023E835E41DC02AE811 -:1008E00035E41AC022E935E417C024E935E414C020 -:1008F00021E236E411C023E236E40EC024E236E4FD -:100900000BC025E236E408C026E236E405C027E243 -:1009100036E402C020E034E4C90108959CE0799FE8 -:10092000F00111249CE3899FE00DF11D1124E60FD5 -:10093000F11DEE0FFF1FE25DFE4F25913491C901BD -:100940000895880F991F82559040FC01259134919C -:10095000C9010895880F991F825D9E4FFC01259162 -:100960003491C90108950E948E049C019A958115C5 -:100970009F4110F4C9010895C90190528115904119 -:1009800028F4C9019F700E94AA040895C9019053D8 -:100990008115904120F4C9019927906C0895C901EF -:1009A0009054409728F4C9018F709927946D089549 -:1009B000203180E4380719F480E091ED0895213169 -:1009C00090E4390719F480E090ED0895223140E475 -:1009D000340719F480E092ED0895233180E438075C -:1009E00019F480E093ED0895211590E53907A1F4FD -:1009F0000E948B2340E065E088E491E00E94880F2C -:100A00002FEF44E38CE0215040408040E1F700C0EC -:100A100000000E944F2A1EC1213090E5390731F4B1 -:100A20008091F10281608093F10214C1C901905557 -:100A30008115904108F062C0432F55274F7055270C -:100A400041305105F9F4C90174E0880F991F7A9576 -:100A5000E1F788279370B901E3E0660F771FEA9505 -:100A6000E1F760767727862B972B9C6823703327D6 -:100A700002C0440F551F2A95E2F74F715527842B6A -:100A8000952B08954230510529F4922F8827816FC4 -:100A9000906A089543305105B9F4C90153E0880FB5 -:100AA000991F5A95E1F7807E97702370332741E0B4 -:100AB00050E002C0440F551F2A95E2F74F715527A9 -:100AC000842B952B9C6808954430510589F5C90104 -:100AD00043E0880F991F4A95E1F7807E9770237055 -:100AE000332741E050E002C0440F551F2A95E2F73A -:100AF0004F715527842B952B9A680895C9019056FC -:100B00008115904118F4C901906F0895C90190575B -:100B10008115904120F4C9019F7090620895C90128 -:100B200090588115904120F4C9019F70906A0895F2 -:100B3000203E3105E0F4203C310568F521333105D4 -:100B400009F475C048F42932310509F46BC02A3222 -:100B5000310509F07BC075C02933310501F1223818 -:100B60003105E9F02533310509F070C051C0233E4D -:100B70003105B1F140F4203E3105D1F0223E31057E -:100B800009F064C01CC0263E310579F1273E3105CD -:100B900009F05CC038C0C9010E94A1040895809189 -:100BA000020380FD02C081FF51C080EE90E04FC083 -:100BB0008091020380FFF9CF89E390E048C08091E3 -:100BC000020382FF0AC08091020384FF03C080E019 -:100BD00090E03DC083EE90E03AC082EE90E037C0F6 -:100BE0008091020382FFEFCFF8CF8091020383FF51 -:100BF00007C08091020384FDEACF87EE90E027C012 -:100C000086EE90E024C08091020383FFF2CFF8CFFC -:100C10008091020385FF03C089E290E018C085E35C -:100C200090E015C08091020385FDF9CFF5CF80914A -:100C3000020386FF03C08AE290E009C081E390E0EE -:100C400006C08091020386FDF9CFF5CFC9010E944D -:100C5000CA030895089508950C942B065F926F922D -:100C60007F928F929F92AF92BF92CF92DF92EF923C -:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1 -:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62 -:100C90004E018BE0880E911C60E070E000E010E0F7 -:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76 -:100CB000622E532E41E050E0E3E9F1E0A62DB52D80 -:100CC000872D01900D928A95E1F7F901819191911B -:100CD0009F01FC01E07FFF27E032F10559F48F709E -:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C -:100CF000BF2A37C0E033F10559F48F709927FA0104 -:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024 -:100D1000E034F10559F48F709927FA0102C0EE0F03 -:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586 -:100D300059F48F709927FA0102C0EE0FFF1F8A95B0 -:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A -:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A -:100D60007F2B2815390509F0A7CF94B18A2D8095DE -:100D7000892384B985B18A2985B997B18C2D80954D -:100D8000892387B988B18C2988B99AB18E2D80952D -:100D900089238AB98BB18E298BB99DB1802F80951B -:100DA00089238DB98EB1802B8EB990B3862F809513 -:100DB000892380BB81B3862B81BB2A960FB6F8941A -:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E -:100DD000EF90DF90CF90BF90AF909F908F907F90DB -:100DE0006F905F9008955F926F927F928F929F9223 -:100DF000AF92BF92CF92DF92EF92FF920F931F9329 -:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08 -:100E10000FBECDBF85B7806885BF85B7806885BFA9 -:100E20000E942E069E012F5F3F4F4E0189E1880EE2 -:100E3000911C60E070E000E010E0E12CF12CC12C8E -:100E4000D12CA12CB12C98E1792E622E532E41E0A9 -:100E500050E0EDE9F1E0A62DB52D872D01900D9222 -:100E60008A95E1F7F901819191919F01FC01E07F61 -:100E7000FF27E032F10559F48F709927FA0102C07B -:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384 -:100E9000F10559F48F709927FA0102C0EE0FFF1F78 -:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409 -:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3 -:100EC000EE2AFF2A1BC0E035F10559F48F709927EF -:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF -:100EE0000DC0E036F10551F48F709927FA0102C068 -:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521 -:100F000009F0A7CF94B18A2D8095892384B985B142 -:100F10008A2985B997B18C2D8095892387B988B1A5 -:100F20008C2988B99AB18E2D809589238AB98BB185 -:100F30008E298BB99DB1802F809589238DB98EB173 -:100F4000802B8EB990B3862F8095892380BB81B387 -:100F5000862B81BB10922902109228021092330234 -:100F60001092320210922B0210922A021092350235 -:100F70001092340210922D0210922C02109237021D -:100F80001092360210922F0210922E021092390205 -:100F900010923802109231021092300210923B02ED -:100FA00010923A0268960FB6F894DEBF0FBECDBF1E -:100FB000DF91CF911F910F91FF90EF90DF90CF9035 -:100FC000BF90AF909F908F907F906F905F900C94A8 -:100FD00083035F926F927F928F929F92AF92BF92A4 -:100FE000CF92DF92EF92FF920F931F93CF93DF93F5 -:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58 -:101000007E0149E1E40EF11C22E3C22E22E0D22E41 -:101010005E0153E2A50EB11C3AE0532E470101E0F8 -:1010200010E048E1642E55E0752EE3E9F1E0D401CB -:10103000852D01900D928A95E1F7F70181919191AB -:101040007F019C01207F33272032310589F424B1B0 -:101050008F709927A80102C0440F551F8A95E2F7A7 -:10106000CA01242B24B995B18095892385B94FC035 -:101070002033310589F427B18F709927F80102C018 -:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB -:101090008095892388B93BC02034310589F42AB171 -:1010A0008F709927A80102C0440F551F8A95E2F757 -:1010B000CA01242B2AB99BB1809589238BB927C0FB -:1010C0002035310589F42DB18F709927F80102C0C0 -:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F -:1010E000809589238EB913C02036310581F420B351 -:1010F0008F709927A80102C0440F551F8A95E2F707 -:10110000CA01242B20BB91B38095892381BB50EA6F -:101110005A95F1F7BE016F5F7F4F80E090E020E0CD -:1011200030E0EDE9F1E0DE011196462D01900D92DF -:101130004A95E1F7FB0141915191BF01FA01E07F2E -:10114000FF27E032F10511F4E3B113C0E033F105FC -:1011500011F4E6B10EC0E034F10511F4E9B109C0B3 -:10116000E035F10511F4ECB104C0E036F105B9F455 -:10117000EFB1F0E04F70552702C0F595E7954A951D -:10118000E2F7E0FD08C0A801022E02C0440F551F7F -:101190000A94E2F702C040E050E0842B952B2F5FC9 -:1011A0003F4F2C30310509F0BCCFF6012081318151 -:1011B0002817390721F091838083709270010E9473 -:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D -:1011D000809170018823A1F1815080937001882350 -:1011E00039F08FE99FE00197F1F700C0000028C0B7 -:1011F00080913202909133029093290280932802C9 -:10120000809134029091350290932B0280932A02B0 -:10121000809136029091370290932D0280932C0298 -:10122000809138029091390290932F0280932E0280 -:1012300080913A0290913B02909331028093300268 -:101240000E94890381E0A2960FB6F894DEBF0FBE1C -:10125000CDBFDF91CF911F910F91FF90EF90DF9065 -:10126000CF90BF90AF909F908F907F906F905F9046 -:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D -:10128000918108950895CF92DF92EF92FF920F938C -:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1 -:1012A000F894DEBF0FBECDBF8C01862F642F88233C -:1012B00079F0F80192812FE7482F992329F084E0F3 -:1012C00093E00E94EC1904C084E093E00E94FC19B2 -:1012D000F80180818B3091F59181943009F0A8C29A -:1012E0009281809173019923B1F08F5F8093730194 -:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7 -:101300009A95E1F7E0917101F0917201EE0FFF1FE4 -:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2 -:10132000BD4F01900D929A95E1F7E0917101F09116 -:101330007201EE0FFF1F21E332E093C08A3009F003 -:10134000CBC0F8019181943009F072C292818091F2 -:101350007301992309F473C081508093730196E45B -:10136000E5EBF1E0DE01A551BE4F01900D929A959B -:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A -:1013800031E02C0F3D1FE20FF31F60817181680F68 -:10139000711D882777FD8095982F0E94003220E0EC -:1013A00030E040E451E40E94653120E030E040E864 -:1013B00050E40E94FD309B01AC0160E070E080E0F1 -:1013C00090E40E94173321E230ED42E053E40E94A2 -:1013D000B4324CE050E00E94E30F20E04BE760E0C5 -:1013E00084E093E00E94DC1920E04BE761E084E0B8 -:1013F00093E00E94DC1920E04BE762E084E093E098 -:101400000E94DC1920E04BE763E084E093E00E9457 -:10141000DC1920E04BE764E084E093E0C454DD4F46 -:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5 -:101430000F91FF90EF90DF90CF900C94DC1996E421 -:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0 -:10145000E1F7E0917101F0917201EE0FFF1F25EAB3 -:1014600031E02C0F3D1FE20FF31F60817181680F87 -:10147000711D882777FD8095982F0E94003220E00B -:1014800030E040E451E40E94653120E030E040E883 -:1014900050E40E94FD309B01AC0160E070E080E010 -:1014A00090E40E94173321E230ED42E053E40E94C1 -:1014B000B4320E94130DC454DD4F0FB6F894DEBF52 -:1014C0000FBECDBFDF91CF911F910F91FF90EF9095 -:1014D000DF90CF900C94E60C893009F0D3C0F8016E -:1014E0009181943009F0A4C19281992309F4A0C19B -:1014F0008091710190917201019690937201809395 -:10150000710120E04BE760E084E093E00E94DC1989 -:1015100020E04BE761E084E093E00E94DC1920E0EA -:101520004BE762E084E093E00E94DC1920E04BE7A7 -:1015300063E084E093E00E94DC1920E04BE764E084 -:1015400084E093E00E94DC190E94E60C00E010E0C9 -:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95 -:10156000BE4F9F2D01900D929A95E1F7E091710188 -:10157000F0917201E00FF11FEE0FFF1F2FE531E038 -:101580002C0F3D1FE20FF31F60817181680F711DE9 -:10159000882777FD8095982F0E94003220E030E068 -:1015A00040E451E40E94653120E030E040E850E43E -:1015B0000E94FD309B01AC0160E070E080E090E4AF -:1015C0000E94173321E230ED42E053E40E94B4322E -:1015D0004CE050E00E94E30F3FEF87EE93E0315084 -:1015E00080409040E1F700C0000080917301E5EB7E -:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE -:10160000E1F7E0917101F0917201E00FF11FEE0F2F -:10161000FF1F29E131E02C0F3D1FE20FF31F608116 -:101620007181680F711D882777FD8095982F0E9422 -:10163000003220E030E040E451E40E94653120E0D7 -:1016400030E040E850E40E94FD309B01AC0160E0D6 -:1016500070E080E090E40E94173321E230ED42E038 -:1016600053E40E94B4320E94130D8FEF9CE7019760 -:10167000F1F700C000000F5F1F4F0830110509F09F -:1016800069CF94C1883009F0D3C0F80191819430BA -:1016900009F0CEC09281992309F4CAC080917101EA -:1016A000909172010197909372018093710120E0F3 -:1016B0004BE760E084E093E00E94DC1920E04BE718 -:1016C00061E084E093E00E94DC1920E04BE762E0F7 -:1016D00084E093E00E94DC1920E04BE763E084E0C3 -:1016E00093E00E94DC1920E04BE764E084E093E0A3 -:1016F0000E94DC190E94E60C00E010E056E4F52E92 -:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB -:1017100001900D929A95E1F7E0917101F0917201BB -:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8 -:10173000E20FF31F60817181680F711D882777FDAB -:101740008095982F0E94003220E030E040E451E480 -:101750000E94653120E030E040E850E40E94FD3016 -:101760009B01AC0160E070E080E090E40E941733E0 -:1017700021E230ED42E053E40E94B4324CE050E00C -:101780000E94E30F3FEF87EE93E03150804090409E -:10179000E1F700C0000080917301E5EBF1E0DE01AC -:1017A000A357BF4F9F2D01900D929A95E1F7E091BD -:1017B0007101F0917201E00FF11FEE0FFF1F2DE894 -:1017C00030E02C0F3D1FE20FF31F60817181680F25 -:1017D000711D882777FD8095982F0E94003220E0A8 -:1017E00030E040E451E40E94653120E030E040E820 -:1017F00050E40E94FD309B01AC0160E070E080E0AD -:1018000090E40E94173321E230ED42E053E40E945D -:10181000B4320E94130D8FEF9CE70197F1F700C0DF -:1018200000000F5F1F4F0830110509F069CFBEC0DF -:10183000F801228190917301222309F45DC026E40E -:10184000E5EBF1E0DE01A95BBF4F01900D922A9517 -:10185000E1F7E0917101F0917201E80FF11DEE0FD7 -:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4 -:101870007181690F711D882777FD8095982F0E94CF -:10188000003220E030E040E451E40E9465316B0119 -:101890007C01F801818165E070E0681B710988278F -:1018A00077FD8095982F0E9400329B01AC01C70103 -:1018B000B6010E94FD309B01AC0160E070E080E069 -:1018C00090E40E94173321E230ED42E053E40E949D -:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91 -:1018E0000FBECDBFDF91CF911F910F91FF90EF9071 -:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE -:10190000119601900D922A95E1F7E0917101F09105 -:101910007201E80FF11DEE0FFF1F21E030E02C0FE8 -:101920003D1FE20FF31F60817181690F711D8827D0 -:1019300077FD8095982F0E94003220E030E040E44F -:1019400051E40E9465316B017C01F801818165E001 -:1019500070E0681B7109882777FD8095982F0E9499 -:1019600000329B01AC01C701B6010E94FD309B0112 -:10197000AC0160E070E080E090E40E94173321E267 -:1019800030ED42E053E40E94B432C454DD4F0FB650 -:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 -:1019A000FF90EF90DF90CF900C94130DC454DD4F57 -:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160 -:1019C0000F91FF90EF90DF90CF90089510928702D3 -:1019D00010928602809171008D7F809371008091BA -:1019E00090008F77809390001092480210924702E7 -:1019F0001092800210928102109282021092830251 -:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8 -:101A100011921192119211921D921D9282E0EE3755 -:101A2000F807B1F708956F927F928F929F92AF92CD -:101A3000BF92CF92DF92EF92FF920F931F93CF93BB -:101A4000DF936B017C010EE712E04CE5A42E42E02F -:101A5000B42EC7E0D0E0A7019601F80192918291DF -:101A6000729162918F010E946131882349F0219720 -:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B -:101A8000F8011082118212821382F50111821082F4 -:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA -:101AA000AA0FBB1FA25BBD4FCE011AC00196448195 -:101AB0005581668177814083518362837383148269 -:101AC00015821682178212962D913C9113971196CA -:101AD0003C932E9313961C921E9212973496129654 -:101AE0008730910519F7C3CF8091860290918702C4 -:101AF000019797FD05C0909387028093860204C0EA -:101B00001092870210928602E0918602F09187027D -:101B10003097C9F4809171008D7F8093710080911E -:101B200090008F7780939000109280021092810233 -:101B3000109282021092830210927F0210927E0213 -:101B40001092470285C03197DF01AA0FBB1FAA0F71 -:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3 -:101B6000FF1FE25BFD4FC081D181609080027090C9 -:101B700081028090820290908302A7019601662DD7 -:101B8000772D882D992D0E94613187FF25C0262D44 -:101B9000372D482D592DC701B6010E94FC3020E099 -:101BA00030E04AEF54E40E9465315B018C012A2D3C -:101BB0003B2D402F512F662D772D882D992D0E947A -:101BC000FD303B014C01A7019601772D992D0E9414 -:101BD0006131181664F72EC0A7019601662D772D86 -:101BE000882D992D0E94B032181634F5A701960160 -:101BF000662D772D882D992D0E94FC3020E030E055 -:101C00004AEF54E40E9465315B018C012A2D3B2D83 -:101C1000402F512F662D772D882D992D0E94FC3055 -:101C20003B014C01A7019601772D992D0E94B032FE -:101C300087FFECCF10924D02C0928002D0928102B9 -:101C4000E0928202F0928302D0937F02C0937E02E0 -:101C5000DF91CF911F910F91FF90EF90DF90CF9088 -:101C6000BF90AF909F908F907F906F9008953E9A15 -:101C7000E1E7F0E080818D7F808382E080939000B7 -:101C80008AE18093910008951F920F920FB60F92F0 -:101C90001124CF92DF92EF92FF922F933F934F93B5 -:101CA0005F936F937F938F939F93AF93BF93CF93E4 -:101CB000DF93EF93FF9380914702882309F479C063 -:101CC00020E030E0A9016091800270918102809152 -:101CD0008202909183020E94B03218160CF069C003 -:101CE00020E030E040E251E46091490270914A0204 -:101CF00080914B0290914C020E94B0321816BCF4B5 -:101D00008091840290918502019660918602709183 -:101D100087020E949C3490938502809384021092E3 -:101D2000490210924A0210924B0210924C02C0914A -:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B -:101D4000DD4F288139814A815B8160E074E284E75C -:101D50009BE40E9465310E94CD317093970060939F -:101D60009600288139814A815B8160E074E284E7D2 -:101D70009BE40E9465310E94CD3175956795709303 -:101D800099006093980020E030E040E85FE36091C4 -:101D9000490270914A0280914B0290914C020E943C -:101DA000FD306093490270934A0280934B029093F6 -:101DB0004C0280914802882309F493C0C0904302EA -:101DC000D0904402E0904502F090460220E030E0DE -:101DD000A901C701B6010E94B0321816F4F4A70198 -:101DE000960160E074E284E79BE40E9465310E9402 -:101DF000CD317093970060939600A701960160E043 -:101E000074E284E79BE40E9465310E94CD317595B0 -:101E10006795709399006093980060913D0270916E -:101E20003E026F5F7F4F70933E0260933D0280E001 -:101E300090E00E94FE3120913F023091400240919B -:101E40004102509142020E94B03287FD4AC0809107 -:101E50003C028F5F80933C029091F1038917A0F0C0 -:101E60008091F603882319F010923C020DC08091F6 -:101E700071008D7F80937100809190008F778093A7 -:101E80009000109248022DC0E091F203F091F3030C -:101E900080913C0298E0899FE00DF11D1124808122 -:101EA0009181A281B3818093430290934402A093D5 -:101EB0004502B093460220E030E040E85EE36481F2 -:101EC0007581868197810E94B43260933F0270933E -:101ED0004002809341029093420210923E0210927F -:101EE0003D02FF91EF91DF91CF91BF91AF919F9113 -:101EF0008F917F916F915F914F913F912F91FF90C3 -:101F0000EF90DF90CF900F900FBE0F901F9018951D -:101F10000F931F93CF93DF9300D0CDB7DEB78C0123 -:101F200080914702882331F04A8369830E94E60C3E -:101F300069814A8181E0809348021093F303009302 -:101F4000F2036093F1034093F6031092490210925A -:101F50004A0210924B0210924C0210923C02F8017D -:101F600040815181628173814093430250934402C6 -:101F7000609345027093460220E030E040E85EE363 -:101F800064817581868197810E94B43260933F029B -:101F900070934002809341029093420210923E025D -:101FA00010923D0280917100826080937100809157 -:101FB00090008068809390000F900F90DF91CF91F8 -:101FC0001F910F9108956F927F928F929F92AF927F -:101FD000BF92CF92DF92EF92FF920F931F93CF9316 -:101FE000DF936B017C01EA018091480281110E941C -:101FF000E60C81E08093470220E030E0A901C701B0 -:10200000B6010E94B03218160CF09AC0609080029F -:1020100070908102809082029090830220E030E0F4 -:10202000A901662D772D882D992D0E94613181118E -:1020300028C0C0928002D0928102E0928202F09287 -:102040008302D0937F02C0937E028091860290919A -:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C -:10206000C082D182E282F382FC01EE0FFF1FE25BAD -:10207000FD4FD183C083019690938702809386029F -:102080005FC0A7019601662D772D882D992D0E949E -:10209000613187FF25C0262D372D482D592DC701C9 -:1020A000B6010E94FC3020E030E04AEF54E40E9488 -:1020B00065315B018C012A2D3B2D402F512F662D60 -:1020C000772D882D992D0E94FD303B014C01A701F1 -:1020D0009601772D992D0E946131181664F7A9CFCA -:1020E000A7019601662D772D882D992D0E94B0327B -:1020F00018160CF09ECFA7019601662D772D882D1E -:10210000992D0E94FC3020E030E04AEF54E40E9418 -:1021100065315B018C012A2D3B2D402F512F662DFF -:10212000772D882D992D0E94FC303B014C01A70191 -:102130009601772D992D0E94B03287FFECCF79CF91 -:10214000809171008260809371008091900080681E -:1021500080939000DF91CF911F910F91FF90EF90AE -:10216000DF90CF90BF90AF909F908F907F906F90B7 -:102170000895809191020895CF93DF9300D01F922C -:10218000CDB7DEB72091FB03243021F523E029836E -:102190009B838A832093E9008FEF06C095ED9A9583 -:1021A000F1F70000882329F09091E800815095FF15 -:1021B000F5CF8091E80085FF0DC040E050E063E07E -:1021C00070E0CE0101960E94A6148091E8008E77FF -:1021D0008093E8000F900F900F90DF91CF910895BA -:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2 -:1021F000243029F522E029839B838A8383E080931E -:10220000E9008FEF06C095ED9A95F1F7000088235D -:1022100029F09091E800815095FFF5CF8091E8007A -:1022200085FF0DC040E050E063E070E0CE01019614 -:102230000E94A6148091E8008E778093E8000F90AA -:102240000F900F90DF91CF9108952091FB032430E0 -:10225000F9F422E02093E9002FEF06C035ED3A951E -:10226000F1F70000222329F03091E800215035FFDA -:10227000F5CF2091E80025FF0BC040E050E065E07D -:1022800070E00E94A6148091E8008E778093E800A9 -:102290000895CF93DF93EC018091FB03843041F5E7 -:1022A00081E08093E9008FEF06C095ED9A95F1F7F4 -:1022B0000000882329F09091E800815095FFF5CF28 -:1022C0008091E80085FF14C040E050E068E070E0D5 -:1022D000CE010E94A6148091E8008E778093E800DA -:1022E00088E0FE01A9E8B2E001900D928A95E1F73D -:1022F000DF91CF910895BF92CF92DF92EF92FF923C -:102300000F931F93CF93DF937C01B62EE90100E07A -:1023100010E0C42ED12C0BC04991202F2B0D2F770C -:102320004F776FE0C7010E94DC190F5F1F4F0C153C -:102330001D0594F3DF91CF911F910F91FF90EF90C6 -:10234000DF90CF90BF90089570E06F5F7F4F6F7008 -:1023500077270C94DC190F931F93CF93C42F63300E -:10236000710509F04AC0842F807F803849F1803997 -:1023700009F043C0622F6F7770E080E090E00E9428 -:10238000003220E030E040E451E40E9465319B01DE -:10239000AC0160E070E080E090E40E9417330F77BA -:1023A00010E023E0159507952A95E1F72DEC3CEC1C -:1023B00042E053E40E94B432A8010E94E30F1DC022 -:1023C000622F6F7770E080E090E00E94003220E0A2 -:1023D00030E040E451E40E9465319B01AC0160E0D3 -:1023E00070E080E090E40E9417332DEC3CEC42E07A -:1023F00053E40E94B4320E94130DCC3F29F4CF91D4 -:102400001F910F910C94E60CCF911F910F9108959D -:102410000F931F93CF93DF93CDB7DEB727970FB6F8 -:10242000F894DEBF0FBECDBF8C0114C08A810E941C -:10243000B6199A819D839B819E839C819F83811184 -:102440001EC089818430B1F08730A1F08630A1F0C0 -:102450008530A1F0BE016F5F7F4F84E791E00E945D -:10246000231D8111E3CF84E791E00E94141D0E9497 -:102470008F190DC083E003C082E001C081E0AE018E -:102480004B5F5F4F682FC8010E94491AE3CF279620 -:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 -:1024A0000F910895EF92FF920F93CF93DF9300D097 -:1024B00000D000D0CDB7DEB77B014A832B830C83DD -:1024C000842F2E834D830E94B6192E814D81811158 -:1024D0001BC082E0E816F10479F083E0E816F1040D -:1024E00021F0EA94EF2821F50BC0073F11F487E0B3 -:1024F00001C084E089830BC0273FD9F786E0FACF7B -:10250000473FB9F785E0F6CF42954F704983BE014A -:102510006F5F7F4F84E791E00E94D91C84E791E0D0 -:102520000E94F71C84E791E00E94141D0E948F19FD -:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8 -:102540000F91FF90EF9008958091FA03811109C0D7 -:102550000E9495160E94F2168091E200846080939A -:10256000E20008951092FA030895089508950C94D6 -:10257000B229809192028F5F8093920262E30E945F -:102580007C34911135C0109292028091930288237D -:1025900079F18091FB03843049F58091E9008F70D7 -:1025A0009091EC0090FF02C090E801C090E0982B61 -:1025B00084E08093E9008091EB0080FF14C080915B -:1025C000EE0087FD03C00FC01092F1008091E8007B -:1025D00085FDFACF8091E80080FF05C08091E8007A -:1025E0008E778093E8009F709093E9001092930299 -:1025F000089542E061EC81E00E940B1642E061EC3C -:1026000082E00E940B1642E061EC83E00E940B1610 -:1026100042E261EC84E00E940B1642E361E885E04F -:102620000E940B1642E360E886E00C940B16809142 -:10263000FD03833009F454C030F4813071F08230EE -:1026400009F0A5C08CC08A3009F479C08B3009F438 -:102650005FC0893009F09BC020C08091FC03813AA3 -:1026600009F095C08091E800877F8093E800809111 -:10267000000490910104892B21F060E080E090E05B -:1026800003C068E089E892E070E00E944415809100 -:10269000E8008B778093E80008958091FC038132F5 -:1026A00009F075C08091000490910104892B09F014 -:1026B0006EC08091E800877F8093E80005C080911C -:1026C000FB03882309F463C08091E80082FFF7CF01 -:1026D0008091F100809391028091E8008B7753C044 -:1026E0008091FC03813A09F052C0809100049091DE -:1026F0000104892B09F04BC08091E800877F80930B -:10270000E8008091E80080FFFCCF80918A0136C00C -:102710008091FC038132D9F58091000490910104ED -:10272000892BA9F58091E800877F8093E8000E94BB -:1027300042168091FE0380938A010C948B23809132 -:10274000FC03813221F58091E800877F8093E800C7 -:102750000E9442168091FF03809388020895809121 -:10276000FC03813AA1F48091E800877F8093E80020 -:102770008091E80080FFFCCF809188028093F10077 -:102780008091E8008E778093E8000C9442160895BB -:1027900084E093E00E94181A62E572E184E093E01D -:1027A0000E946E1A68E072E184E093E00E94721A5F -:1027B00084B7877F84BF88E10FB6F8948093600068 -:1027C000109260000FBE90E080E80FB6F8948093FE -:1027D0006100909361000FBE0E949C1D0E9495169F -:1027E0000E94F2168091E20084608093E200789467 -:1027F0006BEA71E184E093E00E94141A64EA71E1EB -:1028000084E093E00E940C1A6BE771E184E093E0AE -:102810000E94101A0E94370E0E948F190E949E1D5E -:1028200080E891E00E94481D0BC00E946C298091B5 -:10283000F903882329F00E949A2981110E9490149B -:102840008091FB03853089F384E093E00E94211C92 -:102850000E94A81DF5CF292F332723303105B1F071 -:102860004CF42130310509F44DC02230310509F016 -:102870004EC007C02132310541F12232310591F1BC -:1028800046C0E0EDF0E08CE594E045C0992781304A -:10289000910569F08230910589F0892B09F037C0E4 -:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1 -:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082 -:1028C000E491F0E08EEF93E026C0643000F5E62F4F -:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF -:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1 -:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA -:10290000F0E009C0E2E1F0E08CE295E004C0E0E034 -:10291000F0E080E090E0DA018D939C93CF01089580 -:1029200080E189BD82E189BD09B400FEFDCF8091BF -:10293000D8008F7D8093D8008091E00082608093E2 -:10294000E0008091E00081FDFCCF0895BF92CF921E -:10295000DF92EF92FF920F931F93CF93DF937C014F -:102960008B01EA010E946316B82E811133C02097B3 -:1029700031F028813981021B130BE20EF31EC12CAA -:10298000D12C23C08091E80085FD15C08091E8001E -:102990008E778093E800209749F0888199818C0D8B -:1029A0009D1D9983888325E0B22E14C00E94631672 -:1029B000882359F00EC0F70181917F018093F100C7 -:1029C00001501109FFEFCF1ADF0A01151105D1F6E9 -:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9 -:1029E000EF90DF90CF90BF900895BF92CF92DF928B -:1029F000EF92FF920F931F93CF93DF937C018B0194 -:102A0000EA010E946316B82E811133C0209731F07D -:102A100028813981021B130BE20EF31EC12CD12C2D -:102A200023C08091E80085FD15C08091E8008B7778 -:102A30008093E800209749F0888199818C0D9D1D35 -:102A40009983888345E0B42E14C00E9463168823BE -:102A500059F00EC08091F100F70181937F01015080 -:102A60001109FFEFCF1ADF0A01151105D1F601C0D8 -:102A7000B82E8B2DDF91CF911F910F91FF90EF908A -:102A8000DF90CF90BF9008954091020450910304CD -:102A90004617570748F06115710539F44091E80071 -:102AA0004E774093E80001C0BA01FC0140E033C01A -:102AB0008091FB03882309F444C0853009F443C0A6 -:102AC0008091E80083FD41C08091E80082FD33C021 -:102AD0008091E80080FF1FC09091F3008091F20088 -:102AE000392F20E0A901482BCA0106C0419140932B -:102AF000F1006150710901966115710519F0883076 -:102B00009105A0F341E0089709F040E08091E800CA -:102B10008E778093E8006115710551F64111C8CF99 -:102B20000AC08091FB03882361F0853061F08091B9 -:102B3000E80083FD0AC08091E80082FFF2CF80E0C8 -:102B4000089582E0089583E0089581E0089540911A -:102B50000204509103044617570748F061157105A8 -:102B600039F44091E8004E774093E80001C0BA0183 -:102B7000FC0140E034C08091FB03882309F445C088 -:102B8000853009F444C08091E80083FD42C0809103 -:102B9000E80082FD34C08091E80080FF20C0909161 -:102BA000F3008091F200392F20E0A901482BCA01DF -:102BB00007C044914093F10031966150710901962C -:102BC0006115710519F08830910598F341E0089777 -:102BD00009F040E08091E8008E778093E80061156D -:102BE000710549F64111C7CF0AC08091FB038823C4 -:102BF00061F0853061F08091E80083FD0AC080912A -:102C0000E80082FFF2CF80E0089582E0089583E03B -:102C1000089581E00895982F2CC09093E9009817AB -:102C200039F07091EC002091ED005091F00003C05C -:102C3000242F762F50E021FD02C09F5F1AC03091F3 -:102C4000EB003E7F3093EB003091ED003D7F309301 -:102C5000ED003091EB0031603093EB007093EC00AD -:102C60002093ED005093F0002091EE0027FDE5CF7A -:102C700007C0973090F28F708093E90081E008954B -:102C800080E008958091FC0387FD05C08091E800F5 -:102C900080FF0EC012C08091E80082FD05C08091C7 -:102CA000FB038111F8CF08958091E8008B7708C06D -:102CB0008091FB038111EACF08958091E8008E771F -:102CC0008093E80008958091E4009091E50045E646 -:102CD0002091EC0020FD1FC023C02091FB03222384 -:102CE00091F0253091F02091EB0025FD10C020914E -:102CF000E4003091E5002817390751F34150C9012C -:102D000039F784E0089582E0089583E0089581E032 -:102D1000089580E008952091E80020FFDECFF9CFEC -:102D20002091E80022FFD9CFF4CF0E9403170E9420 -:102D30000B17E0EEF0E0808181608083E8EDF0E049 -:102D400080818F77808319BCA7EDB0E08C918E7F56 -:102D50008C9380818F7E80831092FA0308950F9365 -:102D60001F93CF93DF930E9403170E940B17C8EDA8 -:102D7000D0E088818F778883888180688883888184 -:102D80008F7D888319BC1092FB031092F703109279 -:102D9000F9031092F80300EE10E0F80180818B7FB8 -:102DA000808388818160888342E060E080E00E94C7 -:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2 -:102DC000808181608083808188608083F801808138 -:102DD0008E7F8083888180618883DF91CF911F916E -:102DE0000F910895E8EDF0E080818F7E8083E7ED1C -:102DF000F0E080818160808384E082BF81E0809305 -:102E0000FA030C94AF16E8EDF0E080818E7F8083AA -:102E10001092E20008951092DA001092E1000895F5 -:102E20001F920F920FB60F9211242F933F934F933F -:102E30005F936F937F938F939F93AF93BF93EF9322 -:102E4000FF938091E10082FF0BC08091E20082FF3E -:102E500007C08091E1008B7F8093E1000E94B9124E -:102E60008091DA0080FF1FC08091D80080FF1BC0D6 -:102E70008091DA008E7F8093DA008091D90080FF04 -:102E80000DC080E189BD82E189BD09B400FEFDCF9E -:102E900081E08093FB030E94A41205C019BC10922C -:102EA000FB030E94B2128091E10080FF19C0809163 -:102EB000E20080FF15C08091E2008E7F8093E200E7 -:102EC0008091E20080618093E2008091D80080626E -:102ED0008093D80019BC85E08093FB030E94B61252 -:102EE0008091E10084FF30C08091E20084FF2CC01B -:102EF00080E189BD82E189BD09B400FEFDCF8091EA -:102F0000D8008F7D8093D8008091E1008F7E8093E0 -:102F1000E1008091E2008F7E8093E2008091E200E8 -:102F200081608093E2008091F703882311F084E0B0 -:102F300007C08091E30087FF02C083E001C081E009 -:102F40008093FB030E94B7128091E10083FF29C0A8 -:102F50008091E20083FF25C08091E100877F80930C -:102F6000E10082E08093FB031092F7038091E1007F -:102F70008E7F8093E1008091E2008E7F8093E2005B -:102F80008091E20080618093E20042E060E080E0B6 -:102F90000E940B168091F00088608093F0000E94E0 -:102FA000B512FF91EF91BF91AF919F918F917F915A -:102FB0006F915F914F913F912F910F900FBE0F90A6 -:102FC0001F9018951F920F920FB60F9211242F93F6 -:102FD0003F934F935F936F937F938F939F93AF93A1 -:102FE000BF93CF93EF93FF938091E9008F709091FF -:102FF000EC0090FF02C090E801C090E0C92FC82B00 -:103000001092E9008091F000877F8093F00078941F -:103010000E9426181092E9008091F0008860809349 -:10302000F000CF70C093E900FF91EF91CF91BF9175 -:10303000AF919F918F917F916F915F914F913F9150 -:103040002F910F900FBE0F901F9018951F93CF9345 -:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7 -:10306000CDBFECEFF3E08091F100819324E0E430F8 -:10307000F207C9F70E9417138091E80083FF37C158 -:103080008091FC039091FD03953009F488C038F4D9 -:103090009130B1F170F0933009F029C131C098300E -:1030A00009F4F8C0993009F404C1963009F01FC141 -:1030B0009DC0803821F0823809F019C108C0809184 -:1030C000F8039091F903992389F082600FC08091F1 -:1030D0000004909101048F7099278093E9008091FA -:1030E000EB0085FB882780F91092E9009091E800B9 -:1030F000977F9093E8008093F1001092F100D5C083 -:10310000882319F0823009F0F2C08F7121F08230EB -:1031100009F0EDC00BC08091FE03813009F0E7C0DB -:10312000933009F080E08093F9032FC08091FE0373 -:1031300081112BC080910004909101048F70992718 -:10314000009709F4D4C08093E9002091EB0020FFA0 -:103150001CC02091FD03233021F48091EB0080629C -:1031600012C09091EB0090619093EB0021E030E071 -:1031700001C0220F8A95EAF72093EA001092EA0034 -:103180008091EB0088608093EB001092E9008091C1 -:10319000E800877F8093E8000E944216A8C0811152 -:1031A000A6C08091FE039091FF038F779927182F77 -:1031B0009091E3009078982B9093E3008091E80041 -:1031C000877F8093E8000E9442168091E80080FF8C -:1031D000FCCF8091E30080688093E300112311F01D -:1031E00083E001C082E08093FB0381C0805882307D -:1031F00008F07DC08091FE039091FF038C3D23E099 -:10320000920779F583E08A838AE289834FB7F8943D -:10321000DE01139620E03EE051E2E32FF0E0509310 -:103220005700E49120FF03C0E295EF703F5FEF701D -:103230008E2F90E0EA3010F0C79601C0C0968D93B3 -:103240009D932F5F243149F74FBF8091E800877F1E -:103250008093E8006AE270E0CE0101960E94441576 -:1032600013C0AE01455D5F4F609100040E942B14B6 -:103270000097E9F12091E800277F2093E800BC0146 -:103280008BA59CA50E94A7158091E8008B77809361 -:10329000E8002DC0803859F58091E800877F809341 -:1032A000E8008091F7038093F1008091E8008E7729 -:1032B00071CF81111CC09091FE039230C0F48091B7 -:1032C000E800877F8093E8009093F7030E944216FE -:1032D0008091F703811104C08091E30087FF02C051 -:1032E00084E001C081E08093FB030E94F912809189 -:1032F000E80083FF0AC08091E800877F8093E800A0 -:103300008091EB0080628093EB00AC960FB6F8944E -:10331000DEBF0FBECDBFDF91CF911F910895CF9338 -:103320008091FB038823B1F08091E9008F70909128 -:10333000EC0090FF02C090E801C090E0C92FC82BBC -:103340001092E9008091E80083FD0E942618CF705A -:10335000C093E900CF910895881F8827881F08959A -:1033600091E0883F08F490E0892F0895982F907F8E -:10337000903B99F038F4903981F0903A71F09038A0 -:10338000C9F40BC0903DA1F018F4903C99F410C022 -:10339000903E19F0903F71F402C083E00895E82F49 -:1033A000E15FEF3038F4F0E0E15FFD4F8081089598 -:1033B00082E0089580E008950F932F774F776F7024 -:1033C000606BDC01ED91FC91022F242F462F63E00E -:1033D00070E009950F9108950F932F774F776F70D5 -:1033E0006069DC01ED91FC91022F242F462F63E0F0 -:1033F00070E009950F9108950F932F774F776F70B5 -:103400006068DC01ED91FC91022F242F462F63E0D0 -:1034100070E009950F910895FC017383628308950C -:10342000FC01738F628F0895FC01758F648F08957E -:10343000CF93DF93EC011DA21FA21EA2BC01685D09 -:103440007F4F40EC88519F4F0E94551C1B821A826F -:103450001D821C821F821E82198618861B861A8670 -:103460001D861C861F861E86198A188A1B8A1A8A40 -:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10 -:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149 -:103490000895CF92DF92FF920F931F93CF93DF9304 -:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F -:1034B00008C0F60161916F01C80149830E945C1C3C -:1034C00049818C2D841B8F15A0F30F90DF91CF9134 -:1034D0001F910F91FF90DF90CF900895FC017183B1 -:1034E00060830895FC0171A360A30895AF92BF9219 -:1034F000CF92DF92EF92FF920F931F93CF93DF93C0 -:1035000000D01F92CDB7DEB77C016B01142FB22E15 -:10351000A02EDC0195968C9195978430F1F45A9603 -:10352000ED91FC915B97309709F4D8C0CB010197DE -:1035300063E070E00E948834DB01AA0FBB1FA60F76 -:10354000B71F49832A830B834C2D4A1B9E012F5F93 -:103550003F4FBD01C7010995B1C06230710509F443 -:1035600053C06330710529F06130710509F09CC0CA -:1035700083C0842F807F803A01F130F48038B9F025 -:10358000803909F0ABC00DC0803EE9F0803F09F101 -:10359000803B09F0A3C0D7011296ED91FC911397DF -:1035A00023C0D7011496ED91FC9115971DC0D7014A -:1035B0001696ED91FC91179717C0D7011896ED91CB -:1035C000FC91199711C0D7011A96ED91FC911B97A8 -:1035D0000BC0423F09F082C0D7011C96ED91FC91CF -:1035E0001D97309731F47AC0309709F477C0123FB5 -:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C -:103600004B2DC70109955AC0842F807F803D59F00A -:10361000803F79F0803C09F061C0D7011E96ED91A2 -:10362000FC911F9719C0D7015096ED91FC915197CD -:1036300013C0433F31F4D7015296ED91FC9153975B -:1036400008C0413F09F04AC0D7015496ED91FC9162 -:103650005597309741F442C0309709F43FC0133F6B -:1036600011F0113F19F44B2D612F03C0612F6F70C2 -:103670004B2DC701099522C0842F0E94B0198823C1 -:1036800031F0D7015696ED91FC91579707C0163F40 -:1036900029F5D7015896ED91FC9159973097F1F0A3 -:1036A000612FC70109950AC064307105A8F416C0DE -:1036B0000A2D2B2D412FB601C7010995D7015E9622 -:1036C000ED91FC915F97309789F00A2D2B2D412FBA -:1036D000B601C70109950AC0C12CD12CD7015C964F -:1036E000ED91FC915D97309719F7E8CF0F900F900F -:1036F0000F90DF91CF911F910F91FF90EF90DF908E -:10370000CF90BF90AF900895EF92FF920F931F93C9 -:10371000CF93DF93EC01162F862F0E94B0198823D8 -:1037200069F0FDA081E08DA300E020E0412F61E081 -:1037300070E0CE010E94761AFDA27CC0812F0E940B -:10374000AC194DA1882309F440C0443029F01AA3D4 -:1037500021E030E03FA32EA3812F0E94B6198130D3 -:1037600031F070F0823051F0833059F507C08DA3ED -:1037700000E020E0412F61E070E01EC08DA35AC040 -:10378000103F19F0173FE9F404C084E08DA31AA399 -:103790003FC02EA13FA1C90163E070E00E948834C0 -:1037A0008C0F9D1FFC0112A3B9016F5F7F4F7FA398 -:1037B0006EA30CA12BA14AA1CE010E94761A1DA2D4 -:1037C00039C01DA21FA21EA235C0442399F12EA10B -:1037D0003FA1C90163E070E00E9488347C01FE01D2 -:1037E000E80FF91F12A3B9016F5F7F4F7FA36EA38C -:1037F0008130910591F082E0E816F104D9F40CA132 -:103800002BA14AA1CE010E94761A8DA1843091F09D -:1038100081E090E09FA38EA30DC0423059F400E0F8 -:103820002BA14AA1CE010E94761A8DA1843011F0FD -:10383000FFA2EEA2DF91CF911F910F91FF90EF9029 -:103840000895CF92DF92EF92FF920F931F93CF9341 -:10385000DF93EC01E8A1F9A1309709F009958E01F9 -:1038600008511F4FC8010E948E1CE12CF12CC82E5C -:10387000D12C0FC060E0C8010E94A21C682FCE01AD -:103880000E94841B61E0C8010E94B31C8FEFE81AFC -:10389000F80AEC14FD0470F3DF91CF911F910F91A2 -:1038A000FF90EF90DF90CF900895FC0142837483E6 -:1038B00063831182108208950F931F93CF93DF9338 -:1038C000EC01062F0E94D41C182F298130E0C90179 -:1038D00001966A8170E00E949C34488150E0841710 -:1038E000950729F4812F0E94D71C80E012C0EB813C -:1038F000FC81E20FF31F00832981822F90E0019663 -:103900006A8170E00E949C348983812F0E94D71CB9 -:1039100081E0DF91CF911F910F910895CF93DF93B5 -:10392000EC010E94D41C29819881291710F0C22F24 -:1039300002C0CA81C20FC91B0E94D71C8C2FDF9105 -:10394000CF910895FC012081862F90E0820F911D78 -:10395000628170E00E949C340380F481E02DE80FC6 -:10396000F91F808108950F931F93CF93DF931F92C8 -:10397000CDB7DEB78C0169830E94D41C482FF801B3 -:1039800080816981262F30E0280F311D6281C901B5 -:1039900070E00E949C348083842F0F90DF91CF9140 -:1039A0001F910F910C94D71C8FB7F89408958FBF77 -:1039B0000895FC01CB012091FB032430B1F4218157 -:1039C0002F702093E90040E050E064E070E00E9436 -:1039D000A61481110BC09091E80095FD07C090914D -:1039E000E8009E779093E800089582E00895209182 -:1039F000FB032430A9F4FC0181818F708093E900DE -:103A00003091F3002091F200932F80E0822B892BDC -:103A100049F08091E8008E778093E8000C9463165B -:103A200082E0089580E008952091FB03243051F452 -:103A3000FC0121812F702093E9002091E80020FDF6 -:103A40000C94F71C0895FC01CB012091FB0324305A -:103A500011F080E0089526812F702093E9002091D5 -:103A6000E80022FFF6CF2091E80025FFF2CF40E0EA -:103A700050E064E070E00E94F5148091E80085FD5C -:103A800005C08091E8008B778093E80081E008957D -:103A900090939502809394020895E0919402F0919E -:103AA0009502309721F00190F081E02D099480E09B -:103AB0000895E0919402F0919502309721F00280F0 -:103AC000F381E02D09940895E0919402F09195021C -:103AD000309721F00480F581E02D0994089520911C -:103AE0009602309197028217930771F09093970294 -:103AF00080939602E0919402F0919502309721F024 -:103B00000680F781E02D0994089520919802309164 -:103B100099028217930771F090939902809398020B -:103B2000E0919402F0919502309721F00084F185A4 -:103B3000E02D0994089508950C949B1D0E94E62998 -:103B40000E94F3060E94BA2A0C9465300C942C064D -:103B50005F926F927F928F929F92AF92BF92CF921D -:103B6000DF92EF92FF920F931F93CF93DF93CDB726 -:103B7000DEB72A970FB6F894DEBF0FBECDBF0E9406 -:103B8000E9079AE9C92E92E0D92E00E010E0AA24B4 -:103B9000A394B12C502E802F0E9439093C01F601CC -:103BA000E190F1906F01E826F926E114F10431F477 -:103BB0000F5F1F4F0530110569F73AC08091F10280 -:103BC00081FD0E94420920E030E04501022E02C042 -:103BD000880C991C0A94E2F7C4018E219F21892B3D -:103BE00009F12E835F826820792081E0672809F43B -:103BF00080E088870E94EF298160782F9A878987E3 -:103C00004E815F8168858A850E94611EF801EE0FF2 -:103C1000FF1FE656FD4F808191818825992591836C -:103C2000808316C02F5F3F4F2C30310571F6C0CF17 -:103C30008FEF89838A831B820E94EF298160782F0E -:103C40009D838C8349815A816B818D810E94611E85 -:103C50000E94A72D1091A4020E944D1D1817D9F0A3 -:103C60000E944D1D8093A4022A960FB6F894DEBFE1 -:103C70000FBECDBFDF91CF911F910F91FF90EF90BD -:103C8000DF90CF90BF90AF909F908F907F906F907C -:103C90005F900C94A61D2A960FB6F894DEBF0FBE57 -:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB -:103CB000CF90BF90AF909F908F907F906F905F90CC -:103CC0000895CF93DF93CDB7DEB72B970FB6F89457 -:103CD000DEBF0FBECDBF4F83588769877A878B873A -:103CE000DE01119686E0FD0111928A95E9F785E0E3 -:103CF000FE01379601900D928A95E1F749815A812C -:103D00006B817C818D819E810E944A262B960FB605 -:103D1000F894DEBF0FBECDBFDF91CF910895089517 -:103D2000CF93C82F882309F4C1C0823859F40E9468 -:103D30004D1D81FDBBC089E30E94B1280E943D2931 -:103D400089E30CC0833879F40E944D1D80FDAEC01C -:103D500083E50E94B1280E943D2983E50E94D32873 -:103D6000CF910C943D29843859F40E944D1D82FD59 -:103D70009DC087E40E94B1280E943D2987E4EECFD0 -:103D80008450813A48F48C2F0E94C72F81118EC035 -:103D90008C2F0E94B128E4CF8C2F805E883050F4A5 -:103DA000C77081E090E001C0880FCA95EAF70E94D1 -:103DB000F428D6CF8C2F855A833078F4C53A29F071 -:103DC000C63A31F482E890E005C081E890E002C094 -:103DD00083E890E0CF910C946F1D8C2F885A83312B -:103DE00008F064C0C83A39F1C93A41F1CA3A49F118 -:103DF000CB3A51F1CC3A59F1CD3A61F1C03B69F17E -:103E0000CE3A71F1CF3A79F1C13B81F1C23B89F1F0 -:103E1000C33B91F1C43B99F1C53BA1F1C63BA9F16C -:103E2000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5C8 -:103E30008AE292E038C082EE90E035C089EE90E0F0 -:103E400032C08AEE90E02FC085EB90E02CC086EB6C -:103E500090E029C087EB90E026C08CEC90E023C076 -:103E60008DEC90E020C083E891E01DC08AE891E0ED -:103E70001AC082E991E017C084E991E014C081E2A0 -:103E800092E011C083E292E00EC084E292E00BC0A7 -:103E900085E292E008C086E292E005C087E292E007 -:103EA00002C080E090E0CF910C94851DCF910895E1 -:103EB000882309F44DC0823859F40E944D1D81FFBA -:103EC00047C089E30E94B1280E943D2989E30CC0C4 -:103ED000833871F40E944D1D80FF3AC083E50E9433 -:103EE000B1280E943D2983E50E94D3280C943D29E6 -:103EF000843859F40E944D1D82FF2AC087E40E9435 -:103F0000B1280E943D2987E4EFCF982F9450913A31 -:103F100008F4EACF982F905E983058F4282F277035 -:103F200081E090E001C0880F2A95EAF70E94FA2804 -:103F3000DDCF982F955A933020F480E090E00C94D8 -:103F40006F1D885A833120F480E090E00C94851D29 -:103F50000895882321F00E94F4280C943D290895A7 -:103F6000882321F00E94FA280C943D290895BF92DD -:103F7000CF92DF92EF92FF920F931F93CF93DF9335 -:103F8000CDB7DEB727970FB6F894DEBF0FBECDBF13 -:103F90008C0185E0F801DE01119601900D928A9561 -:103FA000E1F7F801D080E180F280558152955F7091 -:103FB00083819481892B41F0FFEFEF1208C081E0EB -:103FC00090E0DF1631F003C081E090E002C080E0B5 -:103FD00090E080FD7CC3C8015E830E948F1ED98261 -:103FE000EA8289819A810E946E28B92E8F830E946D -:103FF0006D280E9495275E816F81FF2021F00E942D -:1040000011296F815E812B2D22952F7030E0253094 -:10401000310509F4E6C06CF4243031050CF0A2C07F -:104020004B2D407F8B2D8F70223031050CF045C019 -:1040300017C02C3031054CF42A3031050CF0E7C1A3 -:104040002830310509F043C3E5C02D30310509F4AE -:10405000BAC20CF4A2C22F30310509F038C323C311 -:10406000182F411101C002C01295107FFF2059F096 -:10407000112309F46BC2812F6F830E9404290E94CF -:104080003D296F8163C2862F0E94581F112309F4B6 -:104090001EC3812F0E940A2927960FB6F894DEBF0F -:1040A0000FBECDBFDF91CF911F910F91FF90EF9089 -:1040B000DF90CF90BF900C943D29403211F0829553 -:1040C000807F662319F0613071F523C0FF20B1F0C5 -:1040D000511101C032C0513081F527960FB6F894C6 -:1040E000DEBF0FBECDBFDF91CF911F910F91FF902B -:1040F000EF90DF90CF90BF900C942429511101C014 -:1041000003C0513009F4E3C28E830E9427298E81B7 -:104110009AC1FF2021F0563008F0D9C20EC05530A8 -:1041200008F0D5C290C1FF20C9F0552331F0F80145 -:10413000958190FF0BC29F70958327960FB6F894D8 -:10414000DEBF0FBECDBFDF91CF911F910F91FF90CA -:10415000EF90DF90CF90BF900C94A91F552309F4E6 -:1041600072C109C22B2D26952695237030E02115AA -:10417000310529F02130310509F0A9C219C0FF200D -:1041800021F0862F9B2D937002C080E090E027964F -:104190000FB6F894DEBF0FBECDBFDF91CF911F9158 -:1041A0000F91FF90EF90DF90CF90BF900C946F1D18 -:1041B000FF2021F0862F9B2D937002C080E090E0BD -:1041C00027960FB6F894DEBF0FBECDBFDF91CF911B -:1041D0001F910F91FF90EF90DF90CF90BF900C94C4 -:1041E000851D862FFF2019F00E94AD2C02C00E9471 -:1041F000152D27960FB6F894DEBF0FBECDBFDF9109 -:10420000CF911F910F91FF90EF90DF90CF90BF90D3 -:104210000C949C2D8B2D837009F079C0F11057C23E -:10422000262F229526952770220F220F862F8F701A -:10423000C82ED12CE12CF12C022E04C0CC0CDD1C9C -:10424000EE1CFF1C0A94D2F764FF10C06FE070E010 -:1042500080E090E004C0660F771F881F991F2A95A1 -:10426000D2F7609570958095909503C060E070E0FE -:10427000CB012B2D269526952370422F50E04230FE -:104280005105D9F04330510569F16C297D298E29FA -:104290009F294130510551F127960FB6F894DEBFA2 -:1042A0000FBECDBFDF91CF911F910F91FF90EF9087 -:1042B000DF90CF90BF900C94AA276C297D298E297E -:1042C0009F2927960FB6F894DEBF0FBECDBFDF91B2 -:1042D000CF911F910F91FF90EF90DF90CF90BF9003 -:1042E0000C94BC270E94AA27C701B60127960FB6D7 -:1042F000F894DEBF0FBECDBFDF91CF911F910F911C -:10430000FF90EF90DF90CF90BF900C949827FF2004 -:1043100019F08B2D817001C08695882309F4D7C1CF -:10432000262F229526952770220F220F862F8F7019 -:10433000C82ED12CE12CF12C022E04C0CC0CDD1C9B -:10434000EE1CFF1C0A94D2F764FF10C06FE070E00F -:1043500080E090E004C0660F771F881F991F2A95A0 -:10436000D2F7609570958095909503C060E070E0FD -:10437000CB012B2D269526952370422F50E04230FD -:104380005105D9F04330510569F16C297D298E29F9 -:104390009F294130510551F127960FB6F894DEBFA1 -:1043A0000FBECDBFDF91CF911F910F91FF90EF9086 -:1043B000DF90CF90BF900C9449286C297D298E29DD -:1043C0009F2927960FB6F894DEBF0FBECDBFDF91B1 -:1043D000CF911F910F91FF90EF90DF90CF90BF9002 -:1043E0000C945B280E944928C701B60127960FB696 -:1043F000F894DEBF0FBECDBFDF91CF911F910F911B -:10440000FF90EF90DF90CF90BF900C943728603FE3 -:1044100059F120F4603E08F494C008C0623F09F4EA -:1044200067C0F0F1633F09F08CC065C0162F1F70A4 -:104430008B2D8F71FF2021F00E94E227812F7DCEEE -:104440000E94FD27812F27960FB6F894DEBF0FBE7E -:10445000CDBFDF91CF911F910F91FF90EF90DF9033 -:10446000CF90BF900C94B01FFF20B1F0553008F0F2 -:104470002EC18B2D8F7127960FB6F894DEBF0FBE1D -:10448000CDBFDF91CF911F910F91FF90EF90DF9003 -:10449000CF90BF900C941C28563008F018C1E9CF7B -:1044A000FF2099F08B2D8F7127960FB6F894DEBF01 -:1044B0000FBECDBFDF91CF911F910F91FF90EF9075 -:1044C000DF90CF90BF900C94E2278B2D8F712796B1 -:1044D0000FB6F894DEBF0FBECDBFDF91CF911F9115 -:1044E0000F91FF90EF90DF90CF90BF900C94FD273D -:1044F000F110EBCFD7CFFF2099F08B2D8F7127963E -:104500000FB6F894DEBF0FBECDBFDF91CF911F91E4 -:104510000F91FF90EF90DF90CF90BF900C94D32736 -:1045200027960FB6F894DEBF0FBECDBFDF91CF91B7 -:104530001F910F91FF90EF90DF90CF90BF900C9460 -:10454000CE27FF20A9F0552309F4ACCF862F27965C -:104550000FB6F894DEBF0FBECDBFDF91CF911F9194 -:104560000F91FF90EF90DF90CF90BF900C94901E32 -:10457000552309F4AACF862F27960FB6F894DEBFED -:104580000FBECDBFDF91CF911F910F91FF90EF90A4 -:10459000DF90CF90BF900C94581F4B2D4F70C801E7 -:1045A0000E94560327960FB6F894DEBF0FBECDBF0C -:1045B000DF91CF911F910F91FF90EF90DF90CF90FF -:1045C000BF900C940027F11082C09B2D9F70492F43 -:1045D00050E04230510599F144F44115510569F01C -:1045E0004130510509F073C019C043305105C1F184 -:1045F0004430510509F06BC044C027960FB6F894BB -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C94763027960FB636 -:10462000F894DEBF0FBECDBFDF91CF911F910F91E8 -:10463000FF90EF90DF90CF90BF900C948D30279635 -:104640000FB6F894DEBF0FBECDBFDF91CF911F91A3 -:104650000F91FF90EF90DF90CF90BF900C94A93016 -:1046600027960FB6F894DEBF0FBECDBFDF91CF9176 -:104670001F910F91FF90EF90DF90CF90BF900C941F -:10468000BC30862F27960FB6F894DEBF0FBECDBF85 -:10469000DF91CF911F910F91FF90EF90DF90CF901E -:1046A000BF900C94E0304B2D4F70C80127960FB689 -:1046B000F894DEBF0FBECDBFDF91CF911F910F9158 -:1046C000FF90EF90DF90CF90BF900C944309279616 -:1046D0000FB6F894DEBF0FBECDBFDF91CF911F9113 -:1046E0000F91FF90EF90DF90CF90BF9008950E94C0 -:1046F00011290E9421290E94E6280E943D290E943A -:10470000482E0E949C2D80E090E00E946F1D80E06A -:1047100090E00C94851D0E9401290C9477230E943F -:104720006E28292F22952F7030E02C3031054CF463 -:104730002A3031056CF4225031092230310590F4D1 -:1047400007C02C30310551F02F30310559F406C027 -:10475000803E10F0803F31F481E0089593FB88277C -:1047600080F9089580E00895CF93DF9300D000D0C2 -:104770001F92CDB7DEB70F900F900F900F900F9054 -:10478000DF91CF910895CF93DF9300D000D000D078 -:10479000CDB7DEB726960FB6F894DEBF0FBECDBFFD -:1047A000DF91CF9108951F93CF93DF93C091DB02E8 -:1047B00016E012C0D0E01C9FF0011D9FF00D1124E7 -:1047C000E555FD4F408151816281738184819581DE -:1047D0000E94C3232196C7708091DC02C813EACFE0 -:1047E000DF91CF911F9108954091A5025091A602AB -:1047F0006091A7027091A8028091A9029091AA02EB -:104800000C94C3230F931F93CF93DF938091AA023D -:1048100082958F7009F069C08091A702882309F4FE -:1048200064C0A091DB02D091DC02B091A502C091DE -:10483000A6028091A8029091A90221E030E0BF3F3A -:1048400011F020E030E0122FBC016095709506E079 -:104850004AC0009721F0CF3F29F4212F05C021E065 -:1048600030E002C020E030E020FD3BC04A2F50E0A5 -:10487000049FF001059FF00D1124E555FD4F2181A6 -:10488000C2132FC02081B2132CC02281211129C054 -:10489000238134812817390718F0281B390B02C0EF -:1048A000260F371F283C3105E0F48091AA028F7053 -:1048B00080618093AA0286E0849FF001859FF00DBD -:1048C0001124E055FD4F80818F708061808385EADF -:1048D00092E00E94B71FDF91CF911F910F910C942E -:1048E000D323AF5FA770AD13B4CFDF91CF911F91EA -:1048F0000F910895EF92FF920F931F93CF93DF9341 -:10490000CDB7DEB762970FB6F894DEBF0FBECDBF4E -:104910008C0185E0F801DE011D9601900D928A95CB -:10492000E1F7D8014C9111965C91119712966C9118 -:1049300012971396ED90FC9014977091A502E09158 -:10494000A6028091A8029091A902009739F0EF3F4A -:1049500041F421E030E07F3F31F003C021E030E05E -:1049600002C020E030E020FD5CC12091A70222239C -:1049700009F4F1C0E816F90628F09701281B390B55 -:10498000C90104C0809590958E0D9F1D883C9105AE -:1049900008F098C08091AA02982F907F09F064C017 -:1049A000E51314C0741312C0611110C08F708061C0 -:1049B0008093AA020E94F42385EA92E00E94B71F26 -:1049C0008091AA02D80115968C9343C1EF2839F043 -:1049D0005F3F41F481E090E04F3F31F003C081E060 -:1049E00090E002C080E090E080FD03C081E0862777 -:1049F00002C080E090E080FF2EC08091DB02209119 -:104A0000DC0236E013C090E0389FF001399FF00DD2 -:104A10001124E555FD4F7181571306C0708147136E -:104A200003C07281671317C0019687708213EBCFA2 -:104A300012C19F7059F0882309F40BC107C09F7001 -:104A400029F0F8019581907F09F403C1805E8830D8 -:104A500008F4FFC0D2C0662309F4FBC08091AA020B -:104A600081608093AA02F5C0E51308C0741306C0E4 -:104A7000611104C0D80115968C939DC04D875E8747 -:104A80008D859E856A8B0E948F236A89882309F40D -:104A9000B4C0662309F4B1C02091AA02822F829586 -:104AA0008F7090E002970CF4C6C08091A50290919F -:104AB000A60298878F831986FB86EA862C87CE010B -:104AC000079646C08091AA02982F907F59F47E2DB8 -:104AD000F98AE88A89890E94B42385EA92E00E94D3 -:104AE000B71F95C0E51311C074130FC061110DC03D -:104AF000F8018583C8010E94B71FE5EAF2E086E06D -:104B0000DF011D928A95E9F7A2C04D875E878D85EA -:104B10009E856A8B0E948F236A89882309F46DC061 -:104B2000662309F46AC02091AA02822F82958F70B1 -:104B300090E002970CF47FC08091A5029091A602AC -:104B40009A8389831B82FD82EC822E83CE0101969B -:104B50000E94B71F70C0E816F90628F09701281BBD -:104B6000390BC90104C0809590958E0D9F1D883C1E -:104B7000910508F046C0662309F43FC0E51330C034 -:104B800074132EC02091AA0220FD21C0322F32952D -:104B90003F70832F90E00097D1F0D80115962C93A9 -:104BA00015970F9741F0832F8F5F8295807F2F702D -:104BB000282B15962C93C8010E94B71F86E0F80198 -:104BC000A5EAB2E001900D928A95E1F73EC086E039 -:104BD000F801A5EAB2E001900D928A95E1F737C09D -:104BE0004D875E878D859E850E948F23811123C00E -:104BF0008091AA0281608093AA02C8010E94B71F17 -:104C000026C07E2DF98AE88A89890E94B423E5EAC4 -:104C1000F2E086E0DF011D928A95E9F70E94F42315 -:104C200018C0662351F34D875E878D859E850E944F -:104C30008F23882311F386E0F801A5EAB2E0019002 -:104C40000D928A95E1F70E9402240E94F42381E0EC -:104C500014C080E012C04D875E878D859E850E94BE -:104C60006E28292F22952F7030E0223031050CF468 -:104C7000E0CE243031050CF6E2CE62960FB6F89401 -:104C8000DEBF0FBECDBFDF91CF911F910F91FF907F -:104C9000EF9008951F93CF93DF93CDB7DEB72C9796 -:104CA0000FB6F894DEBF0FBECDBF4F83588769871C -:104CB0007A878B879C87CE0107960E947A24882367 -:104CC000D9F02F8138858A859B85892B39F03F3F24 -:104CD00019F080E090E004C02F3FD9F781E090E028 -:104CE000892B09F06DC04F81588569857A858B8540 -:104CF0009C850E94C32364C086E0FE013796DE01D6 -:104D0000119601900D928A95E1F7FF81E8854A8519 -:104D10005B854115510539F0EF3F41F481E090E0AA -:104D2000FF3F31F003C081E090E002C080E090E0FE -:104D300080FD46C02091DC0230E0C90101968770F9 -:104D400099276091DB0270E08617970709F440C04D -:104D5000F983EA835D834C8396E0929FD001939F11 -:104D6000B00D1124A555BD4FFE01319601900D9255 -:104D70009A95E1F78093DC020E94D32321C0189F0B -:104D8000C001112485559D4F0E947A24882371F11A -:104D9000E091DB021E9FF0011124E555FD4F40819B -:104DA000518162817381848195810E94C3238091A6 -:104DB000DB0290E00196877099278093DB0201C0A7 -:104DC00016E08091DB029091DC028913D8CF0EC0EF -:104DD0000E948B231092DC021092DB02E5EAF2E0E3 -:104DE00086E0DF011D928A95E9F7EACF2C960FB68F -:104DF000F894DEBF0FBECDBFDF91CF911F91089514 -:104E0000DF92EF92FF920F931F93CF93DF93EC010A -:104E1000009709F46EC0D12CEE24E394F12C8E019E -:104E20000F5F1F4FFE018491843748F4843008F0EF -:104E30004CC0813071F0823009F05BC01EC08537F4 -:104E400009F43FC080F1982F9458903708F051C072 -:104E50003FC02296F8018491982F905E983050F4CC -:104E60008770FE2D01C0FF0F8A95EAF78F2F0E94F1 -:104E7000142913C00E94901E2FC02296F80184911D -:104E8000982F905E983060F48770FE2D01C0FF0F60 -:104E90008A95EAF78F2F0E941A290E943D291CC08B -:104EA0000E94581F19C02296F801049107C08FE98B -:104EB0009FE00197F1F700C0000001500111F7CF0A -:104EC0000BC02296F801D49007C00E94901E03C028 -:104ED0008F770E94581FE8018D2D07C08150EFE9A0 -:104EE000FFE03197F1F700C00000882309F497CF65 -:104EF000F5CFDF91CF911F910F91FF90EF90DF9051 -:104F000008956093E1027093E2028093E30290932C -:104F1000E4020C9477236093DD027093DE028093A9 -:104F2000DF029093E0020C94772308950C9481277C -:104F30000F931F930091E1021091E2022091E3028E -:104F40003091E402602B712B822B932B1F910F91D8 -:104F50000C9481270F931F930091E1021091E202BC -:104F60002091E3023091E402602371238223932392 -:104F70001F910F910C9481270F931F930091E102D1 -:104F80001091E2022091E3023091E4026027712740 -:104F9000822793271F910F910C94812760E070E086 -:104FA000CB010C948B2741E050E060E070E004C03E -:104FB000440F551F661F771F8A95D2F7CB01BA01A0 -:104FC0000C948B2741E050E060E070E004C0440F97 -:104FD000551F661F771F8A95D2F78091DD02909149 -:104FE000DE02A091DF02B091E002482B592B6A2B20 -:104FF0007B2BCB01BA010C948B2741E050E060E0A1 -:1050000070E004C0440F551F661F771F8A95D2F7C2 -:1050100040955095609570958091DD029091DE02EB -:10502000A091DF02B091E002482359236A237B2339 -:10503000CB01BA010C948B2741E050E060E070E0B6 -:1050400004C0440F551F661F771F8A95D2F78091C1 -:10505000DD029091DE02A091DF02B091E0024827CC -:1050600059276A277B27CB01BA010C948B270F9312 -:105070001F930091DD021091DE022091DF0230913A -:10508000E002602B712B822B932B1F910F910C94BC -:105090008B270F931F930091DD021091DE02209168 -:1050A000DF023091E00260237123822393231F915A -:1050B0000F910C948B270F931F930091DD02109199 -:1050C000DE022091DF023091E00260277127822703 -:1050D00093271F910F910C948B270895CF92DF9205 -:1050E000EF92FF920F931F93CF93DF93EC01C09049 -:1050F000E102D090E202E090E302F090E4028091BD -:10510000DD029091DE02A091DF02B091E002C82A98 -:10511000D92AEA2AFB2A0FE110E0B701A601002EE6 -:1051200004C076956795579547950A94D2F740FF46 -:1051300008C0BE01802F0E94B3048130910509F0A0 -:1051400007C00150110948F7BE0180E00E94B30476 -:10515000DF91CF911F910F91FF90EF90DF90CF9053 -:10516000089540918B0150918C0120E030E09FEF39 -:10517000FA01E20FF31F62816817A1F09F3F19F453 -:10518000611101C0922F2F5F3F4F2630310581F70B -:1051900007C0FA01E90FF11D97FDFA958283089582 -:1051A0009F3FB9F7089540918B0150918C0120E009 -:1051B00030E0FA01E20FF31F9281981301C01282CE -:1051C0002F5F3F4F26303105A1F7089581E090E031 -:1051D000E0918B01F0918C01E80FF91F108201968C -:1051E00088309105A9F708959091E502982B909346 -:1051F000E502089580959091E50298239093E50249 -:1052000008951092E50208959091E602982B9093EC -:10521000E602089580959091E60298239093E60225 -:1052200008951092E60208959091E702982B9093CA -:10523000E702089580959091E70298239093E70202 -:1052400008951092E70208958093E802089510925D -:10525000E802089540918B0150918C0120E030E0EC -:1052600080E0FA01E20FF31F918191118F5F2F5FB0 -:105270003F4F27303105A9F70895E0918B01F09158 -:105280008C018091E5028083E0918B01F0918C018B -:1052900080819091E602892B8083E0918B01F091CF -:1052A0008C0180819091E702892B80839091E802A4 -:1052B000992361F0E0918B01F0918C018081892B21 -:1052C00080830E942A2981110E94272980918B01C5 -:1052D00090918C010C94591D8091FB03843039F11D -:1052E0001092F20220E488E190E00FB6F894A895BD -:1052F000809360000FBE2093600080E00E949B03BB -:1053000080E00E942C0683B7817F846083BF83B7CF -:10531000816083BF7894889583B78E7F83BF88E14F -:105320000FB6F89480936000109260000FBE08954D -:1053300008950895CF9380E00E949B030E949829CE -:105340000E94E9070E949929C0E08C2F0E94390928 -:10535000892B29F4CF5FC530C1F780E001C081E01F -:10536000CF9108950E948B2380E00E949B030E94AE -:1053700065300E944D1D0C942C061F920F920FB6A3 -:105380000F9211248F939F93AF93BF938091F2025A -:10539000811113C08091F3029091F402A091F50263 -:1053A000B091F6024196A11DB11D8093F302909336 -:1053B000F402A093F502B093F602BF91AF919F91D2 -:1053C0008F910F900FBE0F901F90189582E084BDB3 -:1053D00093E095BD9AEF97BD80936E0008958FB7C7 -:1053E000F8944091F3025091F4026091F5027091AB -:1053F000F6028FBFCA010895CF92DF92EF92FF921B -:105400000F931F932FB7F8944091F3025091F40239 -:105410006091F5027091F6022FBF6A017B01EE24C4 -:10542000FF248C0120E030E0C016D106E206F3062E -:1054300020F09A01281B390B05C09C01209530955E -:10544000240F351FC9011F910F91FF90EF90DF903E -:10545000CF9008951F920F920FB60F9211248F9341 -:105460009F93AF93BF938091F3029091F402A09128 -:10547000F502B091F6020196A11DB11D8093F302D1 -:105480009093F402A093F502B093F602BF91AF910E -:105490009F918F910F900FBE0F901F9018950E94B3 -:1054A0009516F8942FEF87EA91E6215080409040BE -:1054B000E1F700C0000087E090EBDC018093050479 -:1054C00090930604A0930704B09308042CE088E1AD -:1054D00090E00FB6F894A895809360000FBE2093DB -:1054E0006000FFCFCF92DF92EF92FF920F931F9356 -:1054F000CF93DF93C82ED12C01E010E08D2D0E94B8 -:1055000039097C01C0E0D0E098010C2E02C0220FC6 -:10551000331F0A94E2F72E213F21232B29F42196F1 -:10552000CC30D10589F708C06C2F7D2D80E00E941A -:105530008E04C812F4CF06C0D39485E0D812DECF13 -:1055400080E001C081E0DF91CF911F910F91FF902A -:10555000EF90DF90CF900895CF93C82F8CE20E94F8 -:10556000722A882321F08C2FCF910C94722A80E02C -:10557000CF910895CF930E94FD2B811102C00E940C -:10558000DE2BC5E608C00E94E9078FE39CE901977E -:10559000F1F700C00000C150B1F789E20E94AC2AC7 -:1055A00081110AC18AE20E94AC2A81110E94DE2B7D -:1055B00085E00E94AC2A81110E944F2A0E94082C8B -:1055C0008093F10287E00E94AC2A882399F18BE155 -:1055D0000E94AC2A882351F09091F10291FB882718 -:1055E00080F921E0822780FB91F922C08EE00E94A1 -:1055F000AC2A882351F09091F10292FB882780F920 -:1056000021E0822780FB92F913C080E10E94AC2A3E -:105610009091F102882341F093FB882780F921E0E3 -:10562000822780FB93F904C0892F809580FB90F935 -:105630009093F1028091F1020E940C2C0E941A2C8E -:105640008093020380EE0E94AC2A882341F080916F -:105650000203982F909590FB80F98093020389E3D1 -:105660000E94AC2A882359F09091020391FB88276D -:1056700080F921E0822780FB91F99093020382EE6A -:105680000E94AC2A882359F09091020392FB88274C -:1056900080F921E0822780FB92F99093020386EE45 -:1056A0000E94AC2A882359F09091020393FB88272B -:1056B00080F921E0822780FB93F99093020383EE27 -:1056C0000E94AC2A882359F09091020394FB88270A -:1056D00080F921E0822780FB94F99093020385E30F -:1056E0000E94AC2A882359F09091020395FB8827E9 -:1056F00080F921E0822780FB95F99093020381E3F2 -:105700000E94AC2A882359F09091020396FB8827C7 -:1057100080F921E0822780FB96F99093020381E1D2 -:105720000E94AC2A882359F09091020397FB8827A6 -:1057300080F921E0822780FB97F990930203809102 -:1057400002030E941E2C87E20E94AC2AC82F8EE121 -:105750000E94AC2A8111C2608FE10E94AC2A8111A3 -:10576000C46080E20E94AC2A8111C86081E20E947C -:10577000AC2A8111C06182E20E94AC2A8111C06210 -:1057800083E20E94AC2A8111C06484E20E94AC2AA8 -:10579000882311F0C06802C0CC2329F08C2F0E940E -:1057A000152C6C2F03C00E94112C682F70E080E034 -:1057B00090E0CF910C949627CF9108956DEE7EEFF7 -:1057C00080E090E00E94CC3460E082E090E00E94B3 -:1057D000BE3460E083E090E00E94BE3460E084E08C -:1057E00090E00E94BE3460E085E090E00E94BE340C -:1057F00060E086E090E00C94BE3480E090E00E948F -:10580000B83421E08D3E9E4F09F020E0822F0895AC -:1058100082E090E00C94B034682F82E090E00C9429 -:10582000BE3483E090E00C94B034682F83E090E0C5 -:105830000C94BE3484E090E00C94B034682F84E083 -:1058400090E00C94BE3486E090E00C94B034682F65 -:1058500086E090E00C94BE348091FF0280FF0BC084 -:105860006091900185E0689FB0011124759567955E -:10587000759567952AC081FF09C06091900185E008 -:10588000689FB0011124759567951FC082FF07C0FE -:105890006091900185E0689FB001112416C040918D -:1058A000F9024423C9F060918F01461788F72091CF -:1058B000900185E0289F90011124429FC001439FE1 -:1058C000900D112470E00E949C346038710540F402 -:1058D0006115710539F002C065E070E0862F08950A -:1058E0008FE7089581E008958091FF0280FF08C04E -:1058F00060918E0170E0759567957595679521C0EB -:1059000081FF06C060918E0170E07595679519C0A2 -:1059100082FF04C060918E0170E010C08091F90296 -:105920008823C1F060918D018617A0F790918E01B8 -:10593000989FC001112470E00E949C34603871056A -:1059400028F46115710521F0862F08958FE70895D9 -:1059500081E0089561E070E0F4CF803F21F40E947F -:105960002C2C819504C0813F29F40E942C2C80931B -:10597000FC020895823F21F40E942C2C819504C0E2 -:10598000833F29F40E942C2C8093FB020895893FC9 -:1059900019F40E94742C05C08A3F31F40E94742CC3 -:1059A00081958093FD0208958B3F21F40E94742C11 -:1059B000819504C08C3F29F40E94742C8093FE02D0 -:1059C0000895843F21F48091FA02816017C0853FD9 -:1059D00021F48091FA02826011C0863F21F4809107 -:1059E000FA0284600BC0873F21F48091FA0288603C -:1059F00005C0883F31F48091FA0280618093FA02F9 -:105A000008958D3F21F48091FF0281600BC08E3F8D -:105A100021F48091FF02826005C08F3F29F48091BC -:105A2000FF0284608093FF020895803F29F48091F3 -:105A3000FC0287FF6EC007C0813F41F48091FC02E9 -:105A400018160CF066C01092FC0263C09091FB0225 -:105A5000823F19F497FF5DC005C0833F31F41916EA -:105A60000CF057C01092FB0254C0893F31F4809172 -:105A7000FD0218160CF04DC006C08A3F39F4809123 -:105A8000FD0287FF46C01092FD0243C08B3F29F400 -:105A90008091FE0287FF3DC006C08C3F39F48091A3 -:105AA000FE021816B4F51092FE0233C0843F21F4B2 -:105AB0008091FA028E7F05C0853F31F48091FA0211 -:105AC0008D7F8093FA0225C0863F21F48091FA02EF -:105AD0008B7FF7CF873F21F48091FA02877FF1CF48 -:105AE000883F21F48091FA028F7EEBCF8D3F21F425 -:105AF0008091FF028E7F0BC08E3F21F48091FF02C8 -:105B00008D7F05C08F3F29F48091FF028B7F8093AA -:105B1000FF028091FB0281110EC08091FC02811175 -:105B20000AC08091FD02811106C08091FE028111A0 -:105B300002C01092F90208958AEF92E00E94641D5B -:105B40000E94EF299093F8028093F7020895CF9373 -:105B50008091F7029091F8020E94FC294091F9028D -:105B6000442321F02091910130E006C02091920160 -:105B70005AE0259F900111248217930708F486C0EC -:105B80008091FB0281110DC09091FC02911109C01E -:105B90009091FD02911105C09091FE02992309F4A4 -:105BA00075C04F3F19F04F5F4093F902181624F467 -:105BB0000E942C2C8093FB028091FB0287FF05C082 -:105BC0000E942C2C81958093FB028091FC02181678 -:105BD00024F40E942C2C8093FC028091FC0287FF0D -:105BE00005C00E942C2C81958093FC026091FB02E1 -:105BF000662339F1C091FC02CC2319F1772767FDA8 -:105C00007095872F972F0E94003223E333E343E3FD -:105C10005FE30E94B4320E94CD316093FB026C2F8F -:105C2000772767FD7095872F972F0E94003223E317 -:105C300033E343E35FE30E94B4320E94CD316093CB -:105C4000FC028091FD02181624F40E94742C8093AB -:105C5000FD028091FD0287FF05C00E94742C819592 -:105C60008093FD028091FE02181624F40E94742C89 -:105C70008093FE028091FE0287FF05C00E94742C73 -:105C800081958093FE02CF910C949C2DCF91089525 -:105C9000EAEFF2E085E0DF011D928A95E9F71092C4 -:105CA000F9021092FF020895833089F130F48130B7 -:105CB00061F0823009F06EC019C0853009F449C026 -:105CC000B8F1863009F066C055C020919201862F48 -:105CD00090E0820F911D8F3F910520F4620F609339 -:105CE000920108958FEF8093920108952091910180 -:105CF000862F90E0820F911D8F3F910520F4620F57 -:105D00006093910108958FEF809391010895209100 -:105D10009001862F90E0820F911D8F3F910520F416 -:105D2000620F6093900108958FEF80939001089522 -:105D300020918F01862F90E0820F911D8F3F91055A -:105D400020F4620F60938F0108958FEF80938F018D -:105D5000089520918E01862F90E0820F911D8F3F34 -:105D6000910520F4620F60938E0108958FEF809368 -:105D70008E01089520918D01862F90E0820F911D54 -:105D80008F3F910520F4620F60938D0108958FEF8E -:105D900080938D010895833021F130F4813059F0E2 -:105DA000823009F049C012C0853089F128F186306F -:105DB00009F042C037C080919201681720F4861B19 -:105DC000809392010895109292010895809191011B -:105DD000681720F4861B8093910108951092910119 -:105DE000089580919001681720F4861B809390019C -:105DF000089510929001089580918F01681720F402 -:105E0000861B80938F01089510928F0108958091D1 -:105E10008E01681720F4861B80938E0108951092DE -:105E20008E01089580918D01681720F4861B809360 -:105E30008D01089510928D01089541E050E060E0D9 -:105E400070E004C0440F551F661F771F8A95D2F774 -:105E5000CB01BA010E9496270C948B23873200F560 -:105E60008E3108F089C08E3009F469C060F4873043 -:105E700009F44DC018F4863049F531C0883041F13D -:105E80008B3021F57EC0863109F47BC018F4803157 -:105E9000E9F45FC0893109F474C08B31B9F445C0AD -:105EA000883309F46EC048F4893209F467C0853339 -:105EB00009F464C0873251F461C0833409F45EC0D0 -:105EC00018F48A3318F056C0883499F080E00895A9 -:105ED0000E94082C0E941A2C0E94232C52C08091F0 -:105EE000F102817F8E7F8093F10281E08093000335 -:105EF00008950E948B232FEF83ED90E32150804083 -:105F00009040E1F700C000000E944F2A3AC09091F3 -:105F1000F102892F8095817080FB90F919F09660CD -:105F2000986025C0997F977F22C09091F10291FBE4 -:105F3000882780F921E0822780FB91F913C0909196 -:105F4000F10292FB882780F921E0822780FB92F9F9 -:105F500009C09091F10293FB882780F921E0822704 -:105F600080FB93F99093F102882359F0916090930C -:105F7000F10207C0895303C08D5101C080E00E9427 -:105F80001D2F81E0089580E0089580E00895CF936B -:105F9000C82F80910003813071F020F0823009F029 -:105FA00089C037C0A0918B01B0918C018C91823255 -:105FB00009F082C007C0A0918B01B0918C018C9137 -:105FC000823249F48C2F0E94C32F81111EC08C2F66 -:105FD0000E942E2F1CC08C2F0E94C52F811115C02E -:105FE000C43169F030F4CB3081F0C03109F068C0C1 -:105FF00009C0C93221F0C83309F062C006C010924E -:1060000000035EC082E08093000381E090E0817035 -:106010005AC0C932C9F060F4C431B1F020F4C730BD -:1060200009F04CC034C0CE51C63008F047C017C08C -:10603000CE3439F120F4CB3409F040C01CC0C13556 -:10604000C1F0C235D9F513C080910103882319F03E -:106050001092010333C081E08093000334C0EC2F21 -:10606000F0E0E25EFD4F80818093010327C061E094 -:1060700003C061E007C06AE0809101030E94542ED2 -:106080001DC06AE0809101030E94CB2E17C08EE1F3 -:106090008093920182E3809391018AE08093900142 -:1060A00084E180938F0188E080938E0188E2809361 -:1060B0008D0104C01092000380E005C081E003C0A0 -:1060C00080E090E0A4CFCF9108950E94FD2B811134 -:1060D00002C00E94DE2B0E94232C8093040480FFC8 -:1060E00002C0869501C080E00C949B03809104045B -:1060F000982F9695292F30E0233031054CF49F5F7F -:10610000990F8170892B8160809304040E94272C51 -:106110008091040486950C949B0380910404982F2D -:10612000969591F09158990F8170892B8093040472 -:106130008E7F91E009F490E08091040490FB80F957 -:10614000809304040E94272C8091040486950C946B -:106150009B0380910404982F909590FB80F9809385 -:1061600004040E94272C8091040480FF02C08695BD -:1061700001C080E00C949B0330910404232F2695EA -:106180002F5F2F77822F90E0317004972CF4220F2D -:10619000232B2093040402C0309304048091040450 -:1061A000282F2E7F91E009F490E090FB80F98093F6 -:1061B00004040E94272C8091040486950C949B0370 -:1061C00020910404922F96959827990F822F817021 -:1061D000892B809304048E7F91E009F490E08091F4 -:1061E000040490FB80F9809304040E94272C809182 -:1061F000040486950C949B035058BB27AA270ED005 -:1062000075C166D130F06BD120F031F49F3F11F4AD -:106210001EF45BC10EF4E095E7FB51C1E92F77D185 -:1062200080F3BA17620773078407950718F071F4B3 -:106230009EF58FC10EF4E0950B2EBA2FA02D0B0109 -:10624000B90190010C01CA01A0011124FF27591BBB -:1062500099F0593F50F4503E68F11A16F040A22FC1 -:10626000232F342F4427585FF3CF46953795279532 -:10627000A795F0405395C9F77EF41F16BA0B620B31 -:10628000730B840BBAF09150A1F0FF0FBB1F661F78 -:10629000771F881FC2F70EC0BA0F621F731F841FBB -:1062A00048F4879577956795B795F7959E3F08F0E1 -:1062B000B3CF9395880F08F09927EE0F97958795A0 -:1062C0000895D9D008F481E008950CD00FC107D10A -:1062D00040F0FED030F021F45F3F19F0F0C05111D2 -:1062E00039C1F3C014D198F39923C9F35523B1F3FD -:1062F000951B550BBB27AA2762177307840738F035 -:106300009F5F5F4F220F331F441FAA1FA9F333D093 -:106310000E2E3AF0E0E830D091505040E695001C47 -:10632000CAF729D0FE2F27D0660F771F881FBB1F03 -:10633000261737074807AB07B0E809F0BB0B802DDD -:10634000BF01FF2793585F4F2AF09E3F510568F029 -:10635000B6C000C15F3FECF3983EDCF386957795BD -:106360006795B795F7959F5FC9F7880F911D96952B -:10637000879597F90895E1E0660F771F881FBB1F87 -:10638000621773078407BA0720F0621B730B840B34 -:10639000BA0BEE1F88F7E095089504D06894B11108 -:1063A000D9C00895BCD088F09F5790F0B92F992795 -:1063B000B751A0F0D1F0660F771F881F991F1AF010 -:1063C000BA95C9F712C0B13081F0C3D0B1E00895D9 -:1063D000C0C0672F782F8827B85F39F0B93FCCF35A -:1063E000869577956795B395D9F73EF49095809506 -:1063F000709561957F4F8F4F9F4F0895E89409C026 -:1064000097FB3EF490958095709561957F4F8F4FE7 -:106410009F4F9923A9F0F92F96E9BB279395F695FD -:10642000879577956795B795F111F8CFFAF4BB0F7B -:1064300011F460FF1BC06F5F7F4F8F4F9F4F16C0DF -:10644000882311F096E911C0772321F09EE8872F69 -:10645000762F05C0662371F096E8862F70E060E025 -:106460002AF09A95660F771F881FDAF7880F96959E -:10647000879597F90895990F0008550FAA0BE0E842 -:10648000FEEF16161706E807F907C0F012161306F6 -:10649000E407F50798F0621B730B840B950B39F436 -:1064A0000A2661F0232B242B252B21F408950A269C -:1064B00009F4A140A6958FEF811D811D089597F9DC -:1064C0009F6780E870E060E008959FEF80EC08959A -:1064D00000240A94161617061806090608950024C3 -:1064E0000A9412161306140605060895092E03943D -:1064F000000C11F4882352F0BB0F40F4BF2B11F4B1 -:1065000060FF04C06F5F7F4F8F4F9F4F089557FD0F -:106510009058440F551F59F05F3F71F04795880F11 -:1065200097FB991F61F09F3F79F0879508951216A8 -:1065300013061406551FF2CF4695F1DF08C0161654 -:1065400017061806991FF1CF869571056105089405 -:106550000895E894BB2766277727CB0197F908951C -:106560008ADF08F48FEF08950BD0C0CFB1DF28F099 -:10657000B6DF18F0952309F0A2CFA7CF1124EACFF8 -:10658000C6DFA0F3959FD1F3950F50E0551F629F92 -:10659000F001729FBB27F00DB11D639FAA27F00D7C -:1065A000B11DAA1F649F6627B00DA11D661F829FA3 -:1065B0002227B00DA11D621F739FB00DA11D621F88 -:1065C000839FA00D611D221F749F3327A00D611DA5 -:1065D000231F849F600D211D822F762F6A2F112487 -:1065E0009F5750408AF0E1F088234AF0EE0FFF1FDA -:1065F000BB1F661F771F881F91505040A9F79E3F11 -:10660000510570F05CCFA6CF5F3FECF3983EDCF312 -:10661000869577956795B795F795E7959F5FC1F74D -:10662000FE2B880F911D9695879597F90895FA018D -:10663000EE0FFF1F30962105310599F161157105A7 -:1066400061F48038BFE39B0749F168949038810575 -:1066500061F08038BFEF9B0741F0992342F5FF3F7F -:10666000E1053105210511F1E8940894E795D90178 -:10667000AA2329F4AB2FBE2FF85FD0F310C0FF5F21 -:1066800070F4A695E0F7F73950F019F0FF3A38F4B6 -:106690009F779F930CD00F9007FC905808953EF081 -:1066A00014CF60E070E080E89FE308954FE79F77A4 -:1066B0005F934F933F932F939ED02F913F914F9194 -:1066C0005F9152DF05C019F40EF0F9CE42CFFDCE36 -:1066D00026DFC8F39638C0F707F80F92E8942BE34B -:1066E0003AEA48EB5FE74EDF0F920F920F924DB7F9 -:1066F0005EB70F92C0D0ECEAF0E016D04F915F91F8 -:10670000EF91FF91E595EE1FFF1F49F0FE57E068FE -:106710004427EE0F441FFA95E1F74195550B32D00F -:106720000F9007FE26C00895DF93CF931F930F931A -:10673000FF92EF92DF927B018C01689405C0DA2E04 -:10674000EF011EDFFE01E894A59125913591459159 -:106750005591AEF3EF0162DDFE019701A801DA94D5 -:1067600079F7DF90EF90FF900F911F91CF91DF911C -:1067700008959B01AC0160E070E080E89FE3A5CD47 -:106780009ECEACC0CCDEE8F39923D9F3940F511D13 -:10679000BBF39150504094F059F0882332F0660FCB -:1067A000771F881F91505040C1F79E3F510544F715 -:1067B000880F911D9695879597F908955F3FACF0E6 -:1067C000983E9CF0BB27869577956795B79508F41A -:1067D000B1609395C1F7BB0F58F711F460FFE8CF94 -:1067E0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C0D9 -:1067F0006CCE689464CE93DEC8F39923D1F3C6F3CC -:10680000DF93CF931F930F93FF92C92FDD27882328 -:106810002AF02197660F771F881FDAF720E030E013 -:1068200040E85FEB9FE3883920F0803E30F021960E -:106830008F77E3DCE4EDF0E003C0DFDCE1E0F1E0E2 -:1068400073DF8B01BE01EC01FB2E6F57710975954B -:10685000771F880B990BD4DD28E132E741E35FE332 -:106860008FDEAF2D9801AE01FF900F911F91CF9158 -:10687000DF91D4DC3BCEFA01DC01AA0FBB1F9B01E8 -:10688000AC01BF5728F422273327442750781FC074 -:10689000B75188F4AB2F0024469537952795011CF6 -:1068A000A395D2F3002069F0220F331F441FB39544 -:1068B000DAF30DD0A1CC61307105A0E88A07B946A2 -:1068C00030F49B01AC0166277727882790783096B3 -:1068D00021F0208331834283538308959F3F31F019 -:1068E000915020F4879577956795B795880F911DFE -:1068F0009695879597F90895991B79E004C0991F9B -:10690000961708F0961B881F7A95C9F78095089509 -:10691000AA1BBB1B51E107C0AA1FBB1FA617B707C5 -:1069200010F0A61BB70B881F991F5A95A9F78095E1 -:106930009095BC01CD01089597FB072E16F40094A5 -:1069400007D077FD09D00E94883407FC05D03EF4BB -:10695000909581959F4F0895709561957F4F08950B -:10696000F999FECF92BD81BDF89A992780B5089517 -:10697000A8E1B0E042E050E00C94D334262FF9991E -:10698000FECF1FBA92BD81BD20BD0FB6F894FA9A12 -:10699000F99A0FBE019608950E94BE34272F0C94D9 -:1069A000BF34DC01CB01FC01F999FECF06C0F2BD7A -:1069B000E1BDF89A319600B40D9241505040B8F7BD -:0669C0000895F894FFCFDA -:1069C60055D0A446000016440000000000004842CE -:1069D60061978A460000C843000000000000484254 -:1069E60055D024460000C84300000000000048427D -:1069F60000005C460000C84300000000000048425A -:106A060061978A4600007A4455D0A4460000C843E0 -:106A1600000000000000484200005C460000C84339 -:106A2600000000000000484255D0244600001644ED -:106A36000507000C05854000000106400000010026 -:106A4600B91049112511F010BC1001E902280814EB -:106A56000A321E4200450025002600430061006000 -:106A660000200037006400650066006700440046A9 -:106A7600002400470000000200040005000700098A -:106A8600000B000C000E001000110013001500177B -:106A96000018001A001C001D001F002100230024FE -:106AA600002600280029002B002D002F0030003280 -:106AB6000034003500370039003B006E048704A01F -:106AC60004B904E10594055E053E053F4D362002F6 -:106AD60003020000010001010101010001010102A0 -:086AE60003040506070809007E -:00000001FF diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex deleted file mode 100644 index 5bdc190e1..000000000 --- a/keyboard/preonic/preonic_pcb.hex +++ /dev/null @@ -1,1702 +0,0 @@ -:100000000C94D4020C9418030C9418030C94180349 -:100010000C9418030C9418030C9418030C941803F4 -:100020000C9418030C9418030C94E8160C94BA174B -:100030000C946C290C9418030C9418030C9418035A -:100040000C9418030C9418030C9418030C941803C4 -:100050000C9418030C94D9290C9418030C941803CD -:100060000C9418030C9418030C9418030C941803A4 -:100070000C9418030C9418030C9418030C94180394 -:100080000C941C0E0C9418030C9418030C94180375 -:100090000C9418030C9418030C9418030C94180374 -:1000A0000C9418030C9418030C941803076342363D -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE002A035400680065002000FE -:100390005000720065006F006E006900630020006D -:1003A0004B006500790062006F006100720064001C -:1003B00000002C034F007200740068006F006C0096 -:1003C00069006E0065006100720020004B0065004E -:1003D000790062006F006100720064007300000029 -:1003E000040309040902D000060100A0FA09040070 -:1003F000000103010100092111010001223F000752 -:1004000005810308000A0904010001030102000933 -:100410002111010001224D000705820308000A098D -:10042000040200010300000009211101000122362D -:10043000000705830308000A090403000203000003 -:10044000000921110100012220000705840320007A -:100450000107050403200001090404000001010054 -:100460000009240100010900010509040500020139 -:1004700003000007240100014100062402010100DD -:1004800006240202020009240301030102010009FB -:1004900024030204010101000905060240000500D1 -:1004A0000005250101010905850240000500000540 -:1004B000250101031201100100000008EDFE61603A -:1004C0000100010200010631FF0974A1010975153F -:1004D0000025FF9520750881020976150025FF95F6 -:1004E0002075089102C005010980A101850216014D -:1004F0000026B7001A01002AB70075109501810087 -:10050000C0050C0901A1018503160100269C021AF1 -:1005100001002A9C02751095018100C005010902A5 -:10052000A1010901A10005091901290515002501ED -:100530009505750181029501750381010501093059 -:1005400009311581257F95027508810609381581C5 -:10055000257F950175088106050C0A38021581254D -:100560007F950175088106C0C005010906A1010536 -:100570000719E029E7150025019508750181029505 -:100580000175088101050819012905950575019175 -:10059000029501750391010507190029FF15002532 -:1005A000FF950675088100C011241FBECFEFDAE069 -:1005B000DEBFCDBF04B603FE24C080910404909139 -:1005C0000504A0910604B09107048730904BA74022 -:1005D000B04BB9F410920404109205041092060472 -:1005E0001092070414BE84B7877F84BF88E10FB6DA -:1005F000F89480936000109260000FBEE0E0F8E392 -:10060000099512E0A0E0B1E0EEE1F9E602C0059044 -:100610000D92A832B107D9F714E0A8E2B2E001C008 -:100620001D92A430B107E1F70E94A0130C948D3401 -:100630000C94000061110DC0FC018281882331F00F -:1006400085EE0E94671E0E94683003C085EE0E94FE -:100650002F1F80E090E008950E940F0E40E050E0D0 -:1006600069E070E080E091E00C94600F08950E94D2 -:1006700049036E9A769A8CE293E0892B11F00C94E0 -:100680002C03089586E393E0892B11F00C94360334 -:100690000895279A2F988FEF9FEF9093870080936C -:1006A00086008AE08093800089E1809381000C9429 -:1006B000113081110BC080918000877F8093800072 -:1006C00010928D0010928C002F9808952F988330EF -:1006D00041F4809180008860809380008FEF9FEFCD -:1006E00012C09091800098609093800023E030E0E9 -:1006F000281B3109220F331F8FEF9FEF02C0969501 -:1007000087952A95E2F790938D0080938C00089549 -:100710008B3B910568F4883A910530F5853A91054F -:10072000C0F48430910598F4019709F06FC071C04E -:10073000803E910508F46AC0883E910540F09C0116 -:10074000205F31092031310508F060C05CC09C0198 -:10075000A1C0853A910509F45FC0863A910509F474 -:100760005EC023E830E496C0883A910509F45AC087 -:10077000893A910509F459C08A3A910509F458C09B -:100780008B3A910509F457C08C3A910509F456C08B -:100790008D3A910509F455C0803B910509F454C088 -:1007A0008E3A910509F453C08F3A910509F452C06D -:1007B000813B910509F451C0823B910509F450C079 -:1007C000833B910509F44FC0843B910509F44EC069 -:1007D000853B910509F44DC0863B910509F44CC059 -:1007E000873B910509F44BC0883B910509F44AC049 -:1007F000893B910509F449C08A3B910509F048C03D -:100800002AE236E447C09C01306544C020E030E075 -:1008100041C021E030E03EC021E830E43BC022E8A6 -:1008200030E438C022EE34E435C029EE34E432C07E -:100830002AEE34E42FC025EB34E42CC026EB34E45C -:1008400029C027EB34E426C02CEC34E423C02DEC83 -:1008500034E420C023E835E41DC02AE835E41AC09A -:1008600022E935E417C024E935E414C021E236E476 -:1008700011C023E236E40EC024E236E40BC025E2C8 -:1008800036E408C026E236E405C027E236E402C0BA -:1008900020E034E4C90108959CE0799FF00111241F -:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 -:1008B000FF1FE25DFE4F25913491C9010895880F15 -:1008C000991F82559040FC0125913491C9010895EA -:1008D000880F991F825D9E4FFC0125913491C901BB -:1008E00008950E944C049C019A9581159F4110F433 -:1008F000C9010895C90190528115904128F4C90198 -:100900009F700E9468040895C90190538115904119 -:1009100020F4C9019927906C0895C901905440971B -:1009200028F4C9018F709927946D0895203180E4CF -:10093000380719F480E091ED0895213190E43907EA -:1009400019F480E090ED0895223140E4340719F461 -:1009500080E092ED0895233180E4380719F480E0B7 -:1009600093ED0895211590E5390799F40E945623D7 -:1009700040E065E088E491E00E94600F2FEF44E3DF -:100980008CE0215040408040E1F700C000000C9412 -:10099000FE29213090E5390731F48091F002816021 -:1009A0008093F0020895C90190558115904108F097 -:1009B00062C0432F55274F70552741305105F9F438 -:1009C000C90174E0880F991F7A95E1F78827937021 -:1009D000B901E3E0660F771FEA95E1F760767727C4 -:1009E000862B972B9C682370332702C0440F551F1A -:1009F0002A95E2F74F715527842B952B08954230A5 -:100A0000510529F4922F8827816F906A0895433009 -:100A10005105B9F4C90153E0880F991F5A95E1F7C0 -:100A2000807E97702370332741E050E002C0440F6E -:100A3000551F2A95E2F74F715527842B952B9C68FB -:100A400008954430510589F5C90143E0880F991F85 -:100A50004A95E1F7807E97702370332741E050E09C -:100A600002C0440F551F2A95E2F74F715527842B7A -:100A7000952B9A680895C90190568115904118F4F4 -:100A8000C901906F0895C90190578115904120F4D4 -:100A9000C9019F7090620895C901905881159041D5 -:100AA00020F4C9019F70906A0895203E3105E0F45A -:100AB000203C310568F52133310509F475C048F44F -:100AC0002932310509F46BC02A32310509F07BC0A7 -:100AD00075C02933310501F122383105E9F025339C -:100AE000310509F070C051C0233E3105B1F140F429 -:100AF000203E3105D1F0223E310509F064C01CC012 -:100B0000263E310579F1273E310509F05CC038C039 -:100B1000C9010E945F0408958091010380FD02C015 -:100B200081FF51C080EE90E04FC08091010380FFB3 -:100B3000F9CF89E390E048C08091010382FF0AC0A9 -:100B40008091010384FF03C080E090E03DC083EE0C -:100B500090E03AC082EE90E037C08091010382FFBE -:100B6000EFCFF8CF8091010383FF07C0809101038D -:100B700084FDEACF87EE90E027C086EE90E024C0A7 -:100B80008091010383FFF2CFF8CF8091010385FFAD -:100B900003C089E290E018C085E390E015C0809121 -:100BA000010385FDF9CFF5CF8091010386FF03C0D6 -:100BB0008AE290E009C081E390E006C080910103E1 -:100BC00086FDF9CFF5CFC9010E94880308950895E5 -:100BD0005F926F927F928F929F92AF92BF92CF92CD -:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 -:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 -:100C00002F5F3F4F4E018BE0880E911C60E070E03B -:100C100000E010E0E12CF12CC12CD12CA12CB12C46 -:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 -:100C3000A62DB52D872D01900D928A95E1F7F9012A -:100C4000819191919F01FC01E07FFF27E032F10546 -:100C500059F48F709927FA0102C0EE0FFF1F8A9591 -:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E -:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC -:100C8000DF2A29C0E034F10559F48F709927FA0161 -:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 -:100CA000E035F10559F48F709927FA0102C0EE0F73 -:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 -:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 -:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 -:100CE0008A2D8095892384B985B18A2985B997B1E0 -:100CF0008C2D8095892387B988B18C2988B99AB1C0 -:100D00008E2D809589238AB98BB18E298BB99DB19F -:100D1000802F809589238DB98EB1802B8EB990B3A9 -:100D2000862F8095892380BB81B3862B81BB2A9631 -:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC -:100D40000F91FF90EF90DF90CF90BF90AF909F906A -:100D50008F907F906F905F9008955F926F927F92D7 -:100D60008F929F92AF92BF92CF92DF92EF92FF92BB -:100D70000F931F93CF93DF93CDB7DEB768970FB66E -:100D8000F894DEBF0FBECDBF85B7806885BF85B73D -:100D9000806885BF0E94E8059E012F5F3F4F4E018E -:100DA00089E1880E911C60E070E000E010E0E12C29 -:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 -:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 -:100DD00001900D928A95E1F7F901819191919F011E -:100DE000FC01E07FFF27E032F10559F48F7099276D -:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 -:100E000037C0E033F10559F48F709927FA0102C019 -:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 -:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 -:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 -:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 -:100E50000E2B1F2B0DC0E036F10551F48F70992732 -:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F -:100E70002815390509F0A7CF94B18A2D80958923CB -:100E800084B985B18A2985B997B18C2D809589233C -:100E900087B988B18C2988B99AB18E2D809589231C -:100EA0008AB98BB18E298BB99DB1802F809589230A -:100EB0008DB98EB1802B8EB990B3862F8095892302 -:100EC00080BB81B3862B81BB10922902109228022D -:100ED000109233021092320210922B0210922A02C8 -:100EE000109235021092340210922D0210922C02B0 -:100EF000109237021092360210922F0210922E0298 -:100F0000109239021092380210923102109230027F -:100F100010923B0210923A0287E393E0892BB9F0DA -:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC -:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 -:100F40009F908F907F906F905F900C94370368967E -:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA -:100F60000F91FF90EF90DF90CF90BF90AF909F9048 -:100F70008F907F906F905F9008955F926F927F92B5 -:100F80008F929F92AF92BF92CF92DF92EF92FF9299 -:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 -:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 -:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 -:100FC0003AE0532E470101E010E048E1642E55E07D -:100FD000752EE3E9F1E0D401852D01900D928A95FB -:100FE000E1F7F701819191917F019C01207F3327E7 -:100FF0002032310589F424B18F709927A80102C0ED -:10100000440F551F8A95E2F7CA01242B24B995B1E4 -:101010008095892385B94FC02033310589F427B1E4 -:101020008F709927F80102C0EE0FFF1F8A95E2F733 -:10103000CF012E2B27B998B18095892388B93BC061 -:101040002034310589F42AB18F709927A80102C094 -:10105000440F551F8A95E2F7CA01242B2AB99BB188 -:10106000809589238BB927C02035310589F42DB1AE -:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 -:10108000CF012E2B2DB99EB1809589238EB913C027 -:101090002036310581F420B38F709927A80102C052 -:1010A000440F551F8A95E2F7CA01242B20BB91B348 -:1010B0008095892381BB50EA5A95F1F7BE016F5F95 -:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC -:1010D0001196462D01900D924A95E1F7FB01419141 -:1010E0005191BF01FA01E07FFF27E032F10511F4D1 -:1010F000E3B113C0E033F10511F4E6B10EC0E03402 -:10110000F10511F4E9B109C0E035F10511F4ECB1D4 -:1011100004C0E036F105B9F4EFB1F0E04F705527A7 -:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 -:10113000022E02C0440F551F0A94E2F702C040E09D -:1011400050E0842B952B2F5F3F4F2C30310509F059 -:10115000BCCFF601208131812817390721F0918316 -:101160008083709270010E94E805F2E0CF0ED11CDE -:10117000EA14FB0409F02DCF809170018823A1F1BE -:10118000815080937001882339F08FE99FE00197A7 -:10119000F1F700C0000028C0809132029091330224 -:1011A0009093290280932802809134029091350215 -:1011B00090932B0280932A028091360290913702FD -:1011C00090932D0280932C028091380290913902E5 -:1011D00090932F0280932E0280913A0290913B02CD -:1011E000909331028093300282E493E0892B11F0D6 -:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 -:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 -:10121000CF90BF90AF909F908F907F906F905F9096 -:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D -:10123000918108950895CF92DF92EF92FF920F93DC -:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 -:10125000F894DEBF0FBECDBF8C01862F642F88238C -:1012600079F0F80192812FE7482F992329F083E044 -:1012700093E00E94C41904C083E093E00E94D41953 -:10128000F80180818B3091F59181943009F0A8C2EA -:101290009281809173019923B1F08F5F80937301E4 -:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 -:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 -:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 -:1012D000BD4F01900D929A95E1F7E0917101F09167 -:1012E0007201EE0FFF1F21E332E093C08A3009F054 -:1012F000CBC0F8019181943009F072C29281809143 -:101300007301992309F473C081508093730196E4AB -:10131000E5EBF1E0DE01A551BE4F01900D929A95EB -:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA -:1013300031E02C0F3D1FE20FF31F60817181680FB8 -:10134000711D882777FD8095982F0E94AC3120E091 -:1013500030E040E451E40E94113120E030E040E808 -:1013600050E40E94A9309B01AC0160E070E080E095 -:1013700090E40E94C33221E230ED42E053E40E9447 -:1013800060324CE050E00E94BB0F20E04BE760E091 -:1013900083E093E00E94B41920E04BE761E083E032 -:1013A00093E00E94B41920E04BE762E083E093E011 -:1013B0000E94B41920E04BE763E083E093E00E94D1 -:1013C000B41920E04BE764E083E093E0C454DD4FC0 -:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 -:1013E0000F91FF90EF90DF90CF900C94B41996E49A -:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 -:10140000E1F7E0917101F0917201EE0FFF1F25EA03 -:1014100031E02C0F3D1FE20FF31F60817181680FD7 -:10142000711D882777FD8095982F0E94AC3120E0B0 -:1014300030E040E451E40E94113120E030E040E827 -:1014400050E40E94A9309B01AC0160E070E080E0B4 -:1014500090E40E94C33221E230ED42E053E40E9466 -:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F -:101470000FBECDBFDF91CF911F910F91FF90EF90E5 -:10148000DF90CF900C94BE0C893009F0D3C0F801E6 -:101490009181943009F0A4C19281992309F4A0C1EB -:1014A00080917101909172010196909372018093E5 -:1014B000710120E04BE760E083E093E00E94B41903 -:1014C00020E04BE761E083E093E00E94B41920E064 -:1014D0004BE762E083E093E00E94B41920E04BE721 -:1014E00063E083E093E00E94B41920E04BE764E0FE -:1014F00083E093E00E94B4190E94BE0C00E010E06B -:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 -:10151000BE4F9F2D01900D929A95E1F7E0917101D8 -:10152000F0917201E00FF11FEE0FFF1F2FE531E088 -:101530002C0F3D1FE20FF31F60817181680F711D39 -:10154000882777FD8095982F0E94AC3120E030E00D -:1015500040E451E40E94113120E030E040E850E4E2 -:101560000E94A9309B01AC0160E070E080E090E453 -:101570000E94C33221E230ED42E053E40E94603227 -:101580004CE050E00E94BB0F3FEF87EE93E03150FC -:1015900080409040E1F700C0000080917301E5EBCE -:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E -:1015B000E1F7E0917101F0917201E00FF11FEE0F80 -:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 -:1015D0007181680F711D882777FD8095982F0E9473 -:1015E000AC3120E030E040E451E40E94113120E0D1 -:1015F00030E040E850E40E94A9309B01AC0160E07B -:1016000070E080E090E40E94C33221E230ED42E0DD -:1016100053E40E9460320E94EB0C8FEF9CE701972D -:10162000F1F700C000000F5F1F4F0830110509F0EF -:1016300069CF94C1883009F0D3C0F801918194300A -:1016400009F0CEC09281992309F4CAC0809171013A -:10165000909172010197909372018093710120E043 -:101660004BE760E083E093E00E94B41920E04BE791 -:1016700061E083E093E00E94B41920E04BE762E070 -:1016800083E093E00E94B41920E04BE763E083E03D -:1016900093E00E94B41920E04BE764E083E093E01C -:1016A0000E94B4190E94BE0C00E010E056E4F52E32 -:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C -:1016C00001900D929A95E1F7E0917101F09172010C -:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 -:1016E000E20FF31F60817181680F711D882777FDFC -:1016F0008095982F0E94AC3120E030E040E451E426 -:101700000E94113120E030E040E850E40E94A9300E -:101710009B01AC0160E070E080E090E40E94C33285 -:1017200021E230ED42E053E40E9460324CE050E0B0 -:101730000E94BB0F3FEF87EE93E031508040904016 -:10174000E1F700C0000080917301E5EBF1E0DE01FC -:10175000A357BF4F9F2D01900D929A95E1F7E0910D -:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 -:1017700030E02C0F3D1FE20FF31F60817181680F75 -:10178000711D882777FD8095982F0E94AC3120E04D -:1017900030E040E451E40E94113120E030E040E8C4 -:1017A00050E40E94A9309B01AC0160E070E080E051 -:1017B00090E40E94C33221E230ED42E053E40E9403 -:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD -:1017D00000000F5F1F4F0830110509F069CFBEC030 -:1017E000F801228190917301222309F45DC026E45F -:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 -:10180000E1F7E0917101F0917201E80FF11DEE0F27 -:10181000FF1F27E430E02C0F3D1FE20FF31F608114 -:101820007181690F711D882777FD8095982F0E941F -:10183000AC3120E030E040E451E40E9411316B0112 -:101840007C01F801818165E070E0681B71098827DF -:1018500077FD8095982F0E94AC319B01AC01C701A8 -:10186000B6010E94A9309B01AC0160E070E080E00D -:1018700090E40E94C33221E230ED42E053E40E9442 -:1018800060324FE050E0C454DD4F0FB6F894DEBF35 -:101890000FBECDBFDF91CF911F910F91FF90EF90C1 -:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 -:1018B000119601900D922A95E1F7E0917101F09156 -:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 -:1018D0003D1FE20FF31F60817181690F711D882721 -:1018E00077FD8095982F0E94AC3120E030E040E4F5 -:1018F00051E40E9411316B017C01F801818165E0A6 -:1019000070E0681B7109882777FD8095982F0E94E9 -:10191000AC319B01AC01C701B6010E94A9309B010B -:10192000AC0160E070E080E090E40E94C33221E20C -:1019300030ED42E053E40E946032C454DD4F0FB6F4 -:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 -:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 -:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 -:101970000F91FF90EF90DF90CF9008951092870223 -:1019800010928602809171008D7F8093710080910A -:1019900090008F7780939000109248021092470237 -:1019A00010928002109281021092820210928302A1 -:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 -:1019C00011921192119211921D921D9282E0EE37A6 -:1019D000F807B1F708956F927F928F929F92AF921E -:1019E000BF92CF92DF92EF92FF920F931F93CF930C -:1019F000DF936B017C010EE712E04CE5A42E42E080 -:101A0000B42EC7E0D0E0A7019601F801929182912F -:101A1000729162918F010E940D31882349F02197C4 -:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB -:101A3000F8011082118212821382F5011182108244 -:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA -:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 -:101A600055816681778140835183628373831482B9 -:101A700015821682178212962D913C91139711961A -:101A80003C932E9313961C921E92129734961296A4 -:101A90008730910519F7C3CF809186029091870214 -:101AA000019797FD05C0909387028093860204C03A -:101AB0001092870210928602E0918602F0918702CE -:101AC0003097C9F4809171008D7F8093710080916F -:101AD00090008F7780939000109280021092810284 -:101AE000109282021092830210927F0210927E0264 -:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 -:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 -:101B1000FF1FE25BFD4FC081D18160908002709019 -:101B200081028090820290908302A7019601662D27 -:101B3000772D882D992D0E940D3187FF25C0262DE8 -:101B4000372D482D592DC701B6010E94A83020E03D -:101B500030E04AEF54E40E9411315B018C012A2DE0 -:101B60003B2D402F512F662D772D882D992D0E94CA -:101B7000A9303B014C01A7019601772D992D0E94B8 -:101B80000D31181664F72EC0A7019601662D772D2A -:101B9000882D992D0E945C32181634F5A701960104 -:101BA000662D772D882D992D0E94A83020E030E0F9 -:101BB0004AEF54E40E9411315B018C012A2D3B2D28 -:101BC000402F512F662D772D882D992D0E94A830FA -:101BD0003B014C01A7019601772D992D0E945C32A3 -:101BE00087FFECCF10924D02C0928002D09281020A -:101BF000E0928202F0928302D0937F02C0937E0231 -:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 -:101C1000BF90AF909F908F907F906F9008953E9A65 -:101C2000E1E7F0E080818D7F808382E08093900007 -:101C30008AE18093910008951F920F920FB60F9240 -:101C40001124CF92DF92EF92FF922F933F934F9305 -:101C50005F936F937F938F939F93AF93BF93CF9334 -:101C6000DF93EF93FF9380914702882309F479C0B3 -:101C700020E030E0A90160918002709181028091A2 -:101C80008202909183020E945C3218160CF069C0A7 -:101C900020E030E040E251E46091490270914A0254 -:101CA00080914B0290914C020E945C321816BCF459 -:101CB00080918402909185020196609186027091D4 -:101CC00087020E9448349093850280938402109288 -:101CD000490210924A0210924B0210924C02C0919B -:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC -:101CF000DD4F288139814A815B8160E074E284E7AD -:101D00009BE40E9411310E94793170939700609397 -:101D10009600288139814A815B8160E074E284E722 -:101D20009BE40E9411310E947931759567957093FB -:101D300099006093980020E030E040E85FE3609114 -:101D4000490270914A0280914B0290914C020E948C -:101D5000A9306093490270934A0280934B0290939A -:101D60004C0280914802882309F493C0C09043023A -:101D7000D0904402E0904502F090460220E030E02E -:101D8000A901C701B6010E945C321816F4F4A7013C -:101D9000960160E074E284E79BE40E9411310E94A6 -:101DA00079317093970060939600A701960160E0E7 -:101DB00074E284E79BE40E9411310E9479317595A9 -:101DC0006795709399006093980060913D027091BF -:101DD0003E026F5F7F4F70933E0260933D0280E052 -:101DE00090E00E94AA3120913F0230914002409140 -:101DF0004102509142020E945C3287FD4AC08091AC -:101E00003C028F5F80933C029091F0038917A0F011 -:101E10008091F503882319F010923C020DC0809147 -:101E200071008D7F80937100809190008F778093F7 -:101E30009000109248022DC0E091F103F091F2035E -:101E400080913C0298E0899FE00DF11D1124808172 -:101E50009181A281B3818093430290934402A09325 -:101E60004502B093460220E030E040E85EE3648142 -:101E70007581868197810E94603260933F027093E2 -:101E80004002809341029093420210923E021092CF -:101E90003D02FF91EF91DF91CF91BF91AF919F9163 -:101EA0008F917F916F915F914F913F912F91FF9013 -:101EB000EF90DF90CF900F900FBE0F901F9018956E -:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 -:101ED00080914702882331F04A8369830E94BE0CB7 -:101EE00069814A8181E0809348021093F203009354 -:101EF000F1036093F0034093F503109249021092AE -:101F00004A0210924B0210924C0210923C02F801CD -:101F10004081518162817381409343025093440216 -:101F2000609345027093460220E030E040E85EE3B3 -:101F300064817581868197810E94603260933F023F -:101F400070934002809341029093420210923E02AD -:101F500010923D02809171008260809371008091A7 -:101F600090008068809390000F900F90DF91CF9148 -:101F70001F910F9108956F927F928F929F92AF92CF -:101F8000BF92CF92DF92EF92FF920F931F93CF9366 -:101F9000DF936B017C01EA018091480281110E946C -:101FA000BE0C81E08093470220E030E0A901C70128 -:101FB000B6010E945C3218160CF09AC06090800244 -:101FC00070908102809082029090830220E030E045 -:101FD000A901662D772D882D992D0E940D31811133 -:101FE00028C0C0928002D0928102E0928202F092D8 -:101FF0008302D0937F02C0937E02809186029091EB -:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C -:10201000C082D182E282F382FC01EE0FFF1FE25BFD -:10202000FD4FD183C08301969093870280938602EF -:102030005FC0A7019601662D772D882D992D0E94EE -:102040000D3187FF25C0262D372D482D592DC7016D -:10205000B6010E94A83020E030E04AEF54E40E942C -:1020600011315B018C012A2D3B2D402F512F662D04 -:10207000772D882D992D0E94A9303B014C01A70195 -:102080009601772D992D0E940D31181664F7A9CF6E -:10209000A7019601662D772D882D992D0E945C321F -:1020A00018160CF09ECFA7019601662D772D882D6E -:1020B000992D0E94A83020E030E04AEF54E40E94BD -:1020C00011315B018C012A2D3B2D402F512F662DA4 -:1020D000772D882D992D0E94A8303B014C01A70136 -:1020E0009601772D992D0E945C3287FFECCF79CF36 -:1020F000809171008260809371008091900080686F -:1021000080939000DF91CF911F910F91FF90EF90FE -:10211000DF90CF90BF90AF909F908F907F906F9007 -:102120000895809191020895CF93DF9300D01F927C -:10213000CDB7DEB72091FA03243021F523E02983BF -:102140009B838A832093E9008FEF06C095ED9A95D3 -:10215000F1F70000882329F09091E800815095FF65 -:10216000F5CF8091E80085FF0DC040E050E063E0CE -:1021700070E0CE0101960E947E148091E8008E7777 -:102180008093E8000F900F900F90DF91CF9108950A -:10219000CF93DF9300D01F92CDB7DEB72091FA0323 -:1021A000243029F522E029839B838A8383E080936E -:1021B000E9008FEF06C095ED9A95F1F700008823AE -:1021C00029F09091E800815095FFF5CF8091E800CB -:1021D00085FF0DC040E050E063E070E0CE01019665 -:1021E0000E947E148091E8008E778093E8000F9023 -:1021F0000F900F90DF91CF9108952091FA03243032 -:10220000F9F422E02093E9002FEF06C035ED3A956E -:10221000F1F70000222329F03091E800215035FF2A -:10222000F5CF2091E80025FF0BC040E050E065E0CD -:1022300070E00E947E148091E8008E778093E80021 -:102240000895CF93DF93EC018091FA03843041F538 -:1022500081E08093E9008FEF06C095ED9A95F1F744 -:102260000000882329F09091E800815095FFF5CF78 -:102270008091E80085FF14C040E050E068E070E025 -:10228000CE010E947E148091E8008E778093E80052 -:1022900088E0FE01A9E8B2E001900D928A95E1F78D -:1022A000DF91CF910895BF92CF92DF92EF92FF928C -:1022B0000F931F93CF93DF937C01B62EE90100E0CB -:1022C00010E0C42ED12C0BC04991202F2B0D2F775D -:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 -:1022E0001D0594F3DF91CF911F910F91FF90EF9017 -:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 -:1023000077270C94B4190F931F93CF93C42F633086 -:10231000710509F04AC0842F807F803849F18039E7 -:1023200009F043C0622F6F7770E080E090E00E9478 -:10233000AC3120E030E040E451E40E9411319B01D7 -:10234000AC0160E070E080E090E40E94C3320F775F -:1023500010E023E0159507952A95E1F72DEC3CEC6C -:1023600042E053E40E946032A8010E94BB0F1DC0EE -:10237000622F6F7770E080E090E00E94AC3120E047 -:1023800030E040E451E40E9411319B01AC0160E077 -:1023900070E080E090E40E94C3322DEC3CEC42E01F -:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 -:1023B0001F910F910C94BE0CCF911F910F91089516 -:1023C0000F931F93CF93DF93CDB7DEB727970FB649 -:1023D000F894DEBF0FBECDBF8C0114C08A810E946D -:1023E0008E199A819D839B819E839C819F838111FD -:1023F0001EC089818430B1F08730A1F08630A1F011 -:102400008530A1F0BE016F5F7F4F84E791E00E94AD -:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 -:1024200067190DC083E003C082E001C081E0AE0106 -:102430004B5F5F4F682FC8010E94211AE3CF279698 -:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 -:102450000F910895EF92FF920F93CF93DF9300D0E7 -:1024600000D000D0CDB7DEB77B014A832B830C832D -:10247000842F2E834D830E948E192E814D818111D0 -:102480001BC082E0E816F10479F083E0E816F1045D -:1024900021F0EA94EF2821F50BC0073F11F487E003 -:1024A00001C084E089830BC0273FD9F786E0FACFCB -:1024B000473FB9F785E0F6CF42954F704983BE019B -:1024C0006F5F7F4F84E791E00E94B11C84E791E049 -:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 -:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 -:1024F0000F91FF90EF9008958091F903811109C029 -:102500000E946D160E94CA168091E200846080933A -:10251000E20008951092F9030895089508950C9427 -:102520006129809192028F5F8093920262E30E9400 -:102530002834911135C01092920280919302882321 -:1025400079F18091FA03843049F58091E9008F7028 -:102550009091EC0090FF02C090E801C090E0982BB1 -:1025600084E08093E9008091EB0080FF14C08091AB -:10257000EE0087FD03C00FC01092F1008091E800CB -:1025800085FDFACF8091E80080FF05C08091E800CA -:102590008E778093E8009F709093E90010929302E9 -:1025A000089542E061EC81E00E94E31542E061ECB5 -:1025B00082E00E94E31542E061EC83E00E94E315B3 -:1025C00042E261EC84E00E94E31542E361E885E0C9 -:1025D0000E94E31542E360E886E00C94E3158091E5 -:1025E000FC03833009F454C030F4813071F0823040 -:1025F00009F0A5C08CC08A3009F479C08B3009F489 -:102600005FC0893009F09BC020C08091FB03813AF4 -:1026100009F095C08091E800877F8093E800809161 -:10262000FF0390910004892B21F060E080E090E0AE -:1026300003C068E089E892E070E00E941C15809178 -:10264000E8008B778093E80008958091FB03813246 -:1026500009F075C08091FF0390910004892B09F067 -:102660006EC08091E800877F8093E80005C080916C -:10267000FA03882309F463C08091E80082FFF7CF52 -:102680008091F100809391028091E8008B7753C094 -:102690008091FB03813A09F052C08091FF03909131 -:1026A0000004892B09F04BC08091E800877F80935C -:1026B000E8008091E80080FFFCCF80918A0136C05D -:1026C0008091FB038132D9F58091FF039091000442 -:1026D000892BA9F58091E800877F8093E8000E940C -:1026E0001A168091FD0380938A010C9456238091E1 -:1026F000FB03813221F58091E800877F8093E80019 -:102700000E941A168091FE0380938802089580919A -:10271000FB03813AA1F48091E800877F8093E80071 -:102720008091E80080FFFCCF809188028093F100C7 -:102730008091E8008E778093E8000C941A16089533 -:1027400083E093E00E94F0196AE272E183E093E093 -:102750000E94461A60EE71E183E093E00E944A1AFB -:1027600084B7877F84BF88E10FB6F89480936000B8 -:10277000109260000FBE90E080E80FB6F89480934E -:102780006100909361000FBE0E94741D0E946D163F -:102790000E94CA168091E20084608093E2007894DF -:1027A00063E871E183E093E00E94EC196CE771E16A -:1027B00083E093E00E94E41963E571E183E093E034 -:1027C0000E94E8190E940F0E0E9467190E94761D50 -:1027D00080E891E00E94201D0BC00E941E2980917C -:1027E000F803882329F00E94492981110E94681466 -:1027F0008091FA03853089F383E093E00E94F91B0E -:102800000E94801DF5CF292F332723303105B1F0E9 -:102810004CF42130310509F44DC02230310509F066 -:102820004EC007C02132310541F12232310591F10C -:1028300046C0E0EDF0E084EE93E045C0992781309A -:10284000910569F08230910589F0892B09F037C034 -:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 -:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 -:10287000E491F0E086E893E026C0643000F5E62FAE -:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF -:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 -:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA -:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 -:1028C000F0E080E090E0DA018D939C93CF010895D1 -:1028D00080E189BD82E189BD09B400FEFDCF809110 -:1028E000D8008F7D8093D8008091E0008260809333 -:1028F000E0008091E00081FDFCCF0895BF92CF926F -:10290000DF92EF92FF920F931F93CF93DF937C019F -:102910008B01EA010E943B16B82E811133C020972B -:1029200031F028813981021B130BE20EF31EC12CFA -:10293000D12C23C08091E80085FD15C08091E8006E -:102940008E778093E800209749F0888199818C0DDB -:102950009D1D9983888325E0B22E14C00E943B16EA -:10296000882359F00EC0F70181917F018093F10017 -:1029700001501109FFEFCF1ADF0A01151105D1F639 -:1029800001C0B82E8B2DDF91CF911F910F91FF9039 -:10299000EF90DF90CF90BF900895BF92CF92DF92DB -:1029A000EF92FF920F931F93CF93DF937C018B01E4 -:1029B000EA010E943B16B82E811133C0209731F0F6 -:1029C00028813981021B130BE20EF31EC12CD12C7E -:1029D00023C08091E80085FD15C08091E8008B77C9 -:1029E0008093E800209749F0888199818C0D9D1D86 -:1029F0009983888345E0B42E14C00E943B16882337 -:102A000059F00EC08091F100F70181937F010150D0 -:102A10001109FFEFCF1ADF0A01151105D1F601C028 -:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA -:102A3000DF90CF90BF90089540910104509102041F -:102A40004617570748F06115710539F44091E800C1 -:102A50004E774093E80001C0BA01FC0140E033C06A -:102A60008091FA03882309F444C0853009F443C0F7 -:102A70008091E80083FD41C08091E80082FD33C071 -:102A80008091E80080FF1FC09091F3008091F200D8 -:102A9000392F20E0A901482BCA0106C0419140937B -:102AA000F1006150710901966115710519F08830C6 -:102AB0009105A0F341E0089709F040E08091E8001B -:102AC0008E778093E8006115710551F64111C8CFEA -:102AD0000AC08091FA03882361F0853061F080910B -:102AE000E80083FD0AC08091E80082FFF2CF80E019 -:102AF000089582E0089583E0089581E0089540916B -:102B00000104509102044617570748F061157105FA -:102B100039F44091E8004E774093E80001C0BA01D3 -:102B2000FC0140E034C08091FA03882309F445C0D9 -:102B3000853009F444C08091E80083FD42C0809153 -:102B4000E80082FD34C08091E80080FF20C09091B1 -:102B5000F3008091F200392F20E0A901482BCA012F -:102B600007C044914093F10031966150710901967C -:102B70006115710519F08830910598F341E00897C7 -:102B800009F040E08091E8008E778093E8006115BD -:102B9000710549F64111C7CF0AC08091FA03882315 -:102BA00061F0853061F08091E80083FD0AC080917A -:102BB000E80082FFF2CF80E0089582E0089583E08C -:102BC000089581E00895982F2CC09093E9009817FC -:102BD00039F07091EC002091ED005091F00003C0AD -:102BE000242F762F50E021FD02C09F5F1AC0309144 -:102BF000EB003E7F3093EB003091ED003D7F309352 -:102C0000ED003091EB0031603093EB007093EC00FD -:102C10002093ED005093F0002091EE0027FDE5CFCA -:102C200007C0973090F28F708093E90081E008959B -:102C300080E008958091FB0387FD05C08091E80046 -:102C400080FF0EC012C08091E80082FD05C0809117 -:102C5000FA038111F8CF08958091E8008B7708C0BE -:102C60008091FA038111EACF08958091E8008E7770 -:102C70008093E80008958091E4009091E50045E696 -:102C80002091EC0020FD1FC023C02091FA032223D5 -:102C900091F0253091F02091EB0025FD10C020919E -:102CA000E4003091E5002817390751F34150C9017C -:102CB00039F784E0089582E0089583E0089581E083 -:102CC000089580E008952091E80020FFDECFF9CF3D -:102CD0002091E80022FFD9CFF4CF0E94DB160E949A -:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 -:102CF00080818F77808319BCA7EDB0E08C918E7FA7 -:102D00008C9380818F7E80831092F90308950F93B6 -:102D10001F93CF93DF930E94DB160E94E316C8ED4A -:102D2000D0E088818F7788838881806888838881D4 -:102D30008F7D888319BC1092FA031092F6031092CB -:102D4000F8031092F70300EE10E0F80180818B7F0A -:102D5000808388818160888342E060E080E00E9417 -:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B -:102D7000808181608083808188608083F801808188 -:102D80008E7F8083888180618883DF91CF911F91BE -:102D90000F910895E8EDF0E080818F7E8083E7ED6C -:102DA000F0E080818160808384E082BF81E0809355 -:102DB000F9030C948716E8EDF0E080818E7F808324 -:102DC0001092E20008951092DA001092E100089546 -:102DD0001F920F920FB60F9211242F933F934F9390 -:102DE0005F936F937F938F939F93AF93BF93EF9373 -:102DF000FF938091E10082FF0BC08091E20082FF8F -:102E000007C08091E1008B7F8093E1000E949112C6 -:102E10008091DA0080FF1FC08091D80080FF1BC026 -:102E20008091DA008E7F8093DA008091D90080FF54 -:102E30000DC080E189BD82E189BD09B400FEFDCFEE -:102E400081E08093FA030E947C1205C019BC1092A5 -:102E5000FA030E948A128091E10080FF19C08091DC -:102E6000E20080FF15C08091E2008E7F8093E20037 -:102E70008091E20080618093E2008091D8008062BE -:102E80008093D80019BC85E08093FA030E948E12CB -:102E90008091E10084FF30C08091E20084FF2CC06B -:102EA00080E189BD82E189BD09B400FEFDCF80913A -:102EB000D8008F7D8093D8008091E1008F7E809331 -:102EC000E1008091E2008F7E8093E2008091E20039 -:102ED00081608093E2008091F603882311F084E002 -:102EE00007C08091E30087FF02C083E001C081E05A -:102EF0008093FA030E948F128091E10083FF29C022 -:102F00008091E20083FF25C08091E100877F80935C -:102F1000E10082E08093FA031092F6038091E100D1 -:102F20008E7F8093E1008091E2008E7F8093E200AB -:102F30008091E20080618093E20042E060E080E006 -:102F40000E94E3158091F00088608093F0000E9459 -:102F50008D12FF91EF91BF91AF919F918F917F91D2 -:102F60006F915F914F913F912F910F900FBE0F90F6 -:102F70001F9018951F920F920FB60F9211242F9346 -:102F80003F934F935F936F937F938F939F93AF93F1 -:102F9000BF93CF93EF93FF938091E9008F7090914F -:102FA000EC0090FF02C090E801C090E0C92FC82B50 -:102FB0001092E9008091F000877F8093F000789470 -:102FC0000E94FE171092E9008091F00088608093C3 -:102FD000F000CF70C093E900FF91EF91CF91BF91C6 -:102FE000AF919F918F917F916F915F914F913F91A1 -:102FF0002F910F900FBE0F901F9018951F93CF9396 -:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 -:10301000CDBFEBEFF3E08091F100819324E0E3304A -:10302000F207C9F70E94EF128091E80083FF37C1D1 -:103030008091FB039091FC03953009F488C038F42B -:103040009130B1F170F0933009F029C131C098305E -:1030500009F4F8C0993009F404C1963009F01FC191 -:103060009DC0803821F0823809F019C108C08091D4 -:10307000F7039091F803992389F082600FC0809143 -:10308000FF03909100048F7099278093E90080914D -:10309000EB0085FB882780F91092E9009091E80009 -:1030A000977F9093E8008093F1001092F100D5C0D3 -:1030B000882319F0823009F0F2C08F7121F082303C -:1030C00009F0EDC00BC08091FD03813009F0E7C02D -:1030D000933009F080E08093F8032FC08091FD03C6 -:1030E00081112BC08091FF03909100048F7099276C -:1030F000009709F4D4C08093E9002091EB0020FFF1 -:103100001CC02091FC03233021F48091EB008062ED -:1031100012C09091EB0090619093EB0021E030E0C1 -:1031200001C0220F8A95EAF72093EA001092EA0084 -:103130008091EB0088608093EB001092E900809111 -:10314000E800877F8093E8000E941A16A8C08111CA -:10315000A6C08091FD039091FE038F779927182FC9 -:103160009091E3009078982B9093E3008091E80091 -:10317000877F8093E8000E941A168091E80080FF04 -:10318000FCCF8091E30080688093E300112311F06D -:1031900083E001C082E08093FA0381C080588230CE -:1031A00008F07DC08091FD039091FE038C3D23E0EB -:1031B000920779F583E08A838AE289834FB7F8948E -:1031C000DE01139620E03EE051E2E32FF0E0509361 -:1031D0005700E49120FF03C0E295EF703F5FEF706E -:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 -:1031F0009D932F5F243149F74FBF8091E800877F6F -:103200008093E8006AE270E0CE0101960E941C15EE -:1032100013C0AE01455D5F4F6091FF030E94031430 -:103220000097E9F12091E800277F2093E800BC0196 -:103230008BA59CA50E947F158091E8008B778093D9 -:10324000E8002DC0803859F58091E800877F809391 -:10325000E8008091F6038093F1008091E8008E777A -:1032600071CF81111CC09091FD039230C0F4809108 -:10327000E800877F8093E8009093F6030E941A1677 -:103280008091F603811104C08091E30087FF02C0A2 -:1032900084E001C081E08093FA030E94D112809102 -:1032A000E80083FF0AC08091E800877F8093E800F0 -:1032B0008091EB0080628093EB00AC960FB6F8949F -:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 -:1032D0008091FA038823B1F08091E9008F7090917A -:1032E000EC0090FF02C090E801C090E0C92FC82B0D -:1032F0001092E9008091E80083FD0E94FE17CF70D4 -:10330000C093E900CF910895881F8827881F0895EA -:1033100091E0883F08F490E0892F0895982F907FDE -:10332000903B99F038F4903981F0903A71F09038F0 -:10333000C9F40BC0903DA1F018F4903C99F410C072 -:10334000903E19F0903F71F402C083E00895E82F99 -:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 -:1033600082E0089580E008950F932F774F776F7074 -:10337000606BDC01ED91FC91022F242F462F63E05E -:1033800070E009950F9108950F932F774F776F7025 -:103390006069DC01ED91FC91022F242F462F63E040 -:1033A00070E009950F9108950F932F774F776F7005 -:1033B0006068DC01ED91FC91022F242F462F63E021 -:1033C00070E009950F910895FC017383628308955D -:1033D000FC01738F628F0895FC01758F648F0895CF -:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A -:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 -:103400001D821C821F821E82198618861B861A86C0 -:103410001D861C861F861E86198A188A1B8A1A8A90 -:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 -:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 -:103440000895CF92DF92FF920F931F93CF93DF9354 -:103450001F92CDB7DEB7F62E6A018C0108511F4FBF -:1034600008C0F60161916F01C80149830E94341CB4 -:1034700049818C2D841B8F15A0F30F90DF91CF9184 -:103480001F910F91FF90DF90CF900895FC01718301 -:1034900060830895FC0171A360A30895AF92BF9269 -:1034A000CF92DF92EF92FF920F931F93CF93DF9310 -:1034B00000D01F92CDB7DEB77C016B01142FB22E66 -:1034C000A02EDC0195968C9195978430F1F45A9654 -:1034D000ED91FC915B97309709F4D8C0CB0101972F -:1034E00063E070E00E943434DB01AA0FBB1FA60F1B -:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 -:103500003F4FBD01C7010995B1C06230710509F493 -:1035100053C06330710529F06130710509F09CC01A -:1035200083C0842F807F803A01F130F48038B9F075 -:10353000803909F0ABC00DC0803EE9F0803F09F151 -:10354000803B09F0A3C0D7011296ED91FC9113972F -:1035500023C0D7011496ED91FC9115971DC0D7019A -:103560001696ED91FC91179717C0D7011896ED911B -:10357000FC91199711C0D7011A96ED91FC911B97F8 -:103580000BC0423F09F082C0D7011C96ED91FC911F -:103590001D97309731F47AC0309709F477C0123F05 -:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C -:1035B0004B2DC70109955AC0842F807F803D59F05B -:1035C000803F79F0803C09F061C0D7011E96ED91F3 -:1035D000FC911F9719C0D7015096ED91FC9151971E -:1035E00013C0433F31F4D7015296ED91FC915397AC -:1035F00008C0413F09F04AC0D7015496ED91FC91B3 -:103600005597309741F442C0309709F43FC0133FBB -:1036100011F0113F19F44B2D612F03C0612F6F7012 -:103620004B2DC701099522C0842F0E948819882339 -:1036300031F0D7015696ED91FC91579707C0163F90 -:1036400029F5D7015896ED91FC9159973097F1F0F3 -:10365000612FC70109950AC064307105A8F416C02E -:103660000A2D2B2D412FB601C7010995D7015E9672 -:10367000ED91FC915F97309789F00A2D2B2D412F0A -:10368000B601C70109950AC0C12CD12CD7015C969F -:10369000ED91FC915D97309719F7E8CF0F900F905F -:1036A0000F90DF91CF911F910F91FF90EF90DF90DE -:1036B000CF90BF90AF900895EF92FF920F931F931A -:1036C000CF93DF93EC01162F862F0E948819882351 -:1036D00069F0FDA081E08DA300E020E0412F61E0D2 -:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 -:1036F00084194DA1882309F440C0443029F01AA34D -:1037000021E030E03FA32EA3812F0E948E1981304B -:1037100031F070F0823051F0833059F507C08DA33D -:1037200000E020E0412F61E070E01EC08DA35AC090 -:10373000103F19F0173FE9F404C084E08DA31AA3E9 -:103740003FC02EA13FA1C90163E070E00E94343464 -:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 -:103760006EA30CA12BA14AA1CE010E944E1A1DA24C -:1037700039C01DA21FA21EA235C0442399F12EA15B -:103780003FA1C90163E070E00E9434347C01FE0176 -:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC -:1037A0008130910591F082E0E816F104D9F40CA182 -:1037B0002BA14AA1CE010E944E1A8DA1843091F016 -:1037C00081E090E09FA38EA30DC0423059F400E049 -:1037D0002BA14AA1CE010E944E1A8DA1843011F076 -:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A -:1037F0000895CF92DF92EF92FF920F931F93CF9392 -:10380000DF93EC01E8A1F9A1309709F009958E0149 -:1038100008511F4FC8010E94661CE12CF12CC82ED4 -:10382000D12C0FC060E0C8010E947A1C682FCE0125 -:103830000E945C1B61E0C8010E948B1C8FEFE81A9C -:10384000F80AEC14FD0470F3DF91CF911F910F91F2 -:10385000FF90EF90DF90CF900895FC014283748336 -:1038600063831182108208950F931F93CF93DF9388 -:10387000EC01062F0E94AC1C182F298130E0C901F1 -:1038800001966A8170E00E944834488150E08417B4 -:10389000950729F4812F0E94AF1C80E012C0EB81B4 -:1038A000FC81E20FF31F00832981822F90E00196B3 -:1038B0006A8170E00E9448348983812F0E94AF1C86 -:1038C00081E0DF91CF911F910F910895CF93DF9306 -:1038D000EC010E94AC1C29819881291710F0C22F9D -:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E -:1038F000CF910895FC012081862F90E0820F911DC9 -:10390000628170E00E9448340380F481E02DE80F6A -:10391000F91F808108950F931F93CF93DF931F9218 -:10392000CDB7DEB78C0169830E94AC1C482FF8012B -:1039300080816981262F30E0280F311D6281C90105 -:1039400070E00E9448348083842F0F90DF91CF91E4 -:103950001F910F910C94AF1C8FB7F89408958FBFEF -:103960000895FC01CB012091FA032430B1F42181A8 -:103970002F702093E90040E050E064E070E00E9486 -:103980007E1481110BC09091E80095FD07C09091C5 -:10399000E8009E779093E800089582E008952091D2 -:1039A000FA032430A9F4FC0181818F708093E9002F -:1039B0003091F3002091F200932F80E0822B892B2D -:1039C00049F08091E8008E778093E8000C943B16D4 -:1039D00082E0089580E008952091FA03243051F4A4 -:1039E000FC0121812F702093E9002091E80020FD47 -:1039F0000C94CF1C0895FC01CB012091FA032430D4 -:103A000011F080E0089526812F702093E900209125 -:103A1000E80022FFF6CF2091E80025FFF2CF40E03A -:103A200050E064E070E00E94CD148091E80085FDD4 -:103A300005C08091E8008B778093E80081E00895CD -:103A400090939502809394020895E0919402F091EE -:103A50009502309721F00190F081E02D099480E0EB -:103A60000895E0919402F0919502309721F0028040 -:103A7000F381E02D09940895E0919402F09195026C -:103A8000309721F00480F581E02D0994089520916C -:103A90009602309197028217930771F090939702E4 -:103AA00080939602E0919402F0919502309721F074 -:103AB0000680F781E02D09940895209198023091B5 -:103AC00099028217930771F090939902809398025C -:103AD000E0919402F0919502309721F00084F185F5 -:103AE000E02D0994089508950C94731D0E94952962 -:103AF0000E94AD060E94692A0C9411300C94E705CF -:103B00005F926F927F928F929F92AF92BF92CF926D -:103B1000DF92EF92FF920F931F93CF93DF93CDB776 -:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 -:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 -:103B4000A394B12C502E802F0E9411093C01F60144 -:103B5000E190F1906F01E826F926E114F10431F4C7 -:103B60000F5F1F4F0530110569F73AC08091F002D1 -:103B700081FD0E941A0920E030E04501022E02C0BA -:103B8000880C991C0A94E2F7C4018E219F21892B8D -:103B900009F12E835F826820792081E0672809F48B -:103BA00080E088870E949E298160782F9A87898784 -:103BB0004E815F8168858A850E94391EF801EE0F6B -:103BC000FF1FE656FD4F80819181882599259183BD -:103BD000808316C02F5F3F4F2C30310571F6C0CF68 -:103BE0008FEF89838A831B820E949E298160782FB0 -:103BF0009D838C8349815A816B818D810E94391EFE -:103C00000E94562D1091A4020E94251D1817D9F06C -:103C10000E94251D8093A4022A960FB6F894DEBF59 -:103C20000FBECDBFDF91CF911F910F91FF90EF900D -:103C3000DF90CF90BF90AF909F908F907F906F90CC -:103C40005F900C947E1D2A960FB6F894DEBF0FBECF -:103C5000CDBFDF91CF911F910F91FF90EF90DF903B -:103C6000CF90BF90AF909F908F907F906F905F901C -:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 -:103C8000DEBF0FBECDBF4F83588769877A878B878A -:103C9000DE01119686E0FD0111928A95E9F785E033 -:103CA000FE01379601900D928A95E1F749815A817C -:103CB0006B817C818D819E810E9415262B960FB68B -:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 -:103CD000C82F882309F4C1C0823859F40E94251DD9 -:103CE00081FDBBC089E30E947C280E94F82889E3FB -:103CF0000CC0833879F40E94251D80FDAEC083E599 -:103D00000E947C280E94F82883E50E949E28CF917B -:103D10000C94F828843859F40E94251D82FD9DC01A -:103D200087E40E947C280E94F82887E4EECF845024 -:103D3000813A48F48C2F0E94732F81118EC08C2FF2 -:103D40000E947C28E4CF8C2F805E883050F4C770AE -:103D500081E090E001C0880FCA95EAF70E94BF2871 -:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD -:103D700031F482E890E005C081E890E002C083E879 -:103D800090E0CF910C94471D8C2F885A833108F016 -:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B -:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB -:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B -:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 -:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF -:103DE00092E038C082EE90E035C089EE90E032C0BB -:103DF0008AEE90E02FC085EB90E02CC086EB90E03F -:103E000029C087EB90E026C08CEC90E023C08DECBD -:103E100090E020C083E891E01DC08AE891E01AC0DC -:103E200082E991E017C084E991E014C081E292E058 -:103E300011C083E292E00EC084E292E00BC085E202 -:103E400092E008C086E292E005C087E292E002C0FC -:103E500080E090E0CF910C945D1DCF910895882370 -:103E600009F44DC0823859F40E94251D81FF47C0D6 -:103E700089E30E947C280E94F82889E30CC08338DB -:103E800071F40E94251D80FF3AC083E50E947C28C2 -:103E90000E94F82883E50E949E280C94F828843814 -:103EA00059F40E94251D82FF2AC087E40E947C28C5 -:103EB0000E94F82887E4EFCF982F9450913A08F4A5 -:103EC000EACF982F905E983058F4282F277081E021 -:103ED00090E001C0880F2A95EAF70E94C528DDCF3F -:103EE000982F955A933020F480E090E00C94471D71 -:103EF000885A833120F480E090E00C945D1D089591 -:103F0000882321F00E94BF280C94F8280895882364 -:103F100021F00E94C5280C94F8280895BF92CF92F2 -:103F2000DF92EF92FF920F931F93CF93DF93CDB762 -:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A -:103F400085E0F801DE01119601900D928A95E1F766 -:103F5000F80130812181F280558152955F70838113 -:103F60009481892B39F02F3F41F481E090E03F3F6D -:103F700031F003C081E090E002C080E090E080FD7D -:103F800073C339832A8389819A815E830E94392889 -:103F9000B92E8F830E9438280E9460272B2D2295EE -:103FA0002F7030E05E816F812530310509F4E6C065 -:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA -:103FC0008F70223031050CF045C017C02C30310500 -:103FD0004CF42A3031050CF0E7C12830310509F0E6 -:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 -:103FF0002F30310509F038C323C3182F411101C0F8 -:1040000002C01295107FFF2059F0112309F46BC2F2 -:10401000812F6F830E94CF280E94F8286F8163C28E -:10402000862F0E942F1F112309F41EC3812F0E9487 -:10403000D52827960FB6F894DEBF0FBECDBFDF910F -:10404000CF911F910F91FF90EF90DF90CF90BF9095 -:104050000C94F828403211F08295807F662319F085 -:10406000613071F523C0FF20B1F0511101C032C0A1 -:10407000513081F527960FB6F894DEBF0FBECDBF45 -:10408000DF91CF911F910F91FF90EF90DF90CF9034 -:10409000BF900C94DF28511101C003C0513009F4C6 -:1040A000E3C28E830E94E2288E819AC1FF2021F014 -:1040B000563008F0D9C20EC0553008F0D5C290C1B4 -:1040C000FF20C9F0552331F0F801958190FF0BC214 -:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 -:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 -:1040F000BF900C94801F552309F472C109C22B2D67 -:1041000026952695237030E02115310529F02130C0 -:10411000310509F0A9C219C0FF2021F0862F9B2D7F -:10412000937002C080E090E027960FB6F894DEBF4F -:104130000FBECDBFDF91CF911F910F91FF90EF90F8 -:10414000DF90CF90BF900C94471DFF2021F0862F69 -:104150009B2D937002C080E090E027960FB6F894F4 -:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA -:10417000EF90DF90CF90BF900C945D1D862FFF20B5 -:1041800019F00E945C2C02C00E94C42C27960FB626 -:10419000F894DEBF0FBECDBFDF91CF911F910F917D -:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 -:1041B000837009F079C0F11057C2262F22952695F9 -:1041C0002770220F220F862F8F70C82ED12CE12C42 -:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A -:1041E000D2F764FF10C06FE070E080E090E004C0A0 -:1041F000660F771F881F991F2A95D2F760957095D3 -:104200008095909503C060E070E0CB012B2D269542 -:1042100026952370422F50E042305105D9F04330AB -:10422000510569F16C297D298E299F29413051055D -:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 -:10424000CF911F910F91FF90EF90DF90CF90BF9093 -:104250000C9475276C297D298E299F2927960FB6E6 -:10426000F894DEBF0FBECDBFDF91CF911F910F91AC -:10427000FF90EF90DF90CF90BF900C9487270E9423 -:104280007527C701B60127960FB6F894DEBF0FBE9B -:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 -:1042A000CF90BF900C946327FF2019F08B2D817065 -:1042B00001C08695882309F4D7C1262F229526951B -:1042C0002770220F220F862F8F70C82ED12CE12C41 -:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 -:1042E000D2F764FF10C06FE070E080E090E004C09F -:1042F000660F771F881F991F2A95D2F760957095D2 -:104300008095909503C060E070E0CB012B2D269541 -:1043100026952370422F50E042305105D9F04330AA -:10432000510569F16C297D298E299F29413051055C -:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 -:10434000CF911F910F91FF90EF90DF90CF90BF9092 -:104350000C9414286C297D298E299F2927960FB645 -:10436000F894DEBF0FBECDBFDF91CF911F910F91AB -:10437000FF90EF90DF90CF90BF900C9426280E9482 -:104380001428C701B60127960FB6F894DEBF0FBEFA -:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 -:1043A000CF90BF900C940228603F59F120F4603EFA -:1043B00008F494C008C0623F09F467C0F0F1633F9D -:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 -:1043D00021F00E94AD27812F7DCE0E94C827812F1A -:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 -:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 -:10440000871FFF20B1F0553008F02EC18B2D8F7122 -:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 -:104420001F910F91FF90EF90DF90CF90BF900C9471 -:10443000E727563008F018C1E9CFFF2099F08B2DFF -:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 -:10445000CF911F910F91FF90EF90DF90CF90BF9081 -:104460000C94AD278B2D8F7127960FB6F894DEBF75 -:104470000FBECDBFDF91CF911F910F91FF90EF90B5 -:10448000DF90CF90BF900C94C827F110EBCFD7CF1F -:10449000FF2099F08B2D8F7127960FB6F894DEBF11 -:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 -:1044B000DF90CF90BF900C949E2727960FB6F8946C -:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 -:1044D000EF90DF90CF90BF900C949927FF20A9F028 -:1044E000552309F4ACCF862F27960FB6F894DEBF7C -:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 -:10450000DF90CF90BF900C94671E552309F4AACF7B -:10451000862F27960FB6F894DEBF0FBECDBFDF9172 -:10452000CF911F910F91FF90EF90DF90CF90BF90B0 -:104530000C942F1F4B2D4F70C8010E941A03279611 -:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 -:104550000F91FF90EF90DF90CF90BF900C94CB26FF -:10456000F11082C09B2D9F70492F50E042305105C1 -:1045700099F144F44115510569F04130510509F0B4 -:1045800073C019C043305105C1F14430510509F0E1 -:104590006BC044C027960FB6F894DEBF0FBECDBFE8 -:1045A000DF91CF911F910F91FF90EF90DF90CF900F -:1045B000BF900C94223027960FB6F894DEBF0FBE42 -:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 -:1045D000CF90BF900C94393027960FB6F894DEBF79 -:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 -:1045F000DF90CF90BF900C94553027960FB6F8946B -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C946830862F279654 -:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 -:104630000F91FF90EF90DF90CF90BF900C948C3053 -:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 -:10465000CDBFDF91CF911F910F91FF90EF90DF9031 -:10466000CF90BF900C941B0927960FB6F894DEBF2D -:104670000FBECDBFDF91CF911F910F91FF90EF90B3 -:10468000DF90CF90BF9008950E94DC280E94B1284F -:104690000E94F8280E94F72D0E944B2D80E090E0A8 -:1046A0000E94471D80E090E00C945D1D0E94CC2884 -:1046B0000C9444230E943928292F22952F7030E032 -:1046C0002C3031054CF42A3031056CF4225031097C -:1046D0002230310590F407C02C30310551F02F30D5 -:1046E000310559F406C0803E10F0803F31F481E07E -:1046F000089593FB882780F9089580E00895CF936B -:10470000DF9300D000D01F92CDB7DEB70F900F908F -:104710000F900F900F90DF91CF910895CF93DF937B -:1047200000D000D000D0CDB7DEB726960FB6F894F3 -:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 -:10474000DF93C091DB0216E012C0D0E01C9FF001A5 -:104750001D9FF00D1124E555FD4F4081518162816F -:104760007381848195810E948E232196C7708091E8 -:10477000DC02C813EACFDF91CF911F9108954091D9 -:10478000A5025091A6026091A7027091A8028091A3 -:10479000A9029091AA020C948E230F931F93CF939A -:1047A000DF938091AA0282958F7009F069C0809191 -:1047B000A702882309F464C0A091DB02D091DC0237 -:1047C000B091A502C091A6028091A8029091A90281 -:1047D00021E030E0BF3F11F020E030E0122FBC01BB -:1047E0006095709506E04AC0009721F0CF3F29F40C -:1047F000212F05C021E030E002C020E030E020FDA4 -:104800003BC04A2F50E0049FF001059FF00D11249A -:10481000E555FD4F2181C2132FC02081B2132CC05A -:104820002281211129C0238134812817390718F0EA -:10483000281B390B02C0260F371F283C3105E0F436 -:104840008091AA028F7080618093AA0286E0849F83 -:10485000F001859FF00D1124E055FD4F80818F7090 -:104860008061808385EA92E00E948E1FDF91CF9164 -:104870001F910F910C949E23AF5FA770AD13B4CF1F -:10488000DF91CF911F910F910895EF92FF920F93B7 -:104890001F93CF93DF93CDB7DEB762970FB6F8942F -:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 -:1048B00001900D928A95E1F7D8014C9111965C9187 -:1048C000119712966C9112971396ED90FC90149795 -:1048D0007091A502E091A6028091A8029091A90290 -:1048E000009739F0EF3F41F421E030E07F3F31F0B5 -:1048F00003C021E030E002C020E030E020FD5CC1D8 -:104900002091A702222309F4F1C0E816F90628F045 -:104910009701281B390BC90104C0809590958E0D15 -:104920009F1D883C910508F098C08091AA02982F9D -:10493000907F09F064C0E51314C0741312C06111B4 -:1049400010C08F7080618093AA020E94BF2385EA05 -:1049500092E00E948E1F8091AA02D80115968C9336 -:1049600043C1EF2839F05F3F41F481E090E04F3FD1 -:1049700031F003C081E090E002C080E090E080FD73 -:1049800003C081E0862702C080E090E080FF2EC057 -:104990008091DB022091DC0236E013C090E0389F6A -:1049A000F001399FF00D1124E555FD4F718157132A -:1049B00006C07081471303C07281671317C0019648 -:1049C00087708213EBCF12C19F7059F0882309F4CE -:1049D0000BC107C09F7029F0F8019581907F09F401 -:1049E00003C1805E883008F4FFC0D2C0662309F49A -:1049F000FBC08091AA0281608093AA02F5C0E513F2 -:104A000008C0741306C0611104C0D80115968C93B8 -:104A10009DC04D875E878D859E856A8B0E945A2337 -:104A20006A89882309F4B4C0662309F4B1C02091CF -:104A3000AA02822F82958F7090E002970CF4C6C074 -:104A40008091A5029091A60298878F831986FB8694 -:104A5000EA862C87CE01079646C08091AA02982F3D -:104A6000907F59F47E2DF98AE88A89890E947F23F4 -:104A700085EA92E00E948E1F95C0E51311C0741361 -:104A80000FC061110DC0F8018583C8010E948E1FFF -:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F -:104AA0004D875E878D859E856A8B0E945A236A8911 -:104AB000882309F46DC0662309F46AC02091AA0214 -:104AC000822F82958F7090E002970CF47FC08091C6 -:104AD000A5029091A6029A8389831B82FD82EC82B3 -:104AE0002E83CE0101960E948E1F70C0E816F90633 -:104AF00028F09701281B390BC90104C080959095B7 -:104B00008E0D9F1D883C910508F046C0662309F470 -:104B10003FC0E51330C074132EC02091AA0220FDBF -:104B200021C0322F32953F70832F90E00097D1F053 -:104B3000D80115962C9315970F9741F0832F8F5F0F -:104B40008295807F2F70282B15962C93C8010E9488 -:104B50008E1F86E0F801A5EAB2E001900D928A95D9 -:104B6000E1F73EC086E0F801A5EAB2E001900D92BF -:104B70008A95E1F737C04D875E878D859E850E94B7 -:104B80005A23811123C08091AA0281608093AA02D6 -:104B9000C8010E948E1F26C07E2DF98AE88A898965 -:104BA0000E947F23E5EAF2E086E0DF011D928A950C -:104BB000E9F70E94BF2318C0662351F34D875E8733 -:104BC0008D859E850E945A23882311F386E0F80183 -:104BD000A5EAB2E001900D928A95E1F70E94CD23FB -:104BE0000E94BF2381E014C080E012C04D875E8721 -:104BF0008D859E850E943928292F22952F7030E0BF -:104C0000223031050CF4E0CE243031050CF6E2CE32 -:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 -:104C20001F910F91FF90EF9008951F93CF93DF9303 -:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 -:104C40004F83588769877A878B879C87CE01079621 -:104C50000E9445248823D9F02F8138858A859B8539 -:104C6000892B39F03F3F19F080E090E004C02F3FDE -:104C7000D9F781E090E0892B09F06DC04F8158850C -:104C800069857A858B859C850E948E2364C086E029 -:104C9000FE013796DE01119601900D928A95E1F79B -:104CA000FF81E8854A855B854115510539F0EF3F65 -:104CB00041F481E090E0FF3F31F003C081E090E0FB -:104CC00002C080E090E080FD46C02091DC0230E030 -:104CD000C9010196877099276091DB0270E0861701 -:104CE000970709F440C0F983EA835D834C8396E01B -:104CF000929FD001939FB00D1124A555BD4FFE0189 -:104D0000319601900D929A95E1F78093DC020E9412 -:104D10009E2321C0189FC001112485559D4F0E94DC -:104D20004524882371F1E091DB021E9FF0011124DC -:104D3000E555FD4F40815181628173818481958168 -:104D40000E948E238091DB0290E001968770992764 -:104D50008093DB0201C016E08091DB029091DC02BF -:104D60008913D8CF0EC00E9456231092DC021092F5 -:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 -:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 -:104D9000CF911F910895DF92EF92FF920F931F938F -:104DA000CF93DF93EC01009709F46EC0D12CEE2471 -:104DB000E394F12C8E010F5F1F4FFE018491843725 -:104DC00048F4843008F04CC0813071F0823009F032 -:104DD0005BC01EC0853709F43FC080F1982F9458FE -:104DE000903708F051C03FC02296F8018491982F67 -:104DF000905E983050F48770FE2D01C0FF0F8A95A9 -:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 -:104E10002296F8018491982F905E983060F4877004 -:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B -:104E30000E94F8281CC00E942F1F19C02296F8015A -:104E4000049107C08FE99FE00197F1F700C00000CF -:104E500001500111F7CF0BC02296F801D49007C082 -:104E60000E94671E03C08F770E942F1FE8018D2DBF -:104E700007C08150EFE9FFE03197F1F700C0000073 -:104E8000882309F497CFF5CFDF91CF911F910F9130 -:104E9000FF90EF90DF9008956093E1027093E2023B -:104EA0008093E3029093E4020C9444236093DD0228 -:104EB0007093DE028093DF029093E0020C9444230F -:104EC00008950C944C270F931F930091E1021091C9 -:104ED000E2022091E3023091E402602B712B822BDD -:104EE000932B1F910F910C944C270F931F930091BC -:104EF000E1021091E2022091E3023091E40260238A -:104F00007123822393231F910F910C944C270F93AD -:104F10001F930091E1021091E2022091E30230918F -:104F2000E40260277127822793271F910F910C9429 -:104F30004C2760E070E0CB010C94562741E050E034 -:104F400060E070E004C0440F551F661F771F8A950C -:104F5000D2F7CB01BA010C94562741E050E060E053 -:104F600070E004C0440F551F661F771F8A95D2F763 -:104F70008091DD029091DE02A091DF02B091E0020B -:104F8000482B592B6A2B7B2BCB01BA010C9456274B -:104F900041E050E060E070E004C0440F551F661F20 -:104FA000771F8A95D2F740955095609570958091BE -:104FB000DD029091DE02A091DF02B091E002482371 -:104FC00059236A237B23CB01BA010C94562741E075 -:104FD00050E060E070E004C0440F551F661F771F6B -:104FE0008A95D2F78091DD029091DE02A091DF02D6 -:104FF000B091E002482759276A277B27CB01BA01E5 -:105000000C9456270F931F930091DD021091DE023E -:105010002091DF023091E002602B712B822B932BC9 -:105020001F910F910C9456270F931F930091DD024F -:105030001091DE022091DF023091E00260237123A3 -:10504000822393231F910F910C9456270F931F9344 -:105050000091DD021091DE022091DF023091E0022A -:1050600060277127822793271F910F910C94562751 -:105070000895CF92DF92EF92FF920F931F93CF93F9 -:10508000DF93EC01C090E102D090E202E090E302F5 -:10509000F090E4028091DD029091DE02A091DF02A7 -:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF -:1050B000B701A601002E04C07695679557954795D0 -:1050C0000A94D2F740FF08C0BE01802F0E947104ED -:1050D0008130910509F007C00150110948F7BE0160 -:1050E00080E00E947104DF91CF911F910F91FF909A -:1050F000EF90DF90CF90089540918B0150918C01FB -:1051000020E030E09FEFFA01E20FF31F62816817A1 -:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 -:105120002630310581F707C0FA01E90FF11D97FD1F -:10513000FA95828308959F3FB9F7089540918B01B6 -:1051400050918C0120E030E0FA01E20FF31F9281D0 -:10515000981301C012822F5F3F4F26303105A1F70F -:10516000089581E090E0E0918B01F0918C01E80FCF -:10517000F91F1082019688309105A9F70895909142 -:10518000E502982B9093E502089580959091E502B1 -:1051900098239093E50208951092E5020895909166 -:1051A000E602982B9093E602089580959091E6028E -:1051B00098239093E60208951092E6020895809352 -:1051C000E70208951092E702089540918B015091F3 -:1051D0008C0120E030E080E0FA01E20FF31F9181C2 -:1051E00091118F5F2F5F3F4F27303105A9F7089549 -:1051F000E0918B01F0918C018091E5028083E09138 -:105200008B01F0918C0180819091E602892B808343 -:105210009091E702992361F0E0918B01F0918C016C -:105220008081892B80830E94E52881110E94E228D9 -:1052300080918B0190918C010C94311D8091FA0327 -:10524000843021F11092F10220E488E190E00FB661 -:10525000F894A895809360000FBE2093600080E0D2 -:105260000E94590383B7817F846083BF83B78160C5 -:1052700083BF7894889583B78E7F83BF88E10FB60C -:10528000F89480936000109260000FBE0895089516 -:105290000895CF9380E00E9459030E9447290E94FD -:1052A000BD070E944829C0E08C2F0E941109892B5C -:1052B00029F4CF5FC530C1F780E001C081E0CF9114 -:1052C00008950E94562380E00E9459030E941130E5 -:1052D0000E94251D0C94E7051F920F920FB60F92A6 -:1052E00011248F939F93AF93BF938091F10281110B -:1052F00013C08091F2029091F302A091F402B09158 -:10530000F5024196A11DB11D8093F2029093F30224 -:10531000A093F402B093F502BF91AF919F918F914A -:105320000F900FBE0F901F90189582E084BD93E000 -:1053300095BD9AEF97BD80936E0008958FB7F8944E -:105340004091F2025091F3026091F4027091F502E3 -:105350008FBFCA010895CF92DF92EF92FF920F9311 -:105360001F932FB7F8944091F2025091F30260918D -:10537000F4027091F5022FBF6A017B01EE24FF2435 -:105380008C0120E030E0C016D106E206F30620F0E2 -:105390009A01281B390B05C09C0120953095240FDC -:1053A000351FC9011F910F91FF90EF90DF90CF90B3 -:1053B00008951F920F920FB60F9211248F939F930F -:1053C000AF93BF938091F2029091F302A091F40207 -:1053D000B091F5020196A11DB11D8093F202909348 -:1053E000F302A093F402B093F502BF91AF919F91A5 -:1053F0008F910F900FBE0F901F9018950E946D1601 -:10540000F8942FEF87EA91E6215080409040E1F731 -:1054100000C0000087E090EBDC01809304049093CF -:105420000504A0930604B09307042CE088E190E003 -:105430000FB6F894A895809360000FBE209360008B -:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 -:10545000DF93C82ED12C01E010E08D2D0E941109A0 -:105460007C01C0E0D0E098010C2E02C0220F331F57 -:105470000A94E2F72E213F21232B29F42196CC30E8 -:10548000D10589F708C06C2F7D2D80E00E944C0467 -:10549000C812F4CF06C0D39485E0D812DECF80E0E6 -:1054A00001C081E0DF91CF911F910F91FF90EF90AC -:1054B000DF90CF900895CF93C82F8CE20E94212ACD -:1054C000882321F08C2FCF910C94212A80E0CF915A -:1054D0000895CF930E94AC2B811102C00E948D2BA6 -:1054E000C5E608C00E94BD078FE39CE90197F1F76C -:1054F00000C00000C150B1F789E20E945B2A81110F -:105500000AC18AE20E945B2A81110E948D2B85E0EC -:105510000E945B2A81110E94FE290E94B72B809372 -:10552000F00287E00E945B2A882399F18BE10E94B8 -:105530005B2A882351F09091F00291FB882780F933 -:1055400021E0822780FB91F922C08EE00E945B2A35 -:10555000882351F09091F00292FB882780F921E096 -:10556000822780FB92F913C080E10E945B2A909110 -:10557000F002882341F093FB882780F921E08227FD -:1055800080FB93F904C0892F809580FB90F990935C -:10559000F0028091F0020E94BB2B0E94C92B8093E5 -:1055A000010380EE0E945B2A882341F08091010371 -:1055B000982F909590FB80F98093010389E30E94D6 -:1055C0005B2A882359F09091010391FB882780F989 -:1055D00021E0822780FB91F99093010382EE0E94E3 -:1055E0005B2A882359F09091010392FB882780F968 -:1055F00021E0822780FB92F99093010386EE0E94BE -:105600005B2A882359F09091010393FB882780F946 -:1056100021E0822780FB93F99093010383EE0E949F -:105620005B2A882359F09091010394FB882780F925 -:1056300021E0822780FB94F99093010385E30E9487 -:105640005B2A882359F09091010395FB882780F904 -:1056500021E0822780FB95F99093010381E30E946A -:105660005B2A882359F09091010396FB882780F9E3 -:1056700021E0822780FB96F99093010381E10E944B -:105680005B2A882359F09091010397FB882780F9C2 -:1056900021E0822780FB97F9909301038091010319 -:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 -:1056B0005B2A8111C2608FE10E945B2A8111C46064 -:1056C00080E20E945B2A8111C86081E20E945B2A0D -:1056D0008111C06182E20E945B2A8111C06283E273 -:1056E0000E945B2A8111C06484E20E945B2A8823A5 -:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B -:105700006C2F03C00E94C02B682F70E080E090E0F7 -:10571000CF910C946127CF9108956DEE7EEF80E0DC -:1057200090E00E94783460E082E090E00E946A3469 -:1057300060E083E090E00E946A3460E084E090E002 -:105740000E946A3460E085E090E00E946A3460E084 -:1057500086E090E00C946A3480E090E00E9464342B -:1057600021E08D3E9E4F09F020E0822F089582E0D7 -:1057700090E00C945C34682F82E090E00C946A34E2 -:1057800083E090E00C945C34682F83E090E00C940C -:105790006A3484E090E00C945C34682F84E090E0FC -:1057A0000C946A3486E090E00C945C34682F86E0B8 -:1057B00090E00C946A348091FE0280FF0BC06091EF -:1057C000900185E0689FB0011124759567957595E6 -:1057D00067952AC081FF09C06091900185E0689FAC -:1057E000B0011124759567951FC082FF07C06091B5 -:1057F000900185E0689FB001112416C04091F80225 -:105800004423C9F060918F01461788F720919001D9 -:1058100085E0289F90011124429FC001439F900D75 -:10582000112470E00E9448346038710540F461151D -:10583000710539F002C065E070E0862F08958FE7AA -:10584000089581E008958091FE0280FF08C0609174 -:105850008E0170E0759567957595679521C081FFFC -:1058600006C060918E0170E07595679519C082FF42 -:1058700004C060918E0170E010C08091F80288230E -:10588000C1F060918D018617A0F790918E01989FCD -:10589000C001112470E00E9448346038710528F47A -:1058A0006115710521F0862F08958FE7089581E035 -:1058B000089561E070E0F4CF803F21F40E94DB2B7B -:1058C000819504C0813F29F40E94DB2B8093FB0269 -:1058D0000895823F21F40E94DB2B819504C0833F11 -:1058E00029F40E94DB2B8093FA020895893F19F472 -:1058F0000E94232C05C08A3F31F40E94232C8195FD -:105900008093FC0208958B3F21F40E94232C819503 -:1059100004C08C3F29F40E94232C8093FD0208953B -:10592000843F21F48091F902816017C0853F21F402 -:105930008091F902826011C0863F21F48091F902C2 -:1059400084600BC0873F21F48091F902886005C014 -:10595000883F31F48091F90280618093F9020895C3 -:105960008D3F21F48091FE0281600BC08E3F21F4B7 -:105970008091FE02826005C08F3F29F48091FE0273 -:1059800084608093FE020895803F29F48091FB0299 -:1059900087FF6EC007C0813F41F48091FB0218165B -:1059A0000CF066C01092FB0263C09091FA02823F35 -:1059B00019F497FF5DC005C0833F31F419160CF050 -:1059C00057C01092FA0254C0893F31F48091FC0212 -:1059D00018160CF04DC006C08A3F39F48091FC02C5 -:1059E00087FF46C01092FC0243C08B3F29F4809190 -:1059F000FD0287FF3DC006C08C3F39F48091FD0257 -:105A00001816B4F51092FD0233C0843F21F4809142 -:105A1000F9028E7F05C0853F31F48091F9028D7FB8 -:105A20008093F90225C0863F21F48091F9028B7F93 -:105A3000F7CF873F21F48091F902877FF1CF883F2C -:105A400021F48091F9028F7EEBCF8D3F21F480917C -:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F -:105A600005C08F3F29F48091FE028B7F8093FE0258 -:105A70008091FA0281110EC08091FB0281110AC04F -:105A80008091FC02811106C08091FD02811102C04B -:105A90001092F802089589EF92E00E943C1D0E9446 -:105AA0009E299093F7028093F6020895CF938091F8 -:105AB000F6029091F7020E94AB294091F80244232C -:105AC00021F02091910130E006C0209192015AE02E -:105AD000259F900111248217930708F486C08091B6 -:105AE000FA0281110DC09091FB02911109C09091B1 -:105AF000FC02911105C09091FD02992309F475C033 -:105B00004F3F19F04F5F4093F802181624F40E949B -:105B1000DB2B8093FA028091FA0287FF05C00E9476 -:105B2000DB2B81958093FA028091FB02181624F4F6 -:105B30000E94DB2B8093FB028091FB0287FF05C054 -:105B40000E94DB2B81958093FB026091FA02662311 -:105B500039F1C091FB02CC2319F1772767FD7095CD -:105B6000872F972F0E94AC3123E333E343E35FE3B6 -:105B70000E9460320E9479316093FA026C2F77277D -:105B800067FD7095872F972F0E94AC3123E333E395 -:105B900043E35FE30E9460320E9479316093FB022D -:105BA0008091FC02181624F40E94232C8093FC029E -:105BB0008091FC0287FF05C00E94232C8195809371 -:105BC000FC028091FD02181624F40E94232C80937D -:105BD000FD028091FD0287FF05C00E94232C819564 -:105BE0008093FD02CF910C944B2DCF910895E9EF56 -:105BF000F2E085E0DF011D928A95E9F71092F80244 -:105C00001092FE020895833089F130F4813061F002 -:105C1000823009F06EC019C0853009F449C0B8F16E -:105C2000863009F066C055C020919201862F90E021 -:105C3000820F911D8F3F910520F4620F60939201B6 -:105C400008958FEF80939201089520919101862FFE -:105C500090E0820F911D8F3F910520F4620F6093B9 -:105C6000910108958FEF8093910108952091900103 -:105C7000862F90E0820F911D8F3F910520F4620FD7 -:105C80006093900108958FEF809390010895209183 -:105C90008F01862F90E0820F911D8F3F910520F498 -:105CA000620F60938F0108958FEF80938F010895A5 -:105CB00020918E01862F90E0820F911D8F3F9105DC -:105CC00020F4620F60938E0108958FEF80938E0110 -:105CD000089520918D01862F90E0820F911D8F3FB6 -:105CE000910520F4620F60938D0108958FEF8093EA -:105CF0008D010895833021F130F4813059F08230E4 -:105D000009F049C012C0853089F128F1863009F0C8 -:105D100042C037C080919201681720F4861B80939F -:105D2000920108951092920108958091910168174F -:105D300020F4861B8093910108951092910108959B -:105D400080919001681720F4861B8093900108953C -:105D500010929001089580918F01681720F4861B9E -:105D600080938F01089510928F01089580918E0184 -:105D7000681720F4861B80938E01089510928E017F -:105D8000089580918D01681720F4861B80938D0102 -:105D9000089510928D01089541E050E060E070E0B8 -:105DA00004C0440F551F661F771F8A95D2F7CB0199 -:105DB000BA010E9461270C945623873200F58E3178 -:105DC00008F086C08E3009F466C060F4873009F4AC -:105DD0004DC018F4863049F531C0883041F18B3020 -:105DE00021F57BC0863109F478C018F48031E9F4DC -:105DF0005CC0893109F471C08B31B9F442C0883379 -:105E000009F46BC048F4893209F460C0853309F4A1 -:105E10005DC0873251F45AC0833409F457C018F476 -:105E20008A3318F057C0883499F080E008950E94B2 -:105E3000B72B0E94C92B0E94D22B4FC08091F00239 -:105E4000817F8E7F8093F00281E08093FF0208952E -:105E50000E9456232FEF83ED90E321508040904025 -:105E6000E1F700C000000E94FE2937C08091F002D7 -:105E700080FF03C0817F8E7F01C081608093F0022C -:105E80002CC09091F00291FB882780F921E08227B5 -:105E900080FB91F913C09091F00292FB882780F962 -:105EA00021E0822780FB92F909C09091F00293FBD8 -:105EB000882780F921E0822780FB93F99093F002F4 -:105EC000882359F091609093F00207C080E003C0EE -:105ED0008D5101C089530E94CC2E81E0089580E04D -:105EE000089580E00895CF93C82F8091FF028130FC -:105EF00071F020F0823009F089C037C0A0918B0189 -:105F0000B0918C018C91823209F082C007C0A091BF -:105F10008B01B0918C018C91823249F48C2F0E94BC -:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 -:105F30000E94712F811115C0C43169F030F4CB304B -:105F400081F0C03109F068C009C0C93221F0C833FE -:105F500009F062C006C01092FF025EC082E080932A -:105F6000FF0281E090E081705AC0C932C9F060F44C -:105F7000C431B1F020F4C73009F04CC034C0CE5168 -:105F8000C63008F047C017C0CE3439F120F4CB3406 -:105F900009F040C01CC0C135C1F0C235D9F513C0ED -:105FA00080910003882319F01092000333C081E030 -:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 -:105FC0008093000327C061E003C061E007C06AE07E -:105FD000809100030E94032E1DC06AE0809100039F -:105FE0000E947A2E17C08EE18093920182E3809303 -:105FF00091018AE08093900184E180938F0188E091 -:1060000080938E0188E280938D0104C01092FF027C -:1060100080E005C081E003C080E090E0A4CFCF9194 -:1060200008950E94AC2B811102C00E948D2B0E940A -:10603000D22B8093030480FF02C0869501C080E0CC -:106040000C94590380910304982F9695292F30E0E2 -:10605000233031054CF49F5F990F8170892B81604B -:10606000809303040E94D62B8091030486950C94A0 -:10607000590380910304982F969591F09158990FA8 -:106080008170892B809303048E7F91E009F490E066 -:106090008091030490FB80F9809303040E94D62B27 -:1060A0008091030486950C94590380910304982FE2 -:1060B000909590FB80F9809303040E94D62B8091E9 -:1060C000030480FF02C0869501C080E00C94590350 -:1060D00030910304232F26952F5F2F77822F90E096 -:1060E000317004972CF4220F232B2093030402C059 -:1060F0003093030480910304282F2E7F91E009F44C -:1061000090E090FB80F9809303040E94D62B80914D -:10611000030486950C94590320910304922F9695BD -:106120009827990F822F8170892B809303048E7F8B -:1061300091E009F490E08091030490FB80F9809352 -:1061400003040E94D62B8091030486950C94590376 -:106150005058BB27AA270ED075C166D130F06BD13D -:1061600020F031F49F3F11F41EF45BC10EF4E09572 -:10617000E7FB51C1E92F77D180F3BA1762077307A4 -:106180008407950718F071F49EF58FC10EF4E09521 -:106190000B2EBA2FA02D0B01B90190010C01CA01E1 -:1061A000A0011124FF27591B99F0593F50F4503E8C -:1061B00068F11A16F040A22F232F342F4427585F7E -:1061C000F3CF469537952795A795F0405395C9F796 -:1061D0007EF41F16BA0B620B730B840BBAF091504E -:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED -:1061F000BA0F621F731F841F48F4879577956795C0 -:10620000B795F7959E3F08F0B3CF9395880F08F0A8 -:106210009927EE0F979587950895D9D008F481E0D6 -:1062200008950CD00FC107D140F0FED030F021F41A -:106230005F3F19F0F0C0511139C1F3C014D198F388 -:106240009923C9F35523B1F3951B550BBB27AA27F7 -:1062500062177307840738F09F5F5F4F220F331F69 -:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 -:1062700091505040E695001CCAF729D0FE2F27D038 -:10628000660F771F881FBB1F261737074807AB0706 -:10629000B0E809F0BB0B802DBF01FF2793585F4F7B -:1062A0002AF09E3F510568F0B6C000C15F3FECF395 -:1062B000983EDCF3869577956795B795F7959F5F40 -:1062C000C9F7880F911D9695879597F90895E1E094 -:1062D000660F771F881FBB1F621773078407BA07F3 -:1062E00020F0621B730B840BBA0BEE1F88F7E0954E -:1062F000089504D06894B111D9C00895BCD088F035 -:106300009F5790F0B92F9927B751A0F0D1F0660FA1 -:10631000771F881F991F1AF0BA95C9F712C0B130BC -:1063200081F0C3D0B1E00895C0C0672F782F8827CF -:10633000B85F39F0B93FCCF3869577956795B395FB -:10634000D9F73EF490958095709561957F4F8F4F6A -:106350009F4F0895E89409C097FB3EF4909580956F -:10636000709561957F4F8F4F9F4F9923A9F0F92F1B -:1063700096E9BB279395F695879577956795B79599 -:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F -:106390007F4F8F4F9F4F16C0882311F096E911C091 -:1063A000772321F09EE8872F762F05C0662371F0B2 -:1063B00096E8862F70E060E02AF09A95660F771FC6 -:1063C000881FDAF7880F9695879597F90895990FA2 -:1063D0000008550FAA0BE0E8FEEF16161706E807AF -:1063E000F907C0F012161306E407F50798F0621BD0 -:1063F000730B840B950B39F40A2661F0232B242BA5 -:10640000252B21F408950A2609F4A140A6958FEFC3 -:10641000811D811D089597F99F6780E870E060E015 -:1064200008959FEF80EC089500240A94161617062D -:1064300018060906089500240A9412161306140675 -:1064400005060895092E0394000C11F4882352F0D8 -:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 -:106460008F4F9F4F089557FD9058440F551F59F077 -:106470005F3F71F04795880F97FB991F61F09F3F31 -:1064800079F087950895121613061406551FF2CF5A -:106490004695F1DF08C0161617061806991FF1CFAA -:1064A00086957105610508940895E894BB276627D1 -:1064B0007727CB0197F908958ADF08F48FEF0895C5 -:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C -:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 -:1064E000950F50E0551F629FF001729FBB27F00D82 -:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 -:10650000B00DA11D661F829F2227B00DA11D621F25 -:10651000739FB00DA11D621F839FA00D611D221FDF -:10652000749F3327A00D611D231F849F600D211DC3 -:10653000822F762F6A2F11249F5750408AF0E1F066 -:1065400088234AF0EE0FFF1FBB1F661F771F881FAF -:1065500091505040A9F79E3F510570F05CCFA6CFF7 -:106560005F3FECF3983EDCF3869577956795B7959A -:10657000F795E7959F5FC1F7FE2B880F911D9695C4 -:10658000879597F90895FA01EE0FFF1F30962105C0 -:10659000310599F16115710561F48038BFE39B07FE -:1065A00049F168949038810561F08038BFEF9B070E -:1065B00041F0992342F5FF3FE1053105210511F135 -:1065C000E8940894E795D901AA2329F4AB2FBE2FAC -:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD -:1065E00050F019F0FF3A38F49F779F930CD00F903A -:1065F00007FC905808953EF014CF60E070E080E80A -:106600009FE308954FE79F775F934F933F932F93B7 -:106610009ED02F913F914F915F9152DF05C019F4A9 -:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 -:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 -:106640000F920F920F924DB75EB70F92C0D0ECEA47 -:10665000F0E016D04F915F91EF91FF91E595EE1F1D -:10666000FF1F49F0FE57E0684427EE0F441FFA95DC -:10667000E1F74195550B32D00F9007FE26C00895E3 -:10668000DF93CF931F930F93FF92EF92DF927B01E3 -:106690008C01689405C0DA2EEF011EDFFE01E8943C -:1066A000A5912591359145915591AEF3EF0162DDAC -:1066B000FE019701A801DA9479F7DF90EF90FF903F -:1066C0000F911F91CF91DF9108959B01AC0160E084 -:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 -:1066E0009923D9F3940F511DBBF39150504094F06E -:1066F00059F0882332F0660F771F881F9150504061 -:10670000C1F79E3F510544F7880F911D96958795D7 -:1067100097F908955F3FACF0983E9CF0BB278695B3 -:1067200077956795B79508F4B1609395C1F7BB0F5E -:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 -:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 -:10675000C8F39923D1F3C6F3DF93CF931F930F931D -:10676000FF92C92FDD2788232AF02197660F771F14 -:10677000881FDAF720E030E040E85FEB9FE38839DC -:1067800020F0803E30F021968F77E3DCE4EDF0E0FE -:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F -:1067A000FB2E6F5771097595771F880B990BD4DDF8 -:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 -:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 -:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 -:1067E0003327442750781FC0B75188F4AB2F0024BB -:1067F000469537952795011CA395D2F3002069F0A3 -:10680000220F331F441FB395DAF30DD0A1CC6130B2 -:106810007105A0E88A07B94630F49B01AC016627F0 -:10682000772788279078309621F020833183428320 -:10683000538308959F3F31F0915020F487957795C9 -:106840006795B795880F911D9695879597F9089547 -:10685000991B79E004C0991F961708F0961B881FB2 -:106860007A95C9F780950895AA1BBB1B51E107C013 -:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 -:10688000991F5A95A9F780959095BC01CD0108955F -:1068900097FB072E16F4009407D077FD09D00E94CD -:1068A000343407FC05D03EF4909581959F4F0895B0 -:1068B000709561957F4F0895F999FECF92BD81BD86 -:1068C000F89A992780B50895A8E1B0E042E050E039 -:1068D0000C947F34262FF999FECF1FBA92BD81BD4B -:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 -:1068F0000E946A34272F0C946B34DC01CB01FC011D -:10690000F999FECF06C0F2BDE1BDF89A319600B408 -:0E6910000D9241505040B8F70895F894FFCF13 -:10691E0055D0A44600001644000000000000484276 -:10692E0061978A460000C8430000000000004842FC -:10693E0055D024460000C843000000000000484225 -:10694E0000005C460000C843000000000000484202 -:10695E0061978A4600007A4455D0A4460000C84389 -:10696E00000000000000484200005C460000C843E2 -:10697E00000000000000484255D024460000164496 -:10698E000507000C058540000001064000000100CF -:10699E0091102111FD10C810941001E8022808145E -:1069AE000A321E42004500250026004300610060A9 -:1069BE000020003700640065006600670044004652 -:1069CE000024004700000002000400050007000933 -:1069DE00000B000C000E0010001100130015001724 -:1069EE000018001A001C001D001F002100230024A7 -:1069FE00002600280029002B002D002F0030003229 -:106A0E000034003500370039003B00F6030F042830 -:106A1E0004410469051C05E604C6043F4D362002F8 -:106A2E000302000001000101010101000101010248 -:086A3E00030405060708090026 -:00000001FF diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex deleted file mode 100644 index cc59d3fe8..000000000 --- a/keyboard/preonic/preonic_pcb_silent.hex +++ /dev/null @@ -1,1189 +0,0 @@ -:100000000C9465020C94A9020C94A9020C94A90208 -:100010000C94A9020C94A9020C94A9020C94A902B4 -:100020000C94A9020C94A9020C94430D0C94150E87 -:100030000C942B1C0C94A9020C94A9020C94A902F8 -:100040000C94A9020C94A9020C94A9020C94A90284 -:100050000C94A9020C94981C0C94A9020C94A9026B -:100060000C94A9020C94A9020C94A9020C94A90264 -:100070000C94A9020C94A9020C94A9020C94A90254 -:100080000C94A9020C94A9020C94A9020C94A90244 -:100090000C94A9020C94A9020C94A9020C94A90234 -:1000A0000C94A9020C94A9020C94A90235001E001C -:1000B0001F0020002100220023002400250026002C -:1000C00027002A002B0014001A0008001500170052 -:1000D0001C0018000C00120013002A002900040064 -:1000E0001600070009000A000B000D000E000F00AB -:1000F00033003400E1001D001B000600190005005C -:100100001100100036003700380028000030E000F1 -:10011000E200E30003522C002C0004525000510076 -:1001200052004F0035001E001F0020002100220059 -:10013000230024002500260027002A002B0014009D -:100140001A00090013000A000D000F0018001C001F -:1001500033002A00290004001500160017000700CC -:100160000B00110008000C0012003400E1001D001B -:100170001B000600190005000E00100036003700B5 -:10018000380028000030E000E200E30003522C00B9 -:100190002C0004525000510052004F0035001E0048 -:1001A0001F0020002100220023002400250026003B -:1001B00027002A002B0034003600370013001C00F3 -:1001C00009000A00060015000F002A00290004009B -:1001D0001200080018000C0007000B0017001100A7 -:1001E00016003800E100330014000D000E001B0063 -:1001F000050010001A0019001D0028000030E00062 -:10020000E200E30003522C002C0004525000510085 -:1002100052004F0035001E001F0020002100220068 -:10022000230024002500260027002A0035021E0294 -:100230001F0220022102220223022402250226029A -:1002400027022A0001003A003B003C003D003E002E -:100250003F002D022E022F02300231020100400029 -:100260004100420043004400450000530153025343 -:100270000050010001000100010001000100010027 -:1002800001000100AB00AA00A900AE0035001E006D -:100290001F0020002100220023002400250026004A -:1002A00027002A0035001E001F0020002100220028 -:1002B000230024002500260027002A0001003A0020 -:1002C0003B003C003D003E003F002D002E002F0073 -:1002D0003000310001004000410042004300440072 -:1002E000450000530153025300500100010001007A -:1002F000010001000100010001000100AB00AA00A3 -:10030000A900AE002A0354006800650020005000D8 -:10031000720065006F006E006900630020004B00F2 -:100320006500790062006F006100720064000000E7 -:100330002C034F007200740068006F006C006900AD -:100340006E0065006100720020004B0065007900BE -:1003500062006F006100720064007300000004031B -:10036000090409027400040100A0FA090400000154 -:1003700003010100092111010001223F000705814D -:100380000308000A09040100010301020009211108 -:10039000010001224D000705820308000A0904023A -:1003A00000010300000009211101000122360007AD -:1003B00005830308000A0904030002030000000982 -:1003C00021110100012220000705840320000107FC -:1003D0000504032000011201100100000008EDFED9 -:1003E00061600100010200010631FF0974A10109E9 -:1003F00075150025FF9520750881020976150025E1 -:10040000FF952075089102C005010980A1018502B0 -:1004100016010026B7001A01002AB70075109501D1 -:100420008100C0050C0901A1018503160100269C6D -:10043000021A01002A9C02751095018100C0050175 -:100440000902A1010901A1000509190129051500E9 -:10045000250195057501810295017503810105014D -:10046000093009311581257F950275088106093803 -:100470001581257F950175088106050C0A3802153E -:1004800081257F950175088106C0C005010906A177 -:1004900001050719E029E715002501950875018177 -:1004A0000295017508810105081901290595057551 -:1004B0000191029501750391010507190029FF15A6 -:1004C0000025FF950675088100C011241FBECFEFDF -:1004D000DAE0DEBFCDBF04B603FE24C08091F10197 -:1004E0009091F201A091F301B091F4018730904B0B -:1004F000A740B04BB9F41092F1011092F2011092A2 -:10050000F3011092F40114BE84B7877F84BF88E1A1 -:100510000FB6F89480936000109260000FBEE0E088 -:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3 -:1005300005900D92A435B107D9F711E0A4E5B1E01B -:1005400001C01D92A13FB107E1F70E94720A0C940D -:10055000EE240C94000061110DC0FC0182818823FF -:1005600031F085EE0E9426110E94272303C085EEFC -:100570000E94EE1180E090E00895089508950E9491 -:10058000D1026E9A769A8DEB92E0892B11F00C9441 -:10059000BD0208958EEB92E0892B11F00C94BE02FF -:1005A0000895279A2F988FEF9FEF9093870080935D -:1005B00086008AE08093800089E1809381000C941A -:1005C000D02281110BC080918000877F80938000B2 -:1005D00010928D0010928C002F9808952F988330E0 -:1005E00041F4809180008860809380008FEF9FEFBE -:1005F00012C09091800098609093800023E030E0DA -:10060000281B3109220F331F8FEF9FEF02C09695F1 -:1006100087952A95E2F790938D0080938C0008953A -:100620008B3B910568F4883A910530F5853A910540 -:10063000C0F48430910598F4019709F06FC071C03F -:10064000803E910508F46AC0883E910540F09C0107 -:10065000205F31092031310508F060C05CC09C0189 -:10066000A1C0853A910509F45FC0863A910509F465 -:100670005EC023E830E496C0883A910509F45AC078 -:10068000893A910509F459C08A3A910509F458C08C -:100690008B3A910509F457C08C3A910509F456C07C -:1006A0008D3A910509F455C0803B910509F454C079 -:1006B0008E3A910509F453C08F3A910509F452C05E -:1006C000813B910509F451C0823B910509F450C06A -:1006D000833B910509F44FC0843B910509F44EC05A -:1006E000853B910509F44DC0863B910509F44CC04A -:1006F000873B910509F44BC0883B910509F44AC03A -:10070000893B910509F449C08A3B910509F048C02D -:100710002AE236E447C09C01306544C020E030E066 -:1007200041C021E030E03EC021E830E43BC022E897 -:1007300030E438C022EE34E435C029EE34E432C06F -:100740002AEE34E42FC025EB34E42CC026EB34E44D -:1007500029C027EB34E426C02CEC34E423C02DEC74 -:1007600034E420C023E835E41DC02AE835E41AC08B -:1007700022E935E417C024E935E414C021E236E467 -:1007800011C023E236E40EC024E236E40BC025E2B9 -:1007900036E408C026E236E405C027E236E402C0AB -:1007A00020E034E4C901089508959CE0799FF001A8 -:1007B00011249CE3899FE00DF11D1124E60FF11D2A -:1007C000EE0FFF1FE455FF4F25913491C9010895A5 -:1007D000880F991F845D9040FC0125913491C901D7 -:1007E0000895880F991F84559F4FFC0125913491DE -:1007F000C90108950E94D5039C019A9581159F41D6 -:1008000010F4C9010895C90190528115904128F44E -:10081000C9019F700E94F1030895C9019053811589 -:10082000904120F4C9019927906C0895C901905412 -:10083000409728F4C9018F709927946D089520314D -:1008400080E4380719F480E091ED0895213190E4B7 -:10085000390719F480E090ED0895223140E434071F -:1008600019F480E092ED0895233180E4380719F4FB -:1008700080E093ED0895211590E5390769F40E9411 -:1008800015162FEF44E38CE0215040408040E1F703 -:1008900000C000000C94BD1C213090E5390731F4F4 -:1008A0008091D00181608093D0010895C901905555 -:1008B0008115904108F062C0432F55274F7055278E -:1008C00041305105F9F4C90174E0880F991F7A95F8 -:1008D000E1F788279370B901E3E0660F771FEA9587 -:1008E000E1F760767727862B972B9C682370332758 -:1008F00002C0440F551F2A95E2F74F715527842BEC -:10090000952B08954230510529F4922F8827816F45 -:10091000906A089543305105B9F4C90153E0880F36 -:10092000991F5A95E1F7807E97702370332741E035 -:1009300050E002C0440F551F2A95E2F74F7155272A -:10094000842B952B9C6808954430510549F5C901C5 -:1009500043E0880F991F4A95E1F7807E97702370D6 -:10096000332741E050E002C0440F551F2A95E2F7BB -:100970004F715527842B952B9A680895C90190577C -:100980008115904120F4C9019F7090620895C901BA -:1009900090588115904120F4C9019F70906A089584 -:1009A000203E3105E0F4203C310568F52133310566 -:1009B00009F475C048F42932310509F46BC02A32B4 -:1009C000310509F07BC075C02933310501F12238AA -:1009D0003105E9F02533310509F070C051C0233EDF -:1009E0003105B1F140F4203E3105D1F0223E310510 -:1009F00009F064C01CC0263E310579F1273E31055F -:100A000009F05CC038C0C9010E94E80308958091D4 -:100A1000E10180FD02C081FF51C080EE90E04FC037 -:100A20008091E10180FFF9CF89E390E048C0809197 -:100A3000E10182FF0AC08091E10184FF03C080E0F0 -:100A400090E03DC083EE90E03AC082EE90E037C087 -:100A50008091E10182FFEFCFF8CF8091E10183FF28 -:100A600007C08091E10184FDEACF87EE90E027C0C6 -:100A700086EE90E024C08091E10183FFF2CFF8CFB1 -:100A80008091E10185FF03C089E290E018C085E311 -:100A900090E015C08091E10185FDF9CFF5CF8091FF -:100AA000E10186FF03C08AE290E009C081E390E0A3 -:100AB00006C08091E10186FDF9CFF5CFC9010E9402 -:100AC0001003089508955F926F927F928F929F9284 -:100AD000AF92BF92CF92DF92EF92FF920F931F934C -:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A -:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92 -:100B0000911C60E070E000E010E0E12CF12CC12CC1 -:100B1000D12CA12CB12C8AE0782E622E532E41E0EC -:100B200050E0E4E1F1E0A62DB52D872D01900D9266 -:100B30008A95E1F7F901819191919F01FC01E07F94 -:100B4000FF27E032F10559F48F709927FA0102C0AE -:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7 -:100B6000F10559F48F709927FA0102C0EE0FFF1FAB -:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C -:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6 -:100B9000EE2AFF2A1BC0E035F10559F48F70992722 -:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2 -:100BB0000DC0E036F10551F48F709927FA0102C09B -:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554 -:100BD00009F0A7CF94B18A2D8095892384B985B176 -:100BE0008A2985B997B18C2D8095892387B988B1D9 -:100BF0008C2988B99AB18E2D809589238AB98BB1B9 -:100C00008E298BB99DB1802F809589238DB98EB1A6 -:100C1000802B8EB990B3862F8095892380BB81B3BA -:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0 -:100C3000DF91CF911F910F91FF90EF90DF90CF90B8 -:100C4000BF90AF909F908F907F906F905F9008952E -:100C50005F926F927F928F929F92AF92BF92CF924C -:100C6000DF92EF92FF920F931F93CF93DF93CDB755 -:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D -:100C8000806885BF85B7806885BF0E9463059E0127 -:100C90002F5F3F4F4E0189E1880E911C60E070E0AC -:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6 -:100CB00098E1792E622E532E41E050E0EEE1F1E012 -:100CC000A62DB52D872D01900D928A95E1F7F9019A -:100CD000819191919F01FC01E07FFF27E032F105B6 -:100CE00059F48F709927FA0102C0EE0FFF1F8A9501 -:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E -:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B -:100D1000DF2A29C0E034F10559F48F709927FA01D0 -:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2 -:100D3000E035F10559F48F709927FA0102C0EE0FE2 -:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531 -:100D500051F48F709927FA0102C0EE0FFF1F8A9598 -:100D6000E2F76E2B7F2B2815390509F0A7CF94B138 -:100D70008A2D8095892384B985B18A2985B997B14F -:100D80008C2D8095892387B988B18C2988B99AB12F -:100D90008E2D809589238AB98BB18E298BB99DB10F -:100DA000802F809589238DB98EB1802B8EB990B319 -:100DB000862F8095892380BB81B3862B81BB1092BF -:100DC00055011092540110925F0110925E01109231 -:100DD0005701109256011092610110926001109219 -:100DE0005901109258011092630110926201109201 -:100DF0005B0110925A0110926501109264011092E9 -:100E00005D0110925C0110926701109266018FEBF8 -:100E100092E0892BB9F068960FB6F894DEBF0FBE4A -:100E2000CDBFDF91CF911F910F91FF90EF90DF9099 -:100E3000CF90BF90AF909F908F907F906F905F907A -:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC -:100E5000DF91CF911F910F91FF90EF90DF90CF9096 -:100E6000BF90AF909F908F907F906F905F9008950C -:100E70005F926F927F928F929F92AF92BF92CF922A -:100E8000DF92EF92FF920F931F93CF93DF93CDB733 -:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE -:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6 -:100EB00053E2A50EB11C3AE0532E470101E010E0C9 -:100EC00048E1642E55E0752EE4E1F1E0D401852D72 -:100ED00001900D928A95E1F7F701819191917F013F -:100EE0009C01207F33272032310589F424B18F7093 -:100EF0009927A80102C0440F551F8A95E2F7CA013D -:100F0000242B24B995B18095892385B94FC020330E -:100F1000310589F427B18F709927F80102C0EE0FCF -:100F2000FF1F8A95E2F7CF012E2B27B998B1809544 -:100F3000892388B93BC02034310589F42AB18F70E8 -:100F40009927A80102C0440F551F8A95E2F7CA01EC -:100F5000242B2AB99BB1809589238BB927C02035D2 -:100F6000310589F42DB18F709927F80102C0EE0F79 -:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8 -:100F800089238EB913C02036310581F420B38F70C8 -:100F90009927A80102C0440F551F8A95E2F7CA019C -:100FA000242B20BB91B38095892381BB50EA5A95AD -:100FB000F1F7BE016F5F7F4F80E090E020E030E00E -:100FC000EEE1F1E0DE011196462D01900D924A9579 -:100FD000E1F7FB0141915191BF01FA01E07FFF2749 -:100FE000E032F10511F4E3B113C0E033F10511F47F -:100FF000E6B10EC0E034F10511F4E9B109C0E03505 -:10100000F10511F4ECB104C0E036F105B9F4EFB12B -:10101000F0E04F70552702C0F595E7954A95E2F745 -:10102000E0FD08C0A801022E02C0440F551F0A941B -:10103000E2F702C040E050E0842B952B2F5F3F4F3A -:101040002C30310509F0BCCFF60120813181281701 -:10105000390721F091838083709200010E9463051B -:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1 -:1010700000018823A1F1815080930001882339F079 -:101080008FE99FE00197F1F700C0000028C0809130 -:101090005E0190915F01909355018093540180917E -:1010A0006001909161019093570180935601809166 -:1010B000620190916301909359018093580180914E -:1010C00064019091650190935B0180935A01809136 -:1010D00066019091670190935D0180935C018AECB9 -:1010E00092E0892B11F00E94CA0281E0A2960FB60D -:1010F000F894DEBF0FBECDBFDF91CF911F910F914E -:10110000FF90EF90DF90CF90BF90AF909F908F9027 -:101110007F906F905F900895E82FF0E0EE0FFF1F33 -:10112000EC5AFE4F8081918108950895809171015C -:101130000895CF93DF9300D01F92CDB7DEB72091F3 -:10114000E701243021F523E029839B838A832093C0 -:10115000E9008FEF06C095ED9A95F1F7000088231E -:1011600029F09091E800815095FFF5CF8091E8003B -:1011700085FF0DC040E050E063E070E0CE010196D5 -:101180000E94280B8091E8008E778093E8000F90F2 -:101190000F900F90DF91CF910895CF93DF9300D000 -:1011A0001F92CDB7DEB72091E701243029F522E068 -:1011B00029839B838A8383E08093E9008FEF06C0B5 -:1011C00095ED9A95F1F70000882329F09091E800B9 -:1011D000815095FFF5CF8091E80085FF0DC040E07C -:1011E00050E063E070E0CE0101960E94280B8091F0 -:1011F000E8008E778093E8000F900F900F90DF91BA -:10120000CF9108952091E7012430F9F422E0209352 -:10121000E9002FEF06C035ED3A95F1F700002223E3 -:1012200029F03091E800215035FFF5CF2091E800FA -:1012300025FF0BC040E050E065E070E00E94280B05 -:101240008091E8008E778093E8000895CF93DF9334 -:10125000EC018091E701843041F581E08093E90061 -:101260008FEF06C095ED9A95F1F70000882329F0DD -:101270009091E800815095FFF5CF8091E80085FFBF -:1012800014C040E050E068E070E0CE010E94280BFE -:101290008091E8008E778093E80088E0FE01A9E65F -:1012A000B1E001900D928A95E1F7DF91CF91089519 -:1012B0008091E601811109C00E94C80C0E94250D91 -:1012C0008091E20084608093E20008951092E6012C -:1012D0000895089508950C94201C809172018F5FE9 -:1012E0008093720162E30E948924911135C01092AB -:1012F000720180917301882379F18091E701843034 -:1013000049F58091E9008F709091EC0090FF02C048 -:1013100090E801C090E0982B84E08093E9008091F0 -:10132000EB0080FF14C08091EE0087FD03C00FC06A -:101330001092F1008091E80085FDFACF8091E800DD -:1013400080FF05C08091E8008E778093E8009F7051 -:101350009093E90010927301089542E061EC81E0FE -:101360000E943E0C42E061EC82E00E943E0C42E0B2 -:1013700061EC83E00E943E0C42E261EC84E00C945C -:101380003E0C8091E901833009F454C030F481307F -:1013900071F0823009F0A5C08CC08A3009F479C0A0 -:1013A0008B3009F45FC0893009F09BC020C0809168 -:1013B000E801813A09F095C08091E800877F809329 -:1013C000E8008091EC019091ED01892B21F060E023 -:1013D00080E090E003C068E089E691E070E00E9460 -:1013E000770B8091E8008B778093E80008958091D7 -:1013F000E801813209F075C08091EC019091ED0116 -:10140000892B09F06EC08091E800877F8093E80007 -:1014100005C08091E701882309F463C08091E8004A -:1014200082FFF7CF8091F100809371018091E800F5 -:101430008B7753C08091E801813A09F052C08091C6 -:10144000EC019091ED01892B09F04BC08091E800EF -:10145000877F8093E8008091E80080FFFCCF809137 -:101460000B0136C08091E8018132D9F58091EC0101 -:101470009091ED01892BA9F58091E800877F8093F9 -:10148000E8000E94750C8091EA0180930B010C9496 -:1014900015168091E801813221F58091E800877F5F -:1014A0008093E8000E94750C8091EB0180936801A5 -:1014B00008958091E801813AA1F48091E800877F46 -:1014C0008093E8008091E80080FFFCCF8091680164 -:1014D0008093F1008091E8008E778093E8000C946F -:1014E000750C089584B7877F84BF88E10FB6F894A0 -:1014F00080936000109260000FBE90E080E80FB60D -:10150000F89480936100909361000FBE0E943310A5 -:101510000E94C80C0E94250D8091E2008460809397 -:10152000E20078940E94C20F0E94351081E091E0A1 -:101530000E94DF0F0BC00E94DD1B8091E501882314 -:1015400029F00E94081C81110E94120B8091E70172 -:10155000853089F30E943F10F9CF292F332723309C -:101560003105B1F04CF42130310509F44DC0223081 -:10157000310509F04EC007C02132310541F1223258 -:10158000310591F146C0E4E7F0E082E693E045C022 -:1015900099278130910569F08230910589F0892B76 -:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A -:1015B00034C0E0E3F3E0E491F0E080E393E02DC099 -:1015C000E4E0F3E0E491F0E084E093E026C06430EE -:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182 -:1015E0009181E9E0F0E019C0643098F4E62FF0E072 -:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD -:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A -:1016100004C0E0E0F0E080E090E0DA018D939C937C -:10162000CF01089580E189BD82E189BD09B400FE42 -:10163000FDCF8091D8008F7D8093D8008091E0000D -:1016400082608093E0008091E00081FDFCCF0895EE -:10165000BF92CF92DF92EF92FF920F931F93CF939F -:10166000DF937C018B01EA010E94960CB82E811158 -:1016700033C0209731F028813981021B130BE20E11 -:10168000F31EC12CD12C23C08091E80085FD15C02C -:101690008091E8008E778093E800209749F0888158 -:1016A00099818C0D9D1D9983888325E0B22E14C0ED -:1016B0000E94960C882359F00EC0F70181917F019A -:1016C0008093F10001501109FFEFCF1ADF0A0115D5 -:1016D0001105D1F601C0B82E8B2DDF91CF911F914E -:1016E0000F91FF90EF90DF90CF90BF9008954091C1 -:1016F000EE015091EF014617570748F0611571054B -:1017000039F44091E8004E774093E80001C0BA01F7 -:10171000FC0140E033C08091E701882309F444C014 -:10172000853009F443C08091E80083FD41C0809179 -:10173000E80082FD33C08091E80080FF1FC09091D7 -:10174000F3008091F200392F20E0A901482BCA0153 -:1017500006C041914093F1006150710901966115F5 -:10176000710519F088309105A0F341E0089709F060 -:1017700040E08091E8008E778093E8006115710564 -:1017800051F64111C8CF0AC08091E701882361F06A -:10179000853061F08091E80083FD0AC08091E80007 -:1017A00082FFF2CF80E0089582E0089583E00895FB -:1017B00081E008954091EE015091EF0146175707DF -:1017C00048F06115710539F44091E8004E77409377 -:1017D000E80001C0BA01FC0140E034C08091E7019B -:1017E000882309F445C0853009F444C08091E8009D -:1017F00083FD42C08091E80082FD34C08091E80002 -:1018000080FF20C09091F3008091F200392F20E0FA -:10181000A901482BCA0107C044914093F1003196B9 -:101820006150710901966115710519F088309105B3 -:1018300098F341E0089709F040E08091E8008E7746 -:101840008093E8006115710549F64111C7CF0AC0C0 -:101850008091E701882361F0853061F08091E80094 -:1018600083FD0AC08091E80082FFF2CF80E00895F6 -:1018700082E0089583E0089581E00895982F2CC0B8 -:101880009093E900981739F07091EC002091ED00E9 -:101890005091F00003C0242F762F50E021FD02C0AC -:1018A0009F5F1AC03091EB003E7F3093EB00309188 -:1018B000ED003D7F3093ED003091EB0031603093CF -:1018C000EB007093EC002093ED005093F00020911A -:1018D000EE0027FDE5CF07C0973090F28F70809320 -:1018E000E90081E0089580E008958091E80187FD96 -:1018F00005C08091E80080FF0EC012C08091E80012 -:1019000082FD05C08091E7018111F8CF0895809193 -:10191000E8008B7708C08091E7018111EACF089534 -:101920008091E8008E778093E80008958091E4002C -:101930009091E50045E62091EC0020FD1FC023C0FA -:101940002091E701222391F0253091F02091EB00C6 -:1019500025FD10C02091E4003091E50028173907DB -:1019600051F34150C90139F784E0089582E00895A8 -:1019700083E0089581E0089580E008952091E800D3 -:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E -:101990000E94360D0E943E0DE0EEF0E080818160F5 -:1019A0008083E8EDF0E080818F77808319BCA7ED1C -:1019B000B0E08C918E7F8C9380818F7E808310929B -:1019C000E60108950F931F93CF93DF930E94360D86 -:1019D0000E943E0DC8EDD0E088818F778883888192 -:1019E0008068888388818F7D888319BC1092E70185 -:1019F0001092E3011092E5011092E40100EE10E074 -:101A0000F80180818B7F808388818160888342E0B8 -:101A100060E080E00E943E0CE1EEF0E080818E7F8D -:101A20008083E2EEF0E08081816080838081886045 -:101A30008083F80180818E7F8083888180618883A4 -:101A4000DF91CF911F910F910895E8EDF0E0808133 -:101A50008F7E8083E7EDF0E080818160808384E089 -:101A600082BF81E08093E6010C94E20CE8EDF0E0A7 -:101A700080818E7F80831092E20008951092DA00B8 -:101A80001092E10008951F920F920FB60F92112449 -:101A90002F933F934F935F936F937F938F939F9376 -:101AA000AF93BF93EF93FF938091E10082FF0BC050 -:101AB0008091E20082FF07C08091E1008B7F8093DC -:101AC000E1000E946D098091DA0080FF1FC08091C3 -:101AD000D80080FF1BC08091DA008E7F8093DA00EF -:101AE0008091D90080FF0DC080E189BD82E189BD70 -:101AF00009B400FEFDCF81E08093E7010E94580900 -:101B000005C019BC1092E7010E9466098091E100AE -:101B100080FF19C08091E20080FF15C08091E20033 -:101B20008E7F8093E2008091E20080618093E200EA -:101B30008091D80080628093D80019BC85E08093A2 -:101B4000E7010E946A098091E10084FF30C0809122 -:101B5000E20084FF2CC080E189BD82E189BD09B427 -:101B600000FEFDCF8091D8008F7D8093D8008091BA -:101B7000E1008F7E8093E1008091E2008F7E809370 -:101B8000E2008091E20081608093E2008091E301B5 -:101B9000882311F084E007C08091E30087FF02C032 -:101BA00083E001C081E08093E7010E946B0980918E -:101BB000E10083FF29C08091E20083FF25C080916E -:101BC000E100877F8093E10082E08093E70110923B -:101BD000E3018091E1008E7F8093E1008091E2003B -:101BE0008E7F8093E2008091E20080618093E2002A -:101BF00042E060E080E00E943E0C8091F00088604E -:101C00008093F0000E946909FF91EF91BF91AF911D -:101C10009F918F917F916F915F914F913F912F9104 -:101C20000F900FBE0F901F9018951F920F920FB636 -:101C30000F9211242F933F934F935F936F937F9352 -:101C40008F939F93AF93BF93CF93EF93FF93809125 -:101C5000E9008F709091EC0090FF02C090E801C005 -:101C600090E0C92FC82B1092E9008091F000877F87 -:101C70008093F00078940E94590E1092E9008091B0 -:101C8000F00088608093F000CF70C093E900FF916E -:101C9000EF91CF91BF91AF919F918F917F916F9174 -:101CA0005F914F913F912F910F900FBE0F901F901A -:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0 -:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9 -:101CD000819321E0E03FF207C9F70E94C10980919A -:101CE000E80083FF37C18091E8019091E9019530C8 -:101CF00009F488C038F49130B1F170F0933009F0F4 -:101D000029C131C0983009F4F8C0993009F404C1F0 -:101D1000963009F01FC19DC0803821F0823809F04B -:101D200019C108C08091E4019091E501992389F0DF -:101D300082600FC08091EC019091ED018F70992726 -:101D40008093E9008091EB0085FB882780F9109251 -:101D5000E9009091E800977F9093E8008093F1006C -:101D60001092F100D5C0882319F0823009F0F2C03A -:101D70008F7121F0823009F0EDC00BC08091EA0133 -:101D8000813009F0E7C0933009F080E08093E501ED -:101D90002FC08091EA0181112BC08091EC019091BC -:101DA000ED018F709927009709F4D4C08093E90062 -:101DB0002091EB0020FF1CC02091E901233021F489 -:101DC0008091EB00806212C09091EB009061909343 -:101DD000EB0021E030E001C0220F8A95EAF7209362 -:101DE000EA001092EA008091EB0088608093EB009B -:101DF0001092E9008091E800877F8093E8000E94BC -:101E0000750CA8C08111A6C08091EA019091EB01E8 -:101E10008F779927182F9091E3009078982B9093C3 -:101E2000E3008091E800877F8093E8000E94750CB2 -:101E30008091E80080FFFCCF8091E3008068809370 -:101E4000E300112311F083E001C082E08093E701F9 -:101E500081C08058823008F07DC08091EA01909165 -:101E6000EB018C3D23E0920779F583E08A838AE2D7 -:101E700089834FB7F894DE01139620E03EE051E2EB -:101E8000E32FF0E050935700E49120FF03C0E29568 -:101E9000EF703F5FEF708E2F90E0EA3010F0C79642 -:101EA00001C0C0968D939D932F5F243149F74FBF9A -:101EB0008091E800877F8093E8006AE270E0CE01BD -:101EC00001960E94770B13C0AE01455D5F4F609194 -:101ED000EC010E94AD0A0097E9F12091E800277F0C -:101EE0002093E800BC018BA59CA50E94DA0B809191 -:101EF000E8008B778093E8002DC0803859F58091F9 -:101F0000E800877F8093E8008091E3018093F100EF -:101F10008091E8008E7771CF81111CC09091EA0109 -:101F20009230C0F48091E800877F8093E80090931E -:101F3000E3010E94750C8091E301811104C080913E -:101F4000E30087FF02C084E001C081E08093E701E5 -:101F50000E94AD098091E80083FF0AC08091E800EB -:101F6000877F8093E8008091EB0080628093EB0094 -:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108 -:101F80001F910895CF938091E7018823B1F080914C -:101F9000E9008F709091EC0090FF02C090E801C0C2 -:101FA00090E0C92FC82B1092E9008091E80083FDD2 -:101FB0000E94590ECF70C093E900CF91089590937D -:101FC0007501809374010895E0917401F091750199 -:101FD000309721F00190F081E02D099480E0089580 -:101FE000E0917401F0917501309721F00280F38146 -:101FF000E02D09940895E0917401F09175013097F6 -:1020000021F00480F581E02D099408952091760156 -:10201000309177018217930771F090937701809345 -:102020007601E0917401F0917501309721F00680FE -:10203000F781E02D0994089520917801309179017C -:102040008217930771F09093790180937801E09162 -:102050007401F0917501309721F00084F185E02D35 -:102060000994089508950C9432100E94541C0E9403 -:1020700028060E94281D0C94D0220C9462055F92C1 -:102080006F927F928F929F92AF92BF92CF92DF9288 -:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED -:1020A0002A970FB6F894DEBF0FBECDBF0E94380747 -:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B -:1020C000B12C502E802F0E948C083C01F601E1902B -:1020D000F1906F01E826F926E114F10431F40F5F65 -:1020E0001F4F0530110569F73AC08091D00181FD7D -:1020F0000E94950820E030E04501022E02C0880CC5 -:10210000991C0A94E2F7C4018E219F21892B09F1C1 -:102110002E835F826820792081E0672809F480E0BF -:1021200088870E945D1C8160782F9A8789874E81FD -:102130005F8168858A850E94F810F801EE0FFF1F05 -:10214000E658FE4F8081918188259925918380836F -:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87 -:1021600089838A831B820E945D1C8160782F9D83F6 -:102170008C8349815A816B818D810E94F8100E9465 -:102180001520109184010E94E40F1817D9F00E94C5 -:10219000E40F809384012A960FB6F894DEBF0FBE39 -:1021A000CDBFDF91CF911F910F91FF90EF90DF9006 -:1021B000CF90BF90AF909F908F907F906F905F90E7 -:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B -:1021D000DF91CF911F910F91FF90EF90DF90CF9003 -:1021E000BF90AF909F908F907F906F905F90089579 -:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42 -:102200000FBECDBF4F83588769877A878B87DE01E2 -:10221000119686E0FD0111928A95E9F785E0FE01AD -:10222000379601900D928A95E1F749815A816B8129 -:102230007C818D819E810E94D4182B960FB6F894D4 -:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2 -:10225000882309F4C1C0823859F40E94E40F81FD3B -:10226000BBC089E30E943B1B0E94B71B89E30CC0E3 -:10227000833879F40E94E40F80FDAEC083E50E94AC -:102280003B1B0E94B71B83E50E945D1BCF910C9402 -:10229000B71B843859F40E94E40F82FD9DC087E487 -:1022A0000E943B1B0E94B71B87E4EECF8450813A0B -:1022B00048F48C2F0E94322281118EC08C2F0E94F4 -:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8 -:1022D00090E001C0880FCA95EAF70E947E1BD6CF16 -:1022E0008C2F855A833078F4C53A29F0C63A31F4F8 -:1022F00082E890E005C081E890E002C083E890E0C9 -:10230000CF910C9406108C2F885A833108F064C04A -:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7 -:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145 -:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5 -:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133 -:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079 -:1023600038C082EE90E035C089EE90E032C08AEE4F -:1023700090E02FC085EB90E02CC086EB90E029C068 -:1023800087EB90E026C08CEC90E023C08DEC90E0D1 -:1023900020C083E891E01DC08AE891E01AC082E97C -:1023A00091E017C084E991E014C081E292E011C08D -:1023B00083E292E00EC084E292E00BC085E292E0FC -:1023C00008C086E292E005C087E292E002C080E0A9 -:1023D00090E0CF910C941C10CF910895882309F4BC -:1023E0004DC0823859F40E94E40F81FF47C089E351 -:1023F0000E943B1B0E94B71B89E30CC0833871F419 -:102400000E94E40F80FF3AC083E50E943B1B0E94BC -:10241000B71B83E50E945D1B0C94B71B843859F4ED -:102420000E94E40F82FF2AC087E40E943B1B0E94A7 -:10243000B71B87E4EFCF982F9450913A08F4EACF76 -:10244000982F905E983058F4282F277081E090E004 -:1024500001C0880F2A95EAF70E94841BDDCF982FD0 -:10246000955A933020F480E090E00C940610885A3E -:10247000833120F480E090E00C941C1008958823B0 -:1024800021F00E947E1B0C94B71B0895882321F035 -:102490000E94841B0C94B71B0895BF92CF92DF92C9 -:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9 -:1024B00027970FB6F894DEBF0FBECDBF8C0185E025 -:1024C000F801DE01119601900D928A95E1F7F8016D -:1024D00030812181F280558152955F708381948192 -:1024E000892B39F02F3F41F481E090E03F3F31F0FC -:1024F00003C081E090E002C080E090E080FD73C303 -:1025000039832A8389819A815E830E94F81AB92EC1 -:102510008F830E94F71A0E941F1A2B2D22952F706D -:1025200030E05E816F812530310509F4E6C06CF43E -:10253000243031050CF0A2C04B2D407F8B2D8F70C5 -:10254000223031050CF045C017C02C3031054CF459 -:102550002A3031050CF0E7C12830310509F043C3BA -:10256000E5C02D30310509F4BAC20CF4A2C22F30F7 -:10257000310509F038C323C3182F411101C002C02F -:102580001295107FFF2059F0112309F46BC2812F9F -:102590006F830E948E1B0E94B71B6F8163C2862FC0 -:1025A0000E94EE11112309F41EC3812F0E94941B77 -:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147 -:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 -:1025D000B71B403211F08295807F662319F061307D -:1025E00071F523C0FF20B1F0511101C032C051304C -:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1 -:10260000CF911F910F91FF90EF90DF90CF90BF90EF -:102610000C949E1B511101C003C0513009F4E3C258 -:102620008E830E94A11B8E819AC1FF2021F056301B -:1026300008F0D9C20EC0553008F0D5C290C1FF20B5 -:10264000C9F0552331F0F801958190FF0BC29F70BE -:10265000958327960FB6F894DEBF0FBECDBFDF91EE -:10266000CF911F910F91FF90EF90DF90CF90BF908F -:102670000C943F12552309F472C109C22B2D2695E3 -:102680002695237030E02115310529F021303105E0 -:1026900009F0A9C219C0FF2021F0862F9B2D93704D -:1026A00002C080E090E027960FB6F894DEBF0FBE20 -:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1 -:1026C000CF90BF900C940610FF2021F0862F9B2DF9 -:1026D000937002C080E090E027960FB6F894DEBFBA -:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 -:1026F000DF90CF90BF900C941C10862FFF2019F014 -:102700000E941B1F02C00E94831F27960FB6F894D9 -:10271000DEBF0FBECDBFDF91CF911F910F91FF9014 -:10272000EF90DF90CF90BF900C940A208B2D837098 -:1027300009F079C0F11057C2262F229526952770EF -:10274000220F220F862F8F70C82ED12CE12CF12C56 -:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728 -:1027600064FF10C06FE070E080E090E004C0660F8E -:10277000771F881F991F2A95D2F7609570958095CD -:10278000909503C060E070E0CB012B2D2695269537 -:102790002370422F50E042305105D9F043305105AB -:1027A00069F16C297D298E299F294130510551F10C -:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145 -:1027C0001F910F91FF90EF90DF90CF90BF900C94EE -:1027D000341A6C297D298E299F2927960FB6F894E3 -:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 -:1027F000EF90DF90CF90BF900C94461A0E94341A4D -:10280000C701B60127960FB6F894DEBF0FBECDBF45 -:10281000DF91CF911F910F91FF90EF90DF90CF90BC -:10282000BF900C94221AFF2019F08B2D817001C0EB -:102830008695882309F4D7C1262F229526952770DF -:10284000220F220F862F8F70C82ED12CE12CF12C55 -:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727 -:1028600064FF10C06FE070E080E090E004C0660F8D -:10287000771F881F991F2A95D2F7609570958095CC -:10288000909503C060E070E0CB012B2D2695269536 -:102890002370422F50E042305105D9F043305105AA -:1028A00069F16C297D298E299F294130510551F10B -:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144 -:1028C0001F910F91FF90EF90DF90CF90BF900C94ED -:1028D000D31A6C297D298E299F2927960FB6F89443 -:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 -:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E -:10290000C701B60127960FB6F894DEBF0FBECDBF44 -:10291000DF91CF911F910F91FF90EF90DF90CF90BB -:10292000BF900C94C11A603F59F120F4603E08F446 -:1029300094C008C0623F09F467C0F0F1633F09F03A -:102940008CC065C0162F1F708B2D8F71FF2021F05A -:102950000E946C1A812F7DCE0E94871A812F2796A4 -:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0 -:102970000F91FF90EF90DF90CF90BF900C94461294 -:10298000FF20B1F0553008F02EC18B2D8F712796A6 -:102990000FB6F894DEBF0FBECDBFDF91CF911F9170 -:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC -:1029B000563008F018C1E9CFFF2099F08B2D8F71A8 -:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133 -:1029D0001F910F91FF90EF90DF90CF90BF900C94DC -:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31 -:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE -:102A0000CF90BF900C94871AF110EBCFD7CFFF2057 -:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD -:102A2000CDBFDF91CF911F910F91FF90EF90DF907D -:102A3000CF90BF900C945D1A27960FB6F894DEBF26 -:102A40000FBECDBFDF91CF911F910F91FF90EF90FF -:102A5000DF90CF90BF900C94581AFF20A9F0552317 -:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1 -:102A7000CDBFDF91CF911F910F91FF90EF90DF902D -:102A8000CF90BF900C942611552309F4AACF862F1E -:102A900027960FB6F894DEBF0FBECDBFDF91CF9162 -:102AA0001F910F91FF90EF90DF90CF90BF900C940B -:102AB000EE114B2D4F70C8010E94AB0227960FB646 -:102AC000F894DEBF0FBECDBFDF91CF911F910F9164 -:102AD000FF90EF90DF90CF90BF900C948A19F11087 -:102AE00082C09B2D9F70492F50E04230510599F1D3 -:102AF00044F44115510569F04130510509F073C0A6 -:102B000019C043305105C1F14430510509F06BC083 -:102B100044C027960FB6F894DEBF0FBECDBFDF913D -:102B2000CF911F910F91FF90EF90DF90CF90BF90CA -:102B30000C94E12227960FB6F894DEBF0FBECDBFEE -:102B4000DF91CF911F910F91FF90EF90DF90CF9089 -:102B5000BF900C94F82227960FB6F894DEBF0FBEF4 -:102B6000CDBFDF91CF911F910F91FF90EF90DF903C -:102B7000CF90BF900C94142327960FB6F894DEBF25 -:102B80000FBECDBFDF91CF911F910F91FF90EF90BE -:102B9000DF90CF90BF900C942723862F27960FB6F7 -:102BA000F894DEBF0FBECDBFDF91CF911F910F9183 -:102BB000FF90EF90DF90CF90BF900C944B234B2D64 -:102BC0004F70C80127960FB6F894DEBF0FBECDBF79 -:102BD000DF91CF911F910F91FF90EF90DF90CF90F9 -:102BE000BF900C94D40327960FB6F894DEBF0FBEA7 -:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC -:102C0000CF90BF9008950E949B1B0E94701B0E9452 -:102C1000B71B0E94B6200E940A2080E090E00E942C -:102C2000061080E090E00C941C100E948B1B0C940A -:102C300003160E94F81A292F22952F7030E02C30AD -:102C400031054CF42A3031056CF422503109223020 -:102C5000310590F407C02C30310551F02F3031058B -:102C600059F406C0803E10F0803F31F481E00895B1 -:102C700093FB882780F9089580E00895CF93DF9330 -:102C800000D000D01F92CDB7DEB70F900F900F90FD -:102C90000F900F90DF91CF910895CF93DF9300D0E5 -:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1 -:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8 -:102CC000C091BB0116E012C0D0E01C9FF0011D9F17 -:102CD000F00D1124E557FE4F4081518162817381CF -:102CE000848195810E944D162196C7708091BC0108 -:102CF000C813EACFDF91CF911F91089540918501CC -:102D000050918601609187017091880180918901BD -:102D100090918A010C944D160F931F93CF93DF93DC -:102D200080918A0182958F7009F069C08091870136 -:102D3000882309F464C0A091BB01D091BC01B0917B -:102D40008501C0918601809188019091890121E0DF -:102D500030E0BF3F11F020E030E0122FBC01609561 -:102D6000709506E04AC0009721F0CF3F29F4212F4B -:102D700005C021E030E002C020E030E020FD3BC093 -:102D80004A2F50E0049FF001059FF00D1124E557F4 -:102D9000FE4F2181C2132FC02081B2132CC022818B -:102DA000211129C0238134812817390718F0281BE5 -:102DB000390B02C0260F371F283C3105E0F4809103 -:102DC0008A018F70806180938A0186E0849FF00180 -:102DD000859FF00D1124E057FE4F80818F70806138 -:102DE000808385E891E00E944D12DF91CF911F9181 -:102DF0000F910C945D16AF5FA770AD13B4CFDF9148 -:102E0000CF911F910F910895EF92FF920F931F930F -:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE -:102E20000FBECDBF8C0185E0F801DE011D9601903B -:102E30000D928A95E1F7D8014C9111965C9111970A -:102E400012966C9112971396ED90FC9014977091D6 -:102E50008501E09186018091880190918901009718 -:102E600039F0EF3F41F421E030E07F3F31F003C023 -:102E700021E030E002C020E030E020FD5CC1209184 -:102E80008701222309F4F1C0E816F90628F097011A -:102E9000281B390BC90104C0809590958E0D9F1D8C -:102EA000883C910508F098C080918A01982F907F06 -:102EB00009F064C0E51314C0741312C0611110C08E -:102EC0008F70806180938A010E947E1685E891E070 -:102ED0000E944D1280918A01D80115968C9343C1AE -:102EE000EF2839F05F3F41F481E090E04F3F31F04F -:102EF00003C081E090E002C080E090E080FD03C06C -:102F000081E0862702C080E090E080FF2EC08091A3 -:102F1000BB012091BC0136E013C090E0389FF00166 -:102F2000399FF00D1124E557FE4F7181571306C0EC -:102F30007081471303C07281671317C001968770B1 -:102F40008213EBCF12C19F7059F0882309F40BC193 -:102F500007C09F7029F0F8019581907F09F403C1A3 -:102F6000805E883008F4FFC0D2C0662309F4FBC03D -:102F700080918A01816080938A01F5C0E51308C0C1 -:102F8000741306C0611104C0D80115968C939DC0BE -:102F90004D875E878D859E856A8B0E9419166A898A -:102FA000882309F4B4C0662309F4B1C020918A01D2 -:102FB000822F82958F7090E002970CF4C6C08091AA -:102FC00085019091860198878F831986FB86EA8612 -:102FD0002C87CE01079646C080918A01982F907F5A -:102FE00059F47E2DF98AE88A89890E943E1685E87F -:102FF00091E00E944D1295C0E51311C074130FC0EB -:1030000061110DC0F8018583C8010E944D12E5E8E9 -:10301000F1E086E0DF011D928A95E9F7A2C04D87B5 -:103020005E878D859E856A8B0E9419166A89882322 -:1030300009F46DC0662309F46AC020918A01822FC9 -:1030400082958F7090E002970CF47FC0809185018B -:10305000909186019A8389831B82FD82EC822E8364 -:10306000CE0101960E944D1270C0E816F90628F0B4 -:103070009701281B390BC90104C0809590958E0DCE -:103080009F1D883C910508F046C0662309F43FC0A7 -:10309000E51330C074132EC020918A0120FD21C099 -:1030A000322F32953F70832F90E00097D1F0D801F6 -:1030B00015962C9315970F9741F0832F8F5F82956C -:1030C000807F2F70282B15962C93C8010E944D12DB -:1030D00086E0F801A5E8B1E001900D928A95E1F74C -:1030E0003EC086E0F801A5E8B1E001900D928A9516 -:1030F000E1F737C04D875E878D859E850E94191642 -:10310000811123C080918A01816080938A01C80166 -:103110000E944D1226C07E2DF98AE88A89890E9474 -:103120003E16E5E8F1E086E0DF011D928A95E9F7B9 -:103130000E947E1618C0662351F34D875E878D85E9 -:103140009E850E941916882311F386E0F801A5E8F0 -:10315000B1E001900D928A95E1F70E948C160E94D1 -:103160007E1681E014C080E012C04D875E878D8599 -:103170009E850E94F81A292F22952F7030E0223068 -:1031800031050CF4E0CE243031050CF6E2CE629627 -:103190000FB6F894DEBF0FBECDBFDF91CF911F9168 -:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA -:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E -:1031C000588769877A878B879C87CE0107960E94EC -:1031D00004178823D9F02F8138858A859B85892B10 -:1031E00039F03F3F19F080E090E004C02F3FD9F75D -:1031F00081E090E0892B09F06DC04F815885698589 -:103200007A858B859C850E944D1664C086E0FE0100 -:103210003796DE01119601900D928A95E1F7FF81B4 -:10322000E8854A855B854115510539F0EF3F41F44A -:1032300081E090E0FF3F31F003C081E090E002C008 -:1032400080E090E080FD46C02091BC0130E0C901E3 -:103250000196877099276091BB0170E086179707E8 -:1032600009F440C0F983EA835D834C8396E0929F22 -:10327000D001939FB00D1124A557BE4FFE0131968A -:1032800001900D929A95E1F78093BC010E945D1622 -:1032900021C0189FC001112485579E4F0E9404171A -:1032A000882371F1E091BB011E9FF0011124E557C5 -:1032B000FE4F4081518162817381848195810E949A -:1032C0004D168091BB0190E00196877099278093FD -:1032D000BB0101C016E08091BB019091BC01891334 -:1032E000D8CF0EC00E9415161092BC011092BB01DF -:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83 -:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4 -:103310001F910895DF92EF92FF920F931F93CF9327 -:10332000DF93EC01009709F46EC0D12CEE24E394F6 -:10333000F12C8E010F5F1F4FFE018491843748F4FA -:10334000843008F04CC0813071F0823009F05BC0ED -:103350001EC0853709F43FC080F1982F94589037EC -:1033600008F051C03FC02296F8018491982F905EDA -:10337000983050F48770FE2D01C0FF0F8A95EAF750 -:103380008F2F0E948E1B13C00E9426112FC02296E1 -:10339000F8018491982F905E983060F48770FE2D2C -:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D -:1033B000B71B1CC00E94EE1119C02296F80104919F -:1033C00007C08FE99FE00197F1F700C000000150AE -:1033D0000111F7CF0BC02296F801D49007C00E94CC -:1033E000261103C08F770E94EE11E8018D2D07C0D2 -:1033F0008150EFE9FFE03197F1F700C0000088232A -:1034000009F497CFF5CFDF91CF911F910F91FF90E6 -:10341000EF90DF9008956093C1017093C201809393 -:10342000C3019093C4010C9403166093BD01709383 -:10343000BE018093BF019093C0010C9403160895C0 -:103440000C940B1A0F931F930091C1011091C201AC -:103450002091C3013091C401602B712B822B932BDF -:103460001F910F910C940B1A0F931F930091C101A0 -:103470001091C2012091C3013091C40160237123D6 -:10348000822393231F910F910C940B1A0F931F9378 -:103490000091C1011091C2012091C3013091C4017A -:1034A00060277127822793271F910F910C940B1A85 -:1034B00060E070E0CB010C94151A41E050E060E050 -:1034C00070E004C0440F551F661F771F8A95D2F71E -:1034D000CB01BA010C94151A41E050E060E070E0B5 -:1034E00004C0440F551F661F771F8A95D2F780913D -:1034F000BD019091BE01A091BF01B091C001482BC8 -:10350000592B6A2B7B2BCB01BA010C94151A41E085 -:1035100050E060E070E004C0440F551F661F771F45 -:103520008A95D2F740955095609570958091BD0130 -:103530009091BE01A091BF01B091C00148235923D1 -:103540006A237B23CB01BA010C94151A41E050E0A9 -:1035500060E070E004C0440F551F661F771F8A9516 -:10356000D2F78091BD019091BE01A091BF01B091B1 -:10357000C001482759276A277B27CB01BA010C9441 -:10358000151A0F931F930091BD011091BE01209158 -:10359000BF013091C001602B712B822B932B1F91A7 -:1035A0000F910C94151A0F931F930091BD01109168 -:1035B000BE012091BF013091C0016023712382239D -:1035C00093231F910F910C94151A0F931F93009141 -:1035D000BD011091BE012091BF013091C001602753 -:1035E0007127822793271F910F910C94151A089524 -:1035F000CF92DF92EF92FF920F931F93CF93DF93BF -:10360000EC01C090C101D090C201E090C301F090E4 -:10361000C4018091BD019091BE01A091BF01B09104 -:10362000C001C82AD92AEA2AFB2A0FE110E0B70113 -:10363000A601002E04C076956795579547950A9484 -:10364000D2F740FF08C0BE01802F0E94FA038130EC -:10365000910509F007C00150110948F7BE0180E04B -:103660000E94FA03DF91CF911F910F91FF90EF908D -:10367000DF90CF90089540910C0150910D0120E012 -:1036800030E09FEFFA01E20FF31F62816817A1F0AB -:103690009F3F19F4611101C0922F2F5F3F4F2630D9 -:1036A000310581F707C0FA01E90FF11D97FDFA9581 -:1036B000828308959F3FB9F7089540910C0150917E -:1036C0000D0120E030E0FA01E20FF31F9281981320 -:1036D00001C012822F5F3F4F26303105A1F70895B8 -:1036E00081E090E0E0910C01F0910D01E80FF91FED -:1036F0001082019688309105A9F708959091C5012F -:10370000982B9093C501089580959091C5019823B9 -:103710009093C50108951092C50108959091C60136 -:10372000982B9093C601089580959091C601982397 -:103730009093C60108951092C60108958093C70121 -:1037400008951092C701089540910C0150910D0108 -:1037500020E030E080E0FA01E20FF31F9181911147 -:103760008F5F2F5F3F4F27303105A9F70895E09114 -:103770000C01F0910D018091C5018083E0910C0155 -:10378000F0910D0180819091C601892B80839091E9 -:10379000C701992361F0E0910C01F0910D01808146 -:1037A000892B80830E94A41B81110E94A11B809100 -:1037B0000C0190910D010C94F00F8091E701843081 -:1037C00021F11092D10120E488E190E00FB6F89445 -:1037D000A895809360000FBE2093600080E00E9457 -:1037E000E10283B7817F846083BF83B7816083BF39 -:1037F0007894889583B78E7F83BF88E10FB6F8945D -:1038000080936000109260000FBE0895089508959F -:10381000CF9380E00E94E1020E94061C0E943807BC -:103820000E94071CC0E08C2F0E948C08892B29F471 -:10383000CF5FC530C1F780E001C081E0CF9108952E -:103840000E94151680E00E94E1020E94D0220E9490 -:10385000E40F0C9462051F920F920FB60F92112481 -:103860008F939F93AF93BF938091D101811113C028 -:103870008091D2019091D301A091D401B091D50152 -:103880004196A11DB11D8093D2019093D301A093C5 -:10389000D401B093D501BF91AF919F918F910F90BB -:1038A0000FBE0F901F90189582E084BD93E095BDE8 -:1038B0009AEF97BD80936E0008958FB7F89440916A -:1038C000D2015091D3016091D4017091D5018FBF85 -:1038D000CA010895CF92DF92EF92FF920F931F9348 -:1038E0002FB7F8944091D2015091D3016091D40147 -:1038F0007091D5012FBF6A017B01EE24FF248C015A -:1039000020E030E0C016D106E206F30620F09A016E -:10391000281B390B05C09C0120953095240F351FBD -:10392000C9011F910F91FF90EF90DF90CF90089504 -:103930001F920F920FB60F9211248F939F93AF9304 -:10394000BF938091D2019091D301A091D401B09105 -:10395000D5010196A11DB11D8093D2019093D30191 -:10396000A093D401B093D501BF91AF919F918F9156 -:103970000F900FBE0F901F9018950E94C80CF894DE -:103980002FEF87EA91E6215080409040E1F700C098 -:10399000000087E090EBDC018093F1019093F2014D -:1039A000A093F301B093F4012CE088E190E00FB60E -:1039B000F894A895809360000FBE20936000FFCF1D -:1039C000CF92DF92EF92FF920F931F93CF93DF93EB -:1039D000C82ED12C01E010E08D2D0E948C087C01B6 -:1039E000C0E0D0E098010C2E02C0220F331F0A94D1 -:1039F000E2F72E213F21232B29F42196CC30D1054B -:103A000089F708C06C2F7D2D80E00E94D503C81275 -:103A1000F4CF06C0D39485E0D812DECF80E001C099 -:103A200081E0DF91CF911F910F91FF90EF90DF9098 -:103A3000CF900895CF93C82F8CE20E94E01C88237A -:103A400021F08C2FCF910C94E01C80E0CF91089551 -:103A5000CF930E946B1E811102C00E944C1EC5E6CE -:103A600008C00E9438078FE39CE90197F1F700C076 -:103A70000000C150B1F789E20E941A1D81110AC1EC -:103A80008AE20E941A1D81110E944C1E85E00E944C -:103A90001A1D81110E94BD1C0E94761E8093D001C8 -:103AA00087E00E941A1D882399F18BE10E941A1D5C -:103AB000882351F09091D00191FB882780F921E073 -:103AC000822780FB91F922C08EE00E941A1D882374 -:103AD00051F09091D00192FB882780F921E0822754 -:103AE00080FB92F913C080E10E941A1D9091D001D1 -:103AF000882341F093FB882780F921E0822780FB0F -:103B000093F904C0892F809580FB90F99093D001A0 -:103B10008091D0010E947A1E0E94881E8093E1014C -:103B200080EE0E941A1D882341F08091E101982FB8 -:103B3000909590FB80F98093E10189E30E941A1D22 -:103B4000882359F09091E10191FB882780F921E0C9 -:103B5000822780FB91F99093E10182EE0E941A1D69 -:103B6000882359F09091E10192FB882780F921E0A8 -:103B7000822780FB92F99093E10186EE0E941A1D44 -:103B8000882359F09091E10193FB882780F921E087 -:103B9000822780FB93F99093E10183EE0E941A1D26 -:103BA000882359F09091E10194FB882780F921E066 -:103BB000822780FB94F99093E10185E30E941A1D0E -:103BC000882359F09091E10195FB882780F921E045 -:103BD000822780FB95F99093E10181E30E941A1DF1 -:103BE000882359F09091E10196FB882780F921E024 -:103BF000822780FB96F99093E10181E10E941A1DD2 -:103C0000882359F09091E10197FB882780F921E002 -:103C1000822780FB97F99093E1018091E1010E9456 -:103C20008C1E87E20E941A1DC82F8EE10E941A1D69 -:103C30008111C2608FE10E941A1D8111C46080E26F -:103C40000E941A1D8111C86081E20E941A1D811113 -:103C5000C06182E20E941A1D8111C06283E20E944B -:103C60001A1D8111C06484E20E941A1D882311F07C -:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9 -:103C800003C00E947F1E682F70E080E090E0CF911B -:103C90000C94201ACF9108956DEE7EEF80E090E0B5 -:103CA0000E94D92460E082E090E00E94CB2460E092 -:103CB00083E090E00E94CB2460E084E090E00E94EA -:103CC000CB2460E085E090E00E94CB2460E086E0B9 -:103CD00090E00C94CB2480E090E00E94C52421E089 -:103CE0008D3E9E4F09F020E0822F089582E090E003 -:103CF0000C94BD24682F82E090E00C94CB2483E0E8 -:103D000090E00C94BD24682F83E090E00C94CB24C9 -:103D100084E090E00C94BD24682F84E090E00C9443 -:103D2000CB2486E090E00C94BD24682F86E090E0E0 -:103D30000C94CB248091DE0180FF0BC060911101B7 -:103D400085E0689FB0011124759567957595679515 -:103D50002AC081FF09C06091110185E0689FB00110 -:103D60001124759567951FC082FF07C060911101EE -:103D700085E0689FB001112416C04091D80144230A -:103D8000C9F060911001461788F72091110185E074 -:103D9000289F90011124429FC001439F900D112440 -:103DA00070E00E9495246038710540F4611571053A -:103DB00039F002C065E070E0862F08958FE708951E -:103DC00081E008958091DE0180FF08C060910F01BD -:103DD00070E0759567957595679521C081FF06C060 -:103DE00060910F0170E07595679519C082FF04C05E -:103DF00060910F0170E010C08091D8018823C1F05C -:103E000060910E018617A0F790910F01989FC00155 -:103E1000112470E00E9495246038710528F4611522 -:103E2000710521F0862F08958FE7089581E00895A8 -:103E300061E070E0F4CF803F21F40E949A1E8195EA -:103E400004C0813F29F40E949A1E8093DB010895EB -:103E5000823F21F40E949A1E819504C0833F29F479 -:103E60000E949A1E8093DA010895893F19F40E94F6 -:103E7000E21E05C08A3F31F40E94E21E81958093C4 -:103E8000DC0108958B3F21F40E94E21E819504C05D -:103E90008C3F29F40E94E21E8093DD010895843F47 -:103EA00021F48091D901816017C0853F21F4809170 -:103EB000D901826011C0863F21F48091D9018460CC -:103EC0000BC0873F21F48091D901886005C0883FED -:103ED00031F48091D90180618093D90108958D3F9B -:103EE00021F48091DE0181600BC08E3F21F480912E -:103EF000DE01826005C08F3F29F48091DE0184607D -:103F00008093DE010895803F29F48091DB0187FFD3 -:103F10006EC007C0813F41F48091DB0118160CF0A0 -:103F200066C01092DB0163C09091DA01823F19F400 -:103F300097FF5DC005C0833F31F419160CF057C0E0 -:103F40001092DA0154C0893F31F48091DC011816D7 -:103F50000CF04DC006C08A3F39F48091DC0187FF28 -:103F600046C01092DC0143C08B3F29F48091DD01F3 -:103F700087FF3DC006C08C3F39F48091DD011816E3 -:103F8000B4F51092DD0133C0843F21F48091D90152 -:103F90008E7F05C0853F31F48091D9018D7F80935C -:103FA000D90125C0863F21F48091D9018B7FF7CFBD -:103FB000873F21F48091D901877FF1CF883F21F499 -:103FC0008091D9018F7EEBCF8D3F21F48091DE016E -:103FD0008E7F0BC08E3F21F48091DE018D7F05C066 -:103FE0008F3F29F48091DE018B7F8093DE018091E9 -:103FF000DA0181110EC08091DB0181110AC080912C -:10400000DC01811106C08091DD01811102C0109296 -:10401000D801089589ED91E00E94FB0F0E945D1C7C -:104020009093D7018093D6010895CF938091D601C4 -:104030009091D7010E946A1C4091D801442321F03D -:104040002091120130E006C0209113015AE0259F13 -:10405000900111248217930708F486C08091DA0139 -:1040600081110DC09091DB01911109C09091DC018B -:10407000911105C09091DD01992309F475C04F3F5E -:1040800019F04F5F4093D801181624F40E949A1E2D -:104090008093DA018091DA0187FF05C00E949A1EA1 -:1040A00081958093DA018091DB01181624F40E9437 -:1040B0009A1E8093DB018091DB0187FF05C00E947F -:1040C0009A1E81958093DB016091DA01662339F1B4 -:1040D000C091DB01CC2319F1772767FD7095872FFD -:1040E000972F0E949A2323E333E343E35FE30E9485 -:1040F000FE230E9467236093DA016C2F772767FD08 -:104100007095872F972F0E949A2323E333E343E38D -:104110005FE30E94FE230E9467236093DB0180918E -:10412000DC01181624F40E94E21E8093DC018091C9 -:10413000DC0187FF05C00E94E21E81958093DC01AF -:104140008091DD01181624F40E94E21E8093DD01A7 -:104150008091DD0187FF05C00E94E21E819580935A -:10416000DD01CF910C940A20CF910895E9EDF1E0A3 -:1041700085E0DF011D928A95E9F71092D80110922F -:10418000DE010895833089F130F4813061F08230AE -:1041900009F06EC019C0853009F449C0B8F1863005 -:1041A00009F066C055C020911301862F90E0820F60 -:1041B000911D8F3F910520F4620F609313010895C4 -:1041C0008FEF80931301089520911201862F90E0C4 -:1041D000820F911D8F3F910520F4620F60931201B1 -:1041E00008958FEF80931201089520911101862F79 -:1041F00090E0820F911D8F3F910520F4620F609334 -:10420000110108958FEF80931101089520911001FD -:10421000862F90E0820F911D8F3F910520F4620F51 -:104220006093100108958FEF8093100108952091FD -:104230000F01862F90E0820F911D8F3F910520F492 -:10424000620F60930F0108958FEF80930F0108951F -:1042500020910E01862F90E0820F911D8F3F9105D6 -:1042600020F4620F60930E0108958FEF80930E018A -:104270000895833021F130F4813059F0823009F013 -:1042800049C012C0853089F128F1863009F042C05A -:1042900037C080911301681720F4861B80931301A7 -:1042A000089510921301089580911201681720F467 -:1042B000861B809312010895109212010895809137 -:1042C0001101681720F4861B809311010895109244 -:1042D0001101089580911001681720F4861B8093C6 -:1042E0001001089510921001089580910F01681730 -:1042F00020F4861B80930F01089510920F010895FA -:1043000080910E01681720F4861B80930E0108959A -:1043100010920E01089541E050E060E070E004C0AA -:10432000440F551F661F771F8A95D2F7CB01BA013C -:104330000E94201A0C941516873200F58E3108F071 -:1043400086C08E3009F466C060F4873009F44DC031 -:1043500018F4863049F531C0883041F18B3021F5B1 -:104360007BC0863109F478C018F48031E9F45CC070 -:10437000893109F471C08B31B9F442C0883309F432 -:104380006BC048F4893209F460C0853309F45DC01C -:10439000873251F45AC0833409F457C018F48A3371 -:1043A00018F057C0883499F080E008950E94761E76 -:1043B0000E94881E0E94911E4FC08091D001817F73 -:1043C0008E7F8093D00181E08093DF0108950E9469 -:1043D00015162FEF83ED90E3215080409040E1F7D8 -:1043E00000C000000E94BD1C37C08091D00180FF3A -:1043F00003C0817F8E7F01C081608093D0012CC07B -:104400009091D00191FB882780F921E0822780FBE1 -:1044100091F913C09091D00192FB882780F921E097 -:10442000822780FB92F909C09091D00193FB8827E5 -:1044300080F921E0822780FB93F99093D0018823B3 -:1044400059F091609093D00107C080E003C08D5176 -:1044500001C089530E948B2181E0089580E0089576 -:1044600080E00895CF93C82F8091DF01813071F0F3 -:1044700020F0823009F089C037C0A0910C01B091C2 -:104480000D018C91823209F082C007C0A0910C010D -:10449000B0910D018C91823249F48C2F0E942E2212 -:1044A00081111EC08C2F0E949C211CC08C2F0E9449 -:1044B0003022811115C0C43169F030F4CB3081F065 -:1044C000C03109F068C009C0C93221F0C83309F011 -:1044D00062C006C01092DF015EC082E08093DF01FF -:1044E00081E090E081705AC0C932C9F060F4C431F3 -:1044F000B1F020F4C73009F04CC034C0CE51C63002 -:1045000008F047C017C0CE3439F120F4CB3409F09D -:1045100040C01CC0C135C1F0C235D9F513C080916F -:10452000E001882319F01092E00133C081E080930C -:10453000DF0134C0EC2FF0E0E65BFE4F808180931A -:10454000E00127C061E003C061E007C06AE080913C -:10455000E0010E94C2201DC06AE08091E0010E943B -:10456000392117C08EE18093130182E380931201F9 -:104570008AE08093110184E18093100188E08093A8 -:104580000F0188E280930E0104C01092DF0180E0E9 -:1045900005C081E003C080E090E0A4CFCF910895F2 -:1045A0000E946B1E811102C00E944C1E0E94911E2F -:1045B0008093F00180FF02C0869501C080E00C94DA -:1045C000E1028091F001982F9695292F30E0233059 -:1045D00031054CF49F5F990F8170892B8160809326 -:1045E000F0010E94951E8091F00186950C94E102E5 -:1045F0008091F001982F969591F09158990F8170C4 -:10460000892B8093F0018E7F91E009F490E08091F6 -:10461000F00190FB80F98093F0010E94951E80913B -:10462000F00186950C94E1028091F001982F90950D -:1046300090FB80F98093F0010E94951E8091F0011B -:1046400080FF02C0869501C080E00C94E1023091A9 -:10465000F001232F26952F5F2F77822F90E0317066 -:1046600004972CF4220F232B2093F00102C03093E7 -:10467000F0018091F001282F2E7F91E009F490E065 -:1046800090FB80F98093F0010E94951E8091F001CB -:1046900086950C94E1022091F001922F969598272F -:1046A000990F822F8170892B8093F0018E7F91E08A -:1046B00009F490E08091F00190FB80F98093F00183 -:1046C0000E94951E8091F00186950C94E10204D021 -:1046D0006894B1118DC0089570D088F09F5790F004 -:1046E000B92F9927B751A0F0D1F0660F771F881F17 -:1046F000991F1AF0BA95C9F712C0B13081F077D07E -:10470000B1E0089574C0672F782F8827B85F39F01B -:10471000B93FCCF3869577956795B395D9F73EF475 -:1047200090958095709561957F4F8F4F9F4F08951D -:10473000E89409C097FB3EF490958095709561953B -:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1 -:104750009395F695879577956795B795F111F8CF6D -:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8 -:104770009F4F16C0882311F096E911C0772321F0CE -:104780009EE8872F762F05C0662371F096E8862F66 -:1047900070E060E02AF09A95660F771F881FDAF7BD -:1047A000880F9695879597F9089557FD9058440F6F -:1047B000551F59F05F3F71F04795880F97FB991F80 -:1047C00061F09F3F79F0879508951216130614063D -:1047D000551FF2CF4695F1DF08C0161617061806CA -:1047E000991FF1CF86957105610508940895E894A5 -:1047F000BB2766277727CB0197F908950BD078C0A0 -:1048000069D028F06ED018F0952309F05AC05FC027 -:104810001124EECFCADFA0F3959FD1F3950F50E09E -:10482000551F629FF001729FBB27F00DB11D639F62 -:10483000AA27F00DB11DAA1F649F6627B00DA11D08 -:10484000661F829F2227B00DA11D621F739FB00DAE -:10485000A11D621F839FA00D611D221F749F33271E -:10486000A00D611D231F849F600D211D822F762FB7 -:104870006A2F11249F5750408AF0E1F088234AF0B4 -:10488000EE0FFF1FBB1F661F771F881F9150504000 -:10489000A9F79E3F510570F014C0AACF5F3FECF31B -:1048A000983EDCF3869577956795B795F795E795EC -:1048B0009F5FC1F7FE2B880F911D9695879597F9FD -:1048C000089597F99F6780E870E060E008959FEF92 -:1048D00080EC089500240A94161617061806090697 -:1048E000089500240A941216130614060506089566 -:1048F000092E0394000C11F4882352F0BB0F40F4EE -:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D -:104910000895991B79E004C0991F961708F0961B1B -:10492000881F7A95C9F78095089597FB072E16F48E -:10493000009407D077FD09D00E94A92407FC05D078 -:104940003EF4909581959F4F0895709561957F4FA6 -:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6 -:10496000B70710F0A61BB70B881F991F5A95A9F718 -:1049700080959095BC01CD010895F999FECF92BD27 -:1049800081BDF89A992780B50895A8E1B0E042E08A -:1049900050E00C94E024262FF999FECF1FBA92BD67 -:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610 -:1049B00008950E94CB24272F0C94CC24DC01CB013A -:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F -:1049D00000B40D9241505040B8F70895F894FFCFBD -:1049E00005960826090209CD08990801C80128087A -:1049F000140A321E420045002500260043006100D3 -:104A00006000200037006400650066006700440015 -:104A100046002400470074038D03A603BF038B04E4 -:104A20003E040804E8033F4D362001020304050656 -:044A3000070809006A -:00000001FF -- cgit v1.2.3 From 28352f46192c50867e5e1439be6149374d2b78bd Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 25 Apr 2016 01:01:41 -0400 Subject: adds revisions of .hex files for planck/preonic --- keyboard/planck/planck_pcb_r3.hex | 1544 ++++++++++++++++++ keyboard/planck/planck_pcb_r3_w_bootloader.hex | 1796 +++++++++++++++++++++ keyboard/planck/planck_pcb_r4.hex | 1628 +++++++++++++++++++ keyboard/planck/planck_pcb_r4_w_bootloader.hex | 1880 ++++++++++++++++++++++ keyboard/preonic/preonic_pcb_r1.hex | 1702 ++++++++++++++++++++ keyboard/preonic/preonic_pcb_r1_w_bootloader.hex | 1863 +++++++++++++++++++++ 6 files changed, 10413 insertions(+) create mode 100644 keyboard/planck/planck_pcb_r3.hex create mode 100755 keyboard/planck/planck_pcb_r3_w_bootloader.hex create mode 100644 keyboard/planck/planck_pcb_r4.hex create mode 100644 keyboard/planck/planck_pcb_r4_w_bootloader.hex create mode 100644 keyboard/preonic/preonic_pcb_r1.hex create mode 100644 keyboard/preonic/preonic_pcb_r1_w_bootloader.hex (limited to 'keyboard') diff --git a/keyboard/planck/planck_pcb_r3.hex b/keyboard/planck/planck_pcb_r3.hex new file mode 100644 index 000000000..11f523c05 --- /dev/null +++ b/keyboard/planck/planck_pcb_r3.hex @@ -0,0 +1,1544 @@ +:100000000C949D020C94E1020C94E1020C94E10228 +:100010000C94E1020C94E1020C94E1020C94E102D4 +:100020000C94E1020C94E1020C941C120C94EE125C +:100030000C948D240C94E1020C94E1020C94E102E6 +:100040000C94E1020C94E1020C94E1020C94E102A4 +:100050000C94E1020C94FA240C94E1020C94E10259 +:100060000C94E1020C94E1020C94E1020C94E10284 +:100070000C94E1020C94E1020C94E1020C94E10274 +:100080000C94860A0C94E1020C94E1020C94E102B7 +:100090000C94E1020C94E1020C94E1020C94E10254 +:1000A0000C94E1020C94E1020C94E10207634236E5 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F0000000000000021 +:10013000F1A4F1A3018C028C048C2B0014001A0092 +:100140000800150017001C0018000C001200130016 +:100150002A00290004001600070009000A000B000D +:100160000D000E000F0033003400E1001D001B00E5 +:100170000600190005001100100036003700380095 +:1001800028000030E000E200E30002202C002C00F8 +:1001900001205000510052004F002B0014001A00A3 +:1001A000090013000A000D000F0018001C003300A6 +:1001B0002A002900040015001600170007000B0094 +:1001C000110008000C0012003400E1001D001B00AB +:1001D0000600190005000E00100036003700380038 +:1001E00028000030E000E200E30002202C002C0098 +:1001F00001205000510052004F002B003400360007 +:10020000370013001C0009000A00060015000F004B +:100210002A00290004001200080018000C00070042 +:100220000B001700110016003800E1003300140025 +:100230000D000E001B00050010001A0019001D0023 +:1002400028000030E000E200E30002202C002C0037 +:1002500001205000510052004F0035021E021F02C3 +:100260002002210222022302240225022602270262 +:100270002A0001003A003B003C003D003E003F00E8 +:100280002D022E022F0230023102010040004100F7 +:100290004200430044004500032004200520005094 +:1002A0000100010001000100010002200100010025 +:1002B0000100AB00AA00A900AE0035001E001F001F +:1002C0002000210022002300240025002600270012 +:1002D0002A0001003A003B003C003D003E003F0088 +:1002E0002D002E002F0030003100010040004100A1 +:1002F0004200430044004500032004200520005034 +:1003000001000100010001000100010001000100E5 +:100310000120AB00AA00A900AE0028035400680029 +:100320006500200050006C0061006E0063006B00EF +:1003300020004B006500790062006F0061007200D0 +:10034000640000002C034F007200740068006F000E +:100350006C0069006E0065006100720020004B00B7 +:100360006500790062006F00610072006400730034 +:100370000000040309040902D000060100A03209AC +:100380000400000103010100092111010001223FC5 +:10039000000705810308000A0904010001030102A6 +:1003A00000092111010001224D0007058203080008 +:1003B0000A090402000103000000092111010001E3 +:1003C0002236000705830308000A0904030002031C +:1003D000000000092111010001222000070584030B +:1003E00020000107050403200001090404000001A6 +:1003F00001000009240100010900010509040500AC +:10040000020103000007240100014100062402014B +:100410000100062402020200092403010301020173 +:10042000000924030204010101000905060240003D +:1004300005000005250101010905850240000500B0 +:100440000005250101031201100100000008EDFE66 +:1004500060600100010200010631FF0974A1010979 +:1004600075150025FF952075088102097615002570 +:10047000FF952075089102C005010980A101850240 +:1004800016010026B7001A01002AB7007510950161 +:100490008100C0050C0901A1018503160100269CFD +:1004A000021A01002A9C02751095018100C0050105 +:1004B0000902A1010901A100050919012905150079 +:1004C00025019505750181029501750381010501DD +:1004D000093009311581257F950275088106093893 +:1004E0001581257F950175088106050C0A380215CE +:1004F00081257F950175088106C0C005010906A107 +:1005000001050719E029E715002501950875018106 +:1005100002950175088101050819012905950575E0 +:100520000191029501750391010507190029FF1535 +:100530000025FF950675088100C011241FBECFEF6E +:10054000DAE0DEBFCDBF04B603FE24C0809178039D +:1005500090917903A0917A03B0917B038730904BFF +:10056000A740B04BB9F4109278031092790310921F +:100570007A0310927B0314BE84B7877F84BF88E11F +:100580000FB6F89480936000109260000FBEE0E018 +:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E +:1005A00005900D92A63BB107D9F713E0A6EBB1E099 +:1005B00001C01D92A837B107E1F70E94F90E0C9413 +:1005C000CF2F0C9400000895089561110DC0FC0117 +:1005D0008281882331F085EE0E949D190E94B62BFE +:1005E00003C085EE0E94651A80E090E008958B3B81 +:1005F000910568F4883A910530F5853A9105C0F483 +:100600008430910598F4019709F06FC071C0803E65 +:10061000910508F46AC0883E910540F09C01205F76 +:1006200031092031310508F060C05CC09C01A1C0D7 +:10063000853A910509F45FC0863A910509F45EC0D8 +:1006400023E830E496C0883A910509F45AC0893A03 +:10065000910509F459C08A3A910509F458C08B3ABA +:10066000910509F457C08C3A910509F456C08D3AAA +:10067000910509F455C0803B910509F454C08E3AA8 +:10068000910509F453C08F3A910509F452C0813B9A +:10069000910509F451C0823B910509F450C0833B98 +:1006A000910509F44FC0843B910509F44EC0853B88 +:1006B000910509F44DC0863B910509F44CC0873B78 +:1006C000910509F44BC0883B910509F44AC0893B68 +:1006D000910509F449C08A3B910509F048C02AE216 +:1006E00036E447C09C01306544C020E030E041C0A2 +:1006F00021E030E03EC021E830E43BC022E830E4B5 +:1007000038C022EE34E435C029EE34E432C02AEE9B +:1007100034E42FC025EB34E42CC026EB34E429C0AC +:1007200027EB34E426C02CEC34E423C02DEC34E475 +:1007300020C023E835E41DC02AE835E41AC022E9C8 +:1007400035E417C024E935E414C021E236E411C0D1 +:1007500023E236E40EC024E236E40BC025E236E4A0 +:1007600008C026E236E405C027E236E402C020E0F5 +:1007700034E4C90108959CE0799FF001112490E3CD +:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 +:10079000E65CFE4F25913491C9010895880F991F99 +:1007A00082559040FC0125913491C9010895880F2C +:1007B000991F825D9E4FFC0125913491C9010895D6 +:1007C0000E94BB039C013A9521153F4108F4DFC00C +:1007D0009C0130522115304120F49F700E94D703B4 +:1007E00008959C0130532115304118F49927906CDD +:1007F00008959C0130542031310520F48F709927E1 +:10080000946D0895803120E4920719F480E091ED11 +:100810000895813140E4940719F480E090ED089543 +:10082000823120E4920719F480E092ED089583313B +:1008300040E4940719F480E093ED0895811520E5D4 +:10084000920711F40C941F25813040E5940731F490 +:100850008091680281608093680208959C013056FF +:100860002115304108F402C097FF02C0906F08952F +:10087000803E9105E0F4803C910568F58133910557 +:1008800009F474C048F48932910509F46AC08A32C7 +:10089000910509F07AC074C089339105F9F0823866 +:1008A0009105E1F08533910509F06FC050C0833E9A +:1008B0009105A9F140F4803E9105C9F0823E910571 +:1008C00009F063C01BC0863E910571F1873E91051A +:1008D00009F05BC037C00E94CE03089520917B02CF +:1008E00020FD02C021FF51C080EE90E04EC08091FB +:1008F0007B0280FFF9CF89E390E047C080917B02C3 +:1009000082FF0AC080917B0284FF03C080E090E0F8 +:100910003CC083EE90E039C082EE90E036C080911A +:100920007B0282FFEFCFF8CF80917B0283FF07C06D +:1009300080917B0284FDEACF87EE90E026C086EEB0 +:1009400090E023C080917B0283FFF2CFF8CF8091AB +:100950007B0285FF03C089E290E017C085E390E049 +:1009600014C080917B0285FDF9CFF5CF80917B0289 +:1009700086FF03C08AE290E008C081E390E005C0F2 +:1009800080917B0286FDF9CFF5CF0E94F702089592 +:100990005F926F927F928F929F92AF92BF92CF920F +:1009A000DF92EF92FF920F931F93CF93DF93CDB718 +:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD +:1009C0002F5F3F4F4E0189E0880E911C60E070E080 +:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 +:1009E00088E0782E622E532E41E050E0E3E2F1E001 +:1009F000A62DB52D872D01900D928A95E1F7F9016D +:100A0000819191919F01FC01E07FFF27E032F10588 +:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 +:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 +:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E +:100A4000DF2A29C0E034F10559F48F709927FA01A3 +:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 +:100A6000E035F10559F48F709927FA0102C0EE0FB5 +:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 +:100A800051F48F709927FA0102C0EE0FFF1F8A956B +:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B +:100AA0008A2D8095892384B985B18A2985B997B122 +:100AB0008C2D8095892387B988B18C2988B99AB102 +:100AC0008E2D809589238AB98BB18E298BB99DB1E2 +:100AD000802F809589238DB98EB1802B8EB990B3EC +:100AE000862F8095892380BB81B3862B81BB289676 +:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F +:100B00000F91FF90EF90DF90CF90BF90AF909F90AC +:100B10008F907F906F905F9008955F926F927F9219 +:100B20008F929F92AF92BF92CF92DF92EF92FF92FD +:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 +:100B4000F894DEBF0FBECDBF85B7806885BF85B77F +:100B5000806885BF0E94CF076E9A769A0E94C8046B +:100B60009E012F5F3F4F4E0189E1880E911C60E08E +:100B700070E000E010E0E12CF12CC12CD12CA12C74 +:100B8000B12C98E1792E622E532E41E050E0EBE239 +:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 +:100BA000F901819191919F01FC01E07FFF27E032E3 +:100BB000F10559F48F709927FA0102C0EE0FFF1F5B +:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F +:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 +:100BE000CE2ADF2A29C0E034F10559F48F70992705 +:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 +:100C00001BC0E035F10559F48F709927FA0102C035 +:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B +:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 +:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F +:100C400094B18A2D8095892384B985B18A2985B983 +:100C500097B18C2D8095892387B988B18C2988B963 +:100C60009AB18E2D809589238AB98BB18E298BB943 +:100C70009DB1802F809589238DB98EB1802B8EB93F +:100C800090B3862F8095892380BB81B3862B81BB4F +:100C90001092B7011092B6011092BF011092BE01DE +:100CA0001092B9011092B8011092C1011092C001C6 +:100CB0001092BB011092BA011092C3011092C201AE +:100CC0001092BD011092BC011092C5011092C40196 +:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF +:100CE0001F910F91FF90EF90DF90CF90BF90AF904A +:100CF0009F908F907F906F905F9008955F926F921A +:100D00007F928F929F92AF92BF92CF92DF92EF929B +:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA +:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 +:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 +:100D4000B11C38E0532E470101E010E048E1642E69 +:100D500055E0752EE3E2F1E0D401852D01900D926E +:100D60008A95E1F7F701819191917F019C01207FA4 +:100D700033272032310589F424B18F709927A801D7 +:100D800002C0440F551F8A95E2F7CA01242B24B9EB +:100D900095B18095892385B94FC02033310589F4F9 +:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 +:100DB000E2F7CF012E2B27B998B18095892388B906 +:100DC0003BC02034310589F42AB18F709927A801DE +:100DD00002C0440F551F8A95E2F7CA01242B2AB995 +:100DE0009BB1809589238BB927C02035310589F4C3 +:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 +:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 +:100E100013C02036310581F420B38F709927A801C3 +:100E200002C0440F551F8A95E2F7CA01242B20BB4C +:100E300091B38095892381BB50EA5A95F1F7BE01A1 +:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 +:100E5000DE011196462D01900D924A95E1F7FB01B6 +:100E600041915191BF01FA01E07FFF27E032F10586 +:100E700011F4E3B113C0E033F10511F4E6B10EC093 +:100E8000E034F10511F4E9B109C0E035F10511F4E0 +:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 +:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 +:100EB000A801022E02C0440F551F0A94E2F702C097 +:100EC00040E050E0842B952B2F5F3F4F2C303105B5 +:100ED00009F0BCCFF601208131812817390721F0B4 +:100EE00091838083709200010E94C804F2E0CF0ECB +:100EF000D11CEA14FB0409F02DCF80910001882356 +:100F000061F1815080930001811121C08091BE0167 +:100F10009091BF019093B7018093B6018091C00179 +:100F20009091C1019093B9018093B8018091C20161 +:100F30009091C3019093BB018093BA018091C40149 +:100F40009091C5019093BD018093BC0106C08FE9CB +:100F50009FE00197F1F700C0000081E0A0960FB676 +:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF +:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 +:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 +:100F9000EA54FE4F80819181089508950895279A1B +:100FA0002F988FEF9FEF90938700809386008AE0C1 +:100FB0008093800089E1809381000C945F2B8111E4 +:100FC0000BC080918000877F8093800010928D00FD +:100FD00010928C002F9808952F98833041F48091BF +:100FE00080008860809380008FEF9FEF12C0909107 +:100FF000800098609093800023E030E0281B310946 +:10100000220F331F8FEF9FEF02C0969587952A9589 +:10101000E2F790938D0080938C0008950F931F93B7 +:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 +:10103000DEBF0FBECDBF8C01862F642F882379F0D1 +:10104000F80192812FE7482F992329F08DE792E04C +:101050000E94F81404C08DE792E00E940815F80180 +:1010600080818B3061F49181933009F068C0828176 +:10107000882309F4CDC0809103018F5F0EC08A30B0 +:10108000E1F5F8019181933009F059C082818823FC +:1010900009F4BEC08091030181508093030120E0D8 +:1010A0004BE760E08DE792E00E94E81420E04BE718 +:1010B00061E08DE792E00E94E81420E04BE762E0F7 +:1010C0008DE792E00E94E81420E04BE763E08DE7B3 +:1010D00092E00E94E81420E04BE764E08DE792E0A4 +:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 +:1010F000CF911F910F910C94E814893069F4F80195 +:1011000091819330E1F492819923C9F0809101019A +:101110009091020101960EC0883089F4F801918106 +:10112000933069F49281992351F08091010190915B +:10113000020101979093020180930101B0CFF80161 +:10114000928140910301992391F196E4E3E4F1E067 +:10115000DE01A95BBF4F01900D929A95E1F7405DCA +:10116000F8019181FCE09F9F40191124E091010159 +:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 +:101180008C0F9D1FE80FF91F8081480F2FE760E04B +:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 +:1011A000CDBFDF91CF911F910F910C94F81496E46D +:1011B000E3E4F1E0DE01119601900D929A95E1F7DA +:1011C000405DF8019181FCE09F9F40191124E0915E +:1011D0000101F0910201E80FF11DEE0FFF1F81E008 +:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB +:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 +:101200000FBECDBFDF91CF911F910F910C940815A8 +:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE +:10122000CF911F910F910895CF93DF93EA019B0116 +:10123000AC0160E074E284E79BE40E945F2C0E94B2 +:10124000C72C709397006093960020E130E02C1B30 +:101250003D0B02C0759567952A95E2F7709399004A +:1012600060939800DF91CF9108951092020210923E +:10127000010210929000109291001092FD011092C4 +:10128000FE011092FF01109200021092FC011092D8 +:10129000FB01E9EDF1E0A9ECB1E01192119211929C +:1012A00011921D921D9281E0E93FF807B1F7089570 +:1012B000AF92BF92CF92DF92EF92FF920F931F9364 +:1012C000CF93DF936B017C0109EF11E047EDA42E72 +:1012D00041E0B42EC7E0D0E0A7019601F801929159 +:1012E0008291729162918F010E945B2C882349F058 +:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F +:1013000034C0F8011082118212821382F501118219 +:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 +:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 +:1013300044815581668177814083518362837383C1 +:10134000148215821682178212962D913C91139762 +:1013500011963C932E9313961C921E9212973496DC +:1013600012968730910519F7C3CF809101029091B1 +:101370000202019797FD05C090930202809301023B +:1013800004C01092020210920102E0910102F09159 +:101390000202309789F410929000109291001092FE +:1013A000FD011092FE011092FF01109200021092B6 +:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 +:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 +:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA +:1013E000B090FE010091FF0110910002A70196014B +:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 +:1014000081E08093C801AE016A2D7B2D802F912F42 +:101410000E9414092091FD013091FE014091FF01CD +:1014200050910002C701B6010E94F62B20E030E087 +:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 +:10144000802F912F0E94F72B5B018C01A701960141 +:101450007B2D912F0E945B2C1816ACF638C0A7018B +:1014600096016A2D7B2D802F912F0E94AA2D181690 +:1014700084F581E08093C801AE016A2D7B2D802F19 +:10148000912F0E941409A70196016091FD017091AE +:10149000FE018091FF01909100020E94F62B20E056 +:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF +:1014B0007B2D802F912F0E94F62B5B018C01A701C1 +:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 +:1014D000C801AE01C701B6010E941409C092FD0106 +:1014E000D092FE01E092FF01F0920002D093FC0145 +:1014F000C093FB01DF91CF911F910F91FF90EF906F +:10150000DF90CF90BF90AF90089508951F920F92F3 +:101510000FB60F9211242F933F934F935F936F93C6 +:101520007F938F939F93AF93BF93EF93FF9380919C +:10153000960090919700892B09F455C08091C801BD +:10154000811151C08091F9019091FA01813091058A +:1015500071F082309105C1F0892BC1F52091FD0118 +:101560003091FE014091FF01509100021DC0609139 +:10157000FD017091FE018091FF01909100029B019D +:10158000AC010E94F72B0EC020E030E040E450E4B4 +:101590006091FD017091FE018091FF019091000228 +:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 +:1015B0000E945F2C0E94C72C709397006093960046 +:1015C0007595679570939900609398008091F901E3 +:1015D0009091FA01019663E070E00E948A2F909347 +:1015E000FA018093F901FF91EF91BF91AF919F9123 +:1015F0008F917F916F915F914F913F912F910F90BC +:101600000FBE0F901F901895AF92BF92CF92DF92AE +:10161000EF92FF920F931F93CF93DF936B017C01A7 +:10162000EA0120E030E0A9010E94AA2D18160CF072 +:10163000B4C03E9A82E8809390008AE18093910042 +:10164000A090FD01B090FE010091FF0110910002F9 +:1016500020E030E0A9016A2D7B2D802F912F0E9480 +:101660005B2C81112DC0AE01C701B6010E94140987 +:10167000C092FD01D092FE01E092FF01F0920002C3 +:10168000D093FC01C093FB01809101029091020272 +:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F +:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F +:1016B000D183C083019690930202809301026DC092 +:1016C000A70196016A2D7B2D802F912F0E945B2C04 +:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 +:1016E00014092091FD013091FE014091FF015091BC +:1016F0000002C701B6010E94F62B20E030E04AEF5D +:1017000053E40E945F2C9B01AC016A2D7B2D802F3E +:10171000912F0E94F72B5B018C01A70196017B2D75 +:10172000912F0E945B2C1816ACF69DCFA701960155 +:101730006A2D7B2D802F912F0E94AA2D18160CF058 +:1017400092CFAE016A2D7B2D802F912F0E9414091C +:10175000A70196016091FD017091FE018091FF014A +:10176000909100020E94F62B20E030E04AEF53E413 +:101770000E945F2C9B01AC016A2D7B2D802F912F45 +:101780000E94F62B5B018C01A70196017B2D912F06 +:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 +:1017A0000F91FF90EF90DF90CF90BF90AF90089592 +:1017B00080910C020895CF93DF9300D01F92CDB794 +:1017C000DEB720916E03243021F523E029839B832B +:1017D0008A832093E9008FEF06C095ED9A95F1F783 +:1017E0000000882329F09091E800815095FFF5CF03 +:1017F0008091E80085FF0DC040E050E063E070E0BC +:10180000CE0101960E94BA0F8091E8008E778093F6 +:10181000E8000F900F900F90DF91CF910895CF9334 +:10182000DF9300D01F92CDB7DEB720916E03243036 +:1018300029F522E029839B838A8383E08093E90052 +:101840008FEF06C095ED9A95F1F70000882329F0F7 +:101850009091E800815095FFF5CF8091E80085FFD9 +:101860000DC040E050E063E070E0CE0101960E94C0 +:10187000BA0F8091E8008E778093E8000F900F9068 +:101880000F90DF91CF91089520916E032430F9F4E9 +:1018900022E02093E9002FEF06C035ED3A95F1F7ED +:1018A0000000222329F03091E800215035FFF5CFC8 +:1018B0002091E80025FF0BC040E050E065E070E0BB +:1018C0000E94BA0F8091E8008E778093E800089517 +:1018D000CF93DF93EC0180916E03843041F581E07A +:1018E0008093E9008FEF06C095ED9A95F1F700001F +:1018F000882329F09091E800815095FFF5CF8091E1 +:10190000E80085FF14C040E050E068E070E0CE01E0 +:101910000E94BA0F8091E8008E778093E80088E0FB +:10192000FE01A4E0B2E001900D928A95E1F7DF910B +:10193000CF910895BF92CF92DF92EF92FF920F93D3 +:101940001F93CF93DF937C01B62EE90100E010E0F6 +:10195000C42ED12C0BC04991202F2B0D2F774F7700 +:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 +:1019700094F3DF91CF911F910F91FF90EF90DF9043 +:10198000CF90BF90089570E06F5F7F4F6F707727A3 +:101990000C94E8140F931F93CF93C42F63307105F9 +:1019A00009F04AC0842F807F803849F1803909F0DE +:1019B00043C0622F6F7770E080E090E00E94FA2CC5 +:1019C00020E030E040E451E40E945F2C9B01AC0138 +:1019D00060E070E080E090E40E94112E0F7710E04C +:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 +:1019F00053E40E94AE2DA8010E94040B1DC0622F6B +:101A00006F7770E080E090E00E94FA2C20E030E0F8 +:101A100040E451E40E945F2C9B01AC0160E070E067 +:101A200080E090E40E94112E2DEC3CEC42E053E467 +:101A30000E94AE2D0E945809CC3F29F4CF911F91EE +:101A40000F910C943509CF911F910F9108950F9329 +:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 +:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C +:101A70009A819D839B819E839C819F8381111EC03F +:101A800089818430B1F08730A1F08630A1F08530B3 +:101A9000A1F0BE016F5F7F4F84E091E00E942F189C +:101AA0008111E3CF84E091E00E9420180E949B14F2 +:101AB0000DC083E003C082E001C081E0AE014B5F56 +:101AC0005F4F682FC8010E945515E3CF27960FB6C8 +:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 +:101AE0000895EF92FF920F93CF93DF9300D000D031 +:101AF00000D0CDB7DEB77B014A832B830C83842FC4 +:101B00002E834D830E94C2142E814D8181111BC0F2 +:101B100082E0E816F10479F083E0E816F10421F0A0 +:101B2000EA94EF2821F50BC0073F11F487E001C0CC +:101B300084E089830BC0273FD9F786E0FACF473F7F +:101B4000B9F785E0F6CF42954F704983BE016F5FCC +:101B50007F4F84E091E00E94E51784E091E00E94CD +:101B6000031884E091E00E9420180E949B1426969E +:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE +:101B8000FF90EF90089580916D03811109C00E942C +:101B9000A1110E94FE118091E20084608093E20016 +:101BA000089510926D03089508950C94E4020C9426 +:101BB000892480916E03843049F58091E9008F700B +:101BC0009091EC0090FF02C090E801C090E0982B4B +:101BD00084E08093E9008091EB0080FF14C0809145 +:101BE000EE0087FD03C00FC01092F1008091E80065 +:101BF00085FDFACF8091E80080FF05C08091E80064 +:101C00008E778093E8009F709093E900089542E0FA +:101C100061EC81E00E94171142E061EC82E00E94D9 +:101C2000171142E061EC83E00E94171146E261EC7B +:101C300084E00E94171142E361E885E00E941711D9 +:101C400042E360E886E00C941711809170038330C2 +:101C500009F454C030F4813071F0823009F0AAC028 +:101C600091C08A3009F47EC08B3009F45FC089309E +:101C700009F0A0C020C080916F03813A09F09AC09A +:101C80008091E800877F8093E800809173039091B2 +:101C90007403892B21F060E080E090E003C068E0ED +:101CA00084E092E070E00E9458108091E8008B7709 +:101CB0008093E800089580916F03813209F07AC023 +:101CC0008091730390917403892B09F073C0809104 +:101CD000E800877F8093E80005C080916E03882329 +:101CE00009F468C08091E80082FFF7CF8091F1008D +:101CF00080930C028091E8008B7758C080916F032D +:101D0000813A09F057C08091730390917403892B35 +:101D100009F050C08091E800877F8093E8008091AF +:101D2000E80080FFFCCF80911A013BC080916F03D7 +:101D3000813209F03FC08091730390917403892B25 +:101D4000C9F58091E800877F8093E8000E944E11DA +:101D50009091710381E0911101C080E080931A019C +:101D60000C948C1E80916F03813221F58091E800E4 +:101D7000877F8093E8000E944E11809172038093C8 +:101D80000302089580916F03813AA1F48091E800E5 +:101D9000877F8093E8008091E80080FFFCCF8091EE +:101DA00003028093F1008091E8008E778093E80031 +:101DB0000C944E11089584B7877F84BF88E10FB6D5 +:101DC000F89480936000109260000FBE90E080E86D +:101DD0000FB6F89480936100909361000FBE0E944B +:101DE000A1110E94FE11E2EEF0E080818460808308 +:101DF00008958DE792E00E94241561E77DE08DE76C +:101E000092E00E947A1567E27DE08DE792E00E9401 +:101E10007E150E94DB0E78946AEC7CE08DE792E000 +:101E20000E94201563EC7CE08DE792E00E9418157B +:101E30006AE97CE08DE792E00E941C150E94850A09 +:101E40000E949B140E94AC1880E191E00E945418FB +:101E50000BC00E944E2480916C03882329F00E94BD +:101E6000742481110E94A40F80916E03853089F340 +:101E70008DE792E00E942D170E94B618F5CF292F0A +:101E8000332723303105B1F04CF42130310509F40A +:101E90004DC02230310509F04EC007C02132310556 +:101EA00041F12232310591F146C0E0EDF0E086E7E4 +:101EB00093E045C099278130910569F08230910502 +:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 +:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA +:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 +:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 +:101F0000FE4F80819181E9E0F0E019C0643098F4DF +:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 +:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D +:101F300086E494E004C0E0E0F0E080E090E0DA01C4 +:101F40008D939C93CF01089580E189BD82E189BD85 +:101F500009B400FEFDCF8091D8008F7D8093D8001A +:101F60008091E00082608093E0008091E00081FD3C +:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 +:101F80001F93CF93DF937C018B01EA010E946F11B5 +:101F9000B82E811133C0209731F028813981021B7E +:101FA000130BE20EF31EC12CD12C23C08091E8004C +:101FB00085FD15C08091E8008E778093E80020971A +:101FC00049F0888199818C0D9D1D9983888325E036 +:101FD000B22E14C00E946F11882359F00EC0F70171 +:101FE00081917F018093F10001501109FFEFCF1A19 +:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 +:10200000CF911F910F91FF90EF90DF90CF90BF90F5 +:102010000895BF92CF92DF92EF92FF920F931F939A +:10202000CF93DF937C018B01EA010E946F11B82EE0 +:10203000811133C0209731F028813981021B130BA5 +:10204000E20EF31EC12CD12C23C08091E80085FD47 +:1020500015C08091E8008B778093E800209749F0C5 +:10206000888199818C0D9D1D9983888345E0B42ECC +:1020700014C00E946F11882359F00EC08091F100A6 +:10208000F70181937F0101501109FFEFCF1ADF0A99 +:1020900001151105D1F601C0B82E8B2DDF91CF911E +:1020A0001F910F91FF90EF90DF90CF90BF90089518 +:1020B00040917503509176034617570748F0611514 +:1020C000710539F44091E8004E774093E80001C073 +:1020D000BA01FC0140E033C080916E03882309F40B +:1020E00042C0853009F441C08091E80083FD39C0C9 +:1020F0008091E80082FD2FC08091E80080FF1FC022 +:102100009091F3008091F200392F20E0A901482B33 +:10211000CA0106C041914093F100615071090196D6 +:102120006115710519F088309105A0F341E0089719 +:1021300009F040E08091E8008E778093E800611517 +:10214000710551F64111C8CF06C080916E038823F6 +:1021500051F0853051F08091E80082FFF6CF80E0A9 +:10216000089581E0089582E0089583E00895409104 +:102170007503509176034617570748F061157105AE +:1021800039F44091E8004E774093E80001C0BA016D +:10219000FC0140E034C080916E03882309F443C001 +:1021A000853009F442C08091E80083FD3AC08091F7 +:1021B000E80082FD30C08091E80080FF20C090914F +:1021C000F3008091F200392F20E0A901482BCA01C9 +:1021D00007C044914093F100319661507109019616 +:1021E0006115710519F08830910598F341E0089761 +:1021F00009F040E08091E8008E778093E800611557 +:10220000710549F64111C7CF06C080916E0388233E +:1022100051F0853051F08091E80082FFF6CF80E0E8 +:10222000089581E0089582E0089583E00895982F4D +:102230002CC09093E900981739F07091EC00209130 +:10224000ED005091F00003C0242F762F50E021FDC7 +:1022500002C09F5F1AC03091EB003E7F3093EB00CD +:102260003091ED003D7F3093ED003091EB00316017 +:102270003093EB007093EC002093ED005093F0004E +:102280002091EE0027FDE5CF07C0973090F28F70C8 +:102290008093E90081E0089580E0089580916F03C4 +:1022A00087FD05C08091E80080FF0EC012C08091BC +:1022B000E80082FD05C080916E038111F8CF08957A +:1022C0008091E8008B7708C080916E038111EACF7E +:1022D00008958091E8008E778093E80008958091BA +:1022E000E4009091E50045E62091EC0020FD1FC040 +:1022F00023C020916E03222391F0253091F020918C +:10230000EB0025FD10C02091E4003091E500281776 +:10231000390751F34150C90139F784E0089582E04B +:10232000089583E0089581E0089580E00895209164 +:10233000E80020FFDECFF9CF2091E80022FFD9CFBF +:10234000F4CF0E940F120E941712E0EEF0E080819D +:1023500081608083E8EDF0E080818F77808319BC15 +:10236000A7EDB0E08C918E7F8C9380818F7E8083EF +:1023700010926D0308950F931F93CF93DF930E94E4 +:102380000F120E941712C8EDD0E088818F778883E2 +:1023900088818068888388818F7D888319BC1092AA +:1023A0006E0310926A0310926C0310926B0300EE9E +:1023B00010E0F80180818B7F808388818160888331 +:1023C00042E060E080E00E941711E1EEF0E08081E1 +:1023D0008E7F8083E2EEF0E0808181608083808167 +:1023E00088608083F80180818E7F8083888180610E +:1023F0008883DF91CF911F910F910895E8EDF0E070 +:1024000080818F7E8083E7EDF0E080818160808332 +:1024100084E082BF81E080936D030C94BB11E8EDF2 +:10242000F0E080818E7F80831092E2000895109208 +:10243000DA001092E10008951F920F920FB60F92EA +:1024400011242F933F934F935F936F937F938F93B9 +:102450009F93AF93BF93EF93FF938091E10082FF2F +:102460000BC08091E20082FF07C08091E1008B7F6A +:102470008093E1000E94D90D8091DA0080FF1FC097 +:102480008091D80080FF1BC08091DA008E7F8093FE +:10249000DA008091D90080FF0DC080E189BD82E122 +:1024A00089BD09B400FEFDCF81E080936E030E94D8 +:1024B000C30D05C019BC10926E030E94D10D80910E +:1024C000E10080FF19C08091E20080FF15C080917B +:1024D000E2008E7F8093E2008091E2008061809331 +:1024E000E2008091D80080628093D80019BC85E01A +:1024F00080936E030E94D50D8091E10084FF30C06F +:102500008091E20084FF2CC080E189BD82E189BD19 +:1025100009B400FEFDCF8091D8008F7D8093D80054 +:102520008091E1008F7E8093E1008091E2008F7EB8 +:102530008093E2008091E20081608093E2008091CC +:102540006A03882311F084E007C08091E30087FFCD +:1025500002C083E001C081E080936E030E94D70D2A +:102560008091E10083FF29C08091E20083FF25C0B4 +:102570008091E100877F8093E10082E080936E0389 +:1025800010926A038091E1008E7F8093E100809138 +:10259000E2008E7F8093E2008091E2008061809370 +:1025A000E20042E060E080E00E9417118091F000BC +:1025B00088608093F0000E94D40DFF91EF91BF914D +:1025C000AF919F918F917F916F915F914F913F91CB +:1025D0002F910F900FBE0F901F9018951F920F9282 +:1025E0000FB60F9211242F933F934F935F936F93E6 +:1025F0007F938F939F93AF93BF93CF93EF93FF936B +:102600008091E9008F709091EC0090FF02C090E8FB +:1026100001C090E0C92FC82B1092E9008091F00012 +:10262000877F8093F00078940E9432131092E90023 +:102630008091F00088608093F000CF70C093E90033 +:10264000FF91EF91CF91BF91AF919F918F917F912A +:102650006F915F914F913F912F910F900FBE0F900F +:102660001F9018951F93CF93DF93CDB7DEB7AC972C +:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A +:10268000F100819323E0E737F207C9F70E94250E96 +:102690008091E80083FF37C180916F0390917003B0 +:1026A000953009F488C038F49130B1F170F093306E +:1026B00009F029C131C0983009F4F8C0993009F403 +:1026C00004C1963009F01FC19DC0803821F08238C6 +:1026D00009F019C108C080916B0390916C03992394 +:1026E00089F082600FC080917303909174038F70A2 +:1026F00099278093E9008091EB0085FB882780F97A +:102700001092E9009091E800977F9093E800809301 +:10271000F1001092F100D5C0882319F0823009F041 +:10272000F2C08F7121F0823009F0EDC00BC08091B2 +:102730007103813009F0E7C0933009F080E08093A5 +:102740006C032FC08091710381112BC080917303A2 +:10275000909174038F709927009709F4D4C08093E7 +:10276000E9002091EB0020FF1CC020917003233072 +:1027700021F48091EB00806212C09091EB00906197 +:102780009093EB0021E030E001C0220F8A95EAF738 +:102790002093EA001092EA008091EB008860809319 +:1027A000EB001092E9008091E800877F8093E800B9 +:1027B0000E944E11A8C08111A6C080917103909112 +:1027C00072038F779927182F9091E3009078982BB8 +:1027D0009093E3008091E800877F8093E8000E9457 +:1027E0004E118091E80080FFFCCF8091E30080686B +:1027F0008093E300112311F083E001C082E0809315 +:102800006E0381C08058823008F07DC080917103D2 +:10281000909172038C3D23E0920779F583E08A83DF +:102820008AE289834FB7F894DE01139620E03EE0F8 +:1028300051E2E32FF0E050935700E49120FF03C0F2 +:10284000E295EF703F5FEF708E2F90E0EA3010F06E +:10285000C79601C0C0968D939D932F5F243149F791 +:102860004FBF8091E800877F8093E8006AE270E0C4 +:10287000CE0101960E94581013C0AE01455D5F4F16 +:10288000609173030E943F0F0097E9F12091E800E7 +:10289000277F2093E800BC018BA59CA50E94B71060 +:1028A0008091E8008B778093E8002DC0803859F53F +:1028B0008091E800877F8093E80080916A0380938D +:1028C000F1008091E8008E7771CF81111CC090914A +:1028D00071039230C0F48091E800877F8093E80014 +:1028E00090936A030E944E1180916A03811104C083 +:1028F0008091E30087FF02C084E001C081E0809303 +:102900006E030E94070E8091E80083FF0AC0809149 +:10291000E800877F8093E8008091EB0080628093DD +:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 +:10293000CF911F910895CF9380916E038823B1F0BA +:102940008091E9008F709091EC0090FF02C090E8B8 +:1029500001C090E0C92FC82B1092E9008091E800D7 +:1029600083FD0E943213CF70C093E900CF91089588 +:10297000881F8827881F089591E0883F08F490E019 +:10298000892F0895982F907F903B99F038F49039D3 +:1029900081F0903A71F09038C9F40BC0903DA1F0ED +:1029A00018F4903C99F410C0903E19F0903F71F4E7 +:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 +:1029C000E356FE4F8081089582E0089580E00895E7 +:1029D0000F932F774F776F70606BDC01ED91FC9157 +:1029E000022F242F462F63E070E009950F91089580 +:1029F0000F932F774F776F706069DC01ED91FC9139 +:102A0000022F242F462F63E070E009950F9108955F +:102A10000F932F774F776F706068DC01ED91FC9119 +:102A2000022F242F462F63E070E009950F9108953F +:102A3000FC01738362830895FC01738F628F089594 +:102A4000FC01758F648F0895CF93DF93EC011DA275 +:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 +:102A60000E9461171B821A821D821C821F821E8295 +:102A7000198618861B861A861D861C861F861E864A +:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A +:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA +:102AA00019A218A2DF91CF910895CF92DF92FF92E1 +:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 +:102AC0006A018C0108511F4F08C0F60161916F0126 +:102AD000C80149830E94681749818C2D841B8F157A +:102AE000A0F30F90DF91CF911F910F91FF90DF9096 +:102AF000CF900895FC01718360830895FC0171A358 +:102B000060A30895AF92BF92CF92DF92EF92FF92AF +:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 +:102B20007C016B01142FB22EA02EDC0195968C91A6 +:102B300095978430F1F45A96ED91FC915B9730971C +:102B400009F4D8C0CB01019763E070E00E94762FB2 +:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 +:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 +:102B7000B1C06230710509F453C06330710529F0AA +:102B80006130710509F09CC083C0842F807F803A3A +:102B900001F130F48038B9F0803909F0ABC00DC0D4 +:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 +:102BB0001296ED91FC91139723C0D7011496ED91D5 +:102BC000FC9115971DC0D7011696ED91FC911797B2 +:102BD00017C0D7011896ED91FC91199711C0D70134 +:102BE0001A96ED91FC911B970BC0423F09F082C0F1 +:102BF000D7011C96ED91FC911D97309731F47AC066 +:102C0000309709F477C0123F21F42A2D4B2D62EF43 +:102C100004C0612F6F702A2D4B2DC70109955AC032 +:102C2000842F807F803D59F0803F79F0803C09F00F +:102C300061C0D7011E96ED91FC911F9719C0D70175 +:102C40005096ED91FC91519713C0433F31F4D70159 +:102C50005296ED91FC91539708C0413F09F04AC04C +:102C6000D7015496ED91FC915597309741F442C0AD +:102C7000309709F43FC0133F11F0113F19F44B2D69 +:102C8000612F03C0612F6F704B2DC701099522C0C2 +:102C9000842F0E94BC14882331F0D7015696ED9101 +:102CA000FC91579707C0163F29F5D7015896ED912B +:102CB000FC9159973097F1F0612FC70109950AC02F +:102CC00064307105A8F416C00A2D2B2D412FB601D2 +:102CD000C7010995D7015E96ED91FC915F973097FA +:102CE00089F00A2D2B2D412FB601C70109950AC085 +:102CF000C12CD12CD7015C96ED91FC915D9730975A +:102D000019F7E8CF0F900F900F90DF91CF911F919F +:102D10000F91FF90EF90DF90CF90BF90AF9008950C +:102D2000EF92FF920F931F93CF93DF93EC01162F37 +:102D3000862F0E94BC14882369F0FDA081E08DA33A +:102D400000E020E0412F61E070E0CE010E9482159A +:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 +:102D600040C0443029F01AA321E030E03FA32EA355 +:102D7000812F0E94C214813031F070F0823051F006 +:102D8000833059F507C08DA300E020E0412F61E0BA +:102D900070E01EC08DA35AC0103F19F0173FE9F430 +:102DA00004C084E08DA31AA33FC02EA13FA1C90196 +:102DB00063E070E00E94762F8C0F9D1FFC0112A330 +:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 +:102DD000CE010E9482151DA239C01DA21FA21EA2F3 +:102DE00035C0442399F12EA13FA1C90163E070E0F1 +:102DF0000E94762F7C01FE01E80FF91F12A3B90192 +:102E00006F5F7F4F7FA36EA38130910591F082E0C9 +:102E1000E816F104D9F40CA12BA14AA1CE010E941D +:102E200082158DA1843091F081E090E09FA38EA364 +:102E30000DC0423059F400E02BA14AA1CE010E94FE +:102E400082158DA1843011F0FFA2EEA2DF91CF9107 +:102E50001F910F91FF90EF900895CF92DF92EF9224 +:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 +:102E7000309709F009958E0108511F4FC8010E9433 +:102E80009A17E12CF12CC82ED12C0FC060E0C8019C +:102E90000E94AE17682FCE010E94901661E0C80113 +:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 +:102EB000DF91CF911F910F91FF90EF90DF90CF9016 +:102EC0000895FC0142837483638311821082089504 +:102ED0000F931F93CF93DF93EC01062F0E94E0170F +:102EE000182F298130E0C90101966A8170E00E94A3 +:102EF0008A2F488150E08417950729F4812F0E947A +:102F0000E31780E012C0EB81FC81E20FF31F008326 +:102F10002981822F90E001966A8170E00E948A2FB9 +:102F20008983812F0E94E31781E0DF91CF911F9168 +:102F30000F910895CF93DF93EC010E94E017298150 +:102F40009881291710F0C22F02C0CA81C20FC91B75 +:102F50000E94E3178C2FDF91CF910895FC0120810F +:102F6000862F90E0820F911D628170E00E948A2F6F +:102F70000380F481E02DE80FF91F808108950F93FD +:102F80001F93CF93DF931F92CDB7DEB78C01698378 +:102F90000E94E017482FF80180816981262F30E0D8 +:102FA000280F311D6281C90170E00E948A2F808341 +:102FB000842F0F90DF91CF911F910F910C94E31705 +:102FC0008FB7F89408958FBF0895FC01CB0120912D +:102FD0006E032430B1F421812F702093E90040E08A +:102FE00050E064E070E00E94BA0F81110BC0909134 +:102FF000E80095FD07C09091E8009E779093E80067 +:10300000089582E0089520916E032430A9F4FC0114 +:1030100081818F708093E9003091F3002091F2005C +:10302000932F80E0822B892B49F08091E8008E77E6 +:103030008093E8000C946F1182E0089580E0089579 +:1030400020916E03243051F4FC0121812F702093D4 +:10305000E9002091E80020FD0C9403180895FC017C +:10306000CB0120916E03243011F080E00895268179 +:103070002F702093E9002091E80022FFF6CF2091E5 +:10308000E80025FFF2CF40E050E064E070E00E94ED +:1030900009108091E80085FD05C08091E8008B77DC +:1030A0008093E80081E0089590930F0280930E02D0 +:1030B000089580910E0290910F020895E0910E0202 +:1030C000F0910F02309721F00190F081E02D0994EA +:1030D00080E00895E0910E02F0910F02309721F008 +:1030E0000280F381E02D09940895E0910E02F091A1 +:1030F0000F02309721F00480F581E02D09940895A6 +:1031000020911002309111028217930771F0909371 +:10311000110280931002E0910E02F0910F0230979D +:1031200021F00680F781E02D099408952091120284 +:10313000309113028217930771F0909313028093DA +:103140001202E0910E02F0910F02309721F00084FC +:10315000F185E02D099408950E94B6240E948D0502 +:103160000E948A250C945F2B0C94CE075F926F927D +:103170007F928F929F92AF92BF92CF92DF92EF9207 +:10318000FF920F931F93CF93DF93CDB7DEB72A97AC +:103190000FB6F894DEBF0FBECDBF0E947E0694E14D +:1031A000C92E92E0D92E00E010E0AA24A394B12CFD +:1031B000502E802F0E94C4073C01F601E190F1904F +:1031C0006F01E826F926E114F10431F40F5F1F4F77 +:1031D0000430110569F73AC08091680281FD0E94B0 +:1031E000CD0720E030E04501022E02C0880C991C7A +:1031F0000A94E2F7C4018E219F21892B09F12E83C5 +:103200005F826820792081E0672809F480E0888760 +:103210000E94BF248160782F9A8789874E815F81C1 +:1032200068858A850E946F19F801EE0FFF1FEC5E1A +:10323000FD4F80819181882599259183808316C0D7 +:103240002F5F3F4F2C30310571F6C0CF8FEF898350 +:103250008A831B820E94BF248160782F9D838C8388 +:1032600049815A816B818D810E946F190E94772854 +:1032700010911C020E945E181817D9F00E945E1867 +:1032800080931C022A960FB6F894DEBF0FBECDBF06 +:10329000DF91CF911F910F91FF90EF90DF90CF9032 +:1032A000BF90AF909F908F907F906F905F900C94A5 +:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB +:1032C000CF911F910F91FF90EF90DF90CF90BF9023 +:1032D000AF909F908F907F906F905F900895CF9365 +:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 +:1032F000CDBF4F83588769877A878B87DE01119608 +:1033000086E0FD0111928A95E9F785E0FE01379686 +:1033100001900D928A95E1F749815A816B817C81F8 +:103320008D819E810E9447212B960FB6F894DEBFB7 +:103330000FBECDBFDF91CF910895CF93C82F8823C3 +:1033400009F4C1C0823859F40E945E1881FDBBC0E7 +:1033500089E30E94AC230E94282489E30CC08338AF +:1033600079F40E945E1880FDAEC083E50E94AC2314 +:103370000E94282483E50E94CE23CF910C94282418 +:10338000843859F40E945E1882FD9DC087E40E9433 +:10339000AC230E94282487E4EECF8450813A48F47D +:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 +:1033B000E4CF8C2F805E883050F4C77081E090E0BD +:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 +:1033D000855A833078F4C53A29F0C63A31F482E848 +:1033E00090E005C081E890E002C083E890E0CF91D2 +:1033F0000C9480188C2F885A833108F064C0C83A26 +:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 +:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 +:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE +:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E +:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 +:1034500082EE90E035C089EE90E032C08AEE90E0D6 +:103460002FC085EB90E02CC086EB90E029C087EB65 +:1034700090E026C08CEC90E023C08DEC90E020C062 +:1034800083E891E01DC08AE891E01AC082E991E0EA +:1034900017C084E991E014C081E292E011C083E298 +:1034A00092E00EC084E292E00BC085E292E008C098 +:1034B00086E292E005C087E292E002C080E090E000 +:1034C000CF910C949618CF910895882309F44DC09C +:1034D000823859F40E945E1881FF47C089E30E9438 +:1034E000AC230E94282489E30CC0833871F40E9425 +:1034F0005E1880FF3AC083E50E94AC230E94282416 +:1035000083E50E94CE230C942824843859F40E9429 +:103510005E1882FF2AC087E40E94AC230E94282400 +:1035200087E4EFCF982F9450913A08F4EACF982F80 +:10353000905E983058F4282F277081E090E001C009 +:10354000880F2A95EAF70E94F523DDCF982F955A28 +:10355000933020F480E090E00C948018885A8331F6 +:1035600020F480E090E00C9496180895882321F0D0 +:103570000E94EF230C9428240895882321F00E94B0 +:10358000F5230C9428240895BF92CF92DF92EF92F6 +:10359000FF920F931F93CF93DF93CDB7DEB727979B +:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 +:1035B000DE01119601900D928A95E1F7F8013081B4 +:1035C0002181F280558152955F7083819481892B8E +:1035D00039F02F3F41F481E090E03F3F31F003C0EC +:1035E00081E090E002C080E090E080FD73C3398309 +:1035F0002A8389819A815E830E946923B92E8F83F1 +:103600000E9468230E9490222B2D22952F7030E07B +:103610005E816F812530310509F4E6C06CF42430F9 +:1036200031050CF0A2C04B2D407F8B2D8F702230C6 +:1036300031050CF045C017C02C3031054CF42A3050 +:1036400031050CF0E7C12830310509F043C3E5C06E +:103650002D30310509F4BAC20CF4A2C22F30310565 +:1036600009F038C323C3182F411101C002C01295BD +:10367000107FFF2059F0112309F46BC2812F6F8353 +:103680000E94FF230E9428246F8163C2862F0E941C +:10369000651A112309F41EC3812F0E940524279661 +:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1036B0000F91FF90EF90DF90CF90BF900C94282453 +:1036C000403211F08295807F662319F0613071F5E8 +:1036D00023C0FF20B1F0511101C032C0513081F53B +:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 +:1036F0001F910F91FF90EF90DF90CF90BF900C94AF +:103700000F24511101C003C0513009F4E3C28E836C +:103710000E9412248E819AC1FF2021F0563008F0B9 +:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 +:10373000552331F0F801958190FF0BC29F7095835E +:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 +:103750001F910F91FF90EF90DF90CF90BF900C944E +:10376000B61A552309F472C109C22B2D2695269548 +:10377000237030E02115310529F02130310509F0A1 +:10378000A9C219C0FF2021F0862F9B2D937002C083 +:1037900080E090E027960FB6F894DEBF0FBECDBF55 +:1037A000DF91CF911F910F91FF90EF90DF90CF901D +:1037B000BF900C948018FF2021F0862F9B2D9370D2 +:1037C00002C080E090E027960FB6F894DEBF0FBEEF +:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1037E000CF90BF900C949618862FFF2019F00E945E +:1037F0007D2702C00E94E52727960FB6F894DEBF0A +:103800000FBECDBFDF91CF911F910F91FF90EF9031 +:10381000DF90CF90BF900C946C288B2D837009F0B3 +:1038200079C0F11057C2262F229526952770220FB6 +:10383000220F862F8F70C82ED12CE12CF12C022E56 +:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 +:1038500010C06FE070E080E090E004C0660F771F5A +:10386000881F991F2A95D2F760957095809590953D +:1038700003C060E070E0CB012B2D269526952370C8 +:10388000422F50E042305105D9F04330510569F1E3 +:103890006C297D298E299F294130510551F12796A8 +:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 +:1038C0006C297D298E299F2927960FB6F894DEBF93 +:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 +:1038E000DF90CF90BF900C94B7220E94A522C70111 +:1038F000B60127960FB6F894DEBF0FBECDBFDF919D +:10390000CF911F910F91FF90EF90DF90CF90BF90DC +:103910000C949322FF2019F08B2D817001C08695A5 +:10392000882309F4D7C1262F229526952770220FC8 +:10393000220F862F8F70C82ED12CE12CF12C022E55 +:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 +:1039500010C06FE070E080E090E004C0660F771F59 +:10396000881F991F2A95D2F760957095809590953C +:1039700003C060E070E0CB012B2D269526952370C7 +:10398000422F50E042305105D9F04330510569F1E2 +:103990006C297D298E299F294130510551F12796A7 +:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 +:1039B0000F91FF90EF90DF90CF90BF900C94442335 +:1039C0006C297D298E299F2927960FB6F894DEBF92 +:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 +:1039E000DF90CF90BF900C9456230E944423C701D0 +:1039F000B60127960FB6F894DEBF0FBECDBFDF919C +:103A0000CF911F910F91FF90EF90DF90CF90BF90DB +:103A10000C943223603F59F120F4603E08F494C0C6 +:103A200008C0623F09F467C0F0F1633F09F08CC041 +:103A300065C0162F1F708B2D8F71FF2021F00E9403 +:103A4000DD22812F7DCE0E94F822812F27960FB68E +:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 +:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 +:103A7000B1F0553008F02EC18B2D8F7127960FB6FF +:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 +:103A9000FF90EF90DF90CF90BF900C94172356309B +:103AA00008F018C1E9CFFF2099F08B2D8F71279670 +:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F +:103AC0000F91FF90EF90DF90CF90BF900C94DD228C +:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A +:103AE000DF91CF911F910F91FF90EF90DF90CF90DA +:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 +:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 +:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 +:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E +:103B3000CDBFDF91CF911F910F91FF90EF90DF905C +:103B4000CF90BF900C94C922FF20A9F0552309F40F +:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 +:103B6000DF91CF911F910F91FF90EF90DF90CF9059 +:103B7000BF900C949D19552309F4AACF862F279640 +:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E +:103B90000F91FF90EF90DF90CF90BF900C94651A3B +:103BA0004B2D4F70C8010E94E50227960FB6F8947E +:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 +:103BC000EF90DF90CF90BF900C94FD21F11082C058 +:103BD0009B2D9F70492F50E04230510599F144F4DC +:103BE0004115510569F04130510509F073C019C004 +:103BF00043305105C1F14430510509F06BC044C058 +:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 +:103C10001F910F91FF90EF90DF90CF90BF900C9489 +:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 +:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 +:103C40000C94872B27960FB6F894DEBF0FBECDBF1E +:103C5000DF91CF911F910F91FF90EF90DF90CF9068 +:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F +:103C7000CDBFDF91CF911F910F91FF90EF90DF901B +:103C8000CF90BF900C94B62B862F27960FB6F89442 +:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F +:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C +:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 +:103CC000CF911F910F91FF90EF90DF90CF90BF9019 +:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A +:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 +:103CF000BF9008950E940C240E94E1230E94282472 +:103D00000E9418290E946C2880E090E00E94801890 +:103D100080E090E00C9496180E94FC230C947A1E8C +:103D20000E946923292F22952F7030E02C30310515 +:103D30004CF42A3031056CF422503109223031051F +:103D400070F407C02C30310531F02F30310539F4D3 +:103D500002C081E0089593FB882780F9089580E0F0 +:103D60000895CF93DF9300D000D01F92CDB7DEB778 +:103D70000F900F900F900F900F90DF91CF910895BB +:103D8000CF93DF9300D000D000D0CDB7DEB726961A +:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F +:103DA0001F93CF93DF93C091530216E012C0D0E06F +:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 +:103DC000518162817381848195810E94C01E2196F8 +:103DD000C77080915402C813EACFDF91CF911F9131 +:103DE000089540911D0250911E0260911F02709132 +:103DF000200280912102909122020C94C01E0F9308 +:103E00001F93CF93DF938091220282958F7009F0E8 +:103E100069C080911F02882309F464C0A0915302F5 +:103E2000D0915402B0911D02C0911E0280912002D7 +:103E30009091210221E030E0BF3F11F020E030E01E +:103E4000122FBC016095709506E04AC0009721F0E2 +:103E5000CF3F29F4212F05C021E030E002C020E04F +:103E600030E020FD3BC04A2F50E0049FF001059F49 +:103E7000F00D1124ED5DFD4F2181C2132FC0208173 +:103E8000B2132CC02281211129C02381348128172B +:103E9000390718F0281B390B02C0260F371F283CA2 +:103EA0003105E0F4809122028F70806180932202BC +:103EB00086E0849FF001859FF00D1124E85DFD4FA1 +:103EC00080818F70806180838DE192E00E94C41AAE +:103ED000DF91CF911F910F910C94D01EAF5FA7700F +:103EE000AD13B4CFDF91CF911F910F910895EF9251 +:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 +:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F +:103F1000DE011D9601900D928A95E1F7D8014C9132 +:103F200011965C91119712966C9112971396ED90E1 +:103F3000FC90149770911D02E0911E028091200266 +:103F400090912102009739F0EF3F41F421E030E0F9 +:103F50007F3F31F003C021E030E002C020E030E0DC +:103F600020FD5CC120911F02222309F4F1C0E81654 +:103F7000F90628F09701281B390BC90104C0809568 +:103F800090958E0D9F1D883C910508F098C08091FA +:103F90002202982F907F09F064C0E51314C07413B7 +:103FA00012C0611110C08F708061809322020E9444 +:103FB000F11E8DE192E00E94C41A80912202D80184 +:103FC00015968C9343C1EF2839F05F3F41F481E0AF +:103FD00090E04F3F31F003C081E090E002C080E00C +:103FE00090E080FD03C081E0862702C080E090E081 +:103FF00080FF2EC0809153022091540236E013C0FE +:1040000090E0389FF001399FF00D1124ED5DFD4FD8 +:104010007181571306C07081471303C07281671303 +:1040200017C0019687708213EBCF12C19F7059F0B1 +:10403000882309F40BC107C09F7029F0F80195810E +:10404000907F09F403C1805E883008F4FFC0D2C0BD +:10405000662309F4FBC080912202816080932202D2 +:10406000F5C0E51308C0741306C0611104C0D8017F +:1040700015968C939DC04D875E878D859E856A8B36 +:104080000E94901E6A89882309F4B4C0662309F44B +:10409000B1C020912202822F82958F7090E002970A +:1040A0000CF4C6C080911D0290911E0298878F83E8 +:1040B0001986FB86EA862C87CE01079646C080913A +:1040C0002202982F907F59F47E2DF98AE88A8989F7 +:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 +:1040E00011C074130FC061110DC0F8018583C801A0 +:1040F0000E94C41AEDE1F2E086E0DF011D928A958C +:10410000E9F7A2C04D875E878D859E856A8B0E94E8 +:10411000901E6A89882309F46DC0662309F46AC079 +:1041200020912202822F82958F7090E002970CF4EA +:104130007FC080911D0290911E029A8389831B8209 +:10414000FD82EC822E83CE0101960E94C41A70C0BB +:10415000E816F90628F09701281B390BC90104C09D +:10416000809590958E0D9F1D883C910508F046C066 +:10417000662309F43FC0E51330C074132EC02091AC +:10418000220220FD21C0322F32953F70832F90E014 +:104190000097D1F0D80115962C9315970F9741F001 +:1041A000832F8F5F8295807F2F70282B15962C93FD +:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 +:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC +:1041D00001900D928A95E1F737C04D875E878D85F6 +:1041E0009E850E94901E811123C0809122028160D1 +:1041F00080932202C8010E94C41A26C07E2DF98A2B +:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 +:104210001D928A95E9F70E94F11E18C0662351F39A +:104220004D875E878D859E850E94901E882311F3A1 +:1042300086E0F801ADE1B2E001900D928A95E1F7D8 +:104240000E94FF1E0E94F11E81E014C080E012C097 +:104250004D875E878D859E850E946923292F229533 +:104260002F7030E0223031050CF4E0CE24303105DF +:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D +:10428000DF91CF911F910F91FF90EF9008951F93B1 +:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 +:1042A0000FBECDBF4F83588769877A878B879C87DE +:1042B000CE0107960E94771F8823D9F02F81388579 +:1042C0008A859B85892B39F03F3F19F080E090E08B +:1042D00004C02F3FD9F781E090E0892B09F06DC031 +:1042E0004F81588569857A858B859C850E94C01E83 +:1042F00064C086E0FE013796DE01119601900D92B2 +:104300008A95E1F7FF81E8854A855B85411551056E +:1043100039F0EF3F41F481E090E0FF3F31F003C01E +:1043200081E090E002C080E090E080FD46C02091F6 +:10433000540230E0C90101968770992760915302B9 +:1043400070E08617970709F440C0F983EA835D831C +:104350004C8396E0929FD001939FB00D1124AD5DE8 +:10436000BD4FFE01319601900D929A95E1F7809331 +:1043700054020E94D01E21C0189FC00111248D5DDF +:104380009D4F0E94771F882371F1E09153021E9F79 +:10439000F0011124ED5DFD4F4081518162817381F7 +:1043A000848195810E94C01E8091530290E0019605 +:1043B000877099278093530201C016E080915302C1 +:1043C000909154028913D8CF0EC00E948C1E109277 +:1043D000540210925302EDE1F2E086E0DF011D92FB +:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 +:1043F000CDBFDF91CF911F910895DF92EF92FF9291 +:104400000F931F93CF93DF93EC01009709F46CC0D7 +:10441000D12CEE24E394F12C8E010F5F1F4FFE018F +:104420008491843748F4843008F04AC0813071F0B8 +:10443000823009F059C01EC0853709F43DC070F1C3 +:10444000982F9458903708F04FC03DC02296F8013D +:104450008491982F905E983050F48770FE2D01C0A3 +:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A +:104470009D192DC02296F8018491982F905E983056 +:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 +:104490000E9405241CC00E94651A19C02296F801CA +:1044A000049107C08FE99FE00197F1F700C0000079 +:1044B00001500111F7CF0BC02296F801D49007C02C +:1044C0000E949D1903C08F770E94651AE8018D2D07 +:1044D00007C08150EFE9FFE03197F1F700C000001D +:1044E000882309F499CFF5CFDF91CF911F910F91D8 +:1044F000FF90EF90DF9008956093590270935A02F5 +:1045000080935B0290935C020C947A1E6093550238 +:104510007093560280935702909358020C947A1E1F +:1045200008950C947C220F931F93009159021091CF +:104530005A0220915B0230915C02602B712B822B1E +:10454000932B1F910F910C947C220F931F9300913A +:10455000590210915A0220915B0230915C02602353 +:104560007123822393231F910F910C947C220F932C +:104570001F930091590210915A0220915B023091D1 +:104580005C0260277127822793271F910F910C945B +:104590007C2260E070E0CB010C94862241E050E088 +:1045A00060E070E004C0440F551F661F771F8A95B6 +:1045B000D2F7CB01BA010C94862241E050E060E0D2 +:1045C00070E004C0440F551F661F771F8A95D2F70D +:1045D0008091550290915602A0915702B0915802D5 +:1045E000482B592B6A2B7B2BCB01BA010C948622CA +:1045F00041E050E060E070E004C0440F551F661FCA +:10460000771F8A95D2F74095509560957095809167 +:10461000550290915602A0915702B091580248233A +:1046200059236A237B23CB01BA010C94862241E0F3 +:1046300050E060E070E004C0440F551F661F771F14 +:104640008A95D2F78091550290915602A091570217 +:10465000B0915802482759276A277B27CB01BA0116 +:104660000C9486220F931F930091550210915602CD +:104670002091570230915802602B712B822B932B83 +:104680001F910F910C9486220F931F930091550256 +:1046900010915602209157023091580260237123E5 +:1046A000822393231F910F910C9486220F931F93C3 +:1046B00000915502109156022091570230915802F4 +:1046C00060277127822793271F910F910C948622D0 +:1046D0000895CF92DF92EF92FF920F931F93CF93A3 +:1046E000DF93EC01C0905902D0905A02E0905B0237 +:1046F000F0905C028091550290915602A091570271 +:10470000B0915802C82AD92AEA2AFB2A0FE110E000 +:10471000B701A601002E04C0769567955795479579 +:104720000A94D2F740FF08C0BE01802F0E94E00328 +:104730008130910509F007C00150110948F7BE0109 +:1047400080E00E94E003DF91CF911F910F91FF90D5 +:10475000EF90DF90CF90089540911B0150911C0184 +:1047600020E030E09FEFFA01E20FF31F628168174B +:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD +:104780002630310581F707C0FA01E90FF11D97FDC9 +:10479000FA95828308959F3FB9F7089540911B01D0 +:1047A00050911C0120E030E0FA01E20FF31F9281EA +:1047B000981301C012822F5F3F4F26303105A1F7B9 +:1047C000089581E090E0E0911B01F0911C01E80F59 +:1047D000F91F1082019688309105A9F708959091EC +:1047E0005D02982B90935D020895809590915D02F3 +:1047F000982390935D02089510925D020895909120 +:104800005E02982B90935E020895809590915E02CF +:10481000982390935E02089510925E02089580930B +:104820005F02089510925F02089540911B0150911C +:104830001C0120E030E080E0FA01E20FF31F9181DB +:1048400091118F5F2F5F3F4F27303105A9F70895F2 +:10485000E0911B01F0911C0180915D028083E09149 +:104860001B01F0911C01808190915E02892B808355 +:1048700090915F02992361F0E0911B01F0911C017E +:104880008081892B80830E94152481110E9412242B +:1048900080911B0190911C010C946A1880916E0309 +:1048A000843009F11092690220E488E190E00FB6AB +:1048B000F894A895809360000FBE2093600083B7A2 +:1048C000817F846083BF83B7816083BF789488953C +:1048D00083B78E7F83BF88E10FB6F8948093600022 +:1048E000109260000FBE0895CF930E94E3020E94D1 +:1048F0007E060E94E402C0E08C2F0E94C407892B30 +:1049000029F4CF5FC430C1F780E001C081E0CF91CE +:1049100008950E948C1E0C945F2B1F920F920FB66D +:104920000F9211248F939F93AF93BF93809169024D +:10493000811113C080916A0290916B02A0916C0268 +:10494000B0916D024196A11DB11D80936A029093B2 +:104950006B02A0936C02B0936D02BF91AF919F91D7 +:104960008F910F900FBE0F901F90189582E084BD1D +:1049700093E095BD9AEF97BD80936E0008958FB731 +:10498000F89440916A0250916B0260916C027091B0 +:104990006D028FBFCA010895CF92DF92EF92FF920E +:1049A0000F931F932FB7F89440916A0250916B02B6 +:1049B00060916C0270916D022FBF6A017B01EE2441 +:1049C000FF248C0120E030E0C016D106E206F30699 +:1049D00020F09A01281B390B05C09C0120953095C9 +:1049E000240F351FC9011F910F91FF90EF90DF90A9 +:1049F000CF9008951F920F920FB60F9211248F93AC +:104A00009F93AF93BF9380916A0290916B02A091A4 +:104A10006C02B0916D020196A11DB11D80936A02D6 +:104A200090936B02A0936C02B0936D02BF91AF9113 +:104A30009F918F910F900FBE0F901F9018950E941D +:104A4000A111F8942FEF87EA91E621508040904021 +:104A5000E1F700C0000087E090EBDC018093780371 +:104A600090937903A0937A03B0937B032CE088E1C1 +:104A700090E00FB6F894A895809360000FBE209345 +:104A80006000FFCFCF92DF92EF92FF920F931F93C0 +:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 +:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 +:104AB000331F0A94E2F72E213F21232B29F421965C +:104AC000CC30D10589F708C06C2F7D2D80E00E9485 +:104AD000BB03C812F4CF06C0D39484E0D812DECF53 +:104AE00080E001C081E0DF91CF911F910F91FF9095 +:104AF000EF90DF90CF900895CF93C82F8CE20E9463 +:104B00004225882321F08C2FCF910C94422580E000 +:104B1000CF910895CF930E94CD26811102C00E94AB +:104B2000AE26C5E608C00E947E068FE39CE9019789 +:104B3000F1F700C00000C150B1F789E20E947C2566 +:104B400081110AC18AE20E947C2581110E94AE2651 +:104B500085E00E947C2581110E941F250E94D82695 +:104B60008093680287E00E947C25882399F18BE17D +:104B70000E947C25882351F09091680291FB882740 +:104B800080F921E0822780FB91F922C08EE00E940B +:104B90007C25882351F09091680292FB882780F948 +:104BA00021E0822780FB92F913C080E10E947C25DE +:104BB00090916802882341F093FB882780F921E0D7 +:104BC000822780FB93F904C0892F809580FB90F9A0 +:104BD00090936802809168020E94DC260E94EA2677 +:104BE00080937B0280EE0E947C25882341F0809197 +:104BF0007B02982F909590FB80F980937B0289E34C +:104C00000E947C25882359F090917B0291FB882794 +:104C100080F921E0822780FB91F990937B0282EE5C +:104C20000E947C25882359F090917B0292FB882773 +:104C300080F921E0822780FB92F990937B0286EE37 +:104C40000E947C25882359F090917B0293FB882752 +:104C500080F921E0822780FB93F990937B0283EE19 +:104C60000E947C25882359F090917B0294FB882731 +:104C700080F921E0822780FB94F990937B0285E301 +:104C80000E947C25882359F090917B0295FB882710 +:104C900080F921E0822780FB95F990937B0281E3E4 +:104CA0000E947C25882359F090917B0296FB8827EF +:104CB00080F921E0822780FB96F990937B0281E1C5 +:104CC0000E947C25882359F090917B0297FB8827CE +:104CD00080F921E0822780FB97F990937B028091F5 +:104CE0007B020E94EE2687E20E947C25C82F8EE17F +:104CF0000E947C258111C2608FE10E947C25811178 +:104D0000C46080E20E947C258111C86081E20E941B +:104D10007C258111C06182E20E947C258111C062E4 +:104D200083E20E947C258111C06484E20E947C257C +:104D3000882311F0C06802C0CC2329F08C2F0E9478 +:104D4000E5266C2F03C00E94E126682F70E080E00A +:104D500090E0CF910C949122CF9108956DEE7EEF6B +:104D600080E090E00E94BA2F60E082E090E00E9434 +:104D7000AC2F60E083E090E00E94AC2F60E084E024 +:104D800090E00E94AC2F60E085E090E00E94AC2FA4 +:104D900060E086E090E00C94AC2F80E090E00E9410 +:104DA000A62F21E08D3E9E4F09F020E0822F08952E +:104DB00082E090E00C949E2F682F82E090E00C94AB +:104DC000AC2F83E090E00C949E2F682F83E090E05E +:104DD0000C94AC2F84E090E00C949E2F682F84E01C +:104DE00090E00C94AC2F86E090E00C949E2F682FFE +:104DF00086E090E00C94AC2F8091760280FF0BC08F +:104E00006091200185E0689FB00111247595679538 +:104E1000759567952AC081FF09C06091200185E0E2 +:104E2000689FB0011124759567951FC082FF07C068 +:104E30006091200185E0689FB001112416C0409167 +:104E400070024423C9F060911F01461788F7209132 +:104E5000200185E0289F90011124429FC001439FBB +:104E6000900D112470E00E948A2F6038710540F483 +:104E70006115710539F002C065E070E0862F089574 +:104E80008FE7089581E008958091760280FF08C041 +:104E900060911E0170E0759567957595679521C0C5 +:104EA00081FF06C060911E0170E07595679519C07D +:104EB00082FF04C060911E0170E010C080917002FA +:104EC0008823C1F060911D018617A0F790911E0103 +:104ED000989FC001112470E00E948A2F60387105EC +:104EE00028F46115710521F0862F08958FE7089544 +:104EF00081E0089561E070E0F4CF803F21F40E94EA +:104F0000FC26819504C0813F29F40E94FC268093F1 +:104F100073020895823F21F40E94FC26819504C00B +:104F2000833F29F40E94FC26809372020895893FF2 +:104F300019F40E94442705C08A3F31F40E94442797 +:104F400081958093740208958B3F21F40E94442739 +:104F5000819504C08C3F29F40E94442780937502F8 +:104F60000895843F21F480917102816017C0853FCC +:104F700021F480917102826011C0863F21F48091FA +:104F8000710284600BC0873F21F4809171028860B8 +:104F900005C0883F31F48091710280618093710275 +:104FA00008958D3F21F48091760281600BC08E3F81 +:104FB00021F480917602826005C08F3F29F48091B0 +:104FC00076028460809376020895803F29F4809170 +:104FD000730287FF6EC007C0813F41F48091730266 +:104FE00018160CF066C01092730263C090917202A2 +:104FF000823F19F497FF5DC005C0833F31F4191655 +:105000000CF057C01092720254C0893F31F4809165 +:10501000740218160CF04DC006C08A3F39F4809116 +:10502000740287FF46C01092740243C08B3F29F47C +:105030008091750287FF3DC006C08C3F39F4809196 +:1050400075021816B4F51092750233C0843F21F42E +:10505000809171028E7F05C0853F31F4809171028D +:105060008D7F8093710225C0863F21F4809171026B +:105070008B7FF7CF873F21F480917102877FF1CF3B +:10508000883F21F4809171028F7EEBCF8D3F21F418 +:10509000809176028E7F0BC08E3F21F48091760244 +:1050A0008D7F05C08F3F29F4809176028B7F80939E +:1050B00076028091720281110EC08091730281117B +:1050C0000AC080917402811106C08091750281111D +:1050D00002C010927002089581E792E00E94751854 +:1050E0000E94BF2490936F0280936E020895CF9325 +:1050F00080916E0290916F020E94CC2440917002C8 +:10510000442321F02091210130E006C020912201AA +:105110005AE0259F900111248217930708F486C056 +:105120008091720281110DC090917302911109C09A +:1051300090917402911105C090917502992309F420 +:1051400075C04F3F19F04F5F40937002181624F45A +:105150000E94FC26809372028091720287FF05C034 +:105160000E94FC268195809372028091730218162A +:1051700024F40E94FC26809373028091730287FFBF +:1051800005C00E94FC268195809373026091720293 +:10519000662339F1C0917302CC2319F1772767FD9B +:1051A0007095872F972F0E94FA2C23E333E343E374 +:1051B0005FE30E94AE2D0E94C72C609372026C2F99 +:1051C000772767FD7095872F972F0E94FA2C23E38E +:1051D00033E343E35FE30E94AE2D0E94C72C60934C +:1051E000730280917402181624F40E94442780935D +:1051F00074028091740287FF05C00E944427819544 +:105200008093740280917502181624F40E9444273A +:10521000809375028091750287FF05C00E94442724 +:10522000819580937502CF910C946C28CF9108954D +:10523000E1E7F2E085E0DF011D928A95E9F710923F +:105240007002109276020895833089F130F4813033 +:1052500061F0823009F06EC019C0853009F449C090 +:10526000B8F1863009F066C055C020912201862F22 +:1052700090E0820F911D8F3F910520F4620F6093A3 +:10528000220108958FEF809322010895209121013A +:10529000862F90E0820F911D8F3F910520F4620FC1 +:1052A0006093210108958FEF80932101089520914B +:1052B0002001862F90E0820F911D8F3F910520F4F1 +:1052C000620F6093200108958FEF8093200108956D +:1052D00020911F01862F90E0820F911D8F3F910535 +:1052E00020F4620F60931F0108958FEF80931F01D8 +:1052F000089520911E01862F90E0820F911D8F3F0F +:10530000910520F4620F60931E0108958FEF809342 +:105310001E01089520911D01862F90E0820F911D9E +:105320008F3F910520F4620F60931D0108958FEF68 +:1053300080931D010895833021F130F4813059F0BC +:10534000823009F049C012C0853089F128F18630D9 +:1053500009F042C037C080912201681720F4861BF3 +:1053600080932201089510922201089580912101D5 +:10537000681720F4861B8093210108951092210163 +:10538000089580912001681720F4861B80932001E6 +:10539000089510922001089580911F01681720F44C +:1053A000861B80931F01089510921F01089580911C +:1053B0001E01681720F4861B80931E010895109229 +:1053C0001E01089580911D01681720F4861B8093AB +:1053D0001D01089510921D01089541E050E060E024 +:1053E00070E004C0440F551F661F771F8A95D2F7DF +:1053F000CB01BA010E9491220C948C1E873208F5D1 +:105400008E3108F0B9C08E3009F47EC060F4873068 +:1054100009F465C018F4863059F549C0883051F157 +:105420008B3031F5AEC0883130F4863108F0A9C038 +:105430008031F1F473C0893109F4A3C08B31C1F418 +:1054400059C08933F1F068F4893209F493C018F433 +:10545000873271F48FC0853309F48CC0883341F4EE +:1054600090C0863409F46BC008F488C0883449F1D0 +:1054700080E008950E94D8260E94EA260E94F32622 +:1054800080C00E945918892B59F00E945918909396 +:105490007902809378020E948C1E80E090E004C024 +:1054A00080917802909179020E9454186AC080918C +:1054B0006802817F8E7F8093680281E0809377020B +:1054C00008950E948C1E2FEF83ED90E321508040C1 +:1054D0009040E1F700C000000E941F2552C080915B +:1054E000680280FF03C0817F8E7F01C0816080934E +:1054F000680247C09091680291FB882780F921E0FB +:10550000822780FB91F913C09091680292FB882753 +:1055100080F921E0822780FB92F909C0909168020E +:1055200093FB882780F921E0822780FB93F99093F1 +:105530006802882331F191609093680222C081E86B +:1055400090E00E9480182FEF81EE94E0215080407F +:105550009040E1F700C0000080E090E00E948018D9 +:105560002FEF89E698E1215080409040E1F700C09C +:10557000000007C080E003C08D5101C089530E9424 +:10558000ED2981E0089580E0089580E00895CF93AB +:10559000C82F80917702813071F020F0823009F0BD +:1055A00083C037C0A0911B01B0911C018C91823245 +:1055B00009F07CC007C0A0911B01B0911C018C9127 +:1055C000823249F48C2F0E94C32A81111EC08C2F75 +:1055D0000E94FE291CC08C2F0E94C52A811115C073 +:1055E000C43169F030F4CB3081F0C03109F062C0D1 +:1055F00009C0C93221F0C83309F05CC006C010925E +:10560000770258C082E08093770281E090E0817059 +:1056100054C0C932C1F060F4C431A9F020F4C730DD +:1056200009F046C02EC0CE51CA3008F041C011C0AA +:10563000CE3409F118F4CB34D9F517C0C13599F03F +:10564000C235B1F50EC010927A0281E080937702E4 +:1056500034C0EC2FF0E0E455FE4F808180937A0255 +:1056600027C061E003C061E007C06AE080917A0270 +:105670000E9424291DC06AE080917A020E949B2921 +:1056800017C08EE18093220182E3809321018AE09A +:105690008093200184E180931F0188E080931E01A4 +:1056A00088E280931D0104C01092770280E005C05B +:1056B00081E003C080E090E0AACFCF9108950E94DE +:1056C000CD26811102C00E94AE260E94F32680934F +:1056D000770380FF02C0869501C080E00C94DF074D +:1056E00080917703982F9695292F30E0233031054C +:1056F0004CF49F5F990F8170892B816080937703B1 +:105700000E94F7268091770386950C94DF0780919D +:105710007703982F969591F09158990F8170892B66 +:10572000809377038E7F91E009F490E08091770376 +:1057300090FB80F9809377030E94F726809177038E +:1057400086950C94DF0780917703982F909590FBB6 +:1057500080F9809377030E94F7268091770380FF7A +:1057600002C0869501C080E00C94DF07309177037A +:10577000232F26952F5F2F77822F90E0317004978B +:105780002CF4220F232B2093770302C0309377034E +:1057900080917703282F2E7F91E009F490E090FB11 +:1057A00080F9809377030E94F7268091770386958E +:1057B0000C94DF0720917703922F96959827990FE5 +:1057C000822F8170892B809377038E7F91E009F47B +:1057D00090E08091770390FB80F9809377030E949B +:1057E000F7268091770386950C94DF075058BB27E6 +:1057F000AA270ED075C166D130F06BD120F031F4FC +:105800009F3F11F41EF45BC10EF4E095E7FB51C11C +:10581000E92F77D180F3BA176207730784079507DA +:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F +:10583000A02D0B01B90190010C01CA01A001112496 +:10584000FF27591B99F0593F50F4503E68F11A1642 +:10585000F040A22F232F342F4427585FF3CF4695D3 +:1058600037952795A795F0405395C9F77EF41F16F5 +:10587000BA0B620B730B840BBAF09150A1F0FF0FBF +:10588000BB1F661F771F881FC2F70EC0BA0F621FAB +:10589000731F841F48F4879577956795B795F7959B +:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D +:1058B000979587950895D9D008F481E008950CD084 +:1058C0000FC107D140F0FED030F021F45F3F19F056 +:1058D000F0C0511139C1F3C014D198F39923C9F321 +:1058E0005523B1F3951B550BBB27AA2762177307E6 +:1058F000840738F09F5F5F4F220F331F441FAA1F9A +:10590000A9F333D00E2E3AF0E0E830D09150504059 +:10591000E695001CCAF729D0FE2F27D0660F771F07 +:10592000881FBB1F261737074807AB07B0E809F0E9 +:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E +:10594000510568F0B6C000C15F3FECF3983EDCF350 +:10595000869577956795B795F7959F5FC9F7880FF7 +:10596000911D9695879597F90895E1E0660F771F49 +:10597000881FBB1F621773078407BA0720F0621BDA +:10598000730B840BBA0BEE1F88F7E095089504D0D3 +:105990006894B111D9C00895BCD088F09F5790F099 +:1059A000B92F9927B751A0F0D1F0660F771F881F44 +:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F +:1059C000B1E00895C0C0672F782F8827B85F39F0FD +:1059D000B93FCCF3869577956795B395D9F73EF4A3 +:1059E00090958095709561957F4F8F4F9F4F08954B +:1059F000E89409C097FB3EF4909580957095619569 +:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E +:105A10009395F695879577956795B795F111F8CF9A +:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 +:105A30009F4F16C0882311F096E911C0772321F0FB +:105A40009EE8872F762F05C0662371F096E8862F93 +:105A500070E060E02AF09A95660F771F881FDAF7EA +:105A6000880F9695879597F90895990F0008550F17 +:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 +:105A800012161306E407F50798F0621B730B840BDC +:105A9000950B39F40A2661F0232B242B252B21F4B6 +:105AA00008950A2609F4A140A6958FEF811D811D56 +:105AB000089597F99F6780E870E060E008959FEF90 +:105AC00080EC089500240A94161617061806090695 +:105AD000089500240A941216130614060506089564 +:105AE000092E0394000C11F4882352F0BB0F40F4EC +:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C +:105B0000089557FD9058440F551F59F05F3F71F0AD +:105B10004795880F97FB991F61F09F3F79F0879514 +:105B20000895121613061406551FF2CF4695F1DF9D +:105B300008C0161617061806991FF1CF869571052D +:105B4000610508940895E894BB2766277727CB0161 +:105B500097F908958ADF08F48FEF08950BD0C0CF2E +:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 +:105B70001124EACFC6DFA0F3959FD1F3950F50E033 +:105B8000551F629FF001729FBB27F00DB11D639FEF +:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 +:105BA000661F829F2227B00DA11D621F739FB00D3B +:105BB000A11D621F839FA00D611D221F749F3327AB +:105BC000A00D611D231F849F600D211D822F762F44 +:105BD0006A2F11249F5750408AF0E1F088234AF041 +:105BE000EE0FFF1FBB1F661F771F881F915050408D +:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 +:105C0000983EDCF3869577956795B795F795E79578 +:105C10009F5FC1F7FE2B880F911D9695879597F989 +:105C20000895FA01EE0FFF1F30962105310599F115 +:105C30006115710561F48038BFE39B0749F16894F1 +:105C40009038810561F08038BFEF9B0741F09923C0 +:105C500042F5FF3FE1053105210511F1E894089473 +:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 +:105C700010C0FF5F70F4A695E0F7F73950F019F007 +:105C8000FF3A38F49F779F930CD00F9007FC905801 +:105C900008953EF014CF60E070E080E89FE308953F +:105CA0004FE79F775F934F933F932F939ED02F9112 +:105CB0003F914F915F9152DF05C019F40EF0F9CE7C +:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 +:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E +:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D +:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 +:105D0000FE57E0684427EE0F441FFA95E1F74195EE +:105D1000550B32D00F9007FE26C00895DF93CF9326 +:105D20001F930F93FF92EF92DF927B018C01689497 +:105D300005C0DA2EEF011EDFFE01E894A591259142 +:105D4000359145915591AEF3EF0162DDFE0197016A +:105D5000A801DA9479F7DF90EF90FF900F911F91EF +:105D6000CF91DF9108959B01AC0160E070E080E885 +:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A +:105D8000940F511DBBF39150504094F059F088236B +:105D900032F0660F771F881F91505040C1F79E3F29 +:105DA000510544F7880F911D9695879597F90895A9 +:105DB0005F3FACF0983E9CF0BB2786957795679542 +:105DC000B79508F4B1609395C1F7BB0F58F711F47C +:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 +:105DE0000EF076C06CCE689464CE93DEC8F399232F +:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 +:105E0000DD2788232AF02197660F771F881FDAF78E +:105E100020E030E040E85FEB9FE3883920F0803EEF +:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 +:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 +:105E400071097595771F880B990BD4DD28E132E72E +:105E500041E35FE38FDEAF2D9801AE01FF900F911C +:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 +:105E7000BB1F9B01AC01BF5728F4222733274427BF +:105E800050781FC0B75188F4AB2F00244695379542 +:105E90002795011CA395D2F3002069F0220F331F30 +:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 +:105EB0008A07B94630F49B01AC016627772788270B +:105EC0009078309621F02083318342835383089564 +:105ED0009F3F31F0915020F4879577956795B7955E +:105EE000880F911D9695879597F90895AA1BBB1B5E +:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA +:105F0000B70B881F991F5A95A9F780959095BC01EA +:105F1000CD01089597FB072E16F4009407D077FD66 +:105F200009D00E94762F07FC05D03EF4909581950C +:105F30009F4F0895709561957F4F0895F999FECF11 +:105F400092BD81BDF89A992780B50895A8E1B0E087 +:105F500042E050E00C94C12F262FF999FECF1FBAD2 +:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 +:105F7000019608950E94AC2F272F0C94AD2FDC01C1 +:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 +:105F9000319600B40D9241505040B8F70895F894EE +:025FA000FFCF31 +:105FA2000507000C058540000001064000000100C5 +:105FB200D80B680C440C0F0CDB0B01600228081490 +:105FC2000A321E40004500250026006100600020C4 +:105FD2000037006400650066006700440046002444 +:105FE2000047000000020004000500070009000B42 +:105FF200000C000E0010001100130015001700180D +:10600200001A001C001D001F00210023002400268E +:1060120000280029002B002D002F00300032003410 +:10602200003500370039003B008803A103BA03D3CF +:1060320003FB04AE04780458043F4D3620020302E9 +:10604200000001000101010101000101010203043C +:0660520005060708090025 +:00000001FF diff --git a/keyboard/planck/planck_pcb_r3_w_bootloader.hex b/keyboard/planck/planck_pcb_r3_w_bootloader.hex new file mode 100755 index 000000000..c61dfb743 --- /dev/null +++ b/keyboard/planck/planck_pcb_r3_w_bootloader.hex @@ -0,0 +1,1796 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C949D020C94E1020C94E1020C94E10228 +:100010000C94E1020C94E1020C94E1020C94E102D4 +:100020000C94E1020C94E1020C941C120C94EE125C +:100030000C948D240C94E1020C94E1020C94E102E6 +:100040000C94E1020C94E1020C94E1020C94E102A4 +:100050000C94E1020C94FA240C94E1020C94E10259 +:100060000C94E1020C94E1020C94E1020C94E10284 +:100070000C94E1020C94E1020C94E1020C94E10274 +:100080000C94860A0C94E1020C94E1020C94E102B7 +:100090000C94E1020C94E1020C94E1020C94E10254 +:1000A0000C94E1020C94E1020C94E10207634236E5 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F0000000000000021 +:10013000F1A4F1A3018C028C048C2B0014001A0092 +:100140000800150017001C0018000C001200130016 +:100150002A00290004001600070009000A000B000D +:100160000D000E000F0033003400E1001D001B00E5 +:100170000600190005001100100036003700380095 +:1001800028000030E000E200E30002202C002C00F8 +:1001900001205000510052004F002B0014001A00A3 +:1001A000090013000A000D000F0018001C003300A6 +:1001B0002A002900040015001600170007000B0094 +:1001C000110008000C0012003400E1001D001B00AB +:1001D0000600190005000E00100036003700380038 +:1001E00028000030E000E200E30002202C002C0098 +:1001F00001205000510052004F002B003400360007 +:10020000370013001C0009000A00060015000F004B +:100210002A00290004001200080018000C00070042 +:100220000B001700110016003800E1003300140025 +:100230000D000E001B00050010001A0019001D0023 +:1002400028000030E000E200E30002202C002C0037 +:1002500001205000510052004F0035021E021F02C3 +:100260002002210222022302240225022602270262 +:100270002A0001003A003B003C003D003E003F00E8 +:100280002D022E022F0230023102010040004100F7 +:100290004200430044004500032004200520005094 +:1002A0000100010001000100010002200100010025 +:1002B0000100AB00AA00A900AE0035001E001F001F +:1002C0002000210022002300240025002600270012 +:1002D0002A0001003A003B003C003D003E003F0088 +:1002E0002D002E002F0030003100010040004100A1 +:1002F0004200430044004500032004200520005034 +:1003000001000100010001000100010001000100E5 +:100310000120AB00AA00A900AE0028035400680029 +:100320006500200050006C0061006E0063006B00EF +:1003300020004B006500790062006F0061007200D0 +:10034000640000002C034F007200740068006F000E +:100350006C0069006E0065006100720020004B00B7 +:100360006500790062006F00610072006400730034 +:100370000000040309040902D000060100A03209AC +:100380000400000103010100092111010001223FC5 +:10039000000705810308000A0904010001030102A6 +:1003A00000092111010001224D0007058203080008 +:1003B0000A090402000103000000092111010001E3 +:1003C0002236000705830308000A0904030002031C +:1003D000000000092111010001222000070584030B +:1003E00020000107050403200001090404000001A6 +:1003F00001000009240100010900010509040500AC +:10040000020103000007240100014100062402014B +:100410000100062402020200092403010301020173 +:10042000000924030204010101000905060240003D +:1004300005000005250101010905850240000500B0 +:100440000005250101031201100100000008EDFE66 +:1004500060600100010200010631FF0974A1010979 +:1004600075150025FF952075088102097615002570 +:10047000FF952075089102C005010980A101850240 +:1004800016010026B7001A01002AB7007510950161 +:100490008100C0050C0901A1018503160100269CFD +:1004A000021A01002A9C02751095018100C0050105 +:1004B0000902A1010901A100050919012905150079 +:1004C00025019505750181029501750381010501DD +:1004D000093009311581257F950275088106093893 +:1004E0001581257F950175088106050C0A380215CE +:1004F00081257F950175088106C0C005010906A107 +:1005000001050719E029E715002501950875018106 +:1005100002950175088101050819012905950575E0 +:100520000191029501750391010507190029FF1535 +:100530000025FF950675088100C011241FBECFEF6E +:10054000DAE0DEBFCDBF04B603FE24C0809178039D +:1005500090917903A0917A03B0917B038730904BFF +:10056000A740B04BB9F4109278031092790310921F +:100570007A0310927B0314BE84B7877F84BF88E11F +:100580000FB6F89480936000109260000FBEE0E018 +:10059000F8E3099511E0A0E0B1E0E2EAFFE502C06E +:1005A00005900D92A63BB107D9F713E0A6EBB1E099 +:1005B00001C01D92A837B107E1F70E94F90E0C9413 +:1005C000CF2F0C9400000895089561110DC0FC0117 +:1005D0008281882331F085EE0E949D190E94B62BFE +:1005E00003C085EE0E94651A80E090E008958B3B81 +:1005F000910568F4883A910530F5853A9105C0F483 +:100600008430910598F4019709F06FC071C0803E65 +:10061000910508F46AC0883E910540F09C01205F76 +:1006200031092031310508F060C05CC09C01A1C0D7 +:10063000853A910509F45FC0863A910509F45EC0D8 +:1006400023E830E496C0883A910509F45AC0893A03 +:10065000910509F459C08A3A910509F458C08B3ABA +:10066000910509F457C08C3A910509F456C08D3AAA +:10067000910509F455C0803B910509F454C08E3AA8 +:10068000910509F453C08F3A910509F452C0813B9A +:10069000910509F451C0823B910509F450C0833B98 +:1006A000910509F44FC0843B910509F44EC0853B88 +:1006B000910509F44DC0863B910509F44CC0873B78 +:1006C000910509F44BC0883B910509F44AC0893B68 +:1006D000910509F449C08A3B910509F048C02AE216 +:1006E00036E447C09C01306544C020E030E041C0A2 +:1006F00021E030E03EC021E830E43BC022E830E4B5 +:1007000038C022EE34E435C029EE34E432C02AEE9B +:1007100034E42FC025EB34E42CC026EB34E429C0AC +:1007200027EB34E426C02CEC34E423C02DEC34E475 +:1007300020C023E835E41DC02AE835E41AC022E9C8 +:1007400035E417C024E935E414C021E236E411C0D1 +:1007500023E236E40EC024E236E40BC025E236E4A0 +:1007600008C026E236E405C027E236E402C020E0F5 +:1007700034E4C90108959CE0799FF001112490E3CD +:10078000899FE00DF11D1124E60FF11DEE0FFF1FF3 +:10079000E65CFE4F25913491C9010895880F991F99 +:1007A00082559040FC0125913491C9010895880F2C +:1007B000991F825D9E4FFC0125913491C9010895D6 +:1007C0000E94BB039C013A9521153F4108F4DFC00C +:1007D0009C0130522115304120F49F700E94D703B4 +:1007E00008959C0130532115304118F49927906CDD +:1007F00008959C0130542031310520F48F709927E1 +:10080000946D0895803120E4920719F480E091ED11 +:100810000895813140E4940719F480E090ED089543 +:10082000823120E4920719F480E092ED089583313B +:1008300040E4940719F480E093ED0895811520E5D4 +:10084000920711F40C941F25813040E5940731F490 +:100850008091680281608093680208959C013056FF +:100860002115304108F402C097FF02C0906F08952F +:10087000803E9105E0F4803C910568F58133910557 +:1008800009F474C048F48932910509F46AC08A32C7 +:10089000910509F07AC074C089339105F9F0823866 +:1008A0009105E1F08533910509F06FC050C0833E9A +:1008B0009105A9F140F4803E9105C9F0823E910571 +:1008C00009F063C01BC0863E910571F1873E91051A +:1008D00009F05BC037C00E94CE03089520917B02CF +:1008E00020FD02C021FF51C080EE90E04EC08091FB +:1008F0007B0280FFF9CF89E390E047C080917B02C3 +:1009000082FF0AC080917B0284FF03C080E090E0F8 +:100910003CC083EE90E039C082EE90E036C080911A +:100920007B0282FFEFCFF8CF80917B0283FF07C06D +:1009300080917B0284FDEACF87EE90E026C086EEB0 +:1009400090E023C080917B0283FFF2CFF8CF8091AB +:100950007B0285FF03C089E290E017C085E390E049 +:1009600014C080917B0285FDF9CFF5CF80917B0289 +:1009700086FF03C08AE290E008C081E390E005C0F2 +:1009800080917B0286FDF9CFF5CF0E94F702089592 +:100990005F926F927F928F929F92AF92BF92CF920F +:1009A000DF92EF92FF920F931F93CF93DF93CDB718 +:1009B000DEB728970FB6F894DEBF0FBECDBF9E01FD +:1009C0002F5F3F4F4E0189E0880E911C60E070E080 +:1009D00000E010E0E12CF12CC12CD12CA12CB12C89 +:1009E00088E0782E622E532E41E050E0E3E2F1E001 +:1009F000A62DB52D872D01900D928A95E1F7F9016D +:100A0000819191919F01FC01E07FFF27E032F10588 +:100A100059F48F709927FA0102C0EE0FFF1F8A95D3 +:100A2000E2F7AE2ABF2A37C0E033F10559F48F70E0 +:100A30009927FA0102C0EE0FFF1F8A95E2F7CE2A2E +:100A4000DF2A29C0E034F10559F48F709927FA01A3 +:100A500002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0A5 +:100A6000E035F10559F48F709927FA0102C0EE0FB5 +:100A7000FF1F8A95E2F70E2B1F2B0DC0E036F10504 +:100A800051F48F709927FA0102C0EE0FFF1F8A956B +:100A9000E2F76E2B7F2B2815390509F0A7CF94B10B +:100AA0008A2D8095892384B985B18A2985B997B122 +:100AB0008C2D8095892387B988B18C2988B99AB102 +:100AC0008E2D809589238AB98BB18E298BB99DB1E2 +:100AD000802F809589238DB98EB1802B8EB990B3EC +:100AE000862F8095892380BB81B3862B81BB289676 +:100AF0000FB6F894DEBF0FBECDBFDF91CF911F912F +:100B00000F91FF90EF90DF90CF90BF90AF909F90AC +:100B10008F907F906F905F9008955F926F927F9219 +:100B20008F929F92AF92BF92CF92DF92EF92FF92FD +:100B30000F931F93CF93DF93CDB7DEB768970FB6B0 +:100B4000F894DEBF0FBECDBF85B7806885BF85B77F +:100B5000806885BF0E94CF076E9A769A0E94C8046B +:100B60009E012F5F3F4F4E0189E1880E911C60E08E +:100B700070E000E010E0E12CF12CC12CD12CA12C74 +:100B8000B12C98E1792E622E532E41E050E0EBE239 +:100B9000F1E0A62DB52D872D01900D928A95E1F7F4 +:100BA000F901819191919F01FC01E07FFF27E032E3 +:100BB000F10559F48F709927FA0102C0EE0FFF1F5B +:100BC0008A95E2F7AE2ABF2A37C0E033F10559F41F +:100BD0008F709927FA0102C0EE0FFF1F8A95E2F786 +:100BE000CE2ADF2A29C0E034F10559F48F70992705 +:100BF000FA0102C0EE0FFF1F8A95E2F7EE2AFF2AE4 +:100C00001BC0E035F10559F48F709927FA0102C035 +:100C1000EE0FFF1F8A95E2F70E2B1F2B0DC0E0365B +:100C2000F10551F48F709927FA0102C0EE0FFF1FF2 +:100C30008A95E2F76E2B7F2B2815390509F0A7CF8F +:100C400094B18A2D8095892384B985B18A2985B983 +:100C500097B18C2D8095892387B988B18C2988B963 +:100C60009AB18E2D809589238AB98BB18E298BB943 +:100C70009DB1802F809589238DB98EB1802B8EB93F +:100C800090B3862F8095892380BB81B3862B81BB4F +:100C90001092B7011092B6011092BF011092BE01DE +:100CA0001092B9011092B8011092C1011092C001C6 +:100CB0001092BB011092BA011092C3011092C201AE +:100CC0001092BD011092BC011092C5011092C40196 +:100CD00068960FB6F894DEBF0FBECDBFDF91CF91FF +:100CE0001F910F91FF90EF90DF90CF90BF90AF904A +:100CF0009F908F907F906F905F9008955F926F921A +:100D00007F928F929F92AF92BF92CF92DF92EF929B +:100D1000FF920F931F93CF93DF93CDB7DEB7A097CA +:100D20000FB6F894DEBF0FBECDBF7E0149E1E40EE1 +:100D3000F11C2EEBC22E21E0D22E5E0151E2A50E57 +:100D4000B11C38E0532E470101E010E048E1642E69 +:100D500055E0752EE3E2F1E0D401852D01900D926E +:100D60008A95E1F7F701819191917F019C01207FA4 +:100D700033272032310589F424B18F709927A801D7 +:100D800002C0440F551F8A95E2F7CA01242B24B9EB +:100D900095B18095892385B94FC02033310589F4F9 +:100DA00027B18F709927F80102C0EE0FFF1F8A95B7 +:100DB000E2F7CF012E2B27B998B18095892388B906 +:100DC0003BC02034310589F42AB18F709927A801DE +:100DD00002C0440F551F8A95E2F7CA01242B2AB995 +:100DE0009BB1809589238BB927C02035310589F4C3 +:100DF0002DB18F709927F80102C0EE0FFF1F8A9561 +:100E0000E2F7CF012E2B2DB99EB1809589238EB9A3 +:100E100013C02036310581F420B38F709927A801C3 +:100E200002C0440F551F8A95E2F7CA01242B20BB4C +:100E300091B38095892381BB50EA5A95F1F7BE01A1 +:100E40006F5F7F4F80E090E020E030E0EBE2F1E088 +:100E5000DE011196462D01900D924A95E1F7FB01B6 +:100E600041915191BF01FA01E07FFF27E032F10586 +:100E700011F4E3B113C0E033F10511F4E6B10EC093 +:100E8000E034F10511F4E9B109C0E035F10511F4E0 +:100E9000ECB104C0E036F105B9F4EFB1F0E04F7009 +:100EA000552702C0F595E7954A95E2F7E0FD08C0A1 +:100EB000A801022E02C0440F551F0A94E2F702C097 +:100EC00040E050E0842B952B2F5F3F4F2C303105B5 +:100ED00009F0BCCFF601208131812817390721F0B4 +:100EE00091838083709200010E94C804F2E0CF0ECB +:100EF000D11CEA14FB0409F02DCF80910001882356 +:100F000061F1815080930001811121C08091BE0167 +:100F10009091BF019093B7018093B6018091C00179 +:100F20009091C1019093B9018093B8018091C20161 +:100F30009091C3019093BB018093BA018091C40149 +:100F40009091C5019093BD018093BC0106C08FE9CB +:100F50009FE00197F1F700C0000081E0A0960FB676 +:100F6000F894DEBF0FBECDBFDF91CF911F910F91DF +:100F7000FF90EF90DF90CF90BF90AF909F908F90B9 +:100F80007F906F905F900895E82FF0E0EE0FFF1FC5 +:100F9000EA54FE4F80819181089508950895279A1B +:100FA0002F988FEF9FEF90938700809386008AE0C1 +:100FB0008093800089E1809381000C945F2B8111E4 +:100FC0000BC080918000877F8093800010928D00FD +:100FD00010928C002F9808952F98833041F48091BF +:100FE00080008860809380008FEF9FEF12C0909107 +:100FF000800098609093800023E030E0281B310946 +:10100000220F331F8FEF9FEF02C0969587952A9589 +:10101000E2F790938D0080938C0008950F931F93B7 +:10102000CF93DF93CDB7DEB7CC58D1090FB6F89484 +:10103000DEBF0FBECDBF8C01862F642F882379F0D1 +:10104000F80192812FE7482F992329F08DE792E04C +:101050000E94F81404C08DE792E00E940815F80180 +:1010600080818B3061F49181933009F068C0828176 +:10107000882309F4CDC0809103018F5F0EC08A30B0 +:10108000E1F5F8019181933009F059C082818823FC +:1010900009F4BEC08091030181508093030120E0D8 +:1010A0004BE760E08DE792E00E94E81420E04BE718 +:1010B00061E08DE792E00E94E81420E04BE762E0F7 +:1010C0008DE792E00E94E81420E04BE763E08DE7B3 +:1010D00092E00E94E81420E04BE764E08DE792E0A4 +:1010E000C457DF4F0FB6F894DEBF0FBECDBFDF9100 +:1010F000CF911F910F910C94E814893069F4F80195 +:1011000091819330E1F492819923C9F0809101019A +:101110009091020101960EC0883089F4F801918106 +:10112000933069F49281992351F08091010190915B +:10113000020101979093020180930101B0CFF80161 +:10114000928140910301992391F196E4E3E4F1E067 +:10115000DE01A95BBF4F01900D929A95E1F7405DCA +:10116000F8019181FCE09F9F40191124E091010159 +:10117000F0910201E80FF11DEE0FFF1F87E490E0F0 +:101180008C0F9D1FE80FF91F8081480F2FE760E04B +:101190008DE792E0C457DF4F0FB6F894DEBF0FBE65 +:1011A000CDBFDF91CF911F910F910C94F81496E46D +:1011B000E3E4F1E0DE01119601900D929A95E1F7DA +:1011C000405DF8019181FCE09F9F40191124E0915E +:1011D0000101F0910201E80FF11DEE0FFF1F81E008 +:1011E00090E08C0F9D1FE80FF91F8081480F2FE7BB +:1011F00060E08DE792E0C457DF4F0FB6F894DEBF92 +:101200000FBECDBFDF91CF911F910F910C940815A8 +:10121000C457DF4F0FB6F894DEBF0FBECDBFDF91CE +:10122000CF911F910F910895CF93DF93EA019B0116 +:10123000AC0160E074E284E79BE40E945F2C0E94B2 +:10124000C72C709397006093960020E130E02C1B30 +:101250003D0B02C0759567952A95E2F7709399004A +:1012600060939800DF91CF9108951092020210923E +:10127000010210929000109291001092FD011092C4 +:10128000FE011092FF01109200021092FC011092D8 +:10129000FB01E9EDF1E0A9ECB1E01192119211929C +:1012A00011921D921D9281E0E93FF807B1F7089570 +:1012B000AF92BF92CF92DF92EF92FF920F931F9364 +:1012C000CF93DF936B017C0109EF11E047EDA42E72 +:1012D00041E0B42EC7E0D0E0A7019601F801929159 +:1012E0008291729162918F010E945B2C882349F058 +:1012F0002197F2E0AF1AB108CF3F8FEFD80761F71F +:1013000034C0F8011082118212821382F501118219 +:101310001082FE01EE0FFF1FEE0FFF1FE752FE4F80 +:10132000DE01AA0FBB1FA753BE4FCE011AC0019604 +:1013300044815581668177814083518362837383C1 +:10134000148215821682178212962D913C91139762 +:1013500011963C932E9313961C921E9212973496DC +:1013600012968730910519F7C3CF809101029091B1 +:101370000202019797FD05C090930202809301023B +:1013800004C01092020210920102E0910102F09159 +:101390000202309789F410929000109291001092FE +:1013A000FD011092FE011092FF01109200021092B6 +:1013B000FC011092FB019EC03197DF01AA0FBB1FF9 +:1013C000AA0FBB1FA752BE4FCD90DD90ED90FC90B1 +:1013D000EE0FFF1FE753FE4FC081D181A090FD01AA +:1013E000B090FE010091FF0110910002A70196014B +:1013F0006A2D7B2D802F912F0E945B2C87FF2FC0A1 +:1014000081E08093C801AE016A2D7B2D802F912F42 +:101410000E9414092091FD013091FE014091FF01CD +:1014200050910002C701B6010E94F62B20E030E087 +:101430004AEF53E40E945F2C9B01AC016A2D7B2D87 +:10144000802F912F0E94F72B5B018C01A701960141 +:101450007B2D912F0E945B2C1816ACF638C0A7018B +:1014600096016A2D7B2D802F912F0E94AA2D181690 +:1014700084F581E08093C801AE016A2D7B2D802F19 +:10148000912F0E941409A70196016091FD017091AE +:10149000FE018091FF01909100020E94F62B20E056 +:1014A00030E04AEF53E40E945F2C9B01AC016A2DAF +:1014B0007B2D802F912F0E94F62B5B018C01A701C1 +:1014C00096017B2D912F0E94AA2D87FFD5CF1092D8 +:1014D000C801AE01C701B6010E941409C092FD0106 +:1014E000D092FE01E092FF01F0920002D093FC0145 +:1014F000C093FB01DF91CF911F910F91FF90EF906F +:10150000DF90CF90BF90AF90089508951F920F92F3 +:101510000FB60F9211242F933F934F935F936F93C6 +:101520007F938F939F93AF93BF93EF93FF9380919C +:10153000960090919700892B09F455C08091C801BD +:10154000811151C08091F9019091FA01813091058A +:1015500071F082309105C1F0892BC1F52091FD0118 +:101560003091FE014091FF01509100021DC0609139 +:10157000FD017091FE018091FF01909100029B019D +:10158000AC010E94F72B0EC020E030E040E450E4B4 +:101590006091FD017091FE018091FF019091000228 +:1015A0000E94AE2D9B01AC0160E074E284E79BE4F5 +:1015B0000E945F2C0E94C72C709397006093960046 +:1015C0007595679570939900609398008091F901E3 +:1015D0009091FA01019663E070E00E948A2F909347 +:1015E000FA018093F901FF91EF91BF91AF919F9123 +:1015F0008F917F916F915F914F913F912F910F90BC +:101600000FBE0F901F901895AF92BF92CF92DF92AE +:10161000EF92FF920F931F93CF93DF936B017C01A7 +:10162000EA0120E030E0A9010E94AA2D18160CF072 +:10163000B4C03E9A82E8809390008AE18093910042 +:10164000A090FD01B090FE010091FF0110910002F9 +:1016500020E030E0A9016A2D7B2D802F912F0E9480 +:101660005B2C81112DC0AE01C701B6010E94140987 +:10167000C092FD01D092FE01E092FF01F0920002C3 +:10168000D093FC01C093FB01809101029091020272 +:10169000FC01EE0FFF1FEE0FFF1FE752FE4FC0824F +:1016A000D182E282F382FC01EE0FFF1FE753FE4F6F +:1016B000D183C083019690930202809301026DC092 +:1016C000A70196016A2D7B2D802F912F0E945B2C04 +:1016D00087FF2CC0AE016A2D7B2D802F912F0E9499 +:1016E00014092091FD013091FE014091FF015091BC +:1016F0000002C701B6010E94F62B20E030E04AEF5D +:1017000053E40E945F2C9B01AC016A2D7B2D802F3E +:10171000912F0E94F72B5B018C01A70196017B2D75 +:10172000912F0E945B2C1816ACF69DCFA701960155 +:101730006A2D7B2D802F912F0E94AA2D18160CF058 +:1017400092CFAE016A2D7B2D802F912F0E9414091C +:10175000A70196016091FD017091FE018091FF014A +:10176000909100020E94F62B20E030E04AEF53E413 +:101770000E945F2C9B01AC016A2D7B2D802F912F45 +:101780000E94F62B5B018C01A70196017B2D912F06 +:101790000E94AA2D87FFD5CF66CFDF91CF911F91F1 +:1017A0000F91FF90EF90DF90CF90BF90AF90089592 +:1017B00080910C020895CF93DF9300D01F92CDB794 +:1017C000DEB720916E03243021F523E029839B832B +:1017D0008A832093E9008FEF06C095ED9A95F1F783 +:1017E0000000882329F09091E800815095FFF5CF03 +:1017F0008091E80085FF0DC040E050E063E070E0BC +:10180000CE0101960E94BA0F8091E8008E778093F6 +:10181000E8000F900F900F90DF91CF910895CF9334 +:10182000DF9300D01F92CDB7DEB720916E03243036 +:1018300029F522E029839B838A8383E08093E90052 +:101840008FEF06C095ED9A95F1F70000882329F0F7 +:101850009091E800815095FFF5CF8091E80085FFD9 +:101860000DC040E050E063E070E0CE0101960E94C0 +:10187000BA0F8091E8008E778093E8000F900F9068 +:101880000F90DF91CF91089520916E032430F9F4E9 +:1018900022E02093E9002FEF06C035ED3A95F1F7ED +:1018A0000000222329F03091E800215035FFF5CFC8 +:1018B0002091E80025FF0BC040E050E065E070E0BB +:1018C0000E94BA0F8091E8008E778093E800089517 +:1018D000CF93DF93EC0180916E03843041F581E07A +:1018E0008093E9008FEF06C095ED9A95F1F700001F +:1018F000882329F09091E800815095FFF5CF8091E1 +:10190000E80085FF14C040E050E068E070E0CE01E0 +:101910000E94BA0F8091E8008E778093E80088E0FB +:10192000FE01A4E0B2E001900D928A95E1F7DF910B +:10193000CF910895BF92CF92DF92EF92FF920F93D3 +:101940001F93CF93DF937C01B62EE90100E010E0F6 +:10195000C42ED12C0BC04991202F2B0D2F774F7700 +:101960006FE0C7010E94E8140F5F1F4F0C151D05A3 +:1019700094F3DF91CF911F910F91FF90EF90DF9043 +:10198000CF90BF90089570E06F5F7F4F6F707727A3 +:101990000C94E8140F931F93CF93C42F63307105F9 +:1019A00009F04AC0842F807F803849F1803909F0DE +:1019B00043C0622F6F7770E080E090E00E94FA2CC5 +:1019C00020E030E040E451E40E945F2C9B01AC0138 +:1019D00060E070E080E090E40E94112E0F7710E04C +:1019E00023E0159507952A95E1F72DEC3CEC42E0B4 +:1019F00053E40E94AE2DA8010E94040B1DC0622F6B +:101A00006F7770E080E090E00E94FA2C20E030E0F8 +:101A100040E451E40E945F2C9B01AC0160E070E067 +:101A200080E090E40E94112E2DEC3CEC42E053E467 +:101A30000E94AE2D0E945809CC3F29F4CF911F91EE +:101A40000F910C943509CF911F910F9108950F9329 +:101A50001F93CF93DF93CDB7DEB727970FB6F894D8 +:101A6000DEBF0FBECDBF8C0114C08A810E94C2149C +:101A70009A819D839B819E839C819F8381111EC03F +:101A800089818430B1F08730A1F08630A1F08530B3 +:101A9000A1F0BE016F5F7F4F84E091E00E942F189C +:101AA0008111E3CF84E091E00E9420180E949B14F2 +:101AB0000DC083E003C082E001C081E0AE014B5F56 +:101AC0005F4F682FC8010E945515E3CF27960FB6C8 +:101AD000F894DEBF0FBECDBFDF91CF911F910F9164 +:101AE0000895EF92FF920F93CF93DF9300D000D031 +:101AF00000D0CDB7DEB77B014A832B830C83842FC4 +:101B00002E834D830E94C2142E814D8181111BC0F2 +:101B100082E0E816F10479F083E0E816F10421F0A0 +:101B2000EA94EF2821F50BC0073F11F487E001C0CC +:101B300084E089830BC0273FD9F786E0FACF473F7F +:101B4000B9F785E0F6CF42954F704983BE016F5FCC +:101B50007F4F84E091E00E94E51784E091E00E94CD +:101B6000031884E091E00E9420180E949B1426969E +:101B70000FB6F894DEBF0FBECDBFDF91CF910F91AE +:101B8000FF90EF90089580916D03811109C00E942C +:101B9000A1110E94FE118091E20084608093E20016 +:101BA000089510926D03089508950C94E4020C9426 +:101BB000892480916E03843049F58091E9008F700B +:101BC0009091EC0090FF02C090E801C090E0982B4B +:101BD00084E08093E9008091EB0080FF14C0809145 +:101BE000EE0087FD03C00FC01092F1008091E80065 +:101BF00085FDFACF8091E80080FF05C08091E80064 +:101C00008E778093E8009F709093E900089542E0FA +:101C100061EC81E00E94171142E061EC82E00E94D9 +:101C2000171142E061EC83E00E94171146E261EC7B +:101C300084E00E94171142E361E885E00E941711D9 +:101C400042E360E886E00C941711809170038330C2 +:101C500009F454C030F4813071F0823009F0AAC028 +:101C600091C08A3009F47EC08B3009F45FC089309E +:101C700009F0A0C020C080916F03813A09F09AC09A +:101C80008091E800877F8093E800809173039091B2 +:101C90007403892B21F060E080E090E003C068E0ED +:101CA00084E092E070E00E9458108091E8008B7709 +:101CB0008093E800089580916F03813209F07AC023 +:101CC0008091730390917403892B09F073C0809104 +:101CD000E800877F8093E80005C080916E03882329 +:101CE00009F468C08091E80082FFF7CF8091F1008D +:101CF00080930C028091E8008B7758C080916F032D +:101D0000813A09F057C08091730390917403892B35 +:101D100009F050C08091E800877F8093E8008091AF +:101D2000E80080FFFCCF80911A013BC080916F03D7 +:101D3000813209F03FC08091730390917403892B25 +:101D4000C9F58091E800877F8093E8000E944E11DA +:101D50009091710381E0911101C080E080931A019C +:101D60000C948C1E80916F03813221F58091E800E4 +:101D7000877F8093E8000E944E11809172038093C8 +:101D80000302089580916F03813AA1F48091E800E5 +:101D9000877F8093E8008091E80080FFFCCF8091EE +:101DA00003028093F1008091E8008E778093E80031 +:101DB0000C944E11089584B7877F84BF88E10FB6D5 +:101DC000F89480936000109260000FBE90E080E86D +:101DD0000FB6F89480936100909361000FBE0E944B +:101DE000A1110E94FE11E2EEF0E080818460808308 +:101DF00008958DE792E00E94241561E77DE08DE76C +:101E000092E00E947A1567E27DE08DE792E00E9401 +:101E10007E150E94DB0E78946AEC7CE08DE792E000 +:101E20000E94201563EC7CE08DE792E00E9418157B +:101E30006AE97CE08DE792E00E941C150E94850A09 +:101E40000E949B140E94AC1880E191E00E945418FB +:101E50000BC00E944E2480916C03882329F00E94BD +:101E6000742481110E94A40F80916E03853089F340 +:101E70008DE792E00E942D170E94B618F5CF292F0A +:101E8000332723303105B1F04CF42130310509F40A +:101E90004DC02230310509F04EC007C02132310556 +:101EA00041F12232310591F146C0E0EDF0E086E7E4 +:101EB00093E045C099278130910569F08230910502 +:101EC00089F0892B09F037C0E2E7F3E0E491F0E014 +:101ED00082E793E034C0E4E4F3E0E491F0E084E4EA +:101EE00093E02DC0EAE1F3E0E491F0E08AE193E0D1 +:101EF00026C0643000F5E62FF0E0EE0FFF1FE75735 +:101F0000FE4F80819181E9E0F0E019C0643098F4DF +:101F1000E62FF0E0DF01AA0FBB1FAF56BE4F8D9139 +:101F20009C91E756FE4FE081F0E009C0E2E1F0E06D +:101F300086E494E004C0E0E0F0E080E090E0DA01C4 +:101F40008D939C93CF01089580E189BD82E189BD85 +:101F500009B400FEFDCF8091D8008F7D8093D8001A +:101F60008091E00082608093E0008091E00081FD3C +:101F7000FCCF0895BF92CF92DF92EF92FF920F9322 +:101F80001F93CF93DF937C018B01EA010E946F11B5 +:101F9000B82E811133C0209731F028813981021B7E +:101FA000130BE20EF31EC12CD12C23C08091E8004C +:101FB00085FD15C08091E8008E778093E80020971A +:101FC00049F0888199818C0D9D1D9983888325E036 +:101FD000B22E14C00E946F11882359F00EC0F70171 +:101FE00081917F018093F10001501109FFEFCF1A19 +:101FF000DF0A01151105D1F601C0B82E8B2DDF9136 +:10200000CF911F910F91FF90EF90DF90CF90BF90F5 +:102010000895BF92CF92DF92EF92FF920F931F939A +:10202000CF93DF937C018B01EA010E946F11B82EE0 +:10203000811133C0209731F028813981021B130BA5 +:10204000E20EF31EC12CD12C23C08091E80085FD47 +:1020500015C08091E8008B778093E800209749F0C5 +:10206000888199818C0D9D1D9983888345E0B42ECC +:1020700014C00E946F11882359F00EC08091F100A6 +:10208000F70181937F0101501109FFEFCF1ADF0A99 +:1020900001151105D1F601C0B82E8B2DDF91CF911E +:1020A0001F910F91FF90EF90DF90CF90BF90089518 +:1020B00040917503509176034617570748F0611514 +:1020C000710539F44091E8004E774093E80001C073 +:1020D000BA01FC0140E033C080916E03882309F40B +:1020E00042C0853009F441C08091E80083FD39C0C9 +:1020F0008091E80082FD2FC08091E80080FF1FC022 +:102100009091F3008091F200392F20E0A901482B33 +:10211000CA0106C041914093F100615071090196D6 +:102120006115710519F088309105A0F341E0089719 +:1021300009F040E08091E8008E778093E800611517 +:10214000710551F64111C8CF06C080916E038823F6 +:1021500051F0853051F08091E80082FFF6CF80E0A9 +:10216000089581E0089582E0089583E00895409104 +:102170007503509176034617570748F061157105AE +:1021800039F44091E8004E774093E80001C0BA016D +:10219000FC0140E034C080916E03882309F443C001 +:1021A000853009F442C08091E80083FD3AC08091F7 +:1021B000E80082FD30C08091E80080FF20C090914F +:1021C000F3008091F200392F20E0A901482BCA01C9 +:1021D00007C044914093F100319661507109019616 +:1021E0006115710519F08830910598F341E0089761 +:1021F00009F040E08091E8008E778093E800611557 +:10220000710549F64111C7CF06C080916E0388233E +:1022100051F0853051F08091E80082FFF6CF80E0E8 +:10222000089581E0089582E0089583E00895982F4D +:102230002CC09093E900981739F07091EC00209130 +:10224000ED005091F00003C0242F762F50E021FDC7 +:1022500002C09F5F1AC03091EB003E7F3093EB00CD +:102260003091ED003D7F3093ED003091EB00316017 +:102270003093EB007093EC002093ED005093F0004E +:102280002091EE0027FDE5CF07C0973090F28F70C8 +:102290008093E90081E0089580E0089580916F03C4 +:1022A00087FD05C08091E80080FF0EC012C08091BC +:1022B000E80082FD05C080916E038111F8CF08957A +:1022C0008091E8008B7708C080916E038111EACF7E +:1022D00008958091E8008E778093E80008958091BA +:1022E000E4009091E50045E62091EC0020FD1FC040 +:1022F00023C020916E03222391F0253091F020918C +:10230000EB0025FD10C02091E4003091E500281776 +:10231000390751F34150C90139F784E0089582E04B +:10232000089583E0089581E0089580E00895209164 +:10233000E80020FFDECFF9CF2091E80022FFD9CFBF +:10234000F4CF0E940F120E941712E0EEF0E080819D +:1023500081608083E8EDF0E080818F77808319BC15 +:10236000A7EDB0E08C918E7F8C9380818F7E8083EF +:1023700010926D0308950F931F93CF93DF930E94E4 +:102380000F120E941712C8EDD0E088818F778883E2 +:1023900088818068888388818F7D888319BC1092AA +:1023A0006E0310926A0310926C0310926B0300EE9E +:1023B00010E0F80180818B7F808388818160888331 +:1023C00042E060E080E00E941711E1EEF0E08081E1 +:1023D0008E7F8083E2EEF0E0808181608083808167 +:1023E00088608083F80180818E7F8083888180610E +:1023F0008883DF91CF911F910F910895E8EDF0E070 +:1024000080818F7E8083E7EDF0E080818160808332 +:1024100084E082BF81E080936D030C94BB11E8EDF2 +:10242000F0E080818E7F80831092E2000895109208 +:10243000DA001092E10008951F920F920FB60F92EA +:1024400011242F933F934F935F936F937F938F93B9 +:102450009F93AF93BF93EF93FF938091E10082FF2F +:102460000BC08091E20082FF07C08091E1008B7F6A +:102470008093E1000E94D90D8091DA0080FF1FC097 +:102480008091D80080FF1BC08091DA008E7F8093FE +:10249000DA008091D90080FF0DC080E189BD82E122 +:1024A00089BD09B400FEFDCF81E080936E030E94D8 +:1024B000C30D05C019BC10926E030E94D10D80910E +:1024C000E10080FF19C08091E20080FF15C080917B +:1024D000E2008E7F8093E2008091E2008061809331 +:1024E000E2008091D80080628093D80019BC85E01A +:1024F00080936E030E94D50D8091E10084FF30C06F +:102500008091E20084FF2CC080E189BD82E189BD19 +:1025100009B400FEFDCF8091D8008F7D8093D80054 +:102520008091E1008F7E8093E1008091E2008F7EB8 +:102530008093E2008091E20081608093E2008091CC +:102540006A03882311F084E007C08091E30087FFCD +:1025500002C083E001C081E080936E030E94D70D2A +:102560008091E10083FF29C08091E20083FF25C0B4 +:102570008091E100877F8093E10082E080936E0389 +:1025800010926A038091E1008E7F8093E100809138 +:10259000E2008E7F8093E2008091E2008061809370 +:1025A000E20042E060E080E00E9417118091F000BC +:1025B00088608093F0000E94D40DFF91EF91BF914D +:1025C000AF919F918F917F916F915F914F913F91CB +:1025D0002F910F900FBE0F901F9018951F920F9282 +:1025E0000FB60F9211242F933F934F935F936F93E6 +:1025F0007F938F939F93AF93BF93CF93EF93FF936B +:102600008091E9008F709091EC0090FF02C090E8FB +:1026100001C090E0C92FC82B1092E9008091F00012 +:10262000877F8093F00078940E9432131092E90023 +:102630008091F00088608093F000CF70C093E90033 +:10264000FF91EF91CF91BF91AF919F918F917F912A +:102650006F915F914F913F912F910F900FBE0F900F +:102660001F9018951F93CF93DF93CDB7DEB7AC972C +:102670000FB6F894DEBF0FBECDBFEFE6F3E080915A +:10268000F100819323E0E737F207C9F70E94250E96 +:102690008091E80083FF37C180916F0390917003B0 +:1026A000953009F488C038F49130B1F170F093306E +:1026B00009F029C131C0983009F4F8C0993009F403 +:1026C00004C1963009F01FC19DC0803821F08238C6 +:1026D00009F019C108C080916B0390916C03992394 +:1026E00089F082600FC080917303909174038F70A2 +:1026F00099278093E9008091EB0085FB882780F97A +:102700001092E9009091E800977F9093E800809301 +:10271000F1001092F100D5C0882319F0823009F041 +:10272000F2C08F7121F0823009F0EDC00BC08091B2 +:102730007103813009F0E7C0933009F080E08093A5 +:102740006C032FC08091710381112BC080917303A2 +:10275000909174038F709927009709F4D4C08093E7 +:10276000E9002091EB0020FF1CC020917003233072 +:1027700021F48091EB00806212C09091EB00906197 +:102780009093EB0021E030E001C0220F8A95EAF738 +:102790002093EA001092EA008091EB008860809319 +:1027A000EB001092E9008091E800877F8093E800B9 +:1027B0000E944E11A8C08111A6C080917103909112 +:1027C00072038F779927182F9091E3009078982BB8 +:1027D0009093E3008091E800877F8093E8000E9457 +:1027E0004E118091E80080FFFCCF8091E30080686B +:1027F0008093E300112311F083E001C082E0809315 +:102800006E0381C08058823008F07DC080917103D2 +:10281000909172038C3D23E0920779F583E08A83DF +:102820008AE289834FB7F894DE01139620E03EE0F8 +:1028300051E2E32FF0E050935700E49120FF03C0F2 +:10284000E295EF703F5FEF708E2F90E0EA3010F06E +:10285000C79601C0C0968D939D932F5F243149F791 +:102860004FBF8091E800877F8093E8006AE270E0C4 +:10287000CE0101960E94581013C0AE01455D5F4F16 +:10288000609173030E943F0F0097E9F12091E800E7 +:10289000277F2093E800BC018BA59CA50E94B71060 +:1028A0008091E8008B778093E8002DC0803859F53F +:1028B0008091E800877F8093E80080916A0380938D +:1028C000F1008091E8008E7771CF81111CC090914A +:1028D00071039230C0F48091E800877F8093E80014 +:1028E00090936A030E944E1180916A03811104C083 +:1028F0008091E30087FF02C084E001C081E0809303 +:102900006E030E94070E8091E80083FF0AC0809149 +:10291000E800877F8093E8008091EB0080628093DD +:10292000EB00AC960FB6F894DEBF0FBECDBFDF91C3 +:10293000CF911F910895CF9380916E038823B1F0BA +:102940008091E9008F709091EC0090FF02C090E8B8 +:1029500001C090E0C92FC82B1092E9008091E800D7 +:1029600083FD0E943213CF70C093E900CF91089588 +:10297000881F8827881F089591E0883F08F490E019 +:10298000892F0895982F907F903B99F038F49039D3 +:1029900081F0903A71F09038C9F40BC0903DA1F0ED +:1029A00018F4903C99F410C0903E19F0903F71F4E7 +:1029B00002C083E00895E82FE15FEF3038F4F0E0E3 +:1029C000E356FE4F8081089582E0089580E00895E7 +:1029D0000F932F774F776F70606BDC01ED91FC9157 +:1029E000022F242F462F63E070E009950F91089580 +:1029F0000F932F774F776F706069DC01ED91FC9139 +:102A0000022F242F462F63E070E009950F9108955F +:102A10000F932F774F776F706068DC01ED91FC9119 +:102A2000022F242F462F63E070E009950F9108953F +:102A3000FC01738362830895FC01738F628F089594 +:102A4000FC01758F648F0895CF93DF93EC011DA275 +:102A50001FA21EA2BC01685D7F4F40EC88519F4FB2 +:102A60000E9461171B821A821D821C821F821E8295 +:102A7000198618861B861A861D861C861F861E864A +:102A8000198A188A1B8A1A8A1D8A1C8A1F8A1E8A1A +:102A9000198E188E1B8E1A8E1D8E1C8E1F8E1E8EEA +:102AA00019A218A2DF91CF910895CF92DF92FF92E1 +:102AB0000F931F93CF93DF931F92CDB7DEB7F62E00 +:102AC0006A018C0108511F4F08C0F60161916F0126 +:102AD000C80149830E94681749818C2D841B8F157A +:102AE000A0F30F90DF91CF911F910F91FF90DF9096 +:102AF000CF900895FC01718360830895FC0171A358 +:102B000060A30895AF92BF92CF92DF92EF92FF92AF +:102B10000F931F93CF93DF9300D01F92CDB7DEB7F3 +:102B20007C016B01142FB22EA02EDC0195968C91A6 +:102B300095978430F1F45A96ED91FC915B9730971C +:102B400009F4D8C0CB01019763E070E00E94762FB2 +:102B5000DB01AA0FBB1FA60FB71F49832A830B8374 +:102B60004C2D4A1B9E012F5F3F4FBD01C7010995A8 +:102B7000B1C06230710509F453C06330710529F0AA +:102B80006130710509F09CC083C0842F807F803A3A +:102B900001F130F48038B9F0803909F0ABC00DC0D4 +:102BA000803EE9F0803F09F1803B09F0A3C0D701E6 +:102BB0001296ED91FC91139723C0D7011496ED91D5 +:102BC000FC9115971DC0D7011696ED91FC911797B2 +:102BD00017C0D7011896ED91FC91199711C0D70134 +:102BE0001A96ED91FC911B970BC0423F09F082C0F1 +:102BF000D7011C96ED91FC911D97309731F47AC066 +:102C0000309709F477C0123F21F42A2D4B2D62EF43 +:102C100004C0612F6F702A2D4B2DC70109955AC032 +:102C2000842F807F803D59F0803F79F0803C09F00F +:102C300061C0D7011E96ED91FC911F9719C0D70175 +:102C40005096ED91FC91519713C0433F31F4D70159 +:102C50005296ED91FC91539708C0413F09F04AC04C +:102C6000D7015496ED91FC915597309741F442C0AD +:102C7000309709F43FC0133F11F0113F19F44B2D69 +:102C8000612F03C0612F6F704B2DC701099522C0C2 +:102C9000842F0E94BC14882331F0D7015696ED9101 +:102CA000FC91579707C0163F29F5D7015896ED912B +:102CB000FC9159973097F1F0612FC70109950AC02F +:102CC00064307105A8F416C00A2D2B2D412FB601D2 +:102CD000C7010995D7015E96ED91FC915F973097FA +:102CE00089F00A2D2B2D412FB601C70109950AC085 +:102CF000C12CD12CD7015C96ED91FC915D9730975A +:102D000019F7E8CF0F900F900F90DF91CF911F919F +:102D10000F91FF90EF90DF90CF90BF90AF9008950C +:102D2000EF92FF920F931F93CF93DF93EC01162F37 +:102D3000862F0E94BC14882369F0FDA081E08DA33A +:102D400000E020E0412F61E070E0CE010E9482159A +:102D5000FDA27CC0812F0E94B8144DA1882309F4E4 +:102D600040C0443029F01AA321E030E03FA32EA355 +:102D7000812F0E94C214813031F070F0823051F006 +:102D8000833059F507C08DA300E020E0412F61E0BA +:102D900070E01EC08DA35AC0103F19F0173FE9F430 +:102DA00004C084E08DA31AA33FC02EA13FA1C90196 +:102DB00063E070E00E94762F8C0F9D1FFC0112A330 +:102DC000B9016F5F7F4F7FA36EA30CA12BA14AA116 +:102DD000CE010E9482151DA239C01DA21FA21EA2F3 +:102DE00035C0442399F12EA13FA1C90163E070E0F1 +:102DF0000E94762F7C01FE01E80FF91F12A3B90192 +:102E00006F5F7F4F7FA36EA38130910591F082E0C9 +:102E1000E816F104D9F40CA12BA14AA1CE010E941D +:102E200082158DA1843091F081E090E09FA38EA364 +:102E30000DC0423059F400E02BA14AA1CE010E94FE +:102E400082158DA1843011F0FFA2EEA2DF91CF9107 +:102E50001F910F91FF90EF900895CF92DF92EF9224 +:102E6000FF920F931F93CF93DF93EC01E8A1F9A199 +:102E7000309709F009958E0108511F4FC8010E9433 +:102E80009A17E12CF12CC82ED12C0FC060E0C8019C +:102E90000E94AE17682FCE010E94901661E0C80113 +:102EA0000E94BF178FEFE81AF80AEC14FD0470F3C4 +:102EB000DF91CF911F910F91FF90EF90DF90CF9016 +:102EC0000895FC0142837483638311821082089504 +:102ED0000F931F93CF93DF93EC01062F0E94E0170F +:102EE000182F298130E0C90101966A8170E00E94A3 +:102EF0008A2F488150E08417950729F4812F0E947A +:102F0000E31780E012C0EB81FC81E20FF31F008326 +:102F10002981822F90E001966A8170E00E948A2FB9 +:102F20008983812F0E94E31781E0DF91CF911F9168 +:102F30000F910895CF93DF93EC010E94E017298150 +:102F40009881291710F0C22F02C0CA81C20FC91B75 +:102F50000E94E3178C2FDF91CF910895FC0120810F +:102F6000862F90E0820F911D628170E00E948A2F6F +:102F70000380F481E02DE80FF91F808108950F93FD +:102F80001F93CF93DF931F92CDB7DEB78C01698378 +:102F90000E94E017482FF80180816981262F30E0D8 +:102FA000280F311D6281C90170E00E948A2F808341 +:102FB000842F0F90DF91CF911F910F910C94E31705 +:102FC0008FB7F89408958FBF0895FC01CB0120912D +:102FD0006E032430B1F421812F702093E90040E08A +:102FE00050E064E070E00E94BA0F81110BC0909134 +:102FF000E80095FD07C09091E8009E779093E80067 +:10300000089582E0089520916E032430A9F4FC0114 +:1030100081818F708093E9003091F3002091F2005C +:10302000932F80E0822B892B49F08091E8008E77E6 +:103030008093E8000C946F1182E0089580E0089579 +:1030400020916E03243051F4FC0121812F702093D4 +:10305000E9002091E80020FD0C9403180895FC017C +:10306000CB0120916E03243011F080E00895268179 +:103070002F702093E9002091E80022FFF6CF2091E5 +:10308000E80025FFF2CF40E050E064E070E00E94ED +:1030900009108091E80085FD05C08091E8008B77DC +:1030A0008093E80081E0089590930F0280930E02D0 +:1030B000089580910E0290910F020895E0910E0202 +:1030C000F0910F02309721F00190F081E02D0994EA +:1030D00080E00895E0910E02F0910F02309721F008 +:1030E0000280F381E02D09940895E0910E02F091A1 +:1030F0000F02309721F00480F581E02D09940895A6 +:1031000020911002309111028217930771F0909371 +:10311000110280931002E0910E02F0910F0230979D +:1031200021F00680F781E02D099408952091120284 +:10313000309113028217930771F0909313028093DA +:103140001202E0910E02F0910F02309721F00084FC +:10315000F185E02D099408950E94B6240E948D0502 +:103160000E948A250C945F2B0C94CE075F926F927D +:103170007F928F929F92AF92BF92CF92DF92EF9207 +:10318000FF920F931F93CF93DF93CDB7DEB72A97AC +:103190000FB6F894DEBF0FBECDBF0E947E0694E14D +:1031A000C92E92E0D92E00E010E0AA24A394B12CFD +:1031B000502E802F0E94C4073C01F601E190F1904F +:1031C0006F01E826F926E114F10431F40F5F1F4F77 +:1031D0000430110569F73AC08091680281FD0E94B0 +:1031E000CD0720E030E04501022E02C0880C991C7A +:1031F0000A94E2F7C4018E219F21892B09F12E83C5 +:103200005F826820792081E0672809F480E0888760 +:103210000E94BF248160782F9A8789874E815F81C1 +:1032200068858A850E946F19F801EE0FFF1FEC5E1A +:10323000FD4F80819181882599259183808316C0D7 +:103240002F5F3F4F2C30310571F6C0CF8FEF898350 +:103250008A831B820E94BF248160782F9D838C8388 +:1032600049815A816B818D810E946F190E94772854 +:1032700010911C020E945E181817D9F00E945E1867 +:1032800080931C022A960FB6F894DEBF0FBECDBF06 +:10329000DF91CF911F910F91FF90EF90DF90CF9032 +:1032A000BF90AF909F908F907F906F905F900C94A5 +:1032B000B4182A960FB6F894DEBF0FBECDBFDF91CB +:1032C000CF911F910F91FF90EF90DF90CF90BF9023 +:1032D000AF909F908F907F906F905F900895CF9365 +:1032E000DF93CDB7DEB72B970FB6F894DEBF0FBED6 +:1032F000CDBF4F83588769877A878B87DE01119608 +:1033000086E0FD0111928A95E9F785E0FE01379686 +:1033100001900D928A95E1F749815A816B817C81F8 +:103320008D819E810E9447212B960FB6F894DEBFB7 +:103330000FBECDBFDF91CF910895CF93C82F8823C3 +:1033400009F4C1C0823859F40E945E1881FDBBC0E7 +:1033500089E30E94AC230E94282489E30CC08338AF +:1033600079F40E945E1880FDAEC083E50E94AC2314 +:103370000E94282483E50E94CE23CF910C94282418 +:10338000843859F40E945E1882FD9DC087E40E9433 +:10339000AC230E94282487E4EECF8450813A48F47D +:1033A0008C2F0E94C72A81118EC08C2F0E94AC23C3 +:1033B000E4CF8C2F805E883050F4C77081E090E0BD +:1033C00001C0880FCA95EAF70E94EF23D6CF8C2F51 +:1033D000855A833078F4C53A29F0C63A31F482E848 +:1033E00090E005C081E890E002C083E890E0CF91D2 +:1033F0000C9480188C2F885A833108F064C0C83A26 +:1034000039F1C93A41F1CA3A49F1CB3A51F1CC3AD2 +:1034100059F1CD3A61F1C03B69F1CE3A71F1CF3A41 +:1034200079F1C13B81F1C23B89F1C33B91F1C43BCE +:1034300099F1C53BA1F1C63BA9F1C73BB1F1C83B2E +:10344000B9F1C93BC1F1CA3BC9F58AE292E038C083 +:1034500082EE90E035C089EE90E032C08AEE90E0D6 +:103460002FC085EB90E02CC086EB90E029C087EB65 +:1034700090E026C08CEC90E023C08DEC90E020C062 +:1034800083E891E01DC08AE891E01AC082E991E0EA +:1034900017C084E991E014C081E292E011C083E298 +:1034A00092E00EC084E292E00BC085E292E008C098 +:1034B00086E292E005C087E292E002C080E090E000 +:1034C000CF910C949618CF910895882309F44DC09C +:1034D000823859F40E945E1881FF47C089E30E9438 +:1034E000AC230E94282489E30CC0833871F40E9425 +:1034F0005E1880FF3AC083E50E94AC230E94282416 +:1035000083E50E94CE230C942824843859F40E9429 +:103510005E1882FF2AC087E40E94AC230E94282400 +:1035200087E4EFCF982F9450913A08F4EACF982F80 +:10353000905E983058F4282F277081E090E001C009 +:10354000880F2A95EAF70E94F523DDCF982F955A28 +:10355000933020F480E090E00C948018885A8331F6 +:1035600020F480E090E00C9496180895882321F0D0 +:103570000E94EF230C9428240895882321F00E94B0 +:10358000F5230C9428240895BF92CF92DF92EF92F6 +:10359000FF920F931F93CF93DF93CDB7DEB727979B +:1035A0000FB6F894DEBF0FBECDBF8C0185E0F801E9 +:1035B000DE01119601900D928A95E1F7F8013081B4 +:1035C0002181F280558152955F7083819481892B8E +:1035D00039F02F3F41F481E090E03F3F31F003C0EC +:1035E00081E090E002C080E090E080FD73C3398309 +:1035F0002A8389819A815E830E946923B92E8F83F1 +:103600000E9468230E9490222B2D22952F7030E07B +:103610005E816F812530310509F4E6C06CF42430F9 +:1036200031050CF0A2C04B2D407F8B2D8F702230C6 +:1036300031050CF045C017C02C3031054CF42A3050 +:1036400031050CF0E7C12830310509F043C3E5C06E +:103650002D30310509F4BAC20CF4A2C22F30310565 +:1036600009F038C323C3182F411101C002C01295BD +:10367000107FFF2059F0112309F46BC2812F6F8353 +:103680000E94FF230E9428246F8163C2862F0E941C +:10369000651A112309F41EC3812F0E940524279661 +:1036A0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1036B0000F91FF90EF90DF90CF90BF900C94282453 +:1036C000403211F08295807F662319F0613071F5E8 +:1036D00023C0FF20B1F0511101C032C0513081F53B +:1036E00027960FB6F894DEBF0FBECDBFDF91CF9106 +:1036F0001F910F91FF90EF90DF90CF90BF900C94AF +:103700000F24511101C003C0513009F4E3C28E836C +:103710000E9412248E819AC1FF2021F0563008F0B9 +:10372000D9C20EC0553008F0D5C290C1FF20C9F0F3 +:10373000552331F0F801958190FF0BC29F7095835E +:1037400027960FB6F894DEBF0FBECDBFDF91CF91A5 +:103750001F910F91FF90EF90DF90CF90BF900C944E +:10376000B61A552309F472C109C22B2D2695269548 +:10377000237030E02115310529F02130310509F0A1 +:10378000A9C219C0FF2021F0862F9B2D937002C083 +:1037900080E090E027960FB6F894DEBF0FBECDBF55 +:1037A000DF91CF911F910F91FF90EF90DF90CF901D +:1037B000BF900C948018FF2021F0862F9B2D9370D2 +:1037C00002C080E090E027960FB6F894DEBF0FBEEF +:1037D000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1037E000CF90BF900C949618862FFF2019F00E945E +:1037F0007D2702C00E94E52727960FB6F894DEBF0A +:103800000FBECDBFDF91CF911F910F91FF90EF9031 +:10381000DF90CF90BF900C946C288B2D837009F0B3 +:1038200079C0F11057C2262F229526952770220FB6 +:10383000220F862F8F70C82ED12CE12CF12C022E56 +:1038400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF4 +:1038500010C06FE070E080E090E004C0660F771F5A +:10386000881F991F2A95D2F760957095809590953D +:1038700003C060E070E0CB012B2D269526952370C8 +:10388000422F50E042305105D9F04330510569F1E3 +:103890006C297D298E299F294130510551F12796A8 +:1038A0000FB6F894DEBF0FBECDBFDF91CF911F9151 +:1038B0000F91FF90EF90DF90CF90BF900C94A522D6 +:1038C0006C297D298E299F2927960FB6F894DEBF93 +:1038D0000FBECDBFDF91CF911F910F91FF90EF9061 +:1038E000DF90CF90BF900C94B7220E94A522C70111 +:1038F000B60127960FB6F894DEBF0FBECDBFDF919D +:10390000CF911F910F91FF90EF90DF90CF90BF90DC +:103910000C949322FF2019F08B2D817001C08695A5 +:10392000882309F4D7C1262F229526952770220FC8 +:10393000220F862F8F70C82ED12CE12CF12C022E55 +:1039400004C0CC0CDD1CEE1CFF1C0A94D2F764FFF3 +:1039500010C06FE070E080E090E004C0660F771F59 +:10396000881F991F2A95D2F760957095809590953C +:1039700003C060E070E0CB012B2D269526952370C7 +:10398000422F50E042305105D9F04330510569F1E2 +:103990006C297D298E299F294130510551F12796A7 +:1039A0000FB6F894DEBF0FBECDBFDF91CF911F9150 +:1039B0000F91FF90EF90DF90CF90BF900C94442335 +:1039C0006C297D298E299F2927960FB6F894DEBF92 +:1039D0000FBECDBFDF91CF911F910F91FF90EF9060 +:1039E000DF90CF90BF900C9456230E944423C701D0 +:1039F000B60127960FB6F894DEBF0FBECDBFDF919C +:103A0000CF911F910F91FF90EF90DF90CF90BF90DB +:103A10000C943223603F59F120F4603E08F494C0C6 +:103A200008C0623F09F467C0F0F1633F09F08CC041 +:103A300065C0162F1F708B2D8F71FF2021F00E9403 +:103A4000DD22812F7DCE0E94F822812F27960FB68E +:103A5000F894DEBF0FBECDBFDF91CF911F910F91C4 +:103A6000FF90EF90DF90CF90BF900C94BD1AFF2095 +:103A7000B1F0553008F02EC18B2D8F7127960FB6FF +:103A8000F894DEBF0FBECDBFDF91CF911F910F9194 +:103A9000FF90EF90DF90CF90BF900C94172356309B +:103AA00008F018C1E9CFFF2099F08B2D8F71279670 +:103AB0000FB6F894DEBF0FBECDBFDF91CF911F913F +:103AC0000F91FF90EF90DF90CF90BF900C94DD228C +:103AD0008B2D8F7127960FB6F894DEBF0FBECDBF2A +:103AE000DF91CF911F910F91FF90EF90DF90CF90DA +:103AF000BF900C94F822F110EBCFD7CFFF2099F0B4 +:103B00008B2D8F7127960FB6F894DEBF0FBECDBFF9 +:103B1000DF91CF911F910F91FF90EF90DF90CF90A9 +:103B2000BF900C94CE2227960FB6F894DEBF0FBE3E +:103B3000CDBFDF91CF911F910F91FF90EF90DF905C +:103B4000CF90BF900C94C922FF20A9F0552309F40F +:103B5000ACCF862F27960FB6F894DEBF0FBECDBF31 +:103B6000DF91CF911F910F91FF90EF90DF90CF9059 +:103B7000BF900C949D19552309F4AACF862F279640 +:103B80000FB6F894DEBF0FBECDBFDF91CF911F916E +:103B90000F91FF90EF90DF90CF90BF900C94651A3B +:103BA0004B2D4F70C8010E94E50227960FB6F8947E +:103BB000DEBF0FBECDBFDF91CF911F910F91FF9060 +:103BC000EF90DF90CF90BF900C94FD21F11082C058 +:103BD0009B2D9F70492F50E04230510599F144F4DC +:103BE0004115510569F04130510509F073C019C004 +:103BF00043305105C1F14430510509F06BC044C058 +:103C000027960FB6F894DEBF0FBECDBFDF91CF91E0 +:103C10001F910F91FF90EF90DF90CF90BF900C9489 +:103C2000702B27960FB6F894DEBF0FBECDBFDF9185 +:103C3000CF911F910F91FF90EF90DF90CF90BF90A9 +:103C40000C94872B27960FB6F894DEBF0FBECDBF1E +:103C5000DF91CF911F910F91FF90EF90DF90CF9068 +:103C6000BF900C94A32B27960FB6F894DEBF0FBE1F +:103C7000CDBFDF91CF911F910F91FF90EF90DF901B +:103C8000CF90BF900C94B62B862F27960FB6F89442 +:103C9000DEBF0FBECDBFDF91CF911F910F91FF907F +:103CA000EF90DF90CF90BF900C94DA2B4B2D4F709C +:103CB000C80127960FB6F894DEBF0FBECDBFDF91C7 +:103CC000CF911F910F91FF90EF90DF90CF90BF9019 +:103CD0000C940E0827960FB6F894DEBF0FBECDBF2A +:103CE000DF91CF911F910F91FF90EF90DF90CF90D8 +:103CF000BF9008950E940C240E94E1230E94282472 +:103D00000E9418290E946C2880E090E00E94801890 +:103D100080E090E00C9496180E94FC230C947A1E8C +:103D20000E946923292F22952F7030E02C30310515 +:103D30004CF42A3031056CF422503109223031051F +:103D400070F407C02C30310531F02F30310539F4D3 +:103D500002C081E0089593FB882780F9089580E0F0 +:103D60000895CF93DF9300D000D01F92CDB7DEB778 +:103D70000F900F900F900F900F90DF91CF910895BB +:103D8000CF93DF9300D000D000D0CDB7DEB726961A +:103D90000FB6F894DEBF0FBECDBFDF91CF9108956F +:103DA0001F93CF93DF93C091530216E012C0D0E06F +:103DB0001C9FF0011D9FF00D1124ED5DFD4F408112 +:103DC000518162817381848195810E94C01E2196F8 +:103DD000C77080915402C813EACFDF91CF911F9131 +:103DE000089540911D0250911E0260911F02709132 +:103DF000200280912102909122020C94C01E0F9308 +:103E00001F93CF93DF938091220282958F7009F0E8 +:103E100069C080911F02882309F464C0A0915302F5 +:103E2000D0915402B0911D02C0911E0280912002D7 +:103E30009091210221E030E0BF3F11F020E030E01E +:103E4000122FBC016095709506E04AC0009721F0E2 +:103E5000CF3F29F4212F05C021E030E002C020E04F +:103E600030E020FD3BC04A2F50E0049FF001059F49 +:103E7000F00D1124ED5DFD4F2181C2132FC0208173 +:103E8000B2132CC02281211129C02381348128172B +:103E9000390718F0281B390B02C0260F371F283CA2 +:103EA0003105E0F4809122028F70806180932202BC +:103EB00086E0849FF001859FF00D1124E85DFD4FA1 +:103EC00080818F70806180838DE192E00E94C41AAE +:103ED000DF91CF911F910F910C94D01EAF5FA7700F +:103EE000AD13B4CFDF91CF911F910F910895EF9251 +:103EF000FF920F931F93CF93DF93CDB7DEB76297F7 +:103F00000FB6F894DEBF0FBECDBF8C0185E0F8017F +:103F1000DE011D9601900D928A95E1F7D8014C9132 +:103F200011965C91119712966C9112971396ED90E1 +:103F3000FC90149770911D02E0911E028091200266 +:103F400090912102009739F0EF3F41F421E030E0F9 +:103F50007F3F31F003C021E030E002C020E030E0DC +:103F600020FD5CC120911F02222309F4F1C0E81654 +:103F7000F90628F09701281B390BC90104C0809568 +:103F800090958E0D9F1D883C910508F098C08091FA +:103F90002202982F907F09F064C0E51314C07413B7 +:103FA00012C0611110C08F708061809322020E9444 +:103FB000F11E8DE192E00E94C41A80912202D80184 +:103FC00015968C9343C1EF2839F05F3F41F481E0AF +:103FD00090E04F3F31F003C081E090E002C080E00C +:103FE00090E080FD03C081E0862702C080E090E081 +:103FF00080FF2EC0809153022091540236E013C0FE +:1040000090E0389FF001399FF00D1124ED5DFD4FD8 +:104010007181571306C07081471303C07281671303 +:1040200017C0019687708213EBCF12C19F7059F0B1 +:10403000882309F40BC107C09F7029F0F80195810E +:10404000907F09F403C1805E883008F4FFC0D2C0BD +:10405000662309F4FBC080912202816080932202D2 +:10406000F5C0E51308C0741306C0611104C0D8017F +:1040700015968C939DC04D875E878D859E856A8B36 +:104080000E94901E6A89882309F4B4C0662309F44B +:10409000B1C020912202822F82958F7090E002970A +:1040A0000CF4C6C080911D0290911E0298878F83E8 +:1040B0001986FB86EA862C87CE01079646C080913A +:1040C0002202982F907F59F47E2DF98AE88A8989F7 +:1040D0000E94B11E8DE192E00E94C41A95C0E513C2 +:1040E00011C074130FC061110DC0F8018583C801A0 +:1040F0000E94C41AEDE1F2E086E0DF011D928A958C +:10410000E9F7A2C04D875E878D859E856A8B0E94E8 +:10411000901E6A89882309F46DC0662309F46AC079 +:1041200020912202822F82958F7090E002970CF4EA +:104130007FC080911D0290911E029A8389831B8209 +:10414000FD82EC822E83CE0101960E94C41A70C0BB +:10415000E816F90628F09701281B390BC90104C09D +:10416000809590958E0D9F1D883C910508F046C066 +:10417000662309F43FC0E51330C074132EC02091AC +:10418000220220FD21C0322F32953F70832F90E014 +:104190000097D1F0D80115962C9315970F9741F001 +:1041A000832F8F5F8295807F2F70282B15962C93FD +:1041B000C8010E94C41A86E0F801ADE1B2E00190A6 +:1041C0000D928A95E1F73EC086E0F801ADE1B2E0DC +:1041D00001900D928A95E1F737C04D875E878D85F6 +:1041E0009E850E94901E811123C0809122028160D1 +:1041F00080932202C8010E94C41A26C07E2DF98A2B +:10420000E88A89890E94B11EEDE1F2E086E0DF01D3 +:104210001D928A95E9F70E94F11E18C0662351F39A +:104220004D875E878D859E850E94901E882311F3A1 +:1042300086E0F801ADE1B2E001900D928A95E1F7D8 +:104240000E94FF1E0E94F11E81E014C080E012C097 +:104250004D875E878D859E850E946923292F229533 +:104260002F7030E0223031050CF4E0CE24303105DF +:104270000CF6E2CE62960FB6F894DEBF0FBECDBF4D +:10428000DF91CF911F910F91FF90EF9008951F93B1 +:10429000CF93DF93CDB7DEB72C970FB6F894DEBF80 +:1042A0000FBECDBF4F83588769877A878B879C87DE +:1042B000CE0107960E94771F8823D9F02F81388579 +:1042C0008A859B85892B39F03F3F19F080E090E08B +:1042D00004C02F3FD9F781E090E0892B09F06DC031 +:1042E0004F81588569857A858B859C850E94C01E83 +:1042F00064C086E0FE013796DE01119601900D92B2 +:104300008A95E1F7FF81E8854A855B85411551056E +:1043100039F0EF3F41F481E090E0FF3F31F003C01E +:1043200081E090E002C080E090E080FD46C02091F6 +:10433000540230E0C90101968770992760915302B9 +:1043400070E08617970709F440C0F983EA835D831C +:104350004C8396E0929FD001939FB00D1124AD5DE8 +:10436000BD4FFE01319601900D929A95E1F7809331 +:1043700054020E94D01E21C0189FC00111248D5DDF +:104380009D4F0E94771F882371F1E09153021E9F79 +:10439000F0011124ED5DFD4F4081518162817381F7 +:1043A000848195810E94C01E8091530290E0019605 +:1043B000877099278093530201C016E080915302C1 +:1043C000909154028913D8CF0EC00E948C1E109277 +:1043D000540210925302EDE1F2E086E0DF011D92FB +:1043E0008A95E9F7EACF2C960FB6F894DEBF0FBE98 +:1043F000CDBFDF91CF911F910895DF92EF92FF9291 +:104400000F931F93CF93DF93EC01009709F46CC0D7 +:10441000D12CEE24E394F12C8E010F5F1F4FFE018F +:104420008491843748F4843008F04AC0813071F0B8 +:10443000823009F059C01EC0853709F43DC070F1C3 +:10444000982F9458903708F04FC03DC02296F8013D +:104450008491982F905E983050F48770FE2D01C0A3 +:10446000FF0F8A95EAF78F2F0E94FF2330C00E942A +:104470009D192DC02296F8018491982F905E983056 +:1044800050F48770FE2D01C0FF0F8A95EAF78F2F39 +:104490000E9405241CC00E94651A19C02296F801CA +:1044A000049107C08FE99FE00197F1F700C0000079 +:1044B00001500111F7CF0BC02296F801D49007C02C +:1044C0000E949D1903C08F770E94651AE8018D2D07 +:1044D00007C08150EFE9FFE03197F1F700C000001D +:1044E000882309F499CFF5CFDF91CF911F910F91D8 +:1044F000FF90EF90DF9008956093590270935A02F5 +:1045000080935B0290935C020C947A1E6093550238 +:104510007093560280935702909358020C947A1E1F +:1045200008950C947C220F931F93009159021091CF +:104530005A0220915B0230915C02602B712B822B1E +:10454000932B1F910F910C947C220F931F9300913A +:10455000590210915A0220915B0230915C02602353 +:104560007123822393231F910F910C947C220F932C +:104570001F930091590210915A0220915B023091D1 +:104580005C0260277127822793271F910F910C945B +:104590007C2260E070E0CB010C94862241E050E088 +:1045A00060E070E004C0440F551F661F771F8A95B6 +:1045B000D2F7CB01BA010C94862241E050E060E0D2 +:1045C00070E004C0440F551F661F771F8A95D2F70D +:1045D0008091550290915602A0915702B0915802D5 +:1045E000482B592B6A2B7B2BCB01BA010C948622CA +:1045F00041E050E060E070E004C0440F551F661FCA +:10460000771F8A95D2F74095509560957095809167 +:10461000550290915602A0915702B091580248233A +:1046200059236A237B23CB01BA010C94862241E0F3 +:1046300050E060E070E004C0440F551F661F771F14 +:104640008A95D2F78091550290915602A091570217 +:10465000B0915802482759276A277B27CB01BA0116 +:104660000C9486220F931F930091550210915602CD +:104670002091570230915802602B712B822B932B83 +:104680001F910F910C9486220F931F930091550256 +:1046900010915602209157023091580260237123E5 +:1046A000822393231F910F910C9486220F931F93C3 +:1046B00000915502109156022091570230915802F4 +:1046C00060277127822793271F910F910C948622D0 +:1046D0000895CF92DF92EF92FF920F931F93CF93A3 +:1046E000DF93EC01C0905902D0905A02E0905B0237 +:1046F000F0905C028091550290915602A091570271 +:10470000B0915802C82AD92AEA2AFB2A0FE110E000 +:10471000B701A601002E04C0769567955795479579 +:104720000A94D2F740FF08C0BE01802F0E94E00328 +:104730008130910509F007C00150110948F7BE0109 +:1047400080E00E94E003DF91CF911F910F91FF90D5 +:10475000EF90DF90CF90089540911B0150911C0184 +:1047600020E030E09FEFFA01E20FF31F628168174B +:10477000A1F09F3F19F4611101C0922F2F5F3F4FAD +:104780002630310581F707C0FA01E90FF11D97FDC9 +:10479000FA95828308959F3FB9F7089540911B01D0 +:1047A00050911C0120E030E0FA01E20FF31F9281EA +:1047B000981301C012822F5F3F4F26303105A1F7B9 +:1047C000089581E090E0E0911B01F0911C01E80F59 +:1047D000F91F1082019688309105A9F708959091EC +:1047E0005D02982B90935D020895809590915D02F3 +:1047F000982390935D02089510925D020895909120 +:104800005E02982B90935E020895809590915E02CF +:10481000982390935E02089510925E02089580930B +:104820005F02089510925F02089540911B0150911C +:104830001C0120E030E080E0FA01E20FF31F9181DB +:1048400091118F5F2F5F3F4F27303105A9F70895F2 +:10485000E0911B01F0911C0180915D028083E09149 +:104860001B01F0911C01808190915E02892B808355 +:1048700090915F02992361F0E0911B01F0911C017E +:104880008081892B80830E94152481110E9412242B +:1048900080911B0190911C010C946A1880916E0309 +:1048A000843009F11092690220E488E190E00FB6AB +:1048B000F894A895809360000FBE2093600083B7A2 +:1048C000817F846083BF83B7816083BF789488953C +:1048D00083B78E7F83BF88E10FB6F8948093600022 +:1048E000109260000FBE0895CF930E94E3020E94D1 +:1048F0007E060E94E402C0E08C2F0E94C407892B30 +:1049000029F4CF5FC430C1F780E001C081E0CF91CE +:1049100008950E948C1E0C945F2B1F920F920FB66D +:104920000F9211248F939F93AF93BF93809169024D +:10493000811113C080916A0290916B02A0916C0268 +:10494000B0916D024196A11DB11D80936A029093B2 +:104950006B02A0936C02B0936D02BF91AF919F91D7 +:104960008F910F900FBE0F901F90189582E084BD1D +:1049700093E095BD9AEF97BD80936E0008958FB731 +:10498000F89440916A0250916B0260916C027091B0 +:104990006D028FBFCA010895CF92DF92EF92FF920E +:1049A0000F931F932FB7F89440916A0250916B02B6 +:1049B00060916C0270916D022FBF6A017B01EE2441 +:1049C000FF248C0120E030E0C016D106E206F30699 +:1049D00020F09A01281B390B05C09C0120953095C9 +:1049E000240F351FC9011F910F91FF90EF90DF90A9 +:1049F000CF9008951F920F920FB60F9211248F93AC +:104A00009F93AF93BF9380916A0290916B02A091A4 +:104A10006C02B0916D020196A11DB11D80936A02D6 +:104A200090936B02A0936C02B0936D02BF91AF9113 +:104A30009F918F910F900FBE0F901F9018950E941D +:104A4000A111F8942FEF87EA91E621508040904021 +:104A5000E1F700C0000087E090EBDC018093780371 +:104A600090937903A0937A03B0937B032CE088E1C1 +:104A700090E00FB6F894A895809360000FBE209345 +:104A80006000FFCFCF92DF92EF92FF920F931F93C0 +:104A9000CF93DF93C82ED12C01E010E08D2D0E9422 +:104AA000C4077C01C0E0D0E098010C2E02C0220FA8 +:104AB000331F0A94E2F72E213F21232B29F421965C +:104AC000CC30D10589F708C06C2F7D2D80E00E9485 +:104AD000BB03C812F4CF06C0D39484E0D812DECF53 +:104AE00080E001C081E0DF91CF911F910F91FF9095 +:104AF000EF90DF90CF900895CF93C82F8CE20E9463 +:104B00004225882321F08C2FCF910C94422580E000 +:104B1000CF910895CF930E94CD26811102C00E94AB +:104B2000AE26C5E608C00E947E068FE39CE9019789 +:104B3000F1F700C00000C150B1F789E20E947C2566 +:104B400081110AC18AE20E947C2581110E94AE2651 +:104B500085E00E947C2581110E941F250E94D82695 +:104B60008093680287E00E947C25882399F18BE17D +:104B70000E947C25882351F09091680291FB882740 +:104B800080F921E0822780FB91F922C08EE00E940B +:104B90007C25882351F09091680292FB882780F948 +:104BA00021E0822780FB92F913C080E10E947C25DE +:104BB00090916802882341F093FB882780F921E0D7 +:104BC000822780FB93F904C0892F809580FB90F9A0 +:104BD00090936802809168020E94DC260E94EA2677 +:104BE00080937B0280EE0E947C25882341F0809197 +:104BF0007B02982F909590FB80F980937B0289E34C +:104C00000E947C25882359F090917B0291FB882794 +:104C100080F921E0822780FB91F990937B0282EE5C +:104C20000E947C25882359F090917B0292FB882773 +:104C300080F921E0822780FB92F990937B0286EE37 +:104C40000E947C25882359F090917B0293FB882752 +:104C500080F921E0822780FB93F990937B0283EE19 +:104C60000E947C25882359F090917B0294FB882731 +:104C700080F921E0822780FB94F990937B0285E301 +:104C80000E947C25882359F090917B0295FB882710 +:104C900080F921E0822780FB95F990937B0281E3E4 +:104CA0000E947C25882359F090917B0296FB8827EF +:104CB00080F921E0822780FB96F990937B0281E1C5 +:104CC0000E947C25882359F090917B0297FB8827CE +:104CD00080F921E0822780FB97F990937B028091F5 +:104CE0007B020E94EE2687E20E947C25C82F8EE17F +:104CF0000E947C258111C2608FE10E947C25811178 +:104D0000C46080E20E947C258111C86081E20E941B +:104D10007C258111C06182E20E947C258111C062E4 +:104D200083E20E947C258111C06484E20E947C257C +:104D3000882311F0C06802C0CC2329F08C2F0E9478 +:104D4000E5266C2F03C00E94E126682F70E080E00A +:104D500090E0CF910C949122CF9108956DEE7EEF6B +:104D600080E090E00E94BA2F60E082E090E00E9434 +:104D7000AC2F60E083E090E00E94AC2F60E084E024 +:104D800090E00E94AC2F60E085E090E00E94AC2FA4 +:104D900060E086E090E00C94AC2F80E090E00E9410 +:104DA000A62F21E08D3E9E4F09F020E0822F08952E +:104DB00082E090E00C949E2F682F82E090E00C94AB +:104DC000AC2F83E090E00C949E2F682F83E090E05E +:104DD0000C94AC2F84E090E00C949E2F682F84E01C +:104DE00090E00C94AC2F86E090E00C949E2F682FFE +:104DF00086E090E00C94AC2F8091760280FF0BC08F +:104E00006091200185E0689FB00111247595679538 +:104E1000759567952AC081FF09C06091200185E0E2 +:104E2000689FB0011124759567951FC082FF07C068 +:104E30006091200185E0689FB001112416C0409167 +:104E400070024423C9F060911F01461788F7209132 +:104E5000200185E0289F90011124429FC001439FBB +:104E6000900D112470E00E948A2F6038710540F483 +:104E70006115710539F002C065E070E0862F089574 +:104E80008FE7089581E008958091760280FF08C041 +:104E900060911E0170E0759567957595679521C0C5 +:104EA00081FF06C060911E0170E07595679519C07D +:104EB00082FF04C060911E0170E010C080917002FA +:104EC0008823C1F060911D018617A0F790911E0103 +:104ED000989FC001112470E00E948A2F60387105EC +:104EE00028F46115710521F0862F08958FE7089544 +:104EF00081E0089561E070E0F4CF803F21F40E94EA +:104F0000FC26819504C0813F29F40E94FC268093F1 +:104F100073020895823F21F40E94FC26819504C00B +:104F2000833F29F40E94FC26809372020895893FF2 +:104F300019F40E94442705C08A3F31F40E94442797 +:104F400081958093740208958B3F21F40E94442739 +:104F5000819504C08C3F29F40E94442780937502F8 +:104F60000895843F21F480917102816017C0853FCC +:104F700021F480917102826011C0863F21F48091FA +:104F8000710284600BC0873F21F4809171028860B8 +:104F900005C0883F31F48091710280618093710275 +:104FA00008958D3F21F48091760281600BC08E3F81 +:104FB00021F480917602826005C08F3F29F48091B0 +:104FC00076028460809376020895803F29F4809170 +:104FD000730287FF6EC007C0813F41F48091730266 +:104FE00018160CF066C01092730263C090917202A2 +:104FF000823F19F497FF5DC005C0833F31F4191655 +:105000000CF057C01092720254C0893F31F4809165 +:10501000740218160CF04DC006C08A3F39F4809116 +:10502000740287FF46C01092740243C08B3F29F47C +:105030008091750287FF3DC006C08C3F39F4809196 +:1050400075021816B4F51092750233C0843F21F42E +:10505000809171028E7F05C0853F31F4809171028D +:105060008D7F8093710225C0863F21F4809171026B +:105070008B7FF7CF873F21F480917102877FF1CF3B +:10508000883F21F4809171028F7EEBCF8D3F21F418 +:10509000809176028E7F0BC08E3F21F48091760244 +:1050A0008D7F05C08F3F29F4809176028B7F80939E +:1050B00076028091720281110EC08091730281117B +:1050C0000AC080917402811106C08091750281111D +:1050D00002C010927002089581E792E00E94751854 +:1050E0000E94BF2490936F0280936E020895CF9325 +:1050F00080916E0290916F020E94CC2440917002C8 +:10510000442321F02091210130E006C020912201AA +:105110005AE0259F900111248217930708F486C056 +:105120008091720281110DC090917302911109C09A +:1051300090917402911105C090917502992309F420 +:1051400075C04F3F19F04F5F40937002181624F45A +:105150000E94FC26809372028091720287FF05C034 +:105160000E94FC268195809372028091730218162A +:1051700024F40E94FC26809373028091730287FFBF +:1051800005C00E94FC268195809373026091720293 +:10519000662339F1C0917302CC2319F1772767FD9B +:1051A0007095872F972F0E94FA2C23E333E343E374 +:1051B0005FE30E94AE2D0E94C72C609372026C2F99 +:1051C000772767FD7095872F972F0E94FA2C23E38E +:1051D00033E343E35FE30E94AE2D0E94C72C60934C +:1051E000730280917402181624F40E94442780935D +:1051F00074028091740287FF05C00E944427819544 +:105200008093740280917502181624F40E9444273A +:10521000809375028091750287FF05C00E94442724 +:10522000819580937502CF910C946C28CF9108954D +:10523000E1E7F2E085E0DF011D928A95E9F710923F +:105240007002109276020895833089F130F4813033 +:1052500061F0823009F06EC019C0853009F449C090 +:10526000B8F1863009F066C055C020912201862F22 +:1052700090E0820F911D8F3F910520F4620F6093A3 +:10528000220108958FEF809322010895209121013A +:10529000862F90E0820F911D8F3F910520F4620FC1 +:1052A0006093210108958FEF80932101089520914B +:1052B0002001862F90E0820F911D8F3F910520F4F1 +:1052C000620F6093200108958FEF8093200108956D +:1052D00020911F01862F90E0820F911D8F3F910535 +:1052E00020F4620F60931F0108958FEF80931F01D8 +:1052F000089520911E01862F90E0820F911D8F3F0F +:10530000910520F4620F60931E0108958FEF809342 +:105310001E01089520911D01862F90E0820F911D9E +:105320008F3F910520F4620F60931D0108958FEF68 +:1053300080931D010895833021F130F4813059F0BC +:10534000823009F049C012C0853089F128F18630D9 +:1053500009F042C037C080912201681720F4861BF3 +:1053600080932201089510922201089580912101D5 +:10537000681720F4861B8093210108951092210163 +:10538000089580912001681720F4861B80932001E6 +:10539000089510922001089580911F01681720F44C +:1053A000861B80931F01089510921F01089580911C +:1053B0001E01681720F4861B80931E010895109229 +:1053C0001E01089580911D01681720F4861B8093AB +:1053D0001D01089510921D01089541E050E060E024 +:1053E00070E004C0440F551F661F771F8A95D2F7DF +:1053F000CB01BA010E9491220C948C1E873208F5D1 +:105400008E3108F0B9C08E3009F47EC060F4873068 +:1054100009F465C018F4863059F549C0883051F157 +:105420008B3031F5AEC0883130F4863108F0A9C038 +:105430008031F1F473C0893109F4A3C08B31C1F418 +:1054400059C08933F1F068F4893209F493C018F433 +:10545000873271F48FC0853309F48CC0883341F4EE +:1054600090C0863409F46BC008F488C0883449F1D0 +:1054700080E008950E94D8260E94EA260E94F32622 +:1054800080C00E945918892B59F00E945918909396 +:105490007902809378020E948C1E80E090E004C024 +:1054A00080917802909179020E9454186AC080918C +:1054B0006802817F8E7F8093680281E0809377020B +:1054C00008950E948C1E2FEF83ED90E321508040C1 +:1054D0009040E1F700C000000E941F2552C080915B +:1054E000680280FF03C0817F8E7F01C0816080934E +:1054F000680247C09091680291FB882780F921E0FB +:10550000822780FB91F913C09091680292FB882753 +:1055100080F921E0822780FB92F909C0909168020E +:1055200093FB882780F921E0822780FB93F99093F1 +:105530006802882331F191609093680222C081E86B +:1055400090E00E9480182FEF81EE94E0215080407F +:105550009040E1F700C0000080E090E00E948018D9 +:105560002FEF89E698E1215080409040E1F700C09C +:10557000000007C080E003C08D5101C089530E9424 +:10558000ED2981E0089580E0089580E00895CF93AB +:10559000C82F80917702813071F020F0823009F0BD +:1055A00083C037C0A0911B01B0911C018C91823245 +:1055B00009F07CC007C0A0911B01B0911C018C9127 +:1055C000823249F48C2F0E94C32A81111EC08C2F75 +:1055D0000E94FE291CC08C2F0E94C52A811115C073 +:1055E000C43169F030F4CB3081F0C03109F062C0D1 +:1055F00009C0C93221F0C83309F05CC006C010925E +:10560000770258C082E08093770281E090E0817059 +:1056100054C0C932C1F060F4C431A9F020F4C730DD +:1056200009F046C02EC0CE51CA3008F041C011C0AA +:10563000CE3409F118F4CB34D9F517C0C13599F03F +:10564000C235B1F50EC010927A0281E080937702E4 +:1056500034C0EC2FF0E0E455FE4F808180937A0255 +:1056600027C061E003C061E007C06AE080917A0270 +:105670000E9424291DC06AE080917A020E949B2921 +:1056800017C08EE18093220182E3809321018AE09A +:105690008093200184E180931F0188E080931E01A4 +:1056A00088E280931D0104C01092770280E005C05B +:1056B00081E003C080E090E0AACFCF9108950E94DE +:1056C000CD26811102C00E94AE260E94F32680934F +:1056D000770380FF02C0869501C080E00C94DF074D +:1056E00080917703982F9695292F30E0233031054C +:1056F0004CF49F5F990F8170892B816080937703B1 +:105700000E94F7268091770386950C94DF0780919D +:105710007703982F969591F09158990F8170892B66 +:10572000809377038E7F91E009F490E08091770376 +:1057300090FB80F9809377030E94F726809177038E +:1057400086950C94DF0780917703982F909590FBB6 +:1057500080F9809377030E94F7268091770380FF7A +:1057600002C0869501C080E00C94DF07309177037A +:10577000232F26952F5F2F77822F90E0317004978B +:105780002CF4220F232B2093770302C0309377034E +:1057900080917703282F2E7F91E009F490E090FB11 +:1057A00080F9809377030E94F7268091770386958E +:1057B0000C94DF0720917703922F96959827990FE5 +:1057C000822F8170892B809377038E7F91E009F47B +:1057D00090E08091770390FB80F9809377030E949B +:1057E000F7268091770386950C94DF075058BB27E6 +:1057F000AA270ED075C166D130F06BD120F031F4FC +:105800009F3F11F41EF45BC10EF4E095E7FB51C11C +:10581000E92F77D180F3BA176207730784079507DA +:1058200018F071F49EF58FC10EF4E0950B2EBA2F8F +:10583000A02D0B01B90190010C01CA01A001112496 +:10584000FF27591B99F0593F50F4503E68F11A1642 +:10585000F040A22F232F342F4427585FF3CF4695D3 +:1058600037952795A795F0405395C9F77EF41F16F5 +:10587000BA0B620B730B840BBAF09150A1F0FF0FBF +:10588000BB1F661F771F881FC2F70EC0BA0F621FAB +:10589000731F841F48F4879577956795B795F7959B +:1058A0009E3F08F0B3CF9395880F08F09927EE0F2D +:1058B000979587950895D9D008F481E008950CD084 +:1058C0000FC107D140F0FED030F021F45F3F19F056 +:1058D000F0C0511139C1F3C014D198F39923C9F321 +:1058E0005523B1F3951B550BBB27AA2762177307E6 +:1058F000840738F09F5F5F4F220F331F441FAA1F9A +:10590000A9F333D00E2E3AF0E0E830D09150504059 +:10591000E695001CCAF729D0FE2F27D0660F771F07 +:10592000881FBB1F261737074807AB07B0E809F0E9 +:10593000BB0B802DBF01FF2793585F4F2AF09E3F7E +:10594000510568F0B6C000C15F3FECF3983EDCF350 +:10595000869577956795B795F7959F5FC9F7880FF7 +:10596000911D9695879597F90895E1E0660F771F49 +:10597000881FBB1F621773078407BA0720F0621BDA +:10598000730B840BBA0BEE1F88F7E095089504D0D3 +:105990006894B111D9C00895BCD088F09F5790F099 +:1059A000B92F9927B751A0F0D1F0660F771F881F44 +:1059B000991F1AF0BA95C9F712C0B13081F0C3D05F +:1059C000B1E00895C0C0672F782F8827B85F39F0FD +:1059D000B93FCCF3869577956795B395D9F73EF4A3 +:1059E00090958095709561957F4F8F4F9F4F08954B +:1059F000E89409C097FB3EF4909580957095619569 +:105A00007F4F8F4F9F4F9923A9F0F92F96E9BB271E +:105A10009395F695879577956795B795F111F8CF9A +:105A2000FAF4BB0F11F460FF1BC06F5F7F4F8F4F05 +:105A30009F4F16C0882311F096E911C0772321F0FB +:105A40009EE8872F762F05C0662371F096E8862F93 +:105A500070E060E02AF09A95660F771F881FDAF7EA +:105A6000880F9695879597F90895990F0008550F17 +:105A7000AA0BE0E8FEEF16161706E807F907C0F0D4 +:105A800012161306E407F50798F0621B730B840BDC +:105A9000950B39F40A2661F0232B242B252B21F4B6 +:105AA00008950A2609F4A140A6958FEF811D811D56 +:105AB000089597F99F6780E870E060E008959FEF90 +:105AC00080EC089500240A94161617061806090695 +:105AD000089500240A941216130614060506089564 +:105AE000092E0394000C11F4882352F0BB0F40F4EC +:105AF000BF2B11F460FF04C06F5F7F4F8F4F9F4F2C +:105B0000089557FD9058440F551F59F05F3F71F0AD +:105B10004795880F97FB991F61F09F3F79F0879514 +:105B20000895121613061406551FF2CF4695F1DF9D +:105B300008C0161617061806991FF1CF869571052D +:105B4000610508940895E894BB2766277727CB0161 +:105B500097F908958ADF08F48FEF08950BD0C0CF2E +:105B6000B1DF28F0B6DF18F0952309F0A2CFA7CF58 +:105B70001124EACFC6DFA0F3959FD1F3950F50E033 +:105B8000551F629FF001729FBB27F00DB11D639FEF +:105B9000AA27F00DB11DAA1F649F6627B00DA11D95 +:105BA000661F829F2227B00DA11D621F739FB00D3B +:105BB000A11D621F839FA00D611D221F749F3327AB +:105BC000A00D611D231F849F600D211D822F762F44 +:105BD0006A2F11249F5750408AF0E1F088234AF041 +:105BE000EE0FFF1FBB1F661F771F881F915050408D +:105BF000A9F79E3F510570F05CCFA6CF5F3FECF355 +:105C0000983EDCF3869577956795B795F795E79578 +:105C10009F5FC1F7FE2B880F911D9695879597F989 +:105C20000895FA01EE0FFF1F30962105310599F115 +:105C30006115710561F48038BFE39B0749F16894F1 +:105C40009038810561F08038BFEF9B0741F09923C0 +:105C500042F5FF3FE1053105210511F1E894089473 +:105C6000E795D901AA2329F4AB2FBE2FF85FD0F313 +:105C700010C0FF5F70F4A695E0F7F73950F019F007 +:105C8000FF3A38F49F779F930CD00F9007FC905801 +:105C900008953EF014CF60E070E080E89FE308953F +:105CA0004FE79F775F934F933F932F939ED02F9112 +:105CB0003F914F915F9152DF05C019F40EF0F9CE7C +:105CC00042CFFDCE26DFC8F39638C0F707F80F9213 +:105CD000E8942BE33AEA48EB5FE74EDF0F920F922E +:105CE0000F924DB75EB70F92C0D0ECEAF0E016D03D +:105CF0004F915F91EF91FF91E595EE1FFF1F49F0E6 +:105D0000FE57E0684427EE0F441FFA95E1F74195EE +:105D1000550B32D00F9007FE26C00895DF93CF9326 +:105D20001F930F93FF92EF92DF927B018C01689497 +:105D300005C0DA2EEF011EDFFE01E894A591259142 +:105D4000359145915591AEF3EF0162DDFE0197016A +:105D5000A801DA9479F7DF90EF90FF900F911F91EF +:105D6000CF91DF9108959B01AC0160E070E080E885 +:105D70009FE3A5CD9ECEACC0CCDEE8F39923D9F34A +:105D8000940F511DBBF39150504094F059F088236B +:105D900032F0660F771F881F91505040C1F79E3F29 +:105DA000510544F7880F911D9695879597F90895A9 +:105DB0005F3FACF0983E9CF0BB2786957795679542 +:105DC000B79508F4B1609395C1F7BB0F58F711F47C +:105DD00060FFE8CF6F5F7F4F8F4F9F4FE3CFB4CE11 +:105DE0000EF076C06CCE689464CE93DEC8F399232F +:105DF000D1F3C6F3DF93CF931F930F93FF92C92F75 +:105E0000DD2788232AF02197660F771F881FDAF78E +:105E100020E030E040E85FEB9FE3883920F0803EEF +:105E200030F021968F77E3DCE4EDF0E003C0DFDCB7 +:105E3000E1E0F1E073DF8B01BE01EC01FB2E6F5757 +:105E400071097595771F880B990BD4DD28E132E72E +:105E500041E35FE38FDEAF2D9801AE01FF900F911C +:105E60001F91CF91DF91D4DC3BCEFA01DC01AA0F68 +:105E7000BB1F9B01AC01BF5728F4222733274427BF +:105E800050781FC0B75188F4AB2F00244695379542 +:105E90002795011CA395D2F3002069F0220F331F30 +:105EA000441FB395DAF30DD0A1CC61307105A0E8A1 +:105EB0008A07B94630F49B01AC016627772788270B +:105EC0009078309621F02083318342835383089564 +:105ED0009F3F31F0915020F4879577956795B7955E +:105EE000880F911D9695879597F90895AA1BBB1B5E +:105EF00051E107C0AA1FBB1FA617B70710F0A61BCA +:105F0000B70B881F991F5A95A9F780959095BC01EA +:105F1000CD01089597FB072E16F4009407D077FD66 +:105F200009D00E94762F07FC05D03EF4909581950C +:105F30009F4F0895709561957F4F0895F999FECF11 +:105F400092BD81BDF89A992780B50895A8E1B0E087 +:105F500042E050E00C94C12F262FF999FECF1FBAD2 +:105F600092BD81BD20BD0FB6F894FA9AF99A0FBE82 +:105F7000019608950E94AC2F272F0C94AD2FDC01C1 +:105F8000CB01FC01F999FECF06C0F2BDE1BDF89A44 +:105F9000319600B40D9241505040B8F70895F894EE +:025FA000FFCF31 +:105FA2000507000C058540000001064000000100C5 +:105FB200D80B680C440C0F0CDB0B01600228081490 +:105FC2000A321E40004500250026006100600020C4 +:105FD2000037006400650066006700440046002444 +:105FE2000047000000020004000500070009000B42 +:105FF200000C000E0010001100130015001700180D +:10600200001A001C001D001F00210023002400268E +:1060120000280029002B002D002F00300032003410 +:10602200003500370039003B008803A103BA03D3CF +:1060320003FB04AE04780458043F4D3620020302E9 +:10604200000001000101010101000101010203043C +:0660520005060708090025 +:00000001FF diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex new file mode 100644 index 000000000..889af7f22 --- /dev/null +++ b/keyboard/planck/planck_pcb_r4.hex @@ -0,0 +1,1628 @@ +:100000000C94FE040C9442050C9442050C94420599 +:100010000C9442050C9442050C9442050C94420544 +:100020000C9442050C9442050C94A6180C94781973 +:100030000C94DB270C9442050C9442050C94420569 +:100040000C9442050C9442050C9442050C94420514 +:100050000C9442050C9443280C9442050C944205E0 +:100060000C9442050C9442050C9442050C944205F4 +:100070000C9442050C9442050C9442050C944205E4 +:100080000C94D10E0C9442050C9442050C9442053C +:100090000C9442050C9442050C9442050C944205C4 +:1000A0000C9442050C9442050C9442059D05AD0547 +:1000B000BF05CF05D505E405F005F60504060D06D8 +:1000C0001E062E06340664069013901390139013A8 +:1000D000901390139013901390139013A713A713DA +:1000E000A713A713A713A713A713A713A713A71340 +:1000F00090139013901390139013A713A713A713A3 +:10010000A713A713901390139013A713A713A71364 +:10011000E519071AF51A071AF51A4C1A6F1AF51A83 +:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C +:1001300027212721C81E2721C91FC91F8C20A320C2 +:100140002721122107634236B79BD8A71A39685670 +:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 +:10016000753EF6177231BF000000803F08000000A6 +:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C +:1001800000000080BEABAAAAAA3E00000000BF008B +:100190000000803F0000000000084178D3BB438787 +:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B +:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 +:1001C0003F00000000002B0014001A00080015007A +:1001D00017001C0018000C00120013002A00290050 +:1001E00004001600070009000A000B000D000E00B5 +:1001F0000F0033003400E1001D001B000600190051 +:1002000005001100100036003700380028000530C6 +:10021000E000E200E30003302C002C00043050002A +:10022000510052004F002B0014001A000900130067 +:100230000A000D000F0018001C0033002A002900DE +:10024000040015001600170007000B00110008003D +:100250000C0012003400E1001D001B000600190014 +:1002600005000E0010003600370038002800053069 +:10027000E000E200E30003302C002C0004305000CA +:10028000510052004F002B0034003600370013009D +:100290001C0009000A00060015000F002A002900B2 +:1002A00004001200080018000C0007000B001700E3 +:1002B000110016003800E100330014000D000E009C +:1002C0001B00050010001A0019001D002800053051 +:1002D000E000E200E30003302C002C00043050006A +:1002E000510052004F0035021E021F02200221025F +:1002F0002202230224022502260227022A004C00A1 +:100300003A003B003C003D003E003F002D022E0223 +:100310002F02300231020100400041004200430040 +:10032000440045000100010001000100010001003E +:100330000100010001000100010001000100AB000B +:10034000AA00A900AE0035001E001F0020002100F9 +:100350002200230024002500260027002A004C004C +:100360003A003B003C003D003E003F002D002E00C7 +:100370002F003000310001004000410042004300E6 +:1003800044004500010001000100010001000100DE +:100390000100010001000100010001000100AB00AB +:1003A000AA00A900AE00000000000000000000004C +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F0000000000000000330000000000430000096 +:100400000000000000001E001E001E001E001E0056 +:100410001E001E001E001E001E001E001E0000000A +:1004200014001A000800150017001C0018000C002A +:10043000120013002F00000004001600070009003E +:100440000A000B000D000E000F00330034000D30C9 +:10045000000000000600190000000000110010005C +: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 +:1007C00000000000000001000050010001000100D5 +:1007D0000100010001000100010001004C000100C6 +:1007E0000100010007300630135012500030013074 +:1007F00002300C30010001000B300A3009300830A3 +:1008000001000100010001000100010001000100E0 +:1008100001000100010001000100010001000100D0 +:100820000100010001002803540068006500200059 +:1008300050006C0061006E0063006B0020004B00F4 +:100840006500790062006F006100720064000000C2 +:100850002C034F007200740068006F006C00690088 +:100860006E0065006100720020004B006500790099 +:1008700062006F00610072006400730000000403F6 +:10088000090409026D00040100A0FA090400000136 +:1008900003010100092111010001223F0007058128 +:1008A0000308000A090401000103010200092111E3 +:1008B000010001224D000705820308000A09040215 +:1008C0000001030000000921110100012236000788 +:1008D00005830308000A090403000103000000095E +:1008E00021110100012239000705840310000112C3 +:1008F00001100100000008EDFE606001000102002F +:100900000105010906A101050719E029E7150025E0 +:1009100001950875018102050819012905950575DC +:1009200001910295017503910105071900297715B9 +:10093000002501957875018102C005010980A1019A +:10094000850216010026B7001A01002AB7007510AB +:1009500095018100C0050C0901A101850316010064 +:10096000269C021A01002A9C02751095018100C084 +:1009700005010902A1010901A100050919012905C3 +:100980001500250195057501810295017503810109 +:100990000501093009311581257F95027508810609 +:1009A00009381581257F950175088106050C0A38DF +:1009B000021581257F950175088106C0C0050109D2 +:1009C00006A101050719E029E7150025019508751D +:1009D0000181029501750881010508190129059514 +:1009E000057501910295017503910105071900290B +:1009F000FF150025FF950675088100C011241FBE54 +:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 +:100A1000190490911A04A0911B04B0911C04873012 +:100A2000904BA740B04BB9F41092190410921A04DD +:100A300010921B0410921C0414BE84B7877F84BFDD +:100A400088E10FB6F89480936000109260000FBEAA +:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 +:100A600002C005900D92A431B107D9F714E0A4E1BA +:100A7000B3E001C01D92A931B107E1F70E94EC1566 +:100A80000C94C0310C940000279A2F988FEF9FEFA1 +:100A900090938700809386008AE08093800089E1AC +:100AA000809381000C94452D282F81110BC08091DB +:100AB0008000877F8093800010928D0010928C00C0 +:100AC0002F9808952F9880918000886080938000EF +:100AD000233019F48FEF9FEF0FC083E090E0821B6B +:100AE0009109880F991F2FEF3FEFA90102C056957A +:100AF00047958A95E2F7CA0190938D0080938C0008 +:100B00000895CF93DF93EC010E94DC28BE0180E0C2 +:100B100090E0DF91CF910C9407250F931F93462F00 +:100B200050E04E30510508F0DEC0DC01FA01EA5A0F +:100B3000FF4F12968C910C948431882309F4D3C012 +:100B400000E010E0980140E064E070E08BE292E0A9 +:100B50000E944F1281E090E00FC0882309F4C3C0C7 +:100B600000E010E0980140E066E070E08BEB91E07F +:100B70000E944F1282E090E00E948105B4C0882359 +:100B800009F4B1C000E010E0980140E068E070E0D6 +:100B90008BEE91E00E944F1284E090E0EDCF88232D +:100BA00011F083E005C083E00CC0882349F084E0A5 +:100BB0000E94842540E164E083E00E94910A93C092 +:100BC00084E00E94A525F6CF882331F085EE0E94AF +:100BD0006E1C0E949C2D87C085EE0E94361D83C02E +:100BE000882309F480C00E94E30D7DC0882309F4A6 +:100BF0007AC00E94DC0D00E010E0980140E065E062 +:100C000070E08BE492E027C0882309F46CC085E093 +:100C10000E94A5250E94040E66C0882309F463C0C3 +:100C200000E010E0980140E068E070E08BE191E0C6 +:100C30000E944F1285E00E94842555C0882309F444 +:100C400052C00E94E21200E010E0980140E068E02B +:100C500070E08BE191E00E944F1245C0882309F4B7 +:100C600042C00E94ED12EFCF8823E9F100E010E0CE +:100C7000980140E066E070E08BE891E00E944F123E +:100C800084E00E94A52583E00E94A52580E10E94C2 +:100C9000A52585E00E94A5250E94040E86E00E94FD +:100CA00084250E94C928811102C00E94A5280E94A3 +:100CB000E12890E090931804809317048068809353 +:100CC00017040E94E5280FC0882369F000E010E0B7 +:100CD000980140E066E070E08BE591E00E944F12E1 +:100CE00086E00E94A52580E090E01F910F91089575 +:100CF0000F931F932FEF89EF90E021508040904099 +:100D0000E1F700C0000000E010E0980140E065E07D +:100D100070E08BE492E00E944F121F910F910895B2 +:100D20000F931F9300E010E0980140E063E070E053 +:100D300083E091E00E944F122FEF82E597E021506F +:100D400080409040E1F700C000001F910F9108958E +:100D5000CF92DF92EF92FF920F931F93CF93DF9387 +:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 +:100D7000CDBF2091D10325FFC5C08C01FC0192811C +:100D800080910201992309F460C096E4E0E9F2E061 +:100D9000DE01A95BBF4F01900D929A95E1F7F80132 +:100DA0009081E0910001F0910101E90FF11DEE0F3A +:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F +:100DC0007181680F711D882777FD8095982F0E948B +:100DD000E02E20E030E040E451E40E94452E6B011B +:100DE0007C01F801218184E090E0821B9109BC0123 +:100DF000882777FD8095982F0E94E02E9B01AC01FB +:100E0000C701B6010E94DD2D9B01AC0160E070E0DE +:100E100080E090E40E94F72F20E030E04CE551E4C0 +:100E20000E94942F4FE050E0C457DF4F0FB6F89464 +:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D +:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 +:100E5000DE01119601900D929A95E1F7F8019081CB +:100E6000E0910001F0910101E90FF11DEE0FFF1F6C +:100E700021E030E02C0F3D1FE20FF31F60817181F4 +:100E8000680F711D882777FD8095982F0E94E02EAE +:100E900020E030E040E451E40E94452E6B017C01EB +:100EA000F801218184E090E0821B9109BC01882730 +:100EB00077FD8095982F0E94E02E9B01AC01C70121 +:100EC000B6010E94DD2D9B01AC0160E070E080E086 +:100ED00090E40E94F72F20E030E04CE551E40E94BE +:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF +:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 +:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 +:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 +:100F2000CF90089508950E9444056E9A769A0C9485 +:100F300078060C9492070C94A8060895880F991FC0 +:100F4000FC01EA5BFF4F859194910895880F991FEA +:100F5000FC01EA53FE4F8591949108950F931F93DE +:100F6000CF93DF93EC01811520E49207A0F5C11522 +:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 +:100F8000D10508F0EEC1C83AD10578F4C53AD105CB +:100F900008F074C0C130D10509F46DC008F4DEC199 +:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F +:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD +:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 +:100FD0008E01106506C2C13080E5D80709F4BDC096 +:100FE00068F5C13120E4D20709F4AEC050F4C03135 +:100FF00090E4D90708F0A5C0CF70DD278E01146DED +:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 +:10101000C115D04509F0A2C10E944B210E94040EC7 +:101020000E9490069FEF24E38CE091502040804086 +:10103000E1F700C000000E946828D3C1C11520E676 +:10104000D20730F4C11581E5D80708F48CC02DC152 +:10105000C11590E7D90708F481C1C11520E8D2076E +:1010600008F478C1C11580E9D80708F077C1DF70AE +:101070008E01106AB6C101E010E0B3C1C53AD105D6 +:1010800009F471C1C63AD10509F070C102E810E453 +:10109000A8C1C83AD10509F46CC1C93AD10509F40F +:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A +:1010B00069C1CC3AD10509F468C1CD3AD10509F42A +:1010C00067C1C03BD10509F466C1CE3AD10509F428 +:1010D00065C1CF3AD10509F464C1C13BD10509F41A +:1010E00063C1C23BD10509F462C1C33BD10509F418 +:1010F00061C1C43BD10509F460C1C53BD10509F408 +:101100005FC1C63BD10509F45EC1C73BD10509F4F7 +:101110005DC1C83BD10509F45CC1C93BD10509F4E7 +:101120005BC1CA3BD10509F45AC100E014E459C1BE +:10113000CE019F700E94A60755C1DD278E01106C5D +:1011400050C100E011ED4DC100E010ED4AC100E0DA +:1011500012ED47C100E013ED44C18091ED038160C1 +:101160008093ED033EC10E94C928811102C00E94F4 +:10117000A5280E94E12890E090931804809317041A +:10118000C23090E5D90721F480911704816086C0B0 +:10119000C43020E5D20721F48091170482607EC01C +:1011A000C63080E5D80721F480911704846076C0AA +:1011B000C83090E5D90719F48091170427C0CA30C8 +:1011C00020E5D20721F480911704806167C0CC30FC +:1011D00080E5D80721F48091170480625FC0CE308B +:1011E00090E5D90721F480911704806457C0C0317D +:1011F00020E5D20721F48091170480684FC0C231E6 +:1012000080E5D80729F4809117048460886046C07F +:10121000C33090E5D90721F4809117048E7F3EC03A +:10122000C53020E5D20721F4809117048D7F36C0A8 +:10123000C73080E5D80721F4809117048B7F2EC03A +:10124000C93090E5D90719F48091170426C0CB3036 +:1012500020E5D20721F4809117048F7E1FC0CD3086 +:1012600080E5D80721F4809117048F7D17C0CF3017 +:1012700090E5D90721F4809117048F7B0FC0C1310D +:1012800020E5D20721F4809117048F7707C0C3317E +:10129000D04531F4809117048B7F877F80931704AA +:1012A000809117040E94E5289CC08D2F99278F708C +:1012B000992781309105D9F49E012370332702C00C +:1012C000880F991F2A95E2F79C688E0144E0000F71 +:1012D000111F4A95E1F700271370802B912B53E0E3 +:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 +:1012F000910531F4DC2FCC278E01016F106A71C08B +:101300008330910569F4CE018370992701E010E0E4 +:1013100002C0000F111F8A95E2F7C8019C680FC038 +:10132000049709F05EC0CE018370992701E010E0B8 +:1013300002C0000F111F8A95E2F7C8019A6823E0E6 +:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 +:101350001D2B47C0DF708E01106243C000E010E01B +:1013600040C08E013EC001E810E43BC003E810E439 +:1013700038C002EE14E435C009EE14E432C00AEEBF +:1013800014E42FC005EB14E42CC006EB14E429C0D0 +:1013900007EB14E426C00CEC14E423C00DEC14E4B9 +:1013A00020C003E815E41DC00AE815E41AC002E9EC +:1013B00015E417C004E915E414C001E216E411C0F5 +:1013C00003E216E40EC004E216E40BC005E216E4E4 +:1013D00008C006E216E405C007E216E402C00AE20D +:1013E00016E4C801DF91CF911F910F9108959CE001 +:1013F000799FF001112490E3899FE00DF11D1124E4 +:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 +:10141000803E9105E0F4803C910558F581339105BB +:1014200009F46FC048F48932910509F463C08A3227 +:10143000910509F46DC072C089339105E9F08238D5 +:101440009105D1F08533910509F44DC067C0833E05 +:10145000910581F138F4803E9105B9F0823E910505 +:10146000D9F05CC0863E910561F1873E9105A1F1FE +:1014700055C00E949E0708952091170420FD02C0C8 +:1014800021FF4CC080EE90E049C08091170480FF9E +:10149000F9CF89E390E042C08091170482FF0EC02B +:1014A0008091170484FF03C080E090E037C083EE92 +:1014B00090E034C08091170482FFF2CF82EE90E07A +:1014C0002DC08091170483FF0BC08091170484FD09 +:1014D000EBCF87EE90E022C08091170483FFF5CF19 +:1014E00086EE90E01BC08091170485FF07C089E25B +:1014F00090E014C08091170485FFF9CF85E390E058 +:101500000DC08091170486FF07C08AE290E006C0F4 +:101510008091170486FFF9CF81E390E00E94AE0727 +:101520000895CF92DF92EF92FF920F931F9301E005 +:1015300010E020E030E06801790104C0CC0CDD1C33 +:10154000EE1CFF1C8A95D2F704C0000F111F221F4A +:10155000331F6A95D2F70C291D292E293F29C090E7 +:10156000D103D090D203E090D303F090D403C022F3 +:10157000D122E222F322842FC016D106E206F3061E +:1015800041F41F910F91FF90EF90DF90CF900C945A +:1015900084251F910F91FF90EF90DF90CF900C94D6 +:1015A000A52508950C94D10A5F926F927F928F9235 +:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 +:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C +:1015D000DEBF0FBECDBFCE0101966C014E0199E07A +:1015E000890E911C20E030E040E050E060E070E0C7 +:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 +:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA +:1016100001900D928A95E1F7F601819191916F0108 +:10162000FC01E07FFF27E032F10559F48F70992724 +:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E +:1016400037C0E033F10559F48F709927F50102C0D6 +:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 +:10166000F10559F48F709927F50102C0EE0FFF1FA5 +:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC +:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 +:101690004E2B5F2B0DC0E036F10551F48F7099276A +:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC +:1016B000C814D90409F0A7CF84B19E2D9095892331 +:1016C00084B985B1E82AE5B887B1902F9095892330 +:1016D00087B988B1082B08B98AB1962F90958923CC +:1016E0008AB98BB1682B6BB98DB1942F90958923F2 +:1016F0008DB98EB1482B4EB980B3922F9095892326 +:1017000080BB81B3282B21BB28960FB6F894DEBF8F +:101710000FBECDBFDF91CF911F910F91FF90EF9042 +:10172000DF90CF90BF90AF909F908F907F906F9001 +:101730005F9008955F926F927F928F929F92AF9287 +:10174000BF92CF92DF92EF92FF920F931F93CF93AE +:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 +:10176000CDBF85B7806885BF85B7806885BF0E947B +:10177000D40ACE0101966C014E0199E1890E911CAB +:1017800020E030E040E050E060E070E000E010E099 +:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA +:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 +:1017B0008A95E1F7F601819191916F01FC01E07F3B +:1017C000FF27E032F10559F48F709927F50102C027 +:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB +:1017E000F10559F48F709927F50102C0EE0FFF1F24 +:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E +:101800008F709927F50102C0EE0FFF1F8A95E2F74E +:101810006E2B7F2B1BC0E035F10559F48F70992793 +:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA +:101830000DC0E036F10551F48F709927F50102C013 +:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 +:1018500009F0A7CF84B19E2D9095892384B985B1D5 +:10186000E82AE5B887B1902F9095892387B988B188 +:10187000082B08B98AB1962F909589238AB98BB124 +:10188000682B6BB98DB1942F909589238DB98EB14A +:10189000482B4EB980B3922F9095892380BB81B39A +:1018A000282B21BB10921D0310921C0310921503CC +:1018B0001092140310921F0310921E03109217032C +:1018C0001092160310922103109220031092190314 +:1018D00010921803109223031092220310921B03FC +:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 +:1018F000DF91CF911F910F91FF90EF90DF90CF90EC +:10190000BF90AF909F908F907F906F905F900C945E +:1019100093077F928F929F92AF92BF92CF92DF9266 +:10192000EF92FF920F931F93CF93DF93CDB7DEB764 +:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 +:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 +:10195000BC2CAD2C01E010E028E1822E35E0932E66 +:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 +:10197000E1F7F601819191916F019C01207F33275E +:101980002032310591F424B18F709927A80102C04B +:10199000440F551F8A95E2F7CA01922F982B94B9EC +:1019A00095B18095892385B953C02033310591F4D1 +:1019B00027B18F709927F80102C0EE0FFF1F8A959B +:1019C000E2F7CF01922F982B97B998B18095892390 +:1019D00088B93EC02034310591F42AB18F7099271F +:1019E000A80102C0440F551F8A95E2F7CA01922F41 +:1019F000982B9AB99BB1809589238BB929C0203542 +:101A0000310591F42DB18F709927F80102C0EE0FC6 +:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 +:101A2000809589238EB914C02036310589F420B3FE +:101A30008F709927A80102C0440F551F8A95E2F7BD +:101A4000CA01922F982B90BB91B38095892381BBBB +:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A +:101A600040E050E0EEEDF2E0DE011196882D0190AD +:101A70000D928A95E1F7FB0181919191BF01FC01E3 +:101A8000E07FFF27E032F10511F4E3B113C0E0334A +:101A9000F10511F4E6B10EC0E034F10511F4E9B13D +:101AA00009C0E035F10511F4ECB104C0E036F105F0 +:101AB000B9F4EFB1F0E08F70992702C0F595E79582 +:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 +:101AD000991F0A94E2F702C080E090E0282B392B8E +:101AE0004F5F5F4F4C30510509F0BCCFF70180814B +:101AF00091818217930721F03183208390927302A2 +:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F +:101B1000F40609F025CF80917302882361F181508A +:101B200080937302882339F08FE99FE00197F1F7E2 +:101B300000C0000020C08091140390911503909381 +:101B40001D0380931C0380911603909117039093BB +:101B50001F0380931E0380911803909119039093A3 +:101B600021038093200380911A0390911B0390938B +:101B70002303809322030E94990781E0A0960FB669 +:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 +:101B9000FF90EF90DF90CF90BF90AF909F908F908D +:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA +:101BB00080819181089508958091020481608093CD +:101BC00002040C94F728809102048E7F8093020413 +:101BD0000C94F7280E94C928811102C00E94A528F0 +:101BE0000E94F328809302043E9A809171008D7FB9 +:101BF0008093710082E0809390008AE1809391004D +:101C000081E080932603089580912603811102C00C +:101C10000E94EA0D10927603109275038091710074 +:101C20008D7F80937100809190008F7780939000DA +:101C3000109238031092370310926F0310927003C2 +:101C4000109271031092720310926E0310926D0342 +:101C5000EDE4F3E0ADE3B3E0119211921192119231 +:101C60001D921D9283E0ED36F807B1F70895CF92EB +:101C7000DF92EF92FF920F931F93CF93DF93209108 +:101C80003703222309F484C06B017C018091260371 +:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A +:101CA000A7019601F80192918291729162918F0140 +:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 +:101CC000FF1FE35BFC4F1082118212821382DE0140 +:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B +:101CE000D105E9F021964481558166817781408351 +:101CF000518362837383148215821682178212962F +:101D00008D919C91139711969C938E9313961C9290 +:101D10001E92129734961296E2CF219708F6809180 +:101D2000750390917603019797FD05C09093760314 +:101D30008093750304C0109276031092750380910E +:101D400075039091760320917303309174032817E3 +:101D5000390724F01092740310927303892BC1F495 +:101D6000809171008D7F80937100809190008F77BA +:101D70008093900010926F03109270031092710381 +:101D80001092720310926E0310926D03109237033B +:101D9000DF91CF911F910F91FF90EF90DF90CF9047 +:101DA00008951F920F920FB60F9211244F925F92D7 +:101DB0006F927F928F929F92AF92BF92CF92DF925B +:101DC000EF92FF922F933F934F935F936F937F9385 +:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 +:101DE00080913703882309F49BC1C0917503D0917A +:101DF00076031C161D060CF093C1409027035090EB +:101E000028036090290370902A0320E030E0A901A4 +:101E1000C301B2010E94902F18160CF065C0C130AA +:101E2000D10509F452C08091730390917403BE01EF +:101E30000E9470317C0190937403809373038090AF +:101E4000390390903A03A0903B03B0903C0320E00C +:101E500030E040E85FE3C501B4010E94DD2D6093EE +:101E6000390370933A0380933B0390933C03F7014B +:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C +:101E800060817181828193810E94452E20E030E043 +:101E900040E05EE30E94942F9B01AC01C501B401B8 +:101EA0000E94902F18168CF4C7010196BE010E9463 +:101EB00070319093740380937303109239031092DE +:101EC0003A0310923B0310923C03E0917303F091AC +:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB +:101EE000718182819381D0C0C0906F03D0907003C4 +:101EF000E0907103F090720320E030E0A901C70187 +:101F0000B6010E94412E2197882309F4A2C0FE0148 +:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 +:101F2000A280B380A5019401C701B6010E94412E91 +:101F300087FF31C0A501940160E070E08CED93EC67 +:101F40000E94452E20E030E040E451E40E94452EFE +:101F500020E030E040E05FE30E94942F9B01AC0161 +:101F600060E070E080E090E40E94F72F9B01AC01FC +:101F7000C501B4010E94942F9B01AC01C701B601B9 +:101F80000E94412E87FF07C0A701960160E070E024 +:101F90008CED93E439C0A5019401C701B6010E94FC +:101FA000902F18160CF055C0A501940160E070E068 +:101FB0008CED93E40E94452E20E030E040E451E4B3 +:101FC0000E94452E20E030E040E05FE30E94942F25 +:101FD0009B01AC0160E070E080E090E40E94F72F8C +:101FE0009B01AC01C501B4010E94942F9B01AC017F +:101FF000C701B6010E94902F18165CF5A701960143 +:1020000060E070E08CED93EC0E94452E20E030E023 +:1020100040E451E40E94452E20E030E040E05FE3E0 +:102020000E94942F9B01AC0160E070E080E090E49E +:102030000E94F72F9B01AC01C701B6010E94942FAB +:1020400060936F0370937003809371039093720396 +:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF +:1020600080819181A281B38180936F0390937003EB +:10207000A0937103B093720360916F03709170032A +:102080008091710390917203209124033091250374 +:102090002F3F4FEF340731F02F5F3F4F3093250331 +:1020A000209324030E94F8126B017C0120E034E2AB +:1020B00044EF51E40E94412E87FF08C086EFC82EEE +:1020C00088E2D82E84EFE82E81E4F82E20E030E07C +:1020D00040E051E4C701B6010E94942F9B01AC017E +:1020E00060E074E284E79BE40E94452E6B017C0172 +:1020F0000E94AD2E70939700609396002091740219 +:10210000309175024091760250917702C701B60175 +:102110000E94942F0E94AD2E7093990060939800B6 +:1021200080913803882309F433C1C0903303D090E1 +:102130003403E0903503F090360320E030E0A9014D +:10214000C701B6010E94902F1816D4F58091240380 +:10215000909125038F3F2FEF920729F001969093DE +:10216000250380932403C701B6010E94F81220E0E2 +:1021700030E040E051E40E94942F9B01AC0160E00C +:1021800074E284E79BE40E94452E6B017C010E946F +:10219000AD2E709397006093960020917402309159 +:1021A00075024091760250917702C701B6010E94F4 +:1021B000942F0E94AD2E709399006093980008C0F0 +:1021C0001092970010929600109299001092980029 +:1021D00060912D0370912E036F5F7F4F70932E03DC +:1021E00060932D03209196003091970080E090E05D +:1021F000232BF1F0C0919600D09197000E94DE2E23 +:102200006B017C01BE0180E090E00E94DE2E9B010C +:10221000AC0160912F037091300380913103909154 +:1022200032030E94452E20E03FEF4FE757E410C0F5 +:102230000E94DE2E6B017C0120E030EE4FEF54E473 +:1022400060912F037091300380913103909132039C +:102250000E94942F9B01AC01C701B6010E94902FF0 +:1022600087FD96C080912B038F5F80932B0390E0B6 +:102270002091FE033091FF0382179307A0F0809115 +:102280000904882319F010922B030DC0809171006E +:102290008D7F80937100809190008F778093900064 +:1022A000109238037DC080912C03C0912B038111C3 +:1022B00028C0C0900304D0900404E0900504F0907E +:1022C000060420E030E0A901C701B6010E94902F6A +:1022D0001816BCF481E080932C0310923303109203 +:1022E00034031092350310923603C0922F03D0921C +:1022F0003003E0923103F0923203C150C0932B03BC +:1023000043C010922C031092250310922403E091F5 +:102310000004F091010448E0C49FE00DF11D112478 +:1023200080819181A281B3818093330390933403A0 +:10233000A0933503B093360320E030E040E85EE33D +:1023400064817581868197810E94942F6B017C0145 +:1023500020E030E048EC52E460917802709179021C +:1023600080917A0290917B020E94452E9B01AC01E4 +:10237000C701B6010E94942F60932F03709330031E +:10238000809331039093320310922E0310922D0309 +:102390008091020480FD04C010923803109237032C +:1023A000FF91EF91DF91CF91BF91AF919F918F916D +:1023B0007F916F915F914F913F912F91FF90EF909F +:1023C000DF90CF90BF90AF909F908F907F906F9055 +:1023D0005F904F900F900FBE0F901F901895CF9267 +:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 +:1023F00080912603811102C00E94EA0D809102049F +:1024000080FF46C0809175039091760308970CF089 +:102410003FC0809171008D7F80937100809138035F +:1024200081110E94040E81E08093370310922503EE +:102430001092240320E030E0A901C701B6010E94F8 +:10244000902F1816DCF48091750390917603FC01AF +:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 +:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D +:10247000C0830196909376038093750380917100D9 +:1024800082608093710080919000806880939000BA +:10249000DF91CF91FF90EF90DF90CF9008958F92D2 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF93EC017B01D42E4801590188 +:1024C00080912603811102C00E94EA0D80910204CE +:1024D00080FF6BC0809171008D7F8093710080912F +:1024E000370381110E94040E81E080933803D0935A +:1024F0000104C0930004F092FF03E092FE03D09227 +:1025000009048092030490920404A0920504B092FE +:1025100006041092390310923A0310923B03109272 +:102520003C0310922B0388819981AA81BB818093FF +:10253000330390933403A0933503B093360320E024 +:1025400030E040E85EE36C817D818E819F810E9456 +:10255000942F6B017C0120E030E048EC52E4609164 +:1025600078027091790280917A0290917B020E94A8 +:10257000452E9B01AC01C701B6010E94942F6093C8 +:102580002F037093300380933103909332031092A2 +:102590002E0310922D038091710082608093710050 +:1025A00080919000806880939000DF91CF911F917F +:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 +:1025C0008F9008958091770390E0019665E070E028 +:1025D0000E9470318093770308958091770390E093 +:1025E000019765E070E00E94703180937703089551 +:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 +:10260000CF93DF936B017C01C0912403D09125030C +:10261000BE0180E090E00E94DE2E4B015C01A7012C +:10262000960160E070E08CE594E40E94452E9B01E9 +:10263000AC01C501B4010E94942F0E94B22E4091BA +:102640007703423009F45CC028F4442351F0413050 +:10265000E9F0FBC0433009F481C0443009F4B4C050 +:10266000F4C080E090E0A0E0BFE380937402909318 +:102670007502A0937602B09377021092270310920E +:1026800028031092290310922A03DFC01092270317 +:10269000109228031092290310922A0364317105C5 +:1026A00040F46A307105E0F520E030E040E85EE398 +:1026B0003BC0693C710508F0C0C080E090E00E941A +:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 +:1026D00030E044E353E40E94452E9B01AC010E948C +:1026E000942F20E030E040E05EE30E94942F9B01B5 +:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 +:1027000010922703109228031092290310922A0393 +:102710006432710578F4FB01EC59FF4F0C9484315D +:1027200020E030E040E05FE3C701B6010E94942F53 +:102730006B017C0180E090E0A0E0BEE38093740236 +:1027400090937502A0937602B09377027EC0A701A2 +:102750009601C701B6010E94DD2DEACF1092270332 +:10276000109228031092290310922A032AE0269F30 +:10277000A001279F500D1124CA0168EB7BE00E9445 +:102780005C31BC016C5D754077FF03C0719561954C +:102790007109882777FD8095982F0E94E02E2EE3FF +:1027A00033EC4EE259E30E94942F20E030E040ECFD +:1027B0005EE30E94DD2D6093740270937502809336 +:1027C00076029093770241C010922703109228035B +:1027D0001092290310922A03CE0183709927892B26 +:1027E000E1F0BE016170772780E090E00E94DE2E6C +:1027F00020E030E040E05EE30E94942F20E030E0F3 +:1028000040E45FE30E94DD2D6093740270937502D3 +:1028100080937602909377020CC080E090E0A0E075 +:10282000BFE38093740290937502A0937602B093F5 +:102830007702C770DD27CD2B41F4109274021092FD +:1028400075021092760210927702C701B601DF91ED +:10285000CF91FF90EF90DF90CF90BF90AF909F907F +:102860008F900895809188030895CF93DF9300D0CF +:102870001F92CDB7DEB79C0180910E04843019F50C +:1028800093E099833B832A839093E9008FEF9091A3 +:10289000E800815095FD06C095ED9A95F1F700008E +:1028A0008111F5CF8091E80085FF0DC040E050E038 +:1028B00063E070E0CE0101960E9496168091E800D8 +:1028C0008E778093E8000F900F900F90DF91CF915B +:1028D0000895CF93DF9300D01F92CDB7DEB720913C +:1028E0000E04243021F522E029839B838A8383E030 +:1028F0008093E9008FEF9091E800815095FD06C02C +:1029000095ED9A95F1F700008111F5CF8091E800DF +:1029100085FF0DC040E050E063E070E0CE0101961D +:102920000E9496168091E8008E778093E8000F90C1 +:102930000F900F90DF91CF91089520910E042430D5 +:10294000F1F422E02093E9002FEF3091E8002150CC +:1029500035FD06C035ED3A95F1F700002111F5CFB0 +:102960002091E80025FF0BC040E050E065E070E0FA +:102970000E9496168091E8008E778093E800089573 +:10298000CF93DF93EC0190910E04943009F046C090 +:10299000809186028823D9F0809187028823B9F03C +:1029A0009093E9008FEF9091E800815095FD06C06B +:1029B00095E19A95F1F700008111F5CF8091E8003B +:1029C00085FF2CC040E050E060E170E017C081E07E +:1029D0008093E9008FEF9091E800815095FD06C04B +:1029E00095ED9A95F1F700008111F5CF8091E800FF +:1029F00085FF14C040E050E068E070E0CE010E9426 +:102A000096168091E8008E778093E80080E1FE01C1 +:102A1000A8E7B3E001900D928A95E1F7DF91CF919D +:102A2000089580910D04811109C00E942B180E9405 +:102A300088188091E20084608093E20008951092EB +:102A40000D040895089508950C94D02742E061EC98 +:102A500081E00E94A51742E061EC82E00E94A51788 +:102A600042E061EC83E00E94A51742E161EC84E062 +:102A70000C94A51780911004833009F455C030F4EC +:102A8000813071F0823009F48EC008958A3009F4E3 +:102A90007AC08B3009F460C0893009F09CC020C036 +:102AA00080910F04813A09F096C08091E800877FF9 +:102AB0008093E8008091130490911404892B21F4F1 +:102AC00060E188E793E003C060E080E090E070E0C0 +:102AD0000E94E1168091E8008B778093E8000895CA +:102AE00080910F04813209F076C080911304909197 +:102AF0001404009719F0039709F06DC08091E80065 +:102B0000877F8093E8008091E80082FD05C0809176 +:102B10000E048111F8CF5FC08091F100809388038B +:102B20008091E8008B7753C080910F04813A09F0BF +:102B300052C08091130490911404892B09F04BC06A +:102B40008091E800877F8093E8008091E80080FF13 +:102B5000FCCF8091860236C080910F048132D9F576 +:102B60008091130490911404892BA9F58091E800B9 +:102B7000877F8093E8000E94DA1780911104809388 +:102B800086020C944B2180910F04813221F58091B3 +:102B9000E800877F8093E8000E94DA178091120492 +:102BA00080938903089580910F04813AA1F4809164 +:102BB000E800877F8093E8008091E80080FFFCCFE9 +:102BC000809189038093F1008091E8008E77809353 +:102BD000E8000C94DA17089584B7877F84BF88E1F2 +:102BE0000FB6F89480936000109260000FBE90E0E2 +:102BF00080E80FB6F89480936100909361000FBE57 +:102C00000E947D1B0E942B180E9488188091E20070 +:102C100084608093E20078940E940E1B0E947F1BC8 +:102C20008CE792E00E94291B80910E04853069F4A4 +:102C30000E948A2780910C048823B1F30E94B82750 +:102C4000882391F30E948016EFCF0E94871BECCF60 +:102C5000292F332723303105C9F064F421303105A1 +:102C600081F02230310509F043C08DE690E022E882 +:102C700038E042C021323105F1F02232310541F114 +:102C800037C082E190E02FEE38E036C099278130DE +:102C9000910541F08230910541F0892B49F5EEE72D +:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 +:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 +:102CC000FF1FEE5FFC4F2081318189E090E014C04E +:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 +:102CE00020813181FB01EA50FD4F808190E004C0DA +:102CF00080E090E020E030E0FA0131832083089505 +:102D000080E189BD82E189BD09B400FEFDCF8091DB +:102D1000D8008F7D8093D8008091E00082608093FE +:102D2000E0008091E00081FDFCCF0895CF92DF921A +:102D3000EF92FF920F931F93CF93DF93EC018B01E0 +:102D40006A010E94F917811133C0C114D10439F00E +:102D5000F60180819181081B190BC80FD91FE12C46 +:102D6000F12C0115110519F18091E80085FD16C0BF +:102D70008091E8008E778093E800C114D10449F077 +:102D8000F60180819181E80EF91EF182E08285E0F2 +:102D90000FC00E94F917882321F30AC089918093FC +:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE +:102DB000DF91CF911F910F91FF90EF90DF90CF9017 +:102DC000089520911504309116042617370748F00E +:102DD0006115710539F42091E8002E772093E80001 +:102DE00001C0B90140E061157105A9F120910E04FF +:102DF000222309F443C0253009F442C02091E800A1 +:102E000023FD40C02091E80022FD32C02091E8005F +:102E100020FFE9CF4091F3002091F20030E0342B05 +:102E2000FC01CF016115710559F02830310540F4DE +:102E300081918093F100615071092F5F3F4FF1CF75 +:102E400041E02830310509F040E02091E8002E777C +:102E50002093E800C8CF4111C9CF0AC080910E0469 +:102E6000882361F0853061F08091E80083FD0AC01D +:102E70008091E80082FFF2CF80E0089582E008951B +:102E800083E0089581E0089520911504309116049F +:102E90002617370748F06115710539F42091E800CD +:102EA0002E772093E80001C0B901FC0120E06115F4 +:102EB000710591F180910E04882309F440C085309A +:102EC00009F43FC08091E80083FD3DC08091E80097 +:102ED00082FD2FC08091E80080FFE9CF2091F300B0 +:102EE0008091F20090E0922B6115710559F08830C5 +:102EF000910540F424912093F100319661507109BD +:102F00000196F2CF21E0089709F020E08091E800D7 +:102F10008E778093E800CBCF2111CCCF0AC080916F +:102F20000E04882361F0853061F08091E80083FD14 +:102F30000AC08091E80082FFF2CF80E0089582E02D +:102F4000089583E0089581E00895982F973058F50B +:102F50009093E900981739F07091EC002091ED0002 +:102F60005091F00003C0242F762F50E021FF19C0AC +:102F70003091EB003E7F3093EB003091ED003D7FD0 +:102F80003093ED003091EB0031603093EB007093A3 +:102F9000EC002093ED005093F0002091EE0027FF0D +:102FA00007C09F5FD3CF8F708093E90081E00895C1 +:102FB00080E0089580910F0487FF11C08091E800A0 +:102FC00082FD05C080910E048111F8CF11C080915F +:102FD000E8008B770BC080910E04882349F0809124 +:102FE000E80080FFF8CF8091E8008E778093E800BA +:102FF00008952091E4003091E50095E64091EC00C1 +:10300000842F817040FF22C08091E80080FD1CC0A9 +:1030100080910E04882391F0853091F08091EB002F +:1030200085FD10C04091E4005091E5004217530720 +:1030300029F39A01915011F784E0089582E00895F0 +:1030400083E0089581E0089580E008954091E800CC +:1030500042FFDECF08950E9499180E94A118E0EE69 +:10306000F0E0808181608083E8EDF0E080818F77FF +:10307000808319BCA7EDB0E08C918E7F8C9380810A +:103080008F7E808310920D0408950F931F93CF932A +:10309000DF930E9499180E94A118C8EDD0E08881A2 +:1030A0008F77888388818068888388818F7D8883F3 +:1030B00019BC10920E0410920A0410920C04109283 +:1030C0000B0400EE10E0F80180818B7F8083888103 +:1030D0008160888342E060E080E00E94A517E1EE15 +:1030E000F0E080818E7F8083E2EEF0E0808181607D +:1030F0008083808188608083F80180818E7F8083D7 +:10310000888180618883DF91CF911F910F9108950D +:10311000E8EDF0E080818F7E8083E7EDF0E0808154 +:103120008160808384E082BF81E080930D040C94F1 +:103130004518E8EDF0E080818E7F80831092E200F8 +:1031400008951092DA001092E10008951F920F92F4 +:103150000FB60F9211242F933F934F935F936F936A +:103160007F938F939F93AF93BF93EF93FF93809140 +:10317000E10082FF0BC08091E20082FF07C08091D6 +:10318000E1008B7F8093E1000E940D1B8091DA00AB +:1031900080FF1FC08091D80080FF1BC08091DA00A3 +:1031A0008E7F8093DA008091D90080FF0DC080E18E +:1031B00089BD82E189BD09B400FEFDCF81E0809325 +:1031C0000E040E94111505C019BC10920E040E9435 +:1031D0001F158091E10080FF19C08091E20080FFFF +:1031E00015C08091E2008E7F8093E2008091E20022 +:1031F00080618093E2008091D80080628093D80043 +:1032000019BC85E080930E040E9423158091E10093 +:1032100084FF30C08091E20084FF2CC080E189BD32 +:1032200082E189BD09B400FEFDCF8091D8008F7D79 +:103230008093D8008091E1008F7E8093E10080919F +:10324000E2008F7E8093E2008091E20081608093B3 +:10325000E20080910A04882311F084E007C0809185 +:10326000E30087FD02C081E001C083E080930E048B +:103270000E9424158091E10083FF29C08091E20023 +:1032800083FF25C08091E100877F8093E10082E089 +:1032900080930E0410920A048091E1008E7F809347 +:1032A000E1008091E2008E7F8093E2008091E20055 +:1032B00080618093E20042E060E080E00E94A51718 +:1032C0008091F00088608093F0000E942215FF91A9 +:1032D000EF91BF91AF919F918F917F916F915F918E +:1032E0004F913F912F910F900FBE0F901F90189507 +:1032F0001F920F920FB60F9211242F933F934F936B +:103300005F936F937F938F939F93AF93BF93CF936D +:10331000DF93EF93FF93C091E900CF708091EC00B1 +:10332000D82FD17080FDD0E81092E9008091F00094 +:10333000877F8093F00078940E94BC191092E90076 +:103340008091F00088608093F000CD2BCF70C09307 +:10335000E900FF91EF91DF91CF91BF91AF919F91E4 +:103360008F917F916F915F914F913F912F910F902E +:103370000FBE0F901F9018951F93CF93DF93CDB77B +:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 +:10339000F4E088E08E0F9091F10091938E13FBCFB3 +:1033A0000E943A158091E80083FF1FC180910F04AD +:1033B00090911004492F50E04A30510508F015C192 +:1033C000FA01E857FF4F0C948431803881F082383D +:1033D00009F00BC1809113048F708093E9008091F4 +:1033E000EB0085FB882780F91092E90006C08091E8 +:1033F0000B0490910C04911182609091E800977FEA +:103400009093E8008093F1001092F100C8C0282F3B +:103410002D7F09F0EAC0882319F0823061F0E5C001 +:1034200080911104813009F0E0C0933009F080E010 +:1034300080930C042BC080911104811127C08091CE +:1034400013048F7009F4D1C08093E9002091EB0040 +:1034500020FF1CC0933021F48091EB00806214C0E7 +:103460009091EB0090619093EB0021E030E0A90196 +:1034700002C0440F551F8A95E2F74093EA0010926C +:10348000EA008091EB0088608093EB001092E900E5 +:103490008091E800877F86C08111A7C01091110438 +:1034A0001F778091E3008078812B8093E3008091E7 +:1034B000E800877F8093E8000E94DA178091E80097 +:1034C00080FFFCCF8091E30080688093E3001111BE +:1034D00002C082E001C083E080930E0486C0805861 +:1034E000823008F082C080911104909112048C3DCA +:1034F00053E0950779F583E08A838AE289834FB7A1 +:10350000F894DE01139620E03EE051E2E32FF0E074 +:1035100050935700E49120FF03C0E295EF703F5FA6 +:10352000EF708E2F90E0EA3010F0C79601C0C09681 +:103530008D939D932F5F243149F74FBF8091E80011 +:10354000877F8093E8006AE270E0CE0101960E94D6 +:10355000E11614C0AE014F5F5F4F609113040E94EB +:103560002816BC01009709F440C09091E800977FAD +:103570009093E80089819A810E9444178091E80025 +:103580008B778093E80031C0803879F58091E8002E +:10359000877F8093E80080910A048093F1008091F6 +:1035A000E8008E778093E8000E94DA171EC0811130 +:1035B0001CC0909111049230C0F48091E800877F84 +:1035C0008093E80090930A040E94DA1780910A041D +:1035D000811106C08091E30087FD02C081E001C037 +:1035E00084E080930E040E9426158091E80083FFFA +:1035F0000AC08091E800877F8093E8008091EB000B +:1036000080628093EB00AA960FB6F894DEBF0FBEDF +:10361000CDBFDF91CF911F9108950895CF938091F1 +:103620000E048823A1F0C091E900CF709091EC00C6 +:10363000892F817090FD80E8C82B1092E90080915D +:10364000E80083FD0E94BC19CF70C093E900CF91C0 +:10365000089590938F0380938E030895E0918E03D5 +:10366000F0918F03309721F00190F081E02D0994C3 +:1036700080E00895E0918E03F0918F03309721F060 +:103680000280F381E02D09940895E0918E03F0917A +:103690008F03309721F00480F581E02D099408957F +:1036A00020918C0330918D038217930771F09093D2 +:1036B0008D0380938C03E0918E03F0918F033097FC +:1036C00021F00680F781E02D0994089520918A0366 +:1036D00030918B038217930771F090938B03809343 +:1036E0008A03E0918E03F0918F03309721F00084DC +:1036F000F185E02D0994089508950C947C1B0E9497 +:1037000004280E949A0B0E948A280C94452D4F92FF +:103710005F927F928F929F92AF92BF92CF92DF92F1 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:103730002A970FB6F894DEBF0FBECDBF0E94890C4A +:1037400091E9C92E93E0D92E00E010E0AA24A394B9 +:10375000B12C702E802F0E94D20D4C01F6014190A9 +:1037600051906F014826592641145104B1F40F5F5E +:103770001F4F0430110569F78FEF89838A831B82FD +:103780000E940D288160782F9D838C8349815A8106 +:103790006B818D810E94401C3AC08091ED0381FDB8 +:1037A0000E94DB0D20E030E07501022E02C0EE0C1D +:1037B000FF1C0A94E2F7C70184219521892B09F1A6 +:1037C0002E837F828E209F2091E0892809F490E04B +:1037D00098870E940D288160782F9A8789874E816B +:1037E0005F8168858A850E94401C000F111FF801C7 +:1037F000EF56FC4F80819181E826F926F182E08224 +:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC +:10381000762A109190030E942E1B1817D9F00E944F +:103820002E1B809390032A960FB6F894DEBF0FBE2E +:10383000CDBFDF91CF911F910F91FF90EF90DF905F +:10384000CF90BF90AF909F908F907F905F904F9060 +:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 +:10386000DF91CF911F910F91FF90EF90DF90CF905C +:10387000BF90AF909F908F907F905F904F900895F2 +:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B +:103890000FBECDBF4F83588769877A878B87DE013C +:1038A000119686E0FD0111928A95E9F785E0FE0107 +:1038B000379601900D928A95E1F749815A816B8183 +:1038C0007C818D819E810E94E5232B960FB6F89412 +:1038D000DEBF0FBECDBFDF91CF910895CF93882378 +:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 +:1038F000BBC089E30E948E260E945B2789E30CC02F +:10390000833879F40E942E1B80FDAEC083E50E94AF +:103910008E260E945B2783E50E94D026CF910C94CF +:103920005B27843859F40E942E1B82FD9DC087E4DA +:103930000E948E260E945B2787E4EECF8CEF8C0FCF +:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 +:103950000E948E26E3CF80E28C0F883048F4C77037 +:1039600081E001C0880FCA95EAF70E941427D6CFDC +:103970008BE58C0F833078F4C53A29F0C63A31F0E4 +:1039800083E890E005C081E890E002C082E890E022 +:10399000CF910C94501B88E58C0F833108F064C0E4 +:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 +:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F +:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F +:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D +:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 +:1039F00038C082EE90E035C089EE90E032C08AEEA9 +:103A000090E02FC085EB90E02CC086EB90E029C0C1 +:103A100087EB90E026C08CEC90E023C08DEC90E02A +:103A200020C083E891E01DC08AE891E01AC082E9D5 +:103A300091E017C084E991E014C081E292E011C0E6 +:103A400083E292E00EC084E292E00BC085E292E055 +:103A500008C086E292E005C087E292E002C08AE2F6 +:103A600092E0CF910C94661BCF910895882309F4BE +:103A70004BC0823859F40E942E1B81FF45C089E358 +:103A80000E948E260E945B2789E30CC0833871F464 +:103A90000E942E1B80FF38C083E50E948E260E9464 +:103AA0005B2783E50E94D0260C945B27843859F469 +:103AB0000E942E1B82FF28C087E40E948E260E944F +:103AC0005B2787E4EFCF9CEF980F913A58F390E291 +:103AD000980F983050F4877091E001C0990F8A9543 +:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 +:103AF00020F480E090E00C94501B885A833120F42D +:103B000080E090E00C94661B0895882321F00E94C9 +:103B100014270C945B270895882321F00E941A270C +:103B20000C945B270895BF92CF92DF92EF92FF92A1 +:103B30000F931F93CF93DF9300D000D000D0CDB769 +:103B4000DEB725E0FC01DE01119601900D922A9569 +:103B5000E1F7FC01D08011810281258122952F702F +:103B600043815481452B09F472C31F3F21F4FFEFB9 +:103B7000DF1609F46CC37C012E830E949B07D98257 +:103B80001A8369817A81802F0E948A26182FB92E84 +:103B90000E943F260E9406252E81002319F00E94D4 +:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE +:103BB0000C9484318B2D807F9B2D9F70F92E882350 +:103BC00019F0F29480EFF822002389F0FF2009F425 +:103BD0007CC280E2810F883020F48F2D0E94142750 +:103BE00003C08F2D0E9424270E945B276EC2812F65 +:103BF0000E94361DFF2009F42AC3105E8F2D183055 +:103C000018F40E941A2702C00E942A2726960FB68F +:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 +:103C2000FF90EF90DF90CF90BF900C945B278B2D8F +:103C3000807F9B2D9F70803211F4892F03C0892FC4 +:103C40008295807F112319F0113011F12BC00023D0 +:103C5000A9F0222389F1213079F526960FB6F89440 +:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF +:103C7000EF90DF90CF90BF900C944427222319F04F +:103C8000213009F4E4C28E830E9447278E819BC1B4 +:103C9000002321F0263008F0DAC20EC0253008F0EB +:103CA000D6C291C10023C9F0222331F0F7019581DA +:103CB00090FF0BC29F70958326960FB6F894DEBFD7 +:103CC0000FBECDBFDF91CF911F910F91FF90EF906D +:103CD000DF90CF90BF900C94851D222309F473C10F +:103CE00009C22B2D26952695237030E0211531052C +:103CF00021F021303105D1F0AAC2002321F0812F1B +:103D00009B2D937002C080E090E026960FB6F89449 +:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE +:103D2000EF90DF90CF90BF900C94501B002321F0B8 +:103D3000812F9B2D937002C080E090E026960FB6F5 +:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 +:103D5000FF90EF90DF90CF90BF900C94661B812F67 +:103D6000002319F00E947E2902C00E94E6292696AF +:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C +:103D80000F91FF90EF90DF90CF90BF900C946B2A33 +:103D90008B2D837009F07BC0011159C2812F829550 +:103DA00086958770880F880F912F9F70C92ED12C10 +:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 +:103DC0000A94D2F714FF12C04FE050E060E070E0B8 +:103DD00004C0440F551F661F771F8A95D2F7CB0189 +:103DE000BA01609570958095909503C060E070E091 +:103DF000CB012B2D269526952370422F50E0423083 +:103E00005105D9F04330510569F16C297D298E297E +:103E10009F294130510551F126960FB6F894DEBF27 +:103E20000FBECDBFDF91CF911F910F91FF90EF900B +:103E3000DF90CF90BF900C942D256C297D298E2981 +:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 +:103E5000CF911F910F91FF90EF90DF90CF90BF9087 +:103E60000C9449250E942D25C701B60126960FB650 +:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 +:103E8000FF90EF90DF90CF90BF900C94112500230E +:103E900019F08B2D817001C08695882309F4D7C154 +:103EA000812F829586958770880F880F912F9F703C +:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 +:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 +:103ED00060E070E004C0440F551F661F771F8A958D +:103EE000D2F7CB01BA01609570958095909503C08B +:103EF00060E070E0CB012B2D269526952370422F94 +:103F000050E042305105D9F04330510569F16C2938 +:103F10007D298E299F294130510551F126960FB6F2 +:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF +:103F3000FF90EF90DF90CF90BF900C9407266C29F4 +:103F40007D298E299F2926960FB6F894DEBF0FBED5 +:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 +:103F6000CF90BF900C9423260E940726C701B6016C +:103F700026960FB6F894DEBF0FBECDBFDF91CF916E +:103F80001F910F91FF90EF90DF90CF90BF900C9416 +:103F9000EB25103F49F118F4103E48F491C0123F50 +:103FA00009F453C0E8F1133F09F464C089C01F70DD +:103FB0008B2D8F71002321F00E948425812F7CCED0 +:103FC0000E94A525812F26960FB6F894DEBF0FBE5E +:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 +:103FE000CF90BF900C948C1D0023B1F0253008F0C9 +:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 +:10400000CDBFDF91CF911F910F91FF90EF90DF9087 +:10401000CF90BF900C94CA25263008F018C1E9CF84 +:104020000023A9F08B2D8F7126960FB6F894DEBF72 +:104030000FBECDBFDF91CF911F910F91FF90EF90F9 +:10404000DF90CF90BF900C948425002359F38B2DE3 +:104050008F7126960FB6F894DEBF0FBECDBFDF91ED +:10406000CF911F910F91FF90EF90DF90CF90BF9075 +:104070000C94A525002399F08B2D8F7126960FB6F1 +:10408000F894DEBF0FBECDBFDF91CF911F910F918E +:10409000FF90EF90DF90CF90BF900C946F25269605 +:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1040B0000F91FF90EF90DF90CF90BF900C9465250B +:1040C0000023A9F0222309F4ADCF812F26960FB645 +:1040D000F894DEBF0FBECDBFDF91CF911F910F913E +:1040E000FF90EF90DF90CF90BF900C946E1C222336 +:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 +:10410000CDBFDF91CF911F910F91FF90EF90DF9086 +:10411000CF90BF900C94361D4B2D4F70612FC7016F +:104120000E948D0526960FB6F894DEBF0FBECDBF58 +:10413000DF91CF911F910F91FF90EF90DF90CF9083 +:10414000BF900C948924011182C09B2D9F70492F30 +:1041500050E04230510509F443C0C4F44115510503 +:1041600071F14130510509F072C026960FB6F894EE +:10417000DEBF0FBECDBFDF91CF911F910F91FF909A +:10418000EF90DF90CF90BF900C946D2D4330510590 +:10419000C1F14430510509F05AC0812F26960FB65F +:1041A000F894DEBF0FBECDBFDF91CF911F910F916D +:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC +:1041F0001F910F91FF90EF90DF90CF90BF900C94A4 +:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10421000CF911F910F91FF90EF90DF90CF90BF90C3 +:104220000C949C2D4B2D4F70612FC70126960FB615 +:10423000F894DEBF0FBECDBFDF91CF911F910F91DC +:10424000FF90EF90DF90CF90BF900C949D07269643 +:104250000FB6F894DEBF0FBECDBFDF91CF911F9197 +:104260000F91FF90EF90DF90CF90BF9008950E9444 +:1042700031270E9441270E9406270E945B270E9447 +:104280001C2B0E946B2A80E090E00E94501B80E073 +:1042900090E00C94661B0E9421270C9437210E9409 +:1042A0007F26292F22952F7030E02C3031054CF4D9 +:1042B0002A3031056CF4225031092230310588F45E +:1042C00007C02C30310549F02F30310531F009C0DD +:1042D000803E48F0803F29F406C093FB882780F990 +:1042E000089580E0089581E00895CF93DF9300D092 +:1042F00000D01F92CDB7DEB70F900F900F900F90A8 +:104300000F90DF91CF910895CF93DF9300D000D02D +:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D +:10432000CDBFDF91CF9108951F93CF93DF93C091BD +:10433000990316E080919A03C81799F0D0E01C9F6A +:10434000F0011D9FF00D1124E556FC4F4081518175 +:1043500062817381848195810E9484212196C77036 +:10436000E9CFDF91CF911F9108954091CB035091F8 +:10437000CC036091CD037091CE038091CF039091D7 +:10438000D0030C9484218091D00382958F7009F022 +:1043900054C08091CD03882309F44FC080919903C4 +:1043A000A0919A036091CB037091CC034091CE030E +:1043B0005091CF03B6E08A1709F43FC090E0411551 +:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A +:1043D000B99FF00D1124E556FC4F218172132AC0BC +:1043E0002081621327C02281211124C023813481BE +:1043F0002417350710F421503109241B350B283CB4 +:104400003105C0F42091D0032F7020612093D00398 +:1044100026E0289FF001299FF00D1124E056FC4F63 +:1044200080818F70806180838BEC93E00E94931D6C +:104430000C94942101968770BECF0895CF92DF929D +:10444000EF92FF920F931F93CF93DF93CDB7DEB719 +:1044500062970FB6F894DEBF0FBECDBF8C0185E02A +:10446000F801DE011D9601900D928A95E1F7D801C1 +:104470004C9111965C91119712966C91129713962C +:10448000CD90DC9014973091CB037091CC03809148 +:10449000CE039091CF03009709F46BC17F3F19F4CD +:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F +:1044B0002091D003C816D90628F0F601E81BF90BA5 +:1044C000CF0104C0809590958C0D9D1DFF24F39421 +:1044D000883C910578F0F12C207F09F0C6C07C2D36 +:1044E000D98AC88A89890E9475218BEC93E00E9441 +:1044F000931DB1C0822F807F09F046C0751314C090 +:10450000341312C0611110C02F7020612093D003AA +:104510000E94B5218BEC93E00E94931D8091D00303 +:10452000D80115968C932EC0CD2819F15F3F11F458 +:104530004F3FF9F0F62E61111CC080919903209134 +:104540009A0336E0821709F45AC090E0389FF001D0 +:10455000399FF00D1124E556FC4F7181571306C0A9 +:104560007081471303C07281711103C00196877077 +:10457000E9CFF62E662309F418C18091D00381603B +:104580008093D003F12C11C1751308C0341306C0F9 +:10459000611104C08091D003D801C3C04D875E87EC +:1045A0008D859E856A8B0E944F216A898823E1F15F +:1045B0006623D1F12091D003822F82958F7090E0F5 +:1045C000029774F08091CB039091CC0398878F83EE +:1045D0001986DB86CA862C87CE0107960E94931D1A +:1045E00086E0F801ABECB3E001900D928A95E1F71B +:1045F0000E94C3210E94B521FF24F394D6C04D87A9 +:104600005E878D859E850E947F26292F22952F709B +:1046100030E0223031050CF0BCC09F7009F0B6C00C +:10462000805E883008F4C1C0C8010E94931DE4CFA9 +:10463000C816D90608F453C0F601E81BF90BCF01E0 +:10464000883C910508F450C0F12C7C2DD98AC88A89 +:1046500089890E947521EBECF3E086E0DF011D9271 +:104660008A95E9F70E94B521A0C0751314C03413D0 +:1046700012C0611110C08091D003F8018583C80178 +:104680000E94931D86E0EBECF3E0DF011D928A951A +:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 +:1046A0000E944F216A89882309F4BECF662309F44A +:1046B000BBCF2091D003822F82958F7090E002971C +:1046C0000CF48ECF8091CB039091CC039A83898395 +:1046D0001B82DD82CC822E83CE0101967FCF809516 +:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 +:1046F00075132EC034132CC02091D00320FD1FC091 +:10470000822F82958F70D9F0D80115962C9315972A +:104710008F3049F08F5F982F9295907F822F8F7006 +:10472000892B15968C93C8010E94931D86E0F80191 +:10473000ABECB3E001900D928A95E1F793CF86E060 +:10474000F801ABECB3E001900D928A95E1F72DC032 +:104750004D875E878D859E850E944F21811140CFB8 +:104760008091D00381608093D003C8010E94931D83 +:104770001CC0662309F458CF4D875E878D859E85C2 +:104780000E944F21882309F44FCF2ACF811148CFAF +:104790000CC0243031050CF047CF9F7009F440CF96 +:1047A000F8019581907F09F03BCF8F2D62960FB66F +:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 +:1047C000FF90EF90DF90CF9008951F93CF93DF93EA +:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 +:1047E0004F83588769877A878B879C87CE01079686 +:1047F0000E941E22882369F08F8198852A853B8537 +:10480000232BF1F19F3F09F063C08F3F09F060C097 +:1048100037C086E0FE013796DE01119601900D92B9 +:104820008A95E1F76F817885EA85FB85309741F1BC +:104830007F3F11F46F3F21F120919A0330E0C901CD +:104840000196877099274091990350E08417950746 +:1048500009F447C069837A83FD83EC8396E0929FD5 +:10486000D001939FB00D1124A556BC4FFE01319687 +:1048700001900D929A95E1F780939A030E949421FA +:1048800016E08091990390919A038917C1F1189FBE +:10489000C001112485569C4F0E941E22882379F165 +:1048A000E09199031E9FF0011124E556FC4F4081D1 +:1048B000518162817381848195810E9484218091DC +:1048C000990390E001968770992780939903D9CF37 +:1048D0004F81588569857A858B859C850E948421C6 +:1048E000CFCF0E944B2110929A0310929903EBECC8 +:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F +:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 +:104910000895EF92FF920F931F93CF93DF938C0133 +:10492000009709F46CC0F12CEE24E394E801219681 +:10493000F8018491843740F4843008F051C081300C +:1049400081F0823019F15BC0853709F444C0A8F1C9 +:104950009CE7980F903708F052C08F770E94361D61 +:1049600041C00E5F1F4FFE01C49180E28C0F883062 +:1049700048F4C7708E2D01C0880FCA95EAF70E94CF +:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 +:10499000FE01C49180E28C0F883058F4C7708E2DD0 +:1049A00001C0880FCA95EAF70E943A270E945B2748 +:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD +:1049C000C491CC2381F08FE99FE00197F1F700C0FB +:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 +:1049E0000E946E1C8E018F2D882309F49FCFEFE962 +:1049F000FFE03197F1F700C000008150F5CFDF9163 +:104A0000CF911F910F91FF90EF90089508956093BB +:104A1000D5037093D6038093D7039093D8030C9457 +:104A200037210F931F930091D5031091D603209146 +:104A3000D7033091D803DC01CB01802B912BA22B23 +:104A4000B32B8093D5039093D603A093D703B09351 +:104A5000D8031F910F910C9437210F931F9300914E +:104A6000D5031091D6032091D7033091D803DC01F0 +:104A7000CB0180239123A223B3238093D50390936A +:104A8000D603A093D703B093D8031F910F910C9432 +:104A900037210F931F930091D5031091D6032091D6 +:104AA000D7033091D803DC01CB0180279127A227BF +:104AB000B3278093D5039093D603A093D703B093E5 +:104AC000D8031F910F910C9437211092D1031092AB +:104AD000D2031092D3031092D4030C94372141E0F7 +:104AE00050E060E070E004C0440F551F661F771F60 +:104AF0008A95D2F74093D1035093D2036093D303A6 +:104B00007093D4030C94372141E050E060E070E0F2 +:104B100004C0440F551F661F771F8A95D2F78091F6 +:104B2000D1039091D203A091D303B091D403482B29 +:104B3000592B6A2B7B2B4093D1035093D203609364 +:104B4000D3037093D4030C94372141E050E060E02C +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B600040955095609570958091D1039091D203B6 +:104B7000A091D303B091D403482359236A237B2304 +:104B80004093D1035093D2036093D3037093D40323 +:104B90000C94372141E050E060E070E004C0440F25 +:104BA000551F661F771F8A95D2F78091D103909188 +:104BB000D203A091D303B091D403482759276A2781 +:104BC0007B274093D1035093D2036093D303709318 +:104BD000D4030C9437210F931F930091D1031091AC +:104BE000D2032091D3033091D403DC01CB01802B7D +:104BF000912BA22BB32B8093D1039093D203A0933C +:104C0000D303B093D4031F910F910C9437210F93CA +:104C10001F930091D1031091D2032091D3033091BF +:104C2000D403DC01CB0180239123A223B3238093FF +:104C3000D1039093D203A093D303B093D4031F91D5 +:104C40000F910C9437210F931F930091D103109172 +:104C5000D2032091D3033091D403DC01CB01802710 +:104C60009127A227B3278093D1039093D203A093D7 +:104C7000D303B093D4031F910F910C94372108955F +:104C8000CF92DF92EF92FF920F931F93CF93DF9318 +:104C90008C01C090D503D090D603E090D703F0905C +:104CA000D8038091D1039091D203A091D303B09106 +:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 +:104CC000C6010C2E04C0B695A795979587950A94B2 +:104CD000D2F780FF06C0B8018C2F0E94F709019718 +:104CE00021F4219760F780E001C08C2FDF91CF91F4 +:104CF0001F910F91FF90EF90DF90CF900895CF9389 +:104D0000DF93EC010E944026BE010E94F709DF916B +:104D1000CF910895CB010E947F260895909186023D +:104D2000992321F090918702911109C02091880266 +:104D300030918902F90132969FEF40E01FC0982F11 +:104D40009695969596959F3050F5E0918802F09152 +:104D50008902E90FF11D877021E030E0A90102C04E +:104D6000440F551F8A95E2F7CA019181892B8183EF +:104D700008959F3F39F04F5F4E3041F051915813E5 +:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 +:104D9000F901E90FF11D97FDFA95828308950895B1 +:104DA00090918602992321F090918702911109C078 +:104DB0002091880230918902F9013296205F3F4F9D +:104DC0001FC0982F9695969596959F30F0F4E09198 +:104DD0008802F0918902E90FF11D877021E030E02F +:104DE000A90102C0440F551F8A95E2F7CA018095B8 +:104DF00091818923818308953196E217F30729F081 +:104E000090819813F9CF1082F7CF089581E090E058 +:104E1000E0918802F0918902E80FF91F1082019653 +:104E200080319105A9F708959091EC03892B809327 +:104E3000EC03089580959091EC0389238093EC0313 +:104E400008951092EC0308959091EB03892B8093C1 +:104E5000EB03089580959091EB0389238093EB03F6 +:104E600008951092EB0308959091EA03892B8093A3 +:104E7000EA03089580959091EA0389238093EA03D9 +:104E800008951092EA0308958093D903089510922B +:104E9000D90308958091880290918902FC0131968E +:104EA0009C01205F3F4F80E0919191118F5FE2174D +:104EB000F307D1F70895E0918802F091890280917B +:104EC000EC038083E0918802F091890290818091C7 +:104ED000EB03892B8083E0918802F0918902908115 +:104EE0008091EA03892B80838091D903882361F024 +:104EF000E0918802F09189029081892B80830E9441 +:104F00004A2781111092D9038091880290918902D9 +:104F10000C943A1B80910E04843039F11092EE0308 +:104F200020E488E190E00FB6F894A89580936000A3 +:104F30000FBE2093600080E00E94540580E00E9434 +:104F4000D20A83B7817F846083BF83B7816083BFC8 +:104F50007894889583B78E7F83BF88E10FB6F894E5 +:104F600080936000109260000FBE08950895089528 +:104F7000CF9380E00E9454050E94B6270E94890CBE +:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 +:104F9000CF5FC430C1F780E001C081E0CF910895B8 +:104FA0000E944B2180E00E9454050E94452D0E94E2 +:104FB0002E1B0C94D20A1F920F920FB60F9211243F +:104FC0008F939F93AF93BF938091EE03811113C092 +:104FD0008091EF039091F003A091F103B091F2035F +:104FE0004196A11DB11D8093EF039093F003A09310 +:104FF000F103B093F203BF91AF919F918F910F9006 +:105000000FBE0F901F90189582E084BD93E095BD70 +:105010009AEF97BD80936E0008952FB7F894809112 +:10502000EF039091F003A091F103B091F2032FBF31 +:105030000895CF92DF92EF92FF920F931F932FB7B5 +:10504000F8944091EF035091F0036091F103709157 +:10505000F2032FBF6A017B01EE24FF248C0120E0C4 +:1050600030E0C016D106E206F30610F441505109B3 +:105070009A01281B390BC9011F910F91FF90EF90E6 +:10508000DF90CF9008951F920F920FB60F921124C8 +:105090008F939F93AF93BF938091EF039091F00311 +:1050A000A091F103B091F2030196A11DB11D80936F +:1050B000EF039093F003A093F103B093F203BF9139 +:1050C000AF919F918F910F900FBE0F901F901895E9 +:1050D0000E942B18F8942FEF87EA91E62150804028 +:1050E0009040E1F700C0000087E090EBDC01809386 +:1050F000190490931A04A0931B04B0931C049CE021 +:1051000088E10FB6F894A895809360000FBE909345 +:105110006000FFCF0E94C928811102C00E94A5280B +:105120000E94D4288093ED030E94E1288093170405 +:1051300087FB882780F9809387020E94D828682FF0 +:1051400070E080E090E00C9407256DEE7EEF80E04B +:1051500090E00E94AA3160E082E090E00E949831E5 +:1051600060E083E090E00E94983160E084E090E0AD +:105170000E94983160E085E090E00E94983160E004 +:1051800086E090E00E9498316FEF87E090E00C9409 +:10519000983180E090E00E94923121E08D3E9E4F58 +:1051A00009F020E0822F089582E090E00C948A318B +:1051B00083E090E00C948A31682F83E090E00C94B7 +:1051C000983184E090E00C948A31682F84E090E07C +:1051D0000C94983186E090E00C948A31682F86E038 +:1051E00090E00C94983187E090E00C948A31682F1D +:1051F00087E090E00C9498318091F50380FF0BC01C +:1052000060918D0285E0689FB001112475956795C6 +:10521000759567952BC081FF09C060918D0285E06F +:10522000689FB00111247595679520C082FF07C063 +:1052300060918D0285E0689FB001112417C09091A4 +:10524000F6039923D1F060918C02961788F720918C +:105250008D0285E0289F90011124929FA001939FC9 +:10526000500D112470E0CA010E9470316038710540 +:1052700040F46115710539F002C065E070E0862FD9 +:1052800008958FE7089581E008958091F50380FFE8 +:1052900008C060918B0270E075956795759567956C +:1052A00021C081FF06C060918B0270E07595679503 +:1052B00019C082FF04C060918B0270E010C0909111 +:1052C000F6039923C1F060918A029617A0F78091A6 +:1052D0008B02899FC001112470E00E9470316038F8 +:1052E000710528F46115710521F0862F08958FE767 +:1052F000089581E0089561E070E0F4CF803F21F4EB +:105300000E94FC28819504C0813F29F40E94FC285A +:105310008093F9030895823F21F40E94FC2881952F +:1053200004C0833F29F40E94FC288093F803089569 +:10533000893F19F40E94452905C08A3F31F40E9433 +:10534000452981958093FA0308958B3F21F40E94AB +:105350004529819504C08C3F29F40E9445298093FA +:10536000FB030895843F21F48091F703816017C007 +:10537000853F21F48091F703826011C0863F21F4BC +:105380008091F70384600BC0873F21F48091F7037D +:10539000886005C0883F31F48091F7038061809375 +:1053A000F70308958D3F21F48091F50381600BC0D0 +:1053B0008E3F21F48091F503826005C08F3F29F470 +:1053C0008091F50384608093F5030895803F39F45C +:1053D0008091F90387FF6CC01092F90369C0813F87 +:1053E00029F48091F9031816BCF362C09091F80378 +:1053F000823F29F497FF5CC01092F80359C0833FA5 +:1054000019F41916CCF354C0893F41F48091FA0382 +:1054100018160CF04DC01092FA034AC08A3F29F4C6 +:105420008091FA0387FF44C0F6CF8B3F39F4809117 +:10543000FB0387FF3DC01092FB033AC08C3F29F469 +:105440008091FB031816BCF333C0843F21F4809194 +:10545000F7038E7F17C0853F21F48091F7038D7F7E +:1054600011C0863F21F48091F7038B7F0BC0873FEB +:1054700021F48091F703877F05C0883F31F4809144 +:10548000F7038F7E8093F70313C08D3F21F4809143 +:10549000F5038E7F0BC08E3F21F48091F5038D7F45 +:1054A00005C08F3F29F48091F5038B7F8093F5032E +:1054B0008091F80381110EC08091F90381110AC017 +:1054C0008091FA03811106C08091FB03811102C013 +:1054D0001092F603089587EF93E00E94451B0E9407 +:1054E0000D289093F4038093F30308951F93CF93B3 +:1054F000DF938091F3039091F4030E941928AC018B +:105500009091F603992321F020918E0230E006C09D +:1055100020918F028AE0289F90011124421753079F +:1055200008F486C08091F803C091F903D091FA0382 +:105530001091FB03811107C0C11176C0D11174C055 +:10554000111172C075C09F3F19F09F5F9093F603D1 +:10555000181624F40E94FC288093F8038091F80325 +:1055600087FF05C00E94FC2881958093F8031C16D4 +:1055700024F40E94FC288093F9038091F90387FFAB +:1055800005C00E94FC2881958093F9036091F8037F +:10559000662339F1C091F903CC2319F1772767FD10 +:1055A0007095872F972F0E94E02E23E333E343E388 +:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E +:1055C000772767FD7095872F972F0E94E02E23E3A2 +:1055D00033E343E35FE30E94942F0E94AD2E609378 +:1055E000F9031D1624F40E9445298093FA03809143 +:1055F000FA0387FF05C00E94452981958093FA032D +:10560000111624F40E9445298093FB038091FB032B +:1056100087FF05C00E94452981958093FB03DF9198 +:10562000CF911F910C946B2A9F3F09F08ECF96CF9C +:10563000DF91CF911F910895E7EFF3E085E0DF015F +:105640001D928A95E9F71092F6031092F5030895DA +:10565000833081F128F4813059F08230D1F00895FF +:10566000853009F449C0B8F1863009F456C0089570 +:1056700080918F02262F30E0280F311D2F3F3105FA +:1056800024F4680F60938F0208958FEF80938F0248 +:10569000089580918E02262F30E0280F311D2F3F74 +:1056A000310524F4680F60938E0208958FEF809384 +:1056B0008E02089580918D02262F30E0280F311D33 +:1056C0002F3F310524F4680F60938D0208958FEF0A +:1056D00080938D02089580918C02262F30E0280F50 +:1056E000311D2F3F310524F4680F60938C0208951B +:1056F0008FEF80938C02089580918B02262F30E0EB +:10570000280F311D2F3F310524F4680F60938B0261 +:1057100008958FEF80938B02089580918A02262F3F +:1057200030E0280F311D2F3F310524F4680F6093BE +:105730008A0208958FEF80938A020895833011F1D1 +:1057400028F4813049F0823091F00895853081F15C +:1057500020F18630C1F1089580918F02681720F4FE +:10576000861B80938F02089510928F020895809176 +:105770008E02681720F4861B80938E020895109283 +:105780008E02089580918D02681720F4861B809305 +:105790008D02089510928D02089580918C026817F1 +:1057A00020F4861B80938C02089510928C02089539 +:1057B00080918B02681720F4861B80938B020895DA +:1057C00010928B02089580918A02681720F4861B3C +:1057D00080938A02089510928A0208950F931F936E +:1057E000873208F048C08E3108F094C0803109F447 +:1057F0007EC008F5873009F468C068F4863009F087 +:10580000A4C08091ED03817F8E7F8093ED0381E0C2 +:105810008093FD039BC08B3009F490C08E3009F05B +:1058200094C08091ED0382FB222720F991E092271A +:1058300090FB82F965C0863109F480C060F4813143 +:1058400009F083C00E944B219091870281E0892753 +:105850008093870273C0893109F470C08B3109F0DD +:1058600074C08091ED0381FB222720F991E09227FB +:1058700090FB81F945C0883309F460C050F4893247 +:1058800009F45EC0853309F45BC0873209F458C05F +:105890005CC0833409F454C028F48A3308F455C03A +:1058A000895339C0883409F050C00E944B210E94AE +:1058B00090060FEF13ED20E3015010402040E1F778 +:1058C00000C000000E94682839C09091ED03892F24 +:1058D0008095817080FB90F929F096609860909394 +:1058E000ED0334C0997F977F9093ED0327C080919B +:1058F000ED0383FB222720F991E0922790FB83F9A7 +:105900008093ED039923D1F08091ED038160809322 +:10591000ED0314C08D5141E050E060E070E08A0179 +:105920009B0104C0000F111F221F331F8A95D2F75D +:10593000C901B8010E9407250E944B2181E006C0E1 +:1059400061E070E080E090E0F5CF80E01F910F9182 +:10595000089580E0089580E00895CF93C82F809146 +:10596000FD03813069F018F08230C9F184C0E09104 +:105970008802F09189028081823209F07EC007C0DE +:10598000E0918802F09189028081823261F48C2F4B +:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 +:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 +:1059B000C43179F048F4CB3079F0C03109F061C0DE +:1059C00082E08093FD0308C0C93219F0C83321F08A +:1059D00058C01092FD0355C081E0817054C0C93297 +:1059E00091F120F5C43179F1B0F4C73009F047C026 +:1059F0008EE180938F0282E380938E028AE080930F +:105A00008D0284E180938C0288E080938B0288E28F +:105A100080938A0234C0CE51C63088F5EC2FF0E076 +:105A2000E65FFC4F80818093FC0329C0CE34E9F00F +:105A300020F4CB3421F56AE013C0C13579F0C235CA +:105A4000F1F461E00DC08091FC03882319F01092FD +:105A5000FC0315C081E08093FD0315C061E006C022 +:105A60008091FC030E94282B0AC06AE08091FC030D +:105A70000E949E2B04C01092FD0380E004C081E0D0 +:105A800002C080E0AACFCF9108950E94C928811159 +:105A900002C00E94A5280E94EA288093180480FF73 +:105AA00002C0869501C080E00C94540580911804D2 +:105AB000982F9695292F30E0233031054CF49F5FC5 +:105AC000990F8170892B8160809318040E94EE28C1 +:105AD0008091180486950C94540580911804982F91 +:105AE000969591F09158990F8170892B80931804A5 +:105AF0008E7F91E009F490E08091180490FB80F98A +:105B0000809318040E94EE288091180486950C94C6 +:105B1000540580911804982F909590FB80F98093FC +:105B200018040E94EE288091180480FF02C0869518 +:105B300001C080E00C94540590911804892F86953B +:105B40008F5F8F779170843028F4880F892B809332 +:105B5000180402C090931804809118048E7F91E07D +:105B600009F490E08091180490FB80F98093180468 +:105B70000E94EE288091180486950C94540520917B +:105B80001804922F96958927982F990F822F81704C +:105B9000892B809318048E7F91E009F490E0809126 +:105BA000180490FB80F9809318040E94EE288091DD +:105BB000180486950C9454055058BB27AA270ED07C +:105BC00075C166D130F06BD120F031F49F3F11F4F4 +:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC +:105BE00080F3BA17620773078407950718F071F4FA +:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 +:105C0000B90190010C01CA01A0011124FF27591B01 +:105C100099F0593F50F4503E68F11A16F040A22F07 +:105C2000232F342F4427585FF3CF46953795279578 +:105C3000A795F0405395C9F77EF41F16BA0B620B77 +:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE +:105C5000771F881FC2F70EC0BA0F621F731F841F01 +:105C600048F4879577956795B795F7959E3F08F027 +:105C7000B3CF9395880F08F09927EE0F97958795E6 +:105C80000895D9D008F481E008950CD00FC107D150 +:105C900040F0FED030F021F45F3F19F0F0C0511118 +:105CA00039C1F3C014D198F39923C9F35523B1F343 +:105CB000951B550BBB27AA2762177307840738F07B +:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA +:105CD0000E2E3AF0E0E830D091505040E695001C8E +:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A +:105CF000261737074807AB07B0E809F0BB0B802D24 +:105D0000BF01FF2793585F4F2AF09E3F510568F06F +:105D1000B6C000C15F3FECF3983EDCF38695779503 +:105D20006795B795F7959F5FC9F7880F911D969571 +:105D3000879597F90895E1E0660F771F881FBB1FCD +:105D4000621773078407BA0720F0621B730B840B7A +:105D5000BA0BEE1F88F7E095089504D06894B1114E +:105D6000D9C00895BCD088F09F5790F0B92F9927DB +:105D7000B751A0F0D1F0660F771F881F991F1AF056 +:105D8000BA95C9F712C0B13081F0C3D0B1E008951F +:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 +:105DA000869577956795B395D9F73EF4909580954C +:105DB000709561957F4F8F4F9F4F0895E89409C06C +:105DC00097FB3EF490958095709561957F4F8F4F2E +:105DD0009F4F9923A9F0F92F96E9BB279395F69544 +:105DE000879577956795B795F111F8CFFAF4BB0FC2 +:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 +:105E0000882311F096E911C0772321F09EE8872FAF +:105E1000762F05C0662371F096E8862F70E060E06B +:105E20002AF09A95660F771F881FDAF7880F9695E4 +:105E3000879597F90895990F0008550FAA0BE0E888 +:105E4000FEEF16161706E807F907C0F0121613063C +:105E5000E407F50798F0621B730B840B950B39F47C +:105E60000A2661F0232B242B252B21F408950A26E2 +:105E700009F4A140A6958FEF811D811D089597F922 +:105E80009F6780E870E060E008959FEF80EC0895E0 +:105E900000240A9416161706180609060895002409 +:105EA0000A9412161306140605060895092E039483 +:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 +:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 +:105ED0009058440F551F59F05F3F71F04795880F58 +:105EE00097FB991F61F09F3F79F0879508951216EF +:105EF00013061406551FF2CF4695F1DF08C016169B +:105F000017061806991FF1CF86957105610508944B +:105F10000895E894BB2766277727CB0197F9089562 +:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF +:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E +:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 +:105F5000F001729FBB27F00DB11D639FAA27F00DC2 +:105F6000B11DAA1F649F6627B00DA11D661F829FE9 +:105F70002227B00DA11D621F739FB00DA11D621FCE +:105F8000839FA00D611D221F749F3327A00D611DEB +:105F9000231F849F600D211D822F762F6A2F1124CD +:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 +:105FB000BB1F661F771F881F91505040A9F79E3F57 +:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 +:105FD000869577956795B795F795E7959F5FC1F794 +:105FE000FE2B880F911D9695879597F90895FA01D4 +:105FF000EE0FFF1F30962105310599F161157105EE +:1060000061F48038BFE39B0749F1689490388105BB +:1060100061F08038BFEF9B0741F0992342F5FF3FC5 +:10602000E1053105210511F1E8940894E795D901BE +:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 +:1060400070F4A695E0F7F73950F019F0FF3A38F4FC +:106050009F779F930CD00F9007FC905808953EF0C7 +:1060600014CF60E070E080E89FE308954FE79F77EA +:106070005F934F933F932F939ED02F913F914F91DA +:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C +:1060900026DFC8F39638C0F707F80F92E8942BE391 +:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F +:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B +:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 +:1060D0004427EE0F441FFA95E1F74195550B32D056 +:1060E0000F9007FE26C00895DF93CF931F930F9361 +:1060F000FF92EF92DF927B018C01689405C0DA2E4B +:10610000EF011EDFFE01E894A5912591359145919F +:106110005591AEF3EF0162DDFE019701A801DA941B +:1061200079F7DF90EF90FF900F911F91CF91DF9162 +:1061300008959B01AC0160E070E080E89FE3A5CD8D +:106140009ECEACC0CCDEE8F39923D9F3940F511D59 +:10615000BBF39150504094F059F0882332F0660F11 +:10616000771F881F91505040C1F79E3F510544F75B +:10617000880F911D9695879597F908955F3FACF02C +:10618000983E9CF0BB27869577956795B79508F460 +:10619000B1609395C1F7BB0F58F711F460FFE8CFDA +:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F +:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 +:1061C000DF93CF931F930F93FF92C92FDD2788236F +:1061D0002AF02197660F771F881FDAF720E030E05A +:1061E00040E85FEB9FE3883920F0803E30F0219655 +:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 +:1062000073DF8B01BE01EC01FB2E6F577109759591 +:10621000771F880B990BD4DD28E132E741E35FE378 +:106220008FDEAF2D9801AE01FF900F911F91CF919E +:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E +:10624000AC01BF5728F422273327442750781FC0BA +:10625000B75188F4AB2F0024469537952795011C3C +:10626000A395D2F3002069F0220F331F441FB3958A +:10627000DAF30DD0A1CC61307105A0E88A07B946E8 +:1062800030F49B01AC0166277727882790783096F9 +:1062900021F0208331834283538308959F3F31F05F +:1062A000915020F4879577956795B795880F911D44 +:1062B0009695879597F90895AA1BBB1B51E107C0D6 +:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 +:1062D000991F5A95A9F780959095BC01CD01089515 +:1062E00097FB072E16F4009407D077FD09D00E9483 +:1062F0005C3107FC05D03EF4909581959F4F089541 +:10630000709561957F4F0895EE0FFF1F0590F491F2 +:10631000E02D0994F999FECF92BD81BDF89A992795 +:1063200080B50895A8E1B0E042E050E00C94B231AD +:10633000262FF999FECF92BD81BDF89A019700B43E +:10634000021639F01FBA20BD0FB6F894FA9AF99ADE +:106350000FBE08950196272F0E9499310C94983111 +:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 +:10637000F89A319600B40D9241505040B8F7089504 +:04638000F894FFCFBF +:1063840007000C52D02445000000410000DC44000A +:1063940000004152D0A4440000404100005C44008D +:1063A40000004148F17644000000415C978A4400B3 +:1063B4000000411FD592440000004152D0A4440083 +:1063C4000000415CFFB844000000410AA7CF44002C +:1063D4000000410000DC44000000410AA7CF440053 +:1063E4000000410000DC4400000041000000000007 +:1063F40000804000005C45000040410000000000B7 +:1064040000804052D02445000040410AA7CF4400F8 +:106414000000410000DC44000000410000000000D6 +:1064240000804052D024450000404100000000009C +:1064340000804000005C45000040410AA7CF4400B2 +:106444000000410000DC44000000410000000000A6 +:1064540000804052D024450000404100000000006C +:106464000080400AA74F45000040410AA7CF4400DE +:106474000000410000DC4400000041000000000076 +:1064840000804052D024450000004100000000007C +:106494000080405CFF38450000004100000000001F +:1064A40000804052D02445000000410AA7CF440098 +:1064B4000000410000DC4400000041000000000036 +:1064C40000804052D024450000804153D024450030 +:1064D40000404160970A450000004154D0A44400A4 +:1064E4000000410000DC440000004160970A4500C0 +:1064F40000A041050000003F0000C8423214C0144F +:106504009D14691435140101DA032808140A321E93 +:106514000000020004000500070009000B000C0045 +:106524000E001000110013001500170018001A00C7 +:106534001C001D001F002100230024002600280049 +:1065440029002B002D002F003000320034003500CC +:10655400370039003B00400045002500260061005B +:106564006000200037006400650066006700440096 +:106574004600240047003F4D3639BD0970093A09E9 +:1065840001099408AD08C608DF08010203040506E2 +:0465940007080900EB +:00000001FF diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex new file mode 100644 index 000000000..f2e9993ac --- /dev/null +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -0,0 +1,1880 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C94FE040C9442050C9442050C94420599 +:100010000C9442050C9442050C9442050C94420544 +:100020000C9442050C9442050C94A6180C94781973 +:100030000C94DB270C9442050C9442050C94420569 +:100040000C9442050C9442050C9442050C94420514 +:100050000C9442050C9443280C9442050C944205E0 +:100060000C9442050C9442050C9442050C944205F4 +:100070000C9442050C9442050C9442050C944205E4 +:100080000C94D10E0C9442050C9442050C9442053C +:100090000C9442050C9442050C9442050C944205C4 +:1000A0000C9442050C9442050C9442059D05AD0547 +:1000B000BF05CF05D505E405F005F60504060D06D8 +:1000C0001E062E06340664069013901390139013A8 +:1000D000901390139013901390139013A713A713DA +:1000E000A713A713A713A713A713A713A713A71340 +:1000F00090139013901390139013A713A713A713A3 +:10010000A713A713901390139013A713A713A71364 +:10011000E519071AF51A071AF51A4C1A6F1AF51A83 +:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C +:1001300027212721C81E2721C91FC91F8C20A320C2 +:100140002721122107634236B79BD8A71A39685670 +:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 +:10016000753EF6177231BF000000803F08000000A6 +:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C +:1001800000000080BEABAAAAAA3E00000000BF008B +:100190000000803F0000000000084178D3BB438787 +:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B +:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 +:1001C0003F00000000002B0014001A00080015007A +:1001D00017001C0018000C00120013002A00290050 +:1001E00004001600070009000A000B000D000E00B5 +:1001F0000F0033003400E1001D001B000600190051 +:1002000005001100100036003700380028000530C6 +:10021000E000E200E30003302C002C00043050002A +:10022000510052004F002B0014001A000900130067 +:100230000A000D000F0018001C0033002A002900DE +:10024000040015001600170007000B00110008003D +:100250000C0012003400E1001D001B000600190014 +:1002600005000E0010003600370038002800053069 +:10027000E000E200E30003302C002C0004305000CA +:10028000510052004F002B0034003600370013009D +:100290001C0009000A00060015000F002A002900B2 +:1002A00004001200080018000C0007000B001700E3 +:1002B000110016003800E100330014000D000E009C +:1002C0001B00050010001A0019001D002800053051 +:1002D000E000E200E30003302C002C00043050006A +:1002E000510052004F0035021E021F02200221025F +:1002F0002202230224022502260227022A004C00A1 +:100300003A003B003C003D003E003F002D022E0223 +:100310002F02300231020100400041004200430040 +:10032000440045000100010001000100010001003E +:100330000100010001000100010001000100AB000B +:10034000AA00A900AE0035001E001F0020002100F9 +:100350002200230024002500260027002A004C004C +:100360003A003B003C003D003E003F002D002E00C7 +:100370002F003000310001004000410042004300E6 +:1003800044004500010001000100010001000100DE +:100390000100010001000100010001000100AB00AB +:1003A000AA00A900AE00000000000000000000004C +:1003B000000000000000000000000000000000003D +:1003C000000000000000000000000000000000002D +:1003D000000000000000000000000000000000001D +:1003E000000000000000000000000000000000000D +:1003F0000000000000000330000000000430000096 +:100400000000000000001E001E001E001E001E0056 +:100410001E001E001E001E001E001E001E0000000A +:1004200014001A000800150017001C0018000C002A +:10043000120013002F00000004001600070009003E +:100440000A000B000D000E000F00330034000D30C9 +:10045000000000000600190000000000110010005C +: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 +:1007C00000000000000001000050010001000100D5 +:1007D0000100010001000100010001004C000100C6 +:1007E0000100010007300630135012500030013074 +:1007F00002300C30010001000B300A3009300830A3 +:1008000001000100010001000100010001000100E0 +:1008100001000100010001000100010001000100D0 +:100820000100010001002803540068006500200059 +:1008300050006C0061006E0063006B0020004B00F4 +:100840006500790062006F006100720064000000C2 +:100850002C034F007200740068006F006C00690088 +:100860006E0065006100720020004B006500790099 +:1008700062006F00610072006400730000000403F6 +:10088000090409026D00040100A0FA090400000136 +:1008900003010100092111010001223F0007058128 +:1008A0000308000A090401000103010200092111E3 +:1008B000010001224D000705820308000A09040215 +:1008C0000001030000000921110100012236000788 +:1008D00005830308000A090403000103000000095E +:1008E00021110100012239000705840310000112C3 +:1008F00001100100000008EDFE606001000102002F +:100900000105010906A101050719E029E7150025E0 +:1009100001950875018102050819012905950575DC +:1009200001910295017503910105071900297715B9 +:10093000002501957875018102C005010980A1019A +:10094000850216010026B7001A01002AB7007510AB +:1009500095018100C0050C0901A101850316010064 +:10096000269C021A01002A9C02751095018100C084 +:1009700005010902A1010901A100050919012905C3 +:100980001500250195057501810295017503810109 +:100990000501093009311581257F95027508810609 +:1009A00009381581257F950175088106050C0A38DF +:1009B000021581257F950175088106C0C0050109D2 +:1009C00006A101050719E029E7150025019508751D +:1009D0000181029501750881010508190129059514 +:1009E000057501910295017503910105071900290B +:1009F000FF150025FF950675088100C011241FBE54 +:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 +:100A1000190490911A04A0911B04B0911C04873012 +:100A2000904BA740B04BB9F41092190410921A04DD +:100A300010921B0410921C0414BE84B7877F84BFDD +:100A400088E10FB6F89480936000109260000FBEAA +:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 +:100A600002C005900D92A431B107D9F714E0A4E1BA +:100A7000B3E001C01D92A931B107E1F70E94EC1566 +:100A80000C94C0310C940000279A2F988FEF9FEFA1 +:100A900090938700809386008AE08093800089E1AC +:100AA000809381000C94452D282F81110BC08091DB +:100AB0008000877F8093800010928D0010928C00C0 +:100AC0002F9808952F9880918000886080938000EF +:100AD000233019F48FEF9FEF0FC083E090E0821B6B +:100AE0009109880F991F2FEF3FEFA90102C056957A +:100AF00047958A95E2F7CA0190938D0080938C0008 +:100B00000895CF93DF93EC010E94DC28BE0180E0C2 +:100B100090E0DF91CF910C9407250F931F93462F00 +:100B200050E04E30510508F0DEC0DC01FA01EA5A0F +:100B3000FF4F12968C910C948431882309F4D3C012 +:100B400000E010E0980140E064E070E08BE292E0A9 +:100B50000E944F1281E090E00FC0882309F4C3C0C7 +:100B600000E010E0980140E066E070E08BEB91E07F +:100B70000E944F1282E090E00E948105B4C0882359 +:100B800009F4B1C000E010E0980140E068E070E0D6 +:100B90008BEE91E00E944F1284E090E0EDCF88232D +:100BA00011F083E005C083E00CC0882349F084E0A5 +:100BB0000E94842540E164E083E00E94910A93C092 +:100BC00084E00E94A525F6CF882331F085EE0E94AF +:100BD0006E1C0E949C2D87C085EE0E94361D83C02E +:100BE000882309F480C00E94E30D7DC0882309F4A6 +:100BF0007AC00E94DC0D00E010E0980140E065E062 +:100C000070E08BE492E027C0882309F46CC085E093 +:100C10000E94A5250E94040E66C0882309F463C0C3 +:100C200000E010E0980140E068E070E08BE191E0C6 +:100C30000E944F1285E00E94842555C0882309F444 +:100C400052C00E94E21200E010E0980140E068E02B +:100C500070E08BE191E00E944F1245C0882309F4B7 +:100C600042C00E94ED12EFCF8823E9F100E010E0CE +:100C7000980140E066E070E08BE891E00E944F123E +:100C800084E00E94A52583E00E94A52580E10E94C2 +:100C9000A52585E00E94A5250E94040E86E00E94FD +:100CA00084250E94C928811102C00E94A5280E94A3 +:100CB000E12890E090931804809317048068809353 +:100CC00017040E94E5280FC0882369F000E010E0B7 +:100CD000980140E066E070E08BE591E00E944F12E1 +:100CE00086E00E94A52580E090E01F910F91089575 +:100CF0000F931F932FEF89EF90E021508040904099 +:100D0000E1F700C0000000E010E0980140E065E07D +:100D100070E08BE492E00E944F121F910F910895B2 +:100D20000F931F9300E010E0980140E063E070E053 +:100D300083E091E00E944F122FEF82E597E021506F +:100D400080409040E1F700C000001F910F9108958E +:100D5000CF92DF92EF92FF920F931F93CF93DF9387 +:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 +:100D7000CDBF2091D10325FFC5C08C01FC0192811C +:100D800080910201992309F460C096E4E0E9F2E061 +:100D9000DE01A95BBF4F01900D929A95E1F7F80132 +:100DA0009081E0910001F0910101E90FF11DEE0F3A +:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F +:100DC0007181680F711D882777FD8095982F0E948B +:100DD000E02E20E030E040E451E40E94452E6B011B +:100DE0007C01F801218184E090E0821B9109BC0123 +:100DF000882777FD8095982F0E94E02E9B01AC01FB +:100E0000C701B6010E94DD2D9B01AC0160E070E0DE +:100E100080E090E40E94F72F20E030E04CE551E4C0 +:100E20000E94942F4FE050E0C457DF4F0FB6F89464 +:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D +:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 +:100E5000DE01119601900D929A95E1F7F8019081CB +:100E6000E0910001F0910101E90FF11DEE0FFF1F6C +:100E700021E030E02C0F3D1FE20FF31F60817181F4 +:100E8000680F711D882777FD8095982F0E94E02EAE +:100E900020E030E040E451E40E94452E6B017C01EB +:100EA000F801218184E090E0821B9109BC01882730 +:100EB00077FD8095982F0E94E02E9B01AC01C70121 +:100EC000B6010E94DD2D9B01AC0160E070E080E086 +:100ED00090E40E94F72F20E030E04CE551E40E94BE +:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF +:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 +:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 +:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 +:100F2000CF90089508950E9444056E9A769A0C9485 +:100F300078060C9492070C94A8060895880F991FC0 +:100F4000FC01EA5BFF4F859194910895880F991FEA +:100F5000FC01EA53FE4F8591949108950F931F93DE +:100F6000CF93DF93EC01811520E49207A0F5C11522 +:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 +:100F8000D10508F0EEC1C83AD10578F4C53AD105CB +:100F900008F074C0C130D10509F46DC008F4DEC199 +:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F +:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD +:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 +:100FD0008E01106506C2C13080E5D80709F4BDC096 +:100FE00068F5C13120E4D20709F4AEC050F4C03135 +:100FF00090E4D90708F0A5C0CF70DD278E01146DED +:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 +:10101000C115D04509F0A2C10E944B210E94040EC7 +:101020000E9490069FEF24E38CE091502040804086 +:10103000E1F700C000000E946828D3C1C11520E676 +:10104000D20730F4C11581E5D80708F48CC02DC152 +:10105000C11590E7D90708F481C1C11520E8D2076E +:1010600008F478C1C11580E9D80708F077C1DF70AE +:101070008E01106AB6C101E010E0B3C1C53AD105D6 +:1010800009F471C1C63AD10509F070C102E810E453 +:10109000A8C1C83AD10509F46CC1C93AD10509F40F +:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A +:1010B00069C1CC3AD10509F468C1CD3AD10509F42A +:1010C00067C1C03BD10509F466C1CE3AD10509F428 +:1010D00065C1CF3AD10509F464C1C13BD10509F41A +:1010E00063C1C23BD10509F462C1C33BD10509F418 +:1010F00061C1C43BD10509F460C1C53BD10509F408 +:101100005FC1C63BD10509F45EC1C73BD10509F4F7 +:101110005DC1C83BD10509F45CC1C93BD10509F4E7 +:101120005BC1CA3BD10509F45AC100E014E459C1BE +:10113000CE019F700E94A60755C1DD278E01106C5D +:1011400050C100E011ED4DC100E010ED4AC100E0DA +:1011500012ED47C100E013ED44C18091ED038160C1 +:101160008093ED033EC10E94C928811102C00E94F4 +:10117000A5280E94E12890E090931804809317041A +:10118000C23090E5D90721F480911704816086C0B0 +:10119000C43020E5D20721F48091170482607EC01C +:1011A000C63080E5D80721F480911704846076C0AA +:1011B000C83090E5D90719F48091170427C0CA30C8 +:1011C00020E5D20721F480911704806167C0CC30FC +:1011D00080E5D80721F48091170480625FC0CE308B +:1011E00090E5D90721F480911704806457C0C0317D +:1011F00020E5D20721F48091170480684FC0C231E6 +:1012000080E5D80729F4809117048460886046C07F +:10121000C33090E5D90721F4809117048E7F3EC03A +:10122000C53020E5D20721F4809117048D7F36C0A8 +:10123000C73080E5D80721F4809117048B7F2EC03A +:10124000C93090E5D90719F48091170426C0CB3036 +:1012500020E5D20721F4809117048F7E1FC0CD3086 +:1012600080E5D80721F4809117048F7D17C0CF3017 +:1012700090E5D90721F4809117048F7B0FC0C1310D +:1012800020E5D20721F4809117048F7707C0C3317E +:10129000D04531F4809117048B7F877F80931704AA +:1012A000809117040E94E5289CC08D2F99278F708C +:1012B000992781309105D9F49E012370332702C00C +:1012C000880F991F2A95E2F79C688E0144E0000F71 +:1012D000111F4A95E1F700271370802B912B53E0E3 +:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 +:1012F000910531F4DC2FCC278E01016F106A71C08B +:101300008330910569F4CE018370992701E010E0E4 +:1013100002C0000F111F8A95E2F7C8019C680FC038 +:10132000049709F05EC0CE018370992701E010E0B8 +:1013300002C0000F111F8A95E2F7C8019A6823E0E6 +:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 +:101350001D2B47C0DF708E01106243C000E010E01B +:1013600040C08E013EC001E810E43BC003E810E439 +:1013700038C002EE14E435C009EE14E432C00AEEBF +:1013800014E42FC005EB14E42CC006EB14E429C0D0 +:1013900007EB14E426C00CEC14E423C00DEC14E4B9 +:1013A00020C003E815E41DC00AE815E41AC002E9EC +:1013B00015E417C004E915E414C001E216E411C0F5 +:1013C00003E216E40EC004E216E40BC005E216E4E4 +:1013D00008C006E216E405C007E216E402C00AE20D +:1013E00016E4C801DF91CF911F910F9108959CE001 +:1013F000799FF001112490E3899FE00DF11D1124E4 +:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 +:10141000803E9105E0F4803C910558F581339105BB +:1014200009F46FC048F48932910509F463C08A3227 +:10143000910509F46DC072C089339105E9F08238D5 +:101440009105D1F08533910509F44DC067C0833E05 +:10145000910581F138F4803E9105B9F0823E910505 +:10146000D9F05CC0863E910561F1873E9105A1F1FE +:1014700055C00E949E0708952091170420FD02C0C8 +:1014800021FF4CC080EE90E049C08091170480FF9E +:10149000F9CF89E390E042C08091170482FF0EC02B +:1014A0008091170484FF03C080E090E037C083EE92 +:1014B00090E034C08091170482FFF2CF82EE90E07A +:1014C0002DC08091170483FF0BC08091170484FD09 +:1014D000EBCF87EE90E022C08091170483FFF5CF19 +:1014E00086EE90E01BC08091170485FF07C089E25B +:1014F00090E014C08091170485FFF9CF85E390E058 +:101500000DC08091170486FF07C08AE290E006C0F4 +:101510008091170486FFF9CF81E390E00E94AE0727 +:101520000895CF92DF92EF92FF920F931F9301E005 +:1015300010E020E030E06801790104C0CC0CDD1C33 +:10154000EE1CFF1C8A95D2F704C0000F111F221F4A +:10155000331F6A95D2F70C291D292E293F29C090E7 +:10156000D103D090D203E090D303F090D403C022F3 +:10157000D122E222F322842FC016D106E206F3061E +:1015800041F41F910F91FF90EF90DF90CF900C945A +:1015900084251F910F91FF90EF90DF90CF900C94D6 +:1015A000A52508950C94D10A5F926F927F928F9235 +:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 +:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C +:1015D000DEBF0FBECDBFCE0101966C014E0199E07A +:1015E000890E911C20E030E040E050E060E070E0C7 +:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 +:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA +:1016100001900D928A95E1F7F601819191916F0108 +:10162000FC01E07FFF27E032F10559F48F70992724 +:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E +:1016400037C0E033F10559F48F709927F50102C0D6 +:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 +:10166000F10559F48F709927F50102C0EE0FFF1FA5 +:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC +:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 +:101690004E2B5F2B0DC0E036F10551F48F7099276A +:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC +:1016B000C814D90409F0A7CF84B19E2D9095892331 +:1016C00084B985B1E82AE5B887B1902F9095892330 +:1016D00087B988B1082B08B98AB1962F90958923CC +:1016E0008AB98BB1682B6BB98DB1942F90958923F2 +:1016F0008DB98EB1482B4EB980B3922F9095892326 +:1017000080BB81B3282B21BB28960FB6F894DEBF8F +:101710000FBECDBFDF91CF911F910F91FF90EF9042 +:10172000DF90CF90BF90AF909F908F907F906F9001 +:101730005F9008955F926F927F928F929F92AF9287 +:10174000BF92CF92DF92EF92FF920F931F93CF93AE +:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 +:10176000CDBF85B7806885BF85B7806885BF0E947B +:10177000D40ACE0101966C014E0199E1890E911CAB +:1017800020E030E040E050E060E070E000E010E099 +:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA +:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 +:1017B0008A95E1F7F601819191916F01FC01E07F3B +:1017C000FF27E032F10559F48F709927F50102C027 +:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB +:1017E000F10559F48F709927F50102C0EE0FFF1F24 +:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E +:101800008F709927F50102C0EE0FFF1F8A95E2F74E +:101810006E2B7F2B1BC0E035F10559F48F70992793 +:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA +:101830000DC0E036F10551F48F709927F50102C013 +:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 +:1018500009F0A7CF84B19E2D9095892384B985B1D5 +:10186000E82AE5B887B1902F9095892387B988B188 +:10187000082B08B98AB1962F909589238AB98BB124 +:10188000682B6BB98DB1942F909589238DB98EB14A +:10189000482B4EB980B3922F9095892380BB81B39A +:1018A000282B21BB10921D0310921C0310921503CC +:1018B0001092140310921F0310921E03109217032C +:1018C0001092160310922103109220031092190314 +:1018D00010921803109223031092220310921B03FC +:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 +:1018F000DF91CF911F910F91FF90EF90DF90CF90EC +:10190000BF90AF909F908F907F906F905F900C945E +:1019100093077F928F929F92AF92BF92CF92DF9266 +:10192000EF92FF920F931F93CF93DF93CDB7DEB764 +:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 +:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 +:10195000BC2CAD2C01E010E028E1822E35E0932E66 +:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 +:10197000E1F7F601819191916F019C01207F33275E +:101980002032310591F424B18F709927A80102C04B +:10199000440F551F8A95E2F7CA01922F982B94B9EC +:1019A00095B18095892385B953C02033310591F4D1 +:1019B00027B18F709927F80102C0EE0FFF1F8A959B +:1019C000E2F7CF01922F982B97B998B18095892390 +:1019D00088B93EC02034310591F42AB18F7099271F +:1019E000A80102C0440F551F8A95E2F7CA01922F41 +:1019F000982B9AB99BB1809589238BB929C0203542 +:101A0000310591F42DB18F709927F80102C0EE0FC6 +:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 +:101A2000809589238EB914C02036310589F420B3FE +:101A30008F709927A80102C0440F551F8A95E2F7BD +:101A4000CA01922F982B90BB91B38095892381BBBB +:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A +:101A600040E050E0EEEDF2E0DE011196882D0190AD +:101A70000D928A95E1F7FB0181919191BF01FC01E3 +:101A8000E07FFF27E032F10511F4E3B113C0E0334A +:101A9000F10511F4E6B10EC0E034F10511F4E9B13D +:101AA00009C0E035F10511F4ECB104C0E036F105F0 +:101AB000B9F4EFB1F0E08F70992702C0F595E79582 +:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 +:101AD000991F0A94E2F702C080E090E0282B392B8E +:101AE0004F5F5F4F4C30510509F0BCCFF70180814B +:101AF00091818217930721F03183208390927302A2 +:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F +:101B1000F40609F025CF80917302882361F181508A +:101B200080937302882339F08FE99FE00197F1F7E2 +:101B300000C0000020C08091140390911503909381 +:101B40001D0380931C0380911603909117039093BB +:101B50001F0380931E0380911803909119039093A3 +:101B600021038093200380911A0390911B0390938B +:101B70002303809322030E94990781E0A0960FB669 +:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 +:101B9000FF90EF90DF90CF90BF90AF909F908F908D +:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA +:101BB00080819181089508958091020481608093CD +:101BC00002040C94F728809102048E7F8093020413 +:101BD0000C94F7280E94C928811102C00E94A528F0 +:101BE0000E94F328809302043E9A809171008D7FB9 +:101BF0008093710082E0809390008AE1809391004D +:101C000081E080932603089580912603811102C00C +:101C10000E94EA0D10927603109275038091710074 +:101C20008D7F80937100809190008F7780939000DA +:101C3000109238031092370310926F0310927003C2 +:101C4000109271031092720310926E0310926D0342 +:101C5000EDE4F3E0ADE3B3E0119211921192119231 +:101C60001D921D9283E0ED36F807B1F70895CF92EB +:101C7000DF92EF92FF920F931F93CF93DF93209108 +:101C80003703222309F484C06B017C018091260371 +:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A +:101CA000A7019601F80192918291729162918F0140 +:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 +:101CC000FF1FE35BFC4F1082118212821382DE0140 +:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B +:101CE000D105E9F021964481558166817781408351 +:101CF000518362837383148215821682178212962F +:101D00008D919C91139711969C938E9313961C9290 +:101D10001E92129734961296E2CF219708F6809180 +:101D2000750390917603019797FD05C09093760314 +:101D30008093750304C0109276031092750380910E +:101D400075039091760320917303309174032817E3 +:101D5000390724F01092740310927303892BC1F495 +:101D6000809171008D7F80937100809190008F77BA +:101D70008093900010926F03109270031092710381 +:101D80001092720310926E0310926D03109237033B +:101D9000DF91CF911F910F91FF90EF90DF90CF9047 +:101DA00008951F920F920FB60F9211244F925F92D7 +:101DB0006F927F928F929F92AF92BF92CF92DF925B +:101DC000EF92FF922F933F934F935F936F937F9385 +:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 +:101DE00080913703882309F49BC1C0917503D0917A +:101DF00076031C161D060CF093C1409027035090EB +:101E000028036090290370902A0320E030E0A901A4 +:101E1000C301B2010E94902F18160CF065C0C130AA +:101E2000D10509F452C08091730390917403BE01EF +:101E30000E9470317C0190937403809373038090AF +:101E4000390390903A03A0903B03B0903C0320E00C +:101E500030E040E85FE3C501B4010E94DD2D6093EE +:101E6000390370933A0380933B0390933C03F7014B +:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C +:101E800060817181828193810E94452E20E030E043 +:101E900040E05EE30E94942F9B01AC01C501B401B8 +:101EA0000E94902F18168CF4C7010196BE010E9463 +:101EB00070319093740380937303109239031092DE +:101EC0003A0310923B0310923C03E0917303F091AC +:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB +:101EE000718182819381D0C0C0906F03D0907003C4 +:101EF000E0907103F090720320E030E0A901C70187 +:101F0000B6010E94412E2197882309F4A2C0FE0148 +:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 +:101F2000A280B380A5019401C701B6010E94412E91 +:101F300087FF31C0A501940160E070E08CED93EC67 +:101F40000E94452E20E030E040E451E40E94452EFE +:101F500020E030E040E05FE30E94942F9B01AC0161 +:101F600060E070E080E090E40E94F72F9B01AC01FC +:101F7000C501B4010E94942F9B01AC01C701B601B9 +:101F80000E94412E87FF07C0A701960160E070E024 +:101F90008CED93E439C0A5019401C701B6010E94FC +:101FA000902F18160CF055C0A501940160E070E068 +:101FB0008CED93E40E94452E20E030E040E451E4B3 +:101FC0000E94452E20E030E040E05FE30E94942F25 +:101FD0009B01AC0160E070E080E090E40E94F72F8C +:101FE0009B01AC01C501B4010E94942F9B01AC017F +:101FF000C701B6010E94902F18165CF5A701960143 +:1020000060E070E08CED93EC0E94452E20E030E023 +:1020100040E451E40E94452E20E030E040E05FE3E0 +:102020000E94942F9B01AC0160E070E080E090E49E +:102030000E94F72F9B01AC01C701B6010E94942FAB +:1020400060936F0370937003809371039093720396 +:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF +:1020600080819181A281B38180936F0390937003EB +:10207000A0937103B093720360916F03709170032A +:102080008091710390917203209124033091250374 +:102090002F3F4FEF340731F02F5F3F4F3093250331 +:1020A000209324030E94F8126B017C0120E034E2AB +:1020B00044EF51E40E94412E87FF08C086EFC82EEE +:1020C00088E2D82E84EFE82E81E4F82E20E030E07C +:1020D00040E051E4C701B6010E94942F9B01AC017E +:1020E00060E074E284E79BE40E94452E6B017C0172 +:1020F0000E94AD2E70939700609396002091740219 +:10210000309175024091760250917702C701B60175 +:102110000E94942F0E94AD2E7093990060939800B6 +:1021200080913803882309F433C1C0903303D090E1 +:102130003403E0903503F090360320E030E0A9014D +:10214000C701B6010E94902F1816D4F58091240380 +:10215000909125038F3F2FEF920729F001969093DE +:10216000250380932403C701B6010E94F81220E0E2 +:1021700030E040E051E40E94942F9B01AC0160E00C +:1021800074E284E79BE40E94452E6B017C010E946F +:10219000AD2E709397006093960020917402309159 +:1021A00075024091760250917702C701B6010E94F4 +:1021B000942F0E94AD2E709399006093980008C0F0 +:1021C0001092970010929600109299001092980029 +:1021D00060912D0370912E036F5F7F4F70932E03DC +:1021E00060932D03209196003091970080E090E05D +:1021F000232BF1F0C0919600D09197000E94DE2E23 +:102200006B017C01BE0180E090E00E94DE2E9B010C +:10221000AC0160912F037091300380913103909154 +:1022200032030E94452E20E03FEF4FE757E410C0F5 +:102230000E94DE2E6B017C0120E030EE4FEF54E473 +:1022400060912F037091300380913103909132039C +:102250000E94942F9B01AC01C701B6010E94902FF0 +:1022600087FD96C080912B038F5F80932B0390E0B6 +:102270002091FE033091FF0382179307A0F0809115 +:102280000904882319F010922B030DC0809171006E +:102290008D7F80937100809190008F778093900064 +:1022A000109238037DC080912C03C0912B038111C3 +:1022B00028C0C0900304D0900404E0900504F0907E +:1022C000060420E030E0A901C701B6010E94902F6A +:1022D0001816BCF481E080932C0310923303109203 +:1022E00034031092350310923603C0922F03D0921C +:1022F0003003E0923103F0923203C150C0932B03BC +:1023000043C010922C031092250310922403E091F5 +:102310000004F091010448E0C49FE00DF11D112478 +:1023200080819181A281B3818093330390933403A0 +:10233000A0933503B093360320E030E040E85EE33D +:1023400064817581868197810E94942F6B017C0145 +:1023500020E030E048EC52E460917802709179021C +:1023600080917A0290917B020E94452E9B01AC01E4 +:10237000C701B6010E94942F60932F03709330031E +:10238000809331039093320310922E0310922D0309 +:102390008091020480FD04C010923803109237032C +:1023A000FF91EF91DF91CF91BF91AF919F918F916D +:1023B0007F916F915F914F913F912F91FF90EF909F +:1023C000DF90CF90BF90AF909F908F907F906F9055 +:1023D0005F904F900F900FBE0F901F901895CF9267 +:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 +:1023F00080912603811102C00E94EA0D809102049F +:1024000080FF46C0809175039091760308970CF089 +:102410003FC0809171008D7F80937100809138035F +:1024200081110E94040E81E08093370310922503EE +:102430001092240320E030E0A901C701B6010E94F8 +:10244000902F1816DCF48091750390917603FC01AF +:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 +:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D +:10247000C0830196909376038093750380917100D9 +:1024800082608093710080919000806880939000BA +:10249000DF91CF91FF90EF90DF90CF9008958F92D2 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF93EC017B01D42E4801590188 +:1024C00080912603811102C00E94EA0D80910204CE +:1024D00080FF6BC0809171008D7F8093710080912F +:1024E000370381110E94040E81E080933803D0935A +:1024F0000104C0930004F092FF03E092FE03D09227 +:1025000009048092030490920404A0920504B092FE +:1025100006041092390310923A0310923B03109272 +:102520003C0310922B0388819981AA81BB818093FF +:10253000330390933403A0933503B093360320E024 +:1025400030E040E85EE36C817D818E819F810E9456 +:10255000942F6B017C0120E030E048EC52E4609164 +:1025600078027091790280917A0290917B020E94A8 +:10257000452E9B01AC01C701B6010E94942F6093C8 +:102580002F037093300380933103909332031092A2 +:102590002E0310922D038091710082608093710050 +:1025A00080919000806880939000DF91CF911F917F +:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 +:1025C0008F9008958091770390E0019665E070E028 +:1025D0000E9470318093770308958091770390E093 +:1025E000019765E070E00E94703180937703089551 +:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 +:10260000CF93DF936B017C01C0912403D09125030C +:10261000BE0180E090E00E94DE2E4B015C01A7012C +:10262000960160E070E08CE594E40E94452E9B01E9 +:10263000AC01C501B4010E94942F0E94B22E4091BA +:102640007703423009F45CC028F4442351F0413050 +:10265000E9F0FBC0433009F481C0443009F4B4C050 +:10266000F4C080E090E0A0E0BFE380937402909318 +:102670007502A0937602B09377021092270310920E +:1026800028031092290310922A03DFC01092270317 +:10269000109228031092290310922A0364317105C5 +:1026A00040F46A307105E0F520E030E040E85EE398 +:1026B0003BC0693C710508F0C0C080E090E00E941A +:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 +:1026D00030E044E353E40E94452E9B01AC010E948C +:1026E000942F20E030E040E05EE30E94942F9B01B5 +:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 +:1027000010922703109228031092290310922A0393 +:102710006432710578F4FB01EC59FF4F0C9484315D +:1027200020E030E040E05FE3C701B6010E94942F53 +:102730006B017C0180E090E0A0E0BEE38093740236 +:1027400090937502A0937602B09377027EC0A701A2 +:102750009601C701B6010E94DD2DEACF1092270332 +:10276000109228031092290310922A032AE0269F30 +:10277000A001279F500D1124CA0168EB7BE00E9445 +:102780005C31BC016C5D754077FF03C0719561954C +:102790007109882777FD8095982F0E94E02E2EE3FF +:1027A00033EC4EE259E30E94942F20E030E040ECFD +:1027B0005EE30E94DD2D6093740270937502809336 +:1027C00076029093770241C010922703109228035B +:1027D0001092290310922A03CE0183709927892B26 +:1027E000E1F0BE016170772780E090E00E94DE2E6C +:1027F00020E030E040E05EE30E94942F20E030E0F3 +:1028000040E45FE30E94DD2D6093740270937502D3 +:1028100080937602909377020CC080E090E0A0E075 +:10282000BFE38093740290937502A0937602B093F5 +:102830007702C770DD27CD2B41F4109274021092FD +:1028400075021092760210927702C701B601DF91ED +:10285000CF91FF90EF90DF90CF90BF90AF909F907F +:102860008F900895809188030895CF93DF9300D0CF +:102870001F92CDB7DEB79C0180910E04843019F50C +:1028800093E099833B832A839093E9008FEF9091A3 +:10289000E800815095FD06C095ED9A95F1F700008E +:1028A0008111F5CF8091E80085FF0DC040E050E038 +:1028B00063E070E0CE0101960E9496168091E800D8 +:1028C0008E778093E8000F900F900F90DF91CF915B +:1028D0000895CF93DF9300D01F92CDB7DEB720913C +:1028E0000E04243021F522E029839B838A8383E030 +:1028F0008093E9008FEF9091E800815095FD06C02C +:1029000095ED9A95F1F700008111F5CF8091E800DF +:1029100085FF0DC040E050E063E070E0CE0101961D +:102920000E9496168091E8008E778093E8000F90C1 +:102930000F900F90DF91CF91089520910E042430D5 +:10294000F1F422E02093E9002FEF3091E8002150CC +:1029500035FD06C035ED3A95F1F700002111F5CFB0 +:102960002091E80025FF0BC040E050E065E070E0FA +:102970000E9496168091E8008E778093E800089573 +:10298000CF93DF93EC0190910E04943009F046C090 +:10299000809186028823D9F0809187028823B9F03C +:1029A0009093E9008FEF9091E800815095FD06C06B +:1029B00095E19A95F1F700008111F5CF8091E8003B +:1029C00085FF2CC040E050E060E170E017C081E07E +:1029D0008093E9008FEF9091E800815095FD06C04B +:1029E00095ED9A95F1F700008111F5CF8091E800FF +:1029F00085FF14C040E050E068E070E0CE010E9426 +:102A000096168091E8008E778093E80080E1FE01C1 +:102A1000A8E7B3E001900D928A95E1F7DF91CF919D +:102A2000089580910D04811109C00E942B180E9405 +:102A300088188091E20084608093E20008951092EB +:102A40000D040895089508950C94D02742E061EC98 +:102A500081E00E94A51742E061EC82E00E94A51788 +:102A600042E061EC83E00E94A51742E161EC84E062 +:102A70000C94A51780911004833009F455C030F4EC +:102A8000813071F0823009F48EC008958A3009F4E3 +:102A90007AC08B3009F460C0893009F09CC020C036 +:102AA00080910F04813A09F096C08091E800877FF9 +:102AB0008093E8008091130490911404892B21F4F1 +:102AC00060E188E793E003C060E080E090E070E0C0 +:102AD0000E94E1168091E8008B778093E8000895CA +:102AE00080910F04813209F076C080911304909197 +:102AF0001404009719F0039709F06DC08091E80065 +:102B0000877F8093E8008091E80082FD05C0809176 +:102B10000E048111F8CF5FC08091F100809388038B +:102B20008091E8008B7753C080910F04813A09F0BF +:102B300052C08091130490911404892B09F04BC06A +:102B40008091E800877F8093E8008091E80080FF13 +:102B5000FCCF8091860236C080910F048132D9F576 +:102B60008091130490911404892BA9F58091E800B9 +:102B7000877F8093E8000E94DA1780911104809388 +:102B800086020C944B2180910F04813221F58091B3 +:102B9000E800877F8093E8000E94DA178091120492 +:102BA00080938903089580910F04813AA1F4809164 +:102BB000E800877F8093E8008091E80080FFFCCFE9 +:102BC000809189038093F1008091E8008E77809353 +:102BD000E8000C94DA17089584B7877F84BF88E1F2 +:102BE0000FB6F89480936000109260000FBE90E0E2 +:102BF00080E80FB6F89480936100909361000FBE57 +:102C00000E947D1B0E942B180E9488188091E20070 +:102C100084608093E20078940E940E1B0E947F1BC8 +:102C20008CE792E00E94291B80910E04853069F4A4 +:102C30000E948A2780910C048823B1F30E94B82750 +:102C4000882391F30E948016EFCF0E94871BECCF60 +:102C5000292F332723303105C9F064F421303105A1 +:102C600081F02230310509F043C08DE690E022E882 +:102C700038E042C021323105F1F02232310541F114 +:102C800037C082E190E02FEE38E036C099278130DE +:102C9000910541F08230910541F0892B49F5EEE72D +:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 +:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 +:102CC000FF1FEE5FFC4F2081318189E090E014C04E +:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 +:102CE00020813181FB01EA50FD4F808190E004C0DA +:102CF00080E090E020E030E0FA0131832083089505 +:102D000080E189BD82E189BD09B400FEFDCF8091DB +:102D1000D8008F7D8093D8008091E00082608093FE +:102D2000E0008091E00081FDFCCF0895CF92DF921A +:102D3000EF92FF920F931F93CF93DF93EC018B01E0 +:102D40006A010E94F917811133C0C114D10439F00E +:102D5000F60180819181081B190BC80FD91FE12C46 +:102D6000F12C0115110519F18091E80085FD16C0BF +:102D70008091E8008E778093E800C114D10449F077 +:102D8000F60180819181E80EF91EF182E08285E0F2 +:102D90000FC00E94F917882321F30AC089918093FC +:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE +:102DB000DF91CF911F910F91FF90EF90DF90CF9017 +:102DC000089520911504309116042617370748F00E +:102DD0006115710539F42091E8002E772093E80001 +:102DE00001C0B90140E061157105A9F120910E04FF +:102DF000222309F443C0253009F442C02091E800A1 +:102E000023FD40C02091E80022FD32C02091E8005F +:102E100020FFE9CF4091F3002091F20030E0342B05 +:102E2000FC01CF016115710559F02830310540F4DE +:102E300081918093F100615071092F5F3F4FF1CF75 +:102E400041E02830310509F040E02091E8002E777C +:102E50002093E800C8CF4111C9CF0AC080910E0469 +:102E6000882361F0853061F08091E80083FD0AC01D +:102E70008091E80082FFF2CF80E0089582E008951B +:102E800083E0089581E0089520911504309116049F +:102E90002617370748F06115710539F42091E800CD +:102EA0002E772093E80001C0B901FC0120E06115F4 +:102EB000710591F180910E04882309F440C085309A +:102EC00009F43FC08091E80083FD3DC08091E80097 +:102ED00082FD2FC08091E80080FFE9CF2091F300B0 +:102EE0008091F20090E0922B6115710559F08830C5 +:102EF000910540F424912093F100319661507109BD +:102F00000196F2CF21E0089709F020E08091E800D7 +:102F10008E778093E800CBCF2111CCCF0AC080916F +:102F20000E04882361F0853061F08091E80083FD14 +:102F30000AC08091E80082FFF2CF80E0089582E02D +:102F4000089583E0089581E00895982F973058F50B +:102F50009093E900981739F07091EC002091ED0002 +:102F60005091F00003C0242F762F50E021FF19C0AC +:102F70003091EB003E7F3093EB003091ED003D7FD0 +:102F80003093ED003091EB0031603093EB007093A3 +:102F9000EC002093ED005093F0002091EE0027FF0D +:102FA00007C09F5FD3CF8F708093E90081E00895C1 +:102FB00080E0089580910F0487FF11C08091E800A0 +:102FC00082FD05C080910E048111F8CF11C080915F +:102FD000E8008B770BC080910E04882349F0809124 +:102FE000E80080FFF8CF8091E8008E778093E800BA +:102FF00008952091E4003091E50095E64091EC00C1 +:10300000842F817040FF22C08091E80080FD1CC0A9 +:1030100080910E04882391F0853091F08091EB002F +:1030200085FD10C04091E4005091E5004217530720 +:1030300029F39A01915011F784E0089582E00895F0 +:1030400083E0089581E0089580E008954091E800CC +:1030500042FFDECF08950E9499180E94A118E0EE69 +:10306000F0E0808181608083E8EDF0E080818F77FF +:10307000808319BCA7EDB0E08C918E7F8C9380810A +:103080008F7E808310920D0408950F931F93CF932A +:10309000DF930E9499180E94A118C8EDD0E08881A2 +:1030A0008F77888388818068888388818F7D8883F3 +:1030B00019BC10920E0410920A0410920C04109283 +:1030C0000B0400EE10E0F80180818B7F8083888103 +:1030D0008160888342E060E080E00E94A517E1EE15 +:1030E000F0E080818E7F8083E2EEF0E0808181607D +:1030F0008083808188608083F80180818E7F8083D7 +:10310000888180618883DF91CF911F910F9108950D +:10311000E8EDF0E080818F7E8083E7EDF0E0808154 +:103120008160808384E082BF81E080930D040C94F1 +:103130004518E8EDF0E080818E7F80831092E200F8 +:1031400008951092DA001092E10008951F920F92F4 +:103150000FB60F9211242F933F934F935F936F936A +:103160007F938F939F93AF93BF93EF93FF93809140 +:10317000E10082FF0BC08091E20082FF07C08091D6 +:10318000E1008B7F8093E1000E940D1B8091DA00AB +:1031900080FF1FC08091D80080FF1BC08091DA00A3 +:1031A0008E7F8093DA008091D90080FF0DC080E18E +:1031B00089BD82E189BD09B400FEFDCF81E0809325 +:1031C0000E040E94111505C019BC10920E040E9435 +:1031D0001F158091E10080FF19C08091E20080FFFF +:1031E00015C08091E2008E7F8093E2008091E20022 +:1031F00080618093E2008091D80080628093D80043 +:1032000019BC85E080930E040E9423158091E10093 +:1032100084FF30C08091E20084FF2CC080E189BD32 +:1032200082E189BD09B400FEFDCF8091D8008F7D79 +:103230008093D8008091E1008F7E8093E10080919F +:10324000E2008F7E8093E2008091E20081608093B3 +:10325000E20080910A04882311F084E007C0809185 +:10326000E30087FD02C081E001C083E080930E048B +:103270000E9424158091E10083FF29C08091E20023 +:1032800083FF25C08091E100877F8093E10082E089 +:1032900080930E0410920A048091E1008E7F809347 +:1032A000E1008091E2008E7F8093E2008091E20055 +:1032B00080618093E20042E060E080E00E94A51718 +:1032C0008091F00088608093F0000E942215FF91A9 +:1032D000EF91BF91AF919F918F917F916F915F918E +:1032E0004F913F912F910F900FBE0F901F90189507 +:1032F0001F920F920FB60F9211242F933F934F936B +:103300005F936F937F938F939F93AF93BF93CF936D +:10331000DF93EF93FF93C091E900CF708091EC00B1 +:10332000D82FD17080FDD0E81092E9008091F00094 +:10333000877F8093F00078940E94BC191092E90076 +:103340008091F00088608093F000CD2BCF70C09307 +:10335000E900FF91EF91DF91CF91BF91AF919F91E4 +:103360008F917F916F915F914F913F912F910F902E +:103370000FBE0F901F9018951F93CF93DF93CDB77B +:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 +:10339000F4E088E08E0F9091F10091938E13FBCFB3 +:1033A0000E943A158091E80083FF1FC180910F04AD +:1033B00090911004492F50E04A30510508F015C192 +:1033C000FA01E857FF4F0C948431803881F082383D +:1033D00009F00BC1809113048F708093E9008091F4 +:1033E000EB0085FB882780F91092E90006C08091E8 +:1033F0000B0490910C04911182609091E800977FEA +:103400009093E8008093F1001092F100C8C0282F3B +:103410002D7F09F0EAC0882319F0823061F0E5C001 +:1034200080911104813009F0E0C0933009F080E010 +:1034300080930C042BC080911104811127C08091CE +:1034400013048F7009F4D1C08093E9002091EB0040 +:1034500020FF1CC0933021F48091EB00806214C0E7 +:103460009091EB0090619093EB0021E030E0A90196 +:1034700002C0440F551F8A95E2F74093EA0010926C +:10348000EA008091EB0088608093EB001092E900E5 +:103490008091E800877F86C08111A7C01091110438 +:1034A0001F778091E3008078812B8093E3008091E7 +:1034B000E800877F8093E8000E94DA178091E80097 +:1034C00080FFFCCF8091E30080688093E3001111BE +:1034D00002C082E001C083E080930E0486C0805861 +:1034E000823008F082C080911104909112048C3DCA +:1034F00053E0950779F583E08A838AE289834FB7A1 +:10350000F894DE01139620E03EE051E2E32FF0E074 +:1035100050935700E49120FF03C0E295EF703F5FA6 +:10352000EF708E2F90E0EA3010F0C79601C0C09681 +:103530008D939D932F5F243149F74FBF8091E80011 +:10354000877F8093E8006AE270E0CE0101960E94D6 +:10355000E11614C0AE014F5F5F4F609113040E94EB +:103560002816BC01009709F440C09091E800977FAD +:103570009093E80089819A810E9444178091E80025 +:103580008B778093E80031C0803879F58091E8002E +:10359000877F8093E80080910A048093F1008091F6 +:1035A000E8008E778093E8000E94DA171EC0811130 +:1035B0001CC0909111049230C0F48091E800877F84 +:1035C0008093E80090930A040E94DA1780910A041D +:1035D000811106C08091E30087FD02C081E001C037 +:1035E00084E080930E040E9426158091E80083FFFA +:1035F0000AC08091E800877F8093E8008091EB000B +:1036000080628093EB00AA960FB6F894DEBF0FBEDF +:10361000CDBFDF91CF911F9108950895CF938091F1 +:103620000E048823A1F0C091E900CF709091EC00C6 +:10363000892F817090FD80E8C82B1092E90080915D +:10364000E80083FD0E94BC19CF70C093E900CF91C0 +:10365000089590938F0380938E030895E0918E03D5 +:10366000F0918F03309721F00190F081E02D0994C3 +:1036700080E00895E0918E03F0918F03309721F060 +:103680000280F381E02D09940895E0918E03F0917A +:103690008F03309721F00480F581E02D099408957F +:1036A00020918C0330918D038217930771F09093D2 +:1036B0008D0380938C03E0918E03F0918F033097FC +:1036C00021F00680F781E02D0994089520918A0366 +:1036D00030918B038217930771F090938B03809343 +:1036E0008A03E0918E03F0918F03309721F00084DC +:1036F000F185E02D0994089508950C947C1B0E9497 +:1037000004280E949A0B0E948A280C94452D4F92FF +:103710005F927F928F929F92AF92BF92CF92DF92F1 +:10372000EF92FF920F931F93CF93DF93CDB7DEB746 +:103730002A970FB6F894DEBF0FBECDBF0E94890C4A +:1037400091E9C92E93E0D92E00E010E0AA24A394B9 +:10375000B12C702E802F0E94D20D4C01F6014190A9 +:1037600051906F014826592641145104B1F40F5F5E +:103770001F4F0430110569F78FEF89838A831B82FD +:103780000E940D288160782F9D838C8349815A8106 +:103790006B818D810E94401C3AC08091ED0381FDB8 +:1037A0000E94DB0D20E030E07501022E02C0EE0C1D +:1037B000FF1C0A94E2F7C70184219521892B09F1A6 +:1037C0002E837F828E209F2091E0892809F490E04B +:1037D00098870E940D288160782F9A8789874E816B +:1037E0005F8168858A850E94401C000F111FF801C7 +:1037F000EF56FC4F80819181E826F926F182E08224 +:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC +:10381000762A109190030E942E1B1817D9F00E944F +:103820002E1B809390032A960FB6F894DEBF0FBE2E +:10383000CDBFDF91CF911F910F91FF90EF90DF905F +:10384000CF90BF90AF909F908F907F905F904F9060 +:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 +:10386000DF91CF911F910F91FF90EF90DF90CF905C +:10387000BF90AF909F908F907F905F904F900895F2 +:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B +:103890000FBECDBF4F83588769877A878B87DE013C +:1038A000119686E0FD0111928A95E9F785E0FE0107 +:1038B000379601900D928A95E1F749815A816B8183 +:1038C0007C818D819E810E94E5232B960FB6F89412 +:1038D000DEBF0FBECDBFDF91CF910895CF93882378 +:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 +:1038F000BBC089E30E948E260E945B2789E30CC02F +:10390000833879F40E942E1B80FDAEC083E50E94AF +:103910008E260E945B2783E50E94D026CF910C94CF +:103920005B27843859F40E942E1B82FD9DC087E4DA +:103930000E948E260E945B2787E4EECF8CEF8C0FCF +:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 +:103950000E948E26E3CF80E28C0F883048F4C77037 +:1039600081E001C0880FCA95EAF70E941427D6CFDC +:103970008BE58C0F833078F4C53A29F0C63A31F0E4 +:1039800083E890E005C081E890E002C082E890E022 +:10399000CF910C94501B88E58C0F833108F064C0E4 +:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 +:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F +:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F +:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D +:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 +:1039F00038C082EE90E035C089EE90E032C08AEEA9 +:103A000090E02FC085EB90E02CC086EB90E029C0C1 +:103A100087EB90E026C08CEC90E023C08DEC90E02A +:103A200020C083E891E01DC08AE891E01AC082E9D5 +:103A300091E017C084E991E014C081E292E011C0E6 +:103A400083E292E00EC084E292E00BC085E292E055 +:103A500008C086E292E005C087E292E002C08AE2F6 +:103A600092E0CF910C94661BCF910895882309F4BE +:103A70004BC0823859F40E942E1B81FF45C089E358 +:103A80000E948E260E945B2789E30CC0833871F464 +:103A90000E942E1B80FF38C083E50E948E260E9464 +:103AA0005B2783E50E94D0260C945B27843859F469 +:103AB0000E942E1B82FF28C087E40E948E260E944F +:103AC0005B2787E4EFCF9CEF980F913A58F390E291 +:103AD000980F983050F4877091E001C0990F8A9543 +:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 +:103AF00020F480E090E00C94501B885A833120F42D +:103B000080E090E00C94661B0895882321F00E94C9 +:103B100014270C945B270895882321F00E941A270C +:103B20000C945B270895BF92CF92DF92EF92FF92A1 +:103B30000F931F93CF93DF9300D000D000D0CDB769 +:103B4000DEB725E0FC01DE01119601900D922A9569 +:103B5000E1F7FC01D08011810281258122952F702F +:103B600043815481452B09F472C31F3F21F4FFEFB9 +:103B7000DF1609F46CC37C012E830E949B07D98257 +:103B80001A8369817A81802F0E948A26182FB92E84 +:103B90000E943F260E9406252E81002319F00E94D4 +:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE +:103BB0000C9484318B2D807F9B2D9F70F92E882350 +:103BC00019F0F29480EFF822002389F0FF2009F425 +:103BD0007CC280E2810F883020F48F2D0E94142750 +:103BE00003C08F2D0E9424270E945B276EC2812F65 +:103BF0000E94361DFF2009F42AC3105E8F2D183055 +:103C000018F40E941A2702C00E942A2726960FB68F +:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 +:103C2000FF90EF90DF90CF90BF900C945B278B2D8F +:103C3000807F9B2D9F70803211F4892F03C0892FC4 +:103C40008295807F112319F0113011F12BC00023D0 +:103C5000A9F0222389F1213079F526960FB6F89440 +:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF +:103C7000EF90DF90CF90BF900C944427222319F04F +:103C8000213009F4E4C28E830E9447278E819BC1B4 +:103C9000002321F0263008F0DAC20EC0253008F0EB +:103CA000D6C291C10023C9F0222331F0F7019581DA +:103CB00090FF0BC29F70958326960FB6F894DEBFD7 +:103CC0000FBECDBFDF91CF911F910F91FF90EF906D +:103CD000DF90CF90BF900C94851D222309F473C10F +:103CE00009C22B2D26952695237030E0211531052C +:103CF00021F021303105D1F0AAC2002321F0812F1B +:103D00009B2D937002C080E090E026960FB6F89449 +:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE +:103D2000EF90DF90CF90BF900C94501B002321F0B8 +:103D3000812F9B2D937002C080E090E026960FB6F5 +:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 +:103D5000FF90EF90DF90CF90BF900C94661B812F67 +:103D6000002319F00E947E2902C00E94E6292696AF +:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C +:103D80000F91FF90EF90DF90CF90BF900C946B2A33 +:103D90008B2D837009F07BC0011159C2812F829550 +:103DA00086958770880F880F912F9F70C92ED12C10 +:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 +:103DC0000A94D2F714FF12C04FE050E060E070E0B8 +:103DD00004C0440F551F661F771F8A95D2F7CB0189 +:103DE000BA01609570958095909503C060E070E091 +:103DF000CB012B2D269526952370422F50E0423083 +:103E00005105D9F04330510569F16C297D298E297E +:103E10009F294130510551F126960FB6F894DEBF27 +:103E20000FBECDBFDF91CF911F910F91FF90EF900B +:103E3000DF90CF90BF900C942D256C297D298E2981 +:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 +:103E5000CF911F910F91FF90EF90DF90CF90BF9087 +:103E60000C9449250E942D25C701B60126960FB650 +:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 +:103E8000FF90EF90DF90CF90BF900C94112500230E +:103E900019F08B2D817001C08695882309F4D7C154 +:103EA000812F829586958770880F880F912F9F703C +:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 +:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 +:103ED00060E070E004C0440F551F661F771F8A958D +:103EE000D2F7CB01BA01609570958095909503C08B +:103EF00060E070E0CB012B2D269526952370422F94 +:103F000050E042305105D9F04330510569F16C2938 +:103F10007D298E299F294130510551F126960FB6F2 +:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF +:103F3000FF90EF90DF90CF90BF900C9407266C29F4 +:103F40007D298E299F2926960FB6F894DEBF0FBED5 +:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 +:103F6000CF90BF900C9423260E940726C701B6016C +:103F700026960FB6F894DEBF0FBECDBFDF91CF916E +:103F80001F910F91FF90EF90DF90CF90BF900C9416 +:103F9000EB25103F49F118F4103E48F491C0123F50 +:103FA00009F453C0E8F1133F09F464C089C01F70DD +:103FB0008B2D8F71002321F00E948425812F7CCED0 +:103FC0000E94A525812F26960FB6F894DEBF0FBE5E +:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 +:103FE000CF90BF900C948C1D0023B1F0253008F0C9 +:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 +:10400000CDBFDF91CF911F910F91FF90EF90DF9087 +:10401000CF90BF900C94CA25263008F018C1E9CF84 +:104020000023A9F08B2D8F7126960FB6F894DEBF72 +:104030000FBECDBFDF91CF911F910F91FF90EF90F9 +:10404000DF90CF90BF900C948425002359F38B2DE3 +:104050008F7126960FB6F894DEBF0FBECDBFDF91ED +:10406000CF911F910F91FF90EF90DF90CF90BF9075 +:104070000C94A525002399F08B2D8F7126960FB6F1 +:10408000F894DEBF0FBECDBFDF91CF911F910F918E +:10409000FF90EF90DF90CF90BF900C946F25269605 +:1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 +:1040B0000F91FF90EF90DF90CF90BF900C9465250B +:1040C0000023A9F0222309F4ADCF812F26960FB645 +:1040D000F894DEBF0FBECDBFDF91CF911F910F913E +:1040E000FF90EF90DF90CF90BF900C946E1C222336 +:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 +:10410000CDBFDF91CF911F910F91FF90EF90DF9086 +:10411000CF90BF900C94361D4B2D4F70612FC7016F +:104120000E948D0526960FB6F894DEBF0FBECDBF58 +:10413000DF91CF911F910F91FF90EF90DF90CF9083 +:10414000BF900C948924011182C09B2D9F70492F30 +:1041500050E04230510509F443C0C4F44115510503 +:1041600071F14130510509F072C026960FB6F894EE +:10417000DEBF0FBECDBFDF91CF911F910F91FF909A +:10418000EF90DF90CF90BF900C946D2D4330510590 +:10419000C1F14430510509F05AC0812F26960FB65F +:1041A000F894DEBF0FBECDBFDF91CF911F910F916D +:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC +:1041F0001F910F91FF90EF90DF90CF90BF900C94A4 +:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10421000CF911F910F91FF90EF90DF90CF90BF90C3 +:104220000C949C2D4B2D4F70612FC70126960FB615 +:10423000F894DEBF0FBECDBFDF91CF911F910F91DC +:10424000FF90EF90DF90CF90BF900C949D07269643 +:104250000FB6F894DEBF0FBECDBFDF91CF911F9197 +:104260000F91FF90EF90DF90CF90BF9008950E9444 +:1042700031270E9441270E9406270E945B270E9447 +:104280001C2B0E946B2A80E090E00E94501B80E073 +:1042900090E00C94661B0E9421270C9437210E9409 +:1042A0007F26292F22952F7030E02C3031054CF4D9 +:1042B0002A3031056CF4225031092230310588F45E +:1042C00007C02C30310549F02F30310531F009C0DD +:1042D000803E48F0803F29F406C093FB882780F990 +:1042E000089580E0089581E00895CF93DF9300D092 +:1042F00000D01F92CDB7DEB70F900F900F900F90A8 +:104300000F90DF91CF910895CF93DF9300D000D02D +:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D +:10432000CDBFDF91CF9108951F93CF93DF93C091BD +:10433000990316E080919A03C81799F0D0E01C9F6A +:10434000F0011D9FF00D1124E556FC4F4081518175 +:1043500062817381848195810E9484212196C77036 +:10436000E9CFDF91CF911F9108954091CB035091F8 +:10437000CC036091CD037091CE038091CF039091D7 +:10438000D0030C9484218091D00382958F7009F022 +:1043900054C08091CD03882309F44FC080919903C4 +:1043A000A0919A036091CB037091CC034091CE030E +:1043B0005091CF03B6E08A1709F43FC090E0411551 +:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A +:1043D000B99FF00D1124E556FC4F218172132AC0BC +:1043E0002081621327C02281211124C023813481BE +:1043F0002417350710F421503109241B350B283CB4 +:104400003105C0F42091D0032F7020612093D00398 +:1044100026E0289FF001299FF00D1124E056FC4F63 +:1044200080818F70806180838BEC93E00E94931D6C +:104430000C94942101968770BECF0895CF92DF929D +:10444000EF92FF920F931F93CF93DF93CDB7DEB719 +:1044500062970FB6F894DEBF0FBECDBF8C0185E02A +:10446000F801DE011D9601900D928A95E1F7D801C1 +:104470004C9111965C91119712966C91129713962C +:10448000CD90DC9014973091CB037091CC03809148 +:10449000CE039091CF03009709F46BC17F3F19F4CD +:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F +:1044B0002091D003C816D90628F0F601E81BF90BA5 +:1044C000CF0104C0809590958C0D9D1DFF24F39421 +:1044D000883C910578F0F12C207F09F0C6C07C2D36 +:1044E000D98AC88A89890E9475218BEC93E00E9441 +:1044F000931DB1C0822F807F09F046C0751314C090 +:10450000341312C0611110C02F7020612093D003AA +:104510000E94B5218BEC93E00E94931D8091D00303 +:10452000D80115968C932EC0CD2819F15F3F11F458 +:104530004F3FF9F0F62E61111CC080919903209134 +:104540009A0336E0821709F45AC090E0389FF001D0 +:10455000399FF00D1124E556FC4F7181571306C0A9 +:104560007081471303C07281711103C00196877077 +:10457000E9CFF62E662309F418C18091D00381603B +:104580008093D003F12C11C1751308C0341306C0F9 +:10459000611104C08091D003D801C3C04D875E87EC +:1045A0008D859E856A8B0E944F216A898823E1F15F +:1045B0006623D1F12091D003822F82958F7090E0F5 +:1045C000029774F08091CB039091CC0398878F83EE +:1045D0001986DB86CA862C87CE0107960E94931D1A +:1045E00086E0F801ABECB3E001900D928A95E1F71B +:1045F0000E94C3210E94B521FF24F394D6C04D87A9 +:104600005E878D859E850E947F26292F22952F709B +:1046100030E0223031050CF0BCC09F7009F0B6C00C +:10462000805E883008F4C1C0C8010E94931DE4CFA9 +:10463000C816D90608F453C0F601E81BF90BCF01E0 +:10464000883C910508F450C0F12C7C2DD98AC88A89 +:1046500089890E947521EBECF3E086E0DF011D9271 +:104660008A95E9F70E94B521A0C0751314C03413D0 +:1046700012C0611110C08091D003F8018583C80178 +:104680000E94931D86E0EBECF3E0DF011D928A951A +:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 +:1046A0000E944F216A89882309F4BECF662309F44A +:1046B000BBCF2091D003822F82958F7090E002971C +:1046C0000CF48ECF8091CB039091CC039A83898395 +:1046D0001B82DD82CC822E83CE0101967FCF809516 +:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 +:1046F00075132EC034132CC02091D00320FD1FC091 +:10470000822F82958F70D9F0D80115962C9315972A +:104710008F3049F08F5F982F9295907F822F8F7006 +:10472000892B15968C93C8010E94931D86E0F80191 +:10473000ABECB3E001900D928A95E1F793CF86E060 +:10474000F801ABECB3E001900D928A95E1F72DC032 +:104750004D875E878D859E850E944F21811140CFB8 +:104760008091D00381608093D003C8010E94931D83 +:104770001CC0662309F458CF4D875E878D859E85C2 +:104780000E944F21882309F44FCF2ACF811148CFAF +:104790000CC0243031050CF047CF9F7009F440CF96 +:1047A000F8019581907F09F03BCF8F2D62960FB66F +:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 +:1047C000FF90EF90DF90CF9008951F93CF93DF93EA +:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 +:1047E0004F83588769877A878B879C87CE01079686 +:1047F0000E941E22882369F08F8198852A853B8537 +:10480000232BF1F19F3F09F063C08F3F09F060C097 +:1048100037C086E0FE013796DE01119601900D92B9 +:104820008A95E1F76F817885EA85FB85309741F1BC +:104830007F3F11F46F3F21F120919A0330E0C901CD +:104840000196877099274091990350E08417950746 +:1048500009F447C069837A83FD83EC8396E0929FD5 +:10486000D001939FB00D1124A556BC4FFE01319687 +:1048700001900D929A95E1F780939A030E949421FA +:1048800016E08091990390919A038917C1F1189FBE +:10489000C001112485569C4F0E941E22882379F165 +:1048A000E09199031E9FF0011124E556FC4F4081D1 +:1048B000518162817381848195810E9484218091DC +:1048C000990390E001968770992780939903D9CF37 +:1048D0004F81588569857A858B859C850E948421C6 +:1048E000CFCF0E944B2110929A0310929903EBECC8 +:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F +:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 +:104910000895EF92FF920F931F93CF93DF938C0133 +:10492000009709F46CC0F12CEE24E394E801219681 +:10493000F8018491843740F4843008F051C081300C +:1049400081F0823019F15BC0853709F444C0A8F1C9 +:104950009CE7980F903708F052C08F770E94361D61 +:1049600041C00E5F1F4FFE01C49180E28C0F883062 +:1049700048F4C7708E2D01C0880FCA95EAF70E94CF +:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 +:10499000FE01C49180E28C0F883058F4C7708E2DD0 +:1049A00001C0880FCA95EAF70E943A270E945B2748 +:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD +:1049C000C491CC2381F08FE99FE00197F1F700C0FB +:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 +:1049E0000E946E1C8E018F2D882309F49FCFEFE962 +:1049F000FFE03197F1F700C000008150F5CFDF9163 +:104A0000CF911F910F91FF90EF90089508956093BB +:104A1000D5037093D6038093D7039093D8030C9457 +:104A200037210F931F930091D5031091D603209146 +:104A3000D7033091D803DC01CB01802B912BA22B23 +:104A4000B32B8093D5039093D603A093D703B09351 +:104A5000D8031F910F910C9437210F931F9300914E +:104A6000D5031091D6032091D7033091D803DC01F0 +:104A7000CB0180239123A223B3238093D50390936A +:104A8000D603A093D703B093D8031F910F910C9432 +:104A900037210F931F930091D5031091D6032091D6 +:104AA000D7033091D803DC01CB0180279127A227BF +:104AB000B3278093D5039093D603A093D703B093E5 +:104AC000D8031F910F910C9437211092D1031092AB +:104AD000D2031092D3031092D4030C94372141E0F7 +:104AE00050E060E070E004C0440F551F661F771F60 +:104AF0008A95D2F74093D1035093D2036093D303A6 +:104B00007093D4030C94372141E050E060E070E0F2 +:104B100004C0440F551F661F771F8A95D2F78091F6 +:104B2000D1039091D203A091D303B091D403482B29 +:104B3000592B6A2B7B2B4093D1035093D203609364 +:104B4000D3037093D4030C94372141E050E060E02C +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B600040955095609570958091D1039091D203B6 +:104B7000A091D303B091D403482359236A237B2304 +:104B80004093D1035093D2036093D3037093D40323 +:104B90000C94372141E050E060E070E004C0440F25 +:104BA000551F661F771F8A95D2F78091D103909188 +:104BB000D203A091D303B091D403482759276A2781 +:104BC0007B274093D1035093D2036093D303709318 +:104BD000D4030C9437210F931F930091D1031091AC +:104BE000D2032091D3033091D403DC01CB01802B7D +:104BF000912BA22BB32B8093D1039093D203A0933C +:104C0000D303B093D4031F910F910C9437210F93CA +:104C10001F930091D1031091D2032091D3033091BF +:104C2000D403DC01CB0180239123A223B3238093FF +:104C3000D1039093D203A093D303B093D4031F91D5 +:104C40000F910C9437210F931F930091D103109172 +:104C5000D2032091D3033091D403DC01CB01802710 +:104C60009127A227B3278093D1039093D203A093D7 +:104C7000D303B093D4031F910F910C94372108955F +:104C8000CF92DF92EF92FF920F931F93CF93DF9318 +:104C90008C01C090D503D090D603E090D703F0905C +:104CA000D8038091D1039091D203A091D303B09106 +:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 +:104CC000C6010C2E04C0B695A795979587950A94B2 +:104CD000D2F780FF06C0B8018C2F0E94F709019718 +:104CE00021F4219760F780E001C08C2FDF91CF91F4 +:104CF0001F910F91FF90EF90DF90CF900895CF9389 +:104D0000DF93EC010E944026BE010E94F709DF916B +:104D1000CF910895CB010E947F260895909186023D +:104D2000992321F090918702911109C02091880266 +:104D300030918902F90132969FEF40E01FC0982F11 +:104D40009695969596959F3050F5E0918802F09152 +:104D50008902E90FF11D877021E030E0A90102C04E +:104D6000440F551F8A95E2F7CA019181892B8183EF +:104D700008959F3F39F04F5F4E3041F051915813E5 +:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 +:104D9000F901E90FF11D97FDFA95828308950895B1 +:104DA00090918602992321F090918702911109C078 +:104DB0002091880230918902F9013296205F3F4F9D +:104DC0001FC0982F9695969596959F30F0F4E09198 +:104DD0008802F0918902E90FF11D877021E030E02F +:104DE000A90102C0440F551F8A95E2F7CA018095B8 +:104DF00091818923818308953196E217F30729F081 +:104E000090819813F9CF1082F7CF089581E090E058 +:104E1000E0918802F0918902E80FF91F1082019653 +:104E200080319105A9F708959091EC03892B809327 +:104E3000EC03089580959091EC0389238093EC0313 +:104E400008951092EC0308959091EB03892B8093C1 +:104E5000EB03089580959091EB0389238093EB03F6 +:104E600008951092EB0308959091EA03892B8093A3 +:104E7000EA03089580959091EA0389238093EA03D9 +:104E800008951092EA0308958093D903089510922B +:104E9000D90308958091880290918902FC0131968E +:104EA0009C01205F3F4F80E0919191118F5FE2174D +:104EB000F307D1F70895E0918802F091890280917B +:104EC000EC038083E0918802F091890290818091C7 +:104ED000EB03892B8083E0918802F0918902908115 +:104EE0008091EA03892B80838091D903882361F024 +:104EF000E0918802F09189029081892B80830E9441 +:104F00004A2781111092D9038091880290918902D9 +:104F10000C943A1B80910E04843039F11092EE0308 +:104F200020E488E190E00FB6F894A89580936000A3 +:104F30000FBE2093600080E00E94540580E00E9434 +:104F4000D20A83B7817F846083BF83B7816083BFC8 +:104F50007894889583B78E7F83BF88E10FB6F894E5 +:104F600080936000109260000FBE08950895089528 +:104F7000CF9380E00E9454050E94B6270E94890CBE +:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 +:104F9000CF5FC430C1F780E001C081E0CF910895B8 +:104FA0000E944B2180E00E9454050E94452D0E94E2 +:104FB0002E1B0C94D20A1F920F920FB60F9211243F +:104FC0008F939F93AF93BF938091EE03811113C092 +:104FD0008091EF039091F003A091F103B091F2035F +:104FE0004196A11DB11D8093EF039093F003A09310 +:104FF000F103B093F203BF91AF919F918F910F9006 +:105000000FBE0F901F90189582E084BD93E095BD70 +:105010009AEF97BD80936E0008952FB7F894809112 +:10502000EF039091F003A091F103B091F2032FBF31 +:105030000895CF92DF92EF92FF920F931F932FB7B5 +:10504000F8944091EF035091F0036091F103709157 +:10505000F2032FBF6A017B01EE24FF248C0120E0C4 +:1050600030E0C016D106E206F30610F441505109B3 +:105070009A01281B390BC9011F910F91FF90EF90E6 +:10508000DF90CF9008951F920F920FB60F921124C8 +:105090008F939F93AF93BF938091EF039091F00311 +:1050A000A091F103B091F2030196A11DB11D80936F +:1050B000EF039093F003A093F103B093F203BF9139 +:1050C000AF919F918F910F900FBE0F901F901895E9 +:1050D0000E942B18F8942FEF87EA91E62150804028 +:1050E0009040E1F700C0000087E090EBDC01809386 +:1050F000190490931A04A0931B04B0931C049CE021 +:1051000088E10FB6F894A895809360000FBE909345 +:105110006000FFCF0E94C928811102C00E94A5280B +:105120000E94D4288093ED030E94E1288093170405 +:1051300087FB882780F9809387020E94D828682FF0 +:1051400070E080E090E00C9407256DEE7EEF80E04B +:1051500090E00E94AA3160E082E090E00E949831E5 +:1051600060E083E090E00E94983160E084E090E0AD +:105170000E94983160E085E090E00E94983160E004 +:1051800086E090E00E9498316FEF87E090E00C9409 +:10519000983180E090E00E94923121E08D3E9E4F58 +:1051A00009F020E0822F089582E090E00C948A318B +:1051B00083E090E00C948A31682F83E090E00C94B7 +:1051C000983184E090E00C948A31682F84E090E07C +:1051D0000C94983186E090E00C948A31682F86E038 +:1051E00090E00C94983187E090E00C948A31682F1D +:1051F00087E090E00C9498318091F50380FF0BC01C +:1052000060918D0285E0689FB001112475956795C6 +:10521000759567952BC081FF09C060918D0285E06F +:10522000689FB00111247595679520C082FF07C063 +:1052300060918D0285E0689FB001112417C09091A4 +:10524000F6039923D1F060918C02961788F720918C +:105250008D0285E0289F90011124929FA001939FC9 +:10526000500D112470E0CA010E9470316038710540 +:1052700040F46115710539F002C065E070E0862FD9 +:1052800008958FE7089581E008958091F50380FFE8 +:1052900008C060918B0270E075956795759567956C +:1052A00021C081FF06C060918B0270E07595679503 +:1052B00019C082FF04C060918B0270E010C0909111 +:1052C000F6039923C1F060918A029617A0F78091A6 +:1052D0008B02899FC001112470E00E9470316038F8 +:1052E000710528F46115710521F0862F08958FE767 +:1052F000089581E0089561E070E0F4CF803F21F4EB +:105300000E94FC28819504C0813F29F40E94FC285A +:105310008093F9030895823F21F40E94FC2881952F +:1053200004C0833F29F40E94FC288093F803089569 +:10533000893F19F40E94452905C08A3F31F40E9433 +:10534000452981958093FA0308958B3F21F40E94AB +:105350004529819504C08C3F29F40E9445298093FA +:10536000FB030895843F21F48091F703816017C007 +:10537000853F21F48091F703826011C0863F21F4BC +:105380008091F70384600BC0873F21F48091F7037D +:10539000886005C0883F31F48091F7038061809375 +:1053A000F70308958D3F21F48091F50381600BC0D0 +:1053B0008E3F21F48091F503826005C08F3F29F470 +:1053C0008091F50384608093F5030895803F39F45C +:1053D0008091F90387FF6CC01092F90369C0813F87 +:1053E00029F48091F9031816BCF362C09091F80378 +:1053F000823F29F497FF5CC01092F80359C0833FA5 +:1054000019F41916CCF354C0893F41F48091FA0382 +:1054100018160CF04DC01092FA034AC08A3F29F4C6 +:105420008091FA0387FF44C0F6CF8B3F39F4809117 +:10543000FB0387FF3DC01092FB033AC08C3F29F469 +:105440008091FB031816BCF333C0843F21F4809194 +:10545000F7038E7F17C0853F21F48091F7038D7F7E +:1054600011C0863F21F48091F7038B7F0BC0873FEB +:1054700021F48091F703877F05C0883F31F4809144 +:10548000F7038F7E8093F70313C08D3F21F4809143 +:10549000F5038E7F0BC08E3F21F48091F5038D7F45 +:1054A00005C08F3F29F48091F5038B7F8093F5032E +:1054B0008091F80381110EC08091F90381110AC017 +:1054C0008091FA03811106C08091FB03811102C013 +:1054D0001092F603089587EF93E00E94451B0E9407 +:1054E0000D289093F4038093F30308951F93CF93B3 +:1054F000DF938091F3039091F4030E941928AC018B +:105500009091F603992321F020918E0230E006C09D +:1055100020918F028AE0289F90011124421753079F +:1055200008F486C08091F803C091F903D091FA0382 +:105530001091FB03811107C0C11176C0D11174C055 +:10554000111172C075C09F3F19F09F5F9093F603D1 +:10555000181624F40E94FC288093F8038091F80325 +:1055600087FF05C00E94FC2881958093F8031C16D4 +:1055700024F40E94FC288093F9038091F90387FFAB +:1055800005C00E94FC2881958093F9036091F8037F +:10559000662339F1C091F903CC2319F1772767FD10 +:1055A0007095872F972F0E94E02E23E333E343E388 +:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E +:1055C000772767FD7095872F972F0E94E02E23E3A2 +:1055D00033E343E35FE30E94942F0E94AD2E609378 +:1055E000F9031D1624F40E9445298093FA03809143 +:1055F000FA0387FF05C00E94452981958093FA032D +:10560000111624F40E9445298093FB038091FB032B +:1056100087FF05C00E94452981958093FB03DF9198 +:10562000CF911F910C946B2A9F3F09F08ECF96CF9C +:10563000DF91CF911F910895E7EFF3E085E0DF015F +:105640001D928A95E9F71092F6031092F5030895DA +:10565000833081F128F4813059F08230D1F00895FF +:10566000853009F449C0B8F1863009F456C0089570 +:1056700080918F02262F30E0280F311D2F3F3105FA +:1056800024F4680F60938F0208958FEF80938F0248 +:10569000089580918E02262F30E0280F311D2F3F74 +:1056A000310524F4680F60938E0208958FEF809384 +:1056B0008E02089580918D02262F30E0280F311D33 +:1056C0002F3F310524F4680F60938D0208958FEF0A +:1056D00080938D02089580918C02262F30E0280F50 +:1056E000311D2F3F310524F4680F60938C0208951B +:1056F0008FEF80938C02089580918B02262F30E0EB +:10570000280F311D2F3F310524F4680F60938B0261 +:1057100008958FEF80938B02089580918A02262F3F +:1057200030E0280F311D2F3F310524F4680F6093BE +:105730008A0208958FEF80938A020895833011F1D1 +:1057400028F4813049F0823091F00895853081F15C +:1057500020F18630C1F1089580918F02681720F4FE +:10576000861B80938F02089510928F020895809176 +:105770008E02681720F4861B80938E020895109283 +:105780008E02089580918D02681720F4861B809305 +:105790008D02089510928D02089580918C026817F1 +:1057A00020F4861B80938C02089510928C02089539 +:1057B00080918B02681720F4861B80938B020895DA +:1057C00010928B02089580918A02681720F4861B3C +:1057D00080938A02089510928A0208950F931F936E +:1057E000873208F048C08E3108F094C0803109F447 +:1057F0007EC008F5873009F468C068F4863009F087 +:10580000A4C08091ED03817F8E7F8093ED0381E0C2 +:105810008093FD039BC08B3009F490C08E3009F05B +:1058200094C08091ED0382FB222720F991E092271A +:1058300090FB82F965C0863109F480C060F4813143 +:1058400009F083C00E944B219091870281E0892753 +:105850008093870273C0893109F470C08B3109F0DD +:1058600074C08091ED0381FB222720F991E09227FB +:1058700090FB81F945C0883309F460C050F4893247 +:1058800009F45EC0853309F45BC0873209F458C05F +:105890005CC0833409F454C028F48A3308F455C03A +:1058A000895339C0883409F050C00E944B210E94AE +:1058B00090060FEF13ED20E3015010402040E1F778 +:1058C00000C000000E94682839C09091ED03892F24 +:1058D0008095817080FB90F929F096609860909394 +:1058E000ED0334C0997F977F9093ED0327C080919B +:1058F000ED0383FB222720F991E0922790FB83F9A7 +:105900008093ED039923D1F08091ED038160809322 +:10591000ED0314C08D5141E050E060E070E08A0179 +:105920009B0104C0000F111F221F331F8A95D2F75D +:10593000C901B8010E9407250E944B2181E006C0E1 +:1059400061E070E080E090E0F5CF80E01F910F9182 +:10595000089580E0089580E00895CF93C82F809146 +:10596000FD03813069F018F08230C9F184C0E09104 +:105970008802F09189028081823209F07EC007C0DE +:10598000E0918802F09189028081823261F48C2F4B +:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 +:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 +:1059B000C43179F048F4CB3079F0C03109F061C0DE +:1059C00082E08093FD0308C0C93219F0C83321F08A +:1059D00058C01092FD0355C081E0817054C0C93297 +:1059E00091F120F5C43179F1B0F4C73009F047C026 +:1059F0008EE180938F0282E380938E028AE080930F +:105A00008D0284E180938C0288E080938B0288E28F +:105A100080938A0234C0CE51C63088F5EC2FF0E076 +:105A2000E65FFC4F80818093FC0329C0CE34E9F00F +:105A300020F4CB3421F56AE013C0C13579F0C235CA +:105A4000F1F461E00DC08091FC03882319F01092FD +:105A5000FC0315C081E08093FD0315C061E006C022 +:105A60008091FC030E94282B0AC06AE08091FC030D +:105A70000E949E2B04C01092FD0380E004C081E0D0 +:105A800002C080E0AACFCF9108950E94C928811159 +:105A900002C00E94A5280E94EA288093180480FF73 +:105AA00002C0869501C080E00C94540580911804D2 +:105AB000982F9695292F30E0233031054CF49F5FC5 +:105AC000990F8170892B8160809318040E94EE28C1 +:105AD0008091180486950C94540580911804982F91 +:105AE000969591F09158990F8170892B80931804A5 +:105AF0008E7F91E009F490E08091180490FB80F98A +:105B0000809318040E94EE288091180486950C94C6 +:105B1000540580911804982F909590FB80F98093FC +:105B200018040E94EE288091180480FF02C0869518 +:105B300001C080E00C94540590911804892F86953B +:105B40008F5F8F779170843028F4880F892B809332 +:105B5000180402C090931804809118048E7F91E07D +:105B600009F490E08091180490FB80F98093180468 +:105B70000E94EE288091180486950C94540520917B +:105B80001804922F96958927982F990F822F81704C +:105B9000892B809318048E7F91E009F490E0809126 +:105BA000180490FB80F9809318040E94EE288091DD +:105BB000180486950C9454055058BB27AA270ED07C +:105BC00075C166D130F06BD120F031F49F3F11F4F4 +:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC +:105BE00080F3BA17620773078407950718F071F4FA +:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 +:105C0000B90190010C01CA01A0011124FF27591B01 +:105C100099F0593F50F4503E68F11A16F040A22F07 +:105C2000232F342F4427585FF3CF46953795279578 +:105C3000A795F0405395C9F77EF41F16BA0B620B77 +:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE +:105C5000771F881FC2F70EC0BA0F621F731F841F01 +:105C600048F4879577956795B795F7959E3F08F027 +:105C7000B3CF9395880F08F09927EE0F97958795E6 +:105C80000895D9D008F481E008950CD00FC107D150 +:105C900040F0FED030F021F45F3F19F0F0C0511118 +:105CA00039C1F3C014D198F39923C9F35523B1F343 +:105CB000951B550BBB27AA2762177307840738F07B +:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA +:105CD0000E2E3AF0E0E830D091505040E695001C8E +:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A +:105CF000261737074807AB07B0E809F0BB0B802D24 +:105D0000BF01FF2793585F4F2AF09E3F510568F06F +:105D1000B6C000C15F3FECF3983EDCF38695779503 +:105D20006795B795F7959F5FC9F7880F911D969571 +:105D3000879597F90895E1E0660F771F881FBB1FCD +:105D4000621773078407BA0720F0621B730B840B7A +:105D5000BA0BEE1F88F7E095089504D06894B1114E +:105D6000D9C00895BCD088F09F5790F0B92F9927DB +:105D7000B751A0F0D1F0660F771F881F991F1AF056 +:105D8000BA95C9F712C0B13081F0C3D0B1E008951F +:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 +:105DA000869577956795B395D9F73EF4909580954C +:105DB000709561957F4F8F4F9F4F0895E89409C06C +:105DC00097FB3EF490958095709561957F4F8F4F2E +:105DD0009F4F9923A9F0F92F96E9BB279395F69544 +:105DE000879577956795B795F111F8CFFAF4BB0FC2 +:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 +:105E0000882311F096E911C0772321F09EE8872FAF +:105E1000762F05C0662371F096E8862F70E060E06B +:105E20002AF09A95660F771F881FDAF7880F9695E4 +:105E3000879597F90895990F0008550FAA0BE0E888 +:105E4000FEEF16161706E807F907C0F0121613063C +:105E5000E407F50798F0621B730B840B950B39F47C +:105E60000A2661F0232B242B252B21F408950A26E2 +:105E700009F4A140A6958FEF811D811D089597F922 +:105E80009F6780E870E060E008959FEF80EC0895E0 +:105E900000240A9416161706180609060895002409 +:105EA0000A9412161306140605060895092E039483 +:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 +:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 +:105ED0009058440F551F59F05F3F71F04795880F58 +:105EE00097FB991F61F09F3F79F0879508951216EF +:105EF00013061406551FF2CF4695F1DF08C016169B +:105F000017061806991FF1CF86957105610508944B +:105F10000895E894BB2766277727CB0197F9089562 +:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF +:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E +:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 +:105F5000F001729FBB27F00DB11D639FAA27F00DC2 +:105F6000B11DAA1F649F6627B00DA11D661F829FE9 +:105F70002227B00DA11D621F739FB00DA11D621FCE +:105F8000839FA00D611D221F749F3327A00D611DEB +:105F9000231F849F600D211D822F762F6A2F1124CD +:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 +:105FB000BB1F661F771F881F91505040A9F79E3F57 +:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 +:105FD000869577956795B795F795E7959F5FC1F794 +:105FE000FE2B880F911D9695879597F90895FA01D4 +:105FF000EE0FFF1F30962105310599F161157105EE +:1060000061F48038BFE39B0749F1689490388105BB +:1060100061F08038BFEF9B0741F0992342F5FF3FC5 +:10602000E1053105210511F1E8940894E795D901BE +:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 +:1060400070F4A695E0F7F73950F019F0FF3A38F4FC +:106050009F779F930CD00F9007FC905808953EF0C7 +:1060600014CF60E070E080E89FE308954FE79F77EA +:106070005F934F933F932F939ED02F913F914F91DA +:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C +:1060900026DFC8F39638C0F707F80F92E8942BE391 +:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F +:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B +:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 +:1060D0004427EE0F441FFA95E1F74195550B32D056 +:1060E0000F9007FE26C00895DF93CF931F930F9361 +:1060F000FF92EF92DF927B018C01689405C0DA2E4B +:10610000EF011EDFFE01E894A5912591359145919F +:106110005591AEF3EF0162DDFE019701A801DA941B +:1061200079F7DF90EF90FF900F911F91CF91DF9162 +:1061300008959B01AC0160E070E080E89FE3A5CD8D +:106140009ECEACC0CCDEE8F39923D9F3940F511D59 +:10615000BBF39150504094F059F0882332F0660F11 +:10616000771F881F91505040C1F79E3F510544F75B +:10617000880F911D9695879597F908955F3FACF02C +:10618000983E9CF0BB27869577956795B79508F460 +:10619000B1609395C1F7BB0F58F711F460FFE8CFDA +:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F +:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 +:1061C000DF93CF931F930F93FF92C92FDD2788236F +:1061D0002AF02197660F771F881FDAF720E030E05A +:1061E00040E85FEB9FE3883920F0803E30F0219655 +:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 +:1062000073DF8B01BE01EC01FB2E6F577109759591 +:10621000771F880B990BD4DD28E132E741E35FE378 +:106220008FDEAF2D9801AE01FF900F911F91CF919E +:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E +:10624000AC01BF5728F422273327442750781FC0BA +:10625000B75188F4AB2F0024469537952795011C3C +:10626000A395D2F3002069F0220F331F441FB3958A +:10627000DAF30DD0A1CC61307105A0E88A07B946E8 +:1062800030F49B01AC0166277727882790783096F9 +:1062900021F0208331834283538308959F3F31F05F +:1062A000915020F4879577956795B795880F911D44 +:1062B0009695879597F90895AA1BBB1B51E107C0D6 +:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 +:1062D000991F5A95A9F780959095BC01CD01089515 +:1062E00097FB072E16F4009407D077FD09D00E9483 +:1062F0005C3107FC05D03EF4909581959F4F089541 +:10630000709561957F4F0895EE0FFF1F0590F491F2 +:10631000E02D0994F999FECF92BD81BDF89A992795 +:1063200080B50895A8E1B0E042E050E00C94B231AD +:10633000262FF999FECF92BD81BDF89A019700B43E +:10634000021639F01FBA20BD0FB6F894FA9AF99ADE +:106350000FBE08950196272F0E9499310C94983111 +:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 +:10637000F89A319600B40D9241505040B8F7089504 +:04638000F894FFCFBF +:1063840007000C52D02445000000410000DC44000A +:1063940000004152D0A4440000404100005C44008D +:1063A40000004148F17644000000415C978A4400B3 +:1063B4000000411FD592440000004152D0A4440083 +:1063C4000000415CFFB844000000410AA7CF44002C +:1063D4000000410000DC44000000410AA7CF440053 +:1063E4000000410000DC4400000041000000000007 +:1063F40000804000005C45000040410000000000B7 +:1064040000804052D02445000040410AA7CF4400F8 +:106414000000410000DC44000000410000000000D6 +:1064240000804052D024450000404100000000009C +:1064340000804000005C45000040410AA7CF4400B2 +:106444000000410000DC44000000410000000000A6 +:1064540000804052D024450000404100000000006C +:106464000080400AA74F45000040410AA7CF4400DE +:106474000000410000DC4400000041000000000076 +:1064840000804052D024450000004100000000007C +:106494000080405CFF38450000004100000000001F +:1064A40000804052D02445000000410AA7CF440098 +:1064B4000000410000DC4400000041000000000036 +:1064C40000804052D024450000804153D024450030 +:1064D40000404160970A450000004154D0A44400A4 +:1064E4000000410000DC440000004160970A4500C0 +:1064F40000A041050000003F0000C8423214C0144F +:106504009D14691435140101DA032808140A321E93 +:106514000000020004000500070009000B000C0045 +:106524000E001000110013001500170018001A00C7 +:106534001C001D001F002100230024002600280049 +:1065440029002B002D002F003000320034003500CC +:10655400370039003B00400045002500260061005B +:106564006000200037006400650066006700440096 +:106574004600240047003F4D3639BD0970093A09E9 +:1065840001099408AD08C608DF08010203040506E2 +:0465940007080900EB +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1.hex b/keyboard/preonic/preonic_pcb_r1.hex new file mode 100644 index 000000000..5bdc190e1 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1.hex @@ -0,0 +1,1702 @@ +:100000000C94D4020C9418030C9418030C94180349 +:100010000C9418030C9418030C9418030C941803F4 +:100020000C9418030C9418030C94E8160C94BA174B +:100030000C946C290C9418030C9418030C9418035A +:100040000C9418030C9418030C9418030C941803C4 +:100050000C9418030C94D9290C9418030C941803CD +:100060000C9418030C9418030C9418030C941803A4 +:100070000C9418030C9418030C9418030C94180394 +:100080000C941C0E0C9418030C9418030C94180375 +:100090000C9418030C9418030C9418030C94180374 +:1000A0000C9418030C9418030C941803076342363D +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE002A035400680065002000FE +:100390005000720065006F006E006900630020006D +:1003A0004B006500790062006F006100720064001C +:1003B00000002C034F007200740068006F006C0096 +:1003C00069006E0065006100720020004B0065004E +:1003D000790062006F006100720064007300000029 +:1003E000040309040902D000060100A0FA09040070 +:1003F000000103010100092111010001223F000752 +:1004000005810308000A0904010001030102000933 +:100410002111010001224D000705820308000A098D +:10042000040200010300000009211101000122362D +:10043000000705830308000A090403000203000003 +:10044000000921110100012220000705840320007A +:100450000107050403200001090404000001010054 +:100460000009240100010900010509040500020139 +:1004700003000007240100014100062402010100DD +:1004800006240202020009240301030102010009FB +:1004900024030204010101000905060240000500D1 +:1004A0000005250101010905850240000500000540 +:1004B000250101031201100100000008EDFE61603A +:1004C0000100010200010631FF0974A1010975153F +:1004D0000025FF9520750881020976150025FF95F6 +:1004E0002075089102C005010980A101850216014D +:1004F0000026B7001A01002AB70075109501810087 +:10050000C0050C0901A1018503160100269C021AF1 +:1005100001002A9C02751095018100C005010902A5 +:10052000A1010901A10005091901290515002501ED +:100530009505750181029501750381010501093059 +:1005400009311581257F95027508810609381581C5 +:10055000257F950175088106050C0A38021581254D +:100560007F950175088106C0C005010906A1010536 +:100570000719E029E7150025019508750181029505 +:100580000175088101050819012905950575019175 +:10059000029501750391010507190029FF15002532 +:1005A000FF950675088100C011241FBECFEFDAE069 +:1005B000DEBFCDBF04B603FE24C080910404909139 +:1005C0000504A0910604B09107048730904BA74022 +:1005D000B04BB9F410920404109205041092060472 +:1005E0001092070414BE84B7877F84BF88E10FB6DA +:1005F000F89480936000109260000FBEE0E0F8E392 +:10060000099512E0A0E0B1E0EEE1F9E602C0059044 +:100610000D92A832B107D9F714E0A8E2B2E001C008 +:100620001D92A430B107E1F70E94A0130C948D3401 +:100630000C94000061110DC0FC018281882331F00F +:1006400085EE0E94671E0E94683003C085EE0E94FE +:100650002F1F80E090E008950E940F0E40E050E0D0 +:1006600069E070E080E091E00C94600F08950E94D2 +:1006700049036E9A769A8CE293E0892B11F00C94E0 +:100680002C03089586E393E0892B11F00C94360334 +:100690000895279A2F988FEF9FEF9093870080936C +:1006A00086008AE08093800089E1809381000C9429 +:1006B000113081110BC080918000877F8093800072 +:1006C00010928D0010928C002F9808952F988330EF +:1006D00041F4809180008860809380008FEF9FEFCD +:1006E00012C09091800098609093800023E030E0E9 +:1006F000281B3109220F331F8FEF9FEF02C0969501 +:1007000087952A95E2F790938D0080938C00089549 +:100710008B3B910568F4883A910530F5853A91054F +:10072000C0F48430910598F4019709F06FC071C04E +:10073000803E910508F46AC0883E910540F09C0116 +:10074000205F31092031310508F060C05CC09C0198 +:10075000A1C0853A910509F45FC0863A910509F474 +:100760005EC023E830E496C0883A910509F45AC087 +:10077000893A910509F459C08A3A910509F458C09B +:100780008B3A910509F457C08C3A910509F456C08B +:100790008D3A910509F455C0803B910509F454C088 +:1007A0008E3A910509F453C08F3A910509F452C06D +:1007B000813B910509F451C0823B910509F450C079 +:1007C000833B910509F44FC0843B910509F44EC069 +:1007D000853B910509F44DC0863B910509F44CC059 +:1007E000873B910509F44BC0883B910509F44AC049 +:1007F000893B910509F449C08A3B910509F048C03D +:100800002AE236E447C09C01306544C020E030E075 +:1008100041C021E030E03EC021E830E43BC022E8A6 +:1008200030E438C022EE34E435C029EE34E432C07E +:100830002AEE34E42FC025EB34E42CC026EB34E45C +:1008400029C027EB34E426C02CEC34E423C02DEC83 +:1008500034E420C023E835E41DC02AE835E41AC09A +:1008600022E935E417C024E935E414C021E236E476 +:1008700011C023E236E40EC024E236E40BC025E2C8 +:1008800036E408C026E236E405C027E236E402C0BA +:1008900020E034E4C90108959CE0799FF00111241F +:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 +:1008B000FF1FE25DFE4F25913491C9010895880F15 +:1008C000991F82559040FC0125913491C9010895EA +:1008D000880F991F825D9E4FFC0125913491C901BB +:1008E00008950E944C049C019A9581159F4110F433 +:1008F000C9010895C90190528115904128F4C90198 +:100900009F700E9468040895C90190538115904119 +:1009100020F4C9019927906C0895C901905440971B +:1009200028F4C9018F709927946D0895203180E4CF +:10093000380719F480E091ED0895213190E43907EA +:1009400019F480E090ED0895223140E4340719F461 +:1009500080E092ED0895233180E4380719F480E0B7 +:1009600093ED0895211590E5390799F40E945623D7 +:1009700040E065E088E491E00E94600F2FEF44E3DF +:100980008CE0215040408040E1F700C000000C9412 +:10099000FE29213090E5390731F48091F002816021 +:1009A0008093F0020895C90190558115904108F097 +:1009B00062C0432F55274F70552741305105F9F438 +:1009C000C90174E0880F991F7A95E1F78827937021 +:1009D000B901E3E0660F771FEA95E1F760767727C4 +:1009E000862B972B9C682370332702C0440F551F1A +:1009F0002A95E2F74F715527842B952B08954230A5 +:100A0000510529F4922F8827816F906A0895433009 +:100A10005105B9F4C90153E0880F991F5A95E1F7C0 +:100A2000807E97702370332741E050E002C0440F6E +:100A3000551F2A95E2F74F715527842B952B9C68FB +:100A400008954430510589F5C90143E0880F991F85 +:100A50004A95E1F7807E97702370332741E050E09C +:100A600002C0440F551F2A95E2F74F715527842B7A +:100A7000952B9A680895C90190568115904118F4F4 +:100A8000C901906F0895C90190578115904120F4D4 +:100A9000C9019F7090620895C901905881159041D5 +:100AA00020F4C9019F70906A0895203E3105E0F45A +:100AB000203C310568F52133310509F475C048F44F +:100AC0002932310509F46BC02A32310509F07BC0A7 +:100AD00075C02933310501F122383105E9F025339C +:100AE000310509F070C051C0233E3105B1F140F429 +:100AF000203E3105D1F0223E310509F064C01CC012 +:100B0000263E310579F1273E310509F05CC038C039 +:100B1000C9010E945F0408958091010380FD02C015 +:100B200081FF51C080EE90E04FC08091010380FFB3 +:100B3000F9CF89E390E048C08091010382FF0AC0A9 +:100B40008091010384FF03C080E090E03DC083EE0C +:100B500090E03AC082EE90E037C08091010382FFBE +:100B6000EFCFF8CF8091010383FF07C0809101038D +:100B700084FDEACF87EE90E027C086EE90E024C0A7 +:100B80008091010383FFF2CFF8CF8091010385FFAD +:100B900003C089E290E018C085E390E015C0809121 +:100BA000010385FDF9CFF5CF8091010386FF03C0D6 +:100BB0008AE290E009C081E390E006C080910103E1 +:100BC00086FDF9CFF5CFC9010E94880308950895E5 +:100BD0005F926F927F928F929F92AF92BF92CF92CD +:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 +:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 +:100C00002F5F3F4F4E018BE0880E911C60E070E03B +:100C100000E010E0E12CF12CC12CD12CA12CB12C46 +:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 +:100C3000A62DB52D872D01900D928A95E1F7F9012A +:100C4000819191919F01FC01E07FFF27E032F10546 +:100C500059F48F709927FA0102C0EE0FFF1F8A9591 +:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E +:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC +:100C8000DF2A29C0E034F10559F48F709927FA0161 +:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 +:100CA000E035F10559F48F709927FA0102C0EE0F73 +:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 +:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 +:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 +:100CE0008A2D8095892384B985B18A2985B997B1E0 +:100CF0008C2D8095892387B988B18C2988B99AB1C0 +:100D00008E2D809589238AB98BB18E298BB99DB19F +:100D1000802F809589238DB98EB1802B8EB990B3A9 +:100D2000862F8095892380BB81B3862B81BB2A9631 +:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC +:100D40000F91FF90EF90DF90CF90BF90AF909F906A +:100D50008F907F906F905F9008955F926F927F92D7 +:100D60008F929F92AF92BF92CF92DF92EF92FF92BB +:100D70000F931F93CF93DF93CDB7DEB768970FB66E +:100D8000F894DEBF0FBECDBF85B7806885BF85B73D +:100D9000806885BF0E94E8059E012F5F3F4F4E018E +:100DA00089E1880E911C60E070E000E010E0E12C29 +:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 +:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 +:100DD00001900D928A95E1F7F901819191919F011E +:100DE000FC01E07FFF27E032F10559F48F7099276D +:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 +:100E000037C0E033F10559F48F709927FA0102C019 +:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 +:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 +:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 +:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 +:100E50000E2B1F2B0DC0E036F10551F48F70992732 +:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F +:100E70002815390509F0A7CF94B18A2D80958923CB +:100E800084B985B18A2985B997B18C2D809589233C +:100E900087B988B18C2988B99AB18E2D809589231C +:100EA0008AB98BB18E298BB99DB1802F809589230A +:100EB0008DB98EB1802B8EB990B3862F8095892302 +:100EC00080BB81B3862B81BB10922902109228022D +:100ED000109233021092320210922B0210922A02C8 +:100EE000109235021092340210922D0210922C02B0 +:100EF000109237021092360210922F0210922E0298 +:100F0000109239021092380210923102109230027F +:100F100010923B0210923A0287E393E0892BB9F0DA +:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC +:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 +:100F40009F908F907F906F905F900C94370368967E +:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA +:100F60000F91FF90EF90DF90CF90BF90AF909F9048 +:100F70008F907F906F905F9008955F926F927F92B5 +:100F80008F929F92AF92BF92CF92DF92EF92FF9299 +:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 +:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 +:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 +:100FC0003AE0532E470101E010E048E1642E55E07D +:100FD000752EE3E9F1E0D401852D01900D928A95FB +:100FE000E1F7F701819191917F019C01207F3327E7 +:100FF0002032310589F424B18F709927A80102C0ED +:10100000440F551F8A95E2F7CA01242B24B995B1E4 +:101010008095892385B94FC02033310589F427B1E4 +:101020008F709927F80102C0EE0FFF1F8A95E2F733 +:10103000CF012E2B27B998B18095892388B93BC061 +:101040002034310589F42AB18F709927A80102C094 +:10105000440F551F8A95E2F7CA01242B2AB99BB188 +:10106000809589238BB927C02035310589F42DB1AE +:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 +:10108000CF012E2B2DB99EB1809589238EB913C027 +:101090002036310581F420B38F709927A80102C052 +:1010A000440F551F8A95E2F7CA01242B20BB91B348 +:1010B0008095892381BB50EA5A95F1F7BE016F5F95 +:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC +:1010D0001196462D01900D924A95E1F7FB01419141 +:1010E0005191BF01FA01E07FFF27E032F10511F4D1 +:1010F000E3B113C0E033F10511F4E6B10EC0E03402 +:10110000F10511F4E9B109C0E035F10511F4ECB1D4 +:1011100004C0E036F105B9F4EFB1F0E04F705527A7 +:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 +:10113000022E02C0440F551F0A94E2F702C040E09D +:1011400050E0842B952B2F5F3F4F2C30310509F059 +:10115000BCCFF601208131812817390721F0918316 +:101160008083709270010E94E805F2E0CF0ED11CDE +:10117000EA14FB0409F02DCF809170018823A1F1BE +:10118000815080937001882339F08FE99FE00197A7 +:10119000F1F700C0000028C0809132029091330224 +:1011A0009093290280932802809134029091350215 +:1011B00090932B0280932A028091360290913702FD +:1011C00090932D0280932C028091380290913902E5 +:1011D00090932F0280932E0280913A0290913B02CD +:1011E000909331028093300282E493E0892B11F0D6 +:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 +:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10121000CF90BF90AF909F908F907F906F905F9096 +:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D +:10123000918108950895CF92DF92EF92FF920F93DC +:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 +:10125000F894DEBF0FBECDBF8C01862F642F88238C +:1012600079F0F80192812FE7482F992329F083E044 +:1012700093E00E94C41904C083E093E00E94D41953 +:10128000F80180818B3091F59181943009F0A8C2EA +:101290009281809173019923B1F08F5F80937301E4 +:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 +:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 +:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 +:1012D000BD4F01900D929A95E1F7E0917101F09167 +:1012E0007201EE0FFF1F21E332E093C08A3009F054 +:1012F000CBC0F8019181943009F072C29281809143 +:101300007301992309F473C081508093730196E4AB +:10131000E5EBF1E0DE01A551BE4F01900D929A95EB +:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA +:1013300031E02C0F3D1FE20FF31F60817181680FB8 +:10134000711D882777FD8095982F0E94AC3120E091 +:1013500030E040E451E40E94113120E030E040E808 +:1013600050E40E94A9309B01AC0160E070E080E095 +:1013700090E40E94C33221E230ED42E053E40E9447 +:1013800060324CE050E00E94BB0F20E04BE760E091 +:1013900083E093E00E94B41920E04BE761E083E032 +:1013A00093E00E94B41920E04BE762E083E093E011 +:1013B0000E94B41920E04BE763E083E093E00E94D1 +:1013C000B41920E04BE764E083E093E0C454DD4FC0 +:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1013E0000F91FF90EF90DF90CF900C94B41996E49A +:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 +:10140000E1F7E0917101F0917201EE0FFF1F25EA03 +:1014100031E02C0F3D1FE20FF31F60817181680FD7 +:10142000711D882777FD8095982F0E94AC3120E0B0 +:1014300030E040E451E40E94113120E030E040E827 +:1014400050E40E94A9309B01AC0160E070E080E0B4 +:1014500090E40E94C33221E230ED42E053E40E9466 +:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F +:101470000FBECDBFDF91CF911F910F91FF90EF90E5 +:10148000DF90CF900C94BE0C893009F0D3C0F801E6 +:101490009181943009F0A4C19281992309F4A0C1EB +:1014A00080917101909172010196909372018093E5 +:1014B000710120E04BE760E083E093E00E94B41903 +:1014C00020E04BE761E083E093E00E94B41920E064 +:1014D0004BE762E083E093E00E94B41920E04BE721 +:1014E00063E083E093E00E94B41920E04BE764E0FE +:1014F00083E093E00E94B4190E94BE0C00E010E06B +:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 +:10151000BE4F9F2D01900D929A95E1F7E0917101D8 +:10152000F0917201E00FF11FEE0FFF1F2FE531E088 +:101530002C0F3D1FE20FF31F60817181680F711D39 +:10154000882777FD8095982F0E94AC3120E030E00D +:1015500040E451E40E94113120E030E040E850E4E2 +:101560000E94A9309B01AC0160E070E080E090E453 +:101570000E94C33221E230ED42E053E40E94603227 +:101580004CE050E00E94BB0F3FEF87EE93E03150FC +:1015900080409040E1F700C0000080917301E5EBCE +:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E +:1015B000E1F7E0917101F0917201E00FF11FEE0F80 +:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 +:1015D0007181680F711D882777FD8095982F0E9473 +:1015E000AC3120E030E040E451E40E94113120E0D1 +:1015F00030E040E850E40E94A9309B01AC0160E07B +:1016000070E080E090E40E94C33221E230ED42E0DD +:1016100053E40E9460320E94EB0C8FEF9CE701972D +:10162000F1F700C000000F5F1F4F0830110509F0EF +:1016300069CF94C1883009F0D3C0F801918194300A +:1016400009F0CEC09281992309F4CAC0809171013A +:10165000909172010197909372018093710120E043 +:101660004BE760E083E093E00E94B41920E04BE791 +:1016700061E083E093E00E94B41920E04BE762E070 +:1016800083E093E00E94B41920E04BE763E083E03D +:1016900093E00E94B41920E04BE764E083E093E01C +:1016A0000E94B4190E94BE0C00E010E056E4F52E32 +:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C +:1016C00001900D929A95E1F7E0917101F09172010C +:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 +:1016E000E20FF31F60817181680F711D882777FDFC +:1016F0008095982F0E94AC3120E030E040E451E426 +:101700000E94113120E030E040E850E40E94A9300E +:101710009B01AC0160E070E080E090E40E94C33285 +:1017200021E230ED42E053E40E9460324CE050E0B0 +:101730000E94BB0F3FEF87EE93E031508040904016 +:10174000E1F700C0000080917301E5EBF1E0DE01FC +:10175000A357BF4F9F2D01900D929A95E1F7E0910D +:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 +:1017700030E02C0F3D1FE20FF31F60817181680F75 +:10178000711D882777FD8095982F0E94AC3120E04D +:1017900030E040E451E40E94113120E030E040E8C4 +:1017A00050E40E94A9309B01AC0160E070E080E051 +:1017B00090E40E94C33221E230ED42E053E40E9403 +:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD +:1017D00000000F5F1F4F0830110509F069CFBEC030 +:1017E000F801228190917301222309F45DC026E45F +:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 +:10180000E1F7E0917101F0917201E80FF11DEE0F27 +:10181000FF1F27E430E02C0F3D1FE20FF31F608114 +:101820007181690F711D882777FD8095982F0E941F +:10183000AC3120E030E040E451E40E9411316B0112 +:101840007C01F801818165E070E0681B71098827DF +:1018500077FD8095982F0E94AC319B01AC01C701A8 +:10186000B6010E94A9309B01AC0160E070E080E00D +:1018700090E40E94C33221E230ED42E053E40E9442 +:1018800060324FE050E0C454DD4F0FB6F894DEBF35 +:101890000FBECDBFDF91CF911F910F91FF90EF90C1 +:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 +:1018B000119601900D922A95E1F7E0917101F09156 +:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 +:1018D0003D1FE20FF31F60817181690F711D882721 +:1018E00077FD8095982F0E94AC3120E030E040E4F5 +:1018F00051E40E9411316B017C01F801818165E0A6 +:1019000070E0681B7109882777FD8095982F0E94E9 +:10191000AC319B01AC01C701B6010E94A9309B010B +:10192000AC0160E070E080E090E40E94C33221E20C +:1019300030ED42E053E40E946032C454DD4F0FB6F4 +:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 +:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 +:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 +:101970000F91FF90EF90DF90CF9008951092870223 +:1019800010928602809171008D7F8093710080910A +:1019900090008F7780939000109248021092470237 +:1019A00010928002109281021092820210928302A1 +:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 +:1019C00011921192119211921D921D9282E0EE37A6 +:1019D000F807B1F708956F927F928F929F92AF921E +:1019E000BF92CF92DF92EF92FF920F931F93CF930C +:1019F000DF936B017C010EE712E04CE5A42E42E080 +:101A0000B42EC7E0D0E0A7019601F801929182912F +:101A1000729162918F010E940D31882349F02197C4 +:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB +:101A3000F8011082118212821382F5011182108244 +:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA +:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 +:101A600055816681778140835183628373831482B9 +:101A700015821682178212962D913C91139711961A +:101A80003C932E9313961C921E92129734961296A4 +:101A90008730910519F7C3CF809186029091870214 +:101AA000019797FD05C0909387028093860204C03A +:101AB0001092870210928602E0918602F0918702CE +:101AC0003097C9F4809171008D7F8093710080916F +:101AD00090008F7780939000109280021092810284 +:101AE000109282021092830210927F0210927E0264 +:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 +:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 +:101B1000FF1FE25BFD4FC081D18160908002709019 +:101B200081028090820290908302A7019601662D27 +:101B3000772D882D992D0E940D3187FF25C0262DE8 +:101B4000372D482D592DC701B6010E94A83020E03D +:101B500030E04AEF54E40E9411315B018C012A2DE0 +:101B60003B2D402F512F662D772D882D992D0E94CA +:101B7000A9303B014C01A7019601772D992D0E94B8 +:101B80000D31181664F72EC0A7019601662D772D2A +:101B9000882D992D0E945C32181634F5A701960104 +:101BA000662D772D882D992D0E94A83020E030E0F9 +:101BB0004AEF54E40E9411315B018C012A2D3B2D28 +:101BC000402F512F662D772D882D992D0E94A830FA +:101BD0003B014C01A7019601772D992D0E945C32A3 +:101BE00087FFECCF10924D02C0928002D09281020A +:101BF000E0928202F0928302D0937F02C0937E0231 +:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 +:101C1000BF90AF909F908F907F906F9008953E9A65 +:101C2000E1E7F0E080818D7F808382E08093900007 +:101C30008AE18093910008951F920F920FB60F9240 +:101C40001124CF92DF92EF92FF922F933F934F9305 +:101C50005F936F937F938F939F93AF93BF93CF9334 +:101C6000DF93EF93FF9380914702882309F479C0B3 +:101C700020E030E0A90160918002709181028091A2 +:101C80008202909183020E945C3218160CF069C0A7 +:101C900020E030E040E251E46091490270914A0254 +:101CA00080914B0290914C020E945C321816BCF459 +:101CB00080918402909185020196609186027091D4 +:101CC00087020E9448349093850280938402109288 +:101CD000490210924A0210924B0210924C02C0919B +:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC +:101CF000DD4F288139814A815B8160E074E284E7AD +:101D00009BE40E9411310E94793170939700609397 +:101D10009600288139814A815B8160E074E284E722 +:101D20009BE40E9411310E947931759567957093FB +:101D300099006093980020E030E040E85FE3609114 +:101D4000490270914A0280914B0290914C020E948C +:101D5000A9306093490270934A0280934B0290939A +:101D60004C0280914802882309F493C0C09043023A +:101D7000D0904402E0904502F090460220E030E02E +:101D8000A901C701B6010E945C321816F4F4A7013C +:101D9000960160E074E284E79BE40E9411310E94A6 +:101DA00079317093970060939600A701960160E0E7 +:101DB00074E284E79BE40E9411310E9479317595A9 +:101DC0006795709399006093980060913D027091BF +:101DD0003E026F5F7F4F70933E0260933D0280E052 +:101DE00090E00E94AA3120913F0230914002409140 +:101DF0004102509142020E945C3287FD4AC08091AC +:101E00003C028F5F80933C029091F0038917A0F011 +:101E10008091F503882319F010923C020DC0809147 +:101E200071008D7F80937100809190008F778093F7 +:101E30009000109248022DC0E091F103F091F2035E +:101E400080913C0298E0899FE00DF11D1124808172 +:101E50009181A281B3818093430290934402A09325 +:101E60004502B093460220E030E040E85EE3648142 +:101E70007581868197810E94603260933F027093E2 +:101E80004002809341029093420210923E021092CF +:101E90003D02FF91EF91DF91CF91BF91AF919F9163 +:101EA0008F917F916F915F914F913F912F91FF9013 +:101EB000EF90DF90CF900F900FBE0F901F9018956E +:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 +:101ED00080914702882331F04A8369830E94BE0CB7 +:101EE00069814A8181E0809348021093F203009354 +:101EF000F1036093F0034093F503109249021092AE +:101F00004A0210924B0210924C0210923C02F801CD +:101F10004081518162817381409343025093440216 +:101F2000609345027093460220E030E040E85EE3B3 +:101F300064817581868197810E94603260933F023F +:101F400070934002809341029093420210923E02AD +:101F500010923D02809171008260809371008091A7 +:101F600090008068809390000F900F90DF91CF9148 +:101F70001F910F9108956F927F928F929F92AF92CF +:101F8000BF92CF92DF92EF92FF920F931F93CF9366 +:101F9000DF936B017C01EA018091480281110E946C +:101FA000BE0C81E08093470220E030E0A901C70128 +:101FB000B6010E945C3218160CF09AC06090800244 +:101FC00070908102809082029090830220E030E045 +:101FD000A901662D772D882D992D0E940D31811133 +:101FE00028C0C0928002D0928102E0928202F092D8 +:101FF0008302D0937F02C0937E02809186029091EB +:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C +:10201000C082D182E282F382FC01EE0FFF1FE25BFD +:10202000FD4FD183C08301969093870280938602EF +:102030005FC0A7019601662D772D882D992D0E94EE +:102040000D3187FF25C0262D372D482D592DC7016D +:10205000B6010E94A83020E030E04AEF54E40E942C +:1020600011315B018C012A2D3B2D402F512F662D04 +:10207000772D882D992D0E94A9303B014C01A70195 +:102080009601772D992D0E940D31181664F7A9CF6E +:10209000A7019601662D772D882D992D0E945C321F +:1020A00018160CF09ECFA7019601662D772D882D6E +:1020B000992D0E94A83020E030E04AEF54E40E94BD +:1020C00011315B018C012A2D3B2D402F512F662DA4 +:1020D000772D882D992D0E94A8303B014C01A70136 +:1020E0009601772D992D0E945C3287FFECCF79CF36 +:1020F000809171008260809371008091900080686F +:1021000080939000DF91CF911F910F91FF90EF90FE +:10211000DF90CF90BF90AF909F908F907F906F9007 +:102120000895809191020895CF93DF9300D01F927C +:10213000CDB7DEB72091FA03243021F523E02983BF +:102140009B838A832093E9008FEF06C095ED9A95D3 +:10215000F1F70000882329F09091E800815095FF65 +:10216000F5CF8091E80085FF0DC040E050E063E0CE +:1021700070E0CE0101960E947E148091E8008E7777 +:102180008093E8000F900F900F90DF91CF9108950A +:10219000CF93DF9300D01F92CDB7DEB72091FA0323 +:1021A000243029F522E029839B838A8383E080936E +:1021B000E9008FEF06C095ED9A95F1F700008823AE +:1021C00029F09091E800815095FFF5CF8091E800CB +:1021D00085FF0DC040E050E063E070E0CE01019665 +:1021E0000E947E148091E8008E778093E8000F9023 +:1021F0000F900F90DF91CF9108952091FA03243032 +:10220000F9F422E02093E9002FEF06C035ED3A956E +:10221000F1F70000222329F03091E800215035FF2A +:10222000F5CF2091E80025FF0BC040E050E065E0CD +:1022300070E00E947E148091E8008E778093E80021 +:102240000895CF93DF93EC018091FA03843041F538 +:1022500081E08093E9008FEF06C095ED9A95F1F744 +:102260000000882329F09091E800815095FFF5CF78 +:102270008091E80085FF14C040E050E068E070E025 +:10228000CE010E947E148091E8008E778093E80052 +:1022900088E0FE01A9E8B2E001900D928A95E1F78D +:1022A000DF91CF910895BF92CF92DF92EF92FF928C +:1022B0000F931F93CF93DF937C01B62EE90100E0CB +:1022C00010E0C42ED12C0BC04991202F2B0D2F775D +:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 +:1022E0001D0594F3DF91CF911F910F91FF90EF9017 +:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 +:1023000077270C94B4190F931F93CF93C42F633086 +:10231000710509F04AC0842F807F803849F18039E7 +:1023200009F043C0622F6F7770E080E090E00E9478 +:10233000AC3120E030E040E451E40E9411319B01D7 +:10234000AC0160E070E080E090E40E94C3320F775F +:1023500010E023E0159507952A95E1F72DEC3CEC6C +:1023600042E053E40E946032A8010E94BB0F1DC0EE +:10237000622F6F7770E080E090E00E94AC3120E047 +:1023800030E040E451E40E9411319B01AC0160E077 +:1023900070E080E090E40E94C3322DEC3CEC42E01F +:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 +:1023B0001F910F910C94BE0CCF911F910F91089516 +:1023C0000F931F93CF93DF93CDB7DEB727970FB649 +:1023D000F894DEBF0FBECDBF8C0114C08A810E946D +:1023E0008E199A819D839B819E839C819F838111FD +:1023F0001EC089818430B1F08730A1F08630A1F011 +:102400008530A1F0BE016F5F7F4F84E791E00E94AD +:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 +:1024200067190DC083E003C082E001C081E0AE0106 +:102430004B5F5F4F682FC8010E94211AE3CF279698 +:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 +:102450000F910895EF92FF920F93CF93DF9300D0E7 +:1024600000D000D0CDB7DEB77B014A832B830C832D +:10247000842F2E834D830E948E192E814D818111D0 +:102480001BC082E0E816F10479F083E0E816F1045D +:1024900021F0EA94EF2821F50BC0073F11F487E003 +:1024A00001C084E089830BC0273FD9F786E0FACFCB +:1024B000473FB9F785E0F6CF42954F704983BE019B +:1024C0006F5F7F4F84E791E00E94B11C84E791E049 +:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0000F91FF90EF9008958091F903811109C029 +:102500000E946D160E94CA168091E200846080933A +:10251000E20008951092F9030895089508950C9427 +:102520006129809192028F5F8093920262E30E9400 +:102530002834911135C01092920280919302882321 +:1025400079F18091FA03843049F58091E9008F7028 +:102550009091EC0090FF02C090E801C090E0982BB1 +:1025600084E08093E9008091EB0080FF14C08091AB +:10257000EE0087FD03C00FC01092F1008091E800CB +:1025800085FDFACF8091E80080FF05C08091E800CA +:102590008E778093E8009F709093E90010929302E9 +:1025A000089542E061EC81E00E94E31542E061ECB5 +:1025B00082E00E94E31542E061EC83E00E94E315B3 +:1025C00042E261EC84E00E94E31542E361E885E0C9 +:1025D0000E94E31542E360E886E00C94E3158091E5 +:1025E000FC03833009F454C030F4813071F0823040 +:1025F00009F0A5C08CC08A3009F479C08B3009F489 +:102600005FC0893009F09BC020C08091FB03813AF4 +:1026100009F095C08091E800877F8093E800809161 +:10262000FF0390910004892B21F060E080E090E0AE +:1026300003C068E089E892E070E00E941C15809178 +:10264000E8008B778093E80008958091FB03813246 +:1026500009F075C08091FF0390910004892B09F067 +:102660006EC08091E800877F8093E80005C080916C +:10267000FA03882309F463C08091E80082FFF7CF52 +:102680008091F100809391028091E8008B7753C094 +:102690008091FB03813A09F052C08091FF03909131 +:1026A0000004892B09F04BC08091E800877F80935C +:1026B000E8008091E80080FFFCCF80918A0136C05D +:1026C0008091FB038132D9F58091FF039091000442 +:1026D000892BA9F58091E800877F8093E8000E940C +:1026E0001A168091FD0380938A010C9456238091E1 +:1026F000FB03813221F58091E800877F8093E80019 +:102700000E941A168091FE0380938802089580919A +:10271000FB03813AA1F48091E800877F8093E80071 +:102720008091E80080FFFCCF809188028093F100C7 +:102730008091E8008E778093E8000C941A16089533 +:1027400083E093E00E94F0196AE272E183E093E093 +:102750000E94461A60EE71E183E093E00E944A1AFB +:1027600084B7877F84BF88E10FB6F89480936000B8 +:10277000109260000FBE90E080E80FB6F89480934E +:102780006100909361000FBE0E94741D0E946D163F +:102790000E94CA168091E20084608093E2007894DF +:1027A00063E871E183E093E00E94EC196CE771E16A +:1027B00083E093E00E94E41963E571E183E093E034 +:1027C0000E94E8190E940F0E0E9467190E94761D50 +:1027D00080E891E00E94201D0BC00E941E2980917C +:1027E000F803882329F00E94492981110E94681466 +:1027F0008091FA03853089F383E093E00E94F91B0E +:102800000E94801DF5CF292F332723303105B1F0E9 +:102810004CF42130310509F44DC02230310509F066 +:102820004EC007C02132310541F12232310591F10C +:1028300046C0E0EDF0E084EE93E045C0992781309A +:10284000910569F08230910589F0892B09F037C034 +:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 +:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 +:10287000E491F0E086E893E026C0643000F5E62FAE +:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF +:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 +:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA +:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 +:1028C000F0E080E090E0DA018D939C93CF010895D1 +:1028D00080E189BD82E189BD09B400FEFDCF809110 +:1028E000D8008F7D8093D8008091E0008260809333 +:1028F000E0008091E00081FDFCCF0895BF92CF926F +:10290000DF92EF92FF920F931F93CF93DF937C019F +:102910008B01EA010E943B16B82E811133C020972B +:1029200031F028813981021B130BE20EF31EC12CFA +:10293000D12C23C08091E80085FD15C08091E8006E +:102940008E778093E800209749F0888199818C0DDB +:102950009D1D9983888325E0B22E14C00E943B16EA +:10296000882359F00EC0F70181917F018093F10017 +:1029700001501109FFEFCF1ADF0A01151105D1F639 +:1029800001C0B82E8B2DDF91CF911F910F91FF9039 +:10299000EF90DF90CF90BF900895BF92CF92DF92DB +:1029A000EF92FF920F931F93CF93DF937C018B01E4 +:1029B000EA010E943B16B82E811133C0209731F0F6 +:1029C00028813981021B130BE20EF31EC12CD12C7E +:1029D00023C08091E80085FD15C08091E8008B77C9 +:1029E0008093E800209749F0888199818C0D9D1D86 +:1029F0009983888345E0B42E14C00E943B16882337 +:102A000059F00EC08091F100F70181937F010150D0 +:102A10001109FFEFCF1ADF0A01151105D1F601C028 +:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA +:102A3000DF90CF90BF90089540910104509102041F +:102A40004617570748F06115710539F44091E800C1 +:102A50004E774093E80001C0BA01FC0140E033C06A +:102A60008091FA03882309F444C0853009F443C0F7 +:102A70008091E80083FD41C08091E80082FD33C071 +:102A80008091E80080FF1FC09091F3008091F200D8 +:102A9000392F20E0A901482BCA0106C0419140937B +:102AA000F1006150710901966115710519F08830C6 +:102AB0009105A0F341E0089709F040E08091E8001B +:102AC0008E778093E8006115710551F64111C8CFEA +:102AD0000AC08091FA03882361F0853061F080910B +:102AE000E80083FD0AC08091E80082FFF2CF80E019 +:102AF000089582E0089583E0089581E0089540916B +:102B00000104509102044617570748F061157105FA +:102B100039F44091E8004E774093E80001C0BA01D3 +:102B2000FC0140E034C08091FA03882309F445C0D9 +:102B3000853009F444C08091E80083FD42C0809153 +:102B4000E80082FD34C08091E80080FF20C09091B1 +:102B5000F3008091F200392F20E0A901482BCA012F +:102B600007C044914093F10031966150710901967C +:102B70006115710519F08830910598F341E00897C7 +:102B800009F040E08091E8008E778093E8006115BD +:102B9000710549F64111C7CF0AC08091FA03882315 +:102BA00061F0853061F08091E80083FD0AC080917A +:102BB000E80082FFF2CF80E0089582E0089583E08C +:102BC000089581E00895982F2CC09093E9009817FC +:102BD00039F07091EC002091ED005091F00003C0AD +:102BE000242F762F50E021FD02C09F5F1AC0309144 +:102BF000EB003E7F3093EB003091ED003D7F309352 +:102C0000ED003091EB0031603093EB007093EC00FD +:102C10002093ED005093F0002091EE0027FDE5CFCA +:102C200007C0973090F28F708093E90081E008959B +:102C300080E008958091FB0387FD05C08091E80046 +:102C400080FF0EC012C08091E80082FD05C0809117 +:102C5000FA038111F8CF08958091E8008B7708C0BE +:102C60008091FA038111EACF08958091E8008E7770 +:102C70008093E80008958091E4009091E50045E696 +:102C80002091EC0020FD1FC023C02091FA032223D5 +:102C900091F0253091F02091EB0025FD10C020919E +:102CA000E4003091E5002817390751F34150C9017C +:102CB00039F784E0089582E0089583E0089581E083 +:102CC000089580E008952091E80020FFDECFF9CF3D +:102CD0002091E80022FFD9CFF4CF0E94DB160E949A +:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 +:102CF00080818F77808319BCA7EDB0E08C918E7FA7 +:102D00008C9380818F7E80831092F90308950F93B6 +:102D10001F93CF93DF930E94DB160E94E316C8ED4A +:102D2000D0E088818F7788838881806888838881D4 +:102D30008F7D888319BC1092FA031092F6031092CB +:102D4000F8031092F70300EE10E0F80180818B7F0A +:102D5000808388818160888342E060E080E00E9417 +:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B +:102D7000808181608083808188608083F801808188 +:102D80008E7F8083888180618883DF91CF911F91BE +:102D90000F910895E8EDF0E080818F7E8083E7ED6C +:102DA000F0E080818160808384E082BF81E0809355 +:102DB000F9030C948716E8EDF0E080818E7F808324 +:102DC0001092E20008951092DA001092E100089546 +:102DD0001F920F920FB60F9211242F933F934F9390 +:102DE0005F936F937F938F939F93AF93BF93EF9373 +:102DF000FF938091E10082FF0BC08091E20082FF8F +:102E000007C08091E1008B7F8093E1000E949112C6 +:102E10008091DA0080FF1FC08091D80080FF1BC026 +:102E20008091DA008E7F8093DA008091D90080FF54 +:102E30000DC080E189BD82E189BD09B400FEFDCFEE +:102E400081E08093FA030E947C1205C019BC1092A5 +:102E5000FA030E948A128091E10080FF19C08091DC +:102E6000E20080FF15C08091E2008E7F8093E20037 +:102E70008091E20080618093E2008091D8008062BE +:102E80008093D80019BC85E08093FA030E948E12CB +:102E90008091E10084FF30C08091E20084FF2CC06B +:102EA00080E189BD82E189BD09B400FEFDCF80913A +:102EB000D8008F7D8093D8008091E1008F7E809331 +:102EC000E1008091E2008F7E8093E2008091E20039 +:102ED00081608093E2008091F603882311F084E002 +:102EE00007C08091E30087FF02C083E001C081E05A +:102EF0008093FA030E948F128091E10083FF29C022 +:102F00008091E20083FF25C08091E100877F80935C +:102F1000E10082E08093FA031092F6038091E100D1 +:102F20008E7F8093E1008091E2008E7F8093E200AB +:102F30008091E20080618093E20042E060E080E006 +:102F40000E94E3158091F00088608093F0000E9459 +:102F50008D12FF91EF91BF91AF919F918F917F91D2 +:102F60006F915F914F913F912F910F900FBE0F90F6 +:102F70001F9018951F920F920FB60F9211242F9346 +:102F80003F934F935F936F937F938F939F93AF93F1 +:102F9000BF93CF93EF93FF938091E9008F7090914F +:102FA000EC0090FF02C090E801C090E0C92FC82B50 +:102FB0001092E9008091F000877F8093F000789470 +:102FC0000E94FE171092E9008091F00088608093C3 +:102FD000F000CF70C093E900FF91EF91CF91BF91C6 +:102FE000AF919F918F917F916F915F914F913F91A1 +:102FF0002F910F900FBE0F901F9018951F93CF9396 +:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 +:10301000CDBFEBEFF3E08091F100819324E0E3304A +:10302000F207C9F70E94EF128091E80083FF37C1D1 +:103030008091FB039091FC03953009F488C038F42B +:103040009130B1F170F0933009F029C131C098305E +:1030500009F4F8C0993009F404C1963009F01FC191 +:103060009DC0803821F0823809F019C108C08091D4 +:10307000F7039091F803992389F082600FC0809143 +:10308000FF03909100048F7099278093E90080914D +:10309000EB0085FB882780F91092E9009091E80009 +:1030A000977F9093E8008093F1001092F100D5C0D3 +:1030B000882319F0823009F0F2C08F7121F082303C +:1030C00009F0EDC00BC08091FD03813009F0E7C02D +:1030D000933009F080E08093F8032FC08091FD03C6 +:1030E00081112BC08091FF03909100048F7099276C +:1030F000009709F4D4C08093E9002091EB0020FFF1 +:103100001CC02091FC03233021F48091EB008062ED +:1031100012C09091EB0090619093EB0021E030E0C1 +:1031200001C0220F8A95EAF72093EA001092EA0084 +:103130008091EB0088608093EB001092E900809111 +:10314000E800877F8093E8000E941A16A8C08111CA +:10315000A6C08091FD039091FE038F779927182FC9 +:103160009091E3009078982B9093E3008091E80091 +:10317000877F8093E8000E941A168091E80080FF04 +:10318000FCCF8091E30080688093E300112311F06D +:1031900083E001C082E08093FA0381C080588230CE +:1031A00008F07DC08091FD039091FE038C3D23E0EB +:1031B000920779F583E08A838AE289834FB7F8948E +:1031C000DE01139620E03EE051E2E32FF0E0509361 +:1031D0005700E49120FF03C0E295EF703F5FEF706E +:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 +:1031F0009D932F5F243149F74FBF8091E800877F6F +:103200008093E8006AE270E0CE0101960E941C15EE +:1032100013C0AE01455D5F4F6091FF030E94031430 +:103220000097E9F12091E800277F2093E800BC0196 +:103230008BA59CA50E947F158091E8008B778093D9 +:10324000E8002DC0803859F58091E800877F809391 +:10325000E8008091F6038093F1008091E8008E777A +:1032600071CF81111CC09091FD039230C0F4809108 +:10327000E800877F8093E8009093F6030E941A1677 +:103280008091F603811104C08091E30087FF02C0A2 +:1032900084E001C081E08093FA030E94D112809102 +:1032A000E80083FF0AC08091E800877F8093E800F0 +:1032B0008091EB0080628093EB00AC960FB6F8949F +:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 +:1032D0008091FA038823B1F08091E9008F7090917A +:1032E000EC0090FF02C090E801C090E0C92FC82B0D +:1032F0001092E9008091E80083FD0E94FE17CF70D4 +:10330000C093E900CF910895881F8827881F0895EA +:1033100091E0883F08F490E0892F0895982F907FDE +:10332000903B99F038F4903981F0903A71F09038F0 +:10333000C9F40BC0903DA1F018F4903C99F410C072 +:10334000903E19F0903F71F402C083E00895E82F99 +:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 +:1033600082E0089580E008950F932F774F776F7074 +:10337000606BDC01ED91FC91022F242F462F63E05E +:1033800070E009950F9108950F932F774F776F7025 +:103390006069DC01ED91FC91022F242F462F63E040 +:1033A00070E009950F9108950F932F774F776F7005 +:1033B0006068DC01ED91FC91022F242F462F63E021 +:1033C00070E009950F910895FC017383628308955D +:1033D000FC01738F628F0895FC01758F648F0895CF +:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A +:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 +:103400001D821C821F821E82198618861B861A86C0 +:103410001D861C861F861E86198A188A1B8A1A8A90 +:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 +:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 +:103440000895CF92DF92FF920F931F93CF93DF9354 +:103450001F92CDB7DEB7F62E6A018C0108511F4FBF +:1034600008C0F60161916F01C80149830E94341CB4 +:1034700049818C2D841B8F15A0F30F90DF91CF9184 +:103480001F910F91FF90DF90CF900895FC01718301 +:1034900060830895FC0171A360A30895AF92BF9269 +:1034A000CF92DF92EF92FF920F931F93CF93DF9310 +:1034B00000D01F92CDB7DEB77C016B01142FB22E66 +:1034C000A02EDC0195968C9195978430F1F45A9654 +:1034D000ED91FC915B97309709F4D8C0CB0101972F +:1034E00063E070E00E943434DB01AA0FBB1FA60F1B +:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 +:103500003F4FBD01C7010995B1C06230710509F493 +:1035100053C06330710529F06130710509F09CC01A +:1035200083C0842F807F803A01F130F48038B9F075 +:10353000803909F0ABC00DC0803EE9F0803F09F151 +:10354000803B09F0A3C0D7011296ED91FC9113972F +:1035500023C0D7011496ED91FC9115971DC0D7019A +:103560001696ED91FC91179717C0D7011896ED911B +:10357000FC91199711C0D7011A96ED91FC911B97F8 +:103580000BC0423F09F082C0D7011C96ED91FC911F +:103590001D97309731F47AC0309709F477C0123F05 +:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C +:1035B0004B2DC70109955AC0842F807F803D59F05B +:1035C000803F79F0803C09F061C0D7011E96ED91F3 +:1035D000FC911F9719C0D7015096ED91FC9151971E +:1035E00013C0433F31F4D7015296ED91FC915397AC +:1035F00008C0413F09F04AC0D7015496ED91FC91B3 +:103600005597309741F442C0309709F43FC0133FBB +:1036100011F0113F19F44B2D612F03C0612F6F7012 +:103620004B2DC701099522C0842F0E948819882339 +:1036300031F0D7015696ED91FC91579707C0163F90 +:1036400029F5D7015896ED91FC9159973097F1F0F3 +:10365000612FC70109950AC064307105A8F416C02E +:103660000A2D2B2D412FB601C7010995D7015E9672 +:10367000ED91FC915F97309789F00A2D2B2D412F0A +:10368000B601C70109950AC0C12CD12CD7015C969F +:10369000ED91FC915D97309719F7E8CF0F900F905F +:1036A0000F90DF91CF911F910F91FF90EF90DF90DE +:1036B000CF90BF90AF900895EF92FF920F931F931A +:1036C000CF93DF93EC01162F862F0E948819882351 +:1036D00069F0FDA081E08DA300E020E0412F61E0D2 +:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 +:1036F00084194DA1882309F440C0443029F01AA34D +:1037000021E030E03FA32EA3812F0E948E1981304B +:1037100031F070F0823051F0833059F507C08DA33D +:1037200000E020E0412F61E070E01EC08DA35AC090 +:10373000103F19F0173FE9F404C084E08DA31AA3E9 +:103740003FC02EA13FA1C90163E070E00E94343464 +:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 +:103760006EA30CA12BA14AA1CE010E944E1A1DA24C +:1037700039C01DA21FA21EA235C0442399F12EA15B +:103780003FA1C90163E070E00E9434347C01FE0176 +:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC +:1037A0008130910591F082E0E816F104D9F40CA182 +:1037B0002BA14AA1CE010E944E1A8DA1843091F016 +:1037C00081E090E09FA38EA30DC0423059F400E049 +:1037D0002BA14AA1CE010E944E1A8DA1843011F076 +:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A +:1037F0000895CF92DF92EF92FF920F931F93CF9392 +:10380000DF93EC01E8A1F9A1309709F009958E0149 +:1038100008511F4FC8010E94661CE12CF12CC82ED4 +:10382000D12C0FC060E0C8010E947A1C682FCE0125 +:103830000E945C1B61E0C8010E948B1C8FEFE81A9C +:10384000F80AEC14FD0470F3DF91CF911F910F91F2 +:10385000FF90EF90DF90CF900895FC014283748336 +:1038600063831182108208950F931F93CF93DF9388 +:10387000EC01062F0E94AC1C182F298130E0C901F1 +:1038800001966A8170E00E944834488150E08417B4 +:10389000950729F4812F0E94AF1C80E012C0EB81B4 +:1038A000FC81E20FF31F00832981822F90E00196B3 +:1038B0006A8170E00E9448348983812F0E94AF1C86 +:1038C00081E0DF91CF911F910F910895CF93DF9306 +:1038D000EC010E94AC1C29819881291710F0C22F9D +:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E +:1038F000CF910895FC012081862F90E0820F911DC9 +:10390000628170E00E9448340380F481E02DE80F6A +:10391000F91F808108950F931F93CF93DF931F9218 +:10392000CDB7DEB78C0169830E94AC1C482FF8012B +:1039300080816981262F30E0280F311D6281C90105 +:1039400070E00E9448348083842F0F90DF91CF91E4 +:103950001F910F910C94AF1C8FB7F89408958FBFEF +:103960000895FC01CB012091FA032430B1F42181A8 +:103970002F702093E90040E050E064E070E00E9486 +:103980007E1481110BC09091E80095FD07C09091C5 +:10399000E8009E779093E800089582E008952091D2 +:1039A000FA032430A9F4FC0181818F708093E9002F +:1039B0003091F3002091F200932F80E0822B892B2D +:1039C00049F08091E8008E778093E8000C943B16D4 +:1039D00082E0089580E008952091FA03243051F4A4 +:1039E000FC0121812F702093E9002091E80020FD47 +:1039F0000C94CF1C0895FC01CB012091FA032430D4 +:103A000011F080E0089526812F702093E900209125 +:103A1000E80022FFF6CF2091E80025FFF2CF40E03A +:103A200050E064E070E00E94CD148091E80085FDD4 +:103A300005C08091E8008B778093E80081E00895CD +:103A400090939502809394020895E0919402F091EE +:103A50009502309721F00190F081E02D099480E0EB +:103A60000895E0919402F0919502309721F0028040 +:103A7000F381E02D09940895E0919402F09195026C +:103A8000309721F00480F581E02D0994089520916C +:103A90009602309197028217930771F090939702E4 +:103AA00080939602E0919402F0919502309721F074 +:103AB0000680F781E02D09940895209198023091B5 +:103AC00099028217930771F090939902809398025C +:103AD000E0919402F0919502309721F00084F185F5 +:103AE000E02D0994089508950C94731D0E94952962 +:103AF0000E94AD060E94692A0C9411300C94E705CF +:103B00005F926F927F928F929F92AF92BF92CF926D +:103B1000DF92EF92FF920F931F93CF93DF93CDB776 +:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 +:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 +:103B4000A394B12C502E802F0E9411093C01F60144 +:103B5000E190F1906F01E826F926E114F10431F4C7 +:103B60000F5F1F4F0530110569F73AC08091F002D1 +:103B700081FD0E941A0920E030E04501022E02C0BA +:103B8000880C991C0A94E2F7C4018E219F21892B8D +:103B900009F12E835F826820792081E0672809F48B +:103BA00080E088870E949E298160782F9A87898784 +:103BB0004E815F8168858A850E94391EF801EE0F6B +:103BC000FF1FE656FD4F80819181882599259183BD +:103BD000808316C02F5F3F4F2C30310571F6C0CF68 +:103BE0008FEF89838A831B820E949E298160782FB0 +:103BF0009D838C8349815A816B818D810E94391EFE +:103C00000E94562D1091A4020E94251D1817D9F06C +:103C10000E94251D8093A4022A960FB6F894DEBF59 +:103C20000FBECDBFDF91CF911F910F91FF90EF900D +:103C3000DF90CF90BF90AF909F908F907F906F90CC +:103C40005F900C947E1D2A960FB6F894DEBF0FBECF +:103C5000CDBFDF91CF911F910F91FF90EF90DF903B +:103C6000CF90BF90AF909F908F907F906F905F901C +:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 +:103C8000DEBF0FBECDBF4F83588769877A878B878A +:103C9000DE01119686E0FD0111928A95E9F785E033 +:103CA000FE01379601900D928A95E1F749815A817C +:103CB0006B817C818D819E810E9415262B960FB68B +:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 +:103CD000C82F882309F4C1C0823859F40E94251DD9 +:103CE00081FDBBC089E30E947C280E94F82889E3FB +:103CF0000CC0833879F40E94251D80FDAEC083E599 +:103D00000E947C280E94F82883E50E949E28CF917B +:103D10000C94F828843859F40E94251D82FD9DC01A +:103D200087E40E947C280E94F82887E4EECF845024 +:103D3000813A48F48C2F0E94732F81118EC08C2FF2 +:103D40000E947C28E4CF8C2F805E883050F4C770AE +:103D500081E090E001C0880FCA95EAF70E94BF2871 +:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD +:103D700031F482E890E005C081E890E002C083E879 +:103D800090E0CF910C94471D8C2F885A833108F016 +:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B +:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB +:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B +:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 +:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF +:103DE00092E038C082EE90E035C089EE90E032C0BB +:103DF0008AEE90E02FC085EB90E02CC086EB90E03F +:103E000029C087EB90E026C08CEC90E023C08DECBD +:103E100090E020C083E891E01DC08AE891E01AC0DC +:103E200082E991E017C084E991E014C081E292E058 +:103E300011C083E292E00EC084E292E00BC085E202 +:103E400092E008C086E292E005C087E292E002C0FC +:103E500080E090E0CF910C945D1DCF910895882370 +:103E600009F44DC0823859F40E94251D81FF47C0D6 +:103E700089E30E947C280E94F82889E30CC08338DB +:103E800071F40E94251D80FF3AC083E50E947C28C2 +:103E90000E94F82883E50E949E280C94F828843814 +:103EA00059F40E94251D82FF2AC087E40E947C28C5 +:103EB0000E94F82887E4EFCF982F9450913A08F4A5 +:103EC000EACF982F905E983058F4282F277081E021 +:103ED00090E001C0880F2A95EAF70E94C528DDCF3F +:103EE000982F955A933020F480E090E00C94471D71 +:103EF000885A833120F480E090E00C945D1D089591 +:103F0000882321F00E94BF280C94F8280895882364 +:103F100021F00E94C5280C94F8280895BF92CF92F2 +:103F2000DF92EF92FF920F931F93CF93DF93CDB762 +:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A +:103F400085E0F801DE01119601900D928A95E1F766 +:103F5000F80130812181F280558152955F70838113 +:103F60009481892B39F02F3F41F481E090E03F3F6D +:103F700031F003C081E090E002C080E090E080FD7D +:103F800073C339832A8389819A815E830E94392889 +:103F9000B92E8F830E9438280E9460272B2D2295EE +:103FA0002F7030E05E816F812530310509F4E6C065 +:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA +:103FC0008F70223031050CF045C017C02C30310500 +:103FD0004CF42A3031050CF0E7C12830310509F0E6 +:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 +:103FF0002F30310509F038C323C3182F411101C0F8 +:1040000002C01295107FFF2059F0112309F46BC2F2 +:10401000812F6F830E94CF280E94F8286F8163C28E +:10402000862F0E942F1F112309F41EC3812F0E9487 +:10403000D52827960FB6F894DEBF0FBECDBFDF910F +:10404000CF911F910F91FF90EF90DF90CF90BF9095 +:104050000C94F828403211F08295807F662319F085 +:10406000613071F523C0FF20B1F0511101C032C0A1 +:10407000513081F527960FB6F894DEBF0FBECDBF45 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94DF28511101C003C0513009F4C6 +:1040A000E3C28E830E94E2288E819AC1FF2021F014 +:1040B000563008F0D9C20EC0553008F0D5C290C1B4 +:1040C000FF20C9F0552331F0F801958190FF0BC214 +:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 +:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 +:1040F000BF900C94801F552309F472C109C22B2D67 +:1041000026952695237030E02115310529F02130C0 +:10411000310509F0A9C219C0FF2021F0862F9B2D7F +:10412000937002C080E090E027960FB6F894DEBF4F +:104130000FBECDBFDF91CF911F910F91FF90EF90F8 +:10414000DF90CF90BF900C94471DFF2021F0862F69 +:104150009B2D937002C080E090E027960FB6F894F4 +:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA +:10417000EF90DF90CF90BF900C945D1D862FFF20B5 +:1041800019F00E945C2C02C00E94C42C27960FB626 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 +:1041B000837009F079C0F11057C2262F22952695F9 +:1041C0002770220F220F862F8F70C82ED12CE12C42 +:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A +:1041E000D2F764FF10C06FE070E080E090E004C0A0 +:1041F000660F771F881F991F2A95D2F760957095D3 +:104200008095909503C060E070E0CB012B2D269542 +:1042100026952370422F50E042305105D9F04330AB +:10422000510569F16C297D298E299F29413051055D +:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 +:10424000CF911F910F91FF90EF90DF90CF90BF9093 +:104250000C9475276C297D298E299F2927960FB6E6 +:10426000F894DEBF0FBECDBFDF91CF911F910F91AC +:10427000FF90EF90DF90CF90BF900C9487270E9423 +:104280007527C701B60127960FB6F894DEBF0FBE9B +:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 +:1042A000CF90BF900C946327FF2019F08B2D817065 +:1042B00001C08695882309F4D7C1262F229526951B +:1042C0002770220F220F862F8F70C82ED12CE12C41 +:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 +:1042E000D2F764FF10C06FE070E080E090E004C09F +:1042F000660F771F881F991F2A95D2F760957095D2 +:104300008095909503C060E070E0CB012B2D269541 +:1043100026952370422F50E042305105D9F04330AA +:10432000510569F16C297D298E299F29413051055C +:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 +:10434000CF911F910F91FF90EF90DF90CF90BF9092 +:104350000C9414286C297D298E299F2927960FB645 +:10436000F894DEBF0FBECDBFDF91CF911F910F91AB +:10437000FF90EF90DF90CF90BF900C9426280E9482 +:104380001428C701B60127960FB6F894DEBF0FBEFA +:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1043A000CF90BF900C940228603F59F120F4603EFA +:1043B00008F494C008C0623F09F467C0F0F1633F9D +:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 +:1043D00021F00E94AD27812F7DCE0E94C827812F1A +:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 +:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 +:10440000871FFF20B1F0553008F02EC18B2D8F7122 +:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 +:104420001F910F91FF90EF90DF90CF90BF900C9471 +:10443000E727563008F018C1E9CFFF2099F08B2DFF +:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 +:10445000CF911F910F91FF90EF90DF90CF90BF9081 +:104460000C94AD278B2D8F7127960FB6F894DEBF75 +:104470000FBECDBFDF91CF911F910F91FF90EF90B5 +:10448000DF90CF90BF900C94C827F110EBCFD7CF1F +:10449000FF2099F08B2D8F7127960FB6F894DEBF11 +:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 +:1044B000DF90CF90BF900C949E2727960FB6F8946C +:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1044D000EF90DF90CF90BF900C949927FF20A9F028 +:1044E000552309F4ACCF862F27960FB6F894DEBF7C +:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 +:10450000DF90CF90BF900C94671E552309F4AACF7B +:10451000862F27960FB6F894DEBF0FBECDBFDF9172 +:10452000CF911F910F91FF90EF90DF90CF90BF90B0 +:104530000C942F1F4B2D4F70C8010E941A03279611 +:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:104550000F91FF90EF90DF90CF90BF900C94CB26FF +:10456000F11082C09B2D9F70492F50E042305105C1 +:1045700099F144F44115510569F04130510509F0B4 +:1045800073C019C043305105C1F14430510509F0E1 +:104590006BC044C027960FB6F894DEBF0FBECDBFE8 +:1045A000DF91CF911F910F91FF90EF90DF90CF900F +:1045B000BF900C94223027960FB6F894DEBF0FBE42 +:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1045D000CF90BF900C94393027960FB6F894DEBF79 +:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 +:1045F000DF90CF90BF900C94553027960FB6F8946B +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C946830862F279654 +:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:104630000F91FF90EF90DF90CF90BF900C948C3053 +:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 +:10465000CDBFDF91CF911F910F91FF90EF90DF9031 +:10466000CF90BF900C941B0927960FB6F894DEBF2D +:104670000FBECDBFDF91CF911F910F91FF90EF90B3 +:10468000DF90CF90BF9008950E94DC280E94B1284F +:104690000E94F8280E94F72D0E944B2D80E090E0A8 +:1046A0000E94471D80E090E00C945D1D0E94CC2884 +:1046B0000C9444230E943928292F22952F7030E032 +:1046C0002C3031054CF42A3031056CF4225031097C +:1046D0002230310590F407C02C30310551F02F30D5 +:1046E000310559F406C0803E10F0803F31F481E07E +:1046F000089593FB882780F9089580E00895CF936B +:10470000DF9300D000D01F92CDB7DEB70F900F908F +:104710000F900F900F90DF91CF910895CF93DF937B +:1047200000D000D000D0CDB7DEB726960FB6F894F3 +:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 +:10474000DF93C091DB0216E012C0D0E01C9FF001A5 +:104750001D9FF00D1124E555FD4F4081518162816F +:104760007381848195810E948E232196C7708091E8 +:10477000DC02C813EACFDF91CF911F9108954091D9 +:10478000A5025091A6026091A7027091A8028091A3 +:10479000A9029091AA020C948E230F931F93CF939A +:1047A000DF938091AA0282958F7009F069C0809191 +:1047B000A702882309F464C0A091DB02D091DC0237 +:1047C000B091A502C091A6028091A8029091A90281 +:1047D00021E030E0BF3F11F020E030E0122FBC01BB +:1047E0006095709506E04AC0009721F0CF3F29F40C +:1047F000212F05C021E030E002C020E030E020FDA4 +:104800003BC04A2F50E0049FF001059FF00D11249A +:10481000E555FD4F2181C2132FC02081B2132CC05A +:104820002281211129C0238134812817390718F0EA +:10483000281B390B02C0260F371F283C3105E0F436 +:104840008091AA028F7080618093AA0286E0849F83 +:10485000F001859FF00D1124E055FD4F80818F7090 +:104860008061808385EA92E00E948E1FDF91CF9164 +:104870001F910F910C949E23AF5FA770AD13B4CF1F +:10488000DF91CF911F910F910895EF92FF920F93B7 +:104890001F93CF93DF93CDB7DEB762970FB6F8942F +:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 +:1048B00001900D928A95E1F7D8014C9111965C9187 +:1048C000119712966C9112971396ED90FC90149795 +:1048D0007091A502E091A6028091A8029091A90290 +:1048E000009739F0EF3F41F421E030E07F3F31F0B5 +:1048F00003C021E030E002C020E030E020FD5CC1D8 +:104900002091A702222309F4F1C0E816F90628F045 +:104910009701281B390BC90104C0809590958E0D15 +:104920009F1D883C910508F098C08091AA02982F9D +:10493000907F09F064C0E51314C0741312C06111B4 +:1049400010C08F7080618093AA020E94BF2385EA05 +:1049500092E00E948E1F8091AA02D80115968C9336 +:1049600043C1EF2839F05F3F41F481E090E04F3FD1 +:1049700031F003C081E090E002C080E090E080FD73 +:1049800003C081E0862702C080E090E080FF2EC057 +:104990008091DB022091DC0236E013C090E0389F6A +:1049A000F001399FF00D1124E555FD4F718157132A +:1049B00006C07081471303C07281671317C0019648 +:1049C00087708213EBCF12C19F7059F0882309F4CE +:1049D0000BC107C09F7029F0F8019581907F09F401 +:1049E00003C1805E883008F4FFC0D2C0662309F49A +:1049F000FBC08091AA0281608093AA02F5C0E513F2 +:104A000008C0741306C0611104C0D80115968C93B8 +:104A10009DC04D875E878D859E856A8B0E945A2337 +:104A20006A89882309F4B4C0662309F4B1C02091CF +:104A3000AA02822F82958F7090E002970CF4C6C074 +:104A40008091A5029091A60298878F831986FB8694 +:104A5000EA862C87CE01079646C08091AA02982F3D +:104A6000907F59F47E2DF98AE88A89890E947F23F4 +:104A700085EA92E00E948E1F95C0E51311C0741361 +:104A80000FC061110DC0F8018583C8010E948E1FFF +:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F +:104AA0004D875E878D859E856A8B0E945A236A8911 +:104AB000882309F46DC0662309F46AC02091AA0214 +:104AC000822F82958F7090E002970CF47FC08091C6 +:104AD000A5029091A6029A8389831B82FD82EC82B3 +:104AE0002E83CE0101960E948E1F70C0E816F90633 +:104AF00028F09701281B390BC90104C080959095B7 +:104B00008E0D9F1D883C910508F046C0662309F470 +:104B10003FC0E51330C074132EC02091AA0220FDBF +:104B200021C0322F32953F70832F90E00097D1F053 +:104B3000D80115962C9315970F9741F0832F8F5F0F +:104B40008295807F2F70282B15962C93C8010E9488 +:104B50008E1F86E0F801A5EAB2E001900D928A95D9 +:104B6000E1F73EC086E0F801A5EAB2E001900D92BF +:104B70008A95E1F737C04D875E878D859E850E94B7 +:104B80005A23811123C08091AA0281608093AA02D6 +:104B9000C8010E948E1F26C07E2DF98AE88A898965 +:104BA0000E947F23E5EAF2E086E0DF011D928A950C +:104BB000E9F70E94BF2318C0662351F34D875E8733 +:104BC0008D859E850E945A23882311F386E0F80183 +:104BD000A5EAB2E001900D928A95E1F70E94CD23FB +:104BE0000E94BF2381E014C080E012C04D875E8721 +:104BF0008D859E850E943928292F22952F7030E0BF +:104C0000223031050CF4E0CE243031050CF6E2CE32 +:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 +:104C20001F910F91FF90EF9008951F93CF93DF9303 +:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 +:104C40004F83588769877A878B879C87CE01079621 +:104C50000E9445248823D9F02F8138858A859B8539 +:104C6000892B39F03F3F19F080E090E004C02F3FDE +:104C7000D9F781E090E0892B09F06DC04F8158850C +:104C800069857A858B859C850E948E2364C086E029 +:104C9000FE013796DE01119601900D928A95E1F79B +:104CA000FF81E8854A855B854115510539F0EF3F65 +:104CB00041F481E090E0FF3F31F003C081E090E0FB +:104CC00002C080E090E080FD46C02091DC0230E030 +:104CD000C9010196877099276091DB0270E0861701 +:104CE000970709F440C0F983EA835D834C8396E01B +:104CF000929FD001939FB00D1124A555BD4FFE0189 +:104D0000319601900D929A95E1F78093DC020E9412 +:104D10009E2321C0189FC001112485559D4F0E94DC +:104D20004524882371F1E091DB021E9FF0011124DC +:104D3000E555FD4F40815181628173818481958168 +:104D40000E948E238091DB0290E001968770992764 +:104D50008093DB0201C016E08091DB029091DC02BF +:104D60008913D8CF0EC00E9456231092DC021092F5 +:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 +:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 +:104D9000CF911F910895DF92EF92FF920F931F938F +:104DA000CF93DF93EC01009709F46EC0D12CEE2471 +:104DB000E394F12C8E010F5F1F4FFE018491843725 +:104DC00048F4843008F04CC0813071F0823009F032 +:104DD0005BC01EC0853709F43FC080F1982F9458FE +:104DE000903708F051C03FC02296F8018491982F67 +:104DF000905E983050F48770FE2D01C0FF0F8A95A9 +:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 +:104E10002296F8018491982F905E983060F4877004 +:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B +:104E30000E94F8281CC00E942F1F19C02296F8015A +:104E4000049107C08FE99FE00197F1F700C00000CF +:104E500001500111F7CF0BC02296F801D49007C082 +:104E60000E94671E03C08F770E942F1FE8018D2DBF +:104E700007C08150EFE9FFE03197F1F700C0000073 +:104E8000882309F497CFF5CFDF91CF911F910F9130 +:104E9000FF90EF90DF9008956093E1027093E2023B +:104EA0008093E3029093E4020C9444236093DD0228 +:104EB0007093DE028093DF029093E0020C9444230F +:104EC00008950C944C270F931F930091E1021091C9 +:104ED000E2022091E3023091E402602B712B822BDD +:104EE000932B1F910F910C944C270F931F930091BC +:104EF000E1021091E2022091E3023091E40260238A +:104F00007123822393231F910F910C944C270F93AD +:104F10001F930091E1021091E2022091E30230918F +:104F2000E40260277127822793271F910F910C9429 +:104F30004C2760E070E0CB010C94562741E050E034 +:104F400060E070E004C0440F551F661F771F8A950C +:104F5000D2F7CB01BA010C94562741E050E060E053 +:104F600070E004C0440F551F661F771F8A95D2F763 +:104F70008091DD029091DE02A091DF02B091E0020B +:104F8000482B592B6A2B7B2BCB01BA010C9456274B +:104F900041E050E060E070E004C0440F551F661F20 +:104FA000771F8A95D2F740955095609570958091BE +:104FB000DD029091DE02A091DF02B091E002482371 +:104FC00059236A237B23CB01BA010C94562741E075 +:104FD00050E060E070E004C0440F551F661F771F6B +:104FE0008A95D2F78091DD029091DE02A091DF02D6 +:104FF000B091E002482759276A277B27CB01BA01E5 +:105000000C9456270F931F930091DD021091DE023E +:105010002091DF023091E002602B712B822B932BC9 +:105020001F910F910C9456270F931F930091DD024F +:105030001091DE022091DF023091E00260237123A3 +:10504000822393231F910F910C9456270F931F9344 +:105050000091DD021091DE022091DF023091E0022A +:1050600060277127822793271F910F910C94562751 +:105070000895CF92DF92EF92FF920F931F93CF93F9 +:10508000DF93EC01C090E102D090E202E090E302F5 +:10509000F090E4028091DD029091DE02A091DF02A7 +:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF +:1050B000B701A601002E04C07695679557954795D0 +:1050C0000A94D2F740FF08C0BE01802F0E947104ED +:1050D0008130910509F007C00150110948F7BE0160 +:1050E00080E00E947104DF91CF911F910F91FF909A +:1050F000EF90DF90CF90089540918B0150918C01FB +:1051000020E030E09FEFFA01E20FF31F62816817A1 +:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 +:105120002630310581F707C0FA01E90FF11D97FD1F +:10513000FA95828308959F3FB9F7089540918B01B6 +:1051400050918C0120E030E0FA01E20FF31F9281D0 +:10515000981301C012822F5F3F4F26303105A1F70F +:10516000089581E090E0E0918B01F0918C01E80FCF +:10517000F91F1082019688309105A9F70895909142 +:10518000E502982B9093E502089580959091E502B1 +:1051900098239093E50208951092E5020895909166 +:1051A000E602982B9093E602089580959091E6028E +:1051B00098239093E60208951092E6020895809352 +:1051C000E70208951092E702089540918B015091F3 +:1051D0008C0120E030E080E0FA01E20FF31F9181C2 +:1051E00091118F5F2F5F3F4F27303105A9F7089549 +:1051F000E0918B01F0918C018091E5028083E09138 +:105200008B01F0918C0180819091E602892B808343 +:105210009091E702992361F0E0918B01F0918C016C +:105220008081892B80830E94E52881110E94E228D9 +:1052300080918B0190918C010C94311D8091FA0327 +:10524000843021F11092F10220E488E190E00FB661 +:10525000F894A895809360000FBE2093600080E0D2 +:105260000E94590383B7817F846083BF83B78160C5 +:1052700083BF7894889583B78E7F83BF88E10FB60C +:10528000F89480936000109260000FBE0895089516 +:105290000895CF9380E00E9459030E9447290E94FD +:1052A000BD070E944829C0E08C2F0E941109892B5C +:1052B00029F4CF5FC530C1F780E001C081E0CF9114 +:1052C00008950E94562380E00E9459030E941130E5 +:1052D0000E94251D0C94E7051F920F920FB60F92A6 +:1052E00011248F939F93AF93BF938091F10281110B +:1052F00013C08091F2029091F302A091F402B09158 +:10530000F5024196A11DB11D8093F2029093F30224 +:10531000A093F402B093F502BF91AF919F918F914A +:105320000F900FBE0F901F90189582E084BD93E000 +:1053300095BD9AEF97BD80936E0008958FB7F8944E +:105340004091F2025091F3026091F4027091F502E3 +:105350008FBFCA010895CF92DF92EF92FF920F9311 +:105360001F932FB7F8944091F2025091F30260918D +:10537000F4027091F5022FBF6A017B01EE24FF2435 +:105380008C0120E030E0C016D106E206F30620F0E2 +:105390009A01281B390B05C09C0120953095240FDC +:1053A000351FC9011F910F91FF90EF90DF90CF90B3 +:1053B00008951F920F920FB60F9211248F939F930F +:1053C000AF93BF938091F2029091F302A091F40207 +:1053D000B091F5020196A11DB11D8093F202909348 +:1053E000F302A093F402B093F502BF91AF919F91A5 +:1053F0008F910F900FBE0F901F9018950E946D1601 +:10540000F8942FEF87EA91E6215080409040E1F731 +:1054100000C0000087E090EBDC01809304049093CF +:105420000504A0930604B09307042CE088E190E003 +:105430000FB6F894A895809360000FBE209360008B +:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 +:10545000DF93C82ED12C01E010E08D2D0E941109A0 +:105460007C01C0E0D0E098010C2E02C0220F331F57 +:105470000A94E2F72E213F21232B29F42196CC30E8 +:10548000D10589F708C06C2F7D2D80E00E944C0467 +:10549000C812F4CF06C0D39485E0D812DECF80E0E6 +:1054A00001C081E0DF91CF911F910F91FF90EF90AC +:1054B000DF90CF900895CF93C82F8CE20E94212ACD +:1054C000882321F08C2FCF910C94212A80E0CF915A +:1054D0000895CF930E94AC2B811102C00E948D2BA6 +:1054E000C5E608C00E94BD078FE39CE90197F1F76C +:1054F00000C00000C150B1F789E20E945B2A81110F +:105500000AC18AE20E945B2A81110E948D2B85E0EC +:105510000E945B2A81110E94FE290E94B72B809372 +:10552000F00287E00E945B2A882399F18BE10E94B8 +:105530005B2A882351F09091F00291FB882780F933 +:1055400021E0822780FB91F922C08EE00E945B2A35 +:10555000882351F09091F00292FB882780F921E096 +:10556000822780FB92F913C080E10E945B2A909110 +:10557000F002882341F093FB882780F921E08227FD +:1055800080FB93F904C0892F809580FB90F990935C +:10559000F0028091F0020E94BB2B0E94C92B8093E5 +:1055A000010380EE0E945B2A882341F08091010371 +:1055B000982F909590FB80F98093010389E30E94D6 +:1055C0005B2A882359F09091010391FB882780F989 +:1055D00021E0822780FB91F99093010382EE0E94E3 +:1055E0005B2A882359F09091010392FB882780F968 +:1055F00021E0822780FB92F99093010386EE0E94BE +:105600005B2A882359F09091010393FB882780F946 +:1056100021E0822780FB93F99093010383EE0E949F +:105620005B2A882359F09091010394FB882780F925 +:1056300021E0822780FB94F99093010385E30E9487 +:105640005B2A882359F09091010395FB882780F904 +:1056500021E0822780FB95F99093010381E30E946A +:105660005B2A882359F09091010396FB882780F9E3 +:1056700021E0822780FB96F99093010381E10E944B +:105680005B2A882359F09091010397FB882780F9C2 +:1056900021E0822780FB97F9909301038091010319 +:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 +:1056B0005B2A8111C2608FE10E945B2A8111C46064 +:1056C00080E20E945B2A8111C86081E20E945B2A0D +:1056D0008111C06182E20E945B2A8111C06283E273 +:1056E0000E945B2A8111C06484E20E945B2A8823A5 +:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B +:105700006C2F03C00E94C02B682F70E080E090E0F7 +:10571000CF910C946127CF9108956DEE7EEF80E0DC +:1057200090E00E94783460E082E090E00E946A3469 +:1057300060E083E090E00E946A3460E084E090E002 +:105740000E946A3460E085E090E00E946A3460E084 +:1057500086E090E00C946A3480E090E00E9464342B +:1057600021E08D3E9E4F09F020E0822F089582E0D7 +:1057700090E00C945C34682F82E090E00C946A34E2 +:1057800083E090E00C945C34682F83E090E00C940C +:105790006A3484E090E00C945C34682F84E090E0FC +:1057A0000C946A3486E090E00C945C34682F86E0B8 +:1057B00090E00C946A348091FE0280FF0BC06091EF +:1057C000900185E0689FB0011124759567957595E6 +:1057D00067952AC081FF09C06091900185E0689FAC +:1057E000B0011124759567951FC082FF07C06091B5 +:1057F000900185E0689FB001112416C04091F80225 +:105800004423C9F060918F01461788F720919001D9 +:1058100085E0289F90011124429FC001439F900D75 +:10582000112470E00E9448346038710540F461151D +:10583000710539F002C065E070E0862F08958FE7AA +:10584000089581E008958091FE0280FF08C0609174 +:105850008E0170E0759567957595679521C081FFFC +:1058600006C060918E0170E07595679519C082FF42 +:1058700004C060918E0170E010C08091F80288230E +:10588000C1F060918D018617A0F790918E01989FCD +:10589000C001112470E00E9448346038710528F47A +:1058A0006115710521F0862F08958FE7089581E035 +:1058B000089561E070E0F4CF803F21F40E94DB2B7B +:1058C000819504C0813F29F40E94DB2B8093FB0269 +:1058D0000895823F21F40E94DB2B819504C0833F11 +:1058E00029F40E94DB2B8093FA020895893F19F472 +:1058F0000E94232C05C08A3F31F40E94232C8195FD +:105900008093FC0208958B3F21F40E94232C819503 +:1059100004C08C3F29F40E94232C8093FD0208953B +:10592000843F21F48091F902816017C0853F21F402 +:105930008091F902826011C0863F21F48091F902C2 +:1059400084600BC0873F21F48091F902886005C014 +:10595000883F31F48091F90280618093F9020895C3 +:105960008D3F21F48091FE0281600BC08E3F21F4B7 +:105970008091FE02826005C08F3F29F48091FE0273 +:1059800084608093FE020895803F29F48091FB0299 +:1059900087FF6EC007C0813F41F48091FB0218165B +:1059A0000CF066C01092FB0263C09091FA02823F35 +:1059B00019F497FF5DC005C0833F31F419160CF050 +:1059C00057C01092FA0254C0893F31F48091FC0212 +:1059D00018160CF04DC006C08A3F39F48091FC02C5 +:1059E00087FF46C01092FC0243C08B3F29F4809190 +:1059F000FD0287FF3DC006C08C3F39F48091FD0257 +:105A00001816B4F51092FD0233C0843F21F4809142 +:105A1000F9028E7F05C0853F31F48091F9028D7FB8 +:105A20008093F90225C0863F21F48091F9028B7F93 +:105A3000F7CF873F21F48091F902877FF1CF883F2C +:105A400021F48091F9028F7EEBCF8D3F21F480917C +:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F +:105A600005C08F3F29F48091FE028B7F8093FE0258 +:105A70008091FA0281110EC08091FB0281110AC04F +:105A80008091FC02811106C08091FD02811102C04B +:105A90001092F802089589EF92E00E943C1D0E9446 +:105AA0009E299093F7028093F6020895CF938091F8 +:105AB000F6029091F7020E94AB294091F80244232C +:105AC00021F02091910130E006C0209192015AE02E +:105AD000259F900111248217930708F486C08091B6 +:105AE000FA0281110DC09091FB02911109C09091B1 +:105AF000FC02911105C09091FD02992309F475C033 +:105B00004F3F19F04F5F4093F802181624F40E949B +:105B1000DB2B8093FA028091FA0287FF05C00E9476 +:105B2000DB2B81958093FA028091FB02181624F4F6 +:105B30000E94DB2B8093FB028091FB0287FF05C054 +:105B40000E94DB2B81958093FB026091FA02662311 +:105B500039F1C091FB02CC2319F1772767FD7095CD +:105B6000872F972F0E94AC3123E333E343E35FE3B6 +:105B70000E9460320E9479316093FA026C2F77277D +:105B800067FD7095872F972F0E94AC3123E333E395 +:105B900043E35FE30E9460320E9479316093FB022D +:105BA0008091FC02181624F40E94232C8093FC029E +:105BB0008091FC0287FF05C00E94232C8195809371 +:105BC000FC028091FD02181624F40E94232C80937D +:105BD000FD028091FD0287FF05C00E94232C819564 +:105BE0008093FD02CF910C944B2DCF910895E9EF56 +:105BF000F2E085E0DF011D928A95E9F71092F80244 +:105C00001092FE020895833089F130F4813061F002 +:105C1000823009F06EC019C0853009F449C0B8F16E +:105C2000863009F066C055C020919201862F90E021 +:105C3000820F911D8F3F910520F4620F60939201B6 +:105C400008958FEF80939201089520919101862FFE +:105C500090E0820F911D8F3F910520F4620F6093B9 +:105C6000910108958FEF8093910108952091900103 +:105C7000862F90E0820F911D8F3F910520F4620FD7 +:105C80006093900108958FEF809390010895209183 +:105C90008F01862F90E0820F911D8F3F910520F498 +:105CA000620F60938F0108958FEF80938F010895A5 +:105CB00020918E01862F90E0820F911D8F3F9105DC +:105CC00020F4620F60938E0108958FEF80938E0110 +:105CD000089520918D01862F90E0820F911D8F3FB6 +:105CE000910520F4620F60938D0108958FEF8093EA +:105CF0008D010895833021F130F4813059F08230E4 +:105D000009F049C012C0853089F128F1863009F0C8 +:105D100042C037C080919201681720F4861B80939F +:105D2000920108951092920108958091910168174F +:105D300020F4861B8093910108951092910108959B +:105D400080919001681720F4861B8093900108953C +:105D500010929001089580918F01681720F4861B9E +:105D600080938F01089510928F01089580918E0184 +:105D7000681720F4861B80938E01089510928E017F +:105D8000089580918D01681720F4861B80938D0102 +:105D9000089510928D01089541E050E060E070E0B8 +:105DA00004C0440F551F661F771F8A95D2F7CB0199 +:105DB000BA010E9461270C945623873200F58E3178 +:105DC00008F086C08E3009F466C060F4873009F4AC +:105DD0004DC018F4863049F531C0883041F18B3020 +:105DE00021F57BC0863109F478C018F48031E9F4DC +:105DF0005CC0893109F471C08B31B9F442C0883379 +:105E000009F46BC048F4893209F460C0853309F4A1 +:105E10005DC0873251F45AC0833409F457C018F476 +:105E20008A3318F057C0883499F080E008950E94B2 +:105E3000B72B0E94C92B0E94D22B4FC08091F00239 +:105E4000817F8E7F8093F00281E08093FF0208952E +:105E50000E9456232FEF83ED90E321508040904025 +:105E6000E1F700C000000E94FE2937C08091F002D7 +:105E700080FF03C0817F8E7F01C081608093F0022C +:105E80002CC09091F00291FB882780F921E08227B5 +:105E900080FB91F913C09091F00292FB882780F962 +:105EA00021E0822780FB92F909C09091F00293FBD8 +:105EB000882780F921E0822780FB93F99093F002F4 +:105EC000882359F091609093F00207C080E003C0EE +:105ED0008D5101C089530E94CC2E81E0089580E04D +:105EE000089580E00895CF93C82F8091FF028130FC +:105EF00071F020F0823009F089C037C0A0918B0189 +:105F0000B0918C018C91823209F082C007C0A091BF +:105F10008B01B0918C018C91823249F48C2F0E94BC +:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 +:105F30000E94712F811115C0C43169F030F4CB304B +:105F400081F0C03109F068C009C0C93221F0C833FE +:105F500009F062C006C01092FF025EC082E080932A +:105F6000FF0281E090E081705AC0C932C9F060F44C +:105F7000C431B1F020F4C73009F04CC034C0CE5168 +:105F8000C63008F047C017C0CE3439F120F4CB3406 +:105F900009F040C01CC0C135C1F0C235D9F513C0ED +:105FA00080910003882319F01092000333C081E030 +:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 +:105FC0008093000327C061E003C061E007C06AE07E +:105FD000809100030E94032E1DC06AE0809100039F +:105FE0000E947A2E17C08EE18093920182E3809303 +:105FF00091018AE08093900184E180938F0188E091 +:1060000080938E0188E280938D0104C01092FF027C +:1060100080E005C081E003C080E090E0A4CFCF9194 +:1060200008950E94AC2B811102C00E948D2B0E940A +:10603000D22B8093030480FF02C0869501C080E0CC +:106040000C94590380910304982F9695292F30E0E2 +:10605000233031054CF49F5F990F8170892B81604B +:10606000809303040E94D62B8091030486950C94A0 +:10607000590380910304982F969591F09158990FA8 +:106080008170892B809303048E7F91E009F490E066 +:106090008091030490FB80F9809303040E94D62B27 +:1060A0008091030486950C94590380910304982FE2 +:1060B000909590FB80F9809303040E94D62B8091E9 +:1060C000030480FF02C0869501C080E00C94590350 +:1060D00030910304232F26952F5F2F77822F90E096 +:1060E000317004972CF4220F232B2093030402C059 +:1060F0003093030480910304282F2E7F91E009F44C +:1061000090E090FB80F9809303040E94D62B80914D +:10611000030486950C94590320910304922F9695BD +:106120009827990F822F8170892B809303048E7F8B +:1061300091E009F490E08091030490FB80F9809352 +:1061400003040E94D62B8091030486950C94590376 +:106150005058BB27AA270ED075C166D130F06BD13D +:1061600020F031F49F3F11F41EF45BC10EF4E09572 +:10617000E7FB51C1E92F77D180F3BA1762077307A4 +:106180008407950718F071F49EF58FC10EF4E09521 +:106190000B2EBA2FA02D0B01B90190010C01CA01E1 +:1061A000A0011124FF27591B99F0593F50F4503E8C +:1061B00068F11A16F040A22F232F342F4427585F7E +:1061C000F3CF469537952795A795F0405395C9F796 +:1061D0007EF41F16BA0B620B730B840BBAF091504E +:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED +:1061F000BA0F621F731F841F48F4879577956795C0 +:10620000B795F7959E3F08F0B3CF9395880F08F0A8 +:106210009927EE0F979587950895D9D008F481E0D6 +:1062200008950CD00FC107D140F0FED030F021F41A +:106230005F3F19F0F0C0511139C1F3C014D198F388 +:106240009923C9F35523B1F3951B550BBB27AA27F7 +:1062500062177307840738F09F5F5F4F220F331F69 +:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 +:1062700091505040E695001CCAF729D0FE2F27D038 +:10628000660F771F881FBB1F261737074807AB0706 +:10629000B0E809F0BB0B802DBF01FF2793585F4F7B +:1062A0002AF09E3F510568F0B6C000C15F3FECF395 +:1062B000983EDCF3869577956795B795F7959F5F40 +:1062C000C9F7880F911D9695879597F90895E1E094 +:1062D000660F771F881FBB1F621773078407BA07F3 +:1062E00020F0621B730B840BBA0BEE1F88F7E0954E +:1062F000089504D06894B111D9C00895BCD088F035 +:106300009F5790F0B92F9927B751A0F0D1F0660FA1 +:10631000771F881F991F1AF0BA95C9F712C0B130BC +:1063200081F0C3D0B1E00895C0C0672F782F8827CF +:10633000B85F39F0B93FCCF3869577956795B395FB +:10634000D9F73EF490958095709561957F4F8F4F6A +:106350009F4F0895E89409C097FB3EF4909580956F +:10636000709561957F4F8F4F9F4F9923A9F0F92F1B +:1063700096E9BB279395F695879577956795B79599 +:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F +:106390007F4F8F4F9F4F16C0882311F096E911C091 +:1063A000772321F09EE8872F762F05C0662371F0B2 +:1063B00096E8862F70E060E02AF09A95660F771FC6 +:1063C000881FDAF7880F9695879597F90895990FA2 +:1063D0000008550FAA0BE0E8FEEF16161706E807AF +:1063E000F907C0F012161306E407F50798F0621BD0 +:1063F000730B840B950B39F40A2661F0232B242BA5 +:10640000252B21F408950A2609F4A140A6958FEFC3 +:10641000811D811D089597F99F6780E870E060E015 +:1064200008959FEF80EC089500240A94161617062D +:1064300018060906089500240A9412161306140675 +:1064400005060895092E0394000C11F4882352F0D8 +:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 +:106460008F4F9F4F089557FD9058440F551F59F077 +:106470005F3F71F04795880F97FB991F61F09F3F31 +:1064800079F087950895121613061406551FF2CF5A +:106490004695F1DF08C0161617061806991FF1CFAA +:1064A00086957105610508940895E894BB276627D1 +:1064B0007727CB0197F908958ADF08F48FEF0895C5 +:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C +:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 +:1064E000950F50E0551F629FF001729FBB27F00D82 +:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 +:10650000B00DA11D661F829F2227B00DA11D621F25 +:10651000739FB00DA11D621F839FA00D611D221FDF +:10652000749F3327A00D611D231F849F600D211DC3 +:10653000822F762F6A2F11249F5750408AF0E1F066 +:1065400088234AF0EE0FFF1FBB1F661F771F881FAF +:1065500091505040A9F79E3F510570F05CCFA6CFF7 +:106560005F3FECF3983EDCF3869577956795B7959A +:10657000F795E7959F5FC1F7FE2B880F911D9695C4 +:10658000879597F90895FA01EE0FFF1F30962105C0 +:10659000310599F16115710561F48038BFE39B07FE +:1065A00049F168949038810561F08038BFEF9B070E +:1065B00041F0992342F5FF3FE1053105210511F135 +:1065C000E8940894E795D901AA2329F4AB2FBE2FAC +:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD +:1065E00050F019F0FF3A38F49F779F930CD00F903A +:1065F00007FC905808953EF014CF60E070E080E80A +:106600009FE308954FE79F775F934F933F932F93B7 +:106610009ED02F913F914F915F9152DF05C019F4A9 +:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 +:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 +:106640000F920F920F924DB75EB70F92C0D0ECEA47 +:10665000F0E016D04F915F91EF91FF91E595EE1F1D +:10666000FF1F49F0FE57E0684427EE0F441FFA95DC +:10667000E1F74195550B32D00F9007FE26C00895E3 +:10668000DF93CF931F930F93FF92EF92DF927B01E3 +:106690008C01689405C0DA2EEF011EDFFE01E8943C +:1066A000A5912591359145915591AEF3EF0162DDAC +:1066B000FE019701A801DA9479F7DF90EF90FF903F +:1066C0000F911F91CF91DF9108959B01AC0160E084 +:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 +:1066E0009923D9F3940F511DBBF39150504094F06E +:1066F00059F0882332F0660F771F881F9150504061 +:10670000C1F79E3F510544F7880F911D96958795D7 +:1067100097F908955F3FACF0983E9CF0BB278695B3 +:1067200077956795B79508F4B1609395C1F7BB0F5E +:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 +:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 +:10675000C8F39923D1F3C6F3DF93CF931F930F931D +:10676000FF92C92FDD2788232AF02197660F771F14 +:10677000881FDAF720E030E040E85FEB9FE38839DC +:1067800020F0803E30F021968F77E3DCE4EDF0E0FE +:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F +:1067A000FB2E6F5771097595771F880B990BD4DDF8 +:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 +:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 +:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 +:1067E0003327442750781FC0B75188F4AB2F0024BB +:1067F000469537952795011CA395D2F3002069F0A3 +:10680000220F331F441FB395DAF30DD0A1CC6130B2 +:106810007105A0E88A07B94630F49B01AC016627F0 +:10682000772788279078309621F020833183428320 +:10683000538308959F3F31F0915020F487957795C9 +:106840006795B795880F911D9695879597F9089547 +:10685000991B79E004C0991F961708F0961B881FB2 +:106860007A95C9F780950895AA1BBB1B51E107C013 +:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 +:10688000991F5A95A9F780959095BC01CD0108955F +:1068900097FB072E16F4009407D077FD09D00E94CD +:1068A000343407FC05D03EF4909581959F4F0895B0 +:1068B000709561957F4F0895F999FECF92BD81BD86 +:1068C000F89A992780B50895A8E1B0E042E050E039 +:1068D0000C947F34262FF999FECF1FBA92BD81BD4B +:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 +:1068F0000E946A34272F0C946B34DC01CB01FC011D +:10690000F999FECF06C0F2BDE1BDF89A319600B408 +:0E6910000D9241505040B8F70895F894FFCF13 +:10691E0055D0A44600001644000000000000484276 +:10692E0061978A460000C8430000000000004842FC +:10693E0055D024460000C843000000000000484225 +:10694E0000005C460000C843000000000000484202 +:10695E0061978A4600007A4455D0A4460000C84389 +:10696E00000000000000484200005C460000C843E2 +:10697E00000000000000484255D024460000164496 +:10698E000507000C058540000001064000000100CF +:10699E0091102111FD10C810941001E8022808145E +:1069AE000A321E42004500250026004300610060A9 +:1069BE000020003700640065006600670044004652 +:1069CE000024004700000002000400050007000933 +:1069DE00000B000C000E0010001100130015001724 +:1069EE000018001A001C001D001F002100230024A7 +:1069FE00002600280029002B002D002F0030003229 +:106A0E000034003500370039003B00F6030F042830 +:106A1E0004410469051C05E604C6043F4D362002F8 +:106A2E000302000001000101010101000101010248 +:086A3E00030405060708090026 +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex new file mode 100644 index 000000000..a29f23c00 --- /dev/null +++ b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex @@ -0,0 +1,1863 @@ +:020000020000FC +:047000000C948D3E21 +:047028000C94B73DD0 +:10702F0012010002FF010020EB03F42F0000010208 +:10703F00030109021200010100803209040000005F +:10704F00000000000C03410054004D0045004C00AF +:10705F001603410054006D00330032005500340018 +:10706F004400460055000C0331002E0030002E0066 +:10707F0030000403090416010C0100000C0000018C +:02708F006C7F14 +:1070920012BD01BDF89A00B5089501E00895F9996D +:1070A200FECF12BD01BD20BDFA9AF99AF6CFF99929 +:1070B200FECF0C944938F80104910895F8013491F7 +:1070C20031962491890108950091610000930C0189 +:1070D20000E80093610001E00093610005BF02E057 +:1070E20005BF0C9486380091D70001600093D70049 +:1070F200A89507EF04BF0091600000610093600053 +:1071020000E00093600001E008950E94AA3D0E9401 +:10711200B53DFDCF0CD00F7708D0006806D00061D6 +:1071220004D0016028D0789408950093D80000918B +:10713200D8000895FCDF00621ED04CD009B500FFD4 +:10714200FDCFF5DF0F7D17D00091E0000E7F009399 +:10715200E0000091E000077F0093E0000091E20070 +:1071620001600093E2000091E20008600093E200F7 +:1071720078940C94743B0093D800089500910D010B +:10718200002359F40091D90000FF07C0D0DF006846 +:10719200F2DF01E000930D01CDDFE0E2F2E00081D9 +:1071A200018100FF0DC0008111811E7F11830083C8 +:1071B20001E00093EA0000E00093EA0000931E025F +:1071C20000E00093E9000091E80003FF02C00E9482 +:1071D200F23B0895A89539D000E40093600000E0E6 +:1071E200009381000093800010E0009385000093DB +:1071F200840001E006BB00918100036000938100DE +:107202000091600007FFFCCF00E80093600010933C +:107212008100A89507EF04BF18D010936000209159 +:1072220084003091850010938100109380001093A8 +:1072320085001093840001E006BB2D3D354010F01F +:1072420002E101C002E009BD089500916000006101 +:107252000093600008950E94AD3E239741D100E063 +:1072620000930901B5D104811581012B51F437D165 +:1072720000910701002309F4B9C000E0009307015F +:10728200B5C058D102FFFDCF37D1068335D1009367 +:107292000F0132D1009310012FD1009311012CD193 +:1072A2000093120129D10093130102852091130149 +:1072B20030911201409111015091100116811A95DD +:1072C20041F01250A9F01A9599F11A9509F473C078 +:1072D2008BC010910F01113011F411E001C010E0C8 +:1072E200138799D00C3F11F414D17FC077D17DC0A0 +:1072F20092D010910F01112329F01A9549F01A9595 +:10730200A9F073C010E013870C3F09F06EC0ECCFF8 +:1073120056D103C04CD109F468C00D911C9144D1DF +:107322000F3FC1F305E0009309015FC011E0EBCF0D +:10733200D2D029F00250E1F10A9541F056C0FDD0B9 +:107342000E94A33F0FEF00930A014FC0552319F08B +:107352005A9579F04AC04ED00DEF04BF74D0EAD0EE +:1073620003FFFDCF67D051D04AD008E00093600000 +:10737200FFCF40D068D0DED003FFFDCF5BD03FD03F +:1073820044D00FEF1FE004C009811A810150104060 +:1073920009831A8309811A81012BB1F700E800934E +:1073A200610000910C01009361000C940000FFCF7A +:1073B20001E003871AC08FD019F00A9539F015C081 +:1073C200535098F4BAD002E000870FC0505339F0FE +:1073D2005A9541F05F52B1F35A95A1F306C002E00B +:1073E2000883F0CF01E0FCCFA8D079D02396E4E067 +:1073F2000C94BA3E01E005BF00E005BF089500917C +:10740200D8000F770093D800089509B50D7F09BD04 +:1074120000E009BD08955183408333832283109194 +:10742200E8001B7F1093E8001091E8001F7710938B +:10743200E80008955DD053D0F8940091E000016017 +:107442000093E000089579D04AC0219749D0009175 +:107452000601035019F00250B9F00BC03CD021F0E4 +:107462000A9559F00A9529F400910A010C3F19F482 +:1074720050D02196089567D0FCCF0091010100936E +:10748200F100009100010AC01091100124D019F0FE +:107492000A9549F0EECF135018F400E00093F10082 +:1074A2001ED044D0E6CF105339F01A9539F01F524E +:1074B20041F01A9541F0F4CF08E5F0CF00E006D094 +:1074C200EDCF02E0FCCF04E001D0E8CF10E020E0F5 +:1074D20030E00C94113F00910F010023089521C068 +:1074E2000BD008D007D00093040106D00093050109 +:1074F20021D00BC000D008830091F10008950091C3 +:10750200EB0000620093EB0015D0077F0093E800C8 +:107512000895F5DF02E00093080103E000930901FA +:10752200089559D007D000FFFDCF089503D002FF80 +:10753200FDCF03C00091E8000895FCDF0B7FE6DF7A +:10754200F9DF0F77E3CF0E94AC3E42D038D006C0BD +:107552002BD00093F1002BD059F43DD0082F092BEA +:10756200A9F0E8DF02FD12C0E5DF00FFFDCF4424F1 +:10757200042D4394003289F300910B0100230D91F5 +:107582001C9131F311970E945838E3CFD3DF00FFEB +:10759200FDCF21D0CFDF00FFFDCFCCDF02FFFDCF3B +:1075A200CCDFE5E00C94B93E11970C945C380D9158 +:1075B2001C910F5F1F4F1C930E93019708958281B8 +:1075C200938100811181801B910B0196DF01089547 +:1075D200E0E0F1E00895AEDF0E7F98CF0E94A93E71 +:1075E200F7DF80819181A081B181AF710481158122 +:1075F20000521040048315830AC000910B0100233E +:1076020031F4A301920103E911E00E943B3F47D00C +:10761200B8F1662477242C0111C06EDFF301ED5618 +:10762200FE4F008301E0600E00E0701E01960091A3 +:10763200F200002311F033D0B8F47FDF30D0E8F24B +:10764200F301B096E238F040C0F674DF02FFFDCFDE +:107652000091F200BDDF24813581201B304024835C +:107662003583E5CF49DFAA95AA23E1F700910B0103 +:10767200013099F62091F1008C010E945038D6CF4A +:1076820004811581012B21F055DF02FFFDCF55DF6B +:10769200A2DF50DF00FFFDCFE8E00C94B63EE0E051 +:1076A200F1E0028113810817190708952091EB0078 +:1076B20021602093EB000093EC000091ED0002703A +:1076C200012B0093ED000091ED0002600093ED00AC +:1076D2001091EE00012F000F00E0001F0895412FCE +:1076E2000093E900089500E009D000FD05C000E024 +:1076F200F7DF10E202E0DACF00E00895F1DF009157 +:10770200EB0008950F770132A9F5112369F11A955B +:1077120059F01A9561F01A9569F01A95F9F01A95CF +:10772200C1F01A95D9F024C00E942C3920C00E94C1 +:10773200263A1DC029D00091090123D001E01FD0B3 +:1077420020D0009108011BD00E94923A0E94973AE1 +:107752000EC01AD00091080114D007C002E00093B5 +:10776200080100E0009309010FD00E94923A03C081 +:107772000E94803A02C001E0089500E0089501D01D +:1077820000E00093F10008950091E800077F009364 +:10779200E800089508950350F9F4112339F01A9579 +:1077A20051F01A9581F01A9599F016C004E016D09E +:1077B20001E810E703C011D003E510E7E7E1F2E0CA +:1077C20000831183D8CF06E109D00FE510E7F6CF89 +:1077D20004D005E710E7F2CFD0CF0CE000931A02F5 +:1077E200089527D120D100931D02E1D0212F11232A +:1077F20029F12A95E9F02250F1F0225099F02A95C8 +:1078020049F0225061F02A9581F02A95E1F02A95FB +:10781200E9F023C0003809F44FC00C94833B0038D0 +:10782200E1F7C8C00023C9F71EC00023B1F72DC07D +:10783200033098F744C1033080F70BC1003868F376 +:10784200033858F7C9C0013841F77BC1013051F400 +:10785200FCD0BFD000FD06C0FCCF0E94833B0023BA +:1078620009F41ED008951091E3001078DCD00F7750 +:10787200012B0093E300E9D0ACD000FFFDCF0091D3 +:10788200E30000680093E300089591D0123040F4C1 +:107892000FD010931E02DAD000911E020C94CB3B43 +:1078A2000091EB0001D004C000620093EB00089548 +:1078B2000091E800077FC0C0BA93AA93229700E024 +:1078C2000093190274D0AFD0202F2A9519F02A956F +:1078D200E9F022C002E100931A020FE210E7E7E1A9 +:1078E200F2E0008311839DD008839DD00983E0DFFD +:1078F20000911A0210E02881398102171307A8F4B7 +:107902000F7181F401E00093190211C002E10093AA +:107912001A0201E410E7E3CF0E94CC3B002319F7DF +:107922008ED040C01093190202C020931A027ED05A +:10793200A7E1B2E001C08AD000911A02002309F146 +:1079420048D004FD1EC045D000FD03C042D004FF54 +:10795200FACF10E0012F1395003281F0ED91FC91E6 +:107962001197049133D02D913C912F5F3F4F3C935F +:107972002E93FD0103810A95038361F72AD004FF48 +:10798200DACF00911902013039F423D004FD04C08A +:1079920020D000FFFDCF5AD01CD004FFFDCF46D02F +:1079A20018D00B7F49D02296A991B99108951091D0 +:1079B200F10008957DDF00911E0208D047D009D062 +:1079C2000F773AD006D002FFFDCFBFC00093F1007F +:1079D20008950091E800089524D010911D021058D6 +:1079E20029F01A9589F01A9591F019C061DF00917A +:1079F2001C02ECDF00E0EADF29D0EBDF02FFFDCF63 +:107A020018D0E7DF0F770CC053DF00E0F2CF51D080 +:107A12000F7710E0F801E55EFD4F0081EACF0FD04D +:107A22000BC001D000D00091F1000895D2DF0F7E8B +:107A320003C00091E8000B7F0093E80008950091D5 +:107A4200EB0032DFC6DF077F089532DFC2DF0E7F31 +:107A5200F3CF00911D02002329F00A9509F10A953E +:107A620031F01EC0E0DF0A9561D0D9F41AC061D0AE +:107A7200B9F4D9DF0F7711F416D01BD00093E900C7 +:107A82001091EB0010FF0BC00ED010E01093E90034 +:107A920021E0F801E55EFD4F20834FD003C042D0C4 +:107AA20045D0CFDFC9CF1091EB0010621093EB00ED +:107AB20008951091E800177F1093E800089500914F +:107AC2001D02002311F4AFDF02C0013011F4B7DF51 +:107AD200B3CF023031F52DD019F52091F1002F7777 +:107AE2002093E90023D000FF19C081F01FD000616C +:107AF200DCDE01E010E0422F0E949F3E0093EA008C +:107B020000E00093EA0012D00860CFDE0BD030E034 +:107B1200F901E55EFD4F008310D0DACF03D0D7CF55 +:107B2200BFDE089500E00093E90008950091EB00A4 +:107B3200089579DF3CDF00230895BADE4ADF0E7F25 +:107B4200089583DF46DF02FFFDCF73DF42DF0F7749 +:107B520073CF0091D70001600093D7000E948B3849 +:107B620000E000931F0208950C94BF388A93FA93A1 +:107B7200EA933A922A921A920A927A936A935A93BF +:107B82004A933A932A931A930A938FB70091DA0091 +:107B920000FF24C00091D80000FF20C00EEF009328 +:107BA200DA000091D90000FF11C001E000930D013D +:107BB200ABD0026096D09AD00860A2D00E949B38C7 +:107BC2000091E0000E7F0093E00008C000E0009307 +:107BD2000D0100931E0298D0046083D07FD002FF73 +:107BE20005C084D002FF02C00BEF75D077D000FF32 +:107BF2001BC07CD000FF18C001E000930E016AD0C8 +:107C020083D000626ED00EEF6FD0006179D06ED05B +:107C12000F7D76D00091D80000620093D80009B59C +:107C22000D7F09BD00E009BD59D004FF20C05ED020 +:107C320004FF1DC009B500FD05C00E94EB3809B55F +:107C420000FFFDCF0091D8000F7D0093D80042D0F5 +:107C520000910E01002359F04CD00FEE45D00F7E5B +:107C620052D000643ED042D001604AD042D036D0D9 +:107C720005FF0FC03BD005FF0CC000E000930E01D2 +:107C820035D00F7E3DD00FED2FD00F7D3CD0006858 +:107C920028D024D003FF0DC029D003FF0AC000E082 +:107CA20000931F0207EF17D00E94743B2DD0116082 +:107CB20018D08FBF09911991299139914991599100 +:107CC200699179910990199029903990E991F991E6 +:107CD200899118950FEE0093E10008950091E1005B +:107CE20008951183008308950093E1000091E2005A +:107CF20008950091E200006203D00091E200086062 +:107D02000093E2000895FCDFE0E2F2E000811181DD +:107D1200089500008895FECF01E60DBF02E00EBF78 +:107D2200C2EED2E00E947438002311F00E94D33ECA +:107D32000E9465380E948A3E0C948A3E4A951AF047 +:107D4200000F111FFBCF0895BA92AA929A928A92BB +:107D52007A926A925A924A92BA93AA939A938A937D +:107D62000895BB84AA84998488847F806E805D8014 +:107D72004C80BB81AA8199818881F0E00FB6F8948A +:107D8200CE0FDF1F0FBE089520E006D0E9F7089559 +:107D9200259102D0E9F708952D9301501040202F2C +:107DA200212B089585E890E7FC0105911491FC01CF +:107DB2003296A591B491FC01349625913491422FCB +:107DC200432B19F0F901E4DF01C0DEDF069610E76C +:107DD2008139910748F308952F930CD02F9101D048 +:107DE20008953CD0F12FE02F45E047BFE89536D00B +:107DF20012D0089533D0F12FE02F43E047BFE8952A +:107E02002DD008952BD0F12FE02F43E047BFE89506 +:107E120025D001D0089522D041E147BFE8951EC088 +:107E22001DD0F12FE02F41E247BFC895002D16C0AB +:107E320015D0F12FE02F49E047BFC895002D0EC0A5 +:107E4200F32FE22F012E102E41E047BFE89506C026 +:107E520005D0002E29E027BFE89500C0022E27B7E3 +:107E620020FDFCCF202D0895022E27B726FDFCCF42 +:107E7200202D08950E94A53E22974801C901DA01EA +:107E820010C05BD001E0A00E00E0B01E00E4A0161E +:107E920000E0B00608F440C0830120E030E00E9418 +:107EA200F23E0A2F0B2B09F440C0082F0F7710E087 +:107EB2002C01401A510A320100E4A02E03C00A2FFD +:107EC2000B2BE1F04816590680F0F40101914F01A5 +:107ED2000983119729F001914F010883119711C06D +:107EE200F2013196049108830CC0F20104910983D6 +:107EF2003196E817F907A1F7F401EDCF1BD00883FB +:107F020019839201088119810E94213F16D0AA94F7 +:107F1200B1F62301AA24BB240DD0312F0F3F3F4FCE +:107F220009F4AFCF83011DD0B7CF01E02296ECE078 +:107F32000C94B23E82010C945F3802E0400E00E0E5 +:107F4200501E08959A938A9380E090E08C0109D0A4 +:107F520080589F4F8F3F0FE69007C0F38991999108 +:107F6200089520E030E00C94FB3E00000000000089 +:067F720000000000FC000D +:107FE4000C94ED3E0C94113F0C94193F0C94213FDA +:0C7FF4000C94F23E0C94033F0C94293FC7 +:040000030000700089 +:100000000C94A0050C94E4050C94E4050C94E40510 +:100010000C94E4050C94E4050C94E4050C94E405BC +:100020000C94E4050C94E4050C94B6180C9488190F +:100030000C94A1270C94E4050C94E4050C94E405BD +:100040000C94E4050C94E4050C94E4050C94E4058C +:100050000C94E4050C9409280C94E4050C94E40534 +:100060000C94E4050C94E4050C94E4050C94E4056C +:100070000C94E4050C94E4050C94E4050C94E4055C +:100080000C94090F0C94E4050C94E4050C94E4051D +:100090000C94E4050C94E4050C94E4050C94E4053C +:1000A0000C94E4050C94E4050C94E4053F064F061B +:1000B000610671067706860692069706A406AC06C8 +:1000C000BC06C106C813C813C813C813C813C81385 +:1000D000C813C813C813C813DF13DF13DF13DF13EC +:1000E000DF13DF13DF13DF13DF13DF13C813C813AE +:1000F000C813C813C813DF13DF13DF13DF13DF13B5 +:10010000C813C813C813DF13DF13DF13F519171A49 +:10011000051B171A051B5C1A7F1A051BD41AE71A50 +:10012000EA1DEA1D271E271E811EBF1E372137210B +:10013000D81E3721D91FD91F9C20B3203721222157 +:1001400007634236B79BD8A71A39685618AEBAABC0 +:10015000558C1D3CB7CC5763BD6DEDFD753EF61754 +:100160007231BF000000803F08000000BE922449A9 +:10017000123EABAAAA2ABECDCCCC4C3E00000080D9 +:10018000BEABAAAAAA3E00000000BF000000803F4C +:100190000000000000084178D3BB4387D1133D190C +:1001A0000E3CC3BD4282AD2B3E68EC8276BED98F39 +:1001B000E1A93E4C80EFFFBE01C4FF7F3F0000007D +:1001C000000035001E001F00200021002200230037 +:1001D00024002500260027002A002B0014001A0006 +:1001E0000800150017001C0018000C001200130076 +:1001F0004C00290004001600070009000A000B004B +:100200000D000E000F0033003400E1001D001B0044 +:1002100006001900050011001000360037003800F4 +:1002200028000530E000E200E30003302C002C0041 +:1002300004305000510052004F0035001E001F00D6 +:100240002000210022002300240025002600270092 +:100250002A002B0014001A00090013000A000D00E8 +:100260000F0018001C0033004C002900040015008A +:100270001600170007000B00110008000C00120008 +:100280003400E1001D001B000600190005000E00EF +:10029000100036003700380028000530E000E2008A +:1002A000E30003302C002C000430500051005200B9 +:1002B0004F0035001E001F002000210022002300F7 +:1002C00024002500260027002A002B0034003600D9 +:1002D000370013001C0009000A00060015000F007B +:1002E0004C00290004001200080018000C00070050 +:1002F0000B001700110016003800E1003300140055 +:100300000D000E001B00050010001A0019001D0052 +:1003100028000530E000E200E30003302C002C0050 +:1003200004305000510052004F0035021E021F02DF +:100330002002210222022302240225022602270291 +:100340002A0035021E021F0220022102220223027D +:1003500024022502260227024C004C003A003B00F2 +:100360003C003D003E003F002D022E022F023002D5 +:1003700031020100400041004200430044004500BA +:100380000100010001000100010001000100010065 +:1003900001000100010001000100AB00AA00A9005A +:1003A000AE0035001E001F002000210022002300A7 +:1003B00024002500260027002A0035001E001F000B +:1003C0002000210022002300240025002600270011 +:1003D0004C004C003A003B003C003D003E003F001A +:1003E0002D002E002F0030003100010040004100A0 +:1003F00042004300440045000100010001000100EB +:1004000001000100010001000100010001000100E4 +:100410000100AB00AA00A900AE000000000000002F +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C +:10046000000000000000000000000000000000008C +:10047000000000000000000000000000000000007C +:100480000000033000000000043000000000000005 +: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 +:1009000000000000000000000000000000000000E7 +:1009100000000000000000000000000000000000D7 +:1009200000000000000000000000000000000000C7 +:1009300000000000000000000000000000000000B7 +:1009400000003A003B003C003D003E003F004000FC +:1009500041004200430044004500010000500100F6 +:10096000010001000100010001000100010001007F +:100970004C000100010001000730063013501250F6 +:100980000030013002300100010001000B300A305C +:1009900009300830010001000100010001000100E0 +:1009A000010001000100010001000100010001003F +:1009B000010001000100010001002A035400680049 +:1009C000650020005000720065006F006E00690035 +:1009D000630020004B006500790062006F00610039 +:1009E0007200640000002C034F0072007400680065 +:1009F0006F006C0069006E006500610072002000ED +:100A00004B006500790062006F00610072006400B5 +:100A1000730000000403090409025400030100A04C +:100A2000FA0904000001030101000921110100017C +:100A3000223F000705810308000A090401000103A1 +:100A4000010200092111010001224D000705820366 +:100A500008000A0904020001030000000921110135 +:100A600000012236000705830308000A1201100165 +:100A700000000008EDFE61600100010200010501B7 +:100A80000980A101850216010026B7001A01002A7B +:100A9000B700751095018100C0050C0901A1018501 +:100AA00003160100269C021A01002A9C027510956B +:100AB000018100C005010902A1010901A100050988 +:100AC000190129051500250195057501810295017A +:100AD000750381010501093009311581257F9502D2 +:100AE0007508810609381581257F950175088106ED +:100AF000050C0A38021581257F950175088106C00D +:100B0000C005010906A101050719E029E71500251F +:100B10000195087501810295017508810105081983 +:100B2000012905950575019102950175039101054E +:100B300007190029FF150025FF950675088100C0DB +:100B400011241FBECFEFDAE0DEBFCDBF04B603FE37 +:100B500024C08091A3039091A403A091A503B09118 +:100B6000A6038730904BA740B04BB9F41092A30373 +:100B70001092A4031092A5031092A60314BE84B78A +:100B8000877F84BF88E10FB6F8948093600010924D +:100B900060000FBEE0E0F8E3099512E0A0E0B1E0EC +:100BA000EAEEF2E602C005900D92A83AB107D9F735 +:100BB00013E0A8EAB2E001C01D92A33AB107E1F741 +:100BC0000E94FC150C9473310C940000279A2F9806 +:100BD0008FEF9FEF90938700809386008AE0809349 +:100BE000800089E1809381000C94F82C282F8111DA +:100BF0000BC080918000877F8093800010928D00D1 +:100C000010928C002F9808952F9880918000886012 +:100C100080938000233019F48FEF9FEF0FC083E0A3 +:100C200090E0821B9109880F991F2FEF3FEFA901D8 +:100C300002C0569547958A95E2F7CA0190938D00B8 +:100C400080938C000895CF93DF93EC010E949D2840 +:100C5000BE0180E090E0DF91CF910C9417250F93B7 +:100C60001F93462F50E04C30510508F098C0DC012E +:100C7000FA01EA5AFF4F12968C910C94373188236F +:100C800009F48DC000E010E0980140E064E070E0FD +:100C90008BEC91E00E94871281E090E00FC08823E6 +:100CA00009F47DC000E010E0980140E066E070E0EB +:100CB0008BE591E00E94871282E090E00E9423067B +:100CC0006EC0882309F46BC000E010E0980140E09A +:100CD00068E070E08BE891E00E94871284E090E089 +:100CE000EDCF882311F083E005C083E00CC088239A +:100CF00049F084E00E94942540E164E083E00E9492 +:100D0000ED0A4DC084E00E94B525F6CF882331F06E +:100D100085EE0E947E1C0E944F2D41C085EE0E94F0 +:100D2000461D3DC08823D9F10E941B0E38C0882380 +:100D3000B1F10E94140E00E010E0980140E064E080 +:100D400070E08BEE91E029C0882349F185E00E9494 +:100D5000B5250E943C0E23C0882309F100E010E075 +:100D6000980140E068E070E08BE191E00E9487121A +:100D700085E00E94942513C0882389F00E941A13ED +:100D800004C0882361F00E94251300E010E0980160 +:100D900040E068E070E08BE191E00E94871280E023 +:100DA00090E01F910F9108950F931F932FEF89EFFC +:100DB00090E0215080409040E1F700C0000000E04A +:100DC00010E0980140E064E070E08BEE91E00E945A +:100DD00087121F910F910895CF92DF92EF92FF92A9 +:100DE0000F931F93CF93DF93CDB7DEB7CC58D109C4 +:100DF0000FB6F894DEBF0FBECDBF2091630325FF71 +:100E0000C5C08C01FC01928180910201992309F4F3 +:100E100060C096E4E7E2F2E0DE01A95BBF4F01901B +:100E20000D929A95E1F7F8019081E0910001F0911F +:100E30000101E90FF11DEE0FFF1F27E430E02C0F39 +:100E40003D1FE20FF31F60817181680F711D8827BC +:100E500077FD8095982F0E94932E20E030E040E4AB +:100E600051E40E94F82D6B017C01F801218185E09D +:100E700090E0821B9109BC01882777FD8095982F0F +:100E80000E94932E9B01AC01C701B6010E94902DD8 +:100E90009B01AC0160E070E080E090E40E94AA2F2A +:100EA00020E030E04CE551E40E94472F4FE050E055 +:100EB000C457DF4F0FB6F894DEBF0FBECDBFDF9132 +:100EC000CF911F910F91FF90EF90DF90CF900C94F6 +:100ED000271296E4E7E2F2E0DE01119601900D920E +:100EE0009A95E1F7F8019081E0910001F0910101FC +:100EF000E90FF11DEE0FFF1F21E030E02C0F3D1F29 +:100F0000E20FF31F60817181680F711D882777FDE3 +:100F10008095982F0E94932E20E030E040E451E429 +:100F20000E94F82D6B017C01F801218185E090E0A1 +:100F3000821B9109BC01882777FD8095982F0E941C +:100F4000932E9B01AC01C701B6010E94902D9B011D +:100F5000AC0160E070E080E090E40E94AA2F20E005 +:100F600030E04CE551E40E94472FC457DF4F0FB6E5 +:100F7000F894DEBF0FBECDBFDF91CF911F910F91CF +:100F8000FF90EF90DF90CF900C946F0EC457DF4F1F +:100F90000FB6F894DEBF0FBECDBFDF91CF911F918A +:100FA0000F91FF90EF90DF90CF9008950F931F93D4 +:100FB00000E010E0980140E063E070E083E091E041 +:100FC0000E9487122FEF82E597E0215080409040E9 +:100FD000E1F700C000001F910F91089508950E944D +:100FE000E6056E9A769A0C94D4060C94EE070C944F +:100FF000EC060895880F991FFC01EE5BFF4F859169 +:1010000094910895880F991FFC01EE53FE4F85912E +:10101000949108950F931F93CF93DF93EC01811563 +:1010200020E49207A0F5C11580E3D80708F0E1C0DD +:10103000C83ED105D8F4C03ED10508F0EEC1C83A8B +:10104000D10578F4C53AD10508F074C0C130D10596 +:1010500009F46DC008F4DEC1C430D10508F0DDC16B +:10106000D9C1CB3BD10508F470C0D4C1C11590E201 +:10107000D90708F0B9C0C11521E0D20708F0CDC1E9 +:10108000C03FD10508F4C6C18E01106506C2C1304B +:1010900080E5D80709F4BDC068F5C13120E4D20766 +:1010A00009F4AEC050F4C03190E4D90708F0A5C0EF +:1010B000CF70DD278E01146DF0C1C33120E4D2075B +:1010C00009F4A4C008F49FC0C115D04509F0A2C11D +:1010D0000E945B210E943C0E0E94D6079FEF24E3F2 +:1010E0008CE0915020408040E1F700C000000E9459 +:1010F0002E28D3C1C11520E6D20730F4C11581E5F1 +:10110000D80708F48CC02DC1C11590E7D90708F4A1 +:1011100081C1C11520E8D20708F478C1C11580E962 +:10112000D80708F077C1DF708E01106AB6C101E000 +:1011300010E0B3C1C53AD10509F471C1C63AD10571 +:1011400009F070C102E810E4A8C1C83AD10509F459 +:101150006CC1C93AD10509F46BC1CA3AD10509F489 +:101160006AC1CB3AD10509F469C1CC3AD10509F479 +:1011700068C1CD3AD10509F467C1C03BD10509F476 +:1011800066C1CE3AD10509F465C1CF3AD10509F45B +:1011900064C1C13BD10509F463C1C23BD10509F467 +:1011A00062C1C33BD10509F461C1C43BD10509F457 +:1011B00060C1C53BD10509F45FC1C63BD10509F447 +:1011C0005EC1C73BD10509F45DC1C83BD10509F437 +:1011D0005CC1C93BD10509F45BC1CA3BD10509F427 +:1011E0005AC100E014E459C1CE019F700E94020868 +:1011F00055C1DD278E01106C50C100E011ED4DC1CD +:1012000000E010ED4AC100E012ED47C100E013ED2F +:1012100044C1809177038160809377033EC10E942F +:101220008A28811102C00E9466280E94A22890E0AC +:101230009093A2038093A103C23090E5D90721F4D3 +:101240008091A103816086C0C43020E5D20721F4DB +:101250008091A10382607EC0C63080E5D80721F46A +:101260008091A103846076C0C83090E5D90719F455 +:101270008091A10327C0CA3020E5D20721F48091D4 +:10128000A103806167C0CC3080E5D80721F480914C +:10129000A10380625FC0CE3090E5D90721F4809130 +:1012A000A103806457C0C03120E5D20721F48091AA +:1012B000A10380684FC0C23180E5D80729F480912E +:1012C000A1038460886046C0C33090E5D90721F44B +:1012D0008091A1038E7F3EC0C53020E5D20721F466 +:1012E0008091A1038D7F36C0C73080E5D80721F4F7 +:1012F0008091A1038B7F2EC0C93090E5D90719F4E6 +:101300008091A10326C0CB3020E5D20721F4809143 +:10131000A1038F7E1FC0CD3080E5D80721F48091D6 +:10132000A1038F7D17C0CF3090E5D90721F48091BC +:10133000A1038F7B0FC0C13120E5D20721F480913A +:10134000A1038F7707C0C331D04531F48091A10349 +:101350008B7F877F8093A1038091A1030E94A628A1 +:101360009CC08D2F99278F70992781309105D9F4D2 +:101370009E012370332702C0880F991F2A95E2F738 +:101380009C688E0144E0000F111F4A95E1F7002789 +:101390001370802B912B53E0CC0FDD1F5A95E1F792 +:1013A000C076DD272FC08230910531F4DC2FCC27A9 +:1013B0008E01016F106A71C08330910569F4CE010E +:1013C0008370992701E010E002C0000F111F8A9579 +:1013D000E2F7C8019C680FC0049709F05EC0CE0117 +:1013E0008370992701E010E002C0000F111F8A9559 +:1013F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D8 +:10140000C07ED7708C010C2B1D2B47C0DF708E0166 +:10141000106243C000E010E040C08E013EC001E811 +:1014200010E43BC003E810E438C002EE14E435C019 +:1014300009EE14E432C00AEE14E42FC005EB14E404 +:101440002CC006EB14E429C007EB14E426C00CEC16 +:1014500014E423C00DEC14E420C003E815E41DC01F +:101460000AE815E41AC002E915E417C004E915E416 +:1014700014C001E216E411C003E216E40EC004E257 +:1014800016E40BC005E216E408C006E216E405C047 +:1014900007E216E402C00AE216E4C801DF91CF9128 +:1014A0001F910F9108959CE0799FF00111249CE316 +:1014B000899FE00DF11D1124E60FF11DEE0FFF1FB6 +:1014C000EE53FE4F85919491803E9105E0F4803C6F +:1014D000910558F58133910509F46FC048F48932BC +:1014E000910509F463C08A32910509F46DC072C098 +:1014F00089339105E9F082389105D1F08533910562 +:1015000009F44DC067C0833E910581F138F4803EF7 +:101510009105B9F0823E9105D9F05CC0863E9105F7 +:1015200061F1873E9105A1F155C00E94FA07089527 +:101530002091A10320FD02C021FF4CC080EE90E06D +:1015400049C08091A10380FFF9CF89E390E042C0B8 +:101550008091A10382FF0EC08091A10384FF03C08C +:1015600080E090E037C083EE90E034C08091A1032A +:1015700082FFF2CF82EE90E02DC08091A10383FF25 +:101580000BC08091A10384FDEBCF87EE90E022C0D9 +:101590008091A10383FFF5CF86EE90E01BC0809180 +:1015A000A10385FF07C089E290E014C08091A103E8 +:1015B00085FFF9CF85E390E00DC08091A10386FF00 +:1015C00007C08AE290E006C08091A10386FFF9CFB0 +:1015D00081E390E00E940A080895CF92DF92EF9293 +:1015E000FF920F931F9301E010E020E030E06801CC +:1015F000790104C0CC0CDD1CEE1CFF1C8A95D2F7CF +:1016000004C0000F111F221F331F6A95D2F70C2947 +:101610001D292E293F29C0906303D0906403E090D8 +:101620006503F0906603C022D122E222F322842FC8 +:10163000C016D106E206F30641F41F910F91FF9008 +:10164000EF90DF90CF900C9494251F910F91FF9015 +:10165000EF90DF90CF900C94B52508950C942D0B4E +:101660005F926F927F928F929F92AF92BF92CF9232 +:10167000DF92EF92FF920F931F93CF93DF93CDB73B +:10168000DEB72A970FB6F894DEBF0FBECDBFCE01EE +:1016900001966C014E019BE0890E911C20E030E028 +:1016A00040E050E060E070E000E010E0E12CF12C60 +:1016B0006C2C5D2C8AE0782EAA24A394B12CEDE644 +:1016C000F2E0A62DB52D872D01900D928A95E1F7B8 +:1016D000F601819191916F01FC01E07FFF27E032DB +:1016E000F10559F48F709927F50102C0EE0FFF1F25 +:1016F0008A95E2F7EE2AFF2A37C0E033F10559F464 +:101700008F709927F50102C0EE0FFF1F8A95E2F74F +:101710000E2B1F2B29C0E034F10559F48F70992747 +:10172000F50102C0EE0FFF1F8A95E2F76E2B7F2BAB +:101730001BC0E035F10559F48F709927F50102C0FF +:10174000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A0 +:10175000F10551F48F709927F50102C0EE0FFF1FBC +:101760008A95E2F72E2B3F2BC814D90409F0A7CF96 +:1017700084B19E2D9095892384B985B1E82AE5B876 +:1017800087B1902F9095892387B988B1082B08B924 +:101790008AB1962F909589238AB98BB1682B6BB942 +:1017A0008DB1942F909589238DB98EB1482B4EB968 +:1017B00080B3922F9095892380BB81B3282B21BBC6 +:1017C0002A960FB6F894DEBF0FBECDBFDF91CF9142 +:1017D0001F910F91FF90EF90DF90CF90BF90AF904F +:1017E0009F908F907F906F905F9008955F926F921F +:1017F0007F928F929F92AF92BF92CF92DF92EF92A1 +:10180000FF920F931F93CF93DF93CDB7DEB7689707 +:101810000FB6F894DEBF0FBECDBF85B7806885BF19 +:1018200085B7806885BF0E94300BCE0101966C01A0 +:101830004E0199E1890E911C20E030E040E050E03B +:1018400060E070E000E010E0E12CF12C6C2C5D2CED +:1018500088E1782EAA24A394B12CE7E7F2E0A62D24 +:10186000B52D872D01900D928A95E1F7F6018191B2 +:1018700091916F01FC01E07FFF27E032F10559F4FF +:101880008F709927F50102C0EE0FFF1F8A95E2F7CE +:10189000EE2AFF2A37C0E033F10559F48F709927FB +:1018A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEA +:1018B00029C0E034F10559F48F709927F50102C071 +:1018C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D2 +:1018D000F10559F48F709927F50102C0EE0FFF1F33 +:1018E0008A95E2F74E2B5F2B0DC0E036F10551F4DF +:1018F0008F709927F50102C0EE0FFF1F8A95E2F75E +:101900002E2B3F2BC814D90409F0A7CF84B19E2DEC +:101910009095892384B985B1E82AE5B887B1902FDD +:101920009095892387B988B1082B08B98AB1962F79 +:10193000909589238AB98BB1682B6BB98DB1942F9F +:10194000909589238DB98EB1482B4EB980B3922FD3 +:101950009095892380BB81B3282B21BBE2EBF2E079 +:10196000A8EAB2E0119211921D921D9282E0EC3B26 +:10197000F807C1F768960FB6F894DEBF0FBECDBF6B +:10198000DF91CF911F910F91FF90EF90DF90CF905B +:10199000BF90AF909F908F907F906F905F900C94CE +:1019A000EF075F926F927F928F929F92AF92BF925A +:1019B000CF92DF92EF92FF920F931F93CF93DF931B +:1019C000CDB7DEB7A2970FB6F894DEBF0FBECDBF7E +:1019D0006E0149E1C40ED11C88EAA82E82E0B82E1F +:1019E00075019AE0592E460101E010E028E1622ECF +:1019F00035E0732EEDE6F2E0D401852D01900D92D5 +:101A00008A95E1F7D6018D919D916D019C01207F12 +:101A100033272032310591F424B18F709927F801D2 +:101A200002C0EE0FFF1F8A95E2F7CF01922F982B8D +:101A300094B995B18095892385B953C02033310578 +:101A400091F427B18F709927A80102C0440F551F48 +:101A50008A95E2F7CA01922F982B97B998B1809591 +:101A6000892388B93EC02034310591F42AB18F70A2 +:101A70009927D80102C0AA0FBB1F8A95E2F7CD01B2 +:101A8000922F982B9AB99BB1809589238BB929C045 +:101A90002035310591F42DB18F709927F80102C0DE +:101AA000EE0FFF1F8A95E2F7CF01922F982B9DB979 +:101AB0009EB1809589238EB914C02036310589F4F2 +:101AC00020B38F709927A80102C0440F551F8A9533 +:101AD000E2F7CA01922F982B90BB91B3809589238E +:101AE00081BB50EA5A95F1F7BE016F5F7F4F20E04E +:101AF00030E040E050E0E7E7F2E0DE011196862DAD +:101B000001900D928A95E1F7DB018D919D91BD01C8 +:101B1000FC01E07FFF27E032F10511F4E3B113C0CF +:101B2000E033F10511F4E6B10EC0E034F10511F433 +:101B3000E9B109C0E035F10511F4ECB104C0E036BB +:101B4000F105B9F4EFB1F0E08F70992702C0F59577 +:101B5000E7958A95E2F7E0FD08C0C801042E02C0AF +:101B6000880F991F0A94E2F702C080E090E0282BCA +:101B7000392B4F5F5F4F4C30510509F0BCCFF70157 +:101B8000808191818217930721F0318320837092A5 +:101B90000B020E94300BF2E0EF0EF11C42EBE41658 +:101BA00042E0F40609F026CF80910B028823C9F0A9 +:101BB000815080930B02882339F08FE99FE00197D1 +:101BC000F1F700C000000DC0E2EBF2E0D5018D910D +:101BD0009D915D0181939193B2EBAB16B2E0BB0690 +:101BE000A9F70E94F50781E0A2960FB6F894DEBF30 +:101BF0000FBECDBFDF91CF911F910F91FF90EF905E +:101C0000DF90CF90BF90AF909F908F907F906F901C +:101C10005F900895E82FF0E0EE0FFF1FEE54FD4FA8 +:101C2000808191810895089580918C0381608093D3 +:101C30008C030C94B82880918C038E7F80938C0346 +:101C40000C94B8280E948A28811102C00E9466283C +:101C50000E94B42880938C033E9A809171008D7FFE +:101C60008093710082E0809390008AE180939100DC +:101C700081E08093BE0208958091BE02811102C06E +:101C80000E94220E10920E0310920D03809171009B +:101C90008D7F80937100809190008F77809390006A +:101CA0001092D0021092CF021092070310920803F4 +:101CB0001092090310920A03109206031092050372 +:101CC000E5EEF2E0A5EDB2E01192119211921192BF +:101CD0001D921D9283E0E530F807B1F70895CF9289 +:101CE000DF92EF92FF920F931F93CF93DF93209198 +:101CF000CF02222309F484C06B017C018091BE02D3 +:101D0000811102C00E94220E05E013E0C7E0D0E07E +:101D1000A7019601F80192918291729162918F01CF +:101D20000E94F42D811131C0FE01EE0FFF1FEE0F56 +:101D3000FF1FEB51FD4F1082118212821382DE01D0 +:101D4000AA0FBB1FAB52BD4F11961C921E92C730FB +:101D5000D105E9F0219644815581668177814083E0 +:101D600051836283738314821582168217821296BE +:101D70008D919C91139711969C938E9313961C9220 +:101D80001E92129734961296E2CF219708F6809110 +:101D90000D0390910E03019797FD05C090930E03DC +:101DA00080930D0304C010920E0310920D038091D6 +:101DB0000D0390910E0320910B0330910C03281713 +:101DC000390724F010920C0310920B03892BC1F4F5 +:101DD000809171008D7F80937100809190008F774A +:101DE0008093900010920703109208031092090349 +:101DF00010920A0310920603109205031092CF026C +:101E0000DF91CF911F910F91FF90EF90DF90CF90D6 +:101E100008951F920F920FB60F9211244F925F9266 +:101E20006F927F928F929F92AF92BF92CF92DF92EA +:101E3000EF92FF922F933F934F935F936F937F9314 +:101E40008F939F93AF93BF93CF93DF93EF93FF93C2 +:101E50008091CF02882309F49BC1C0910D03D091DA +:101E60000E031C161D060CF093C14090BF0250904B +:101E7000C0026090C1027090C20220E030E0A9016F +:101E8000C301B2010E94432F18160CF065C0C13087 +:101E9000D10509F452C080910B0390910C03BE014F +:101EA0000E9423317C0190930C0380930B0380905C +:101EB000D1029090D202A090D302B090D40220E040 +:101EC00030E040E85FE3C501B4010E94902D6093CB +:101ED000D1027093D2028093D3029093D402F7017F +:101EE000EE0FFF1FEE0FFF1FEB51FD4FA3019201FD +:101EF00060817181828193810E94F82D20E030E021 +:101F000040E05EE30E94472F9B01AC01C501B40194 +:101F10000E94432F18168CF4C7010196BE010E943F +:101F2000233190930C0380930B031092D1021092F3 +:101F3000D2021092D3021092D402E0910B03F091DE +:101F40000C03EE0FFF1FEE0FFF1FEB51FD4F6081E3 +:101F5000718182819381D0C0C0900703D090080323 +:101F6000E0900903F0900A0320E030E0A901C701E6 +:101F7000B6010E94F42D2197882309F4A2C0FE0126 +:101F8000EE0FFF1FEE0FFF1FEB51FD4F8080918082 +:101F9000A280B380A5019401C701B6010E94F42D6F +:101FA00087FF31C0A501940160E070E08CED93ECF7 +:101FB0000E94F82D20E030E040E451E40E94F82D2A +:101FC00020E030E040E05FE30E94472F9B01AC013E +:101FD00060E070E080E090E40E94AA2F9B01AC01D9 +:101FE000C501B4010E94472F9B01AC01C701B60196 +:101FF0000E94F42D87FF07C0A701960160E070E002 +:102000008CED93E439C0A5019401C701B6010E948B +:10201000432F18160CF055C0A501940160E070E044 +:102020008CED93E40E94F82D20E030E040E451E490 +:102030000E94F82D20E030E040E05FE30E94472F4F +:102040009B01AC0160E070E080E090E40E94AA2F68 +:102050009B01AC01C501B4010E94472F9B01AC015B +:10206000C701B6010E94432F18165CF5A70196011F +:1020700060E070E08CED93EC0E94F82D20E030E001 +:1020800040E451E40E94F82D20E030E040E05FE3BE +:102090000E94472F9B01AC0160E070E080E090E47B +:1020A0000E94AA2F9B01AC01C701B6010E94472FD5 +:1020B00060930703709308038093090390930A03C6 +:1020C00013C0FE01EE0FFF1FEE0FFF1FEB51FD4F80 +:1020D00080819181A281B38180930703909308034B +:1020E000A0930903B0930A0360910703709108035A +:1020F0008091090390910A032091BC023091BD02A6 +:102100002F3F4FEF340731F02F5F3F4F3093BD0229 +:102110002093BC020E9430136B017C0120E034E26A +:1021200044EF51E40E94F42D87FF08C086EFC82ECB +:1021300088E2D82E84EFE82E81E4F82E20E030E00B +:1021400040E051E4C701B6010E94472F9B01AC015A +:1021500060E074E284E79BE40E94F82D6B017C014F +:102160000E94602E709397006093960020910C025D +:1021700030910D0240910E0250910F02C701B6013D +:102180000E94472F0E94602E7093990060939800E0 +:102190008091D002882309F433C1C090CB02D09043 +:1021A000CC02E090CD02F090CE0220E030E0A90118 +:1021B000C701B6010E94432F1816D4F58091BC02C6 +:1021C0009091BD028F3F2FEF920729F001969093D7 +:1021D000BD028093BC02C701B6010E94301320E00B +:1021E00030E040E051E40E94472F9B01AC0160E0E9 +:1021F00074E284E79BE40E94F82D6B017C010E944D +:10220000602E709397006093960020910C0230919D +:102210000D0240910E0250910F02C701B6010E94BB +:10222000472F0E94602E709399006093980008C019 +:1022300010929700109296001092990010929800B8 +:102240006091C5027091C6026F5F7F4F7093C602A6 +:102250006093C502209196003091970080E090E055 +:10226000232BF1F0C0919600D09197000E94912EFF +:102270006B017C01BE0180E090E00E94912E9B01E9 +:10228000AC016091C7027091C8028091C90290911F +:10229000CA020E94F82D20E03FEF4FE757E410C03C +:1022A0000E94912E6B017C0120E030EE4FEF54E450 +:1022B0006091C7027091C8028091C9029091CA02D0 +:1022C0000E94472F9B01AC01C701B6010E94432F1A +:1022D00087FD96C08091C3028F5F8093C30290E018 +:1022E000209188033091890382179307A0F0809191 +:1022F0009303882319F01092C3020DC080917100DE +:102300008D7F80937100809190008F7780939000F3 +:102310001092D0027DC08091C402C091C30281118D +:1023200028C0C0908D03D0908E03E0908F03F09072 +:10233000900320E030E0A901C701B6010E94432FBD +:102340001816BCF481E08093C4021092CB02109264 +:10235000CC021092CD021092CE02C092C702D0924F +:10236000C802E092C902F092CA02C150C093C302EF +:1023700043C01092C4021092BD021092BC02E091C0 +:102380008A03F0918B0348E0C49FE00DF11D1124F6 +:1023900080819181A281B3818093CB029093CC0202 +:1023A000A093CD02B093CE0220E030E040E85EE39F +:1023B00064817581868197810E94472F6B017C0122 +:1023C00020E030E048EC52E460911002709111027C +:1023D00080911202909113020E94F82D9B01AC0192 +:1023E000C701B6010E94472F6093C7027093C802CD +:1023F0008093C9029093CA021092C6021092C5023D +:1024000080918C0380FD04C01092D0021092CF0204 +:10241000FF91EF91DF91CF91BF91AF919F918F91FC +:102420007F916F915F914F913F912F91FF90EF902E +:10243000DF90CF90BF90AF909F908F907F906F90E4 +:102440005F904F900F900FBE0F901F901895CF92F6 +:10245000DF92EF92FF92CF93DF936B017C01EA0151 +:102460008091BE02811102C00E94220E80918C03D5 +:1024700080FF46C080910D0390910E0308970CF0E9 +:102480003FC0809171008D7F809371008091D00258 +:1024900081110E943C0E81E08093CF021092BD0218 +:1024A0001092BC0220E030E0A901C701B6010E94F1 +:1024B000432F1816DCF480910D0390910E03FC015C +:1024C000EE0FFF1FEE0FFF1FEB51FD4FC082D182B9 +:1024D000E282F382FC01EE0FFF1FEB52FD4FD1832E +:1024E000C083019690930E0380930D038091710039 +:1024F000826080937100809190008068809390004A +:10250000DF91CF91FF90EF90DF90CF9008958F9261 +:102510009F92AF92BF92CF92DF92EF92FF920F9372 +:102520001F93CF93DF93EC017B01D42E4801590117 +:102530008091BE02811102C00E94220E80918C0304 +:1025400080FF6BC0809171008D7F809371008091BE +:10255000CF0281110E943C0E81E08093D002D09383 +:102560008B03C0938A03F0928903E0928803D09290 +:10257000930380928D0390928E03A0928F03B0926A +:1025800090031092D1021092D2021092D3021092B4 +:10259000D4021092C30288819981AA81BB81809361 +:1025A000CB029093CC02A093CD02B093CE0220E058 +:1025B00030E040E85EE36C817D818E819F810E94E6 +:1025C000472F6B017C0120E030E048EC52E4609141 +:1025D00010027091110280911202909113020E94D8 +:1025E000F82D9B01AC01C701B6010E94472F6093F3 +:1025F000C7027093C8028093C9029093CA021092D6 +:10260000C6021092C50280917100826080937100B1 +:1026100080919000806880939000DF91CF911F910E +:102620000F91FF90EF90DF90CF90BF90AF909F9071 +:102630008F90089580910F0390E0019665E070E01F +:102640000E94233180930F03089580910F0390E03F +:10265000019765E070E00E94233180930F03089595 +:102660008F929F92AF92BF92CF92DF92EF92FF92A2 +:10267000CF93DF936B017C01C091BC02D091BD026E +:10268000BE0180E090E00E94912E4B015C01A70109 +:10269000960160E070E08CE594E40E94F82D9B01C7 +:1026A000AC01C501B4010E94472F0E94652E4091E4 +:1026B0000F03423009F45CC028F4442351F0413048 +:1026C000E9F0FBC0433009F481C0443009F4B4C0E0 +:1026D000F4C080E090E0A0E0BFE380930C02909310 +:1026E0000D02A0930E02B0930F021092BF0210923F +:1026F000C0021092C1021092C202DFC01092BF024B +:102700001092C0021092C1021092C202643171058F +:1027100040F46A307105E0F520E030E040E85EE327 +:102720003BC0693C710508F0C0C080E090E00E94A9 +:10273000912E20E030E040EA51E40E948F2D20E00D +:1027400030E044E353E40E94F82D9B01AC010E9469 +:10275000472F20E030E040E05EE30E94472F9B01DE +:10276000AC0160E070E080E09EE30E948F2D5BC0D2 +:102770001092BF021092C0021092C1021092C202C7 +:102780006432710578F4FB01EE59FF4F0C94373138 +:1027900020E030E040E05FE3C701B6010E94472F30 +:1027A0006B017C0180E090E0A0E0BEE380930C022E +:1027B00090930D02A0930E02B0930F027EC0A7016A +:1027C0009601C701B6010E94902DEACF1092BF0278 +:1027D0001092C0021092C1021092C2022AE0269FFB +:1027E000A001279F500D1124CA0168EB7BE00E94D5 +:1027F0000F31BC016C5D754077FF03C07195619529 +:102800007109882777FD8095982F0E94932E2EE3DB +:1028100033EC4EE259E30E94472F20E030E040ECD9 +:102820005EE30E94902D60930C0270930D028093E2 +:102830000E0290930F0241C01092BF021092C0028C +:102840001092C1021092C202CE0183709927892B87 +:10285000E1F0BE016170772780E090E00E94912E48 +:1028600020E030E040E05EE30E94472F20E030E0CF +:1028700040E45FE30E94902D60930C0270930D0280 +:1028800080930E0290930F020CC080E090E0A0E0D5 +:10289000BFE380930C0290930D02A0930E02B093BD +:1028A0000F02C770DD27CD2B41F410920C0210925D +:1028B0000D0210920E0210920F02C701B601DF91B5 +:1028C000CF91FF90EF90DF90CF90BF90AF909F900F +:1028D0008F900895809118030895CF93DF9300D0CF +:1028E0001F92CDB7DEB79C0180919803843019F513 +:1028F00093E099833B832A839093E9008FEF909133 +:10290000E800815095FD06C095ED9A95F1F700001D +:102910008111F5CF8091E80085FF0DC040E050E0C7 +:1029200063E070E0CE0101960E94A6168091E80057 +:102930008E778093E8000F900F900F90DF91CF91EA +:102940000895CF93DF9300D01F92CDB7DEB72091CB +:102950009803243021F522E029839B838A8383E036 +:102960008093E9008FEF9091E800815095FD06C0BB +:1029700095ED9A95F1F700008111F5CF8091E8006F +:1029800085FF0DC040E050E063E070E0CE010196AD +:102990000E94A6168091E8008E778093E8000F9041 +:1029A0000F900F90DF91CF910895209198032430DC +:1029B000F1F422E02093E9002FEF3091E80021505C +:1029C00035FD06C035ED3A95F1F700002111F5CF40 +:1029D0002091E80025FF0BC040E050E065E070E08A +:1029E0000E94A6168091E8008E778093E8000895F3 +:1029F000CF93DF9320919803243039F521E0209381 +:102A0000E9002FEF3091E800215035FD06C035ED8B +:102A10003A95F1F700002111F5CF2091E80025FF4C +:102A200014C0EC0140E050E068E070E00E94A6169F +:102A30008091E8008E778093E80088E0FE01A0E1B5 +:102A4000B3E001900D928A95E1F7DF91CF9108955F +:102A500080919703811109C00E943B180E94981829 +:102A60008091E20084608093E200089510929703C1 +:102A70000895089508950C94962742E061EC81E052 +:102A80000E94B51742E061EC82E00E94B51742E077 +:102A900061EC83E00C94B51780919A03833009F4BC +:102AA00053C030F4813071F0823009F48CC0089545 +:102AB0008A3009F478C08B3009F45EC0893009F09F +:102AC0009AC020C080919903813A09F094C0809106 +:102AD000E800877F8093E80080919D0390919E039A +:102AE000892B21F468E080E193E003C060E080E09E +:102AF00090E070E00E94F1168091E8008B7780935F +:102B0000E800089580919903813209F074C08091A2 +:102B10009D0390919E03892B09F06DC08091E80080 +:102B2000877F8093E8008091E80082FD05C0809156 +:102B300098038111F8CF5FC08091F1008093180352 +:102B40008091E8008B7753C080919903813A09F016 +:102B500052C080919D0390919E03892B09F04BC038 +:102B60008091E800877F8093E8008091E80080FFF3 +:102B7000FCCF80911E0236C0809199038132D9F535 +:102B800080919D0390919E03892BA9F58091E80087 +:102B9000877F8093E8000E94EA1780919B038093CF +:102BA0001E020C945B2180919903813221F5809162 +:102BB000E800877F8093E8000E94EA1780919C03D9 +:102BC00080931903089580919903813AA1F480912B +:102BD000E800877F8093E8008091E80080FFFCCFC9 +:102BE000809119038093F1008091E8008E778093A3 +:102BF000E8000C94EA17089584B7877F84BF88E1C2 +:102C00000FB6F89480936000109260000FBE90E0C1 +:102C100080E80FB6F89480936100909361000FBE36 +:102C20000E948D1B0E943B180E9498188091E20020 +:102C300084608093E20078940E941E1B0E948F1B88 +:102C400084E192E00E94391B80919803853069F4F9 +:102C50000E945027809196038823B1F30E947E271B +:102C6000882391F30E949016EFCF0E94971BECCF20 +:102C7000292F332723303105C9F064F42130310581 +:102C800081F02230310509F043C084E590E028E16D +:102C90003AE042C021323105F1F02232310541F1F2 +:102CA00037C082E190E02CE63AE036C099278130C7 +:102CB000910541F08230910541F0892B49F5E4E11D +:102CC000FAE005C0E6EEF9E002C0EAEBF9E0849133 +:102CD00090E09F0121C06330D8F4E62FF0E0EE0FC2 +:102CE000FF1FE856FD4F2081318189E090E014C03C +:102CF000633070F470E0FB01EE0FFF1FEE56FD4FE6 +:102D000020813181FB01E157FD4F808190E004C0BB +:102D100080E090E020E030E0FA01318320830895E4 +:102D200080E189BD82E189BD09B400FEFDCF8091BB +:102D3000D8008F7D8093D8008091E00082608093DE +:102D4000E0008091E00081FDFCCF0895CF92DF92FA +:102D5000EF92FF920F931F93CF93DF93EC018B01C0 +:102D60006A010E940918811133C0C114D10439F0DD +:102D7000F60180819181081B190BC80FD91FE12C26 +:102D8000F12C0115110519F18091E80085FD16C09F +:102D90008091E8008E778093E800C114D10449F057 +:102DA000F60180819181E80EF91EF182E08285E0D2 +:102DB0000FC00E940918882321F30AC089918093CB +:102DC000F10001501109FFEFEF1AFF0ADACF80E09E +:102DD000DF91CF911F910F91FF90EF90DF90CF90F7 +:102DE000089520919F033091A0032617370748F0DC +:102DF0006115710539F42091E8002E772093E800E1 +:102E000001C0B90140E061157105A9F12091980355 +:102E1000222309F443C0253009F442C02091E80080 +:102E200023FD40C02091E80022FD32C02091E8003F +:102E300020FFE9CF4091F3002091F20030E0342BE5 +:102E4000FC01CF016115710559F02830310540F4BE +:102E500081918093F100615071092F5F3F4FF1CF55 +:102E600041E02830310509F040E02091E8002E775C +:102E70002093E800C8CF4111C9CF0AC080919803C0 +:102E8000882361F0853061F08091E80083FD0AC0FD +:102E90008091E80082FFF2CF80E0089582E00895FB +:102EA00083E0089581E0089520919F033091A0036D +:102EB0002617370748F06115710539F42091E800AD +:102EC0002E772093E80001C0B901FC0120E06115D4 +:102ED000710591F180919803882309F440C08530F1 +:102EE00009F43FC08091E80083FD3DC08091E80077 +:102EF00082FD2FC08091E80080FFE9CF2091F30090 +:102F00008091F20090E0922B6115710559F08830A4 +:102F1000910540F424912093F1003196615071099C +:102F20000196F2CF21E0089709F020E08091E800B7 +:102F30008E778093E800CBCF2111CCCF0AC080914F +:102F40009803882361F0853061F08091E80083FD6B +:102F50000AC08091E80082FFF2CF80E0089582E00D +:102F6000089583E0089581E00895982F973058F5EB +:102F70009093E900981739F07091EC002091ED00E2 +:102F80005091F00003C0242F762F50E021FF19C08C +:102F90003091EB003E7F3093EB003091ED003D7FB0 +:102FA0003093ED003091EB0031603093EB00709383 +:102FB000EC002093ED005093F0002091EE0027FFED +:102FC00007C09F5FD3CF8F708093E90081E00895A1 +:102FD00080E008958091990387FF11C08091E800F7 +:102FE00082FD05C0809198038111F8CF11C08091B6 +:102FF000E8008B770BC080919803882349F080917B +:10300000E80080FFF8CF8091E8008E778093E80099 +:1030100008952091E4003091E50095E64091EC00A0 +:10302000842F817040FF22C08091E80080FD1CC089 +:1030300080919803882391F0853091F08091EB0086 +:1030400085FD10C04091E4005091E5004217530700 +:1030500029F39A01915011F784E0089582E00895D0 +:1030600083E0089581E0089580E008954091E800AC +:1030700042FFDECF08950E94A9180E94B118E0EE29 +:10308000F0E0808181608083E8EDF0E080818F77DF +:10309000808319BCA7EDB0E08C918E7F8C938081EA +:1030A0008F7E80831092970308950F931F93CF9381 +:1030B000DF930E94A9180E94B118C8EDD0E0888162 +:1030C0008F77888388818068888388818F7D8883D3 +:1030D00019BC1092980310929403109296031092C8 +:1030E000950300EE10E0F80180818B7F808388815A +:1030F0008160888342E060E080E00E94B517E1EEE5 +:10310000F0E080818E7F8083E2EEF0E0808181605C +:103110008083808188608083F80180818E7F8083B6 +:10312000888180618883DF91CF911F910F910895ED +:10313000E8EDF0E080818F7E8083E7EDF0E0808134 +:103140008160808384E082BF81E0809397030C9448 +:103150005518E8EDF0E080818E7F80831092E200C8 +:1031600008951092DA001092E10008951F920F92D4 +:103170000FB60F9211242F933F934F935F936F934A +:103180007F938F939F93AF93BF93EF93FF93809120 +:10319000E10082FF0BC08091E20082FF07C08091B6 +:1031A000E1008B7F8093E1000E941D1B8091DA007B +:1031B00080FF1FC08091D80080FF1BC08091DA0083 +:1031C0008E7F8093DA008091D90080FF0DC080E16E +:1031D00089BD82E189BD09B400FEFDCF81E0809305 +:1031E00098030E94281505C019BC109298030E94EC +:1031F00036158091E10080FF19C08091E20080FFC8 +:1032000015C08091E2008E7F8093E2008091E20001 +:1032100080618093E2008091D80080628093D80022 +:1032200019BC85E0809398030E943A158091E100D3 +:1032300084FF30C08091E20084FF2CC080E189BD12 +:1032400082E189BD09B400FEFDCF8091D8008F7D59 +:103250008093D8008091E1008F7E8093E10080917F +:10326000E2008F7E8093E2008091E2008160809393 +:10327000E20080919403882311F084E007C08091DC +:10328000E30087FD02C081E001C083E080939803E2 +:103290000E943B158091E10083FF29C08091E200EC +:1032A00083FF25C08091E100877F8093E10082E069 +:1032B00080939803109294038091E1008E7F809315 +:1032C000E1008091E2008E7F8093E2008091E20035 +:1032D00080618093E20042E060E080E00E94B517E8 +:1032E0008091F00088608093F0000E943915FF9172 +:1032F000EF91BF91AF919F918F917F916F915F916E +:103300004F913F912F910F900FBE0F901F901895E6 +:103310001F920F920FB60F9211242F933F934F934A +:103320005F936F937F938F939F93AF93BF93CF934D +:10333000DF93EF93FF93C091E900CF708091EC0091 +:10334000D82FD17080FDD0E81092E9008091F00074 +:10335000877F8093F00078940E94CC191092E90046 +:103360008091F00088608093F000CD2BCF70C093E7 +:10337000E900FF91EF91DF91CF91BF91AF919F91C4 +:103380008F917F916F915F914F913F912F910F900E +:103390000FBE0F901F9018951F93CF93DF93CDB75B +:1033A000DEB7AA970FB6F894DEBF0FBECDBFE9E92E +:1033B000F3E088E08E0F9091F10091938E13FBCF94 +:1033C0000E944C158091E80083FF1FC180919903F2 +:1033D00090919A03492F50E04A30510508F015C1E9 +:1033E000FA01EA57FF4F0C943731803881F0823868 +:1033F00009F00BC180919D038F708093E90080914B +:10340000EB0085FB882780F91092E90006C08091C7 +:10341000950390919603911182609091E800977FB7 +:103420009093E8008093F1001092F100C8C0282F1B +:103430002D7F09F0EAC0882319F0823061F0E5C0E1 +:1034400080919B03813009F0E0C0933009F080E067 +:10345000809396032BC080919B03811127C080919C +:103460009D038F7009F4D1C08093E9002091EB0097 +:1034700020FF1CC0933021F48091EB00806214C0C7 +:103480009091EB0090619093EB0021E030E0A90176 +:1034900002C0440F551F8A95E2F74093EA0010924C +:1034A000EA008091EB0088608093EB001092E900C5 +:1034B0008091E800877F86C08111A7C010919B038F +:1034C0001F778091E3008078812B8093E3008091C7 +:1034D000E800877F8093E8000E94EA178091E80067 +:1034E00080FFFCCF8091E30080688093E30011119E +:1034F00002C082E001C083E08093980386C08058B8 +:10350000823008F082C080919B0390919C038C3D97 +:1035100053E0950779F583E08A838AE289834FB780 +:10352000F894DE01139620E03EE051E2E32FF0E054 +:1035300050935700E49120FF03C0E295EF703F5F86 +:10354000EF708E2F90E0EA3010F0C79601C0C09661 +:103550008D939D932F5F243149F74FBF8091E800F1 +:10356000877F8093E8006AE270E0CE0101960E94B6 +:10357000F11614C0AE014F5F5F4F60919D030E9432 +:103580003816BC01009709F440C09091E800977F7D +:103590009093E80089819A810E9454178091E800F5 +:1035A0008B778093E80031C0803879F58091E8000E +:1035B000877F8093E800809194038093F10080914D +:1035C000E8008E778093E8000E94EA171EC0811100 +:1035D0001CC090919B039230C0F48091E800877FDB +:1035E0008093E800909394030E94EA1780919403DB +:1035F000811106C08091E30087FD02C081E001C017 +:1036000084E0809398030E943D158091E80083FF39 +:103610000AC08091E800877F8093E8008091EB00EA +:1036200080628093EB00AA960FB6F894DEBF0FBEBF +:10363000CDBFDF91CF911F9108950895CF938091D1 +:1036400098038823A1F0C091E900CF709091EC001D +:10365000892F817090FD80E8C82B1092E90080913D +:10366000E80083FD0E94CC19CF70C093E900CF9190 +:10367000089590931F0380931E030895E0911E0305 +:10368000F0911F03309721F00190F081E02D099413 +:1036900080E00895E0911E03F0911F03309721F020 +:1036A0000280F381E02D09940895E0911E03F091CA +:1036B0001F03309721F00480F581E02D09940895CF +:1036C00020911C0330911D038217930771F0909392 +:1036D0001D0380931C03E0911E03F0911F0330979C +:1036E00021F00680F781E02D0994089520911A03B6 +:1036F00030911B038217930771F090931B03809303 +:103700001A03E0911E03F0911F03309721F000840B +:10371000F185E02D0994089508950C948C1B0E9466 +:10372000CA270E94F60B0E9450280C94F82C4F9246 +:103730005F927F928F929F92AF92BF92CF92DF92D1 +:10374000EF92FF920F931F93CF93DF93CDB7DEB726 +:103750002A970FB6F894DEBF0FBECDBF0E94D10CE2 +:1037600091E2C92E93E0D92E00E010E0AA24A394A0 +:10377000B12C702E802F0E940A0E4C01F601419050 +:1037800051906F014826592641145104B1F40F5F3E +:103790001F4F0530110569F78FEF89838A831B82DC +:1037A0000E94D3278160782F9D838C8349815A8121 +:1037B0006B818D810E94501C3AC08091770381FDFE +:1037C0000E94130E20E030E07501022E02C0EE0CC4 +:1037D000FF1C0A94E2F7C70184219521892B09F186 +:1037E0002E837F828E209F2091E0892809F490E02B +:1037F00098870E94D3278160782F9A8789874E8186 +:103800005F8168858A850E94501C000F111FF80196 +:10381000EF5DFC4F80819181E826F926F182E082FC +:1038200006C02F5F3F4F2C30310571F6B0CF0E949C +:10383000372A109120030E943E1B1817D9F00E94CE +:103840003E1B809320032A960FB6F894DEBF0FBE6E +:10385000CDBFDF91CF911F910F91FF90EF90DF903F +:10386000CF90BF90AF909F908F907F905F904F9040 +:103870000C942E0B2A960FB6F894DEBF0FBECDBF68 +:10388000DF91CF911F910F91FF90EF90DF90CF903C +:10389000BF90AF909F908F907F905F904F900895D2 +:1038A000CF93DF93CDB7DEB72B970FB6F894DEBF7B +:1038B0000FBECDBF4F83588769877A878B87DE011C +:1038C000119686E0FD0111928A95E9F785E0FE01E7 +:1038D000379601900D928A95E1F749815A816B8163 +:1038E0007C818D819E810E94F5232B960FB6F894E2 +:1038F000DEBF0FBECDBFDF91CF910895CF93882358 +:1039000009F4C2C0C82F823859F40E943E1B81FDC1 +:10391000BBC089E30E949E260E94212789E30CC038 +:10392000833879F40E943E1B80FDAEC083E50E947F +:103930009E260E94212783E50E94BB26CF910C94EE +:103940002127843859F40E943E1B82FD9DC087E4E4 +:103950000E949E260E94212787E4EECF8CEF8C0FD9 +:10396000813A48F48C2F0E94602C81118DC08C2FDD +:103970000E949E26E3CF80E28C0F883048F4C77007 +:1039800081E001C0880FCA95EAF70E94DA26D6CFF7 +:103990008BE58C0F833078F4C53A29F0C63A31F0C4 +:1039A00083E890E005C081E890E002C082E890E002 +:1039B000CF910C94601B88E58C0F833108F064C0B4 +:1039C000C83A39F1C93A41F1CA3A49F1CB3A51F111 +:1039D000CC3A59F1CD3A61F1C03B69F1CE3A71F17F +:1039E000CF3A79F1C13B81F1C23B89F1C33B91F1FF +:1039F000C43B99F1C53BA1F1C63BA9F1C73BB1F16D +:103A0000C83BB9F1C93BC1F1CA3BC9F180E090E0C4 +:103A100038C082EE90E035C089EE90E032C08AEE88 +:103A200090E02FC085EB90E02CC086EB90E029C0A1 +:103A300087EB90E026C08CEC90E023C08DEC90E00A +:103A400020C083E891E01DC08AE891E01AC082E9B5 +:103A500091E017C084E991E014C081E292E011C0C6 +:103A600083E292E00EC084E292E00BC085E292E035 +:103A700008C086E292E005C087E292E002C08AE2D6 +:103A800092E0CF910C94761BCF910895882309F48E +:103A90004BC0823859F40E943E1B81FF45C089E328 +:103AA0000E949E260E94212789E30CC0833871F46E +:103AB0000E943E1B80FF38C083E50E949E260E9424 +:103AC000212783E50E94BB260C942127843859F4D2 +:103AD0000E943E1B82FF28C087E40E949E260E940F +:103AE000212787E4EFCF9CEF980F913A58F390E2AB +:103AF000980F983050F4877091E001C0990F8A9523 +:103B0000EAF7892F0E94E026DFCF9BE5980F9330DC +:103B100020F480E090E00C94601B885A833120F4FC +:103B200080E090E00C94761B0895882321F00E9499 +:103B3000DA260C9421270895882321F00E94E0269C +:103B40000C9421270895BF92CF92DF92EF92FF92BB +:103B50000F931F93CF93DF9300D000D000D0CDB749 +:103B6000DEB725E0FC01DE01119601900D922A9549 +:103B7000E1F7FC01D08011810281258122952F700F +:103B800043815481452B09F472C31F3F21F4FFEF99 +:103B9000DF1609F46CC37C012E830E94F707D982DB +:103BA0001A8369817A81802F0E949A26182FB92E54 +:103BB0000E944F260E9416252E81002319F00E9494 +:103BC000F7262E81EB2DE295EF70F0E0E057FF4FE6 +:103BD0000C9437318B2D807F9B2D9F70F92E88237D +:103BE00019F0F29480EFF822002389F0FF2009F405 +:103BF0007CC280E2810F883020F48F2D0E94DA266B +:103C000003C08F2D0E94EA260E9421276EC2812FB9 +:103C10000E94461DFF2009F42AC3105E8F2D183024 +:103C200018F40E94E02602C00E94F02626960FB6E5 +:103C3000F894DEBF0FBECDBFDF91CF911F910F91E2 +:103C4000FF90EF90DF90CF90BF900C9421278B2DA9 +:103C5000807F9B2D9F70803211F4892F03C0892FA4 +:103C60008295807F112319F0113011F12BC00023B0 +:103C7000A9F0222389F1213079F526960FB6F89420 +:103C8000DEBF0FBECDBFDF91CF911F910F91FF908F +:103C9000EF90DF90CF90BF900C940A27222319F069 +:103CA000213009F4E4C28E830E940D278E819BC1CE +:103CB000002321F0263008F0DAC20EC0253008F0CB +:103CC000D6C291C10023C9F0222331F0F7019581BA +:103CD00090FF0BC29F70958326960FB6F894DEBFB7 +:103CE0000FBECDBFDF91CF911F910F91FF90EF904D +:103CF000DF90CF90BF900C94951D222309F473C1DF +:103D000009C22B2D26952695237030E0211531050B +:103D100021F021303105D1F0AAC2002321F0812FFA +:103D20009B2D937002C080E090E026960FB6F89429 +:103D3000DEBF0FBECDBFDF91CF911F910F91FF90DE +:103D4000EF90DF90CF90BF900C94601B002321F088 +:103D5000812F9B2D937002C080E090E026960FB6D5 +:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 +:103D7000FF90EF90DF90CF90BF900C94761B812F37 +:103D8000002319F00E943F2902C00E94A72926960D +:103D90000FB6F894DEBF0FBECDBFDF91CF911F915C +:103DA0000F91FF90EF90DF90CF90BF900C942C2A52 +:103DB0008B2D837009F07BC0011159C2812F829530 +:103DC00086958770880F880F912F9F70C92ED12CF0 +:103DD000E12CF12C082E04C0CC0CDD1CEE1CFF1CC9 +:103DE0000A94D2F714FF12C04FE050E060E070E098 +:103DF00004C0440F551F661F771F8A95D2F7CB0169 +:103E0000BA01609570958095909503C060E070E070 +:103E1000CB012B2D269526952370422F50E0423062 +:103E20005105D9F04330510569F16C297D298E295E +:103E30009F294130510551F126960FB6F894DEBF07 +:103E40000FBECDBFDF91CF911F910F91FF90EF90EB +:103E5000DF90CF90BF900C943D256C297D298E2951 +:103E60009F2926960FB6F894DEBF0FBECDBFDF9117 +:103E7000CF911F910F91FF90EF90DF90CF90BF9067 +:103E80000C9459250E943D25C701B60126960FB610 +:103E9000F894DEBF0FBECDBFDF91CF911F910F9180 +:103EA000FF90EF90DF90CF90BF900C9421250023DE +:103EB00019F08B2D817001C08695882309F4D7C134 +:103EC000812F829586958770880F880F912F9F701C +:103ED000C92ED12CE12CF12C082E04C0CC0CDD1CF9 +:103EE000EE1CFF1C0A94D2F714FF12C04FE050E002 +:103EF00060E070E004C0440F551F661F771F8A956D +:103F0000D2F7CB01BA01609570958095909503C06A +:103F100060E070E0CB012B2D269526952370422F73 +:103F200050E042305105D9F04330510569F16C2918 +:103F30007D298E299F294130510551F126960FB6D2 +:103F4000F894DEBF0FBECDBFDF91CF911F910F91CF +:103F5000FF90EF90DF90CF90BF900C9417266C29C4 +:103F60007D298E299F2926960FB6F894DEBF0FBEB5 +:103F7000CDBFDF91CF911F910F91FF90EF90DF9018 +:103F8000CF90BF900C9433260E941726C701B6012C +:103F900026960FB6F894DEBF0FBECDBFDF91CF914E +:103FA0001F910F91FF90EF90DF90CF90BF900C94F6 +:103FB000FB25103F49F118F4103E48F491C0123F20 +:103FC00009F453C0E8F1133F09F464C089C01F70BD +:103FD0008B2D8F71002321F00E949425812F7CCEA0 +:103FE0000E94B525812F26960FB6F894DEBF0FBE2E +:103FF000CDBFDF91CF911F910F91FF90EF90DF9098 +:10400000CF90BF900C949C1D0023B1F0253008F098 +:104010002EC18B2D8F7126960FB6F894DEBF0FBE82 +:10402000CDBFDF91CF911F910F91FF90EF90DF9067 +:10403000CF90BF900C94DA25263008F018C1E9CF54 +:104040000023A9F08B2D8F7126960FB6F894DEBF52 +:104050000FBECDBFDF91CF911F910F91FF90EF90D9 +:10406000DF90CF90BF900C949425002359F38B2DB3 +:104070008F7126960FB6F894DEBF0FBECDBFDF91CD +:10408000CF911F910F91FF90EF90DF90CF90BF9055 +:104090000C94B525002399F08B2D8F7126960FB6C1 +:1040A000F894DEBF0FBECDBFDF91CF911F910F916E +:1040B000FF90EF90DF90CF90BF900C947F252696D5 +:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 +:1040D0000F91FF90EF90DF90CF90BF900C947525DB +:1040E0000023A9F0222309F4ADCF812F26960FB625 +:1040F000F894DEBF0FBECDBFDF91CF911F910F911E +:10410000FF90EF90DF90CF90BF900C947E1C222305 +:1041100009F4ADCF812F26960FB6F894DEBF0FBEFF +:10412000CDBFDF91CF911F910F91FF90EF90DF9066 +:10413000CF90BF900C94461D4B2D4F70612FC7013F +:104140000E942F0626960FB6F894DEBF0FBECDBF95 +:10415000DF91CF911F910F91FF90EF90DF90CF9063 +:10416000BF900C949924011182C09B2D9F70492F00 +:1041700050E04230510509F443C0C4F441155105E3 +:1041800071F14130510509F072C026960FB6F894CE +:10419000DEBF0FBECDBFDF91CF911F910F91FF907A +:1041A000EF90DF90CF90BF900C94202D43305105BD +:1041B000C1F14430510509F05AC0812F26960FB63F +:1041C000F894DEBF0FBECDBFDF91CF911F910F914D +:1041D000FF90EF90DF90CF90BF900C94722D2696B9 +:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 +:1041F0000F91FF90EF90DF90CF90BF900C94092D1E +:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB +:104210001F910F91FF90EF90DF90CF90BF900C9483 +:104220003C2D26960FB6F894DEBF0FBECDBFDF91B2 +:10423000CF911F910F91FF90EF90DF90CF90BF90A3 +:104240000C944F2D4B2D4F70612FC70126960FB642 +:10425000F894DEBF0FBECDBFDF91CF911F910F91BC +:10426000FF90EF90DF90CF90BF900C94F9072696C7 +:104270000FB6F894DEBF0FBECDBFDF91CF911F9177 +:104280000F91FF90EF90DF90CF90BF9008950E9424 +:10429000F7260E9407270E94CC260E9421270E9411 +:1042A000DD2A0E942C2A80E090E00E94601B80E0C2 +:1042B00090E00C94761B0E94E7260C9447210E9404 +:1042C0008F26292F22952F7030E02C3031054CF4A9 +:1042D0002A3031056CF4225031092230310588F43E +:1042E00007C02C30310549F02F30310531F009C0BD +:1042F000803E48F0803F29F406C093FB882780F970 +:10430000089580E0089581E00895CF93DF9300D071 +:1043100000D01F92CDB7DEB70F900F900F900F9087 +:104320000F90DF91CF910895CF93DF9300D000D00D +:1043300000D0CDB7DEB726960FB6F894DEBF0FBE1D +:10434000CDBFDF91CF9108951F93CF93DF93C0919D +:104350002B0316E080912C03C81799F0D0E01C9F26 +:10436000F0011D9FF00D1124E35DFC4F4081518150 +:1043700062817381848195810E9494212196C77006 +:10438000E9CFDF91CF911F91089540915D03509146 +:104390005E0360915F03709160038091610390916F +:1043A00062030C9494218091620382958F7009F0CE +:1043B00054C080915F03882309F44FC080912B0380 +:1043C000A0912C0360915D0370915E0340916003A6 +:1043D00050916103B6E08A1709F43FC090E041159F +:1043E0005105C1F17F3F11F46F3FA1F1B89FF0017A +:1043F000B99FF00D1124E35DFC4F218172132AC097 +:104400002081621327C02281211124C0238134819D +:104410002417350710F421503109241B350B283C93 +:104420003105C0F4209162032F7020612093620354 +:1044300026E0289FF001299FF00D1124EE5CFC4F2F +:1044400080818F70806180838DE593E00E94A31D41 +:104450000C94A42101968770BECF0895CF92DF926D +:10446000EF92FF920F931F93CF93DF93CDB7DEB7F9 +:1044700062970FB6F894DEBF0FBECDBF8C0185E00A +:10448000F801DE011D9601900D928A95E1F7D801A1 +:104490004C9111965C91119712966C91129713960C +:1044A000CD90DC90149730915D0370915E03809104 +:1044B000600390916103009709F46BC17F3F19F489 +:1044C0003F3F09F466C1E0905F03EE2009F4C0C0ED +:1044D00020916203C816D90628F0F601E81BF90BF3 +:1044E000CF0104C0809590958C0D9D1DFF24F39401 +:1044F000883C910578F0F12C207F09F0C6C07C2D16 +:10450000D98AC88A89890E9485218DE593E00E9415 +:10451000A31DB1C0822F807F09F046C0751314C05F +:10452000341312C0611110C02F70206120936203F8 +:104530000E94C5218DE593E00E94A31D8091620336 +:10454000D80115968C932EC0CD2819F15F3F11F438 +:104550004F3FF9F0F62E61111CC080912B03209182 +:104560002C0336E0821709F45AC090E0389FF0011E +:10457000399FF00D1124E35DFC4F7181571306C084 +:104580007081471303C07281711103C00196877057 +:10459000E9CFF62E662309F418C180916203816089 +:1045A00080936203F12C11C1751308C0341306C047 +:1045B000611104C080916203D801C3C04D875E873A +:1045C0008D859E856A8B0E945F216A898823E1F12F +:1045D0006623D1F120916203822F82958F7090E043 +:1045E000029774F080915D0390915E0398878F83AA +:1045F0001986DB86CA862C87CE0107960E94A31DEA +:1046000086E0F801ADE5B3E001900D928A95E1F7FF +:104610000E94D3210E94C521FF24F394D6C04D8768 +:104620005E878D859E850E948F26292F22952F706B +:1046300030E0223031050CF0BCC09F7009F0B6C0EC +:10464000805E883008F4C1C0C8010E94A31DE4CF79 +:10465000C816D90608F453C0F601E81BF90BCF01C0 +:10466000883C910508F450C0F12C7C2DD98AC88A69 +:1046700089890E948521EDE5F3E086E0DF011D9246 +:104680008A95E9F70E94C521A0C0751314C03413A0 +:1046900012C0611110C080916203F8018583C801C6 +:1046A0000E94A31D86E0EDE5F3E0DF011D928A95EF +:1046B000E9F7FE2C8AC04D875E878D859E856A8BC3 +:1046C0000E945F216A89882309F4BECF662309F41A +:1046D000BBCF20916203822F82958F7090E002976A +:1046E0000CF48ECF80915D0390915E039A83898351 +:1046F0001B82DD82CC822E83CE0101967FCF8095F6 +:1047000090958C0D9D1DACCFF62E662309F49CCFA1 +:1047100075132EC034132CC02091620320FD1FC0DE +:10472000822F82958F70D9F0D80115962C9315970A +:104730008F3049F08F5F982F9295907F822F8F70E6 +:10474000892B15968C93C8010E94A31D86E0F80161 +:10475000ADE5B3E001900D928A95E1F793CF86E045 +:10476000F801ADE5B3E001900D928A95E1F72DC017 +:104770004D875E878D859E850E945F21811140CF88 +:1047800080916203816080936203C8010E94A31D2F +:104790001CC0662309F458CF4D875E878D859E85A2 +:1047A0000E945F21882309F44FCF2ACF811148CF7F +:1047B0000CC0243031050CF047CF9F7009F440CF76 +:1047C000F8019581907F09F03BCF8F2D62960FB64F +:1047D000F894DEBF0FBECDBFDF91CF911F910F9137 +:1047E000FF90EF90DF90CF9008951F93CF93DF93CA +:1047F000CDB7DEB72C970FB6F894DEBF0FBECDBF96 +:104800004F83588769877A878B879C87CE01079665 +:104810000E942E22882369F08F8198852A853B8506 +:10482000232BF1F19F3F09F063C08F3F09F060C077 +:1048300037C086E0FE013796DE01119601900D9299 +:104840008A95E1F76F817885EA85FB85309741F19C +:104850007F3F11F46F3F21F120912C0330E0C9011B +:1048600001968770992740912B0350E08417950794 +:1048700009F447C069837A83FD83EC8396E0929FB5 +:10488000D001939FB00D1124A35DBC4FFE01319662 +:1048900001900D929A95E1F780932C030E94A42138 +:1048A00016E080912B0390912C038917C1F1189F7A +:1048B000C0011124835D9C4F0E942E22882379F130 +:1048C000E0912B031E9FF0011124E35DFC4F40811A +:1048D000518162817381848195810E9494218091AC +:1048E0002B0390E001968770992780932B03D9CFF3 +:1048F0004F81588569857A858B859C850E94942196 +:10490000CFCF0E945B2110922C0310922B03EDE578 +:10491000F3E086E0DF011D928A95E9F7C1CF2C967E +:104920000FB6F894DEBF0FBECDBFDF91CF911F91C0 +:104930000895EF92FF920F931F93CF93DF938C0113 +:10494000009709F46CC0F12CEE24E394E801219661 +:10495000F8018491843740F4843008F051C08130EC +:1049600081F0823019F15BC0853709F444C0A8F1A9 +:104970009CE7980F903708F052C08F770E94461D31 +:1049800041C00E5F1F4FFE01C49180E28C0F883042 +:1049900048F4C7708E2D01C0880FCA95EAF70E94AF +:1049A000FA2614C08C2F0E947E1C2DC00E5F1F4F54 +:1049B000FE01C49180E28C0F883058F4C7708E2DB0 +:1049C00001C0880FCA95EAF70E9400270E9421279C +:1049D0001AC08C2F0E94461D16C00E5F1F4FFE018D +:1049E000C491CC2381F08FE99FE00197F1F700C0DB +:1049F0000000C150F6CF0E5F1F4FFE01F49003C0C0 +:104A00000E947E1C8E018F2D882309F49FCFEFE931 +:104A1000FFE03197F1F700C000008150F5CFDF9142 +:104A2000CF911F910F91FF90EF900895089560939B +:104A30006703709368038093690390936A030C94EF +:104A400047210F931F9300916703109168032091F2 +:104A5000690330916A03DC01CB01802B912BA22BDF +:104A6000B32B8093670390936803A0936903B0937B +:104A70006A031F910F910C9447210F931F9300918C +:104A80006703109168032091690330916A03DC0188 +:104A9000CB0180239123A223B323809367039093B8 +:104AA0006803A0936903B0936A031F910F910C945C +:104AB00047210F931F930091670310916803209182 +:104AC000690330916A03DC01CB0180279127A2277B +:104AD000B3278093670390936803A0936903B0930F +:104AE0006A031F910F910C94472110926303109257 +:104AF000640310926503109266030C94472141E011 +:104B000050E060E070E004C0440F551F661F771F3F +:104B10008A95D2F7409363035093640360936503CF +:104B2000709366030C94472141E050E060E070E030 +:104B300004C0440F551F661F771F8A95D2F78091D6 +:104B4000630390916403A0916503B0916603482BC1 +:104B5000592B6A2B7B2B4093630350936403609320 +:104B60006503709366030C94472141E050E060E0D8 +:104B700070E004C0440F551F661F771F8A95D2F757 +:104B80004095509560957095809163039091640372 +:104B9000A0916503B0916603482359236A237B23C0 +:104BA00040936303509364036093650370936603BB +:104BB0000C94472141E050E060E070E004C0440FF5 +:104BC000551F661F771F8A95D2F7809163039091D6 +:104BD0006403A0916503B0916603482759276A27AB +:104BE0007B27409363035093640360936503709342 +:104BF00066030C9447210F931F9300916303109158 +:104C000064032091650330916603DC01CB01802BA6 +:104C1000912BA22BB32B8093630390936403A093F7 +:104C20006503B09366031F910F910C9447210F9376 +:104C30001F930091630310916403209165033091E9 +:104C40006603DC01CB0180239123A223B32380934D +:104C5000630390936403A0936503B09366031F916D +:104C60000F910C9447210F931F93009163031091B0 +:104C700064032091650330916603DC01CB0180273A +:104C80009127A227B3278093630390936403A09393 +:104C90006503B09366031F910F910C94472108950B +:104CA000CF92DF92EF92FF920F931F93CF93DF93F8 +:104CB0008C01C0906703D0906803E0906903F09086 +:104CC0006A038091630390916403A0916503B0919E +:104CD0006603C82AD92AEA2AFB2ACFE1D0E0D70105 +:104CE000C6010C2E04C0B695A795979587950A9492 +:104CF000D2F780FF06C0B8018C2F0E94530A01979B +:104D000021F4219760F780E001C08C2FDF91CF91D3 +:104D10001F910F91FF90EF90DF90CF900895CF9368 +:104D2000DF93EC010E945026BE010E94530ADF91DE +:104D3000CF910895CB010E948F26089520911F02E4 +:104D400030912002F90132969FEF40E051915817BF +:104D500089F09F3F19F4511101C0942F4F5F4630E5 +:104D6000A9F79F3F39F0F901E90FF11D97FDFA9579 +:104D700082830895089520911F0230912002F90145 +:104D80003296285F3F4F9081981301C01082319670 +:104D9000E217F307C1F7089581E090E0E0911F0268 +:104DA000F0912002E80FF91F1082019688309105DA +:104DB000A9F7089590917603892B8093760308953F +:104DC00080959091760389238093760308951092BD +:104DD0007603089590917503892B80937503089548 +:104DE000809590917503892380937503089510929F +:104DF0007503089590917403892B8093740308952B +:104E00008095909174038923809374030895109280 +:104E10007403089580936B03089510926B030895B3 +:104E200080911F0290912002FC0131969C01285F25 +:104E30003F4F80E0919191118F5FE217F307D1F717 +:104E40000895E0911F02F091200280917603808303 +:104E5000E0911F02F0912002908180917503892BCF +:104E60008083E0911F02F091200290818091740371 +:104E7000892B808380916B03882361F0E0911F026E +:104E8000F09120029081892B80830E94102781114C +:104E900010926B0380911F02909120020C944A1B88 +:104EA00080919803843039F11092780320E488E1EE +:104EB00090E00FB6F894A895809360000FBE209301 +:104EC000600080E00E94F60580E00E942E0B83B710 +:104ED000817F846083BF83B7816083BF7894889526 +:104EE00083B78E7F83BF88E10FB6F894809360000C +:104EF000109260000FBE089508950895CF9380E04A +:104F00000E94F6050E947C270E94D10C0E947D27FA +:104F1000C0E08C2F0E940A0E892B29F4CF5FC53088 +:104F2000C1F780E001C081E0CF9108950E945B212C +:104F300080E00E94F6050E94F82C0E943E1B0C9413 +:104F40002E0B1F920F920FB60F9211248F939F93E7 +:104F5000AF93BF9380917803811113C0809179033F +:104F600090917A03A0917B03B0917C034196A11D9F +:104F7000B11D8093790390937A03A0937B03B09340 +:104F80007C03BF91AF919F918F910F900FBE0F90B7 +:104F90001F90189582E084BD93E095BD9AEF97BD70 +:104FA00080936E0008952FB7F894809179039091C3 +:104FB0007A03A0917B03B0917C032FBF0895CF9219 +:104FC000DF92EF92FF920F931F932FB7F8944091C7 +:104FD000790350917A0360917B0370917C032FBF1A +:104FE0006A017B01EE24FF248C0120E030E0C01632 +:104FF000D106E206F30610F4415051099A01281B2C +:10500000390BC9011F910F91FF90EF90DF90CF9066 +:1050100008951F920F920FB60F9211248F939F93B2 +:10502000AF93BF938091790390917A03A0917B0312 +:10503000B0917C030196A11DB11D809379039093DB +:105040007A03A0937B03B0937C03BF91AF919F91B0 +:105050008F910F900FBE0F901F9018950E943B18D4 +:10506000F8942FEF87EA91E6215080409040E1F7D5 +:1050700000C0000087E090EBDC018093A3039093D5 +:10508000A403A093A503B093A6039CE088E10FB608 +:10509000F894A895809360000FBE90936000FFCFB6 +:1050A0000E948A28811102C00E9466280E949528C9 +:1050B000809377030E94A2288093A1030E949928DD +:1050C000682F70E080E090E00C9417256DEE7EEF85 +:1050D00080E090E00E945D3160E082E090E00E941C +:1050E0004B3160E083E090E00E944B3160E084E06F +:1050F00090E00E944B3160E085E090E00E944B31EF +:1051000060E086E090E00E944B316FEF87E090E036 +:105110000C944B3180E090E00E94453121E08D3EBF +:105120009E4F09F020E0822F089582E090E00C94D9 +:105130003D3183E090E00C943D31682F83E090E0B6 +:105140000C944B3184E090E00C943D31682F84E066 +:1051500090E00C944B3186E090E00C943D31682F48 +:1051600086E090E00C944B3187E090E00C943D3168 +:10517000682F87E090E00C944B3180917F0380FF93 +:105180000BC06091240285E0689FB00111247595E1 +:105190006795759567952BC081FF09C060912402C2 +:1051A00085E0689FB00111247595679520C082FF46 +:1051B00007C06091240285E0689FB001112417C0E8 +:1051C000909180039923D1F060912302961788F77C +:1051D0002091240285E0289F90011124929FA00134 +:1051E000939F500D112470E0CA010E942331603852 +:1051F000710540F46115710539F002C065E070E099 +:10520000862F08958FE7089581E0089580917F03A8 +:1052100080FF08C06091220270E0759567957595D2 +:10522000679521C081FF06C06091220270E07595EC +:10523000679519C082FF04C06091220270E010C01F +:10524000909180039923C1F0609121029617A0F7F5 +:1052500080912202899FC001112470E00E942331B5 +:105260006038710528F46115710521F0862F0895C5 +:105270008FE7089581E0089561E070E0F4CF803F0A +:1052800021F40E94BD28819504C0813F29F40E9429 +:10529000BD28809383030895823F21F40E94BD2896 +:1052A000819504C0833F29F40E94BD288093820326 +:1052B0000895893F19F40E94062905C08A3F31F4F8 +:1052C0000E94062981958093840308958B3F21F4E1 +:1052D0000E940629819504C08C3F29F40E9406296A +:1052E000809385030895843F21F480918103816038 +:1052F00017C0853F21F480918103826011C0863FF1 +:1053000021F48091810384600BC0873F21F4809158 +:105310008103886005C0883F31F4809181038061FA +:105320008093810308958D3F21F480917F038160F4 +:105330000BC08E3F21F480917F03826005C08F3FB8 +:1053400029F480917F03846080937F030895803FD8 +:1053500039F48091830387FF6CC01092830369C086 +:10536000813F29F4809183031816BCF362C09091A9 +:105370008203823F29F497FF5CC01092820359C0D8 +:10538000833F19F41916CCF354C0893F41F480913E +:10539000840318160CF04DC0109284034AC08A3F53 +:1053A00029F48091840387FF44C0F6CF8B3F39F402 +:1053B0008091850387FF3DC0109285033AC08C3FE2 +:1053C00029F4809185031816BCF333C0843F21F47F +:1053D000809181038E7F17C0853F21F480918103E6 +:1053E0008D7F11C0863F21F4809181038B7F0BC09C +:1053F000873F21F480918103877F05C0883F31F486 +:10540000809181038F7E8093810313C08D3F21F4AF +:1054100080917F038E7F0BC08E3F21F480917F03AC +:105420008D7F05C08F3F29F480917F038B7F809310 +:105430007F038091820381110EC0809183038111CB +:105440000AC080918403811106C080918503811177 +:1054500002C010928003089581E893E00E94551BDA +:105460000E94D32790937E0380937D0308951F931A +:10547000CF93DF9380917D0390917E030E94DF277D +:10548000AC0190918003992321F02091250230E016 +:1054900006C0209126028AE0289F9001112442171D +:1054A000530708F486C080918203C0918303D09192 +:1054B000840310918503811107C0C11176C0D111F9 +:1054C00074C0111172C075C09F3F19F09F5F909317 +:1054D0008003181624F40E94BD28809382038091D3 +:1054E000820387FF05C00E94BD28819580938203B7 +:1054F0001C1624F40E94BD288093830380918303AB +:1055000087FF05C00E94BD28819580938303609129 +:105510008203662339F1C0918303CC2319F17727E5 +:1055200067FD7095872F972F0E94932E23E333E317 +:1055300043E35FE30E94472F0E94602E6093820343 +:105540006C2F772767FD7095872F972F0E94932EDA +:1055500023E333E343E35FE30E94472F0E94602E7F +:10556000609383031D1624F40E940629809384030C +:105570008091840387FF05C00E940629819580934E +:105580008403111624F40E940629809385038091D8 +:10559000850387FF05C00E940629819580938503B6 +:1055A000DF91CF911F910C942C2A9F3F09F08ECF51 +:1055B00096CFDF91CF911F910895E1E8F3E085E068 +:1055C000DF011D928A95E9F71092800310927F0304 +:1055D0000895833081F128F4813059F08230D1F080 +:1055E0000895853009F449C0B8F1863009F456C0F1 +:1055F000089580912602262F30E0280F311D2F3F7D +:10560000310524F4680F6093260208958FEF80938C +:105610002602089580912502262F30E0280F311DA3 +:105620002F3F310524F4680F6093250208958FEF12 +:1056300080932502089580912402262F30E0280FC0 +:10564000311D2F3F310524F4680F60932402089523 +:105650008FEF80932402089580912302262F30E05B +:10566000280F311D2F3F310524F4680F609323026A +:1056700008958FEF80932302089580912202262FB0 +:1056800030E0280F311D2F3F310524F4680F60935F +:10569000220208958FEF80932202089580912102C3 +:1056A000262F30E0280F311D2F3F310524F4680FDD +:1056B0006093210208958FEF809321020895833033 +:1056C00011F128F4813049F0823091F0089585304D +:1056D00081F120F18630C1F108958091260268178A +:1056E00020F4861B809326020895109226020895C6 +:1056F00080912502681720F4861B80932502089567 +:1057000010922502089580912402681720F4861BC8 +:105710008093240208951092240208958091230218 +:10572000681720F4861B80932302089510922302A9 +:10573000089580912202681720F4861B809322022C +:10574000089510922202089580912102681720F492 +:10575000861B8093210208951092210208950F93D1 +:105760001F938732D8F58E3108F087C08E3009F448 +:1057700071C098F4873009F45BC08B3009F491C094 +:10578000863009F095C080917703817F8E7F80936A +:10579000770381E0809387038CC0863109F481C050 +:1057A00068F4803109F084C08091770383FB22275D +:1057B00020F991E0922790FB83F955C0893109F4D3 +:1057C00070C08B3109F074C08091770381FB222770 +:1057D00020F991E0922790FB81F945C0883309F4C4 +:1057E00060C050F4893209F45EC0853309F45BC0AF +:1057F000873209F458C05CC0833409F454C028F4DB +:105800008A3308F455C0895339C0883409F050C030 +:105810000E945B210E94D6070FEF13ED20E3015099 +:1058200010402040E1F700C000000E942E2839C03F +:1058300090917703892F8095817080FB90F929F0F2 +:10584000966098609093770334C0997F977F909388 +:10585000770327C08091770382FB222720F991E00C +:10586000922790FB82F9809377039923D1F080915E +:10587000770381608093770314C08D5141E050E03D +:1058800060E070E08A019B0104C0000F111F221F1D +:10589000331F8A95D2F7C901B8010E9417250E94CB +:1058A0005B2181E006C061E070E080E090E0F5CF30 +:1058B00080E01F910F91089580E0089580E00895A1 +:1058C000CF93C82F80918703813069F018F0823020 +:1058D000C9F184C0E0911F02F091200280818232E0 +:1058E00009F07EC007C0E0911F02F0912002808184 +:1058F000823261F48C2F0E945C2C811104C08C2FA9 +:105900000E94AF2B1DC081E090E01AC08C2F0E9436 +:105910005E2C811114C0C43179F048F4CB3079F099 +:10592000C03109F061C082E08093870308C0C932AA +:1059300019F0C83321F058C01092870355C081E098 +:10594000817054C0C93291F120F5C43179F1B0F4BD +:10595000C73009F047C08EE18093260282E380932E +:1059600025028AE08093240284E18093230288E068 +:105970008093220288E28093210234C0CE51C63047 +:1059800088F5EC2FF0E0E256FD4F8081809386038E +:1059900029C0CE34E9F020F4CB3421F56AE013C0FD +:1059A000C13579F0C235F1F461E00DC08091860314 +:1059B000882319F01092860315C081E08093870335 +:1059C00015C061E006C0809186030E94E92A0AC0E2 +:1059D0006AE0809186030E945F2B04C010928703C7 +:1059E00080E004C081E002C080E0AACFCF9108959A +:1059F0000E948A28811102C00E9466280E94AB285A +:105A00008093A20380FF02C0869501C080E00C94C1 +:105A1000F6058091A203982F9695292F30E0233028 +:105A200031054CF49F5F990F8170892B81608093C1 +:105A3000A2030E94AF288091A20386950C94F605DC +:105A40008091A203982F969591F09158990F8170AB +:105A5000892B8093A2038E7F91E009F490E08091DE +:105A6000A20390FB80F98093A2030E94AF2880914B +:105A7000A20386950C94F6058091A203982F909529 +:105A800090FB80F98093A2030E94AF288091A2032B +:105A900080FF02C0869501C080E00C94F6059091CD +:105AA000A203892F86958F5F8F779170843028F4B9 +:105AB000880F892B8093A20302C09093A203809148 +:105AC000A2038E7F91E009F490E08091A20390FB05 +:105AD00080F98093A2030E94AF288091A20386954B +:105AE0000C94F6052091A203922F96958927982F62 +:105AF000990F822F8170892B8093A2038E7F91E072 +:105B000009F490E08091A20390FB80F98093A203B6 +:105B10000E94AF288091A20386950C94F6055058F8 +:105B2000BB27AA270ED075C166D130F06BD120F00B +:105B300031F49F3F11F41EF45BC10EF4E095E7FBD6 +:105B400051C1E92F77D180F3BA1762077307840731 +:105B5000950718F071F49EF58FC10EF4E0950B2EA9 +:105B6000BA2FA02D0B01B90190010C01CA01A001AF +:105B70001124FF27591B99F0593F50F4503E68F10A +:105B80001A16F040A22F232F342F4427585FF3CF4B +:105B9000469537952795A795F0405395C9F77EF41C +:105BA0001F16BA0B620B730B840BBAF09150A1F065 +:105BB000FF0FBB1F661F771F881FC2F70EC0BA0FEB +:105BC000621F731F841F48F4879577956795B79573 +:105BD000F7959E3F08F0B3CF9395880F08F099276B +:105BE000EE0F979587950895D9D008F481E0089530 +:105BF0000CD00FC107D140F0FED030F021F45F3F50 +:105C000019F0F0C0511139C1F3C014D198F39923A0 +:105C1000C9F35523B1F3951B550BBB27AA27621770 +:105C20007307840738F09F5F5F4F220F331F441FB5 +:105C3000AA1FA9F333D00E2E3AF0E0E830D09150ED +:105C40005040E695001CCAF729D0FE2F27D0660FDA +:105C5000771F881FBB1F261737074807AB07B0E819 +:105C600009F0BB0B802DBF01FF2793585F4F2AF02F +:105C70009E3F510568F0B6C000C15F3FECF3983E0F +:105C8000DCF3869577956795B795F7959F5FC9F78C +:105C9000880F911D9695879597F90895E1E0660F15 +:105CA000771F881FBB1F621773078407BA0720F08E +:105CB000621B730B840BBA0BEE1F88F7E0950895F7 +:105CC00004D06894B111D9C00895BCD088F09F5712 +:105CD00090F0B92F9927B751A0F0D1F0660F771F38 +:105CE000881F991F1AF0BA95C9F712C0B13081F018 +:105CF000C3D0B1E00895C0C0672F782F8827B85F60 +:105D000039F0B93FCCF3869577956795B395D9F778 +:105D10003EF490958095709561957F4F8F4F9F4F82 +:105D20000895E89409C097FB3EF49095809570958E +:105D300061957F4F8F4F9F4F9923A9F0F92F96E9D7 +:105D4000BB279395F695879577956795B795F1114C +:105D5000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE9 +:105D60008F4F9F4F16C0882311F096E911C07723FB +:105D700021F09EE8872F762F05C0662371F096E804 +:105D8000862F70E060E02AF09A95660F771F881FD3 +:105D9000DAF7880F9695879597F90895990F000877 +:105DA000550FAA0BE0E8FEEF16161706E807F907ED +:105DB000C0F012161306E407F50798F0621B730B88 +:105DC000840B950B39F40A2661F0232B242B252B09 +:105DD00021F408950A2609F4A140A6958FEF811DAC +:105DE000811D089597F99F6780E870E060E008954D +:105DF0009FEF80EC089500240A94161617061806E3 +:105E00000906089500240A941216130614060506BE +:105E10000895092E0394000C11F4882352F0BB0F4F +:105E200040F4BF2B11F460FF04C06F5F7F4F8F4FB2 +:105E30009F4F089557FD9058440F551F59F05F3FED +:105E400071F04795880F97FB991F61F09F3F79F09C +:105E500087950895121613061406551FF2CF46951E +:105E6000F1DF08C0161617061806991FF1CF8695A0 +:105E70007105610508940895E894BB276627772784 +:105E8000CB0197F908958ADF08F48FEF08950BD0BE +:105E9000C0CFB1DF28F0B6DF18F0952309F0A2CF0C +:105EA000A7CF1124EACFC6DFA0F3959FD1F3950FBA +:105EB00050E0551F629FF001729FBB27F00DB11D8E +:105EC000639FAA27F00DB11DAA1F649F6627B00D1E +:105ED000A11D661F829F2227B00DA11D621F739F07 +:105EE000B00DA11D621F839FA00D611D221F749F15 +:105EF0003327A00D611D231F849F600D211D822F5C +:105F0000762F6A2F11249F5750408AF0E1F08823A2 +:105F10004AF0EE0FFF1FBB1F661F771F881F9150AF +:105F20005040A9F79E3F510570F05CCFA6CF5F3F70 +:105F3000ECF3983EDCF3869577956795B795F795E2 +:105F4000E7959F5FC1F7FE2B880F911D969587956A +:105F500097F90895FA01EE0FFF1F309621053105DC +:105F600099F16115710561F48038BFE39B0749F130 +:105F700068949038810561F08038BFEF9B0741F04D +:105F8000992342F5FF3FE1053105210511F1E89420 +:105F90000894E795D901AA2329F4AB2FBE2FF85F07 +:105FA000D0F310C0FF5F70F4A695E0F7F73950F01A +:105FB00019F0FF3A38F49F779F930CD00F9007FCAD +:105FC000905808953EF014CF60E070E080E89FE3C1 +:105FD00008954FE79F775F934F933F932F939ED002 +:105FE0002F913F914F915F9152DF05C019F40EF050 +:105FF000F9CE42CFFDCE26DFC8F39638C0F707F8BA +:106000000F92E8942BE33AEA48EB5FE74EDF0F92FA +:106010000F920F924DB75EB70F92C0D0E0E4F1E05F +:1060200016D04F915F91EF91FF91E595EE1FFF1F05 +:1060300049F0FE57E0684427EE0F441FFA95E1F758 +:106040004195550B32D00F9007FE26C00895DF937F +:10605000CF931F930F93FF92EF92DF927B018C01FE +:10606000689405C0DA2EEF011EDFFE01E894A591C9 +:106070002591359145915591AEF3EF0162DDFE0119 +:106080009701A801DA9479F7DF90EF90FF900F91D4 +:106090001F91CF91DF9108959B01AC0160E070E00A +:1060A00080E89FE3A5CD9ECEACC0CCDEE8F399237B +:1060B000D9F3940F511DBBF39150504094F059F017 +:1060C000882332F0660F771F881F91505040C1F728 +:1060D0009E3F510544F7880F911D9695879597F936 +:1060E00008955F3FACF0983E9CF0BB27869577956E +:1060F0006795B79508F4B1609395C1F7BB0F58F752 +:1061000011F460FFE8CF6F5F7F4F8F4F9F4FE3CF5A +:10611000B4CE0EF076C06CCE689464CE93DEC8F335 +:106120009923D1F3C6F3DF93CF931F930F93FF927D +:10613000C92FDD2788232AF02197660F771F881F34 +:10614000DAF720E030E040E85FEB9FE3883920F0A9 +:10615000803E30F021968F77E3DCE8E6F1E003C083 +:10616000DFDCE5E9F1E073DF8B01BE01EC01FB2E22 +:106170006F5771097595771F880B990BD4DD28E14E +:1061800032E741E35FE38FDEAF2D9801AE01FF9070 +:106190000F911F91CF91DF91D4DC3BCEFA01DC014E +:1061A000AA0FBB1F9B01AC01BF5728F4222733273E +:1061B000442750781FC0B75188F4AB2F0024469570 +:1061C00037952795011CA395D2F3002069F0220F83 +:1061D000331F441FB395DAF30DD0A1CC61307105A4 +:1061E000A0E88A07B94630F49B01AC0166277727FF +:1061F00088279078309621F020833183428353831F +:1062000008959F3F31F0915020F4879577956795D9 +:10621000B795880F911D9695879597F90895AA1BB4 +:10622000BB1B51E107C0AA1FBB1FA617B70710F081 +:10623000A61BB70B881F991F5A95A9F780959095B3 +:10624000BC01CD01089597FB072E16F4009407D0EA +:1062500077FD09D00E940F3107FC05D03EF49095E0 +:1062600081959F4F0895709561957F4F0895EE0F2A +:10627000FF1F0590F491E02D0994F999FECF92BD8E +:1062800081BDF89A992780B50895A8E1B0E042E071 +:1062900050E00C946531262FF999FECF92BD81BD57 +:1062A000F89A019700B4021639F01FBA20BD0FB654 +:1062B000F894FA9AF99A0FBE08950196272F0E9432 +:1062C0004C310C944B31DC01CB01FC01F999FECF30 +:1062D00006C0F2BDE1BDF89A319600B40D9241506E +:0A62E0005040B8F70895F894FFCF7E +:1062EA0007000C52D02445000000410000DC4400A5 +:1062FA0000004152D0A4440000404100005C440028 +:10630A0000004148F17644000000415C978A44004D +:10631A000000411FD592440000004152D0A444001D +:10632A000000415CFFB844000000410AA7CF4400C6 +:10633A000000410000DC44000000410AA7CF4400ED +:10634A000000410000DC44000000410000000000A1 +:10635A0000804052D0244500004041000000000067 +:10636A000080400AA74F45000040410AA7CF4400D9 +:10637A000000410000DC4400000041000000000071 +:10638A0000804052D0244500000041000000000077 +:10639A000080405CFF38450000004100000000001A +:1063AA0000804052D02445000000410AA7CF440093 +:1063BA000000410000DC4400000041000000000031 +:1063CA0000804052D024450000804110F1764400FC +:1063DA0000A04112F1F6440000004141909B4400A4 +:1063EA0000A04112F1F64400000041050000003F00 +:1063FA000000C8426A14F814D514A1146D14016C73 +:10640A00032808140A321E000002000400050007CF +:10641A000009000B000C000E0010001100130015FB +:10642A0000170018001A001C001D001F002100237D +:10643A000024002600280029002B002D002F003000 +:10644A0000320034003500370039003B0042004575 +:10645A000025002600430061006000200037006428 +:10646A000065006600670044004600240047003FBC +:10647A004D36010BB40A7E0A2A0A430A5C0A010253 +:08648A000304050607080900E0 +:00000001FF -- cgit v1.2.3 From 6274a216f87bad7d6fe9c9a1a4328dbf444fc364 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 26 Apr 2016 05:25:31 +0300 Subject: [Erez & Jack] Examples for advanced macro stuff --- README.md | 99 +- .../erez_experimental/erez_experimental.hex | 2156 ++++++++++---------- .../ergodox_ez/keymaps/erez_experimental/keymap.c | 45 +- 3 files changed, 1230 insertions(+), 1070 deletions(-) (limited to 'keyboard') diff --git a/README.md b/README.md index f5c271f16..749c97c8f 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,23 @@ This will clear all keys besides the mods currently pressed. 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](/keyboard/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: @@ -227,11 +244,91 @@ if (timer_elapsed(key_timer) < 100) { It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). +#### Example 1: 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. + +#### Example 2: Space Cadet Shift (making it easy to send opening and closing parentheses) + +In the [Modern Space Cadet Keyboard](http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses), one of cooler features is the Shift Parentheses. To quote Steve Losh: + + > When held while pressing other keys, act like Shift. + > When pressed and released on their own, type an opening or closing parenthesis (left and right shift respectively). + +``` +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. + register_code(KC_LSFT); // we're now holding down Shift. + } 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. + register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren + unregister_code(KC_9); // now let's let go of that key + } + unregister_code(KC_LSFT); // let's release the Shift key now. + } + break; + } + case 1: { + if (record->event.pressed) { + key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key + register_code(KC_RSFT); + } else { + if (timer_elapsed(key_timer) < 150) { + register_code(KC_0); + unregister_code(KC_0); + } + unregister_code(KC_RSFT); + } + 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 left shift/opening parens, and `M(1)` for right shift/closing parens. + ## 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 + #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: diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex index aa0884565..3af7ddbb8 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex @@ -1,18 +1,18 @@ -:100000000C9465020C94AC020C94AC020C94AC02FF -:100010000C94AC020C94AC020C94AC020C94AC02A8 -:100020000C94AC020C94AC020C94C30B0C94950C85 -:100030000C94AC020C94AC020C94AC020C94AC0288 -:100040000C94AC020C9409210C94AC020C94AC02FC -:100050000C94AC020C949B1A0C94AC020C94AC0261 -:100060000C94AC020C94AC020C94AC020C94AC0258 -:100070000C94AC020C94AC020C94AC020C94AC0248 -:100080000C94AC020C94AC020C94AC020C94AC0238 -:100090000C94AC020C94AC020C94AC020C94AC0228 -:1000A0000C94AC020C94AC020C94AC02020D240D26 -:1000B000170E240D170E690D8C0D170EE10DF40DA2 -:1000C000DE10DE100D110D1150118A1197139713C8 -:1000D000A3119713981298126B1397139713821307 -:1000E0000000F0A12E004C002A00E1003581000044 +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94A30C0C94750DC9 +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C9448220C94A9020C94A902C5 +:100050000C94A9020C94EC1B0C94A9020C94A90218 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902DA0DFC0D7F +:1000B000E70EFC0DE70E3E0E610EE70EB60EC90E02 +:1000C000C211C2110312031245128112811481144C +:1000D00099128114901390135B14811481146F147E +:1000E0000000F0A12E004C002A00003035810000F5 :1000F0001E00140004001D7134004D001F001A0082 :1001000016001B00E104C1002000080007000600E3 :1001100050002C0021001500090019004F004A0072 @@ -22,7 +22,7 @@ :10015000240018000D74100052004B0025000C0004 :100160000E00360051002800260012000F00370054 :100170002F002B81270013003382387130004E008E -:100180002D0031003478E500C100000001000100BD +:100180002D00310034780130C10000000100010071 :1001900001000100010000003A001E0022002602BA :1001A000010001003B001F002300270201000100A5 :1001B0003C00200024002F004B0101003D002100E5 @@ -75,1047 +75,1085 @@ :1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 :1004B000B39D87715D4A3A2C20170F0A060402018A :1004C0000000000000000000000011241FBECFEF5C -:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 -:1004E0009091EE01A091EF01B091F0018730904B17 -:1004F000A740B04BD1F41092ED011092EE01109292 -:10050000EF011092F00114BE84B7877F84BF0FB64D -:10051000F894A895809160008861809360001092A3 -:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C -:10053000E4EBF5E402C005900D92A433B107D9F7BE -:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 -:100550000E940A090C94D8220C94000061110BC06F -:10056000FC018281882321F085EE0E94780F03C070 -:1005700085EE0E94401080E090E00895089560911B -:10058000B1017091B2018091B3019091B4010E94C8 -:10059000C81956985E9825982D9826982E982798D1 -:1005A0002F98813019F0823021F00895259A2D9AE4 -:1005B0000895269A2E9A08950C94BF0256985E9834 -:1005C00025982D9826982E9827982F988FEF90E0B1 -:1005D000909389008093880090938B0080938A0089 -:1005E00090938D0080938C00259A2D9A2FEF80E7B1 -:1005F00092E0215080409040E1F700C00000269A30 -:100600002E9A2FEF80E792E0215080409040E1F752 -:1006100000C00000279A2F9A2FEF80E792E0215028 -:1006200080409040E1F700C0000025982D982FEF02 -:1006300080E792E0215080409040E1F700C0000048 -:1006400026982E982FEF80E792E02150804090402E -:10065000E1F700C0000027982F9856985E982598DB -:100660002D9826982E9827982F98089589EA809398 -:10067000800089E08093810024982C983F988AB16B -:100680008F748AB96E98479A8BB1806B8BB9769AC2 -:100690000E94DE020C94BE0280E2809300018091F1 -:1006A000340181110EC00E949B0381E080933401CC -:1006B0002FEF83ED90E3215080409040E1F700C0A0 -:1006C000000080E40E94A1038093000181112EC0EC -:1006D0000E94CB0380930001811128C00E94CB03AC -:1006E00080930001811122C08FE30E94CB0380938D -:1006F000000181111BC00E94C30380E40E94A1037A -:1007000080930001811112C08CE00E94CB03809382 -:10071000000181110BC00E94CB0380930001811165 -:1007200005C08FE30E94CB03809300010E94C303A6 -:100730008091000108951092B9008AE08093B8007A -:10074000089594EA9093BC009091BC0097FFFCCF71 -:100750009091B900987F983021F0903111F081E0AC -:1007600008958093BB0084E88093BC008091BC0016 -:1007700087FFFCCF8091B900887F883111F08034E9 -:1007800071F780E0089584E98093BC008091BC00FB -:1007900084FDFCCF08958093BB0084E88093BC0067 -:1007A0008091BC0087FFFCCF9091B900987F81E0D9 -:1007B000983209F480E0089584E88093BC00809129 -:1007C000BC0087FFFCCF8091BB00089580910001A1 -:1007D000811115C080E40E94A10380930001811162 -:1007E0000CC082E10E94CB0380930001811105C0FF -:1007F0008FEF0E94CB03809300010E94C30384B15A -:10080000807F84B985B1807F85B98AB1837F8AB9B9 -:100810008BB1837F8BB93E98469808950E944C0314 -:10082000809300010E94E60380B38C7080BB81B38B -:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 -:1008400081E0E235F807D1F70C9436039F92AF921E -:10085000BF92CF92DF92EF92FF920F931F93CF93AD -:10086000DF9380910001882379F0809135018F5FBB -:1008700080933501811108C00E944C0380930001D0 -:10088000811102C00E94DE0286E3E82E81E0F82E8C -:100890008701C0E0D0E0BB24B39492E0A92ECC2421 -:1008A000C394D12CC730D10500F58091000181118E -:1008B00064C080E40E94A10380930001811112C0F2 -:1008C00082E10E94CB038093000181110BC0C6011D -:1008D0000C2E01C0880F0A94EAF780950E94CB0382 -:1008E000809300010E94C30348C0CA30A1F028F4DD -:1008F000C83059F0C93061F005C0CC3089F070F0D3 -:10090000CD3089F0209A289810C0219A29980DC0DE -:10091000229A2A980AC0239A2B9807C0529A01C09B -:10092000539A5B9802C03E9A4698E0EAEA95F1F73E -:100930008FB181708B25799902C032E001C030E01F -:10094000832B7C9902C034E001C030E0832B7D9979 -:1009500002C028E001C020E0822B7E9902C090E115 -:1009600001C090E0892B9FB19095991F9927991FFD -:100970009295990F907E892B0FC080910001811173 -:100980004AC080E40E94A10380930001882381F182 -:10099000912C0E94C303892DD8019C91981719F0BE -:1009A0008C93A09201010E94E60321960F5F1F4FD6 -:1009B000CE30D10509F076CF80910101882369F10D -:1009C000815080930101882339F0EFE9FFE03197EE -:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF -:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 -:1009F00083E10E94CB03809300018111C9CF81E480 -:100A00000E94A103809300018111C2CF0E94DC03E8 -:100A1000982E9094BECF80E0BFCF0E94DC0281E090 -:100A2000DF91CF911F910F91FF90EF90DF90CF90CA -:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 -:100A40008081089508958B3B910580F4883A910543 -:100A500048F5853A9105D8F48430910508F0B2C084 -:100A6000019709F06EC081E090E00895803E910505 -:100A700008F467C0883E910508F4A4C09C01205F7B -:100A800031092031310508F05CC090650895853A40 -:100A9000910509F459C0863A910509F058C082E8D9 -:100AA00090E40895883A910509F454C0893A910573 -:100AB00009F453C08A3A910509F452C08B3A910562 -:100AC00009F451C08C3A910509F450C08D3A910552 -:100AD00009F44FC0803B910509F44EC08E3A910550 -:100AE00009F44DC08F3A910509F44CC0813B910542 -:100AF00009F44BC0823B910509F44AC0833B910540 -:100B000009F449C0843B910509F448C0853B91052F -:100B100009F447C0863B910509F446C0873B91051F -:100B200009F445C0883B910509F444C0893B91050F -:100B300009F443C08A3B910509F442C080E094E483 -:100B4000089580E090E0089581E890E4089583E8B6 -:100B500090E4089582EE94E4089589EE94E4089573 -:100B60008AEE94E4089585EB94E4089586EB94E48A -:100B7000089587EB94E408958CEC94E408958DEC4B -:100B800094E4089583E895E408958AE895E4089547 -:100B900082E995E4089584E995E4089581E296E474 -:100BA000089583E296E4089584E296E4089585E248 -:100BB00096E4089586E296E4089587E296E408951F -:100BC0008AE296E40895089524E5829FC0011124E5 -:100BD000FC0126E0729FE00DF11D1124E60FF11DCE -:100BE000EE0FFF1FEC51FF4F859194910895880FF0 -:100BF000991FFC01E05AF040859194910895880F67 -:100C0000991FFC01E052FF4F85919491089524E5CE -:100C1000829FC0011124FC0146E0749FE00DF11D8C -:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 -:100C300094919C013A9521154FE1340708F425C1A0 -:100C40003F512115304120F49F700E94FF05089507 -:100C50009C0130532115304118F49927906C089568 -:100C6000811520E5920769F40E94B9134FEF84E3E0 -:100C70009CE0415080409040E1F700C000000C949F -:100C8000C01A813020E5920731F48091CC01816057 -:100C90008093CC0108959C0130552115304108F016 -:100CA0005CC0292F33272F70332721303105E9F419 -:100CB000AC0164E0440F551F6A95E1F74427537077 -:100CC000BC016370772702C0220F331F6A95E2F7D9 -:100CD0003C68242B352B73E0880F991F7A95E1F738 -:100CE00080769927822B932B08952230310529F4A1 -:100CF000982F8827816F906A089523303105A1F4D9 -:100D0000AC0133E0440F551F3A95E1F7407E577030 -:100D10008370992721E030E002C0220F331F8A95AB -:100D2000E2F7C9019C6816C02430310531F5AC01E9 -:100D300023E0440F551F2A95E1F7407E57708370DA -:100D4000992721E030E002C0220F331F8A95E2F795 -:100D5000C9019A68842B952B08959C013057211561 -:100D6000304118F49F70906208959C01305821150D -:100D7000304118F49F70906A0895803E9105E0F428 -:100D8000803C910558F58133910509F46FC048F412 -:100D90008932910509F463C08A32910509F46DC066 -:100DA00072C089339105E9F082389105D1F085331D -:100DB000910509F44DC067C0833E910581F138F477 -:100DC000803E9105B9F0823E9105D9F05CC0863E27 -:100DD000910561F1873E9105A1F155C00E94F7058B -:100DE00008952091DE0120FD02C021FF4CC080EE5D -:100DF00090E049C08091DE0180FFF9CF89E390E067 -:100E000042C08091DE0182FF0EC08091DE0184FF2E -:100E100003C080E090E037C083EE90E034C0809162 -:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 -:100E300083FF0BC08091DE0184FDEBCF87EE90E055 -:100E400022C08091DE0183FFF5CF86EE90E01BC0CB -:100E50008091DE0185FF07C089E290E014C0809197 -:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 -:100E700086FF07C08AE290E006C08091DE0186FF0F -:100E8000F9CF81E390E00E942305089508958091B1 -:100E900062010895CF93DF9300D01F92CDB7DEB7E4 -:100EA0009C018091E401843019F593E099833B83A0 -:100EB0002A839093E9008FEF9091E800815095FD8F -:100EC00006C095ED9A95F1F700008111F5CF80915C -:100ED000E80085FF0DC040E050E063E070E0CE0127 -:100EE00001960E94B7098091E8008E778093E80010 -:100EF0000F900F900F90DF91CF910895CF93DF93D4 -:100F000000D01F92CDB7DEB72091E401243021F547 -:100F100022E029839B838A8383E08093E9008FEF1B -:100F20009091E800815095FD06C095ED9A95F1F7F6 -:100F300000008111F5CF8091E80085FF0DC040E0F1 -:100F400050E063E070E0CE0101960E94B709809105 -:100F5000E8008E778093E8000F900F900F90DF915C -:100F6000CF9108959C018091E4018430F9F482E0EE -:100F70008093E9009FEF8091E800915085FD06C0C5 -:100F800085ED8A95F1F700009111F5CF8091E80089 -:100F900085FF0CC040E050E065E070E0C9010E94B0 -:100FA000B7098091E8008E778093E8000895CF9389 -:100FB000DF93EC018091E401843009F046C0909108 -:100FC0000C019923D9F090910D019923B9F08093E8 -:100FD000E9008FEF9091E800815095FD06C095E102 -:100FE0009A95F1F700008111F5CF8091E80085FF17 -:100FF0002CC040E050E060E170E017C081E08093D9 -:10100000E9008FEF9091E800815095FD06C095EDC5 -:101010009A95F1F700008111F5CF8091E80085FFE6 -:1010200014C040E050E068E070E0CE010E94B709D3 -:101030008091E8008E778093E80080E1FE01A2E5D0 -:10104000B1E001900D928A95E1F7DF91CF9108957B -:101050008091E301811109C00E94480B0E94A50BF9 -:101060008091E20084608093E20008951092E30191 -:10107000089508950C94F6200E94561A0E94FC20B0 -:101080000E94500E0C94460742E061EC81E00E9401 -:10109000C10A42E061EC82E00E94C10A42E061ECD8 -:1010A00083E00E94C10A42E161EC84E00C94C10A31 -:1010B0008091E601833009F455C030F4813071F03D -:1010C000823009F48EC008958A3009F47AC08B30DA -:1010D00009F460C0893009F09CC020C08091E5010E -:1010E000813A09F096C08091E800877F8093E800FC -:1010F0008091E9019091EA01892B21F460E182E578 -:1011000091E003C060E080E090E070E00E94020A9D -:101110008091E8008B778093E80008958091E50145 -:10112000813209F076C08091E9019091EA0100973F -:1011300019F0039709F06DC08091E800877F8093D4 -:10114000E8008091E80082FD05C08091E4018111F2 -:10115000F8CF5FC08091F100809362018091E80038 -:101160008B7753C08091E501813A09F052C080919C -:10117000E9019091EA01892B09F04BC08091E800C8 -:10118000877F8093E8008091E80080FFFCCF80910A -:101190000C0136C08091E5018132D9F58091E901D9 -:1011A0009091EA01892BA9F58091E800877F8093CF -:1011B000E8000E94F60A8091E70180930C010C94EC -:1011C000B9138091E501813221F58091E800877F94 -:1011D0008093E8000E94F60A8091E8018093630101 -:1011E00008958091E501813AA1F48091E800877F1C -:1011F0008093E8008091E80080FFFCCF809163013C -:101200008093F1008091E8008E778093E8000C9441 -:10121000F60A089584B7877F84BF0FB6F894A8951F -:1012200080916000886180936000109260000FBE22 -:1012300090E080E80FB6F89480936100909361008D -:101240000FBE0E949F0E0E94480B0E94A50B80912A -:10125000E20084608093E20078940E94300E0E9445 -:10126000A10E82E091E00E944B0E0E94E42080914A -:10127000E401853069F40E94181A8091E201882304 -:10128000B1F30E94421A882391F30E94A109EFCF83 -:101290000E94A70EECCF292F332723303105C9F048 -:1012A00060F42130310581F02230310509F041C070 -:1012B0008DE690E020E133E040C021323105E1F0DD -:1012C0002232310531F135C082E190E02DE733E083 -:1012D00034C099278130910549F028F0029749F5EB -:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 -:1012F000849190E09F0121C06430D8F4E62FF0E0A3 -:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE -:1013100014C0643070F470E0FB01EE0FFF1FE65E56 -:10132000FE4F20813181FB01EA5EFE4F808190E01B -:1013300004C080E090E020E030E0FA0131832083B7 -:10134000089580E189BD82E189BD09B400FEFDCF29 -:101350008091D8008F7D8093D8008091E0008260DA -:101360008093E0008091E00081FDFCCF0895CF9252 -:10137000DF92EF92FF920F931F93CF93DF93EC01D5 -:101380008B016A010E94150B811133C0C114D10475 -:1013900039F0F60180819181081B190BC80FD91F04 -:1013A000E12CF12C0115110519F18091E80085FD62 -:1013B00016C08091E8008E778093E800C114D104B4 -:1013C00049F0F60180819181E80EF91EF182E082F8 -:1013D00085E00FC00E94150B882321F30AC0899174 -:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 -:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 -:10140000CF9008952091EB013091EC01261737071A -:1014100048F06115710539F42091E8002E7720938A -:10142000E80001C0B901FC0120E06115710579F106 -:101430008091E4018823F1F18530F1F18091E80099 -:1014400083FD3CC08091E80082FD2EC08091E800C1 -:1014500080FFEBCF2091F3008091F20090E0922B7F -:101460006115710551F08830910538F42191209370 -:10147000F100615071090196F3CF21E0089709F05E -:1014800020E08091E8008E778093E800CECF211194 -:10149000CFCF0AC08091E401882361F0853061F0EC -:1014A0008091E80083FD0AC08091E80082FFF2CFBE -:1014B00080E0089582E0089583E0089581E0089532 -:1014C0002091EB013091EC012617370748F06115A8 -:1014D000710539F42091E8002E772093E80001C0CF -:1014E000B901FC0120E06115710591F18091E401E1 -:1014F000882309F440C0853009F43FC08091E8009A -:1015000083FD3DC08091E80082FD2FC08091E800FE -:1015100080FFE9CF2091F3008091F20090E0922BC0 -:101520006115710559F08830910540F4249120939C -:10153000F1003196615071090196F2CF21E00897D0 -:1015400009F020E08091E8008E778093E800CBCF0F -:101550002111CCCF0AC08091E401882361F085304D -:1015600061F08091E80083FD0AC08091E80082FF6D -:10157000F2CF80E0089582E0089583E0089581E04D -:101580000895982F973068F59093E900981739F0EF -:101590007091EC002091ED005091F00003C0242FD9 -:1015A000762F50E021FD02C09F5FECCF3091EB0021 -:1015B0003E7F3093EB003091ED003D7F3093ED00A6 -:1015C0003091EB0031603093EB007093EC0020938E -:1015D000ED005093F0002091EE0027FDE5CF80E074 -:1015E00008958F708093E90081E008958091E5016E -:1015F00087FF11C08091E80082FD05C08091E40161 -:101600008111F8CF11C08091E8008B770BC08091D9 -:10161000E401882349F08091E80080FFF8CF8091B1 -:10162000E8008E778093E80008952091E4003091DF -:10163000E50095E64091EC00842F817040FF23C0C7 -:101640008091E80080FD1DC08091E401882399F01D -:10165000853099F08091EB0085FD11C04091E40048 -:101660005091E5002417350729F3915011F09A01A4 -:10167000E1CF84E0089582E0089583E0089581E059 -:10168000089580E008954091E80042FFDDCF08957D -:101690000E94B60B0E94BE0BE0EEF0E080818160FC -:1016A0008083E8EDF0E080818F77808319BCA7ED1F -:1016B000B0E08C918E7F8C9380818F7E808310929E -:1016C000E30108950F931F93CF93DF930E94B60B0E -:1016D0000E94BE0BC8EDD0E088818F778883888117 -:1016E0008068888388818F7D888319BC1092E4018B -:1016F0001092E0011092E2011092E10100EE10E080 -:10170000F80180818B7F808388818160888342E0BB -:1017100060E080E00E94C10AE1EEF0E080818E7F0F -:101720008083E2EEF0E08081816080838081886048 -:101730008083F80180818E7F8083888180618883A7 -:10174000DF91CF911F910F910895E8EDF0E0808136 -:101750008F7E8083E7EDF0E080818160808384E08C -:1017600082BF81E08093E3010C94620BE8EDF0E02E -:1017700080818E7F80831092E20008951092DA00BB -:101780001092E10008951F920F920FB60F9211244C -:101790002F933F934F935F936F937F938F939F9379 -:1017A000AF93BF93EF93FF938091E10082FF0BC053 -:1017B0008091E20082FF07C08091E1008B7F8093DF -:1017C000E1000E942F0E8091DA0080FF1FC08091FF -:1017D000D80080FF1BC08091DA008E7F8093DA00F2 -:1017E0008091D90080FF0DC080E189BD82E189BD73 -:1017F00009B400FEFDCF81E08093E4010E94280837 -:1018000005C019BC1092E4010E9436088091E100E5 -:1018100080FF19C08091E20080FF15C08091E20036 -:101820008E7F8093E2008091E20080618093E200ED -:101830008091D80080628093D80019BC85E08093A5 -:10184000E4010E943A088091E10084FF30C0809159 -:10185000E20084FF2CC080E189BD82E189BD09B42A -:1018600000FEFDCF8091D8008F7D8093D8008091BD -:10187000E1008F7E8093E1008091E2008F7E809373 -:10188000E2008091E20081608093E2008091E001BB -:10189000882311F084E007C08091E30087FD02C037 -:1018A00081E001C083E08093E4010E943C088091C4 -:1018B000E10083FF29C08091E20083FF25C0809171 -:1018C000E100877F8093E10082E08093E401109241 -:1018D000E0018091E1008E7F8093E1008091E20041 -:1018E0008E7F8093E2008091E20080618093E2002D -:1018F00042E060E080E00E94C10A8091F0008860D0 -:101900008093F0000E943908FF91EF91BF91AF9151 -:101910009F918F917F916F915F914F913F912F9107 -:101920000F900FBE0F901F9018951F920F920FB639 -:101930000F9211242F933F934F935F936F937F9355 -:101940008F939F93AF93BF93CF93DF93EF93FF93C7 -:10195000C091E900CF708091EC00D82FD17080FD4C -:10196000D0E81092E9008091F000877F8093F0002A -:1019700078940E94D90C1092E9008091F000886060 -:101980008093F000CD2BCF70C093E900FF91EF91D1 -:10199000DF91CF91BF91AF919F918F917F916F9187 -:1019A0005F914F913F912F910F900FBE0F901F901D -:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 -:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF -:1019D000819321E0ED3EF207C9F70E9458088091FB -:1019E000E80083FF24C18091E5019091E601492F31 -:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 -:101A00000C948D22803881F0823809F010C18091C9 -:101A1000E9018F708093E9008091EB0085FB8827B6 -:101A200080F91092E90006C08091E1019091E201F5 -:101A3000911182609091E800977F9093E8008093E5 -:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF -:101A5000882319F0823061F0EAC08091E70181307B -:101A600009F0E5C0933009F080E08093E2012BC0DB -:101A70008091E701811127C08091E9018F7009F4FD -:101A8000D6C08093E9002091EB0020FF1CC093306A -:101A900021F48091EB00806214C09091EB00906182 -:101AA0009093EB0021E030E0A90102C0440F551FE4 -:101AB0008A95E2F74093EA001092EA008091EB00E9 -:101AC00088608093EB001092E9008091E800877FA6 -:101AD00086C08111ACC01091E7011F778091E300AF -:101AE0008078812B8093E3008091E800877F80934A -:101AF000E8000E94F60A8091E80080FFFCCF809108 -:101B0000E30080688093E300111102C082E001C00D -:101B100083E08093E4018BC08058823008F087C056 -:101B20008091E7019091E8018C3D53E0950779F5AC -:101B300083E08A838AE289834FB7F894DE011396A3 -:101B400020E03EE051E2E32FF0E050935700E491B3 -:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 -:101B6000EA3010F0C79601C0C0968D939D932F5F09 -:101B7000243149F74FBF8091E800877F8093E800C8 -:101B80006AE270E0CE0101960E94020A14C0AE0122 -:101B90004F5F5F4F6091E9010E944B09BC01892BA7 -:101BA00009F445C09091E800977F9093E8008981FF -:101BB0009A810E94600A8091E8008B778093E80008 -:101BC00036C08038A1F58091E800877F8093E800D7 -:101BD0008091E0018093F1008091E8008E778093FE -:101BE000E8000E94F60A23C0811121C08091E7011C -:101BF0009091E80199270297D4F48091E800877FBB -:101C00008093E8008091E7018093E0010E94F60A4A -:101C10008091E001811106C08091E30087FD02C040 -:101C200081E001C084E08093E4010E944408809137 -:101C3000E80083FF0AC08091E800877F8093E80076 -:101C40008091EB0080628093EB00AA960FB6F89427 -:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 -:101C6000CF938091E4018823A1F0C091E900CF7067 -:101C70009091EC00892F817090FD80E8C82B109224 -:101C8000E9008091E80083FD0E94D90CCF70C093D9 -:101C9000E900CF91089590936901809368010895B8 -:101CA000E0916801F0916901309721F00190F08195 -:101CB000E02D099480E00895E0916801F0916901B8 -:101CC000309721F00280F381E02D09940895E0918E -:101CD0006801F0916901309721F00480F581E02DD1 -:101CE00009940895209166013091670128173907FA -:101CF00071F09093670180936601E0916801F09123 -:101D00006901309721F00680F781E02D099408954C -:101D100020916401309165012817390771F0909383 -:101D2000650180936401E0916801F0916901309749 -:101D300021F00084F185E02D0994089508950C9414 -:101D40009E0E0E945C1A0E940E040C94221BCF92DD -:101D5000DF92EF92FF920F931F93CF93DF93CDB754 -:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 -:101D700026048BE6C82E81E0D82E00E010E0E02E8D -:101D8000802F0E941C05F60141916F01F82EF42668 -:101D9000B1F40F5F1F4F0E30110589F78FEF898364 -:101DA0008A831B820E94651A8160782F9D838C83B1 -:101DB00049815A816B818D810E944A0F40C0909168 -:101DC000CC0191FF04C08B870E9422058B8520E007 -:101DD00030E04F2D50E0922FBA01022E02C07595CF -:101DE00067950A94E2F760FF24C02E83EF8221E01A -:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E -:101E00008C219D21892B09F420E028870E94651AE6 -:101E10008160782F9A8789874E815F8168858A855E -:101E20000E944A0FF801E559FE4F8081C826C08202 -:101E300006C02F5F3F4F2630310569F6AACF0E94BA -:101E4000091E0E94500E90916A018917A1F00E940C -:101E5000500E80936A012B960FB6F894DEBF0FBE2A -:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 -:101E7000CF900C9446072B960FB6F894DEBF0FBE9A -:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 -:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 -:101EA000F894DEBF0FBECDBF4F83588769877A870E -:101EB0008B87DE01119686E0FD0111928A95E9F784 -:101EC00085E0FE01379601900D928A95E1F74981F0 -:101ED0005A816B817C818D819E810E944D162B964B -:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E -:101EF000CF93C82F882309F4C1C0823859F40E94B7 -:101F0000500E81FDBBC089E30E94EA180E94A2190D -:101F100089E30CC0833879F40E94500E80FDAEC076 -:101F200083E50E94EA180E94A21983E50E942919FC -:101F3000CF910C94A219843859F40E94500E82FD5E -:101F40009DC087E40E94EA180E94A21987E4EECFA0 -:101F50008CEF8C0F813A48F48C2F0E94492081111C -:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E -:101F700048F4C77081E001C0880FCA95EAF70E9453 -:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 -:101F9000C63A31F083E890E005C081E890E002C0E5 -:101FA00082E890E0CF910C94720E88E58C0F83311B -:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 -:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC -:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F -:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB -:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B -:1020000080E090E038C082EE90E035C089EE90E04C -:1020100032C08AEE90E02FC085EB90E02CC086EBBA -:1020200090E029C087EB90E026C08CEC90E023C0C4 -:102030008DEC90E020C083E891E01DC08AE891E03B -:102040001AC082E991E017C084E991E014C081E2EE -:1020500092E011C083E292E00EC084E292E00BC0F5 -:1020600085E292E008C086E292E005C087E292E055 -:1020700002C08AE292E0CF910C94880ECF9108952D -:10208000882309F44BC0823859F40E94500E81FF16 -:1020900045C089E30E94EA180E94A21989E30CC096 -:1020A000833871F40E94500E80FF38C083E50E948F -:1020B000EA180E94A21983E50E9429190C94A2191A -:1020C000843859F40E94500E82FF28C087E40E9491 -:1020D000EA180E94A21987E4EFCF9CEF980F913A7B -:1020E00058F390E2980F983050F4877091E001C057 -:1020F000990F8A95EAF7892F0E947119DFCF9BE526 -:10210000980F933020F480E090E00C94720E885A7F -:10211000833120F480E090E00C94880E08958823A9 -:1021200021F00E946B190C94A2190895882321F0C4 -:102130000E9471190C94A2190895BF92CF92DF9258 -:10214000EF92FF920F931F93CF93DF9300D000D0B5 -:1021500000D0CDB7DEB77C0185E0F701DE01119636 -:1021600001900D928A95E1F7F70183819481892B83 -:1021700009F4DDC2908181818F3F19F49F3F09F4FA -:10218000D6C2F7010281258122952F7099838A8317 -:1021900089819A812E830E94A918182FB92E0E9436 -:1021A000A8180E946F17EB2DE295EF704E2F50E0AC -:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 -:1021C0009B2D9F70F92E882319F0F29480EFF8224E -:1021D000002349F0FF2009F457C28F2D0E947B197C -:1021E0000E94A21951C2812F0E944010FF2009F4C1 -:1021F0009EC28F2D0E94811926960FB6F894DEBFDD -:102200000FBECDBFDF91CF911F910F91FF90EF9047 -:10221000DF90CF90BF900C94A2193B2D307F8B2D77 -:102220008F70303211F08295807F112319F01130B8 -:1022300021F12CC00023B9F0222309F490C12130F0 -:1022400009F08DC126960FB6F894DEBF0FBECDBF44 -:10225000DF91CF911F910F91FF90EF90DF90CF9082 -:10226000BF900C948B19222319F0213009F45FC21E -:102270008E830E948E198E8186C1002321F0223028 -:1022800008F055C26CC1211152C27DC1002321F05A -:10229000222309F464C1F8C1222309F474C109C2DC -:1022A0008B2D86958695837019F08130D1F03FC2D1 -:1022B000002321F0812F9B2D937002C080E090E0DD -:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B -:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 -:1022E000720E002321F0812F9B2D937002C080E09D -:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB -:10230000CF911F910F91FF90EF90DF90CF90BF90F2 -:102310000C94880E812F002319F00E94111D02C019 -:102320000E94791D26960FB6F894DEBF0FBECDBF72 -:10233000DF91CF911F910F91FF90EF90DF90CF90A1 -:10234000BF900C94FE1D8B2D837009F075C0011198 -:10235000EEC1812F829586958770880F880F912F07 -:102360009F70C92ED12CE12CF12C082E04C0CC0C6E -:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 -:1023800010E020E030E004C0000F111F221F331FB7 -:102390008A95D2F7C901B80160957095809590959E -:1023A00003C060E070E0CB014B2D4695469543702D -:1023B0004230C1F060F56C297D298E299F2941307A -:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 -:1023D000CF911F910F91FF90EF90DF90CF90BF9022 -:1023E0000C9496176C297D298E299F2926960FB665 -:1023F000F894DEBF0FBECDBFDF91CF911F910F913B -:10240000FF90EF90DF90CF90BF900C94B2170E9496 -:102410009617C701B60126960FB6F894DEBF0FBE19 -:10242000CDBFDF91CF911F910F91FF90EF90DF9083 -:10243000CF90BF900C947A17002319F08B2D8170E8 -:1024400001C08695882309F472C1812F82958695F3 -:102450008770880F880F912F9F70C92ED12CE12C87 -:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 -:10247000D2F714FF12C00FE010E020E030E004C0FB -:10248000000F111F221F331F8A95D2F7C901B8010F -:10249000609570958095909503C060E070E0CB01E9 -:1024A0004B2D4695469543704230C1F060F56C293E -:1024B0007D298E299F29413051F126960FB6F89437 -:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 -:1024D000EF90DF90CF90BF900C9470186C297D29FD -:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A -:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 -:10250000BF900C948C180E947018C701B6012696D3 -:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 -:102520000F91FF90EF90DF90CF90BF900C945418D4 -:10253000103FD1F118F4103E50F4A1C0123F09F43D -:1025400063C008F44CC0133F09F473C098C01F70F7 -:102550008B2D8F710023A1F00E94ED17812F2696FD -:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 -:102570000F91FF90EF90DF90CF90BF900C948F1051 -:102580000E940E18812F26960FB6F894DEBF0FBE5C -:10259000CDBFDF91CF911F910F91FF90EF90DF9012 -:1025A000CF90BF900C9496100023A9F02111BFC0CA -:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 -:1025C000DF91CF911F910F91FF90EF90DF90CF900F -:1025D000BF900C943318223008F0A9C0E9CF002333 -:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 -:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 -:10260000CF90BF900C94ED17002359F38B2D8F7151 -:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 -:102620001F910F91FF90EF90DF90CF90BF900C948F -:102630000E18002399F08B2D8F7126960FB6F89403 -:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 -:10265000EF90DF90CF90BF900C94D81726960FB6CE -:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 -:10267000FF90EF90DF90CF90BF900C94CE17002387 -:10268000A9F0222309F4ADCF812F26960FB6F89436 -:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 -:1026A000EF90DF90CF90BF900C94780F222309F425 -:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB -:1026C000DF91CF911F910F91FF90EF90DF90CF900E -:1026D000BF900C9440104B2D4F70612FC7010E948A -:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 -:1026F000CF911F910F91FF90EF90DF90CF90BF90FF -:102700000C94F2164B2D4F70612FC70126960FB611 -:10271000F894DEBF0FBECDBFDF91CF911F910F9117 -:10272000FF90EF90DF90CF90BF900C94E30526963A -:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 -:102740000F91FF90EF90DF90CF90BF9008950E947F -:1027500088190E945D190E94A2190E94AE1E0E9453 -:10276000FE1D80E090E00E94720E80E090E00C94EC -:10277000880E0E9478190C94A7130E94A918292F7B -:1027800022952F702C3030F42A3048F42250223019 -:1027900078F405C02C3041F02F3031F009C0803E74 -:1027A00048F0803F29F406C093FB882780F90895FC -:1027B00080E0089581E00895CF93DF9300D000D0AA -:1027C0001F92CDB7DEB70F900F900F900F900F9024 -:1027D000DF91CF910895CF93DF9300D000D000D048 -:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD -:1027F000DF91CF9108951F93CF93DF93C09179011B -:1028000016E080917A01C81799F0D0E01C9FF00182 -:102810001D9FF00D1124E558FE4F408151816281CA -:102820007381848195810E94EB132196C770E9CF53 -:10283000DF91CF911F9108954091AB015091AC0170 -:102840006091AD017091AE018091AF019091B001A6 -:102850000C94EB138091B00182958F7009F054C0F5 -:102860008091AD01882309F44FC080917901A09136 -:102870007A014091AE015091AF016091AB0170912E -:10288000AC01B6E08A1709F43FC090E0411551054C -:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 -:1028A000F00D1124E558FE4F218127132AC0208105 -:1028B000261327C02281211124C0238134812417AB -:1028C000350710F421503109241B350B283C310504 -:1028D000C0F42091B0012F7020612093B00126E058 -:1028E000289FF001299FF00D1124E058FE4F8081B0 -:1028F0008F70806180838BEA91E00E949D100C9420 -:10290000FB1301968770BECF0895CF92DF92EF92AE -:10291000FF920F931F93CF93DF93CDB7DEB76297EC -:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 -:10293000DE011D9601900D928A95E1F7D8014C9128 -:1029400011965C91119712966C918091AE019091C5 -:10295000AF01009709F475C13091AB017091AC01E2 -:102960007F3F19F43F3F09F46CC1F801C380D48064 -:10297000E090AD01EE2009F4BEC02091B001C81670 -:10298000D90628F0D601A81BB90BCD0104C080954B -:1029900090958C0D9D1DFF24F394883C910578F053 -:1029A000F12C207F09F0C4C07C2DD98AC88A89897E -:1029B0000E94DC138BEA91E00E949D10AFC0822F31 -:1029C000807F09F045C0571313C0431311C0611134 -:1029D0000FC02F7020612093B0010E941C148BEA5D -:1029E00091E00E949D108091B001F80185832EC076 -:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 -:102A00001CC08091790120917A0136E0821709F487 -:102A10005BC090E0389FF001399FF00D1124E5581C -:102A2000FE4F7181571306C07081471303C0728136 -:102A3000711103C001968770E9CFF62E662309F461 -:102A40001CC18091B00181608093B001F12C15C14F -:102A5000571309C0431307C0611105C08091B0012D -:102A6000F8018583C8C04D875E878D859E856A8BFA -:102A70000E94BD136A898823D1F16623C1F1209198 -:102A8000B001822F82958F7090E0029774F0809150 -:102A9000AB019091AC0198878F831986DB86CA863B -:102AA0002C87CE0107960E949D1086E0F801ABEAC4 -:102AB000B1E001900D928A95E1F70E942A140E94DC -:102AC0001C14FF24F394D9C04D875E878D859E85A5 -:102AD0000E94A918292F22952F70223008F0C1C01A -:102AE0009F7009F0BBC0805E883008F4C6C0C80182 -:102AF0000E949D10E6CFC816D90608F453C0F6010F -:102B0000E81BF90BCF01883C910508F450C0F12C6B -:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E -:102B200086E0DF011D928A95E9F70E941C14A5C07A -:102B3000571314C0431312C0611110C08091B0012B -:102B4000F8018583C8010E949D1086E0EBEAF1E060 -:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 -:102B60008D859E856A8B0E94BD136A89882309F42E -:102B7000BECF662309F4BBCF2091B001822F82958E -:102B80008F7090E002970CF490CF8091AB01909100 -:102B9000AC019A8389831B82DD82CC822E83CE0195 -:102BA000019681CF809590958C0D9D1DACCFF62E12 -:102BB000662309F49CCF571333C0431331C02091CF -:102BC000B00120FD24C0822F82958F70482F50E0E5 -:102BD00041155105E1F0D80115962C9315974F300A -:102BE000510549F08F5F982F9295907F822F8F70BB -:102BF000892B15968C93C8010E949D1086E0F801E0 -:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 -:102C1000F801ABEAB1E001900D928A95E1F72DC081 -:102C20004D875E878D859E850E94BD1381113DCFA6 -:102C30008091B00181608093B001C8010E949D1015 -:102C40001CC0662309F453CF4D875E878D859E8512 -:102C50000E94BD13882309F44ACF27CF811143CFA7 -:102C60000CC0243008F043CF9F7009F43CCFD8014A -:102C700015969C91907F09F036CF8F2D62960FB6F6 -:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 -:102C9000FF90EF90DF90CF9008951F93CF93DF9335 -:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 -:102CB0004F83588769877A878B879C87CE010796D1 -:102CC0000E948514882371F08A859B85892B09F4DD -:102CD00041C088858F3F09F065C08F818F3F09F023 -:102CE00061C038C086E0FE013796DE011196019082 -:102CF0000D928A95E1F76A857B856115710551F121 -:102D0000FF81E885EF3F11F4FF3F21F120917A0127 -:102D100030E0C9010196877099274091790150E010 -:102D20008417950709F447C0F983EA837D836C8390 -:102D300096E0929FD001939FB00D1124A558BE4FED -:102D4000FE01319601900D929A95E1F780937A01F8 -:102D50000E94FB1316E08091790190917A01891706 -:102D6000B9F1189FC001112485589E4F0E94851407 -:102D7000882371F1E09179011E9FF0011124E5583B -:102D8000FE4F4081518162817381848195810E94CF -:102D9000EB138091790190E00196877099278093D9 -:102DA0007901D9CF4F81588569857A858B859C8536 -:102DB0000E94EB13CFCF0E94B91310927A011092A8 -:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF -:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A -:102DE0001F910895EF92FF920F931F93CF93DF935C -:102DF0008C01892B09F46CC0F12CEE24E394E801DA -:102E00002196F8018491843740F4843008F051C051 -:102E1000813081F0823019F15BC0853709F444C0FC -:102E2000A8F19CE7980F903708F052C08F770E9466 -:102E3000401041C00E5F1F4FFE01849190E2980F39 -:102E4000983050F48770FE2D01C0FF0F8A95EAF785 -:102E50008F2F0E947B1914C00E94780F2DC00E5F27 -:102E60001F4FFE01849190E2980F983060F48770B4 -:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E -:102E80000E94A21919C00E94401016C00E5F1F4F69 -:102E9000FE01C491CC2381F08FE99FE00197F1F707 -:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E -:102EB00003C00E94780F8E018F2D882309F49FCFC5 -:102EC000EFE9FFE03197F1F700C000008150F5CF46 -:102ED000DF91CF911F910F91FF90EF90089508958A -:102EE0006093B5017093B6018093B7019093B801D8 -:102EF0000C94A7130F931F930091B5011091B60185 -:102F00002091B7013091B801DC01CB01802B912BCE -:102F1000A22BB32B8093B5019093B601A093B70178 -:102F2000B093B8011F910F910C94A7130F931F93A7 -:102F30000091B5011091B6012091B7013091B8010F -:102F4000DC01CB0180239123A223B3238093B5011D -:102F50009093B601A093B701B093B8011F910F9160 -:102F60000C94A7130F931F930091B5011091B60114 -:102F70002091B7013091B801DC01CB018027912766 -:102F8000A227B3278093B5019093B601A093B70110 -:102F9000B093B8011F910F910C94A7131092B10137 -:102FA0001092B2011092B3011092B4010C94A713C5 -:102FB00041E050E060E070E004C0440F551F661F20 -:102FC000771F8A95D2F74093B1015093B201609375 -:102FD000B3017093B4010C94A71341E050E060E09A -:102FE00070E004C0440F551F661F771F8A95D2F703 -:102FF0008091B1019091B201A091B301B091B4015F -:10300000482B592B6A2B7B2B4093B1015093B20173 -:103010006093B3017093B4010C94A71341E050E0A6 -:1030200060E070E004C0440F551F661F771F8A954B -:10303000D2F740955095609570958091B10190912F -:10304000B201A091B301B091B401482359236A237E -:103050007B234093B1015093B2016093B30170930D -:10306000B4010C94A71341E050E060E070E004C0AC -:10307000440F551F661F771F8A95D2F78091B101C3 -:103080009091B201A091B301B091B40148275927A2 -:103090006A277B274093B1015093B2016093B3013B -:1030A0007093B4010C94A7130F931F930091B10177 -:1030B0001091B2012091B3013091B401DC01CB0138 -:1030C000802B912BA22BB32B8093B1019093B20153 -:1030D000A093B301B093B4011F910F910C94A71367 -:1030E0000F931F930091B1011091B2012091B30190 -:1030F0003091B401DC01CB0180239123A223B323BF -:103100008093B1019093B201A093B301B093B40145 -:103110001F910F910C94A7130F931F930091B1016E -:103120001091B2012091B3013091B401DC01CB01C7 -:1031300080279127A227B3278093B1019093B201F2 -:10314000A093B301B093B4011F910F910C94A713F6 -:103150000895CF92DF92EF92FF920F931F93CF9338 -:10316000DF938C01C090B101D090B201E090B30127 -:10317000F090B4018091B5019091B601A091B70192 -:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 -:10319000D701C6010C2E04C0B695A79597958795C3 -:1031A0000A94D2F780FF07C0B8018C2F0E9407064F -:1031B0008130910531F4219758F7B80180E00E94E1 -:1031C0000706DF91CF911F910F91FF90EF90DF9055 -:1031D000CF90089590910C019923F1F090910D01F9 -:1031E0009923D1F0982F9695969596959F3080F5D6 -:1031F000E0910E01F0910F01E90FF11D877021E0C0 -:1032000030E0A90102C0440F551F8A95E2F7CA01B8 -:103210009181892B8183089520910E0130910F01B6 -:10322000F90132969FEF40E05191851789F09F3F59 -:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 -:1032400039F0F901E90FF11D97FDFA958283089590 -:10325000089590910C019923F9F090910D01992313 -:10326000D9F0982F9695969596959F3028F5E091F0 -:103270000E01F0910F01E90FF11D877021E030E0A0 -:10328000A90102C0440F551F8A95E2F7CA01809533 -:10329000918189238183089520910E0130910F013E -:1032A000F9013296205F3F4F9081891301C010824F -:1032B0003196E217F307C1F7089581E090E0E091BD -:1032C0000E01F0910F01E80FF91F10820196803175 -:1032D0009105A9F708959091CB01892B8093CB019B -:1032E000089580959091CB0189238093CB01089517 -:1032F0001092CB0108959091CA01892B8093CA0145 -:10330000089580959091CA0189238093CA010895F8 -:103310001092CA0108958093B90108951092B901DD -:10332000089580910E0190910F01FC0131969C014E -:10333000205F3F4F80E0919191118F5FE217F3077B -:10334000D1F70895E0910E01F0910F018091CB012A -:103350008083E0910E01F0910F0190818091CA016C -:10336000892B80838091B901882361F0E0910E015F -:10337000F0910F019081892B80830E949119811116 -:103380001092B90180910E0190910F010C945C0E86 -:10339000CF92DF92EF92FF926C01EE24FF24C114D2 -:1033A000D104E104F10421F0C701B60120E101C01C -:1033B00020E0C72ED82EE92EFF24C114D104E10449 -:1033C000F10419F0285FC701B6016B017C0154E0DC -:1033D000F694E794D794C7945A95D1F7C114D104C1 -:1033E000E104F10419F02C5FC701B6016B017C0107 -:1033F00042E0F694E794D794C7944A95D1F7C11464 -:10340000D104E104F10419F02E5FC701B601DC011B -:10341000CB01B695A79597958795892B8A2B8B2BF2 -:1034200009F02F5F822FFF90EF90DF90CF900895EB -:103430008091E401843011F120E488E190E00FB63E -:10344000F894A895809360000FBE2093600083B726 -:10345000817F846083BF83B7816083BF78948895C0 -:1034600083B78E7F83BF0FB6F894A89580916000D4 -:10347000886180936000109260000FBE08950895E7 -:103480000C943F1ACF930E94401A0E9426040E9477 -:103490003F1AC0E08C2F0E941C05811104C0CF5F31 -:1034A000CE30C1F701C081E0CF9108950E94B913D9 -:1034B0000E94500E0C94460782E084BD93E095BDB7 -:1034C0009AEF97BD80936E0008952FB7F89480917E -:1034D000CD019091CE01A091CF01B091D0012FBF2D -:1034E0000895CF92DF92EF92FF920F931F932FB721 -:1034F000F8944091CD015091CE016091CF0170912F -:10350000D0012FBF6A017B01EE24FF248C0120E053 -:1035100030E0C016D106E206F30610F4415051091E -:103520009A01281B390BC9011F910F91FF90EF9051 -:10353000DF90CF9008951F920F920FB60F92112433 -:103540008F939F93AF93BF938091CD019091CE01C4 -:10355000A091CF01B091D0010196A11DB11D809322 -:10356000CD019093CE01A093CF01B093D001BF9134 -:10357000AF919F918F910F900FBE0F901F90189554 -:103580000E94480BF8942FEF87EA91E62150804083 -:103590009040E1F700C0000087E090EBDC018093F1 -:1035A000ED019093EE01A093EF01B093F0019CE048 -:1035B00088E10FB6F894A895809360000FBE9093B1 -:1035C0006000FFCFEF92FF920F931F93CF93DF9393 -:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 -:1035E000F12CC701002E02C0959587950A94E2F749 -:1035F00080FD06C00F5F1F4F0630110591F709C00F -:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 -:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 -:103620000F91FF90EF900895CF93C82F8CE20E94E6 -:10363000E21A882321F08C2FCF910C94E21A80E0BB -:10364000CF910895CF930E94691C811102C00E94FE -:103650004F1CC5E6C15049F00E9426048FE39CE947 -:103660000197F1F700C00000F5CF89E20E94141B1A -:10367000811113C18AE20E94141B81110E944F1C08 -:1036800085E00E94141B81110E94C01A0E94741CC4 -:103690008093CC0187E00E94141B8823A9F18BE161 -:1036A0000E94141B882351F08091CC0181FB2227BA -:1036B00020F991E0922790FB81F90EC08EE00E94E4 -:1036C000141B882361F08091CC0182FB222720F912 -:1036D00091E0922790FB82F98093CC0115C080E1A4 -:1036E0000E94141B9091CC01882341F093FB222768 -:1036F00020F981E0822780FB93F904C0892F80950F -:1037000080FB90F99093CC018091CC010E94781CB1 -:103710000E94861C8093DE0180EE0E94141B882389 -:1037200041F08091DE01982F909590FB80F9809375 -:10373000DE0189E30E94141B882359F08091DE0189 -:1037400081FB222720F991E0922790FB81F9809359 -:10375000DE0182EE0E94141B882359F08091DE0165 -:1037600082FB222720F991E0922790FB82F9809337 -:10377000DE0186EE0E94141B882359F08091DE0141 -:1037800083FB222720F991E0922790FB83F9809315 -:10379000DE0183EE0E94141B882359F08091DE0124 -:1037A00084FB222720F991E0922790FB84F98093F3 -:1037B000DE0185E30E94141B882359F08091DE010D -:1037C00085FB222720F991E0922790FB85F98093D1 -:1037D000DE0181E30E94141B882359F08091DE01F1 -:1037E00086FB222720F991E0922790FB86F98093AF -:1037F000DE0181E10E94141B882359F08091DE01D3 -:1038000087FB222720F991E0922790FB87F980938C -:10381000DE018091DE010E948A1C8091DE0187FB1F -:10382000882780F980930D0187E20E94141BC82F1E -:103830008EE10E94141B8111C2608FE10E94141B53 -:103840008111C46080E20E94141B8111C86081E272 -:103850000E94141B8111C06182E20E94141B81111D -:10386000C06283E20E94141B8111C06484E20E9442 -:10387000141B882311F0C06802C0CC2329F08C2FC0 -:103880000E94811C6C2F03C00E947D1C682F70E079 -:1038900080E090E0CF910C947017CF9108956DEE79 -:1038A0007EEF80E090E00E94C32260E082E090E042 -:1038B0000E94B52260E083E090E00E94B52260E0C3 -:1038C00084E090E00E94B52260E085E090E00C94F6 -:1038D000B52280E090E00E94AF2221E08D3E9E4F15 -:1038E00009F020E0822F089582E090E00C94A72256 -:1038F000682F82E090E00C94B52283E090E00C9475 -:10390000A722682F83E090E00C94B52284E090E039 -:103910000C94A722682F84E090E00C94B52280914B -:10392000D30180FF0BC06091130185E0689FB00157 -:10393000112475956795759567952BC081FF09C012 -:103940006091130185E0689FB0011124759567951A -:1039500020C082FF07C06091130185E0689FB0011D -:10396000112417C09091D4019923D1F060911201D4 -:10397000961788F72091130185E0289F9001112464 -:10398000929FA001939F500D112470E0CA010E94E4 -:1039900079226038710540F46115710519F406C08B -:1039A00065E070E0862F08958FE7089581E008951F -:1039B0008091D30180FF08C06091110170E075957E -:1039C00067957595679521C081FF06C060911101CB -:1039D00070E07595679519C082FF04C06091110170 -:1039E00070E010C09091D401992399F0609110017A -:1039F0009617A0F780911101899FC001112470E0F2 -:103A00000E9479226038710540F46115710519F43E -:103A100006C061E070E0862F08958FE7089581E089 -:103A20000895803F21F40E948F1C819504C0813F3E -:103A300029F40E948F1C8093D7010895823F21F4BE -:103A40000E948F1C819504C0833F29F40E948F1C23 -:103A50008093D6010895893F19F40E94D81C05C0AF -:103A60008A3F31F40E94D81C81958093D801089533 -:103A70008B3F21F40E94D81C819504C08C3F29F40F -:103A80000E94D81C8093D9010895843F21F480912D -:103A9000D501816017C0853F21F48091D5018260F6 -:103AA00011C0863F21F48091D50184600BC0873F0F -:103AB00021F48091D501886005C0883F31F4809160 -:103AC000D50180618093D50108958D3F21F48091C7 -:103AD000D30181600BC08E3F21F48091D3018260BD -:103AE00005C08F3F29F48091D30184608093D30176 -:103AF0000895803F39F48091D70187FF6CC0109200 -:103B0000D70169C0813F29F48091D7011816BCF311 -:103B100062C09091D601823F29F497FF5CC0109259 -:103B2000D60159C0833F19F41916CCF354C0893F0C -:103B300041F48091D80118160CF04DC01092D801B4 -:103B40004AC08A3F29F48091D80187FF44C0F6CF4C -:103B50008B3F39F48091D90187FF3DC01092D90184 -:103B60003AC08C3F29F48091D9011816BCF333C0B8 -:103B7000843F21F48091D5018E7F17C0853F21F4C9 -:103B80008091D5018D7F11C0863F21F48091D501B0 -:103B90008B7F0BC0873F21F48091D501877F05C0C3 -:103BA000883F31F48091D5018F7E8093D50113C079 -:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 -:103BC0008091D3018D7F05C08F3F29F48091D3016F -:103BD0008B7F8093D3018091D60181110EC080919B -:103BE000D70181110AC08091D801811106C080914E -:103BF000D901811102C01092D401089585ED91E0A0 -:103C00000E94670E0E94651A9093D2018093D101A1 -:103C100008951F93CF93DF938091D1019091D201AA -:103C20000E94711AAC019091D401992321F0209146 -:103C3000140130E006C0209115018AE0289F900110 -:103C400011244217530708F485C08091D601C09112 -:103C5000D701D091D8011091D901811107C0C111AC -:103C600075C0D11173C0111171C074C09F3F19F09C -:103C70009F5F9093D401181624F40E948F1C8093A8 -:103C8000D6018091D60187FF05C00E948F1C8195C7 -:103C90008093D6011C1624F40E948F1C8093D701B8 -:103CA0008091D70187FF05C00E948F1C819580936A -:103CB000D7016091D601662331F1C091D701CC23A1 -:103CC00011F1062E000C770B880B990B0E948021B6 -:103CD00023E333E343E35FE30E94E4210E944821AE -:103CE0006093D6016C2FCC0F770B880B990B0E9439 -:103CF000802123E333E343E35FE30E94E4210E9456 -:103D000048216093D7011D1624F40E94D81C80938B -:103D1000D8018091D80187FF05C00E94D81C8195E9 -:103D20008093D801111624F40E94D81C8093D901E5 -:103D30008091D90187FF05C00E94D81C819580938E -:103D4000D901DF91CF911F910C94FE1D9F3F09F087 -:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 -:103D600085E0DF011D928A95E9F71092D401109247 -:103D7000D3010895833081F128F4813059F08230E5 -:103D8000D1F00895853009F449C0B8F1863009F4BE -:103D900056C0089580911501262F30E0280F311D5F -:103DA0002F3F310524F4680F6093150108958FEFBC -:103DB00080931501089580911401262F30E0280F7B -:103DC000311D2F3F310524F4680F609314010895CD -:103DD0008FEF80931401089580911301262F30E016 -:103DE000280F311D2F3F310524F4680F6093130114 -:103DF00008958FEF80931301089580911201262F6B -:103E000030E0280F311D2F3F310524F4680F6093F7 -:103E1000120108958FEF809312010895809111018E -:103E2000262F30E0280F311D2F3F310524F4680F75 -:103E30006093110108958FEF80931101089580918F -:103E40001001262F30E0280F311D2F3F310524F4BB -:103E5000680F6093100108958FEF8093100108950B -:103E6000833011F128F4813049F0823091F00895C7 -:103E7000853081F120F18630C1F1089580911501DE -:103E8000681720F4861B8093150108951092150180 -:103E9000089580911401681720F4861B8093140103 -:103EA000089510921401089580911301681720F469 -:103EB000861B809313010895109213010895809139 -:103EC0001201681720F4861B809312010895109246 -:103ED0001201089580911101681720F4861B8093C8 -:103EE0001101089510921101089580911001681731 -:103EF00020F4861B809310010895109210010895FC -:103F00000F931F938D3109F46BC008F03FC08E30C2 -:103F100009F47DC0C0F4873009F46EC068F48630BF -:103F200009F0AFC08091CC01817F8E7F8093CC015E -:103F300081E08093DB01A6C0883009F458C08B3043 -:103F400009F49BC09EC0863109F497C078F4803193 -:103F500009F470C0813109F094C00E94B9139091A6 -:103F60000D0181E0892780930D0187C0893109F413 -:103F700084C08B3109F085C08091CC0181FB222760 -:103F800020F991E0922790FB81F94AC0853309F42A -:103F90005BC048F4873209F457C008F45AC089322C -:103FA00009F452C06EC0833438F48A3308F067C015 -:103FB000883309F462C065C0833409F445C088348D -:103FC00009F05FC00E94B9130FEF13ED20E3015019 -:103FD00010402040E1F700C000000E94C01A4DC010 -:103FE0000E9402210E94500E0E94460746C00E9475 -:103FF000741C0E94861C41C09091CC01892F817055 -:1040000090FF12C0917F9E7F9093CC013BC0809126 -:10401000CC0182FB222720F991E0922790FB82F9C4 -:104020008093CC01992349F18091CC0181608093E8 -:10403000CC0123C08091CC0183FB222720F991E0A1 -:10404000922790FB83F9ECCF61E070E080E090E094 -:1040500010C08D5141E050E060E070E08A019B01AA -:1040600004C0000F111F221F331F8A95D2F7C90108 -:10407000B8010E9470170E94B91381E003C08953F0 -:10408000E9CF80E01F910F91089580E008950C948E -:104090004520CF93C82F8091DB01813079F018F053 -:1040A0008230E9F187C0E0910E01F0910F0180812B -:1040B000813169F0823209F07FC009C0E0910E01C0 -:1040C000F0910F018081813111F0823261F48C2FE7 -:1040D0000E944720811104C08C2F0E94801F1DC0A8 -:1040E00081E090E01AC08C2F0E944520811114C0FD -:1040F000C43179F048F4CB3079F0C03109F060C0B8 -:1041000082E08093DB0108C0C93219F0C83321F086 -:1041100057C01092DB0154C081E0817053C0C93296 -:1041200089F118F5C43171F1A8F4C73009F046C01F -:104130008AE08093150194E19093140193E09093A9 -:1041400013018093120188E08093110188E280932B -:10415000100134C0CE51C63088F5EC2FF0E0E65D9A -:10416000FE4F80818093DA0129C0CE34E9F020F43B -:10417000CB3421F56AE013C0C13579F0C235F1F4D2 -:1041800061E00DC08091DA01882319F01092DA0104 -:1041900015C081E08093DB0115C061E006C080910D -:1041A000DA010E94BA1E0AC06AE08091DA010E9418 -:1041B000301F04C01092DB0180E004C081E002C027 -:1041C00080E0ABCFCF910895E1E8F0E08081886096 -:1041D00080838081816080838FB7F89493E090938F -:1041E000890090ED909388008FBF0895EFE6F0E08E -:1041F0008081826080830895EFE6F0E080818D7F8A -:1042000080830895EFE6F0E0908182E08927808343 -:1042100008951F920F920FB60F9211242F933F9380 -:104220004F935F936F937F938F939F93AF93BF93BE -:10423000EF93FF938091DC019091DD0101969093C3 -:10424000DD018093DC01811103C082E00E944607FA -:10425000E091DD01E695E695F0E0E657FB4FE4914D -:104260008091DC018E1303C080E00E944607FF911D -:10427000EF91BF91AF919F918F917F916F915F91DE -:104280004F913F912F910F900FBE0F901F90189557 -:104290000E944F216894B1110C94DE2108950E9470 -:1042A000C32188F09F5798F0B92F9927B751B0F0E4 -:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA -:1042C00014C0B13091F00E94DD21B1E008950C944A -:1042D000DD21672F782F8827B85F39F0B93FCCF3FD -:1042E000869577956795B395D9F73EF49095809527 -:1042F000709561957F4F8F4F9F4F0895E89409C047 -:1043000097FB3EF490958095709561957F4F8F4F08 -:104310009F4F9923A9F0F92F96E9BB279395F6951E -:10432000879577956795B795F111F8CFFAF4BB0F9C -:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 -:10434000882311F096E911C0772321F09EE8872F8A -:10435000762F05C0662371F096E8862F70E060E046 -:104360002AF09A95660F771F881FDAF7880F9695BF -:10437000879597F9089557FD9058440F551F59F0A8 -:104380005F3F71F04795880F97FB991F61F09F3F42 -:1043900079F087950895121613061406551FF2CF6B -:1043A0004695F1DF08C0161617061806991FF1CFBB -:1043B00086957105610508940895E894BB276627E2 -:1043C0007727CB0197F908950E94F7210C94682272 -:1043D0000E945A2238F00E94612220F0952311F0A9 -:1043E0000C9451220C94572211240C94DE210E942B -:1043F000BB2170F3959FC1F3950F50E0551F629F4D -:10440000F001729FBB27F00DB11D639FAA27F00D2D -:10441000B11DAA1F649F6627B00DA11D661F829F54 -:104420002227B00DA11D621F739FB00DA11D621F39 -:10443000839FA00D611D221F749F3327A00D611D56 -:10444000231F849F600D211D822F762F6A2F112438 -:104450009F5750409AF0F1F088234AF0EE0FFF1F6B -:10446000BB1F661F771F881F91505040A9F79E3FC2 -:10447000510580F00C9451220C94DE215F3FE4F34F -:10448000983ED4F3869577956795B795F795E79518 -:104490009F5FC1F7FE2B880F911D9695879597F921 -:1044A000089597F99F6780E870E060E008959FEFB6 -:1044B00080EC089500240A941616170618060906BB -:1044C000089500240A94121613061406050608958A -:1044D000092E0394000C11F4882352F0BB0F40F412 -:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 -:1044F000089597FB072E16F4009407D077FD09D096 -:104500000E94932207FC05D03EF4909581959F4F21 -:104510000895709561957F4F0895EE0FFF1F0590E8 -:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF -:10453000BB1FA617B70710F0A61BB70B881F991F44 -:104540005A95A9F780959095BC01CD010895F999E8 -:10455000FECF92BD81BDF89A992780B50895A8E154 -:10456000B0E042E050E00C94CA22262FF999FECF29 -:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 -:104580000FBE019608950E94B522272F0C94B622E3 -:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 -:1045A000F89A319600B40D9241505040B8F70895F2 -:0445B000F894FFCFAD -:1045B40020024707D707B2077E074A070101BA015D -:1045C40028080A03140A3F4D36394B04FE03C80376 -:1045D4008F0322033B0354036D0301020304050606 -:0445E40007080900BB +:1004D000DAE0DEBFCDBF04B603FE24C08091F00198 +:1004E0009091F101A091F201B091F3018730904B0E +:1004F000A740B04BB9F41092F0011092F1011092A4 +:10050000F2011092F30114BE84B7877F84BF88E1A3 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0EEE1F8E402C0DC +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92A03FB107E1F70E94E9090C9498 +:100550000D240C940000662319F06130F1F03DC0C9 +:10056000FC018281882341F00E94B71B90933501E2 +:100570008093340181EE1CC080913401909135014B +:100580000E94C31B8639910534F486E20E944A100A +:1005900086E20E94121181EE1EC0FC018281882336 +:1005A00051F00E94B71B909335018093340185EE82 +:1005B0000E944A1012C080913401909135010E942E +:1005C000C31B8639910534F487E20E944A1087E202 +:1005D0000E94121185EE0E94121180E090E00895B1 +:1005E00008956091B3017091B4018091B50190912B +:1005F000B6010E94151B56985E9825982D9826984E +:100600002E9827982F98813019F0823021F0089584 +:10061000259A2D9A0895269A2E9A089508950C9455 +:10062000F10256985E9825982D9826982E9827982E +:100630002F988FEF90E0909389008093880090939B +:100640008B0080938A0090938D0080938C00259A74 +:100650002D9A2FEF80E792E0215080409040E1F703 +:1006600000C00000269A2E9A2FEF80E792E02150DA +:1006700080409040E1F700C00000279A2F9A2FEFAA +:1006800080E792E0215080409040E1F700C00000F8 +:1006900025982D982FEF80E792E0215080409040E0 +:1006A000E1F700C0000026982E982FEF80E792E037 +:1006B000215080409040E1F700C0000027982F981B +:1006C00056985E9825982D9826982E9827982F98BA +:1006D000089589EA8093800089E0809381002498BE +:1006E0002C983F988AB18F748AB96E98479A8BB1CB +:1006F000806B8BB9769A0E9411030C94F00280E211 +:10070000809300018091360181110EC00E94D003B8 +:1007100081E0809336012FEF83ED90E321508040FC +:100720009040E1F700C0000080E40E94D60380936F +:10073000000181112EC00E940004809300018111EC +:1007400028C00E94000480930001811122C08FE321 +:100750000E9400048093000181111BC00E94F803D5 +:1007600080E40E94D60380930001811112C08CE0C6 +:100770000E9400048093000181110BC00E940004BC +:1007800080930001811105C08FE30E9400048093D3 +:1007900000010E94F8038091000108950C940E035B +:1007A0001092B9008AE08093B800089594EA90937B +:1007B000BC009091BC0097FFFCCF9091B900987F4E +:1007C000983021F0903111F081E008958093BB00C2 +:1007D00084E88093BC008091BC0087FFFCCF8091AF +:1007E000B900887F883111F0803471F780E0089576 +:1007F00084E98093BC008091BC0084FDFCCF089507 +:100800008093BB0084E88093BC008091BC0087FF8C +:10081000FCCF9091B900987F81E0983209F480E094 +:10082000089584E88093BC008091BC0087FFFCCFD2 +:100830008091BB00089580910001811115C080E472 +:100840000E94D6038093000181110CC082E10E94B6 +:10085000000480930001811105C08FEF0E94000405 +:10086000809300010E94F80384B1807F84B985B130 +:10087000807F85B98AB1837F8AB98BB1837F8BB939 +:100880003E98469808950E947F03809300010E943D +:100890001B0480B38C7080BB81B3836F81BBE6E4A3 +:1008A000F1E0A8E3B1E011921D9281E0E435F80790 +:1008B000D1F70C946903BF92CF92DF92EF92FF922F +:1008C0000F931F93CF93DF9380910001882379F0DA +:1008D000809137018F5F80933701811108C00E949A +:1008E0007F0380930001811102C00E94110308E37D +:1008F00011E0C0E0D0E0DD24D39482E0C82EEE24E5 +:10090000E394F12CC73000F580910001811162C0A1 +:1009100080E40E94D60380930001811112C082E11D +:100920000E9400048093000181110BC0C7010C2EAE +:1009300001C0880F0A94EAF780950E940004809312 +:1009400000010E94F80346C0CA30A1F028F4C83064 +:1009500059F0C93061F005C0CC3089F070F0CD306D +:1009600089F0209A289810C0219A29980DC0229ABF +:100970002A980AC0239A2B9807C0529A01C0539A0A +:100980005B9802C03E9A4698E0EAEA95F1F78FB18B +:1009900079995AC092E081708D25892B7C9B02C089 +:1009A00090E001C094E0892B7D9B02C090E001C0E3 +:1009B00098E0892B7E9B02C090E001C090E1892BDA +:1009C0009FB19095991F9927991F9295990F907EA5 +:1009D000892B0FC08091000181114BC080E40E94DF +:1009E000D60380930001882389F1B12C0E94F8037B +:1009F0008B2DF8019081981719F08083C092010126 +:100A00000E941B0421960F5F1F4FCE30D10509F0C5 +:100A100079CF80910101882371F181508093010188 +:100A2000882339F08FE99FE00197F1F700C00000BB +:100A300022C0A6E4B1E0E8E3F1E081918D9391E07A +:100A4000E634F907D1F717C090E0A5CF83E10E9403 +:100A50000004809300018111C8CF81E40E94D60375 +:100A6000809300018111C1CF0E941104B82EB0946F +:100A7000BDCF80E0BECF0E940F0381E0DF91CF9118 +:100A80001F910F91FF90EF90DF90CF90BF9008954E +:100A9000E82FF0E0EA5BFE4F808108950895089505 +:100AA00096E0799FF001112494E5899FE00DF11DF6 +:100AB0001124E60FF11DEE0FFF1FEC51FF4F859142 +:100AC00094910895880F991F805A9040FC01859158 +:100AD00094910895880F991F80529F4FFC01859132 +:100AE000949108950F931F93CF93DF93EC01811599 +:100AF00020E3920730F5811530E2930708F0B1C08A +:100B00008B3B910588F4883A910508F058C0853AE6 +:100B1000910508F049C08430910508F043C0813048 +:100B2000910509F4B2C1AEC18F3F910509F0D0F52E +:100B3000803F910508F092C0805E9109089790F17E +:100B4000A1C1C11581E5D807A8F4C23090E5D90745 +:100B500008F09FC0C11520E5D20709F486C008F04F +:100B600092C0C11580E4D80708F08CC18E0111270E +:100B7000106CCCC1C11590E8D90758F4C11520E715 +:100B8000D20708F07BC1C11530E6D30708F423C1B2 +:100B900079C1C11580E9D80708F074C18E011F70B2 +:100BA000106AB4C18E01B2C1853A910509F470C1D1 +:100BB000863A910509F46FC103E810E4A7C1883AA9 +:100BC000910509F46BC1893A910509F46AC18A3A21 +:100BD000910509F469C18B3A910509F468C18C3A11 +:100BE000910509F467C18D3A910509F466C1803B0E +:100BF000910509F465C18E3A910509F464C18F3AF3 +:100C0000910509F463C1813B910509F462C1823BFE +:100C1000910509F461C1833B910509F460C1843BEE +:100C2000910509F45FC1853B910509F45EC1863BDE +:100C3000910509F45DC1873B910509F45CC1883BCE +:100C4000910509F45BC1893B910509F45AC18A3BBE +:100C5000910509F059C10AE216E458C18C011065EA +:100C600055C19F700E946A0552C10E94A4149FEF53 +:100C700024E33CE0915020403040E1F700C0000008 +:100C80000E94111C43C18091CF0181608093CF01EC +:100C90003DC10E94B91D811102C00E949F1D0E948A +:100CA000D61D90E09093F0018093EF01C23080E573 +:100CB000D80721F48091EF01816086C0C43090E5AF +:100CC000D90721F48091EF0182607EC0C63020E513 +:100CD000D20721F48091EF01846076C0C83030E5FE +:100CE000D30719F48091EF0127C0CA3080E5D807F7 +:100CF00021F48091EF01806167C0CC3090E5D90785 +:100D000021F48091EF0180625FC0CE3020E5D207F0 +:100D100021F48091EF01806457C0C03130E5D307E2 +:100D200021F48091EF0180684FC0C23180E5D8077F +:100D300029F48091EF018460886046C0C33090E55B +:100D4000D90721F48091EF018E7F3EC0C53020E5A8 +:100D5000D20721F48091EF018D7F36C0C73030E596 +:100D6000D30721F48091EF018B7F2EC0C93080E53D +:100D7000D80719F48091EF0126C0CB3090E5D90750 +:100D800021F48091EF018F7E1FC0CD3020E5D20786 +:100D900021F48091EF018F7D17C0CF3030E5D3076C +:100DA00021F48091EF018F7B0FC0C13180E5D8071E +:100DB00021F48091EF018F7707C0C331D04531F422 +:100DC0008091EF018B7F877F8093EF018091EF010E +:100DD0000E94DA1D9BC08D2F99278F709927813033 +:100DE0009105E9F48E01037011279C0102C0220FC6 +:100DF000331F0A95E2F789011C68CE0164E0880F71 +:100E0000991F6A95E1F788279370082B192B73E0D7 +:100E1000CC0FDD1F7A95E1F7C076DD272CC082303C +:100E2000910529F41C2F0027016F106A6FC08330D1 +:100E3000910561F4CE018370992701E010E002C0B2 +:100E4000000F111F8A95E2F71C680EC0049709F085 +:100E50005DC0CE018370992701E010E002C0000F51 +:100E6000111F8A95E2F71A6843E0CC0FDD1F4A95FF +:100E7000E1F7C07ED7700C2B1D2B48C08E011F7070 +:100E8000106244C000E010E041C001E010E03EC04C +:100E900001E810E43BC002E810E438C002EE14E4BC +:100EA00035C009EE14E432C00AEE14E42FC005EB9D +:100EB00014E42CC006EB14E429C007EB14E426C0AC +:100EC0000CEC14E423C00DEC14E420C003E815E49A +:100ED0001DC00AE815E41AC002E915E417C004E9C8 +:100EE00015E414C001E216E411C003E216E40EC0DA +:100EF00004E216E40BC005E216E408C006E216E4BC +:100F000005C007E216E402C000E014E4C801DF9166 +:100F1000CF911F910F91089596E0799FF0011124D0 +:100F200094E5899FE00DF11D1124E60FF11DEE0FF0 +:100F3000FF1FEC51FF4F85919491803E9105E0F4A5 +:100F4000803C910558F58133910509F46FC048F450 +:100F50008932910509F463C08A32910509F46DC0A4 +:100F600072C089339105E9F082389105D1F085335B +:100F7000910509F44DC067C0833E910581F138F4B5 +:100F8000803E9105B9F0823E9105D9F05CC0863E65 +:100F9000910561F1873E9105A1F155C00E9462055E +:100FA00008952091EF0120FD02C021FF4CC080EE8A +:100FB00090E049C08091EF0180FFF9CF89E390E094 +:100FC00042C08091EF0182FF0EC08091EF0184FF4B +:100FD00003C080E090E037C083EE90E034C08091A1 +:100FE000EF0182FFF2CF82EE90E02DC08091EF0101 +:100FF00083FF0BC08091EF0184FDEBCF87EE90E083 +:1010000022C08091EF0183FFF5CF86EE90E01BC0F8 +:101010008091EF0185FF07C089E290E014C08091C4 +:10102000EF0185FFF9CF85E390E00DC08091EF01DE +:1010300086FF07C08AE290E006C08091EF0186FF3C +:10104000F9CF81E390E00E947205089508950C9411 +:101050002608809164010895CF93DF9300D01F92FA +:10106000CDB7DEB72091E601243019F523E02983BE +:101070009B838A832093E9008FEF9091E800815051 +:1010800095FD06C095ED9A95F1F700008111F5CF19 +:101090008091E80085FF0DC040E050E063E070E023 +:1010A000CE0101960E94960A8091E8008E77809387 +:1010B000E8000F900F900F90DF91CF910895CF939C +:1010C000DF9300D01F92CDB7DEB72091E601243028 +:1010D00021F522E029839B838A8383E08093E900C2 +:1010E0008FEF9091E800815095FD06C095ED9A959F +:1010F000F1F700008111F5CF8091E80085FF0DC068 +:1011000040E050E063E070E0CE0101960E94960A54 +:101110008091E8008E778093E8000F900F900F90F9 +:10112000DF91CF9108952091E6012430F1F422E07F +:101130002093E9002FEF3091E800215035FD06C0E3 +:1011400035ED3A95F1F700002111F5CF2091E80037 +:1011500025FF0BC040E050E065E070E00E94960A79 +:101160008091E8008E778093E8000895CF93DF9315 +:10117000EC018091E601843009F046C090910C01A9 +:101180009923D9F090910D019923B9F08093E9004A +:101190008FEF9091E800815095FD06C095E19A95FA +:1011A000F1F700008111F5CF8091E80085FF2CC098 +:1011B00040E050E060E170E017C081E08093E9001A +:1011C0008FEF9091E800815095FD06C095ED9A95BE +:1011D000F1F700008111F5CF8091E80085FF14C080 +:1011E00040E050E068E070E0CE010E94960A8091F5 +:1011F000E8008E778093E80080E1FE01A4E5B1E08D +:1012000001900D928A95E1F7DF91CF910895809139 +:10121000E501811109C00E94280C0E94850C809173 +:10122000E20084608093E20008951092E501089541 +:1012300008950C9435220E94A81B0E943B220E9414 +:10124000220F0C94270842E061EC81E00E94A20B7F +:1012500042E061EC82E00E94A20B42E061EC83E09C +:101260000E94A20B42E161EC84E00C94A20B8091FD +:10127000E801833009F455C030F4813071F08230D8 +:1012800009F48EC008958A3009F47AC08B3009F4CD +:1012900060C0893009F09CC020C08091E701813A8C +:1012A00009F096C08091E800877F8093E8008091E4 +:1012B000EB019091EC01892B21F060E080E090E05F +:1012C00003C060E184E591E070E00E94DF0A809154 +:1012D000E8008B778093E80008958091E7018132E0 +:1012E00009F076C08091EB019091EC01009719F024 +:1012F000039709F06DC08091E800877F8093E80034 +:101300008091E80082FD05C08091E6018111F8CF4F +:101310005FC08091F100809364018091E8008B7739 +:1013200053C08091E701813A09F052C08091EB01EE +:101330009091EC01892B09F04BC08091E800877FE8 +:101340008093E8008091E80080FFFCCF80910C0141 +:1013500036C08091E7018132D9F58091EB019091FF +:10136000EC01892BA9F58091E800877F8093E80044 +:101370000E94D70B8091E90180930C010C94A41476 +:101380008091E701813221F58091E800877F809389 +:10139000E8000E94D70B8091EA01809365010895CF +:1013A0008091E701813AA1F48091E800877F8093E2 +:1013B000E8008091E80080FFFCCF80916501809378 +:1013C000F1008091E8008E778093E8000C94D70BB1 +:1013D000089584B7877F84BF88E10FB6F89480931F +:1013E0006000109260000FBE90E080E80FB6F894A5 +:1013F00080936100909361000FBE0E94710F0E9464 +:10140000280C0E94850C8091E20084608093E200A9 +:1014100078940E94000F0E94730F82E091E00E9476 +:101420001D0F0E9423228091E601853069F40E94FD +:10143000681B8091E4018823B1F30E94931B8823E9 +:1014400091F30E94800AEFCF0E94790FECCF292FF1 +:10145000332723303105A9F06CF42130310509F42C +:1014600042C02230310509F043C08DE690E020E112 +:1014700033E042C021323105C9F02232310519F181 +:1014800037C099278130910541F08230910541F0B4 +:10149000892B71F5ECE0F3E005C0E4EFF2E002C067 +:1014A000ECEDF2E0849190E09F0126C0643000F5FD +:1014B000E62FF0E0EE0FFF1FEE5DFE4F2081318141 +:1014C00089E090E019C0643098F4E62FF0E0DF0185 +:1014D000AA0FBB1FA65EBE4F2D913C91EA5EFE4F48 +:1014E000808190E009C082E190E02DE733E004C004 +:1014F00080E090E020E030E0FA013183208308951D +:1015000080E189BD82E189BD09B400FEFDCF8091F3 +:10151000D8008F7D8093D8008091E0008260809316 +:10152000E0008091E00081FDFCCF0895CF92DF9232 +:10153000EF92FF920F931F93CF93DF937C018B0168 +:10154000EA010E94F80B811131C0209731F08881A7 +:101550009981081B190BE80EF91EC12CD12C01151D +:10156000110519F18091E80085FD14C08091E80013 +:101570008E778093E800209741F0888199818C0DC7 +:101580009D1D9983888385E011C00E94F80B8823F4 +:1015900031F30CC0F70181917F018093F10001507C +:1015A0001109FFEFCF1ADF0ADACF80E0DF91CF9188 +:1015B0001F910F91FF90EF90DF90CF9008952091B1 +:1015C000ED013091EE012617370748F061157105DE +:1015D00039F42091E8002E772093E80001C0B9018A +:1015E000FC0120E061157105B9F18091E6018823C5 +:1015F00009F440C0853009F43FC08091E80083FDC4 +:101600003DC08091E80082FF06C08091E80082FF23 +:1016100026C080E008958091E80080FFE3CF20910C +:10162000F3008091F20090E0922B6115710551F06A +:101630008830910538F421912093F10061507109AF +:101640000196F3CF21E0089709F020E08091E800AF +:101650008E778093E800C6CF2111C7CFD6CF809177 +:10166000E601882339F0853039F08091E80083FF66 +:10167000CCCF04C082E0089583E0089581E008950E +:101680002091ED013091EE012617370748F06115E2 +:10169000710539F42091E8002E772093E80001C00D +:1016A000B901FC0120E061157105C1F18091E601ED +:1016B000882309F441C0853009F440C08091E800D6 +:1016C00083FD3EC08091E80082FF06C08091E80063 +:1016D00082FF27C080E008958091E80080FFE3CF7B +:1016E0002091F3008091F20090E0922B611571053A +:1016F00059F08830910540F424912093F1003196FF +:10170000615071090196F2CF21E0089709F020E0BD +:101710008091E8008E778093E800C5CF2111C6CF75 +:10172000D5CF8091E601882339F0853039F080915A +:10173000E80083FFCBCF04C082E0089583E00895E2 +:1017400081E00895982F973058F59093E900981705 +:1017500039F07091EC002091ED005091F00003C041 +:10176000242F762F50E021FF19C03091EB003E7FEF +:101770003093EB003091ED003D7F3093ED003091E0 +:10178000EB0031603093EB007093EC002093ED00A0 +:101790005093F0002091EE0027FF07C09F5FD3CF4A +:1017A0008F708093E90081E0089580E00895809132 +:1017B000E70187FD05C08091E80080FF0EC012C0E0 +:1017C0008091E80082FD05C08091E6018111F8CF8B +:1017D00008958091E8008B7708C08091E60181111F +:1017E000EACF08958091E8008E778093E80008950D +:1017F0008091E4009091E50045E62091EC0020FF07 +:1018000021C02091E80020FD21C02091E601222383 +:1018100089F0253089F02091EB0025FD0FC0209143 +:10182000E4003091E5002817390739F3415041F0C1 +:10183000C901E3CF82E0089583E0089581E008952F +:1018400084E008952091E80022FFDFCF80E0089532 +:101850000E94960C0E949E0CE0EEF0E08081816078 +:101860008083E8EDF0E080818F77808319BCA7ED5D +:10187000B0E08C918E7F8C9380818F7E80831092DC +:10188000E50108950F931F93CF93DF930E94960C69 +:101890000E949E0CC8EDD0E088818F778883888174 +:1018A0008068888388818F7D888319BC1092E601C7 +:1018B0001092E2011092E4011092E30100EE10E0B8 +:1018C000F80180818B7F808388818160888342E0FA +:1018D00060E080E00E94A20BE1EEF0E080818E7F6C +:1018E0008083E2EEF0E08081816080838081886087 +:1018F0008083F80180818E7F8083888180618883E6 +:10190000DF91CF911F910F910895E8EDF0E0808174 +:101910008F7E8083E7EDF0E080818160808384E0CA +:1019200082BF81E08093E5010C94420CE8EDF0E089 +:1019300080818E7F80831092E20008951092DA00F9 +:101940001092E10008951F920F920FB60F9211248A +:101950002F933F934F935F936F937F938F939F93B7 +:10196000AF93BF93EF93FF938091E10082FF0BC091 +:101970008091E20082FF07C08091E1008B7F80931D +:10198000E1000E94FF0E8091DA0080FF1FC080916D +:10199000D80080FF1BC08091DA008E7F8093DA0030 +:1019A0008091D90080FF0DC080E189BD82E189BDB1 +:1019B00009B400FEFDCF81E08093E6010E94070993 +:1019C00005C019BC1092E6010E9415098091E10042 +:1019D00080FF19C08091E20080FF15C08091E20075 +:1019E0008E7F8093E2008091E20080618093E2002C +:1019F0008091D80080628093D80019BC85E08093E4 +:101A0000E6010E9419098091E10084FF30C08091B5 +:101A1000E20084FF2CC080E189BD82E189BD09B468 +:101A200000FEFDCF8091D8008F7D8093D8008091FB +:101A3000E1008F7E8093E1008091E2008F7E8093B1 +:101A4000E2008091E20081608093E2008091E201F7 +:101A5000882311F084E007C08091E30087FF02C073 +:101A600083E001C081E08093E6010E941B09809120 +:101A7000E10083FF29C08091E20083FF25C08091AF +:101A8000E100877F8093E10082E08093E60110927D +:101A9000E2018091E1008E7F8093E1008091E2007D +:101AA0008E7F8093E2008091E20080618093E2006B +:101AB00042E060E080E00E94A20B8091F00088602C +:101AC0008093F0000E941809FF91EF91BF91AF91B0 +:101AD0009F918F917F916F915F914F913F912F9146 +:101AE0000F900FBE0F901F9018951F920F920FB678 +:101AF0000F9211242F933F934F935F936F937F9394 +:101B00008F939F93AF93BF93CF93EF93FF93C09126 +:101B1000E900CF708091EC001092E9008091F00014 +:101B2000877F8093F00078940E94B10D1092E900B5 +:101B30008091F00088608093F000C093E900FF91ED +:101B4000EF91CF91BF91AF919F918F917F916F91C5 +:101B50005F914F913F912F910F900FBE0F901F906B +:101B600018951F93CF93DF93CDB7DEB7AA970FB623 +:101B7000F894DEBF0FBECDBFE7EEF1E08091F1003B +:101B8000819321E0EF3EF207C9F70E943709809167 +:101B9000E80083FF1CC12091E7013091E801832F09 +:101BA00090E08A30910508F012C1FC01EA5AFF4F1B +:101BB0000C94BD23203881F0223809F008C18091AF +:101BC000EB018F708093E9008091EB0085FB882703 +:101BD00080F91092E90006C08091E3019091E40140 +:101BE000911182609091E800977F9093E800809334 +:101BF000F1001092F100C5C0822F8D7F09F0E7C07F +:101C0000222319F0223061F0E2C08091E901813095 +:101C100009F0DDC0333009F080E08093E40128C092 +:101C20008091E901811124C02091EB012F7009F40A +:101C3000CEC02093E9008091EB0080FF19C0809115 +:101C4000EB00333011F4806211C080618093EB00AF +:101C500081E090E0022E01C0880F0A94EAF7809399 +:101C6000EA001092EA008091EB0088608093EB001C +:101C70001092E9008091E800877F86C02111A7C0FB +:101C80001091E9011F778091E3008078812B809388 +:101C9000E3008091E800877F8093E8000E94D70BE3 +:101CA0008091E80080FFFCCF8091E3008068809302 +:101CB000E300112311F083E001C082E08093E6018C +:101CC00086C02058223008F082C08091E9019091AE +:101CD000EA018C3D23E0920779F583E08A838AE26A +:101CE00089834FB7F894DE01139620E03EE051E27D +:101CF000E32FF0E050935700E49120FF03C0E295FA +:101D0000EF703F5FEF708E2F90E0EA3010F0C796D3 +:101D100001C0C0968D939D932F5F243149F74FBF2B +:101D20008091E800877F8093E8006AE270E0CE014E +:101D300001960E94DF0A14C0AE014F5F5F4F6091B1 +:101D4000EB010E94270A009709F441C02091E800A6 +:101D5000277F2093E800BC0189819A810E94400B73 +:101D60008091E8008B778093E80031C0203879F5C6 +:101D70008091E800877F8093E8008091E201809362 +:101D8000F1008091E8008E778093E8000E94D70BE5 +:101D90001EC021111CC09091E9019230C0F48091C5 +:101DA000E800877F8093E8009093E2010E94D70BC0 +:101DB0008091E201811104C08091E30087FF02C09D +:101DC00084E001C081E08093E6010E9423098091B4 +:101DD000E80083FF0AC08091E800877F8093E800D5 +:101DE0008091EB0080628093EB00AA960FB6F89486 +:101DF000DEBF0FBECDBFDF91CF911F910895089533 +:101E0000CF938091E6018823B1F08091E9008F7033 +:101E10009091EC0090FF02C090E801C090E0C92FC3 +:101E2000C82B1092E9008091E80083FD0E94B10D5B +:101E3000CF70C093E900CF91089590936B01809388 +:101E40006A010895E0916A01F0916B01309721F0E9 +:101E50000190F081E02D099480E00895E0916A01FD +:101E6000F0916B01309721F00280F381E02D09940D +:101E70000895E0916A01F0916B01309721F00480A0 +:101E8000F581E02D09940895209168013091690150 +:101E90008217930771F09093690180936801E09134 +:101EA0006A01F0916B01309721F00680F781E02DF7 +:101EB0000994089520916601309167018217930774 +:101EC00071F09093670180936601E0916A01F0914F +:101ED0006B01309721F00084F185E02D099408957D +:101EE00008950C94700F0E94AE1B0E9443040C9442 +:101EF000741CCF92DF92EF92FF920F931F93CF93B8 +:101F0000DF93CDB7DEB72B970FB6F894DEBF0FBEC9 +:101F1000CDBF0E945B043DE6E32E31E0F32E00E0EE +:101F200010E0C02E802F0E944805F701D1907F015C +:101F3000D826B1F40F5F1F4F0E30110591F78FEFC8 +:101F400089838A831B820E94B71B8160782F9D83BF +:101F50008C8349815A816B818D810E941C1041C004 +:101F60009091CF0191FF04C08B870E944E058B8515 +:101F700020E030E04D2D50E0922FBA01022E02C039 +:101F8000759567950A94E2F760FF25C02E83CF828E +:101F9000EE24E394F12C02C0EE0CFF1C9A95E2F7BC +:101FA00090E08E219F2121E0892B09F420E02887F1 +:101FB0000E94B71B8160782F9A8789874E815F8145 +:101FC00068858A850E941C10F801E359FE4F8081C4 +:101FD0008E25808306C02F5F3F4F2630310561F686 +:101FE000A9CF0E94581F10916C010E94220F181750 +:101FF000A1F00E94220F80936C012B960FB6F894EB +:10200000DEBF0FBECDBFDF91CF911F910F91FF902B +:10201000EF90DF90CF900C9427082B960FB6F89492 +:10202000DEBF0FBECDBFDF91CF911F910F91FF900B +:10203000EF90DF90CF900895CF93DF93CDB7DEB7C9 +:102040002B970FB6F894DEBF0FBECDBF4F835887D6 +:1020500069877A878B87DE01119686E0FD011192F0 +:102060008A95E9F785E0FE01379601900D928A95F1 +:10207000E1F749815A816B817C818D819E810E942B +:1020800070172B960FB6F894DEBF0FBECDBFDF9151 +:10209000CF910895CF93C82F882309F4C1C0823807 +:1020A00059F40E94220F81FDBBC089E30E941C1AD3 +:1020B0000E94E61A89E30CC0833879F40E94220F4B +:1020C00080FDAEC083E50E941C1A0E94E61A83E5DB +:1020D0000E945C1ACF910C94E61A843859F40E943D +:1020E000220F82FD9DC087E40E941C1A0E94E61AFE +:1020F00087E4EECF8CEF8C0F813A48F48C2F0E944E +:102100008B2181118DC08C2F0E941C1AE3CF80E29D +:102110008C0F883048F4C77081E001C0880FCA95E1 +:10212000EAF70E949D1AD6CF8BE58C0F833078F4A6 +:10213000C53A29F0C63A31F482E890E005C081E85A +:1021400090E002C083E890E0CF910C94440F88E5C2 +:102150008C0F833108F064C0C83A39F1C93A41F1B3 +:10216000CA3A49F1CB3A51F1CC3A59F1CD3A61F141 +:10217000C03B69F1CE3A71F1CF3A79F1C13B81F1BF +:10218000C23B89F1C33B91F1C43B99F1C53BA1F13D +:10219000C63BA9F1C73BB1F1C83BB9F1C93BC1F19D +:1021A000CA3BC9F58AE292E038C082EE90E035C0C1 +:1021B00089EE90E032C08AEE90E02FC085EB90E08F +:1021C0002CC086EB90E029C087EB90E026C08CEC19 +:1021D00090E023C08DEC90E020C083E891E01DC02A +:1021E0008AE891E01AC082E991E017C084E991E0A1 +:1021F00014C081E292E011C083E292E00EC084E25A +:1022000092E00BC085E292E008C086E292E005C051 +:1022100087E292E002C080E090E0CF910C945A0FE8 +:10222000CF910895882309F44BC0823859F40E9455 +:10223000220F81FF45C089E30E941C1A0E94E61A02 +:1022400089E30CC0833871F40E94220F80FF38C0EC +:1022500083E50E941C1A0E94E61A83E50E945C1A1C +:102260000C94E61A843859F40E94220F82FF28C089 +:1022700087E40E941C1A0E94E61A87E4EFCF9CEFC5 +:10228000980F913A58F390E2980F983050F4877075 +:1022900091E001C0990F8A95EAF7892F0E94A31A4D +:1022A000DFCF9BE5980F933020F480E090E00C9412 +:1022B000440F885A833120F480E090E00C945A0F48 +:1022C0000895882321F00E949D1A0C94E61A08951F +:1022D000882321F00E94A31A0C94E61A0895CF9245 +:1022E000DF92EF92FF920F931F93CF93DF93CDB7BF +:1022F000DEB728970FB6F894DEBF0FBECDBF8C01B6 +:1023000085E0F801DE01119601900D928A95E1F7C2 +:10231000F801D080E180F280558152955F70238171 +:102320003481232B39F0FFEFEF1206C081E0DF127A +:1023300003C003C081E001C080E080FDE2C2C801AB +:102340005F830E94CE03D982EA8269817A818F2DD0 +:102350000E94181A9E8388870E94CC190E949F1899 +:102360004E815F816885FF2029F00E94BA1A688536 +:102370005F814E81E42FE295EF70F0E0E05AFF4F6D +:102380000C94BD23842F807F142F1F70882311F09D +:102390001295107FFF20B1F0112309F467C280E28B +:1023A000860F883028F4812F68870E949D1A04C008 +:1023B000812F68870E94AD1A688568870E94E61A97 +:1023C000688554C2862F68870E9412116885112380 +:1023D00009F497C2605E812F683018F40E94A31A36 +:1023E00002C00E94B31A28960FB6F894DEBF0FBE43 +:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 +:10240000CF900C94E61A242F207F842F8F702032D7 +:1024100011F08295807F662319F0613019F12BC08D +:10242000FF20B1F0552309F493C1513009F090C158 +:1024300028960FB6F894DEBF0FBECDBFDF91CF91C7 +:102440001F910F91FF90EF90DF90CF900C94CD1AD9 +:10245000552319F0513009F454C28E830E94D01ACA +:102460008E8189C1FF2021F0523008F04AC270C12C +:10247000511147C280C1FF2021F0552309F468C1E2 +:10248000F5C1552309F477C105C2242F2695269559 +:10249000237030E02115310521F021303105C9F0DC +:1024A00030C2FF2021F0862F942F937002C080E06D +:1024B00090E028960FB6F894DEBF0FBECDBFDF9137 +:1024C000CF911F910F91FF90EF90DF90CF900C94E0 +:1024D000440FFF2021F0862F942F937002C080E0DC +:1024E00090E028960FB6F894DEBF0FBECDBFDF9107 +:1024F000CF911F910F91FF90EF90DF90CF900C94B0 +:102500005A0F862FFF2019F00E94601E02C00E9401 +:10251000C81E28960FB6F894DEBF0FBECDBFDF9160 +:10252000CF911F910F91FF90EF90DF90CF900C947F +:102530004D1F842F837009F076C0F110E2C1262F61 +:10254000229526952770220F220F862F8F70C82E76 +:10255000D12CE12CF12C022E04C0CC0CDD1CEE1C85 +:10256000FF1C0A94D2F764FF10C06FE070E080E0B7 +:1025700090E004C0660F771F881F991F2A95D2F735 +:10258000609570958095909503C060E070E0CB01F8 +:10259000242F269526952370422F50E04230510576 +:1025A000D1F04330510559F16C297D298E299F299D +:1025B0004130510541F128960FB6F894DEBF0FBEA9 +:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 +:1025D000CF900C94C4186C297D298E299F292896A8 +:1025E0000FB6F894DEBF0FBECDBFDF91CF911F9124 +:1025F0000F91FF90EF90DF90CF900C94DE180E9427 +:10260000C418C701B60128960FB6F894DEBF0FBEF6 +:10261000CDBFDF91CF911F910F91FF90EF90DF9091 +:10262000CF900C94AA18FF2019F0842F817001C05C +:102630008695882309F465C1262F22952695277053 +:10264000220F220F862F8F70C82ED12CE12CF12C57 +:10265000022E04C0CC0CDD1CEE1CFF1C0A94D2F729 +:1026600064FF10C06FE070E080E090E004C0660F8F +:10267000771F881F991F2A95D2F7609570958095CE +:10268000909503C060E070E0CB01242F269526953D +:102690002370422F50E042305105D1F043305105B4 +:1026A00059F16C297D298E299F294130510541F12D +:1026B00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1026C0001F910F91FF90EF90DF90CF900C9498198D +:1026D0006C297D298E299F2928960FB6F894DEBF94 +:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 +:1026F000DF90CF900C94B2190E949819C701B601CF +:1027000028960FB6F894DEBF0FBECDBFDF91CF91F4 +:102710001F910F91FF90EF90DF90CF900C947E1956 +:10272000603FC9F118F4603E50F49BC0623F09F469 +:1027300060C008F44AC0633F09F46FC092C0162F0E +:102740001F70842F8F71FF2099F00E941719812F1D +:1027500028960FB6F894DEBF0FBECDBFDF91CF91A4 +:102760001F910F91FF90EF90DF90CF900C9461112B +:102770000E943819812F28960FB6F894DEBF0FBE3D +:10278000CDBFDF91CF911F910F91FF90EF90DF9020 +:10279000CF900C946811FF20A1F05111B2C0842F8A +:1027A0008F7128960FB6F894DEBF0FBECDBFDF91B4 +:1027B000CF911F910F91FF90EF90DF90CF900C94ED +:1027C0005D19523008F09DC0EACFFF20A1F0842FA0 +:1027D0008F7128960FB6F894DEBF0FBECDBFDF9184 +:1027E000CF911F910F91FF90EF90DF90CF900C94BD +:1027F0001719FF2061F3842F8F7128960FB6F89474 +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF900C943819FF2091F0842F27 +:102820008F7128960FB6F894DEBF0FBECDBFDF9133 +:10283000CF911F910F91FF90EF90DF90CF900C946C +:10284000021928960FB6F894DEBF0FBECDBFDF91F8 +:10285000CF911F910F91FF90EF90DF90CF900C944C +:10286000F818FF20A1F0552309F4B1CF862F289640 +:102870000FB6F894DEBF0FBECDBFDF91CF911F9191 +:102880000F91FF90EF90DF90CF900C944A1055235A +:1028900009F4B1CF862F28960FB6F894DEBF0FBE8D +:1028A000CDBFDF91CF911F910F91FF90EF90DF90FF +:1028B000CF900C9412114F70C8010E94AB02289661 +:1028C0000FB6F894DEBF0FBECDBFDF91CF911F9141 +:1028D0000F91FF90EF90DF90CF900C941D184F70E8 +:1028E000C80128960FB6F894DEBF0FBECDBFDF91AA +:1028F000CF911F910F91FF90EF90DF90CF900C94AC +:102900004F0528960FB6F894DEBF0FBECDBFDF91FE +:10291000CF911F910F91FF90EF90DF90CF9008958E +:102920000E94BA1A0E94CA1A0E948F1A0E94E61ABE +:102930000E94F91F0E944D1F80E090E00E94440F0A +:1029400080E090E00C945A0F0E94AA1A0C94901404 +:102950000E940D1A292F22952F7030E02C3031055E +:102960004CF42A3031056CF4225031092230310503 +:1029700090F407C02C30310551F02F30310539F07B +:102980000AC0803E10F0803F31F481E0089593FB4F +:10299000882780F9089580E00895CF93DF9300D0D1 +:1029A00000D01F92CDB7DEB70F900F900F900F9011 +:1029B0000F90DF91CF910895CF93DF9300D000D097 +:1029C00000D0CDB7DEB726960FB6F894DEBF0FBEA7 +:1029D000CDBFDF91CF9108951F93CF93DF93C09127 +:1029E0007B0116E080917C01C81799F0D0E01C9F14 +:1029F000F0011D9FF00D1124E358FE4F40815181DD +:102A000062817381848195810E94DC142196C77054 +:102A1000E9CFDF91CF911F9108954091AD01509181 +:102A2000AE016091AF017091B0018091B1019091C0 +:102A3000B2010C94DC14CF938091B20182958F7017 +:102A400009F05FC08091AF01882309F45AC020913A +:102A50007B01A0917C016091AD017091AE018091EC +:102A6000B0019091B10131E06F3F09F030E0B32F38 +:102A7000C6E02A1709F445C0009721F07F3F21F4F2 +:102A80004B2F03C041E001C040E030E040FD35C0C5 +:102A9000C29FF001C39FF00D1124E358FE4F418106 +:102AA00074132BC04081641328C04281411125C09A +:102AB000438154814817590710F441505109481B6C +:102AC000590B483C5105C8F48091B2018F70806168 +:102AD0008093B20186E0829FF001839FF00D112464 +:102AE000EE57FE4F80818F70806180838DEA91E088 +:102AF0000E946F11CF910C94EC142F5F3F4F277001 +:102B0000B8CFCF910895CF92DF92EF92FF920F93BB +:102B10001F93CF93DF93CDB7DEB762970FB6F894CC +:102B2000DEBF0FBECDBF8C0185E0F801DE011D9632 +:102B300001900D928A95E1F7D8014C9111965C9124 +:102B4000119712966C9112971396ED90FC90149732 +:102B50007091AD01E091AE012091B0013091B101D1 +:102B60002115310531F0EF3F31F481E07F3F19F459 +:102B700003C081E001C080E0B82FB170CB2E80FD92 +:102B80006CC1D090AF01DD2009F4F5C0F091B20125 +:102B9000E216F30638F0C701821B930B883C9105BF +:102BA00048F09BC0209530952E0D3F1D283C3105E7 +:102BB00008F093C08F2F807F09F052C0E51314C036 +:102BC000741312C0D62E61110FC0FF70F061F09324 +:102BD000B2010E940D158DEA91E00E946F11809163 +:102BE000B201F80185836CC1EF2831F05F3F31F409 +:102BF00081E04F3F19F403C081E001C080E080FD17 +:102C000003C081E0862701C080E0F82FF170FF2E1D +:102C100080FF1CC080917B0120917C0136E08217EF +:102C200009F428C190E0389FF001399FF00D11247C +:102C3000E358FE4F7181571306C07081471303C0DC +:102C40007281671303C001968770E9CFD62E662381 +:102C500009F436C18091B20181608093B20153C002 +:102C6000E51308C0741306C0611104C0D80115969D +:102C7000FC93AEC04D875E878D859E856A8B0E94D2 +:102C8000A8146A89882329F1D62E662311F1209190 +:102C9000B201822F82958F7090E002970CF460C091 +:102CA0008091AD019091AE0198878F831986FB8644 +:102CB000EA862C87CE01079651C0E51731F14D8782 +:102CC0005E878D859E856A8B0E94A8146A89811112 +:102CD0002EC0C8010E946F11A4C08F2F807F69F79A +:102CE0007E2DF98AE88A89890E94CD148DEA91E0C7 +:102CF0000E946F11EDEAF1E086E0DF011D928A95F6 +:102D0000E9F70E940D15D12CDBC07413D8CF6111E7 +:102D1000D6CFD8011596FC93C8010E946F11EDEA39 +:102D2000F1E086E0DF011D928A95E9F7C9C0D62E51 +:102D3000662379F22091B201822F82958F7090E004 +:102D4000029774F08091AD019091AE019A838983CE +:102D50001B82FD82EC822E83CE0101960E946F11B0 +:102D600086E0F801ADEAB1E001900D928A95E1F7B5 +:102D70000E941B156FC0E216F30628F0C701821BE4 +:102D8000930B9C0104C0209530952E0D3F1D283CCF +:102D9000310508F052C0D62E662309F49ACFE51308 +:102DA0002CC074132AC08091B20180FD1DC0982FE1 +:102DB00092959F70C9F0D80115968C9315979F3006 +:102DC00039F09F5F9295907F8F70892B15968C9329 +:102DD000C8010E946F1186E0F801ADEAB1E00190F0 +:102DE0000D928A95E1F736C086E0F801ADEAB1E0D0 +:102DF00001900D928A95E1F763C04D875E878D85BE +:102E00009E850E94A814882379F086E0F801ADEA37 +:102E1000B1E001900D928A95E1F70E941B150E9486 +:102E20000D15DD24D3944CC08091B2018160809354 +:102E3000B201C8010E946F1143C07E2DF98AE88A51 +:102E400089890E94CD14EDEAF1E086E0DF011D9250 +:102E50008A95E9F70E940D1533C0662309F439CF2E +:102E60004D875E878D859E850E94A814882309F46E +:102E700030CFCBCF4D875E878D859E850E940D1A02 +:102E8000292F22952F7030E0223031052CF49F70CD +:102E900041F0811106C00CC0243031052CF49F7024 +:102EA00049F4805E883020F0C8010E946F11CF2C59 +:102EB000DC2C06C0D80115969C91907F91F7F8CF35 +:102EC0008D2D62960FB6F894DEBF0FBECDBFDF9199 +:102ED000CF911F910F91FF90EF90DF90CF900895C9 +:102EE0001F93CF93DF93CDB7DEB72C970FB6F8942F +:102EF000DEBF0FBECDBF4F83588769877A878B8728 +:102F00009C87CE0107960E9483158823C1F02F81EC +:102F100038858A859B85892B31F03F3F11F080E011 +:102F200003C02F3FE1F781E0811147C04F815885F1 +:102F300069857A858B859C850E94DC143EC086E07D +:102F4000FE013796DE01119601900D928A95E1F708 +:102F5000FF81E8854A855B854115510531F0EF3FDA +:102F600031F481E0FF3F19F403C081E001C080E04B +:102F700080FD23C020917C0130E0C901019687705B +:102F8000992760917B0170E086179707F1F1F9832B +:102F9000EA835D834C8396E0929FD001939FB00DAE +:102FA0001124A358BE4FFE01319601900D929A95BF +:102FB000E1F780937C010E94EC1416E080917B0184 +:102FC00090917C01891779F1189FC00111248358D1 +:102FD0009E4F0E948315882331F1E0917B011E9F53 +:102FE000F0011124E358FE4F4081518162817381C9 +:102FF000848195810E94DC1480917B0190E0019690 +:103000008770992780937B01D9CF0E94A4141092D6 +:103010007C0110927B01EDEAF1E086E0DF011D9278 +:103020008A95E9F7CACF2C960FB6F894DEBF0FBE8B +:10303000CDBFDF91CF911F910895EF92FF920F9333 +:103040001F93CF93DF939C01009709F471C0F12C7B +:10305000EE24E394E9012196F9018491843740F448 +:10306000843008F056C0813081F0823021F160C098 +:10307000853709F449C0C0F19CE7980F903708F0F4 +:1030800057C08F770E94121146C089010E5F1F4FF3 +:10309000FE01849190E2980F983050F48770FE2DD5 +:1030A00001C0FF0F8A95EAF78F2F0E94BD1A15C045 +:1030B0000E944A1014C089010E5F1F4FFE018491C7 +:1030C00090E2980F983068F48770FE2D01C0FF0FD2 +:1030D0008A95EAF78F2F0E94C31A0E94E61AE80128 +:1030E0001AC00E941211FBCF2E5F3F4FFE01C49108 +:1030F000CC2341F08FE99FE00197F1F700C0000079 +:10310000C150F6CFE90107C0FE01F490E901229613 +:1031100002C00E944A108F2D882341F0EFE9FFE0A2 +:103120003197F1F700C000008150F6CF9E0192CF99 +:10313000DF91CF911F910F91FF90EF900895089527 +:103140006093B7017093B8018093B9019093BA016D +:103150000C9490140F931F930091B7011091B80134 +:103160002091B9013091BA01062B172B282B392B4E +:103170000093B7011093B8012093B9013093BA01BD +:103180001F910F910C9490140F931F930091B7010E +:103190001091B8012091B9013091BA01062317238B +:1031A000282339230093B7011093B8012093B90164 +:1031B0003093BA011F910F910C9490140F931F93A9 +:1031C0000091B7011091B8012091B9013091BA0175 +:1031D00006271727282739270093B7011093B8012E +:1031E0002093B9013093BA011F910F910C94901460 +:1031F0001092B3011092B4011092B5011092B60171 +:103200000C94901441E050E060E070E004C0440F82 +:10321000551F661F771F8A95D2F74093B3015093CD +:10322000B4016093B5017093B6010C94901441E021 +:1032300050E060E070E004C0440F551F661F771F28 +:103240008A95D2F78091B3019091B401A091B50114 +:10325000B091B601842B952BA62BB72B8093B3018D +:103260009093B401A093B501B093B6010C9490145F +:1032700041E050E060E070E004C0440F551F661F5D +:10328000771F8A95D2F740955095609570958091FB +:10329000B3019091B401A091B501B091B60184231E +:1032A0009523A623B7238093B3019093B401A093F1 +:1032B000B501B093B6010C94901441E050E060E089 +:1032C00070E004C0440F551F661F771F8A95D2F720 +:1032D0008091B3019091B401A091B501B091B60174 +:1032E00084279527A627B7278093B3019093B4012D +:1032F000A093B501B093B6010C9490140F931F9353 +:103300000091B3011091B4012091B5013091B60143 +:10331000062B172B282B392B0093B3011093B401E4 +:103320002093B5013093B6011F910F910C94901426 +:103330000F931F930091B3011091B4012091B50137 +:103340003091B60106231723282339230093B301B4 +:103350001093B4012093B5013093B6011F910F91E2 +:103360000C9490140F931F930091B3011091B4012A +:103370002091B5013091B601062717272827392754 +:103380000093B3011093B4012093B5013093B601BB +:103390001F910F910C9490140895CF92DF92EF92A9 +:1033A000FF920F931F93CF93DF93EC01C090B7016F +:1033B000D090B801E090B901F090BA018091B301CA +:1033C0009091B401A091B501B091B601C82AD92A53 +:1033D000EA2AFB2A0FE110E0B701A601002E04C083 +:1033E00076956795579547950A94D2F740FD05C0A5 +:1033F0000150110988F780E007C0BE01802F0E94AC +:103400008C070197A9F3802FDF91CF911F910F9126 +:10341000FF90EF90DF90CF900895CF93DF93EC0172 +:103420000E94CD19BE010E948C07DF91CF910895B3 +:10343000CB010E940D1A089590910C019923D9F0A7 +:1034400090910D019923B9F0982F969596959695A0 +:103450009F3088F5E0910E01F0910F01E90FF11D09 +:10346000877021E030E001C0220F8A95EAF7818160 +:10347000822B8183089540910E0150910F0120E02D +:1034800030E09FEFFA01E20FF31F6281681799F0B5 +:103490009F3F19F4611101C0922F2F5F3F4F2E30D3 +:1034A000310581F79F3F39F0FA01E90FF11D97FDD2 +:1034B000FA9582830895089590910C019923E1F083 +:1034C00090910D019923C1F0982F96959695969518 +:1034D0009F3020F5E0910E01F0910F01E90FF11DF1 +:1034E000877021E030E001C0220F8A95EAF720952D +:1034F000818128232183089540910E0150910F016D +:1035000020E030E0FA01E20FF31F9281981301C02E +:1035100012822F5F3F4F2E303105A1F7089581E0D1 +:1035200090E0E0910E01F0910F01E80FF91F108279 +:10353000019680319105A9F708959091CE01982BBD +:103540009093CE01089580959091CE019823909309 +:10355000CE0108951092CE0108959091CD01982B3F +:103560009093CD01089580959091CD0198239093EB +:10357000CD0108951092CD0108959091CC01982B22 +:103580009093CC01089580959091CC0198239093CD +:10359000CC0108951092CC0108958093BB01089549 +:1035A0001092BB01089540910E0150910F0120E04F +:1035B00030E080E0FA01E20FF31F918191118F5FFB +:1035C0002F5F3F4F2F303105A9F70895E0910E018D +:1035D000F0910F018091CE018083E0910E01F09176 +:1035E0000F0180819091CD01892B8083E0910E01A4 +:1035F000F0910F0180819091CC01892B8083909173 +:10360000BB01992361F0E0910E01F0910F018081DF +:10361000892B80830E94D31A81111092BB01809163 +:103620000E0190910F010C942E0FCF92DF92EF922A +:10363000FF920F931F936C01EE24FF24C114D10459 +:10364000E104F10421F46B017C0180E001C080E120 +:1036500033272F2D1E2D0D2D0115110521053105A7 +:1036600019F0885F6801790197018601A4E0369519 +:10367000279517950795AA95D1F7011511052105ED +:10368000310519F08C5F6801790197018601F2E03C +:103690003695279517950795FA95D1F701151105D8 +:1036A0002105310519F08E5F68017901B701A60186 +:1036B0007695679557954795452B462B472B09F0EF +:1036C0008F5F1F910F91FF90EF90DF90CF90089543 +:1036D0008091E601843021F11092D00120E488E14C +:1036E00090E00FB6F894A895809360000FBE2093E9 +:1036F000600080E00E94270883B7817F846083BFD9 +:1037000083B7816083BF7894889583B78E7F83BFAA +:1037100088E10FB6F89480936000109260000FBEAD +:10372000089508950895CF930E94911B0E945B0411 +:103730000E94921BC0E08C2F0E944805811105C099 +:10374000CF5FCE30C1F780E001C081E0CF91089516 +:103750000E94A4140E94220F0C94270882E084BDCA +:1037600093E095BD9AEF97BD80936E0008952FB7B3 +:10377000F8948091D1019091D201A091D301B091A0 +:10378000D4012FBF0895CF92DF92EF92FF920F9353 +:103790001F932FB7F8944091D1015091D2016091BD +:1037A000D3017091D4012FBF6A017B01EE24FF2465 +:1037B0008C0120E030E0C016D106E206F30610F4DA +:1037C00041505109481B590BCA011F910F91FF909D +:1037D000EF90DF90CF9008951F920F920FB60F9247 +:1037E00011248F939F93AF93BF938091D1019091B8 +:1037F000D201A091D301B091D4010196A11DB11DB8 +:103800008093D1019093D201A093D301B093D401BE +:10381000BF91AF919F918F910F900FBE0F901F900E +:1038200018950E94280CF8942FEF87EA91E6215012 +:1038300080409040E1F700C0000087E090EBDC01A1 +:103840008093F0019093F101A093F201B093F30102 +:103850002CE088E190E00FB6F894A8958093600082 +:103860000FBE20936000FFCFEF92FF920F931F9344 +:10387000CF93DF93E82EF12C8F2D0E944805C0E0F6 +:10388000D0E0082F10E098010C2E02C03595279546 +:103890000A94E2F720FD05C02196C630D10599F7BC +:1038A00009C06C2F7F2D80E00E945005E812F4CFF4 +:1038B00081E005C0F3948EE0F812DECF80E0DF9166 +:1038C000CF911F910F91FF90EF900895CF93C82F44 +:1038D0008CE20E94341C882321F08C2FCF910C9411 +:1038E000341C80E0CF910895CF930E94B91D8111BF +:1038F00002C00E949F1DC5E6C15049F00E945B04B2 +:103900008FE39CE90197F1F700C00000F5CF89E251 +:103910000E94661C811111C18AE20E94661C8111FD +:103920000E949F1D85E00E94661C81110E94111C4F +:103930000E94C41D8093CF0187E00E94661C8823EB +:1039400099F18BE10E94661C882351F09091CF0180 +:1039500091FB882780F921E0822780FB91F922C022 +:103960008EE00E94661C882351F09091CF0192FB5B +:10397000882780F921E0822780FB92F913C080E13B +:103980000E94661C9091CF01882341F093FB882709 +:1039900080F921E0822780FB93F904C0892F80956C +:1039A00080FB90F99093CF018091CF010E94C81DB8 +:1039B0000E94D61D8093EF0180EE0E94661C882332 +:1039C00041F08091EF01982F909590FB80F98093C2 +:1039D000EF0189E30E94661C882359F09091EF0162 +:1039E00091FB882780F921E0822780FB91F9909351 +:1039F000EF0182EE0E94661C882359F09091EF013E +:103A000092FB882780F921E0822780FB92F990932E +:103A1000EF0186EE0E94661C882359F09091EF0119 +:103A200093FB882780F921E0822780FB93F990930C +:103A3000EF0183EE0E94661C882359F09091EF01FC +:103A400094FB882780F921E0822780FB94F99093EA +:103A5000EF0185E30E94661C882359F09091EF01E5 +:103A600095FB882780F921E0822780FB95F99093C8 +:103A7000EF0181E30E94661C882359F09091EF01C9 +:103A800096FB882780F921E0822780FB96F99093A6 +:103A9000EF0181E10E94661C882359F09091EF01AB +:103AA00097FB882780F921E0822780FB97F9909384 +:103AB000EF018091EF010E94DA1D8091EF0187FBF9 +:103AC000882780F980930D0187E20E94661CC82F29 +:103AD0008EE10E94661C8111C2608FE10E94661C0B +:103AE0008111C46080E20E94661C8111C86081E27D +:103AF0000E94661C8111C06182E20E94661C8111D5 +:103B0000C06283E20E94661C8111C06484E20E944C +:103B1000661C882311F0C06802C0CC2329F08C2FCA +:103B20000E94D11D6C2F03C00E94CD1D682F70E034 +:103B300080E090E0CF910C94A018CF9108956DEEA5 +:103B40007EEF80E090E00E94F72360E082E090E06A +:103B50000E94E52360E083E090E00E94E52360E0BE +:103B600084E090E00E94E52360E085E090E00C9422 +:103B7000E52380E090E00E94DF2321E08D3E9E4F10 +:103B800009F020E0822F089582E090E00C94D72382 +:103B9000682F82E090E00C94E52383E090E00C94A1 +:103BA000D723682F83E090E00C94E52384E090E035 +:103BB0000C94D723682F84E090E00C94E523809147 +:103BC000D70180FF0BC06091130185E0689FB001B1 +:103BD000112475956795759567952AC081FF09C071 +:103BE0006091130185E0689FB00111247595679578 +:103BF0001FC082FF07C06091130185E0689FB0017C +:103C0000112416C04091D8014423C9F060911201DB +:103C1000461788F72091130185E0289F9001112411 +:103C2000429FC001439F900D112470E00E94A92380 +:103C30006038710540F46115710539F002C065E026 +:103C400070E0862F08958FE7089581E008958091B0 +:103C5000D70180FF08C06091110170E075956795EC +:103C60007595679521C081FF06C06091110170E0D4 +:103C70007595679519C082FF04C06091110170E0CD +:103C800010C08091D8018823C1F06091100186177F +:103C9000A0F790911101989FC001112470E00E943B +:103CA000A9236038710528F46115710521F0862F6C +:103CB00008958FE7089581E0089561E070E0F4CF02 +:103CC000803F21F40E94DF1D819504C0813F29F4CB +:103CD0000E94DF1D8093DB010895823F21F40E9442 +:103CE000DF1D819504C0833F29F40E94DF1D80936E +:103CF000DA010895893F19F40E94271E05C08A3F02 +:103D000031F40E94271E81958093DC0108958B3F3A +:103D100021F40E94271E819504C08C3F29F40E9443 +:103D2000271E8093DD010895843F21F48091D901FD +:103D3000816017C0853F21F48091D901826011C054 +:103D4000863F21F48091D90184600BC0873F21F424 +:103D50008091D901886005C0883F31F48091D901F4 +:103D600080618093D90108958D3F21F48091D7011E +:103D700081600BC08E3F21F48091D701826005C025 +:103D80008F3F29F48091D70184608093D7010895F3 +:103D9000803F39F48091DB0187FF6CC01092DB011A +:103DA00069C0813F29F48091DB011816BCF362C021 +:103DB0009091DA01823F29F497FF5CC01092DA01FA +:103DC00059C0833F19F41916CCF354C0893F41F40C +:103DD0008091DC0118160CF04DC01092DC014AC035 +:103DE0008A3F29F48091DC0187FF44C0F6CF8B3FE6 +:103DF00039F48091DD0187FF3DC01092DD013AC0AA +:103E00008C3F29F48091DD011816BCF333C0843F48 +:103E100021F48091D9018E7F17C0853F21F48091D4 +:103E2000D9018D7F11C0863F21F48091D9018B7F0C +:103E30000BC0873F21F48091D901877F05C0883F5F +:103E400031F48091D9018F7E8093D90113C08D3FC9 +:103E500021F48091D7018E7F0BC08E3F21F4809199 +:103E6000D7018D7F05C08F3F29F48091D7018B7FCB +:103E70008093D7018091DA0181110EC08091DB011E +:103E800081110AC08091DC01811106C08091DD01A1 +:103E9000811102C01092D801089589ED91E00E942D +:103EA000390F0E94B71B9093D6018093D5010895D6 +:103EB0001F93CF93DF938091D5019091D6010E94FB +:103EC000C31B4091D801442321F02091140130E01C +:103ED00006C0209115015AE0259F900111248217F8 +:103EE000930708F482C08091DA011091DB01D09130 +:103EF000DC01C091DD01811107C0111105C0D11194 +:103F000003C0CC2309F471C04F3F19F04F5F4093B9 +:103F1000D801181624F40E94DF1D8093DA018091E5 +:103F2000DA0187FF05C00E94DF1D81958093DA01C9 +:103F3000111624F40E94DF1D8093DB018091DB01C8 +:103F400087FF05C00E94DF1D81958093DB01609192 +:103F5000DA01662339F11091DB01112319F177277A +:103F600067FD7095872F972F0E94BA2223E333E3D2 +:103F700043E35FE30E941E230E9487226093DA01DD +:103F8000612F772767FD7095872F972F0E94BA22A0 +:103F900023E333E343E35FE30E941E230E9487226F +:103FA0006093DB011D1624F40E94271E8093DC0120 +:103FB0008091DC0187FF05C00E94271E81958093B8 +:103FC000DC011C1624F40E94271E8093DD018091E1 +:103FD000DD0187FF05C00E94271E81958093DD01CA +:103FE000DF91CF911F910C944D1FDF91CF911F91C5 +:103FF0000895E9EDF1E085E0DF011D928A95E9F78A +:104000001092D8011092D7010895833081F128F4DD +:10401000813059F08230D1F00895853009F449C0DB +:10402000B8F1863009F456C0089520911501862F05 +:1040300090E0820F911D8F3F910520F4620F6093F5 +:10404000150108958FEF80931501089520911401B3 +:10405000862F90E0820F911D8F3F910520F4620F13 +:104060006093140108958FEF8093140108952091B7 +:104070001301862F90E0820F911D8F3F910520F450 +:10408000620F6093130108958FEF809313010895D9 +:1040900020911201862F90E0820F911D8F3F910594 +:1040A00020F4620F6093120108958FEF8093120144 +:1040B000089520911101862F90E0820F911D8F3F6E +:1040C000910520F4620F6093110108958FEF8093A2 +:1040D0001101089520911001862F90E0820F911D0B +:1040E0008F3F910520F4620F6093100108958FEFC8 +:1040F000809310010895833011F128F4813049F044 +:10410000823091F00895853081F120F18630C1F13F +:10411000089580911501681720F4861B809315017E +:10412000089510921501089580911401681720F4E4 +:10413000861B8093140108951092140108958091B4 +:104140001301681720F4861B8093130108951092C1 +:104150001301089580911201681720F4861B809343 +:1041600012010895109212010895809111016817AB +:1041700020F4861B80931101089510921101089577 +:1041800080911001681720F4861B80931001089518 +:104190001092100108958D3109F442C020F58E303F +:1041A00009F477C070F4873009F459C018F48630E8 +:1041B000F1F134C0883009F4A8C08B3009F4A5C0EF +:1041C0002DC0863109F4A1C038F4803109F472C0E1 +:1041D000813109F479C022C0893109F496C08B314C +:1041E00009F44DC01BC0853309F487C048F48732F9 +:1041F00009F483C008F473C0893209F47EC00EC08C +:10420000833438F48A3308F068C0883309F47DC0F9 +:1042100005C0833409F471C0883499F080E00895B2 +:104220000E9441220E94220F0E9427086EC08091A6 +:10423000CF01817F8E7F8093CF0181E08093DF016A +:1042400008950E94A4142FEF83ED90E32150804045 +:104250009040E1F700C000000E94111C56C09091F0 +:10426000CF01892F8095817080FB90F919F09660BD +:1042700098601DC0997F977F9093CF0146C0909121 +:10428000CF0191FB882780F921E0822780FB91F9FB +:1042900009C09091CF0192FB882780F921E0822705 +:1042A00080FB92F99093CF01882379F191609093EC +:1042B000CF0108959091CF0193FB882780F921E0E9 +:1042C000822780FB93F9EECF0E94A41480910D0108 +:1042D00091E0892780930D0118C027EC01C023EEDF +:1042E000280F61E070E080E090E004C0660F771F67 +:1042F000881F991F2A95D2F704C061E070E080E022 +:1043000090E00E94A0180E94A41481E0089580E02B +:10431000089580E00895CF93C82F8091DF01813008 +:1043200079F018F08230D1F184C0A0910E01B091E3 +:104330000F018C91813169F0823209F07CC009C093 +:10434000A0910E01B0910F018C91813111F0823258 +:1043500049F48C2F0E94872181111DC08C2F0E944F +:10436000CB201AC08C2F0E948921811114C0C43126 +:1043700079F048F4CB3079F0C03109F060C082E0C8 +:104380008093DF0108C0C93219F0C83321F057C04B +:104390001092DF0154C081E0817053C0C93289F1AD +:1043A00018F5C43171F1A8F4C73009F046C08AE0AD +:1043B0008093150194E19093140193E0909313017D +:1043C0008093120188E08093110188E280931001AC +:1043D00034C0CE51C63088F5EC2FF0E0E65DFE4FDC +:1043E00080818093DE0129C0CE34E9F020F4CB3403 +:1043F00021F56AE013C0C13579F0C235F1F461E00E +:104400000DC08091DE01882319F01092DE0115C0E5 +:1044100081E08093DF0115C061E006C08091DE017C +:104420000E9405200AC06AE08091DE010E947B2084 +:1044300004C01092DF0180E004C081E002C080E08F +:10444000ABCFCF910895E1E8F0E080818860808370 +:104450008081816080838FB7F89493E09093890086 +:1044600090ED909388008FBF0895EFE6F0E0808193 +:10447000826080830895EFE6F0E080818D7F808305 +:104480000895EFE6F0E0808192E089278083089527 +:104490001F920F920FB60F9211242F933F934F93B9 +:1044A0005F936F937F938F939F93AF93BF93EF939C +:1044B000FF938091E0019091E10101969093E101D9 +:1044C0008093E001811103C082E00E942708E091FF +:1044D000E101E695E695F0E0E657FB4FE491809127 +:1044E000E0018E1303C080E00E942708FF91EF9146 +:1044F000BF91AF919F918F917F916F915F914F91FC +:104500003F912F910F900FBE0F901F90189504D0E0 +:104510006894B1118DC0089570D088F09F5790F0C5 +:10452000B92F9927B751A0F0D1F0660F771F881FD8 +:10453000991F1AF0BA95C9F712C0B13081F077D03F +:10454000B1E0089574C0672F782F8827B85F39F0DD +:10455000B93FCCF3869577956795B395D9F73EF437 +:1045600090958095709561957F4F8F4F9F4F0895DF +:10457000E89409C097FB3EF49095809570956195FD +:104580007F4F8F4F9F4F9923A9F0F92F96E9BB27B3 +:104590009395F695879577956795B795F111F8CF2F +:1045A000FAF4BB0F11F460FF1BC06F5F7F4F8F4F9A +:1045B0009F4F16C0882311F096E911C0772321F090 +:1045C0009EE8872F762F05C0662371F096E8862F28 +:1045D00070E060E02AF09A95660F771F881FDAF77F +:1045E000880F9695879597F9089557FD9058440F31 +:1045F000551F59F05F3F71F04795880F97FB991F42 +:1046000061F09F3F79F087950895121613061406FE +:10461000551FF2CF4695F1DF08C01616170618068B +:10462000991FF1CF86957105610508940895E89466 +:10463000BB2766277727CB0197F908950BD078C061 +:1046400069D028F06ED018F0952309F05AC05FC0E9 +:104650001124EECFCADFA0F3959FD1F3950F50E060 +:10466000551F629FF001729FBB27F00DB11D639F24 +:10467000AA27F00DB11DAA1F649F6627B00DA11DCA +:10468000661F829F2227B00DA11D621F739FB00D70 +:10469000A11D621F839FA00D611D221F749F3327E0 +:1046A000A00D611D231F849F600D211D822F762F79 +:1046B0006A2F11249F5750408AF0E1F088234AF076 +:1046C000EE0FFF1FBB1F661F771F881F91505040C2 +:1046D000A9F79E3F510570F014C0AACF5F3FECF3DD +:1046E000983EDCF3869577956795B795F795E795AE +:1046F0009F5FC1F7FE2B880F911D9695879597F9BF +:10470000089597F99F6780E870E060E008959FEF53 +:1047100080EC089500240A94161617061806090658 +:10472000089500240A941216130614060506089527 +:10473000092E0394000C11F4882352F0BB0F40F4AF +:10474000BF2B11F460FF04C06F5F7F4F8F4F9F4FEF +:10475000089597FB072E16F4009407D077FD09D033 +:104760000E94C32307FC05D03EF4909581959F4F8E +:104770000895709561957F4F0895EE0FFF1F059086 +:10478000F491E02D0994AA1BBB1B51E107C0AA1F9D +:10479000BB1FA617B70710F0A61BB70B881F991FE2 +:1047A0005A95A9F780959095BC01CD010895F99986 +:1047B000FECF92BD81BDF89A992780B50895A8E1F2 +:1047C000B0E042E050E00C94FF23262FF999FECF91 +:1047D00092BD81BDF89A019700B4021639F01FBA54 +:1047E00020BD0FB6F894FA9AF99A0FBE0895019673 +:1047F000272F0E94E6230C94E523DC01CB01FC016A +:10480000F999FECF06C0F2BDE1BDF89A319600B429 +:0E4810000D9241505040B8F70895F894FFCF34 +:10481E0020022908B60893085F082C080101BC0184 +:10482E0028080A03140A3F4D36394B04FE03C80309 +:10483E008F0322033B0354036D0301020304050699 +:04484E00070809004E :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c index 24ff1c688..18bace4eb 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -7,6 +7,9 @@ #define SYMB 1 // symbols #define MDIA 2 // media keys +#define LSFTO M(0) // Left shift, open parens when tapped +#define RSFTC M(1) // Right shift, close parens when tapped + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * @@ -17,7 +20,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | 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 | + * |LShift/(|Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl|RShift/)| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' @@ -36,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), + LSFTO, 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, @@ -45,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), - MEH_T(KC_NO),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MEH_T(KC_NO),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), RSFTC, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), KC_PGUP, @@ -140,17 +143,37 @@ const uint16_t PROGMEM fn_actions[] = { [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) }; +static uint16_t key_timer; + 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 0: { + if (record->event.pressed) { + key_timer = timer_read(); // if the key is being pressed, we start the timer. + register_code(KC_LSFT); // we're now holding down Shift. + } 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. + register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren + unregister_code(KC_9); // now let's let go of that key + } + unregister_code(KC_LSFT); // let's release the Shift key now. + } + break; + } + case 1: { + if (record->event.pressed) { + key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key + register_code(KC_RSFT); + } else { + if (timer_elapsed(key_timer) < 150) { + register_code(KC_0); + unregister_code(KC_0); + } + unregister_code(KC_RSFT); + } + break; } - break; } return MACRO_NONE; }; @@ -183,3 +206,5 @@ void matrix_scan_user(void) { } }; + + -- cgit v1.2.3 From bf925fb71cf03d520f66baefa6af5c94ff5b7952 Mon Sep 17 00:00:00 2001 From: Roman Zolotarev Date: Tue, 26 Apr 2016 16:46:43 +0800 Subject: Add Roman's layout with QWERTY --- .../romanzolotarev-norman-qwerty-osx/keymap.c | 73 ++ .../romanzolotarev-norman-qwerty-osx/readme.md | 34 + .../romanzolotarev-norman-qwerty-osx.hex | 1139 ++++++++++++++++++++ .../romanzolotarev-norman-qwerty-osx.png | Bin 0 -> 100627 bytes 4 files changed, 1246 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex create mode 100644 keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c new file mode 100644 index 000000000..dd946c182 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -0,0 +1,73 @@ +#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) { +}; + +// 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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md new file mode 100644 index 000000000..0e78c130b --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex new file mode 100644 index 000000000..80ae0751b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.hex @@ -0,0 +1,1139 @@ +:100000000C940F020C9453020C9453020C94530260 +:100010000C9453020C9453020C9453020C9453020C +:100020000C9453020C9453020C94070C0C94D90CAE +:100030000C9453020C9453020C9453020C945302EC +:100040000C9453020C94A3210C9453020C9453026D +:100050000C9453020C94321B0C9453020C945302D4 +:100060000C9453020C9453020C9453020C945302BC +:100070000C9453020C9453020C9453020C945302AC +:100080000C9453020C9453020C9453020C9453029C +:100090000C9453020C9453020C9453020C9453028C +:1000A0000C9453020C9453020C945302460D680DA9 +:1000B000560E680D560EAD0DD00D560E250E380E8F +:1000C0002411241161116111A411E211FB13FB131E +:1000D000FB11FB13FC12FC12CF13FB13FB13E613F3 +:1000E00035002B00E000E1003A0000001E00140083 +:1000F00004001D003B00E2001F001A0016001B0058 +:100100003C00297120000700080006003D002A007D +:100110002100090017001900E300A90022000E00C9 +:100120000A0005000000AA003E00310000002F0078 +:100130000000A8003F000154000030000000AE00A5 +:1001400023000D001C0013000000AB002400180069 +:1001500011001000E700AC00250015000C0036006F +:1001600050002C0026000F00120037005100340010 +:10017000270033000B0038005200E6002E002D004F +:100180002800E5004F00000001000100010001000F +:100190000100000001000100010001000100010058 +:1001A0000100010001000100010001000100080040 +:1001B0000700010001000100010015000900010015 +:1001C0000100010001001700010001000000010012 +:1001D0000100010000000100000001000100010019 +:1001E000000001000000010001001C000B001100D4 +:1001F00000000100010018000D00010001000100D5 +:1002000001000C000E0001000100010001001200BD +:100210000F00010001000100010013003300010084 +:1002200001000100010001000100010001000000C7 +:1002300016034500720067006F0044006F007800ED +:10024000200045005A0000001603450072006700B8 +:100250006F0044006F007800200045005A00000045 +:100260000403090409026D00040100A0FA09040056 +:10027000000103010100092111010001223F0007D3 +:1002800005810308000A09040100010301020009B5 +:100290002111010001224D000705820308000A090F +:1002A00004020001030000000921110100012236AF +:1002B000000705830308000A090403000103000086 +:1002C00000092111010001223900070584031000F3 +:1002D000011201100100000008EDFE0713010001EA +:1002E00002000105010906A101050719E029E7152A +:1002F0000025019508750181020508190129059558 +:1003000005750191029501750391010507190029F1 +:100310007715002501957875018102C005010980D6 +:10032000A101850216010026B7001A01002AB700B4 +:10033000751095018100C0050C0901A10185031606 +:100340000100269C021A01002A9C02751095018169 +:1003500000C005010902A1010901A1000509190157 +:100360002905150025019505750181029501750383 +:1003700081010501093009311581257F9502750834 +:10038000810609381581257F950175088106050CC0 +:100390000A38021581257F950175088106C0C005C0 +:1003A000010906A101050719E029E71500250195B6 +:1003B0000875018102950175088101050819012957 +:1003C00005950575019102950175039101050719C0 +:1003D0000029FF150025FF950675088100C0000063 +:1003E000000000000000000000010204060A0F17D0 +:1003F000202C3A4A5D71879DB3C7DAE9F5FCFFFC12 +:10040000F5E9DAC7B39D87715D4A3A2C20170F0AC8 +:10041000060402010000000000000000000011249A +:100420001FBECFEFDAE0DEBFCDBF04B603FE24C0AF +:100430008091EE019091EF01A091F001B091F10156 +:100440008730904BA740B04BB9F41092EE01109258 +:10045000EF011092F0011092F10114BE84B7877F72 +:1004600084BF88E10FB6F89480936000109260001A +:100470000FBEE0E0FFE3099511E0A0E0B1E0E4ED9C +:10048000F6E402C005900D92A433B107D9F711E04C +:10049000A4E3B1E001C01D92AE3EB107E1F70E94B6 +:1004A0004B090C9468230C94000008950895609102 +:1004B000B1017091B2018091B3019091B4010E9499 +:1004C0005E1A56985E9825982D9826982E9827980B +:1004D0002F98813011F4259A2D9A08950C94570283 +:1004E00056985E9825982D9826982E9827982F989C +:1004F0008FEF90E0909389008093880090938B0019 +:1005000080938A0090938D0080938C00259A2D9A79 +:100510002FEF80E792E0215080409040E1F700C04B +:100520000000269A2E9A2FEF80E792E0215080401B +:100530009040E1F700C00000279A2F9A2FEF80E744 +:1005400092E0215080409040E1F700C000002598E3 +:100550002D982FEF80E792E0215080409040E1F706 +:1005600000C0000026982E982FEF80E792E02150DF +:1005700080409040E1F700C0000027982F985698DF +:100580005E9825982D9826982E9827982F9808954C +:1005900089EA8093800089E08093810024982C98D8 +:1005A0003F988AB18F748AB96E98479A8BB1806BE5 +:1005B0008BB9769A0E9470020C94560280E2809366 +:1005C00000018091340181110EC00E942D0381E051 +:1005D000809334012FEF83ED90E3215080409040D1 +:1005E000E1F700C0000080E40E9433038093000123 +:1005F00081112EC00E945D0380930001811128C0EB +:100600000E945D0380930001811122C08FE30E944C +:100610005D038093000181111BC00E94550380E49B +:100620000E94330380930001811112C08CE00E946C +:100630005D038093000181110BC00E945D038093D4 +:100640000001811105C08FE30E945D0380930001CA +:100650000E9455038091000108951092B9008AE02C +:100660008093B800089594EA9093BC009091BC00E8 +:1006700097FFFCCF9091B900987F983021F090318E +:1006800011F081E008958093BB0084E88093BC0062 +:100690008091BC0087FFFCCF8091B900887F8831B2 +:1006A00011F0803471F780E0089584E98093BC00F4 +:1006B0008091BC0084FDFCCF08958093BB0084E84A +:1006C0008093BC008091BC0087FFFCCF9091B90063 +:1006D000987F81E0983209F480E0089584E880935F +:1006E000BC008091BC0087FFFCCF8091BB000895C7 +:1006F00080910001811115C080E40E943303809332 +:10070000000181110CC082E10E945D038093000111 +:10071000811105C08FEF0E945D03809300010E944C +:10072000550384B1807F84B985B1807F85B98AB152 +:10073000837F8AB98BB1837F8BB93E9846980895A1 +:100740000E94DE02809300010E94780380B38C70C7 +:1007500080BB81B3836F81BBA6E3B1E0E4E4F1E049 +:100760008EE08E0F11921D928E13FCCF0C94C80256 +:10077000BF92CF92DF92EF92FF920F931F93CF938E +:10078000DF9380910001882379F0809135018F5F9C +:1007900080933501811108C00E94DE028093000120 +:1007A000811102C00E94700206E311E0C0E0D0E0B7 +:1007B000DD24D39482E0C82EEE24E394F12CC730DC +:1007C000D10500F580910001811164C080E40E9490 +:1007D000330380930001811112C082E10E945D0306 +:1007E0008093000181110BC0C7010C2E01C0880F3E +:1007F0000A94EAF780950E945D03809300010E94AD +:10080000550348C0CA30A1F028F4C83059F0C930A7 +:1008100061F005C0CC3089F070F0CD3089F0209ABD +:10082000289810C0219A29980DC0229A2A980AC0A7 +:10083000239A2B9807C0529A01C0539A5B9802C022 +:100840003E9A469890EA9A95F1F79FB1799902C03D +:1008500082E001C080E091709D25982B7C9902C0B8 +:1008600084E001C080E0892B7D9902C038E001C09E +:1008700030E0832B7E9902C020E101C020E0822B72 +:100880009FB19095991F9927991F9295990F907EE6 +:10089000892B0FC080910001811149C080E40E9422 +:1008A000330380930001882379F1B12C0E94550312 +:1008B0008B2DF8019081981719F08083C092010167 +:1008C0000E94780321960F5F1F4FCE30D10509F0AB +:1008D00076CF80910101882361F1815080930101DD +:1008E000882339F08FE99FE00197F1F700C00000FD +:1008F00020C0A4E4B1E0E6E3F1E0CF01825F919192 +:100900009D938E13FCCF15C083E10E945D038093FD +:1009100000018111CACF81E40E943303809300015A +:100920008111C3CF0E946E03B82EB094BFCF80E078 +:10093000C0CF0E946E0281E0DF91CF911F910F9195 +:10094000FF90EF90DF90CF90BF900895E82FF0E0F8 +:10095000EC5BFE4F808108950895089596E0799F9D +:10096000F001112494E5899FE00DF11D1124E60F9B +:10097000F11DEE0FFF1FE052FF4F859194910895F6 +:10098000880F991FFC01E05AF040859194910895D9 +:10099000880F991FFC01E052FF4F859194910895B3 +:1009A0000F931F93CF93DF93EC018115904350F584 +:1009B000C11580E2D80708F0B3C0CB3BD10590F455 +:1009C000C83AD10508F05AC0C53AD10508F04BC065 +:1009D000C430D10508F0BBC1219709F0B5C101E0D1 +:1009E00010E0F5C1CF3FD10511F008F0B0C1C03F14 +:1009F000D10508F092C0CE01805E9109089708F4F5 +:100A0000A6C1A2C1C11591E5D907A8F4C23020E55D +:100A1000D20708F09EC0C11580E5D80709F485C04B +:100A200008F091C0C11520E4D20708F08DC1DD2780 +:100A30008E01106CCCC1C11580E8D80758F4C115DF +:100A400090E7D90708F07CC1C11520E6D20708F469 +:100A500022C17AC1C11580E9D80708F075C1DF70DD +:100A60008E01106AB4C1C53AD10509F472C1C63A03 +:100A7000D10509F071C102E810E4A9C1C83AD10555 +:100A800009F46DC1C93AD10509F46CC1CA3AD1055E +:100A900009F46BC1CB3AD10509F46AC1CC3AD1054E +:100AA00009F469C1CD3AD10509F468C1C03BD1054B +:100AB00009F467C1CE3AD10509F466C1CF3AD10530 +:100AC00009F465C1C13BD10509F464C1C23BD1053C +:100AD00009F463C1C33BD10509F462C1C43BD1052C +:100AE00009F461C1C53BD10509F460C1C63BD1051C +:100AF00009F45FC1C73BD10509F45EC1C83BD1050C +:100B000009F45DC1C93BD10509F45CC1CA3BD105FB +:100B100009F45BC100E014E45AC18E01106557C1AD +:100B2000CE019F700E94C80453C10E941F149FEF02 +:100B300024E38CE0915020408040E1F700C00000A9 +:100B40000E94571B44C18091CD0181608093CD01EB +:100B50003EC10E94001D811102C00E94E61C0E943D +:100B60001D1D90E09093EE018093ED01C23090E561 +:100B7000D90721F48091ED01816086C0C43020E561 +:100B8000D20721F48091ED0182607EC0C63080E5FD +:100B9000D80721F48091ED01846076C0C83090E5DB +:100BA000D90719F48091ED0127C0CA3020E5D2079A +:100BB00021F48091ED01806167C0CC3080E5D807D9 +:100BC00021F48091ED0180625FC0CE3090E5D907BD +:100BD00021F48091ED01806457C0C03120E5D20737 +:100BE00021F48091ED0180684FC0C23180E5D807C3 +:100BF00029F48091ED018460886046C0C33090E59F +:100C0000D90721F48091ED018E7F3EC0C53020E5EB +:100C1000D20721F48091ED018D7F36C0C73080E589 +:100C2000D80721F48091ED018B7F2EC0C93090E56B +:100C3000D90719F48091ED0126C0CB3020E5D20709 +:100C400021F48091ED018F7E1FC0CD3080E5D80763 +:100C500021F48091ED018F7D17C0CF3090E5D90749 +:100C600021F48091ED018F7B0FC0C13120E5D207C7 +:100C700021F48091ED018F7707C0C331D04531F465 +:100C80008091ED018B7F877F8093ED018091ED0155 +:100C90000E94211D9CC08D2F99278F70992781302C +:100CA0009105D9F49E012370332702C0880F991F44 +:100CB0002A95E2F79C688E0144E0000F111F4A95C7 +:100CC000E1F700271370802B912B53E0CC0FDD1F31 +:100CD0005A95E1F7C076DD272FC08230910531F4B7 +:100CE000DC2FCC278E01016F106A71C08330910513 +:100CF00069F4CE018370992701E010E002C0000F73 +:100D0000111F8A95E2F7C8019C680FC0049709F08B +:100D10005EC0CE018370992701E010E002C0000F91 +:100D2000111F8A95E2F7C8019A6823E0CC0FDD1FF6 +:100D30002A95E1F7C07ED7708C010C2B1D2B47C084 +:100D4000DF708E01106243C000E010E040C08E01F1 +:100D50003EC001E810E43BC003E810E438C002EEF6 +:100D600014E435C009EE14E432C00AEE14E42FC0D6 +:100D700005EB14E42CC006EB14E429C007EB14E4E3 +:100D800026C00CEC14E423C00DEC14E420C003E8EE +:100D900015E41DC00AE815E41AC002E915E417C0FD +:100DA00004E915E414C001E216E411C003E216E4FC +:100DB0000EC004E216E40BC005E216E408C006E229 +:100DC00016E405C007E216E402C00AE216E4C80110 +:100DD000DF91CF911F910F91089596E0799FF001D7 +:100DE000112494E5899FE00DF11D1124E60FF11DFA +:100DF000EE0FFF1FE052FF4F85919491803E9105C9 +:100E0000E0F4803C910558F58133910509F46FC0F9 +:100E100048F48932910509F463C08A32910509F4D6 +:100E20006DC072C089339105E9F082389105D1F027 +:100E30008533910509F44DC067C0833E910581F16A +:100E400038F4803E9105B9F0823E9105D9F05CC03E +:100E5000863E910561F1873E9105A1F155C00E9442 +:100E6000C00408952091ED0120FD02C021FF4CC077 +:100E700080EE90E049C08091ED0180FFF9CF89E3D9 +:100E800090E042C08091ED0182FF0EC08091ED01A3 +:100E900084FF03C080E090E037C083EE90E034C070 +:100EA0008091ED0182FFF2CF82EE90E02DC0809123 +:100EB000ED0183FF0BC08091ED0184FDEBCF87EE48 +:100EC00090E022C08091ED0183FFF5CF86EE90E0A7 +:100ED0001BC08091ED0185FF07C089E290E014C03E +:100EE0008091ED0185FFF9CF85E390E00DC0809101 +:100EF000ED0186FF07C08AE290E006C08091ED0117 +:100F000086FFF9CF81E390E00E94D0040895089510 +:100F10000C948707809162010895CF93DF9300D0EE +:100F20001F92CDB7DEB79C018091E401843019F5A2 +:100F300093E099833B832A839093E9008FEF90910C +:100F4000E800815095FD06C095ED9A95F1F70000F7 +:100F50008111F5CF8091E80085FF0DC040E050E0A1 +:100F600063E070E0CE0101960E94F7098091E800ED +:100F70008E778093E8000F900F900F90DF91CF91C4 +:100F80000895CF93DF9300D01F92CDB7DEB72091A5 +:100F9000E401243021F522E029839B838A8383E0C6 +:100FA0008093E9008FEF9091E800815095FD06C095 +:100FB00095ED9A95F1F700008111F5CF8091E80049 +:100FC00085FF0DC040E050E063E070E0CE01019687 +:100FD0000E94F7098091E8008E778093E8000F90D7 +:100FE0000F900F90DF91CF9108952091E40124306C +:100FF000F1F422E02093E9002FEF3091E800215036 +:1010000035FD06C035ED3A95F1F700002111F5CF19 +:101010002091E80025FF0BC040E050E065E070E063 +:101020000E94F7098091E8008E778093E800089588 +:10103000CF93DF93EC019091E401943009F046C026 +:1010400080910C018823D9F080910D018823B9F09B +:101050009093E9008FEF9091E800815095FD06C0D4 +:1010600095E19A95F1F700008111F5CF8091E800A4 +:1010700085FF2CC040E050E060E170E017C081E0E7 +:101080008093E9008FEF9091E800815095FD06C0B4 +:1010900095ED9A95F1F700008111F5CF8091E80068 +:1010A00085FF14C040E050E068E070E0CE010E948F +:1010B000F7098091E8008E778093E80080E1FE01D7 +:1010C000A2E5B1E001900D928A95E1F7DF91CF9111 +:1010D00008958091E301811109C00E948C0B0E9448 +:1010E000E90B8091E20084608093E2000895109201 +:1010F000E301089508950C9490210E94ED1A0E9436 +:1011000096210E948F0E0C94880742E061EC81E0EA +:101110000E94060B42E061EC82E00E94060B42E076 +:1011200061EC83E00E94060B42E161EC84E00C94E8 +:10113000060B8091E601833009F455C030F481300C +:1011400071F0823009F48EC008958A3009F47AC0B3 +:101150008B3009F460C0893009F09CC020C08091B8 +:10116000E501813A09F096C08091E800877F80937D +:10117000E8008091E9019091EA01892B21F460E176 +:1011800082E591E003C060E080E090E070E00E94C2 +:10119000420A8091E8008B778093E800089580915F +:1011A000E501813209F076C08091E9019091EA0170 +:1011B000009719F0039709F06DC08091E800877FD0 +:1011C0008093E8008091E80082FD05C08091E401F1 +:1011D0008111F8CF5FC08091F1008093620180910E +:1011E000E8008B7753C08091E501813A09F052C045 +:1011F0008091E9019091EA01892B09F04BC080911F +:10120000E800877F8093E8008091E80080FFFCCFB2 +:1012100080910C0136C08091E5018132D9F5809131 +:10122000E9019091EA01892BA9F58091E800877F77 +:101230008093E8000E943B0B8091E70180930C01B2 +:101240000C941F148091E501813221F58091E80012 +:10125000877F8093E8000E943B0B8091E801809398 +:10126000630108958091E501813AA1F48091E8003D +:10127000877F8093E8008091E80080FFFCCF809119 +:1012800063018093F1008091E8008E778093E800FD +:101290000C943B0B089584B7877F84BF88E10FB619 +:1012A000F89480936000109260000FBE90E080E898 +:1012B0000FB6F89480936100909361000FBE0E9476 +:1012C000DE0E0E948C0B0E94E90B8091E20084608C +:1012D0008093E20078940E946F0E0E94E00E82E0FC +:1012E00091E00E948A0E0E947E218091E401853067 +:1012F00069F40E94AE1A8091E2018823B1F30E9442 +:10130000D91A882391F30E94E109EFCF0E94E60EDB +:10131000ECCF292F332723303105C9F064F4213075 +:10132000310581F02230310509F043C08DE690E0AF +:1013300024E632E042C021323105F1F0223231059B +:1013400041F137C082E190E021ED32E036C09927CB +:101350008130910541F08230910541F0892B49F5AA +:10136000E0E6F2E005C0E8E4F2E002C0E0E3F2E02B +:10137000849190E09F0121C06430D8F4E62FF0E022 +:10138000EE0FFF1FEE5DFE4F2081318189E090E07E +:1013900014C0643070F470E0FB01EE0FFF1FE65ED6 +:1013A000FE4F20813181FB01EA5EFE4F808190E09B +:1013B00004C080E090E020E030E0FA013183208337 +:1013C000089580E189BD82E189BD09B400FEFDCFA9 +:1013D0008091D8008F7D8093D8008091E00082605A +:1013E0008093E0008091E00081FDFCCF0895CF92D2 +:1013F000DF92EF92FF920F931F93CF93DF93EC0155 +:101400008B016A010E945A0B811133C0C114D104AF +:1014100039F0F60180819181081B190BC80FD91F83 +:10142000E12CF12C0115110519F18091E80085FDE1 +:1014300016C08091E8008E778093E800C114D10433 +:1014400049F0F60180819181E80EF91EF182E08277 +:1014500085E00FC00E945A0B882321F30AC08991AE +:101460008093F10001501109FFEFEF1AFF0ADACF64 +:1014700080E0DF91CF911F910F91FF90EF90DF906F +:10148000CF9008952091EB013091EC01261737079A +:1014900048F06115710539F42091E8002E7720930A +:1014A000E80001C0B90140E061157105A9F1209182 +:1014B000E401222309F443C0253009F442C02091FD +:1014C000E80023FD40C02091E80022FD32C02091B9 +:1014D000E80020FFE9CF4091F3002091F20030E0D6 +:1014E000342BFC01CF016115710559F0283031050D +:1014F00040F481918093F100615071092F5F3F4F5B +:10150000F1CF41E02830310509F040E02091E800BA +:101510002E772093E800C8CF4111C9CF0AC080912F +:10152000E401882361F0853061F08091E80083FD5B +:101530000AC08091E80082FFF2CF80E0089582E047 +:10154000089583E0089581E008952091EB013091A2 +:10155000EC012617370748F06115710539F4209121 +:10156000E8002E772093E80001C0B901FC0120E0DB +:101570006115710591F18091E401882309F440C05F +:10158000853009F43FC08091E80083FD3DC0809123 +:10159000E80082FD2FC08091E80080FFE9CF209114 +:1015A000F3008091F20090E0922B6115710559F0E3 +:1015B0008830910540F424912093F10031966150D8 +:1015C00071090196F2CF21E0089709F020E080919F +:1015D000E8008E778093E800CBCF2111CCCF0AC0F2 +:1015E0008091E401882361F0853061F08091E8000A +:1015F00083FD0AC08091E80082FFF2CF80E0089569 +:1016000082E0089583E0089581E00895982F97304F +:1016100058F59093E900981739F07091EC002091FB +:10162000ED005091F00003C0242F762F50E021FFF1 +:1016300019C03091EB003E7F3093EB003091ED000C +:101640003D7F3093ED003091EB0031603093EB0043 +:101650007093EC002093ED005093F0002091EE0089 +:1016600027FF07C09F5FD3CF8F708093E90081E091 +:10167000089580E008958091E50187FF11C0809171 +:10168000E80082FD05C08091E4018111F8CF11C00E +:101690008091E8008B770BC08091E401882349F0AA +:1016A0008091E80080FFF8CF8091E8008E778093EA +:1016B000E80008952091E4003091E50095E640911E +:1016C000EC00842F817040FF22C08091E80080FDF3 +:1016D0001CC08091E401882391F0853091F08091C5 +:1016E000EB0085FD10C04091E4005091E5004217E9 +:1016F000530729F39A01915011F784E0089582E08D +:10170000089583E0089581E0089580E00895409170 +:10171000E80042FFDECF08950E94FA0B0E94020CFF +:10172000E0EEF0E0808181608083E8EDF0E0808190 +:101730008F77808319BCA7EDB0E08C918E7F8C935E +:1017400080818F7E80831092E30108950F931F9311 +:10175000CF93DF930E94FA0B0E94020CC8EDD0E0F9 +:1017600088818F77888388818068888388818F7D4E +:10177000888319BC1092E4011092E0011092E201FA +:101780001092E10100EE10E0F80180818B7F8083F0 +:1017900088818160888342E060E080E00E94060BDF +:1017A000E1EEF0E080818E7F8083E2EEF0E08081E8 +:1017B00081608083808188608083F80180818E7F52 +:1017C0008083888180618883DF91CF911F910F9101 +:1017D0000895E8EDF0E080818F7E8083E7EDF0E012 +:1017E00080818160808384E082BF81E08093E30117 +:1017F0000C94A60BE8EDF0E080818E7F8083109240 +:10180000E20008951092DA001092E10008951F920C +:101810000F920FB60F9211242F933F934F935F9324 +:101820006F937F938F939F93AF93BF93EF93FF93A8 +:101830008091E10082FF0BC08091E20082FF07C02F +:101840008091E1008B7F8093E1000E946E0E809179 +:10185000DA0080FF1FC08091D80080FF1BC08091FC +:10186000DA008E7F8093DA008091D90080FF0DC06E +:1018700080E189BD82E189BD09B400FEFDCF81E030 +:101880008093E4010E94690805C019BC1092E4012C +:101890000E9477088091E10080FF19C08091E200EA +:1018A00080FF15C08091E2008E7F8093E2008091DE +:1018B000E20080618093E2008091D8008062809392 +:1018C000D80019BC85E08093E4010E947B088091D8 +:1018D000E10084FF30C08091E20084FF2CC080E1F1 +:1018E00089BD82E189BD09B400FEFDCF8091D80099 +:1018F0008F7D8093D8008091E1008F7E8093E100FE +:101900008091E2008F7E8093E2008091E20081600E +:101910008093E2008091E001882311F084E007C009 +:101920008091E30087FD02C081E001C083E08093E5 +:10193000E4010E947D088091E10083FF29C080912D +:10194000E20083FF25C08091E100877F8093E10062 +:1019500082E08093E4011092E0018091E1008E7FAB +:101960008093E1008091E2008E7F8093E20080917D +:10197000E20080618093E20042E060E080E00E944B +:10198000060B8091F00088608093F0000E947A0836 +:10199000FF91EF91BF91AF919F918F917F916F9147 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F920F920FB60F9211242F933F93F9 +:1019C0004F935F936F937F938F939F93AF93BF9347 +:1019D000CF93DF93EF93FF93C091E900CF70809195 +:1019E000EC00D82FD17080FDD0E81092E9008091F2 +:1019F000F000877F8093F00078940E941D0D109274 +:101A0000E9008091F00088608093F000CD2BCF70CA +:101A1000C093E900FF91EF91DF91CF91BF91AF911A +:101A20009F918F917F916F915F914F913F912F91F6 +:101A30000F900FBE0F901F9018951F93CF93DF93B9 +:101A4000CDB7DEB7AA970FB6F894DEBF0FBECDBFF5 +:101A5000E5EEF1E088E08E0F9091F10091938E1306 +:101A6000FBCF0E9499088091E80083FF1FC18091FD +:101A7000E5019091E601492F50E04A30510508F008 +:101A800015C1FA01EA5AFF4F0C941823803881F0EF +:101A9000823809F00BC18091E9018F708093E900D1 +:101AA0008091EB0085FB882780F91092E90006C041 +:101AB0008091E1019091E201911182609091E800A2 +:101AC000977F9093E8008093F1001092F100C8C0D6 +:101AD000282F2D7F09F0EAC0882319F0823061F0A9 +:101AE000E5C08091E701813009F0E0C0933009F052 +:101AF00080E08093E2012BC08091E701811127C033 +:101B00008091E9018F7009F4D1C08093E9002091A0 +:101B1000EB0020FF1CC0933021F48091EB00806229 +:101B200014C09091EB0090619093EB0021E030E0C5 +:101B3000A90102C0440F551F8A95E2F74093EA00BD +:101B40001092EA008091EB0088608093EB00109285 +:101B5000E9008091E800877F86C08111A7C01091BD +:101B6000E7011F778091E3008078812B8093E30069 +:101B70008091E800877F8093E8000E943B0B809172 +:101B8000E80080FFFCCF8091E30080688093E30051 +:101B9000111102C082E001C083E08093E40186C09D +:101BA0008058823008F082C08091E7019091E8016E +:101BB0008C3D53E0950779F583E08A838AE2898337 +:101BC0004FB7F894DE01139620E03EE051E2E32F98 +:101BD000F0E050935700E49120FF03C0E295EF70CE +:101BE0003F5FEF708E2F90E0EA3010F0C79601C093 +:101BF000C0968D939D932F5F243149F74FBF8091FD +:101C0000E800877F8093E8006AE270E0CE010196E9 +:101C10000E94420A14C0AE014F5F5F4F6091E9011C +:101C20000E948909BC01892B09F440C09091E80009 +:101C3000977F9093E80089819A810E94A50A8091FC +:101C4000E8008B778093E80031C0803879F5809187 +:101C5000E800877F8093E8008091E0018093F100A5 +:101C60008091E8008E778093E8000E943B0B1EC0B5 +:101C700081111CC09091E7019230C0F48091E8007E +:101C8000877F8093E8009093E0010E943B0B809156 +:101C9000E001811106C08091E30087FD02C081E070 +:101CA00001C084E08093E4010E9485088091E800EF +:101CB00083FF0AC08091E800877F8093E8008091CD +:101CC000EB0080628093EB00AA960FB6F894DEBF1B +:101CD0000FBECDBFDF91CF911F9108950895CF938F +:101CE0008091E4018823A1F0C091E900CF70909128 +:101CF000EC00892F817090FD80E8C82B1092E900DC +:101D00008091E80083FD0E941D0DCF70C093E90013 +:101D1000CF91089590936901809368010895E091AF +:101D20006801F0916901309721F00190F081E02D78 +:101D3000099480E00895E0916801F091690130977D +:101D400021F00280F381E02D09940895E09168016B +:101D5000F0916901309721F00480F581E02D09941C +:101D6000089520916601309167018217930771F001 +:101D70009093670180936601E0916801F091690199 +:101D8000309721F00680F781E02D09940895209185 +:101D90006401309165018217930771F0909365019A +:101DA00080936401E0916801F0916901309721F01E +:101DB0000084F185E02D0994089508950C94DD0EBA +:101DC0000E94F31A0E94A0030C94B91BCF92DF92D9 +:101DD000EF92FF920F931F93CF93DF93CDB7DEB7B0 +:101DE0002B970FB6F894DEBF0FBECDBF0E94B8038D +:101DF0008BE6C82E81E0D82E00E010E0E02E802F88 +:101E00000E94A604F60141916F01F42EF826B1F468 +:101E10000F5F1F4F0E30110589F78FEF89838A837B +:101E20001B820E94FC1A8160782F9D838C834981DC +:101E30005A816B818D810E94890F40C09091CD01A4 +:101E400091FF04C08B870E94AC048B8520E030E0BA +:101E50004F2D50E0922FBA01022E02C07595679562 +:101E60000A94E2F760FF24C02E83EF8221E030E085 +:101E7000690102C0CC0CDD1C9A95E2F790E08C2140 +:101E80009D21892B09F420E028870E94FC1A81609B +:101E9000782F9A8789874E815F8168858A850E941D +:101EA000890FF801E559FE4F8081C826C08206C01F +:101EB0002F5F3F4F2630310569F6AACF0E94A01E42 +:101EC00010916A010E948F0E1817A1F00E948F0EC8 +:101ED00080936A012B960FB6F894DEBF0FBECDBF7C +:101EE000DF91CF911F910F91FF90EF90DF90CF90F6 +:101EF0000C9488072B960FB6F894DEBF0FBECDBFAB +:101F0000DF91CF911F910F91FF90EF90DF90CF90D5 +:101F10000895CF93DF93CDB7DEB72B970FB6F89424 +:101F2000DEBF0FBECDBF4F83588769877A878B8707 +:101F3000DE01119686E0FD0111928A95E9F785E0B0 +:101F4000FE01379601900D928A95E1F749815A81F9 +:101F50006B817C818D819E810E94B9162B960FB674 +:101F6000F894DEBF0FBECDBFDF91CF9108950895E5 +:101F7000CF93882309F4C2C0C82F823859F40E9435 +:101F80008F0E81FDBBC089E30E9462190E942F1A47 +:101F900089E30CC0833879F40E948F0E80FDAEC0B7 +:101FA00083E50E9462190E942F1A83E50E94A419FA +:101FB000CF910C942F1A843859F40E948F0E82FD11 +:101FC0009DC087E40E9462190E942F1A87E4EECF19 +:101FD0008CEF8C0F813A48F48C2F0E94E320811102 +:101FE0008DC08C2F0E946219E3CF80E28C0F883065 +:101FF00048F4C77081E001C0880FCA95EAF70E94D3 +:10200000E819D6CF8BE58C0F833078F4C53A29F0E8 +:10201000C63A31F083E890E005C081E890E002C064 +:1020200082E890E0CF910C94B10E88E58C0F83315B +:1020300008F064C0C83A39F1C93A41F1CA3A49F1E5 +:10204000CB3A51F1CC3A59F1CD3A61F1C03B69F14B +:10205000CE3A71F1CF3A79F1C13B81F1C23B89F1BE +:10206000C33B91F1C43B99F1C53BA1F1C63BA9F13A +:10207000C73BB1F1C83BB9F1C93BC1F1CA3BC9F19A +:1020800080E090E038C082EE90E035C089EE90E0CC +:1020900032C08AEE90E02FC085EB90E02CC086EB3A +:1020A00090E029C087EB90E026C08CEC90E023C044 +:1020B0008DEC90E020C083E891E01DC08AE891E0BB +:1020C0001AC082E991E017C084E991E014C081E26E +:1020D00092E011C083E292E00EC084E292E00BC075 +:1020E00085E292E008C086E292E005C087E292E0D5 +:1020F00002C08AE292E0CF910C94C70ECF9108956E +:10210000882309F44BC0823859F40E948F0E81FF56 +:1021100045C089E30E9462190E942F1A89E30CC00E +:10212000833871F40E948F0E80FF38C083E50E94CF +:1021300062190E942F1A83E50E94A4190C942F1A89 +:10214000843859F40E948F0E82FF28C087E40E94D1 +:1021500062190E942F1A87E4EFCF9CEF980F913AF3 +:1021600058F390E2980F983050F4877091E001C0D6 +:10217000990F8A95EAF7892F0E94EE19DFCF9BE528 +:10218000980F933020F480E090E00C94B10E885AC0 +:10219000833120F480E090E00C94C70E08958823EA +:1021A00021F00E94E8190C942F1A0895882321F039 +:1021B0000E94EE190C942F1A0895BF92CF92DF92CD +:1021C000EF92FF920F931F93CF93DF9300D000D035 +:1021D00000D0CDB7DEB725E0FC01DE0111960190FD +:1021E0000D922A95E1F7FC01D080118102812581B1 +:1021F00022952F7043815481452B09F4FCC21F3F67 +:1022000021F4FFEFDF1609F4F6C27C012E830E9451 +:10221000B70FD9821A8369817A81802F0E945E1953 +:10222000182FB92E0E9413190E94DA172E8100234D +:1022300019F00E94051A2E81EB2DE295EF70F0E067 +:10224000E05AFF4F0C9418238B2D807F9B2D9F709D +:10225000F92E882319F0F29480EFF822002389F0F8 +:10226000FF2009F475C280E2810F883020F48F2DA1 +:102270000E94E81903C08F2D0E94F8190E942F1A9E +:1022800067C2812F0E948010FF2009F4B4C2105E43 +:102290008F2D183018F40E94EE1902C00E94FE190A +:1022A00026960FB6F894DEBF0FBECDBFDF91CF915B +:1022B0001F910F91FF90EF90DF90CF90BF900C9403 +:1022C0002F1A3B2D307F8B2D8F70303211F082957D +:1022D000807F112319F0113021F12CC00023B9F0B7 +:1022E000222309F4A0C1213009F09DC126960FB622 +:1022F000F894DEBF0FBECDBFDF91CF911F910F913C +:10230000FF90EF90DF90CF90BF900C94181A22238B +:1023100019F0213009F46FC28E830E941B1A8E813E +:1023200096C1002321F0223008F065C27CC1211142 +:1023300062C28DC1002321F0222309F474C108C2B6 +:10234000222309F484C119C22B2D269526952370CA +:1023500030E02115310521F021303105D1F04BC29B +:10236000002321F0812F9B2D937002C080E090E02C +:1023700026960FB6F894DEBF0FBECDBFDF91CF918A +:102380001F910F91FF90EF90DF90CF90BF900C9432 +:10239000B10E002321F0812F9B2D937002C080E0AD +:1023A00090E026960FB6F894DEBF0FBECDBFDF914A +:1023B000CF911F910F91FF90EF90DF90CF90BF9042 +:1023C0000C94C70E812F002319F00E94A81D02C093 +:1023D0000E94101E26960FB6F894DEBF0FBECDBF2A +:1023E000DF91CF911F910F91FF90EF90DF90CF90F1 +:1023F000BF900C94951E8B2D837009F07BC001114A +:10240000FAC1812F829586958770880F880F912F4A +:102410009F70C92ED12CE12CF12C082E04C0CC0CBD +:10242000DD1CEE1CFF1C0A94D2F714FF12C04FE013 +:1024300050E060E070E004C0440F551F661F771F36 +:102440008A95D2F7CB01BA016095709580959095E9 +:1024500003C060E070E0CB012B2D269526952370FC +:10246000422F50E042305105D9F04330510569F117 +:102470006C297D298E299F294130510551F12696DD +:102480000FB6F894DEBF0FBECDBFDF91CF911F9185 +:102490000F91FF90EF90DF90CF90BF900C940118B8 +:1024A0006C297D298E299F2926960FB6F894DEBFC8 +:1024B0000FBECDBFDF91CF911F910F91FF90EF9095 +:1024C000DF90CF90BF900C941D180E940118C70197 +:1024D000B60126960FB6F894DEBF0FBECDBFDF91D2 +:1024E000CF911F910F91FF90EF90DF90CF90BF9011 +:1024F0000C94E517002319F08B2D817001C086958F +:10250000882309F478C1812F829586958770880F7A +:10251000880F912F9F70C92ED12CE12CF12C082E01 +:1025200004C0CC0CDD1CEE1CFF1C0A94D2F714FF77 +:1025300012C04FE050E060E070E004C0440F551F4F +:10254000661F771F8A95D2F7CB01BA016095709507 +:102550008095909503C060E070E0CB012B2D26950F +:1025600026952370422F50E042305105D9F0433078 +:10257000510569F16C297D298E299F29413051052A +:1025800051F126960FB6F894DEBF0FBECDBFDF9196 +:10259000CF911F910F91FF90EF90DF90CF90BF9060 +:1025A0000C94DB186C297D298E299F2926960FB65D +:1025B000F894DEBF0FBECDBFDF91CF911F910F9179 +:1025C000FF90EF90DF90CF90BF900C94F7180E948F +:1025D000DB18C701B60126960FB6F894DEBF0FBE12 +:1025E000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1025F000CF90BF900C94BF18103FD1F118F4103E4B +:1026000050F4A1C0123F09F463C008F44CC0133F5A +:1026100009F473C098C01F708B2D8F710023A1F037 +:102620000E945818812F26960FB6F894DEBF0FBE71 +:10263000CDBFDF91CF911F910F91FF90EF90DF9071 +:10264000CF90BF900C94CF100E947918812F2696BE +:102650000FB6F894DEBF0FBECDBFDF91CF911F91B3 +:102660000F91FF90EF90DF90CF90BF900C94D61019 +:102670000023A9F02111BFC08B2D8F7126960FB6B4 +:10268000F894DEBF0FBECDBFDF91CF911F910F91A8 +:10269000FF90EF90DF90CF90BF900C949E18223067 +:1026A00008F0A9C0E9CF0023A9F08B2D8F712696E1 +:1026B0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1026C0000F91FF90EF90DF90CF90BF900C9458182F +:1026D000002359F38B2D8F7126960FB6F894DEBF29 +:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 +:1026F000DF90CF90BF900C947918002399F08B2D28 +:102700008F7126960FB6F894DEBF0FBECDBFDF9156 +:10271000CF911F910F91FF90EF90DF90CF90BF90DE +:102720000C94431826960FB6F894DEBF0FBECDBFAB +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:10274000BF900C9439180023A9F0222309F4ADCFCF +:10275000812F26960FB6F894DEBF0FBECDBFDF9156 +:10276000CF911F910F91FF90EF90DF90CF90BF908E +:102770000C94B80F222309F4ADCF812F26960FB603 +:10278000F894DEBF0FBECDBFDF91CF911F910F91A7 +:10279000FF90EF90DF90CF90BF900C9480104B2D66 +:1027A0004F70612FC7010E94550226960FB6F8940C +:1027B000DEBF0FBECDBFDF91CF911F910F91FF9074 +:1027C000EF90DF90CF90BF900C945D174B2D4F7022 +:1027D000612FC70126960FB6F894DEBF0FBECDBF9E +:1027E000DF91CF911F910F91FF90EF90DF90CF90ED +:1027F000BF900C94AD0426960FB6F894DEBF0FBEC2 +:10280000CDBFDF91CF911F910F91FF90EF90DF909F +:10281000CF90BF9008950E94051A0E94151A0E9439 +:10282000DA190E942F1A0E94461F0E94951E80E00E +:1028300090E00E94B10E80E090E00C94C70E0E94E0 +:10284000F5190C940B140E945319292F22952F70FF +:1028500030E02C3031054CF42A3031056CF4225034 +:1028600031092230310588F407C02C30310549F098 +:102870002F30310531F009C0803E48F0803F29F407 +:1028800006C093FB882780F9089580E0089581E0D1 +:102890000895CF93DF9300D000D01F92CDB7DEB75D +:1028A0000F900F900F900F900F90DF91CF910895A0 +:1028B000CF93DF9300D000D000D0CDB7DEB72696FF +:1028C0000FB6F894DEBF0FBECDBFDF91CF91089554 +:1028D0001F93CF93DF93C091790116E080917A0125 +:1028E000C81799F0D0E01C9FF0011D9FF00D112436 +:1028F000E558FE4F408151816281738184819581C9 +:102900000E9458142196C770E9CFDF91CF911F9193 +:1029100008954091AB015091AC016091AD0170916F +:10292000AE018091AF019091B0010C945814809148 +:10293000B00182958F7009F054C08091AD01882359 +:1029400009F44FC080917901A0917A016091AB01A7 +:102950007091AC014091AE015091AF01B6E08A1781 +:1029600009F43FC090E041155105C1F17F3F11F4DA +:102970006F3FA1F1B89FF001B99FF00D1124E55808 +:10298000FE4F218172132AC02081621327C0228149 +:10299000211124C0238134812417350710F42150DC +:1029A0003109241B350B283C3105C0F42091B001BE +:1029B0002F7020612093B00126E0289FF001299F0D +:1029C000F00D1124E058FE4F80818F70806180836C +:1029D0008BEA91E00E94DD100C94681401968770D8 +:1029E000BECF0895CF92DF92EF92FF920F931F9385 +:1029F000CF93DF93CDB7DEB762970FB6F894DEBF03 +:102A00000FBECDBF8C0185E0F801DE011D9601905F +:102A10000D928A95E1F7D8014C9111965C9111972E +:102A200012966C9112971396CD90DC90149730917A +:102A3000AB017091AC018091AE019091AF01009714 +:102A400009F46BC17F3F19F43F3F09F466C1E09080 +:102A5000AD01EE2009F4C0C02091B001C816D9061E +:102A600028F0F601E81BF90BCF0104C08095909582 +:102A70008C0D9D1DFF24F394883C910578F0F12C7A +:102A8000207F09F0C6C07C2DD98AC88A89890E9416 +:102A900049148BEA91E00E94DD10B1C0822F807F43 +:102AA00009F046C0751314C0341312C0611110C070 +:102AB0002F7020612093B0010E9489148BEA91E06D +:102AC0000E94DD108091B001D80115968C932EC024 +:102AD000CD2819F15F3F11F44F3FF9F0F62E611147 +:102AE0001CC08091790120917A0136E0821709F4A7 +:102AF0005AC090E0389FF001399FF00D1124E5583D +:102B0000FE4F7181571306C07081471303C0728155 +:102B1000711103C001968770E9CFF62E662309F480 +:102B200018C18091B00181608093B001F12C11C176 +:102B3000751308C0341306C0611104C08091B00140 +:102B4000D801C3C04D875E878D859E856A8B0E94A4 +:102B500023146A898823E1F16623D1F12091B00121 +:102B6000822F82958F7090E0029774F08091AB0174 +:102B70009091AC0198878F831986DB86CA862C8753 +:102B8000CE0107960E94DD1086E0F801ABEAB1E0C5 +:102B900001900D928A95E1F70E9497140E94891482 +:102BA000FF24F394D6C04D875E878D859E850E9455 +:102BB0005319292F22952F7030E0223031050CF067 +:102BC000BCC09F7009F0B6C0805E883008F4C1C0F8 +:102BD000C8010E94DD10E4CFC816D90608F453C01E +:102BE000F601E81BF90BCF01883C910508F450C0B1 +:102BF000F12C7C2DD98AC88A89890E944914EBEA74 +:102C0000F1E086E0DF011D928A95E9F70E948914C0 +:102C1000A0C0751314C0341312C0611110C080918C +:102C2000B001F8018583C8010E94DD1086E0EBEA5F +:102C3000F1E0DF011D928A95E9F7FE2C8AC04D87ED +:102C40005E878D859E856A8B0E9423146A898823FE +:102C500009F4BECF662309F4BBCF2091B001822FC7 +:102C600082958F7090E002970CF48ECF8091AB012B +:102C70009091AC019A8389831B82DD82CC822E8362 +:102C8000CE0101967FCF809590958C0D9D1DACCF88 +:102C9000F62E662309F49CCF75132EC034132CC076 +:102CA0002091B00120FD1FC0822F82958F70D9F036 +:102CB000D80115962C9315978F3049F08F5F982F78 +:102CC0009295907F822F8F70892B15968C93C801D7 +:102CD0000E94DD1086E0F801ABEAB1E001900D92B0 +:102CE0008A95E1F793CF86E0F801ABEAB1E0019075 +:102CF0000D928A95E1F72DC04D875E878D859E8563 +:102D00000E942314811140CF8091B0018160809393 +:102D1000B001C8010E94DD101CC0662309F458CF21 +:102D20004D875E878D859E850E942314882309F434 +:102D30004FCF2ACF811148CF0CC0243031050CF081 +:102D400047CF9F7009F440CFF8019581907F09F03B +:102D50003BCF8F2D62960FB6F894DEBF0FBECDBF6E +:102D6000DF91CF911F910F91FF90EF90DF90CF9067 +:102D700008951F93CF93DF93CDB7DEB72C970FB68F +:102D8000F894DEBF0FBECDBF4F83588769877A871F +:102D90008B879C87CE0107960E94F214882369F0E6 +:102DA0008F8198852A853B85232BF1F19F3F09F080 +:102DB00063C08F3F09F060C037C086E0FE013796E0 +:102DC000DE01119601900D928A95E1F76F81788569 +:102DD000EA85FB85309741F17F3F11F46F3F21F188 +:102DE00020917A0130E0C9010196877099274091BE +:102DF000790150E08417950709F447C069837A8305 +:102E0000FD83EC8396E0929FD001939FB00D112437 +:102E1000A558BE4FFE01319601900D929A95E1F7AB +:102E200080937A010E94681416E080917901909154 +:102E30007A018917C1F1189FC001112485589E4F4E +:102E40000E94F214882379F1E09179011E9FF0012C +:102E50001124E558FE4F4081518162817381848144 +:102E600095810E9458148091790190E001968770B5 +:102E7000992780937901D9CF4F81588569857A85C3 +:102E80008B859C850E945814CFCF0E941F141092EE +:102E90007A0110927901EBEAF1E086E0DF011D9200 +:102EA0008A95E9F7C1CF2C960FB6F894DEBF0FBE16 +:102EB000CDBFDF91CF911F910895EF92FF920F93B5 +:102EC0001F93CF93DF938C01892B09F46CC0F12CF5 +:102ED000EE24E394E8012196F8018491843740F4CC +:102EE000843008F051C0813081F0823019F15BC02C +:102EF000853709F444C0A8F19CE7980F903708F093 +:102F000052C08F770E94801041C00E5F1F4FFE019C +:102F1000C49180E28C0F883048F4C7708E2D01C0B8 +:102F2000880FCA95EAF70E94081A14C08C2F0E94D5 +:102F3000B80F2DC00E5F1F4FFE01C49180E28C0FB1 +:102F4000883058F4C7708E2D01C0880FCA95EAF7F3 +:102F50000E940E1A0E942F1A1AC08C2F0E948010F5 +:102F600016C00E5F1F4FFE01C491CC2381F08FE984 +:102F70009FE00197F1F700C00000C150F6CF0E5F4F +:102F80001F4FFE01F49003C00E94B80F8E018F2DD9 +:102F9000882309F49FCFEFE9FFE03197F1F700C0F4 +:102FA00000008150F5CFDF91CF911F910F91FF90DD +:102FB000EF90089508956093B5017093B6018093E2 +:102FC000B7019093B8010C940B140F931F930091C9 +:102FD000B5011091B6012091B7013091B801DC0123 +:102FE000CB01802B912BA22BB32B8093B501909317 +:102FF000B601A093B701B093B8011F910F910C9443 +:103000000B140F931F930091B5011091B6012091FD +:10301000B7013091B801DC01CB0180239123A223B9 +:10302000B3238093B5019093B601A093B701B093F9 +:10303000B8011F910F910C940B140F931F930091E3 +:10304000B5011091B6012091B7013091B801DC01B2 +:10305000CB0180279127A227B3278093B5019093B6 +:10306000B601A093B701B093B8011F910F910C94D2 +:103070000B141092B1011092B2011092B301109290 +:10308000B4010C940B1441E050E060E070E004C027 +:10309000440F551F661F771F8A95D2F74093B101E1 +:1030A0005093B2016093B3017093B4010C940B146C +:1030B00041E050E060E070E004C0440F551F661F1F +:1030C000771F8A95D2F78091B1019091B201A091BA +:1030D000B301B091B401482B592B6A2B7B2B409341 +:1030E000B1015093B2016093B3017093B4010C9499 +:1030F0000B1441E050E060E070E004C0440F551F45 +:10310000661F771F8A95D2F7409550956095709508 +:103110008091B1019091B201A091B301B091B4013D +:10312000482359236A237B234093B1015093B20172 +:103130006093B3017093B4010C940B1441E050E020 +:1031400060E070E004C0440F551F661F771F8A952A +:10315000D2F78091B1019091B201A091B301B091E9 +:10316000B401482759276A277B274093B101509320 +:10317000B2016093B3017093B4010C940B140F93DC +:103180001F930091B1011091B2012091B3013091D0 +:10319000B401DC01CB01802B912BA22BB32B8093AC +:1031A000B1019093B201A093B301B093B4011F9108 +:1031B0000F910C940B140F931F930091B101109178 +:1031C000B2012091B3013091B401DC01CB01802325 +:1031D0009123A223B3238093B1019093B201A093D2 +:1031E000B301B093B4011F910F910C940B140F9382 +:1031F0001F930091B1011091B2012091B301309160 +:10320000B401DC01CB0180279127A227B32780934B +:10321000B1019093B201A093B301B093B4011F9197 +:103220000F910C940B140895CF92DF92EF92FF92BE +:103230000F931F93CF93DF938C01C090B501D09073 +:10324000B601E090B701F090B8018091B101909182 +:10325000B201A091B301B091B401C82AD92AEA2AD7 +:10326000FB2ACFE1D0E0D701C6010C2E04C0B695F1 +:10327000A795979587950A94D2F780FF06C0B80165 +:103280008C2F0E94ED06019721F4219760F780E0D2 +:1032900001C08C2FDF91CF911F910F91FF90EF9084 +:1032A000DF90CF900895CF93DF93EC010E94141923 +:1032B000BE010E94ED06DF91CF910895CB010E94DF +:1032C0005319089590910C01992321F090910D01CB +:1032D000911109C020910E0130910F01F901329630 +:1032E0009FEF40E01FC0982F9695969596959F303A +:1032F00050F5E0910E01F0910F01E90FF11D87707B +:1033000021E030E0A90102C0440F551F8A95E2F781 +:10331000CA019181892B818308959F3F39F04F5FC6 +:103320004E3041F051915813F8CF0DC05111F7CFE5 +:10333000942FF5CF9F3F39F0F901E90FF11D97FD6B +:10334000FA9582830895089590910C01992321F0B4 +:1033500090910D01911109C020910E0130910F0142 +:10336000F9013296205F3F4F1FC0982F9695969592 +:1033700096959F30F0F4E0910E01F0910F01E90F66 +:10338000F11D877021E030E0A90102C0440F551FF4 +:103390008A95E2F7CA0180959181892381830895F6 +:1033A0003196E217F30729F090819813F9CF108234 +:1033B000F7CF089581E090E0E0910E01F0910F01C8 +:1033C000E80FF91F1082019680319105A9F7089541 +:1033D0009091CC01892B8093CC0108958095909198 +:1033E000CC0189238093CC0108951092CC010895DB +:1033F0009091CB01892B8093CB010895809590917A +:10340000CB0189238093CB0108951092CB010895BD +:103410009091CA01892B8093CA010895809590915B +:10342000CA0189238093CA0108951092CA010895A0 +:103430008093B90108951092B901089580910E0109 +:1034400090910F01FC0131969C01205F3F4F80E07D +:10345000919191118F5FE217F307D1F70895E091F1 +:103460000E01F0910F018091CC018083E0910E015B +:10347000F0910F0190818091CB01892B8083E091A5 +:103480000E01F0910F0190818091CA01892B8083F8 +:103490008091B901882361F0E0910E01F0910F0154 +:1034A0009081892B80830E941E1A81111092B9018C +:1034B00080910E0190910F010C949B0ECF92DF92A0 +:1034C000EF92FF926C01EE24FF24C114D104E104B9 +:1034D000F10421F0C701B60120E101C020E0C72EB0 +:1034E000D82EE92EFF24C114D104E104F10419F00F +:1034F000285FC701B6016B017C0154E0F694E794A4 +:10350000D794C7945A95D1F7C114D104E104F104BA +:1035100019F02C5FC701B6016B017C0142E0F69403 +:10352000E794D794C7944A95D1F7C114D104E10424 +:10353000F10419F02E5FC701B601DC01CB01B6958D +:10354000A79597958795892B8A2B8B2B09F02F5F51 +:10355000822FFF90EF90DF90CF9008958091E4014B +:10356000843021F11092CE0120E488E190E00FB682 +:10357000F894A895809360000FBE2093600080E0CF +:103580000E94880783B7817F846083BF83B781608F +:1035900083BF7894889583B78E7F83BF88E10FB609 +:1035A000F89480936000109260000FBE0895089513 +:1035B0000895CF930E94D71A0E94B8030E94D81A88 +:1035C000C0E08C2F0E94A604811104C0CF5FCE30D2 +:1035D000C1F701C081E0CF9108950E941F140E949D +:1035E0008F0E0C94880782E084BD93E095BD9AEF1E +:1035F00097BD80936E0008952FB7F8948091CF0106 +:103600009091D001A091D101B091D2012FBF089526 +:10361000CF92DF92EF92FF920F931F932FB7F89400 +:103620004091CF015091D0016091D1017091D201B0 +:103630002FBF6A017B01EE24FF248C0120E030E0E3 +:10364000C016D106E206F30610F4415051099A0162 +:10365000281B390BC9011F910F91FF90EF90DF904C +:10366000CF9008951F920F920FB60F9211248F934F +:103670009F93AF93BF938091CF019091D001A09180 +:10368000D101B091D2010196A11DB11D8093CF014E +:103690009093D001A093D101B093D201BF91AF918B +:1036A0009F918F910F900FBE0F901F9018950E94C1 +:1036B0008C0BF8942FEF87EA91E6215080409040E0 +:1036C000E1F700C0000087E090EBDC018093EE01A1 +:1036D0009093EF01A093F001B093F1019CE088E199 +:1036E0000FB6F894A895809360000FBE9093600089 +:1036F000FFCFEF92FF920F931F93CF93DF93D82FBB +:10370000C0E08C2F0E94A60400E010E0E82EF12C0F +:10371000C701002E02C0959587950A94E2F780FDB7 +:1037200006C00F5F1F4F0630110591F709C0602FCB +:103730007C2F80E00E94AE04D813F3CF81E004C058 +:10374000CF5FCE30F1F680E0DF91CF911F910F91E6 +:10375000FF90EF900895CF93C82F8CE20E94791BC1 +:10376000882321F08C2FCF910C94791B80E0CF918E +:103770000895CF930E94001D811102C00E94E61C93 +:10378000C5E6C15049F00E94B8038FE39CE9019758 +:10379000F1F700C00000F5CF89E20E94AB1B811158 +:1037A00013C18AE20E94AB1B81110E94E61C85E0D6 +:1037B0000E94AB1B81110E94571B0E940B1D80931E +:1037C000CD0187E00E94AB1B8823A9F18BE10E9409 +:1037D000AB1B882351F08091CD0181FB222720F97A +:1037E00091E0922790FB81F90EC08EE00E94AB1B06 +:1037F000882361F08091CD0182FB222720F991E09E +:10380000922790FB82F98093CD0115C080E10E9440 +:10381000AB1B9091CD01882341F093FB222720F927 +:1038200081E0822780FB93F904C0892F809580FB7B +:1038300090F99093CD018091CD010E940F1D0E94BF +:103840001D1D8093ED0180EE0E94AB1B882341F08B +:103850008091ED01982F909590FB80F98093ED0178 +:1038600089E30E94AB1B882359F08091ED0181FB15 +:10387000222720F991E0922790FB81F98093ED01B6 +:1038800082EE0E94AB1B882359F08091ED0182FBF0 +:10389000222720F991E0922790FB82F98093ED0195 +:1038A00086EE0E94AB1B882359F08091ED0183FBCB +:1038B000222720F991E0922790FB83F98093ED0174 +:1038C00083EE0E94AB1B882359F08091ED0184FBAD +:1038D000222720F991E0922790FB84F98093ED0153 +:1038E00085E30E94AB1B882359F08091ED0185FB95 +:1038F000222720F991E0922790FB85F98093ED0132 +:1039000081E30E94AB1B882359F08091ED0186FB77 +:10391000222720F991E0922790FB86F98093ED0110 +:1039200081E10E94AB1B882359F08091ED0187FB58 +:10393000222720F991E0922790FB87F98093ED01EF +:103940008091ED010E94211D8091ED0187FB882768 +:1039500080F980930D0187E20E94AB1BC82F8EE196 +:103960000E94AB1B8111C2608FE10E94AB1B8111D1 +:10397000C46080E20E94AB1B8111C86081E20E949A +:10398000AB1B8111C06182E20E94AB1B8111C0623E +:1039900083E20E94AB1B8111C06484E20E94AB1BD6 +:1039A000882311F0C06802C0CC2329F08C2F0E941C +:1039B000181D6C2F03C00E94141D682F70E080E05A +:1039C00090E0CF910C94DB17CF9108956DEE7EEFD0 +:1039D00080E090E00E94522360E082E090E00E944C +:1039E000402360E083E090E00E94402360E084E0B8 +:1039F00090E00E94402360E085E090E00C9440233A +:103A000080E090E00E943A2321E08D3E9E4F09F035 +:103A100020E0822F089582E090E00C943223682FFA +:103A200082E090E00C94402383E090E00C943223F9 +:103A3000682F83E090E00C94402384E090E00C94A5 +:103A40003223682F84E090E00C9440238091D501CC +:103A500080FF0BC06091130185E0689FB0011124C5 +:103A600075956795759567952BC081FF09C0609125 +:103A7000130185E0689FB00111247595679520C0FA +:103A800082FF07C06091130185E0689FB001112497 +:103A900017C09091D6019923D1F060911201961729 +:103AA00088F72091130185E0289F90011124929FAF +:103AB000A001939F500D112470E0CA010E940423BD +:103AC0006038710540F46115710539F002C065E098 +:103AD00070E0862F08958FE7089581E00895809122 +:103AE000D50180FF08C06091110170E07595679560 +:103AF0007595679521C081FF06C06091110170E046 +:103B00007595679519C082FF04C06091110170E03E +:103B100010C09091D6019923C1F0609110019617C1 +:103B2000A0F780911101899FC001112470E00E94CB +:103B300004236038710528F46115710521F0862F82 +:103B400008958FE7089581E0089561E070E0F4CF73 +:103B5000803F21F40E94261D819504C0813F29F4F5 +:103B60000E94261D8093D9010895823F21F40E946E +:103B7000261D819504C0833F29F40E94261D809351 +:103B8000D8010895893F19F40E946F1D05C08A3F2E +:103B900031F40E946F1D81958093DA0108958B3F67 +:103BA00021F40E946F1D819504C08C3F29F40E946E +:103BB0006F1D8093DB010895843F21F48091D7012C +:103BC000816017C0853F21F48091D701826011C0C8 +:103BD000863F21F48091D70184600BC0873F21F498 +:103BE0008091D701886005C0883F31F48091D7016A +:103BF00080618093D70108958D3F21F48091D50194 +:103C000081600BC08E3F21F48091D501826005C098 +:103C10008F3F29F48091D50184608093D501089568 +:103C2000803F39F48091D90187FF6CC01092D9018F +:103C300069C0813F29F48091D9011816BCF362C094 +:103C40009091D801823F29F497FF5CC01092D8016F +:103C500059C0833F19F41916CCF354C0893F41F47D +:103C60008091DA0118160CF04DC01092DA014AC0AA +:103C70008A3F29F48091DA0187FF44C0F6CF8B3F59 +:103C800039F48091DB0187FF3DC01092DB013AC01F +:103C90008C3F29F48091DB011816BCF333C0843FBC +:103CA00021F48091D7018E7F17C0853F21F4809148 +:103CB000D7018D7F11C0863F21F48091D7018B7F82 +:103CC0000BC0873F21F48091D701877F05C0883FD3 +:103CD00031F48091D7018F7E8093D70113C08D3F3F +:103CE00021F48091D5018E7F0BC08E3F21F480910D +:103CF000D5018D7F05C08F3F29F48091D5018B7F41 +:103D00008093D5018091D80181110EC08091D90195 +:103D100081110AC08091DA01811106C08091DB0116 +:103D2000811102C01092D601089587ED91E00E94A2 +:103D3000A60E0E94FC1A9093D4018093D30108959B +:103D40001F93CF93DF938091D3019091D4010E9470 +:103D5000081BAC019091D601992321F02091140108 +:103D600030E006C0209115018AE0289F90011124BF +:103D70004217530708F486C08091D801C091D90139 +:103D8000D091DA011091DB01811107C0C11176C019 +:103D9000D11174C0111172C075C09F3F19F09F5F9F +:103DA0009093D601181624F40E94261D8093D80102 +:103DB0008091D80187FF05C00E94261D81958093C0 +:103DC000D8011C1624F40E94261D8093D9018091ED +:103DD000D90187FF05C00E94261D81958093D901D6 +:103DE0006091D801662339F1C091D901CC2319F132 +:103DF000772767FD7095872F972F0E94152223E361 +:103E000033E343E35FE30E9479220E94E22160935F +:103E1000D8016C2F772767FD7095872F972F0E9409 +:103E2000152223E333E343E35FE30E9479220E94F8 +:103E3000E2216093D9011D1624F40E946F1D809326 +:103E4000DA018091DA0187FF05C00E946F1D81951C +:103E50008093DA01111624F40E946F1D8093DB0118 +:103E60008091DB0187FF05C00E946F1D81958093C3 +:103E7000DB01DF91CF911F910C94951E9F3F09F0BC +:103E80008ECF96CFDF91CF911F910895E7EDF1E0AE +:103E900085E0DF011D928A95E9F71092D601109214 +:103EA000D5010895833081F128F4813059F08230B2 +:103EB000D1F00895853009F449C0B8F1863009F48D +:103EC00056C0089580911501262F30E0280F311D2E +:103ED0002F3F310524F4680F6093150108958FEF8B +:103EE00080931501089580911401262F30E0280F4A +:103EF000311D2F3F310524F4680F6093140108959C +:103F00008FEF80931401089580911301262F30E0E4 +:103F1000280F311D2F3F310524F4680F60931301E2 +:103F200008958FEF80931301089580911201262F39 +:103F300030E0280F311D2F3F310524F4680F6093C6 +:103F4000120108958FEF809312010895809111015D +:103F5000262F30E0280F311D2F3F310524F4680F44 +:103F60006093110108958FEF80931101089580915E +:103F70001001262F30E0280F311D2F3F310524F48A +:103F8000680F6093100108958FEF809310010895DA +:103F9000833011F128F4813049F0823091F0089596 +:103FA000853081F120F18630C1F1089580911501AD +:103FB000681720F4861B809315010895109215014F +:103FC000089580911401681720F4861B80931401D2 +:103FD000089510921401089580911301681720F438 +:103FE000861B809313010895109213010895809108 +:103FF0001201681720F4861B809312010895109215 +:104000001201089580911101681720F4861B809396 +:1040100011010895109211010895809110016817FF +:1040200020F4861B809310010895109210010895CA +:104030000F931F938D3109F46BC008F03FC08E3091 +:1040400009F47FC0C0F4873009F469C068F4863091 +:1040500009F0B1C08091CD01817F8E7F8093CD0129 +:1040600081E08093DD01A8C0883009F4A2C08B30C4 +:1040700009F49FC0A0C0863109F49BC078F4803158 +:1040800009F472C0813109F096C00E941F1490910A +:104090000D0181E0892780930D018BC0893109F4DE +:1040A00088C08B3109F087C08091CD0181FB222728 +:1040B00020F991E0922790FB81F94CC0853309F4F7 +:1040C00070C048F4873209F46CC008F459C08932D2 +:1040D00009F467C070C0833438F48A3308F04EC0E6 +:1040E000883309F466C067C0833409F45AC0883441 +:1040F00009F061C00E941F140FEF13ED20E301507F +:1041000010402040E1F700C000000E94571B51C042 +:104110000E949C210E948F0E0E9488074AC09091A5 +:10412000CD01892F8095817080FB90F929F09660F0 +:1041300098609093CD0140C0997F977F9093CD0177 +:1041400038C08091CD0182FB222720F991E092278F +:1041500090FB82F98093CD01992359F18091CD0193 +:1041600081608093CD0125C08091CD0183FB222702 +:1041700020F991E0922790FB83F9ECCF895301C09D +:104180008D5141E050E060E070E08A019B0104C085 +:10419000000F111F221F331F8A95D2F7C901B801E2 +:1041A00004C061E070E080E090E00E94DB170E94B4 +:1041B0001F1481E001C080E01F910F91089580E0FD +:1041C000089580E00895CF93C82F8091DD0181305C +:1041D00079F018F08230E9F187C0E0910E01F0919A +:1041E0000F018081813169F0823209F07FC009C0FE +:1041F000E0910E01F0910F018081813111F0823246 +:1042000061F48C2F0E94DF20811104C08C2F0E944A +:1042100018201DC081E090E01AC08C2F0E94E12080 +:10422000811114C0C43179F048F4CB3079F0C03139 +:1042300009F060C082E08093DD0108C0C93219F046 +:10424000C83321F057C01092DD0154C081E0817065 +:1042500053C0C93289F118F5C43171F1A8F4C730DF +:1042600009F046C08AE08093150194E1909314010F +:1042700093E0909313018093120188E080931101E1 +:1042800088E28093100134C0CE51C63088F5EC2FFF +:10429000F0E0E65DFE4F80818093DC0129C0CE34E2 +:1042A000E9F020F4CB3421F56AE013C0C13579F090 +:1042B000C235F1F461E00DC08091DC01882319F072 +:1042C0001092DC0115C081E08093DD0115C061E032 +:1042D00006C08091DC010E94521F0AC06AE08091F2 +:1042E000DC010E94C81F04C01092DD0180E004C000 +:1042F00081E002C080E0ABCFCF910895E1E8F0E02B +:104300008081886080838081816080838FB7F8940A +:1043100093E09093890090ED909388008FBF08956B +:10432000EFE6F0E08081826080830895EFE6F0E0C0 +:1043300080818D7F80830895EFE6F0E0908182E0B8 +:104340008927808308951F920F920FB60F92112430 +:104350002F933F934F935F936F937F938F939F938D +:10436000AF93BF93EF93FF938091DE019091DF01B4 +:1043700001969093DF018093DE01811103C082E0FA +:104380000E948807E091DF01E695E695F0E0E252B1 +:10439000FC4FE4918091DE018E1303C080E00E9407 +:1043A0008807FF91EF91BF91AF919F918F917F917E +:1043B0006F915F914F913F912F910F900FBE0F9092 +:1043C0001F90189504D06894B1118DC0089570D0D5 +:1043D00088F09F5790F0B92F9927B751A0F0D1F0EE +:1043E000660F771F881F991F1AF0BA95C9F712C078 +:1043F000B13081F077D0B1E0089574C0672F782F85 +:104400008827B85F39F0B93FCCF3869577956795E3 +:10441000B395D9F73EF490958095709561957F4F4F +:104420008F4F9F4F0895E89409C097FB3EF49095F5 +:104430008095709561957F4F8F4F9F4F9923A9F07D +:10444000F92F96E9BB279395F6958795779567950C +:10445000B795F111F8CFFAF4BB0F11F460FF1BC050 +:104460006F5F7F4F8F4F9F4F16C0882311F096E9E3 +:1044700011C0772321F09EE8872F762F05C0662391 +:1044800071F096E8862F70E060E02AF09A95660F4A +:10449000771F881FDAF7880F9695879597F9089503 +:1044A00057FD9058440F551F59F05F3F71F04795E5 +:1044B000880F97FB991F61F09F3F79F087950895CA +:1044C000121613061406551FF2CF4695F1DF08C0E9 +:1044D000161617061806991FF1CF86957105610506 +:1044E00008940895E894BB2766277727CB0197F9AE +:1044F00008950BD078C069D028F06ED018F09523BD +:1045000009F05AC05FC01124EECFCADFA0F3959F17 +:10451000D1F3950F50E0551F629FF001729FBB27AA +:10452000F00DB11D639FAA27F00DB11DAA1F649F56 +:104530006627B00DA11D661F829F2227B00DA11D09 +:10454000621F739FB00DA11D621F839FA00D611D8F +:10455000221F749F3327A00D611D231F849F600DB0 +:10456000211D822F762F6A2F11249F5750408AF0E9 +:10457000E1F088234AF0EE0FFF1FBB1F661F771F75 +:10458000881F91505040A9F79E3F510570F014C00C +:10459000AACF5F3FECF3983EDCF38695779567955D +:1045A000B795F795E7959F5FC1F7FE2B880F911D93 +:1045B0009695879597F9089597F99F6780E870E039 +:1045C00060E008959FEF80EC089500240A94161689 +:1045D000170618060906089500240A9412161306F1 +:1045E000140605060895092E0394000C11F488237F +:1045F00052F0BB0F40F4BF2B11F460FF04C06F5F9B +:104600007F4F8F4F9F4F089597FB072E16F400940E +:1046100007D077FD09D00E941E2307FC05D03EF489 +:10462000909581959F4F0895709561957F4F08955E +:10463000EE0FFF1F0590F491E02D0994AA1BBB1B00 +:1046400051E107C0AA1FBB1FA617B70710F0A61B92 +:10465000B70B881F991F5A95A9F780959095BC01B3 +:10466000CD010895F999FECF92BD81BDF89A9927A1 +:1046700080B50895A8E1B0E042E050E00C945A23E0 +:10468000262FF999FECF92BD81BDF89A019700B40B +:10469000021639F01FBA20BD0FB6F894FA9AF99AAB +:1046A0000FBE08950196272F0E9441230C944023AA +:1046B000DC01CB01FC01F999FECF06C0F2BDE1BDE2 +:1046C000F89A319600B40D9241505040B8F70895D1 +:0446D000F894FFCF8C +:1046D40020028A071808F507C1078D070101BA01EE +:1046E40028080A03140A3F4D36399F0352031C035A +:1046F400E30276028F02A802C10201020304050646 +:044704000708090099 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboard/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/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png differ -- cgit v1.2.3 From ea091e7f1b2bca0103de38c2a59b4cce6bade0a8 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Tue, 26 Apr 2016 14:25:35 +0300 Subject: Honing in on an interval that works for me --- .../erez_experimental/erez_experimental.hex | 2158 ++++++++++---------- .../ergodox_ez/keymaps/erez_experimental/keymap.c | 4 +- 2 files changed, 1081 insertions(+), 1081 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex index 3af7ddbb8..bb78a5ea4 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex @@ -1,17 +1,17 @@ :100000000C9465020C94A9020C94A9020C94A90208 :100010000C94A9020C94A9020C94A9020C94A902B4 -:100020000C94A9020C94A9020C94A30C0C94750DC9 +:100020000C94A9020C94A9020C94A00C0C94720DCF :100030000C94A9020C94A9020C94A9020C94A90294 -:100040000C94A9020C9448220C94A9020C94A902C5 -:100050000C94A9020C94EC1B0C94A9020C94A90218 +:100040000C94A9020C9446220C94A9020C94A902C7 +:100050000C94A9020C94EA1B0C94A9020C94A9021A :100060000C94A9020C94A9020C94A9020C94A90264 :100070000C94A9020C94A9020C94A9020C94A90254 :100080000C94A9020C94A9020C94A9020C94A90244 :100090000C94A9020C94A9020C94A9020C94A90234 -:1000A0000C94A9020C94A9020C94A902DA0DFC0D7F -:1000B000E70EFC0DE70E3E0E610EE70EB60EC90E02 -:1000C000C211C2110312031245128112811481144C -:1000D00099128114901390135B14811481146F147E +:1000A0000C94A9020C94A9020C94A902D70DF90D85 +:1000B000E40EF90DE40E3B0E5E0EE40EB30EC60E1A +:1000C000C011C0110112011243127F127F147F145C +:1000D00097127F148E138E1359147F147F146D148E :1000E0000000F0A12E004C002A00003035810000F5 :1000F0001E00140004001D7134004D001F001A0082 :1001000016001B00E104C1002000080007000600E3 @@ -80,1080 +80,1080 @@ :1004F000A740B04BB9F41092F0011092F1011092A4 :10050000F2011092F30114BE84B7877F84BF88E1A3 :100510000FB6F89480936000109260000FBEE0E088 -:10052000FFE3099511E0A0E0B1E0EEE1F8E402C0DC +:10052000FFE3099511E0A0E0B1E0EAE1F8E402C0E0 :1005300005900D92A433B107D9F711E0A4E3B1E01F -:1005400001C01D92A03FB107E1F70E94E9090C9498 -:100550000D240C940000662319F06130F1F03DC0C9 -:10056000FC018281882341F00E94B71B90933501E2 +:1005400001C01D92A03FB107E1F70E94E6090C949B +:100550000B240C940000662319F06130F1F03DC0CB +:10056000FC018281882341F00E94B51B90933501E4 :100570008093340181EE1CC080913401909135014B -:100580000E94C31B8639910534F486E20E944A100A -:1005900086E20E94121181EE1EC0FC018281882336 -:1005A00051F00E94B71B909335018093340185EE82 -:1005B0000E944A1012C080913401909135010E942E -:1005C000C31B8639910534F487E20E944A1087E202 -:1005D0000E94121185EE0E94121180E090E00895B1 +:100580000E94C11B8634910534F486E20E94481013 +:1005900086E20E94101181EE1EC0FC018281882338 +:1005A00051F00E94B51B909335018093340185EE84 +:1005B0000E94481012C080913401909135010E9430 +:1005C000C11B8634910534F487E20E94481087E20B +:1005D0000E94101185EE0E94101180E090E00895B5 :1005E00008956091B3017091B4018091B50190912B -:1005F000B6010E94151B56985E9825982D9826984E +:1005F000B6010E94131B56985E9825982D98269850 :100600002E9827982F98813019F0823021F0089584 -:10061000259A2D9A0895269A2E9A089508950C9455 -:10062000F10256985E9825982D9826982E9827982E -:100630002F988FEF90E0909389008093880090939B -:100640008B0080938A0090938D0080938C00259A74 -:100650002D9A2FEF80E792E0215080409040E1F703 -:1006600000C00000269A2E9A2FEF80E792E02150DA -:1006700080409040E1F700C00000279A2F9A2FEFAA -:1006800080E792E0215080409040E1F700C00000F8 -:1006900025982D982FEF80E792E0215080409040E0 -:1006A000E1F700C0000026982E982FEF80E792E037 -:1006B000215080409040E1F700C0000027982F981B -:1006C00056985E9825982D9826982E9827982F98BA -:1006D000089589EA8093800089E0809381002498BE -:1006E0002C983F988AB18F748AB96E98479A8BB1CB -:1006F000806B8BB9769A0E9411030C94F00280E211 -:10070000809300018091360181110EC00E94D003B8 -:1007100081E0809336012FEF83ED90E321508040FC -:100720009040E1F700C0000080E40E94D60380936F -:10073000000181112EC00E940004809300018111EC -:1007400028C00E94000480930001811122C08FE321 -:100750000E9400048093000181111BC00E94F803D5 -:1007600080E40E94D60380930001811112C08CE0C6 -:100770000E9400048093000181110BC00E940004BC -:1007800080930001811105C08FE30E9400048093D3 -:1007900000010E94F8038091000108950C940E035B -:1007A0001092B9008AE08093B800089594EA90937B -:1007B000BC009091BC0097FFFCCF9091B900987F4E -:1007C000983021F0903111F081E008958093BB00C2 -:1007D00084E88093BC008091BC0087FFFCCF8091AF -:1007E000B900887F883111F0803471F780E0089576 -:1007F00084E98093BC008091BC0084FDFCCF089507 -:100800008093BB0084E88093BC008091BC0087FF8C -:10081000FCCF9091B900987F81E0983209F480E094 -:10082000089584E88093BC008091BC0087FFFCCFD2 -:100830008091BB00089580910001811115C080E472 -:100840000E94D6038093000181110CC082E10E94B6 -:10085000000480930001811105C08FEF0E94000405 -:10086000809300010E94F80384B1807F84B985B130 -:10087000807F85B98AB1837F8AB98BB1837F8BB939 -:100880003E98469808950E947F03809300010E943D -:100890001B0480B38C7080BB81B3836F81BBE6E4A3 -:1008A000F1E0A8E3B1E011921D9281E0E435F80790 -:1008B000D1F70C946903BF92CF92DF92EF92FF922F -:1008C0000F931F93CF93DF9380910001882379F0DA -:1008D000809137018F5F80933701811108C00E949A -:1008E0007F0380930001811102C00E94110308E37D -:1008F00011E0C0E0D0E0DD24D39482E0C82EEE24E5 -:10090000E394F12CC73000F580910001811162C0A1 -:1009100080E40E94D60380930001811112C082E11D -:100920000E9400048093000181110BC0C7010C2EAE -:1009300001C0880F0A94EAF780950E940004809312 -:1009400000010E94F80346C0CA30A1F028F4C83064 -:1009500059F0C93061F005C0CC3089F070F0CD306D -:1009600089F0209A289810C0219A29980DC0229ABF -:100970002A980AC0239A2B9807C0529A01C0539A0A -:100980005B9802C03E9A4698E0EAEA95F1F78FB18B -:1009900079995AC092E081708D25892B7C9B02C089 -:1009A00090E001C094E0892B7D9B02C090E001C0E3 -:1009B00098E0892B7E9B02C090E001C090E1892BDA -:1009C0009FB19095991F9927991F9295990F907EA5 -:1009D000892B0FC08091000181114BC080E40E94DF -:1009E000D60380930001882389F1B12C0E94F8037B -:1009F0008B2DF8019081981719F08083C092010126 -:100A00000E941B0421960F5F1F4FCE30D10509F0C5 -:100A100079CF80910101882371F181508093010188 -:100A2000882339F08FE99FE00197F1F700C00000BB -:100A300022C0A6E4B1E0E8E3F1E081918D9391E07A -:100A4000E634F907D1F717C090E0A5CF83E10E9403 -:100A50000004809300018111C8CF81E40E94D60375 -:100A6000809300018111C1CF0E941104B82EB0946F -:100A7000BDCF80E0BECF0E940F0381E0DF91CF9118 -:100A80001F910F91FF90EF90DF90CF90BF9008954E -:100A9000E82FF0E0EA5BFE4F808108950895089505 -:100AA00096E0799FF001112494E5899FE00DF11DF6 -:100AB0001124E60FF11DEE0FFF1FEC51FF4F859142 -:100AC00094910895880F991F805A9040FC01859158 -:100AD00094910895880F991F80529F4FFC01859132 -:100AE000949108950F931F93CF93DF93EC01811599 -:100AF00020E3920730F5811530E2930708F0B1C08A -:100B00008B3B910588F4883A910508F058C0853AE6 -:100B1000910508F049C08430910508F043C0813048 -:100B2000910509F4B2C1AEC18F3F910509F0D0F52E -:100B3000803F910508F092C0805E9109089790F17E -:100B4000A1C1C11581E5D807A8F4C23090E5D90745 -:100B500008F09FC0C11520E5D20709F486C008F04F -:100B600092C0C11580E4D80708F08CC18E0111270E -:100B7000106CCCC1C11590E8D90758F4C11520E715 -:100B8000D20708F07BC1C11530E6D30708F423C1B2 -:100B900079C1C11580E9D80708F074C18E011F70B2 -:100BA000106AB4C18E01B2C1853A910509F470C1D1 -:100BB000863A910509F46FC103E810E4A7C1883AA9 -:100BC000910509F46BC1893A910509F46AC18A3A21 -:100BD000910509F469C18B3A910509F468C18C3A11 -:100BE000910509F467C18D3A910509F466C1803B0E -:100BF000910509F465C18E3A910509F464C18F3AF3 -:100C0000910509F463C1813B910509F462C1823BFE -:100C1000910509F461C1833B910509F460C1843BEE -:100C2000910509F45FC1853B910509F45EC1863BDE -:100C3000910509F45DC1873B910509F45CC1883BCE -:100C4000910509F45BC1893B910509F45AC18A3BBE -:100C5000910509F059C10AE216E458C18C011065EA -:100C600055C19F700E946A0552C10E94A4149FEF53 -:100C700024E33CE0915020403040E1F700C0000008 -:100C80000E94111C43C18091CF0181608093CF01EC -:100C90003DC10E94B91D811102C00E949F1D0E948A -:100CA000D61D90E09093F0018093EF01C23080E573 -:100CB000D80721F48091EF01816086C0C43090E5AF -:100CC000D90721F48091EF0182607EC0C63020E513 -:100CD000D20721F48091EF01846076C0C83030E5FE -:100CE000D30719F48091EF0127C0CA3080E5D807F7 -:100CF00021F48091EF01806167C0CC3090E5D90785 -:100D000021F48091EF0180625FC0CE3020E5D207F0 -:100D100021F48091EF01806457C0C03130E5D307E2 -:100D200021F48091EF0180684FC0C23180E5D8077F -:100D300029F48091EF018460886046C0C33090E55B -:100D4000D90721F48091EF018E7F3EC0C53020E5A8 -:100D5000D20721F48091EF018D7F36C0C73030E596 -:100D6000D30721F48091EF018B7F2EC0C93080E53D -:100D7000D80719F48091EF0126C0CB3090E5D90750 -:100D800021F48091EF018F7E1FC0CD3020E5D20786 -:100D900021F48091EF018F7D17C0CF3030E5D3076C -:100DA00021F48091EF018F7B0FC0C13180E5D8071E -:100DB00021F48091EF018F7707C0C331D04531F422 -:100DC0008091EF018B7F877F8093EF018091EF010E -:100DD0000E94DA1D9BC08D2F99278F709927813033 -:100DE0009105E9F48E01037011279C0102C0220FC6 -:100DF000331F0A95E2F789011C68CE0164E0880F71 -:100E0000991F6A95E1F788279370082B192B73E0D7 -:100E1000CC0FDD1F7A95E1F7C076DD272CC082303C -:100E2000910529F41C2F0027016F106A6FC08330D1 -:100E3000910561F4CE018370992701E010E002C0B2 -:100E4000000F111F8A95E2F71C680EC0049709F085 -:100E50005DC0CE018370992701E010E002C0000F51 -:100E6000111F8A95E2F71A6843E0CC0FDD1F4A95FF -:100E7000E1F7C07ED7700C2B1D2B48C08E011F7070 -:100E8000106244C000E010E041C001E010E03EC04C -:100E900001E810E43BC002E810E438C002EE14E4BC -:100EA00035C009EE14E432C00AEE14E42FC005EB9D -:100EB00014E42CC006EB14E429C007EB14E426C0AC -:100EC0000CEC14E423C00DEC14E420C003E815E49A -:100ED0001DC00AE815E41AC002E915E417C004E9C8 -:100EE00015E414C001E216E411C003E216E40EC0DA -:100EF00004E216E40BC005E216E408C006E216E4BC -:100F000005C007E216E402C000E014E4C801DF9166 -:100F1000CF911F910F91089596E0799FF0011124D0 -:100F200094E5899FE00DF11D1124E60FF11DEE0FF0 -:100F3000FF1FEC51FF4F85919491803E9105E0F4A5 -:100F4000803C910558F58133910509F46FC048F450 -:100F50008932910509F463C08A32910509F46DC0A4 -:100F600072C089339105E9F082389105D1F085335B -:100F7000910509F44DC067C0833E910581F138F4B5 -:100F8000803E9105B9F0823E9105D9F05CC0863E65 -:100F9000910561F1873E9105A1F155C00E9462055E -:100FA00008952091EF0120FD02C021FF4CC080EE8A -:100FB00090E049C08091EF0180FFF9CF89E390E094 -:100FC00042C08091EF0182FF0EC08091EF0184FF4B -:100FD00003C080E090E037C083EE90E034C08091A1 -:100FE000EF0182FFF2CF82EE90E02DC08091EF0101 -:100FF00083FF0BC08091EF0184FDEBCF87EE90E083 -:1010000022C08091EF0183FFF5CF86EE90E01BC0F8 -:101010008091EF0185FF07C089E290E014C08091C4 -:10102000EF0185FFF9CF85E390E00DC08091EF01DE -:1010300086FF07C08AE290E006C08091EF0186FF3C -:10104000F9CF81E390E00E947205089508950C9411 -:101050002608809164010895CF93DF9300D01F92FA -:10106000CDB7DEB72091E601243019F523E02983BE -:101070009B838A832093E9008FEF9091E800815051 -:1010800095FD06C095ED9A95F1F700008111F5CF19 -:101090008091E80085FF0DC040E050E063E070E023 -:1010A000CE0101960E94960A8091E8008E77809387 -:1010B000E8000F900F900F90DF91CF910895CF939C -:1010C000DF9300D01F92CDB7DEB72091E601243028 -:1010D00021F522E029839B838A8383E08093E900C2 -:1010E0008FEF9091E800815095FD06C095ED9A959F -:1010F000F1F700008111F5CF8091E80085FF0DC068 -:1011000040E050E063E070E0CE0101960E94960A54 -:101110008091E8008E778093E8000F900F900F90F9 -:10112000DF91CF9108952091E6012430F1F422E07F -:101130002093E9002FEF3091E800215035FD06C0E3 -:1011400035ED3A95F1F700002111F5CF2091E80037 -:1011500025FF0BC040E050E065E070E00E94960A79 -:101160008091E8008E778093E8000895CF93DF9315 -:10117000EC018091E601843009F046C090910C01A9 -:101180009923D9F090910D019923B9F08093E9004A -:101190008FEF9091E800815095FD06C095E19A95FA -:1011A000F1F700008111F5CF8091E80085FF2CC098 -:1011B00040E050E060E170E017C081E08093E9001A -:1011C0008FEF9091E800815095FD06C095ED9A95BE -:1011D000F1F700008111F5CF8091E80085FF14C080 -:1011E00040E050E068E070E0CE010E94960A8091F5 -:1011F000E8008E778093E80080E1FE01A4E5B1E08D -:1012000001900D928A95E1F7DF91CF910895809139 -:10121000E501811109C00E94280C0E94850C809173 -:10122000E20084608093E20008951092E501089541 -:1012300008950C9435220E94A81B0E943B220E9414 -:10124000220F0C94270842E061EC81E00E94A20B7F -:1012500042E061EC82E00E94A20B42E061EC83E09C -:101260000E94A20B42E161EC84E00C94A20B8091FD -:10127000E801833009F455C030F4813071F08230D8 -:1012800009F48EC008958A3009F47AC08B3009F4CD -:1012900060C0893009F09CC020C08091E701813A8C -:1012A00009F096C08091E800877F8093E8008091E4 -:1012B000EB019091EC01892B21F060E080E090E05F -:1012C00003C060E184E591E070E00E94DF0A809154 -:1012D000E8008B778093E80008958091E7018132E0 -:1012E00009F076C08091EB019091EC01009719F024 -:1012F000039709F06DC08091E800877F8093E80034 -:101300008091E80082FD05C08091E6018111F8CF4F -:101310005FC08091F100809364018091E8008B7739 -:1013200053C08091E701813A09F052C08091EB01EE -:101330009091EC01892B09F04BC08091E800877FE8 -:101340008093E8008091E80080FFFCCF80910C0141 -:1013500036C08091E7018132D9F58091EB019091FF -:10136000EC01892BA9F58091E800877F8093E80044 -:101370000E94D70B8091E90180930C010C94A41476 -:101380008091E701813221F58091E800877F809389 -:10139000E8000E94D70B8091EA01809365010895CF -:1013A0008091E701813AA1F48091E800877F8093E2 -:1013B000E8008091E80080FFFCCF80916501809378 -:1013C000F1008091E8008E778093E8000C94D70BB1 -:1013D000089584B7877F84BF88E10FB6F89480931F -:1013E0006000109260000FBE90E080E80FB6F894A5 -:1013F00080936100909361000FBE0E94710F0E9464 -:10140000280C0E94850C8091E20084608093E200A9 -:1014100078940E94000F0E94730F82E091E00E9476 -:101420001D0F0E9423228091E601853069F40E94FD -:10143000681B8091E4018823B1F30E94931B8823E9 -:1014400091F30E94800AEFCF0E94790FECCF292FF1 -:10145000332723303105A9F06CF42130310509F42C -:1014600042C02230310509F043C08DE690E020E112 -:1014700033E042C021323105C9F02232310519F181 -:1014800037C099278130910541F08230910541F0B4 -:10149000892B71F5ECE0F3E005C0E4EFF2E002C067 -:1014A000ECEDF2E0849190E09F0126C0643000F5FD -:1014B000E62FF0E0EE0FFF1FEE5DFE4F2081318141 -:1014C00089E090E019C0643098F4E62FF0E0DF0185 -:1014D000AA0FBB1FA65EBE4F2D913C91EA5EFE4F48 -:1014E000808190E009C082E190E02DE733E004C004 -:1014F00080E090E020E030E0FA013183208308951D -:1015000080E189BD82E189BD09B400FEFDCF8091F3 -:10151000D8008F7D8093D8008091E0008260809316 -:10152000E0008091E00081FDFCCF0895CF92DF9232 -:10153000EF92FF920F931F93CF93DF937C018B0168 -:10154000EA010E94F80B811131C0209731F08881A7 -:101550009981081B190BE80EF91EC12CD12C01151D -:10156000110519F18091E80085FD14C08091E80013 -:101570008E778093E800209741F0888199818C0DC7 -:101580009D1D9983888385E011C00E94F80B8823F4 -:1015900031F30CC0F70181917F018093F10001507C -:1015A0001109FFEFCF1ADF0ADACF80E0DF91CF9188 -:1015B0001F910F91FF90EF90DF90CF9008952091B1 -:1015C000ED013091EE012617370748F061157105DE -:1015D00039F42091E8002E772093E80001C0B9018A -:1015E000FC0120E061157105B9F18091E6018823C5 -:1015F00009F440C0853009F43FC08091E80083FDC4 -:101600003DC08091E80082FF06C08091E80082FF23 -:1016100026C080E008958091E80080FFE3CF20910C -:10162000F3008091F20090E0922B6115710551F06A -:101630008830910538F421912093F10061507109AF -:101640000196F3CF21E0089709F020E08091E800AF -:101650008E778093E800C6CF2111C7CFD6CF809177 -:10166000E601882339F0853039F08091E80083FF66 -:10167000CCCF04C082E0089583E0089581E008950E -:101680002091ED013091EE012617370748F06115E2 -:10169000710539F42091E8002E772093E80001C00D -:1016A000B901FC0120E061157105C1F18091E601ED -:1016B000882309F441C0853009F440C08091E800D6 -:1016C00083FD3EC08091E80082FF06C08091E80063 -:1016D00082FF27C080E008958091E80080FFE3CF7B -:1016E0002091F3008091F20090E0922B611571053A -:1016F00059F08830910540F424912093F1003196FF -:10170000615071090196F2CF21E0089709F020E0BD -:101710008091E8008E778093E800C5CF2111C6CF75 -:10172000D5CF8091E601882339F0853039F080915A -:10173000E80083FFCBCF04C082E0089583E00895E2 -:1017400081E00895982F973058F59093E900981705 -:1017500039F07091EC002091ED005091F00003C041 -:10176000242F762F50E021FF19C03091EB003E7FEF -:101770003093EB003091ED003D7F3093ED003091E0 -:10178000EB0031603093EB007093EC002093ED00A0 -:101790005093F0002091EE0027FF07C09F5FD3CF4A -:1017A0008F708093E90081E0089580E00895809132 -:1017B000E70187FD05C08091E80080FF0EC012C0E0 -:1017C0008091E80082FD05C08091E6018111F8CF8B -:1017D00008958091E8008B7708C08091E60181111F -:1017E000EACF08958091E8008E778093E80008950D -:1017F0008091E4009091E50045E62091EC0020FF07 -:1018000021C02091E80020FD21C02091E601222383 -:1018100089F0253089F02091EB0025FD0FC0209143 -:10182000E4003091E5002817390739F3415041F0C1 -:10183000C901E3CF82E0089583E0089581E008952F -:1018400084E008952091E80022FFDFCF80E0089532 -:101850000E94960C0E949E0CE0EEF0E08081816078 -:101860008083E8EDF0E080818F77808319BCA7ED5D -:10187000B0E08C918E7F8C9380818F7E80831092DC -:10188000E50108950F931F93CF93DF930E94960C69 -:101890000E949E0CC8EDD0E088818F778883888174 -:1018A0008068888388818F7D888319BC1092E601C7 -:1018B0001092E2011092E4011092E30100EE10E0B8 -:1018C000F80180818B7F808388818160888342E0FA -:1018D00060E080E00E94A20BE1EEF0E080818E7F6C -:1018E0008083E2EEF0E08081816080838081886087 -:1018F0008083F80180818E7F8083888180618883E6 -:10190000DF91CF911F910F910895E8EDF0E0808174 -:101910008F7E8083E7EDF0E080818160808384E0CA -:1019200082BF81E08093E5010C94420CE8EDF0E089 -:1019300080818E7F80831092E20008951092DA00F9 -:101940001092E10008951F920F920FB60F9211248A -:101950002F933F934F935F936F937F938F939F93B7 -:10196000AF93BF93EF93FF938091E10082FF0BC091 -:101970008091E20082FF07C08091E1008B7F80931D -:10198000E1000E94FF0E8091DA0080FF1FC080916D -:10199000D80080FF1BC08091DA008E7F8093DA0030 -:1019A0008091D90080FF0DC080E189BD82E189BDB1 -:1019B00009B400FEFDCF81E08093E6010E94070993 -:1019C00005C019BC1092E6010E9415098091E10042 -:1019D00080FF19C08091E20080FF15C08091E20075 -:1019E0008E7F8093E2008091E20080618093E2002C -:1019F0008091D80080628093D80019BC85E08093E4 -:101A0000E6010E9419098091E10084FF30C08091B5 -:101A1000E20084FF2CC080E189BD82E189BD09B468 -:101A200000FEFDCF8091D8008F7D8093D8008091FB -:101A3000E1008F7E8093E1008091E2008F7E8093B1 -:101A4000E2008091E20081608093E2008091E201F7 -:101A5000882311F084E007C08091E30087FF02C073 -:101A600083E001C081E08093E6010E941B09809120 -:101A7000E10083FF29C08091E20083FF25C08091AF -:101A8000E100877F8093E10082E08093E60110927D -:101A9000E2018091E1008E7F8093E1008091E2007D -:101AA0008E7F8093E2008091E20080618093E2006B -:101AB00042E060E080E00E94A20B8091F00088602C -:101AC0008093F0000E941809FF91EF91BF91AF91B0 -:101AD0009F918F917F916F915F914F913F912F9146 -:101AE0000F900FBE0F901F9018951F920F920FB678 -:101AF0000F9211242F933F934F935F936F937F9394 -:101B00008F939F93AF93BF93CF93EF93FF93C09126 -:101B1000E900CF708091EC001092E9008091F00014 -:101B2000877F8093F00078940E94B10D1092E900B5 -:101B30008091F00088608093F000C093E900FF91ED -:101B4000EF91CF91BF91AF919F918F917F916F91C5 -:101B50005F914F913F912F910F900FBE0F901F906B -:101B600018951F93CF93DF93CDB7DEB7AA970FB623 -:101B7000F894DEBF0FBECDBFE7EEF1E08091F1003B -:101B8000819321E0EF3EF207C9F70E943709809167 -:101B9000E80083FF1CC12091E7013091E801832F09 -:101BA00090E08A30910508F012C1FC01EA5AFF4F1B -:101BB0000C94BD23203881F0223809F008C18091AF -:101BC000EB018F708093E9008091EB0085FB882703 -:101BD00080F91092E90006C08091E3019091E40140 -:101BE000911182609091E800977F9093E800809334 -:101BF000F1001092F100C5C0822F8D7F09F0E7C07F -:101C0000222319F0223061F0E2C08091E901813095 -:101C100009F0DDC0333009F080E08093E40128C092 -:101C20008091E901811124C02091EB012F7009F40A -:101C3000CEC02093E9008091EB0080FF19C0809115 -:101C4000EB00333011F4806211C080618093EB00AF -:101C500081E090E0022E01C0880F0A94EAF7809399 -:101C6000EA001092EA008091EB0088608093EB001C -:101C70001092E9008091E800877F86C02111A7C0FB -:101C80001091E9011F778091E3008078812B809388 -:101C9000E3008091E800877F8093E8000E94D70BE3 -:101CA0008091E80080FFFCCF8091E3008068809302 -:101CB000E300112311F083E001C082E08093E6018C -:101CC00086C02058223008F082C08091E9019091AE -:101CD000EA018C3D23E0920779F583E08A838AE26A -:101CE00089834FB7F894DE01139620E03EE051E27D -:101CF000E32FF0E050935700E49120FF03C0E295FA -:101D0000EF703F5FEF708E2F90E0EA3010F0C796D3 -:101D100001C0C0968D939D932F5F243149F74FBF2B -:101D20008091E800877F8093E8006AE270E0CE014E -:101D300001960E94DF0A14C0AE014F5F5F4F6091B1 -:101D4000EB010E94270A009709F441C02091E800A6 -:101D5000277F2093E800BC0189819A810E94400B73 -:101D60008091E8008B778093E80031C0203879F5C6 -:101D70008091E800877F8093E8008091E201809362 -:101D8000F1008091E8008E778093E8000E94D70BE5 -:101D90001EC021111CC09091E9019230C0F48091C5 -:101DA000E800877F8093E8009093E2010E94D70BC0 -:101DB0008091E201811104C08091E30087FF02C09D -:101DC00084E001C081E08093E6010E9423098091B4 -:101DD000E80083FF0AC08091E800877F8093E800D5 -:101DE0008091EB0080628093EB00AA960FB6F89486 -:101DF000DEBF0FBECDBFDF91CF911F910895089533 -:101E0000CF938091E6018823B1F08091E9008F7033 -:101E10009091EC0090FF02C090E801C090E0C92FC3 -:101E2000C82B1092E9008091E80083FD0E94B10D5B -:101E3000CF70C093E900CF91089590936B01809388 -:101E40006A010895E0916A01F0916B01309721F0E9 -:101E50000190F081E02D099480E00895E0916A01FD -:101E6000F0916B01309721F00280F381E02D09940D -:101E70000895E0916A01F0916B01309721F00480A0 -:101E8000F581E02D09940895209168013091690150 -:101E90008217930771F09093690180936801E09134 -:101EA0006A01F0916B01309721F00680F781E02DF7 -:101EB0000994089520916601309167018217930774 -:101EC00071F09093670180936601E0916A01F0914F -:101ED0006B01309721F00084F185E02D099408957D -:101EE00008950C94700F0E94AE1B0E9443040C9442 -:101EF000741CCF92DF92EF92FF920F931F93CF93B8 -:101F0000DF93CDB7DEB72B970FB6F894DEBF0FBEC9 -:101F1000CDBF0E945B043DE6E32E31E0F32E00E0EE -:101F200010E0C02E802F0E944805F701D1907F015C -:101F3000D826B1F40F5F1F4F0E30110591F78FEFC8 -:101F400089838A831B820E94B71B8160782F9D83BF -:101F50008C8349815A816B818D810E941C1041C004 -:101F60009091CF0191FF04C08B870E944E058B8515 -:101F700020E030E04D2D50E0922FBA01022E02C039 -:101F8000759567950A94E2F760FF25C02E83CF828E -:101F9000EE24E394F12C02C0EE0CFF1C9A95E2F7BC -:101FA00090E08E219F2121E0892B09F420E02887F1 -:101FB0000E94B71B8160782F9A8789874E815F8145 -:101FC00068858A850E941C10F801E359FE4F8081C4 -:101FD0008E25808306C02F5F3F4F2630310561F686 -:101FE000A9CF0E94581F10916C010E94220F181750 -:101FF000A1F00E94220F80936C012B960FB6F894EB -:10200000DEBF0FBECDBFDF91CF911F910F91FF902B -:10201000EF90DF90CF900C9427082B960FB6F89492 -:10202000DEBF0FBECDBFDF91CF911F910F91FF900B -:10203000EF90DF90CF900895CF93DF93CDB7DEB7C9 -:102040002B970FB6F894DEBF0FBECDBF4F835887D6 -:1020500069877A878B87DE01119686E0FD011192F0 -:102060008A95E9F785E0FE01379601900D928A95F1 -:10207000E1F749815A816B817C818D819E810E942B -:1020800070172B960FB6F894DEBF0FBECDBFDF9151 -:10209000CF910895CF93C82F882309F4C1C0823807 -:1020A00059F40E94220F81FDBBC089E30E941C1AD3 -:1020B0000E94E61A89E30CC0833879F40E94220F4B -:1020C00080FDAEC083E50E941C1A0E94E61A83E5DB -:1020D0000E945C1ACF910C94E61A843859F40E943D -:1020E000220F82FD9DC087E40E941C1A0E94E61AFE -:1020F00087E4EECF8CEF8C0F813A48F48C2F0E944E -:102100008B2181118DC08C2F0E941C1AE3CF80E29D -:102110008C0F883048F4C77081E001C0880FCA95E1 -:10212000EAF70E949D1AD6CF8BE58C0F833078F4A6 -:10213000C53A29F0C63A31F482E890E005C081E85A -:1021400090E002C083E890E0CF910C94440F88E5C2 -:102150008C0F833108F064C0C83A39F1C93A41F1B3 -:10216000CA3A49F1CB3A51F1CC3A59F1CD3A61F141 -:10217000C03B69F1CE3A71F1CF3A79F1C13B81F1BF -:10218000C23B89F1C33B91F1C43B99F1C53BA1F13D -:10219000C63BA9F1C73BB1F1C83BB9F1C93BC1F19D -:1021A000CA3BC9F58AE292E038C082EE90E035C0C1 -:1021B00089EE90E032C08AEE90E02FC085EB90E08F -:1021C0002CC086EB90E029C087EB90E026C08CEC19 -:1021D00090E023C08DEC90E020C083E891E01DC02A -:1021E0008AE891E01AC082E991E017C084E991E0A1 -:1021F00014C081E292E011C083E292E00EC084E25A -:1022000092E00BC085E292E008C086E292E005C051 -:1022100087E292E002C080E090E0CF910C945A0FE8 -:10222000CF910895882309F44BC0823859F40E9455 -:10223000220F81FF45C089E30E941C1A0E94E61A02 -:1022400089E30CC0833871F40E94220F80FF38C0EC -:1022500083E50E941C1A0E94E61A83E50E945C1A1C -:102260000C94E61A843859F40E94220F82FF28C089 -:1022700087E40E941C1A0E94E61A87E4EFCF9CEFC5 -:10228000980F913A58F390E2980F983050F4877075 -:1022900091E001C0990F8A95EAF7892F0E94A31A4D -:1022A000DFCF9BE5980F933020F480E090E00C9412 -:1022B000440F885A833120F480E090E00C945A0F48 -:1022C0000895882321F00E949D1A0C94E61A08951F -:1022D000882321F00E94A31A0C94E61A0895CF9245 -:1022E000DF92EF92FF920F931F93CF93DF93CDB7BF -:1022F000DEB728970FB6F894DEBF0FBECDBF8C01B6 -:1023000085E0F801DE01119601900D928A95E1F7C2 -:10231000F801D080E180F280558152955F70238171 -:102320003481232B39F0FFEFEF1206C081E0DF127A -:1023300003C003C081E001C080E080FDE2C2C801AB -:102340005F830E94CE03D982EA8269817A818F2DD0 -:102350000E94181A9E8388870E94CC190E949F1899 -:102360004E815F816885FF2029F00E94BA1A688536 -:102370005F814E81E42FE295EF70F0E0E05AFF4F6D -:102380000C94BD23842F807F142F1F70882311F09D -:102390001295107FFF20B1F0112309F467C280E28B -:1023A000860F883028F4812F68870E949D1A04C008 -:1023B000812F68870E94AD1A688568870E94E61A97 -:1023C000688554C2862F68870E9412116885112380 -:1023D00009F497C2605E812F683018F40E94A31A36 -:1023E00002C00E94B31A28960FB6F894DEBF0FBE43 -:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 -:10240000CF900C94E61A242F207F842F8F702032D7 -:1024100011F08295807F662319F0613019F12BC08D -:10242000FF20B1F0552309F493C1513009F090C158 -:1024300028960FB6F894DEBF0FBECDBFDF91CF91C7 -:102440001F910F91FF90EF90DF90CF900C94CD1AD9 -:10245000552319F0513009F454C28E830E94D01ACA -:102460008E8189C1FF2021F0523008F04AC270C12C -:10247000511147C280C1FF2021F0552309F468C1E2 -:10248000F5C1552309F477C105C2242F2695269559 -:10249000237030E02115310521F021303105C9F0DC -:1024A00030C2FF2021F0862F942F937002C080E06D -:1024B00090E028960FB6F894DEBF0FBECDBFDF9137 -:1024C000CF911F910F91FF90EF90DF90CF900C94E0 -:1024D000440FFF2021F0862F942F937002C080E0DC -:1024E00090E028960FB6F894DEBF0FBECDBFDF9107 -:1024F000CF911F910F91FF90EF90DF90CF900C94B0 -:102500005A0F862FFF2019F00E94601E02C00E9401 -:10251000C81E28960FB6F894DEBF0FBECDBFDF9160 -:10252000CF911F910F91FF90EF90DF90CF900C947F -:102530004D1F842F837009F076C0F110E2C1262F61 -:10254000229526952770220F220F862F8F70C82E76 -:10255000D12CE12CF12C022E04C0CC0CDD1CEE1C85 -:10256000FF1C0A94D2F764FF10C06FE070E080E0B7 -:1025700090E004C0660F771F881F991F2A95D2F735 -:10258000609570958095909503C060E070E0CB01F8 -:10259000242F269526952370422F50E04230510576 -:1025A000D1F04330510559F16C297D298E299F299D -:1025B0004130510541F128960FB6F894DEBF0FBEA9 -:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 -:1025D000CF900C94C4186C297D298E299F292896A8 -:1025E0000FB6F894DEBF0FBECDBFDF91CF911F9124 -:1025F0000F91FF90EF90DF90CF900C94DE180E9427 -:10260000C418C701B60128960FB6F894DEBF0FBEF6 -:10261000CDBFDF91CF911F910F91FF90EF90DF9091 -:10262000CF900C94AA18FF2019F0842F817001C05C -:102630008695882309F465C1262F22952695277053 -:10264000220F220F862F8F70C82ED12CE12CF12C57 -:10265000022E04C0CC0CDD1CEE1CFF1C0A94D2F729 -:1026600064FF10C06FE070E080E090E004C0660F8F -:10267000771F881F991F2A95D2F7609570958095CE -:10268000909503C060E070E0CB01242F269526953D -:102690002370422F50E042305105D1F043305105B4 -:1026A00059F16C297D298E299F294130510541F12D -:1026B00028960FB6F894DEBF0FBECDBFDF91CF9145 -:1026C0001F910F91FF90EF90DF90CF900C9498198D -:1026D0006C297D298E299F2928960FB6F894DEBF94 -:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 -:1026F000DF90CF900C94B2190E949819C701B601CF -:1027000028960FB6F894DEBF0FBECDBFDF91CF91F4 -:102710001F910F91FF90EF90DF90CF900C947E1956 -:10272000603FC9F118F4603E50F49BC0623F09F469 -:1027300060C008F44AC0633F09F46FC092C0162F0E -:102740001F70842F8F71FF2099F00E941719812F1D -:1027500028960FB6F894DEBF0FBECDBFDF91CF91A4 -:102760001F910F91FF90EF90DF90CF900C9461112B -:102770000E943819812F28960FB6F894DEBF0FBE3D -:10278000CDBFDF91CF911F910F91FF90EF90DF9020 -:10279000CF900C946811FF20A1F05111B2C0842F8A -:1027A0008F7128960FB6F894DEBF0FBECDBFDF91B4 -:1027B000CF911F910F91FF90EF90DF90CF900C94ED -:1027C0005D19523008F09DC0EACFFF20A1F0842FA0 -:1027D0008F7128960FB6F894DEBF0FBECDBFDF9184 -:1027E000CF911F910F91FF90EF90DF90CF900C94BD -:1027F0001719FF2061F3842F8F7128960FB6F89474 -:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 -:10281000EF90DF90CF900C943819FF2091F0842F27 -:102820008F7128960FB6F894DEBF0FBECDBFDF9133 -:10283000CF911F910F91FF90EF90DF90CF900C946C -:10284000021928960FB6F894DEBF0FBECDBFDF91F8 -:10285000CF911F910F91FF90EF90DF90CF900C944C -:10286000F818FF20A1F0552309F4B1CF862F289640 -:102870000FB6F894DEBF0FBECDBFDF91CF911F9191 -:102880000F91FF90EF90DF90CF900C944A1055235A -:1028900009F4B1CF862F28960FB6F894DEBF0FBE8D -:1028A000CDBFDF91CF911F910F91FF90EF90DF90FF -:1028B000CF900C9412114F70C8010E94AB02289661 -:1028C0000FB6F894DEBF0FBECDBFDF91CF911F9141 -:1028D0000F91FF90EF90DF90CF900C941D184F70E8 -:1028E000C80128960FB6F894DEBF0FBECDBFDF91AA -:1028F000CF911F910F91FF90EF90DF90CF900C94AC -:102900004F0528960FB6F894DEBF0FBECDBFDF91FE -:10291000CF911F910F91FF90EF90DF90CF9008958E -:102920000E94BA1A0E94CA1A0E948F1A0E94E61ABE -:102930000E94F91F0E944D1F80E090E00E94440F0A -:1029400080E090E00C945A0F0E94AA1A0C94901404 -:102950000E940D1A292F22952F7030E02C3031055E -:102960004CF42A3031056CF4225031092230310503 -:1029700090F407C02C30310551F02F30310539F07B -:102980000AC0803E10F0803F31F481E0089593FB4F -:10299000882780F9089580E00895CF93DF9300D0D1 -:1029A00000D01F92CDB7DEB70F900F900F900F9011 -:1029B0000F90DF91CF910895CF93DF9300D000D097 -:1029C00000D0CDB7DEB726960FB6F894DEBF0FBEA7 -:1029D000CDBFDF91CF9108951F93CF93DF93C09127 -:1029E0007B0116E080917C01C81799F0D0E01C9F14 -:1029F000F0011D9FF00D1124E358FE4F40815181DD -:102A000062817381848195810E94DC142196C77054 -:102A1000E9CFDF91CF911F9108954091AD01509181 -:102A2000AE016091AF017091B0018091B1019091C0 -:102A3000B2010C94DC14CF938091B20182958F7017 -:102A400009F05FC08091AF01882309F45AC020913A -:102A50007B01A0917C016091AD017091AE018091EC -:102A6000B0019091B10131E06F3F09F030E0B32F38 -:102A7000C6E02A1709F445C0009721F07F3F21F4F2 -:102A80004B2F03C041E001C040E030E040FD35C0C5 -:102A9000C29FF001C39FF00D1124E358FE4F418106 -:102AA00074132BC04081641328C04281411125C09A -:102AB000438154814817590710F441505109481B6C -:102AC000590B483C5105C8F48091B2018F70806168 -:102AD0008093B20186E0829FF001839FF00D112464 -:102AE000EE57FE4F80818F70806180838DEA91E088 -:102AF0000E946F11CF910C94EC142F5F3F4F277001 -:102B0000B8CFCF910895CF92DF92EF92FF920F93BB -:102B10001F93CF93DF93CDB7DEB762970FB6F894CC -:102B2000DEBF0FBECDBF8C0185E0F801DE011D9632 -:102B300001900D928A95E1F7D8014C9111965C9124 -:102B4000119712966C9112971396ED90FC90149732 -:102B50007091AD01E091AE012091B0013091B101D1 -:102B60002115310531F0EF3F31F481E07F3F19F459 -:102B700003C081E001C080E0B82FB170CB2E80FD92 -:102B80006CC1D090AF01DD2009F4F5C0F091B20125 -:102B9000E216F30638F0C701821B930B883C9105BF -:102BA00048F09BC0209530952E0D3F1D283C3105E7 -:102BB00008F093C08F2F807F09F052C0E51314C036 -:102BC000741312C0D62E61110FC0FF70F061F09324 -:102BD000B2010E940D158DEA91E00E946F11809163 -:102BE000B201F80185836CC1EF2831F05F3F31F409 -:102BF00081E04F3F19F403C081E001C080E080FD17 -:102C000003C081E0862701C080E0F82FF170FF2E1D -:102C100080FF1CC080917B0120917C0136E08217EF -:102C200009F428C190E0389FF001399FF00D11247C -:102C3000E358FE4F7181571306C07081471303C0DC -:102C40007281671303C001968770E9CFD62E662381 -:102C500009F436C18091B20181608093B20153C002 -:102C6000E51308C0741306C0611104C0D80115969D -:102C7000FC93AEC04D875E878D859E856A8B0E94D2 -:102C8000A8146A89882329F1D62E662311F1209190 -:102C9000B201822F82958F7090E002970CF460C091 -:102CA0008091AD019091AE0198878F831986FB8644 -:102CB000EA862C87CE01079651C0E51731F14D8782 -:102CC0005E878D859E856A8B0E94A8146A89811112 -:102CD0002EC0C8010E946F11A4C08F2F807F69F79A -:102CE0007E2DF98AE88A89890E94CD148DEA91E0C7 -:102CF0000E946F11EDEAF1E086E0DF011D928A95F6 -:102D0000E9F70E940D15D12CDBC07413D8CF6111E7 -:102D1000D6CFD8011596FC93C8010E946F11EDEA39 -:102D2000F1E086E0DF011D928A95E9F7C9C0D62E51 -:102D3000662379F22091B201822F82958F7090E004 -:102D4000029774F08091AD019091AE019A838983CE -:102D50001B82FD82EC822E83CE0101960E946F11B0 -:102D600086E0F801ADEAB1E001900D928A95E1F7B5 -:102D70000E941B156FC0E216F30628F0C701821BE4 -:102D8000930B9C0104C0209530952E0D3F1D283CCF -:102D9000310508F052C0D62E662309F49ACFE51308 -:102DA0002CC074132AC08091B20180FD1DC0982FE1 -:102DB00092959F70C9F0D80115968C9315979F3006 -:102DC00039F09F5F9295907F8F70892B15968C9329 -:102DD000C8010E946F1186E0F801ADEAB1E00190F0 -:102DE0000D928A95E1F736C086E0F801ADEAB1E0D0 -:102DF00001900D928A95E1F763C04D875E878D85BE -:102E00009E850E94A814882379F086E0F801ADEA37 -:102E1000B1E001900D928A95E1F70E941B150E9486 -:102E20000D15DD24D3944CC08091B2018160809354 -:102E3000B201C8010E946F1143C07E2DF98AE88A51 -:102E400089890E94CD14EDEAF1E086E0DF011D9250 -:102E50008A95E9F70E940D1533C0662309F439CF2E -:102E60004D875E878D859E850E94A814882309F46E -:102E700030CFCBCF4D875E878D859E850E940D1A02 -:102E8000292F22952F7030E0223031052CF49F70CD -:102E900041F0811106C00CC0243031052CF49F7024 -:102EA00049F4805E883020F0C8010E946F11CF2C59 -:102EB000DC2C06C0D80115969C91907F91F7F8CF35 -:102EC0008D2D62960FB6F894DEBF0FBECDBFDF9199 -:102ED000CF911F910F91FF90EF90DF90CF900895C9 -:102EE0001F93CF93DF93CDB7DEB72C970FB6F8942F -:102EF000DEBF0FBECDBF4F83588769877A878B8728 -:102F00009C87CE0107960E9483158823C1F02F81EC -:102F100038858A859B85892B31F03F3F11F080E011 -:102F200003C02F3FE1F781E0811147C04F815885F1 -:102F300069857A858B859C850E94DC143EC086E07D -:102F4000FE013796DE01119601900D928A95E1F708 -:102F5000FF81E8854A855B854115510531F0EF3FDA -:102F600031F481E0FF3F19F403C081E001C080E04B -:102F700080FD23C020917C0130E0C901019687705B -:102F8000992760917B0170E086179707F1F1F9832B -:102F9000EA835D834C8396E0929FD001939FB00DAE -:102FA0001124A358BE4FFE01319601900D929A95BF -:102FB000E1F780937C010E94EC1416E080917B0184 -:102FC00090917C01891779F1189FC00111248358D1 -:102FD0009E4F0E948315882331F1E0917B011E9F53 -:102FE000F0011124E358FE4F4081518162817381C9 -:102FF000848195810E94DC1480917B0190E0019690 -:103000008770992780937B01D9CF0E94A4141092D6 -:103010007C0110927B01EDEAF1E086E0DF011D9278 -:103020008A95E9F7CACF2C960FB6F894DEBF0FBE8B -:10303000CDBFDF91CF911F910895EF92FF920F9333 -:103040001F93CF93DF939C01009709F471C0F12C7B -:10305000EE24E394E9012196F9018491843740F448 -:10306000843008F056C0813081F0823021F160C098 -:10307000853709F449C0C0F19CE7980F903708F0F4 -:1030800057C08F770E94121146C089010E5F1F4FF3 -:10309000FE01849190E2980F983050F48770FE2DD5 -:1030A00001C0FF0F8A95EAF78F2F0E94BD1A15C045 -:1030B0000E944A1014C089010E5F1F4FFE018491C7 -:1030C00090E2980F983068F48770FE2D01C0FF0FD2 -:1030D0008A95EAF78F2F0E94C31A0E94E61AE80128 -:1030E0001AC00E941211FBCF2E5F3F4FFE01C49108 -:1030F000CC2341F08FE99FE00197F1F700C0000079 -:10310000C150F6CFE90107C0FE01F490E901229613 -:1031100002C00E944A108F2D882341F0EFE9FFE0A2 -:103120003197F1F700C000008150F6CF9E0192CF99 -:10313000DF91CF911F910F91FF90EF900895089527 -:103140006093B7017093B8018093B9019093BA016D -:103150000C9490140F931F930091B7011091B80134 -:103160002091B9013091BA01062B172B282B392B4E -:103170000093B7011093B8012093B9013093BA01BD -:103180001F910F910C9490140F931F930091B7010E -:103190001091B8012091B9013091BA01062317238B -:1031A000282339230093B7011093B8012093B90164 -:1031B0003093BA011F910F910C9490140F931F93A9 -:1031C0000091B7011091B8012091B9013091BA0175 -:1031D00006271727282739270093B7011093B8012E -:1031E0002093B9013093BA011F910F910C94901460 -:1031F0001092B3011092B4011092B5011092B60171 -:103200000C94901441E050E060E070E004C0440F82 -:10321000551F661F771F8A95D2F74093B3015093CD -:10322000B4016093B5017093B6010C94901441E021 -:1032300050E060E070E004C0440F551F661F771F28 -:103240008A95D2F78091B3019091B401A091B50114 -:10325000B091B601842B952BA62BB72B8093B3018D -:103260009093B401A093B501B093B6010C9490145F -:1032700041E050E060E070E004C0440F551F661F5D -:10328000771F8A95D2F740955095609570958091FB -:10329000B3019091B401A091B501B091B60184231E -:1032A0009523A623B7238093B3019093B401A093F1 -:1032B000B501B093B6010C94901441E050E060E089 -:1032C00070E004C0440F551F661F771F8A95D2F720 -:1032D0008091B3019091B401A091B501B091B60174 -:1032E00084279527A627B7278093B3019093B4012D -:1032F000A093B501B093B6010C9490140F931F9353 -:103300000091B3011091B4012091B5013091B60143 -:10331000062B172B282B392B0093B3011093B401E4 -:103320002093B5013093B6011F910F910C94901426 -:103330000F931F930091B3011091B4012091B50137 -:103340003091B60106231723282339230093B301B4 -:103350001093B4012093B5013093B6011F910F91E2 -:103360000C9490140F931F930091B3011091B4012A -:103370002091B5013091B601062717272827392754 -:103380000093B3011093B4012093B5013093B601BB -:103390001F910F910C9490140895CF92DF92EF92A9 -:1033A000FF920F931F93CF93DF93EC01C090B7016F -:1033B000D090B801E090B901F090BA018091B301CA -:1033C0009091B401A091B501B091B601C82AD92A53 -:1033D000EA2AFB2A0FE110E0B701A601002E04C083 -:1033E00076956795579547950A94D2F740FD05C0A5 -:1033F0000150110988F780E007C0BE01802F0E94AC -:103400008C070197A9F3802FDF91CF911F910F9126 -:10341000FF90EF90DF90CF900895CF93DF93EC0172 -:103420000E94CD19BE010E948C07DF91CF910895B3 -:10343000CB010E940D1A089590910C019923D9F0A7 -:1034400090910D019923B9F0982F969596959695A0 -:103450009F3088F5E0910E01F0910F01E90FF11D09 -:10346000877021E030E001C0220F8A95EAF7818160 -:10347000822B8183089540910E0150910F0120E02D -:1034800030E09FEFFA01E20FF31F6281681799F0B5 -:103490009F3F19F4611101C0922F2F5F3F4F2E30D3 -:1034A000310581F79F3F39F0FA01E90FF11D97FDD2 -:1034B000FA9582830895089590910C019923E1F083 -:1034C00090910D019923C1F0982F96959695969518 -:1034D0009F3020F5E0910E01F0910F01E90FF11DF1 -:1034E000877021E030E001C0220F8A95EAF720952D -:1034F000818128232183089540910E0150910F016D -:1035000020E030E0FA01E20FF31F9281981301C02E -:1035100012822F5F3F4F2E303105A1F7089581E0D1 -:1035200090E0E0910E01F0910F01E80FF91F108279 -:10353000019680319105A9F708959091CE01982BBD -:103540009093CE01089580959091CE019823909309 -:10355000CE0108951092CE0108959091CD01982B3F -:103560009093CD01089580959091CD0198239093EB -:10357000CD0108951092CD0108959091CC01982B22 -:103580009093CC01089580959091CC0198239093CD -:10359000CC0108951092CC0108958093BB01089549 -:1035A0001092BB01089540910E0150910F0120E04F -:1035B00030E080E0FA01E20FF31F918191118F5FFB -:1035C0002F5F3F4F2F303105A9F70895E0910E018D -:1035D000F0910F018091CE018083E0910E01F09176 -:1035E0000F0180819091CD01892B8083E0910E01A4 -:1035F000F0910F0180819091CC01892B8083909173 -:10360000BB01992361F0E0910E01F0910F018081DF -:10361000892B80830E94D31A81111092BB01809163 -:103620000E0190910F010C942E0FCF92DF92EF922A -:10363000FF920F931F936C01EE24FF24C114D10459 -:10364000E104F10421F46B017C0180E001C080E120 -:1036500033272F2D1E2D0D2D0115110521053105A7 -:1036600019F0885F6801790197018601A4E0369519 -:10367000279517950795AA95D1F7011511052105ED -:10368000310519F08C5F6801790197018601F2E03C -:103690003695279517950795FA95D1F701151105D8 -:1036A0002105310519F08E5F68017901B701A60186 -:1036B0007695679557954795452B462B472B09F0EF -:1036C0008F5F1F910F91FF90EF90DF90CF90089543 -:1036D0008091E601843021F11092D00120E488E14C -:1036E00090E00FB6F894A895809360000FBE2093E9 -:1036F000600080E00E94270883B7817F846083BFD9 -:1037000083B7816083BF7894889583B78E7F83BFAA -:1037100088E10FB6F89480936000109260000FBEAD -:10372000089508950895CF930E94911B0E945B0411 -:103730000E94921BC0E08C2F0E944805811105C099 -:10374000CF5FCE30C1F780E001C081E0CF91089516 -:103750000E94A4140E94220F0C94270882E084BDCA -:1037600093E095BD9AEF97BD80936E0008952FB7B3 -:10377000F8948091D1019091D201A091D301B091A0 -:10378000D4012FBF0895CF92DF92EF92FF920F9353 -:103790001F932FB7F8944091D1015091D2016091BD -:1037A000D3017091D4012FBF6A017B01EE24FF2465 -:1037B0008C0120E030E0C016D106E206F30610F4DA -:1037C00041505109481B590BCA011F910F91FF909D -:1037D000EF90DF90CF9008951F920F920FB60F9247 -:1037E00011248F939F93AF93BF938091D1019091B8 -:1037F000D201A091D301B091D4010196A11DB11DB8 -:103800008093D1019093D201A093D301B093D401BE -:10381000BF91AF919F918F910F900FBE0F901F900E -:1038200018950E94280CF8942FEF87EA91E6215012 -:1038300080409040E1F700C0000087E090EBDC01A1 -:103840008093F0019093F101A093F201B093F30102 -:103850002CE088E190E00FB6F894A8958093600082 -:103860000FBE20936000FFCFEF92FF920F931F9344 -:10387000CF93DF93E82EF12C8F2D0E944805C0E0F6 -:10388000D0E0082F10E098010C2E02C03595279546 -:103890000A94E2F720FD05C02196C630D10599F7BC -:1038A00009C06C2F7F2D80E00E945005E812F4CFF4 -:1038B00081E005C0F3948EE0F812DECF80E0DF9166 -:1038C000CF911F910F91FF90EF900895CF93C82F44 -:1038D0008CE20E94341C882321F08C2FCF910C9411 -:1038E000341C80E0CF910895CF930E94B91D8111BF -:1038F00002C00E949F1DC5E6C15049F00E945B04B2 -:103900008FE39CE90197F1F700C00000F5CF89E251 -:103910000E94661C811111C18AE20E94661C8111FD -:103920000E949F1D85E00E94661C81110E94111C4F -:103930000E94C41D8093CF0187E00E94661C8823EB -:1039400099F18BE10E94661C882351F09091CF0180 -:1039500091FB882780F921E0822780FB91F922C022 -:103960008EE00E94661C882351F09091CF0192FB5B -:10397000882780F921E0822780FB92F913C080E13B -:103980000E94661C9091CF01882341F093FB882709 -:1039900080F921E0822780FB93F904C0892F80956C -:1039A00080FB90F99093CF018091CF010E94C81DB8 -:1039B0000E94D61D8093EF0180EE0E94661C882332 -:1039C00041F08091EF01982F909590FB80F98093C2 -:1039D000EF0189E30E94661C882359F09091EF0162 -:1039E00091FB882780F921E0822780FB91F9909351 -:1039F000EF0182EE0E94661C882359F09091EF013E -:103A000092FB882780F921E0822780FB92F990932E -:103A1000EF0186EE0E94661C882359F09091EF0119 -:103A200093FB882780F921E0822780FB93F990930C -:103A3000EF0183EE0E94661C882359F09091EF01FC -:103A400094FB882780F921E0822780FB94F99093EA -:103A5000EF0185E30E94661C882359F09091EF01E5 -:103A600095FB882780F921E0822780FB95F99093C8 -:103A7000EF0181E30E94661C882359F09091EF01C9 -:103A800096FB882780F921E0822780FB96F99093A6 -:103A9000EF0181E10E94661C882359F09091EF01AB -:103AA00097FB882780F921E0822780FB97F9909384 -:103AB000EF018091EF010E94DA1D8091EF0187FBF9 -:103AC000882780F980930D0187E20E94661CC82F29 -:103AD0008EE10E94661C8111C2608FE10E94661C0B -:103AE0008111C46080E20E94661C8111C86081E27D -:103AF0000E94661C8111C06182E20E94661C8111D5 -:103B0000C06283E20E94661C8111C06484E20E944C -:103B1000661C882311F0C06802C0CC2329F08C2FCA -:103B20000E94D11D6C2F03C00E94CD1D682F70E034 -:103B300080E090E0CF910C94A018CF9108956DEEA5 -:103B40007EEF80E090E00E94F72360E082E090E06A -:103B50000E94E52360E083E090E00E94E52360E0BE -:103B600084E090E00E94E52360E085E090E00C9422 -:103B7000E52380E090E00E94DF2321E08D3E9E4F10 -:103B800009F020E0822F089582E090E00C94D72382 -:103B9000682F82E090E00C94E52383E090E00C94A1 -:103BA000D723682F83E090E00C94E52384E090E035 -:103BB0000C94D723682F84E090E00C94E523809147 -:103BC000D70180FF0BC06091130185E0689FB001B1 -:103BD000112475956795759567952AC081FF09C071 -:103BE0006091130185E0689FB00111247595679578 -:103BF0001FC082FF07C06091130185E0689FB0017C -:103C0000112416C04091D8014423C9F060911201DB -:103C1000461788F72091130185E0289F9001112411 -:103C2000429FC001439F900D112470E00E94A92380 -:103C30006038710540F46115710539F002C065E026 -:103C400070E0862F08958FE7089581E008958091B0 -:103C5000D70180FF08C06091110170E075956795EC -:103C60007595679521C081FF06C06091110170E0D4 -:103C70007595679519C082FF04C06091110170E0CD -:103C800010C08091D8018823C1F06091100186177F -:103C9000A0F790911101989FC001112470E00E943B -:103CA000A9236038710528F46115710521F0862F6C -:103CB00008958FE7089581E0089561E070E0F4CF02 -:103CC000803F21F40E94DF1D819504C0813F29F4CB -:103CD0000E94DF1D8093DB010895823F21F40E9442 -:103CE000DF1D819504C0833F29F40E94DF1D80936E -:103CF000DA010895893F19F40E94271E05C08A3F02 -:103D000031F40E94271E81958093DC0108958B3F3A -:103D100021F40E94271E819504C08C3F29F40E9443 -:103D2000271E8093DD010895843F21F48091D901FD -:103D3000816017C0853F21F48091D901826011C054 -:103D4000863F21F48091D90184600BC0873F21F424 -:103D50008091D901886005C0883F31F48091D901F4 -:103D600080618093D90108958D3F21F48091D7011E -:103D700081600BC08E3F21F48091D701826005C025 -:103D80008F3F29F48091D70184608093D7010895F3 -:103D9000803F39F48091DB0187FF6CC01092DB011A -:103DA00069C0813F29F48091DB011816BCF362C021 -:103DB0009091DA01823F29F497FF5CC01092DA01FA -:103DC00059C0833F19F41916CCF354C0893F41F40C -:103DD0008091DC0118160CF04DC01092DC014AC035 -:103DE0008A3F29F48091DC0187FF44C0F6CF8B3FE6 -:103DF00039F48091DD0187FF3DC01092DD013AC0AA -:103E00008C3F29F48091DD011816BCF333C0843F48 -:103E100021F48091D9018E7F17C0853F21F48091D4 -:103E2000D9018D7F11C0863F21F48091D9018B7F0C -:103E30000BC0873F21F48091D901877F05C0883F5F -:103E400031F48091D9018F7E8093D90113C08D3FC9 -:103E500021F48091D7018E7F0BC08E3F21F4809199 -:103E6000D7018D7F05C08F3F29F48091D7018B7FCB -:103E70008093D7018091DA0181110EC08091DB011E -:103E800081110AC08091DC01811106C08091DD01A1 -:103E9000811102C01092D801089589ED91E00E942D -:103EA000390F0E94B71B9093D6018093D5010895D6 -:103EB0001F93CF93DF938091D5019091D6010E94FB -:103EC000C31B4091D801442321F02091140130E01C -:103ED00006C0209115015AE0259F900111248217F8 -:103EE000930708F482C08091DA011091DB01D09130 -:103EF000DC01C091DD01811107C0111105C0D11194 -:103F000003C0CC2309F471C04F3F19F04F5F4093B9 -:103F1000D801181624F40E94DF1D8093DA018091E5 -:103F2000DA0187FF05C00E94DF1D81958093DA01C9 -:103F3000111624F40E94DF1D8093DB018091DB01C8 -:103F400087FF05C00E94DF1D81958093DB01609192 -:103F5000DA01662339F11091DB01112319F177277A -:103F600067FD7095872F972F0E94BA2223E333E3D2 -:103F700043E35FE30E941E230E9487226093DA01DD -:103F8000612F772767FD7095872F972F0E94BA22A0 -:103F900023E333E343E35FE30E941E230E9487226F -:103FA0006093DB011D1624F40E94271E8093DC0120 -:103FB0008091DC0187FF05C00E94271E81958093B8 -:103FC000DC011C1624F40E94271E8093DD018091E1 -:103FD000DD0187FF05C00E94271E81958093DD01CA -:103FE000DF91CF911F910C944D1FDF91CF911F91C5 -:103FF0000895E9EDF1E085E0DF011D928A95E9F78A -:104000001092D8011092D7010895833081F128F4DD -:10401000813059F08230D1F00895853009F449C0DB -:10402000B8F1863009F456C0089520911501862F05 -:1040300090E0820F911D8F3F910520F4620F6093F5 -:10404000150108958FEF80931501089520911401B3 -:10405000862F90E0820F911D8F3F910520F4620F13 -:104060006093140108958FEF8093140108952091B7 -:104070001301862F90E0820F911D8F3F910520F450 -:10408000620F6093130108958FEF809313010895D9 -:1040900020911201862F90E0820F911D8F3F910594 -:1040A00020F4620F6093120108958FEF8093120144 -:1040B000089520911101862F90E0820F911D8F3F6E -:1040C000910520F4620F6093110108958FEF8093A2 -:1040D0001101089520911001862F90E0820F911D0B -:1040E0008F3F910520F4620F6093100108958FEFC8 -:1040F000809310010895833011F128F4813049F044 -:10410000823091F00895853081F120F18630C1F13F -:10411000089580911501681720F4861B809315017E -:10412000089510921501089580911401681720F4E4 -:10413000861B8093140108951092140108958091B4 -:104140001301681720F4861B8093130108951092C1 -:104150001301089580911201681720F4861B809343 -:1041600012010895109212010895809111016817AB -:1041700020F4861B80931101089510921101089577 -:1041800080911001681720F4861B80931001089518 -:104190001092100108958D3109F442C020F58E303F -:1041A00009F477C070F4873009F459C018F48630E8 -:1041B000F1F134C0883009F4A8C08B3009F4A5C0EF -:1041C0002DC0863109F4A1C038F4803109F472C0E1 -:1041D000813109F479C022C0893109F496C08B314C -:1041E00009F44DC01BC0853309F487C048F48732F9 -:1041F00009F483C008F473C0893209F47EC00EC08C -:10420000833438F48A3308F068C0883309F47DC0F9 -:1042100005C0833409F471C0883499F080E00895B2 -:104220000E9441220E94220F0E9427086EC08091A6 -:10423000CF01817F8E7F8093CF0181E08093DF016A -:1042400008950E94A4142FEF83ED90E32150804045 -:104250009040E1F700C000000E94111C56C09091F0 -:10426000CF01892F8095817080FB90F919F09660BD -:1042700098601DC0997F977F9093CF0146C0909121 -:10428000CF0191FB882780F921E0822780FB91F9FB -:1042900009C09091CF0192FB882780F921E0822705 -:1042A00080FB92F99093CF01882379F191609093EC -:1042B000CF0108959091CF0193FB882780F921E0E9 -:1042C000822780FB93F9EECF0E94A41480910D0108 -:1042D00091E0892780930D0118C027EC01C023EEDF -:1042E000280F61E070E080E090E004C0660F771F67 -:1042F000881F991F2A95D2F704C061E070E080E022 -:1043000090E00E94A0180E94A41481E0089580E02B -:10431000089580E00895CF93C82F8091DF01813008 -:1043200079F018F08230D1F184C0A0910E01B091E3 -:104330000F018C91813169F0823209F07CC009C093 -:10434000A0910E01B0910F018C91813111F0823258 -:1043500049F48C2F0E94872181111DC08C2F0E944F -:10436000CB201AC08C2F0E948921811114C0C43126 -:1043700079F048F4CB3079F0C03109F060C082E0C8 -:104380008093DF0108C0C93219F0C83321F057C04B -:104390001092DF0154C081E0817053C0C93289F1AD -:1043A00018F5C43171F1A8F4C73009F046C08AE0AD -:1043B0008093150194E19093140193E0909313017D -:1043C0008093120188E08093110188E280931001AC -:1043D00034C0CE51C63088F5EC2FF0E0E65DFE4FDC -:1043E00080818093DE0129C0CE34E9F020F4CB3403 -:1043F00021F56AE013C0C13579F0C235F1F461E00E -:104400000DC08091DE01882319F01092DE0115C0E5 -:1044100081E08093DF0115C061E006C08091DE017C -:104420000E9405200AC06AE08091DE010E947B2084 -:1044300004C01092DF0180E004C081E002C080E08F -:10444000ABCFCF910895E1E8F0E080818860808370 -:104450008081816080838FB7F89493E09093890086 -:1044600090ED909388008FBF0895EFE6F0E0808193 -:10447000826080830895EFE6F0E080818D7F808305 -:104480000895EFE6F0E0808192E089278083089527 -:104490001F920F920FB60F9211242F933F934F93B9 -:1044A0005F936F937F938F939F93AF93BF93EF939C -:1044B000FF938091E0019091E10101969093E101D9 -:1044C0008093E001811103C082E00E942708E091FF -:1044D000E101E695E695F0E0E657FB4FE491809127 -:1044E000E0018E1303C080E00E942708FF91EF9146 -:1044F000BF91AF919F918F917F916F915F914F91FC -:104500003F912F910F900FBE0F901F90189504D0E0 -:104510006894B1118DC0089570D088F09F5790F0C5 -:10452000B92F9927B751A0F0D1F0660F771F881FD8 -:10453000991F1AF0BA95C9F712C0B13081F077D03F -:10454000B1E0089574C0672F782F8827B85F39F0DD -:10455000B93FCCF3869577956795B395D9F73EF437 -:1045600090958095709561957F4F8F4F9F4F0895DF -:10457000E89409C097FB3EF49095809570956195FD -:104580007F4F8F4F9F4F9923A9F0F92F96E9BB27B3 -:104590009395F695879577956795B795F111F8CF2F -:1045A000FAF4BB0F11F460FF1BC06F5F7F4F8F4F9A -:1045B0009F4F16C0882311F096E911C0772321F090 -:1045C0009EE8872F762F05C0662371F096E8862F28 -:1045D00070E060E02AF09A95660F771F881FDAF77F -:1045E000880F9695879597F9089557FD9058440F31 -:1045F000551F59F05F3F71F04795880F97FB991F42 -:1046000061F09F3F79F087950895121613061406FE -:10461000551FF2CF4695F1DF08C01616170618068B -:10462000991FF1CF86957105610508940895E89466 -:10463000BB2766277727CB0197F908950BD078C061 -:1046400069D028F06ED018F0952309F05AC05FC0E9 -:104650001124EECFCADFA0F3959FD1F3950F50E060 -:10466000551F629FF001729FBB27F00DB11D639F24 -:10467000AA27F00DB11DAA1F649F6627B00DA11DCA -:10468000661F829F2227B00DA11D621F739FB00D70 -:10469000A11D621F839FA00D611D221F749F3327E0 -:1046A000A00D611D231F849F600D211D822F762F79 -:1046B0006A2F11249F5750408AF0E1F088234AF076 -:1046C000EE0FFF1FBB1F661F771F881F91505040C2 -:1046D000A9F79E3F510570F014C0AACF5F3FECF3DD -:1046E000983EDCF3869577956795B795F795E795AE -:1046F0009F5FC1F7FE2B880F911D9695879597F9BF -:10470000089597F99F6780E870E060E008959FEF53 -:1047100080EC089500240A94161617061806090658 -:10472000089500240A941216130614060506089527 -:10473000092E0394000C11F4882352F0BB0F40F4AF -:10474000BF2B11F460FF04C06F5F7F4F8F4F9F4FEF -:10475000089597FB072E16F4009407D077FD09D033 -:104760000E94C32307FC05D03EF4909581959F4F8E -:104770000895709561957F4F0895EE0FFF1F059086 -:10478000F491E02D0994AA1BBB1B51E107C0AA1F9D -:10479000BB1FA617B70710F0A61BB70B881F991FE2 -:1047A0005A95A9F780959095BC01CD010895F99986 -:1047B000FECF92BD81BDF89A992780B50895A8E1F2 -:1047C000B0E042E050E00C94FF23262FF999FECF91 -:1047D00092BD81BDF89A019700B4021639F01FBA54 -:1047E00020BD0FB6F894FA9AF99A0FBE0895019673 -:1047F000272F0E94E6230C94E523DC01CB01FC016A -:10480000F999FECF06C0F2BDE1BDF89A319600B429 -:0E4810000D9241505040B8F70895F894FFCF34 -:10481E0020022908B60893085F082C080101BC0184 -:10482E0028080A03140A3F4D36394B04FE03C80309 -:10483E008F0322033B0354036D0301020304050699 -:04484E00070809004E +:10061000259A2D9A0895269A2E9A08950C94F102FF +:1006200056985E9825982D9826982E9827982F985A +:100630008FEF90E0909389008093880090938B00D7 +:1006400080938A0090938D0080938C00259A2D9A38 +:100650002FEF80E792E0215080409040E1F700C00A +:100660000000269A2E9A2FEF80E792E021508040DA +:100670009040E1F700C00000279A2F9A2FEF80E703 +:1006800092E0215080409040E1F700C000002598A2 +:100690002D982FEF80E792E0215080409040E1F7C5 +:1006A00000C0000026982E982FEF80E792E021509E +:1006B00080409040E1F700C0000027982F9856989E +:1006C0005E9825982D9826982E9827982F9808950B +:1006D00089EA8093800089E08093810024982C9897 +:1006E0003F988AB18F748AB96E98479A8BB1806BA4 +:1006F0008BB9769A0E9410030C94F00280E28093EA +:1007000000018091360181110EC00E94CD0381E06D +:10071000809336012FEF83ED90E32150804090408D +:10072000E1F700C0000080E40E94D3038093000141 +:1007300081112EC00E94FD0380930001811128C009 +:100740000E94FD0380930001811122C08FE30E946B +:10075000FD038093000181111BC00E94F50380E41A +:100760000E94D30380930001811112C08CE00E948B +:10077000FD038093000181110BC00E94FD03809353 +:100780000001811105C08FE30E94FD0380930001E9 +:100790000E94F5038091000108951092B9008AE04B +:1007A0008093B800089594EA9093BC009091BC00A7 +:1007B00097FFFCCF9091B900987F983021F090314D +:1007C00011F081E008958093BB0084E88093BC0021 +:1007D0008091BC0087FFFCCF8091B900887F883171 +:1007E00011F0803471F780E0089584E98093BC00B3 +:1007F0008091BC0084FDFCCF08958093BB0084E809 +:100800008093BC008091BC0087FFFCCF9091B90021 +:10081000987F81E0983209F480E0089584E880931D +:10082000BC008091BC0087FFFCCF8091BB00089585 +:1008300080910001811115C080E40E94D303809350 +:10084000000181110CC082E10E94FD038093000130 +:10085000811105C08FEF0E94FD03809300010E946B +:10086000F50384B1807F84B985B1807F85B98AB171 +:10087000837F8AB98BB1837F8BB93E984698089560 +:100880000E947E03809300010E94180480B38C7044 +:1008900080BB81B3836F81BBE6E4F1E0A8E3B1E004 +:1008A00011921D9281E0E435F807D1F70C946803AA +:1008B000BF92CF92DF92EF92FF920F931F93CF934D +:1008C000DF9380910001882379F0809137018F5F59 +:1008D00080933701811108C00E947E03809300013C +:1008E000811102C00E94100308E311E0C0E0D0E0D3 +:1008F000DD24D39482E0C82EEE24E394F12CC7309B +:1009000000F580910001811162C080E40E94D30350 +:1009100080930001811112C082E10E94FD03809347 +:10092000000181110BC0C7010C2E01C0880F0A9471 +:10093000EAF780950E94FD03809300010E94F50371 +:1009400046C0CA30A1F028F4C83059F0C93061F06F +:1009500005C0CC3089F070F0CD3089F0209A28980D +:1009600010C0219A29980DC0229A2A980AC0239A69 +:100970002B9807C0529A01C0539A5B9802C03E9AC6 +:100980004698E0EAEA95F1F78FB179995AC092E07A +:1009900081708D25892B7C9B02C090E001C094E082 +:1009A000892B7D9B02C090E001C098E0892B7E9B43 +:1009B00002C090E001C090E1892B9FB19095991FF2 +:1009C0009927991F9295990F907E892B0FC080913E +:1009D000000181114BC080E40E94D3038093000189 +:1009E000882389F1B12C0E94F5038B2DF8019081A9 +:1009F000981719F08083C09201010E941804219673 +:100A00000F5F1F4FCE30D10509F079CF80910101E2 +:100A1000882371F1815080930101882339F08FE997 +:100A20009FE00197F1F700C0000022C0A6E4B1E00A +:100A3000E8E3F1E081918D9391E0E634F907D1F795 +:100A400017C090E0A5CF83E10E94FD0380930001D1 +:100A50008111C8CF81E40E94D303809300018111EA +:100A6000C1CF0E940E04B82EB094BDCF80E0BECF9F +:100A70000E940E0381E0DF91CF911F910F91FF90B3 +:100A8000EF90DF90CF90BF900895E82FF0E0EA5B01 +:100A9000FE4F808108950895089596E0799FF001B2 +:100AA000112494E5899FE00DF11D1124E60FF11D3D +:100AB000EE0FFF1FEC51FF4F859194910895880F21 +:100AC000991F805A9040FC01859194910895880F58 +:100AD000991F80529F4FFC018591949108950F9327 +:100AE0001F93CF93DF93EC01811520E3920730F53C +:100AF000811530E2930708F0B1C08B3B910588F473 +:100B0000883A910508F058C0853A910508F049C027 +:100B10008430910508F043C08130910509F4B2C1D9 +:100B2000AEC18F3F910509F0D0F5803F910508F0E7 +:100B300092C0805E9109089790F1A1C1C11581E52D +:100B4000D807A8F4C23090E5D90708F09FC0C115B6 +:100B500020E5D20709F486C008F092C0C11580E4F0 +:100B6000D80708F08CC18E011127106CCCC1C115BB +:100B700090E8D90758F4C11520E7D20708F07BC1E7 +:100B8000C11530E6D30708F423C179C1C11580E946 +:100B9000D80708F074C18E011F70106AB4C18E01AD +:100BA000B2C1853A910509F470C1863A910509F4FC +:100BB0006FC103E810E4A7C1883A910509F46BC13D +:100BC000893A910509F46AC18A3A910509F469C123 +:100BD0008B3A910509F468C18C3A910509F467C113 +:100BE0008D3A910509F466C1803B910509F465C110 +:100BF0008E3A910509F464C18F3A910509F463C1F5 +:100C0000813B910509F462C1823B910509F461C100 +:100C1000833B910509F460C1843B910509F45FC1F0 +:100C2000853B910509F45EC1863B910509F45DC1E0 +:100C3000873B910509F45CC1883B910509F45BC1D0 +:100C4000893B910509F45AC18A3B910509F059C1C4 +:100C50000AE216E458C18C01106555C19F700E94CC +:100C6000670552C10E94A2149FEF24E33CE091501B +:100C700020403040E1F700C000000E940F1C43C13B +:100C80008091CF0181608093CF013DC10E94B71D4B +:100C9000811102C00E949D1D0E94D41D90E090937E +:100CA000F0018093EF01C23080E5D80721F48091F4 +:100CB000EF01816086C0C43090E5D90721F48091AE +:100CC000EF0182607EC0C63020E5D20721F480911A +:100CD000EF01846076C0C83030E5D30719F4809105 +:100CE000EF0127C0CA3080E5D80721F48091EF01D9 +:100CF000806167C0CC3090E5D90721F48091EF0185 +:100D000080625FC0CE3020E5D20721F48091EF01F0 +:100D1000806457C0C03130E5D30721F48091EF01E2 +:100D200080684FC0C23180E5D80729F48091EF0177 +:100D30008460886046C0C33090E5D90721F4809173 +:100D4000EF018E7F3EC0C53020E5D20721F48091AF +:100D5000EF018D7F36C0C73030E5D30721F4809195 +:100D6000EF018B7F2EC0C93080E5D80719F4809140 +:100D7000EF0126C0CB3090E5D90721F48091EF0137 +:100D80008F7E1FC0CD3020E5D20721F48091EF0186 +:100D90008F7D17C0CF3030E5D30721F48091EF016C +:100DA0008F7B0FC0C13180E5D80721F48091EF011E +:100DB0008F7707C0C331D04531F48091EF018B7F2D +:100DC000877F8093EF018091EF010E94D81D9BC027 +:100DD0008D2F99278F70992781309105E9F48E0125 +:100DE000037011279C0102C0220F331F0A95E2F7FE +:100DF00089011C68CE0164E0880F991F6A95E1F7AC +:100E000088279370082B192B73E0CC0FDD1F7A9580 +:100E1000E1F7C076DD272CC08230910529F41C2F24 +:100E20000027016F106A6FC08330910561F4CE0115 +:100E30008370992701E010E002C0000F111F8A950E +:100E4000E2F71C680EC0049709F05DC0CE01837004 +:100E5000992701E010E002C0000F111F8A95E2F708 +:100E60001A6843E0CC0FDD1F4A95E1F7C07ED770CA +:100E70000C2B1D2B48C08E011F70106244C000E077 +:100E800010E041C001E010E03EC001E810E43BC0CA +:100E900002E810E438C002EE14E435C009EE14E4B0 +:100EA00032C00AEE14E42FC005EB14E42CC006EBAC +:100EB00014E429C007EB14E426C00CEC14E423C0AE +:100EC0000DEC14E420C003E815E41DC00AE815E4A5 +:100ED0001AC002E915E417C004E915E414C001E2E0 +:100EE00016E411C003E216E40EC004E216E40BC0DF +:100EF00005E216E408C006E216E405C007E216E4BF +:100F000002C000E014E4C801DF91CF911F910F915E +:100F1000089596E0799FF001112494E5899FE00DF2 +:100F2000F11D1124E60FF11DEE0FFF1FEC51FF4FD5 +:100F300085919491803E9105E0F4803C910558F5AF +:100F40008133910509F46FC048F48932910509F4A1 +:100F500063C08A32910509F46DC072C0893391056E +:100F6000E9F082389105D1F08533910509F44DC03F +:100F700067C0833E910581F138F4803E9105B9F058 +:100F8000823E9105D9F05CC0863E910561F1873EB5 +:100F90009105A1F155C00E945F0508952091EF01D0 +:100FA00020FD02C021FF4CC080EE90E049C080913E +:100FB000EF0180FFF9CF89E390E042C08091EF011B +:100FC00082FF0EC08091EF0184FF03C080E090E0BB +:100FD00037C083EE90E034C08091EF0182FFF2CF02 +:100FE00082EE90E02DC08091EF0183FF0BC08091D5 +:100FF000EF0184FDEBCF87EE90E022C08091EF01FE +:1010000083FFF5CF86EE90E01BC08091EF0185FF56 +:1010100007C089E290E014C08091EF0185FFF9CF0D +:1010200085E390E00DC08091EF0186FF07C08AE262 +:1010300090E006C08091EF0186FFF9CF81E390E058 +:101040000E946F05089508950C942308809164010F +:101050000895CF93DF9300D01F92CDB7DEB72091D4 +:10106000E601243019F523E029839B838A832093AA +:10107000E9008FEF9091E800815095FD06C095ED55 +:101080009A95F1F700008111F5CF8091E80085FF76 +:101090000DC040E050E063E070E0CE0101960E9498 +:1010A000930A8091E8008E778093E8000F900F906C +:1010B0000F90DF91CF910895CF93DF9300D01F92CF +:1010C000CDB7DEB72091E601243021F522E0298357 +:1010D0009B838A8383E08093E9008FEF9091E800FF +:1010E000815095FD06C095ED9A95F1F700008111AC +:1010F000F5CF8091E80085FF0DC040E050E063E04F +:1011000070E0CE0101960E94930A8091E8008E77EC +:101110008093E8000F900F900F90DF91CF9108958A +:101120002091E6012430F1F422E02093E9002FEF32 +:101130003091E800215035FD06C035ED3A95F1F7C4 +:1011400000002111F5CF2091E80025FF0BC040E001 +:1011500050E065E070E00E94930A8091E8008E778D +:101160008093E8000895CF93DF93EC018091E6012E +:10117000843009F046C090910C019923D9F09091E8 +:101180000D019923B9F08093E9008FEF9091E80069 +:10119000815095FD06C095E19A95F1F70000811107 +:1011A000F5CF8091E80085FF2CC040E050E060E181 +:1011B00070E017C081E08093E9008FEF9091E80024 +:1011C000815095FD06C095ED9A95F1F700008111CB +:1011D000F5CF8091E80085FF14C040E050E068E062 +:1011E00070E0CE010E94930A8091E8008E77809390 +:1011F000E80080E1FE01A4E5B1E001900D928A953E +:10120000E1F7DF91CF9108958091E501811109C047 +:101210000E94250C0E94820C8091E20084608093E1 +:10122000E20008951092E501089508950C94332288 +:101230000E94A61B0E9439220E941F0F0C942408B2 +:1012400042E061EC81E00E949F0B42E061EC82E0B1 +:101250000E949F0B42E061EC83E00E949F0B42E101 +:1012600061EC84E00C949F0B8091E801833009F4D9 +:1012700055C030F4813071F0823009F48EC0089589 +:101280008A3009F47AC08B3009F460C0893009F0E3 +:101290009CC020C08091E701813A09F096C08091FE +:1012A000E800877F8093E8008091EB019091EC014A +:1012B000892B21F060E080E090E003C060E184E5EC +:1012C00091E070E00E94DC0A8091E8008B778093C7 +:1012D000E80008958091E701813209F076C080919D +:1012E000EB019091EC01009719F0039709F06DC0A4 +:1012F0008091E800877F8093E8008091E80082FD7C +:1013000005C08091E6018111F8CF5FC08091F100A6 +:10131000809364018091E8008B7753C08091E7014E +:10132000813A09F052C08091EB019091EC01892B38 +:1013300009F04BC08091E800877F8093E80080919E +:10134000E80080FFFCCF80910C0136C08091E7015E +:101350008132D9F58091EB019091EC01892BA9F5AF +:101360008091E800877F8093E8000E94D40B8091F1 +:10137000E90180930C010C94A2148091E701813261 +:1013800021F58091E800877F8093E8000E94D40BCC +:101390008091EA018093650108958091E701813A87 +:1013A000A1F48091E800877F8093E8008091E800B5 +:1013B00080FFFCCF809165018093F1008091E8006F +:1013C0008E778093E8000C94D40B089584B7877FC0 +:1013D00084BF88E10FB6F89480936000109260009B +:1013E0000FBE90E080E80FB6F89480936100909370 +:1013F00061000FBE0E946E0F0E94250C0E94820C9D +:101400008091E20084608093E20078940E94FD0E57 +:101410000E94700F82E091E00E941A0F0E94212228 +:101420008091E601853069F40E94661B8091E40199 +:101430008823B1F30E94911B882391F30E947D0AB7 +:10144000EFCF0E94760FECCF292F332723303105C1 +:10145000A9F06CF42130310509F442C02230310585 +:1014600009F043C08DE690E020E133E042C0213234 +:101470003105C9F02232310519F137C09927813081 +:10148000910541F08230910541F0892B71F5ECE036 +:10149000F3E005C0E4EFF2E002C0ECEDF2E084918D +:1014A00090E09F0126C0643000F5E62FF0E0EE0FDB +:1014B000FF1FEE5DFE4F2081318189E090E019C071 +:1014C000643098F4E62FF0E0DF01AA0FBB1FA65EA0 +:1014D000BE4F2D913C91EA5EFE4F808190E009C0A5 +:1014E00082E190E02DE733E004C080E090E020E06E +:1014F00030E0FA0131832083089580E189BD82E1E3 +:1015000089BD09B400FEFDCF8091D8008F7D809306 +:10151000D8008091E00082608093E0008091E0003C +:1015200081FDFCCF0895CF92DF92EF92FF920F934F +:101530001F93CF93DF937C018B01EA010E94F50B8F +:10154000811131C0209731F088819981081B190BD6 +:10155000E80EF91EC12CD12C0115110519F180914D +:10156000E80085FD14C08091E8008E778093E80044 +:10157000209741F0888199818C0D9D1D99838883E6 +:1015800085E011C00E94F50B882331F30CC0F701F0 +:1015900081917F018093F10001501109FFEFCF1A73 +:1015A000DF0ADACF80E0DF91CF911F910F91FF909A +:1015B000EF90DF90CF9008952091ED013091EE01F2 +:1015C0002617370748F06115710539F42091E800B6 +:1015D0002E772093E80001C0B901FC0120E06115DD +:1015E0007105B9F18091E601882309F440C0853086 +:1015F00009F43FC08091E80083FD3DC08091E80080 +:1016000082FF06C08091E80082FF26C080E0089536 +:101610008091E80080FFE3CF2091F3008091F200F9 +:1016200090E0922B6115710551F08830910538F4E6 +:1016300021912093F100615071090196F3CF21E0CF +:10164000089709F020E08091E8008E778093E80009 +:10165000C6CF2111C7CFD6CF8091E601882339F0BC +:10166000853039F08091E80083FFCCCF04C082E060 +:10167000089583E0089581E008952091ED0130916F +:10168000EE012617370748F06115710539F42091EE +:10169000E8002E772093E80001C0B901FC0120E0AA +:1016A00061157105C1F18091E601882309F441C0FB +:1016B000853009F440C08091E80083FD3EC08091F0 +:1016C000E80082FF06C08091E80082FF27C080E02A +:1016D00008958091E80080FFE3CF2091F30080918E +:1016E000F20090E0922B6115710559F08830910558 +:1016F00040F424912093F1003196615071090196D4 +:10170000F2CF21E0089709F020E08091E8008E7781 +:101710008093E800C5CF2111C6CFD5CF8091E601D7 +:10172000882339F0853039F08091E80083FFCBCFF2 +:1017300004C082E0089583E0089581E00895982F21 +:10174000973058F59093E900981739F07091EC00B4 +:101750002091ED005091F00003C0242F762F50E02F +:1017600021FF19C03091EB003E7F3093EB003091A8 +:10177000ED003D7F3093ED003091EB003160309310 +:10178000EB007093EC002093ED005093F00020915B +:10179000EE0027FF07C09F5FD3CF8F708093E900D3 +:1017A00081E0089580E008958091E70187FD05C0FC +:1017B0008091E80080FF0EC012C08091E80082FD99 +:1017C00005C08091E6018111F8CF08958091E8006D +:1017D0008B7708C08091E6018111EACF089580914E +:1017E000E8008E778093E80008958091E40090915E +:1017F000E50045E62091EC0020FF21C02091E800A3 +:1018000020FD21C02091E601222389F0253089F0B6 +:101810002091EB0025FD0FC02091E4003091E50000 +:101820002817390739F3415041F0C901E3CF82E06D +:10183000089583E0089581E0089584E0089520915B +:10184000E80022FFDFCF80E008950E94930C0E9401 +:101850009B0CE0EEF0E0808181608083E8EDF0E0B9 +:1018600080818F77808319BCA7EDB0E08C918E7F4B +:101870008C9380818F7E80831092E50108950F9371 +:101880001F93CF93DF930E94930C0E949B0CC8ED93 +:10189000D0E088818F778883888180688883888179 +:1018A0008F7D888319BC1092E6011092E20110929C +:1018B000E4011092E30100EE10E0F80180818B7FDB +:1018C000808388818160888342E060E080E00E94BC +:1018D0009F0BE1EEF0E080818E7F8083E2EEF0E00E +:1018E000808181608083808188608083F80180812D +:1018F0008E7F8083888180618883DF91CF911F9163 +:101900000F910895E8EDF0E080818F7E8083E7ED10 +:10191000F0E080818160808384E082BF81E08093F9 +:10192000E5010C943F0CE8EDF0E080818E7F808330 +:101930001092E20008951092DA001092E1000895EA +:101940001F920F920FB60F9211242F933F934F9334 +:101950005F936F937F938F939F93AF93BF93EF9317 +:10196000FF938091E10082FF0BC08091E20082FF33 +:1019700007C08091E1008B7F8093E1000E94FC0E04 +:101980008091DA0080FF1FC08091D80080FF1BC0CB +:101990008091DA008E7F8093DA008091D90080FFF9 +:1019A0000DC080E189BD82E189BD09B400FEFDCF93 +:1019B00081E08093E6010E94040905C019BC1092E1 +:1019C000E6010E9412098091E10080FF19C0809118 +:1019D000E20080FF15C08091E2008E7F8093E200DC +:1019E0008091E20080618093E2008091D800806263 +:1019F0008093D80019BC85E08093E6010E94160907 +:101A00008091E10084FF30C08091E20084FF2CC00F +:101A100080E189BD82E189BD09B400FEFDCF8091DE +:101A2000D8008F7D8093D8008091E1008F7E8093D5 +:101A3000E1008091E2008F7E8093E2008091E200DD +:101A400081608093E2008091E201882311F084E0BC +:101A500007C08091E30087FF02C083E001C081E0FE +:101A60008093E6010E9418098091E10083FF29C05C +:101A70008091E20083FF25C08091E100877F809301 +:101A8000E10082E08093E6011092E2018091E100A2 +:101A90008E7F8093E1008091E2008E7F8093E20050 +:101AA0008091E20080618093E20042E060E080E0AB +:101AB0000E949F0B8091F00088608093F0000E944C +:101AC0001509FF91EF91BF91AF919F918F917F91F8 +:101AD0006F915F914F913F912F910F900FBE0F909B +:101AE0001F9018951F920F920FB60F9211242F93EB +:101AF0003F934F935F936F937F938F939F93AF9396 +:101B0000BF93CF93EF93FF93C091E900CF70809183 +:101B1000EC001092E9008091F000877F8093F00044 +:101B200078940E94AE0D1092E9008091F0008860D8 +:101B30008093F000C093E900FF91EF91CF91BF91A6 +:101B4000AF919F918F917F916F915F914F913F9155 +:101B50002F910F900FBE0F901F9018951F93CF934A +:101B6000DF93CDB7DEB7AA970FB6F894DEBF0FBEEE +:101B7000CDBFE7EEF1E08091F100819321E0EF3EEF +:101B8000F207C9F70E9434098091E80083FF1CC165 +:101B90002091E7013091E801832F90E08A30910590 +:101BA00008F012C1FC01EA5AFF4F0C94BB23203805 +:101BB00081F0223809F008C18091EB018F70809389 +:101BC000E9008091EB0085FB882780F91092E900FD +:101BD00006C08091E3019091E4019111826090919F +:101BE000E800977F9093E8008093F1001092F10055 +:101BF000C5C0822F8D7F09F0E7C0222319F0223063 +:101C000061F0E2C08091E901813009F0DDC033303C +:101C100009F080E08093E40128C08091E9018111FE +:101C200024C02091EB012F7009F4CEC02093E9006D +:101C30008091EB0080FF19C08091EB00333011F4EC +:101C4000806211C080618093EB0081E090E0022E01 +:101C500001C0880F0A94EAF78093EA001092EA0024 +:101C60008091EB0088608093EB001092E9008091F6 +:101C7000E800877F86C02111A7C01091E9011F7776 +:101C80008091E3008078812B8093E3008091E800CD +:101C9000877F8093E8000E94D40B8091E80080FF4A +:101CA000FCCF8091E30080688093E300112311F062 +:101CB00083E001C082E08093E60186C02058223094 +:101CC00008F082C08091E9019091EA018C3D23E007 +:101CD000920779F583E08A838AE289834FB7F89483 +:101CE000DE01139620E03EE051E2E32FF0E0509356 +:101CF0005700E49120FF03C0E295EF703F5FEF7063 +:101D00008E2F90E0EA3010F0C79601C0C0968D93F8 +:101D10009D932F5F243149F74FBF8091E800877F63 +:101D20008093E8006AE270E0CE0101960E94DC0A2E +:101D300014C0AE014F5F5F4F6091EB010E94240A17 +:101D4000009709F441C02091E800277F2093E80024 +:101D5000BC0189819A810E943D0B8091E8008B77BC +:101D60008093E80031C0203879F58091E800877FC2 +:101D70008093E8008091E2018093F1008091E80077 +:101D80008E778093E8000E94D40B1EC021111CC0E6 +:101D90009091E9019230C0F48091E800877F8093B0 +:101DA000E8009093E2010E94D40B8091E20181113E +:101DB00004C08091E30087FF02C084E001C081E09D +:101DC0008093E6010E9420098091E80083FF0AC009 +:101DD0008091E800877F8093E8008091EB0080622B +:101DE0008093EB00AA960FB6F894DEBF0FBECDBF6E +:101DF000DF91CF911F9108950895CF938091E601CF +:101E00008823B1F08091E9008F709091EC0090FFF1 +:101E100002C090E801C090E0C92FC82B1092E900E1 +:101E20008091E80083FD0E94AE0DCF70C093E90061 +:101E3000CF91089590936B0180936A010895E0918A +:101E40006A01F0916B01309721F00190F081E02D53 +:101E5000099480E00895E0916A01F0916B01309758 +:101E600021F00280F381E02D09940895E0916A0148 +:101E7000F0916B01309721F00480F581E02D0994F9 +:101E8000089520916801309169018217930771F0DC +:101E90009093690180936801E0916A01F0916B0170 +:101EA000309721F00680F781E02D09940895209164 +:101EB0006601309167018217930771F09093670173 +:101EC00080936601E0916A01F0916B01309721F0F7 +:101ED0000084F185E02D0994089508950C946D0F08 +:101EE0000E94AC1B0E9440040C94721CCF92DF92A3 +:101EF000EF92FF920F931F93CF93DF93CDB7DEB78F +:101F00002B970FB6F894DEBF0FBECDBF0E945804CA +:101F10003DE6E32E31E0F32E00E010E0C02E802FEE +:101F20000E944505F701D1907F01D826B1F40F5FDB +:101F30001F4F0E30110591F78FEF89838A831B8223 +:101F40000E94B51B8160782F9D838C8349815A81C3 +:101F50006B818D810E94191041C09091CF0191FF3A +:101F600004C08B870E944B058B8520E030E04D2D0F +:101F700050E0922FBA01022E02C0759567950A941F +:101F8000E2F760FF25C02E83CF82EE24E394F12C8C +:101F900002C0EE0CFF1C9A95E2F790E08E219F2183 +:101FA00021E0892B09F420E028870E94B51B81607D +:101FB000782F9A8789874E815F8168858A850E94FC +:101FC0001910F801E359FE4F80818E25808306C0E9 +:101FD0002F5F3F4F2630310561F6A9CF0E94561F73 +:101FE00010916C010E941F0F1817A1F00E941F0F83 +:101FF00080936C012B960FB6F894DEBF0FBECDBF59 +:10200000DF91CF911F910F91FF90EF90DF90CF90D4 +:102010000C9424082B960FB6F894DEBF0FBECDBFEC +:10202000DF91CF911F910F91FF90EF90DF90CF90B4 +:102030000895CF93DF93CDB7DEB72B970FB6F89403 +:10204000DEBF0FBECDBF4F83588769877A878B87E6 +:10205000DE01119686E0FD0111928A95E9F785E08F +:10206000FE01379601900D928A95E1F749815A81D8 +:102070006B817C818D819E810E946E172B960FB69D +:10208000F894DEBF0FBECDBFDF91CF9108950895C4 +:10209000CF93C82F882309F4C1C0823859F40E9415 +:1020A0001F0F81FDBBC089E30E941A1A0E94E41A27 +:1020B00089E30CC0833879F40E941F0F80FDAEC005 +:1020C00083E50E941A1A0E94E41A83E50E945A1AB4 +:1020D000CF910C94E41A843859F40E941F0F82FDAA +:1020E0009DC087E40E941A1A0E94E41A87E4EECF8A +:1020F0008CEF8C0F813A48F48C2F0E94892181113A +:102100008DC08C2F0E941A1AE3CF80E28C0F88308A +:1021100048F4C77081E001C0880FCA95EAF70E94B1 +:102120009B1AD6CF8BE58C0F833078F4C53A29F013 +:10213000C63A31F482E890E005C081E890E002C040 +:1021400083E890E0CF910C94410F88E58C0F8331A8 +:1021500008F064C0C83A39F1C93A41F1CA3A49F1C4 +:10216000CB3A51F1CC3A59F1CD3A61F1C03B69F12A +:10217000CE3A71F1CF3A79F1C13B81F1C23B89F19D +:10218000C33B91F1C43B99F1C53BA1F1C63BA9F119 +:10219000C73BB1F1C83BB9F1C93BC1F1CA3BC9F575 +:1021A0008AE292E038C082EE90E035C089EE90E09D +:1021B00032C08AEE90E02FC085EB90E02CC086EB19 +:1021C00090E029C087EB90E026C08CEC90E023C023 +:1021D0008DEC90E020C083E891E01DC08AE891E09A +:1021E0001AC082E991E017C084E991E014C081E24D +:1021F00092E011C083E292E00EC084E292E00BC054 +:1022000085E292E008C086E292E005C087E292E0B3 +:1022100002C080E090E0CF910C94570FCF910895C9 +:10222000882309F44BC0823859F40E941F0F81FFA4 +:1022300045C089E30E941A1A0E94E41A89E30CC07F +:10224000833871F40E941F0F80FF38C083E50E941D +:102250001A1A0E94E41A83E50E945A1A0C94E41A8E +:10226000843859F40E941F0F82FF28C087E40E941F +:102270001A1A0E94E41A87E4EFCF9CEF980F913A64 +:1022800058F390E2980F983050F4877091E001C0B5 +:10229000990F8A95EAF7892F0E94A11ADFCF9BE553 +:1022A000980F933020F480E090E00C94410F885A0E +:1022B000833120F480E090E00C94570F0895882338 +:1022C00021F00E949B1A0C94E41A0895882321F0AF +:1022D0000E94A11A0C94E41A0895CF92DF92EF9213 +:1022E000FF920F931F93CF93DF93CDB7DEB728975D +:1022F0000FB6F894DEBF0FBECDBF8C0185E0F801AC +:10230000DE01119601900D928A95E1F7F801D080D7 +:10231000E180F280558152955F7023813481232BB7 +:1023200039F0FFEFEF1206C081E0DF1203C003C0F7 +:1023300081E001C080E080FDE2C2C8015F830E94AD +:102340004710D982EA8269817A818F2D0E94161AFC +:102350009E8388870E94CA190E949D184E815F81C2 +:102360006885FF2029F00E94B81A68855F814E8138 +:10237000E42FE295EF70F0E0E05AFF4F0C94BB239E +:10238000842F807F142F1F70882311F01295107FE7 +:10239000FF20B1F0112309F467C280E2860F883074 +:1023A00028F4812F68870E949B1A04C0812F6887B8 +:1023B0000E94AB1A688568870E94E41A688554C237 +:1023C000862F68870E9410116885112309F497C22F +:1023D000605E812F683018F40E94A11A02C00E942A +:1023E000B11A28960FB6F894DEBF0FBECDBFDF91AD +:1023F000CF911F910F91FF90EF90DF90CF900C94B1 +:10240000E41A242F207F842F8F70203211F08295C0 +:10241000807F662319F0613019F12BC0FF20B1F0E5 +:10242000552309F493C1513009F090C128960FB695 +:10243000F894DEBF0FBECDBFDF91CF911F910F91FA +:10244000FF90EF90DF90CF900C94CB1A552319F0AA +:10245000513009F454C28E830E94CE1A8E8189C1F4 +:10246000FF2021F0523008F04AC270C1511147C21A +:1024700080C1FF2021F0552309F468C1F5C155231F +:1024800009F477C105C2242F26952695237030E0E4 +:102490002115310521F021303105C9F030C2FF206E +:1024A00021F0862F942F937002C080E090E0289650 +:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155 +:1024C0000F91FF90EF90DF90CF900C94410FFF2081 +:1024D00021F0862F942F937002C080E090E0289620 +:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125 +:1024F0000F91FF90EF90DF90CF900C94570F862FA5 +:10250000FF2019F00E945E1E02C00E94C61E28967F +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF900C944B1F842F72 +:10253000837009F076C0F110E2C1262F229526950E +:102540002770220F220F862F8F70C82ED12CE12CDE +:10255000F12C022E04C0CC0CDD1CEE1CFF1C0A94D6 +:10256000D2F764FF10C06FE070E080E090E004C03C +:10257000660F771F881F991F2A95D2F7609570956F +:102580008095909503C060E070E0CB01242F2695E4 +:1025900026952370422F50E042305105D1F0433050 +:1025A000510559F16C297D298E299F29413051050A +:1025B00041F128960FB6F894DEBF0FBECDBFDF9174 +:1025C000CF911F910F91FF90EF90DF90CF900C94DF +:1025D000C2186C297D298E299F2928960FB6F89458 +:1025E000DEBF0FBECDBFDF91CF911F910F91FF9046 +:1025F000EF90DF90CF900C94DC180E94C218C701B6 +:10260000B60128960FB6F894DEBF0FBECDBFDF919E +:10261000CF911F910F91FF90EF90DF90CF900C948E +:10262000A818FF2019F0842F817001C08695882397 +:1026300009F465C1262F229526952770220F220FB7 +:10264000862F8F70C82ED12CE12CF12C022E04C0C5 +:10265000CC0CDD1CEE1CFF1C0A94D2F764FF10C0EA +:102660006FE070E080E090E004C0660F771F881F85 +:10267000991F2A95D2F7609570958095909503C023 +:1026800060E070E0CB01242F269526952370422F21 +:1026900050E042305105D1F04330510559F16C29D9 +:1026A0007D298E299F294130510541F128960FB689 +:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 +:1026C000FF90EF90DF90CF900C9496196C297D29A4 +:1026D0008E299F2928960FB6F894DEBF0FBECDBF76 +:1026E000DF91CF911F910F91FF90EF90DF90CF90EE +:1026F0000C94B0190E949619C701B60128960FB61E +:10270000F894DEBF0FBECDBFDF91CF911F910F9127 +:10271000FF90EF90DF90CF900C947C19603FC9F14F +:1027200018F4603E50F49BC0623F09F460C008F4A6 +:102730004AC0633F09F46FC092C0162F1F70842FE8 +:102740008F71FF2099F00E941519812F28960FB6DE +:10275000F894DEBF0FBECDBFDF91CF911F910F91D7 +:10276000FF90EF90DF90CF900C945F110E9436198C +:10277000812F28960FB6F894DEBF0FBECDBFDF9134 +:10278000CF911F910F91FF90EF90DF90CF900C941D +:102790006611FF20A1F05111B2C0842F8F712896CD +:1027A0000FB6F894DEBF0FBECDBFDF91CF911F9162 +:1027B0000F91FF90EF90DF90CF900C945B19523007 +:1027C00008F09DC0EACFFF20A1F0842F8F712896DA +:1027D0000FB6F894DEBF0FBECDBFDF91CF911F9132 +:1027E0000F91FF90EF90DF90CF900C941519FF2080 +:1027F00061F3842F8F7128960FB6F894DEBF0FBE59 +:10280000CDBFDF91CF911F910F91FF90EF90DF909F +:10281000CF900C943619FF2091F0842F8F71289659 +:102820000FB6F894DEBF0FBECDBFDF91CF911F91E1 +:102830000F91FF90EF90DF90CF900C9400192896A5 +:102840000FB6F894DEBF0FBECDBFDF91CF911F91C1 +:102850000F91FF90EF90DF90CF900C94F618FF202F +:10286000A1F0552309F4B1CF862F28960FB6F8941E +:10287000DEBF0FBECDBFDF91CF911F910F91FF90B3 +:10288000EF90DF90CF900C944810552309F4B1CF0E +:10289000862F28960FB6F894DEBF0FBECDBFDF910E +:1028A000CF911F910F91FF90EF90DF90CF900C94FC +:1028B00010114F70C8010E94AB0228960FB6F89411 +:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1028D000EF90DF90CF900C941B184F70C801289692 +:1028E0000FB6F894DEBF0FBECDBFDF91CF911F9121 +:1028F0000F91FF90EF90DF90CF900C944C052896AD +:102900000FB6F894DEBF0FBECDBFDF91CF911F9100 +:102910000F91FF90EF90DF90CF9008950E94B81A2A +:102920000E94C81A0E948D1A0E94E41A0E94F71F82 +:102930000E944B1F80E090E00E94410F80E090E0F9 +:102940000C94570F0E94A81A0C948E140E940B1A14 +:10295000292F22952F7030E02C3031054CF42A308D +:1029600031056CF4225031092230310590F407C052 +:102970002C30310551F02F30310539F00AC0803E3E +:1029800010F0803F31F481E0089593FB882780F9AF +:10299000089580E00895CF93DF9300D000D01F9278 +:1029A000CDB7DEB70F900F900F900F900F90DF9183 +:1029B000CF910895CF93DF9300D000D000D0CDB752 +:1029C000DEB726960FB6F894DEBF0FBECDBFDF91FF +:1029D000CF9108951F93CF93DF93C0917B0116E0B1 +:1029E00080917C01C81799F0D0E01C9FF0011D9FD9 +:1029F000F00D1124E358FE4F4081518162817381B3 +:102A0000848195810E94DA142196C770E9CFDF9105 +:102A1000CF911F9108954091AD015091AE01609109 +:102A2000AF017091B0018091B1019091B2010C940D +:102A3000DA14CF938091B20182958F7009F05FC054 +:102A40008091AF01882309F45AC020917B01A091A5 +:102A50007C016091AD017091AE018091B0019091C7 +:102A6000B10131E06F3F09F030E0B32FC6E02A1723 +:102A700009F445C0009721F07F3F21F44B2F03C09C +:102A800041E001C040E030E040FD35C0C29FF001B0 +:102A9000C39FF00D1124E358FE4F418174132BC0E6 +:102AA0004081641328C04281411125C04381548173 +:102AB0004817590710F441505109481B590B483C1D +:102AC0005105C8F48091B2018F7080618093B2018A +:102AD00086E0829FF001839FF00D1124EE57FE4F98 +:102AE00080818F70806180838DEA91E00E946D11FA +:102AF000CF910C94EA142F5F3F4F2770B8CFCF913E +:102B00000895CF92DF92EF92FF920F931F93CF938E +:102B1000DF93CDB7DEB762970FB6F894DEBF0FBE76 +:102B2000CDBF8C0185E0F801DE011D9601900D926C +:102B30008A95E1F7D8014C9111965C911197129604 +:102B40006C9112971396ED90FC9014977091AD01D3 +:102B5000E091AE012091B0013091B1012115310514 +:102B600031F0EF3F31F481E07F3F19F403C081E0A1 +:102B700001C080E0B82FB170CB2E80FD6CC1D09029 +:102B8000AF01DD2009F4F5C0F091B201E216F306C1 +:102B900038F0C701821B930B883C910548F09BC01D +:102BA000209530952E0D3F1D283C310508F093C02F +:102BB0008F2F807F09F052C0E51314C0741312C028 +:102BC000D62E61110FC0FF70F061F093B2010E9428 +:102BD0000B158DEA91E00E946D118091B201F80110 +:102BE00085836CC1EF2831F05F3F31F481E04F3FC6 +:102BF00019F403C081E001C080E080FD03C081E0E2 +:102C0000862701C080E0F82FF170FF2E80FF1CC0E6 +:102C100080917B0120917C0136E0821709F428C164 +:102C200090E0389FF001399FF00D1124E358FE4FDA +:102C30007181571306C07081471303C072816713F7 +:102C400003C001968770E9CFD62E662309F436C1FA +:102C50008091B20181608093B20153C0E51308C036 +:102C6000741306C0611104C0D8011596FC93AEC060 +:102C70004D875E878D859E856A8B0E94A6146A8922 +:102C8000882329F1D62E662311F12091B201822FDB +:102C900082958F7090E002970CF460C08091AD0136 +:102CA0009091AE0198878F831986FB86EA862C87E0 +:102CB000CE01079651C0E51731F14D875E878D85AE +:102CC0009E856A8B0E94A6146A8981112EC0C80154 +:102CD0000E946D11A4C08F2F807F69F77E2DF98A25 +:102CE000E88A89890E94CB148DEA91E00E946D11D7 +:102CF000EDEAF1E086E0DF011D928A95E9F70E9496 +:102D00000B15D12CDBC07413D8CF6111D6CFD801ED +:102D10001596FC93C8010E946D11EDEAF1E086E082 +:102D2000DF011D928A95E9F7C9C0D62E662379F294 +:102D30002091B201822F82958F7090E0029774F0FB +:102D40008091AD019091AE019A8389831B82FD82AF +:102D5000EC822E83CE0101960E946D1186E0F8016F +:102D6000ADEAB1E001900D928A95E1F70E94191544 +:102D70006FC0E216F30628F0C701821B930B9C017B +:102D800004C0209530952E0D3F1D283C310508F0DC +:102D900052C0D62E662309F49ACFE5132CC07413C3 +:102DA0002AC08091B20180FD1DC0982F92959F701E +:102DB000C9F0D80115968C9315979F3039F09F5F15 +:102DC0009295907F8F70892B15968C93C8010E94E5 +:102DD0006D1186E0F801ADEAB1E001900D928A959F +:102DE000E1F736C086E0F801ADEAB1E001900D925E +:102DF0008A95E1F763C04D875E878D859E850E9429 +:102E0000A614882379F086E0F801ADEAB1E00190DC +:102E10000D928A95E1F70E9419150E940B15DD2489 +:102E2000D3944CC08091B20181608093B201C801FB +:102E30000E946D1143C07E2DF98AE88A89890E941B +:102E4000CB14EDEAF1E086E0DF011D928A95E9F707 +:102E50000E940B1533C0662309F439CF4D875E8776 +:102E60008D859E850E94A614882309F430CFCBCF90 +:102E70004D875E878D859E850E940B1A292F22958E +:102E80002F7030E0223031052CF49F7041F0811119 +:102E900006C00CC0243031052CF49F7049F4805ECC +:102EA000883020F0C8010E946D11CF2CDC2C06C0A8 +:102EB000D80115969C91907F91F7F8CF8D2D629651 +:102EC0000FB6F894DEBF0FBECDBFDF91CF911F913B +:102ED0000F91FF90EF90DF90CF9008951F93CF93C5 +:102EE000DF93CDB7DEB72C970FB6F894DEBF0FBED9 +:102EF000CDBF4F83588769877A878B879C87CE01A0 +:102F000007960E9481158823C1F02F8138858A8514 +:102F10009B85892B31F03F3F11F080E003C02F3FAC +:102F2000E1F781E0811147C04F81588569857A8535 +:102F30008B859C850E94DA143EC086E0FE013796A0 +:102F4000DE01119601900D928A95E1F7FF81E885E7 +:102F50004A855B854115510531F0EF3F31F481E041 +:102F6000FF3F19F403C081E001C080E080FD23C071 +:102F700020917C0130E0C90101968770992760910A +:102F80007B0170E086179707F1F1F983EA835D838F +:102F90004C8396E0929FD001939FB00D1124A358CB +:102FA000BE4FFE01319601900D929A95E1F7809304 +:102FB0007C010E94EA1416E080917B0190917C01D3 +:102FC000891779F1189FC001112483589E4F0E94E0 +:102FD0008115882331F1E0917B011E9FF0011124BE +:102FE000E358FE4F408151816281738184819581D4 +:102FF0000E94DA1480917B0190E0019687709927F6 +:1030000080937B01D9CF0E94A21410927C01109270 +:103010007B01EDEAF1E086E0DF011D928A95E9F798 +:10302000CACF2C960FB6F894DEBF0FBECDBFDF918E +:10303000CF911F910895EF92FF920F931F93CF931B +:10304000DF939C01009709F471C0F12CEE24E39406 +:10305000E9012196F9018491843740F4843008F025 +:1030600056C0813081F0823021F160C0853709F48B +:1030700049C0C0F19CE7980F903708F057C08F7790 +:103080000E94101146C089010E5F1F4FFE018491FE +:1030900090E2980F983050F48770FE2D01C0FF0F1A +:1030A0008A95EAF78F2F0E94BB1A15C00E9448101C +:1030B00014C089010E5F1F4FFE01849190E2980FAA +:1030C000983068F48770FE2D01C0FF0F8A95EAF7EB +:1030D0008F2F0E94C11A0E94E41AE8011AC00E94B0 +:1030E0001011FBCF2E5F3F4FFE01C491CC2341F066 +:1030F0008FE99FE00197F1F700C00000C150F6CFC3 +:10310000E90107C0FE01F490E901229602C00E9485 +:1031100048108F2D882341F0EFE9FFE03197F1F758 +:1031200000C000008150F6CF9E0192CFDF91CF9179 +:103130001F910F91FF90EF90089508956093B7014C +:103140007093B8018093B9019093BA010C948E14D6 +:103150000F931F930091B7011091B8012091B9010D +:103160003091BA01062B172B282B392B0093B7016E +:103170001093B8012093B9013093BA011F910F91B8 +:103180000C948E140F931F930091B7011091B80106 +:103190002091B9013091BA0106231723282339233E +:1031A0000093B7011093B8012093B9013093BA018D +:1031B0001F910F910C948E140F931F930091B701E0 +:1031C0001091B8012091B9013091BA010627172753 +:1031D000282739270093B7011093B8012093B9012C +:1031E0003093BA011F910F910C948E141092B30179 +:1031F0001092B4011092B5011092B6010C948E1485 +:1032000041E050E060E070E004C0440F551F661FCD +:10321000771F8A95D2F74093B3015093B40160931E +:10322000B5017093B6010C948E1441E050E060E05B +:1032300070E004C0440F551F661F771F8A95D2F7B0 +:103240008091B3019091B401A091B501B091B60104 +:10325000842B952BA62BB72B8093B3019093B401AD +:10326000A093B501B093B6010C948E1441E050E0E8 +:1032700060E070E004C0440F551F661F771F8A95F9 +:10328000D2F740955095609570958091B3019091DB +:10329000B401A091B501B091B60184239523A62372 +:1032A000B7238093B3019093B401A093B501B09379 +:1032B000B6010C948E1441E050E060E070E004C070 +:1032C000440F551F661F771F8A95D2F78091B3016F +:1032D0009091B401A091B501B091B60184279527D2 +:1032E000A627B7278093B3019093B401A093B501AB +:1032F000B093B6010C948E140F931F930091B301F9 +:103300001091B4012091B5013091B601062B172B15 +:10331000282B392B0093B3011093B4012093B501EE +:103320003093B6011F910F910C948E140F931F933D +:103330000091B3011091B4012091B5013091B60113 +:1033400006231723282339230093B3011093B401D4 +:103350002093B5013093B6011F910F910C948E14F8 +:103360000F931F930091B3011091B4012091B50107 +:103370003091B60106271727282739270093B30174 +:103380001093B4012093B5013093B6011F910F91B2 +:103390000C948E140895CF92DF92EF92FF920F93C8 +:1033A0001F93CF93DF93EC01C090B701D090B80189 +:1033B000E090B901F090BA018091B3019091B4010D +:1033C000A091B501B091B601C82AD92AEA2AFB2AF0 +:1033D0000FE110E0B701A601002E04C076956795B5 +:1033E000579547950A94D2F740FD05C00150110941 +:1033F00088F780E007C0BE01802F0E9489070197EF +:10340000A9F3802FDF91CF911F910F91FF90EF9043 +:10341000DF90CF900895CF93DF93EC010E94CB19FA +:10342000BE010E948907DF91CF910895CB010E94D0 +:103430000B1A089590910C019923D9F090910D01E8 +:103440009923B9F0982F9695969596959F3088F583 +:10345000E0910E01F0910F01E90FF11D877021E05D +:1034600030E001C0220F8A95EAF78181822B8183A7 +:10347000089540910E0150910F0120E030E09FEF40 +:10348000FA01E20FF31F6281681799F09F3F19F468 +:10349000611101C0922F2F5F3F4F2E30310581F710 +:1034A0009F3F39F0FA01E90FF11D97FDFA958283EC +:1034B0000895089590910C019923E1F090910D01E8 +:1034C0009923C1F0982F9695969596959F3020F563 +:1034D000E0910E01F0910F01E90FF11D877021E0DD +:1034E00030E001C0220F8A95EAF7209581812823D8 +:1034F0002183089540910E0150910F0120E030E0AA +:10350000FA01E20FF31F9281981301C012822F5F1C +:103510003F4F2E303105A1F7089581E090E0E09112 +:103520000E01F0910F01E80FF91F10820196803112 +:103530009105A9F708959091CE01982B9093CE0113 +:10354000089580959091CE0198239093CE0108958F +:103550001092CE0108959091CD01982B9093CD01BA +:10356000089580959091CD0198239093CD01089571 +:103570001092CD0108959091CC01982B9093CC019D +:10358000089580959091CC0198239093CC01089553 +:103590001092CC0108958093BB0108951092BB0155 +:1035A000089540910E0150910F0120E030E080E03D +:1035B000FA01E20FF31F918191118F5F2F5F3F4F4F +:1035C0002F303105A9F70895E0910E01F0910F0118 +:1035D0008091CE018083E0910E01F0910F018081F6 +:1035E0009091CD01892B8083E0910E01F0910F0124 +:1035F00080819091CC01892B80839091BB0199238C +:1036000061F0E0910E01F0910F018081892B8083A0 +:103610000E94D11A81111092BB0180910E019091EC +:103620000F010C942B0FCF92DF92EF92FF920F932A +:103630001F936C01EE24FF24C114D104E104F104B2 +:1036400021F46B017C0180E001C080E133272F2D44 +:103650001E2D0D2D011511052105310519F0885F6D +:103660006801790197018601A4E0369527951795A1 +:103670000795AA95D1F7011511052105310519F016 +:103680008C5F6801790197018601F2E036952795F4 +:1036900017950795FA95D1F7011511052105310503 +:1036A00019F08E5F68017901B701A60176956795DB +:1036B00057954795452B462B472B09F08F5F1F9158 +:1036C0000F91FF90EF90DF90CF9008958091E601E9 +:1036D000843021F11092D00120E488E190E00FB60F +:1036E000F894A895809360000FBE2093600080E05E +:1036F0000E94240883B7817F846083BF83B7816081 +:1037000083BF7894889583B78E7F83BF88E10FB697 +:10371000F89480936000109260000FBE08950895A1 +:103720000895CF930E948F1B0E9458040E94901B03 +:10373000C0E08C2F0E944505811105C0CF5FCE30BF +:10374000C1F780E001C081E0CF9108950E94A214EA +:103750000E941F0F0C94240882E084BD93E095BD65 +:103760009AEF97BD80936E0008952FB7F8948091DB +:10377000D1019091D201A091D301B091D4012FBF7A +:103780000895CF92DF92EF92FF920F931F932FB77E +:10379000F8944091D1015091D2016091D301709180 +:1037A000D4012FBF6A017B01EE24FF248C0120E0AD +:1037B00030E0C016D106E206F30610F4415051097C +:1037C000481B590BCA011F910F91FF90EF90DF909A +:1037D000CF9008951F920F920FB60F9211248F93DE +:1037E0009F93AF93BF938091D1019091D201A0910B +:1037F000D301B091D4010196A11DB11D8093D101D7 +:103800009093D201A093D301B093D401BF91AF9113 +:103810009F918F910F900FBE0F901F9018950E944F +:10382000250CF8942FEF87EA91E6215080409040D4 +:10383000E1F700C0000087E090EBDC018093F0012D +:103840009093F101A093F201B093F3012CE088E191 +:1038500090E00FB6F894A895809360000FBE209377 +:103860006000FFCFEF92FF920F931F93CF93DF93F0 +:10387000E82EF12C8F2D0E944505C0E0D0E0082FE6 +:1038800010E098010C2E02C0359527950A94E2F7B6 +:1038900020FD05C02196C630D10599F709C06C2FCF +:1038A0007F2D80E00E944D05E812F4CF81E005C035 +:1038B000F3948EE0F812DECF80E0DF91CF911F917C +:1038C0000F91FF90EF900895CF93C82F8CE20E9444 +:1038D000321C882321F08C2FCF910C94321C80E075 +:1038E000CF910895CF930E94B71D811102C00E940D +:1038F0009D1DC5E6C15049F00E9458048FE39CE924 +:103900000197F1F700C00000F5CF89E20E94641C26 +:10391000811111C18AE20E94641C81110E949D1DC7 +:1039200085E00E94641C81110E940F1C0E94C21D30 +:103930008093CF0187E00E94641C882399F18BE17A +:103940000E94641C882351F09091CF0191FB88273D +:1039500080F921E0822780FB91F922C08EE00E944D +:10396000641C882351F09091CF0192FB882780F945 +:1039700021E0822780FB92F913C080E10E94641C41 +:103980009091CF01882341F093FB882780F921E0B3 +:10399000822780FB93F904C0892F809580FB90F9E2 +:1039A0009093CF018091CF010E94C61D0E94D41D2B +:1039B0008093EF0180EE0E94641C882341F0809187 +:1039C000EF01982F909590FB80F98093EF0189E3A8 +:1039D0000E94641C882359F09091EF0191FB882785 +:1039E00080F921E0822780FB91F99093EF0182EE2C +:1039F0000E94641C882359F09091EF0192FB882764 +:103A000080F921E0822780FB92F99093EF0186EE06 +:103A10000E94641C882359F09091EF0193FB882742 +:103A200080F921E0822780FB93F99093EF0183EEE8 +:103A30000E94641C882359F09091EF0194FB882721 +:103A400080F921E0822780FB94F99093EF0185E3D0 +:103A50000E94641C882359F09091EF0195FB882700 +:103A600080F921E0822780FB95F99093EF0181E3B3 +:103A70000E94641C882359F09091EF0196FB8827DF +:103A800080F921E0822780FB96F99093EF0181E194 +:103A90000E94641C882359F09091EF0197FB8827BE +:103AA00080F921E0822780FB97F99093EF018091C4 +:103AB000EF010E94D81D8091EF0187FB882780F9D4 +:103AC00080930D0187E20E94641CC82F8EE10E9442 +:103AD000641C8111C2608FE10E94641C8111C4606A +:103AE00080E20E94641C8111C86081E20E94641C13 +:103AF0008111C06182E20E94641C8111C06283E274 +:103B00000E94641C8111C06484E20E94641C8823AA +:103B100011F0C06802C0CC2329F08C2F0E94CF1D69 +:103B20006C2F03C00E94CB1D682F70E080E090E0F6 +:103B3000CF910C949E18CF9108956DEE7EEF80E0AA +:103B400090E00E94F52360E082E090E00E94E32391 +:103B500060E083E090E00E94E32360E084E090E096 +:103B60000E94E32360E085E090E00C94E32380E092 +:103B700090E00E94DD2321E08D3E9E4F09F020E081 +:103B8000822F089582E090E00C94D523682F82E084 +:103B900090E00C94E32383E090E00C94D523682F0D +:103BA00083E090E00C94E32384E090E00C94D52330 +:103BB000682F84E090E00C94E3238091D70180FF8C +:103BC0000BC06091130185E0689FB00111247595C9 +:103BD0006795759567952AC081FF09C060911301AB +:103BE00085E0689FB0011124759567951FC082FF1D +:103BF00007C06091130185E0689FB001112416C0D1 +:103C00004091D8014423C9F060911201461788F70A +:103C10002091130185E0289F90011124429FC0014B +:103C2000439F900D112470E00E94A7236038710516 +:103C300040F46115710539F002C065E070E0862F2F +:103C400008958FE7089581E008958091D70180FF5E +:103C500008C06091110170E075956795759567953D +:103C600021C081FF06C06091110170E075956795D4 +:103C700019C082FF04C06091110170E010C08091F2 +:103C8000D8018823C1F0609110018617A0F79091A8 +:103C90001101989FC001112470E00E94A723603891 +:103CA000710528F46115710521F0862F08958FE7BD +:103CB000089581E0089561E070E0F4CF803F21F441 +:103CC0000E94DD1D819504C0813F29F40E94DD1D05 +:103CD0008093DB010895823F21F40E94DD1D8195D0 +:103CE00004C0833F29F40E94DD1D8093DA0108950A +:103CF000893F19F40E94251E05C08A3F31F40E94B5 +:103D0000251E81958093DC0108958B3F21F40E944C +:103D1000251E819504C08C3F29F40E94251E8093A6 +:103D2000DD010895843F21F48091D901816017C09D +:103D3000853F21F48091D901826011C0863F21F432 +:103D40008091D90184600BC0873F21F48091D90113 +:103D5000886005C0883F31F48091D90180618093EB +:103D6000D90108958D3F21F48091D70181600BC066 +:103D70008E3F21F48091D701826005C08F3F29F4E6 +:103D80008091D70184608093D7010895803F39F4F2 +:103D90008091DB0187FF6CC01092DB0169C0813F1D +:103DA00029F48091DB011816BCF362C09091DA010E +:103DB000823F29F497FF5CC01092DA0159C0833F1B +:103DC00019F41916CCF354C0893F41F48091DC01F9 +:103DD00018160CF04DC01092DC014AC08A3F29F43D +:103DE0008091DC0187FF44C0F6CF8B3F39F480918E +:103DF000DD0187FF3DC01092DD013AC08C3F29F400 +:103E00008091DD011816BCF333C0843F21F480910A +:103E1000D9018E7F17C0853F21F48091D9018D7F14 +:103E200011C0863F21F48091D9018B7F0BC0873F61 +:103E300021F48091D901877F05C0883F31F48091BA +:103E4000D9018F7E8093D90113C08D3F21F48091D9 +:103E5000D7018E7F0BC08E3F21F48091D7018D7FDB +:103E600005C08F3F29F48091D7018B7F8093D701C4 +:103E70008091DA0181110EC08091DB0181110AC0AD +:103E80008091DC01811106C08091DD01811102C0A9 +:103E90001092D801089589ED91E00E94360F0E949A +:103EA000B51B9093D6018093D50108951F93CF93AE +:103EB000DF938091D5019091D6010E94C11B409162 +:103EC000D801442321F02091140130E006C0209154 +:103ED00015015AE0259F900111248217930708F4D9 +:103EE00082C08091DA011091DB01D091DC01C09198 +:103EF000DD01811107C0111105C0D11103C0CC2310 +:103F000009F471C04F3F19F04F5F4093D801181664 +:103F100024F40E94DD1D8093DA018091DA0187FF8D +:103F200005C00E94DD1D81958093DA01111624F4ED +:103F30000E94DD1D8093DB018091DB0187FF05C0BE +:103F40000E94DD1D81958093DB016091DA0166237B +:103F500039F11091DB01112319F1772767FD709575 +:103F6000872F972F0E94B82223E333E343E35FE3D5 +:103F70000E941C230E9485226093DA01612F77271B +:103F800067FD7095872F972F0E94B82223E333E3B4 +:103F900043E35FE30E941C230E9485226093DB01C0 +:103FA0001D1624F40E94251E8093DC018091DC0103 +:103FB00087FF05C00E94251E81958093DC011C1699 +:103FC00024F40E94251E8093DD018091DD0187FF8E +:103FD00005C00E94251E81958093DD01DF91CF9160 +:103FE0001F910C944B1FDF91CF911F910895E9ED24 +:103FF000F1E085E0DF011D928A95E9F71092D80182 +:104000001092D7010895833081F128F4813059F05E +:104010008230D1F00895853009F449C0B8F1863076 +:1040200009F456C0089520911501862F90E0820F63 +:10403000911D8F3F910520F4620F60931501089543 +:104040008FEF80931501089520911401862F90E041 +:10405000820F911D8F3F910520F4620F6093140130 +:1040600008958FEF80931401089520911301862FF6 +:1040700090E0820F911D8F3F910520F4620F6093B5 +:10408000130108958FEF8093130108952091120179 +:10409000862F90E0820F911D8F3F910520F4620FD3 +:1040A0006093120108958FEF80931201089520917B +:1040B0001101862F90E0820F911D8F3F910520F412 +:1040C000620F6093110108958FEF8093110108959D +:1040D00020911001862F90E0820F911D8F3F910556 +:1040E00020F4620F6093100108958FEF8093100108 +:1040F0000895833011F128F4813049F0823091F035 +:104100000895853081F120F18630C1F108958091C4 +:104110001501681720F4861B8093150108951092ED +:104120001501089580911401681720F4861B80936F +:1041300014010895109214010895809113016817D5 +:1041400020F4861B809313010895109213010895A3 +:1041500080911201681720F4861B80931201089544 +:1041600010921201089580911101681720F4861BA6 +:10417000809311010895109211010895809110010A +:10418000681720F4861B8093100108951092100187 +:1041900008958D3109F442C020F58E3009F477C0BE +:1041A00070F4873009F459C018F48630F1F134C046 +:1041B000883009F4A8C08B3009F4A5C02DC0863121 +:1041C00009F4A1C038F4803109F472C0813109F4D6 +:1041D00079C022C0893109F496C08B3109F44DC0F1 +:1041E0001BC0853309F487C048F4873209F483C0C3 +:1041F00008F473C0893209F47EC00EC0833438F4E9 +:104200008A3308F068C0883309F47DC005C0833460 +:1042100009F471C0883499F080E008950E943F222B +:104220000E941F0F0E9424086EC08091CF01817FE1 +:104230008E7F8093CF0181E08093DF0108950E94FB +:10424000A2142FEF83ED90E3215080409040E1F7DE +:1042500000C000000E940F1C56C09091CF01892F12 +:104260008095817080FB90F919F0966098601DC070 +:10427000997F977F9093CF0146C09091CF0191FB9A +:10428000882780F921E0822780FB91F909C090916D +:10429000CF0192FB882780F921E0822780FB92F9E9 +:1042A0009093CF01882379F191609093CF01089585 +:1042B0009091CF0193FB882780F921E0822780FB32 +:1042C00093F9EECF0E94A21480910D0191E089270D +:1042D00080930D0118C027EC01C023EE280F61E088 +:1042E00070E080E090E004C0660F771F881F991F80 +:1042F0002A95D2F704C061E070E080E090E00E946F +:104300009E180E94A21481E0089580E0089580E044 +:104310000895CF93C82F8091DF01813079F018F094 +:104320008230D1F184C0A0910E01B0910F018C9127 +:10433000813169F0823209F07CC009C0A0910E0180 +:10434000B0910F018C91813111F0823249F48C2FA0 +:104350000E94852181111DC08C2F0E94C9201AC086 +:104360008C2F0E948721811114C0C43179F048F448 +:10437000CB3079F0C03109F060C082E08093DF017A +:1043800008C0C93219F0C83321F057C01092DF01BC +:1043900054C081E0817053C0C93289F118F5C4312D +:1043A00071F1A8F4C73009F046C08AE08093150186 +:1043B00094E19093140193E0909313018093120180 +:1043C00088E08093110188E28093100134C0CE51BF +:1043D000C63088F5EC2FF0E0E65DFE4F80818093DB +:1043E000DE0129C0CE34E9F020F4CB3421F56AE0B7 +:1043F00013C0C13579F0C235F1F461E00DC0809190 +:10440000DE01882319F01092DE0115C081E080934F +:10441000DF0115C061E006C08091DE010E9403202B +:104420000AC06AE08091DE010E94792004C01092E7 +:10443000DF0180E004C081E002C080E0ABCFCF911B +:104440000895E1E8F0E08081886080838081816068 +:1044500080838FB7F89493E09093890090ED9093C8 +:1044600088008FBF0895EFE6F0E08081826080834E +:104470000895EFE6F0E080818D7F80830895EFE678 +:10448000F0E0808192E08927808308951F920F9247 +:104490000FB60F9211242F933F934F935F936F9317 +:1044A0007F938F939F93AF93BF93EF93FF938091ED +:1044B000E0019091E10101969093E1018093E00188 +:1044C000811103C082E00E942408E091E101E69599 +:1044D000E695F0E0E657FB4FE4918091E0018E1302 +:1044E00003C080E00E942408FF91EF91BF91AF913B +:1044F0009F918F917F916F915F914F913F912F91FC +:104500000F900FBE0F901F90189504D06894B111B2 +:104510008DC0089570D088F09F5790F0B92F9927DB +:10452000B751A0F0D1F0660F771F881F991F1AF0BE +:10453000BA95C9F712C0B13081F077D0B1E00895D3 +:1045400074C0672F782F8827B85F39F0B93FCCF354 +:10455000869577956795B395D9F73EF490958095B4 +:10456000709561957F4F8F4F9F4F0895E89409C0D4 +:1045700097FB3EF490958095709561957F4F8F4F96 +:104580009F4F9923A9F0F92F96E9BB279395F695AC +:10459000879577956795B795F111F8CFFAF4BB0F2A +:1045A00011F460FF1BC06F5F7F4F8F4F9F4F16C08E +:1045B000882311F096E911C0772321F09EE8872F18 +:1045C000762F05C0662371F096E8862F70E060E0D4 +:1045D0002AF09A95660F771F881FDAF7880F96954D +:1045E000879597F9089557FD9058440F551F59F036 +:1045F0005F3F71F04795880F97FB991F61F09F3FD0 +:1046000079F087950895121613061406551FF2CFF8 +:104610004695F1DF08C0161617061806991FF1CF48 +:1046200086957105610508940895E894BB2766276F +:104630007727CB0197F908950BD078C069D028F07F +:104640006ED018F0952309F05AC05FC01124EECF48 +:10465000CADFA0F3959FD1F3950F50E0551F629FDD +:10466000F001729FBB27F00DB11D639FAA27F00DCB +:10467000B11DAA1F649F6627B00DA11D661F829FF2 +:104680002227B00DA11D621F739FB00DA11D621FD7 +:10469000839FA00D611D221F749F3327A00D611DF4 +:1046A000231F849F600D211D822F762F6A2F1124D6 +:1046B0009F5750408AF0E1F088234AF0EE0FFF1F29 +:1046C000BB1F661F771F881F91505040A9F79E3F60 +:1046D000510570F014C0AACF5F3FECF3983EDCF3B5 +:1046E000869577956795B795F795E7959F5FC1F79D +:1046F000FE2B880F911D9695879597F9089597F948 +:104700009F6780E870E060E008959FEF80EC089577 +:1047100000240A94161617061806090608950024A0 +:104720000A9412161306140605060895092E03941A +:10473000000C11F4882352F0BB0F40F4BF2B11F48E +:1047400060FF04C06F5F7F4F8F4F9F4F089597FBAF +:10475000072E16F4009407D077FD09D00E94C123DC +:1047600007FC05D03EF4909581959F4F0895709574 +:1047700061957F4F0895EE0FFF1F0590F491E02D96 +:104780000994AA1BBB1B51E107C0AA1FBB1FA61798 +:10479000B70710F0A61BB70B881F991F5A95A9F7EA +:1047A00080959095BC01CD010895F999FECF92BDF9 +:1047B00081BDF89A992780B50895A8E1B0E042E05C +:1047C00050E00C94FD23262FF999FECF92BD81BDB8 +:1047D000F89A019700B4021639F01FBA20BD0FB63F +:1047E000F894FA9AF99A0FBE08950196272F0E941D +:1047F000E4230C94E323DC01CB01FC01F999FECF07 +:1048000006C0F2BDE1BDF89A319600B40D92415058 +:0A4810005040B8F70895F894FFCF68 +:10481A0020022608B30890085C0829080101BC0197 +:10482A0028080A03140A3F4D36394B04FE03C8030D +:10483A008F0322033B0354036D030102030405069D +:04484A000708090052 :00000001FF diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c index 18bace4eb..f31901331 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -153,7 +153,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) key_timer = timer_read(); // if the key is being pressed, we start the timer. register_code(KC_LSFT); // we're now holding down Shift. } 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. + if (timer_elapsed(key_timer) < 70) { // the threshhold we pick for counting something as a tap. register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren unregister_code(KC_9); // now let's let go of that key } @@ -166,7 +166,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key register_code(KC_RSFT); } else { - if (timer_elapsed(key_timer) < 150) { + if (timer_elapsed(key_timer) < 70) { register_code(KC_0); unregister_code(KC_0); } -- cgit v1.2.3 From 8fda26db7d4334eaa5018d325b368c40103b198f Mon Sep 17 00:00:00 2001 From: a0-c Date: Tue, 26 Apr 2016 14:05:05 -1000 Subject: gh60 Rev C with LED controls (#289) * gh60_rev_c * gh60 Rev C Support for WASD, Poker, Esc, FN LED clusters * clean up spacing * Update README.md * Added image and pinout * PCB image --- keyboard/gh60_rev_c/Makefile | 140 ++++++++++++++++++++++++++++++ keyboard/gh60_rev_c/README.md | 60 +++++++++++++ keyboard/gh60_rev_c/config.h | 157 ++++++++++++++++++++++++++++++++++ keyboard/gh60_rev_c/gh60.c | 67 +++++++++++++++ keyboard/gh60_rev_c/gh60.h | 81 ++++++++++++++++++ keyboard/gh60_rev_c/gh60revc.jpg | Bin 0 -> 1424987 bytes keyboard/gh60_rev_c/keymaps/default.c | 69 +++++++++++++++ keyboard/gh60_rev_c/pinout.txt | 18 ++++ 8 files changed, 592 insertions(+) create mode 100644 keyboard/gh60_rev_c/Makefile create mode 100644 keyboard/gh60_rev_c/README.md create mode 100644 keyboard/gh60_rev_c/config.h create mode 100644 keyboard/gh60_rev_c/gh60.c create mode 100644 keyboard/gh60_rev_c/gh60.h create mode 100644 keyboard/gh60_rev_c/gh60revc.jpg create mode 100644 keyboard/gh60_rev_c/keymaps/default.c create mode 100644 keyboard/gh60_rev_c/pinout.txt (limited to 'keyboard') diff --git a/keyboard/gh60_rev_c/Makefile b/keyboard/gh60_rev_c/Makefile new file mode 100644 index 000000000..09843dd83 --- /dev/null +++ b/keyboard/gh60_rev_c/Makefile @@ -0,0 +1,140 @@ +#---------------------------------------------------------------------------- +# 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". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = gh60 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = gh60.c + +ifdef KEYMAP + SRC := keymaps/$(KEYMAP).c $(SRC) +else + SRC := keymaps/default.c $(SRC) +endif + +CONFIG_H = config.h + +# 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 + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk + diff --git a/keyboard/gh60_rev_c/README.md b/keyboard/gh60_rev_c/README.md new file mode 100644 index 000000000..bf209be8c --- /dev/null +++ b/keyboard/gh60_rev_c/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 keyboard/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/keyboard/gh60_rev_c/config.h b/keyboard/gh60_rev_c/config.h new file mode 100644 index 000000000..2fd8f5743 --- /dev/null +++ b/keyboard/gh60_rev_c/config.h @@ -0,0 +1,157 @@ +/* +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 gh60 +#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) + * +*/ +#define COLS (int []){ F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } +#define ROWS (int []){ D0, D1, D2, D3, D5 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 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/keyboard/gh60_rev_c/gh60.c b/keyboard/gh60_rev_c/gh60.c new file mode 100644 index 000000000..8e7219bfe --- /dev/null +++ b/keyboard/gh60_rev_c/gh60.c @@ -0,0 +1,67 @@ +#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)) +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 + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +void process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + 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); +void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); + +#endif diff --git a/keyboard/gh60_rev_c/gh60revc.jpg b/keyboard/gh60_rev_c/gh60revc.jpg new file mode 100644 index 000000000..6c88ad244 Binary files /dev/null and b/keyboard/gh60_rev_c/gh60revc.jpg differ diff --git a/keyboard/gh60_rev_c/keymaps/default.c b/keyboard/gh60_rev_c/keymaps/default.c new file mode 100644 index 000000000..3622be41b --- /dev/null +++ b/keyboard/gh60_rev_c/keymaps/default.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/keyboard/gh60_rev_c/pinout.txt b/keyboard/gh60_rev_c/pinout.txt new file mode 100644 index 000000000..3787f938e --- /dev/null +++ b/keyboard/gh60_rev_c/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 -- cgit v1.2.3 From ce75a7675e10e24e7ecd7bc3575c0e0fc1bc34b5 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 26 Apr 2016 23:25:16 -0500 Subject: Updated personal layouts (#291) --- keyboard/atomic/keymaps/pvc/keymap.c | 28 +- keyboard/planck/keymaps/pvc/config.h | 88 ++++++ keyboard/planck/keymaps/pvc/keymap.c | 536 ++++++++++++++++++++++++++++++++ keyboard/planck/keymaps/pvc/makefile.mk | 16 + keyboard/planck/keymaps/pvc_planck.c | 179 ----------- 5 files changed, 658 insertions(+), 189 deletions(-) create mode 100644 keyboard/planck/keymaps/pvc/config.h create mode 100644 keyboard/planck/keymaps/pvc/keymap.c create mode 100644 keyboard/planck/keymaps/pvc/makefile.mk delete mode 100644 keyboard/planck/keymaps/pvc_planck.c (limited to 'keyboard') diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c index 28aa2c359..e17c41e23 100644 --- a/keyboard/atomic/keymaps/pvc/keymap.c +++ b/keyboard/atomic/keymaps/pvc/keymap.c @@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -101,7 +101,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_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_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* COLEMAK @@ -114,7 +114,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -123,7 +123,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_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_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, /* DVORAK @@ -136,7 +136,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| - * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | * '--------------------------------------------------------------------------------------------------------------------------------------' */ @@ -145,7 +145,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_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_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_LGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, }, @@ -255,7 +255,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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) { @@ -324,6 +329,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) #endif /* MOUSEKEY_ENABLE */ +#ifdef AUDIO_ENABLE case MACRO_TIMBRE_1: if (record->event.pressed) set_timbre(TIMBRE_12); @@ -416,6 +422,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; +#endif /* AUDIO_ENABLE */ + default: break; diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h new file mode 100644 index 000000000..7d64f0977 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/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 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 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 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/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c new file mode 100644 index 000000000..27850b215 --- /dev/null +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -0,0 +1,536 @@ +#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_LOWER 3 +#define LAYER_RAISE 4 +#define LAYER_FUNCTION 5 +#define LAYER_MOUSE 6 +#define LAYER_MUSIC 7 +#define LAYER_ADJUST 8 + +#define MACRO_QWERTY 0 +#define MACRO_COLEMAK 1 +#define MACRO_DVORAK 2 +#define MACRO_LOWER 3 +#define MACRO_RAISE 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_ON 14 +#define MACRO_MUSIC_OFF 15 +#define MACRO_AUDIO_ON 16 +#define MACRO_AUDIO_OFF 17 +#define MACRO_INC_VOICE 18 +#define MACRO_DEC_VOICE 19 + +#define M_QWRTY M(MACRO_QWERTY) +#define M_COLMK M(MACRO_COLEMAK) +#define M_DVORK M(MACRO_DVORAK) +#define M_LOWER M(MACRO_LOWER) +#define M_RAISE M(MACRO_RAISE) +#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 MUS_ON M(MACRO_MUSIC_ON) +#define MUS_OFF M(MACRO_MUSIC_OFF) +#define AUD_OFF M(MACRO_AUDIO_OFF) +#define AUD_ON M(MACRO_AUDIO_ON) +#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 _______ 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 | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | 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_BSPC, 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_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, 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 | , | . | / | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | SPACE | SPACE | LOWER | UP | DOWN | LEFT | 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_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_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, 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 | RAISE | 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_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, + }, + +/* Raise + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | [ | ] | \ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_RAISE] = { /* RAISED */ + { KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + { XXXXXXX, 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END }, + }, + + +/* LOWERED + * .-----------------------------------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | XXXXXX | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LSHIFT | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ENTER | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISE | BACKSP | BACKSP | LOWER | PG UP | PG DN | HOME | END | + * '-----------------------------------------------------------------------------------------------------------' + */ + + [LAYER_LOWER] = { /* LOWERED */ + { KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS }, + { XXXXXXX, 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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, KC_PGUP, KC_PGDN, 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 | RAISE | 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_MUSIC] = { /* MUSIC */ + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, + }, + + [LAYER_ADJUST] = { /* ADJUST */ + { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, + { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, + }, + + +/* + [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[] = { +}; + +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_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_LOWER); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_RAISE: + if (record->event.pressed) + { + layer_on(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + else + { + layer_off(LAYER_RAISE); + update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); + } + break; + + case MACRO_FUNCTION: + if (record->event.pressed) + { + layer_on(LAYER_FUNCTION); + } + else + { + 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_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + + case MACRO_AUDIO_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); + #endif + } + break; + + case MACRO_MUSIC_ON: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); + layer_on(LAYER_MUSIC); + #endif + } + break; + + case MACRO_MUSIC_OFF: + if (record->event.pressed) + { + #ifdef AUDIO_ENABLE + layer_off(LAYER_MUSIC); + stop_all_notes(); + #endif + } + 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 */ + + default: + break; + + } + return MACRO_NONE; +}; + + +#ifdef AUDIO_ENABLE + + +void process_action_user(keyrecord_t *record) +{ + + uint8_t starting_note = 0x0C; + int offset = 7; + + if (IS_LAYER_ON(LAYER_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))); + } + } +} + + +void matrix_init_user(void) +{ + set_voice(default_voice); + play_startup_tone(); + 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) { - print("RS_DN"); - layer_on(_RS); - update_tri_layer(_RS, _LW, _FN); - } else { - print("RS_UP"); - layer_off(_RS); - update_tri_layer(_RS, _LW, _FN); - phex(layer_state); - } - break; - - case _LW: - if (record->event.pressed) { - print("LW_DN"); - layer_on(_LW); - update_tri_layer(_RS, _LW, _FN); - } else { - print("LW_UP"); - layer_off(_LW); - update_tri_layer(_RS, _LW, _FN); - } - break; - - default: - break; - } - return MACRO_NONE; -}; -- cgit v1.2.3 From 4f998657e97f641f6170573f17258f7ee7550390 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Fri, 29 Apr 2016 04:47:06 +0300 Subject: Addresses #290 --- keyboard/ergodox_ez/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/readme.md b/keyboard/ergodox_ez/readme.md index 4afb42c8f..97a10ff4d 100644 --- a/keyboard/ergodox_ez/readme.md +++ b/keyboard/ergodox_ez/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](/BUILD_GUIDE.md) - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) +4. Copy `keyboard/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 clean` followed by `make KEYMAP=your_name`. For example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name. 6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. -- cgit v1.2.3 From 38858338f81e74a89168a25a75a97bccbe83df13 Mon Sep 17 00:00:00 2001 From: sneako Date: Thu, 28 Apr 2016 21:58:29 -0400 Subject: Add my Ergodox EZ config --- keyboard/ergodox_ez/keymaps/sneako/README.md | 6 + keyboard/ergodox_ez/keymaps/sneako/keymap.c | 187 +++++++++++++++++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/sneako/README.md create mode 100644 keyboard/ergodox_ez/keymaps/sneako/keymap.c (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/sneako/README.md b/keyboard/ergodox_ez/keymaps/sneako/README.md new file mode 100644 index 000000000..8dd110ee6 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/sneako/keymap.c b/keyboard/ergodox_ez/keymaps/sneako/keymap.c new file mode 100644 index 000000000..0c6863102 --- /dev/null +++ b/keyboard/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; + } + +}; -- cgit v1.2.3 From b79124ac14720d4b53db65a0d9505b230db66b78 Mon Sep 17 00:00:00 2001 From: sneako Date: Thu, 28 Apr 2016 22:20:25 -0400 Subject: Adding .hex file --- keyboard/ergodox_ez/keymaps/sneako/sneako.hex | 1152 +++++++++++++++++++++++++ 1 file changed, 1152 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/sneako/sneako.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/sneako/sneako.hex b/keyboard/ergodox_ez/keymaps/sneako/sneako.hex new file mode 100644 index 000000000..1db172865 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/sneako/sneako.hex @@ -0,0 +1,1152 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94720C0C94440D2B +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C940E220C94A9020C94A902FF +:100050000C94A9020C949D1B0C94A9020C94A90267 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902B10DD30DD1 +:1000B000C10ED30DC10E180E3B0EC10E900EA30E35 +:1000C0008F118F11CC11CC110F124D1266146614C2 +:1000D00066126614671367133A1466146614511493 +:1000E0000000F0A12E004C002971E10035810000D4 +:1000F0001E00140004001D0034004D001F001A00F3 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002800260012000F00370054 +:100170002F002B00270013003382380030004E0080 +:100180002D0031003478E500C100000001000100BD +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A +:1004E0009091EF01A091F001B091F1018730904B14 +:1004F000A740B04BB9F41092EE011092EF011092A8 +:10050000F0011092F10114BE84B7877F84BF88E1A7 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0EAEAF7E402C0D8 +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92AE3EB107E1F70E94B6090C94BE +:10055000D3230C94000061110BC0FC01828188231D +:1005600021F085EE0E94231003C085EE0E94EB105F +:1005700080E090E0089508956091B1017091B2011A +:100580008091B3019091B4010E94C91A56985E9867 +:1005900025982D9826982E9827982F98813019F015 +:1005A000823021F00895259A2D9A0895269A2E9A40 +:1005B00008950C94BC0256985E9825982D9826981C +:1005C0002E9827982F988FEF90E090938900809332 +:1005D000880090938B0080938A0090938D00809385 +:1005E0008C00259A2D9A2FEF80E792E021508040D1 +:1005F0009040E1F700C00000269A2E9A2FEF80E786 +:1006000092E0215080409040E1F700C00000279A1E +:100610002F9A2FEF80E792E0215080409040E1F741 +:1006200000C0000025982D982FEF80E792E0215020 +:1006300080409040E1F700C0000026982E982FEFF0 +:1006400080E792E0215080409040E1F700C0000038 +:1006500027982F9856985E9825982D9826982E982A +:1006600027982F98089589EA8093800089E08093E5 +:10067000810024982C983F988AB18F748AB96E981B +:10068000479A8BB1806B8BB9769A0E94DB020C94EF +:10069000BB0280E2809300018091340181110EC081 +:1006A0000E94980381E0809334012FEF83ED90E363 +:1006B000215080409040E1F700C0000080E40E949B +:1006C0009E038093000181112EC00E94C803809375 +:1006D0000001811128C00E94C8038093000181118C +:1006E00022C08FE30E94C8038093000181111BC0C8 +:1006F0000E94C00380E40E949E0380930001811148 +:1007000012C08CE00E94C8038093000181110BC0CD +:100710000E94C80380930001811105C08FE30E94ED +:10072000C803809300010E94C003809100010895D6 +:100730001092B9008AE08093B800089594EA9093EB +:10074000BC009091BC0097FFFCCF9091B900987FBE +:10075000983021F0903111F081E008958093BB0032 +:1007600084E88093BC008091BC0087FFFCCF80911F +:10077000B900887F883111F0803471F780E00895E6 +:1007800084E98093BC008091BC0084FDFCCF089577 +:100790008093BB0084E88093BC008091BC0087FFFD +:1007A000FCCF9091B900987F81E0983209F480E005 +:1007B000089584E88093BC008091BC0087FFFCCF43 +:1007C0008091BB00089580910001811115C080E4E3 +:1007D0000E949E038093000181110CC082E10E945F +:1007E000C80380930001811105C08FEF0E94C803E8 +:1007F000809300010E94C00384B1807F84B985B1D9 +:10080000807F85B98AB1837F8AB98BB1837F8BB9A9 +:100810003E98469808950E944903809300010E94E3 +:10082000E30380B38C7080BB81B3836F81BBA6E38D +:10083000B1E0E4E4F1E08EE08E0F11921D928E1390 +:10084000FCCF0C943303BF92CF92DF92EF92FF92D2 +:100850000F931F93CF93DF9380910001882379F04A +:10086000809135018F5F80933501811108C00E940E +:10087000490380930001811102C00E94DB0206E35C +:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455 +:10089000E394F12CC730D10500F58091000181115E +:1008A00064C080E40E949E0380930001811112C005 +:1008B00082E10E94C8038093000181110BC0C7012F +:1008C0000C2E01C0880F0A94EAF780950E94C80395 +:1008D000809300010E94C00348C0CA30A1F028F4F0 +:1008E000C83059F0C93061F005C0CC3089F070F0E3 +:1008F000CD3089F0209A289810C0219A29980DC0EF +:10090000229A2A980AC0239A2B9807C0529A01C0AB +:10091000539A5B9802C03E9A469890EA9A95F1F7EE +:100920009FB1799902C082E001C080E091709D255D +:10093000982B7C9902C084E001C080E0892B7D99CE +:1009400002C038E001C030E0832B7E9902C020E174 +:1009500001C020E0822B9FB19095991F9927991F84 +:100960009295990F907E892B0FC080910001811183 +:1009700049C080E40E949E0380930001882379F19E +:10098000B12C0E94C0038B2DF8019081981719F0AB +:100990008083C09201010E94E30321960F5F1F4FE5 +:1009A000CE30D10509F076CF80910101882361F125 +:1009B000815080930101882339F08FE99FE00197EE +:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC +:1009D000CF01825F91919D938E13FCCF15C083E16F +:1009E0000E94C803809300018111CACF81E40E9454 +:1009F0009E03809300018111C3CF0E94D903B82EBA +:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7 +:100A1000CF911F910F91FF90EF90DF90CF90BF90FB +:100A20000895E82FF0E0EC5BFE4F80810895089573 +:100A3000089596E0799FF001112494E5899FE00DD7 +:100A4000F11D1124E60FF11DEE0FFF1FEC51FF4FBA +:100A5000859194910895880F991FFC01E05AF04008 +:100A6000859194910895880F991FFC01E052FF4FE2 +:100A70008591949108950F931F93CF93DF93EC0189 +:100A80008115904350F5C11580E2D80708F0B3C036 +:100A9000CB3BD10590F4C83AD10508F05AC0C53A0D +:100AA000D10508F04BC0C430D10508F0BBC1219777 +:100AB00009F0B5C101E010E0F5C1CF3FD10511F05B +:100AC00008F0B0C1C03FD10508F092C0CE01805EF1 +:100AD0009109089708F4A6C1A2C1C11591E5D907EB +:100AE000A8F4C23020E5D20708F09EC0C11580E509 +:100AF000D80709F485C008F091C0C11520E4D207D9 +:100B000008F08DC1DD278E01106CCCC1C11580E8C5 +:100B1000D80758F4C11590E7D90708F07CC1C11572 +:100B200020E6D20708F422C17AC1C11580E9D807AE +:100B300008F075C1DF708E01106AB4C1C53AD105E5 +:100B400009F472C1C63AD10509F071C102E810E496 +:100B5000A9C1C83AD10509F46DC1C93AD10509F452 +:100B60006CC1CA3AD10509F46BC1CB3AD10509F47D +:100B70006AC1CC3AD10509F469C1CD3AD10509F46D +:100B800068C1C03BD10509F467C1CE3AD10509F46B +:100B900066C1CF3AD10509F465C1C13BD10509F45D +:100BA00064C1C23BD10509F463C1C33BD10509F45B +:100BB00062C1C43BD10509F461C1C53BD10509F44B +:100BC00060C1C63BD10509F45FC1C73BD10509F43B +:100BD0005EC1C83BD10509F45DC1C93BD10509F42B +:100BE0005CC1CA3BD10509F45BC100E014E45AC101 +:100BF0008E01106557C1CE019F700E94330553C10D +:100C00000E948A149FEF24E38CE0915020408040A2 +:100C1000E1F700C000000E94C21B44C18091CD01D9 +:100C200081608093CD013EC10E946B1D811102C085 +:100C30000E94511D0E94881D90E09093EE018093C8 +:100C4000ED01C23090E5D90721F48091ED0181607A +:100C500086C0C43020E5D20721F48091ED01826086 +:100C60007EC0C63080E5D80721F48091ED01846014 +:100C700076C0C83090E5D90719F48091ED0127C0FE +:100C8000CA3020E5D20721F48091ED01806167C070 +:100C9000CC3080E5D80721F48091ED0180625FC0FF +:100CA000CE3090E5D90721F48091ED01806457C0E2 +:100CB000C03120E5D20721F48091ED0180684FC05A +:100CC000C23180E5D80729F48091ED018460886005 +:100CD00046C0C33090E5D90721F48091ED018E7FA5 +:100CE0003EC0C53020E5D20721F48091ED018D7F13 +:100CF00036C0C73080E5D80721F48091ED018B7FA5 +:100D00002EC0C93090E5D90719F48091ED0126C0B5 +:100D1000CB3020E5D20721F48091ED018F7E1FC0FA +:100D2000CD3080E5D80721F48091ED018F7D17C08B +:100D3000CF3090E5D90721F48091ED018F7B0FC072 +:100D4000C13120E5D20721F48091ED018F7707C0F2 +:100D5000C331D04531F48091ED018B7F877F809343 +:100D6000ED018091ED010E948C1D9CC08D2F992773 +:100D70008F70992781309105D9F49E012370332714 +:100D800002C0880F991F2A95E2F79C688E0144E003 +:100D9000000F111F4A95E1F700271370802B912B4C +:100DA00053E0CC0FDD1F5A95E1F7C076DD272FC049 +:100DB0008230910531F4DC2FCC278E01016F106A4F +:100DC00071C08330910569F4CE018370992701E0E9 +:100DD00010E002C0000F111F8A95E2F7C8019C685D +:100DE0000FC0049709F05EC0CE018370992701E01F +:100DF00010E002C0000F111F8A95E2F7C8019A683F +:100E000023E0CC0FDD1F2A95E1F7C07ED7708C015F +:100E10000C2B1D2B47C0DF708E01106243C000E019 +:100E200010E040C08E013EC001E810E43BC003E882 +:100E300010E438C002EE14E435C009EE14E432C008 +:100E40000AEE14E42FC005EB14E42CC006EB14E406 +:100E500029C007EB14E426C00CEC14E423C00DEC0D +:100E600014E420C003E815E41DC00AE815E41AC024 +:100E700002E915E417C004E915E414C001E216E420 +:100E800011C003E216E40EC004E216E40BC005E252 +:100E900016E408C006E216E405C007E216E402C044 +:100EA0000AE216E4C801DF91CF911F910F910895D6 +:100EB00096E0799FF001112494E5899FE00DF11DE2 +:100EC0001124E60FF11DEE0FFF1FEC51FF4F85912E +:100ED0009491803E9105E0F4803C910558F5813372 +:100EE000910509F46FC048F48932910509F463C093 +:100EF0008A32910509F46DC072C089339105E9F019 +:100F000082389105D1F08533910509F44DC067C051 +:100F1000833E910581F138F4803E9105B9F0823E1F +:100F20009105D9F05CC0863E910561F1873E91053F +:100F3000A1F155C00E942B0508952091ED0120FDDF +:100F400002C021FF4CC080EE90E049C08091ED01CD +:100F500080FFF9CF89E390E042C08091ED0182FFEC +:100F60000EC08091ED0184FF03C080E090E037C0A7 +:100F700083EE90E034C08091ED0182FFF2CF82EEEB +:100F800090E02DC08091ED0183FF0BC08091ED01B9 +:100F900084FDEBCF87EE90E022C08091ED0183FFCE +:100FA000F5CF86EE90E01BC08091ED0185FF07C074 +:100FB00089E290E014C08091ED0185FFF9CF85E3CF +:100FC00090E00DC08091ED0186FF07C08AE290E0BD +:100FD00006C08091ED0186FFF9CF81E390E00E9489 +:100FE0003B05089508950C94F207809162010895DD +:100FF000CF93DF9300D01F92CDB7DEB79C018091D5 +:10100000E401843019F593E099833B832A8390931C +:10101000E9008FEF9091E800815095FD06C095EDB5 +:101020009A95F1F700008111F5CF8091E80085FFD6 +:101030000DC040E050E063E070E0CE0101960E94F8 +:10104000620A8091E8008E778093E8000F900F90FD +:101050000F90DF91CF910895CF93DF9300D01F922F +:10106000CDB7DEB72091E401243021F522E02983B9 +:101070009B838A8383E08093E9008FEF9091E8005F +:10108000815095FD06C095ED9A95F1F7000081110C +:10109000F5CF8091E80085FF0DC040E050E063E0AF +:1010A00070E0CE0101960E94620A8091E8008E777E +:1010B0008093E8000F900F900F90DF91CF910895EB +:1010C0002091E4012430F1F422E02093E9002FEF95 +:1010D0003091E800215035FD06C035ED3A95F1F725 +:1010E00000002111F5CF2091E80025FF0BC040E062 +:1010F00050E065E070E00E94620A8091E8008E771F +:101100008093E8000895CF93DF93EC019091E40180 +:10111000943009F046C080910C018823D9F0809169 +:101120000D018823B9F09093E9008FEF9091E800CA +:10113000815095FD06C095E19A95F1F70000811167 +:10114000F5CF8091E80085FF2CC040E050E060E1E1 +:1011500070E017C081E08093E9008FEF9091E80084 +:10116000815095FD06C095ED9A95F1F7000081112B +:10117000F5CF8091E80085FF14C040E050E068E0C2 +:1011800070E0CE010E94620A8091E8008E77809321 +:10119000E80080E1FE01A2E5B1E001900D928A95A0 +:1011A000E1F7DF91CF9108958091E301811109C0AA +:1011B0000E94F70B0E94540C8091E200846080939F +:1011C000E20008951092E301089508950C94FB2124 +:1011D0000E94581B0E9401220E94FA0E0C94F307F1 +:1011E00042E061EC81E00E94710B42E061EC82E040 +:1011F0000E94710B42E061EC83E00E94710B42E1BE +:1012000061EC84E00C94710B8091E601833009F469 +:1012100055C030F4813071F0823009F48EC00895E9 +:101220008A3009F47AC08B3009F460C0893009F043 +:101230009CC020C08091E501813A09F096C0809160 +:10124000E800877F8093E8008091E9019091EA01AE +:10125000892B21F460E182E591E003C060E080E049 +:1012600090E070E00E94AD0A8091E8008B77809357 +:10127000E80008958091E501813209F076C08091FF +:10128000E9019091EA01009719F0039709F06DC008 +:101290008091E800877F8093E8008091E80082FDDC +:1012A00005C08091E4018111F8CF5FC08091F10009 +:1012B000809362018091E8008B7753C08091E501B3 +:1012C000813A09F052C08091E9019091EA01892B9D +:1012D00009F04BC08091E800877F8093E8008091FF +:1012E000E80080FFFCCF80910C0136C08091E501C1 +:1012F0008132D9F58091E9019091EA01892BA9F514 +:101300008091E800877F8093E8000E94A60B80917F +:10131000E70180930C010C948A148091E5018132DD +:1013200021F58091E800877F8093E8000E94A60B5A +:101330008091E8018093630108958091E501813AED +:10134000A1F48091E800877F8093E8008091E80015 +:1013500080FFFCCF809163018093F1008091E800D1 +:101360008E778093E8000C94A60B089584B7877F4E +:1013700084BF88E10FB6F8948093600010926000FB +:101380000FBE90E080E80FB6F894809361009093D0 +:1013900061000FBE0E94490F0E94F70B0E94540C7F +:1013A0008091E20084608093E20078940E94DA0EDB +:1013B0000E944B0F82E091E00E94F50E0E94E9210D +:1013C0008091E401853069F40E94191B8091E2014B +:1013D0008823B1F30E94441B882391F30E944C0A96 +:1013E000EFCF0E94510FECCF292F33272330310547 +:1013F000C9F064F42130310581F02230310509F063 +:1014000043C08DE690E020E133E042C02132310557 +:10141000F1F02232310541F137C082E190E02DE751 +:1014200033E036C099278130910541F08230910533 +:1014300041F0892B49F5ECE0F3E005C0E4EFF2E080 +:1014400002C0ECEDF2E0849190E09F0121C0643095 +:10145000D8F4E62FF0E0EE0FFF1FEE5DFE4F208187 +:10146000318189E090E014C0643070F470E0FB01D9 +:10147000EE0FFF1FE65EFE4F20813181FB01EA5E29 +:10148000FE4F808190E004C080E090E020E030E0FA +:10149000FA0131832083089580E189BD82E189BD0D +:1014A00009B400FEFDCF8091D8008F7D8093D800D5 +:1014B0008091E00082608093E0008091E00081FDF7 +:1014C000FCCF0895CF92DF92EF92FF920F931F937C +:1014D000CF93DF93EC018B016A010E94C50B811150 +:1014E00033C0C114D10439F0F60180819181081B09 +:1014F000190BC80FD91FE12CF12C0115110519F199 +:101500008091E80085FD16C08091E8008E77809379 +:10151000E800C114D10449F0F60180819181E80E00 +:10152000F91EF182E08285E00FC00E94C50B88237E +:1015300021F30AC089918093F10001501109FFEF56 +:10154000EF1AFF0ADACF80E0DF91CF911F910F9160 +:10155000FF90EF90DF90CF9008952091EB013091B4 +:10156000EC012617370748F06115710539F4209111 +:10157000E8002E772093E80001C0B90140E0611532 +:101580007105A9F12091E401222309F443C025301B +:1015900009F442C02091E80023FD40C02091E800FA +:1015A00022FD32C02091E80020FFE9CF4091F300F6 +:1015B0002091F20030E0342BFC01CF016115710560 +:1015C00059F02830310540F481918093F100615049 +:1015D00071092F5F3F4FF1CF41E02830310509F00D +:1015E00040E02091E8002E772093E800C8CF411119 +:1015F000C9CF0AC08091E401882361F0853061F091 +:101600008091E80083FD0AC08091E80082FFF2CF5C +:1016100080E0089582E0089583E0089581E00895D0 +:101620002091EB013091EC012617370748F0611546 +:10163000710539F42091E8002E772093E80001C06D +:10164000B901FC0120E06115710591F18091E4017F +:10165000882309F440C0853009F43FC08091E80038 +:1016600083FD3DC08091E80082FD2FC08091E8009D +:1016700080FFE9CF2091F3008091F20090E0922B5F +:101680006115710559F08830910540F4249120933B +:10169000F1003196615071090196F2CF21E008976F +:1016A00009F020E08091E8008E778093E800CBCFAE +:1016B0002111CCCF0AC08091E401882361F08530EC +:1016C00061F08091E80083FD0AC08091E80082FF0C +:1016D000F2CF80E0089582E0089583E0089581E0EC +:1016E0000895982F973058F59093E900981739F09E +:1016F0007091EC002091ED005091F00003C0242F78 +:10170000762F50E021FF19C03091EB003E7F3093DF +:10171000EB003091ED003D7F3093ED003091EB0018 +:1017200031603093EB007093EC002093ED00509308 +:10173000F0002091EE0027FF07C09F5FD3CF8F708E +:101740008093E90081E0089580E008958091E501AB +:1017500087FF11C08091E80082FD05C08091E401FF +:101760008111F8CF11C08091E8008B770BC0809178 +:10177000E401882349F08091E80080FFF8CF809150 +:10178000E8008E778093E80008952091E40030917E +:10179000E50095E64091EC00842F817040FF22C067 +:1017A0008091E80080FD1CC08091E401882391F0C5 +:1017B000853091F08091EB0085FD10C04091E400F0 +:1017C0005091E5004217530729F39A01915011F700 +:1017D00084E0089582E0089583E0089581E008950B +:1017E00080E008954091E80042FFDECF08950E9416 +:1017F000650C0E946D0CE0EEF0E0808181608083DA +:10180000E8EDF0E080818F77808319BCA7EDB0E030 +:101810008C918E7F8C9380818F7E80831092E301E8 +:1018200008950F931F93CF93DF930E94650C0E943E +:101830006D0CC8EDD0E088818F77888388818068BF +:10184000888388818F7D888319BC1092E40110926F +:10185000E0011092E2011092E10100EE10E0F801C7 +:1018600080818B7F808388818160888342E060E013 +:1018700080E00E94710BE1EEF0E080818E7F80833A +:10188000E2EEF0E0808181608083808188608083E7 +:10189000F80180818E7F8083888180618883DF91D9 +:1018A000CF911F910F910895E8EDF0E080818F7E38 +:1018B0008083E7EDF0E080818160808384E082BFF7 +:1018C00081E08093E3010C94110CE8EDF0E080815D +:1018D0008E7F80831092E20008951092DA001092B9 +:1018E000E10008951F920F920FB60F9211242F93CB +:1018F0003F934F935F936F937F938F939F93AF9398 +:10190000BF93EF93FF938091E10082FF0BC0809122 +:10191000E20082FF07C08091E1008B7F8093E100AD +:101920000E94D90E8091DA0080FF1FC08091D800FC +:1019300080FF1BC08091DA008E7F8093DA00809157 +:10194000D90080FF0DC080E189BD82E189BD09B465 +:1019500000FEFDCF81E08093E4010E94D40805C021 +:1019600019BC1092E4010E94E2088091E10080FF1E +:1019700019C08091E20080FF15C08091E2008E7F47 +:101980008093E2008091E20080618093E200809188 +:10199000D80080628093D80019BC85E08093E40170 +:1019A0000E94E6088091E10084FF30C08091E2004F +:1019B00084FF2CC080E189BD82E189BD09B400FEAD +:1019C000FDCF8091D8008F7D8093D8008091E10079 +:1019D0008F7E8093E1008091E2008F7E8093E20011 +:1019E0008091E20081608093E2008091E001882391 +:1019F00011F084E007C08091E30087FD02C081E020 +:101A000001C083E08093E4010E94E8088091E10036 +:101A100083FF29C08091E20083FF25C08091E1000F +:101A2000877F8093E10082E08093E4011092E001DF +:101A30008091E1008E7F8093E1008091E2008E7FB3 +:101A40008093E2008091E20080618093E20042E0B6 +:101A500060E080E00E94710B8091F00088608093CC +:101A6000F0000E94E508FF91EF91BF91AF919F9127 +:101A70008F917F916F915F914F913F912F910F9037 +:101A80000FBE0F901F9018951F920F920FB60F92D6 +:101A900011242F933F934F935F936F937F938F9373 +:101AA0009F93AF93BF93CF93DF93EF93FF93C09137 +:101AB000E900CF708091EC00D82FD17080FDD0E884 +:101AC0001092E9008091F000877F8093F000789475 +:101AD0000E94880D1092E9008091F0008860809348 +:101AE000F000CD2BCF70C093E900FF91EF91DF9113 +:101AF000CF91BF91AF919F918F917F916F915F91A6 +:101B00004F913F912F910F900FBE0F901F901895FE +:101B10001F93CF93DF93CDB7DEB7AA970FB6F89494 +:101B2000DEBF0FBECDBFE5EEF1E088E08E0F9091F5 +:101B3000F10091938E13FBCF0E9404098091E8007D +:101B400083FF1FC18091E5019091E601492F50E08C +:101B50004A30510508F015C1FA01EA5AFF4F0C94BA +:101B60008323803881F0823809F00BC18091E9012C +:101B70008F708093E9008091EB0085FB882780F9C6 +:101B80001092E90006C08091E1019091E20191116B +:101B900082609091E800977F9093E8008093F10035 +:101BA0001092F100C8C0282F2D7F09F0EAC08823C9 +:101BB00019F0823061F0E5C08091E701813009F0D1 +:101BC000E0C0933009F080E08093E2012BC0809167 +:101BD000E701811127C08091E9018F7009F4D1C01C +:101BE0008093E9002091EB0020FF1CC0933021F48A +:101BF0008091EB00806214C09091EB009061909313 +:101C0000EB0021E030E0A90102C0440F551F8A9586 +:101C1000E2F74093EA001092EA008091EB008860BE +:101C20008093EB001092E9008091E800877F86C0E6 +:101C30008111A7C01091E7011F778091E3008078A0 +:101C4000812B8093E3008091E800877F8093E800F8 +:101C50000E94A60B8091E80080FFFCCF8091E300FA +:101C600080688093E300111102C082E001C083E02C +:101C70008093E40186C08058823008F082C0809151 +:101C8000E7019091E8018C3D53E0950779F583E0F9 +:101C90008A838AE289834FB7F894DE01139620E0A5 +:101CA0003EE051E2E32FF0E050935700E49120FF33 +:101CB00003C0E295EF703F5FEF708E2F90E0EA3047 +:101CC00010F0C79601C0C0968D939D932F5F24316D +:101CD00049F74FBF8091E800877F8093E8006AE270 +:101CE00070E0CE0101960E94AD0A14C0AE014F5FB4 +:101CF0005F4F6091E9010E94F409BC01892B09F44E +:101D000040C09091E800977F9093E80089819A8184 +:101D10000E94100B8091E8008B778093E80031C01F +:101D2000803879F58091E800877F8093E800809182 +:101D3000E0018093F1008091E8008E778093E800C5 +:101D40000E94A60B1EC081111CC09091E701923029 +:101D5000C0F48091E800877F8093E8009093E001D1 +:101D60000E94A60B8091E001811106C08091E300E2 +:101D700087FD02C081E001C084E08093E4010E94FD +:101D8000F0088091E80083FF0AC08091E800877F17 +:101D90008093E8008091EB0080628093EB00AA962C +:101DA0000FB6F894DEBF0FBECDBFDF91CF911F916C +:101DB00008950895CF938091E4018823A1F0C09104 +:101DC000E900CF709091EC00892F817090FD80E840 +:101DD000C82B1092E9008091E80083FD0E94880DD5 +:101DE000CF70C093E900CF910895909369018093DB +:101DF00068010895E0916801F0916901309721F040 +:101E00000190F081E02D099480E00895E09168014F +:101E1000F0916901309721F00280F381E02D09945F +:101E20000895E0916801F0916901309721F00480F4 +:101E3000F581E02D099408952091660130916701A4 +:101E40008217930771F09093670180936601E09188 +:101E50006801F0916901309721F00680F781E02D4B +:101E600009940895209164013091650182179307C8 +:101E700071F09093650180936401E0916801F091A5 +:101E80006901309721F00084F185E02D09940895CF +:101E900008950C94480F0E945E1B0E940B040C9442 +:101EA000241CCF92DF92EF92FF920F931F93CF9358 +:101EB000DF93CDB7DEB72B970FB6F894DEBF0FBE1A +:101EC000CDBF0E9423048BE6C82E81E0D82E00E00F +:101ED00010E0E02E802F0E941105F60141916F0164 +:101EE000F42EF826B1F40F5F1F4F0E30110589F75D +:101EF0008FEF89838A831B820E94671B8160782F02 +:101F00009D838C8349815A816B818D810E94F40F5E +:101F100040C09091CD0191FF04C08B870E941705AE +:101F20008B8520E030E04F2D50E0922FBA01022E39 +:101F300002C0759567950A94E2F760FF24C02E836E +:101F4000EF8221E030E0690102C0CC0CDD1C9A95E3 +:101F5000E2F790E08C219D21892B09F420E028876D +:101F60000E94671B8160782F9A8789874E815F81E5 +:101F700068858A850E94F40FF801E559FE4F80813B +:101F8000C826C08206C02F5F3F4F2630310569F654 +:101F9000AACF0E940B1F10916A010E94FA0E181717 +:101FA000A1F00E94FA0E80936A012B960FB6F89466 +:101FB000DEBF0FBECDBFDF91CF911F910F91FF907C +:101FC000EF90DF90CF900C94F3072B960FB6F89418 +:101FD000DEBF0FBECDBFDF91CF911F910F91FF905C +:101FE000EF90DF90CF900895CF93DF93CDB7DEB71A +:101FF0002B970FB6F894DEBF0FBECDBF4F83588727 +:1020000069877A878B87DE01119686E0FD01119240 +:102010008A95E9F785E0FE01379601900D928A9541 +:10202000E1F749815A816B817C818D819E810E947B +:1020300024172B960FB6F894DEBF0FBECDBFDF91ED +:10204000CF9108950895CF93882309F4C2C0C82F73 +:10205000823859F40E94FA0E81FDBBC089E30E94C8 +:10206000CD190E949A1A89E30CC0833879F40E9432 +:10207000FA0E80FDAEC083E50E94CD190E949A1A27 +:1020800083E50E940F1ACF910C949A1A843859F460 +:102090000E94FA0E82FD9DC087E40E94CD190E9425 +:1020A0009A1A87E4EECF8CEF8C0F813A48F48C2F8C +:1020B0000E944E2181118DC08C2F0E94CD19E3CF3B +:1020C00080E28C0F883048F4C77081E001C0880F2F +:1020D000CA95EAF70E94531AD6CF8BE58C0F83304E +:1020E00078F4C53A29F0C63A31F083E890E005C0AB +:1020F00081E890E002C082E890E0CF910C941C0F40 +:1021000088E58C0F833108F064C0C83A39F1C93AC8 +:1021100041F1CA3A49F1CB3A51F1CC3A59F1CD3AB1 +:1021200061F1C03B69F1CE3A71F1CF3A79F1C13B2F +:1021300081F1C23B89F1C33B91F1C43B99F1C53BAD +:10214000A1F1C63BA9F1C73BB1F1C83BB9F1C93B0D +:10215000C1F1CA3BC9F180E090E038C082EE90E066 +:1021600035C089EE90E032C08AEE90E02FC085EB5A +:1021700090E02CC086EB90E029C087EB90E026C071 +:102180008CEC90E023C08DEC90E020C083E891E0DF +:102190001DC08AE891E01AC082E991E017C084E985 +:1021A00091E014C081E292E011C083E292E00EC09F +:1021B00084E292E00BC085E292E008C086E292E001 +:1021C00005C087E292E002C08AE292E0CF910C94CF +:1021D000320FCF910895882309F44BC0823859F407 +:1021E0000E94FA0E81FF45C089E30E94CD190E942A +:1021F0009A1A89E30CC0833871F40E94FA0E80FFAA +:1022000038C083E50E94CD190E949A1A83E50E9486 +:102210000F1A0C949A1A843859F40E94FA0E82FF0D +:1022200028C087E40E94CD190E949A1A87E4EFCF54 +:102230009CEF980F913A58F390E2980F983050F431 +:10224000877091E001C0990F8A95EAF7892F0E9463 +:10225000591ADFCF9BE5980F933020F480E090E08F +:102260000C941C0F885A833120F480E090E00C9489 +:10227000320F0895882321F00E94531A0C949A1A61 +:102280000895882321F00E94591A0C949A1A0895EF +:10229000BF92CF92DF92EF92FF920F931F93CF9353 +:1022A000DF9300D000D000D0CDB7DEB725E0FC0131 +:1022B000DE01119601900D922A95E1F7FC01D08084 +:1022C00011810281258122952F7043815481452BF4 +:1022D00009F4FCC21F3F21F4FFEFDF1609F4F6C238 +:1022E0007C012E830E942210D9821A8369817A810F +:1022F000802F0E94C919182FB92E0E947E190E94A2 +:1023000045182E81002319F00E94701A2E81EB2DA2 +:10231000E295EF70F0E0E05AFF4F0C9483238B2D91 +:10232000807F9B2D9F70F92E882319F0F29480EF07 +:10233000F822002389F0FF2009F475C280E2810FA2 +:10234000883020F48F2D0E94531A03C08F2D0E94D5 +:10235000631A0E949A1A67C2812F0E94EB10FF2015 +:1023600009F4B4C2105E8F2D183018F40E94591A67 +:1023700002C00E94691A26960FB6F894DEBF0FBEFF +:10238000CDBFDF91CF911F910F91FF90EF90DF9024 +:10239000CF90BF900C949A1A3B2D307F8B2D8F706D +:1023A000303211F08295807F112319F0113021F124 +:1023B0002CC00023B9F0222309F4A0C1213009F078 +:1023C0009DC126960FB6F894DEBF0FBECDBFDF913C +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C94831A222319F0213009F46FC28E83D2 +:1023F0000E94861A8E8196C1002321F0223008F0B7 +:1024000065C27CC1211162C28DC1002321F022234B +:1024100009F474C108C2222309F484C119C22B2D06 +:1024200026952695237030E02115310521F02130C5 +:102430003105D1F04BC2002321F0812F9B2D9370E9 +:1024400002C080E090E026960FB6F894DEBF0FBE83 +:10245000CDBFDF91CF911F910F91FF90EF90DF9053 +:10246000CF90BF900C941C0F002321F0812F9B2D47 +:10247000937002C080E090E026960FB6F894DEBF1D +:102480000FBECDBFDF91CF911F910F91FF90EF90C5 +:10249000DF90CF90BF900C94320F812F002319F062 +:1024A0000E94131E02C00E947B1E26960FB6F8944F +:1024B000DEBF0FBECDBFDF91CF911F910F91FF9077 +:1024C000EF90DF90CF90BF900C94001F8B2D837006 +:1024D00009F07BC00111FAC1812F82958695877022 +:1024E000880F880F912F9F70C92ED12CE12CF12CD1 +:1024F000082E04C0CC0CDD1CEE1CFF1C0A94D2F785 +:1025000014FF12C04FE050E060E070E004C0440FE0 +:10251000551F661F771F8A95D2F7CB01BA016095C8 +:1025200070958095909503C060E070E0CB012B2DF5 +:10253000269526952370422F50E042305105D9F060 +:102540004330510569F16C297D298E299F2941303D +:10255000510551F126960FB6F894DEBF0FBECDBFE0 +:10256000DF91CF911F910F91FF90EF90DF90CF906F +:10257000BF900C946C186C297D298E299F29269672 +:102580000FB6F894DEBF0FBECDBFDF91CF911F9184 +:102590000F91FF90EF90DF90CF90BF900C94881830 +:1025A0000E946C18C701B60126960FB6F894DEBFDC +:1025B0000FBECDBFDF91CF911F910F91FF90EF9094 +:1025C000DF90CF90BF900C945018002319F08B2D02 +:1025D000817001C08695882309F478C1812F829586 +:1025E00086958770880F880F912F9F70C92ED12CE8 +:1025F000E12CF12C082E04C0CC0CDD1CEE1CFF1CC1 +:102600000A94D2F714FF12C04FE050E060E070E08F +:1026100004C0440F551F661F771F8A95D2F7CB0160 +:10262000BA01609570958095909503C060E070E068 +:10263000CB012B2D269526952370422F50E042305A +:102640005105D9F04330510569F16C297D298E2956 +:102650009F294130510551F126960FB6F894DEBFFF +:102660000FBECDBFDF91CF911F910F91FF90EF90E3 +:10267000DF90CF90BF900C9446196C297D298E294C +:102680009F2926960FB6F894DEBF0FBECDBFDF910F +:10269000CF911F910F91FF90EF90DF90CF90BF905F +:1026A0000C9462190E944619C701B60126960FB60E +:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 +:1026C000FF90EF90DF90CF90BF900C942A19103FAD +:1026D000D1F118F4103E50F4A1C0123F09F463C0C8 +:1026E00008F44CC0133F09F473C098C01F708B2DC1 +:1026F0008F710023A1F00E94C318812F26960FB678 +:10270000F894DEBF0FBECDBFDF91CF911F910F9127 +:10271000FF90EF90DF90CF90BF900C943A110E9401 +:10272000E418812F26960FB6F894DEBF0FBECDBFFA +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:10274000BF900C9441110023A9F02111BFC08B2D23 +:102750008F7126960FB6F894DEBF0FBECDBFDF9106 +:10276000CF911F910F91FF90EF90DF90CF90BF908E +:102770000C940919223008F0A9C0E9CF0023A9F070 +:102780008B2D8F7126960FB6F894DEBF0FBECDBF8E +:10279000DF91CF911F910F91FF90EF90DF90CF903D +:1027A000BF900C94C318002359F38B2D8F7126967C +:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152 +:1027C0000F91FF90EF90DF90CF90BF900C94E418A2 +:1027D000002399F08B2D8F7126960FB6F894DEBFEB +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C94AE1826960FB6F89449 +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF90BF900C94A4180023A9F004 +:10282000222309F4ADCF812F26960FB6F894DEBF90 +:102830000FBECDBFDF91CF911F910F91FF90EF9011 +:10284000DF90CF90BF900C942310222309F4ADCFDA +:10285000812F26960FB6F894DEBF0FBECDBFDF9155 +:10286000CF911F910F91FF90EF90DF90CF90BF908D +:102870000C94EB104B2D4F70612FC7010E94AB02DF +:1028800026960FB6F894DEBF0FBECDBFDF91CF9175 +:102890001F910F91FF90EF90DF90CF90BF900C941D +:1028A000C8174B2D4F70612FC70126960FB6F894AD +:1028B000DEBF0FBECDBFDF91CF911F910F91FF9073 +:1028C000EF90DF90CF90BF900C94180526960FB62E +:1028D000F894DEBF0FBECDBFDF91CF911F910F9156 +:1028E000FF90EF90DF90CF90BF9008950E94701AF4 +:1028F0000E94801A0E94451A0E949A1A0E94B11FD3 +:102900000E94001F80E090E00E941C0F80E090E099 +:102910000C94320F0E94601A0C9476140E94BE1917 +:10292000292F22952F7030E02C3031054CF42A30BD +:1029300031056CF4225031092230310588F407C08A +:102940002C30310549F02F30310531F009C0803E7F +:1029500048F0803F29F406C093FB882780F908954A +:1029600080E0089581E00895CF93DF9300D000D0F8 +:102970001F92CDB7DEB70F900F900F900F900F9072 +:10298000DF91CF910895CF93DF9300D000D000D096 +:10299000CDB7DEB726960FB6F894DEBF0FBECDBF1B +:1029A000DF91CF9108951F93CF93DF93C091790169 +:1029B00016E080917A01C81799F0D0E01C9FF001D1 +:1029C0001D9FF00D1124E558FE4F40815181628119 +:1029D0007381848195810E94C3142196C770E9CFC9 +:1029E000DF91CF911F9108954091AB015091AC01BF +:1029F0006091AD017091AE018091AF019091B001F5 +:102A00000C94C3148091B00182958F7009F054C06A +:102A10008091AD01882309F44FC080917901A09184 +:102A20007A016091AB017091AC014091AE0150917F +:102A3000AF01B6E08A1709F43FC090E04115510597 +:102A4000C1F17F3F11F46F3FA1F1B89FF001B99F31 +:102A5000F00D1124E558FE4F218172132AC0208108 +:102A6000621327C02281211124C0238134812417BD +:102A7000350710F421503109241B350B283C310552 +:102A8000C0F42091B0012F7020612093B00126E0A6 +:102A9000289FF001299FF00D1124E058FE4F8081FE +:102AA0008F70806180838BEA91E00E9448110C94C2 +:102AB000D31401968770BECF0895CF92DF92EF9224 +:102AC000FF920F931F93CF93DF93CDB7DEB762973B +:102AD0000FB6F894DEBF0FBECDBF8C0185E0F801C4 +:102AE000DE011D9601900D928A95E1F7D8014C9177 +:102AF00011965C91119712966C9112971396CD9046 +:102B0000DC9014973091AB017091AC018091AE01D3 +:102B10009091AF01009709F46BC17F3F19F43F3FDB +:102B200009F466C1E090AD01EE2009F4C0C0209127 +:102B3000B001C816D90628F0F601E81BF90BCF0141 +:102B400004C0809590958C0D9D1DFF24F394883CC6 +:102B5000910578F0F12C207F09F0C6C07C2DD98A30 +:102B6000C88A89890E94B4148BEA91E00E944811B6 +:102B7000B1C0822F807F09F046C0751314C0341392 +:102B800012C0611110C02F7020612093B0010E940B +:102B9000F4148BEA91E00E9448118091B001D801B1 +:102BA00015968C932EC0CD2819F15F3F11F44F3F3D +:102BB000F9F0F62E61111CC08091790120917A0103 +:102BC00036E0821709F45AC090E0389FF001399F2F +:102BD000F00D1124E558FE4F7181571306C0708126 +:102BE000471303C07281711103C001968770E9CF4A +:102BF000F62E662309F418C18091B001816080939C +:102C0000B001F12C11C1751308C0341306C0611155 +:102C100004C08091B001D801C3C04D875E878D8507 +:102C20009E856A8B0E948E146A898823E1F166234F +:102C3000D1F12091B001822F82958F7090E00297A0 +:102C400074F08091AB019091AC0198878F831986C5 +:102C5000DB86CA862C87CE0107960E94481186E043 +:102C6000F801ABEAB1E001900D928A95E1F70E947C +:102C700002150E94F414FF24F394D6C04D875E879A +:102C80008D859E850E94BE19292F22952F7030E0D8 +:102C9000223031050CF0BCC09F7009F0B6C0805ED8 +:102CA000883008F4C1C0C8010E944811E4CFC8169A +:102CB000D90608F453C0F601E81BF90BCF01883C94 +:102CC000910508F450C0F12C7C2DD98AC88A8989D5 +:102CD0000E94B414EBEAF1E086E0DF011D928A95D0 +:102CE000E9F70E94F414A0C0751314C0341312C085 +:102CF000611110C08091B001F8018583C8010E9464 +:102D0000481186E0EBEAF1E0DF011D928A95E9F7D0 +:102D1000FE2C8AC04D875E878D859E856A8B0E94BA +:102D20008E146A89882309F4BECF662309F4BBCFC9 +:102D30002091B001822F82958F7090E002970CF461 +:102D40008ECF8091AB019091AC019A8389831B82D5 +:102D5000DD82CC822E83CE0101967FCF8095909527 +:102D60008C0D9D1DACCFF62E662309F49CCF7513F8 +:102D70002EC034132CC02091B00120FD1FC0822F23 +:102D800082958F70D9F0D80115962C9315978F30B6 +:102D900049F08F5F982F9295907F822F8F70892BAB +:102DA00015968C93C8010E94481186E0F801ABEAA1 +:102DB000B1E001900D928A95E1F793CF86E0F8019A +:102DC000ABEAB1E001900D928A95E1F72DC04D87F5 +:102DD0005E878D859E850E948E14811140CF8091E3 +:102DE000B00181608093B001C8010E9448111CC0ED +:102DF000662309F458CF4D875E878D859E850E9496 +:102E00008E14882309F44FCF2ACF811148CF0CC0EC +:102E1000243031050CF047CF9F7009F440CFF80102 +:102E20009581907F09F03BCF8F2D62960FB6F89475 +:102E3000DEBF0FBECDBFDF91CF911F910F91FF90ED +:102E4000EF90DF90CF9008951F93CF93DF93CDB78E +:102E5000DEB72C970FB6F894DEBF0FBECDBF4F8301 +:102E6000588769877A878B879C87CE0107960E944F +:102E70005D15882369F08F8198852A853B85232BF2 +:102E8000F1F19F3F09F063C08F3F09F060C037C088 +:102E900086E0FE013796DE01119601900D928A952B +:102EA000E1F76F817885EA85FB85309741F17F3FB7 +:102EB00011F46F3F21F120917A0130E0C9010196B0 +:102EC000877099274091790150E08417950709F49C +:102ED00047C069837A83FD83EC8396E0929FD0019B +:102EE000939FB00D1124A558BE4FFE01319601905D +:102EF0000D929A95E1F780937A010E94D31416E01F +:102F00008091790190917A018917C1F1189FC001D0 +:102F1000112485589E4F0E945D15882379F1E09118 +:102F200079011E9FF0011124E558FE4F4081518127 +:102F300062817381848195810E94C314809179019B +:102F400090E001968770992780937901D9CF4F81BE +:102F5000588569857A858B859C850E94C314CFCF5F +:102F60000E948A1410927A0110927901EBEAF1E042 +:102F700086E0DF011D928A95E9F7C1CF2C960FB646 +:102F8000F894DEBF0FBECDBFDF91CF911F910895A2 +:102F9000EF92FF920F931F93CF93DF938C01892BB6 +:102FA00009F46CC0F12CEE24E394E8012196F801B9 +:102FB0008491843740F4843008F051C0813081F02E +:102FC000823019F15BC0853709F444C0A8F19CE751 +:102FD000980F903708F052C08F770E94EB1041C0D5 +:102FE0000E5F1F4FFE01C49180E28C0F883048F4C1 +:102FF000C7708E2D01C0880FCA95EAF70E94731A18 +:1030000014C08C2F0E9423102DC00E5F1F4FFE0195 +:10301000C49180E28C0F883058F4C7708E2D01C0A7 +:10302000880FCA95EAF70E94791A0E949A1A1AC064 +:103030008C2F0E94EB1016C00E5F1F4FFE01C49133 +:10304000CC2381F08FE99FE00197F1F700C00000E9 +:10305000C150F6CF0E5F1F4FFE01F49003C00E94D7 +:1030600023108E018F2D882309F49FCFEFE9FFE015 +:103070003197F1F700C000008150F5CFDF91CF917B +:103080001F910F91FF90EF90089508956093B501FF +:103090007093B6018093B7019093B8010C947614A5 +:1030A0000F931F930091B5011091B6012091B701C4 +:1030B0003091B801DC01CB01802B912BA22BB32BDB +:1030C0008093B5019093B601A093B701B093B80176 +:1030D0001F910F910C9476140F931F930091B501DB +:1030E0001091B6012091B7013091B801DC01CB01FC +:1030F00080239123A223B3238093B5019093B6013B +:10310000A093B701B093B8011F910F910C9476145E +:103110000F931F930091B5011091B6012091B70153 +:103120003091B801DC01CB0180279127A227B3277A +:103130008093B5019093B601A093B701B093B80105 +:103140001F910F910C9476141092B1011092B2015C +:103150001092B3011092B4010C94761441E050E047 +:1031600060E070E004C0440F551F661F771F8A950A +:10317000D2F74093B1015093B2016093B3017093C1 +:10318000B4010C94761441E050E060E070E004C0BB +:10319000440F551F661F771F8A95D2F78091B101A2 +:1031A0009091B201A091B301B091B401482B592B79 +:1031B0006A2B7B2B4093B1015093B2016093B30112 +:1031C0007093B4010C94761441E050E060E070E03C +:1031D00004C0440F551F661F771F8A95D2F740958C +:1031E0005095609570958091B1019091B201A09138 +:1031F000B301B091B401482359236A237B23409340 +:10320000B1015093B2016093B3017093B4010C9477 +:10321000761441E050E060E070E004C0440F551FB8 +:10322000661F771F8A95D2F78091B1019091B20104 +:10323000A091B301B091B401482759276A277B2791 +:103240004093B1015093B2016093B3017093B40104 +:103250000C9476140F931F930091B1011091B20159 +:103260002091B3013091B401DC01CB01802B912B73 +:10327000A22BB32B8093B1019093B201A093B30121 +:10328000B093B4011F910F910C9476140F931F9378 +:103290000091B1011091B2012091B3013091B401BC +:1032A000DC01CB0180239123A223B3238093B101BE +:1032B0009093B201A093B301B093B4011F910F9109 +:1032C0000C9476140F931F930091B1011091B201E9 +:1032D0002091B3013091B401DC01CB01802791270B +:1032E000A227B3278093B1019093B201A093B301B9 +:1032F000B093B4011F910F910C9476140895CF925E +:10330000DF92EF92FF920F931F93CF93DF938C0185 +:10331000C090B501D090B601E090B701F090B8012F +:103320008091B1019091B201A091B301B091B4012B +:10333000C82AD92AEA2AFB2ACFE1D0E0D701C60160 +:103340000C2E04C0B695A795979587950A94D2F749 +:1033500080FF06C0B8018C2F0E945807019721F406 +:10336000219760F780E001C08C2FDF91CF911F91F2 +:103370000F91FF90EF90DF90CF900895CF93DF9360 +:10338000EC010E947F19BE010E945807DF91CF9186 +:103390000895CB010E94BE19089590910C019923C4 +:1033A00021F090910D01911109C020910E013091F1 +:1033B0000F01F90132969FEF40E01FC0982F9695BC +:1033C000969596959F3050F5E0910E01F0910F0182 +:1033D000E90FF11D877021E030E0A90102C0440F20 +:1033E000551F8A95E2F7CA019181892B818308953F +:1033F0009F3F39F04F5F4E3041F051915813F8CF55 +:103400000DC05111F7CF942FF5CF9F3F39F0F9013F +:10341000E90FF11D97FDFA95828308950895909123 +:103420000C01992321F090910D01911109C0209177 +:103430000E0130910F01F9013296205F3F4F1FC0FE +:10344000982F9695969596959F30F0F4E0910E0101 +:10345000F0910F01E90FF11D877021E030E0A90123 +:1034600002C0440F551F8A95E2F7CA0180959181E9 +:103470008923818308953196E217F30729F090811B +:103480009813F9CF1082F7CF089581E090E0E09192 +:103490000E01F0910F01E80FF91F108201968031A3 +:1034A0009105A9F708959091CC01892B8093CC01C7 +:1034B000089580959091CC0189238093CC01089543 +:1034C0001092CC0108959091CB01892B8093CB0170 +:1034D000089580959091CB0189238093CB01089525 +:1034E0001092CB0108959091CA01892B8093CA0153 +:1034F000089580959091CA0189238093CA01089507 +:103500001092CA0108958093B90108951092B901EB +:10351000089580910E0190910F01FC0131969C015C +:10352000205F3F4F80E0919191118F5FE217F30789 +:10353000D1F70895E0910E01F0910F018091CC0137 +:103540008083E0910E01F0910F0190818091CB0179 +:10355000892B8083E0910E01F0910F019081809181 +:10356000CA01892B80838091B901882361F0E091A1 +:103570000E01F0910F019081892B80830E94891A9E +:1035800081111092B90180910E0190910F010C945C +:10359000060FCF92DF92EF92FF926C01EE24FF2490 +:1035A000C114D104E104F10421F0C701B60120E106 +:1035B00001C020E0C72ED82EE92EFF24C114D1046B +:1035C000E104F10419F0285FC701B6016B017C0129 +:1035D00054E0F694E794D794C7945A95D1F7C11460 +:1035E000D104E104F10419F02C5FC701B6016B01AD +:1035F0007C0142E0F694E794D794C7944A95D1F7BA +:10360000C114D104E104F10419F02E5FC701B60121 +:10361000DC01CB01B695A79597958795892B8A2BC9 +:103620008B2B09F02F5F822FFF90EF90DF90CF90D0 +:1036300008958091E401843021F11092CE0120E4BC +:1036400088E190E00FB6F894A895809360000FBED3 +:103650002093600080E00E94F30783B7817F84603D +:1036600083BF83B7816083BF7894889583B78E7F4B +:1036700083BF88E10FB6F8948093600010926000D9 +:103680000FBE089508950895CF930E94421B0E9493 +:1036900023040E94431BC0E08C2F0E94110581115E +:1036A00004C0CF5FCE30C1F701C081E0CF91089553 +:1036B0000E948A140E94FA0E0C94F30782E084BDE3 +:1036C00093E095BD9AEF97BD80936E0008952FB754 +:1036D000F8948091CF019091D001A091D101B09147 +:1036E000D2012FBF0895CF92DF92EF92FF920F93F6 +:1036F0001F932FB7F8944091CF015091D001609162 +:10370000D1017091D2012FBF6A017B01EE24FF2409 +:103710008C0120E030E0C016D106E206F30610F47A +:10372000415051099A01281B390BC9011F910F9172 +:10373000FF90EF90DF90CF9008951F920F920FB6F9 +:103740000F9211248F939F93AF93BF938091CF01DA +:103750009091D001A091D101B091D2010196A11D0B +:10376000B11D8093CF019093D001A093D101B0936C +:10377000D201BF91AF919F918F910F900FBE0F908B +:103780001F9018950E94F70BF8942FEF87EA91E6A7 +:10379000215080409040E1F700C0000087E090EBAE +:1037A000DC018093EE019093EF01A093F001B093C0 +:1037B000F1019CE088E10FB6F894A8958093600031 +:1037C0000FBE90936000FFCFEF92FF920F931F9375 +:1037D000CF93DF93D82FC0E08C2F0E94110500E01B +:1037E00010E0E82EF12CC701002E02C095958795B8 +:1037F0000A94E2F780FD06C00F5F1F4F06301105E7 +:1038000091F709C0602F7C2F80E00E941905D81322 +:10381000F3CF81E004C0CF5FCE30F1F680E0DF91DE +:10382000CF911F910F91FF90EF900895CF93C82FE4 +:103830008CE20E94E41B882321F08C2FCF910C9402 +:10384000E41B80E0CF910895CF930E946B1D8111FE +:1038500002C00E94511DC5E6C15049F00E942304D8 +:103860008FE39CE90197F1F700C00000F5CF89E2F2 +:103870000E94161C811113C18AE20E94161C81113C +:103880000E94511D85E00E94161C81110E94C21BDE +:103890000E94761D8093CD0187E00E94161C88232C +:1038A000A9F18BE10E94161C882351F08091CD0173 +:1038B00081FB222720F991E0922790FB81F90EC02D +:1038C0008EE00E94161C882361F08091CD0182FB5E +:1038D000222720F991E0922790FB82F98093CD0175 +:1038E00015C080E10E94161C9091CD01882341F003 +:1038F00093FB222720F981E0822780FB93F904C003 +:10390000892F809580FB90F99093CD018091CD0116 +:103910000E947A1D0E94881D8093ED0180EE0E9416 +:10392000161C882341F08091ED01982F909590FB13 +:1039300080F98093ED0189E30E94161C882359F0D9 +:103940008091ED0181FB222720F991E0922790FBE5 +:1039500081F98093ED0182EE0E94161C882359F0B4 +:103960008091ED0182FB222720F991E0922790FBC4 +:1039700082F98093ED0186EE0E94161C882359F08F +:103980008091ED0183FB222720F991E0922790FBA3 +:1039900083F98093ED0183EE0E94161C882359F071 +:1039A0008091ED0184FB222720F991E0922790FB82 +:1039B00084F98093ED0185E30E94161C882359F059 +:1039C0008091ED0185FB222720F991E0922790FB61 +:1039D00085F98093ED0181E30E94161C882359F03C +:1039E0008091ED0186FB222720F991E0922790FB40 +:1039F00086F98093ED0181E10E94161C882359F01D +:103A00008091ED0187FB222720F991E0922790FB1E +:103A100087F98093ED018091ED010E948C1D8091CA +:103A2000ED0187FB882780F980930D0187E20E94D2 +:103A3000161CC82F8EE10E94161C8111C2608FE1F6 +:103A40000E94161C8111C46080E20E94161C811124 +:103A5000C86081E20E94161C8111C06182E20E944E +:103A6000161C8111C06283E20E94161C8111C06481 +:103A700084E20E94161C882311F0C06802C0CC2387 +:103A800029F08C2F0E94831D6C2F03C00E947F1D84 +:103A9000682F70E080E090E0CF910C944618CF91B1 +:103AA00008956DEE7EEF80E090E00E94BD2360E01F +:103AB00082E090E00E94AB2360E083E090E00E940F +:103AC000AB2360E084E090E00E94AB2360E085E0FF +:103AD00090E00C94AB2380E090E00E94A52321E0CD +:103AE0008D3E9E4F09F020E0822F089582E090E005 +:103AF0000C949D23682F82E090E00C94AB2383E02C +:103B000090E00C949D23682F83E090E00C94AB230D +:103B100084E090E00C949D23682F84E090E00C9466 +:103B2000AB238091D50180FF0BC06091130185E02C +:103B3000689FB001112475956795759567952BC0A1 +:103B400081FF09C06091130185E0689FB0011124D5 +:103B50007595679520C082FF07C06091130185E0CD +:103B6000689FB001112417C09091D6019923D1F01C +:103B700060911201961788F72091130185E0289F24 +:103B800090011124929FA001939F500D112470E089 +:103B9000CA010E946F236038710540F461157105F8 +:103BA00039F002C065E070E0862F08958FE7089530 +:103BB00081E008958091D50180FF08C060911101D6 +:103BC00070E0759567957595679521C081FF06C072 +:103BD0006091110170E07595679519C082FF04C06E +:103BE0006091110170E010C09091D6019923C1F04D +:103BF000609110019617A0F780911101899FC00173 +:103C0000112470E00E946F236038710528F461155B +:103C1000710521F0862F08958FE7089581E00895BA +:103C200061E070E0F4CF803F21F40E94911D819506 +:103C300004C0813F29F40E94911D8093D901089509 +:103C4000823F21F40E94911D819504C0833F29F495 +:103C50000E94911D8093D8010895893F19F40E9414 +:103C6000DA1D05C08A3F31F40E94DA1D81958093E8 +:103C7000DA0108958B3F21F40E94DA1D819504C07A +:103C80008C3F29F40E94DA1D8093DB010895843F64 +:103C900021F48091D701816017C0853F21F4809184 +:103CA000D701826011C0863F21F48091D7018460E2 +:103CB0000BC0873F21F48091D701886005C0883F01 +:103CC00031F48091D70180618093D70108958D3FB1 +:103CD00021F48091D50181600BC08E3F21F4809149 +:103CE000D501826005C08F3F29F48091D5018460A1 +:103CF0008093D5010895803F39F48091D90187FFE1 +:103D00006CC01092D90169C0813F29F48091D9011A +:103D10001816BCF362C09091D801823F29F497FF36 +:103D20005CC01092D80159C0833F19F41916CCF326 +:103D300054C0893F41F48091DA0118160CF04DC04F +:103D40001092DA014AC08A3F29F48091DA0187FF94 +:103D500044C0F6CF8B3F39F48091DB0187FF3DC033 +:103D60001092DB013AC08C3F29F48091DB011816D8 +:103D7000BCF333C0843F21F48091D7018E7F17C0FC +:103D8000853F21F48091D7018D7F11C0863F21F4BA +:103D90008091D7018B7F0BC0873F21F48091D701A1 +:103DA000877F05C0883F31F48091D7018F7E809353 +:103DB000D70113C08D3F21F48091D5018E7F0BC0B8 +:103DC0008E3F21F48091D5018D7F05C08F3F29F46E +:103DD0008091D5018B7F8093D5018091D80181118D +:103DE0000EC08091D90181110AC08091DA01811140 +:103DF00006C08091DB01811102C01092D6010895A6 +:103E000087ED91E00E94110F0E94671B9093D401EF +:103E10008093D30108951F93CF93DF938091D301B3 +:103E20009091D4010E94731BAC019091D60199230B +:103E300021F02091140130E006C0209115018AE0A4 +:103E4000289F900111244217530708F486C08091DF +:103E5000D801C091D901D091DA011091DB01811113 +:103E600007C0C11176C0D11174C0111172C075C0E4 +:103E70009F3F19F09F5F9093D601181624F40E947B +:103E8000911D8093D8018091D80187FF05C00E94C1 +:103E9000911D81958093D8011C1624F40E94911DD8 +:103EA0008093D9018091D90187FF05C00E94911D9F +:103EB00081958093D9016091D801662339F1C09131 +:103EC000D901CC2319F1772767FD7095872F972F9C +:103ED0000E94802223E333E343E35FE30E94E42272 +:103EE0000E944D226093D8016C2F772767FD709553 +:103EF000872F972F0E94802223E333E343E35FE37E +:103F00000E94E4220E944D226093D9011D1624F4E0 +:103F10000E94DA1D8093DA018091DA0187FF05C0E3 +:103F20000E94DA1D81958093DA01111624F40E9413 +:103F3000DA1D8093DB018091DB0187FF05C00E94C1 +:103F4000DA1D81958093DB01DF91CF911F910C9455 +:103F5000001F9F3F09F08ECF96CFDF91CF911F9129 +:103F60000895E7EDF1E085E0DF011D928A95E9F71C +:103F70001092D6011092D5010895833081F128F472 +:103F8000813059F08230D1F00895853009F449C06C +:103F9000B8F1863009F456C0089580911501262F96 +:103FA00030E0280F311D2F3F310524F4680F609356 +:103FB000150108958FEF80931501089580911401E4 +:103FC000262F30E0280F311D2F3F310524F4680FD4 +:103FD0006093140108958FEF8093140108958091E8 +:103FE0001301262F30E0280F311D2F3F310524F417 +:103FF000680F6093130108958FEF80931301089564 +:1040000080911201262F30E0280F311D2F3F3105FE +:1040100024F4680F6093120108958FEF80931201CA +:10402000089580911101262F30E0280F311D2F3F78 +:10403000310524F4680F6093110108958FEF809388 +:104040001101089580911001262F30E0280F311DB5 +:104050002F3F310524F4680F6093100108958FEF0E +:10406000809310010895833011F128F4813049F0D4 +:10407000823091F00895853081F120F18630C1F1D0 +:10408000089580911501681720F4861B809315010F +:10409000089510921501089580911401681720F475 +:1040A000861B809314010895109214010895809145 +:1040B0001301681720F4861B809313010895109252 +:1040C0001301089580911201681720F4861B8093D4 +:1040D000120108951092120108958091110168173C +:1040E00020F4861B80931101089510921101089508 +:1040F00080911001681720F4861B809310010895A9 +:104100001092100108950F931F938D3109F46BC025 +:1041100008F03FC08E3009F47FC0C0F4873009F446 +:1041200069C068F4863009F0B1C08091CD01817F0B +:104130008E7F8093CD0181E08093DD01A8C088301F +:1041400009F4A2C08B3009F49FC0A0C0863109F4E5 +:104150009BC078F4803109F472C0813109F096C0B7 +:104160000E948A1490910D0181E0892780930D01AE +:104170008BC0893109F488C08B3109F087C08091E8 +:10418000CD0181FB222720F991E0922790FB81F954 +:104190004CC0853309F470C048F4873209F46CC010 +:1041A00008F459C0893209F467C070C0833438F408 +:1041B0008A3308F04EC0883309F466C067C0833480 +:1041C00009F45AC0883409F061C00E948A140FEFC4 +:1041D00013ED20E3015010402040E1F700C0000043 +:1041E0000E94C21B51C00E9407220E94FA0E0E9428 +:1041F000F3074AC09091CD01892F8095817080FB93 +:1042000090F929F0966098609093CD0140C0997F15 +:10421000977F9093CD0138C08091CD0182FB2227FA +:1042200020F991E0922790FB82F98093CD019923A8 +:1042300059F18091CD0181608093CD0125C080919D +:10424000CD0183FB222720F991E0922790FB83F98F +:10425000ECCF895301C08D5141E050E060E070E047 +:104260008A019B0104C0000F111F221F331F8A9572 +:10427000D2F7C901B80104C061E070E080E090E0CD +:104280000E9446180E948A1481E001C080E01F91BC +:104290000F91089580E0089580E00895CF93C82F8E +:1042A0008091DD01813079F018F08230E9F187C02A +:1042B000E0910E01F0910F018081813169F082322D +:1042C00009F07FC009C0E0910E01F0910F018081DB +:1042D000813111F0823261F48C2F0E944A218111C8 +:1042E00004C08C2F0E9483201DC081E090E01AC082 +:1042F0008C2F0E944C21811114C0C43179F048F4F4 +:10430000CB3079F0C03109F060C082E08093DD01EC +:1043100008C0C93219F0C83321F057C01092DD012E +:1043200054C081E0817053C0C93289F118F5C4319D +:1043300071F1A8F4C73009F046C08AE080931501F6 +:1043400094E19093140193E09093130180931201F0 +:1043500088E08093110188E28093100134C0CE512F +:10436000C63088F5EC2FF0E0E65DFE4F808180934B +:10437000DC0129C0CE34E9F020F4CB3421F56AE029 +:1043800013C0C13579F0C235F1F461E00DC0809100 +:10439000DC01882319F01092DC0115C081E08093C4 +:1043A000DD0115C061E006C08091DC010E94BD1FE7 +:1043B0000AC06AE08091DC010E94332004C01092A0 +:1043C000DD0180E004C081E002C080E0ABCFCF918E +:1043D0000895E1E8F0E080818860808380818160D9 +:1043E00080838FB7F89493E09093890090ED909339 +:1043F00088008FBF0895EFE6F0E0808182608083BF +:104400000895EFE6F0E080818D7F80830895EFE6E8 +:10441000F0E0908182E08927808308951F920F92B7 +:104420000FB60F9211242F933F934F935F936F9387 +:104430007F938F939F93AF93BF93EF93FF9380915D +:10444000DE019091DF0101969093DF018093DE0100 +:10445000811103C082E00E94F307E091DF01E6953D +:10446000E695F0E0E657FB4FE4918091DE018E1374 +:1044700003C080E00E94F307FF91EF91BF91AF91DD +:104480009F918F917F916F915F914F913F912F916C +:104490000F900FBE0F901F90189504D06894B11123 +:1044A0008DC0089570D088F09F5790F0B92F99274C +:1044B000B751A0F0D1F0660F771F881F991F1AF02F +:1044C000BA95C9F712C0B13081F077D0B1E0089544 +:1044D00074C0672F782F8827B85F39F0B93FCCF3C5 +:1044E000869577956795B395D9F73EF49095809525 +:1044F000709561957F4F8F4F9F4F0895E89409C045 +:1045000097FB3EF490958095709561957F4F8F4F06 +:104510009F4F9923A9F0F92F96E9BB279395F6951C +:10452000879577956795B795F111F8CFFAF4BB0F9A +:1045300011F460FF1BC06F5F7F4F8F4F9F4F16C0FE +:10454000882311F096E911C0772321F09EE8872F88 +:10455000762F05C0662371F096E8862F70E060E044 +:104560002AF09A95660F771F881FDAF7880F9695BD +:10457000879597F9089557FD9058440F551F59F0A6 +:104580005F3F71F04795880F97FB991F61F09F3F40 +:1045900079F087950895121613061406551FF2CF69 +:1045A0004695F1DF08C0161617061806991FF1CFB9 +:1045B00086957105610508940895E894BB276627E0 +:1045C0007727CB0197F908950BD078C069D028F0F0 +:1045D0006ED018F0952309F05AC05FC01124EECFB9 +:1045E000CADFA0F3959FD1F3950F50E0551F629F4E +:1045F000F001729FBB27F00DB11D639FAA27F00D3C +:10460000B11DAA1F649F6627B00DA11D661F829F62 +:104610002227B00DA11D621F739FB00DA11D621F47 +:10462000839FA00D611D221F749F3327A00D611D64 +:10463000231F849F600D211D822F762F6A2F112446 +:104640009F5750408AF0E1F088234AF0EE0FFF1F99 +:10465000BB1F661F771F881F91505040A9F79E3FD0 +:10466000510570F014C0AACF5F3FECF3983EDCF325 +:10467000869577956795B795F795E7959F5FC1F70D +:10468000FE2B880F911D9695879597F9089597F9B8 +:104690009F6780E870E060E008959FEF80EC0895E8 +:1046A00000240A9416161706180609060895002411 +:1046B0000A9412161306140605060895092E03948B +:1046C000000C11F4882352F0BB0F40F4BF2B11F4FF +:1046D00060FF04C06F5F7F4F8F4F9F4F089597FB20 +:1046E000072E16F4009407D077FD09D00E94892385 +:1046F00007FC05D03EF4909581959F4F08957095E5 +:1047000061957F4F0895EE0FFF1F0590F491E02D06 +:104710000994AA1BBB1B51E107C0AA1FBB1FA61708 +:10472000B70710F0A61BB70B881F991F5A95A9F75A +:1047300080959095BC01CD010895F999FECF92BD69 +:1047400081BDF89A992780B50895A8E1B0E042E0CC +:1047500050E00C94C523262FF999FECF92BD81BD60 +:10476000F89A019700B4021639F01FBA20BD0FB6AF +:10477000F894FA9AF99A0FBE08950196272F0E948D +:10478000AC230C94AB23DC01CB01FC01F999FECFE7 +:1047900006C0F2BDE1BDF89A319600B40D924150C9 +:0A47A0005040B8F70895F894FFCFD9 +:1047AA002002F507830860082C08F8070101BA01FE +:1047BA0028080A03140A3F4D36394B04FE03C8037E +:1047CA008F0322033B0354036D030102030405060E +:0447DA0007080900C3 +:00000001FF -- cgit v1.2.3 From ca9b85f7021ed1338de5af0fd30c6095522a1197 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 28 Apr 2016 20:06:43 -0700 Subject: Bring the clueboard firmware size down --- keyboard/clueboard1/Makefile | 11 ++++++----- keyboard/clueboard2/Makefile | 13 +++++++------ keyboard/cluepad/Makefile | 6 +++--- 3 files changed, 16 insertions(+), 14 deletions(-) (limited to 'keyboard') diff --git a/keyboard/clueboard1/Makefile b/keyboard/clueboard1/Makefile index 50cde1517..7192a9734 100644 --- a/keyboard/clueboard1/Makefile +++ b/keyboard/clueboard1/Makefile @@ -114,15 +114,16 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # comment out to disable the options. # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -# MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +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 -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +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 # Optimize size but this may cause error "relocation truncated to fit" diff --git a/keyboard/clueboard2/Makefile b/keyboard/clueboard2/Makefile index 788c20487..bcce8ac9f 100644 --- a/keyboard/clueboard2/Makefile +++ b/keyboard/clueboard2/Makefile @@ -114,16 +114,17 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # comment out to disable the options. # BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -# MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +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 -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 = no # 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 #ifdef BACKLIGHT_ENABLE SRC := backlight.c $(SRC) diff --git a/keyboard/cluepad/Makefile b/keyboard/cluepad/Makefile index cfa130d75..9d4ddc07f 100644 --- a/keyboard/cluepad/Makefile +++ b/keyboard/cluepad/Makefile @@ -115,9 +115,9 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # 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 +# 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 BACKLIGHT_ENABLE = yes # Enable numpad's backlight functionality RGBLIGHT_ENABLE = yes -- cgit v1.2.3 From 27d24faf396367d9f8fadd86324e584b5403d261 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Thu, 28 Apr 2016 23:10:40 -0400 Subject: adds condition to one last audio ref in planck default --- keyboard/planck/keymaps/default/keymap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index fa9c3915a..e120d358a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -325,7 +325,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_LOWER); layer_off(_ADJUST); layer_off(_MUSIC); - stop_all_notes(); + #ifdef AUDIO_ENABLE + stop_all_notes(); + #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3 From 66e0323881a5a3da65e14daeec41a1e9cfbda431 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 12:42:55 -0400 Subject: removes extra voices, updates .hex files --- keyboard/planck/keymaps/default/keymap.c | 2 +- keyboard/planck/planck_pcb_r4.hex | 3159 ++++++++++---------- keyboard/planck/planck_pcb_r4_w_bootloader.hex | 3159 ++++++++++---------- keyboard/preonic/keymaps/default/keymap.c | 2 +- keyboard/preonic/preonic_pcb_r1.hex | 3328 +++++++++++----------- keyboard/preonic/preonic_pcb_r1_w_bootloader.hex | 3071 ++++++++++---------- quantum/audio/voices.c | 42 +- 7 files changed, 6370 insertions(+), 6393 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e120d358a..e7a9ea9e4 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -365,7 +365,7 @@ void play_goodbye_tone() } uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { diff --git a/keyboard/planck/planck_pcb_r4.hex b/keyboard/planck/planck_pcb_r4.hex index 889af7f22..bd68d9e90 100644 --- a/keyboard/planck/planck_pcb_r4.hex +++ b/keyboard/planck/planck_pcb_r4.hex @@ -1,73 +1,73 @@ -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -117,1512 +117,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF diff --git a/keyboard/planck/planck_pcb_r4_w_bootloader.hex b/keyboard/planck/planck_pcb_r4_w_bootloader.hex index f2e9993ac..140bf415f 100644 --- a/keyboard/planck/planck_pcb_r4_w_bootloader.hex +++ b/keyboard/planck/planck_pcb_r4_w_bootloader.hex @@ -250,76 +250,76 @@ :107FE4000C94ED3E0C94113F0C94193F0C94213FDA :0C7FF4000C94F23E0C94033F0C94293FC7 :040000030000700089 -:100000000C94FE040C9442050C9442050C94420599 -:100010000C9442050C9442050C9442050C94420544 -:100020000C9442050C9442050C94A6180C94781973 -:100030000C94DB270C9442050C9442050C94420569 -:100040000C9442050C9442050C9442050C94420514 -:100050000C9442050C9443280C9442050C944205E0 -:100060000C9442050C9442050C9442050C944205F4 -:100070000C9442050C9442050C9442050C944205E4 -:100080000C94D10E0C9442050C9442050C9442053C -:100090000C9442050C9442050C9442050C944205C4 -:1000A0000C9442050C9442050C9442059D05AD0547 -:1000B000BF05CF05D505E405F005F60504060D06D8 -:1000C0001E062E06340664069013901390139013A8 -:1000D000901390139013901390139013A713A713DA -:1000E000A713A713A713A713A713A713A713A71340 -:1000F00090139013901390139013A713A713A713A3 -:10010000A713A713901390139013A713A713A71364 -:10011000E519071AF51A071AF51A4C1A6F1AF51A83 -:10012000C41AD71ADA1DDA1D171E171E711EAF1E4C -:1001300027212721C81E2721C91FC91F8C20A320C2 -:100140002721122107634236B79BD8A71A39685670 -:1001500018AEBAAB558C1D3CB7CC5763BD6DEDFDE9 -:10016000753EF6177231BF000000803F08000000A6 -:10017000BE922449123EABAAAA2ABECDCCCC4C3E9C -:1001800000000080BEABAAAAAA3E00000000BF008B -:100190000000803F0000000000084178D3BB438787 -:1001A000D1133D190E3CC3BD4282AD2B3E68EC829B -:1001B00076BED98FE1A93E4C80EFFFBE01C4FF7F20 -:1001C0003F00000000002B0014001A00080015007A -:1001D00017001C0018000C00120013002A00290050 -:1001E00004001600070009000A000B000D000E00B5 -:1001F0000F0033003400E1001D001B000600190051 -:1002000005001100100036003700380028000530C6 -:10021000E000E200E30003302C002C00043050002A -:10022000510052004F002B0014001A000900130067 -:100230000A000D000F0018001C0033002A002900DE -:10024000040015001600170007000B00110008003D -:100250000C0012003400E1001D001B000600190014 -:1002600005000E0010003600370038002800053069 -:10027000E000E200E30003302C002C0004305000CA -:10028000510052004F002B0034003600370013009D -:100290001C0009000A00060015000F002A002900B2 -:1002A00004001200080018000C0007000B001700E3 -:1002B000110016003800E100330014000D000E009C -:1002C0001B00050010001A0019001D002800053051 -:1002D000E000E200E30003302C002C00043050006A -:1002E000510052004F0035021E021F02200221025F -:1002F0002202230224022502260227022A004C00A1 -:100300003A003B003C003D003E003F002D022E0223 -:100310002F02300231020100400041004200430040 -:10032000440045000100010001000100010001003E -:100330000100010001000100010001000100AB000B -:10034000AA00A900AE0035001E001F0020002100F9 -:100350002200230024002500260027002A004C004C -:100360003A003B003C003D003E003F002D002E00C7 -:100370002F003000310001004000410042004300E6 -:1003800044004500010001000100010001000100DE -:100390000100010001000100010001000100AB00AB -:1003A000AA00A900AE00000000000000000000004C -:1003B000000000000000000000000000000000003D -:1003C000000000000000000000000000000000002D -:1003D000000000000000000000000000000000001D -:1003E000000000000000000000000000000000000D -:1003F0000000000000000330000000000430000096 -:100400000000000000001E001E001E001E001E0056 -:100410001E001E001E001E001E001E001E0000000A -:1004200014001A000800150017001C0018000C002A -:10043000120013002F00000004001600070009003E -:100440000A000B000D000E000F00330034000D30C9 -:10045000000000000600190000000000110010005C +:100000000C94DA040C941E050C941E050C941E0529 +:100010000C941E050C941E050C941E050C941E05D4 +:100020000C941E050C941E050C94B7180C94891999 +:100030000C94EC270C941E050C941E050C941E05C4 +:100040000C941E050C941E050C941E050C941E05A4 +:100050000C941E050C9454280C941E050C941E053B +:100060000C941E050C941E050C941E050C941E0584 +:100070000C941E050C941E050C941E050C941E0574 +:100080000C94AD0E0C941E050C941E050C941E05CC +:100090000C941E050C941E050C941E050C941E0554 +:1000A0000C941E050C941E050C941E0579058905FB +:1000B0009B05AB05B105C005CC05D205E005E905FA +:1000C000FA050A0610064006F619181A061B181A31 +:1000D000061B5D1A801A061BD51AE81AEB1DEB1DCC +:1000E000281E281E821EC01E38213821D91E382104 +:1000F000DA1FDA1F9D20B4203821232107634236FE +:10010000B79BD8A71A39685618AEBAAB558C1D3CA8 +:10011000B7CC5763BD6DEDFD753EF6177231BF006C +:100120000000803F08000000BE922449123EABAAA6 +:10013000AA2ABECDCCCC4C3E00000080BEABAAAA01 +:10014000AA3E00000000BF000000803F0000000049 +:1001500000084178D3BB4387D1133D190E3CC3BD82 +:100160004282AD2B3E68EC8276BED98FE1A93E4C2F +:1001700080EFFFBE01C4FF7F3F00000000002B00A6 +:1001800014001A000800150017001C0018000C00CD +:10019000120013002A0029000400160007000900BD +:1001A0000A000B000D000E000F0033003400E100C8 +:1001B0001D001B000600190005001100100036008C +:1001C0003700380028000530E000E200E30003308B +:1001D0002C002C0004305000510052004F002B0026 +:1001E00014001A00090013000A000D000F00180087 +:1001F0001C0033002A002900040015001600170017 +:1002000007000B00110008000C0012003400E10090 +:100210001D001B000600190005000E00100036002E +:100220003700380028000530E000E200E30003302A +:100230002C002C0004305000510052004F002B00C5 +:1002400034003600370013001C0009000A000600C5 +:1002500015000F002A0029000400120008001800F1 +:100260000C0007000B001700110016003800E10019 +:10027000330014000D000E001B00050010001A00D2 +:1002800019001D0028000530E000E200E300033003 +:100290002C002C0004305000510052004F00350259 +:1002A0001E021F0220022102220223022402250232 +:1002B000260227022A004C003A003B003C003D0089 +:1002C0003E003F002D022E022F02300231020100BB +:1002D000400041004200430044004500010001008D +:1002E0000100010001000100010001000100010006 +:1002F000010001000100AB00AA00A900AE0035001A +:100300001E001F00200021002200230024002500E1 +:10031000260027002A004C003A003B003C003D002C +:100320003E003F002D002E002F0030003100010064 +:10033000400041004200430044004500010001002C +:1003400001000100010001000100010001000100A5 +:10035000010001000100AB00AA00A900AE000000EE +:10036000000000000000000000000000000000008D +:10037000000000000000000000000000000000007D +:10038000000000000000000000000000000000006D +:10039000000000000000000000000000000000005D +:1003A000000000000000000000000000000003301A +:1003B00000000000043000000000000000001E00EB +:1003C0001E001E001E001E001E001E001E001E003D +:1003D0001E001E001E00000014001A000800150078 +:1003E00017001C0018000C00120013002F00000062 +:1003F00004001600070009000A000B000D000E00A3 +:100400000F00330034000D3000000000060019001A +:1004100000000000110010000000000000000000BB +:1004200000000000000000000000000000000000CC +:1004300000000000000000000000000000000000BC +:1004400000000000000000000000000000000000AC +:10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C :10048000000000000000000000000000000000006C @@ -369,1512 +369,1529 @@ :1007400000000000000000000000000000000000A9 :100750000000000000000000000000000000000099 :100760000000000000000000000000000000000089 -:100770000000000000000000000000000000000079 -:100780000000000000000000000000000000000069 -:100790000000000000000000000000000000000059 -:1007A0000000000000000000000000000000000049 -:1007B0000000000000000000000000000000000039 -:1007C00000000000000001000050010001000100D5 -:1007D0000100010001000100010001004C000100C6 -:1007E0000100010007300630135012500030013074 -:1007F00002300C30010001000B300A3009300830A3 -:1008000001000100010001000100010001000100E0 -:1008100001000100010001000100010001000100D0 -:100820000100010001002803540068006500200059 -:1008300050006C0061006E0063006B0020004B00F4 -:100840006500790062006F006100720064000000C2 -:100850002C034F007200740068006F006C00690088 -:100860006E0065006100720020004B006500790099 -:1008700062006F00610072006400730000000403F6 -:10088000090409026D00040100A0FA090400000136 -:1008900003010100092111010001223F0007058128 -:1008A0000308000A090401000103010200092111E3 -:1008B000010001224D000705820308000A09040215 -:1008C0000001030000000921110100012236000788 -:1008D00005830308000A090403000103000000095E -:1008E00021110100012239000705840310000112C3 -:1008F00001100100000008EDFE606001000102002F -:100900000105010906A101050719E029E7150025E0 -:1009100001950875018102050819012905950575DC -:1009200001910295017503910105071900297715B9 -:10093000002501957875018102C005010980A1019A -:10094000850216010026B7001A01002AB7007510AB -:1009500095018100C0050C0901A101850316010064 -:10096000269C021A01002A9C02751095018100C084 -:1009700005010902A1010901A100050919012905C3 -:100980001500250195057501810295017503810109 -:100990000501093009311581257F95027508810609 -:1009A00009381581257F950175088106050C0A38DF -:1009B000021581257F950175088106C0C0050109D2 -:1009C00006A101050719E029E7150025019508751D -:1009D0000181029501750881010508190129059514 -:1009E000057501910295017503910105071900290B -:1009F000FF150025FF950675088100C011241FBE54 -:100A0000CFEFDAE0DEBFCDBF04B603FE24C0809195 -:100A1000190490911A04A0911B04B0911C04873012 -:100A2000904BA740B04BB9F41092190410921A04DD -:100A300010921B0410921C0414BE84B7877F84BFDD -:100A400088E10FB6F89480936000109260000FBEAA -:100A5000E0E0F8E3099513E0A0E0B1E0E4E8F3E6B4 -:100A600002C005900D92A431B107D9F714E0A4E1BA -:100A7000B3E001C01D92A931B107E1F70E94EC1566 -:100A80000C94C0310C940000279A2F988FEF9FEFA1 -:100A900090938700809386008AE08093800089E1AC -:100AA000809381000C94452D282F81110BC08091DB -:100AB0008000877F8093800010928D0010928C00C0 -:100AC0002F9808952F9880918000886080938000EF -:100AD000233019F48FEF9FEF0FC083E090E0821B6B -:100AE0009109880F991F2FEF3FEFA90102C056957A -:100AF00047958A95E2F7CA0190938D0080938C0008 -:100B00000895CF93DF93EC010E94DC28BE0180E0C2 -:100B100090E0DF91CF910C9407250F931F93462F00 -:100B200050E04E30510508F0DEC0DC01FA01EA5A0F -:100B3000FF4F12968C910C948431882309F4D3C012 -:100B400000E010E0980140E064E070E08BE292E0A9 -:100B50000E944F1281E090E00FC0882309F4C3C0C7 -:100B600000E010E0980140E066E070E08BEB91E07F -:100B70000E944F1282E090E00E948105B4C0882359 -:100B800009F4B1C000E010E0980140E068E070E0D6 -:100B90008BEE91E00E944F1284E090E0EDCF88232D -:100BA00011F083E005C083E00CC0882349F084E0A5 -:100BB0000E94842540E164E083E00E94910A93C092 -:100BC00084E00E94A525F6CF882331F085EE0E94AF -:100BD0006E1C0E949C2D87C085EE0E94361D83C02E -:100BE000882309F480C00E94E30D7DC0882309F4A6 -:100BF0007AC00E94DC0D00E010E0980140E065E062 -:100C000070E08BE492E027C0882309F46CC085E093 -:100C10000E94A5250E94040E66C0882309F463C0C3 -:100C200000E010E0980140E068E070E08BE191E0C6 -:100C30000E944F1285E00E94842555C0882309F444 -:100C400052C00E94E21200E010E0980140E068E02B -:100C500070E08BE191E00E944F1245C0882309F4B7 -:100C600042C00E94ED12EFCF8823E9F100E010E0CE -:100C7000980140E066E070E08BE891E00E944F123E -:100C800084E00E94A52583E00E94A52580E10E94C2 -:100C9000A52585E00E94A5250E94040E86E00E94FD -:100CA00084250E94C928811102C00E94A5280E94A3 -:100CB000E12890E090931804809317048068809353 -:100CC00017040E94E5280FC0882369F000E010E0B7 -:100CD000980140E066E070E08BE591E00E944F12E1 -:100CE00086E00E94A52580E090E01F910F91089575 -:100CF0000F931F932FEF89EF90E021508040904099 -:100D0000E1F700C0000000E010E0980140E065E07D -:100D100070E08BE492E00E944F121F910F910895B2 -:100D20000F931F9300E010E0980140E063E070E053 -:100D300083E091E00E944F122FEF82E597E021506F -:100D400080409040E1F700C000001F910F9108958E -:100D5000CF92DF92EF92FF920F931F93CF93DF9387 -:100D6000CDB7DEB7CC58D1090FB6F894DEBF0FBEB1 -:100D7000CDBF2091D10325FFC5C08C01FC0192811C -:100D800080910201992309F460C096E4E0E9F2E061 -:100D9000DE01A95BBF4F01900D929A95E1F7F80132 -:100DA0009081E0910001F0910101E90FF11DEE0F3A -:100DB000FF1F27E430E02C0F3D1FE20FF31F60817F -:100DC0007181680F711D882777FD8095982F0E948B -:100DD000E02E20E030E040E451E40E94452E6B011B -:100DE0007C01F801218184E090E0821B9109BC0123 -:100DF000882777FD8095982F0E94E02E9B01AC01FB -:100E0000C701B6010E94DD2D9B01AC0160E070E0DE -:100E100080E090E40E94F72F20E030E04CE551E4C0 -:100E20000E94942F4FE050E0C457DF4F0FB6F89464 -:100E3000DEBF0FBECDBFDF91CF911F910F91FF900D -:100E4000EF90DF90CF900C94EF1196E4E0E9F2E0A0 -:100E5000DE01119601900D929A95E1F7F8019081CB -:100E6000E0910001F0910101E90FF11DEE0FFF1F6C -:100E700021E030E02C0F3D1FE20FF31F60817181F4 -:100E8000680F711D882777FD8095982F0E94E02EAE -:100E900020E030E040E451E40E94452E6B017C01EB -:100EA000F801218184E090E0821B9109BC01882730 -:100EB00077FD8095982F0E94E02E9B01AC01C70121 -:100EC000B6010E94DD2D9B01AC0160E070E080E086 -:100ED00090E40E94F72F20E030E04CE551E40E94BE -:100EE000942FC457DF4F0FB6F894DEBF0FBECDBFAF -:100EF000DF91CF911F910F91FF90EF90DF90CF90F6 -:100F00000C94370EC457DF4F0FB6F894DEBF0FBEF8 -:100F1000CDBFDF91CF911F910F91FF90EF90DF90A8 -:100F2000CF90089508950E9444056E9A769A0C9485 -:100F300078060C9492070C94A8060895880F991FC0 -:100F4000FC01EA5BFF4F859194910895880F991FEA -:100F5000FC01EA53FE4F8591949108950F931F93DE -:100F6000CF93DF93EC01811520E49207A0F5C11522 -:100F700080E3D80708F0E1C0C83ED105D8F4C03EF0 -:100F8000D10508F0EEC1C83AD10578F4C53AD105CB -:100F900008F074C0C130D10509F46DC008F4DEC199 -:100FA000C430D10508F0DDC1D9C1CB3BD10508F46F -:100FB00070C0D4C1C11590E2D90708F0B9C0C115FD -:100FC00021E0D20708F0CDC1C03FD10508F4C6C169 -:100FD0008E01106506C2C13080E5D80709F4BDC096 -:100FE00068F5C13120E4D20709F4AEC050F4C03135 -:100FF00090E4D90708F0A5C0CF70DD278E01146DED -:10100000F0C1C33120E4D20709F4A4C008F49FC0A2 -:10101000C115D04509F0A2C10E944B210E94040EC7 -:101020000E9490069FEF24E38CE091502040804086 -:10103000E1F700C000000E946828D3C1C11520E676 -:10104000D20730F4C11581E5D80708F48CC02DC152 -:10105000C11590E7D90708F481C1C11520E8D2076E -:1010600008F478C1C11580E9D80708F077C1DF70AE -:101070008E01106AB6C101E010E0B3C1C53AD105D6 -:1010800009F471C1C63AD10509F070C102E810E453 -:10109000A8C1C83AD10509F46CC1C93AD10509F40F -:1010A0006BC1CA3AD10509F46AC1CB3AD10509F43A -:1010B00069C1CC3AD10509F468C1CD3AD10509F42A -:1010C00067C1C03BD10509F466C1CE3AD10509F428 -:1010D00065C1CF3AD10509F464C1C13BD10509F41A -:1010E00063C1C23BD10509F462C1C33BD10509F418 -:1010F00061C1C43BD10509F460C1C53BD10509F408 -:101100005FC1C63BD10509F45EC1C73BD10509F4F7 -:101110005DC1C83BD10509F45CC1C93BD10509F4E7 -:101120005BC1CA3BD10509F45AC100E014E459C1BE -:10113000CE019F700E94A60755C1DD278E01106C5D -:1011400050C100E011ED4DC100E010ED4AC100E0DA -:1011500012ED47C100E013ED44C18091ED038160C1 -:101160008093ED033EC10E94C928811102C00E94F4 -:10117000A5280E94E12890E090931804809317041A -:10118000C23090E5D90721F480911704816086C0B0 -:10119000C43020E5D20721F48091170482607EC01C -:1011A000C63080E5D80721F480911704846076C0AA -:1011B000C83090E5D90719F48091170427C0CA30C8 -:1011C00020E5D20721F480911704806167C0CC30FC -:1011D00080E5D80721F48091170480625FC0CE308B -:1011E00090E5D90721F480911704806457C0C0317D -:1011F00020E5D20721F48091170480684FC0C231E6 -:1012000080E5D80729F4809117048460886046C07F -:10121000C33090E5D90721F4809117048E7F3EC03A -:10122000C53020E5D20721F4809117048D7F36C0A8 -:10123000C73080E5D80721F4809117048B7F2EC03A -:10124000C93090E5D90719F48091170426C0CB3036 -:1012500020E5D20721F4809117048F7E1FC0CD3086 -:1012600080E5D80721F4809117048F7D17C0CF3017 -:1012700090E5D90721F4809117048F7B0FC0C1310D -:1012800020E5D20721F4809117048F7707C0C3317E -:10129000D04531F4809117048B7F877F80931704AA -:1012A000809117040E94E5289CC08D2F99278F708C -:1012B000992781309105D9F49E012370332702C00C -:1012C000880F991F2A95E2F79C688E0144E0000F71 -:1012D000111F4A95E1F700271370802B912B53E0E3 -:1012E000CC0FDD1F5A95E1F7C076DD272FC0823085 -:1012F000910531F4DC2FCC278E01016F106A71C08B -:101300008330910569F4CE018370992701E010E0E4 -:1013100002C0000F111F8A95E2F7C8019C680FC038 -:10132000049709F05EC0CE018370992701E010E0B8 -:1013300002C0000F111F8A95E2F7C8019A6823E0E6 -:10134000CC0FDD1F2A95E1F7C07ED7708C010C2BE6 -:101350001D2B47C0DF708E01106243C000E010E01B -:1013600040C08E013EC001E810E43BC003E810E439 -:1013700038C002EE14E435C009EE14E432C00AEEBF -:1013800014E42FC005EB14E42CC006EB14E429C0D0 -:1013900007EB14E426C00CEC14E423C00DEC14E4B9 -:1013A00020C003E815E41DC00AE815E41AC002E9EC -:1013B00015E417C004E915E414C001E216E411C0F5 -:1013C00003E216E40EC004E216E40BC005E216E4E4 -:1013D00008C006E216E405C007E216E402C00AE20D -:1013E00016E4C801DF91CF911F910F9108959CE001 -:1013F000799FF001112490E3899FE00DF11D1124E4 -:10140000E60FF11DEE0FFF1FEA53FE4F85919491F9 -:10141000803E9105E0F4803C910558F581339105BB -:1014200009F46FC048F48932910509F463C08A3227 -:10143000910509F46DC072C089339105E9F08238D5 -:101440009105D1F08533910509F44DC067C0833E05 -:10145000910581F138F4803E9105B9F0823E910505 -:10146000D9F05CC0863E910561F1873E9105A1F1FE -:1014700055C00E949E0708952091170420FD02C0C8 -:1014800021FF4CC080EE90E049C08091170480FF9E -:10149000F9CF89E390E042C08091170482FF0EC02B -:1014A0008091170484FF03C080E090E037C083EE92 -:1014B00090E034C08091170482FFF2CF82EE90E07A -:1014C0002DC08091170483FF0BC08091170484FD09 -:1014D000EBCF87EE90E022C08091170483FFF5CF19 -:1014E00086EE90E01BC08091170485FF07C089E25B -:1014F00090E014C08091170485FFF9CF85E390E058 -:101500000DC08091170486FF07C08AE290E006C0F4 -:101510008091170486FFF9CF81E390E00E94AE0727 -:101520000895CF92DF92EF92FF920F931F9301E005 -:1015300010E020E030E06801790104C0CC0CDD1C33 -:10154000EE1CFF1C8A95D2F704C0000F111F221F4A -:10155000331F6A95D2F70C291D292E293F29C090E7 -:10156000D103D090D203E090D303F090D403C022F3 -:10157000D122E222F322842FC016D106E206F3061E -:1015800041F41F910F91FF90EF90DF90CF900C945A -:1015900084251F910F91FF90EF90DF90CF900C94D6 -:1015A000A52508950C94D10A5F926F927F928F9235 -:1015B0009F92AF92BF92CF92DF92EF92FF920F93E2 -:1015C0001F93CF93DF93CDB7DEB728970FB6F8946C -:1015D000DEBF0FBECDBFCE0101966C014E0199E07A -:1015E000890E911C20E030E040E050E060E070E0C7 -:1015F00000E010E0E12CF12C6C2C5D2C88E0782EC2 -:10160000AA24A394B12CE6EDF2E0A62DB52D872DEA -:1016100001900D928A95E1F7F601819191916F0108 -:10162000FC01E07FFF27E032F10559F48F70992724 -:10163000F50102C0EE0FFF1F8A95E2F7EE2AFF2A9E -:1016400037C0E033F10559F48F709927F50102C0D6 -:10165000EE0FFF1F8A95E2F70E2B1F2B29C0E034F7 -:10166000F10559F48F709927F50102C0EE0FFF1FA5 -:101670008A95E2F76E2B7F2B1BC0E035F10559F4FC -:101680008F709927F50102C0EE0FFF1F8A95E2F7D0 -:101690004E2B5F2B0DC0E036F10551F48F7099276A -:1016A000F50102C0EE0FFF1F8A95E2F72E2B3F2BAC -:1016B000C814D90409F0A7CF84B19E2D9095892331 -:1016C00084B985B1E82AE5B887B1902F9095892330 -:1016D00087B988B1082B08B98AB1962F90958923CC -:1016E0008AB98BB1682B6BB98DB1942F90958923F2 -:1016F0008DB98EB1482B4EB980B3922F9095892326 -:1017000080BB81B3282B21BB28960FB6F894DEBF8F -:101710000FBECDBFDF91CF911F910F91FF90EF9042 -:10172000DF90CF90BF90AF909F908F907F906F9001 -:101730005F9008955F926F927F928F929F92AF9287 -:10174000BF92CF92DF92EF92FF920F931F93CF93AE -:10175000DF93CDB7DEB768970FB6F894DEBF0FBE44 -:10176000CDBF85B7806885BF85B7806885BF0E947B -:10177000D40ACE0101966C014E0199E1890E911CAB -:1017800020E030E040E050E060E070E000E010E099 -:10179000E12CF12C6C2C5D2C88E1782EAA24A394EA -:1017A000B12CEEEDF2E0A62DB52D872D01900D9216 -:1017B0008A95E1F7F601819191916F01FC01E07F3B -:1017C000FF27E032F10559F48F709927F50102C027 -:1017D000EE0FFF1F8A95E2F7EE2AFF2A37C0E033AB -:1017E000F10559F48F709927F50102C0EE0FFF1F24 -:1017F0008A95E2F70E2B1F2B29C0E034F10559F42E -:101800008F709927F50102C0EE0FFF1F8A95E2F74E -:101810006E2B7F2B1BC0E035F10559F48F70992793 -:10182000F50102C0EE0FFF1F8A95E2F74E2B5F2BEA -:101830000DC0E036F10551F48F709927F50102C013 -:10184000EE0FFF1F8A95E2F72E2B3F2BC814D90409 -:1018500009F0A7CF84B19E2D9095892384B985B1D5 -:10186000E82AE5B887B1902F9095892387B988B188 -:10187000082B08B98AB1962F909589238AB98BB124 -:10188000682B6BB98DB1942F909589238DB98EB14A -:10189000482B4EB980B3922F9095892380BB81B39A -:1018A000282B21BB10921D0310921C0310921503CC -:1018B0001092140310921F0310921E03109217032C -:1018C0001092160310922103109220031092190314 -:1018D00010921803109223031092220310921B03FC -:1018E00010921A0368960FB6F894DEBF0FBECDBFF4 -:1018F000DF91CF911F910F91FF90EF90DF90CF90EC -:10190000BF90AF909F908F907F906F905F900C945E -:1019100093077F928F929F92AF92BF92CF92DF9266 -:10192000EF92FF920F931F93CF93DF93CDB7DEB764 -:10193000A0970FB6F894DEBF0FBECDBF6E0149E190 -:10194000C40ED11C84E1E82E83E0F82E98E0792EB5 -:10195000BC2CAD2C01E010E028E1822E35E0932E66 -:10196000E6EDF2E0AB2DBA2D872D01900D928A9510 -:10197000E1F7F601819191916F019C01207F33275E -:101980002032310591F424B18F709927A80102C04B -:10199000440F551F8A95E2F7CA01922F982B94B9EC -:1019A00095B18095892385B953C02033310591F4D1 -:1019B00027B18F709927F80102C0EE0FFF1F8A959B -:1019C000E2F7CF01922F982B97B998B18095892390 -:1019D00088B93EC02034310591F42AB18F7099271F -:1019E000A80102C0440F551F8A95E2F7CA01922F41 -:1019F000982B9AB99BB1809589238BB929C0203542 -:101A0000310591F42DB18F709927F80102C0EE0FC6 -:101A1000FF1F8A95E2F7CF01922F982B9DB99EB1B7 -:101A2000809589238EB914C02036310589F420B3FE -:101A30008F709927A80102C0440F551F8A95E2F7BD -:101A4000CA01922F982B90BB91B38095892381BBBB -:101A500050EA5A95F1F7BE016F5F7F4F20E030E00A -:101A600040E050E0EEEDF2E0DE011196882D0190AD -:101A70000D928A95E1F7FB0181919191BF01FC01E3 -:101A8000E07FFF27E032F10511F4E3B113C0E0334A -:101A9000F10511F4E6B10EC0E034F10511F4E9B13D -:101AA00009C0E035F10511F4ECB104C0E036F105F0 -:101AB000B9F4EFB1F0E08F70992702C0F595E79582 -:101AC0008A95E2F7E0FD08C0C801042E02C0880F25 -:101AD000991F0A94E2F702C080E090E0282B392B8E -:101AE0004F5F5F4F4C30510509F0BCCFF70180814B -:101AF00091818217930721F03183208390927302A2 -:101B00000E94D40AF2E0EF0EF11C4CE1E41643E02F -:101B1000F40609F025CF80917302882361F181508A -:101B200080937302882339F08FE99FE00197F1F7E2 -:101B300000C0000020C08091140390911503909381 -:101B40001D0380931C0380911603909117039093BB -:101B50001F0380931E0380911803909119039093A3 -:101B600021038093200380911A0390911B0390938B -:101B70002303809322030E94990781E0A0960FB669 -:101B8000F894DEBF0FBECDBFDF91CF911F910F91B3 -:101B9000FF90EF90DF90CF90BF90AF909F908F908D -:101BA0007F900895E82FF0E0EE0FFF1FE45EFC4FFA -:101BB00080819181089508958091020481608093CD -:101BC00002040C94F728809102048E7F8093020413 -:101BD0000C94F7280E94C928811102C00E94A528F0 -:101BE0000E94F328809302043E9A809171008D7FB9 -:101BF0008093710082E0809390008AE1809391004D -:101C000081E080932603089580912603811102C00C -:101C10000E94EA0D10927603109275038091710074 -:101C20008D7F80937100809190008F7780939000DA -:101C3000109238031092370310926F0310927003C2 -:101C4000109271031092720310926E0310926D0342 -:101C5000EDE4F3E0ADE3B3E0119211921192119231 -:101C60001D921D9283E0ED36F807B1F70895CF92EB -:101C7000DF92EF92FF920F931F93CF93DF93209108 -:101C80003703222309F484C06B017C018091260371 -:101C9000811102C00E94EA0D0DE613E0C7E0D0E01A -:101CA000A7019601F80192918291729162918F0140 -:101CB0000E94412E811131C0FE01EE0FFF1FEE0F79 -:101CC000FF1FE35BFC4F1082118212821382DE0140 -:101CD000AA0FBB1FA35CBC4F11961C921E92C7306B -:101CE000D105E9F021964481558166817781408351 -:101CF000518362837383148215821682178212962F -:101D00008D919C91139711969C938E9313961C9290 -:101D10001E92129734961296E2CF219708F6809180 -:101D2000750390917603019797FD05C09093760314 -:101D30008093750304C0109276031092750380910E -:101D400075039091760320917303309174032817E3 -:101D5000390724F01092740310927303892BC1F495 -:101D6000809171008D7F80937100809190008F77BA -:101D70008093900010926F03109270031092710381 -:101D80001092720310926E0310926D03109237033B -:101D9000DF91CF911F910F91FF90EF90DF90CF9047 -:101DA00008951F920F920FB60F9211244F925F92D7 -:101DB0006F927F928F929F92AF92BF92CF92DF925B -:101DC000EF92FF922F933F934F935F936F937F9385 -:101DD0008F939F93AF93BF93CF93DF93EF93FF9333 -:101DE00080913703882309F49BC1C0917503D0917A -:101DF00076031C161D060CF093C1409027035090EB -:101E000028036090290370902A0320E030E0A901A4 -:101E1000C301B2010E94902F18160CF065C0C130AA -:101E2000D10509F452C08091730390917403BE01EF -:101E30000E9470317C0190937403809373038090AF -:101E4000390390903A03A0903B03B0903C0320E00C -:101E500030E040E85FE3C501B4010E94DD2D6093EE -:101E6000390370933A0380933B0390933C03F7014B -:101E7000EE0FFF1FEE0FFF1FE35BFC4FA30192016C -:101E800060817181828193810E94452E20E030E043 -:101E900040E05EE30E94942F9B01AC01C501B401B8 -:101EA0000E94902F18168CF4C7010196BE010E9463 -:101EB00070319093740380937303109239031092DE -:101EC0003A0310923B0310923C03E0917303F091AC -:101ED0007403EE0FFF1FEE0FFF1FE35BFC4F6081EB -:101EE000718182819381D0C0C0906F03D0907003C4 -:101EF000E0907103F090720320E030E0A901C70187 -:101F0000B6010E94412E2197882309F4A2C0FE0148 -:101F1000EE0FFF1FEE0FFF1FE35BFC4F80809180F1 -:101F2000A280B380A5019401C701B6010E94412E91 -:101F300087FF31C0A501940160E070E08CED93EC67 -:101F40000E94452E20E030E040E451E40E94452EFE -:101F500020E030E040E05FE30E94942F9B01AC0161 -:101F600060E070E080E090E40E94F72F9B01AC01FC -:101F7000C501B4010E94942F9B01AC01C701B601B9 -:101F80000E94412E87FF07C0A701960160E070E024 -:101F90008CED93E439C0A5019401C701B6010E94FC -:101FA000902F18160CF055C0A501940160E070E068 -:101FB0008CED93E40E94452E20E030E040E451E4B3 -:101FC0000E94452E20E030E040E05FE30E94942F25 -:101FD0009B01AC0160E070E080E090E40E94F72F8C -:101FE0009B01AC01C501B4010E94942F9B01AC017F -:101FF000C701B6010E94902F18165CF5A701960143 -:1020000060E070E08CED93EC0E94452E20E030E023 -:1020100040E451E40E94452E20E030E040E05FE3E0 -:102020000E94942F9B01AC0160E070E080E090E49E -:102030000E94F72F9B01AC01C701B6010E94942FAB -:1020400060936F0370937003809371039093720396 -:1020500013C0FE01EE0FFF1FEE0FFF1FE35BFC4FEF -:1020600080819181A281B38180936F0390937003EB -:10207000A0937103B093720360916F03709170032A -:102080008091710390917203209124033091250374 -:102090002F3F4FEF340731F02F5F3F4F3093250331 -:1020A000209324030E94F8126B017C0120E034E2AB -:1020B00044EF51E40E94412E87FF08C086EFC82EEE -:1020C00088E2D82E84EFE82E81E4F82E20E030E07C -:1020D00040E051E4C701B6010E94942F9B01AC017E -:1020E00060E074E284E79BE40E94452E6B017C0172 -:1020F0000E94AD2E70939700609396002091740219 -:10210000309175024091760250917702C701B60175 -:102110000E94942F0E94AD2E7093990060939800B6 -:1021200080913803882309F433C1C0903303D090E1 -:102130003403E0903503F090360320E030E0A9014D -:10214000C701B6010E94902F1816D4F58091240380 -:10215000909125038F3F2FEF920729F001969093DE -:10216000250380932403C701B6010E94F81220E0E2 -:1021700030E040E051E40E94942F9B01AC0160E00C -:1021800074E284E79BE40E94452E6B017C010E946F -:10219000AD2E709397006093960020917402309159 -:1021A00075024091760250917702C701B6010E94F4 -:1021B000942F0E94AD2E709399006093980008C0F0 -:1021C0001092970010929600109299001092980029 -:1021D00060912D0370912E036F5F7F4F70932E03DC -:1021E00060932D03209196003091970080E090E05D -:1021F000232BF1F0C0919600D09197000E94DE2E23 -:102200006B017C01BE0180E090E00E94DE2E9B010C -:10221000AC0160912F037091300380913103909154 -:1022200032030E94452E20E03FEF4FE757E410C0F5 -:102230000E94DE2E6B017C0120E030EE4FEF54E473 -:1022400060912F037091300380913103909132039C -:102250000E94942F9B01AC01C701B6010E94902FF0 -:1022600087FD96C080912B038F5F80932B0390E0B6 -:102270002091FE033091FF0382179307A0F0809115 -:102280000904882319F010922B030DC0809171006E -:102290008D7F80937100809190008F778093900064 -:1022A000109238037DC080912C03C0912B038111C3 -:1022B00028C0C0900304D0900404E0900504F0907E -:1022C000060420E030E0A901C701B6010E94902F6A -:1022D0001816BCF481E080932C0310923303109203 -:1022E00034031092350310923603C0922F03D0921C -:1022F0003003E0923103F0923203C150C0932B03BC -:1023000043C010922C031092250310922403E091F5 -:102310000004F091010448E0C49FE00DF11D112478 -:1023200080819181A281B3818093330390933403A0 -:10233000A0933503B093360320E030E040E85EE33D -:1023400064817581868197810E94942F6B017C0145 -:1023500020E030E048EC52E460917802709179021C -:1023600080917A0290917B020E94452E9B01AC01E4 -:10237000C701B6010E94942F60932F03709330031E -:10238000809331039093320310922E0310922D0309 -:102390008091020480FD04C010923803109237032C -:1023A000FF91EF91DF91CF91BF91AF919F918F916D -:1023B0007F916F915F914F913F912F91FF90EF909F -:1023C000DF90CF90BF90AF909F908F907F906F9055 -:1023D0005F904F900F900FBE0F901F901895CF9267 -:1023E000DF92EF92FF92CF93DF936B017C01EA01C2 -:1023F00080912603811102C00E94EA0D809102049F -:1024000080FF46C0809175039091760308970CF089 -:102410003FC0809171008D7F80937100809138035F -:1024200081110E94040E81E08093370310922503EE -:102430001092240320E030E0A901C701B6010E94F8 -:10244000902F1816DCF48091750390917603FC01AF -:10245000EE0FFF1FEE0FFF1FE35BFC4FC082D18228 -:10246000E282F382FC01EE0FFF1FE35CFC4FD1839D -:10247000C0830196909376038093750380917100D9 -:1024800082608093710080919000806880939000BA -:10249000DF91CF91FF90EF90DF90CF9008958F92D2 -:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 -:1024B0001F93CF93DF93EC017B01D42E4801590188 -:1024C00080912603811102C00E94EA0D80910204CE -:1024D00080FF6BC0809171008D7F8093710080912F -:1024E000370381110E94040E81E080933803D0935A -:1024F0000104C0930004F092FF03E092FE03D09227 -:1025000009048092030490920404A0920504B092FE -:1025100006041092390310923A0310923B03109272 -:102520003C0310922B0388819981AA81BB818093FF -:10253000330390933403A0933503B093360320E024 -:1025400030E040E85EE36C817D818E819F810E9456 -:10255000942F6B017C0120E030E048EC52E4609164 -:1025600078027091790280917A0290917B020E94A8 -:10257000452E9B01AC01C701B6010E94942F6093C8 -:102580002F037093300380933103909332031092A2 -:102590002E0310922D038091710082608093710050 -:1025A00080919000806880939000DF91CF911F917F -:1025B0000F91FF90EF90DF90CF90BF90AF909F90E2 -:1025C0008F9008958091770390E0019665E070E028 -:1025D0000E9470318093770308958091770390E093 -:1025E000019765E070E00E94703180937703089551 -:1025F0008F929F92AF92BF92CF92DF92EF92FF9213 -:10260000CF93DF936B017C01C0912403D09125030C -:10261000BE0180E090E00E94DE2E4B015C01A7012C -:10262000960160E070E08CE594E40E94452E9B01E9 -:10263000AC01C501B4010E94942F0E94B22E4091BA -:102640007703423009F45CC028F4442351F0413050 -:10265000E9F0FBC0433009F481C0443009F4B4C050 -:10266000F4C080E090E0A0E0BFE380937402909318 -:102670007502A0937602B09377021092270310920E -:1026800028031092290310922A03DFC01092270317 -:10269000109228031092290310922A0364317105C5 -:1026A00040F46A307105E0F520E030E040E85EE398 -:1026B0003BC0693C710508F0C0C080E090E00E941A -:1026C000DE2E20E030E040EA51E40E94DC2D20E0E4 -:1026D00030E044E353E40E94452E9B01AC010E948C -:1026E000942F20E030E040E05EE30E94942F9B01B5 -:1026F000AC0160E070E080E09EE30E94DC2D5BC0F6 -:1027000010922703109228031092290310922A0393 -:102710006432710578F4FB01EC59FF4F0C9484315D -:1027200020E030E040E05FE3C701B6010E94942F53 -:102730006B017C0180E090E0A0E0BEE38093740236 -:1027400090937502A0937602B09377027EC0A701A2 -:102750009601C701B6010E94DD2DEACF1092270332 -:10276000109228031092290310922A032AE0269F30 -:10277000A001279F500D1124CA0168EB7BE00E9445 -:102780005C31BC016C5D754077FF03C0719561954C -:102790007109882777FD8095982F0E94E02E2EE3FF -:1027A00033EC4EE259E30E94942F20E030E040ECFD -:1027B0005EE30E94DD2D6093740270937502809336 -:1027C00076029093770241C010922703109228035B -:1027D0001092290310922A03CE0183709927892B26 -:1027E000E1F0BE016170772780E090E00E94DE2E6C -:1027F00020E030E040E05EE30E94942F20E030E0F3 -:1028000040E45FE30E94DD2D6093740270937502D3 -:1028100080937602909377020CC080E090E0A0E075 -:10282000BFE38093740290937502A0937602B093F5 -:102830007702C770DD27CD2B41F4109274021092FD -:1028400075021092760210927702C701B601DF91ED -:10285000CF91FF90EF90DF90CF90BF90AF909F907F -:102860008F900895809188030895CF93DF9300D0CF -:102870001F92CDB7DEB79C0180910E04843019F50C -:1028800093E099833B832A839093E9008FEF9091A3 -:10289000E800815095FD06C095ED9A95F1F700008E -:1028A0008111F5CF8091E80085FF0DC040E050E038 -:1028B00063E070E0CE0101960E9496168091E800D8 -:1028C0008E778093E8000F900F900F90DF91CF915B -:1028D0000895CF93DF9300D01F92CDB7DEB720913C -:1028E0000E04243021F522E029839B838A8383E030 -:1028F0008093E9008FEF9091E800815095FD06C02C -:1029000095ED9A95F1F700008111F5CF8091E800DF -:1029100085FF0DC040E050E063E070E0CE0101961D -:102920000E9496168091E8008E778093E8000F90C1 -:102930000F900F90DF91CF91089520910E042430D5 -:10294000F1F422E02093E9002FEF3091E8002150CC -:1029500035FD06C035ED3A95F1F700002111F5CFB0 -:102960002091E80025FF0BC040E050E065E070E0FA -:102970000E9496168091E8008E778093E800089573 -:10298000CF93DF93EC0190910E04943009F046C090 -:10299000809186028823D9F0809187028823B9F03C -:1029A0009093E9008FEF9091E800815095FD06C06B -:1029B00095E19A95F1F700008111F5CF8091E8003B -:1029C00085FF2CC040E050E060E170E017C081E07E -:1029D0008093E9008FEF9091E800815095FD06C04B -:1029E00095ED9A95F1F700008111F5CF8091E800FF -:1029F00085FF14C040E050E068E070E0CE010E9426 -:102A000096168091E8008E778093E80080E1FE01C1 -:102A1000A8E7B3E001900D928A95E1F7DF91CF919D -:102A2000089580910D04811109C00E942B180E9405 -:102A300088188091E20084608093E20008951092EB -:102A40000D040895089508950C94D02742E061EC98 -:102A500081E00E94A51742E061EC82E00E94A51788 -:102A600042E061EC83E00E94A51742E161EC84E062 -:102A70000C94A51780911004833009F455C030F4EC -:102A8000813071F0823009F48EC008958A3009F4E3 -:102A90007AC08B3009F460C0893009F09CC020C036 -:102AA00080910F04813A09F096C08091E800877FF9 -:102AB0008093E8008091130490911404892B21F4F1 -:102AC00060E188E793E003C060E080E090E070E0C0 -:102AD0000E94E1168091E8008B778093E8000895CA -:102AE00080910F04813209F076C080911304909197 -:102AF0001404009719F0039709F06DC08091E80065 -:102B0000877F8093E8008091E80082FD05C0809176 -:102B10000E048111F8CF5FC08091F100809388038B -:102B20008091E8008B7753C080910F04813A09F0BF -:102B300052C08091130490911404892B09F04BC06A -:102B40008091E800877F8093E8008091E80080FF13 -:102B5000FCCF8091860236C080910F048132D9F576 -:102B60008091130490911404892BA9F58091E800B9 -:102B7000877F8093E8000E94DA1780911104809388 -:102B800086020C944B2180910F04813221F58091B3 -:102B9000E800877F8093E8000E94DA178091120492 -:102BA00080938903089580910F04813AA1F4809164 -:102BB000E800877F8093E8008091E80080FFFCCFE9 -:102BC000809189038093F1008091E8008E77809353 -:102BD000E8000C94DA17089584B7877F84BF88E1F2 -:102BE0000FB6F89480936000109260000FBE90E0E2 -:102BF00080E80FB6F89480936100909361000FBE57 -:102C00000E947D1B0E942B180E9488188091E20070 -:102C100084608093E20078940E940E1B0E947F1BC8 -:102C20008CE792E00E94291B80910E04853069F4A4 -:102C30000E948A2780910C048823B1F30E94B82750 -:102C4000882391F30E948016EFCF0E94871BECCF60 -:102C5000292F332723303105C9F064F421303105A1 -:102C600081F02230310509F043C08DE690E022E882 -:102C700038E042C021323105F1F02232310541F114 -:102C800037C082E190E02FEE38E036C099278130DE -:102C9000910541F08230910541F0892B49F5EEE72D -:102CA000F8E005C0E0E5F8E002C0E6E2F8E0849173 -:102CB00090E09F0121C06430D8F4E62FF0E0EE0FE1 -:102CC000FF1FEE5FFC4F2081318189E090E014C04E -:102CD000643070F470E0FB01EE0FFF1FE650FD4F13 -:102CE00020813181FB01EA50FD4F808190E004C0DA -:102CF00080E090E020E030E0FA0131832083089505 -:102D000080E189BD82E189BD09B400FEFDCF8091DB -:102D1000D8008F7D8093D8008091E00082608093FE -:102D2000E0008091E00081FDFCCF0895CF92DF921A -:102D3000EF92FF920F931F93CF93DF93EC018B01E0 -:102D40006A010E94F917811133C0C114D10439F00E -:102D5000F60180819181081B190BC80FD91FE12C46 -:102D6000F12C0115110519F18091E80085FD16C0BF -:102D70008091E8008E778093E800C114D10449F077 -:102D8000F60180819181E80EF91EF182E08285E0F2 -:102D90000FC00E94F917882321F30AC089918093FC -:102DA000F10001501109FFEFEF1AFF0ADACF80E0BE -:102DB000DF91CF911F910F91FF90EF90DF90CF9017 -:102DC000089520911504309116042617370748F00E -:102DD0006115710539F42091E8002E772093E80001 -:102DE00001C0B90140E061157105A9F120910E04FF -:102DF000222309F443C0253009F442C02091E800A1 -:102E000023FD40C02091E80022FD32C02091E8005F -:102E100020FFE9CF4091F3002091F20030E0342B05 -:102E2000FC01CF016115710559F02830310540F4DE -:102E300081918093F100615071092F5F3F4FF1CF75 -:102E400041E02830310509F040E02091E8002E777C -:102E50002093E800C8CF4111C9CF0AC080910E0469 -:102E6000882361F0853061F08091E80083FD0AC01D -:102E70008091E80082FFF2CF80E0089582E008951B -:102E800083E0089581E0089520911504309116049F -:102E90002617370748F06115710539F42091E800CD -:102EA0002E772093E80001C0B901FC0120E06115F4 -:102EB000710591F180910E04882309F440C085309A -:102EC00009F43FC08091E80083FD3DC08091E80097 -:102ED00082FD2FC08091E80080FFE9CF2091F300B0 -:102EE0008091F20090E0922B6115710559F08830C5 -:102EF000910540F424912093F100319661507109BD -:102F00000196F2CF21E0089709F020E08091E800D7 -:102F10008E778093E800CBCF2111CCCF0AC080916F -:102F20000E04882361F0853061F08091E80083FD14 -:102F30000AC08091E80082FFF2CF80E0089582E02D -:102F4000089583E0089581E00895982F973058F50B -:102F50009093E900981739F07091EC002091ED0002 -:102F60005091F00003C0242F762F50E021FF19C0AC -:102F70003091EB003E7F3093EB003091ED003D7FD0 -:102F80003093ED003091EB0031603093EB007093A3 -:102F9000EC002093ED005093F0002091EE0027FF0D -:102FA00007C09F5FD3CF8F708093E90081E00895C1 -:102FB00080E0089580910F0487FF11C08091E800A0 -:102FC00082FD05C080910E048111F8CF11C080915F -:102FD000E8008B770BC080910E04882349F0809124 -:102FE000E80080FFF8CF8091E8008E778093E800BA -:102FF00008952091E4003091E50095E64091EC00C1 -:10300000842F817040FF22C08091E80080FD1CC0A9 -:1030100080910E04882391F0853091F08091EB002F -:1030200085FD10C04091E4005091E5004217530720 -:1030300029F39A01915011F784E0089582E00895F0 -:1030400083E0089581E0089580E008954091E800CC -:1030500042FFDECF08950E9499180E94A118E0EE69 -:10306000F0E0808181608083E8EDF0E080818F77FF -:10307000808319BCA7EDB0E08C918E7F8C9380810A -:103080008F7E808310920D0408950F931F93CF932A -:10309000DF930E9499180E94A118C8EDD0E08881A2 -:1030A0008F77888388818068888388818F7D8883F3 -:1030B00019BC10920E0410920A0410920C04109283 -:1030C0000B0400EE10E0F80180818B7F8083888103 -:1030D0008160888342E060E080E00E94A517E1EE15 -:1030E000F0E080818E7F8083E2EEF0E0808181607D -:1030F0008083808188608083F80180818E7F8083D7 -:10310000888180618883DF91CF911F910F9108950D -:10311000E8EDF0E080818F7E8083E7EDF0E0808154 -:103120008160808384E082BF81E080930D040C94F1 -:103130004518E8EDF0E080818E7F80831092E200F8 -:1031400008951092DA001092E10008951F920F92F4 -:103150000FB60F9211242F933F934F935F936F936A -:103160007F938F939F93AF93BF93EF93FF93809140 -:10317000E10082FF0BC08091E20082FF07C08091D6 -:10318000E1008B7F8093E1000E940D1B8091DA00AB -:1031900080FF1FC08091D80080FF1BC08091DA00A3 -:1031A0008E7F8093DA008091D90080FF0DC080E18E -:1031B00089BD82E189BD09B400FEFDCF81E0809325 -:1031C0000E040E94111505C019BC10920E040E9435 -:1031D0001F158091E10080FF19C08091E20080FFFF -:1031E00015C08091E2008E7F8093E2008091E20022 -:1031F00080618093E2008091D80080628093D80043 -:1032000019BC85E080930E040E9423158091E10093 -:1032100084FF30C08091E20084FF2CC080E189BD32 -:1032200082E189BD09B400FEFDCF8091D8008F7D79 -:103230008093D8008091E1008F7E8093E10080919F -:10324000E2008F7E8093E2008091E20081608093B3 -:10325000E20080910A04882311F084E007C0809185 -:10326000E30087FD02C081E001C083E080930E048B -:103270000E9424158091E10083FF29C08091E20023 -:1032800083FF25C08091E100877F8093E10082E089 -:1032900080930E0410920A048091E1008E7F809347 -:1032A000E1008091E2008E7F8093E2008091E20055 -:1032B00080618093E20042E060E080E00E94A51718 -:1032C0008091F00088608093F0000E942215FF91A9 -:1032D000EF91BF91AF919F918F917F916F915F918E -:1032E0004F913F912F910F900FBE0F901F90189507 -:1032F0001F920F920FB60F9211242F933F934F936B -:103300005F936F937F938F939F93AF93BF93CF936D -:10331000DF93EF93FF93C091E900CF708091EC00B1 -:10332000D82FD17080FDD0E81092E9008091F00094 -:10333000877F8093F00078940E94BC191092E90076 -:103340008091F00088608093F000CD2BCF70C09307 -:10335000E900FF91EF91DF91CF91BF91AF919F91E4 -:103360008F917F916F915F914F913F912F910F902E -:103370000FBE0F901F9018951F93CF93DF93CDB77B -:10338000DEB7AA970FB6F894DEBF0FBECDBFEFE051 -:10339000F4E088E08E0F9091F10091938E13FBCFB3 -:1033A0000E943A158091E80083FF1FC180910F04AD -:1033B00090911004492F50E04A30510508F015C192 -:1033C000FA01E857FF4F0C948431803881F082383D -:1033D00009F00BC1809113048F708093E9008091F4 -:1033E000EB0085FB882780F91092E90006C08091E8 -:1033F0000B0490910C04911182609091E800977FEA -:103400009093E8008093F1001092F100C8C0282F3B -:103410002D7F09F0EAC0882319F0823061F0E5C001 -:1034200080911104813009F0E0C0933009F080E010 -:1034300080930C042BC080911104811127C08091CE -:1034400013048F7009F4D1C08093E9002091EB0040 -:1034500020FF1CC0933021F48091EB00806214C0E7 -:103460009091EB0090619093EB0021E030E0A90196 -:1034700002C0440F551F8A95E2F74093EA0010926C -:10348000EA008091EB0088608093EB001092E900E5 -:103490008091E800877F86C08111A7C01091110438 -:1034A0001F778091E3008078812B8093E3008091E7 -:1034B000E800877F8093E8000E94DA178091E80097 -:1034C00080FFFCCF8091E30080688093E3001111BE -:1034D00002C082E001C083E080930E0486C0805861 -:1034E000823008F082C080911104909112048C3DCA -:1034F00053E0950779F583E08A838AE289834FB7A1 -:10350000F894DE01139620E03EE051E2E32FF0E074 -:1035100050935700E49120FF03C0E295EF703F5FA6 -:10352000EF708E2F90E0EA3010F0C79601C0C09681 -:103530008D939D932F5F243149F74FBF8091E80011 -:10354000877F8093E8006AE270E0CE0101960E94D6 -:10355000E11614C0AE014F5F5F4F609113040E94EB -:103560002816BC01009709F440C09091E800977FAD -:103570009093E80089819A810E9444178091E80025 -:103580008B778093E80031C0803879F58091E8002E -:10359000877F8093E80080910A048093F1008091F6 -:1035A000E8008E778093E8000E94DA171EC0811130 -:1035B0001CC0909111049230C0F48091E800877F84 -:1035C0008093E80090930A040E94DA1780910A041D -:1035D000811106C08091E30087FD02C081E001C037 -:1035E00084E080930E040E9426158091E80083FFFA -:1035F0000AC08091E800877F8093E8008091EB000B -:1036000080628093EB00AA960FB6F894DEBF0FBEDF -:10361000CDBFDF91CF911F9108950895CF938091F1 -:103620000E048823A1F0C091E900CF709091EC00C6 -:10363000892F817090FD80E8C82B1092E90080915D -:10364000E80083FD0E94BC19CF70C093E900CF91C0 -:10365000089590938F0380938E030895E0918E03D5 -:10366000F0918F03309721F00190F081E02D0994C3 -:1036700080E00895E0918E03F0918F03309721F060 -:103680000280F381E02D09940895E0918E03F0917A -:103690008F03309721F00480F581E02D099408957F -:1036A00020918C0330918D038217930771F09093D2 -:1036B0008D0380938C03E0918E03F0918F033097FC -:1036C00021F00680F781E02D0994089520918A0366 -:1036D00030918B038217930771F090938B03809343 -:1036E0008A03E0918E03F0918F03309721F00084DC -:1036F000F185E02D0994089508950C947C1B0E9497 -:1037000004280E949A0B0E948A280C94452D4F92FF -:103710005F927F928F929F92AF92BF92CF92DF92F1 -:10372000EF92FF920F931F93CF93DF93CDB7DEB746 -:103730002A970FB6F894DEBF0FBECDBF0E94890C4A -:1037400091E9C92E93E0D92E00E010E0AA24A394B9 -:10375000B12C702E802F0E94D20D4C01F6014190A9 -:1037600051906F014826592641145104B1F40F5F5E -:103770001F4F0430110569F78FEF89838A831B82FD -:103780000E940D288160782F9D838C8349815A8106 -:103790006B818D810E94401C3AC08091ED0381FDB8 -:1037A0000E94DB0D20E030E07501022E02C0EE0C1D -:1037B000FF1C0A94E2F7C70184219521892B09F1A6 -:1037C0002E837F828E209F2091E0892809F490E04B -:1037D00098870E940D288160782F9A8789874E816B -:1037E0005F8168858A850E94401C000F111FF801C7 -:1037F000EF56FC4F80819181E826F926F182E08224 -:1038000006C02F5F3F4F2C30310571F6B0CF0E94BC -:10381000762A109190030E942E1B1817D9F00E944F -:103820002E1B809390032A960FB6F894DEBF0FBE2E -:10383000CDBFDF91CF911F910F91FF90EF90DF905F -:10384000CF90BF90AF909F908F907F905F904F9060 -:103850000C94D20A2A960FB6F894DEBF0FBECDBFE5 -:10386000DF91CF911F910F91FF90EF90DF90CF905C -:10387000BF90AF909F908F907F905F904F900895F2 -:10388000CF93DF93CDB7DEB72B970FB6F894DEBF9B -:103890000FBECDBF4F83588769877A878B87DE013C -:1038A000119686E0FD0111928A95E9F785E0FE0107 -:1038B000379601900D928A95E1F749815A816B8183 -:1038C0007C818D819E810E94E5232B960FB6F89412 -:1038D000DEBF0FBECDBFDF91CF910895CF93882378 -:1038E00009F4C2C0C82F823859F40E942E1B81FDF2 -:1038F000BBC089E30E948E260E945B2789E30CC02F -:10390000833879F40E942E1B80FDAEC083E50E94AF -:103910008E260E945B2783E50E94D026CF910C94CF -:103920005B27843859F40E942E1B82FD9DC087E4DA -:103930000E948E260E945B2787E4EECF8CEF8C0FCF -:10394000813A48F48C2F0E94AD2C81118DC08C2FB0 -:103950000E948E26E3CF80E28C0F883048F4C77037 -:1039600081E001C0880FCA95EAF70E941427D6CFDC -:103970008BE58C0F833078F4C53A29F0C63A31F0E4 -:1039800083E890E005C081E890E002C082E890E022 -:10399000CF910C94501B88E58C0F833108F064C0E4 -:1039A000C83A39F1C93A41F1CA3A49F1CB3A51F131 -:1039B000CC3A59F1CD3A61F1C03B69F1CE3A71F19F -:1039C000CF3A79F1C13B81F1C23B89F1C33B91F11F -:1039D000C43B99F1C53BA1F1C63BA9F1C73BB1F18D -:1039E000C83BB9F1C93BC1F1CA3BC9F180E090E0E5 -:1039F00038C082EE90E035C089EE90E032C08AEEA9 -:103A000090E02FC085EB90E02CC086EB90E029C0C1 -:103A100087EB90E026C08CEC90E023C08DEC90E02A -:103A200020C083E891E01DC08AE891E01AC082E9D5 -:103A300091E017C084E991E014C081E292E011C0E6 -:103A400083E292E00EC084E292E00BC085E292E055 -:103A500008C086E292E005C087E292E002C08AE2F6 -:103A600092E0CF910C94661BCF910895882309F4BE -:103A70004BC0823859F40E942E1B81FF45C089E358 -:103A80000E948E260E945B2789E30CC0833871F464 -:103A90000E942E1B80FF38C083E50E948E260E9464 -:103AA0005B2783E50E94D0260C945B27843859F469 -:103AB0000E942E1B82FF28C087E40E948E260E944F -:103AC0005B2787E4EFCF9CEF980F913A58F390E291 -:103AD000980F983050F4877091E001C0990F8A9543 -:103AE000EAF7892F0E941A27DFCF9BE5980F9330C2 -:103AF00020F480E090E00C94501B885A833120F42D -:103B000080E090E00C94661B0895882321F00E94C9 -:103B100014270C945B270895882321F00E941A270C -:103B20000C945B270895BF92CF92DF92EF92FF92A1 -:103B30000F931F93CF93DF9300D000D000D0CDB769 -:103B4000DEB725E0FC01DE01119601900D922A9569 -:103B5000E1F7FC01D08011810281258122952F702F -:103B600043815481452B09F472C31F3F21F4FFEFB9 -:103B7000DF1609F46CC37C012E830E949B07D98257 -:103B80001A8369817A81802F0E948A26182FB92E84 -:103B90000E943F260E9406252E81002319F00E94D4 -:103BA00031272E81EB2DE295EF70F0E0EE56FF4FBE -:103BB0000C9484318B2D807F9B2D9F70F92E882350 -:103BC00019F0F29480EFF822002389F0FF2009F425 -:103BD0007CC280E2810F883020F48F2D0E94142750 -:103BE00003C08F2D0E9424270E945B276EC2812F65 -:103BF0000E94361DFF2009F42AC3105E8F2D183055 -:103C000018F40E941A2702C00E942A2726960FB68F -:103C1000F894DEBF0FBECDBFDF91CF911F910F9102 -:103C2000FF90EF90DF90CF90BF900C945B278B2D8F -:103C3000807F9B2D9F70803211F4892F03C0892FC4 -:103C40008295807F112319F0113011F12BC00023D0 -:103C5000A9F0222389F1213079F526960FB6F89440 -:103C6000DEBF0FBECDBFDF91CF911F910F91FF90AF -:103C7000EF90DF90CF90BF900C944427222319F04F -:103C8000213009F4E4C28E830E9447278E819BC1B4 -:103C9000002321F0263008F0DAC20EC0253008F0EB -:103CA000D6C291C10023C9F0222331F0F7019581DA -:103CB00090FF0BC29F70958326960FB6F894DEBFD7 -:103CC0000FBECDBFDF91CF911F910F91FF90EF906D -:103CD000DF90CF90BF900C94851D222309F473C10F -:103CE00009C22B2D26952695237030E0211531052C -:103CF00021F021303105D1F0AAC2002321F0812F1B -:103D00009B2D937002C080E090E026960FB6F89449 -:103D1000DEBF0FBECDBFDF91CF911F910F91FF90FE -:103D2000EF90DF90CF90BF900C94501B002321F0B8 -:103D3000812F9B2D937002C080E090E026960FB6F5 -:103D4000F894DEBF0FBECDBFDF91CF911F910F91D1 -:103D5000FF90EF90DF90CF90BF900C94661B812F67 -:103D6000002319F00E947E2902C00E94E6292696AF -:103D70000FB6F894DEBF0FBECDBFDF91CF911F917C -:103D80000F91FF90EF90DF90CF90BF900C946B2A33 -:103D90008B2D837009F07BC0011159C2812F829550 -:103DA00086958770880F880F912F9F70C92ED12C10 -:103DB000E12CF12C082E04C0CC0CDD1CEE1CFF1CE9 -:103DC0000A94D2F714FF12C04FE050E060E070E0B8 -:103DD00004C0440F551F661F771F8A95D2F7CB0189 -:103DE000BA01609570958095909503C060E070E091 -:103DF000CB012B2D269526952370422F50E0423083 -:103E00005105D9F04330510569F16C297D298E297E -:103E10009F294130510551F126960FB6F894DEBF27 -:103E20000FBECDBFDF91CF911F910F91FF90EF900B -:103E3000DF90CF90BF900C942D256C297D298E2981 -:103E40009F2926960FB6F894DEBF0FBECDBFDF9137 -:103E5000CF911F910F91FF90EF90DF90CF90BF9087 -:103E60000C9449250E942D25C701B60126960FB650 -:103E7000F894DEBF0FBECDBFDF91CF911F910F91A0 -:103E8000FF90EF90DF90CF90BF900C94112500230E -:103E900019F08B2D817001C08695882309F4D7C154 -:103EA000812F829586958770880F880F912F9F703C -:103EB000C92ED12CE12CF12C082E04C0CC0CDD1C19 -:103EC000EE1CFF1C0A94D2F714FF12C04FE050E022 -:103ED00060E070E004C0440F551F661F771F8A958D -:103EE000D2F7CB01BA01609570958095909503C08B -:103EF00060E070E0CB012B2D269526952370422F94 -:103F000050E042305105D9F04330510569F16C2938 -:103F10007D298E299F294130510551F126960FB6F2 -:103F2000F894DEBF0FBECDBFDF91CF911F910F91EF -:103F3000FF90EF90DF90CF90BF900C9407266C29F4 -:103F40007D298E299F2926960FB6F894DEBF0FBED5 -:103F5000CDBFDF91CF911F910F91FF90EF90DF9038 -:103F6000CF90BF900C9423260E940726C701B6016C -:103F700026960FB6F894DEBF0FBECDBFDF91CF916E -:103F80001F910F91FF90EF90DF90CF90BF900C9416 -:103F9000EB25103F49F118F4103E48F491C0123F50 -:103FA00009F453C0E8F1133F09F464C089C01F70DD -:103FB0008B2D8F71002321F00E948425812F7CCED0 -:103FC0000E94A525812F26960FB6F894DEBF0FBE5E -:103FD000CDBFDF91CF911F910F91FF90EF90DF90B8 -:103FE000CF90BF900C948C1D0023B1F0253008F0C9 -:103FF0002EC18B2D8F7126960FB6F894DEBF0FBEA3 -:10400000CDBFDF91CF911F910F91FF90EF90DF9087 -:10401000CF90BF900C94CA25263008F018C1E9CF84 -:104020000023A9F08B2D8F7126960FB6F894DEBF72 -:104030000FBECDBFDF91CF911F910F91FF90EF90F9 -:10404000DF90CF90BF900C948425002359F38B2DE3 -:104050008F7126960FB6F894DEBF0FBECDBFDF91ED -:10406000CF911F910F91FF90EF90DF90CF90BF9075 -:104070000C94A525002399F08B2D8F7126960FB6F1 -:10408000F894DEBF0FBECDBFDF91CF911F910F918E -:10409000FF90EF90DF90CF90BF900C946F25269605 +:100770000000000000000000000000000000010078 +:100780000050010001000100010001000100010012 +:10079000010001004C00010001000100073006309B +:1007A000135012500030013002300C3001000100B3 +:1007B0000B300A300930083001000100010001004F +:1007C0000100010001000100010001000100010021 +:1007D00001000100010001000100010001002803E7 +:1007E000540068006500200050006C0061006E003D +:1007F00063006B0020004B006500790062006F0011 +:1008000061007200640000002C034F00720074004D +:1008100068006F006C0069006E0065006100720086 +:1008200020004B006500790062006F0061007200DB +:100830006400730000000403090409026D00040150 +:1008400000A0FA09040000010301010009211101BF +:100850000001223F000705810308000A0904010086 +:100860000103010200092111010001224D000705C9 +:10087000820308000A0904020001030000000921A4 +:10088000110100012236000705830308000A09044C +:1008900003000103000000092111010001223900B9 +:1008A000070584031000011201100100000008ED8B +:1008B000FE606001000102000105010906A10105B9 +:1008C0000719E029E7150025019508750181020542 +:1008D0000819012905950575019102950175039186 +:1008E0000105071900297715002501957875018103 +:1008F00002C005010980A101850216010026B7008A +:100900001A01002AB700751095018100C0050C0975 +:1009100001A1018503160100269C021A01002A9CF0 +:1009200002751095018100C005010902A1010901AC +:10093000A100050919012905150025019505750175 +:100940008102950175038101050109300931158185 +:10095000257F95027508810609381581257F950147 +:1009600075088106050C0A38021581257F950175E9 +:10097000088106C0C005010906A101050719E02983 +:10098000E71500250195087501810295017508811B +:100990000105081901290595057501910295017553 +:1009A0000391010507190029FF150025FF9506751C +:1009B000088100C011241FBECFEFDAE0DEBFCDBF3B +:1009C00004B603FE24C08091690490916A04A0914A +:1009D0006B04B0916C048730904BA740B04BB9F4D6 +:1009E0001092690410926A0410926B0410926C04C5 +:1009F00014BE84B7877F84BF88E10FB6F8948093D4 +:100A00006000109260000FBEE0E0F8E3099513E08B +:100A1000A0E0B1E0E2E4F4E602C005900D92A23657 +:100A2000B107D9F714E0A2E6B3E001C01D92A936E0 +:100A3000B107E1F70E94FD150C941F320C940000E1 +:100A4000279A2F988FEF9FEF9093870080938600CF +:100A50008AE08093800089E1809381000C94562D78 +:100A6000282F81110BC080918000877F80938000A8 +:100A700010928D0010928C002F9808952F988091DD +:100A80008000886080938000233019F48FEF9FEFFF +:100A90000FC083E090E0821B9109880F991F2FEF10 +:100AA0003FEFA90102C0569547958A95E2F7CA0122 +:100AB00090938D0080938C000895CF93DF93EC0189 +:100AC0000E94ED28BE0180E090E0DF91CF910C9470 +:100AD00018250F931F93462F50E04E30510508F014 +:100AE000DEC0DC01FA01EA5AFF4F12968C910C9499 +:100AF000E331882309F4D3C000E010E0980140E01E +:100B000064E070E089E292E00E942B1281E090E0C4 +:100B10000FC0882309F4C3C000E010E0980140E052 +:100B200066E070E089EB91E00E942B1282E090E099 +:100B30000E945D05B4C0882309F4B1C000E010E054 +:100B4000980140E068E070E089EE91E00E942B128D +:100B500084E090E0EDCF882311F083E005C083E0CE +:100B60000CC0882349F084E00E94952540E164E0B0 +:100B700083E00E946D0A93C084E00E94B625F6CF00 +:100B8000882331F085EE0E947F1C0E94AD2D87C026 +:100B900085EE0E94471D83C0882309F480C00E940F +:100BA000BF0D7DC0882309F47AC00E94B80D00E013 +:100BB00010E0980140E065E070E089E492E027C031 +:100BC000882309F46CC085E00E94B6250E94E00DE0 +:100BD00066C0882309F463C000E010E0980140E09B +:100BE00068E070E089E191E00E942B1285E00E94AC +:100BF000952555C0882309F452C00E94BE1200E01A +:100C000010E0980140E068E070E089E191E00E9426 +:100C10002B1245C0882309F442C00E94C912EFCFAD +:100C20008823E9F100E010E0980140E066E070E020 +:100C300089E891E00E942B1284E00E94B62583E0AF +:100C40000E94B62580E10E94B62585E00E94B62567 +:100C50000E94E00D86E00E9495250E94DA2881110D +:100C600002C00E94B6280E94F22890E09093680487 +:100C7000809367048068809367040E94F6280FC001 +:100C8000882369F000E010E0980140E066E070E041 +:100C900089E591E00E942B1286E00E94B62580E053 +:100CA00090E01F910F9108950F931F932FEF89EFFD +:100CB00090E0215080409040E1F700C0000000E04B +:100CC00010E0980140E065E070E089E492E00E9465 +:100CD0002B121F910F9108950F931F9300E010E0C6 +:100CE000980140E063E070E081E091E00E942B1207 +:100CF0002FEF82E597E0215080409040E1F700C05F +:100D000000001F910F910895CF92DF92EF92FF9212 +:100D10000F931F93CF93DF93CDB7DEB7CC58D10994 +:100D20000FB6F894DEBF0FBECDBF2091210425FF82 +:100D3000C5C08C01FC01928180910001992309F4C6 +:100D400060C096E4EEE8F2E0DE01A95BBF4F0190DF +:100D50000D929A95E1F7F8019081E0916203F0918C +:100D60006303E90FF11DEE0FFF1F27E430E02C0FA6 +:100D70003D1FE20FF31F60817181680F711D88278D +:100D800077FD8095982F0E94F12E20E030E040E41E +:100D900051E40E94562E6B017C01F801218184E010 +:100DA00090E0821B9109BC01882777FD8095982FE0 +:100DB0000E94F12E9B01AC01C701B6010E94EE2DED +:100DC0009B01AC0160E070E080E090E40E94643040 +:100DD00020E030E04CE551E40E9401304FE050E06B +:100DE000C457DF4F0FB6F894DEBF0FBECDBFDF9103 +:100DF000CF911F910F91FF90EF90DF90CF900C94C7 +:100E0000CB1196E4EEE8F2E0DE01119601900D922E +:100E10009A95E1F7F8019081E0916203F091630304 +:100E2000E90FF11DEE0FFF1F21E030E02C0F3D1FF9 +:100E3000E20FF31F60817181680F711D882777FDB4 +:100E40008095982F0E94F12E20E030E040E451E49C +:100E50000E94562E6B017C01F801218184E090E014 +:100E6000821B9109BC01882777FD8095982F0E94ED +:100E7000F12E9B01AC01C701B6010E94EE2D9B0132 +:100E8000AC0160E070E080E090E40E94643020E01B +:100E900030E04CE551E40E940130C457DF4F0FB6FB +:100EA000F894DEBF0FBECDBFDF91CF911F910F91A0 +:100EB000FF90EF90DF90CF900C94130EC457DF4F4C +:100EC0000FB6F894DEBF0FBECDBFDF91CF911F915B +:100ED0000F91FF90EF90DF90CF90089508950E94BA +:100EE00020056E9A769A0C9454060C946E070C9416 +:100EF00084060895880F991FFC01E250F040859107 +:100F000094910895880F991FFC01E258FE4F859136 +:100F1000949108950F931F93CF93DF93EC01811564 +:100F200020E49207A0F5C11580E3D80708F0E1C0DE +:100F3000C83ED105D8F4C03ED10508F0EEC1C83A8C +:100F4000D10578F4C53AD10508F074C0C130D10597 +:100F500009F46DC008F4DEC1C430D10508F0DDC16C +:100F6000D9C1CB3BD10508F470C0D4C1C11590E202 +:100F7000D90708F0B9C0C11521E0D20708F0CDC1EA +:100F8000C03FD10508F4C6C18E01106506C2C1304C +:100F900080E5D80709F4BDC068F5C13120E4D20767 +:100FA00009F4AEC050F4C03190E4D90708F0A5C0F0 +:100FB000CF70DD278E01146DF0C1C33120E4D2075C +:100FC00009F4A4C008F49FC0C115D04509F0A2C11E +:100FD0000E945C210E94E00D0E946C069FEF24E3BA +:100FE0008CE0915020408040E1F700C000000E945A +:100FF0007928D3C1C11520E6D20730F4C11581E5A7 +:10100000D80708F48CC02DC1C11590E7D90708F4A2 +:1010100081C1C11520E8D20708F478C1C11580E963 +:10102000D80708F077C1DF708E01106AB6C101E001 +:1010300010E0B3C1C53AD10509F471C1C63AD10572 +:1010400009F070C102E810E4A8C1C83AD10509F45A +:101050006CC1C93AD10509F46BC1CA3AD10509F48A +:101060006AC1CB3AD10509F469C1CC3AD10509F47A +:1010700068C1CD3AD10509F467C1C03BD10509F477 +:1010800066C1CE3AD10509F465C1CF3AD10509F45C +:1010900064C1C13BD10509F463C1C23BD10509F468 +:1010A00062C1C33BD10509F461C1C43BD10509F458 +:1010B00060C1C53BD10509F45FC1C63BD10509F448 +:1010C0005EC1C73BD10509F45DC1C83BD10509F438 +:1010D0005CC1C93BD10509F45BC1CA3BD10509F428 +:1010E0005AC100E014E459C1CE019F700E948207EA +:1010F00055C1DD278E01106C50C100E011ED4DC1CE +:1011000000E010ED4AC100E012ED47C100E013ED30 +:1011100044C180913D04816080933D043EC10E94A2 +:10112000DA28811102C00E94B6280E94F22890E0BD +:101130009093680480936704C23090E5D90721F446 +:1011400080916704816086C0C43020E5D20721F415 +:101150008091670482607EC0C63080E5D80721F4A4 +:1011600080916704846076C0C83090E5D90719F48F +:101170008091670427C0CA3020E5D20721F480910E +:101180006704806167C0CC3080E5D80721F4809186 +:10119000670480625FC0CE3090E5D90721F480916A +:1011A0006704806457C0C03120E5D20721F48091E4 +:1011B000670480684FC0C23180E5D80729F4809168 +:1011C00067048460886046C0C33090E5D90721F485 +:1011D000809167048E7F3EC0C53020E5D20721F4A0 +:1011E000809167048D7F36C0C73080E5D80721F431 +:1011F000809167048B7F2EC0C93090E5D90719F420 +:101200008091670426C0CB3020E5D20721F480917D +:1012100067048F7E1FC0CD3080E5D80721F4809110 +:1012200067048F7D17C0CF3090E5D90721F48091F6 +:1012300067048F7B0FC0C13120E5D20721F4809174 +:1012400067048F7707C0C331D04531F480916704BC +:101250008B7F877F80936704809167040E94F628C4 +:101260009CC08D2F99278F70992781309105D9F4D3 +:101270009E012370332702C0880F991F2A95E2F739 +:101280009C688E0144E0000F111F4A95E1F700278A +:101290001370802B912B53E0CC0FDD1F5A95E1F793 +:1012A000C076DD272FC08230910531F4DC2FCC27AA +:1012B0008E01016F106A71C08330910569F4CE010F +:1012C0008370992701E010E002C0000F111F8A957A +:1012D000E2F7C8019C680FC0049709F05EC0CE0118 +:1012E0008370992701E010E002C0000F111F8A955A +:1012F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D9 +:10130000C07ED7708C010C2B1D2B47C0DF708E0167 +:10131000106243C000E010E040C08E013EC001E812 +:1013200010E43BC003E810E438C002EE14E435C01A +:1013300009EE14E432C00AEE14E42FC005EB14E405 +:101340002CC006EB14E429C007EB14E426C00CEC17 +:1013500014E423C00DEC14E420C003E815E41DC020 +:101360000AE815E41AC002E915E417C004E915E417 +:1013700014C001E216E411C003E216E40EC004E258 +:1013800016E40BC005E216E408C006E216E405C048 +:1013900007E216E402C00AE216E4C801DF91CF9129 +:1013A0001F910F9108959CE0799FF001112490E323 +:1013B000899FE00DF11D1124E60FF11DEE0FFF1FB7 +:1013C000E258FE4F85919491803E9105E0F4803C77 +:1013D000910558F58133910509F46FC048F48932BD +:1013E000910509F463C08A32910509F46DC072C099 +:1013F00089339105E9F082389105D1F08533910563 +:1014000009F44DC067C0833E910581F138F4803EF8 +:101410009105B9F0823E9105D9F05CC0863E9105F8 +:1014200061F1873E9105A1F155C00E947A070895A8 +:101430002091670420FD02C021FF4CC080EE90E0A7 +:1014400049C08091670480FFF9CF89E390E042C0F2 +:101450008091670482FF0EC08091670484FF03C0FF +:1014600080E090E037C083EE90E034C08091670464 +:1014700082FFF2CF82EE90E02DC08091670483FF5F +:101480000BC08091670484FDEBCF87EE90E022C013 +:101490008091670483FFF5CF86EE90E01BC08091BA +:1014A000670485FF07C089E290E014C0809167045B +:1014B00085FFF9CF85E390E00DC08091670486FF3A +:1014C00007C08AE290E006C08091670486FFF9CFEA +:1014D00081E390E00E948A070895CF92DF92EF9215 +:1014E000FF920F931F9301E010E020E030E06801CD +:1014F000790104C0CC0CDD1CEE1CFF1C8A95D2F7D0 +:1015000004C0000F111F221F331F6A95D2F70C2948 +:101510001D292E293F29C0902104D0902204E0905B +:101520002304F0902404C022D122E222F322842F4B +:10153000C016D106E206F30641F41F910F91FF9009 +:10154000EF90DF90CF900C9495251F910F91FF9015 +:10155000EF90DF90CF900C94B62508950C94AD0ACF +:101560005F926F927F928F929F92AF92BF92CF9233 +:10157000DF92EF92FF920F931F93CF93DF93CDB73C +:10158000DEB728970FB6F894DEBF0FBECDBFCE01F1 +:1015900001966C014E0199E0890E911C20E030E02B +:1015A00040E050E060E070E000E010E0E12CF12C61 +:1015B0006C2C5D2C88E0782EAA24A394B12CE4ED49 +:1015C000F2E0A62DB52D872D01900D928A95E1F7B9 +:1015D000F601819191916F01FC01E07FFF27E032DC +:1015E000F10559F48F709927F50102C0EE0FFF1F26 +:1015F0008A95E2F7EE2AFF2A37C0E033F10559F465 +:101600008F709927F50102C0EE0FFF1F8A95E2F750 +:101610000E2B1F2B29C0E034F10559F48F70992748 +:10162000F50102C0EE0FFF1F8A95E2F76E2B7F2BAC +:101630001BC0E035F10559F48F709927F50102C000 +:10164000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A1 +:10165000F10551F48F709927F50102C0EE0FFF1FBD +:101660008A95E2F72E2B3F2BC814D90409F0A7CF97 +:1016700084B19E2D9095892384B985B1E82AE5B877 +:1016800087B1902F9095892387B988B1082B08B925 +:101690008AB1962F909589238AB98BB1682B6BB943 +:1016A0008DB1942F909589238DB98EB1482B4EB969 +:1016B00080B3922F9095892380BB81B3282B21BBC7 +:1016C00028960FB6F894DEBF0FBECDBFDF91CF9145 +:1016D0001F910F91FF90EF90DF90CF90BF90AF9050 +:1016E0009F908F907F906F905F9008955F926F9220 +:1016F0007F928F929F92AF92BF92CF92DF92EF92A2 +:10170000FF920F931F93CF93DF93CDB7DEB7689708 +:101710000FB6F894DEBF0FBECDBF85B7806885BF1A +:1017200085B7806885BF0E94B00ACE0101966C0122 +:101730004E0199E1890E911C20E030E040E050E03C +:1017400060E070E000E010E0E12CF12C6C2C5D2CEE +:1017500088E1782EAA24A394B12CECEDF2E0A62D1A +:10176000B52D872D01900D928A95E1F7F6018191B3 +:1017700091916F01FC01E07FFF27E032F10559F400 +:101780008F709927F50102C0EE0FFF1F8A95E2F7CF +:10179000EE2AFF2A37C0E033F10559F48F709927FC +:1017A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEB +:1017B00029C0E034F10559F48F709927F50102C072 +:1017C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D3 +:1017D000F10559F48F709927F50102C0EE0FFF1F34 +:1017E0008A95E2F74E2B5F2B0DC0E036F10551F4E0 +:1017F0008F709927F50102C0EE0FFF1F8A95E2F75F +:101800002E2B3F2BC814D90409F0A7CF84B19E2DED +:101810009095892384B985B1E82AE5B887B1902FDE +:101820009095892387B988B1082B08B98AB1962F7A +:10183000909589238AB98BB1682B6BB98DB1942FA0 +:10184000909589238DB98EB1482B4EB980B3922FD4 +:101850009095892380BB81B3282B21BB10926D0307 +:1018600010926C03109265031092640310926F0340 +:1018700010926E0310926703109266031092710328 +:101880001092700310926903109268031092730310 +:101890001092720310926B0310926A0368960FB64F +:1018A000F894DEBF0FBECDBFDF91CF911F910F9196 +:1018B000FF90EF90DF90CF90BF90AF909F908F9070 +:1018C0007F906F905F900C946F077F928F929F92A2 +:1018D000AF92BF92CF92DF92EF92FF920F931F933E +:1018E000CF93DF93CDB7DEB7A0970FB6F894DEBFE6 +:1018F0000FBECDBF6E0149E1C40ED11C84E6E82EB7 +:1019000083E0F82E98E0792EBC2CAD2C01E010E09D +:1019100028E1822E35E0932EE4EDF2E0AB2DBA2DD6 +:10192000872D01900D928A95E1F7F60181919191B1 +:101930006F019C01207F33272032310591F424B1BF +:101940008F709927A80102C0440F551F8A95E2F7AE +:10195000CA01922F982B94B995B18095892385B9A6 +:1019600053C02033310591F427B18F709927F801C6 +:1019700002C0EE0FFF1F8A95E2F7CF01922F982B3E +:1019800097B998B18095892388B93EC02034310534 +:1019900091F42AB18F709927A80102C0440F551FF6 +:1019A0008A95E2F7CA01922F982B9AB99BB180953C +:1019B00089238BB929C02035310591F42DB18F7061 +:1019C0009927F80102C0EE0FFF1F8A95E2F7CF01B9 +:1019D000922F982B9DB99EB1809589238EB914C002 +:1019E0002036310589F420B38F709927A80102C0F1 +:1019F000440F551F8A95E2F7CA01922F982B90BB8E +:101A000091B38095892381BB50EA5A95F1F7BE01C5 +:101A10006F5F7F4F20E030E040E050E0ECEDF2E01F +:101A2000DE011196882D01900D928A95E1F7FB0158 +:101A300081919191BF01FC01E07FFF27E032F10528 +:101A400011F4E3B113C0E033F10511F4E6B10EC0B7 +:101A5000E034F10511F4E9B109C0E035F10511F404 +:101A6000ECB104C0E036F105B9F4EFB1F0E08F70ED +:101A7000992702C0F595E7958A95E2F7E0FD08C041 +:101A8000C801042E02C0880F991F0A94E2F702C011 +:101A900080E090E0282B392B4F5F5F4F4C30510591 +:101AA00009F0BCCFF701808191818217930721F063 +:101AB00031832083909271020E94B00AF2E0EF0E0F +:101AC000F11C4CE6E41643E0F40609F025CF8091C2 +:101AD0007102882361F1815080937102882339F06B +:101AE0008FE99FE00197F1F700C0000020C08091CE +:101AF00064039091650390936D0380936C038091D0 +:101B000066039091670390936F0380936E038091B7 +:101B1000680390916903909371038093700380919F +:101B20006A0390916B0390937303809372030E94F6 +:101B3000750781E0A0960FB6F894DEBF0FBECDBF4B +:101B4000DF91CF911F910F91FF90EF90DF90CF9099 +:101B5000BF90AF909F908F907F900895E82FF0E016 +:101B6000EE0FFF1FE459FC4F808191810895089585 +:101B7000809152048160809352040C9408298091D2 +:101B800052048E7F809352040C9408290E94DA2814 +:101B9000811102C00E94B6280E9404298093520439 +:101BA0003E9A809171008D7F8093710082E08093D6 +:101BB00090008AE18093910081E0809376030895FC +:101BC00080917603811102C00E94C60D1092C60357 +:101BD0001092C503809171008D7F80937100809178 +:101BE00090008F7780939000109288031092870363 +:101BF0001092BF031092C0031092C1031092C2034F +:101C00001092BE031092BD03EDE9F3E0ADE8B3E03E +:101C100011921192119211921D921D9283E0ED3B4F +:101C2000F807B1F70895CF92DF92EF92FF920F93EA +:101C30001F93CF93DF9320918703222309F484C05D +:101C40006B017C0180917603811102C00E94C60D58 +:101C50000DEB13E0C7E0D0E0A7019601F8019291E7 +:101C60008291729162918F010E94522E811131C036 +:101C7000FE01EE0FFF1FEE0FFF1FE356FC4F108219 +:101C8000118212821382DE01AA0FBB1FA357BC4F21 +:101C900011961C921E92C730D105E9F0219644811D +:101CA0005581668177814083518362837383148277 +:101CB00015821682178212968D919C911397119618 +:101CC0009C938E9313961C921E92129734961296A2 +:101CD000E2CF219708F68091C5039091C603019742 +:101CE00097FD05C09093C6038093C50304C010926E +:101CF000C6031092C5038091C5039091C60320913D +:101D0000C3033091C4032817390724F01092C40389 +:101D10001092C303892BC1F4809171008D7F809351 +:101D20007100809190008F77809390001092BF0394 +:101D30001092C0031092C1031092C2031092BE030E +:101D40001092BD0310928703DF91CF911F910F91E5 +:101D5000FF90EF90DF90CF9008951F920F920FB6F3 +:101D60000F9211244F925F926F927F928F929F9267 +:101D7000AF92BF92CF92DF92EF92FF922F933F9359 +:101D80004F935F936F937F938F939F93AF93BF9383 +:101D9000CF93DF93EF93FF9380918703882309F418 +:101DA0009BC1C091C503D091C6031C161D060CF043 +:101DB00093C14090770350907803609079037090BE +:101DC0007A0320E030E0A901C301B2010E94FD2F97 +:101DD00018160CF065C0C130D10509F452C08091CD +:101DE000C3039091C403BE010E94CF317C01909344 +:101DF000C4038093C3038090890390908A03A090CA +:101E00008B03B0908C0320E030E040E85FE3C50135 +:101E1000B4010E94EE2D6093890370938A0380932E +:101E20008B0390938C03F701EE0FFF1FEE0FFF1F44 +:101E3000E356FC4FA30192016081718182819381FD +:101E40000E94562E20E030E040E05EE30E94013028 +:101E50009B01AC01C501B4010E94FD2F18168CF442 +:101E6000C7010196BE010E94CF319093C4038093B5 +:101E7000C3031092890310928A0310928B0310926D +:101E80008C03E091C303F091C403EE0FFF1FEE0F2C +:101E9000FF1FE356FC4F6081718182819381D0C026 +:101EA000C090BF03D090C003E090C103F090C20384 +:101EB00020E030E0A901C701B6010E94522E21970F +:101EC000882309F4A2C0FE01EE0FFF1FEE0FFF1FD3 +:101ED000E356FC4F80809180A280B380A5019401DD +:101EE000C701B6010E94522E87FF31C0A50194019F +:101EF00060E070E08CED93EC0E94562E20E030E024 +:101F000040E451E40E94562E20E030E040E05FE3E0 +:101F10000E9401309B01AC0160E070E080E090E441 +:101F20000E9464309B01AC01C501B4010E940130E4 +:101F30009B01AC01C701B6010E94522E87FF07C06A +:101F4000A701960160E070E08CED93E439C0A50133 +:101F50009401C701B6010E94FD2F18160CF055C060 +:101F6000A501940160E070E08CED93E40E94562E90 +:101F700020E030E040E451E40E94562E20E030E0C2 +:101F800040E05FE30E9401309B01AC0160E070E043 +:101F900080E090E40E9464309B01AC01C501B40173 +:101FA0000E9401309B01AC01C701B6010E94FD2FC8 +:101FB00018165CF5A701960160E070E08CED93ECDB +:101FC0000E94562E20E030E040E451E40E94562E5C +:101FD00020E030E040E05FE30E9401309B01AC0173 +:101FE00060E070E080E090E40E9464309B01AC010E +:101FF000C701B6010E9401306093BF037093C00314 +:102000008093C1039093C20313C0FE01EE0FFF1F24 +:10201000EE0FFF1FE356FC4F80819181A281B381B7 +:102020008093BF039093C003A093C103B093C203F6 +:102030006091BF037091C0038091C1039091C2036E +:1020400020917403309175032F3F4FEF340731F027 +:102050002F5F3F4F30937503209374030E94D41277 +:102060006B017C0120E034E244EF51E40E94522EE7 +:1020700087FF08C086EFC82E88E2D82E84EFE82EAE +:1020800081E4F82E20E030E040E051E4C701B601E1 +:102090000E9401309B01AC0160E074E284E79BE4A4 +:1020A0000E94562E6B017C010E94BE2E70939700F9 +:1020B00060939600209172023091730240917402F5 +:1020C00050917502C701B6010E9401300E94BE2ED8 +:1020D000709399006093980080918803882309F495 +:1020E00033C1C0908303D0908403E0908503F090C7 +:1020F000860320E030E0A901C701B6010E94FD2F50 +:102100001816D4F580917403909175038F3F2FEFCB +:10211000920729F001969093750380937403C70189 +:10212000B6010E94D41220E030E040E051E40E9469 +:1021300001309B01AC0160E074E284E79BE40E9403 +:10214000562E6B017C010E94BE2E70939700609307 +:102150009600209172023091730240917402509166 +:102160007502C701B6010E9401300E94BE2E709315 +:1021700099006093980008C0109297001092960002 +:10218000109299001092980060917D0370917E03E7 +:102190006F5F7F4F70937E0360937D032091960065 +:1021A0003091970080E090E0232BF1F0C0919600F1 +:1021B000D09197000E94EF2E6B017C01BE0180E060 +:1021C00090E00E94EF2E9B01AC0160917F03709123 +:1021D000800380918103909182030E94562E20E01B +:1021E0003FEF4FE757E410C00E94EF2E6B017C01D8 +:1021F00020E030EE4FEF54E460917F037091800354 +:1022000080918103909182030E9401309B01AC0177 +:10221000C701B6010E94FD2F87FD96C080917B0308 +:102220008F5F80937B0390E020914E0430914F04A8 +:1022300082179307A0F080915904882319F0109217 +:102240007B030DC0809171008D7F80937100809120 +:1022500090008F7780939000109288037DC08091CA +:102260007C03C0917B03811128C0C0905304D0909F +:102270005404E0905504F090560420E030E0A901A9 +:10228000C701B6010E94FD2F1816BCF481E08093AF +:102290007C031092830310928403109285031092A2 +:1022A0008603C0927F03D0928003E0928103F09274 +:1022B0008203C150C0937B0343C010927C031092F1 +:1022C000750310927403E0915004F091510448E0BA +:1022D000C49FE00DF11D112480819181A281B38101 +:1022E0008093830390938403A0938503B093860324 +:1022F00020E030E040E85EE364817581868197816B +:102300000E9401306B017C0120E030E048EC52E497 +:1023100060917602709177028091780290917902B3 +:102320000E94562E9B01AC01C701B6010E940130EC +:1023300060937F0370938003809381039093820363 +:1023400010927E0310927D038091520480FD04C0A0 +:102350001092880310928703FF91EF91DF91CF9144 +:10236000BF91AF919F918F917F916F915F914F91AD +:102370003F912F91FF90EF90DF90CF90BF90AF9063 +:102380009F908F907F906F905F904F900F900FBEB7 +:102390000F901F901895CF92DF92EF92FF92CF93FC +:1023A000DF936B017C01EA0180917603811102C009 +:1023B0000E94C60D8091520480FF46C08091C503E3 +:1023C0009091C60308970CF03FC0809171008D7FFB +:1023D000809371008091880381110E94E00D81E05B +:1023E00080938703109275031092740320E030E00D +:1023F000A901C701B6010E94FD2F1816DCF48091D7 +:10240000C5039091C603FC01EE0FFF1FEE0FFF1FE7 +:10241000E356FC4FC082D182E282F382FC01EE0FD0 +:10242000FF1FE357FC4FD183C08301969093C603EF +:102430008093C503809171008260809371008091C8 +:102440009000806880939000DF91CF91FF90EF9093 +:10245000DF90CF9008958F929F92AF92BF92CF92CC +:10246000DF92EF92FF920F931F93CF93DF93EC01D4 +:102470007B01D42E4801590180917603811102C05D +:102480000E94C60D8091520480FF6BC08091710044 +:102490008D7F809371008091870381110E94E00DF0 +:1024A00081E080938803D0935104C0935004F0924C +:1024B0004F04E0924E04D0925904809253049092BB +:1024C0005404A0925504B0925604109289031092BD +:1024D0008A0310928B0310928C0310927B038881E5 +:1024E0009981AA81BB818093830390938403A093F5 +:1024F0008503B093860320E030E040E85EE36C8122 +:102500007D818E819F810E9401306B017C0120E0E2 +:1025100030E048EC52E4609176027091770280914D +:102520007802909179020E94562E9B01AC01C7015E +:10253000B6010E94013060937F0370938003809303 +:1025400081039093820310927E0310927D03809109 +:102550007100826080937100809190008068809308 +:102560009000DF91CF911F910F91FF90EF90DF903E +:10257000CF90BF90AF909F908F9008958091C703A8 +:1025800090E0019666E070E00E94CF318093C7032F +:1025900008958091C70390E0019766E070E00E9483 +:1025A000CF318093C70308958F929F92AF92BF92CD +:1025B000CF92DF92EF92FF920F931F93CF93DF930F +:1025C0006B017C01C0917403D0917503BE0180E062 +:1025D00090E00E94EF2E4B015C01A701960160E0A4 +:1025E00070E08CE594E40E94562E9B01AC01C5017D +:1025F000B4010E9401300E94C32E2091C7032330F2 +:1026000009F473C028F4222351F02130E9F02CC1E1 +:10261000243009F4A0C0253009F4E0C025C180E0D1 +:1026200090E0A0E0BFE38093720290937302A093C6 +:102630007402B0937502109277031092780310928F +:10264000790310927A0310C11092770310927803E5 +:102650001092790310927A036431710540F46A3064 +:10266000710560F520E030E040E85EE32BC0693C96 +:10267000710508F0AAC080E090E00E94EF2E20E0F3 +:1026800030E040EA51E40E94ED2D20E030E044E3E8 +:1026900053E40E94562E9B01AC010E94013020E0C1 +:1026A00030E040E05EE30E9401309B01AC0160E05D +:1026B00070E080E09EE30E94ED2D44C020E030E019 +:1026C00040E05FE3C701B6010E9401306B017C016D +:1026D00080E090E0A0E0BEE38093720290937302EA +:1026E000A0937402B0937502BFC01092770310924A +:1026F00078031092790310927A034AE0469F900182 +:10270000479F300D1124C90168EB7BE00E94BB316B +:10271000BC016C5D754077FF03C0719561957109CF +:10272000882777FD8095982F0E94F12E2EE333ECB9 +:102730004EE259E30E94013020E030E040EC5EE3DD +:102740000E94EE2D60937202709373028093740264 +:102750009093750289C010927703109278031092BB +:10276000790310927A03CE0183709927892BE1F0C7 +:10277000BE016170772780E090E00E94EF2E20E09C +:1027800030E040E05EE30E94013020E030E040E4D1 +:102790005FE30E94EE2D6093720270937302809348 +:1027A0007402909375020CC080E090E0A0E0BFE35B +:1027B0008093720290937302A0937402B093750297 +:1027C000C770DD27CD2B09F04FC010927202109216 +:1027D0007302109274021092750246C01092770331 +:1027E000109278031092790310927A0300E010E0BF +:1027F00020E03FE30093720210937302209374026F +:10280000309375026739710578F180E090E00E949D +:10281000EF2E20E030E047E153E40E94ED2D20E070 +:1028200030E04AE754E40E94562E20E030E048E4CD +:1028300052E40E94013020E030E040EA51E40E947E +:10284000332F0E94BE2E660F771F660F771FFB0186 +:10285000EC50FD4F2081318142815381C701B60187 +:102860000E9401306B017C01C701B601DF91CF915D +:102870001F910F91FF90EF90DF90CF90BF90AF909E +:102880009F908F9008958091D8030895CF93DF9300 +:1028900000D01F92CDB7DEB79C0180915E048430DA +:1028A00019F593E099833B832A839093E9008FEF96 +:1028B0009091E800815095FD06C095ED9A95F1F74D +:1028C00000008111F5CF8091E80085FF0DC040E048 +:1028D00050E063E070E0CE0101960E94A71680915F +:1028E000E8008E778093E8000F900F900F90DF91B3 +:1028F000CF910895CF93DF9300D01F92CDB7DEB76D +:1029000020915E04243021F522E029839B838A8371 +:1029100083E08093E9008FEF9091E800815095FD6E +:1029200006C095ED9A95F1F700008111F5CF8091E1 +:10293000E80085FF0DC040E050E063E070E0CE01AC +:1029400001960E94A7168091E8008E778093E80098 +:102950000F900F900F90DF91CF91089520915E041A +:102960002430F1F422E02093E9002FEF3091E800C9 +:10297000215035FD06C035ED3A95F1F700002111E3 +:10298000F5CF2091E80025FF0BC040E050E065E066 +:1029900070E00E94A7168091E8008E778093E8008F +:1029A0000895CF93DF93EC0190915E04943009F089 +:1029B00046C0809184028823D9F0809185028823C3 +:1029C000B9F09093E9008FEF9091E800815095FD68 +:1029D00006C095E19A95F1F700008111F5CF80913D +:1029E000E80085FF2CC040E050E060E170E017C0D7 +:1029F00081E08093E9008FEF9091E800815095FD90 +:102A000006C095ED9A95F1F700008111F5CF809100 +:102A1000E80085FF14C040E050E068E070E0CE01BF +:102A20000E94A7168091E8008E778093E80080E1ED +:102A3000FE01A8ECB3E001900D928A95E1F7DF91D9 +:102A4000CF91089580915D04811109C00E943C18C6 +:102A50000E9499188091E20084608093E2000895BA +:102A600010925D040895089508950C94E12742E0C2 +:102A700061EC81E00E94B61742E061EC82E00E94C6 +:102A8000B61742E061EC83E00E94B61742E161ECC8 +:102A900084E00C94B61780916004833009F455C02B +:102AA00030F4813071F0823009F48EC008958A309C +:102AB00009F47AC08B3009F460C0893009F09CC0F9 +:102AC00020C080915F04813A09F096C08091E800AF +:102AD000877F8093E8008091630490916404892B40 +:102AE00021F460E188EC93E003C060E080E090E0D6 +:102AF00070E00E94F2168091E8008B778093E800E6 +:102B0000089580915F04813209F076C0809163045A +:102B100090916404009719F0039709F06DC08091BB +:102B2000E800877F8093E8008091E80082FD05C07F +:102B300080915E048111F8CF5FC08091F100809395 +:102B4000D8038091E8008B7753C080915F04813A6D +:102B500009F052C08091630490916404892B09F0BC +:102B60004BC08091E800877F8093E8008091E80067 +:102B700080FFFCCF8091840236C080915F04813257 +:102B8000D9F58091630490916404892BA9F5809113 +:102B9000E800877F8093E8000E94EB178091610432 +:102BA000809384020C945C2180915F04813221F532 +:102BB0008091E800877F8093E8000E94EB17809166 +:102BC00062048093D903089580915F04813AA1F44F +:102BD0008091E800877F8093E8008091E80080FF83 +:102BE000FCCF8091D9038093F1008091E8008E772B +:102BF0008093E8000C94EB17089584B7877F84BF17 +:102C000088E10FB6F89480936000109260000FBEC8 +:102C100090E080E80FB6F894809361009093610093 +:102C20000FBE0E948E1B0E943C180E949918809132 +:102C3000E20084608093E20078940E941F1B0E944F +:102C4000901B8AE792E00E943A1B80915E048530D7 +:102C500069F40E949B2780915C048823B1F30E9451 +:102C6000C927882391F30E949116EFCF0E94981BE9 +:102C7000ECCF292F332723303105C9F064F42130FC +:102C8000310581F02230310509F043C08DE690E036 +:102C90002AE338E042C021323105F1F02232310519 +:102CA00041F137C082E190E027EA38E036C0992749 +:102CB0008130910541F08230910541F0892B49F531 +:102CC000E6E3F8E005C0E8E0F8E002C0EEEDF7E08A +:102CD000849190E09F0121C06430D8F4E62FF0E0A9 +:102CE000EE0FFF1FE05BFC4F2081318189E090E017 +:102CF00014C0643070F470E0FB01EE0FFF1FE85B5E +:102D0000FC4F20813181FB01EC5BFC4F808190E026 +:102D100004C080E090E020E030E0FA0131832083BD +:102D2000089580E189BD82E189BD09B400FEFDCF2F +:102D30008091D8008F7D8093D8008091E0008260E0 +:102D40008093E0008091E00081FDFCCF0895CF9258 +:102D5000DF92EF92FF920F931F93CF93DF93EC01DB +:102D60008B016A010E940A18811133C0C114D10479 +:102D700039F0F60180819181081B190BC80FD91F0A +:102D8000E12CF12C0115110519F18091E80085FD68 +:102D900016C08091E8008E778093E800C114D104BA +:102DA00049F0F60180819181E80EF91EF182E082FE +:102DB00085E00FC00E940A18882321F30AC0899178 +:102DC0008093F10001501109FFEFEF1AFF0ADACFEB +:102DD00080E0DF91CF911F910F91FF90EF90DF90F6 +:102DE000CF90089520916504309166042617370727 +:102DF00048F06115710539F42091E8002E77209391 +:102E0000E80001C0B90140E061157105A9F1209108 +:102E10005E04222309F443C0253009F442C0209106 +:102E2000E80023FD40C02091E80022FD32C020913F +:102E3000E80020FFE9CF4091F3002091F20030E05C +:102E4000342BFC01CF016115710559F02830310593 +:102E500040F481918093F100615071092F5F3F4FE1 +:102E6000F1CF41E02830310509F040E02091E80041 +:102E70002E772093E800C8CF4111C9CF0AC08091B6 +:102E80005E04882361F0853061F08091E80083FD65 +:102E90000AC08091E80082FFF2CF80E0089582E0CE +:102EA000089583E0089581E00895209165043091AC +:102EB00066042617370748F06115710539F420912B +:102EC000E8002E772093E80001C0B901FC0120E062 +:102ED0006115710591F180915E04882309F440C069 +:102EE000853009F43FC08091E80083FD3DC08091AA +:102EF000E80082FD2FC08091E80080FFE9CF20919B +:102F0000F3008091F20090E0922B6115710559F069 +:102F10008830910540F424912093F100319661505E +:102F200071090196F2CF21E0089709F020E0809125 +:102F3000E8008E778093E800CBCF2111CCCF0AC078 +:102F400080915E04882361F0853061F08091E80013 +:102F500083FD0AC08091E80082FFF2CF80E00895EF +:102F600082E0089583E0089581E00895982F9730D6 +:102F700058F59093E900981739F07091EC00209182 +:102F8000ED005091F00003C0242F762F50E021FF78 +:102F900019C03091EB003E7F3093EB003091ED0093 +:102FA0003D7F3093ED003091EB0031603093EB00CA +:102FB0007093EC002093ED005093F0002091EE0010 +:102FC00027FF07C09F5FD3CF8F708093E90081E018 +:102FD000089580E0089580915F0487FF11C080917B +:102FE000E80082FD05C080915E048111F8CF11C018 +:102FF0008091E8008B770BC080915E04882349F0B4 +:103000008091E80080FFF8CF8091E8008E77809370 +:10301000E80008952091E4003091E50095E64091A4 +:10302000EC00842F817040FF22C08091E80080FD79 +:103030001CC080915E04882391F0853091F08091CE +:10304000EB0085FD10C04091E4005091E50042176F +:10305000530729F39A01915011F784E0089582E013 +:10306000089583E0089581E0089580E008954091F7 +:10307000E80042FFDECF08950E94AA180E94B2180D +:10308000E0EEF0E0808181608083E8EDF0E0808117 +:103090008F77808319BCA7EDB0E08C918E7F8C93E5 +:1030A00080818F7E808310925D0408950F931F931B +:1030B000CF93DF930E94AA180E94B218C8EDD0E007 +:1030C00088818F77888388818068888388818F7DD5 +:1030D000888319BC10925E0410925A0410925C040A +:1030E00010925B0400EE10E0F80180818B7F8083FA +:1030F00088818160888342E060E080E00E94B617AA +:10310000E1EEF0E080818E7F8083E2EEF0E080816E +:1031100081608083808188608083F80180818E7FD8 +:103120008083888180618883DF91CF911F910F9187 +:103130000895E8EDF0E080818F7E8083E7EDF0E098 +:1031400080818160808384E082BF81E080935D0420 +:103150000C945618E8EDF0E080818E7F8083109209 +:10316000E20008951092DA001092E10008951F9293 +:103170000F920FB60F9211242F933F934F935F93AB +:103180006F937F938F939F93AF93BF93EF93FF932F +:103190008091E10082FF0BC08091E20082FF07C0B6 +:1031A0008091E1008B7F8093E1000E941E1B809143 +:1031B000DA0080FF1FC08091D80080FF1BC0809183 +:1031C000DA008E7F8093DA008091D90080FF0DC0F5 +:1031D00080E189BD82E189BD09B400FEFDCF81E0B7 +:1031E00080935E040E94221505C019BC10925E04F3 +:1031F0000E9430158091E10080FF19C08091E200AB +:1032000080FF15C08091E2008E7F8093E200809164 +:10321000E20080618093E2008091D8008062809318 +:10322000D80019BC85E080935E040E94341580911B +:10323000E10084FF30C08091E20084FF2CC080E177 +:1032400089BD82E189BD09B400FEFDCF8091D8001F +:103250008F7D8093D8008091E1008F7E8093E10084 +:103260008091E2008F7E8093E2008091E200816095 +:103270008093E20080915A04882311F084E007C013 +:103280008091E30087FD02C081E001C083E080936C +:103290005E040E9435158091E10083FF29C0809172 +:1032A000E20083FF25C08091E100877F8093E100E9 +:1032B00082E080935E0410925A048091E1008E7F38 +:1032C0008093E1008091E2008E7F8093E200809104 +:1032D000E20080618093E20042E060E080E00E94D2 +:1032E000B6178091F00088608093F0000E9433153B +:1032F000FF91EF91BF91AF919F918F917F916F91CE +:103300005F914F913F912F910F900FBE0F901F90A3 +:1033100018951F920F920FB60F9211242F933F937F +:103320004F935F936F937F938F939F93AF93BF93CD +:10333000CF93DF93EF93FF93C091E900CF7080911B +:10334000EC00D82FD17080FDD0E81092E900809178 +:10335000F000877F8093F00078940E94CD1910923E +:10336000E9008091F00088608093F000CD2BCF7051 +:10337000C093E900FF91EF91DF91CF91BF91AF91A1 +:103380009F918F917F916F915F914F913F912F917D +:103390000F900FBE0F901F9018951F93CF93DF9340 +:1033A000CDB7DEB7AA970FB6F894DEBF0FBECDBF7C +:1033B000EFE5F4E088E08E0F9091F10091938E1389 +:1033C000FBCF0E944B158091E80083FF1FC18091C5 +:1033D0005F0490916004492F50E04A30510508F095 +:1033E00015C1FA01EC59FF4F0C94E331803881F09C +:1033F000823809F00BC1809163048F708093E900DB +:103400008091EB0085FB882780F91092E90006C0C7 +:1034100080915B0490915C04911182609091E8002E +:10342000977F9093E8008093F1001092F100C8C05C +:10343000282F2D7F09F0EAC0882319F0823061F02F +:10344000E5C080916104813009F0E0C0933009F05B +:1034500080E080935C042BC080916104811127C0BF +:10346000809163048F7009F4D1C08093E9002091AA +:10347000EB0020FF1CC0933021F48091EB008062B0 +:1034800014C09091EB0090619093EB0021E030E04C +:10349000A90102C0440F551F8A95E2F74093EA0044 +:1034A0001092EA008091EB0088608093EB0010920C +:1034B000E9008091E800877F86C08111A7C0109144 +:1034C00061041F778091E3008078812B8093E30073 +:1034D0008091E800877F8093E8000E94EB1780913D +:1034E000E80080FFFCCF8091E30080688093E300D8 +:1034F000111102C082E001C083E080935E0486C0A7 +:103500008058823008F082C08091610490916204FA +:103510008C3D53E0950779F583E08A838AE28983BD +:103520004FB7F894DE01139620E03EE051E2E32F1E +:10353000F0E050935700E49120FF03C0E295EF7054 +:103540003F5FEF708E2F90E0EA3010F0C79601C019 +:10355000C0968D939D932F5F243149F74FBF809183 +:10356000E800877F8093E8006AE270E0CE01019670 +:103570000E94F21614C0AE014F5F5F4F609163046A +:103580000E943916BC01009709F440C09091E800F0 +:10359000977F9093E80089819A810E9455178091C6 +:1035A000E8008B778093E80031C0803879F580910E +:1035B000E800877F8093E80080915A048093F100AF +:1035C0008091E8008E778093E8000E94EB171EC080 +:1035D00081111CC0909161049230C0F48091E80088 +:1035E000877F8093E80090935A040E94EB178091A4 +:1035F0005A04811106C08091E30087FD02C081E07A +:1036000001C084E080935E040E9437158091E80039 +:1036100083FF0AC08091E800877F8093E800809153 +:10362000EB0080628093EB00AA960FB6F894DEBFA1 +:103630000FBECDBFDF91CF911F9108950895CF9315 +:1036400080915E048823A1F0C091E900CF70909131 +:10365000EC00892F817090FD80E8C82B1092E90062 +:103660008091E80083FD0E94CD19CF70C093E900DE +:10367000CF9108959093DF038093DE030895E09146 +:10368000DE03F091DF03309721F00190F081E02D0F +:10369000099480E00895E091DE03F091DF03309714 +:1036A00021F00280F381E02D09940895E091DE037A +:1036B000F091DF03309721F00480F581E02D09942B +:1036C00008952091DC033091DD038217930771F098 +:1036D0009093DD038093DC03E091DE03F091DF0340 +:1036E000309721F00680F781E02D0994089520910C +:1036F000DA033091DB038217930771F09093DB03B9 +:103700008093DA03E091DE03F091DF03309721F03C +:103710000084F185E02D0994089508950C948D1B83 +:103720000E9415280E94760B0E949B280C94562D0F +:103730004F925F927F928F929F92AF92BF92CF9261 +:10374000DF92EF92FF920F931F93CF93DF93CDB74A +:10375000DEB72A970FB6F894DEBF0FBECDBF0E942A +:10376000650C91EEC92E93E0D92E00E010E0AA245A +:10377000A394B12C702E802F0E94AE0D4C01F60147 +:10378000419051906F014826592641145104B1F4DB +:103790000F5F1F4F0430110569F78FEF89838A830C +:1037A0001B820E941E288160782F9D838C83498113 +:1037B0005A816B818D810E94511C3AC080913D04D9 +:1037C00081FD0E94B70D20E030E07501022E02C09D +:1037D000EE0CFF1C0A94E2F7C70184219521892B86 +:1037E00009F12E837F828E209F2091E0892809F4A1 +:1037F00090E098870E941E288160782F9A87898799 +:103800004E815F8168858A850E94511C000F111FBF +:10381000F801EF51FC4F80819181E826F926F18271 +:10382000E08206C02F5F3F4F2C30310571F6B0CFDC +:103830000E94872A1091E0030E943F1B1817D9F0BD +:103840000E943F1B8093E0032A960FB6F894DEBFD8 +:103850000FBECDBFDF91CF911F910F91FF90EF90E1 +:10386000DF90CF90BF90AF909F908F907F905F90B0 +:103870004F900C94AE0A2A960FB6F894DEBF0FBE96 +:10388000CDBFDF91CF911F910F91FF90EF90DF900F +:10389000CF90BF90AF909F908F907F905F904F9010 +:1038A0000895CF93DF93CDB7DEB72B970FB6F8947B +:1038B000DEBF0FBECDBF4F83588769877A878B875E +:1038C000DE01119686E0FD0111928A95E9F785E007 +:1038D000FE01379601900D928A95E1F749815A8150 +:1038E0006B817C818D819E810E94F6232B960FB681 +:1038F000F894DEBF0FBECDBFDF91CF910895CF9377 +:10390000882309F4C2C0C82F823859F40E943F1B93 +:1039100081FDBBC089E30E949F260E946C2789E33A +:103920000CC0833879F40E943F1B80FDAEC083E554 +:103930000E949F260E946C2783E50E94E126CF917A +:103940000C946C27843859F40E943F1B82FD9DC063 +:1039500087E40E949F260E946C2787E4EECF8CEFBD +:103960008C0F813A48F48C2F0E94BE2C81118DC09F +:103970008C2F0E949F26E3CF80E28C0F883048F482 +:10398000C77081E001C0880FCA95EAF70E94252719 +:10399000D6CF8BE58C0F833078F4C53A29F0C63A40 +:1039A00031F083E890E005C081E890E002C082E851 +:1039B00090E0CF910C94611B88E58C0F833108F067 +:1039C00064C0C83A39F1C93A41F1CA3A49F1CB3A2F +:1039D00051F1CC3A59F1CD3A61F1C03B69F1CE3A9F +:1039E00071F1CF3A79F1C13B81F1C23B89F1C33B1F +:1039F00091F1C43B99F1C53BA1F1C63BA9F1C73B8D +:103A0000B1F1C83BB9F1C93BC1F1CA3BC9F180E092 +:103A100090E038C082EE90E035C089EE90E032C090 +:103A20008AEE90E02FC085EB90E02CC086EB90E012 +:103A300029C087EB90E026C08CEC90E023C08DEC91 +:103A400090E020C083E891E01DC08AE891E01AC0B0 +:103A500082E991E017C084E991E014C081E292E02C +:103A600011C083E292E00EC084E292E00BC085E2D6 +:103A700092E008C086E292E005C087E292E002C0D0 +:103A80008AE292E0CF910C94771BCF91089588231E +:103A900009F44BC0823859F40E943F1B81FF45C096 +:103AA00089E30E949F260E946C2789E30CC083381B +:103AB00071F40E943F1B80FF38C083E50E949F265F +:103AC0000E946C2783E50E94E1260C946C278438C1 +:103AD00059F40E943F1B82FF28C087E40E949F2662 +:103AE0000E946C2787E4EFCF9CEF980F913A58F330 +:103AF00090E2980F983050F4877091E001C0990FD0 +:103B00008A95EAF7892F0E942B27DFCF9BE5980F34 +:103B1000933020F480E090E00C94611B885A83314C +:103B200020F480E090E00C94771B0895882321F026 +:103B30000E9425270C946C270895882321F00E9469 +:103B40002B270C946C270895BF92CF92DF92EF92AF +:103B5000FF920F931F93CF93DF9300D000D000D03C +:103B6000CDB7DEB725E0FC01DE01119601900D9284 +:103B70002A95E1F7FC01D0801181028125812295EF +:103B80002F7043815481452B09F472C31F3F21F4E8 +:103B9000FFEFDF1609F46CC37C012E830E947707C8 +:103BA000D9821A8369817A81802F0E949B26182FDF +:103BB000B92E0E9450260E9417252E81002319F04D +:103BC0000E9442272E81EB2DE295EF70F0E0E25942 +:103BD000FF4F0C94E3318B2D807F9B2D9F70F92E2E +:103BE000882319F0F29480EFF822002389F0FF2057 +:103BF00009F47CC280E2810F883020F48F2D0E946E +:103C0000252703C08F2D0E9435270E946C276EC286 +:103C1000812F0E94471DFF2009F42AC3105E8F2DBB +:103C2000183018F40E942B2702C00E943B272696CA +:103C30000FB6F894DEBF0FBECDBFDF91CF911F91BD +:103C40000F91FF90EF90DF90CF90BF900C946C2776 +:103C50008B2D807F9B2D9F70803211F4892F03C0A4 +:103C6000892F8295807F112319F0113011F12BC01B +:103C70000023A9F0222389F1213079F526960FB689 +:103C8000F894DEBF0FBECDBFDF91CF911F910F9192 +:103C9000FF90EF90DF90CF90BF900C945527222398 +:103CA00019F0213009F4E4C28E830E9458278E81D6 +:103CB0009BC1002321F0263008F0DAC20EC0253067 +:103CC00008F0D6C291C10023C9F0222331F0F701D8 +:103CD000958190FF0BC29F70958326960FB6F8943E +:103CE000DEBF0FBECDBFDF91CF911F910F91FF902F +:103CF000EF90DF90CF90BF900C94961D222309F493 +:103D000073C109C22B2D26952695237030E021150D +:103D1000310521F021303105D1F0AAC2002321F074 +:103D2000812F9B2D937002C080E090E026960FB605 +:103D3000F894DEBF0FBECDBFDF91CF911F910F91E1 +:103D4000FF90EF90DF90CF90BF900C94611B002309 +:103D500021F0812F9B2D937002C080E090E0269689 +:103D60000FB6F894DEBF0FBECDBFDF91CF911F918C +:103D70000F91FF90EF90DF90CF90BF900C94771B46 +:103D8000812F002319F00E948F2902C00E94F72979 +:103D900026960FB6F894DEBF0FBECDBFDF91CF9150 +:103DA0001F910F91FF90EF90DF90CF90BF900C94F8 +:103DB0007C2A8B2D837009F07BC0011159C2812FA1 +:103DC000829586958770880F880F912F9F70C92ED6 +:103DD000D12CE12CF12C082E04C0CC0CDD1CEE1CE7 +:103DE000FF1C0A94D2F714FF12C04FE050E060E0CD +:103DF00070E004C0440F551F661F771F8A95D2F7E5 +:103E0000CB01BA01609570958095909503C060E0F4 +:103E100070E0CB012B2D269526952370422F50E084 +:103E200042305105D9F04330510569F16C297D29A3 +:103E30008E299F294130510551F126960FB6F894ED +:103E4000DEBF0FBECDBFDF91CF911F910F91FF90CD +:103E5000EF90DF90CF90BF900C943E256C297D2988 +:103E60008E299F2926960FB6F894DEBF0FBECDBFD0 +:103E7000DF91CF911F910F91FF90EF90DF90CF9046 +:103E8000BF900C945A250E943E25C701B601269684 +:103E90000FB6F894DEBF0FBECDBFDF91CF911F915B +:103EA0000F91FF90EF90DF90CF90BF900C94222560 +:103EB000002319F08B2D817001C08695882309F4A9 +:103EC000D7C1812F829586958770880F880F912F93 +:103ED0009F70C92ED12CE12CF12C082E04C0CC0CE3 +:103EE000DD1CEE1CFF1C0A94D2F714FF12C04FE039 +:103EF00050E060E070E004C0440F551F661F771F5C +:103F00008A95D2F7CB01BA0160957095809590950E +:103F100003C060E070E0CB012B2D26952695237021 +:103F2000422F50E042305105D9F04330510569F13C +:103F30006C297D298E299F294130510551F1269602 +:103F40000FB6F894DEBF0FBECDBFDF91CF911F91AA +:103F50000F91FF90EF90DF90CF90BF900C941826B8 +:103F60006C297D298E299F2926960FB6F894DEBFED +:103F70000FBECDBFDF91CF911F910F91FF90EF90BA +:103F8000DF90CF90BF900C9434260E941826C70172 +:103F9000B60126960FB6F894DEBF0FBECDBFDF91F7 +:103FA000CF911F910F91FF90EF90DF90CF90BF9036 +:103FB0000C94FC25103F49F118F4103E48F491C0D0 +:103FC000123F09F453C0E8F1133F09F464C089C0FB +:103FD0001F708B2D8F71002321F00E949525812F5A +:103FE0007CCE0E94B625812F26960FB6F894DEBFB0 +:103FF0000FBECDBFDF91CF911F910F91FF90EF903A +:10400000DF90CF90BF900C949D1D0023B1F0253020 +:1040100008F02EC18B2D8F7126960FB6F894DEBF57 +:104020000FBECDBFDF91CF911F910F91FF90EF9009 +:10403000DF90CF90BF900C94DB25263008F018C19C +:10404000E9CF0023A9F08B2D8F7126960FB6F89437 +:10405000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10406000EF90DF90CF90BF900C949525002359F3EB +:104070008B2D8F7126960FB6F894DEBF0FBECDBF85 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94B625002399F08B2D8F71269636 :1040A0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1040B0000F91FF90EF90DF90CF90BF900C9465250B -:1040C0000023A9F0222309F4ADCF812F26960FB645 -:1040D000F894DEBF0FBECDBFDF91CF911F910F913E -:1040E000FF90EF90DF90CF90BF900C946E1C222336 -:1040F00009F4ADCF812F26960FB6F894DEBF0FBE20 -:10410000CDBFDF91CF911F910F91FF90EF90DF9086 -:10411000CF90BF900C94361D4B2D4F70612FC7016F -:104120000E948D0526960FB6F894DEBF0FBECDBF58 -:10413000DF91CF911F910F91FF90EF90DF90CF9083 -:10414000BF900C948924011182C09B2D9F70492F30 -:1041500050E04230510509F443C0C4F44115510503 -:1041600071F14130510509F072C026960FB6F894EE -:10417000DEBF0FBECDBFDF91CF911F910F91FF909A -:10418000EF90DF90CF90BF900C946D2D4330510590 -:10419000C1F14430510509F05AC0812F26960FB65F -:1041A000F894DEBF0FBECDBFDF91CF911F910F916D -:1041B000FF90EF90DF90CF90BF900C94BF2D26968C +:1040B0000F91FF90EF90DF90CF90BF900C948025F0 +:1040C00026960FB6F894DEBF0FBECDBFDF91CF911D +:1040D0001F910F91FF90EF90DF90CF90BF900C94C5 +:1040E00076250023A9F0222309F4ADCF812F26964F +:1040F0000FB6F894DEBF0FBECDBFDF91CF911F91F9 +:104100000F91FF90EF90DF90CF90BF900C947F1CA9 +:10411000222309F4ADCF812F26960FB6F894DEBF87 +:104120000FBECDBFDF91CF911F910F91FF90EF9008 +:10413000DF90CF90BF900C94471D4B2D4F70612F97 +:10414000C7010E94690526960FB6F894DEBF0FBE20 +:10415000CDBFDF91CF911F910F91FF90EF90DF9036 +:10416000CF90BF900C949A24011182C09B2D9F7018 +:10417000492F50E04230510509F443C0C4F44115C1 +:10418000510571F14130510509F072C026960FB604 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C947E2D433026 +:1041B0005105C1F14430510509F05AC0812F2696AE :1041C0000FB6F894DEBF0FBECDBFDF91CF911F9128 -:1041D0000F91FF90EF90DF90CF90BF900C94562DF1 +:1041D0000F91FF90EF90DF90CF90BF900C94D02D77 :1041E00026960FB6F894DEBF0FBECDBFDF91CF91FC :1041F0001F910F91FF90EF90DF90CF90BF900C94A4 -:10420000892D26960FB6F894DEBF0FBECDBFDF9185 +:10420000672D26960FB6F894DEBF0FBECDBFDF91A7 :10421000CF911F910F91FF90EF90DF90CF90BF90C3 -:104220000C949C2D4B2D4F70612FC70126960FB615 -:10423000F894DEBF0FBECDBFDF91CF911F910F91DC -:10424000FF90EF90DF90CF90BF900C949D07269643 +:104220000C949A2D26960FB6F894DEBF0FBECDBF24 +:10423000DF91CF911F910F91FF90EF90DF90CF9082 +:10424000BF900C94AD2D4B2D4F70612FC70126965A :104250000FB6F894DEBF0FBECDBFDF91CF911F9197 -:104260000F91FF90EF90DF90CF90BF9008950E9444 -:1042700031270E9441270E9406270E945B270E9447 -:104280001C2B0E946B2A80E090E00E94501B80E073 -:1042900090E00C94661B0E9421270C9437210E9409 -:1042A0007F26292F22952F7030E02C3031054CF4D9 -:1042B0002A3031056CF4225031092230310588F45E -:1042C00007C02C30310549F02F30310531F009C0DD -:1042D000803E48F0803F29F406C093FB882780F990 -:1042E000089580E0089581E00895CF93DF9300D092 -:1042F00000D01F92CDB7DEB70F900F900F900F90A8 -:104300000F90DF91CF910895CF93DF9300D000D02D -:1043100000D0CDB7DEB726960FB6F894DEBF0FBE3D -:10432000CDBFDF91CF9108951F93CF93DF93C091BD -:10433000990316E080919A03C81799F0D0E01C9F6A -:10434000F0011D9FF00D1124E556FC4F4081518175 -:1043500062817381848195810E9484212196C77036 -:10436000E9CFDF91CF911F9108954091CB035091F8 -:10437000CC036091CD037091CE038091CF039091D7 -:10438000D0030C9484218091D00382958F7009F022 -:1043900054C08091CD03882309F44FC080919903C4 -:1043A000A0919A036091CB037091CC034091CE030E -:1043B0005091CF03B6E08A1709F43FC090E0411551 -:1043C0005105C1F17F3F11F46F3FA1F1B89FF0019A -:1043D000B99FF00D1124E556FC4F218172132AC0BC -:1043E0002081621327C02281211124C023813481BE -:1043F0002417350710F421503109241B350B283CB4 -:104400003105C0F42091D0032F7020612093D00398 -:1044100026E0289FF001299FF00D1124E056FC4F63 -:1044200080818F70806180838BEC93E00E94931D6C -:104430000C94942101968770BECF0895CF92DF929D -:10444000EF92FF920F931F93CF93DF93CDB7DEB719 -:1044500062970FB6F894DEBF0FBECDBF8C0185E02A -:10446000F801DE011D9601900D928A95E1F7D801C1 -:104470004C9111965C91119712966C91129713962C -:10448000CD90DC9014973091CB037091CC03809148 -:10449000CE039091CF03009709F46BC17F3F19F4CD -:1044A0003F3F09F466C1E090CD03EE2009F4C0C09F -:1044B0002091D003C816D90628F0F601E81BF90BA5 -:1044C000CF0104C0809590958C0D9D1DFF24F39421 -:1044D000883C910578F0F12C207F09F0C6C07C2D36 -:1044E000D98AC88A89890E9475218BEC93E00E9441 -:1044F000931DB1C0822F807F09F046C0751314C090 -:10450000341312C0611110C02F7020612093D003AA -:104510000E94B5218BEC93E00E94931D8091D00303 -:10452000D80115968C932EC0CD2819F15F3F11F458 -:104530004F3FF9F0F62E61111CC080919903209134 -:104540009A0336E0821709F45AC090E0389FF001D0 -:10455000399FF00D1124E556FC4F7181571306C0A9 -:104560007081471303C07281711103C00196877077 -:10457000E9CFF62E662309F418C18091D00381603B -:104580008093D003F12C11C1751308C0341306C0F9 -:10459000611104C08091D003D801C3C04D875E87EC -:1045A0008D859E856A8B0E944F216A898823E1F15F -:1045B0006623D1F12091D003822F82958F7090E0F5 -:1045C000029774F08091CB039091CC0398878F83EE -:1045D0001986DB86CA862C87CE0107960E94931D1A -:1045E00086E0F801ABECB3E001900D928A95E1F71B -:1045F0000E94C3210E94B521FF24F394D6C04D87A9 -:104600005E878D859E850E947F26292F22952F709B -:1046100030E0223031050CF0BCC09F7009F0B6C00C -:10462000805E883008F4C1C0C8010E94931DE4CFA9 -:10463000C816D90608F453C0F601E81BF90BCF01E0 -:10464000883C910508F450C0F12C7C2DD98AC88A89 -:1046500089890E947521EBECF3E086E0DF011D9271 -:104660008A95E9F70E94B521A0C0751314C03413D0 -:1046700012C0611110C08091D003F8018583C80178 -:104680000E94931D86E0EBECF3E0DF011D928A951A -:10469000E9F7FE2C8AC04D875E878D859E856A8BE3 -:1046A0000E944F216A89882309F4BECF662309F44A -:1046B000BBCF2091D003822F82958F7090E002971C -:1046C0000CF48ECF8091CB039091CC039A83898395 -:1046D0001B82DD82CC822E83CE0101967FCF809516 -:1046E00090958C0D9D1DACCFF62E662309F49CCFC2 -:1046F00075132EC034132CC02091D00320FD1FC091 -:10470000822F82958F70D9F0D80115962C9315972A -:104710008F3049F08F5F982F9295907F822F8F7006 -:10472000892B15968C93C8010E94931D86E0F80191 -:10473000ABECB3E001900D928A95E1F793CF86E060 -:10474000F801ABECB3E001900D928A95E1F72DC032 -:104750004D875E878D859E850E944F21811140CFB8 -:104760008091D00381608093D003C8010E94931D83 -:104770001CC0662309F458CF4D875E878D859E85C2 -:104780000E944F21882309F44FCF2ACF811148CFAF -:104790000CC0243031050CF047CF9F7009F440CF96 -:1047A000F8019581907F09F03BCF8F2D62960FB66F -:1047B000F894DEBF0FBECDBFDF91CF911F910F9157 -:1047C000FF90EF90DF90CF9008951F93CF93DF93EA -:1047D000CDB7DEB72C970FB6F894DEBF0FBECDBFB6 -:1047E0004F83588769877A878B879C87CE01079686 -:1047F0000E941E22882369F08F8198852A853B8537 -:10480000232BF1F19F3F09F063C08F3F09F060C097 -:1048100037C086E0FE013796DE01119601900D92B9 -:104820008A95E1F76F817885EA85FB85309741F1BC -:104830007F3F11F46F3F21F120919A0330E0C901CD -:104840000196877099274091990350E08417950746 -:1048500009F447C069837A83FD83EC8396E0929FD5 -:10486000D001939FB00D1124A556BC4FFE01319687 -:1048700001900D929A95E1F780939A030E949421FA -:1048800016E08091990390919A038917C1F1189FBE -:10489000C001112485569C4F0E941E22882379F165 -:1048A000E09199031E9FF0011124E556FC4F4081D1 -:1048B000518162817381848195810E9484218091DC -:1048C000990390E001968770992780939903D9CF37 -:1048D0004F81588569857A858B859C850E948421C6 -:1048E000CFCF0E944B2110929A0310929903EBECC8 -:1048F000F3E086E0DF011D928A95E9F7C1CF2C969F -:104900000FB6F894DEBF0FBECDBFDF91CF911F91E0 -:104910000895EF92FF920F931F93CF93DF938C0133 -:10492000009709F46CC0F12CEE24E394E801219681 -:10493000F8018491843740F4843008F051C081300C -:1049400081F0823019F15BC0853709F444C0A8F1C9 -:104950009CE7980F903708F052C08F770E94361D61 -:1049600041C00E5F1F4FFE01C49180E28C0F883062 -:1049700048F4C7708E2D01C0880FCA95EAF70E94CF -:10498000342714C08C2F0E946E1C2DC00E5F1F4F49 -:10499000FE01C49180E28C0F883058F4C7708E2DD0 -:1049A00001C0880FCA95EAF70E943A270E945B2748 -:1049B0001AC08C2F0E94361D16C00E5F1F4FFE01BD -:1049C000C491CC2381F08FE99FE00197F1F700C0FB -:1049D0000000C150F6CF0E5F1F4FFE01F49003C0E0 -:1049E0000E946E1C8E018F2D882309F49FCFEFE962 -:1049F000FFE03197F1F700C000008150F5CFDF9163 -:104A0000CF911F910F91FF90EF90089508956093BB -:104A1000D5037093D6038093D7039093D8030C9457 -:104A200037210F931F930091D5031091D603209146 -:104A3000D7033091D803DC01CB01802B912BA22B23 -:104A4000B32B8093D5039093D603A093D703B09351 -:104A5000D8031F910F910C9437210F931F9300914E -:104A6000D5031091D6032091D7033091D803DC01F0 -:104A7000CB0180239123A223B3238093D50390936A -:104A8000D603A093D703B093D8031F910F910C9432 -:104A900037210F931F930091D5031091D6032091D6 -:104AA000D7033091D803DC01CB0180279127A227BF -:104AB000B3278093D5039093D603A093D703B093E5 -:104AC000D8031F910F910C9437211092D1031092AB -:104AD000D2031092D3031092D4030C94372141E0F7 -:104AE00050E060E070E004C0440F551F661F771F60 -:104AF0008A95D2F74093D1035093D2036093D303A6 -:104B00007093D4030C94372141E050E060E070E0F2 -:104B100004C0440F551F661F771F8A95D2F78091F6 -:104B2000D1039091D203A091D303B091D403482B29 -:104B3000592B6A2B7B2B4093D1035093D203609364 -:104B4000D3037093D4030C94372141E050E060E02C -:104B500070E004C0440F551F661F771F8A95D2F777 -:104B600040955095609570958091D1039091D203B6 -:104B7000A091D303B091D403482359236A237B2304 -:104B80004093D1035093D2036093D3037093D40323 -:104B90000C94372141E050E060E070E004C0440F25 -:104BA000551F661F771F8A95D2F78091D103909188 -:104BB000D203A091D303B091D403482759276A2781 -:104BC0007B274093D1035093D2036093D303709318 -:104BD000D4030C9437210F931F930091D1031091AC -:104BE000D2032091D3033091D403DC01CB01802B7D -:104BF000912BA22BB32B8093D1039093D203A0933C -:104C0000D303B093D4031F910F910C9437210F93CA -:104C10001F930091D1031091D2032091D3033091BF -:104C2000D403DC01CB0180239123A223B3238093FF -:104C3000D1039093D203A093D303B093D4031F91D5 -:104C40000F910C9437210F931F930091D103109172 -:104C5000D2032091D3033091D403DC01CB01802710 -:104C60009127A227B3278093D1039093D203A093D7 -:104C7000D303B093D4031F910F910C94372108955F -:104C8000CF92DF92EF92FF920F931F93CF93DF9318 -:104C90008C01C090D503D090D603E090D703F0905C -:104CA000D8038091D1039091D203A091D303B09106 -:104CB000D403C82AD92AEA2AFB2ACFE1D0E0D701B7 -:104CC000C6010C2E04C0B695A795979587950A94B2 -:104CD000D2F780FF06C0B8018C2F0E94F709019718 -:104CE00021F4219760F780E001C08C2FDF91CF91F4 -:104CF0001F910F91FF90EF90DF90CF900895CF9389 -:104D0000DF93EC010E944026BE010E94F709DF916B -:104D1000CF910895CB010E947F260895909186023D -:104D2000992321F090918702911109C02091880266 -:104D300030918902F90132969FEF40E01FC0982F11 -:104D40009695969596959F3050F5E0918802F09152 -:104D50008902E90FF11D877021E030E0A90102C04E -:104D6000440F551F8A95E2F7CA019181892B8183EF -:104D700008959F3F39F04F5F4E3041F051915813E5 -:104D8000F8CF0DC05111F7CF942FF5CF9F3F39F0D9 -:104D9000F901E90FF11D97FDFA95828308950895B1 -:104DA00090918602992321F090918702911109C078 -:104DB0002091880230918902F9013296205F3F4F9D -:104DC0001FC0982F9695969596959F30F0F4E09198 -:104DD0008802F0918902E90FF11D877021E030E02F -:104DE000A90102C0440F551F8A95E2F7CA018095B8 -:104DF00091818923818308953196E217F30729F081 -:104E000090819813F9CF1082F7CF089581E090E058 -:104E1000E0918802F0918902E80FF91F1082019653 -:104E200080319105A9F708959091EC03892B809327 -:104E3000EC03089580959091EC0389238093EC0313 -:104E400008951092EC0308959091EB03892B8093C1 -:104E5000EB03089580959091EB0389238093EB03F6 -:104E600008951092EB0308959091EA03892B8093A3 -:104E7000EA03089580959091EA0389238093EA03D9 -:104E800008951092EA0308958093D903089510922B -:104E9000D90308958091880290918902FC0131968E -:104EA0009C01205F3F4F80E0919191118F5FE2174D -:104EB000F307D1F70895E0918802F091890280917B -:104EC000EC038083E0918802F091890290818091C7 -:104ED000EB03892B8083E0918802F0918902908115 -:104EE0008091EA03892B80838091D903882361F024 -:104EF000E0918802F09189029081892B80830E9441 -:104F00004A2781111092D9038091880290918902D9 -:104F10000C943A1B80910E04843039F11092EE0308 -:104F200020E488E190E00FB6F894A89580936000A3 -:104F30000FBE2093600080E00E94540580E00E9434 -:104F4000D20A83B7817F846083BF83B7816083BFC8 -:104F50007894889583B78E7F83BF88E10FB6F894E5 -:104F600080936000109260000FBE08950895089528 -:104F7000CF9380E00E9454050E94B6270E94890CBE -:104F80000E94B727C0E08C2F0E94D20D892B29F4F4 -:104F9000CF5FC430C1F780E001C081E0CF910895B8 -:104FA0000E944B2180E00E9454050E94452D0E94E2 -:104FB0002E1B0C94D20A1F920F920FB60F9211243F -:104FC0008F939F93AF93BF938091EE03811113C092 -:104FD0008091EF039091F003A091F103B091F2035F -:104FE0004196A11DB11D8093EF039093F003A09310 -:104FF000F103B093F203BF91AF919F918F910F9006 -:105000000FBE0F901F90189582E084BD93E095BD70 -:105010009AEF97BD80936E0008952FB7F894809112 -:10502000EF039091F003A091F103B091F2032FBF31 -:105030000895CF92DF92EF92FF920F931F932FB7B5 -:10504000F8944091EF035091F0036091F103709157 -:10505000F2032FBF6A017B01EE24FF248C0120E0C4 -:1050600030E0C016D106E206F30610F441505109B3 -:105070009A01281B390BC9011F910F91FF90EF90E6 -:10508000DF90CF9008951F920F920FB60F921124C8 -:105090008F939F93AF93BF938091EF039091F00311 -:1050A000A091F103B091F2030196A11DB11D80936F -:1050B000EF039093F003A093F103B093F203BF9139 -:1050C000AF919F918F910F900FBE0F901F901895E9 -:1050D0000E942B18F8942FEF87EA91E62150804028 -:1050E0009040E1F700C0000087E090EBDC01809386 -:1050F000190490931A04A0931B04B0931C049CE021 -:1051000088E10FB6F894A895809360000FBE909345 -:105110006000FFCF0E94C928811102C00E94A5280B -:105120000E94D4288093ED030E94E1288093170405 -:1051300087FB882780F9809387020E94D828682FF0 -:1051400070E080E090E00C9407256DEE7EEF80E04B -:1051500090E00E94AA3160E082E090E00E949831E5 -:1051600060E083E090E00E94983160E084E090E0AD -:105170000E94983160E085E090E00E94983160E004 -:1051800086E090E00E9498316FEF87E090E00C9409 -:10519000983180E090E00E94923121E08D3E9E4F58 -:1051A00009F020E0822F089582E090E00C948A318B -:1051B00083E090E00C948A31682F83E090E00C94B7 -:1051C000983184E090E00C948A31682F84E090E07C -:1051D0000C94983186E090E00C948A31682F86E038 -:1051E00090E00C94983187E090E00C948A31682F1D -:1051F00087E090E00C9498318091F50380FF0BC01C -:1052000060918D0285E0689FB001112475956795C6 -:10521000759567952BC081FF09C060918D0285E06F -:10522000689FB00111247595679520C082FF07C063 -:1052300060918D0285E0689FB001112417C09091A4 -:10524000F6039923D1F060918C02961788F720918C -:105250008D0285E0289F90011124929FA001939FC9 -:10526000500D112470E0CA010E9470316038710540 -:1052700040F46115710539F002C065E070E0862FD9 -:1052800008958FE7089581E008958091F50380FFE8 -:1052900008C060918B0270E075956795759567956C -:1052A00021C081FF06C060918B0270E07595679503 -:1052B00019C082FF04C060918B0270E010C0909111 -:1052C000F6039923C1F060918A029617A0F78091A6 -:1052D0008B02899FC001112470E00E9470316038F8 -:1052E000710528F46115710521F0862F08958FE767 -:1052F000089581E0089561E070E0F4CF803F21F4EB -:105300000E94FC28819504C0813F29F40E94FC285A -:105310008093F9030895823F21F40E94FC2881952F -:1053200004C0833F29F40E94FC288093F803089569 -:10533000893F19F40E94452905C08A3F31F40E9433 -:10534000452981958093FA0308958B3F21F40E94AB -:105350004529819504C08C3F29F40E9445298093FA -:10536000FB030895843F21F48091F703816017C007 -:10537000853F21F48091F703826011C0863F21F4BC -:105380008091F70384600BC0873F21F48091F7037D -:10539000886005C0883F31F48091F7038061809375 -:1053A000F70308958D3F21F48091F50381600BC0D0 -:1053B0008E3F21F48091F503826005C08F3F29F470 -:1053C0008091F50384608093F5030895803F39F45C -:1053D0008091F90387FF6CC01092F90369C0813F87 -:1053E00029F48091F9031816BCF362C09091F80378 -:1053F000823F29F497FF5CC01092F80359C0833FA5 -:1054000019F41916CCF354C0893F41F48091FA0382 -:1054100018160CF04DC01092FA034AC08A3F29F4C6 -:105420008091FA0387FF44C0F6CF8B3F39F4809117 -:10543000FB0387FF3DC01092FB033AC08C3F29F469 -:105440008091FB031816BCF333C0843F21F4809194 -:10545000F7038E7F17C0853F21F48091F7038D7F7E -:1054600011C0863F21F48091F7038B7F0BC0873FEB -:1054700021F48091F703877F05C0883F31F4809144 -:10548000F7038F7E8093F70313C08D3F21F4809143 -:10549000F5038E7F0BC08E3F21F48091F5038D7F45 -:1054A00005C08F3F29F48091F5038B7F8093F5032E -:1054B0008091F80381110EC08091F90381110AC017 -:1054C0008091FA03811106C08091FB03811102C013 -:1054D0001092F603089587EF93E00E94451B0E9407 -:1054E0000D289093F4038093F30308951F93CF93B3 -:1054F000DF938091F3039091F4030E941928AC018B -:105500009091F603992321F020918E0230E006C09D -:1055100020918F028AE0289F90011124421753079F -:1055200008F486C08091F803C091F903D091FA0382 -:105530001091FB03811107C0C11176C0D11174C055 -:10554000111172C075C09F3F19F09F5F9093F603D1 -:10555000181624F40E94FC288093F8038091F80325 -:1055600087FF05C00E94FC2881958093F8031C16D4 -:1055700024F40E94FC288093F9038091F90387FFAB -:1055800005C00E94FC2881958093F9036091F8037F -:10559000662339F1C091F903CC2319F1772767FD10 -:1055A0007095872F972F0E94E02E23E333E343E388 -:1055B0005FE30E94942F0E94AD2E6093F8036C2F3E -:1055C000772767FD7095872F972F0E94E02E23E3A2 -:1055D00033E343E35FE30E94942F0E94AD2E609378 -:1055E000F9031D1624F40E9445298093FA03809143 -:1055F000FA0387FF05C00E94452981958093FA032D -:10560000111624F40E9445298093FB038091FB032B -:1056100087FF05C00E94452981958093FB03DF9198 -:10562000CF911F910C946B2A9F3F09F08ECF96CF9C -:10563000DF91CF911F910895E7EFF3E085E0DF015F -:105640001D928A95E9F71092F6031092F5030895DA -:10565000833081F128F4813059F08230D1F00895FF -:10566000853009F449C0B8F1863009F456C0089570 -:1056700080918F02262F30E0280F311D2F3F3105FA -:1056800024F4680F60938F0208958FEF80938F0248 -:10569000089580918E02262F30E0280F311D2F3F74 -:1056A000310524F4680F60938E0208958FEF809384 -:1056B0008E02089580918D02262F30E0280F311D33 -:1056C0002F3F310524F4680F60938D0208958FEF0A -:1056D00080938D02089580918C02262F30E0280F50 -:1056E000311D2F3F310524F4680F60938C0208951B -:1056F0008FEF80938C02089580918B02262F30E0EB -:10570000280F311D2F3F310524F4680F60938B0261 -:1057100008958FEF80938B02089580918A02262F3F +:104260000F91FF90EF90DF90CF90BF900C94790763 +:1042700026960FB6F894DEBF0FBECDBFDF91CF916B +:104280001F910F91FF90EF90DF90CF90BF90089516 +:104290000E9442270E9452270E9417270E946C27E3 +:1042A0000E942D2B0E947C2A80E090E00E94611BDE +:1042B00080E090E00C94771B0E9432270C944821F8 +:1042C0000E949026292F22952F7030E02C30310546 +:1042D0004CF42A3031056CF422503109223031057A +:1042E00088F407C02C30310549F02F30310531F00A +:1042F00009C0803E48F0803F29F406C093FB882720 +:1043000080F9089580E0089581E00895CF93DF93C8 +:1043100000D000D01F92CDB7DEB70F900F900F9056 +:104320000F900F90DF91CF910895CF93DF9300D03E +:1043300000D000D0CDB7DEB726960FB6F894DEBF1A +:104340000FBECDBFDF91CF9108951F93CF93DF9321 +:10435000C091E90316E08091EA03C81799F0D0E014 +:104360001C9FF0011D9FF00D1124E551FC4F408171 +:10437000518162817381848195810E94952121966A +:10438000C770E9CFDF91CF911F91089540911B0431 +:1043900050911C0460911D0470911E0480911F04B3 +:1043A000909120040C9495218091200482958F7027 +:1043B00009F054C080911D04882309F44FC08091F6 +:1043C000E903A091EA0360911B0470911C044091E1 +:1043D0001E0450911F04B6E08A1709F43FC090E014 +:1043E00041155105C1F17F3F11F46F3FA1F1B89F15 +:1043F000F001B99FF00D1124E551FC4F218172139A +:104400002AC02081621327C02281211124C0238168 +:1044100034812417350710F421503109241B350B42 +:10442000283C3105C0F4209120042F702061209396 +:10443000200426E0289FF001299FF00D1124E0516F +:10444000FC4F80818F70806180838BE194E00E94BB +:10445000A41D0C94A52101968770BECF0895CF921C +:10446000DF92EF92FF920F931F93CF93DF93CDB71D +:10447000DEB762970FB6F894DEBF0FBECDBF8C01DA +:1044800085E0F801DE011D9601900D928A95E1F715 +:10449000D8014C9111965C91119712966C911297DC +:1044A0001396CD90DC90149730911B0470911C04EE +:1044B00080911E0490911F04009709F46BC17F3F07 +:1044C00019F43F3F09F466C1E0901D04EE2009F4A1 +:1044D000C0C020912004C816D90628F0F601E81BB8 +:1044E000F90BCF0104C0809590958C0D9D1DFF2484 +:1044F000F394883C910578F0F12C207F09F0C6C038 +:104500007C2DD98AC88A89890E9486218BE194E012 +:104510000E94A41DB1C0822F807F09F046C0751390 +:1045200014C0341312C0611110C02F702061209389 +:1045300020040E94C6218BE194E00E94A41D80917A +:104540002004D80115968C932EC0CD2819F15F3F19 +:1045500011F44F3FF9F0F62E61111CC08091E90370 +:104560002091EA0336E0821709F45AC090E0389FA0 +:10457000F001399FF00D1124E551FC4F7181571363 +:1045800006C07081471303C07281711103C0019688 +:104590008770E9CFF62E662309F418C180912004B4 +:1045A000816080932004F12C11C1751308C034136D +:1045B00006C0611104C080912004D801C3C04D879A +:1045C0005E878D859E856A8B0E9460216A8988231B +:1045D000E1F16623D1F120912004822F82958F7022 +:1045E00090E0029774F080911B0490911C049887CE +:1045F0008F831986DB86CA862C87CE0107960E9498 +:10460000A41D86E0F801ABE1B4E001900D928A951B +:10461000E1F70E94D4210E94C621FF24F394D6C062 +:104620004D875E878D859E850E949026292F229535 +:104630002F7030E0223031050CF0BCC09F7009F0C3 +:10464000B6C0805E883008F4C1C0C8010E94A41DB5 +:10465000E4CFC816D90608F453C0F601E81BF90BDD +:10466000CF01883C910508F450C0F12C7C2DD98AEB +:10467000C88A89890E948621EBE1F4E086E0DF01A7 +:104680001D928A95E9F70E94C621A0C0751314C037 +:10469000341312C0611110C080912004F801858389 +:1046A000C8010E94A41D86E0EBE1F4E0DF011D9249 +:1046B0008A95E9F7FE2C8AC04D875E878D859E8599 +:1046C0006A8B0E9460216A89882309F4BECF662321 +:1046D00009F4BBCF20912004822F82958F7090E047 +:1046E00002970CF48ECF80911B0490911C049A8346 +:1046F00089831B82DD82CC822E83CE0101967FCFFF +:10470000809590958C0D9D1DACCFF62E662309F4F7 +:104710009CCF75132EC034132CC02091200420FD93 +:104720001FC0822F82958F70D9F0D80115962C93D7 +:1047300015978F3049F08F5F982F9295907F822F39 +:104740008F70892B15968C93C8010E94A41D86E05A +:10475000F801ABE1B4E001900D928A95E1F793CFB7 +:1047600086E0F801ABE1B4E001900D928A95E1F7A3 +:104770002DC04D875E878D859E850E9460218111A9 +:1047800040CF80912004816080932004C8010E9462 +:10479000A41D1CC0662309F458CF4D875E878D8504 +:1047A0009E850E946021882309F44FCF2ACF811172 +:1047B00048CF0CC0243031050CF047CF9F7009F46E +:1047C00040CFF8019581907F09F03BCF8F2D629605 +:1047D0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:1047E0000F91FF90EF90DF90CF9008951F93CF939C +:1047F000DF93CDB7DEB72C970FB6F894DEBF0FBEB0 +:10480000CDBF4F83588769877A878B879C87CE0176 +:1048100007960E942F22882369F08F8198852A8528 +:104820003B85232BF1F19F3F09F063C08F3F09F0D7 +:1048300060C037C086E0FE013796DE011196019018 +:104840000D928A95E1F76F817885EA85FB8530972F +:1048500041F17F3F11F46F3F21F12091EA0330E0F5 +:10486000C9010196877099274091E90350E08417A8 +:10487000950709F447C069837A83FD83EC8396E04A +:10488000929FD001939FB00D1124A551BC4FFE0102 +:10489000319601900D929A95E1F78093EA030E9478 +:1048A000A52116E08091E9039091EA038917C1F1EF +:1048B000189FC001112485519C4F0E942F228823EC +:1048C00079F1E091E9031E9FF0011124E551FC4FBD +:1048D0004081518162817381848195810E949521FB +:1048E0008091E90390E00196877099278093E9030E +:1048F000D9CF4F81588569857A858B859C850E94A3 +:104900009521CFCF0E945C211092EA031092E90317 +:10491000EBE1F4E086E0DF011D928A95E9F7C1CF73 +:104920002C960FB6F894DEBF0FBECDBFDF91CF91AE +:104930001F910895EF92FF920F931F93CF93DF93F0 +:104940008C01009709F46CC0F12CEE24E394E8018B +:104950002196F8018491843740F4843008F051C0E6 +:10496000813081F0823019F15BC0853709F444C091 +:10497000A8F19CE7980F903708F052C08F770E94FB +:10498000471D41C00E5F1F4FFE01C49180E28C0F96 +:10499000883048F4C7708E2D01C0880FCA95EAF799 +:1049A0000E94452714C08C2F0E947F1C2DC00E5FD3 +:1049B0001F4FFE01C49180E28C0F883058F4C770FD +:1049C0008E2D01C0880FCA95EAF70E944B270E94DE +:1049D0006C271AC08C2F0E94471D16C00E5F1F4FF8 +:1049E000FE01C491CC2381F08FE99FE00197F1F79C +:1049F00000C00000C150F6CF0E5F1F4FFE01F490C3 +:104A000003C00E947F1C8E018F2D882309F49FCF45 +:104A1000EFE9FFE03197F1F700C000008150F5CFDA +:104A2000DF91CF911F910F91FF90EF90089508951E +:104A300060932504709326048093270490932804A0 +:104A40000C9448210F931F93009125041091260484 +:104A50002091270430912804DC01CB01802B912B7D +:104A6000A22BB32B8093250490932604A0932704B4 +:104A7000B09328041F910F910C9448210F931F931A +:104A800000912504109126042091270430912804D8 +:104A9000DC01CB0180239123A223B323809325043F +:104AA00090932604A0932704B09328041F910F919C +:104AB0000C9448210F931F93009125041091260414 +:104AC0002091270430912804DC01CB018027912715 +:104AD000A227B3278093250490932604A09327044C +:104AE000B09328041F910F910C9448211092210437 +:104AF0001092220410922304109224040C94482152 +:104B000041E050E060E070E004C0440F551F661FB4 +:104B1000771F8A95D2F74093210450932204609323 +:104B20002304709324040C94482141E050E060E099 +:104B300070E004C0440F551F661F771F8A95D2F797 +:104B40008091210490912204A0912304B091240427 +:104B5000482B592B6A2B7B2B409321045093220422 +:104B600060932304709324040C94482141E050E0A6 +:104B700060E070E004C0440F551F661F771F8A95E0 +:104B8000D2F7409550956095709580912104909151 +:104B90002204A0912304B0912404482359236A23BA +:104BA0007B23409321045093220460932304709349 +:104BB00024040C94482141E050E060E070E004C01F +:104BC000440F551F661F771F8A95D2F780912104E5 +:104BD00090912204A0912304B091240448275927DE +:104BE0006A277B2740932104509322046093230477 +:104BF000709324040C9448210F931F930091210477 +:104C0000109122042091230430912404DC01CB0173 +:104C1000802B912BA22BB32B809321049093220401 +:104C2000A0932304B09324041F910F910C94482166 +:104C30000F931F93009121041091220420912304CB +:104C400030912404DC01CB0180239123A223B323E0 +:104C50008093210490932204A0932304B09324040E +:104C60001F910F910C9448210F931F9300912104E1 +:104C7000109122042091230430912404DC01CB0103 +:104C800080279127A227B3278093210490932204A1 +:104C9000A0932304B09324041F910F910C944821F6 +:104CA0000895CF92DF92EF92FF920F931F93CF93CD +:104CB000DF938C01C0902504D0902604E090270457 +:104CC000F09028048091210490912204A091230463 +:104CD000B0912404C82AD92AEA2AFB2ACFE1D0E0DD +:104CE000D701C6010C2E04C0B695A7959795879558 +:104CF0000A94D2F780FF06C0B8018C2F0E94D30916 +:104D0000019721F4219760F780E001C08C2FDF919B +:104D1000CF911F910F91FF90EF90DF90CF9008956A +:104D2000CF93DF93EC010E945126BE010E94D3096C +:104D3000DF91CF910895CB010E9490260895909124 +:104D40008402992321F090918502911109C020914C +:104D5000860230918702F90132969FEF40E01FC032 +:104D6000982F9695969596959F3050F5E0918602EE +:104D7000F0918702E90FF11D877021E030E0A90171 +:104D800002C0440F551F8A95E2F7CA019181892B11 +:104D9000818308959F3F39F04F5F4E3041F051912C +:104DA0005813F8CF0DC05111F7CF942FF5CF9F3F77 +:104DB00039F0F901E90FF11D97FDFA958283089505 +:104DC000089590918402992321F090918502911188 +:104DD00009C02091860230918702F9013296205F46 +:104DE0003F4F1FC0982F9695969596959F30F0F45B +:104DF000E0918602F0918702E90FF11D877021E0B2 +:104E000030E0A90102C0440F551F8A95E2F7CA019C +:104E1000809591818923818308953196E217F30764 +:104E200029F090819813F9CF1082F7CF089581E08F +:104E300090E0E0918602F0918702E80FF91F10825E +:104E4000019680319105A9F7089590913C04892B32 +:104E500080933C040895809590913C04892380932D +:104E60003C04089510923C04089590913B04892BD2 +:104E700080933B040895809590913B04892380930F +:104E80003B04089510923B04089590913A04892BB5 +:104E900080933A040895809590913A0489238093F1 +:104EA0003A04089510923A040895809329040895CD +:104EB0001092290408958091860290918702FC0146 +:104EC00031969C01205F3F4F80E0919191118F5F5F +:104ED000E217F307D1F70895E0918602F091870277 +:104EE00080913C048083E0918602F091870290815A +:104EF00080913B04892B8083E0918602F0918702A8 +:104F0000908180913A04892B8083809129048823A1 +:104F100061F0E0918602F09187029081892B808375 +:104F20000E945B2781111092290480918602909142 +:104F300087020C944B1B80915E04843039F11092EF +:104F40003E0420E488E190E00FB6F894A8958093A1 +:104F500060000FBE2093600080E00E94300580E07A +:104F60000E94AE0A83B7817F846083BF83B781606C +:104F700083BF7894889583B78E7F83BF88E10FB60F +:104F8000F89480936000109260000FBE0895089519 +:104F90000895CF9380E00E9430050E94C7270E94A9 +:104FA000650C0E94C827C0E08C2F0E94AE0D892B93 +:104FB00029F4CF5FC430C1F780E001C081E0CF9118 +:104FC00008950E945C2180E00E9430050E94562DC9 +:104FD0000E943F1B0C94AE0A1F920F920FB60F92C5 +:104FE00011248F939F93AF93BF9380913E048111BF +:104FF00013C080913F0490914004A0914104B0916E +:1050000042044196A11DB11D80933F04909340043A +:10501000A0934104B0934204BF91AF919F918F91AF +:105020000F900FBE0F901F90189582E084BD93E003 +:1050300095BD9AEF97BD80936E0008952FB7F894B1 +:1050400080913F0490914004A0914104B0914204AA +:105050002FBF0895CF92DF92EF92FF920F931F938D +:105060002FB7F89440913F0450914004609141045F +:10507000709142042FBF6A017B01EE24FF248C0152 +:1050800020E030E0C016D106E206F30610F44150ED +:1050900051099A01281B390BC9011F910F91FF90EB +:1050A000EF90DF90CF9008951F920F920FB60F925E +:1050B00011248F939F93AF93BF9380913F0490915E +:1050C0004004A0914104B09142040196A11DB11D7C +:1050D00080933F0490934004A0934104B093420412 +:1050E000BF91AF919F918F910F900FBE0F901F9026 +:1050F00018950E943C18F8942FEF87EA91E621500A +:1051000080409040E1F700C0000087E090EBDC01B8 +:105110008093690490936A04A0936B04B0936C0429 +:105120009CE088E10FB6F894A895809360000FBECC +:1051300090936000FFCF0E94DA28811102C00E9484 +:10514000B6280E94E52880933D040E94F2288093AF +:10515000670487FB882780F9809385020E94E928ED +:10516000682F70E080E090E00C9418256DEE7EEFE3 +:1051700080E090E00E94093260E082E090E00E94CE +:10518000F73160E083E090E00E94F73160E084E076 +:1051900090E00E94F73160E085E090E00E94F731F6 +:1051A00060E086E090E00E94F7316FEF87E090E0EA +:1051B0000C94F73180E090E00E94F13121E08D3EC7 +:1051C0009E4F09F020E0822F089582E090E00C9439 +:1051D000E93183E090E00C94E931682F83E090E0BE +:1051E0000C94F73184E090E00C94E931682F84E06E +:1051F00090E00C94F73186E090E00C94E931682F50 +:1052000086E090E00C94F73187E090E00C94E9316F +:10521000682F87E090E00C94F7318091450480FF7F +:105220000BC060918B0285E0689FB00111247595D9 +:105230006795759567952BC081FF09C060918B02BA +:1052400085E0689FB00111247595679520C082FFA5 +:1052500007C060918B0285E0689FB001112417C0E0 +:10526000909146049923D1F060918A02961788F7AD +:1052700020918B0285E0289F90011124929FA0012C +:10528000939F500D112470E0CA010E94CF31603805 +:10529000710540F46115710539F002C065E070E0F8 +:1052A000862F08958FE7089581E008958091450441 +:1052B00080FF08C06091890270E0759567957595CB +:1052C000679521C081FF06C06091890270E07595E5 +:1052D000679519C082FF04C06091890270E010C018 +:1052E000909146049923C1F0609188029617A0F727 +:1052F00080918902899FC001112470E00E94CF3102 +:105300006038710528F46115710521F0862F089524 +:105310008FE7089581E0089561E070E0F4CF803F69 +:1053200021F40E940D29819504C0813F29F40E9437 +:105330000D29809349040895823F21F40E940D298C +:10534000819504C0833F29F40E940D29809348046D +:105350000895893F19F40E94562905C08A3F31F407 +:105360000E945629819580934A0408958B3F21F429 +:105370000E945629819504C08C3F29F40E94562929 +:1053800080934B040895843F21F480914704816009 +:1053900017C0853F21F480914704826011C0863F89 +:1053A00021F48091470484600BC0873F21F48091F1 +:1053B0004704886005C0883F31F4809147048061CC +:1053C0008093470408958D3F21F4809145048160C6 +:1053D0000BC08E3F21F480914504826005C08F3F51 +:1053E00029F4809145048460809345040895803FAA +:1053F00039F48091490487FF6CC01092490469C058 +:10540000813F29F4809149041816BCF362C0909141 +:105410004804823F29F497FF5CC01092480459C0A9 +:10542000833F19F41916CCF354C0893F41F480919D +:105430004A0418160CF04DC010924A044AC08A3F24 +:1054400029F480914A0487FF44C0F6CF8B3F39F49A +:1054500080914B0487FF3DC010924B043AC08C3FB3 +:1054600029F480914B041816BCF333C0843F21F417 +:10547000809147048E7F17C0853F21F480914704B7 +:105480008D7F11C0863F21F4809147048B7F0BC034 +:10549000873F21F480914704877F05C0883F31F41E +:1054A000809147048F7E8093470413C08D3F21F481 +:1054B000809145048E7F0BC08E3F21F4809145047E +:1054C0008D7F05C08F3F29F4809145048B7F8093A9 +:1054D00045048091480481110EC0809149048111D6 +:1054E0000AC080914A04811106C080914B04811149 +:1054F00002C010924604089587E494E00E94561B6F +:105500000E941E28909344048093430408951F939F +:10551000CF93DF9380914304909144040E942A2802 +:10552000AC0190914604992321F020918C0230E047 +:1055300006C020918D028AE0289F90011124421715 +:10554000530708F486C080914804C0914904D09163 +:105550004A0410914B04811107C0C11176C0D111CA +:1055600074C0111172C075C09F3F19F09F5F909376 +:105570004604181624F40E940D2980934804809153 +:10558000480487FF05C00E940D2981958093480437 +:105590001C1624F40E940D2980934904809149042B +:1055A00087FF05C00E940D29819580934904609171 +:1055B0004804662339F1C0914904CC2319F17727B7 +:1055C00067FD7095872F972F0E94F12E23E333E319 +:1055D00043E35FE30E9401300E94BE2E60934804C3 +:1055E0006C2F772767FD7095872F972F0E94F12EDC +:1055F00023E333E343E35FE30E9401300E94BE2EC6 +:10560000609349041D1624F40E94562980934A048D +:1056100080914A0487FF05C00E9456298195809396 +:105620004A04111624F40E94562980934B04809159 +:105630004B0487FF05C00E945629819580934B0437 +:10564000DF91CF911F910C947C2A9F3F09F08ECF60 +:1056500096CFDF91CF911F910895E7E4F4E085E0C4 +:10566000DF011D928A95E9F71092460410924504D5 +:105670000895833081F128F4813059F08230D1F0DF +:105680000895853009F449C0B8F1863009F456C050 +:10569000089580918D02262F30E0280F311D2F3F75 +:1056A000310524F4680F60938D0208958FEF809385 +:1056B0008D02089580918C02262F30E0280F311D35 +:1056C0002F3F310524F4680F60938C0208958FEF0B +:1056D00080938C02089580918B02262F30E0280F52 +:1056E000311D2F3F310524F4680F60938B0208951C +:1056F0008FEF80938B02089580918A02262F30E0ED +:10570000280F311D2F3F310524F4680F60938A0262 +:1057100008958FEF80938A02089580918902262F41 :1057200030E0280F311D2F3F310524F4680F6093BE -:105730008A0208958FEF80938A020895833011F1D1 -:1057400028F4813049F0823091F00895853081F15C -:1057500020F18630C1F1089580918F02681720F4FE -:10576000861B80938F02089510928F020895809176 -:105770008E02681720F4861B80938E020895109283 -:105780008E02089580918D02681720F4861B809305 -:105790008D02089510928D02089580918C026817F1 -:1057A00020F4861B80938C02089510928C02089539 -:1057B00080918B02681720F4861B80938B020895DA -:1057C00010928B02089580918A02681720F4861B3C -:1057D00080938A02089510928A0208950F931F936E -:1057E000873208F048C08E3108F094C0803109F447 -:1057F0007EC008F5873009F468C068F4863009F087 -:10580000A4C08091ED03817F8E7F8093ED0381E0C2 -:105810008093FD039BC08B3009F490C08E3009F05B -:1058200094C08091ED0382FB222720F991E092271A -:1058300090FB82F965C0863109F480C060F4813143 -:1058400009F083C00E944B219091870281E0892753 -:105850008093870273C0893109F470C08B3109F0DD -:1058600074C08091ED0381FB222720F991E09227FB -:1058700090FB81F945C0883309F460C050F4893247 -:1058800009F45EC0853309F45BC0873209F458C05F -:105890005CC0833409F454C028F48A3308F455C03A -:1058A000895339C0883409F050C00E944B210E94AE -:1058B00090060FEF13ED20E3015010402040E1F778 -:1058C00000C000000E94682839C09091ED03892F24 -:1058D0008095817080FB90F929F096609860909394 -:1058E000ED0334C0997F977F9093ED0327C080919B -:1058F000ED0383FB222720F991E0922790FB83F9A7 -:105900008093ED039923D1F08091ED038160809322 -:10591000ED0314C08D5141E050E060E070E08A0179 -:105920009B0104C0000F111F221F331F8A95D2F75D -:10593000C901B8010E9407250E944B2181E006C0E1 -:1059400061E070E080E090E0F5CF80E01F910F9182 -:10595000089580E0089580E00895CF93C82F809146 -:10596000FD03813069F018F08230C9F184C0E09104 -:105970008802F09189028081823209F07EC007C0DE -:10598000E0918802F09189028081823261F48C2F4B -:105990000E94A92C811104C08C2F0E94EE2B1DC0E7 -:1059A00081E090E01AC08C2F0E94AB2C811114C0B2 -:1059B000C43179F048F4CB3079F0C03109F061C0DE -:1059C00082E08093FD0308C0C93219F0C83321F08A -:1059D00058C01092FD0355C081E0817054C0C93297 -:1059E00091F120F5C43179F1B0F4C73009F047C026 -:1059F0008EE180938F0282E380938E028AE080930F -:105A00008D0284E180938C0288E080938B0288E28F -:105A100080938A0234C0CE51C63088F5EC2FF0E076 -:105A2000E65FFC4F80818093FC0329C0CE34E9F00F -:105A300020F4CB3421F56AE013C0C13579F0C235CA -:105A4000F1F461E00DC08091FC03882319F01092FD -:105A5000FC0315C081E08093FD0315C061E006C022 -:105A60008091FC030E94282B0AC06AE08091FC030D -:105A70000E949E2B04C01092FD0380E004C081E0D0 -:105A800002C080E0AACFCF9108950E94C928811159 -:105A900002C00E94A5280E94EA288093180480FF73 -:105AA00002C0869501C080E00C94540580911804D2 -:105AB000982F9695292F30E0233031054CF49F5FC5 -:105AC000990F8170892B8160809318040E94EE28C1 -:105AD0008091180486950C94540580911804982F91 -:105AE000969591F09158990F8170892B80931804A5 -:105AF0008E7F91E009F490E08091180490FB80F98A -:105B0000809318040E94EE288091180486950C94C6 -:105B1000540580911804982F909590FB80F98093FC -:105B200018040E94EE288091180480FF02C0869518 -:105B300001C080E00C94540590911804892F86953B -:105B40008F5F8F779170843028F4880F892B809332 -:105B5000180402C090931804809118048E7F91E07D -:105B600009F490E08091180490FB80F98093180468 -:105B70000E94EE288091180486950C94540520917B -:105B80001804922F96958927982F990F822F81704C -:105B9000892B809318048E7F91E009F490E0809126 -:105BA000180490FB80F9809318040E94EE288091DD -:105BB000180486950C9454055058BB27AA270ED07C -:105BC00075C166D130F06BD120F031F49F3F11F4F4 -:105BD0001EF45BC10EF4E095E7FB51C1E92F77D1CC -:105BE00080F3BA17620773078407950718F071F4FA -:105BF0009EF58FC10EF4E0950B2EBA2FA02D0B0150 -:105C0000B90190010C01CA01A0011124FF27591B01 -:105C100099F0593F50F4503E68F11A16F040A22F07 -:105C2000232F342F4427585FF3CF46953795279578 -:105C3000A795F0405395C9F77EF41F16BA0B620B77 -:105C4000730B840BBAF09150A1F0FF0FBB1F661FBE -:105C5000771F881FC2F70EC0BA0F621F731F841F01 -:105C600048F4879577956795B795F7959E3F08F027 -:105C7000B3CF9395880F08F09927EE0F97958795E6 -:105C80000895D9D008F481E008950CD00FC107D150 -:105C900040F0FED030F021F45F3F19F0F0C0511118 -:105CA00039C1F3C014D198F39923C9F35523B1F343 -:105CB000951B550BBB27AA2762177307840738F07B -:105CC0009F5F5F4F220F331F441FAA1FA9F333D0DA -:105CD0000E2E3AF0E0E830D091505040E695001C8E -:105CE000CAF729D0FE2F27D0660F771F881FBB1F4A -:105CF000261737074807AB07B0E809F0BB0B802D24 -:105D0000BF01FF2793585F4F2AF09E3F510568F06F -:105D1000B6C000C15F3FECF3983EDCF38695779503 -:105D20006795B795F7959F5FC9F7880F911D969571 -:105D3000879597F90895E1E0660F771F881FBB1FCD -:105D4000621773078407BA0720F0621B730B840B7A -:105D5000BA0BEE1F88F7E095089504D06894B1114E -:105D6000D9C00895BCD088F09F5790F0B92F9927DB -:105D7000B751A0F0D1F0660F771F881F991F1AF056 -:105D8000BA95C9F712C0B13081F0C3D0B1E008951F -:105D9000C0C0672F782F8827B85F39F0B93FCCF3A0 -:105DA000869577956795B395D9F73EF4909580954C -:105DB000709561957F4F8F4F9F4F0895E89409C06C -:105DC00097FB3EF490958095709561957F4F8F4F2E -:105DD0009F4F9923A9F0F92F96E9BB279395F69544 -:105DE000879577956795B795F111F8CFFAF4BB0FC2 -:105DF00011F460FF1BC06F5F7F4F8F4F9F4F16C026 -:105E0000882311F096E911C0772321F09EE8872FAF -:105E1000762F05C0662371F096E8862F70E060E06B -:105E20002AF09A95660F771F881FDAF7880F9695E4 -:105E3000879597F90895990F0008550FAA0BE0E888 -:105E4000FEEF16161706E807F907C0F0121613063C -:105E5000E407F50798F0621B730B840B950B39F47C -:105E60000A2661F0232B242B252B21F408950A26E2 -:105E700009F4A140A6958FEF811D811D089597F922 -:105E80009F6780E870E060E008959FEF80EC0895E0 -:105E900000240A9416161706180609060895002409 -:105EA0000A9412161306140605060895092E039483 -:105EB000000C11F4882352F0BB0F40F4BF2B11F4F7 -:105EC00060FF04C06F5F7F4F8F4F9F4F089557FD56 -:105ED0009058440F551F59F05F3F71F04795880F58 -:105EE00097FB991F61F09F3F79F0879508951216EF -:105EF00013061406551FF2CF4695F1DF08C016169B -:105F000017061806991FF1CF86957105610508944B -:105F10000895E894BB2766277727CB0197F9089562 -:105F20008ADF08F48FEF08950BD0C0CFB1DF28F0DF -:105F3000B6DF18F0952309F0A2CFA7CF1124EACF3E -:105F4000C6DFA0F3959FD1F3950F50E0551F629FD8 -:105F5000F001729FBB27F00DB11D639FAA27F00DC2 -:105F6000B11DAA1F649F6627B00DA11D661F829FE9 -:105F70002227B00DA11D621F739FB00DA11D621FCE -:105F8000839FA00D611D221F749F3327A00D611DEB -:105F9000231F849F600D211D822F762F6A2F1124CD -:105FA0009F5750408AF0E1F088234AF0EE0FFF1F20 -:105FB000BB1F661F771F881F91505040A9F79E3F57 -:105FC000510570F05CCFA6CF5F3FECF3983EDCF359 -:105FD000869577956795B795F795E7959F5FC1F794 -:105FE000FE2B880F911D9695879597F90895FA01D4 -:105FF000EE0FFF1F30962105310599F161157105EE -:1060000061F48038BFE39B0749F1689490388105BB -:1060100061F08038BFEF9B0741F0992342F5FF3FC5 -:10602000E1053105210511F1E8940894E795D901BE -:10603000AA2329F4AB2FBE2FF85FD0F310C0FF5F67 -:1060400070F4A695E0F7F73950F019F0FF3A38F4FC -:106050009F779F930CD00F9007FC905808953EF0C7 -:1060600014CF60E070E080E89FE308954FE79F77EA -:106070005F934F933F932F939ED02F913F914F91DA -:106080005F9152DF05C019F40EF0F9CE42CFFDCE7C -:1060900026DFC8F39638C0F707F80F92E8942BE391 -:1060A0003AEA48EB5FE74EDF0F920F920F924DB73F -:1060B0005EB70F92C0D0E4E4F1E016D04F915F914B -:1060C000EF91FF91E595EE1FFF1F49F0FE57E06845 -:1060D0004427EE0F441FFA95E1F74195550B32D056 -:1060E0000F9007FE26C00895DF93CF931F930F9361 -:1060F000FF92EF92DF927B018C01689405C0DA2E4B -:10610000EF011EDFFE01E894A5912591359145919F -:106110005591AEF3EF0162DDFE019701A801DA941B -:1061200079F7DF90EF90FF900F911F91CF91DF9162 -:1061300008959B01AC0160E070E080E89FE3A5CD8D -:106140009ECEACC0CCDEE8F39923D9F3940F511D59 -:10615000BBF39150504094F059F0882332F0660F11 -:10616000771F881F91505040C1F79E3F510544F75B -:10617000880F911D9695879597F908955F3FACF02C -:10618000983E9CF0BB27869577956795B79508F460 -:10619000B1609395C1F7BB0F58F711F460FFE8CFDA -:1061A0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C01F -:1061B0006CCE689464CE93DEC8F39923D1F3C6F312 -:1061C000DF93CF931F930F93FF92C92FDD2788236F -:1061D0002AF02197660F771F881FDAF720E030E05A -:1061E00040E85FEB9FE3883920F0803E30F0219655 -:1061F0008F77E3DCECE6F1E003C0DFDCE9E9F1E016 -:1062000073DF8B01BE01EC01FB2E6F577109759591 -:10621000771F880B990BD4DD28E132E741E35FE378 -:106220008FDEAF2D9801AE01FF900F911F91CF919E -:10623000DF91D4DC3BCEFA01DC01AA0FBB1F9B012E -:10624000AC01BF5728F422273327442750781FC0BA -:10625000B75188F4AB2F0024469537952795011C3C -:10626000A395D2F3002069F0220F331F441FB3958A -:10627000DAF30DD0A1CC61307105A0E88A07B946E8 -:1062800030F49B01AC0166277727882790783096F9 -:1062900021F0208331834283538308959F3F31F05F -:1062A000915020F4879577956795B795880F911D44 -:1062B0009695879597F90895AA1BBB1B51E107C0D6 -:1062C000AA1FBB1FA617B70710F0A61BB70B881F86 -:1062D000991F5A95A9F780959095BC01CD01089515 -:1062E00097FB072E16F4009407D077FD09D00E9483 -:1062F0005C3107FC05D03EF4909581959F4F089541 -:10630000709561957F4F0895EE0FFF1F0590F491F2 -:10631000E02D0994F999FECF92BD81BDF89A992795 -:1063200080B50895A8E1B0E042E050E00C94B231AD -:10633000262FF999FECF92BD81BDF89A019700B43E -:10634000021639F01FBA20BD0FB6F894FA9AF99ADE -:106350000FBE08950196272F0E9499310C94983111 -:10636000DC01CB01FC01F999FECF06C0F2BDE1BD15 -:10637000F89A319600B40D9241505040B8F7089504 -:04638000F894FFCFBF -:1063840007000C52D02445000000410000DC44000A -:1063940000004152D0A4440000404100005C44008D -:1063A40000004148F17644000000415C978A4400B3 -:1063B4000000411FD592440000004152D0A4440083 -:1063C4000000415CFFB844000000410AA7CF44002C -:1063D4000000410000DC44000000410AA7CF440053 -:1063E4000000410000DC4400000041000000000007 -:1063F40000804000005C45000040410000000000B7 -:1064040000804052D02445000040410AA7CF4400F8 -:106414000000410000DC44000000410000000000D6 -:1064240000804052D024450000404100000000009C -:1064340000804000005C45000040410AA7CF4400B2 -:106444000000410000DC44000000410000000000A6 -:1064540000804052D024450000404100000000006C -:106464000080400AA74F45000040410AA7CF4400DE -:106474000000410000DC4400000041000000000076 -:1064840000804052D024450000004100000000007C -:106494000080405CFF38450000004100000000001F -:1064A40000804052D02445000000410AA7CF440098 -:1064B4000000410000DC4400000041000000000036 -:1064C40000804052D024450000804153D024450030 -:1064D40000404160970A450000004154D0A44400A4 -:1064E4000000410000DC440000004160970A4500C0 -:1064F40000A041050000003F0000C8423214C0144F -:106504009D14691435140101DA032808140A321E93 -:106514000000020004000500070009000B000C0045 -:106524000E001000110013001500170018001A00C7 -:106534001C001D001F002100230024002600280049 -:1065440029002B002D002F003000320034003500CC -:10655400370039003B00400045002500260061005B -:106564006000200037006400650066006700440096 -:106574004600240047003F4D3639BD0970093A09E9 -:1065840001099408AD08C608DF08010203040506E2 -:0465940007080900EB +:10573000890208958FEF80938902089580918802ED +:10574000262F30E0280F311D2F3F310524F4680F3C +:105750006093880208958FEF8093880208958330C4 +:1057600011F128F4813049F0823091F008958530AC +:1057700081F120F18630C1F1089580918D02681782 +:1057800020F4861B80938D02089510928D02089557 +:1057900080918C02681720F4861B80938C020895F8 +:1057A00010928C02089580918B02681720F4861B5A +:1057B00080938B02089510928B02089580918A0243 +:1057C000681720F4861B80938A02089510928A023B +:1057D000089580918902681720F4861B80938902BE +:1057E000089510928902089580918802681720F424 +:1057F000861B8093880208951092880208950F9363 +:105800001F93873208F048C08E3108F094C0803171 +:1058100009F47EC008F5873009F468C068F4863062 +:1058200009F0A4C080913D04817F8E7F80933D0468 +:1058300081E080934D049BC08B3009F490C08E3082 +:1058400009F094C080913D0482FB222720F991E069 +:10585000922790FB82F965C0863109F480C060F41C +:10586000813109F083C00E945C219091850281E022 +:1058700089278093850273C0893109F470C08B3108 +:1058800009F074C080913D0481FB222720F991E04A +:10589000922790FB81F945C0883309F460C050F429 +:1058A000893209F45EC0853309F45BC0873209F49C +:1058B00058C05CC0833409F454C028F48A3308F417 +:1058C00055C0895339C0883409F050C00E945C210A +:1058D0000E946C060FEF13ED20E3015010402040B2 +:1058E000E1F700C000000E94792839C090913D0482 +:1058F000892F8095817080FB90F929F096609860DF +:1059000090933D0434C0997F977F90933D0427C0C6 +:1059100080913D0483FB222720F991E0922790FBA0 +:1059200083F980933D049923D1F080913D048160F7 +:1059300080933D0414C08D5141E050E060E070E080 +:105940008A019B0104C0000F111F221F331F8A957B +:10595000D2F7C901B8010E9418250E945C2181E09C +:1059600006C061E070E080E090E0F5CF80E01F913C +:105970000F91089580E0089580E00895CF93C82F97 +:1059800080914D04813069F018F08230C9F184C0F3 +:10599000E0918602F09187028081823209F07EC018 +:1059A00007C0E0918602F09187028081823261F423 +:1059B0008C2F0E94BA2C811104C08C2F0E94FF2BC7 +:1059C0001DC081E090E01AC08C2F0E94BC2C811178 +:1059D00014C0C43179F048F4CB3079F0C03109F00B +:1059E00061C082E080934D0408C0C93219F0C83309 +:1059F00021F058C010924D0455C081E0817054C010 +:105A0000C93291F120F5C43179F1B0F4C73009F011 +:105A100047C08EE180938D0282E380938C028AE0FE +:105A200080938B0284E180938A0288E080938902CC +:105A300088E28093880234C0CE51C63088F5EC2FBE +:105A4000F0E0E85AFC4F808180934C0429C0CE34AA +:105A5000E9F020F4CB3421F56AE013C0C13579F0C8 +:105A6000C235F1F461E00DC080914C04882319F037 +:105A700010924C0415C081E080934D0415C061E084 +:105A800006C080914C040E94392B0AC06AE08091C4 +:105A90004C040E94AF2B04C010924D0480E004C05F +:105AA00081E002C080E0AACFCF9108950E94DA2859 +:105AB000811102C00E94B6280E94FB2880936804CE +:105AC00080FF02C0869501C080E00C943005809173 +:105AD0006804982F9695292F30E0233031054CF437 +:105AE0009F5F990F8170892B8160809368040E9469 +:105AF000FF288091680486950C9430058091680495 +:105B0000982F969591F09158990F8170892B8093D9 +:105B100068048E7F91E009F490E08091680490FB26 +:105B200080F9809368040E94FF288091680486951C +:105B30000C94300580916804982F909590FB80F923 +:105B4000809368040E94FF288091680480FF02C04F +:105B5000869501C080E00C94300590916804892FEF +:105B600086958F5F8F779170843028F4880F892B0A +:105B70008093680402C090936804809168048E7FCB +:105B800091E009F490E08091680490FB80F98093A3 +:105B900068040E94FF288091680486950C94300563 +:105BA00020916804922F96958927982F990F822F1C +:105BB0008170892B809368048E7F91E009F490E0D6 +:105BC0008091680490FB80F9809368040E94FF280C +:105BD0008091680486950C9430055058BB27AA27FD +:105BE0000ED0D1C1C2D130F0C7D120F031F49F3FE7 +:105BF00011F41EF4B7C10EF4E095E7FB9FC1E92F45 +:105C0000D3D180F3BA17620773078407950718F09A +:105C100071F49EF5EBC10EF4E0950B2EBA2FA02D7A +:105C20000B01B90190010C01CA01A0011124FF2749 +:105C3000591B99F0593F50F4503E68F11A16F04044 +:105C4000A22F232F342F4427585FF3CF4695379543 +:105C50002795A795F0405395C9F77EF41F16BA0B08 +:105C6000620B730B840BBAF09150A1F0FF0FBB1FB6 +:105C7000661F771F881FC2F70EC0BA0F621F731FFF +:105C8000841F48F4879577956795B795F7959E3F5C +:105C900008F0B3CF9395880F08F09927EE0F9795EA +:105CA0008795089527D108F481E008950CD06BC141 +:105CB00063D140F05AD130F021F45F3F19F03EC17A +:105CC000511195C14FC170D198F39923C9F3552350 +:105CD000B1F3951B550BBB27AA27621773078407DF +:105CE00038F09F5F5F4F220F331F441FAA1FA9F395 +:105CF00033D00E2E3AF0E0E830D091505040E69587 +:105D0000001CCAF729D0FE2F27D0660F771F881FE7 +:105D1000BB1F261737074807AB07B0E809F0BB0BD6 +:105D2000802DBF01FF2793585F4F2AF09E3F5105FA +:105D300068F004C15CC15F3FECF3983EDCF38695EC +:105D400077956795B795F7959F5FC9F7880F911D70 +:105D50009695879597F90895E1E0660F771F881F5C +:105D6000BB1F621773078407BA0720F0621B730B0F +:105D7000840BBA0BEE1F88F7E095089504D0689461 +:105D8000B11135C1089518D188F09F5790F0B92FFF +:105D90009927B751A0F0D1F0660F771F881F991F80 +:105DA0001AF0BA95C9F712C0B13081F01FD1B1E035 +:105DB00008951CC1672F782F8827B85F39F0B93F45 +:105DC000CCF3869577956795B395D9F73EF4909582 +:105DD0008095709561957F4F8F4F9F4F0895E89400 +:105DE00009C097FB3EF490958095709561957F4F23 +:105DF0008F4F9F4F9923A9F0F92F96E9BB279395D1 +:105E0000F695879577956795B795F111F8CFFAF4E0 +:105E1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F11 +:105E200016C0882311F096E911C0772321F09EE86F +:105E3000872F762F05C0662371F096E8862F70E0D5 +:105E400060E02AF09A95660F771F881FDAF7880FAF +:105E50009695879597F9089588D018F011F08CD011 +:105E600038F480C0C4C0E92F9FD0B0F35523C9F3E4 +:105E7000E7FB6217730784079507A8F199F3E92FE9 +:105E8000FF2788232AF03197660F771F881FDAF7DC +:105E9000952F5527442332F091505040220F331F45 +:105EA000441FD2F7BB27E91BF50B621B730B840B56 +:105EB000B109C1F222F4620F731F841FB11D319723 +:105EC0002AF0660F771F881FBB1FEFCF91505040FD +:105ED0005AF041F0882332F0660F771F881F9150E7 +:105EE0005040C1F7939530C08695779567959F5F31 +:105EF000D9F7F8CF990F0008550FAA0BE0E8FEEF8D +:105F000016161706E807F907C0F012161306E4077D +:105F1000F50798F0621B730B840B950B39F40A2676 +:105F200061F0232B242B252B21F408950A2609F454 +:105F3000A140A6958FEF811D811D089597F99F6758 +:105F400080E870E060E008959F3F31F0915020F4C8 +:105F5000879577956795B795880F911D9695879545 +:105F600097F908959FEF80EC089500240A9416167F +:105F7000170618060906089500240A941216130637 +:105F8000140605060895092E0394000C11F48823C5 +:105F900052F0BB0F40F4BF2B11F460FF04C06F5FE1 +:105FA0007F4F8F4F9F4F089557FD9058440F551FB7 +:105FB00059F05F3F71F04795880F97FB991F61F08B +:105FC0009F3F79F087950895121613061406551F02 +:105FD000F2CF4695F1DF08C0161617061806991F6E +:105FE000F1CF86957105610508940895E894BB2763 +:105FF00066277727CB0197F908957CDF08F48FEFA8 +:1060000008950BD0C0CFB1DF28F0B6DF18F095238C +:1060100009F094CFA7CF1124EACFC6DFA0F3959F54 +:10602000D1F3950F50E0551F629FF001729FBB277F +:10603000F00DB11D639FAA27F00DB11DAA1F649F2B +:106040006627B00DA11D661F829F2227B00DA11DDE +:10605000621F739FB00DA11D621F839FA00D611D64 +:10606000221F749F3327A00D611D231F849F600D85 +:10607000211D822F762F6A2F11249F5750408AF0BE +:10608000E1F088234AF0EE0FFF1FBB1F661F771F4A +:10609000881F91505040A9F79E3F510570F04ECF98 +:1060A000A6CF5F3FECF3983EDCF386957795679536 +:1060B000B795F795E7959F5FC1F7FE2B880F911D68 +:1060C0009695879597F90895FA01EE0FFF1F309680 +:1060D0002105310599F16115710561F48038BFE33F +:1060E0009B0749F168949038810561F08038BFEFD3 +:1060F0009B0741F0992342F5FF3FE105310521055A +:1061000011F1E8940894E795D901AA2329F4AB2F5B +:10611000BE2FF85FD0F310C0FF5F70F4A695E0F7D4 +:10612000F73950F019F0FF3A38F49F779F930CD06D +:106130000F9007FC905808953EF014CF60E070E097 +:1061400080E89FE308954FE79F775F934F933F93D6 +:106150002F939ED02F913F914F915F9152DF05C0B9 +:1061600019F40EF0EBCE42CFFDCE26DFC8F3963801 +:10617000C0F707F80F92E8942BE33AEA48EB5FE7A1 +:106180004EDF0F920F920F924DB75EB70F92C0D0B5 +:10619000ECEFF0E016D04F915F91EF91FF91E59514 +:1061A000EE1FFF1F49F0FE57E0684427EE0F441F23 +:1061B000FA95E1F74195550B32D00F9007FE26C0B6 +:1061C0000895DF93CF931F930F93FF92EF92DF9287 +:1061D0007B018C01689405C0DA2EEF011EDFFE0101 +:1061E000E894A5912591359145915591AEF3EF0134 +:1061F00006DDFE019701A801DA9479F7DF90EF90B0 +:10620000FF900F911F91CF91DF9108959B01AC01F9 +:1062100060E070E080E89FE349CD90CE95CECCDE83 +:10622000E8F39923D9F3940F511DBBF391505040DB +:1062300094F059F0882332F0660F771F881F915031 +:106240005040C1F79E3F510544F7880F911D969528 +:10625000879597F908955F3FACF0983E9CF0BB2777 +:10626000869577956795B79508F4B1609395C1F7D2 +:10627000BB0F58F711F460FFE8CF6F5F7F4F8F4F70 +:106280009F4FE3CFB4CE0EF05FCE6CCE689456CE67 +:1062900093DEC8F39923D1F3C6F3DF93CF931F9313 +:1062A0000F93FF92C92FDD2788232AF02197660FCD +:1062B000771F881FDAF720E030E040E85FEB9FE3CC +:1062C000883920F0803E30F021968F7787DCE4E239 +:1062D000F1E003C083DCE1E5F1E073DF8B01BE0197 +:1062E000EC01FB2E6F5771097595771F880B990B81 +:1062F00078DD28E132E741E35FE38FDEAF2D9801DF +:10630000AE01FF900F911F91CF91DF9178DC3BCED2 +:10631000FA01DC01AA0FBB1F9B01AC01BF5728F497 +:1063200022273327442750781FC0B75188F4AB2F5A +:106330000024469537952795011CA395D2F300209C +:1063400069F0220F331F441FB395DAF30DD045CC0B +:1063500061307105A0E88A07B94630F49B01AC01B1 +:106360006627772788279078309621F0208331831D +:10637000428353830895AA1BBB1B51E107C0AA1F88 +:10638000BB1FA617B70710F0A61BB70B881F991FD6 +:106390005A95A9F780959095BC01CD01089597FB7A +:1063A000072E16F4009407D077FD09D00E94BB3168 +:1063B00007FC05D03EF4909581959F4F0895709508 +:1063C00061957F4F0895EE0FFF1F0590F491E02D2A +:1063D0000994F999FECF92BD81BDF89A992780B5AD +:1063E0000895A8E1B0E042E050E00C941132262F6D +:1063F000F999FECF92BD81BDF89A019700B40216BB +:1064000039F01FBA20BD0FB6F894FA9AF99A0FBE68 +:1064100008950196272F0E94F8310C94F731DC0182 +:10642000CB01FC01F999FECF06C0F2BDE1BDF89A9F +:10643000319600B40D9241505040B8F70895F89449 +:02644000FFCF8C +:106442000C52D02445000000410000DC4400000052 +:106452004152D0A4440000404100005C44000000CE +:106462004148F17644000000415C978A44000000F4 +:10647200411FD592440000004152D0A444000000C4 +:10648200415CFFB844000000410AA7CF440000006D +:10649200410000DC44000000410AA7CF4400000094 +:1064A200410000DC440000004100000000000080C8 +:1064B2004000005C450000404100000000000080F8 +:1064C2004052D02445000040410AA7CF44000000BA +:1064D200410000DC44000000410000000000008098 +:1064E2004052D024450000404100000000000080DE +:1064F2004000005C45000040410AA7CF4400000074 +:10650200410000DC44000000410000000000008067 +:106512004052D024450000404100000000000080AD +:10652200400AA74F45000040410AA7CF440000009F +:10653200410000DC44000000410000000000008037 +:106542004052D024450000004100000000000080BD +:10655200405CFF3845000000410000000000008060 +:106562004052D02445000000410AA7CF4400000059 +:10657200410000DC440000004100000000000080F7 +:106582004052D024450000804153D02445000040B1 +:106592004160970A450000004154D0A44400000025 +:1065A200410000DC440000004160970A450000A061 +:1065B20041050000003F0000C8424314D114AE144C +:1065C2007A14461401012A042808140A321E000013 +:1065D200020004000500070009000B000C000E0079 +:1065E2001000110013001500170018001A001C00FB +:1065F2001D001F002100230024002600280029007E +:106602002B002D002F0030003200340035003700FF +:1066120039003B0040004500250026006100600073 +:1066220020003700640065006600670044004600F1 +:10663200240047003149803F5D8B803FF8BF803F97 +:10664200CAE1803F73ED803FCAE1803FF8BF803FDF +:106652005D8B803F3149803F0000803FF16D7F3F7D +:1066620075EA7E3F4C827E3F833F7E3F84287E3F99 +:10667200833F7E3F4C827E3F75EA7E3FF16D7F3FD6 +:106682000000803F3F4D363975092809F208B908E4 +:106692004C0865087E0897080102030405060708EE +:0266A2000900ED :00000001FF diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c index 95b971876..b3aa14dcb 100644 --- a/keyboard/preonic/keymaps/default/keymap.c +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -319,7 +319,7 @@ void matrix_init_user(void) { #ifdef AUDIO_ENABLE uint8_t starting_note = 0x0C; -int offset = 7; +int offset = 0; void process_action_user(keyrecord_t *record) { diff --git a/keyboard/preonic/preonic_pcb_r1.hex b/keyboard/preonic/preonic_pcb_r1.hex index 5bdc190e1..eda1b1979 100644 --- a/keyboard/preonic/preonic_pcb_r1.hex +++ b/keyboard/preonic/preonic_pcb_r1.hex @@ -1,1702 +1,1628 @@ -:100000000C94D4020C9418030C9418030C94180349 -:100010000C9418030C9418030C9418030C941803F4 -:100020000C9418030C9418030C94E8160C94BA174B -:100030000C946C290C9418030C9418030C9418035A -:100040000C9418030C9418030C9418030C941803C4 -:100050000C9418030C94D9290C9418030C941803CD -:100060000C9418030C9418030C9418030C941803A4 -:100070000C9418030C9418030C9418030C94180394 -:100080000C941C0E0C9418030C9418030C94180375 -:100090000C9418030C9418030C9418030C94180374 -:1000A0000C9418030C9418030C941803076342363D -:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 -:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD -:1000D0000000803F08000000BE922449123EABAAF7 -:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 -:1000F000AA3E00000000BF000000803F000000009A -:1001000000084178D3BB4387D1133D190E3CC3BDD2 -:100110004282AD2B3E68EC8276BED98FE1A93E4C7F -:1001200080EFFFBE01C4FF7F3F00000000003500EC -:100130001E001F00200021002200230024002500B3 -:10014000260027002A002B0014001A0008001500C2 -:1001500017001C0018000C00120013002A002900D0 -:1001600004001600070009000A000B000D000E0035 -:100170000F0033003400E1001D001B0006001900D1 -:10018000050011001000360037003800280000304C -:10019000E000E200E30003522C002C000452500067 -:1001A000510052004F0035001E001F0020002100AA -:1001B0002200230024002500260027002A002B000F -:1001C00014001A00090013000A000D000F001800A7 -:1001D0001C0033002A002900040015001600170037 -:1001E00007000B00110008000C0012003400E100B1 -:1001F0001D001B000600190005000E00100036004F -:100200003700380028000030E000E200E30003522D -:100210002C002C0004525000510052004F003500B9 -:100220001E001F00200021002200230024002500C2 -:10023000260027002A002B00340036003700130068 -:100240001C0009000A00060015000F002A00290002 -:1002500004001200080018000C0007000B00170033 -:10026000110016003800E100330014000D000E00EC -:100270001B00050010001A0019001D0028000030A6 -:10028000E000E200E30003522C002C000452500076 -:10029000510052004F0035001E001F0020002100B9 -:1002A0002200230024002500260027002A00350212 -:1002B0001E021F0220022102220223022402250222 -:1002C000260227022A0001003A003B003C003D00C4 -:1002D0003E003F002D022E022F02300231020100AB -:1002E00040004100420043004400450000530153D8 -:1002F0000253005001000100010001000100010053 -:10030000010001000100AB00AA00A900AE00350009 -:100310001E001F00200021002200230024002500D1 -:10032000260027002A0035001E001F0020002100A3 -:100330002200230024002500260027002A000100B7 -:100340003A003B003C003D003E003F002D002E00E7 -:100350002F00300031000100400041004200430006 -:1003600044004500005301530253005001000100B6 -:100370000100010001000100010001000100AB00CB -:10038000AA00A900AE002A035400680065002000FE -:100390005000720065006F006E006900630020006D -:1003A0004B006500790062006F006100720064001C -:1003B00000002C034F007200740068006F006C0096 -:1003C00069006E0065006100720020004B0065004E -:1003D000790062006F006100720064007300000029 -:1003E000040309040902D000060100A0FA09040070 -:1003F000000103010100092111010001223F000752 -:1004000005810308000A0904010001030102000933 -:100410002111010001224D000705820308000A098D -:10042000040200010300000009211101000122362D -:10043000000705830308000A090403000203000003 -:10044000000921110100012220000705840320007A -:100450000107050403200001090404000001010054 -:100460000009240100010900010509040500020139 -:1004700003000007240100014100062402010100DD -:1004800006240202020009240301030102010009FB -:1004900024030204010101000905060240000500D1 -:1004A0000005250101010905850240000500000540 -:1004B000250101031201100100000008EDFE61603A -:1004C0000100010200010631FF0974A1010975153F -:1004D0000025FF9520750881020976150025FF95F6 -:1004E0002075089102C005010980A101850216014D -:1004F0000026B7001A01002AB70075109501810087 -:10050000C0050C0901A1018503160100269C021AF1 -:1005100001002A9C02751095018100C005010902A5 -:10052000A1010901A10005091901290515002501ED -:100530009505750181029501750381010501093059 -:1005400009311581257F95027508810609381581C5 -:10055000257F950175088106050C0A38021581254D -:100560007F950175088106C0C005010906A1010536 -:100570000719E029E7150025019508750181029505 -:100580000175088101050819012905950575019175 -:10059000029501750391010507190029FF15002532 -:1005A000FF950675088100C011241FBECFEFDAE069 -:1005B000DEBFCDBF04B603FE24C080910404909139 -:1005C0000504A0910604B09107048730904BA74022 -:1005D000B04BB9F410920404109205041092060472 -:1005E0001092070414BE84B7877F84BF88E10FB6DA -:1005F000F89480936000109260000FBEE0E0F8E392 -:10060000099512E0A0E0B1E0EEE1F9E602C0059044 -:100610000D92A832B107D9F714E0A8E2B2E001C008 -:100620001D92A430B107E1F70E94A0130C948D3401 -:100630000C94000061110DC0FC018281882331F00F -:1006400085EE0E94671E0E94683003C085EE0E94FE -:100650002F1F80E090E008950E940F0E40E050E0D0 -:1006600069E070E080E091E00C94600F08950E94D2 -:1006700049036E9A769A8CE293E0892B11F00C94E0 -:100680002C03089586E393E0892B11F00C94360334 -:100690000895279A2F988FEF9FEF9093870080936C -:1006A00086008AE08093800089E1809381000C9429 -:1006B000113081110BC080918000877F8093800072 -:1006C00010928D0010928C002F9808952F988330EF -:1006D00041F4809180008860809380008FEF9FEFCD -:1006E00012C09091800098609093800023E030E0E9 -:1006F000281B3109220F331F8FEF9FEF02C0969501 -:1007000087952A95E2F790938D0080938C00089549 -:100710008B3B910568F4883A910530F5853A91054F -:10072000C0F48430910598F4019709F06FC071C04E -:10073000803E910508F46AC0883E910540F09C0116 -:10074000205F31092031310508F060C05CC09C0198 -:10075000A1C0853A910509F45FC0863A910509F474 -:100760005EC023E830E496C0883A910509F45AC087 -:10077000893A910509F459C08A3A910509F458C09B -:100780008B3A910509F457C08C3A910509F456C08B -:100790008D3A910509F455C0803B910509F454C088 -:1007A0008E3A910509F453C08F3A910509F452C06D -:1007B000813B910509F451C0823B910509F450C079 -:1007C000833B910509F44FC0843B910509F44EC069 -:1007D000853B910509F44DC0863B910509F44CC059 -:1007E000873B910509F44BC0883B910509F44AC049 -:1007F000893B910509F449C08A3B910509F048C03D -:100800002AE236E447C09C01306544C020E030E075 -:1008100041C021E030E03EC021E830E43BC022E8A6 -:1008200030E438C022EE34E435C029EE34E432C07E -:100830002AEE34E42FC025EB34E42CC026EB34E45C -:1008400029C027EB34E426C02CEC34E423C02DEC83 -:1008500034E420C023E835E41DC02AE835E41AC09A -:1008600022E935E417C024E935E414C021E236E476 -:1008700011C023E236E40EC024E236E40BC025E2C8 -:1008800036E408C026E236E405C027E236E402C0BA -:1008900020E034E4C90108959CE0799FF00111241F -:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 -:1008B000FF1FE25DFE4F25913491C9010895880F15 -:1008C000991F82559040FC0125913491C9010895EA -:1008D000880F991F825D9E4FFC0125913491C901BB -:1008E00008950E944C049C019A9581159F4110F433 -:1008F000C9010895C90190528115904128F4C90198 -:100900009F700E9468040895C90190538115904119 -:1009100020F4C9019927906C0895C901905440971B -:1009200028F4C9018F709927946D0895203180E4CF -:10093000380719F480E091ED0895213190E43907EA -:1009400019F480E090ED0895223140E4340719F461 -:1009500080E092ED0895233180E4380719F480E0B7 -:1009600093ED0895211590E5390799F40E945623D7 -:1009700040E065E088E491E00E94600F2FEF44E3DF -:100980008CE0215040408040E1F700C000000C9412 -:10099000FE29213090E5390731F48091F002816021 -:1009A0008093F0020895C90190558115904108F097 -:1009B00062C0432F55274F70552741305105F9F438 -:1009C000C90174E0880F991F7A95E1F78827937021 -:1009D000B901E3E0660F771FEA95E1F760767727C4 -:1009E000862B972B9C682370332702C0440F551F1A -:1009F0002A95E2F74F715527842B952B08954230A5 -:100A0000510529F4922F8827816F906A0895433009 -:100A10005105B9F4C90153E0880F991F5A95E1F7C0 -:100A2000807E97702370332741E050E002C0440F6E -:100A3000551F2A95E2F74F715527842B952B9C68FB -:100A400008954430510589F5C90143E0880F991F85 -:100A50004A95E1F7807E97702370332741E050E09C -:100A600002C0440F551F2A95E2F74F715527842B7A -:100A7000952B9A680895C90190568115904118F4F4 -:100A8000C901906F0895C90190578115904120F4D4 -:100A9000C9019F7090620895C901905881159041D5 -:100AA00020F4C9019F70906A0895203E3105E0F45A -:100AB000203C310568F52133310509F475C048F44F -:100AC0002932310509F46BC02A32310509F07BC0A7 -:100AD00075C02933310501F122383105E9F025339C -:100AE000310509F070C051C0233E3105B1F140F429 -:100AF000203E3105D1F0223E310509F064C01CC012 -:100B0000263E310579F1273E310509F05CC038C039 -:100B1000C9010E945F0408958091010380FD02C015 -:100B200081FF51C080EE90E04FC08091010380FFB3 -:100B3000F9CF89E390E048C08091010382FF0AC0A9 -:100B40008091010384FF03C080E090E03DC083EE0C -:100B500090E03AC082EE90E037C08091010382FFBE -:100B6000EFCFF8CF8091010383FF07C0809101038D -:100B700084FDEACF87EE90E027C086EE90E024C0A7 -:100B80008091010383FFF2CFF8CF8091010385FFAD -:100B900003C089E290E018C085E390E015C0809121 -:100BA000010385FDF9CFF5CF8091010386FF03C0D6 -:100BB0008AE290E009C081E390E006C080910103E1 -:100BC00086FDF9CFF5CFC9010E94880308950895E5 -:100BD0005F926F927F928F929F92AF92BF92CF92CD -:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 -:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 -:100C00002F5F3F4F4E018BE0880E911C60E070E03B -:100C100000E010E0E12CF12CC12CD12CA12CB12C46 -:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 -:100C3000A62DB52D872D01900D928A95E1F7F9012A -:100C4000819191919F01FC01E07FFF27E032F10546 -:100C500059F48F709927FA0102C0EE0FFF1F8A9591 -:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E -:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC -:100C8000DF2A29C0E034F10559F48F709927FA0161 -:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 -:100CA000E035F10559F48F709927FA0102C0EE0F73 -:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 -:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 -:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 -:100CE0008A2D8095892384B985B18A2985B997B1E0 -:100CF0008C2D8095892387B988B18C2988B99AB1C0 -:100D00008E2D809589238AB98BB18E298BB99DB19F -:100D1000802F809589238DB98EB1802B8EB990B3A9 -:100D2000862F8095892380BB81B3862B81BB2A9631 -:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC -:100D40000F91FF90EF90DF90CF90BF90AF909F906A -:100D50008F907F906F905F9008955F926F927F92D7 -:100D60008F929F92AF92BF92CF92DF92EF92FF92BB -:100D70000F931F93CF93DF93CDB7DEB768970FB66E -:100D8000F894DEBF0FBECDBF85B7806885BF85B73D -:100D9000806885BF0E94E8059E012F5F3F4F4E018E -:100DA00089E1880E911C60E070E000E010E0E12C29 -:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 -:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 -:100DD00001900D928A95E1F7F901819191919F011E -:100DE000FC01E07FFF27E032F10559F48F7099276D -:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 -:100E000037C0E033F10559F48F709927FA0102C019 -:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 -:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 -:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 -:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 -:100E50000E2B1F2B0DC0E036F10551F48F70992732 -:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F -:100E70002815390509F0A7CF94B18A2D80958923CB -:100E800084B985B18A2985B997B18C2D809589233C -:100E900087B988B18C2988B99AB18E2D809589231C -:100EA0008AB98BB18E298BB99DB1802F809589230A -:100EB0008DB98EB1802B8EB990B3862F8095892302 -:100EC00080BB81B3862B81BB10922902109228022D -:100ED000109233021092320210922B0210922A02C8 -:100EE000109235021092340210922D0210922C02B0 -:100EF000109237021092360210922F0210922E0298 -:100F0000109239021092380210923102109230027F -:100F100010923B0210923A0287E393E0892BB9F0DA -:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC -:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 -:100F40009F908F907F906F905F900C94370368967E -:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA -:100F60000F91FF90EF90DF90CF90BF90AF909F9048 -:100F70008F907F906F905F9008955F926F927F92B5 -:100F80008F929F92AF92BF92CF92DF92EF92FF9299 -:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 -:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 -:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 -:100FC0003AE0532E470101E010E048E1642E55E07D -:100FD000752EE3E9F1E0D401852D01900D928A95FB -:100FE000E1F7F701819191917F019C01207F3327E7 -:100FF0002032310589F424B18F709927A80102C0ED -:10100000440F551F8A95E2F7CA01242B24B995B1E4 -:101010008095892385B94FC02033310589F427B1E4 -:101020008F709927F80102C0EE0FFF1F8A95E2F733 -:10103000CF012E2B27B998B18095892388B93BC061 -:101040002034310589F42AB18F709927A80102C094 -:10105000440F551F8A95E2F7CA01242B2AB99BB188 -:10106000809589238BB927C02035310589F42DB1AE -:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 -:10108000CF012E2B2DB99EB1809589238EB913C027 -:101090002036310581F420B38F709927A80102C052 -:1010A000440F551F8A95E2F7CA01242B20BB91B348 -:1010B0008095892381BB50EA5A95F1F7BE016F5F95 -:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC -:1010D0001196462D01900D924A95E1F7FB01419141 -:1010E0005191BF01FA01E07FFF27E032F10511F4D1 -:1010F000E3B113C0E033F10511F4E6B10EC0E03402 -:10110000F10511F4E9B109C0E035F10511F4ECB1D4 -:1011100004C0E036F105B9F4EFB1F0E04F705527A7 -:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 -:10113000022E02C0440F551F0A94E2F702C040E09D -:1011400050E0842B952B2F5F3F4F2C30310509F059 -:10115000BCCFF601208131812817390721F0918316 -:101160008083709270010E94E805F2E0CF0ED11CDE -:10117000EA14FB0409F02DCF809170018823A1F1BE -:10118000815080937001882339F08FE99FE00197A7 -:10119000F1F700C0000028C0809132029091330224 -:1011A0009093290280932802809134029091350215 -:1011B00090932B0280932A028091360290913702FD -:1011C00090932D0280932C028091380290913902E5 -:1011D00090932F0280932E0280913A0290913B02CD -:1011E000909331028093300282E493E0892B11F0D6 -:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 -:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 -:10121000CF90BF90AF909F908F907F906F905F9096 -:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D -:10123000918108950895CF92DF92EF92FF920F93DC -:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 -:10125000F894DEBF0FBECDBF8C01862F642F88238C -:1012600079F0F80192812FE7482F992329F083E044 -:1012700093E00E94C41904C083E093E00E94D41953 -:10128000F80180818B3091F59181943009F0A8C2EA -:101290009281809173019923B1F08F5F80937301E4 -:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 -:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 -:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 -:1012D000BD4F01900D929A95E1F7E0917101F09167 -:1012E0007201EE0FFF1F21E332E093C08A3009F054 -:1012F000CBC0F8019181943009F072C29281809143 -:101300007301992309F473C081508093730196E4AB -:10131000E5EBF1E0DE01A551BE4F01900D929A95EB -:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA -:1013300031E02C0F3D1FE20FF31F60817181680FB8 -:10134000711D882777FD8095982F0E94AC3120E091 -:1013500030E040E451E40E94113120E030E040E808 -:1013600050E40E94A9309B01AC0160E070E080E095 -:1013700090E40E94C33221E230ED42E053E40E9447 -:1013800060324CE050E00E94BB0F20E04BE760E091 -:1013900083E093E00E94B41920E04BE761E083E032 -:1013A00093E00E94B41920E04BE762E083E093E011 -:1013B0000E94B41920E04BE763E083E093E00E94D1 -:1013C000B41920E04BE764E083E093E0C454DD4FC0 -:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 -:1013E0000F91FF90EF90DF90CF900C94B41996E49A -:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 -:10140000E1F7E0917101F0917201EE0FFF1F25EA03 -:1014100031E02C0F3D1FE20FF31F60817181680FD7 -:10142000711D882777FD8095982F0E94AC3120E0B0 -:1014300030E040E451E40E94113120E030E040E827 -:1014400050E40E94A9309B01AC0160E070E080E0B4 -:1014500090E40E94C33221E230ED42E053E40E9466 -:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F -:101470000FBECDBFDF91CF911F910F91FF90EF90E5 -:10148000DF90CF900C94BE0C893009F0D3C0F801E6 -:101490009181943009F0A4C19281992309F4A0C1EB -:1014A00080917101909172010196909372018093E5 -:1014B000710120E04BE760E083E093E00E94B41903 -:1014C00020E04BE761E083E093E00E94B41920E064 -:1014D0004BE762E083E093E00E94B41920E04BE721 -:1014E00063E083E093E00E94B41920E04BE764E0FE -:1014F00083E093E00E94B4190E94BE0C00E010E06B -:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 -:10151000BE4F9F2D01900D929A95E1F7E0917101D8 -:10152000F0917201E00FF11FEE0FFF1F2FE531E088 -:101530002C0F3D1FE20FF31F60817181680F711D39 -:10154000882777FD8095982F0E94AC3120E030E00D -:1015500040E451E40E94113120E030E040E850E4E2 -:101560000E94A9309B01AC0160E070E080E090E453 -:101570000E94C33221E230ED42E053E40E94603227 -:101580004CE050E00E94BB0F3FEF87EE93E03150FC -:1015900080409040E1F700C0000080917301E5EBCE -:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E -:1015B000E1F7E0917101F0917201E00FF11FEE0F80 -:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 -:1015D0007181680F711D882777FD8095982F0E9473 -:1015E000AC3120E030E040E451E40E94113120E0D1 -:1015F00030E040E850E40E94A9309B01AC0160E07B -:1016000070E080E090E40E94C33221E230ED42E0DD -:1016100053E40E9460320E94EB0C8FEF9CE701972D -:10162000F1F700C000000F5F1F4F0830110509F0EF -:1016300069CF94C1883009F0D3C0F801918194300A -:1016400009F0CEC09281992309F4CAC0809171013A -:10165000909172010197909372018093710120E043 -:101660004BE760E083E093E00E94B41920E04BE791 -:1016700061E083E093E00E94B41920E04BE762E070 -:1016800083E093E00E94B41920E04BE763E083E03D -:1016900093E00E94B41920E04BE764E083E093E01C -:1016A0000E94B4190E94BE0C00E010E056E4F52E32 -:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C -:1016C00001900D929A95E1F7E0917101F09172010C -:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 -:1016E000E20FF31F60817181680F711D882777FDFC -:1016F0008095982F0E94AC3120E030E040E451E426 -:101700000E94113120E030E040E850E40E94A9300E -:101710009B01AC0160E070E080E090E40E94C33285 -:1017200021E230ED42E053E40E9460324CE050E0B0 -:101730000E94BB0F3FEF87EE93E031508040904016 -:10174000E1F700C0000080917301E5EBF1E0DE01FC -:10175000A357BF4F9F2D01900D929A95E1F7E0910D -:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 -:1017700030E02C0F3D1FE20FF31F60817181680F75 -:10178000711D882777FD8095982F0E94AC3120E04D -:1017900030E040E451E40E94113120E030E040E8C4 -:1017A00050E40E94A9309B01AC0160E070E080E051 -:1017B00090E40E94C33221E230ED42E053E40E9403 -:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD -:1017D00000000F5F1F4F0830110509F069CFBEC030 -:1017E000F801228190917301222309F45DC026E45F -:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 -:10180000E1F7E0917101F0917201E80FF11DEE0F27 -:10181000FF1F27E430E02C0F3D1FE20FF31F608114 -:101820007181690F711D882777FD8095982F0E941F -:10183000AC3120E030E040E451E40E9411316B0112 -:101840007C01F801818165E070E0681B71098827DF -:1018500077FD8095982F0E94AC319B01AC01C701A8 -:10186000B6010E94A9309B01AC0160E070E080E00D -:1018700090E40E94C33221E230ED42E053E40E9442 -:1018800060324FE050E0C454DD4F0FB6F894DEBF35 -:101890000FBECDBFDF91CF911F910F91FF90EF90C1 -:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 -:1018B000119601900D922A95E1F7E0917101F09156 -:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 -:1018D0003D1FE20FF31F60817181690F711D882721 -:1018E00077FD8095982F0E94AC3120E030E040E4F5 -:1018F00051E40E9411316B017C01F801818165E0A6 -:1019000070E0681B7109882777FD8095982F0E94E9 -:10191000AC319B01AC01C701B6010E94A9309B010B -:10192000AC0160E070E080E090E40E94C33221E20C -:1019300030ED42E053E40E946032C454DD4F0FB6F4 -:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 -:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 -:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 -:101970000F91FF90EF90DF90CF9008951092870223 -:1019800010928602809171008D7F8093710080910A -:1019900090008F7780939000109248021092470237 -:1019A00010928002109281021092820210928302A1 -:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 -:1019C00011921192119211921D921D9282E0EE37A6 -:1019D000F807B1F708956F927F928F929F92AF921E -:1019E000BF92CF92DF92EF92FF920F931F93CF930C -:1019F000DF936B017C010EE712E04CE5A42E42E080 -:101A0000B42EC7E0D0E0A7019601F801929182912F -:101A1000729162918F010E940D31882349F02197C4 -:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB -:101A3000F8011082118212821382F5011182108244 -:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA -:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 -:101A600055816681778140835183628373831482B9 -:101A700015821682178212962D913C91139711961A -:101A80003C932E9313961C921E92129734961296A4 -:101A90008730910519F7C3CF809186029091870214 -:101AA000019797FD05C0909387028093860204C03A -:101AB0001092870210928602E0918602F0918702CE -:101AC0003097C9F4809171008D7F8093710080916F -:101AD00090008F7780939000109280021092810284 -:101AE000109282021092830210927F0210927E0264 -:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 -:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 -:101B1000FF1FE25BFD4FC081D18160908002709019 -:101B200081028090820290908302A7019601662D27 -:101B3000772D882D992D0E940D3187FF25C0262DE8 -:101B4000372D482D592DC701B6010E94A83020E03D -:101B500030E04AEF54E40E9411315B018C012A2DE0 -:101B60003B2D402F512F662D772D882D992D0E94CA -:101B7000A9303B014C01A7019601772D992D0E94B8 -:101B80000D31181664F72EC0A7019601662D772D2A -:101B9000882D992D0E945C32181634F5A701960104 -:101BA000662D772D882D992D0E94A83020E030E0F9 -:101BB0004AEF54E40E9411315B018C012A2D3B2D28 -:101BC000402F512F662D772D882D992D0E94A830FA -:101BD0003B014C01A7019601772D992D0E945C32A3 -:101BE00087FFECCF10924D02C0928002D09281020A -:101BF000E0928202F0928302D0937F02C0937E0231 -:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 -:101C1000BF90AF909F908F907F906F9008953E9A65 -:101C2000E1E7F0E080818D7F808382E08093900007 -:101C30008AE18093910008951F920F920FB60F9240 -:101C40001124CF92DF92EF92FF922F933F934F9305 -:101C50005F936F937F938F939F93AF93BF93CF9334 -:101C6000DF93EF93FF9380914702882309F479C0B3 -:101C700020E030E0A90160918002709181028091A2 -:101C80008202909183020E945C3218160CF069C0A7 -:101C900020E030E040E251E46091490270914A0254 -:101CA00080914B0290914C020E945C321816BCF459 -:101CB00080918402909185020196609186027091D4 -:101CC00087020E9448349093850280938402109288 -:101CD000490210924A0210924B0210924C02C0919B -:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC -:101CF000DD4F288139814A815B8160E074E284E7AD -:101D00009BE40E9411310E94793170939700609397 -:101D10009600288139814A815B8160E074E284E722 -:101D20009BE40E9411310E947931759567957093FB -:101D300099006093980020E030E040E85FE3609114 -:101D4000490270914A0280914B0290914C020E948C -:101D5000A9306093490270934A0280934B0290939A -:101D60004C0280914802882309F493C0C09043023A -:101D7000D0904402E0904502F090460220E030E02E -:101D8000A901C701B6010E945C321816F4F4A7013C -:101D9000960160E074E284E79BE40E9411310E94A6 -:101DA00079317093970060939600A701960160E0E7 -:101DB00074E284E79BE40E9411310E9479317595A9 -:101DC0006795709399006093980060913D027091BF -:101DD0003E026F5F7F4F70933E0260933D0280E052 -:101DE00090E00E94AA3120913F0230914002409140 -:101DF0004102509142020E945C3287FD4AC08091AC -:101E00003C028F5F80933C029091F0038917A0F011 -:101E10008091F503882319F010923C020DC0809147 -:101E200071008D7F80937100809190008F778093F7 -:101E30009000109248022DC0E091F103F091F2035E -:101E400080913C0298E0899FE00DF11D1124808172 -:101E50009181A281B3818093430290934402A09325 -:101E60004502B093460220E030E040E85EE3648142 -:101E70007581868197810E94603260933F027093E2 -:101E80004002809341029093420210923E021092CF -:101E90003D02FF91EF91DF91CF91BF91AF919F9163 -:101EA0008F917F916F915F914F913F912F91FF9013 -:101EB000EF90DF90CF900F900FBE0F901F9018956E -:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 -:101ED00080914702882331F04A8369830E94BE0CB7 -:101EE00069814A8181E0809348021093F203009354 -:101EF000F1036093F0034093F503109249021092AE -:101F00004A0210924B0210924C0210923C02F801CD -:101F10004081518162817381409343025093440216 -:101F2000609345027093460220E030E040E85EE3B3 -:101F300064817581868197810E94603260933F023F -:101F400070934002809341029093420210923E02AD -:101F500010923D02809171008260809371008091A7 -:101F600090008068809390000F900F90DF91CF9148 -:101F70001F910F9108956F927F928F929F92AF92CF -:101F8000BF92CF92DF92EF92FF920F931F93CF9366 -:101F9000DF936B017C01EA018091480281110E946C -:101FA000BE0C81E08093470220E030E0A901C70128 -:101FB000B6010E945C3218160CF09AC06090800244 -:101FC00070908102809082029090830220E030E045 -:101FD000A901662D772D882D992D0E940D31811133 -:101FE00028C0C0928002D0928102E0928202F092D8 -:101FF0008302D0937F02C0937E02809186029091EB -:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C -:10201000C082D182E282F382FC01EE0FFF1FE25BFD -:10202000FD4FD183C08301969093870280938602EF -:102030005FC0A7019601662D772D882D992D0E94EE -:102040000D3187FF25C0262D372D482D592DC7016D -:10205000B6010E94A83020E030E04AEF54E40E942C -:1020600011315B018C012A2D3B2D402F512F662D04 -:10207000772D882D992D0E94A9303B014C01A70195 -:102080009601772D992D0E940D31181664F7A9CF6E -:10209000A7019601662D772D882D992D0E945C321F -:1020A00018160CF09ECFA7019601662D772D882D6E -:1020B000992D0E94A83020E030E04AEF54E40E94BD -:1020C00011315B018C012A2D3B2D402F512F662DA4 -:1020D000772D882D992D0E94A8303B014C01A70136 -:1020E0009601772D992D0E945C3287FFECCF79CF36 -:1020F000809171008260809371008091900080686F -:1021000080939000DF91CF911F910F91FF90EF90FE -:10211000DF90CF90BF90AF909F908F907F906F9007 -:102120000895809191020895CF93DF9300D01F927C -:10213000CDB7DEB72091FA03243021F523E02983BF -:102140009B838A832093E9008FEF06C095ED9A95D3 -:10215000F1F70000882329F09091E800815095FF65 -:10216000F5CF8091E80085FF0DC040E050E063E0CE -:1021700070E0CE0101960E947E148091E8008E7777 -:102180008093E8000F900F900F90DF91CF9108950A -:10219000CF93DF9300D01F92CDB7DEB72091FA0323 -:1021A000243029F522E029839B838A8383E080936E -:1021B000E9008FEF06C095ED9A95F1F700008823AE -:1021C00029F09091E800815095FFF5CF8091E800CB -:1021D00085FF0DC040E050E063E070E0CE01019665 -:1021E0000E947E148091E8008E778093E8000F9023 -:1021F0000F900F90DF91CF9108952091FA03243032 -:10220000F9F422E02093E9002FEF06C035ED3A956E -:10221000F1F70000222329F03091E800215035FF2A -:10222000F5CF2091E80025FF0BC040E050E065E0CD -:1022300070E00E947E148091E8008E778093E80021 -:102240000895CF93DF93EC018091FA03843041F538 -:1022500081E08093E9008FEF06C095ED9A95F1F744 -:102260000000882329F09091E800815095FFF5CF78 -:102270008091E80085FF14C040E050E068E070E025 -:10228000CE010E947E148091E8008E778093E80052 -:1022900088E0FE01A9E8B2E001900D928A95E1F78D -:1022A000DF91CF910895BF92CF92DF92EF92FF928C -:1022B0000F931F93CF93DF937C01B62EE90100E0CB -:1022C00010E0C42ED12C0BC04991202F2B0D2F775D -:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 -:1022E0001D0594F3DF91CF911F910F91FF90EF9017 -:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 -:1023000077270C94B4190F931F93CF93C42F633086 -:10231000710509F04AC0842F807F803849F18039E7 -:1023200009F043C0622F6F7770E080E090E00E9478 -:10233000AC3120E030E040E451E40E9411319B01D7 -:10234000AC0160E070E080E090E40E94C3320F775F -:1023500010E023E0159507952A95E1F72DEC3CEC6C -:1023600042E053E40E946032A8010E94BB0F1DC0EE -:10237000622F6F7770E080E090E00E94AC3120E047 -:1023800030E040E451E40E9411319B01AC0160E077 -:1023900070E080E090E40E94C3322DEC3CEC42E01F -:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 -:1023B0001F910F910C94BE0CCF911F910F91089516 -:1023C0000F931F93CF93DF93CDB7DEB727970FB649 -:1023D000F894DEBF0FBECDBF8C0114C08A810E946D -:1023E0008E199A819D839B819E839C819F838111FD -:1023F0001EC089818430B1F08730A1F08630A1F011 -:102400008530A1F0BE016F5F7F4F84E791E00E94AD -:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 -:1024200067190DC083E003C082E001C081E0AE0106 -:102430004B5F5F4F682FC8010E94211AE3CF279698 -:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 -:102450000F910895EF92FF920F93CF93DF9300D0E7 -:1024600000D000D0CDB7DEB77B014A832B830C832D -:10247000842F2E834D830E948E192E814D818111D0 -:102480001BC082E0E816F10479F083E0E816F1045D -:1024900021F0EA94EF2821F50BC0073F11F487E003 -:1024A00001C084E089830BC0273FD9F786E0FACFCB -:1024B000473FB9F785E0F6CF42954F704983BE019B -:1024C0006F5F7F4F84E791E00E94B11C84E791E049 -:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 -:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 -:1024F0000F91FF90EF9008958091F903811109C029 -:102500000E946D160E94CA168091E200846080933A -:10251000E20008951092F9030895089508950C9427 -:102520006129809192028F5F8093920262E30E9400 -:102530002834911135C01092920280919302882321 -:1025400079F18091FA03843049F58091E9008F7028 -:102550009091EC0090FF02C090E801C090E0982BB1 -:1025600084E08093E9008091EB0080FF14C08091AB -:10257000EE0087FD03C00FC01092F1008091E800CB -:1025800085FDFACF8091E80080FF05C08091E800CA -:102590008E778093E8009F709093E90010929302E9 -:1025A000089542E061EC81E00E94E31542E061ECB5 -:1025B00082E00E94E31542E061EC83E00E94E315B3 -:1025C00042E261EC84E00E94E31542E361E885E0C9 -:1025D0000E94E31542E360E886E00C94E3158091E5 -:1025E000FC03833009F454C030F4813071F0823040 -:1025F00009F0A5C08CC08A3009F479C08B3009F489 -:102600005FC0893009F09BC020C08091FB03813AF4 -:1026100009F095C08091E800877F8093E800809161 -:10262000FF0390910004892B21F060E080E090E0AE -:1026300003C068E089E892E070E00E941C15809178 -:10264000E8008B778093E80008958091FB03813246 -:1026500009F075C08091FF0390910004892B09F067 -:102660006EC08091E800877F8093E80005C080916C -:10267000FA03882309F463C08091E80082FFF7CF52 -:102680008091F100809391028091E8008B7753C094 -:102690008091FB03813A09F052C08091FF03909131 -:1026A0000004892B09F04BC08091E800877F80935C -:1026B000E8008091E80080FFFCCF80918A0136C05D -:1026C0008091FB038132D9F58091FF039091000442 -:1026D000892BA9F58091E800877F8093E8000E940C -:1026E0001A168091FD0380938A010C9456238091E1 -:1026F000FB03813221F58091E800877F8093E80019 -:102700000E941A168091FE0380938802089580919A -:10271000FB03813AA1F48091E800877F8093E80071 -:102720008091E80080FFFCCF809188028093F100C7 -:102730008091E8008E778093E8000C941A16089533 -:1027400083E093E00E94F0196AE272E183E093E093 -:102750000E94461A60EE71E183E093E00E944A1AFB -:1027600084B7877F84BF88E10FB6F89480936000B8 -:10277000109260000FBE90E080E80FB6F89480934E -:102780006100909361000FBE0E94741D0E946D163F -:102790000E94CA168091E20084608093E2007894DF -:1027A00063E871E183E093E00E94EC196CE771E16A -:1027B00083E093E00E94E41963E571E183E093E034 -:1027C0000E94E8190E940F0E0E9467190E94761D50 -:1027D00080E891E00E94201D0BC00E941E2980917C -:1027E000F803882329F00E94492981110E94681466 -:1027F0008091FA03853089F383E093E00E94F91B0E -:102800000E94801DF5CF292F332723303105B1F0E9 -:102810004CF42130310509F44DC02230310509F066 -:102820004EC007C02132310541F12232310591F10C -:1028300046C0E0EDF0E084EE93E045C0992781309A -:10284000910569F08230910589F0892B09F037C034 -:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 -:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 -:10287000E491F0E086E893E026C0643000F5E62FAE -:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF -:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 -:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA -:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 -:1028C000F0E080E090E0DA018D939C93CF010895D1 -:1028D00080E189BD82E189BD09B400FEFDCF809110 -:1028E000D8008F7D8093D8008091E0008260809333 -:1028F000E0008091E00081FDFCCF0895BF92CF926F -:10290000DF92EF92FF920F931F93CF93DF937C019F -:102910008B01EA010E943B16B82E811133C020972B -:1029200031F028813981021B130BE20EF31EC12CFA -:10293000D12C23C08091E80085FD15C08091E8006E -:102940008E778093E800209749F0888199818C0DDB -:102950009D1D9983888325E0B22E14C00E943B16EA -:10296000882359F00EC0F70181917F018093F10017 -:1029700001501109FFEFCF1ADF0A01151105D1F639 -:1029800001C0B82E8B2DDF91CF911F910F91FF9039 -:10299000EF90DF90CF90BF900895BF92CF92DF92DB -:1029A000EF92FF920F931F93CF93DF937C018B01E4 -:1029B000EA010E943B16B82E811133C0209731F0F6 -:1029C00028813981021B130BE20EF31EC12CD12C7E -:1029D00023C08091E80085FD15C08091E8008B77C9 -:1029E0008093E800209749F0888199818C0D9D1D86 -:1029F0009983888345E0B42E14C00E943B16882337 -:102A000059F00EC08091F100F70181937F010150D0 -:102A10001109FFEFCF1ADF0A01151105D1F601C028 -:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA -:102A3000DF90CF90BF90089540910104509102041F -:102A40004617570748F06115710539F44091E800C1 -:102A50004E774093E80001C0BA01FC0140E033C06A -:102A60008091FA03882309F444C0853009F443C0F7 -:102A70008091E80083FD41C08091E80082FD33C071 -:102A80008091E80080FF1FC09091F3008091F200D8 -:102A9000392F20E0A901482BCA0106C0419140937B -:102AA000F1006150710901966115710519F08830C6 -:102AB0009105A0F341E0089709F040E08091E8001B -:102AC0008E778093E8006115710551F64111C8CFEA -:102AD0000AC08091FA03882361F0853061F080910B -:102AE000E80083FD0AC08091E80082FFF2CF80E019 -:102AF000089582E0089583E0089581E0089540916B -:102B00000104509102044617570748F061157105FA -:102B100039F44091E8004E774093E80001C0BA01D3 -:102B2000FC0140E034C08091FA03882309F445C0D9 -:102B3000853009F444C08091E80083FD42C0809153 -:102B4000E80082FD34C08091E80080FF20C09091B1 -:102B5000F3008091F200392F20E0A901482BCA012F -:102B600007C044914093F10031966150710901967C -:102B70006115710519F08830910598F341E00897C7 -:102B800009F040E08091E8008E778093E8006115BD -:102B9000710549F64111C7CF0AC08091FA03882315 -:102BA00061F0853061F08091E80083FD0AC080917A -:102BB000E80082FFF2CF80E0089582E0089583E08C -:102BC000089581E00895982F2CC09093E9009817FC -:102BD00039F07091EC002091ED005091F00003C0AD -:102BE000242F762F50E021FD02C09F5F1AC0309144 -:102BF000EB003E7F3093EB003091ED003D7F309352 -:102C0000ED003091EB0031603093EB007093EC00FD -:102C10002093ED005093F0002091EE0027FDE5CFCA -:102C200007C0973090F28F708093E90081E008959B -:102C300080E008958091FB0387FD05C08091E80046 -:102C400080FF0EC012C08091E80082FD05C0809117 -:102C5000FA038111F8CF08958091E8008B7708C0BE -:102C60008091FA038111EACF08958091E8008E7770 -:102C70008093E80008958091E4009091E50045E696 -:102C80002091EC0020FD1FC023C02091FA032223D5 -:102C900091F0253091F02091EB0025FD10C020919E -:102CA000E4003091E5002817390751F34150C9017C -:102CB00039F784E0089582E0089583E0089581E083 -:102CC000089580E008952091E80020FFDECFF9CF3D -:102CD0002091E80022FFD9CFF4CF0E94DB160E949A -:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 -:102CF00080818F77808319BCA7EDB0E08C918E7FA7 -:102D00008C9380818F7E80831092F90308950F93B6 -:102D10001F93CF93DF930E94DB160E94E316C8ED4A -:102D2000D0E088818F7788838881806888838881D4 -:102D30008F7D888319BC1092FA031092F6031092CB -:102D4000F8031092F70300EE10E0F80180818B7F0A -:102D5000808388818160888342E060E080E00E9417 -:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B -:102D7000808181608083808188608083F801808188 -:102D80008E7F8083888180618883DF91CF911F91BE -:102D90000F910895E8EDF0E080818F7E8083E7ED6C -:102DA000F0E080818160808384E082BF81E0809355 -:102DB000F9030C948716E8EDF0E080818E7F808324 -:102DC0001092E20008951092DA001092E100089546 -:102DD0001F920F920FB60F9211242F933F934F9390 -:102DE0005F936F937F938F939F93AF93BF93EF9373 -:102DF000FF938091E10082FF0BC08091E20082FF8F -:102E000007C08091E1008B7F8093E1000E949112C6 -:102E10008091DA0080FF1FC08091D80080FF1BC026 -:102E20008091DA008E7F8093DA008091D90080FF54 -:102E30000DC080E189BD82E189BD09B400FEFDCFEE -:102E400081E08093FA030E947C1205C019BC1092A5 -:102E5000FA030E948A128091E10080FF19C08091DC -:102E6000E20080FF15C08091E2008E7F8093E20037 -:102E70008091E20080618093E2008091D8008062BE -:102E80008093D80019BC85E08093FA030E948E12CB -:102E90008091E10084FF30C08091E20084FF2CC06B -:102EA00080E189BD82E189BD09B400FEFDCF80913A -:102EB000D8008F7D8093D8008091E1008F7E809331 -:102EC000E1008091E2008F7E8093E2008091E20039 -:102ED00081608093E2008091F603882311F084E002 -:102EE00007C08091E30087FF02C083E001C081E05A -:102EF0008093FA030E948F128091E10083FF29C022 -:102F00008091E20083FF25C08091E100877F80935C -:102F1000E10082E08093FA031092F6038091E100D1 -:102F20008E7F8093E1008091E2008E7F8093E200AB -:102F30008091E20080618093E20042E060E080E006 -:102F40000E94E3158091F00088608093F0000E9459 -:102F50008D12FF91EF91BF91AF919F918F917F91D2 -:102F60006F915F914F913F912F910F900FBE0F90F6 -:102F70001F9018951F920F920FB60F9211242F9346 -:102F80003F934F935F936F937F938F939F93AF93F1 -:102F9000BF93CF93EF93FF938091E9008F7090914F -:102FA000EC0090FF02C090E801C090E0C92FC82B50 -:102FB0001092E9008091F000877F8093F000789470 -:102FC0000E94FE171092E9008091F00088608093C3 -:102FD000F000CF70C093E900FF91EF91CF91BF91C6 -:102FE000AF919F918F917F916F915F914F913F91A1 -:102FF0002F910F900FBE0F901F9018951F93CF9396 -:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 -:10301000CDBFEBEFF3E08091F100819324E0E3304A -:10302000F207C9F70E94EF128091E80083FF37C1D1 -:103030008091FB039091FC03953009F488C038F42B -:103040009130B1F170F0933009F029C131C098305E -:1030500009F4F8C0993009F404C1963009F01FC191 -:103060009DC0803821F0823809F019C108C08091D4 -:10307000F7039091F803992389F082600FC0809143 -:10308000FF03909100048F7099278093E90080914D -:10309000EB0085FB882780F91092E9009091E80009 -:1030A000977F9093E8008093F1001092F100D5C0D3 -:1030B000882319F0823009F0F2C08F7121F082303C -:1030C00009F0EDC00BC08091FD03813009F0E7C02D -:1030D000933009F080E08093F8032FC08091FD03C6 -:1030E00081112BC08091FF03909100048F7099276C -:1030F000009709F4D4C08093E9002091EB0020FFF1 -:103100001CC02091FC03233021F48091EB008062ED -:1031100012C09091EB0090619093EB0021E030E0C1 -:1031200001C0220F8A95EAF72093EA001092EA0084 -:103130008091EB0088608093EB001092E900809111 -:10314000E800877F8093E8000E941A16A8C08111CA -:10315000A6C08091FD039091FE038F779927182FC9 -:103160009091E3009078982B9093E3008091E80091 -:10317000877F8093E8000E941A168091E80080FF04 -:10318000FCCF8091E30080688093E300112311F06D -:1031900083E001C082E08093FA0381C080588230CE -:1031A00008F07DC08091FD039091FE038C3D23E0EB -:1031B000920779F583E08A838AE289834FB7F8948E -:1031C000DE01139620E03EE051E2E32FF0E0509361 -:1031D0005700E49120FF03C0E295EF703F5FEF706E -:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 -:1031F0009D932F5F243149F74FBF8091E800877F6F -:103200008093E8006AE270E0CE0101960E941C15EE -:1032100013C0AE01455D5F4F6091FF030E94031430 -:103220000097E9F12091E800277F2093E800BC0196 -:103230008BA59CA50E947F158091E8008B778093D9 -:10324000E8002DC0803859F58091E800877F809391 -:10325000E8008091F6038093F1008091E8008E777A -:1032600071CF81111CC09091FD039230C0F4809108 -:10327000E800877F8093E8009093F6030E941A1677 -:103280008091F603811104C08091E30087FF02C0A2 -:1032900084E001C081E08093FA030E94D112809102 -:1032A000E80083FF0AC08091E800877F8093E800F0 -:1032B0008091EB0080628093EB00AC960FB6F8949F -:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 -:1032D0008091FA038823B1F08091E9008F7090917A -:1032E000EC0090FF02C090E801C090E0C92FC82B0D -:1032F0001092E9008091E80083FD0E94FE17CF70D4 -:10330000C093E900CF910895881F8827881F0895EA -:1033100091E0883F08F490E0892F0895982F907FDE -:10332000903B99F038F4903981F0903A71F09038F0 -:10333000C9F40BC0903DA1F018F4903C99F410C072 -:10334000903E19F0903F71F402C083E00895E82F99 -:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 -:1033600082E0089580E008950F932F774F776F7074 -:10337000606BDC01ED91FC91022F242F462F63E05E -:1033800070E009950F9108950F932F774F776F7025 -:103390006069DC01ED91FC91022F242F462F63E040 -:1033A00070E009950F9108950F932F774F776F7005 -:1033B0006068DC01ED91FC91022F242F462F63E021 -:1033C00070E009950F910895FC017383628308955D -:1033D000FC01738F628F0895FC01758F648F0895CF -:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A -:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 -:103400001D821C821F821E82198618861B861A86C0 -:103410001D861C861F861E86198A188A1B8A1A8A90 -:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 -:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 -:103440000895CF92DF92FF920F931F93CF93DF9354 -:103450001F92CDB7DEB7F62E6A018C0108511F4FBF -:1034600008C0F60161916F01C80149830E94341CB4 -:1034700049818C2D841B8F15A0F30F90DF91CF9184 -:103480001F910F91FF90DF90CF900895FC01718301 -:1034900060830895FC0171A360A30895AF92BF9269 -:1034A000CF92DF92EF92FF920F931F93CF93DF9310 -:1034B00000D01F92CDB7DEB77C016B01142FB22E66 -:1034C000A02EDC0195968C9195978430F1F45A9654 -:1034D000ED91FC915B97309709F4D8C0CB0101972F -:1034E00063E070E00E943434DB01AA0FBB1FA60F1B -:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 -:103500003F4FBD01C7010995B1C06230710509F493 -:1035100053C06330710529F06130710509F09CC01A -:1035200083C0842F807F803A01F130F48038B9F075 -:10353000803909F0ABC00DC0803EE9F0803F09F151 -:10354000803B09F0A3C0D7011296ED91FC9113972F -:1035500023C0D7011496ED91FC9115971DC0D7019A -:103560001696ED91FC91179717C0D7011896ED911B -:10357000FC91199711C0D7011A96ED91FC911B97F8 -:103580000BC0423F09F082C0D7011C96ED91FC911F -:103590001D97309731F47AC0309709F477C0123F05 -:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C -:1035B0004B2DC70109955AC0842F807F803D59F05B -:1035C000803F79F0803C09F061C0D7011E96ED91F3 -:1035D000FC911F9719C0D7015096ED91FC9151971E -:1035E00013C0433F31F4D7015296ED91FC915397AC -:1035F00008C0413F09F04AC0D7015496ED91FC91B3 -:103600005597309741F442C0309709F43FC0133FBB -:1036100011F0113F19F44B2D612F03C0612F6F7012 -:103620004B2DC701099522C0842F0E948819882339 -:1036300031F0D7015696ED91FC91579707C0163F90 -:1036400029F5D7015896ED91FC9159973097F1F0F3 -:10365000612FC70109950AC064307105A8F416C02E -:103660000A2D2B2D412FB601C7010995D7015E9672 -:10367000ED91FC915F97309789F00A2D2B2D412F0A -:10368000B601C70109950AC0C12CD12CD7015C969F -:10369000ED91FC915D97309719F7E8CF0F900F905F -:1036A0000F90DF91CF911F910F91FF90EF90DF90DE -:1036B000CF90BF90AF900895EF92FF920F931F931A -:1036C000CF93DF93EC01162F862F0E948819882351 -:1036D00069F0FDA081E08DA300E020E0412F61E0D2 -:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 -:1036F00084194DA1882309F440C0443029F01AA34D -:1037000021E030E03FA32EA3812F0E948E1981304B -:1037100031F070F0823051F0833059F507C08DA33D -:1037200000E020E0412F61E070E01EC08DA35AC090 -:10373000103F19F0173FE9F404C084E08DA31AA3E9 -:103740003FC02EA13FA1C90163E070E00E94343464 -:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 -:103760006EA30CA12BA14AA1CE010E944E1A1DA24C -:1037700039C01DA21FA21EA235C0442399F12EA15B -:103780003FA1C90163E070E00E9434347C01FE0176 -:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC -:1037A0008130910591F082E0E816F104D9F40CA182 -:1037B0002BA14AA1CE010E944E1A8DA1843091F016 -:1037C00081E090E09FA38EA30DC0423059F400E049 -:1037D0002BA14AA1CE010E944E1A8DA1843011F076 -:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A -:1037F0000895CF92DF92EF92FF920F931F93CF9392 -:10380000DF93EC01E8A1F9A1309709F009958E0149 -:1038100008511F4FC8010E94661CE12CF12CC82ED4 -:10382000D12C0FC060E0C8010E947A1C682FCE0125 -:103830000E945C1B61E0C8010E948B1C8FEFE81A9C -:10384000F80AEC14FD0470F3DF91CF911F910F91F2 -:10385000FF90EF90DF90CF900895FC014283748336 -:1038600063831182108208950F931F93CF93DF9388 -:10387000EC01062F0E94AC1C182F298130E0C901F1 -:1038800001966A8170E00E944834488150E08417B4 -:10389000950729F4812F0E94AF1C80E012C0EB81B4 -:1038A000FC81E20FF31F00832981822F90E00196B3 -:1038B0006A8170E00E9448348983812F0E94AF1C86 -:1038C00081E0DF91CF911F910F910895CF93DF9306 -:1038D000EC010E94AC1C29819881291710F0C22F9D -:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E -:1038F000CF910895FC012081862F90E0820F911DC9 -:10390000628170E00E9448340380F481E02DE80F6A -:10391000F91F808108950F931F93CF93DF931F9218 -:10392000CDB7DEB78C0169830E94AC1C482FF8012B -:1039300080816981262F30E0280F311D6281C90105 -:1039400070E00E9448348083842F0F90DF91CF91E4 -:103950001F910F910C94AF1C8FB7F89408958FBFEF -:103960000895FC01CB012091FA032430B1F42181A8 -:103970002F702093E90040E050E064E070E00E9486 -:103980007E1481110BC09091E80095FD07C09091C5 -:10399000E8009E779093E800089582E008952091D2 -:1039A000FA032430A9F4FC0181818F708093E9002F -:1039B0003091F3002091F200932F80E0822B892B2D -:1039C00049F08091E8008E778093E8000C943B16D4 -:1039D00082E0089580E008952091FA03243051F4A4 -:1039E000FC0121812F702093E9002091E80020FD47 -:1039F0000C94CF1C0895FC01CB012091FA032430D4 -:103A000011F080E0089526812F702093E900209125 -:103A1000E80022FFF6CF2091E80025FFF2CF40E03A -:103A200050E064E070E00E94CD148091E80085FDD4 -:103A300005C08091E8008B778093E80081E00895CD -:103A400090939502809394020895E0919402F091EE -:103A50009502309721F00190F081E02D099480E0EB -:103A60000895E0919402F0919502309721F0028040 -:103A7000F381E02D09940895E0919402F09195026C -:103A8000309721F00480F581E02D0994089520916C -:103A90009602309197028217930771F090939702E4 -:103AA00080939602E0919402F0919502309721F074 -:103AB0000680F781E02D09940895209198023091B5 -:103AC00099028217930771F090939902809398025C -:103AD000E0919402F0919502309721F00084F185F5 -:103AE000E02D0994089508950C94731D0E94952962 -:103AF0000E94AD060E94692A0C9411300C94E705CF -:103B00005F926F927F928F929F92AF92BF92CF926D -:103B1000DF92EF92FF920F931F93CF93DF93CDB776 -:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 -:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 -:103B4000A394B12C502E802F0E9411093C01F60144 -:103B5000E190F1906F01E826F926E114F10431F4C7 -:103B60000F5F1F4F0530110569F73AC08091F002D1 -:103B700081FD0E941A0920E030E04501022E02C0BA -:103B8000880C991C0A94E2F7C4018E219F21892B8D -:103B900009F12E835F826820792081E0672809F48B -:103BA00080E088870E949E298160782F9A87898784 -:103BB0004E815F8168858A850E94391EF801EE0F6B -:103BC000FF1FE656FD4F80819181882599259183BD -:103BD000808316C02F5F3F4F2C30310571F6C0CF68 -:103BE0008FEF89838A831B820E949E298160782FB0 -:103BF0009D838C8349815A816B818D810E94391EFE -:103C00000E94562D1091A4020E94251D1817D9F06C -:103C10000E94251D8093A4022A960FB6F894DEBF59 -:103C20000FBECDBFDF91CF911F910F91FF90EF900D -:103C3000DF90CF90BF90AF909F908F907F906F90CC -:103C40005F900C947E1D2A960FB6F894DEBF0FBECF -:103C5000CDBFDF91CF911F910F91FF90EF90DF903B -:103C6000CF90BF90AF909F908F907F906F905F901C -:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 -:103C8000DEBF0FBECDBF4F83588769877A878B878A -:103C9000DE01119686E0FD0111928A95E9F785E033 -:103CA000FE01379601900D928A95E1F749815A817C -:103CB0006B817C818D819E810E9415262B960FB68B -:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 -:103CD000C82F882309F4C1C0823859F40E94251DD9 -:103CE00081FDBBC089E30E947C280E94F82889E3FB -:103CF0000CC0833879F40E94251D80FDAEC083E599 -:103D00000E947C280E94F82883E50E949E28CF917B -:103D10000C94F828843859F40E94251D82FD9DC01A -:103D200087E40E947C280E94F82887E4EECF845024 -:103D3000813A48F48C2F0E94732F81118EC08C2FF2 -:103D40000E947C28E4CF8C2F805E883050F4C770AE -:103D500081E090E001C0880FCA95EAF70E94BF2871 -:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD -:103D700031F482E890E005C081E890E002C083E879 -:103D800090E0CF910C94471D8C2F885A833108F016 -:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B -:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB -:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B -:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 -:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF -:103DE00092E038C082EE90E035C089EE90E032C0BB -:103DF0008AEE90E02FC085EB90E02CC086EB90E03F -:103E000029C087EB90E026C08CEC90E023C08DECBD -:103E100090E020C083E891E01DC08AE891E01AC0DC -:103E200082E991E017C084E991E014C081E292E058 -:103E300011C083E292E00EC084E292E00BC085E202 -:103E400092E008C086E292E005C087E292E002C0FC -:103E500080E090E0CF910C945D1DCF910895882370 -:103E600009F44DC0823859F40E94251D81FF47C0D6 -:103E700089E30E947C280E94F82889E30CC08338DB -:103E800071F40E94251D80FF3AC083E50E947C28C2 -:103E90000E94F82883E50E949E280C94F828843814 -:103EA00059F40E94251D82FF2AC087E40E947C28C5 -:103EB0000E94F82887E4EFCF982F9450913A08F4A5 -:103EC000EACF982F905E983058F4282F277081E021 -:103ED00090E001C0880F2A95EAF70E94C528DDCF3F -:103EE000982F955A933020F480E090E00C94471D71 -:103EF000885A833120F480E090E00C945D1D089591 -:103F0000882321F00E94BF280C94F8280895882364 -:103F100021F00E94C5280C94F8280895BF92CF92F2 -:103F2000DF92EF92FF920F931F93CF93DF93CDB762 -:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A -:103F400085E0F801DE01119601900D928A95E1F766 -:103F5000F80130812181F280558152955F70838113 -:103F60009481892B39F02F3F41F481E090E03F3F6D -:103F700031F003C081E090E002C080E090E080FD7D -:103F800073C339832A8389819A815E830E94392889 -:103F9000B92E8F830E9438280E9460272B2D2295EE -:103FA0002F7030E05E816F812530310509F4E6C065 -:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA -:103FC0008F70223031050CF045C017C02C30310500 -:103FD0004CF42A3031050CF0E7C12830310509F0E6 -:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 -:103FF0002F30310509F038C323C3182F411101C0F8 -:1040000002C01295107FFF2059F0112309F46BC2F2 -:10401000812F6F830E94CF280E94F8286F8163C28E -:10402000862F0E942F1F112309F41EC3812F0E9487 -:10403000D52827960FB6F894DEBF0FBECDBFDF910F -:10404000CF911F910F91FF90EF90DF90CF90BF9095 -:104050000C94F828403211F08295807F662319F085 -:10406000613071F523C0FF20B1F0511101C032C0A1 -:10407000513081F527960FB6F894DEBF0FBECDBF45 -:10408000DF91CF911F910F91FF90EF90DF90CF9034 -:10409000BF900C94DF28511101C003C0513009F4C6 -:1040A000E3C28E830E94E2288E819AC1FF2021F014 -:1040B000563008F0D9C20EC0553008F0D5C290C1B4 -:1040C000FF20C9F0552331F0F801958190FF0BC214 -:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 -:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 -:1040F000BF900C94801F552309F472C109C22B2D67 -:1041000026952695237030E02115310529F02130C0 -:10411000310509F0A9C219C0FF2021F0862F9B2D7F -:10412000937002C080E090E027960FB6F894DEBF4F -:104130000FBECDBFDF91CF911F910F91FF90EF90F8 -:10414000DF90CF90BF900C94471DFF2021F0862F69 -:104150009B2D937002C080E090E027960FB6F894F4 -:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA -:10417000EF90DF90CF90BF900C945D1D862FFF20B5 -:1041800019F00E945C2C02C00E94C42C27960FB626 -:10419000F894DEBF0FBECDBFDF91CF911F910F917D -:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 -:1041B000837009F079C0F11057C2262F22952695F9 -:1041C0002770220F220F862F8F70C82ED12CE12C42 -:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A -:1041E000D2F764FF10C06FE070E080E090E004C0A0 -:1041F000660F771F881F991F2A95D2F760957095D3 -:104200008095909503C060E070E0CB012B2D269542 -:1042100026952370422F50E042305105D9F04330AB -:10422000510569F16C297D298E299F29413051055D -:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 -:10424000CF911F910F91FF90EF90DF90CF90BF9093 -:104250000C9475276C297D298E299F2927960FB6E6 -:10426000F894DEBF0FBECDBFDF91CF911F910F91AC -:10427000FF90EF90DF90CF90BF900C9487270E9423 -:104280007527C701B60127960FB6F894DEBF0FBE9B -:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 -:1042A000CF90BF900C946327FF2019F08B2D817065 -:1042B00001C08695882309F4D7C1262F229526951B -:1042C0002770220F220F862F8F70C82ED12CE12C41 -:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 -:1042E000D2F764FF10C06FE070E080E090E004C09F -:1042F000660F771F881F991F2A95D2F760957095D2 -:104300008095909503C060E070E0CB012B2D269541 -:1043100026952370422F50E042305105D9F04330AA -:10432000510569F16C297D298E299F29413051055C -:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 -:10434000CF911F910F91FF90EF90DF90CF90BF9092 -:104350000C9414286C297D298E299F2927960FB645 -:10436000F894DEBF0FBECDBFDF91CF911F910F91AB -:10437000FF90EF90DF90CF90BF900C9426280E9482 -:104380001428C701B60127960FB6F894DEBF0FBEFA -:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 -:1043A000CF90BF900C940228603F59F120F4603EFA -:1043B00008F494C008C0623F09F467C0F0F1633F9D -:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 -:1043D00021F00E94AD27812F7DCE0E94C827812F1A -:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 -:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 -:10440000871FFF20B1F0553008F02EC18B2D8F7122 -:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 -:104420001F910F91FF90EF90DF90CF90BF900C9471 -:10443000E727563008F018C1E9CFFF2099F08B2DFF -:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 -:10445000CF911F910F91FF90EF90DF90CF90BF9081 -:104460000C94AD278B2D8F7127960FB6F894DEBF75 -:104470000FBECDBFDF91CF911F910F91FF90EF90B5 -:10448000DF90CF90BF900C94C827F110EBCFD7CF1F -:10449000FF2099F08B2D8F7127960FB6F894DEBF11 -:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 -:1044B000DF90CF90BF900C949E2727960FB6F8946C -:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 -:1044D000EF90DF90CF90BF900C949927FF20A9F028 -:1044E000552309F4ACCF862F27960FB6F894DEBF7C -:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 -:10450000DF90CF90BF900C94671E552309F4AACF7B -:10451000862F27960FB6F894DEBF0FBECDBFDF9172 -:10452000CF911F910F91FF90EF90DF90CF90BF90B0 -:104530000C942F1F4B2D4F70C8010E941A03279611 -:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 -:104550000F91FF90EF90DF90CF90BF900C94CB26FF -:10456000F11082C09B2D9F70492F50E042305105C1 -:1045700099F144F44115510569F04130510509F0B4 -:1045800073C019C043305105C1F14430510509F0E1 -:104590006BC044C027960FB6F894DEBF0FBECDBFE8 -:1045A000DF91CF911F910F91FF90EF90DF90CF900F -:1045B000BF900C94223027960FB6F894DEBF0FBE42 -:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 -:1045D000CF90BF900C94393027960FB6F894DEBF79 -:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 -:1045F000DF90CF90BF900C94553027960FB6F8946B -:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 -:10461000EF90DF90CF90BF900C946830862F279654 -:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 -:104630000F91FF90EF90DF90CF90BF900C948C3053 -:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 -:10465000CDBFDF91CF911F910F91FF90EF90DF9031 -:10466000CF90BF900C941B0927960FB6F894DEBF2D -:104670000FBECDBFDF91CF911F910F91FF90EF90B3 -:10468000DF90CF90BF9008950E94DC280E94B1284F -:104690000E94F8280E94F72D0E944B2D80E090E0A8 -:1046A0000E94471D80E090E00C945D1D0E94CC2884 -:1046B0000C9444230E943928292F22952F7030E032 -:1046C0002C3031054CF42A3031056CF4225031097C -:1046D0002230310590F407C02C30310551F02F30D5 -:1046E000310559F406C0803E10F0803F31F481E07E -:1046F000089593FB882780F9089580E00895CF936B -:10470000DF9300D000D01F92CDB7DEB70F900F908F -:104710000F900F900F90DF91CF910895CF93DF937B -:1047200000D000D000D0CDB7DEB726960FB6F894F3 -:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 -:10474000DF93C091DB0216E012C0D0E01C9FF001A5 -:104750001D9FF00D1124E555FD4F4081518162816F -:104760007381848195810E948E232196C7708091E8 -:10477000DC02C813EACFDF91CF911F9108954091D9 -:10478000A5025091A6026091A7027091A8028091A3 -:10479000A9029091AA020C948E230F931F93CF939A -:1047A000DF938091AA0282958F7009F069C0809191 -:1047B000A702882309F464C0A091DB02D091DC0237 -:1047C000B091A502C091A6028091A8029091A90281 -:1047D00021E030E0BF3F11F020E030E0122FBC01BB -:1047E0006095709506E04AC0009721F0CF3F29F40C -:1047F000212F05C021E030E002C020E030E020FDA4 -:104800003BC04A2F50E0049FF001059FF00D11249A -:10481000E555FD4F2181C2132FC02081B2132CC05A -:104820002281211129C0238134812817390718F0EA -:10483000281B390B02C0260F371F283C3105E0F436 -:104840008091AA028F7080618093AA0286E0849F83 -:10485000F001859FF00D1124E055FD4F80818F7090 -:104860008061808385EA92E00E948E1FDF91CF9164 -:104870001F910F910C949E23AF5FA770AD13B4CF1F -:10488000DF91CF911F910F910895EF92FF920F93B7 -:104890001F93CF93DF93CDB7DEB762970FB6F8942F -:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 -:1048B00001900D928A95E1F7D8014C9111965C9187 -:1048C000119712966C9112971396ED90FC90149795 -:1048D0007091A502E091A6028091A8029091A90290 -:1048E000009739F0EF3F41F421E030E07F3F31F0B5 -:1048F00003C021E030E002C020E030E020FD5CC1D8 -:104900002091A702222309F4F1C0E816F90628F045 -:104910009701281B390BC90104C0809590958E0D15 -:104920009F1D883C910508F098C08091AA02982F9D -:10493000907F09F064C0E51314C0741312C06111B4 -:1049400010C08F7080618093AA020E94BF2385EA05 -:1049500092E00E948E1F8091AA02D80115968C9336 -:1049600043C1EF2839F05F3F41F481E090E04F3FD1 -:1049700031F003C081E090E002C080E090E080FD73 -:1049800003C081E0862702C080E090E080FF2EC057 -:104990008091DB022091DC0236E013C090E0389F6A -:1049A000F001399FF00D1124E555FD4F718157132A -:1049B00006C07081471303C07281671317C0019648 -:1049C00087708213EBCF12C19F7059F0882309F4CE -:1049D0000BC107C09F7029F0F8019581907F09F401 -:1049E00003C1805E883008F4FFC0D2C0662309F49A -:1049F000FBC08091AA0281608093AA02F5C0E513F2 -:104A000008C0741306C0611104C0D80115968C93B8 -:104A10009DC04D875E878D859E856A8B0E945A2337 -:104A20006A89882309F4B4C0662309F4B1C02091CF -:104A3000AA02822F82958F7090E002970CF4C6C074 -:104A40008091A5029091A60298878F831986FB8694 -:104A5000EA862C87CE01079646C08091AA02982F3D -:104A6000907F59F47E2DF98AE88A89890E947F23F4 -:104A700085EA92E00E948E1F95C0E51311C0741361 -:104A80000FC061110DC0F8018583C8010E948E1FFF -:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F -:104AA0004D875E878D859E856A8B0E945A236A8911 -:104AB000882309F46DC0662309F46AC02091AA0214 -:104AC000822F82958F7090E002970CF47FC08091C6 -:104AD000A5029091A6029A8389831B82FD82EC82B3 -:104AE0002E83CE0101960E948E1F70C0E816F90633 -:104AF00028F09701281B390BC90104C080959095B7 -:104B00008E0D9F1D883C910508F046C0662309F470 -:104B10003FC0E51330C074132EC02091AA0220FDBF -:104B200021C0322F32953F70832F90E00097D1F053 -:104B3000D80115962C9315970F9741F0832F8F5F0F -:104B40008295807F2F70282B15962C93C8010E9488 -:104B50008E1F86E0F801A5EAB2E001900D928A95D9 -:104B6000E1F73EC086E0F801A5EAB2E001900D92BF -:104B70008A95E1F737C04D875E878D859E850E94B7 -:104B80005A23811123C08091AA0281608093AA02D6 -:104B9000C8010E948E1F26C07E2DF98AE88A898965 -:104BA0000E947F23E5EAF2E086E0DF011D928A950C -:104BB000E9F70E94BF2318C0662351F34D875E8733 -:104BC0008D859E850E945A23882311F386E0F80183 -:104BD000A5EAB2E001900D928A95E1F70E94CD23FB -:104BE0000E94BF2381E014C080E012C04D875E8721 -:104BF0008D859E850E943928292F22952F7030E0BF -:104C0000223031050CF4E0CE243031050CF6E2CE32 -:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 -:104C20001F910F91FF90EF9008951F93CF93DF9303 -:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 -:104C40004F83588769877A878B879C87CE01079621 -:104C50000E9445248823D9F02F8138858A859B8539 -:104C6000892B39F03F3F19F080E090E004C02F3FDE -:104C7000D9F781E090E0892B09F06DC04F8158850C -:104C800069857A858B859C850E948E2364C086E029 -:104C9000FE013796DE01119601900D928A95E1F79B -:104CA000FF81E8854A855B854115510539F0EF3F65 -:104CB00041F481E090E0FF3F31F003C081E090E0FB -:104CC00002C080E090E080FD46C02091DC0230E030 -:104CD000C9010196877099276091DB0270E0861701 -:104CE000970709F440C0F983EA835D834C8396E01B -:104CF000929FD001939FB00D1124A555BD4FFE0189 -:104D0000319601900D929A95E1F78093DC020E9412 -:104D10009E2321C0189FC001112485559D4F0E94DC -:104D20004524882371F1E091DB021E9FF0011124DC -:104D3000E555FD4F40815181628173818481958168 -:104D40000E948E238091DB0290E001968770992764 -:104D50008093DB0201C016E08091DB029091DC02BF -:104D60008913D8CF0EC00E9456231092DC021092F5 -:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 -:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 -:104D9000CF911F910895DF92EF92FF920F931F938F -:104DA000CF93DF93EC01009709F46EC0D12CEE2471 -:104DB000E394F12C8E010F5F1F4FFE018491843725 -:104DC00048F4843008F04CC0813071F0823009F032 -:104DD0005BC01EC0853709F43FC080F1982F9458FE -:104DE000903708F051C03FC02296F8018491982F67 -:104DF000905E983050F48770FE2D01C0FF0F8A95A9 -:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 -:104E10002296F8018491982F905E983060F4877004 -:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B -:104E30000E94F8281CC00E942F1F19C02296F8015A -:104E4000049107C08FE99FE00197F1F700C00000CF -:104E500001500111F7CF0BC02296F801D49007C082 -:104E60000E94671E03C08F770E942F1FE8018D2DBF -:104E700007C08150EFE9FFE03197F1F700C0000073 -:104E8000882309F497CFF5CFDF91CF911F910F9130 -:104E9000FF90EF90DF9008956093E1027093E2023B -:104EA0008093E3029093E4020C9444236093DD0228 -:104EB0007093DE028093DF029093E0020C9444230F -:104EC00008950C944C270F931F930091E1021091C9 -:104ED000E2022091E3023091E402602B712B822BDD -:104EE000932B1F910F910C944C270F931F930091BC -:104EF000E1021091E2022091E3023091E40260238A -:104F00007123822393231F910F910C944C270F93AD -:104F10001F930091E1021091E2022091E30230918F -:104F2000E40260277127822793271F910F910C9429 -:104F30004C2760E070E0CB010C94562741E050E034 -:104F400060E070E004C0440F551F661F771F8A950C -:104F5000D2F7CB01BA010C94562741E050E060E053 -:104F600070E004C0440F551F661F771F8A95D2F763 -:104F70008091DD029091DE02A091DF02B091E0020B -:104F8000482B592B6A2B7B2BCB01BA010C9456274B -:104F900041E050E060E070E004C0440F551F661F20 -:104FA000771F8A95D2F740955095609570958091BE -:104FB000DD029091DE02A091DF02B091E002482371 -:104FC00059236A237B23CB01BA010C94562741E075 -:104FD00050E060E070E004C0440F551F661F771F6B -:104FE0008A95D2F78091DD029091DE02A091DF02D6 -:104FF000B091E002482759276A277B27CB01BA01E5 -:105000000C9456270F931F930091DD021091DE023E -:105010002091DF023091E002602B712B822B932BC9 -:105020001F910F910C9456270F931F930091DD024F -:105030001091DE022091DF023091E00260237123A3 -:10504000822393231F910F910C9456270F931F9344 -:105050000091DD021091DE022091DF023091E0022A -:1050600060277127822793271F910F910C94562751 -:105070000895CF92DF92EF92FF920F931F93CF93F9 -:10508000DF93EC01C090E102D090E202E090E302F5 -:10509000F090E4028091DD029091DE02A091DF02A7 -:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF -:1050B000B701A601002E04C07695679557954795D0 -:1050C0000A94D2F740FF08C0BE01802F0E947104ED -:1050D0008130910509F007C00150110948F7BE0160 -:1050E00080E00E947104DF91CF911F910F91FF909A -:1050F000EF90DF90CF90089540918B0150918C01FB -:1051000020E030E09FEFFA01E20FF31F62816817A1 -:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 -:105120002630310581F707C0FA01E90FF11D97FD1F -:10513000FA95828308959F3FB9F7089540918B01B6 -:1051400050918C0120E030E0FA01E20FF31F9281D0 -:10515000981301C012822F5F3F4F26303105A1F70F -:10516000089581E090E0E0918B01F0918C01E80FCF -:10517000F91F1082019688309105A9F70895909142 -:10518000E502982B9093E502089580959091E502B1 -:1051900098239093E50208951092E5020895909166 -:1051A000E602982B9093E602089580959091E6028E -:1051B00098239093E60208951092E6020895809352 -:1051C000E70208951092E702089540918B015091F3 -:1051D0008C0120E030E080E0FA01E20FF31F9181C2 -:1051E00091118F5F2F5F3F4F27303105A9F7089549 -:1051F000E0918B01F0918C018091E5028083E09138 -:105200008B01F0918C0180819091E602892B808343 -:105210009091E702992361F0E0918B01F0918C016C -:105220008081892B80830E94E52881110E94E228D9 -:1052300080918B0190918C010C94311D8091FA0327 -:10524000843021F11092F10220E488E190E00FB661 -:10525000F894A895809360000FBE2093600080E0D2 -:105260000E94590383B7817F846083BF83B78160C5 -:1052700083BF7894889583B78E7F83BF88E10FB60C -:10528000F89480936000109260000FBE0895089516 -:105290000895CF9380E00E9459030E9447290E94FD -:1052A000BD070E944829C0E08C2F0E941109892B5C -:1052B00029F4CF5FC530C1F780E001C081E0CF9114 -:1052C00008950E94562380E00E9459030E941130E5 -:1052D0000E94251D0C94E7051F920F920FB60F92A6 -:1052E00011248F939F93AF93BF938091F10281110B -:1052F00013C08091F2029091F302A091F402B09158 -:10530000F5024196A11DB11D8093F2029093F30224 -:10531000A093F402B093F502BF91AF919F918F914A -:105320000F900FBE0F901F90189582E084BD93E000 -:1053300095BD9AEF97BD80936E0008958FB7F8944E -:105340004091F2025091F3026091F4027091F502E3 -:105350008FBFCA010895CF92DF92EF92FF920F9311 -:105360001F932FB7F8944091F2025091F30260918D -:10537000F4027091F5022FBF6A017B01EE24FF2435 -:105380008C0120E030E0C016D106E206F30620F0E2 -:105390009A01281B390B05C09C0120953095240FDC -:1053A000351FC9011F910F91FF90EF90DF90CF90B3 -:1053B00008951F920F920FB60F9211248F939F930F -:1053C000AF93BF938091F2029091F302A091F40207 -:1053D000B091F5020196A11DB11D8093F202909348 -:1053E000F302A093F402B093F502BF91AF919F91A5 -:1053F0008F910F900FBE0F901F9018950E946D1601 -:10540000F8942FEF87EA91E6215080409040E1F731 -:1054100000C0000087E090EBDC01809304049093CF -:105420000504A0930604B09307042CE088E190E003 -:105430000FB6F894A895809360000FBE209360008B -:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 -:10545000DF93C82ED12C01E010E08D2D0E941109A0 -:105460007C01C0E0D0E098010C2E02C0220F331F57 -:105470000A94E2F72E213F21232B29F42196CC30E8 -:10548000D10589F708C06C2F7D2D80E00E944C0467 -:10549000C812F4CF06C0D39485E0D812DECF80E0E6 -:1054A00001C081E0DF91CF911F910F91FF90EF90AC -:1054B000DF90CF900895CF93C82F8CE20E94212ACD -:1054C000882321F08C2FCF910C94212A80E0CF915A -:1054D0000895CF930E94AC2B811102C00E948D2BA6 -:1054E000C5E608C00E94BD078FE39CE90197F1F76C -:1054F00000C00000C150B1F789E20E945B2A81110F -:105500000AC18AE20E945B2A81110E948D2B85E0EC -:105510000E945B2A81110E94FE290E94B72B809372 -:10552000F00287E00E945B2A882399F18BE10E94B8 -:105530005B2A882351F09091F00291FB882780F933 -:1055400021E0822780FB91F922C08EE00E945B2A35 -:10555000882351F09091F00292FB882780F921E096 -:10556000822780FB92F913C080E10E945B2A909110 -:10557000F002882341F093FB882780F921E08227FD -:1055800080FB93F904C0892F809580FB90F990935C -:10559000F0028091F0020E94BB2B0E94C92B8093E5 -:1055A000010380EE0E945B2A882341F08091010371 -:1055B000982F909590FB80F98093010389E30E94D6 -:1055C0005B2A882359F09091010391FB882780F989 -:1055D00021E0822780FB91F99093010382EE0E94E3 -:1055E0005B2A882359F09091010392FB882780F968 -:1055F00021E0822780FB92F99093010386EE0E94BE -:105600005B2A882359F09091010393FB882780F946 -:1056100021E0822780FB93F99093010383EE0E949F -:105620005B2A882359F09091010394FB882780F925 -:1056300021E0822780FB94F99093010385E30E9487 -:105640005B2A882359F09091010395FB882780F904 -:1056500021E0822780FB95F99093010381E30E946A -:105660005B2A882359F09091010396FB882780F9E3 -:1056700021E0822780FB96F99093010381E10E944B -:105680005B2A882359F09091010397FB882780F9C2 -:1056900021E0822780FB97F9909301038091010319 -:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 -:1056B0005B2A8111C2608FE10E945B2A8111C46064 -:1056C00080E20E945B2A8111C86081E20E945B2A0D -:1056D0008111C06182E20E945B2A8111C06283E273 -:1056E0000E945B2A8111C06484E20E945B2A8823A5 -:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B -:105700006C2F03C00E94C02B682F70E080E090E0F7 -:10571000CF910C946127CF9108956DEE7EEF80E0DC -:1057200090E00E94783460E082E090E00E946A3469 -:1057300060E083E090E00E946A3460E084E090E002 -:105740000E946A3460E085E090E00E946A3460E084 -:1057500086E090E00C946A3480E090E00E9464342B -:1057600021E08D3E9E4F09F020E0822F089582E0D7 -:1057700090E00C945C34682F82E090E00C946A34E2 -:1057800083E090E00C945C34682F83E090E00C940C -:105790006A3484E090E00C945C34682F84E090E0FC -:1057A0000C946A3486E090E00C945C34682F86E0B8 -:1057B00090E00C946A348091FE0280FF0BC06091EF -:1057C000900185E0689FB0011124759567957595E6 -:1057D00067952AC081FF09C06091900185E0689FAC -:1057E000B0011124759567951FC082FF07C06091B5 -:1057F000900185E0689FB001112416C04091F80225 -:105800004423C9F060918F01461788F720919001D9 -:1058100085E0289F90011124429FC001439F900D75 -:10582000112470E00E9448346038710540F461151D -:10583000710539F002C065E070E0862F08958FE7AA -:10584000089581E008958091FE0280FF08C0609174 -:105850008E0170E0759567957595679521C081FFFC -:1058600006C060918E0170E07595679519C082FF42 -:1058700004C060918E0170E010C08091F80288230E -:10588000C1F060918D018617A0F790918E01989FCD -:10589000C001112470E00E9448346038710528F47A -:1058A0006115710521F0862F08958FE7089581E035 -:1058B000089561E070E0F4CF803F21F40E94DB2B7B -:1058C000819504C0813F29F40E94DB2B8093FB0269 -:1058D0000895823F21F40E94DB2B819504C0833F11 -:1058E00029F40E94DB2B8093FA020895893F19F472 -:1058F0000E94232C05C08A3F31F40E94232C8195FD -:105900008093FC0208958B3F21F40E94232C819503 -:1059100004C08C3F29F40E94232C8093FD0208953B -:10592000843F21F48091F902816017C0853F21F402 -:105930008091F902826011C0863F21F48091F902C2 -:1059400084600BC0873F21F48091F902886005C014 -:10595000883F31F48091F90280618093F9020895C3 -:105960008D3F21F48091FE0281600BC08E3F21F4B7 -:105970008091FE02826005C08F3F29F48091FE0273 -:1059800084608093FE020895803F29F48091FB0299 -:1059900087FF6EC007C0813F41F48091FB0218165B -:1059A0000CF066C01092FB0263C09091FA02823F35 -:1059B00019F497FF5DC005C0833F31F419160CF050 -:1059C00057C01092FA0254C0893F31F48091FC0212 -:1059D00018160CF04DC006C08A3F39F48091FC02C5 -:1059E00087FF46C01092FC0243C08B3F29F4809190 -:1059F000FD0287FF3DC006C08C3F39F48091FD0257 -:105A00001816B4F51092FD0233C0843F21F4809142 -:105A1000F9028E7F05C0853F31F48091F9028D7FB8 -:105A20008093F90225C0863F21F48091F9028B7F93 -:105A3000F7CF873F21F48091F902877FF1CF883F2C -:105A400021F48091F9028F7EEBCF8D3F21F480917C -:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F -:105A600005C08F3F29F48091FE028B7F8093FE0258 -:105A70008091FA0281110EC08091FB0281110AC04F -:105A80008091FC02811106C08091FD02811102C04B -:105A90001092F802089589EF92E00E943C1D0E9446 -:105AA0009E299093F7028093F6020895CF938091F8 -:105AB000F6029091F7020E94AB294091F80244232C -:105AC00021F02091910130E006C0209192015AE02E -:105AD000259F900111248217930708F486C08091B6 -:105AE000FA0281110DC09091FB02911109C09091B1 -:105AF000FC02911105C09091FD02992309F475C033 -:105B00004F3F19F04F5F4093F802181624F40E949B -:105B1000DB2B8093FA028091FA0287FF05C00E9476 -:105B2000DB2B81958093FA028091FB02181624F4F6 -:105B30000E94DB2B8093FB028091FB0287FF05C054 -:105B40000E94DB2B81958093FB026091FA02662311 -:105B500039F1C091FB02CC2319F1772767FD7095CD -:105B6000872F972F0E94AC3123E333E343E35FE3B6 -:105B70000E9460320E9479316093FA026C2F77277D -:105B800067FD7095872F972F0E94AC3123E333E395 -:105B900043E35FE30E9460320E9479316093FB022D -:105BA0008091FC02181624F40E94232C8093FC029E -:105BB0008091FC0287FF05C00E94232C8195809371 -:105BC000FC028091FD02181624F40E94232C80937D -:105BD000FD028091FD0287FF05C00E94232C819564 -:105BE0008093FD02CF910C944B2DCF910895E9EF56 -:105BF000F2E085E0DF011D928A95E9F71092F80244 -:105C00001092FE020895833089F130F4813061F002 -:105C1000823009F06EC019C0853009F449C0B8F16E -:105C2000863009F066C055C020919201862F90E021 -:105C3000820F911D8F3F910520F4620F60939201B6 -:105C400008958FEF80939201089520919101862FFE -:105C500090E0820F911D8F3F910520F4620F6093B9 -:105C6000910108958FEF8093910108952091900103 -:105C7000862F90E0820F911D8F3F910520F4620FD7 -:105C80006093900108958FEF809390010895209183 -:105C90008F01862F90E0820F911D8F3F910520F498 -:105CA000620F60938F0108958FEF80938F010895A5 -:105CB00020918E01862F90E0820F911D8F3F9105DC -:105CC00020F4620F60938E0108958FEF80938E0110 -:105CD000089520918D01862F90E0820F911D8F3FB6 -:105CE000910520F4620F60938D0108958FEF8093EA -:105CF0008D010895833021F130F4813059F08230E4 -:105D000009F049C012C0853089F128F1863009F0C8 -:105D100042C037C080919201681720F4861B80939F -:105D2000920108951092920108958091910168174F -:105D300020F4861B8093910108951092910108959B -:105D400080919001681720F4861B8093900108953C -:105D500010929001089580918F01681720F4861B9E -:105D600080938F01089510928F01089580918E0184 -:105D7000681720F4861B80938E01089510928E017F -:105D8000089580918D01681720F4861B80938D0102 -:105D9000089510928D01089541E050E060E070E0B8 -:105DA00004C0440F551F661F771F8A95D2F7CB0199 -:105DB000BA010E9461270C945623873200F58E3178 -:105DC00008F086C08E3009F466C060F4873009F4AC -:105DD0004DC018F4863049F531C0883041F18B3020 -:105DE00021F57BC0863109F478C018F48031E9F4DC -:105DF0005CC0893109F471C08B31B9F442C0883379 -:105E000009F46BC048F4893209F460C0853309F4A1 -:105E10005DC0873251F45AC0833409F457C018F476 -:105E20008A3318F057C0883499F080E008950E94B2 -:105E3000B72B0E94C92B0E94D22B4FC08091F00239 -:105E4000817F8E7F8093F00281E08093FF0208952E -:105E50000E9456232FEF83ED90E321508040904025 -:105E6000E1F700C000000E94FE2937C08091F002D7 -:105E700080FF03C0817F8E7F01C081608093F0022C -:105E80002CC09091F00291FB882780F921E08227B5 -:105E900080FB91F913C09091F00292FB882780F962 -:105EA00021E0822780FB92F909C09091F00293FBD8 -:105EB000882780F921E0822780FB93F99093F002F4 -:105EC000882359F091609093F00207C080E003C0EE -:105ED0008D5101C089530E94CC2E81E0089580E04D -:105EE000089580E00895CF93C82F8091FF028130FC -:105EF00071F020F0823009F089C037C0A0918B0189 -:105F0000B0918C018C91823209F082C007C0A091BF -:105F10008B01B0918C018C91823249F48C2F0E94BC -:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 -:105F30000E94712F811115C0C43169F030F4CB304B -:105F400081F0C03109F068C009C0C93221F0C833FE -:105F500009F062C006C01092FF025EC082E080932A -:105F6000FF0281E090E081705AC0C932C9F060F44C -:105F7000C431B1F020F4C73009F04CC034C0CE5168 -:105F8000C63008F047C017C0CE3439F120F4CB3406 -:105F900009F040C01CC0C135C1F0C235D9F513C0ED -:105FA00080910003882319F01092000333C081E030 -:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 -:105FC0008093000327C061E003C061E007C06AE07E -:105FD000809100030E94032E1DC06AE0809100039F -:105FE0000E947A2E17C08EE18093920182E3809303 -:105FF00091018AE08093900184E180938F0188E091 -:1060000080938E0188E280938D0104C01092FF027C -:1060100080E005C081E003C080E090E0A4CFCF9194 -:1060200008950E94AC2B811102C00E948D2B0E940A -:10603000D22B8093030480FF02C0869501C080E0CC -:106040000C94590380910304982F9695292F30E0E2 -:10605000233031054CF49F5F990F8170892B81604B -:10606000809303040E94D62B8091030486950C94A0 -:10607000590380910304982F969591F09158990FA8 -:106080008170892B809303048E7F91E009F490E066 -:106090008091030490FB80F9809303040E94D62B27 -:1060A0008091030486950C94590380910304982FE2 -:1060B000909590FB80F9809303040E94D62B8091E9 -:1060C000030480FF02C0869501C080E00C94590350 -:1060D00030910304232F26952F5F2F77822F90E096 -:1060E000317004972CF4220F232B2093030402C059 -:1060F0003093030480910304282F2E7F91E009F44C -:1061000090E090FB80F9809303040E94D62B80914D -:10611000030486950C94590320910304922F9695BD -:106120009827990F822F8170892B809303048E7F8B -:1061300091E009F490E08091030490FB80F9809352 -:1061400003040E94D62B8091030486950C94590376 -:106150005058BB27AA270ED075C166D130F06BD13D -:1061600020F031F49F3F11F41EF45BC10EF4E09572 -:10617000E7FB51C1E92F77D180F3BA1762077307A4 -:106180008407950718F071F49EF58FC10EF4E09521 -:106190000B2EBA2FA02D0B01B90190010C01CA01E1 -:1061A000A0011124FF27591B99F0593F50F4503E8C -:1061B00068F11A16F040A22F232F342F4427585F7E -:1061C000F3CF469537952795A795F0405395C9F796 -:1061D0007EF41F16BA0B620B730B840BBAF091504E -:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED -:1061F000BA0F621F731F841F48F4879577956795C0 -:10620000B795F7959E3F08F0B3CF9395880F08F0A8 -:106210009927EE0F979587950895D9D008F481E0D6 -:1062200008950CD00FC107D140F0FED030F021F41A -:106230005F3F19F0F0C0511139C1F3C014D198F388 -:106240009923C9F35523B1F3951B550BBB27AA27F7 -:1062500062177307840738F09F5F5F4F220F331F69 -:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 -:1062700091505040E695001CCAF729D0FE2F27D038 -:10628000660F771F881FBB1F261737074807AB0706 -:10629000B0E809F0BB0B802DBF01FF2793585F4F7B -:1062A0002AF09E3F510568F0B6C000C15F3FECF395 -:1062B000983EDCF3869577956795B795F7959F5F40 -:1062C000C9F7880F911D9695879597F90895E1E094 -:1062D000660F771F881FBB1F621773078407BA07F3 -:1062E00020F0621B730B840BBA0BEE1F88F7E0954E -:1062F000089504D06894B111D9C00895BCD088F035 -:106300009F5790F0B92F9927B751A0F0D1F0660FA1 -:10631000771F881F991F1AF0BA95C9F712C0B130BC -:1063200081F0C3D0B1E00895C0C0672F782F8827CF -:10633000B85F39F0B93FCCF3869577956795B395FB -:10634000D9F73EF490958095709561957F4F8F4F6A -:106350009F4F0895E89409C097FB3EF4909580956F -:10636000709561957F4F8F4F9F4F9923A9F0F92F1B -:1063700096E9BB279395F695879577956795B79599 -:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F -:106390007F4F8F4F9F4F16C0882311F096E911C091 -:1063A000772321F09EE8872F762F05C0662371F0B2 -:1063B00096E8862F70E060E02AF09A95660F771FC6 -:1063C000881FDAF7880F9695879597F90895990FA2 -:1063D0000008550FAA0BE0E8FEEF16161706E807AF -:1063E000F907C0F012161306E407F50798F0621BD0 -:1063F000730B840B950B39F40A2661F0232B242BA5 -:10640000252B21F408950A2609F4A140A6958FEFC3 -:10641000811D811D089597F99F6780E870E060E015 -:1064200008959FEF80EC089500240A94161617062D -:1064300018060906089500240A9412161306140675 -:1064400005060895092E0394000C11F4882352F0D8 -:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 -:106460008F4F9F4F089557FD9058440F551F59F077 -:106470005F3F71F04795880F97FB991F61F09F3F31 -:1064800079F087950895121613061406551FF2CF5A -:106490004695F1DF08C0161617061806991FF1CFAA -:1064A00086957105610508940895E894BB276627D1 -:1064B0007727CB0197F908958ADF08F48FEF0895C5 -:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C -:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 -:1064E000950F50E0551F629FF001729FBB27F00D82 -:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 -:10650000B00DA11D661F829F2227B00DA11D621F25 -:10651000739FB00DA11D621F839FA00D611D221FDF -:10652000749F3327A00D611D231F849F600D211DC3 -:10653000822F762F6A2F11249F5750408AF0E1F066 -:1065400088234AF0EE0FFF1FBB1F661F771F881FAF -:1065500091505040A9F79E3F510570F05CCFA6CFF7 -:106560005F3FECF3983EDCF3869577956795B7959A -:10657000F795E7959F5FC1F7FE2B880F911D9695C4 -:10658000879597F90895FA01EE0FFF1F30962105C0 -:10659000310599F16115710561F48038BFE39B07FE -:1065A00049F168949038810561F08038BFEF9B070E -:1065B00041F0992342F5FF3FE1053105210511F135 -:1065C000E8940894E795D901AA2329F4AB2FBE2FAC -:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD -:1065E00050F019F0FF3A38F49F779F930CD00F903A -:1065F00007FC905808953EF014CF60E070E080E80A -:106600009FE308954FE79F775F934F933F932F93B7 -:106610009ED02F913F914F915F9152DF05C019F4A9 -:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 -:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 -:106640000F920F920F924DB75EB70F92C0D0ECEA47 -:10665000F0E016D04F915F91EF91FF91E595EE1F1D -:10666000FF1F49F0FE57E0684427EE0F441FFA95DC -:10667000E1F74195550B32D00F9007FE26C00895E3 -:10668000DF93CF931F930F93FF92EF92DF927B01E3 -:106690008C01689405C0DA2EEF011EDFFE01E8943C -:1066A000A5912591359145915591AEF3EF0162DDAC -:1066B000FE019701A801DA9479F7DF90EF90FF903F -:1066C0000F911F91CF91DF9108959B01AC0160E084 -:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 -:1066E0009923D9F3940F511DBBF39150504094F06E -:1066F00059F0882332F0660F771F881F9150504061 -:10670000C1F79E3F510544F7880F911D96958795D7 -:1067100097F908955F3FACF0983E9CF0BB278695B3 -:1067200077956795B79508F4B1609395C1F7BB0F5E -:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 -:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 -:10675000C8F39923D1F3C6F3DF93CF931F930F931D -:10676000FF92C92FDD2788232AF02197660F771F14 -:10677000881FDAF720E030E040E85FEB9FE38839DC -:1067800020F0803E30F021968F77E3DCE4EDF0E0FE -:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F -:1067A000FB2E6F5771097595771F880B990BD4DDF8 -:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 -:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 -:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 -:1067E0003327442750781FC0B75188F4AB2F0024BB -:1067F000469537952795011CA395D2F3002069F0A3 -:10680000220F331F441FB395DAF30DD0A1CC6130B2 -:106810007105A0E88A07B94630F49B01AC016627F0 -:10682000772788279078309621F020833183428320 -:10683000538308959F3F31F0915020F487957795C9 -:106840006795B795880F911D9695879597F9089547 -:10685000991B79E004C0991F961708F0961B881FB2 -:106860007A95C9F780950895AA1BBB1B51E107C013 -:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 -:10688000991F5A95A9F780959095BC01CD0108955F -:1068900097FB072E16F4009407D077FD09D00E94CD -:1068A000343407FC05D03EF4909581959F4F0895B0 -:1068B000709561957F4F0895F999FECF92BD81BD86 -:1068C000F89A992780B50895A8E1B0E042E050E039 -:1068D0000C947F34262FF999FECF1FBA92BD81BD4B -:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 -:1068F0000E946A34272F0C946B34DC01CB01FC011D -:10690000F999FECF06C0F2BDE1BDF89A319600B408 -:0E6910000D9241505040B8F70895F894FFCF13 -:10691E0055D0A44600001644000000000000484276 -:10692E0061978A460000C8430000000000004842FC -:10693E0055D024460000C843000000000000484225 -:10694E0000005C460000C843000000000000484202 -:10695E0061978A4600007A4455D0A4460000C84389 -:10696E00000000000000484200005C460000C843E2 -:10697E00000000000000484255D024460000164496 -:10698E000507000C058540000001064000000100CF -:10699E0091102111FD10C810941001E8022808145E -:1069AE000A321E42004500250026004300610060A9 -:1069BE000020003700640065006600670044004652 -:1069CE000024004700000002000400050007000933 -:1069DE00000B000C000E0010001100130015001724 -:1069EE000018001A001C001D001F002100230024A7 -:1069FE00002600280029002B002D002F0030003229 -:106A0E000034003500370039003B00F6030F042830 -:106A1E0004410469051C05E604C6043F4D362002F8 -:106A2E000302000001000101010101000101010248 -:086A3E00030405060708090026 +:100000000C947C050C94C0050C94C0050C94C005A0 +:100010000C94C0050C94C0050C94C0050C94C0054C +:100020000C94C0050C94C0050C94C7180C94991935 +:100030000C94B2270C94C0050C94C0050C94C00518 +:100040000C94C0050C94C0050C94C0050C94C0051C +:100050000C94C0050C941A280C94C0050C94C0058F +:100060000C94C0050C94C0050C94C0050C94C005FC +:100070000C94C0050C94C0050C94C0050C94C005EC +:100080000C94E50E0C94C0050C94C0050C94C005AE +:100090000C94C0050C94C0050C94C0050C94C005CC +:1000A0000C94C0050C94C0050C94C0051B062B06CF +:1000B0003D064D06530662066E06730680068806E8 +:1000C00098069D06061A281A161B281A161B6D1A62 +:1000D000901A161BE51AF81AFB1DFB1D381E381E58 +:1000E000921ED01E48214821E91E4821EA1FEA1F1E +:1000F000AD20C4204821332107634236B79BD8A7DF +:100100001A39685618AEBAAB558C1D3CB7CC57633C +:10011000BD6DEDFD753EF6177231BF000000803FEA +:1001200008000000BE922449123EABAAAA2ABECD06 +:10013000CCCC4C3E00000080BEABAAAAAA3E000078 +:100140000000BF000000803F000000000008417870 +:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7 +:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F +:1001700001C4FF7F3F000000000035001E001F008B +:100180002000210022002300240025002600270053 +:100190002A002B0014001A000800150017001C008C +:1001A00018000C00120013004C0029000400160077 +:1001B000070009000A000B000D000E000F003300BD +:1001C0003400E1001D001B000600190005001100AD +:1001D000100036003700380028000530E000E2004B +:1001E000E30003302C002C0004305000510052007A +:1001F0004F0035001E001F002000210022002300B8 +:1002000024002500260027002A002B0014001A00D5 +:10021000090013000A000D000F0018001C00330035 +:100220004C002900040015001600170007000B0001 +:10023000110008000C0012003400E1001D001B003A +:100240000600190005000E001000360037003800C7 +:1002500028000530E000E200E30003302C002C0011 +:1002600004305000510052004F0035001E001F00A6 +:100270002000210022002300240025002600270062 +:100280002A002B0034003600370013001C00090040 +:100290000A00060015000F004C002900040012009F +:1002A000080018000C0007000B00170011001600D2 +:1002B0003800E100330014000D000E001B000500A3 +:1002C00010001A0019001D0028000530E000E200AF +:1002D000E30003302C002C00043050005100520089 +:1002E0004F0035021E021F022002210222022302B9 +:1002F00024022502260227022A0035021E021F02BE +:1003000020022102220223022402250226022702C1 +:100310004C004C003A003B003C003D003E003F00DA +:100320002D022E022F023002310201004000410056 +:1003300042004300440045000100010001000100AB +:1003400001000100010001000100010001000100A5 +:100350000100AB00AA00A900AE0035001E001F007E +:100360002000210022002300240025002600270071 +:100370002A0035001E001F0020002100220023005B +:1003800024002500260027004C004C003A003B00CA +:100390003C003D003E003F002D002E002F003000AD +:1003A000310001004000410042004300440045008C +:1003B0000100010001000100010001000100010035 +:1003C00001000100010001000100AB00AA00A9002A +:1003D000AE0000000000000000000000000000006F +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC +:1004200000000000000000000000000000000000CC +:100430000000000000000000000003300000000089 +:100440000430000000000000000000000000000078 +: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 +:1008F000000000000000000000003A003B003C0047 +:100900003D003E003F0040004100420043004400E3 +:10091000450001000050010001000100010001003C +:1009200001000100010001004C0001000100010074 +:1009300007300630135012500030013002300100F1 +:10094000010001000B300A300930083001000100BD +:10095000010001000100010001000100010001008F +:10096000010001000100010001000100010001007F +:1009700001002A0354006800650020005000720046 +:1009800065006F006E006900630020004B00650089 +:10099000790062006F0061007200640000002C03A7 +:1009A0004F007200740068006F006C0069006E00F8 +:1009B00065006100720020004B0065007900620054 +:1009C0006F006100720064007300000004030904FA +:1009D00009025400030100A0FA0904000001030108 +:1009E0000100092111010001223F000705810308D0 +:1009F000000A09040100010301020009211101009C +:100A000001224D000705820308000A0904020001C3 +:100A100003000000092111010001223600070583AF +:100A20000308000A1201100100000008EDFE6160D9 +:100A300001000102000105010980A10185021601E2 +:100A40000026B7001A01002AB70075109501810031 +:100A5000C0050C0901A1018503160100269C021A9C +:100A600001002A9C02751095018100C00501090250 +:100A7000A1010901A1000509190129051500250198 +:100A80009505750181029501750381010501093004 +:100A900009311581257F9502750881060938158170 +:100AA000257F950175088106050C0A3802158125F8 +:100AB0007F950175088106C0C005010906A10105E1 +:100AC0000719E029E71500250195087501810295B0 +:100AD0000175088101050819012905950575019120 +:100AE000029501750391010507190029FF150025DD +:100AF000FF950675088100C011241FBECFEFDAE014 +:100B0000DEBFCDBF04B603FE24C08091F3039091F5 +:100B1000F403A091F503B091F6038730904BA74002 +:100B2000B04BB9F41092F3031092F4031092F50352 +:100B30001092F60314BE84B7877F84BF88E10FB696 +:100B4000F89480936000109260000FBEE0E0F8E33C +:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2 +:100B60000D92A63FB107D9F713E0A6EFB2E001C09E +:100B70001D92A33FB107E1F70E940D160C94D231EC +:100B80000C940000279A2F988FEF9FEF9093870087 +:100B9000809386008AE08093800089E180938100C1 +:100BA0000C94092D282F81110BC080918000877F24 +:100BB0008093800010928D0010928C002F980895E1 +:100BC0002F9880918000886080938000233019F4F2 +:100BD0008FEF9FEF0FC083E090E0821B9109880F99 +:100BE000991F2FEF3FEFA90102C0569547958A95AF +:100BF000E2F7CA0190938D0080938C000895CF9303 +:100C0000DF93EC010E94AE28BE0180E090E0DF910E +:100C1000CF910C9428250F931F93462F50E04C3012 +:100C2000510508F098C0DC01FA01EA5AFF4F12960C +:100C30008C910C949631882309F48DC000E010E06B +:100C4000980140E064E070E089EC91E00E9463125A +:100C500081E090E00FC0882309F47DC000E010E03F +:100C6000980140E066E070E089E591E00E9463123F +:100C700082E090E00E94FF056EC0882309F46BC0FB +:100C800000E010E0980140E068E070E089E891E061 +:100C90000E94631284E090E0EDCF882311F083E09E +:100CA00005C083E00CC0882349F084E00E94A5259C +:100CB00040E164E083E00E94C90A4DC084E00E94E4 +:100CC000C625F6CF882331F085EE0E948F1C0E9446 +:100CD000602D41C085EE0E94571D3DC08823D9F18B +:100CE0000E94F70D38C08823B1F10E94F00D00E09A +:100CF00010E0980140E064E070E089EE91E029C0E6 +:100D0000882349F185E00E94C6250E94180E23C061 +:100D1000882309F100E010E0980140E068E070E00D +:100D200089E191E00E94631285E00E94A52513C02D +:100D3000882389F00E94F61204C0882361F00E9483 +:100D4000011300E010E0980140E068E070E089E104 +:100D500091E00E94631280E090E01F910F9108954E +:100D60000F931F932FEF89EF90E021508040904028 +:100D7000E1F700C0000000E010E0980140E064E00E +:100D800070E089EE91E00E9463121F910F91089527 +:100D9000CF92DF92EF92FF920F931F93CF93DF9347 +:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71 +:100DB000CDBF2091B30325FFC5C08C01FC019281FA +:100DC00080910001992309F460C096E4E5E2F2E025 +:100DD000DE01A95BBF4F01900D929A95E1F7F801F2 +:100DE0009081E091F602F091F702E90FF11DEE0F0C +:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F +:100E00007181680F711D882777FD8095982F0E944A +:100E1000A42E20E030E040E451E40E94092E6B0152 +:100E20007C01F801218185E090E0821B9109BC01E1 +:100E3000882777FD8095982F0E94A42E9B01AC01F6 +:100E4000C701B6010E94A12D9B01AC0160E070E0DA +:100E500080E090E40E94173020E030E04CE551E45F +:100E60000E94B42F4FE050E0C457DF4F0FB6F89404 +:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD +:100E8000EF90DF90CF900C94031296E4E5E2F2E04D +:100E9000DE01119601900D929A95E1F7F80190818B +:100EA000E091F602F091F702E90FF11DEE0FFF1F3E +:100EB00021E030E02C0F3D1FE20FF31F60817181B4 +:100EC000680F711D882777FD8095982F0E94A42EAA +:100ED00020E030E040E451E40E94092E6B017C01E7 +:100EE000F801218185E090E0821B9109BC018827EF +:100EF00077FD8095982F0E94A42E9B01AC01C7011D +:100F0000B6010E94A12D9B01AC0160E070E080E081 +:100F100090E40E94173020E030E04CE551E40E945C +:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E +:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 +:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4 +:100F5000CDBFDF91CF911F910F91FF90EF90DF9068 +:100F6000CF9008950F931F9300E010E0980140E0A8 +:100F700063E070E081E091E00E9463122FEF82E570 +:100F800097E0215080409040E1F700C000001F91A1 +:100F90000F91089508950E94C2056E9A769A0C9456 +:100FA000B0060C94CA070C94C8060895880F991FC0 +:100FB000FC01E650F040859194910895880F991FA7 +:100FC000FC01E658FE4F8591949108950F931F936D +:100FD000CF93DF93EC01811520E49207A0F5C115B2 +:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80 +:100FF000D10508F0EEC1C83AD10578F4C53AD1055B +:1010000008F074C0C130D10509F46DC008F4DEC128 +:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE +:1010200070C0D4C1C11590E2D90708F0B9C0C1158C +:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8 +:101040008E01106506C2C13080E5D80709F4BDC025 +:1010500068F5C13120E4D20709F4AEC050F4C031C4 +:1010600090E4D90708F0A5C0CF70DD278E01146D7C +:10107000F0C1C33120E4D20709F4A4C008F49FC032 +:10108000C115D04509F0A2C10E946C210E94180E22 +:101090000E94B2079FEF24E38CE0915020408040F3 +:1010A000E1F700C000000E943F28D3C1C11520E62F +:1010B000D20730F4C11581E5D80708F48CC02DC1E2 +:1010C000C11590E7D90708F481C1C11520E8D207FE +:1010D00008F478C1C11580E9D80708F077C1DF703E +:1010E0008E01106AB6C101E010E0B3C1C53AD10566 +:1010F00009F471C1C63AD10509F070C102E810E4E3 +:10110000A8C1C83AD10509F46CC1C93AD10509F49E +:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9 +:1011200069C1CC3AD10509F468C1CD3AD10509F4B9 +:1011300067C1C03BD10509F466C1CE3AD10509F4B7 +:1011400065C1CF3AD10509F464C1C13BD10509F4A9 +:1011500063C1C23BD10509F462C1C33BD10509F4A7 +:1011600061C1C43BD10509F460C1C53BD10509F497 +:101170005FC1C63BD10509F45EC1C73BD10509F487 +:101180005DC1C83BD10509F45CC1C93BD10509F477 +:101190005BC1CA3BD10509F45AC100E014E459C14E +:1011A000CE019F700E94DE0755C1DD278E01106CB5 +:1011B00050C100E011ED4DC100E010ED4AC100E06A +:1011C00012ED47C100E013ED44C18091C703816077 +:1011D0008093C7033EC10E949B28811102C00E94D8 +:1011E00077280E94B32890E09093F2038093F10354 +:1011F000C23090E5D90721F48091F103816086C067 +:10120000C43020E5D20721F48091F10382607EC0D2 +:10121000C63080E5D80721F48091F103846076C060 +:10122000C83090E5D90719F48091F10327C0CA307E +:1012300020E5D20721F48091F103806167C0CC30B2 +:1012400080E5D80721F48091F10380625FC0CE3041 +:1012500090E5D90721F48091F103806457C0C03133 +:1012600020E5D20721F48091F10380684FC0C2319C +:1012700080E5D80729F48091F1038460886046C036 +:10128000C33090E5D90721F48091F1038E7F3EC0F1 +:10129000C53020E5D20721F48091F1038D7F36C05F +:1012A000C73080E5D80721F48091F1038B7F2EC0F1 +:1012B000C93090E5D90719F48091F10326C0CB30ED +:1012C00020E5D20721F48091F1038F7E1FC0CD303D +:1012D00080E5D80721F48091F1038F7D17C0CF30CE +:1012E00090E5D90721F48091F1038F7B0FC0C131C4 +:1012F00020E5D20721F48091F1038F7707C0C33135 +:10130000D04531F48091F1038B7F877F8093F10387 +:101310008091F1030E94B7289CC08D2F99278F7070 +:10132000992781309105D9F49E012370332702C09B +:10133000880F991F2A95E2F79C688E0144E0000F00 +:10134000111F4A95E1F700271370802B912B53E072 +:10135000CC0FDD1F5A95E1F7C076DD272FC0823014 +:10136000910531F4DC2FCC278E01016F106A71C01A +:101370008330910569F4CE018370992701E010E074 +:1013800002C0000F111F8A95E2F7C8019C680FC0C8 +:10139000049709F05EC0CE018370992701E010E048 +:1013A00002C0000F111F8A95E2F7C8019A6823E076 +:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76 +:1013C0001D2B47C0DF708E01106243C000E010E0AB +:1013D00040C08E013EC001E810E43BC003E810E4C9 +:1013E00038C002EE14E435C009EE14E432C00AEE4F +:1013F00014E42FC005EB14E42CC006EB14E429C060 +:1014000007EB14E426C00CEC14E423C00DEC14E448 +:1014100020C003E815E41DC00AE815E41AC002E97B +:1014200015E417C004E915E414C001E216E411C084 +:1014300003E216E40EC004E216E40BC005E216E473 +:1014400008C006E216E405C007E216E402C00AE29C +:1014500016E4C801DF91CF911F910F9108959CE090 +:10146000799FF00111249CE3899FE00DF11D112467 +:10147000E60FF11DEE0FFF1FE658FE4F8591949188 +:10148000803E9105E0F4803C910558F5813391054B +:1014900009F46FC048F48932910509F463C08A32B7 +:1014A000910509F46DC072C089339105E9F0823865 +:1014B0009105D1F08533910509F44DC067C0833E95 +:1014C000910581F138F4803E9105B9F0823E910595 +:1014D000D9F05CC0863E910561F1873E9105A1F18E +:1014E00055C00E94D60708952091F10320FD02C047 +:1014F00021FF4CC080EE90E049C08091F10380FF55 +:10150000F9CF89E390E042C08091F10382FF0EC0E1 +:101510008091F10384FF03C080E090E037C083EE48 +:1015200090E034C08091F10382FFF2CF82EE90E030 +:101530002DC08091F10383FF0BC08091F10384FDE6 +:10154000EBCF87EE90E022C08091F10383FFF5CFCF +:1015500086EE90E01BC08091F10385FF07C089E211 +:1015600090E014C08091F10385FFF9CF85E390E00E +:101570000DC08091F10386FF07C08AE290E006C0AB +:101580008091F10386FFF9CF81E390E00E94E607A6 +:101590000895CF92DF92EF92FF920F931F9301E095 +:1015A00010E020E030E06801790104C0CC0CDD1CC3 +:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA +:1015C000331F6A95D2F70C291D292E293F29C09077 +:1015D000B303D090B403E090B503F090B603C022FB +:1015E000D122E222F322842FC016D106E206F306AE +:1015F00041F41F910F91FF90EF90DF90CF900C94EA +:10160000A5251F910F91FF90EF90DF90CF900C9444 +:10161000C62508950C94090B5F926F927F928F926A +:101620009F92AF92BF92CF92DF92EF92FF920F9371 +:101630001F93CF93DF93CDB7DEB72A970FB6F894F9 +:10164000DEBF0FBECDBFCE0101966C014E019BE007 +:10165000890E911C20E030E040E050E060E070E056 +:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F +:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C +:1016800001900D928A95E1F7F601819191916F0198 +:10169000FC01E07FFF27E032F10559F48F709927B4 +:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E +:1016B00037C0E033F10559F48F709927F50102C066 +:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487 +:1016D000F10559F48F709927F50102C0EE0FFF1F35 +:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C +:1016F0008F709927F50102C0EE0FFF1F8A95E2F760 +:101700004E2B5F2B0DC0E036F10551F48F709927F9 +:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B +:10172000C814D90409F0A7CF84B19E2D90958923C0 +:1017300084B985B1E82AE5B887B1902F90958923BF +:1017400087B988B1082B08B98AB1962F909589235B +:101750008AB98BB1682B6BB98DB1942F9095892381 +:101760008DB98EB1482B4EB980B3922F90958923B5 +:1017700080BB81B3282B21BB2A960FB6F894DEBF1D +:101780000FBECDBFDF91CF911F910F91FF90EF90D2 +:10179000DF90CF90BF90AF909F908F907F906F9091 +:1017A0005F9008955F926F927F928F929F92AF9217 +:1017B000BF92CF92DF92EF92FF920F931F93CF933E +:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4 +:1017D000CDBF85B7806885BF85B7806885BF0E940B +:1017E0000C0BCE0101966C014E0199E1890E911C02 +:1017F00020E030E040E050E060E070E000E010E029 +:10180000E12CF12C6C2C5D2C88E1782EAA24A39479 +:10181000B12CE5E7F2E0A62DB52D872D01900D92B4 +:101820008A95E1F7F601819191916F01FC01E07FCA +:10183000FF27E032F10559F48F709927F50102C0B6 +:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A +:10185000F10559F48F709927F50102C0EE0FFF1FB3 +:101860008A95E2F70E2B1F2B29C0E034F10559F4BD +:101870008F709927F50102C0EE0FFF1F8A95E2F7DE +:101880006E2B7F2B1BC0E035F10559F48F70992723 +:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A +:1018A0000DC0E036F10551F48F709927F50102C0A3 +:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499 +:1018C00009F0A7CF84B19E2D9095892384B985B165 +:1018D000E82AE5B887B1902F9095892387B988B118 +:1018E000082B08B98AB1962F909589238AB98BB1B4 +:1018F000682B6BB98DB1942F909589238DB98EB1DA +:10190000482B4EB980B3922F9095892380BB81B329 +:10191000282B21BBE2E0F3E0A8EFB2E01192119294 +:101920001D921D9283E0EC30F807C1F768960FB660 +:10193000F894DEBF0FBECDBFDF91CF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF909F908F90DF +:101950007F906F905F900C94CB075F926F927F9215 +:101960008F929F92AF92BF92CF92DF92EF92FF92AF +:101970000F931F93CF93DF93CDB7DEB7A2970FB628 +:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D +:1019900088EFA82E82E0B82E75019AE0592E4601F4 +:1019A00001E010E028E1622E35E0732EEBE6F2E074 +:1019B000D401852D01900D928A95E1F7D6018D9184 +:1019C0009D916D019C01207F33272032310591F4D8 +:1019D00024B18F709927F80102C0EE0FFF1F8A957E +:1019E000E2F7CF01922F982B94B995B18095892376 +:1019F00085B953C02033310591F427B18F709927F1 +:101A0000A80102C0440F551F8A95E2F7CA01922F20 +:101A1000982B97B998B18095892388B93EC0203416 +:101A2000310591F42AB18F709927D80102C0AA0F0D +:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3 +:101A4000809589238BB929C02035310591F42DB1BA +:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9 +:101A6000CF01922F982B9DB99EB1809589238EB975 +:101A700014C02036310589F420B38F709927A8014E +:101A800002C0440F551F8A95E2F7CA01922F982B86 +:101A900090BB91B38095892381BB50EA5A95F1F7A9 +:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF +:101AB000F2E0DE011196862D01900D928A95E1F7F4 +:101AC000DB018D919D91BD01FC01E07FFF27E0329C +:101AD000F10511F4E3B113C0E033F10511F4E6B1FF +:101AE0000EC0E034F10511F4E9B109C0E035F105AB +:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057 +:101B00008F70992702C0F595E7958A95E2F7E0FD79 +:101B100008C0C801042E02C0880F991F0A94E2F77A +:101B200002C080E090E0282B392B4F5F5F4F4C3094 +:101B3000510509F0BCCFF70180819181821793078D +:101B400021F031832083709209020E940C0BF2E095 +:101B5000EF0EF11C42E0E41643E0F40609F026CF54 +:101B6000809109028823C9F081508093090288235B +:101B700039F08FE99FE00197F1F700C000000DC038 +:101B8000E2E0F3E0D5018D919D915D018193919308 +:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023 +:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6 +:101BB0001F910F91FF90EF90DF90CF90BF90AF906B +:101BC0009F908F907F906F905F900895E82FF0E046 +:101BD000EE0FFF1FEE5FFC4F808191810895089505 +:101BE0008091DC0381608093DC030C94C928809190 +:101BF000DC038E7F8093DC030C94C9280E949B2811 +:101C0000811102C00E9477280E94C5288093DC03BE +:101C10003E9A809171008D7F8093710082E0809365 +:101C200090008AE18093910081E080930E030895F3 +:101C300080910E03811102C00E94FE0D10925E037E +:101C400010925D03809171008D7F8093710080916F +:101C500090008F77809390001092200310921F03C2 +:101C600010925703109258031092590310925A037E +:101C70001092560310925503E5E3F3E0A5E2B3E0BA +:101C800011921192119211921D921D9283E0E535ED +:101C9000F807B1F70895CF92DF92EF92FF920F937A +:101CA0001F93CF93DF9320911F03222309F484C055 +:101CB0006B017C0180910E03811102C00E94FE0D18 +:101CC00005E513E0C7E0D0E0A7019601F801929185 +:101CD0008291729162918F010E94052E811131C013 +:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B +:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3 +:101D000011961C921E92C730D105E9F021964481AC +:101D10005581668177814083518362837383148206 +:101D200015821682178212968D919C9113971196A7 +:101D30009C938E9313961C921E9212973496129631 +:101D4000E2CF219708F680915D0390915E030197A1 +:101D500097FD05C090935E0380935D0304C01092CD +:101D60005E0310925D0380915D0390915E0320916C +:101D70005B0330915C032817390724F010925C0351 +:101D800010925B03892BC1F4809171008D7F809349 +:101D90007100809190008F7780939000109257038C +:101DA000109258031092590310925A03109256033E +:101DB0001092550310921F03DF91CF911F910F9145 +:101DC000FF90EF90DF90CF9008951F920F920FB683 +:101DD0000F9211244F925F926F927F928F929F92F7 +:101DE000AF92BF92CF92DF92EF92FF922F933F93E9 +:101DF0004F935F936F937F938F939F93AF93BF9313 +:101E0000CF93DF93EF93FF9380911F03882309F40F +:101E10009BC1C0915D03D0915E031C161D060CF0A2 +:101E200093C140900F035090100360901103709085 +:101E3000120320E030E0A901C301B2010E94B02FDB +:101E400018160CF065C0C130D10509F452C080915C +:101E50005B0390915C03BE010E9482317C019093F0 +:101E60005C0380935B038090210390902203A090F9 +:101E70002303B090240320E030E040E85FE3C50195 +:101E8000B4010E94A12D60932103709322038093DB +:101E9000230390932403F701EE0FFF1FEE0FFF1FA4 +:101EA000EB5CFC4FA301920160817181828193817F +:101EB0000E94092E20E030E040E05EE30E94B42F53 +:101EC0009B01AC01C501B4010E94B02F18168CF41F +:101ED000C7010196BE010E94823190935C038093FA +:101EE0005B0310922103109222031092230310929D +:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4 +:101F0000FF1FEB5CFC4F6081718182819381D0C0A7 +:101F1000C0905703D0905803E0905903F0905A03B3 +:101F200020E030E0A901C701B6010E94052E2197EB +:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62 +:101F4000EB5CFC4F80809180A280B380A50194015E +:101F5000C701B6010E94052E87FF31C0A50194017B +:101F600060E070E08CED93EC0E94092E20E030E000 +:101F700040E451E40E94092E20E030E040E05FE3BD +:101F80000E94B42F9B01AC0160E070E080E090E41F +:101F90000E9417309B01AC01C501B4010E94B42F0F +:101FA0009B01AC01C701B6010E94052E87FF07C047 +:101FB000A701960160E070E08CED93E439C0A501C3 +:101FC0009401C701B6010E94B02F18160CF055C03D +:101FD000A501940160E070E08CED93E40E94092E6D +:101FE00020E030E040E451E40E94092E20E030E09F +:101FF00040E05FE30E94B42F9B01AC0160E070E021 +:1020000080E090E40E9417309B01AC01C501B4014F +:102010000E94B42F9B01AC01C701B6010E94B02FF2 +:1020200018165CF5A701960160E070E08CED93EC6A +:102030000E94092E20E030E040E451E40E94092E85 +:1020400020E030E040E05FE30E94B42F9B01AC0150 +:1020500060E070E080E090E40E9417309B01AC01EA +:10206000C701B6010E94B42F6093570370935803C1 +:102070008093590390935A0313C0FE01EE0FFF1F84 +:10208000EE0FFF1FEB5CFC4F80819181A281B38139 +:102090008093570390935803A0935903B0935A0326 +:1020A00060915703709158038091590390915A039E +:1020B00020910C0330910D032F3F4FEF340731F087 +:1020C0002F5F3F4F30930D0320930C030E940C139E +:1020D0006B017C0120E034E244EF51E40E94052EC4 +:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E +:1020F00081E4F82E20E030E040E051E4C701B60171 +:102100000E94B42F9B01AC0160E074E284E79BE481 +:102110000E94092E6B017C010E94712E7093970022 +:102120006093960020910A0230910B0240910C02BC +:1021300050910D02C701B6010E94B42F0E94712E6A +:10214000709399006093980080912003882309F48C +:1021500033C1C0901B03D0901C03E0901D03F0908E +:102160001E0320E030E0A901C701B6010E94B02F94 +:102170001816D4F580910C0390910D038F3F2FEF2B +:10218000920729F0019690930D0380930C03C701E9 +:10219000B6010E940C1320E030E040E051E40E94C0 +:1021A000B42F9B01AC0160E074E284E79BE40E94E1 +:1021B000092E6B017C010E94712E70939700609331 +:1021C000960020910A0230910B0240910C0250912E +:1021D0000D02C701B6010E94B42F0E94712E7093A8 +:1021E00099006093980008C0109297001092960092 +:1021F0001092990010929800609115037091160347 +:102200006F5F7F4F709316036093150320919600C4 +:102210003091970080E090E0232BF1F0C091960080 +:10222000D09197000E94A22E6B017C01BE0180E03C +:1022300090E00E94A22E9B01AC0160911703709167 +:1022400018038091190390911A030E94092E20E02F +:102250003FEF4FE757E410C00E94A22E6B017C01B4 +:1022600020E030EE4FEF54E46091170370911803B3 +:102270008091190390911A030E94B42F9B01AC0125 +:10228000C701B6010E94B02F87FD96C0809113034D +:102290008F5F8093130390E02091D8033091D9038E +:1022A00082179307A0F08091E303882319F010921E +:1022B00013030DC0809171008D7F80937100809118 +:1022C00090008F7780939000109220037DC08091C2 +:1022D0001403C0911303811128C0C090DD03D09076 +:1022E000DE03E090DF03F090E00320E030E0A9019E +:1022F000C701B6010E94B02F1816BCF481E080938C +:10230000140310921B0310921C0310921D031092D1 +:102310001E03C0921703D0921803E0921903F092A3 +:102320001A03C150C093130343C0109214031092B8 +:102330000D0310920C03E091DA03F091DB0348E007 +:10234000C49FE00DF11D112480819181A281B38190 +:1023500080931B0390931C03A0931D03B0931E0353 +:1023600020E030E040E85EE36481758186819781FA +:102370000E94B42F6B017C0120E030E048EC52E475 +:1023800060910E0270910F028091100290911102E3 +:102390000E94092E9B01AC01C701B6010E94B42F17 +:1023A00060931703709318038093190390931A0393 +:1023B00010921603109215038091DC0380FD04C077 +:1023C0001092200310921F03FF91EF91DF91CF91A4 +:1023D000BF91AF919F918F917F916F915F914F913D +:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3 +:1023F0009F908F907F906F905F904F900F900FBE47 +:102400000F901F901895CF92DF92EF92FF92CF938B +:10241000DF936B017C01EA0180910E03811102C000 +:102420000E94FE0D8091DC0380FF46C080915D0319 +:1024300090915E0308970CF03FC0809171008D7FF2 +:10244000809371008091200381110E94180E81E019 +:1024500080931F0310920D0310920C0320E030E0D4 +:10246000A901C701B6010E94B02F1816DCF48091B3 +:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47 +:10248000EB5CFC4FC082D182E282F382FC01EE0F52 +:10249000FF1FEB5DFC4FD183C083019690935E03D9 +:1024A00080935D03809171008260809371008091C0 +:1024B0009000806880939000DF91CF91FF90EF9023 +:1024C000DF90CF9008958F929F92AF92BF92CF925C +:1024D000DF92EF92FF920F931F93CF93DF93EC0164 +:1024E0007B01D42E4801590180910E03811102C055 +:1024F0000E94FE0D8091DC0380FF6BC08091710013 +:102500008D7F8093710080911F0381110E94180EAE +:1025100081E080932003D093DB03C093DA03F09231 +:10252000D903E092D803D092E3038092DD03909226 +:10253000DE03A092DF03B092E00310922103109219 +:102540002203109223031092240310921303888114 +:102550009981AA81BB8180931B0390931C03A09354 +:102560001D03B0931E0320E030E040E85EE36C8181 +:102570007D818E819F810E94B42F6B017C0120E0C0 +:1025800030E048EC52E460910E0270910F028091AD +:102590001002909111020E94092E9B01AC01C7010B +:1025A000B6010E94B42F60931703709318038093B1 +:1025B000190390931A031092160310921503809139 +:1025C0007100826080937100809190008068809398 +:1025D0009000DF91CF911F910F91FF90EF90DF90CE +:1025E000CF90BF90AF909F908F90089580915F03A0 +:1025F00090E0019666E070E00E94823180935F0374 +:10260000089580915F0390E0019766E070E00E947A +:10261000823180935F0308958F929F92AF92BF9211 +:10262000CF92DF92EF92FF920F931F93CF93DF939E +:102630006B017C01C0910C03D0910D03BE0180E0C1 +:1026400090E00E94A22E4B015C01A701960160E080 +:1026500070E08CE594E40E94092E9B01AC01C50159 +:10266000B4010E94B42F0E94762E20915F03233084 +:1026700009F473C028F4222351F02130E9F02CC171 +:10268000243009F4A0C0253009F4E0C025C180E061 +:1026900090E0A0E0BFE380930A0290930B02A09326 +:1026A0000C02B0930D0210920F03109210031092BF +:1026B00011031092120310C110920F031092100315 +:1026C00010921103109212036431710540F46A30C4 +:1026D000710560F520E030E040E85EE32BC0693C26 +:1026E000710508F0AAC080E090E00E94A22E20E0D0 +:1026F00030E040EA51E40E94A02D20E030E044E3C5 +:1027000053E40E94092E9B01AC010E94B42F20E0EB +:1027100030E040E05EE30E94B42F9B01AC0160E03A +:1027200070E080E09EE30E94A02D44C020E030E0F5 +:1027300040E05FE3C701B6010E94B42F6B017C014A +:1027400080E090E0A0E0BEE380930A0290930B0249 +:10275000A0930C02B0930D02BFC010920F03109211 +:10276000100310921103109212034AE0469F900149 +:10277000479F300D1124C90168EB7BE00E946E3148 +:10278000BC016C5D754077FF03C07195619571095F +:10279000882777FD8095982F0E94A42E2EE333EC96 +:1027A0004EE259E30E94B42F20E030E040EC5EE3BB +:1027B0000E94A12D60930A0270930B0280930C0279 +:1027C00090930D0289C010920F0310921003109283 +:1027D000110310921203CE0183709927892BE1F027 +:1027E000BE016170772780E090E00E94A22E20E079 +:1027F00030E040E05EE30E94B42F20E030E040E4AF +:102800005FE30E94A12D60930A0270930B028093F4 +:102810000C0290930D020CC080E090E0A0E0BFE3BA +:1028200080930A0290930B02A0930C02B0930D02C6 +:10283000C770DD27CD2B09F04FC010920A0210920D +:102840000B0210920C0210920D0246C010920F0360 +:1028500010921003109211031092120300E010E086 +:1028600020E03FE300930A0210930B0220930C0236 +:1028700030930D026739710578F180E090E00E9495 +:10288000A22E20E030E047E153E40E94A02D20E09A +:1028900030E04AE754E40E94092E20E030E048E4AA +:1028A00052E40E94B42F20E030E040EA51E40E945C +:1028B000E62E0E94712E660F771F660F771FFB01B1 +:1028C000E357FD4F2081318142815381C701B60119 +:1028D0000E94B42F6B017C01C701B601DF91CF913B +:1028E0001F910F91FF90EF90DF90CF90BF90AF902E +:1028F0009F908F900895809168030895CF93DF9300 +:1029000000D01F92CDB7DEB79C018091E8038430E0 +:1029100019F593E099833B832A839093E9008FEF25 +:102920009091E800815095FD06C095ED9A95F1F7DC +:1029300000008111F5CF8091E80085FF0DC040E0D7 +:1029400050E063E070E0CE0101960E94B7168091DE +:10295000E8008E778093E8000F900F900F90DF9142 +:10296000CF910895CF93DF9300D01F92CDB7DEB7FC +:102970002091E803243021F522E029839B838A8378 +:1029800083E08093E9008FEF9091E800815095FDFE +:1029900006C095ED9A95F1F700008111F5CF809171 +:1029A000E80085FF0DC040E050E063E070E0CE013C +:1029B00001960E94B7168091E8008E778093E80018 +:1029C0000F900F900F90DF91CF9108952091E80321 +:1029D0002430F1F422E02093E9002FEF3091E80059 +:1029E000215035FD06C035ED3A95F1F70000211173 +:1029F000F5CF2091E80025FF0BC040E050E065E0F6 +:102A000070E00E94B7168091E8008E778093E8000E +:102A10000895CF93DF932091E803243039F521E026 +:102A20002093E9002FEF3091E800215035FD06C0DA +:102A300035ED3A95F1F700002111F5CF2091E8002E +:102A400025FF14C0EC0140E050E068E070E00E9417 +:102A5000B7168091E8008E778093E80088E0FE0149 +:102A6000A0E6B3E001900D928A95E1F7DF91CF9156 +:102A700008958091E703811109C00E944C180E94BB +:102A8000A9188091E20084608093E200089510927A +:102A9000E7030895089508950C94A72742E061EC98 +:102AA00081E00E94C61742E061EC82E00E94C617F6 +:102AB00042E061EC83E00C94C6178091EA03833016 +:102AC00009F453C030F4813071F0823009F48CC0C5 +:102AD00008958A3009F478C08B3009F45EC08930DB +:102AE00009F09AC020C08091E903813A09F094C0AE +:102AF0008091E800877F8093E8008091ED039091BA +:102B0000EE03892B21F468E080E693E003C060E0E7 +:102B100080E090E070E00E9402178091E8008B77DF +:102B20008093E80008958091E903813209F074C030 +:102B30008091ED039091EE03892B09F06DC0809197 +:102B4000E800877F8093E8008091E80082FD05C05F +:102B50008091E8038111F8CF5FC08091F1008093EC +:102B600068038091E8008B7753C08091E903813A34 +:102B700009F052C08091ED039091EE03892B09F08A +:102B80004BC08091E800877F8093E8008091E80047 +:102B900080FFFCCF80911C0236C08091E903813216 +:102BA000D9F58091ED039091EE03892BA9F58091E1 +:102BB000E800877F8093E8000E94FB178091EB0379 +:102BC00080931C020C946C218091E903813221F5E1 +:102BD0008091E800877F8093E8000E94FB17809136 +:102BE000EC038093690308958091E903813AA1F48D +:102BF0008091E800877F8093E8008091E80080FF63 +:102C0000FCCF809169038093F1008091E8008E777A +:102C10008093E8000C94FB17089584B7877F84BFE6 +:102C200088E10FB6F89480936000109260000FBEA8 +:102C300090E080E80FB6F894809361009093610073 +:102C40000FBE0E949E1B0E944C180E94A9188091E2 +:102C5000E20084608093E20078940E942F1B0E941F +:102C6000A01B82E192E00E944A1B8091E80385301C +:102C700069F40E9461278091E6038823B1F30E94E2 +:102C80008F27882391F30E94A116EFCF0E94A81BE3 +:102C9000ECCF292F332723303105C9F064F42130DC +:102CA000310581F02230310509F043C084E590E020 +:102CB00020ED39E042C021323105F1F022323105F8 +:102CC00041F137C082E190E024E23AE036C0992732 +:102CD0008130910541F08230910541F0892B49F511 +:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A +:102CF000849190E09F0121C06330D8F4E62FF0E08A +:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5 +:102D100014C0633070F470E0FB01EE0FFF1FE0524F +:102D2000FD4F20813181FB01E352FD4F808190E016 +:102D300004C080E090E020E030E0FA01318320839D +:102D4000089580E189BD82E189BD09B400FEFDCF0F +:102D50008091D8008F7D8093D8008091E0008260C0 +:102D60008093E0008091E00081FDFCCF0895CF9238 +:102D7000DF92EF92FF920F931F93CF93DF93EC01BB +:102D80008B016A010E941A18811133C0C114D10449 +:102D900039F0F60180819181081B190BC80FD91FEA +:102DA000E12CF12C0115110519F18091E80085FD48 +:102DB00016C08091E8008E778093E800C114D1049A +:102DC00049F0F60180819181E80EF91EF182E082DE +:102DD00085E00FC00E941A18882321F30AC0899148 +:102DE0008093F10001501109FFEFEF1AFF0ADACFCB +:102DF00080E0DF91CF911F910F91FF90EF90DF90D6 +:102E0000CF9008952091EF033091F00326173707F4 +:102E100048F06115710539F42091E8002E77209370 +:102E2000E80001C0B90140E061157105A9F12091E8 +:102E3000E803222309F443C0253009F442C020915D +:102E4000E80023FD40C02091E80022FD32C020911F +:102E5000E80020FFE9CF4091F3002091F20030E03C +:102E6000342BFC01CF016115710559F02830310573 +:102E700040F481918093F100615071092F5F3F4FC1 +:102E8000F1CF41E02830310509F040E02091E80021 +:102E90002E772093E800C8CF4111C9CF0AC0809196 +:102EA000E803882361F0853061F08091E80083FDBC +:102EB0000AC08091E80082FFF2CF80E0089582E0AE +:102EC000089583E0089581E008952091EF03309103 +:102ED000F0032617370748F06115710539F4209182 +:102EE000E8002E772093E80001C0B901FC0120E042 +:102EF0006115710591F18091E803882309F440C0C0 +:102F0000853009F43FC08091E80083FD3DC0809189 +:102F1000E80082FD2FC08091E80080FFE9CF20917A +:102F2000F3008091F20090E0922B6115710559F049 +:102F30008830910540F424912093F100319661503E +:102F400071090196F2CF21E0089709F020E0809105 +:102F5000E8008E778093E800CBCF2111CCCF0AC058 +:102F60008091E803882361F0853061F08091E8006A +:102F700083FD0AC08091E80082FFF2CF80E00895CF +:102F800082E0089583E0089581E00895982F9730B6 +:102F900058F59093E900981739F07091EC00209162 +:102FA000ED005091F00003C0242F762F50E021FF58 +:102FB00019C03091EB003E7F3093EB003091ED0073 +:102FC0003D7F3093ED003091EB0031603093EB00AA +:102FD0007093EC002093ED005093F0002091EE00F0 +:102FE00027FF07C09F5FD3CF8F708093E90081E0F8 +:102FF000089580E008958091E90387FF11C08091D2 +:10300000E80082FD05C08091E8038111F8CF11C06E +:103010008091E8008B770BC08091E803882349F00A +:103020008091E80080FFF8CF8091E8008E77809350 +:10303000E80008952091E4003091E50095E6409184 +:10304000EC00842F817040FF22C08091E80080FD59 +:103050001CC08091E803882391F0853091F0809125 +:10306000EB0085FD10C04091E4005091E50042174F +:10307000530729F39A01915011F784E0089582E0F3 +:10308000089583E0089581E0089580E008954091D7 +:10309000E80042FFDECF08950E94BA180E94C218CD +:1030A000E0EEF0E0808181608083E8EDF0E08081F7 +:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5 +:1030C00080818F7E80831092E70308950F931F9372 +:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7 +:1030E00088818F77888388818068888388818F7DB5 +:1030F000888319BC1092E8031092E4031092E6034F +:103100001092E50300EE10E0F80180818B7F808350 +:1031100088818160888342E060E080E00E94C61779 +:10312000E1EEF0E080818E7F8083E2EEF0E080814E +:1031300081608083808188608083F80180818E7FB8 +:103140008083888180618883DF91CF911F910F9167 +:103150000895E8EDF0E080818F7E8083E7EDF0E078 +:1031600080818160808384E082BF81E08093E70377 +:103170000C946618E8EDF0E080818E7F80831092D9 +:10318000E20008951092DA001092E10008951F9273 +:103190000F920FB60F9211242F933F934F935F938B +:1031A0006F937F938F939F93AF93BF93EF93FF930F +:1031B0008091E10082FF0BC08091E20082FF07C096 +:1031C0008091E1008B7F8093E1000E942E1B809113 +:1031D000DA0080FF1FC08091D80080FF1BC0809163 +:1031E000DA008E7F8093DA008091D90080FF0DC0D5 +:1031F00080E189BD82E189BD09B400FEFDCF81E097 +:103200008093E8030E94391505C019BC1092E803A9 +:103210000E9447158091E10080FF19C08091E20073 +:1032200080FF15C08091E2008E7F8093E200809144 +:10323000E20080618093E2008091D80080628093F8 +:10324000D80019BC85E08093E8030E944B1580915B +:10325000E10084FF30C08091E20084FF2CC080E157 +:1032600089BD82E189BD09B400FEFDCF8091D800FF +:103270008F7D8093D8008091E1008F7E8093E10064 +:103280008091E2008F7E8093E2008091E200816075 +:103290008093E2008091E403882311F084E007C06A +:1032A0008091E30087FD02C081E001C083E080934C +:1032B000E8030E944C158091E10083FF29C08091B2 +:1032C000E20083FF25C08091E100877F8093E100C9 +:1032D00082E08093E8031092E4038091E1008E7F06 +:1032E0008093E1008091E2008E7F8093E2008091E4 +:1032F000E20080618093E20042E060E080E00E94B2 +:10330000C6178091F00088608093F0000E944A15F3 +:10331000FF91EF91BF91AF919F918F917F916F91AD +:103320005F914F913F912F910F900FBE0F901F9083 +:1033300018951F920F920FB60F9211242F933F935F +:103340004F935F936F937F938F939F93AF93BF93AD +:10335000CF93DF93EF93FF93C091E900CF708091FB +:10336000EC00D82FD17080FDD0E81092E900809158 +:10337000F000877F8093F00078940E94DD1910920E +:10338000E9008091F00088608093F000CD2BCF7031 +:10339000C093E900FF91EF91DF91CF91BF91AF9181 +:1033A0009F918F917F916F915F914F913F912F915D +:1033B0000F900FBE0F901F9018951F93CF93DF9320 +:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C +:1033D000E9EEF3E088E08E0F9091F10091938E1367 +:1033E000FBCF0E945D158091E80083FF1FC1809193 +:1033F000E9039091EA03492F50E04A30510508F063 +:1034000015C1FA01EE59FF4F0C949631803881F0C6 +:10341000823809F00BC18091ED038F708093E90031 +:103420008091EB0085FB882780F91092E90006C0A7 +:103430008091E5039091E603911182609091E800FC +:10344000977F9093E8008093F1001092F100C8C03C +:10345000282F2D7F09F0EAC0882319F0823061F00F +:10346000E5C08091EB03813009F0E0C0933009F0B2 +:1034700080E08093E6032BC08091EB03811127C08D +:103480008091ED038F7009F4D1C08093E900209101 +:10349000EB0020FF1CC0933021F48091EB00806290 +:1034A00014C09091EB0090619093EB0021E030E02C +:1034B000A90102C0440F551F8A95E2F74093EA0024 +:1034C0001092EA008091EB0088608093EB001092EC +:1034D000E9008091E800877F86C08111A7C0109124 +:1034E000EB031F778091E3008078812B8093E300CA +:1034F0008091E800877F8093E8000E94FB1780910D +:10350000E80080FFFCCF8091E30080688093E300B7 +:10351000111102C082E001C083E08093E80386C0FD +:103520008058823008F082C08091EB039091EC03C8 +:103530008C3D53E0950779F583E08A838AE289839D +:103540004FB7F894DE01139620E03EE051E2E32FFE +:10355000F0E050935700E49120FF03C0E295EF7034 +:103560003F5FEF708E2F90E0EA3010F0C79601C0F9 +:10357000C0968D939D932F5F243149F74FBF809163 +:10358000E800877F8093E8006AE270E0CE01019650 +:103590000E94021714C0AE014F5F5F4F6091ED03B0 +:1035A0000E944916BC01009709F440C09091E800C0 +:1035B000977F9093E80089819A810E946517809196 +:1035C000E8008B778093E80031C0803879F58091EE +:1035D000E800877F8093E8008091E4038093F10006 +:1035E0008091E8008E778093E8000E94FB171EC050 +:1035F00081111CC09091EB039230C0F48091E800DF +:10360000877F8093E8009093E4030E94FB178091EA +:10361000E403811106C08091E30087FD02C081E0D0 +:1036200001C084E08093E8030E944E158091E80079 +:1036300083FF0AC08091E800877F8093E800809133 +:10364000EB0080628093EB00AA960FB6F894DEBF81 +:103650000FBECDBFDF91CF911F9108950895CF93F5 +:103660008091E8038823A1F0C091E900CF70909188 +:10367000EC00892F817090FD80E8C82B1092E90042 +:103680008091E80083FD0E94DD19CF70C093E900AE +:10369000CF91089590936F0380936E030895E09106 +:1036A0006E03F0916F03309721F00190F081E02DCF +:1036B000099480E00895E0916E03F0916F033097D4 +:1036C00021F00280F381E02D09940895E0916E03CA +:1036D000F0916F03309721F00480F581E02D09947B +:1036E000089520916C0330916D038217930771F058 +:1036F00090936D0380936C03E0916E03F0916F03E0 +:10370000309721F00680F781E02D099408952091EB +:103710006A0330916B038217930771F090936B03E8 +:1037200080936A03E0916E03F0916F03309721F06C +:103730000084F185E02D0994089508950C949D1B53 +:103740000E94DB270E94D20B0E9461280C94092D55 +:103750004F925F927F928F929F92AF92BF92CF9241 +:10376000DF92EF92FF920F931F93CF93DF93CDB72A +:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A +:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9 +:10379000A394B12C702E802F0E94E60D4C01F601EF +:1037A000419051906F014826592641145104B1F4BB +:1037B0000F5F1F4F0530110569F78FEF89838A83EB +:1037C0001B820E94E4278160782F9D838C8349812E +:1037D0005A816B818D810E94611C3AC08091C70320 +:1037E00081FD0E94EF0D20E030E07501022E02C045 +:1037F000EE0CFF1C0A94E2F7C70184219521892B66 +:1038000009F12E837F828E209F2091E0892809F480 +:1038100090E098870E94E4278160782F9A878987B3 +:103820004E815F8168858A850E94611C000F111F8F +:10383000F801EF58FC4F80819181E826F926F1824A +:10384000E08206C02F5F3F4F2C30310571F6B0CFBC +:103850000E94482A109170030E944F1B1817D9F03C +:103860000E944F1B809370032A960FB6F894DEBF18 +:103870000FBECDBFDF91CF911F910F91FF90EF90C1 +:10388000DF90CF90BF90AF909F908F907F905F9090 +:103890004F900C940A0B2A960FB6F894DEBF0FBE19 +:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF +:1038B000CF90BF90AF909F908F907F905F904F90F0 +:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B +:1038D000DEBF0FBECDBF4F83588769877A878B873E +:1038E000DE01119686E0FD0111928A95E9F785E0E7 +:1038F000FE01379601900D928A95E1F749815A8130 +:103900006B817C818D819E810E9406242B960FB64F +:10391000F894DEBF0FBECDBFDF91CF910895CF9356 +:10392000882309F4C2C0C82F823859F40E944F1B63 +:1039300081FDBBC089E30E94AF260E94322789E344 +:103940000CC0833879F40E944F1B80FDAEC083E524 +:103950000E94AF260E94322783E50E94CC26CF9199 +:103960000C943227843859F40E944F1B82FD9DC06D +:1039700087E40E94AF260E94322787E4EECF8CEFC7 +:103980008C0F813A48F48C2F0E94712C81118DC0CC +:103990008C2F0E94AF26E3CF80E28C0F883048F452 +:1039A000C77081E001C0880FCA95EAF70E94EB2634 +:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20 +:1039C00031F083E890E005C081E890E002C082E831 +:1039D00090E0CF910C94711B88E58C0F833108F037 +:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F +:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F +:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE +:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C +:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072 +:103A300090E038C082EE90E035C089EE90E032C070 +:103A40008AEE90E02FC085EB90E02CC086EB90E0F2 +:103A500029C087EB90E026C08CEC90E023C08DEC71 +:103A600090E020C083E891E01DC08AE891E01AC090 +:103A700082E991E017C084E991E014C081E292E00C +:103A800011C083E292E00EC084E292E00BC085E2B6 +:103A900092E008C086E292E005C087E292E002C0B0 +:103AA0008AE292E0CF910C94871BCF9108958823EE +:103AB00009F44BC0823859F40E944F1B81FF45C066 +:103AC00089E30E94AF260E94322789E30CC0833825 +:103AD00071F40E944F1B80FF38C083E50E94AF261F +:103AE0000E94322783E50E94CC260C94322784382A +:103AF00059F40E944F1B82FF28C087E40E94AF2622 +:103B00000E94322787E4EFCF9CEF980F913A58F349 +:103B100090E2980F983050F4877091E001C0990FAF +:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F +:103B3000933020F480E090E00C94711B885A83311C +:103B400020F480E090E00C94871B0895882321F0F6 +:103B50000E94EB260C9432270895882321F00E94BE +:103B6000F1260C9432270895BF92CF92DF92EF9204 +:103B7000FF920F931F93CF93DF9300D000D000D01C +:103B8000CDB7DEB725E0FC01DE01119601900D9264 +:103B90002A95E1F7FC01D0801181028125812295CF +:103BA0002F7043815481452B09F472C31F3F21F4C8 +:103BB000FFEFDF1609F46CC37C012E830E94D3074C +:103BC000D9821A8369817A81802F0E94AB26182FAF +:103BD000B92E0E9460260E9427252E81002319F00D +:103BE0000E9408272E81EB2DE295EF70F0E0E4595A +:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B +:103C0000882319F0F29480EFF822002389F0FF2036 +:103C100009F47CC280E2810F883020F48F2D0E944D +:103C2000EB2603C08F2D0E94FB260E9432276EC216 +:103C3000812F0E94571DFF2009F42AC3105E8F2D8B +:103C4000183018F40E94F12602C00E94012726961F +:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D +:103C60000F91FF90EF90DF90CF90BF900C94322790 +:103C70008B2D807F9B2D9F70803211F4892F03C084 +:103C8000892F8295807F112319F0113011F12BC0FB +:103C90000023A9F0222389F1213079F526960FB669 +:103CA000F894DEBF0FBECDBFDF91CF911F910F9172 +:103CB000FF90EF90DF90CF90BF900C941B272223B2 +:103CC00019F0213009F4E4C28E830E941E278E81F0 +:103CD0009BC1002321F0263008F0DAC20EC0253047 +:103CE00008F0D6C291C10023C9F0222331F0F701B8 +:103CF000958190FF0BC29F70958326960FB6F8941E +:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E +:103D1000EF90DF90CF90BF900C94A61D222309F462 +:103D200073C109C22B2D26952695237030E02115ED +:103D3000310521F021303105D1F0AAC2002321F054 +:103D4000812F9B2D937002C080E090E026960FB6E5 +:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1 +:103D6000FF90EF90DF90CF90BF900C94711B0023D9 +:103D700021F0812F9B2D937002C080E090E0269669 +:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C +:103D90000F91FF90EF90DF90CF90BF900C94871B16 +:103DA000812F002319F00E94502902C00E94B829D7 +:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130 +:103DC0001F910F91FF90EF90DF90CF90BF900C94D8 +:103DD0003D2A8B2D837009F07BC0011159C2812FC0 +:103DE000829586958770880F880F912F9F70C92EB6 +:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7 +:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC +:103E100070E004C0440F551F661F771F8A95D2F7C4 +:103E2000CB01BA01609570958095909503C060E0D4 +:103E300070E0CB012B2D269526952370422F50E064 +:103E400042305105D9F04330510569F16C297D2983 +:103E50008E299F294130510551F126960FB6F894CD +:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD +:103E7000EF90DF90CF90BF900C944E256C297D2958 +:103E80008E299F2926960FB6F894DEBF0FBECDBFB0 +:103E9000DF91CF911F910F91FF90EF90DF90CF9026 +:103EA000BF900C946A250E944E25C701B601269644 +:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B +:103EC0000F91FF90EF90DF90CF90BF900C94322530 +:103ED000002319F08B2D817001C08695882309F489 +:103EE000D7C1812F829586958770880F880F912F73 +:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3 +:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018 +:103F100050E060E070E004C0440F551F661F771F3B +:103F20008A95D2F7CB01BA016095709580959095EE +:103F300003C060E070E0CB012B2D26952695237001 +:103F4000422F50E042305105D9F04330510569F11C +:103F50006C297D298E299F294130510551F12696E2 +:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A +:103F70000F91FF90EF90DF90CF90BF900C94282688 +:103F80006C297D298E299F2926960FB6F894DEBFCD +:103F90000FBECDBFDF91CF911F910F91FF90EF909A +:103FA000DF90CF90BF900C9444260E942826C70132 +:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7 +:103FC000CF911F910F91FF90EF90DF90CF90BF9016 +:103FD0000C940C26103F49F118F4103E48F491C09F +:103FE000123F09F453C0E8F1133F09F464C089C0DB +:103FF0001F708B2D8F71002321F00E94A525812F2A +:104000007CCE0E94C625812F26960FB6F894DEBF7F +:104010000FBECDBFDF91CF911F910F91FF90EF9019 +:10402000DF90CF90BF900C94AD1D0023B1F02530F0 +:1040300008F02EC18B2D8F7126960FB6F894DEBF37 +:104040000FBECDBFDF91CF911F910F91FF90EF90E9 +:10405000DF90CF90BF900C94EB25263008F018C16C +:10406000E9CF0023A9F08B2D8F7126960FB6F89417 +:10407000DEBF0FBECDBFDF91CF911F910F91FF909B +:10408000EF90DF90CF90BF900C94A525002359F3BB +:104090008B2D8F7126960FB6F894DEBF0FBECDBF65 +:1040A000DF91CF911F910F91FF90EF90DF90CF9014 +:1040B000BF900C94C625002399F08B2D8F71269606 +:1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 +:1040D0000F91FF90EF90DF90CF90BF900C949025C0 +:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD +:1040F0001F910F91FF90EF90DF90CF90BF900C94A5 +:1041000086250023A9F0222309F4ADCF812F26961E +:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8 +:104120000F91FF90EF90DF90CF90BF900C948F1C79 +:10413000222309F4ADCF812F26960FB6F894DEBF67 +:104140000FBECDBFDF91CF911F910F91FF90EF90E8 +:10415000DF90CF90BF900C94571D4B2D4F70612F67 +:10416000C7010E940B0626960FB6F894DEBF0FBE5D +:10417000CDBFDF91CF911F910F91FF90EF90DF9016 +:10418000CF90BF900C94AA24011182C09B2D9F70E8 +:10419000492F50E04230510509F443C0C4F44115A1 +:1041A000510571F14130510509F072C026960FB6E4 +:1041B000F894DEBF0FBECDBFDF91CF911F910F915D +:1041C000FF90EF90DF90CF90BF900C94312D433053 +:1041D0005105C1F14430510509F05AC0812F26968E +:1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 +:1041F0000F91FF90EF90DF90CF90BF900C94832DA4 +:1042000026960FB6F894DEBF0FBECDBFDF91CF91DB +:104210001F910F91FF90EF90DF90CF90BF900C9483 +:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4 +:10423000CF911F910F91FF90EF90DF90CF90BF90A3 +:104240000C944D2D26960FB6F894DEBF0FBECDBF51 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF900C94602D4B2D4F70612FC701269687 +:104270000FB6F894DEBF0FBECDBFDF91CF911F9177 +:104280000F91FF90EF90DF90CF90BF900C94D507E7 +:1042900026960FB6F894DEBF0FBECDBFDF91CF914B +:1042A0001F910F91FF90EF90DF90CF90BF900895F6 +:1042B0000E9408270E9418270E94DD260E943227AC +:1042C0000E94EE2A0E943D2A80E090E00E94711B2D +:1042D00080E090E00C94871B0E94F8260C945821F3 +:1042E0000E94A026292F22952F7030E02C30310516 +:1042F0004CF42A3031056CF422503109223031055A +:1043000088F407C02C30310549F02F30310531F0E9 +:1043100009C0803E48F0803F29F406C093FB8827FF +:1043200080F9089580E0089581E00895CF93DF93A8 +:1043300000D000D01F92CDB7DEB70F900F900F9036 +:104340000F900F90DF91CF910895CF93DF9300D01E +:1043500000D000D0CDB7DEB726960FB6F894DEBFFA +:104360000FBECDBFDF91CF9108951F93CF93DF9301 +:10437000C0917B0316E080917C03C81799F0D0E0D0 +:104380001C9FF0011D9FF00D1124E358FC4F40814C +:10439000518162817381848195810E94A52121963A +:1043A000C770E9CFDF91CF911F9108954091AD0380 +:1043B0005091AE036091AF037091B0038091B1034F +:1043C0009091B2030C94A5218091B20382958F70D5 +:1043D00009F054C08091AF03882309F44FC0809145 +:1043E0007B03A0917C036091AD037091AE0340917B +:1043F000B0035091B103B6E08A1709F43FC090E0D2 +:1044000041155105C1F17F3F11F46F3FA1F1B89FF4 +:10441000F001B99FF00D1124E358FC4F2181721374 +:104420002AC02081621327C02281211124C0238148 +:1044300034812417350710F421503109241B350B22 +:10444000283C3105C0F42091B2032F7020612093E5 +:10445000B20326E0289FF001299FF00D1124EE57AA +:10446000FC4F80818F70806180838DEA93E00E9491 +:10447000B41D0C94B52101968770BECF0895CF92DC +:10448000DF92EF92FF920F931F93CF93DF93CDB7FD +:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA +:1044A00085E0F801DE011D9601900D928A95E1F7F5 +:1044B000D8014C9111965C91119712966C911297BC +:1044C0001396CD90DC9014973091AD037091AE03AC +:1044D0008091B0039091B103009709F46BC17F3FC5 +:1044E00019F43F3F09F466C1E090AF03EE2009F4F0 +:1044F000C0C02091B203C816D90628F0F601E81B07 +:10450000F90BCF0104C0809590958C0D9D1DFF2463 +:10451000F394883C910578F0F12C207F09F0C6C017 +:104520007C2DD98AC88A89890E9496218DEA93E0D8 +:104530000E94B41DB1C0822F807F09F046C0751360 +:1045400014C0341312C0611110C02F702061209369 +:10455000B2030E94D6218DEA93E00E94B41D80919F +:10456000B203D80115968C932EC0CD2819F15F3F68 +:1045700011F44F3FF9F0F62E61111CC080917B03BE +:1045800020917C0336E0821709F45AC090E0389FEE +:10459000F001399FF00D1124E358FC4F718157133E +:1045A00006C07081471303C07281711103C0019668 +:1045B0008770E9CFF62E662309F418C18091B20303 +:1045C00081608093B203F12C11C1751308C03413BC +:1045D00006C0611104C08091B203D801C3C04D87E9 +:1045E0005E878D859E856A8B0E9470216A898823EB +:1045F000E1F16623D1F12091B203822F82958F7071 +:1046000090E0029774F08091AD039091AE0398878B +:104610008F831986DB86CA862C87CE0107960E9477 +:10462000B41D86E0F801ADEAB3E001900D928A95E1 +:10463000E1F70E94E4210E94D621FF24F394D6C022 +:104640004D875E878D859E850E94A026292F229505 +:104650002F7030E0223031050CF0BCC09F7009F0A3 +:10466000B6C0805E883008F4C1C0C8010E94B41D85 +:10467000E4CFC816D90608F453C0F601E81BF90BBD +:10468000CF01883C910508F450C0F12C7C2DD98ACB +:10469000C88A89890E949621EDEAF3E086E0DF016D +:1046A0001D928A95E9F70E94D621A0C0751314C007 +:1046B000341312C0611110C08091B203F8018583D8 +:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F +:1046D0008A95E9F7FE2C8AC04D875E878D859E8579 +:1046E0006A8B0E9470216A89882309F4BECF6623F1 +:1046F00009F4BBCF2091B203822F82958F7090E096 +:1047000002970CF48ECF8091AD039091AE039A8303 +:1047100089831B82DD82CC822E83CE0101967FCFDE +:10472000809590958C0D9D1DACCFF62E662309F4D7 +:104730009CCF75132EC034132CC02091B20320FDE2 +:104740001FC0822F82958F70D9F0D80115962C93B7 +:1047500015978F3049F08F5F982F9295907F822F19 +:104760008F70892B15968C93C8010E94B41D86E02A +:10477000F801ADEAB3E001900D928A95E1F793CF8D +:1047800086E0F801ADEAB3E001900D928A95E1F779 +:104790002DC04D875E878D859E850E947021811179 +:1047A00040CF8091B20381608093B203C8010E9420 +:1047B000B41D1CC0662309F458CF4D875E878D85D4 +:1047C0009E850E947021882309F44FCF2ACF811142 +:1047D00048CF0CC0243031050CF047CF9F7009F44E +:1047E00040CFF8019581907F09F03BCF8F2D6296E5 +:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:104800000F91FF90EF90DF90CF9008951F93CF937B +:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F +:10482000CDBF4F83588769877A878B879C87CE0156 +:1048300007960E943F22882369F08F8198852A85F8 +:104840003B85232BF1F19F3F09F063C08F3F09F0B7 +:1048500060C037C086E0FE013796DE0111960190F8 +:104860000D928A95E1F76F817885EA85FB8530970F +:1048700041F17F3F11F46F3F21F120917C0330E043 +:10488000C90101968770992740917B0350E08417F6 +:10489000950709F447C069837A83FD83EC8396E02A +:1048A000929FD001939FB00D1124A358BC4FFE01DD +:1048B000319601900D929A95E1F780937C030E94C6 +:1048C000B52116E080917B0390917C038917C1F19B +:1048D000189FC001112483589C4F0E943F228823B7 +:1048E00079F1E0917B031E9FF0011124E358FC4F06 +:1048F0004081518162817381848195810E94A521CB +:1049000080917B0390E001968770992780937B03C9 +:10491000D9CF4F81588569857A858B859C850E9482 +:10492000A521CFCF0E946C2110927C0310927B03B3 +:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49 +:104940002C960FB6F894DEBF0FBECDBFDF91CF918E +:104950001F910895EF92FF920F931F93CF93DF93D0 +:104960008C01009709F46CC0F12CEE24E394E8016B +:104970002196F8018491843740F4843008F051C0C6 +:10498000813081F0823019F15BC0853709F444C071 +:10499000A8F19CE7980F903708F052C08F770E94DB +:1049A000571D41C00E5F1F4FFE01C49180E28C0F66 +:1049B000883048F4C7708E2D01C0880FCA95EAF779 +:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD +:1049D0001F4FFE01C49180E28C0F883058F4C770DD +:1049E0008E2D01C0880FCA95EAF70E9411270E94F8 +:1049F00032271AC08C2F0E94571D16C00E5F1F4F02 +:104A0000FE01C491CC2381F08FE99FE00197F1F77B +:104A100000C00000C150F6CF0E5F1F4FFE01F490A2 +:104A200003C00E948F1C8E018F2D882309F49FCF15 +:104A3000EFE9FFE03197F1F700C000008150F5CFBA +:104A4000DF91CF911F910F91FF90EF9008950895FE +:104A50006093B7037093B8038093B9039093BA033C +:104A60000C9458210F931F930091B7031091B80332 +:104A70002091B9033091BA03DC01CB01802B912B3B +:104A8000A22BB32B8093B7039093B803A093B903E1 +:104A9000B093BA031F910F910C9458210F931F9359 +:104AA0000091B7031091B8032091B9033091BA0374 +:104AB000DC01CB0180239123A223B3238093B7038E +:104AC0009093B803A093B903B093BA031F910F91C9 +:104AD0000C9458210F931F930091B7031091B803C2 +:104AE0002091B9033091BA03DC01CB0180279127D3 +:104AF000A227B3278093B7039093B803A093B90379 +:104B0000B093BA031F910F910C9458211092B303E4 +:104B10001092B4031092B5031092B6030C9458216E +:104B200041E050E060E070E004C0440F551F661F94 +:104B3000771F8A95D2F74093B3035093B4036093E1 +:104B4000B5037093B6030C94582141E050E060E047 +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B60008091B3039091B403A091B503B091B603C3 +:104B7000482B592B6A2B7B2B4093B3035093B403E0 +:104B80006093B5037093B6030C94582141E050E054 +:104B900060E070E004C0440F551F661F771F8A95C0 +:104BA000D2F740955095609570958091B3039091A0 +:104BB000B403A091B503B091B603482359236A23E7 +:104BC0007B234093B3035093B4036093B503709376 +:104BD000B6030C94582141E050E060E070E004C05E +:104BE000440F551F661F771F8A95D2F78091B30334 +:104BF0009091B403A091B503B091B603482759270B +:104C00006A277B274093B3035093B4036093B503A3 +:104C10007093B6030C9458210F931F930091B30324 +:104C20001091B4032091B5033091B603DC01CB01A0 +:104C3000802B912BA22BB32B8093B3039093B403BF +:104C4000A093B503B093B6031F910F910C94582114 +:104C50000F931F930091B3031091B4032091B503F8 +:104C60003091B603DC01CB0180239123A223B3232F +:104C70008093B3039093B403A093B503B093B603AA +:104C80001F910F910C9458210F931F930091B30320 +:104C90001091B4032091B5033091B603DC01CB0130 +:104CA00080279127A227B3278093B3039093B4035F +:104CB000A093B503B093B6031F910F910C945821A4 +:104CC0000895CF92DF92EF92FF920F931F93CF93AD +:104CD000DF938C01C090B703D090B803E090B90384 +:104CE000F090BA038091B3039091B403A091B503FF +:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C +:104D0000D701C6010C2E04C0B695A7959795879537 +:104D10000A94D2F780FF06C0B8018C2F0E942F0A98 +:104D2000019721F4219760F780E001C08C2FDF917B +:104D3000CF911F910F91FF90EF90DF90CF9008954A +:104D4000CF93DF93EC010E946126BE010E942F0ADF +:104D5000DF91CF910895CB010E94A0260895209164 +:104D60001D0230911E02F90132969FEF40E05191F1 +:104D7000581789F09F3F19F4511101C0942F4F5FCC +:104D80004630A9F79F3F39F0F901E90FF11D97FD72 +:104D9000FA9582830895089520911D0230911E0294 +:104DA000F9013296285F3F4F9081981301C010821D +:104DB0003196E217F307C1F7089581E090E0E091A2 +:104DC0001D02F0911E02E80FF91F10820196883033 +:104DD0009105A9F708959091C603892B8093C60386 +:104DE000089580959091C60389238093C603089502 +:104DF0001092C60308959091C503892B8093C50333 +:104E0000089580959091C50389238093C5030895E3 +:104E10001092C50308959091C403892B8093C40315 +:104E2000089580959091C40389238093C4030895C5 +:104E30001092C40308958093BB0308951092BB039E +:104E4000089580911D0290911E02FC0131969C01F3 +:104E5000285F3F4F80E0919191118F5FE217F30738 +:104E6000D1F70895E0911D02F0911E028091C603D2 +:104E70008083E0911D02F0911E0290818091C50314 +:104E8000892B8083E0911D02F0911E029081809118 +:104E9000C403892B80838091BB03882361F0E09158 +:104EA0001D02F0911E029081892B80830E94212790 +:104EB00081111092BB0380911D0290911E020C94EF +:104EC0005B1B8091E803843039F11092C80320E421 +:104ED00088E190E00FB6F894A895809360000FBE2B +:104EE0002093600080E00E94D20580E00E940A0BBF +:104EF00083B7817F846083BF83B7816083BF7894E9 +:104F0000889583B78E7F83BF88E10FB6F89480932E +:104F10006000109260000FBE089508950895CF9329 +:104F200080E00E94D2050E948D270E94AD0C0E9455 +:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD +:104F4000C530C1F780E001C081E0CF9108950E9493 +:104F50006C2180E00E94D2050E94092D0E944F1B07 +:104F60000C940A0B1F920F920FB60F9211248F937D +:104F70009F93AF93BF938091C803811113C0809119 +:104F8000C9039091CA03A091CB03B091CC03419681 +:104F9000A11DB11D8093C9039093CA03A093CB03B5 +:104FA000B093CC03BF91AF919F918F910F900FBEA3 +:104FB0000F901F90189582E084BD93E095BD9AEF05 +:104FC00097BD80936E0008952FB7F8948091C90320 +:104FD0009091CA03A091CB03B091CC032FBF089549 +:104FE000CF92DF92EF92FF920F931F932FB7F89417 +:104FF0004091C9035091CA036091CB037091CC03D7 +:105000002FBF6A017B01EE24FF248C0120E030E0F9 +:10501000C016D106E206F30610F4415051099A0178 +:10502000281B390BC9011F910F91FF90EF90DF9062 +:10503000CF9008951F920F920FB60F9211248F9365 +:105040009F93AF93BF938091C9039091CA03A0919E +:10505000CB03B091CC030196A11DB11D8093C90370 +:105060009093CA03A093CB03B093CC03BF91AF91AD +:105070009F918F910F900FBE0F901F9018950E94D7 +:105080004C18F8942FEF87EA91E621508040904029 +:10509000E1F700C0000087E090EBDC018093F303B0 +:1050A0009093F403A093F503B093F6039CE088E19A +:1050B0000FB6F894A895809360000FBE909360009F +:1050C000FFCF0E949B28811102C00E9477280E9476 +:1050D000A6288093C7030E94B3288093F1030E94FF +:1050E000AA28682F70E080E090E00C9428256DEEEF +:1050F0007EEF80E090E00E94BC3160E082E090E0D2 +:105100000E94AA3160E083E090E00E94AA3160E052 +:1051100084E090E00E94AA3160E085E090E00E9487 +:10512000AA3160E086E090E00E94AA316FEF87E04C +:1051300090E00C94AA3180E090E00E94A43121E03C +:105140008D3E9E4F09F020E0822F089582E090E08E +:105150000C949C3183E090E00C949C31682F83E0A8 +:1051600090E00C94AA3184E090E00C949C31682F7C +:1051700084E090E00C94AA3186E090E00C949C319D +:10518000682F86E090E00C94AA3187E090E00C94C0 +:105190009C31682F87E090E00C94AA318091CF0376 +:1051A00080FF0BC06091220285E0689FB00111244E +:1051B00075956795759567952BC081FF09C06091BE +:1051C000220285E0689FB00111247595679520C083 +:1051D00082FF07C06091220285E0689FB001112420 +:1051E00017C09091D0039923D1F0609121029617B6 +:1051F00088F72091220285E0289F90011124929F38 +:10520000A001939F500D112470E0CA010E948231C9 +:105210006038710540F46115710539F002C065E030 +:1052200070E0862F08958FE7089581E008958091BA +:10523000CF0380FF08C06091200270E075956795EC +:105240007595679521C081FF06C06091200270E0CE +:105250007595679519C082FF04C06091200270E0C7 +:1052600010C09091D0039923C1F060911F0296174E +:10527000A0F780912002899FC001112470E00E9454 +:1052800082316038710528F46115710521F0862F8F +:1052900008958FE7089581E0089561E070E0F4CF0C +:1052A000803F21F40E94CE28819504C0813F29F4DB +:1052B0000E94CE288093D3030895823F21F40E9458 +:1052C000CE28819504C0833F29F40E94CE28809384 +:1052D000D2030895893F19F40E94172905C08A3F17 +:1052E00031F40E94172981958093D40308958B3F50 +:1052F00021F40E941729819504C08C3F29F40E9453 +:1053000017298093D5030895843F21F48091D10318 +:10531000816017C0853F21F48091D103826011C064 +:10532000863F21F48091D10384600BC0873F21F434 +:105330008091D103886005C0883F31F48091D1030A +:1053400080618093D10308958D3F21F48091CF0334 +:1053500081600BC08E3F21F48091CF03826005C035 +:105360008F3F29F48091CF0384608093CF03089509 +:10537000803F39F48091D30387FF6CC01092D30330 +:1053800069C0813F29F48091D3031816BCF362C031 +:105390009091D203823F29F497FF5CC01092D20310 +:1053A00059C0833F19F41916CCF354C0893F41F416 +:1053B0008091D40318160CF04DC01092D4034AC04B +:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6 +:1053D00039F48091D50387FF3DC01092D5033AC0C0 +:1053E0008C3F29F48091D5031816BCF333C0843F59 +:1053F00021F48091D1038E7F17C0853F21F48091E5 +:10540000D1038D7F11C0863F21F48091D1038B7F22 +:105410000BC0873F21F48091D103877F05C0883F6F +:1054200031F48091D1038F7E8093D10313C08D3FDF +:1054300021F48091CF038E7F0BC08E3F21F48091A9 +:10544000CF038D7F05C08F3F29F48091CF038B7FE1 +:105450008093CF038091D20381110EC08091D3033A +:1054600081110AC08091D403811106C08091D503B7 +:10547000811102C01092D003089581ED93E00E9443 +:10548000661B0E94E4279093CE038093CD0308957A +:105490001F93CF93DF938091CD039091CE030E9411 +:1054A000F027AC019091D003992321F020912302A1 +:1054B00030E006C0209124028AE0289F9001112448 +:1054C0004217530708F486C08091D203C091D303DA +:1054D000D091D4031091D503811107C0C11176C0BA +:1054E000D11174C0111172C075C09F3F19F09F5F38 +:1054F0009093D003181624F40E94CE288093D203F0 +:105500008091D20387FF05C00E94CE2881958093A9 +:10551000D2031C1624F40E94CE288093D3038091DA +:10552000D30387FF05C00E94CE2881958093D303C3 +:105530006091D203662339F1C091D303CC2319F1D2 +:10554000772767FD7095872F972F0E94A42E23E35E +:1055500033E343E35FE30E94B42F0E94712E609314 +:10556000D2036C2F772767FD7095872F972F0E94A6 +:10557000A42E23E333E343E35FE30E94B42F0E94AE +:10558000712E6093D3031D1624F40E941729809373 +:10559000D4038091D40387FF05C00E941729819509 +:1055A0008093D403111624F40E9417298093D50305 +:1055B0008091D50387FF05C00E94172981958093AC +:1055C000D503DF91CF911F910C943D2A9F3F09F0A5 +:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B +:1055E00085E0DF011D928A95E9F71092D0031092B1 +:1055F000CF030895833081F128F4813059F082304F +:10560000D1F00895853009F449C0B8F1863009F425 +:1056100056C0089580912402262F30E0280F311DB6 +:105620002F3F310524F4680F6093240208958FEF13 +:1056300080932402089580912302262F30E0280FC2 +:10564000311D2F3F310524F4680F60932302089524 +:105650008FEF80932302089580912202262F30E05D +:10566000280F311D2F3F310524F4680F609322026B +:1056700008958FEF80932202089580912102262FB2 +:1056800030E0280F311D2F3F310524F4680F60935F +:10569000210208958FEF80932102089580912002C6 +:1056A000262F30E0280F311D2F3F310524F4680FDD +:1056B0006093200208958FEF8093200208958091D7 +:1056C0001F02262F30E0280F311D2F3F310524F413 +:1056D000680F60931F0208958FEF80931F02089553 +:1056E000833011F128F4813049F0823091F008952F +:1056F000853081F120F18630C1F108958091240236 +:10570000681720F4861B80932402089510922402C7 +:10571000089580912302681720F4861B809323024A +:10572000089510922302089580912202681720F4B0 +:10573000861B809322020895109222020895809180 +:105740002102681720F4861B80932102089510928D +:105750002102089580912002681720F4861B80930F +:105760002002089510922002089580911F02681768 +:1057700020F4861B80931F02089510921F02089543 +:105780000F931F938732D8F58E3108F087C08E3083 +:1057900009F471C098F4873009F45BC08B3009F4C8 +:1057A00091C0863009F095C08091C703817F8E7FBC +:1057B0008093C70381E08093D7038CC0863109F4BE +:1057C00081C068F4803109F084C08091C70383FBF5 +:1057D000222720F991E0922790FB83F955C0893167 +:1057E00009F470C08B3109F074C08091C70381FB4C +:1057F000222720F991E0922790FB81F945C0883358 +:1058000009F460C050F4893209F45EC0853309F4AC +:105810005BC0873209F458C05CC0833409F454C0BB +:1058200028F48A3308F455C0895339C0883409F004 +:1058300050C00E946C210E94B2070FEF13ED20E3CD +:10584000015010402040E1F700C000000E943F28B6 +:1058500039C09091C703892F8095817080FB90F9A2 +:1058600029F0966098609093C70334C0997F977F22 +:105870009093C70327C08091C70382FB222720F99A +:1058800091E0922790FB82F98093C7039923D1F08E +:105890008091C70381608093C70314C08D5141E09C +:1058A00050E060E070E08A019B0104C0000F111F0E +:1058B000221F331F8A95D2F7C901B8010E942825FB +:1058C0000E946C2181E006C061E070E080E090E021 +:1058D000F5CF80E01F910F91089580E0089580E05A +:1058E0000895CF93C82F8091D703813069F018F0C5 +:1058F0008230C9F184C0E0911D02F0911E028081C6 +:10590000823209F07EC007C0E0911D02F0911E02B4 +:105910008081823261F48C2F0E946D2C811104C031 +:105920008C2F0E94C02B1DC081E090E01AC08C2FEC +:105930000E946F2C811114C0C43179F048F4CB302F +:1059400079F0C03109F061C082E08093D70308C0CC +:10595000C93219F0C83321F058C01092D70355C08E +:1059600081E0817054C0C93291F120F5C43179F1E0 +:10597000B0F4C73009F047C08EE18093240282E37F +:10598000809323028AE08093220284E180932102A3 +:1059900088E08093200288E280931F0234C0CE51B9 +:1059A000C63088F5EC2FF0E0E451FD4F8081809304 +:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7 +:1059C00013C0C13579F0C235F1F461E00DC08091AA +:1059D000D603882319F01092D60315C081E0809376 +:1059E000D70315C061E006C08091D6030E94FA2A51 +:1059F0000AC06AE08091D6030E94702B04C0109206 +:105A0000D70380E004C081E002C080E0AACFCF913C +:105A100008950E949B28811102C00E9477280E944D +:105A2000BC288093F20380FF02C0869501C080E00D +:105A30000C94D2058091F203982F9695292F30E08F +:105A4000233031054CF49F5F990F8170892B816061 +:105A50008093F2030E94C0288091F20386950C94F3 +:105A6000D2058091F203982F969591F09158990F55 +:105A70008170892B8093F2038E7F91E009F490E08E +:105A80008091F20390FB80F98093F2030E94C0287A +:105A90008091F20386950C94D2058091F203982FA1 +:105AA000909590FB80F98093F2030E94C02880912A +:105AB000F20380FF02C0869501C080E00C94D205FD +:105AC0009091F203892F86958F5F8F779170843044 +:105AD00028F4880F892B8093F20302C09093F2037D +:105AE0008091F2038E7F91E009F490E08091F203BF +:105AF00090FB80F98093F2030E94C0288091F2030A +:105B000086950C94D2052091F203922F96958927C1 +:105B1000982F990F822F8170892B8093F2038E7FAB +:105B200091E009F490E08091F20390FB80F980937A +:105B3000F2030E94C0288091F20386950C94D2054E +:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F +:105B500020F031F49F3F11F41EF4B7C10EF4E0952C +:105B6000E7FB9FC1E92FD3D180F3BA176207730710 +:105B70008407950718F071F49EF5EBC10EF4E095DB +:105B80000B2EBA2FA02D0B01B90190010C01CA01F7 +:105B9000A0011124FF27591B99F0593F50F4503EA2 +:105BA00068F11A16F040A22F232F342F4427585F94 +:105BB000F3CF469537952795A795F0405395C9F7AC +:105BC0007EF41F16BA0B620B730B840BBAF0915064 +:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003 +:105BE000BA0F621F731F841F48F4879577956795D6 +:105BF000B795F7959E3F08F0B3CF9395880F08F0BF +:105C00009927EE0F97958795089527D108F481E09D +:105C100008950CD06BC163D140F05AD130F021F41B +:105C20005F3F19F03EC1511195C14FC170D198F33A +:105C30009923C9F35523B1F3951B550BBB27AA270D +:105C400062177307840738F09F5F5F4F220F331F7F +:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B +:105C600091505040E695001CCAF729D0FE2F27D04E +:105C7000660F771F881FBB1F261737074807AB071C +:105C8000B0E809F0BB0B802DBF01FF2793585F4F91 +:105C90002AF09E3F510568F004C15CC15F3FECF300 +:105CA000983EDCF3869577956795B795F7959F5F56 +:105CB000C9F7880F911D9695879597F90895E1E0AA +:105CC000660F771F881FBB1F621773078407BA0709 +:105CD00020F0621B730B840BBA0BEE1F88F7E09564 +:105CE000089504D06894B11135C1089518D188F091 +:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8 +:105D0000771F881F991F1AF0BA95C9F712C0B130D2 +:105D100081F01FD1B1E008951CC1672F782F88272B +:105D2000B85F39F0B93FCCF3869577956795B39511 +:105D3000D9F73EF490958095709561957F4F8F4F80 +:105D40009F4F0895E89409C097FB3EF49095809585 +:105D5000709561957F4F8F4F9F4F9923A9F0F92F31 +:105D600096E9BB279395F695879577956795B795AF +:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95 +:105D80007F4F8F4F9F4F16C0882311F096E911C0A7 +:105D9000772321F09EE8872F762F05C0662371F0C8 +:105DA00096E8862F70E060E02AF09A95660F771FDC +:105DB000881FDAF7880F9695879597F9089588D008 +:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7 +:105DD000B0F35523C9F3E7FB6217730784079507F0 +:105DE000A8F199F3E92FFF2788232AF03197660F4E +:105DF000771F881FDAF7952F5527442332F09150EB +:105E00005040220F331F441FD2F7BB27E91BF50B6D +:105E1000621B730B840BB109C1F222F4620F731F72 +:105E2000841FB11D31972AF0660F771F881FBB1F93 +:105E3000EFCF915050405AF041F0882332F0660F76 +:105E4000771F881F91505040C1F7939530C08695B9 +:105E5000779567959F5FD9F7F8CF990F0008550F91 +:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0 +:105E700012161306E407F50798F0621B730B840BE8 +:105E8000950B39F40A2661F0232B242B252B21F4C2 +:105E900008950A2609F4A140A6958FEF811D811D62 +:105EA000089597F99F6780E870E060E008959F3F4C +:105EB00031F0915020F4879577956795B795880FC5 +:105EC000911D9695879597F908959FEF80EC089519 +:105ED00000240A94161617061806090608950024C9 +:105EE0000A9412161306140605060895092E039443 +:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7 +:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15 +:105F10009058440F551F59F05F3F71F04795880F17 +:105F200097FB991F61F09F3F79F0879508951216AE +:105F300013061406551FF2CF4695F1DF08C016165A +:105F400017061806991FF1CF86957105610508940B +:105F50000895E894BB2766277727CB0197F9089522 +:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD +:105F7000B6DF18F0952309F094CFA7CF1124EACF0C +:105F8000C6DFA0F3959FD1F3950F50E0551F629F98 +:105F9000F001729FBB27F00DB11D639FAA27F00D82 +:105FA000B11DAA1F649F6627B00DA11D661F829FA9 +:105FB0002227B00DA11D621F739FB00DA11D621F8E +:105FC000839FA00D611D221F749F3327A00D611DAB +:105FD000231F849F600D211D822F762F6A2F11248D +:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0 +:105FF000BB1F661F771F881F91505040A9F79E3F17 +:10600000510570F04ECFA6CF5F3FECF3983EDCF326 +:10601000869577956795B795F795E7959F5FC1F753 +:10602000FE2B880F911D9695879597F90895FA0193 +:10603000EE0FFF1F30962105310599F161157105AD +:1060400061F48038BFE39B0749F16894903881057B +:1060500061F08038BFEF9B0741F0992342F5FF3F85 +:10606000E1053105210511F1E8940894E795D9017E +:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27 +:1060800070F4A695E0F7F73950F019F0FF3A38F4BC +:106090009F779F930CD00F9007FC905808953EF087 +:1060A00014CF60E070E080E89FE308954FE79F77AA +:1060B0005F934F933F932F939ED02F913F914F919A +:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A +:1060D00026DFC8F39638C0F707F80F92E8942BE351 +:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF +:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD +:10610000EF91FF91E595EE1FFF1F49F0FE57E06804 +:106110004427EE0F441FFA95E1F74195550B32D015 +:106120000F9007FE26C00895DF93CF931F930F9320 +:10613000FF92EF92DF927B018C01689405C0DA2E0A +:10614000EF011EDFFE01E894A5912591359145915F +:106150005591AEF3EF0106DDFE019701A801DA9437 +:1061600079F7DF90EF90FF900F911F91CF91DF9122 +:1061700008959B01AC0160E070E080E89FE349CDA9 +:1061800090CE95CECCDEE8F39923D9F3940F511D30 +:10619000BBF39150504094F059F0882332F0660FD1 +:1061A000771F881F91505040C1F79E3F510544F71B +:1061B000880F911D9695879597F908955F3FACF0EC +:1061C000983E9CF0BB27869577956795B79508F420 +:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A +:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8 +:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0 +:10620000DF93CF931F930F93FF92C92FDD2788232E +:106210002AF02197660F771F881FDAF720E030E019 +:1062200040E85FEB9FE3883920F0803E30F0219614 +:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E +:1062400073DF8B01BE01EC01FB2E6F577109759551 +:10625000771F880B990B78DD28E132E741E35FE394 +:106260008FDEAF2D9801AE01FF900F911F91CF915E +:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A +:10628000AC01BF5728F422273327442750781FC07A +:10629000B75188F4AB2F0024469537952795011CFC +:1062A000A395D2F3002069F0220F331F441FB3954A +:1062B000DAF30DD045CC61307105A0E88A07B94604 +:1062C00030F49B01AC0166277727882790783096B9 +:1062D00021F020833183428353830895AA1BBB1B83 +:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6 +:1062F000B70B881F991F5A95A9F780959095BC01F7 +:10630000CD01089597FB072E16F4009407D077FD72 +:1063100009D00E946E3107FC05D03EF4909581951E +:106320009F4F0895709561957F4F0895EE0FFF1F61 +:106330000590F491E02D0994F999FECF92BD81BDAD +:10634000F89A992780B50895A8E1B0E042E050E0BE +:106350000C94C431262FF999FECF92BD81BDF89AD5 +:10636000019700B4021639F01FBA20BD0FB6F89499 +:10637000FA9AF99A0FBE08950196272F0E94AB3121 +:106380000C94AA31DC01CB01FC01F999FECF06C0C7 +:10639000F2BDE1BDF89A319600B40D9241505040E3 +:0863A000B8F70895F894FFCF4F +:1063A8000C52D02445000000410000DC44000000ED +:1063B8004152D0A4440000404100005C4400000069 +:1063C8004148F17644000000415C978A440000008F +:1063D800411FD592440000004152D0A4440000005F +:1063E800415CFFB844000000410AA7CF4400000008 +:1063F800410000DC44000000410AA7CF440000002F +:10640800410000DC44000000410000000000008062 +:106418004052D024450000404100000000000080A8 +:10642800400AA74F45000040410AA7CF440000009A +:10643800410000DC44000000410000000000008032 +:106448004052D024450000004100000000000080B8 +:10645800405CFF384500000041000000000000805B +:106468004052D02445000000410AA7CF4400000054 +:10647800410000DC440000004100000000000080F2 +:106488004052D024450000804110F176440000A01D +:106498004112F1F6440000004141909B440000A0E5 +:1064A8004112F1F64400000041050000003F0000E1 +:1064B800C8427B140915E614B2147E1401BC0328E3 +:1064C80008140A321E000002000400050007000933 +:1064D800000B000C000E001000110013001500172F +:1064E8000018001A001C001D001F002100230024B2 +:1064F800002600280029002B002D002F0030003234 +:106508000034003500370039003B004200450025C3 +:106518000026004300610060002000370064006529 +:1065280000660067004400460024004700314980A7 +:106538003F5D8B803FF8BF803FCAE1803F73ED80AD +:106548003FCAE1803FF8BF803F5D8B803F31498083 +:106558003F0000803FF16D7F3F75EA7E3F4C827EB1 +:106568003F833F7E3F84287E3F833F7E3F4C827E31 +:106578003F75EA7E3FF16D7F3F0000803F3F4D361B +:10658800B90A6C0A360AE209FB09140A0102030473 +:06659800050607080900DA :00000001FF diff --git a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex index a29f23c00..c42365c43 100644 --- a/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex +++ b/keyboard/preonic/preonic_pcb_r1_w_bootloader.hex @@ -250,79 +250,79 @@ :107FE4000C94ED3E0C94113F0C94193F0C94213FDA :0C7FF4000C94F23E0C94033F0C94293FC7 :040000030000700089 -:100000000C94A0050C94E4050C94E4050C94E40510 -:100010000C94E4050C94E4050C94E4050C94E405BC -:100020000C94E4050C94E4050C94B6180C9488190F -:100030000C94A1270C94E4050C94E4050C94E405BD -:100040000C94E4050C94E4050C94E4050C94E4058C -:100050000C94E4050C9409280C94E4050C94E40534 -:100060000C94E4050C94E4050C94E4050C94E4056C -:100070000C94E4050C94E4050C94E4050C94E4055C -:100080000C94090F0C94E4050C94E4050C94E4051D -:100090000C94E4050C94E4050C94E4050C94E4053C -:1000A0000C94E4050C94E4050C94E4053F064F061B -:1000B000610671067706860692069706A406AC06C8 -:1000C000BC06C106C813C813C813C813C813C81385 -:1000D000C813C813C813C813DF13DF13DF13DF13EC -:1000E000DF13DF13DF13DF13DF13DF13C813C813AE -:1000F000C813C813C813DF13DF13DF13DF13DF13B5 -:10010000C813C813C813DF13DF13DF13F519171A49 -:10011000051B171A051B5C1A7F1A051BD41AE71A50 -:10012000EA1DEA1D271E271E811EBF1E372137210B -:10013000D81E3721D91FD91F9C20B3203721222157 -:1001400007634236B79BD8A71A39685618AEBAABC0 -:10015000558C1D3CB7CC5763BD6DEDFD753EF61754 -:100160007231BF000000803F08000000BE922449A9 -:10017000123EABAAAA2ABECDCCCC4C3E00000080D9 -:10018000BEABAAAAAA3E00000000BF000000803F4C -:100190000000000000084178D3BB4387D1133D190C -:1001A0000E3CC3BD4282AD2B3E68EC8276BED98F39 -:1001B000E1A93E4C80EFFFBE01C4FF7F3F0000007D -:1001C000000035001E001F00200021002200230037 -:1001D00024002500260027002A002B0014001A0006 -:1001E0000800150017001C0018000C001200130076 -:1001F0004C00290004001600070009000A000B004B -:100200000D000E000F0033003400E1001D001B0044 -:1002100006001900050011001000360037003800F4 -:1002200028000530E000E200E30003302C002C0041 -:1002300004305000510052004F0035001E001F00D6 -:100240002000210022002300240025002600270092 -:100250002A002B0014001A00090013000A000D00E8 -:100260000F0018001C0033004C002900040015008A -:100270001600170007000B00110008000C00120008 -:100280003400E1001D001B000600190005000E00EF -:10029000100036003700380028000530E000E2008A -:1002A000E30003302C002C000430500051005200B9 -:1002B0004F0035001E001F002000210022002300F7 -:1002C00024002500260027002A002B0034003600D9 -:1002D000370013001C0009000A00060015000F007B -:1002E0004C00290004001200080018000C00070050 -:1002F0000B001700110016003800E1003300140055 -:100300000D000E001B00050010001A0019001D0052 -:1003100028000530E000E200E30003302C002C0050 -:1003200004305000510052004F0035021E021F02DF -:100330002002210222022302240225022602270291 -:100340002A0035021E021F0220022102220223027D -:1003500024022502260227024C004C003A003B00F2 -:100360003C003D003E003F002D022E022F023002D5 -:1003700031020100400041004200430044004500BA -:100380000100010001000100010001000100010065 -:1003900001000100010001000100AB00AA00A9005A -:1003A000AE0035001E001F002000210022002300A7 -:1003B00024002500260027002A0035001E001F000B -:1003C0002000210022002300240025002600270011 -:1003D0004C004C003A003B003C003D003E003F001A -:1003E0002D002E002F0030003100010040004100A0 -:1003F00042004300440045000100010001000100EB -:1004000001000100010001000100010001000100E4 -:100410000100AB00AA00A900AE000000000000002F +:100000000C947C050C94C0050C94C0050C94C005A0 +:100010000C94C0050C94C0050C94C0050C94C0054C +:100020000C94C0050C94C0050C94C7180C94991935 +:100030000C94B2270C94C0050C94C0050C94C00518 +:100040000C94C0050C94C0050C94C0050C94C0051C +:100050000C94C0050C941A280C94C0050C94C0058F +:100060000C94C0050C94C0050C94C0050C94C005FC +:100070000C94C0050C94C0050C94C0050C94C005EC +:100080000C94E50E0C94C0050C94C0050C94C005AE +:100090000C94C0050C94C0050C94C0050C94C005CC +:1000A0000C94C0050C94C0050C94C0051B062B06CF +:1000B0003D064D06530662066E06730680068806E8 +:1000C00098069D06061A281A161B281A161B6D1A62 +:1000D000901A161BE51AF81AFB1DFB1D381E381E58 +:1000E000921ED01E48214821E91E4821EA1FEA1F1E +:1000F000AD20C4204821332107634236B79BD8A7DF +:100100001A39685618AEBAAB558C1D3CB7CC57633C +:10011000BD6DEDFD753EF6177231BF000000803FEA +:1001200008000000BE922449123EABAAAA2ABECD06 +:10013000CCCC4C3E00000080BEABAAAAAA3E000078 +:100140000000BF000000803F000000000008417870 +:10015000D3BB4387D1133D190E3CC3BD4282AD2BA7 +:100160003E68EC8276BED98FE1A93E4C80EFFFBE9F +:1001700001C4FF7F3F000000000035001E001F008B +:100180002000210022002300240025002600270053 +:100190002A002B0014001A000800150017001C008C +:1001A00018000C00120013004C0029000400160077 +:1001B000070009000A000B000D000E000F003300BD +:1001C0003400E1001D001B000600190005001100AD +:1001D000100036003700380028000530E000E2004B +:1001E000E30003302C002C0004305000510052007A +:1001F0004F0035001E001F002000210022002300B8 +:1002000024002500260027002A002B0014001A00D5 +:10021000090013000A000D000F0018001C00330035 +:100220004C002900040015001600170007000B0001 +:10023000110008000C0012003400E1001D001B003A +:100240000600190005000E001000360037003800C7 +:1002500028000530E000E200E30003302C002C0011 +:1002600004305000510052004F0035001E001F00A6 +:100270002000210022002300240025002600270062 +:100280002A002B0034003600370013001C00090040 +:100290000A00060015000F004C002900040012009F +:1002A000080018000C0007000B00170011001600D2 +:1002B0003800E100330014000D000E001B000500A3 +:1002C00010001A0019001D0028000530E000E200AF +:1002D000E30003302C002C00043050005100520089 +:1002E0004F0035021E021F022002210222022302B9 +:1002F00024022502260227022A0035021E021F02BE +:1003000020022102220223022402250226022702C1 +:100310004C004C003A003B003C003D003E003F00DA +:100320002D022E022F023002310201004000410056 +:1003300042004300440045000100010001000100AB +:1003400001000100010001000100010001000100A5 +:100350000100AB00AA00A900AE0035001E001F007E +:100360002000210022002300240025002600270071 +:100370002A0035001E001F0020002100220023005B +:1003800024002500260027004C004C003A003B00CA +:100390003C003D003E003F002D002E002F003000AD +:1003A000310001004000410042004300440045008C +:1003B0000100010001000100010001000100010035 +:1003C00001000100010001000100AB00AA00A9002A +:1003D000AE0000000000000000000000000000006F +:1003E000000000000000000000000000000000000D +:1003F00000000000000000000000000000000000FD +:1004000000000000000000000000000000000000EC +:1004100000000000000000000000000000000000DC :1004200000000000000000000000000000000000CC -:1004300000000000000000000000000000000000BC -:1004400000000000000000000000000000000000AC +:100430000000000000000000000003300000000089 +:100440000430000000000000000000000000000078 :10045000000000000000000000000000000000009C :10046000000000000000000000000000000000008C :10047000000000000000000000000000000000007C -:100480000000033000000000043000000000000005 +:10048000000000000000000000000000000000006C :10049000000000000000000000000000000000005C :1004A000000000000000000000000000000000004C :1004B000000000000000000000000000000000003C @@ -393,1471 +393,1488 @@ :1008C0000000000000000000000000000000000028 :1008D0000000000000000000000000000000000018 :1008E0000000000000000000000000000000000008 -:1008F00000000000000000000000000000000000F8 -:1009000000000000000000000000000000000000E7 -:1009100000000000000000000000000000000000D7 -:1009200000000000000000000000000000000000C7 -:1009300000000000000000000000000000000000B7 -:1009400000003A003B003C003D003E003F004000FC -:1009500041004200430044004500010000500100F6 +:1008F000000000000000000000003A003B003C0047 +:100900003D003E003F0040004100420043004400E3 +:10091000450001000050010001000100010001003C +:1009200001000100010001004C0001000100010074 +:1009300007300630135012500030013002300100F1 +:10094000010001000B300A300930083001000100BD +:10095000010001000100010001000100010001008F :10096000010001000100010001000100010001007F -:100970004C000100010001000730063013501250F6 -:100980000030013002300100010001000B300A305C -:1009900009300830010001000100010001000100E0 -:1009A000010001000100010001000100010001003F -:1009B000010001000100010001002A035400680049 -:1009C000650020005000720065006F006E00690035 -:1009D000630020004B006500790062006F00610039 -:1009E0007200640000002C034F0072007400680065 -:1009F0006F006C0069006E006500610072002000ED -:100A00004B006500790062006F00610072006400B5 -:100A1000730000000403090409025400030100A04C -:100A2000FA0904000001030101000921110100017C -:100A3000223F000705810308000A090401000103A1 -:100A4000010200092111010001224D000705820366 -:100A500008000A0904020001030000000921110135 -:100A600000012236000705830308000A1201100165 -:100A700000000008EDFE61600100010200010501B7 -:100A80000980A101850216010026B7001A01002A7B -:100A9000B700751095018100C0050C0901A1018501 -:100AA00003160100269C021A01002A9C027510956B -:100AB000018100C005010902A1010901A100050988 -:100AC000190129051500250195057501810295017A -:100AD000750381010501093009311581257F9502D2 -:100AE0007508810609381581257F950175088106ED -:100AF000050C0A38021581257F950175088106C00D -:100B0000C005010906A101050719E029E71500251F -:100B10000195087501810295017508810105081983 -:100B2000012905950575019102950175039101054E -:100B300007190029FF150025FF950675088100C0DB -:100B400011241FBECFEFDAE0DEBFCDBF04B603FE37 -:100B500024C08091A3039091A403A091A503B09118 -:100B6000A6038730904BA740B04BB9F41092A30373 -:100B70001092A4031092A5031092A60314BE84B78A -:100B8000877F84BF88E10FB6F8948093600010924D -:100B900060000FBEE0E0F8E3099512E0A0E0B1E0EC -:100BA000EAEEF2E602C005900D92A83AB107D9F735 -:100BB00013E0A8EAB2E001C01D92A33AB107E1F741 -:100BC0000E94FC150C9473310C940000279A2F9806 -:100BD0008FEF9FEF90938700809386008AE0809349 -:100BE000800089E1809381000C94F82C282F8111DA -:100BF0000BC080918000877F8093800010928D00D1 -:100C000010928C002F9808952F9880918000886012 -:100C100080938000233019F48FEF9FEF0FC083E0A3 -:100C200090E0821B9109880F991F2FEF3FEFA901D8 -:100C300002C0569547958A95E2F7CA0190938D00B8 -:100C400080938C000895CF93DF93EC010E949D2840 -:100C5000BE0180E090E0DF91CF910C9417250F93B7 -:100C60001F93462F50E04C30510508F098C0DC012E -:100C7000FA01EA5AFF4F12968C910C94373188236F -:100C800009F48DC000E010E0980140E064E070E0FD -:100C90008BEC91E00E94871281E090E00FC08823E6 -:100CA00009F47DC000E010E0980140E066E070E0EB -:100CB0008BE591E00E94871282E090E00E9423067B -:100CC0006EC0882309F46BC000E010E0980140E09A -:100CD00068E070E08BE891E00E94871284E090E089 -:100CE000EDCF882311F083E005C083E00CC088239A -:100CF00049F084E00E94942540E164E083E00E9492 -:100D0000ED0A4DC084E00E94B525F6CF882331F06E -:100D100085EE0E947E1C0E944F2D41C085EE0E94F0 -:100D2000461D3DC08823D9F10E941B0E38C0882380 -:100D3000B1F10E94140E00E010E0980140E064E080 -:100D400070E08BEE91E029C0882349F185E00E9494 -:100D5000B5250E943C0E23C0882309F100E010E075 -:100D6000980140E068E070E08BE191E00E9487121A -:100D700085E00E94942513C0882389F00E941A13ED -:100D800004C0882361F00E94251300E010E0980160 -:100D900040E068E070E08BE191E00E94871280E023 -:100DA00090E01F910F9108950F931F932FEF89EFFC -:100DB00090E0215080409040E1F700C0000000E04A -:100DC00010E0980140E064E070E08BEE91E00E945A -:100DD00087121F910F910895CF92DF92EF92FF92A9 -:100DE0000F931F93CF93DF93CDB7DEB7CC58D109C4 -:100DF0000FB6F894DEBF0FBECDBF2091630325FF71 -:100E0000C5C08C01FC01928180910201992309F4F3 -:100E100060C096E4E7E2F2E0DE01A95BBF4F01901B -:100E20000D929A95E1F7F8019081E0910001F0911F -:100E30000101E90FF11DEE0FFF1F27E430E02C0F39 -:100E40003D1FE20FF31F60817181680F711D8827BC -:100E500077FD8095982F0E94932E20E030E040E4AB -:100E600051E40E94F82D6B017C01F801218185E09D -:100E700090E0821B9109BC01882777FD8095982F0F -:100E80000E94932E9B01AC01C701B6010E94902DD8 -:100E90009B01AC0160E070E080E090E40E94AA2F2A -:100EA00020E030E04CE551E40E94472F4FE050E055 -:100EB000C457DF4F0FB6F894DEBF0FBECDBFDF9132 -:100EC000CF911F910F91FF90EF90DF90CF900C94F6 -:100ED000271296E4E7E2F2E0DE01119601900D920E -:100EE0009A95E1F7F8019081E0910001F0910101FC -:100EF000E90FF11DEE0FFF1F21E030E02C0F3D1F29 -:100F0000E20FF31F60817181680F711D882777FDE3 -:100F10008095982F0E94932E20E030E040E451E429 -:100F20000E94F82D6B017C01F801218185E090E0A1 -:100F3000821B9109BC01882777FD8095982F0E941C -:100F4000932E9B01AC01C701B6010E94902D9B011D -:100F5000AC0160E070E080E090E40E94AA2F20E005 -:100F600030E04CE551E40E94472FC457DF4F0FB6E5 -:100F7000F894DEBF0FBECDBFDF91CF911F910F91CF -:100F8000FF90EF90DF90CF900C946F0EC457DF4F1F -:100F90000FB6F894DEBF0FBECDBFDF91CF911F918A -:100FA0000F91FF90EF90DF90CF9008950F931F93D4 -:100FB00000E010E0980140E063E070E083E091E041 -:100FC0000E9487122FEF82E597E0215080409040E9 -:100FD000E1F700C000001F910F91089508950E944D -:100FE000E6056E9A769A0C94D4060C94EE070C944F -:100FF000EC060895880F991FFC01EE5BFF4F859169 -:1010000094910895880F991FFC01EE53FE4F85912E -:10101000949108950F931F93CF93DF93EC01811563 -:1010200020E49207A0F5C11580E3D80708F0E1C0DD -:10103000C83ED105D8F4C03ED10508F0EEC1C83A8B -:10104000D10578F4C53AD10508F074C0C130D10596 -:1010500009F46DC008F4DEC1C430D10508F0DDC16B -:10106000D9C1CB3BD10508F470C0D4C1C11590E201 -:10107000D90708F0B9C0C11521E0D20708F0CDC1E9 -:10108000C03FD10508F4C6C18E01106506C2C1304B -:1010900080E5D80709F4BDC068F5C13120E4D20766 -:1010A00009F4AEC050F4C03190E4D90708F0A5C0EF -:1010B000CF70DD278E01146DF0C1C33120E4D2075B -:1010C00009F4A4C008F49FC0C115D04509F0A2C11D -:1010D0000E945B210E943C0E0E94D6079FEF24E3F2 -:1010E0008CE0915020408040E1F700C000000E9459 -:1010F0002E28D3C1C11520E6D20730F4C11581E5F1 -:10110000D80708F48CC02DC1C11590E7D90708F4A1 -:1011100081C1C11520E8D20708F478C1C11580E962 -:10112000D80708F077C1DF708E01106AB6C101E000 -:1011300010E0B3C1C53AD10509F471C1C63AD10571 -:1011400009F070C102E810E4A8C1C83AD10509F459 -:101150006CC1C93AD10509F46BC1CA3AD10509F489 -:101160006AC1CB3AD10509F469C1CC3AD10509F479 -:1011700068C1CD3AD10509F467C1C03BD10509F476 -:1011800066C1CE3AD10509F465C1CF3AD10509F45B -:1011900064C1C13BD10509F463C1C23BD10509F467 -:1011A00062C1C33BD10509F461C1C43BD10509F457 -:1011B00060C1C53BD10509F45FC1C63BD10509F447 -:1011C0005EC1C73BD10509F45DC1C83BD10509F437 -:1011D0005CC1C93BD10509F45BC1CA3BD10509F427 -:1011E0005AC100E014E459C1CE019F700E94020868 -:1011F00055C1DD278E01106C50C100E011ED4DC1CD -:1012000000E010ED4AC100E012ED47C100E013ED2F -:1012100044C1809177038160809377033EC10E942F -:101220008A28811102C00E9466280E94A22890E0AC -:101230009093A2038093A103C23090E5D90721F4D3 -:101240008091A103816086C0C43020E5D20721F4DB -:101250008091A10382607EC0C63080E5D80721F46A -:101260008091A103846076C0C83090E5D90719F455 -:101270008091A10327C0CA3020E5D20721F48091D4 -:10128000A103806167C0CC3080E5D80721F480914C -:10129000A10380625FC0CE3090E5D90721F4809130 -:1012A000A103806457C0C03120E5D20721F48091AA -:1012B000A10380684FC0C23180E5D80729F480912E -:1012C000A1038460886046C0C33090E5D90721F44B -:1012D0008091A1038E7F3EC0C53020E5D20721F466 -:1012E0008091A1038D7F36C0C73080E5D80721F4F7 -:1012F0008091A1038B7F2EC0C93090E5D90719F4E6 -:101300008091A10326C0CB3020E5D20721F4809143 -:10131000A1038F7E1FC0CD3080E5D80721F48091D6 -:10132000A1038F7D17C0CF3090E5D90721F48091BC -:10133000A1038F7B0FC0C13120E5D20721F480913A -:10134000A1038F7707C0C331D04531F48091A10349 -:101350008B7F877F8093A1038091A1030E94A628A1 -:101360009CC08D2F99278F70992781309105D9F4D2 -:101370009E012370332702C0880F991F2A95E2F738 -:101380009C688E0144E0000F111F4A95E1F7002789 -:101390001370802B912B53E0CC0FDD1F5A95E1F792 -:1013A000C076DD272FC08230910531F4DC2FCC27A9 -:1013B0008E01016F106A71C08330910569F4CE010E -:1013C0008370992701E010E002C0000F111F8A9579 -:1013D000E2F7C8019C680FC0049709F05EC0CE0117 -:1013E0008370992701E010E002C0000F111F8A9559 -:1013F000E2F7C8019A6823E0CC0FDD1F2A95E1F7D8 -:10140000C07ED7708C010C2B1D2B47C0DF708E0166 -:10141000106243C000E010E040C08E013EC001E811 -:1014200010E43BC003E810E438C002EE14E435C019 -:1014300009EE14E432C00AEE14E42FC005EB14E404 -:101440002CC006EB14E429C007EB14E426C00CEC16 -:1014500014E423C00DEC14E420C003E815E41DC01F -:101460000AE815E41AC002E915E417C004E915E416 -:1014700014C001E216E411C003E216E40EC004E257 -:1014800016E40BC005E216E408C006E216E405C047 -:1014900007E216E402C00AE216E4C801DF91CF9128 -:1014A0001F910F9108959CE0799FF00111249CE316 -:1014B000899FE00DF11D1124E60FF11DEE0FFF1FB6 -:1014C000EE53FE4F85919491803E9105E0F4803C6F -:1014D000910558F58133910509F46FC048F48932BC -:1014E000910509F463C08A32910509F46DC072C098 -:1014F00089339105E9F082389105D1F08533910562 -:1015000009F44DC067C0833E910581F138F4803EF7 -:101510009105B9F0823E9105D9F05CC0863E9105F7 -:1015200061F1873E9105A1F155C00E94FA07089527 -:101530002091A10320FD02C021FF4CC080EE90E06D -:1015400049C08091A10380FFF9CF89E390E042C0B8 -:101550008091A10382FF0EC08091A10384FF03C08C -:1015600080E090E037C083EE90E034C08091A1032A -:1015700082FFF2CF82EE90E02DC08091A10383FF25 -:101580000BC08091A10384FDEBCF87EE90E022C0D9 -:101590008091A10383FFF5CF86EE90E01BC0809180 -:1015A000A10385FF07C089E290E014C08091A103E8 -:1015B00085FFF9CF85E390E00DC08091A10386FF00 -:1015C00007C08AE290E006C08091A10386FFF9CFB0 -:1015D00081E390E00E940A080895CF92DF92EF9293 -:1015E000FF920F931F9301E010E020E030E06801CC -:1015F000790104C0CC0CDD1CEE1CFF1C8A95D2F7CF -:1016000004C0000F111F221F331F6A95D2F70C2947 -:101610001D292E293F29C0906303D0906403E090D8 -:101620006503F0906603C022D122E222F322842FC8 -:10163000C016D106E206F30641F41F910F91FF9008 -:10164000EF90DF90CF900C9494251F910F91FF9015 -:10165000EF90DF90CF900C94B52508950C942D0B4E -:101660005F926F927F928F929F92AF92BF92CF9232 -:10167000DF92EF92FF920F931F93CF93DF93CDB73B -:10168000DEB72A970FB6F894DEBF0FBECDBFCE01EE -:1016900001966C014E019BE0890E911C20E030E028 -:1016A00040E050E060E070E000E010E0E12CF12C60 -:1016B0006C2C5D2C8AE0782EAA24A394B12CEDE644 -:1016C000F2E0A62DB52D872D01900D928A95E1F7B8 -:1016D000F601819191916F01FC01E07FFF27E032DB -:1016E000F10559F48F709927F50102C0EE0FFF1F25 -:1016F0008A95E2F7EE2AFF2A37C0E033F10559F464 -:101700008F709927F50102C0EE0FFF1F8A95E2F74F -:101710000E2B1F2B29C0E034F10559F48F70992747 -:10172000F50102C0EE0FFF1F8A95E2F76E2B7F2BAB -:101730001BC0E035F10559F48F709927F50102C0FF -:10174000EE0FFF1F8A95E2F74E2B5F2B0DC0E036A0 -:10175000F10551F48F709927F50102C0EE0FFF1FBC -:101760008A95E2F72E2B3F2BC814D90409F0A7CF96 -:1017700084B19E2D9095892384B985B1E82AE5B876 -:1017800087B1902F9095892387B988B1082B08B924 -:101790008AB1962F909589238AB98BB1682B6BB942 -:1017A0008DB1942F909589238DB98EB1482B4EB968 -:1017B00080B3922F9095892380BB81B3282B21BBC6 -:1017C0002A960FB6F894DEBF0FBECDBFDF91CF9142 -:1017D0001F910F91FF90EF90DF90CF90BF90AF904F -:1017E0009F908F907F906F905F9008955F926F921F -:1017F0007F928F929F92AF92BF92CF92DF92EF92A1 -:10180000FF920F931F93CF93DF93CDB7DEB7689707 -:101810000FB6F894DEBF0FBECDBF85B7806885BF19 -:1018200085B7806885BF0E94300BCE0101966C01A0 -:101830004E0199E1890E911C20E030E040E050E03B -:1018400060E070E000E010E0E12CF12C6C2C5D2CED -:1018500088E1782EAA24A394B12CE7E7F2E0A62D24 -:10186000B52D872D01900D928A95E1F7F6018191B2 -:1018700091916F01FC01E07FFF27E032F10559F4FF -:101880008F709927F50102C0EE0FFF1F8A95E2F7CE -:10189000EE2AFF2A37C0E033F10559F48F709927FB -:1018A000F50102C0EE0FFF1F8A95E2F70E2B1F2BEA -:1018B00029C0E034F10559F48F709927F50102C071 -:1018C000EE0FFF1F8A95E2F76E2B7F2B1BC0E035D2 -:1018D000F10559F48F709927F50102C0EE0FFF1F33 -:1018E0008A95E2F74E2B5F2B0DC0E036F10551F4DF -:1018F0008F709927F50102C0EE0FFF1F8A95E2F75E -:101900002E2B3F2BC814D90409F0A7CF84B19E2DEC -:101910009095892384B985B1E82AE5B887B1902FDD -:101920009095892387B988B1082B08B98AB1962F79 -:10193000909589238AB98BB1682B6BB98DB1942F9F -:10194000909589238DB98EB1482B4EB980B3922FD3 -:101950009095892380BB81B3282B21BBE2EBF2E079 -:10196000A8EAB2E0119211921D921D9282E0EC3B26 -:10197000F807C1F768960FB6F894DEBF0FBECDBF6B -:10198000DF91CF911F910F91FF90EF90DF90CF905B -:10199000BF90AF909F908F907F906F905F900C94CE -:1019A000EF075F926F927F928F929F92AF92BF925A -:1019B000CF92DF92EF92FF920F931F93CF93DF931B -:1019C000CDB7DEB7A2970FB6F894DEBF0FBECDBF7E -:1019D0006E0149E1C40ED11C88EAA82E82E0B82E1F -:1019E00075019AE0592E460101E010E028E1622ECF -:1019F00035E0732EEDE6F2E0D401852D01900D92D5 -:101A00008A95E1F7D6018D919D916D019C01207F12 -:101A100033272032310591F424B18F709927F801D2 -:101A200002C0EE0FFF1F8A95E2F7CF01922F982B8D -:101A300094B995B18095892385B953C02033310578 -:101A400091F427B18F709927A80102C0440F551F48 -:101A50008A95E2F7CA01922F982B97B998B1809591 -:101A6000892388B93EC02034310591F42AB18F70A2 -:101A70009927D80102C0AA0FBB1F8A95E2F7CD01B2 -:101A8000922F982B9AB99BB1809589238BB929C045 -:101A90002035310591F42DB18F709927F80102C0DE -:101AA000EE0FFF1F8A95E2F7CF01922F982B9DB979 -:101AB0009EB1809589238EB914C02036310589F4F2 -:101AC00020B38F709927A80102C0440F551F8A9533 -:101AD000E2F7CA01922F982B90BB91B3809589238E -:101AE00081BB50EA5A95F1F7BE016F5F7F4F20E04E -:101AF00030E040E050E0E7E7F2E0DE011196862DAD -:101B000001900D928A95E1F7DB018D919D91BD01C8 -:101B1000FC01E07FFF27E032F10511F4E3B113C0CF -:101B2000E033F10511F4E6B10EC0E034F10511F433 -:101B3000E9B109C0E035F10511F4ECB104C0E036BB -:101B4000F105B9F4EFB1F0E08F70992702C0F59577 -:101B5000E7958A95E2F7E0FD08C0C801042E02C0AF -:101B6000880F991F0A94E2F702C080E090E0282BCA -:101B7000392B4F5F5F4F4C30510509F0BCCFF70157 -:101B8000808191818217930721F0318320837092A5 -:101B90000B020E94300BF2E0EF0EF11C42EBE41658 -:101BA00042E0F40609F026CF80910B028823C9F0A9 -:101BB000815080930B02882339F08FE99FE00197D1 -:101BC000F1F700C000000DC0E2EBF2E0D5018D910D -:101BD0009D915D0181939193B2EBAB16B2E0BB0690 -:101BE000A9F70E94F50781E0A2960FB6F894DEBF30 -:101BF0000FBECDBFDF91CF911F910F91FF90EF905E -:101C0000DF90CF90BF90AF909F908F907F906F901C -:101C10005F900895E82FF0E0EE0FFF1FEE54FD4FA8 -:101C2000808191810895089580918C0381608093D3 -:101C30008C030C94B82880918C038E7F80938C0346 -:101C40000C94B8280E948A28811102C00E9466283C -:101C50000E94B42880938C033E9A809171008D7FFE -:101C60008093710082E0809390008AE180939100DC -:101C700081E08093BE0208958091BE02811102C06E -:101C80000E94220E10920E0310920D03809171009B -:101C90008D7F80937100809190008F77809390006A -:101CA0001092D0021092CF021092070310920803F4 -:101CB0001092090310920A03109206031092050372 -:101CC000E5EEF2E0A5EDB2E01192119211921192BF -:101CD0001D921D9283E0E530F807B1F70895CF9289 -:101CE000DF92EF92FF920F931F93CF93DF93209198 -:101CF000CF02222309F484C06B017C018091BE02D3 -:101D0000811102C00E94220E05E013E0C7E0D0E07E -:101D1000A7019601F80192918291729162918F01CF -:101D20000E94F42D811131C0FE01EE0FFF1FEE0F56 -:101D3000FF1FEB51FD4F1082118212821382DE01D0 -:101D4000AA0FBB1FAB52BD4F11961C921E92C730FB -:101D5000D105E9F0219644815581668177814083E0 -:101D600051836283738314821582168217821296BE -:101D70008D919C91139711969C938E9313961C9220 -:101D80001E92129734961296E2CF219708F6809110 -:101D90000D0390910E03019797FD05C090930E03DC -:101DA00080930D0304C010920E0310920D038091D6 -:101DB0000D0390910E0320910B0330910C03281713 -:101DC000390724F010920C0310920B03892BC1F4F5 -:101DD000809171008D7F80937100809190008F774A -:101DE0008093900010920703109208031092090349 -:101DF00010920A0310920603109205031092CF026C -:101E0000DF91CF911F910F91FF90EF90DF90CF90D6 -:101E100008951F920F920FB60F9211244F925F9266 -:101E20006F927F928F929F92AF92BF92CF92DF92EA -:101E3000EF92FF922F933F934F935F936F937F9314 -:101E40008F939F93AF93BF93CF93DF93EF93FF93C2 -:101E50008091CF02882309F49BC1C0910D03D091DA -:101E60000E031C161D060CF093C14090BF0250904B -:101E7000C0026090C1027090C20220E030E0A9016F -:101E8000C301B2010E94432F18160CF065C0C13087 -:101E9000D10509F452C080910B0390910C03BE014F -:101EA0000E9423317C0190930C0380930B0380905C -:101EB000D1029090D202A090D302B090D40220E040 -:101EC00030E040E85FE3C501B4010E94902D6093CB -:101ED000D1027093D2028093D3029093D402F7017F -:101EE000EE0FFF1FEE0FFF1FEB51FD4FA3019201FD -:101EF00060817181828193810E94F82D20E030E021 -:101F000040E05EE30E94472F9B01AC01C501B40194 -:101F10000E94432F18168CF4C7010196BE010E943F -:101F2000233190930C0380930B031092D1021092F3 -:101F3000D2021092D3021092D402E0910B03F091DE -:101F40000C03EE0FFF1FEE0FFF1FEB51FD4F6081E3 -:101F5000718182819381D0C0C0900703D090080323 -:101F6000E0900903F0900A0320E030E0A901C701E6 -:101F7000B6010E94F42D2197882309F4A2C0FE0126 -:101F8000EE0FFF1FEE0FFF1FEB51FD4F8080918082 -:101F9000A280B380A5019401C701B6010E94F42D6F -:101FA00087FF31C0A501940160E070E08CED93ECF7 -:101FB0000E94F82D20E030E040E451E40E94F82D2A -:101FC00020E030E040E05FE30E94472F9B01AC013E -:101FD00060E070E080E090E40E94AA2F9B01AC01D9 -:101FE000C501B4010E94472F9B01AC01C701B60196 -:101FF0000E94F42D87FF07C0A701960160E070E002 -:102000008CED93E439C0A5019401C701B6010E948B -:10201000432F18160CF055C0A501940160E070E044 -:102020008CED93E40E94F82D20E030E040E451E490 -:102030000E94F82D20E030E040E05FE30E94472F4F -:102040009B01AC0160E070E080E090E40E94AA2F68 -:102050009B01AC01C501B4010E94472F9B01AC015B -:10206000C701B6010E94432F18165CF5A70196011F -:1020700060E070E08CED93EC0E94F82D20E030E001 -:1020800040E451E40E94F82D20E030E040E05FE3BE -:102090000E94472F9B01AC0160E070E080E090E47B -:1020A0000E94AA2F9B01AC01C701B6010E94472FD5 -:1020B00060930703709308038093090390930A03C6 -:1020C00013C0FE01EE0FFF1FEE0FFF1FEB51FD4F80 -:1020D00080819181A281B38180930703909308034B -:1020E000A0930903B0930A0360910703709108035A -:1020F0008091090390910A032091BC023091BD02A6 -:102100002F3F4FEF340731F02F5F3F4F3093BD0229 -:102110002093BC020E9430136B017C0120E034E26A -:1021200044EF51E40E94F42D87FF08C086EFC82ECB -:1021300088E2D82E84EFE82E81E4F82E20E030E00B -:1021400040E051E4C701B6010E94472F9B01AC015A -:1021500060E074E284E79BE40E94F82D6B017C014F -:102160000E94602E709397006093960020910C025D -:1021700030910D0240910E0250910F02C701B6013D -:102180000E94472F0E94602E7093990060939800E0 -:102190008091D002882309F433C1C090CB02D09043 -:1021A000CC02E090CD02F090CE0220E030E0A90118 -:1021B000C701B6010E94432F1816D4F58091BC02C6 -:1021C0009091BD028F3F2FEF920729F001969093D7 -:1021D000BD028093BC02C701B6010E94301320E00B -:1021E00030E040E051E40E94472F9B01AC0160E0E9 -:1021F00074E284E79BE40E94F82D6B017C010E944D -:10220000602E709397006093960020910C0230919D -:102210000D0240910E0250910F02C701B6010E94BB -:10222000472F0E94602E709399006093980008C019 -:1022300010929700109296001092990010929800B8 -:102240006091C5027091C6026F5F7F4F7093C602A6 -:102250006093C502209196003091970080E090E055 -:10226000232BF1F0C0919600D09197000E94912EFF -:102270006B017C01BE0180E090E00E94912E9B01E9 -:10228000AC016091C7027091C8028091C90290911F -:10229000CA020E94F82D20E03FEF4FE757E410C03C -:1022A0000E94912E6B017C0120E030EE4FEF54E450 -:1022B0006091C7027091C8028091C9029091CA02D0 -:1022C0000E94472F9B01AC01C701B6010E94432F1A -:1022D00087FD96C08091C3028F5F8093C30290E018 -:1022E000209188033091890382179307A0F0809191 -:1022F0009303882319F01092C3020DC080917100DE -:102300008D7F80937100809190008F7780939000F3 -:102310001092D0027DC08091C402C091C30281118D -:1023200028C0C0908D03D0908E03E0908F03F09072 -:10233000900320E030E0A901C701B6010E94432FBD -:102340001816BCF481E08093C4021092CB02109264 -:10235000CC021092CD021092CE02C092C702D0924F -:10236000C802E092C902F092CA02C150C093C302EF -:1023700043C01092C4021092BD021092BC02E091C0 -:102380008A03F0918B0348E0C49FE00DF11D1124F6 -:1023900080819181A281B3818093CB029093CC0202 -:1023A000A093CD02B093CE0220E030E040E85EE39F -:1023B00064817581868197810E94472F6B017C0122 -:1023C00020E030E048EC52E460911002709111027C -:1023D00080911202909113020E94F82D9B01AC0192 -:1023E000C701B6010E94472F6093C7027093C802CD -:1023F0008093C9029093CA021092C6021092C5023D -:1024000080918C0380FD04C01092D0021092CF0204 -:10241000FF91EF91DF91CF91BF91AF919F918F91FC -:102420007F916F915F914F913F912F91FF90EF902E -:10243000DF90CF90BF90AF909F908F907F906F90E4 -:102440005F904F900F900FBE0F901F901895CF92F6 -:10245000DF92EF92FF92CF93DF936B017C01EA0151 -:102460008091BE02811102C00E94220E80918C03D5 -:1024700080FF46C080910D0390910E0308970CF0E9 -:102480003FC0809171008D7F809371008091D00258 -:1024900081110E943C0E81E08093CF021092BD0218 -:1024A0001092BC0220E030E0A901C701B6010E94F1 -:1024B000432F1816DCF480910D0390910E03FC015C -:1024C000EE0FFF1FEE0FFF1FEB51FD4FC082D182B9 -:1024D000E282F382FC01EE0FFF1FEB52FD4FD1832E -:1024E000C083019690930E0380930D038091710039 -:1024F000826080937100809190008068809390004A -:10250000DF91CF91FF90EF90DF90CF9008958F9261 -:102510009F92AF92BF92CF92DF92EF92FF920F9372 -:102520001F93CF93DF93EC017B01D42E4801590117 -:102530008091BE02811102C00E94220E80918C0304 -:1025400080FF6BC0809171008D7F809371008091BE -:10255000CF0281110E943C0E81E08093D002D09383 -:102560008B03C0938A03F0928903E0928803D09290 -:10257000930380928D0390928E03A0928F03B0926A -:1025800090031092D1021092D2021092D3021092B4 -:10259000D4021092C30288819981AA81BB81809361 -:1025A000CB029093CC02A093CD02B093CE0220E058 -:1025B00030E040E85EE36C817D818E819F810E94E6 -:1025C000472F6B017C0120E030E048EC52E4609141 -:1025D00010027091110280911202909113020E94D8 -:1025E000F82D9B01AC01C701B6010E94472F6093F3 -:1025F000C7027093C8028093C9029093CA021092D6 -:10260000C6021092C50280917100826080937100B1 -:1026100080919000806880939000DF91CF911F910E -:102620000F91FF90EF90DF90CF90BF90AF909F9071 -:102630008F90089580910F0390E0019665E070E01F -:102640000E94233180930F03089580910F0390E03F -:10265000019765E070E00E94233180930F03089595 -:102660008F929F92AF92BF92CF92DF92EF92FF92A2 -:10267000CF93DF936B017C01C091BC02D091BD026E -:10268000BE0180E090E00E94912E4B015C01A70109 -:10269000960160E070E08CE594E40E94F82D9B01C7 -:1026A000AC01C501B4010E94472F0E94652E4091E4 -:1026B0000F03423009F45CC028F4442351F0413048 -:1026C000E9F0FBC0433009F481C0443009F4B4C0E0 -:1026D000F4C080E090E0A0E0BFE380930C02909310 -:1026E0000D02A0930E02B0930F021092BF0210923F -:1026F000C0021092C1021092C202DFC01092BF024B -:102700001092C0021092C1021092C202643171058F -:1027100040F46A307105E0F520E030E040E85EE327 -:102720003BC0693C710508F0C0C080E090E00E94A9 -:10273000912E20E030E040EA51E40E948F2D20E00D -:1027400030E044E353E40E94F82D9B01AC010E9469 -:10275000472F20E030E040E05EE30E94472F9B01DE -:10276000AC0160E070E080E09EE30E948F2D5BC0D2 -:102770001092BF021092C0021092C1021092C202C7 -:102780006432710578F4FB01EE59FF4F0C94373138 -:1027900020E030E040E05FE3C701B6010E94472F30 -:1027A0006B017C0180E090E0A0E0BEE380930C022E -:1027B00090930D02A0930E02B0930F027EC0A7016A -:1027C0009601C701B6010E94902DEACF1092BF0278 -:1027D0001092C0021092C1021092C2022AE0269FFB -:1027E000A001279F500D1124CA0168EB7BE00E94D5 -:1027F0000F31BC016C5D754077FF03C07195619529 -:102800007109882777FD8095982F0E94932E2EE3DB -:1028100033EC4EE259E30E94472F20E030E040ECD9 -:102820005EE30E94902D60930C0270930D028093E2 -:102830000E0290930F0241C01092BF021092C0028C -:102840001092C1021092C202CE0183709927892B87 -:10285000E1F0BE016170772780E090E00E94912E48 -:1028600020E030E040E05EE30E94472F20E030E0CF -:1028700040E45FE30E94902D60930C0270930D0280 -:1028800080930E0290930F020CC080E090E0A0E0D5 -:10289000BFE380930C0290930D02A0930E02B093BD -:1028A0000F02C770DD27CD2B41F410920C0210925D -:1028B0000D0210920E0210920F02C701B601DF91B5 -:1028C000CF91FF90EF90DF90CF90BF90AF909F900F -:1028D0008F900895809118030895CF93DF9300D0CF -:1028E0001F92CDB7DEB79C0180919803843019F513 -:1028F00093E099833B832A839093E9008FEF909133 -:10290000E800815095FD06C095ED9A95F1F700001D -:102910008111F5CF8091E80085FF0DC040E050E0C7 -:1029200063E070E0CE0101960E94A6168091E80057 -:102930008E778093E8000F900F900F90DF91CF91EA -:102940000895CF93DF9300D01F92CDB7DEB72091CB -:102950009803243021F522E029839B838A8383E036 -:102960008093E9008FEF9091E800815095FD06C0BB -:1029700095ED9A95F1F700008111F5CF8091E8006F -:1029800085FF0DC040E050E063E070E0CE010196AD -:102990000E94A6168091E8008E778093E8000F9041 -:1029A0000F900F90DF91CF910895209198032430DC -:1029B000F1F422E02093E9002FEF3091E80021505C -:1029C00035FD06C035ED3A95F1F700002111F5CF40 -:1029D0002091E80025FF0BC040E050E065E070E08A -:1029E0000E94A6168091E8008E778093E8000895F3 -:1029F000CF93DF9320919803243039F521E0209381 -:102A0000E9002FEF3091E800215035FD06C035ED8B -:102A10003A95F1F700002111F5CF2091E80025FF4C -:102A200014C0EC0140E050E068E070E00E94A6169F -:102A30008091E8008E778093E80088E0FE01A0E1B5 -:102A4000B3E001900D928A95E1F7DF91CF9108955F -:102A500080919703811109C00E943B180E94981829 -:102A60008091E20084608093E200089510929703C1 -:102A70000895089508950C94962742E061EC81E052 -:102A80000E94B51742E061EC82E00E94B51742E077 -:102A900061EC83E00C94B51780919A03833009F4BC -:102AA00053C030F4813071F0823009F48CC0089545 -:102AB0008A3009F478C08B3009F45EC0893009F09F -:102AC0009AC020C080919903813A09F094C0809106 -:102AD000E800877F8093E80080919D0390919E039A -:102AE000892B21F468E080E193E003C060E080E09E -:102AF00090E070E00E94F1168091E8008B7780935F -:102B0000E800089580919903813209F074C08091A2 -:102B10009D0390919E03892B09F06DC08091E80080 -:102B2000877F8093E8008091E80082FD05C0809156 -:102B300098038111F8CF5FC08091F1008093180352 -:102B40008091E8008B7753C080919903813A09F016 -:102B500052C080919D0390919E03892B09F04BC038 -:102B60008091E800877F8093E8008091E80080FFF3 -:102B7000FCCF80911E0236C0809199038132D9F535 -:102B800080919D0390919E03892BA9F58091E80087 -:102B9000877F8093E8000E94EA1780919B038093CF -:102BA0001E020C945B2180919903813221F5809162 -:102BB000E800877F8093E8000E94EA1780919C03D9 -:102BC00080931903089580919903813AA1F480912B -:102BD000E800877F8093E8008091E80080FFFCCFC9 -:102BE000809119038093F1008091E8008E778093A3 -:102BF000E8000C94EA17089584B7877F84BF88E1C2 -:102C00000FB6F89480936000109260000FBE90E0C1 -:102C100080E80FB6F89480936100909361000FBE36 -:102C20000E948D1B0E943B180E9498188091E20020 -:102C300084608093E20078940E941E1B0E948F1B88 -:102C400084E192E00E94391B80919803853069F4F9 -:102C50000E945027809196038823B1F30E947E271B -:102C6000882391F30E949016EFCF0E94971BECCF20 -:102C7000292F332723303105C9F064F42130310581 -:102C800081F02230310509F043C084E590E028E16D -:102C90003AE042C021323105F1F02232310541F1F2 -:102CA00037C082E190E02CE63AE036C099278130C7 -:102CB000910541F08230910541F0892B49F5E4E11D -:102CC000FAE005C0E6EEF9E002C0EAEBF9E0849133 -:102CD00090E09F0121C06330D8F4E62FF0E0EE0FC2 -:102CE000FF1FE856FD4F2081318189E090E014C03C -:102CF000633070F470E0FB01EE0FFF1FEE56FD4FE6 -:102D000020813181FB01E157FD4F808190E004C0BB -:102D100080E090E020E030E0FA01318320830895E4 -:102D200080E189BD82E189BD09B400FEFDCF8091BB -:102D3000D8008F7D8093D8008091E00082608093DE -:102D4000E0008091E00081FDFCCF0895CF92DF92FA -:102D5000EF92FF920F931F93CF93DF93EC018B01C0 -:102D60006A010E940918811133C0C114D10439F0DD -:102D7000F60180819181081B190BC80FD91FE12C26 -:102D8000F12C0115110519F18091E80085FD16C09F -:102D90008091E8008E778093E800C114D10449F057 -:102DA000F60180819181E80EF91EF182E08285E0D2 -:102DB0000FC00E940918882321F30AC089918093CB -:102DC000F10001501109FFEFEF1AFF0ADACF80E09E -:102DD000DF91CF911F910F91FF90EF90DF90CF90F7 -:102DE000089520919F033091A0032617370748F0DC -:102DF0006115710539F42091E8002E772093E800E1 -:102E000001C0B90140E061157105A9F12091980355 -:102E1000222309F443C0253009F442C02091E80080 -:102E200023FD40C02091E80022FD32C02091E8003F -:102E300020FFE9CF4091F3002091F20030E0342BE5 -:102E4000FC01CF016115710559F02830310540F4BE -:102E500081918093F100615071092F5F3F4FF1CF55 -:102E600041E02830310509F040E02091E8002E775C -:102E70002093E800C8CF4111C9CF0AC080919803C0 -:102E8000882361F0853061F08091E80083FD0AC0FD -:102E90008091E80082FFF2CF80E0089582E00895FB -:102EA00083E0089581E0089520919F033091A0036D -:102EB0002617370748F06115710539F42091E800AD -:102EC0002E772093E80001C0B901FC0120E06115D4 -:102ED000710591F180919803882309F440C08530F1 -:102EE00009F43FC08091E80083FD3DC08091E80077 -:102EF00082FD2FC08091E80080FFE9CF2091F30090 -:102F00008091F20090E0922B6115710559F08830A4 -:102F1000910540F424912093F1003196615071099C -:102F20000196F2CF21E0089709F020E08091E800B7 -:102F30008E778093E800CBCF2111CCCF0AC080914F -:102F40009803882361F0853061F08091E80083FD6B -:102F50000AC08091E80082FFF2CF80E0089582E00D -:102F6000089583E0089581E00895982F973058F5EB -:102F70009093E900981739F07091EC002091ED00E2 -:102F80005091F00003C0242F762F50E021FF19C08C -:102F90003091EB003E7F3093EB003091ED003D7FB0 -:102FA0003093ED003091EB0031603093EB00709383 -:102FB000EC002093ED005093F0002091EE0027FFED -:102FC00007C09F5FD3CF8F708093E90081E00895A1 -:102FD00080E008958091990387FF11C08091E800F7 -:102FE00082FD05C0809198038111F8CF11C08091B6 -:102FF000E8008B770BC080919803882349F080917B -:10300000E80080FFF8CF8091E8008E778093E80099 -:1030100008952091E4003091E50095E64091EC00A0 -:10302000842F817040FF22C08091E80080FD1CC089 -:1030300080919803882391F0853091F08091EB0086 -:1030400085FD10C04091E4005091E5004217530700 -:1030500029F39A01915011F784E0089582E00895D0 -:1030600083E0089581E0089580E008954091E800AC -:1030700042FFDECF08950E94A9180E94B118E0EE29 -:10308000F0E0808181608083E8EDF0E080818F77DF -:10309000808319BCA7EDB0E08C918E7F8C938081EA -:1030A0008F7E80831092970308950F931F93CF9381 -:1030B000DF930E94A9180E94B118C8EDD0E0888162 -:1030C0008F77888388818068888388818F7D8883D3 -:1030D00019BC1092980310929403109296031092C8 -:1030E000950300EE10E0F80180818B7F808388815A -:1030F0008160888342E060E080E00E94B517E1EEE5 -:10310000F0E080818E7F8083E2EEF0E0808181605C -:103110008083808188608083F80180818E7F8083B6 -:10312000888180618883DF91CF911F910F910895ED -:10313000E8EDF0E080818F7E8083E7EDF0E0808134 -:103140008160808384E082BF81E0809397030C9448 -:103150005518E8EDF0E080818E7F80831092E200C8 -:1031600008951092DA001092E10008951F920F92D4 -:103170000FB60F9211242F933F934F935F936F934A -:103180007F938F939F93AF93BF93EF93FF93809120 -:10319000E10082FF0BC08091E20082FF07C08091B6 -:1031A000E1008B7F8093E1000E941D1B8091DA007B -:1031B00080FF1FC08091D80080FF1BC08091DA0083 -:1031C0008E7F8093DA008091D90080FF0DC080E16E -:1031D00089BD82E189BD09B400FEFDCF81E0809305 -:1031E00098030E94281505C019BC109298030E94EC -:1031F00036158091E10080FF19C08091E20080FFC8 -:1032000015C08091E2008E7F8093E2008091E20001 -:1032100080618093E2008091D80080628093D80022 -:1032200019BC85E0809398030E943A158091E100D3 -:1032300084FF30C08091E20084FF2CC080E189BD12 -:1032400082E189BD09B400FEFDCF8091D8008F7D59 -:103250008093D8008091E1008F7E8093E10080917F -:10326000E2008F7E8093E2008091E2008160809393 -:10327000E20080919403882311F084E007C08091DC -:10328000E30087FD02C081E001C083E080939803E2 -:103290000E943B158091E10083FF29C08091E200EC -:1032A00083FF25C08091E100877F8093E10082E069 -:1032B00080939803109294038091E1008E7F809315 -:1032C000E1008091E2008E7F8093E2008091E20035 -:1032D00080618093E20042E060E080E00E94B517E8 -:1032E0008091F00088608093F0000E943915FF9172 -:1032F000EF91BF91AF919F918F917F916F915F916E -:103300004F913F912F910F900FBE0F901F901895E6 -:103310001F920F920FB60F9211242F933F934F934A -:103320005F936F937F938F939F93AF93BF93CF934D -:10333000DF93EF93FF93C091E900CF708091EC0091 -:10334000D82FD17080FDD0E81092E9008091F00074 -:10335000877F8093F00078940E94CC191092E90046 -:103360008091F00088608093F000CD2BCF70C093E7 -:10337000E900FF91EF91DF91CF91BF91AF919F91C4 -:103380008F917F916F915F914F913F912F910F900E -:103390000FBE0F901F9018951F93CF93DF93CDB75B -:1033A000DEB7AA970FB6F894DEBF0FBECDBFE9E92E -:1033B000F3E088E08E0F9091F10091938E13FBCF94 -:1033C0000E944C158091E80083FF1FC180919903F2 -:1033D00090919A03492F50E04A30510508F015C1E9 -:1033E000FA01EA57FF4F0C943731803881F0823868 -:1033F00009F00BC180919D038F708093E90080914B -:10340000EB0085FB882780F91092E90006C08091C7 -:10341000950390919603911182609091E800977FB7 -:103420009093E8008093F1001092F100C8C0282F1B -:103430002D7F09F0EAC0882319F0823061F0E5C0E1 -:1034400080919B03813009F0E0C0933009F080E067 -:10345000809396032BC080919B03811127C080919C -:103460009D038F7009F4D1C08093E9002091EB0097 -:1034700020FF1CC0933021F48091EB00806214C0C7 -:103480009091EB0090619093EB0021E030E0A90176 -:1034900002C0440F551F8A95E2F74093EA0010924C -:1034A000EA008091EB0088608093EB001092E900C5 -:1034B0008091E800877F86C08111A7C010919B038F -:1034C0001F778091E3008078812B8093E3008091C7 -:1034D000E800877F8093E8000E94EA178091E80067 -:1034E00080FFFCCF8091E30080688093E30011119E -:1034F00002C082E001C083E08093980386C08058B8 -:10350000823008F082C080919B0390919C038C3D97 -:1035100053E0950779F583E08A838AE289834FB780 -:10352000F894DE01139620E03EE051E2E32FF0E054 -:1035300050935700E49120FF03C0E295EF703F5F86 -:10354000EF708E2F90E0EA3010F0C79601C0C09661 -:103550008D939D932F5F243149F74FBF8091E800F1 -:10356000877F8093E8006AE270E0CE0101960E94B6 -:10357000F11614C0AE014F5F5F4F60919D030E9432 -:103580003816BC01009709F440C09091E800977F7D -:103590009093E80089819A810E9454178091E800F5 -:1035A0008B778093E80031C0803879F58091E8000E -:1035B000877F8093E800809194038093F10080914D -:1035C000E8008E778093E8000E94EA171EC0811100 -:1035D0001CC090919B039230C0F48091E800877FDB -:1035E0008093E800909394030E94EA1780919403DB -:1035F000811106C08091E30087FD02C081E001C017 -:1036000084E0809398030E943D158091E80083FF39 -:103610000AC08091E800877F8093E8008091EB00EA -:1036200080628093EB00AA960FB6F894DEBF0FBEBF -:10363000CDBFDF91CF911F9108950895CF938091D1 -:1036400098038823A1F0C091E900CF709091EC001D -:10365000892F817090FD80E8C82B1092E90080913D -:10366000E80083FD0E94CC19CF70C093E900CF9190 -:10367000089590931F0380931E030895E0911E0305 -:10368000F0911F03309721F00190F081E02D099413 -:1036900080E00895E0911E03F0911F03309721F020 -:1036A0000280F381E02D09940895E0911E03F091CA -:1036B0001F03309721F00480F581E02D09940895CF -:1036C00020911C0330911D038217930771F0909392 -:1036D0001D0380931C03E0911E03F0911F0330979C -:1036E00021F00680F781E02D0994089520911A03B6 -:1036F00030911B038217930771F090931B03809303 -:103700001A03E0911E03F0911F03309721F000840B -:10371000F185E02D0994089508950C948C1B0E9466 -:10372000CA270E94F60B0E9450280C94F82C4F9246 -:103730005F927F928F929F92AF92BF92CF92DF92D1 -:10374000EF92FF920F931F93CF93DF93CDB7DEB726 -:103750002A970FB6F894DEBF0FBECDBF0E94D10CE2 -:1037600091E2C92E93E0D92E00E010E0AA24A394A0 -:10377000B12C702E802F0E940A0E4C01F601419050 -:1037800051906F014826592641145104B1F40F5F3E -:103790001F4F0530110569F78FEF89838A831B82DC -:1037A0000E94D3278160782F9D838C8349815A8121 -:1037B0006B818D810E94501C3AC08091770381FDFE -:1037C0000E94130E20E030E07501022E02C0EE0CC4 -:1037D000FF1C0A94E2F7C70184219521892B09F186 -:1037E0002E837F828E209F2091E0892809F490E02B -:1037F00098870E94D3278160782F9A8789874E8186 -:103800005F8168858A850E94501C000F111FF80196 -:10381000EF5DFC4F80819181E826F926F182E082FC -:1038200006C02F5F3F4F2C30310571F6B0CF0E949C -:10383000372A109120030E943E1B1817D9F00E94CE -:103840003E1B809320032A960FB6F894DEBF0FBE6E -:10385000CDBFDF91CF911F910F91FF90EF90DF903F -:10386000CF90BF90AF909F908F907F905F904F9040 -:103870000C942E0B2A960FB6F894DEBF0FBECDBF68 -:10388000DF91CF911F910F91FF90EF90DF90CF903C -:10389000BF90AF909F908F907F905F904F900895D2 -:1038A000CF93DF93CDB7DEB72B970FB6F894DEBF7B -:1038B0000FBECDBF4F83588769877A878B87DE011C -:1038C000119686E0FD0111928A95E9F785E0FE01E7 -:1038D000379601900D928A95E1F749815A816B8163 -:1038E0007C818D819E810E94F5232B960FB6F894E2 -:1038F000DEBF0FBECDBFDF91CF910895CF93882358 -:1039000009F4C2C0C82F823859F40E943E1B81FDC1 -:10391000BBC089E30E949E260E94212789E30CC038 -:10392000833879F40E943E1B80FDAEC083E50E947F -:103930009E260E94212783E50E94BB26CF910C94EE -:103940002127843859F40E943E1B82FD9DC087E4E4 -:103950000E949E260E94212787E4EECF8CEF8C0FD9 -:10396000813A48F48C2F0E94602C81118DC08C2FDD -:103970000E949E26E3CF80E28C0F883048F4C77007 -:1039800081E001C0880FCA95EAF70E94DA26D6CFF7 -:103990008BE58C0F833078F4C53A29F0C63A31F0C4 -:1039A00083E890E005C081E890E002C082E890E002 -:1039B000CF910C94601B88E58C0F833108F064C0B4 -:1039C000C83A39F1C93A41F1CA3A49F1CB3A51F111 -:1039D000CC3A59F1CD3A61F1C03B69F1CE3A71F17F -:1039E000CF3A79F1C13B81F1C23B89F1C33B91F1FF -:1039F000C43B99F1C53BA1F1C63BA9F1C73BB1F16D -:103A0000C83BB9F1C93BC1F1CA3BC9F180E090E0C4 -:103A100038C082EE90E035C089EE90E032C08AEE88 -:103A200090E02FC085EB90E02CC086EB90E029C0A1 -:103A300087EB90E026C08CEC90E023C08DEC90E00A -:103A400020C083E891E01DC08AE891E01AC082E9B5 -:103A500091E017C084E991E014C081E292E011C0C6 -:103A600083E292E00EC084E292E00BC085E292E035 -:103A700008C086E292E005C087E292E002C08AE2D6 -:103A800092E0CF910C94761BCF910895882309F48E -:103A90004BC0823859F40E943E1B81FF45C089E328 -:103AA0000E949E260E94212789E30CC0833871F46E -:103AB0000E943E1B80FF38C083E50E949E260E9424 -:103AC000212783E50E94BB260C942127843859F4D2 -:103AD0000E943E1B82FF28C087E40E949E260E940F -:103AE000212787E4EFCF9CEF980F913A58F390E2AB -:103AF000980F983050F4877091E001C0990F8A9523 -:103B0000EAF7892F0E94E026DFCF9BE5980F9330DC -:103B100020F480E090E00C94601B885A833120F4FC -:103B200080E090E00C94761B0895882321F00E9499 -:103B3000DA260C9421270895882321F00E94E0269C -:103B40000C9421270895BF92CF92DF92EF92FF92BB -:103B50000F931F93CF93DF9300D000D000D0CDB749 -:103B6000DEB725E0FC01DE01119601900D922A9549 -:103B7000E1F7FC01D08011810281258122952F700F -:103B800043815481452B09F472C31F3F21F4FFEF99 -:103B9000DF1609F46CC37C012E830E94F707D982DB -:103BA0001A8369817A81802F0E949A26182FB92E54 -:103BB0000E944F260E9416252E81002319F00E9494 -:103BC000F7262E81EB2DE295EF70F0E0E057FF4FE6 -:103BD0000C9437318B2D807F9B2D9F70F92E88237D -:103BE00019F0F29480EFF822002389F0FF2009F405 -:103BF0007CC280E2810F883020F48F2D0E94DA266B -:103C000003C08F2D0E94EA260E9421276EC2812FB9 -:103C10000E94461DFF2009F42AC3105E8F2D183024 -:103C200018F40E94E02602C00E94F02626960FB6E5 -:103C3000F894DEBF0FBECDBFDF91CF911F910F91E2 -:103C4000FF90EF90DF90CF90BF900C9421278B2DA9 -:103C5000807F9B2D9F70803211F4892F03C0892FA4 -:103C60008295807F112319F0113011F12BC00023B0 -:103C7000A9F0222389F1213079F526960FB6F89420 -:103C8000DEBF0FBECDBFDF91CF911F910F91FF908F -:103C9000EF90DF90CF90BF900C940A27222319F069 -:103CA000213009F4E4C28E830E940D278E819BC1CE -:103CB000002321F0263008F0DAC20EC0253008F0CB -:103CC000D6C291C10023C9F0222331F0F7019581BA -:103CD00090FF0BC29F70958326960FB6F894DEBFB7 -:103CE0000FBECDBFDF91CF911F910F91FF90EF904D -:103CF000DF90CF90BF900C94951D222309F473C1DF -:103D000009C22B2D26952695237030E0211531050B -:103D100021F021303105D1F0AAC2002321F0812FFA -:103D20009B2D937002C080E090E026960FB6F89429 -:103D3000DEBF0FBECDBFDF91CF911F910F91FF90DE -:103D4000EF90DF90CF90BF900C94601B002321F088 -:103D5000812F9B2D937002C080E090E026960FB6D5 -:103D6000F894DEBF0FBECDBFDF91CF911F910F91B1 -:103D7000FF90EF90DF90CF90BF900C94761B812F37 -:103D8000002319F00E943F2902C00E94A72926960D -:103D90000FB6F894DEBF0FBECDBFDF91CF911F915C -:103DA0000F91FF90EF90DF90CF90BF900C942C2A52 -:103DB0008B2D837009F07BC0011159C2812F829530 -:103DC00086958770880F880F912F9F70C92ED12CF0 -:103DD000E12CF12C082E04C0CC0CDD1CEE1CFF1CC9 -:103DE0000A94D2F714FF12C04FE050E060E070E098 -:103DF00004C0440F551F661F771F8A95D2F7CB0169 -:103E0000BA01609570958095909503C060E070E070 -:103E1000CB012B2D269526952370422F50E0423062 -:103E20005105D9F04330510569F16C297D298E295E -:103E30009F294130510551F126960FB6F894DEBF07 -:103E40000FBECDBFDF91CF911F910F91FF90EF90EB -:103E5000DF90CF90BF900C943D256C297D298E2951 -:103E60009F2926960FB6F894DEBF0FBECDBFDF9117 -:103E7000CF911F910F91FF90EF90DF90CF90BF9067 -:103E80000C9459250E943D25C701B60126960FB610 -:103E9000F894DEBF0FBECDBFDF91CF911F910F9180 -:103EA000FF90EF90DF90CF90BF900C9421250023DE -:103EB00019F08B2D817001C08695882309F4D7C134 -:103EC000812F829586958770880F880F912F9F701C -:103ED000C92ED12CE12CF12C082E04C0CC0CDD1CF9 -:103EE000EE1CFF1C0A94D2F714FF12C04FE050E002 -:103EF00060E070E004C0440F551F661F771F8A956D -:103F0000D2F7CB01BA01609570958095909503C06A -:103F100060E070E0CB012B2D269526952370422F73 -:103F200050E042305105D9F04330510569F16C2918 -:103F30007D298E299F294130510551F126960FB6D2 -:103F4000F894DEBF0FBECDBFDF91CF911F910F91CF -:103F5000FF90EF90DF90CF90BF900C9417266C29C4 -:103F60007D298E299F2926960FB6F894DEBF0FBEB5 -:103F7000CDBFDF91CF911F910F91FF90EF90DF9018 -:103F8000CF90BF900C9433260E941726C701B6012C -:103F900026960FB6F894DEBF0FBECDBFDF91CF914E -:103FA0001F910F91FF90EF90DF90CF90BF900C94F6 -:103FB000FB25103F49F118F4103E48F491C0123F20 -:103FC00009F453C0E8F1133F09F464C089C01F70BD -:103FD0008B2D8F71002321F00E949425812F7CCEA0 -:103FE0000E94B525812F26960FB6F894DEBF0FBE2E -:103FF000CDBFDF91CF911F910F91FF90EF90DF9098 -:10400000CF90BF900C949C1D0023B1F0253008F098 -:104010002EC18B2D8F7126960FB6F894DEBF0FBE82 -:10402000CDBFDF91CF911F910F91FF90EF90DF9067 -:10403000CF90BF900C94DA25263008F018C1E9CF54 -:104040000023A9F08B2D8F7126960FB6F894DEBF52 -:104050000FBECDBFDF91CF911F910F91FF90EF90D9 -:10406000DF90CF90BF900C949425002359F38B2DB3 -:104070008F7126960FB6F894DEBF0FBECDBFDF91CD -:10408000CF911F910F91FF90EF90DF90CF90BF9055 -:104090000C94B525002399F08B2D8F7126960FB6C1 -:1040A000F894DEBF0FBECDBFDF91CF911F910F916E -:1040B000FF90EF90DF90CF90BF900C947F252696D5 +:1009700001002A0354006800650020005000720046 +:1009800065006F006E006900630020004B00650089 +:10099000790062006F0061007200640000002C03A7 +:1009A0004F007200740068006F006C0069006E00F8 +:1009B00065006100720020004B0065007900620054 +:1009C0006F006100720064007300000004030904FA +:1009D00009025400030100A0FA0904000001030108 +:1009E0000100092111010001223F000705810308D0 +:1009F000000A09040100010301020009211101009C +:100A000001224D000705820308000A0904020001C3 +:100A100003000000092111010001223600070583AF +:100A20000308000A1201100100000008EDFE6160D9 +:100A300001000102000105010980A10185021601E2 +:100A40000026B7001A01002AB70075109501810031 +:100A5000C0050C0901A1018503160100269C021A9C +:100A600001002A9C02751095018100C00501090250 +:100A7000A1010901A1000509190129051500250198 +:100A80009505750181029501750381010501093004 +:100A900009311581257F9502750881060938158170 +:100AA000257F950175088106050C0A3802158125F8 +:100AB0007F950175088106C0C005010906A10105E1 +:100AC0000719E029E71500250195087501810295B0 +:100AD0000175088101050819012905950575019120 +:100AE000029501750391010507190029FF150025DD +:100AF000FF950675088100C011241FBECFEFDAE014 +:100B0000DEBFCDBF04B603FE24C08091F3039091F5 +:100B1000F403A091F503B091F6038730904BA74002 +:100B2000B04BB9F41092F3031092F4031092F50352 +:100B30001092F60314BE84B7877F84BF88E10FB696 +:100B4000F89480936000109260000FBEE0E0F8E33C +:100B5000099512E0A0E0B1E0E8EAF3E602C00590F2 +:100B60000D92A63FB107D9F713E0A6EFB2E001C09E +:100B70001D92A33FB107E1F70E940D160C94D231EC +:100B80000C940000279A2F988FEF9FEF9093870087 +:100B9000809386008AE08093800089E180938100C1 +:100BA0000C94092D282F81110BC080918000877F24 +:100BB0008093800010928D0010928C002F980895E1 +:100BC0002F9880918000886080938000233019F4F2 +:100BD0008FEF9FEF0FC083E090E0821B9109880F99 +:100BE000991F2FEF3FEFA90102C0569547958A95AF +:100BF000E2F7CA0190938D0080938C000895CF9303 +:100C0000DF93EC010E94AE28BE0180E090E0DF910E +:100C1000CF910C9428250F931F93462F50E04C3012 +:100C2000510508F098C0DC01FA01EA5AFF4F12960C +:100C30008C910C949631882309F48DC000E010E06B +:100C4000980140E064E070E089EC91E00E9463125A +:100C500081E090E00FC0882309F47DC000E010E03F +:100C6000980140E066E070E089E591E00E9463123F +:100C700082E090E00E94FF056EC0882309F46BC0FB +:100C800000E010E0980140E068E070E089E891E061 +:100C90000E94631284E090E0EDCF882311F083E09E +:100CA00005C083E00CC0882349F084E00E94A5259C +:100CB00040E164E083E00E94C90A4DC084E00E94E4 +:100CC000C625F6CF882331F085EE0E948F1C0E9446 +:100CD000602D41C085EE0E94571D3DC08823D9F18B +:100CE0000E94F70D38C08823B1F10E94F00D00E09A +:100CF00010E0980140E064E070E089EE91E029C0E6 +:100D0000882349F185E00E94C6250E94180E23C061 +:100D1000882309F100E010E0980140E068E070E00D +:100D200089E191E00E94631285E00E94A52513C02D +:100D3000882389F00E94F61204C0882361F00E9483 +:100D4000011300E010E0980140E068E070E089E104 +:100D500091E00E94631280E090E01F910F9108954E +:100D60000F931F932FEF89EF90E021508040904028 +:100D7000E1F700C0000000E010E0980140E064E00E +:100D800070E089EE91E00E9463121F910F91089527 +:100D9000CF92DF92EF92FF920F931F93CF93DF9347 +:100DA000CDB7DEB7CC58D1090FB6F894DEBF0FBE71 +:100DB000CDBF2091B30325FFC5C08C01FC019281FA +:100DC00080910001992309F460C096E4E5E2F2E025 +:100DD000DE01A95BBF4F01900D929A95E1F7F801F2 +:100DE0009081E091F602F091F702E90FF11DEE0F0C +:100DF000FF1F27E430E02C0F3D1FE20FF31F60813F +:100E00007181680F711D882777FD8095982F0E944A +:100E1000A42E20E030E040E451E40E94092E6B0152 +:100E20007C01F801218185E090E0821B9109BC01E1 +:100E3000882777FD8095982F0E94A42E9B01AC01F6 +:100E4000C701B6010E94A12D9B01AC0160E070E0DA +:100E500080E090E40E94173020E030E04CE551E45F +:100E60000E94B42F4FE050E0C457DF4F0FB6F89404 +:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD +:100E8000EF90DF90CF900C94031296E4E5E2F2E04D +:100E9000DE01119601900D929A95E1F7F80190818B +:100EA000E091F602F091F702E90FF11DEE0FFF1F3E +:100EB00021E030E02C0F3D1FE20FF31F60817181B4 +:100EC000680F711D882777FD8095982F0E94A42EAA +:100ED00020E030E040E451E40E94092E6B017C01E7 +:100EE000F801218185E090E0821B9109BC018827EF +:100EF00077FD8095982F0E94A42E9B01AC01C7011D +:100F0000B6010E94A12D9B01AC0160E070E080E081 +:100F100090E40E94173020E030E04CE551E40E945C +:100F2000B42FC457DF4F0FB6F894DEBF0FBECDBF4E +:100F3000DF91CF911F910F91FF90EF90DF90CF90B5 +:100F40000C944B0EC457DF4F0FB6F894DEBF0FBEA4 +:100F5000CDBFDF91CF911F910F91FF90EF90DF9068 +:100F6000CF9008950F931F9300E010E0980140E0A8 +:100F700063E070E081E091E00E9463122FEF82E570 +:100F800097E0215080409040E1F700C000001F91A1 +:100F90000F91089508950E94C2056E9A769A0C9456 +:100FA000B0060C94CA070C94C8060895880F991FC0 +:100FB000FC01E650F040859194910895880F991FA7 +:100FC000FC01E658FE4F8591949108950F931F936D +:100FD000CF93DF93EC01811520E49207A0F5C115B2 +:100FE00080E3D80708F0E1C0C83ED105D8F4C03E80 +:100FF000D10508F0EEC1C83AD10578F4C53AD1055B +:1010000008F074C0C130D10509F46DC008F4DEC128 +:10101000C430D10508F0DDC1D9C1CB3BD10508F4FE +:1010200070C0D4C1C11590E2D90708F0B9C0C1158C +:1010300021E0D20708F0CDC1C03FD10508F4C6C1F8 +:101040008E01106506C2C13080E5D80709F4BDC025 +:1010500068F5C13120E4D20709F4AEC050F4C031C4 +:1010600090E4D90708F0A5C0CF70DD278E01146D7C +:10107000F0C1C33120E4D20709F4A4C008F49FC032 +:10108000C115D04509F0A2C10E946C210E94180E22 +:101090000E94B2079FEF24E38CE0915020408040F3 +:1010A000E1F700C000000E943F28D3C1C11520E62F +:1010B000D20730F4C11581E5D80708F48CC02DC1E2 +:1010C000C11590E7D90708F481C1C11520E8D207FE +:1010D00008F478C1C11580E9D80708F077C1DF703E +:1010E0008E01106AB6C101E010E0B3C1C53AD10566 +:1010F00009F471C1C63AD10509F070C102E810E4E3 +:10110000A8C1C83AD10509F46CC1C93AD10509F49E +:101110006BC1CA3AD10509F46AC1CB3AD10509F4C9 +:1011200069C1CC3AD10509F468C1CD3AD10509F4B9 +:1011300067C1C03BD10509F466C1CE3AD10509F4B7 +:1011400065C1CF3AD10509F464C1C13BD10509F4A9 +:1011500063C1C23BD10509F462C1C33BD10509F4A7 +:1011600061C1C43BD10509F460C1C53BD10509F497 +:101170005FC1C63BD10509F45EC1C73BD10509F487 +:101180005DC1C83BD10509F45CC1C93BD10509F477 +:101190005BC1CA3BD10509F45AC100E014E459C14E +:1011A000CE019F700E94DE0755C1DD278E01106CB5 +:1011B00050C100E011ED4DC100E010ED4AC100E06A +:1011C00012ED47C100E013ED44C18091C703816077 +:1011D0008093C7033EC10E949B28811102C00E94D8 +:1011E00077280E94B32890E09093F2038093F10354 +:1011F000C23090E5D90721F48091F103816086C067 +:10120000C43020E5D20721F48091F10382607EC0D2 +:10121000C63080E5D80721F48091F103846076C060 +:10122000C83090E5D90719F48091F10327C0CA307E +:1012300020E5D20721F48091F103806167C0CC30B2 +:1012400080E5D80721F48091F10380625FC0CE3041 +:1012500090E5D90721F48091F103806457C0C03133 +:1012600020E5D20721F48091F10380684FC0C2319C +:1012700080E5D80729F48091F1038460886046C036 +:10128000C33090E5D90721F48091F1038E7F3EC0F1 +:10129000C53020E5D20721F48091F1038D7F36C05F +:1012A000C73080E5D80721F48091F1038B7F2EC0F1 +:1012B000C93090E5D90719F48091F10326C0CB30ED +:1012C00020E5D20721F48091F1038F7E1FC0CD303D +:1012D00080E5D80721F48091F1038F7D17C0CF30CE +:1012E00090E5D90721F48091F1038F7B0FC0C131C4 +:1012F00020E5D20721F48091F1038F7707C0C33135 +:10130000D04531F48091F1038B7F877F8093F10387 +:101310008091F1030E94B7289CC08D2F99278F7070 +:10132000992781309105D9F49E012370332702C09B +:10133000880F991F2A95E2F79C688E0144E0000F00 +:10134000111F4A95E1F700271370802B912B53E072 +:10135000CC0FDD1F5A95E1F7C076DD272FC0823014 +:10136000910531F4DC2FCC278E01016F106A71C01A +:101370008330910569F4CE018370992701E010E074 +:1013800002C0000F111F8A95E2F7C8019C680FC0C8 +:10139000049709F05EC0CE018370992701E010E048 +:1013A00002C0000F111F8A95E2F7C8019A6823E076 +:1013B000CC0FDD1F2A95E1F7C07ED7708C010C2B76 +:1013C0001D2B47C0DF708E01106243C000E010E0AB +:1013D00040C08E013EC001E810E43BC003E810E4C9 +:1013E00038C002EE14E435C009EE14E432C00AEE4F +:1013F00014E42FC005EB14E42CC006EB14E429C060 +:1014000007EB14E426C00CEC14E423C00DEC14E448 +:1014100020C003E815E41DC00AE815E41AC002E97B +:1014200015E417C004E915E414C001E216E411C084 +:1014300003E216E40EC004E216E40BC005E216E473 +:1014400008C006E216E405C007E216E402C00AE29C +:1014500016E4C801DF91CF911F910F9108959CE090 +:10146000799FF00111249CE3899FE00DF11D112467 +:10147000E60FF11DEE0FFF1FE658FE4F8591949188 +:10148000803E9105E0F4803C910558F5813391054B +:1014900009F46FC048F48932910509F463C08A32B7 +:1014A000910509F46DC072C089339105E9F0823865 +:1014B0009105D1F08533910509F44DC067C0833E95 +:1014C000910581F138F4803E9105B9F0823E910595 +:1014D000D9F05CC0863E910561F1873E9105A1F18E +:1014E00055C00E94D60708952091F10320FD02C047 +:1014F00021FF4CC080EE90E049C08091F10380FF55 +:10150000F9CF89E390E042C08091F10382FF0EC0E1 +:101510008091F10384FF03C080E090E037C083EE48 +:1015200090E034C08091F10382FFF2CF82EE90E030 +:101530002DC08091F10383FF0BC08091F10384FDE6 +:10154000EBCF87EE90E022C08091F10383FFF5CFCF +:1015500086EE90E01BC08091F10385FF07C089E211 +:1015600090E014C08091F10385FFF9CF85E390E00E +:101570000DC08091F10386FF07C08AE290E006C0AB +:101580008091F10386FFF9CF81E390E00E94E607A6 +:101590000895CF92DF92EF92FF920F931F9301E095 +:1015A00010E020E030E06801790104C0CC0CDD1CC3 +:1015B000EE1CFF1C8A95D2F704C0000F111F221FDA +:1015C000331F6A95D2F70C291D292E293F29C09077 +:1015D000B303D090B403E090B503F090B603C022FB +:1015E000D122E222F322842FC016D106E206F306AE +:1015F00041F41F910F91FF90EF90DF90CF900C94EA +:10160000A5251F910F91FF90EF90DF90CF900C9444 +:10161000C62508950C94090B5F926F927F928F926A +:101620009F92AF92BF92CF92DF92EF92FF920F9371 +:101630001F93CF93DF93CDB7DEB72A970FB6F894F9 +:10164000DEBF0FBECDBFCE0101966C014E019BE007 +:10165000890E911C20E030E040E050E060E070E056 +:1016600000E010E0E12CF12C6C2C5D2C8AE0782E4F +:10167000AA24A394B12CEBE6F2E0A62DB52D872D7C +:1016800001900D928A95E1F7F601819191916F0198 +:10169000FC01E07FFF27E032F10559F48F709927B4 +:1016A000F50102C0EE0FFF1F8A95E2F7EE2AFF2A2E +:1016B00037C0E033F10559F48F709927F50102C066 +:1016C000EE0FFF1F8A95E2F70E2B1F2B29C0E03487 +:1016D000F10559F48F709927F50102C0EE0FFF1F35 +:1016E0008A95E2F76E2B7F2B1BC0E035F10559F48C +:1016F0008F709927F50102C0EE0FFF1F8A95E2F760 +:101700004E2B5F2B0DC0E036F10551F48F709927F9 +:10171000F50102C0EE0FFF1F8A95E2F72E2B3F2B3B +:10172000C814D90409F0A7CF84B19E2D90958923C0 +:1017300084B985B1E82AE5B887B1902F90958923BF +:1017400087B988B1082B08B98AB1962F909589235B +:101750008AB98BB1682B6BB98DB1942F9095892381 +:101760008DB98EB1482B4EB980B3922F90958923B5 +:1017700080BB81B3282B21BB2A960FB6F894DEBF1D +:101780000FBECDBFDF91CF911F910F91FF90EF90D2 +:10179000DF90CF90BF90AF909F908F907F906F9091 +:1017A0005F9008955F926F927F928F929F92AF9217 +:1017B000BF92CF92DF92EF92FF920F931F93CF933E +:1017C000DF93CDB7DEB768970FB6F894DEBF0FBED4 +:1017D000CDBF85B7806885BF85B7806885BF0E940B +:1017E0000C0BCE0101966C014E0199E1890E911C02 +:1017F00020E030E040E050E060E070E000E010E029 +:10180000E12CF12C6C2C5D2C88E1782EAA24A39479 +:10181000B12CE5E7F2E0A62DB52D872D01900D92B4 +:101820008A95E1F7F601819191916F01FC01E07FCA +:10183000FF27E032F10559F48F709927F50102C0B6 +:10184000EE0FFF1F8A95E2F7EE2AFF2A37C0E0333A +:10185000F10559F48F709927F50102C0EE0FFF1FB3 +:101860008A95E2F70E2B1F2B29C0E034F10559F4BD +:101870008F709927F50102C0EE0FFF1F8A95E2F7DE +:101880006E2B7F2B1BC0E035F10559F48F70992723 +:10189000F50102C0EE0FFF1F8A95E2F74E2B5F2B7A +:1018A0000DC0E036F10551F48F709927F50102C0A3 +:1018B000EE0FFF1F8A95E2F72E2B3F2BC814D90499 +:1018C00009F0A7CF84B19E2D9095892384B985B165 +:1018D000E82AE5B887B1902F9095892387B988B118 +:1018E000082B08B98AB1962F909589238AB98BB1B4 +:1018F000682B6BB98DB1942F909589238DB98EB1DA +:10190000482B4EB980B3922F9095892380BB81B329 +:10191000282B21BBE2E0F3E0A8EFB2E01192119294 +:101920001D921D9283E0EC30F807C1F768960FB660 +:10193000F894DEBF0FBECDBFDF91CF911F910F9105 +:10194000FF90EF90DF90CF90BF90AF909F908F90DF +:101950007F906F905F900C94CB075F926F927F9215 +:101960008F929F92AF92BF92CF92DF92EF92FF92AF +:101970000F931F93CF93DF93CDB7DEB7A2970FB628 +:10198000F894DEBF0FBECDBF6E0149E1C40ED11C7D +:1019900088EFA82E82E0B82E75019AE0592E4601F4 +:1019A00001E010E028E1622E35E0732EEBE6F2E074 +:1019B000D401852D01900D928A95E1F7D6018D9184 +:1019C0009D916D019C01207F33272032310591F4D8 +:1019D00024B18F709927F80102C0EE0FFF1F8A957E +:1019E000E2F7CF01922F982B94B995B18095892376 +:1019F00085B953C02033310591F427B18F709927F1 +:101A0000A80102C0440F551F8A95E2F7CA01922F20 +:101A1000982B97B998B18095892388B93EC0203416 +:101A2000310591F42AB18F709927D80102C0AA0F0D +:101A3000BB1F8A95E2F7CD01922F982B9AB99BB1E3 +:101A4000809589238BB929C02035310591F42DB1BA +:101A50008F709927F80102C0EE0FFF1F8A95E2F7F9 +:101A6000CF01922F982B9DB99EB1809589238EB975 +:101A700014C02036310589F420B38F709927A8014E +:101A800002C0440F551F8A95E2F7CA01922F982B86 +:101A900090BB91B38095892381BB50EA5A95F1F7A9 +:101AA000BE016F5F7F4F20E030E040E050E0E5E7AF +:101AB000F2E0DE011196862D01900D928A95E1F7F4 +:101AC000DB018D919D91BD01FC01E07FFF27E0329C +:101AD000F10511F4E3B113C0E033F10511F4E6B1FF +:101AE0000EC0E034F10511F4E9B109C0E035F105AB +:101AF00011F4ECB104C0E036F105B9F4EFB1F0E057 +:101B00008F70992702C0F595E7958A95E2F7E0FD79 +:101B100008C0C801042E02C0880F991F0A94E2F77A +:101B200002C080E090E0282B392B4F5F5F4F4C3094 +:101B3000510509F0BCCFF70180819181821793078D +:101B400021F031832083709209020E940C0BF2E095 +:101B5000EF0EF11C42E0E41643E0F40609F026CF54 +:101B6000809109028823C9F081508093090288235B +:101B700039F08FE99FE00197F1F700C000000DC038 +:101B8000E2E0F3E0D5018D919D915D018193919308 +:101B9000B2E0AB16B3E0BB06A9F70E94D10781E023 +:101BA000A2960FB6F894DEBF0FBECDBFDF91CF91E6 +:101BB0001F910F91FF90EF90DF90CF90BF90AF906B +:101BC0009F908F907F906F905F900895E82FF0E046 +:101BD000EE0FFF1FEE5FFC4F808191810895089505 +:101BE0008091DC0381608093DC030C94C928809190 +:101BF000DC038E7F8093DC030C94C9280E949B2811 +:101C0000811102C00E9477280E94C5288093DC03BE +:101C10003E9A809171008D7F8093710082E0809365 +:101C200090008AE18093910081E080930E030895F3 +:101C300080910E03811102C00E94FE0D10925E037E +:101C400010925D03809171008D7F8093710080916F +:101C500090008F77809390001092200310921F03C2 +:101C600010925703109258031092590310925A037E +:101C70001092560310925503E5E3F3E0A5E2B3E0BA +:101C800011921192119211921D921D9283E0E535ED +:101C9000F807B1F70895CF92DF92EF92FF920F937A +:101CA0001F93CF93DF9320911F03222309F484C055 +:101CB0006B017C0180910E03811102C00E94FE0D18 +:101CC00005E513E0C7E0D0E0A7019601F801929185 +:101CD0008291729162918F010E94052E811131C013 +:101CE000FE01EE0FFF1FEE0FFF1FEB5CFC4F10829B +:101CF000118212821382DE01AA0FBB1FAB5DBC4FA3 +:101D000011961C921E92C730D105E9F021964481AC +:101D10005581668177814083518362837383148206 +:101D200015821682178212968D919C9113971196A7 +:101D30009C938E9313961C921E9212973496129631 +:101D4000E2CF219708F680915D0390915E030197A1 +:101D500097FD05C090935E0380935D0304C01092CD +:101D60005E0310925D0380915D0390915E0320916C +:101D70005B0330915C032817390724F010925C0351 +:101D800010925B03892BC1F4809171008D7F809349 +:101D90007100809190008F7780939000109257038C +:101DA000109258031092590310925A03109256033E +:101DB0001092550310921F03DF91CF911F910F9145 +:101DC000FF90EF90DF90CF9008951F920F920FB683 +:101DD0000F9211244F925F926F927F928F929F92F7 +:101DE000AF92BF92CF92DF92EF92FF922F933F93E9 +:101DF0004F935F936F937F938F939F93AF93BF9313 +:101E0000CF93DF93EF93FF9380911F03882309F40F +:101E10009BC1C0915D03D0915E031C161D060CF0A2 +:101E200093C140900F035090100360901103709085 +:101E3000120320E030E0A901C301B2010E94B02FDB +:101E400018160CF065C0C130D10509F452C080915C +:101E50005B0390915C03BE010E9482317C019093F0 +:101E60005C0380935B038090210390902203A090F9 +:101E70002303B090240320E030E040E85FE3C50195 +:101E8000B4010E94A12D60932103709322038093DB +:101E9000230390932403F701EE0FFF1FEE0FFF1FA4 +:101EA000EB5CFC4FA301920160817181828193817F +:101EB0000E94092E20E030E040E05EE30E94B42F53 +:101EC0009B01AC01C501B4010E94B02F18168CF41F +:101ED000C7010196BE010E94823190935C038093FA +:101EE0005B0310922103109222031092230310929D +:101EF0002403E0915B03F0915C03EE0FFF1FEE0FF4 +:101F0000FF1FEB5CFC4F6081718182819381D0C0A7 +:101F1000C0905703D0905803E0905903F0905A03B3 +:101F200020E030E0A901C701B6010E94052E2197EB +:101F3000882309F4A2C0FE01EE0FFF1FEE0FFF1F62 +:101F4000EB5CFC4F80809180A280B380A50194015E +:101F5000C701B6010E94052E87FF31C0A50194017B +:101F600060E070E08CED93EC0E94092E20E030E000 +:101F700040E451E40E94092E20E030E040E05FE3BD +:101F80000E94B42F9B01AC0160E070E080E090E41F +:101F90000E9417309B01AC01C501B4010E94B42F0F +:101FA0009B01AC01C701B6010E94052E87FF07C047 +:101FB000A701960160E070E08CED93E439C0A501C3 +:101FC0009401C701B6010E94B02F18160CF055C03D +:101FD000A501940160E070E08CED93E40E94092E6D +:101FE00020E030E040E451E40E94092E20E030E09F +:101FF00040E05FE30E94B42F9B01AC0160E070E021 +:1020000080E090E40E9417309B01AC01C501B4014F +:102010000E94B42F9B01AC01C701B6010E94B02FF2 +:1020200018165CF5A701960160E070E08CED93EC6A +:102030000E94092E20E030E040E451E40E94092E85 +:1020400020E030E040E05FE30E94B42F9B01AC0150 +:1020500060E070E080E090E40E9417309B01AC01EA +:10206000C701B6010E94B42F6093570370935803C1 +:102070008093590390935A0313C0FE01EE0FFF1F84 +:10208000EE0FFF1FEB5CFC4F80819181A281B38139 +:102090008093570390935803A0935903B0935A0326 +:1020A00060915703709158038091590390915A039E +:1020B00020910C0330910D032F3F4FEF340731F087 +:1020C0002F5F3F4F30930D0320930C030E940C139E +:1020D0006B017C0120E034E244EF51E40E94052EC4 +:1020E00087FF08C086EFC82E88E2D82E84EFE82E3E +:1020F00081E4F82E20E030E040E051E4C701B60171 +:102100000E94B42F9B01AC0160E074E284E79BE481 +:102110000E94092E6B017C010E94712E7093970022 +:102120006093960020910A0230910B0240910C02BC +:1021300050910D02C701B6010E94B42F0E94712E6A +:10214000709399006093980080912003882309F48C +:1021500033C1C0901B03D0901C03E0901D03F0908E +:102160001E0320E030E0A901C701B6010E94B02F94 +:102170001816D4F580910C0390910D038F3F2FEF2B +:10218000920729F0019690930D0380930C03C701E9 +:10219000B6010E940C1320E030E040E051E40E94C0 +:1021A000B42F9B01AC0160E074E284E79BE40E94E1 +:1021B000092E6B017C010E94712E70939700609331 +:1021C000960020910A0230910B0240910C0250912E +:1021D0000D02C701B6010E94B42F0E94712E7093A8 +:1021E00099006093980008C0109297001092960092 +:1021F0001092990010929800609115037091160347 +:102200006F5F7F4F709316036093150320919600C4 +:102210003091970080E090E0232BF1F0C091960080 +:10222000D09197000E94A22E6B017C01BE0180E03C +:1022300090E00E94A22E9B01AC0160911703709167 +:1022400018038091190390911A030E94092E20E02F +:102250003FEF4FE757E410C00E94A22E6B017C01B4 +:1022600020E030EE4FEF54E46091170370911803B3 +:102270008091190390911A030E94B42F9B01AC0125 +:10228000C701B6010E94B02F87FD96C0809113034D +:102290008F5F8093130390E02091D8033091D9038E +:1022A00082179307A0F08091E303882319F010921E +:1022B00013030DC0809171008D7F80937100809118 +:1022C00090008F7780939000109220037DC08091C2 +:1022D0001403C0911303811128C0C090DD03D09076 +:1022E000DE03E090DF03F090E00320E030E0A9019E +:1022F000C701B6010E94B02F1816BCF481E080938C +:10230000140310921B0310921C0310921D031092D1 +:102310001E03C0921703D0921803E0921903F092A3 +:102320001A03C150C093130343C0109214031092B8 +:102330000D0310920C03E091DA03F091DB0348E007 +:10234000C49FE00DF11D112480819181A281B38190 +:1023500080931B0390931C03A0931D03B0931E0353 +:1023600020E030E040E85EE36481758186819781FA +:102370000E94B42F6B017C0120E030E048EC52E475 +:1023800060910E0270910F028091100290911102E3 +:102390000E94092E9B01AC01C701B6010E94B42F17 +:1023A00060931703709318038093190390931A0393 +:1023B00010921603109215038091DC0380FD04C077 +:1023C0001092200310921F03FF91EF91DF91CF91A4 +:1023D000BF91AF919F918F917F916F915F914F913D +:1023E0003F912F91FF90EF90DF90CF90BF90AF90F3 +:1023F0009F908F907F906F905F904F900F900FBE47 +:102400000F901F901895CF92DF92EF92FF92CF938B +:10241000DF936B017C01EA0180910E03811102C000 +:102420000E94FE0D8091DC0380FF46C080915D0319 +:1024300090915E0308970CF03FC0809171008D7FF2 +:10244000809371008091200381110E94180E81E019 +:1024500080931F0310920D0310920C0320E030E0D4 +:10246000A901C701B6010E94B02F1816DCF48091B3 +:102470005D0390915E03FC01EE0FFF1FEE0FFF1F47 +:10248000EB5CFC4FC082D182E282F382FC01EE0F52 +:10249000FF1FEB5DFC4FD183C083019690935E03D9 +:1024A00080935D03809171008260809371008091C0 +:1024B0009000806880939000DF91CF91FF90EF9023 +:1024C000DF90CF9008958F929F92AF92BF92CF925C +:1024D000DF92EF92FF920F931F93CF93DF93EC0164 +:1024E0007B01D42E4801590180910E03811102C055 +:1024F0000E94FE0D8091DC0380FF6BC08091710013 +:102500008D7F8093710080911F0381110E94180EAE +:1025100081E080932003D093DB03C093DA03F09231 +:10252000D903E092D803D092E3038092DD03909226 +:10253000DE03A092DF03B092E00310922103109219 +:102540002203109223031092240310921303888114 +:102550009981AA81BB8180931B0390931C03A09354 +:102560001D03B0931E0320E030E040E85EE36C8181 +:102570007D818E819F810E94B42F6B017C0120E0C0 +:1025800030E048EC52E460910E0270910F028091AD +:102590001002909111020E94092E9B01AC01C7010B +:1025A000B6010E94B42F60931703709318038093B1 +:1025B000190390931A031092160310921503809139 +:1025C0007100826080937100809190008068809398 +:1025D0009000DF91CF911F910F91FF90EF90DF90CE +:1025E000CF90BF90AF909F908F90089580915F03A0 +:1025F00090E0019666E070E00E94823180935F0374 +:10260000089580915F0390E0019766E070E00E947A +:10261000823180935F0308958F929F92AF92BF9211 +:10262000CF92DF92EF92FF920F931F93CF93DF939E +:102630006B017C01C0910C03D0910D03BE0180E0C1 +:1026400090E00E94A22E4B015C01A701960160E080 +:1026500070E08CE594E40E94092E9B01AC01C50159 +:10266000B4010E94B42F0E94762E20915F03233084 +:1026700009F473C028F4222351F02130E9F02CC171 +:10268000243009F4A0C0253009F4E0C025C180E061 +:1026900090E0A0E0BFE380930A0290930B02A09326 +:1026A0000C02B0930D0210920F03109210031092BF +:1026B00011031092120310C110920F031092100315 +:1026C00010921103109212036431710540F46A30C4 +:1026D000710560F520E030E040E85EE32BC0693C26 +:1026E000710508F0AAC080E090E00E94A22E20E0D0 +:1026F00030E040EA51E40E94A02D20E030E044E3C5 +:1027000053E40E94092E9B01AC010E94B42F20E0EB +:1027100030E040E05EE30E94B42F9B01AC0160E03A +:1027200070E080E09EE30E94A02D44C020E030E0F5 +:1027300040E05FE3C701B6010E94B42F6B017C014A +:1027400080E090E0A0E0BEE380930A0290930B0249 +:10275000A0930C02B0930D02BFC010920F03109211 +:10276000100310921103109212034AE0469F900149 +:10277000479F300D1124C90168EB7BE00E946E3148 +:10278000BC016C5D754077FF03C07195619571095F +:10279000882777FD8095982F0E94A42E2EE333EC96 +:1027A0004EE259E30E94B42F20E030E040EC5EE3BB +:1027B0000E94A12D60930A0270930B0280930C0279 +:1027C00090930D0289C010920F0310921003109283 +:1027D000110310921203CE0183709927892BE1F027 +:1027E000BE016170772780E090E00E94A22E20E079 +:1027F00030E040E05EE30E94B42F20E030E040E4AF +:102800005FE30E94A12D60930A0270930B028093F4 +:102810000C0290930D020CC080E090E0A0E0BFE3BA +:1028200080930A0290930B02A0930C02B0930D02C6 +:10283000C770DD27CD2B09F04FC010920A0210920D +:102840000B0210920C0210920D0246C010920F0360 +:1028500010921003109211031092120300E010E086 +:1028600020E03FE300930A0210930B0220930C0236 +:1028700030930D026739710578F180E090E00E9495 +:10288000A22E20E030E047E153E40E94A02D20E09A +:1028900030E04AE754E40E94092E20E030E048E4AA +:1028A00052E40E94B42F20E030E040EA51E40E945C +:1028B000E62E0E94712E660F771F660F771FFB01B1 +:1028C000E357FD4F2081318142815381C701B60119 +:1028D0000E94B42F6B017C01C701B601DF91CF913B +:1028E0001F910F91FF90EF90DF90CF90BF90AF902E +:1028F0009F908F900895809168030895CF93DF9300 +:1029000000D01F92CDB7DEB79C018091E8038430E0 +:1029100019F593E099833B832A839093E9008FEF25 +:102920009091E800815095FD06C095ED9A95F1F7DC +:1029300000008111F5CF8091E80085FF0DC040E0D7 +:1029400050E063E070E0CE0101960E94B7168091DE +:10295000E8008E778093E8000F900F900F90DF9142 +:10296000CF910895CF93DF9300D01F92CDB7DEB7FC +:102970002091E803243021F522E029839B838A8378 +:1029800083E08093E9008FEF9091E800815095FDFE +:1029900006C095ED9A95F1F700008111F5CF809171 +:1029A000E80085FF0DC040E050E063E070E0CE013C +:1029B00001960E94B7168091E8008E778093E80018 +:1029C0000F900F900F90DF91CF9108952091E80321 +:1029D0002430F1F422E02093E9002FEF3091E80059 +:1029E000215035FD06C035ED3A95F1F70000211173 +:1029F000F5CF2091E80025FF0BC040E050E065E0F6 +:102A000070E00E94B7168091E8008E778093E8000E +:102A10000895CF93DF932091E803243039F521E026 +:102A20002093E9002FEF3091E800215035FD06C0DA +:102A300035ED3A95F1F700002111F5CF2091E8002E +:102A400025FF14C0EC0140E050E068E070E00E9417 +:102A5000B7168091E8008E778093E80088E0FE0149 +:102A6000A0E6B3E001900D928A95E1F7DF91CF9156 +:102A700008958091E703811109C00E944C180E94BB +:102A8000A9188091E20084608093E200089510927A +:102A9000E7030895089508950C94A72742E061EC98 +:102AA00081E00E94C61742E061EC82E00E94C617F6 +:102AB00042E061EC83E00C94C6178091EA03833016 +:102AC00009F453C030F4813071F0823009F48CC0C5 +:102AD00008958A3009F478C08B3009F45EC08930DB +:102AE00009F09AC020C08091E903813A09F094C0AE +:102AF0008091E800877F8093E8008091ED039091BA +:102B0000EE03892B21F468E080E693E003C060E0E7 +:102B100080E090E070E00E9402178091E8008B77DF +:102B20008093E80008958091E903813209F074C030 +:102B30008091ED039091EE03892B09F06DC0809197 +:102B4000E800877F8093E8008091E80082FD05C05F +:102B50008091E8038111F8CF5FC08091F1008093EC +:102B600068038091E8008B7753C08091E903813A34 +:102B700009F052C08091ED039091EE03892B09F08A +:102B80004BC08091E800877F8093E8008091E80047 +:102B900080FFFCCF80911C0236C08091E903813216 +:102BA000D9F58091ED039091EE03892BA9F58091E1 +:102BB000E800877F8093E8000E94FB178091EB0379 +:102BC00080931C020C946C218091E903813221F5E1 +:102BD0008091E800877F8093E8000E94FB17809136 +:102BE000EC038093690308958091E903813AA1F48D +:102BF0008091E800877F8093E8008091E80080FF63 +:102C0000FCCF809169038093F1008091E8008E777A +:102C10008093E8000C94FB17089584B7877F84BFE6 +:102C200088E10FB6F89480936000109260000FBEA8 +:102C300090E080E80FB6F894809361009093610073 +:102C40000FBE0E949E1B0E944C180E94A9188091E2 +:102C5000E20084608093E20078940E942F1B0E941F +:102C6000A01B82E192E00E944A1B8091E80385301C +:102C700069F40E9461278091E6038823B1F30E94E2 +:102C80008F27882391F30E94A116EFCF0E94A81BE3 +:102C9000ECCF292F332723303105C9F064F42130DC +:102CA000310581F02230310509F043C084E590E020 +:102CB00020ED39E042C021323105F1F022323105F8 +:102CC00041F137C082E190E024E23AE036C0992732 +:102CD0008130910541F08230910541F0892B49F511 +:102CE000ECECF9E005C0EEE9F9E002C0E2E7F9E05A +:102CF000849190E09F0121C06330D8F4E62FF0E08A +:102D0000EE0FFF1FEA51FD4F2081318189E090E0F5 +:102D100014C0633070F470E0FB01EE0FFF1FE0524F +:102D2000FD4F20813181FB01E352FD4F808190E016 +:102D300004C080E090E020E030E0FA01318320839D +:102D4000089580E189BD82E189BD09B400FEFDCF0F +:102D50008091D8008F7D8093D8008091E0008260C0 +:102D60008093E0008091E00081FDFCCF0895CF9238 +:102D7000DF92EF92FF920F931F93CF93DF93EC01BB +:102D80008B016A010E941A18811133C0C114D10449 +:102D900039F0F60180819181081B190BC80FD91FEA +:102DA000E12CF12C0115110519F18091E80085FD48 +:102DB00016C08091E8008E778093E800C114D1049A +:102DC00049F0F60180819181E80EF91EF182E082DE +:102DD00085E00FC00E941A18882321F30AC0899148 +:102DE0008093F10001501109FFEFEF1AFF0ADACFCB +:102DF00080E0DF91CF911F910F91FF90EF90DF90D6 +:102E0000CF9008952091EF033091F00326173707F4 +:102E100048F06115710539F42091E8002E77209370 +:102E2000E80001C0B90140E061157105A9F12091E8 +:102E3000E803222309F443C0253009F442C020915D +:102E4000E80023FD40C02091E80022FD32C020911F +:102E5000E80020FFE9CF4091F3002091F20030E03C +:102E6000342BFC01CF016115710559F02830310573 +:102E700040F481918093F100615071092F5F3F4FC1 +:102E8000F1CF41E02830310509F040E02091E80021 +:102E90002E772093E800C8CF4111C9CF0AC0809196 +:102EA000E803882361F0853061F08091E80083FDBC +:102EB0000AC08091E80082FFF2CF80E0089582E0AE +:102EC000089583E0089581E008952091EF03309103 +:102ED000F0032617370748F06115710539F4209182 +:102EE000E8002E772093E80001C0B901FC0120E042 +:102EF0006115710591F18091E803882309F440C0C0 +:102F0000853009F43FC08091E80083FD3DC0809189 +:102F1000E80082FD2FC08091E80080FFE9CF20917A +:102F2000F3008091F20090E0922B6115710559F049 +:102F30008830910540F424912093F100319661503E +:102F400071090196F2CF21E0089709F020E0809105 +:102F5000E8008E778093E800CBCF2111CCCF0AC058 +:102F60008091E803882361F0853061F08091E8006A +:102F700083FD0AC08091E80082FFF2CF80E00895CF +:102F800082E0089583E0089581E00895982F9730B6 +:102F900058F59093E900981739F07091EC00209162 +:102FA000ED005091F00003C0242F762F50E021FF58 +:102FB00019C03091EB003E7F3093EB003091ED0073 +:102FC0003D7F3093ED003091EB0031603093EB00AA +:102FD0007093EC002093ED005093F0002091EE00F0 +:102FE00027FF07C09F5FD3CF8F708093E90081E0F8 +:102FF000089580E008958091E90387FF11C08091D2 +:10300000E80082FD05C08091E8038111F8CF11C06E +:103010008091E8008B770BC08091E803882349F00A +:103020008091E80080FFF8CF8091E8008E77809350 +:10303000E80008952091E4003091E50095E6409184 +:10304000EC00842F817040FF22C08091E80080FD59 +:103050001CC08091E803882391F0853091F0809125 +:10306000EB0085FD10C04091E4005091E50042174F +:10307000530729F39A01915011F784E0089582E0F3 +:10308000089583E0089581E0089580E008954091D7 +:10309000E80042FFDECF08950E94BA180E94C218CD +:1030A000E0EEF0E0808181608083E8EDF0E08081F7 +:1030B0008F77808319BCA7EDB0E08C918E7F8C93C5 +:1030C00080818F7E80831092E70308950F931F9372 +:1030D000CF93DF930E94BA180E94C218C8EDD0E0C7 +:1030E00088818F77888388818068888388818F7DB5 +:1030F000888319BC1092E8031092E4031092E6034F +:103100001092E50300EE10E0F80180818B7F808350 +:1031100088818160888342E060E080E00E94C61779 +:10312000E1EEF0E080818E7F8083E2EEF0E080814E +:1031300081608083808188608083F80180818E7FB8 +:103140008083888180618883DF91CF911F910F9167 +:103150000895E8EDF0E080818F7E8083E7EDF0E078 +:1031600080818160808384E082BF81E08093E70377 +:103170000C946618E8EDF0E080818E7F80831092D9 +:10318000E20008951092DA001092E10008951F9273 +:103190000F920FB60F9211242F933F934F935F938B +:1031A0006F937F938F939F93AF93BF93EF93FF930F +:1031B0008091E10082FF0BC08091E20082FF07C096 +:1031C0008091E1008B7F8093E1000E942E1B809113 +:1031D000DA0080FF1FC08091D80080FF1BC0809163 +:1031E000DA008E7F8093DA008091D90080FF0DC0D5 +:1031F00080E189BD82E189BD09B400FEFDCF81E097 +:103200008093E8030E94391505C019BC1092E803A9 +:103210000E9447158091E10080FF19C08091E20073 +:1032200080FF15C08091E2008E7F8093E200809144 +:10323000E20080618093E2008091D80080628093F8 +:10324000D80019BC85E08093E8030E944B1580915B +:10325000E10084FF30C08091E20084FF2CC080E157 +:1032600089BD82E189BD09B400FEFDCF8091D800FF +:103270008F7D8093D8008091E1008F7E8093E10064 +:103280008091E2008F7E8093E2008091E200816075 +:103290008093E2008091E403882311F084E007C06A +:1032A0008091E30087FD02C081E001C083E080934C +:1032B000E8030E944C158091E10083FF29C08091B2 +:1032C000E20083FF25C08091E100877F8093E100C9 +:1032D00082E08093E8031092E4038091E1008E7F06 +:1032E0008093E1008091E2008E7F8093E2008091E4 +:1032F000E20080618093E20042E060E080E00E94B2 +:10330000C6178091F00088608093F0000E944A15F3 +:10331000FF91EF91BF91AF919F918F917F916F91AD +:103320005F914F913F912F910F900FBE0F901F9083 +:1033300018951F920F920FB60F9211242F933F935F +:103340004F935F936F937F938F939F93AF93BF93AD +:10335000CF93DF93EF93FF93C091E900CF708091FB +:10336000EC00D82FD17080FDD0E81092E900809158 +:10337000F000877F8093F00078940E94DD1910920E +:10338000E9008091F00088608093F000CD2BCF7031 +:10339000C093E900FF91EF91DF91CF91BF91AF9181 +:1033A0009F918F917F916F915F914F913F912F915D +:1033B0000F900FBE0F901F9018951F93CF93DF9320 +:1033C000CDB7DEB7AA970FB6F894DEBF0FBECDBF5C +:1033D000E9EEF3E088E08E0F9091F10091938E1367 +:1033E000FBCF0E945D158091E80083FF1FC1809193 +:1033F000E9039091EA03492F50E04A30510508F063 +:1034000015C1FA01EE59FF4F0C949631803881F0C6 +:10341000823809F00BC18091ED038F708093E90031 +:103420008091EB0085FB882780F91092E90006C0A7 +:103430008091E5039091E603911182609091E800FC +:10344000977F9093E8008093F1001092F100C8C03C +:10345000282F2D7F09F0EAC0882319F0823061F00F +:10346000E5C08091EB03813009F0E0C0933009F0B2 +:1034700080E08093E6032BC08091EB03811127C08D +:103480008091ED038F7009F4D1C08093E900209101 +:10349000EB0020FF1CC0933021F48091EB00806290 +:1034A00014C09091EB0090619093EB0021E030E02C +:1034B000A90102C0440F551F8A95E2F74093EA0024 +:1034C0001092EA008091EB0088608093EB001092EC +:1034D000E9008091E800877F86C08111A7C0109124 +:1034E000EB031F778091E3008078812B8093E300CA +:1034F0008091E800877F8093E8000E94FB1780910D +:10350000E80080FFFCCF8091E30080688093E300B7 +:10351000111102C082E001C083E08093E80386C0FD +:103520008058823008F082C08091EB039091EC03C8 +:103530008C3D53E0950779F583E08A838AE289839D +:103540004FB7F894DE01139620E03EE051E2E32FFE +:10355000F0E050935700E49120FF03C0E295EF7034 +:103560003F5FEF708E2F90E0EA3010F0C79601C0F9 +:10357000C0968D939D932F5F243149F74FBF809163 +:10358000E800877F8093E8006AE270E0CE01019650 +:103590000E94021714C0AE014F5F5F4F6091ED03B0 +:1035A0000E944916BC01009709F440C09091E800C0 +:1035B000977F9093E80089819A810E946517809196 +:1035C000E8008B778093E80031C0803879F58091EE +:1035D000E800877F8093E8008091E4038093F10006 +:1035E0008091E8008E778093E8000E94FB171EC050 +:1035F00081111CC09091EB039230C0F48091E800DF +:10360000877F8093E8009093E4030E94FB178091EA +:10361000E403811106C08091E30087FD02C081E0D0 +:1036200001C084E08093E8030E944E158091E80079 +:1036300083FF0AC08091E800877F8093E800809133 +:10364000EB0080628093EB00AA960FB6F894DEBF81 +:103650000FBECDBFDF91CF911F9108950895CF93F5 +:103660008091E8038823A1F0C091E900CF70909188 +:10367000EC00892F817090FD80E8C82B1092E90042 +:103680008091E80083FD0E94DD19CF70C093E900AE +:10369000CF91089590936F0380936E030895E09106 +:1036A0006E03F0916F03309721F00190F081E02DCF +:1036B000099480E00895E0916E03F0916F033097D4 +:1036C00021F00280F381E02D09940895E0916E03CA +:1036D000F0916F03309721F00480F581E02D09947B +:1036E000089520916C0330916D038217930771F058 +:1036F00090936D0380936C03E0916E03F0916F03E0 +:10370000309721F00680F781E02D099408952091EB +:103710006A0330916B038217930771F090936B03E8 +:1037200080936A03E0916E03F0916F03309721F06C +:103730000084F185E02D0994089508950C949D1B53 +:103740000E94DB270E94D20B0E9461280C94092D55 +:103750004F925F927F928F929F92AF92BF92CF9241 +:10376000DF92EF92FF920F931F93CF93DF93CDB72A +:10377000DEB72A970FB6F894DEBF0FBECDBF0E940A +:10378000AD0C91E7C92E93E0D92E00E010E0AA24F9 +:10379000A394B12C702E802F0E94E60D4C01F601EF +:1037A000419051906F014826592641145104B1F4BB +:1037B0000F5F1F4F0530110569F78FEF89838A83EB +:1037C0001B820E94E4278160782F9D838C8349812E +:1037D0005A816B818D810E94611C3AC08091C70320 +:1037E00081FD0E94EF0D20E030E07501022E02C045 +:1037F000EE0CFF1C0A94E2F7C70184219521892B66 +:1038000009F12E837F828E209F2091E0892809F480 +:1038100090E098870E94E4278160782F9A878987B3 +:103820004E815F8168858A850E94611C000F111F8F +:10383000F801EF58FC4F80819181E826F926F1824A +:10384000E08206C02F5F3F4F2C30310571F6B0CFBC +:103850000E94482A109170030E944F1B1817D9F03C +:103860000E944F1B809370032A960FB6F894DEBF18 +:103870000FBECDBFDF91CF911F910F91FF90EF90C1 +:10388000DF90CF90BF90AF909F908F907F905F9090 +:103890004F900C940A0B2A960FB6F894DEBF0FBE19 +:1038A000CDBFDF91CF911F910F91FF90EF90DF90EF +:1038B000CF90BF90AF909F908F907F905F904F90F0 +:1038C0000895CF93DF93CDB7DEB72B970FB6F8945B +:1038D000DEBF0FBECDBF4F83588769877A878B873E +:1038E000DE01119686E0FD0111928A95E9F785E0E7 +:1038F000FE01379601900D928A95E1F749815A8130 +:103900006B817C818D819E810E9406242B960FB64F +:10391000F894DEBF0FBECDBFDF91CF910895CF9356 +:10392000882309F4C2C0C82F823859F40E944F1B63 +:1039300081FDBBC089E30E94AF260E94322789E344 +:103940000CC0833879F40E944F1B80FDAEC083E524 +:103950000E94AF260E94322783E50E94CC26CF9199 +:103960000C943227843859F40E944F1B82FD9DC06D +:1039700087E40E94AF260E94322787E4EECF8CEFC7 +:103980008C0F813A48F48C2F0E94712C81118DC0CC +:103990008C2F0E94AF26E3CF80E28C0F883048F452 +:1039A000C77081E001C0880FCA95EAF70E94EB2634 +:1039B000D6CF8BE58C0F833078F4C53A29F0C63A20 +:1039C00031F083E890E005C081E890E002C082E831 +:1039D00090E0CF910C94711B88E58C0F833108F037 +:1039E00064C0C83A39F1C93A41F1CA3A49F1CB3A0F +:1039F00051F1CC3A59F1CD3A61F1C03B69F1CE3A7F +:103A000071F1CF3A79F1C13B81F1C23B89F1C33BFE +:103A100091F1C43B99F1C53BA1F1C63BA9F1C73B6C +:103A2000B1F1C83BB9F1C93BC1F1CA3BC9F180E072 +:103A300090E038C082EE90E035C089EE90E032C070 +:103A40008AEE90E02FC085EB90E02CC086EB90E0F2 +:103A500029C087EB90E026C08CEC90E023C08DEC71 +:103A600090E020C083E891E01DC08AE891E01AC090 +:103A700082E991E017C084E991E014C081E292E00C +:103A800011C083E292E00EC084E292E00BC085E2B6 +:103A900092E008C086E292E005C087E292E002C0B0 +:103AA0008AE292E0CF910C94871BCF9108958823EE +:103AB00009F44BC0823859F40E944F1B81FF45C066 +:103AC00089E30E94AF260E94322789E30CC0833825 +:103AD00071F40E944F1B80FF38C083E50E94AF261F +:103AE0000E94322783E50E94CC260C94322784382A +:103AF00059F40E944F1B82FF28C087E40E94AF2622 +:103B00000E94322787E4EFCF9CEF980F913A58F349 +:103B100090E2980F983050F4877091E001C0990FAF +:103B20008A95EAF7892F0E94F126DFCF9BE5980F4F +:103B3000933020F480E090E00C94711B885A83311C +:103B400020F480E090E00C94871B0895882321F0F6 +:103B50000E94EB260C9432270895882321F00E94BE +:103B6000F1260C9432270895BF92CF92DF92EF9204 +:103B7000FF920F931F93CF93DF9300D000D000D01C +:103B8000CDB7DEB725E0FC01DE01119601900D9264 +:103B90002A95E1F7FC01D0801181028125812295CF +:103BA0002F7043815481452B09F472C31F3F21F4C8 +:103BB000FFEFDF1609F46CC37C012E830E94D3074C +:103BC000D9821A8369817A81802F0E94AB26182FAF +:103BD000B92E0E9460260E9427252E81002319F00D +:103BE0000E9408272E81EB2DE295EF70F0E0E4595A +:103BF000FF4F0C9496318B2D807F9B2D9F70F92E5B +:103C0000882319F0F29480EFF822002389F0FF2036 +:103C100009F47CC280E2810F883020F48F2D0E944D +:103C2000EB2603C08F2D0E94FB260E9432276EC216 +:103C3000812F0E94571DFF2009F42AC3105E8F2D8B +:103C4000183018F40E94F12602C00E94012726961F +:103C50000FB6F894DEBF0FBECDBFDF91CF911F919D +:103C60000F91FF90EF90DF90CF90BF900C94322790 +:103C70008B2D807F9B2D9F70803211F4892F03C084 +:103C8000892F8295807F112319F0113011F12BC0FB +:103C90000023A9F0222389F1213079F526960FB669 +:103CA000F894DEBF0FBECDBFDF91CF911F910F9172 +:103CB000FF90EF90DF90CF90BF900C941B272223B2 +:103CC00019F0213009F4E4C28E830E941E278E81F0 +:103CD0009BC1002321F0263008F0DAC20EC0253047 +:103CE00008F0D6C291C10023C9F0222331F0F701B8 +:103CF000958190FF0BC29F70958326960FB6F8941E +:103D0000DEBF0FBECDBFDF91CF911F910F91FF900E +:103D1000EF90DF90CF90BF900C94A61D222309F462 +:103D200073C109C22B2D26952695237030E02115ED +:103D3000310521F021303105D1F0AAC2002321F054 +:103D4000812F9B2D937002C080E090E026960FB6E5 +:103D5000F894DEBF0FBECDBFDF91CF911F910F91C1 +:103D6000FF90EF90DF90CF90BF900C94711B0023D9 +:103D700021F0812F9B2D937002C080E090E0269669 +:103D80000FB6F894DEBF0FBECDBFDF91CF911F916C +:103D90000F91FF90EF90DF90CF90BF900C94871B16 +:103DA000812F002319F00E94502902C00E94B829D7 +:103DB00026960FB6F894DEBF0FBECDBFDF91CF9130 +:103DC0001F910F91FF90EF90DF90CF90BF900C94D8 +:103DD0003D2A8B2D837009F07BC0011159C2812FC0 +:103DE000829586958770880F880F912F9F70C92EB6 +:103DF000D12CE12CF12C082E04C0CC0CDD1CEE1CC7 +:103E0000FF1C0A94D2F714FF12C04FE050E060E0AC +:103E100070E004C0440F551F661F771F8A95D2F7C4 +:103E2000CB01BA01609570958095909503C060E0D4 +:103E300070E0CB012B2D269526952370422F50E064 +:103E400042305105D9F04330510569F16C297D2983 +:103E50008E299F294130510551F126960FB6F894CD +:103E6000DEBF0FBECDBFDF91CF911F910F91FF90AD +:103E7000EF90DF90CF90BF900C944E256C297D2958 +:103E80008E299F2926960FB6F894DEBF0FBECDBFB0 +:103E9000DF91CF911F910F91FF90EF90DF90CF9026 +:103EA000BF900C946A250E944E25C701B601269644 +:103EB0000FB6F894DEBF0FBECDBFDF91CF911F913B +:103EC0000F91FF90EF90DF90CF90BF900C94322530 +:103ED000002319F08B2D817001C08695882309F489 +:103EE000D7C1812F829586958770880F880F912F73 +:103EF0009F70C92ED12CE12CF12C082E04C0CC0CC3 +:103F0000DD1CEE1CFF1C0A94D2F714FF12C04FE018 +:103F100050E060E070E004C0440F551F661F771F3B +:103F20008A95D2F7CB01BA016095709580959095EE +:103F300003C060E070E0CB012B2D26952695237001 +:103F4000422F50E042305105D9F04330510569F11C +:103F50006C297D298E299F294130510551F12696E2 +:103F60000FB6F894DEBF0FBECDBFDF91CF911F918A +:103F70000F91FF90EF90DF90CF90BF900C94282688 +:103F80006C297D298E299F2926960FB6F894DEBFCD +:103F90000FBECDBFDF91CF911F910F91FF90EF909A +:103FA000DF90CF90BF900C9444260E942826C70132 +:103FB000B60126960FB6F894DEBF0FBECDBFDF91D7 +:103FC000CF911F910F91FF90EF90DF90CF90BF9016 +:103FD0000C940C26103F49F118F4103E48F491C09F +:103FE000123F09F453C0E8F1133F09F464C089C0DB +:103FF0001F708B2D8F71002321F00E94A525812F2A +:104000007CCE0E94C625812F26960FB6F894DEBF7F +:104010000FBECDBFDF91CF911F910F91FF90EF9019 +:10402000DF90CF90BF900C94AD1D0023B1F02530F0 +:1040300008F02EC18B2D8F7126960FB6F894DEBF37 +:104040000FBECDBFDF91CF911F910F91FF90EF90E9 +:10405000DF90CF90BF900C94EB25263008F018C16C +:10406000E9CF0023A9F08B2D8F7126960FB6F89417 +:10407000DEBF0FBECDBFDF91CF911F910F91FF909B +:10408000EF90DF90CF90BF900C94A525002359F3BB +:104090008B2D8F7126960FB6F894DEBF0FBECDBF65 +:1040A000DF91CF911F910F91FF90EF90DF90CF9014 +:1040B000BF900C94C625002399F08B2D8F71269606 :1040C0000FB6F894DEBF0FBECDBFDF91CF911F9129 -:1040D0000F91FF90EF90DF90CF90BF900C947525DB -:1040E0000023A9F0222309F4ADCF812F26960FB625 -:1040F000F894DEBF0FBECDBFDF91CF911F910F911E -:10410000FF90EF90DF90CF90BF900C947E1C222305 -:1041100009F4ADCF812F26960FB6F894DEBF0FBEFF -:10412000CDBFDF91CF911F910F91FF90EF90DF9066 -:10413000CF90BF900C94461D4B2D4F70612FC7013F -:104140000E942F0626960FB6F894DEBF0FBECDBF95 -:10415000DF91CF911F910F91FF90EF90DF90CF9063 -:10416000BF900C949924011182C09B2D9F70492F00 -:1041700050E04230510509F443C0C4F441155105E3 -:1041800071F14130510509F072C026960FB6F894CE -:10419000DEBF0FBECDBFDF91CF911F910F91FF907A -:1041A000EF90DF90CF90BF900C94202D43305105BD -:1041B000C1F14430510509F05AC0812F26960FB63F -:1041C000F894DEBF0FBECDBFDF91CF911F910F914D -:1041D000FF90EF90DF90CF90BF900C94722D2696B9 +:1040D0000F91FF90EF90DF90CF90BF900C949025C0 +:1040E00026960FB6F894DEBF0FBECDBFDF91CF91FD +:1040F0001F910F91FF90EF90DF90CF90BF900C94A5 +:1041000086250023A9F0222309F4ADCF812F26961E +:104110000FB6F894DEBF0FBECDBFDF91CF911F91D8 +:104120000F91FF90EF90DF90CF90BF900C948F1C79 +:10413000222309F4ADCF812F26960FB6F894DEBF67 +:104140000FBECDBFDF91CF911F910F91FF90EF90E8 +:10415000DF90CF90BF900C94571D4B2D4F70612F67 +:10416000C7010E940B0626960FB6F894DEBF0FBE5D +:10417000CDBFDF91CF911F910F91FF90EF90DF9016 +:10418000CF90BF900C94AA24011182C09B2D9F70E8 +:10419000492F50E04230510509F443C0C4F44115A1 +:1041A000510571F14130510509F072C026960FB6E4 +:1041B000F894DEBF0FBECDBFDF91CF911F910F915D +:1041C000FF90EF90DF90CF90BF900C94312D433053 +:1041D0005105C1F14430510509F05AC0812F26968E :1041E0000FB6F894DEBF0FBECDBFDF91CF911F9108 -:1041F0000F91FF90EF90DF90CF90BF900C94092D1E +:1041F0000F91FF90EF90DF90CF90BF900C94832DA4 :1042000026960FB6F894DEBF0FBECDBFDF91CF91DB :104210001F910F91FF90EF90DF90CF90BF900C9483 -:104220003C2D26960FB6F894DEBF0FBECDBFDF91B2 +:104220001A2D26960FB6F894DEBF0FBECDBFDF91D4 :10423000CF911F910F91FF90EF90DF90CF90BF90A3 -:104240000C944F2D4B2D4F70612FC70126960FB642 -:10425000F894DEBF0FBECDBFDF91CF911F910F91BC -:10426000FF90EF90DF90CF90BF900C94F9072696C7 +:104240000C944D2D26960FB6F894DEBF0FBECDBF51 +:10425000DF91CF911F910F91FF90EF90DF90CF9062 +:10426000BF900C94602D4B2D4F70612FC701269687 :104270000FB6F894DEBF0FBECDBFDF91CF911F9177 -:104280000F91FF90EF90DF90CF90BF9008950E9424 -:10429000F7260E9407270E94CC260E9421270E9411 -:1042A000DD2A0E942C2A80E090E00E94601B80E0C2 -:1042B00090E00C94761B0E94E7260C9447210E9404 -:1042C0008F26292F22952F7030E02C3031054CF4A9 -:1042D0002A3031056CF4225031092230310588F43E -:1042E00007C02C30310549F02F30310531F009C0BD -:1042F000803E48F0803F29F406C093FB882780F970 -:10430000089580E0089581E00895CF93DF9300D071 -:1043100000D01F92CDB7DEB70F900F900F900F9087 -:104320000F90DF91CF910895CF93DF9300D000D00D -:1043300000D0CDB7DEB726960FB6F894DEBF0FBE1D -:10434000CDBFDF91CF9108951F93CF93DF93C0919D -:104350002B0316E080912C03C81799F0D0E01C9F26 -:10436000F0011D9FF00D1124E35DFC4F4081518150 -:1043700062817381848195810E9494212196C77006 -:10438000E9CFDF91CF911F91089540915D03509146 -:104390005E0360915F03709160038091610390916F -:1043A00062030C9494218091620382958F7009F0CE -:1043B00054C080915F03882309F44FC080912B0380 -:1043C000A0912C0360915D0370915E0340916003A6 -:1043D00050916103B6E08A1709F43FC090E041159F -:1043E0005105C1F17F3F11F46F3FA1F1B89FF0017A -:1043F000B99FF00D1124E35DFC4F218172132AC097 -:104400002081621327C02281211124C0238134819D -:104410002417350710F421503109241B350B283C93 -:104420003105C0F4209162032F7020612093620354 -:1044300026E0289FF001299FF00D1124EE5CFC4F2F -:1044400080818F70806180838DE593E00E94A31D41 -:104450000C94A42101968770BECF0895CF92DF926D -:10446000EF92FF920F931F93CF93DF93CDB7DEB7F9 -:1044700062970FB6F894DEBF0FBECDBF8C0185E00A -:10448000F801DE011D9601900D928A95E1F7D801A1 -:104490004C9111965C91119712966C91129713960C -:1044A000CD90DC90149730915D0370915E03809104 -:1044B000600390916103009709F46BC17F3F19F489 -:1044C0003F3F09F466C1E0905F03EE2009F4C0C0ED -:1044D00020916203C816D90628F0F601E81BF90BF3 -:1044E000CF0104C0809590958C0D9D1DFF24F39401 -:1044F000883C910578F0F12C207F09F0C6C07C2D16 -:10450000D98AC88A89890E9485218DE593E00E9415 -:10451000A31DB1C0822F807F09F046C0751314C05F -:10452000341312C0611110C02F70206120936203F8 -:104530000E94C5218DE593E00E94A31D8091620336 -:10454000D80115968C932EC0CD2819F15F3F11F438 -:104550004F3FF9F0F62E61111CC080912B03209182 -:104560002C0336E0821709F45AC090E0389FF0011E -:10457000399FF00D1124E35DFC4F7181571306C084 -:104580007081471303C07281711103C00196877057 -:10459000E9CFF62E662309F418C180916203816089 -:1045A00080936203F12C11C1751308C0341306C047 -:1045B000611104C080916203D801C3C04D875E873A -:1045C0008D859E856A8B0E945F216A898823E1F12F -:1045D0006623D1F120916203822F82958F7090E043 -:1045E000029774F080915D0390915E0398878F83AA -:1045F0001986DB86CA862C87CE0107960E94A31DEA -:1046000086E0F801ADE5B3E001900D928A95E1F7FF -:104610000E94D3210E94C521FF24F394D6C04D8768 -:104620005E878D859E850E948F26292F22952F706B -:1046300030E0223031050CF0BCC09F7009F0B6C0EC -:10464000805E883008F4C1C0C8010E94A31DE4CF79 -:10465000C816D90608F453C0F601E81BF90BCF01C0 -:10466000883C910508F450C0F12C7C2DD98AC88A69 -:1046700089890E948521EDE5F3E086E0DF011D9246 -:104680008A95E9F70E94C521A0C0751314C03413A0 -:1046900012C0611110C080916203F8018583C801C6 -:1046A0000E94A31D86E0EDE5F3E0DF011D928A95EF -:1046B000E9F7FE2C8AC04D875E878D859E856A8BC3 -:1046C0000E945F216A89882309F4BECF662309F41A -:1046D000BBCF20916203822F82958F7090E002976A -:1046E0000CF48ECF80915D0390915E039A83898351 -:1046F0001B82DD82CC822E83CE0101967FCF8095F6 -:1047000090958C0D9D1DACCFF62E662309F49CCFA1 -:1047100075132EC034132CC02091620320FD1FC0DE -:10472000822F82958F70D9F0D80115962C9315970A -:104730008F3049F08F5F982F9295907F822F8F70E6 -:10474000892B15968C93C8010E94A31D86E0F80161 -:10475000ADE5B3E001900D928A95E1F793CF86E045 -:10476000F801ADE5B3E001900D928A95E1F72DC017 -:104770004D875E878D859E850E945F21811140CF88 -:1047800080916203816080936203C8010E94A31D2F -:104790001CC0662309F458CF4D875E878D859E85A2 -:1047A0000E945F21882309F44FCF2ACF811148CF7F -:1047B0000CC0243031050CF047CF9F7009F440CF76 -:1047C000F8019581907F09F03BCF8F2D62960FB64F -:1047D000F894DEBF0FBECDBFDF91CF911F910F9137 -:1047E000FF90EF90DF90CF9008951F93CF93DF93CA -:1047F000CDB7DEB72C970FB6F894DEBF0FBECDBF96 -:104800004F83588769877A878B879C87CE01079665 -:104810000E942E22882369F08F8198852A853B8506 -:10482000232BF1F19F3F09F063C08F3F09F060C077 -:1048300037C086E0FE013796DE01119601900D9299 -:104840008A95E1F76F817885EA85FB85309741F19C -:104850007F3F11F46F3F21F120912C0330E0C9011B -:1048600001968770992740912B0350E08417950794 -:1048700009F447C069837A83FD83EC8396E0929FB5 -:10488000D001939FB00D1124A35DBC4FFE01319662 -:1048900001900D929A95E1F780932C030E94A42138 -:1048A00016E080912B0390912C038917C1F1189F7A -:1048B000C0011124835D9C4F0E942E22882379F130 -:1048C000E0912B031E9FF0011124E35DFC4F40811A -:1048D000518162817381848195810E9494218091AC -:1048E0002B0390E001968770992780932B03D9CFF3 -:1048F0004F81588569857A858B859C850E94942196 -:10490000CFCF0E945B2110922C0310922B03EDE578 -:10491000F3E086E0DF011D928A95E9F7C1CF2C967E -:104920000FB6F894DEBF0FBECDBFDF91CF911F91C0 -:104930000895EF92FF920F931F93CF93DF938C0113 -:10494000009709F46CC0F12CEE24E394E801219661 -:10495000F8018491843740F4843008F051C08130EC -:1049600081F0823019F15BC0853709F444C0A8F1A9 -:104970009CE7980F903708F052C08F770E94461D31 -:1049800041C00E5F1F4FFE01C49180E28C0F883042 -:1049900048F4C7708E2D01C0880FCA95EAF70E94AF -:1049A000FA2614C08C2F0E947E1C2DC00E5F1F4F54 -:1049B000FE01C49180E28C0F883058F4C7708E2DB0 -:1049C00001C0880FCA95EAF70E9400270E9421279C -:1049D0001AC08C2F0E94461D16C00E5F1F4FFE018D -:1049E000C491CC2381F08FE99FE00197F1F700C0DB -:1049F0000000C150F6CF0E5F1F4FFE01F49003C0C0 -:104A00000E947E1C8E018F2D882309F49FCFEFE931 -:104A1000FFE03197F1F700C000008150F5CFDF9142 -:104A2000CF911F910F91FF90EF900895089560939B -:104A30006703709368038093690390936A030C94EF -:104A400047210F931F9300916703109168032091F2 -:104A5000690330916A03DC01CB01802B912BA22BDF -:104A6000B32B8093670390936803A0936903B0937B -:104A70006A031F910F910C9447210F931F9300918C -:104A80006703109168032091690330916A03DC0188 -:104A9000CB0180239123A223B323809367039093B8 -:104AA0006803A0936903B0936A031F910F910C945C -:104AB00047210F931F930091670310916803209182 -:104AC000690330916A03DC01CB0180279127A2277B -:104AD000B3278093670390936803A0936903B0930F -:104AE0006A031F910F910C94472110926303109257 -:104AF000640310926503109266030C94472141E011 -:104B000050E060E070E004C0440F551F661F771F3F -:104B10008A95D2F7409363035093640360936503CF -:104B2000709366030C94472141E050E060E070E030 -:104B300004C0440F551F661F771F8A95D2F78091D6 -:104B4000630390916403A0916503B0916603482BC1 -:104B5000592B6A2B7B2B4093630350936403609320 -:104B60006503709366030C94472141E050E060E0D8 -:104B700070E004C0440F551F661F771F8A95D2F757 -:104B80004095509560957095809163039091640372 -:104B9000A0916503B0916603482359236A237B23C0 -:104BA00040936303509364036093650370936603BB -:104BB0000C94472141E050E060E070E004C0440FF5 -:104BC000551F661F771F8A95D2F7809163039091D6 -:104BD0006403A0916503B0916603482759276A27AB -:104BE0007B27409363035093640360936503709342 -:104BF00066030C9447210F931F9300916303109158 -:104C000064032091650330916603DC01CB01802BA6 -:104C1000912BA22BB32B8093630390936403A093F7 -:104C20006503B09366031F910F910C9447210F9376 -:104C30001F930091630310916403209165033091E9 -:104C40006603DC01CB0180239123A223B32380934D -:104C5000630390936403A0936503B09366031F916D -:104C60000F910C9447210F931F93009163031091B0 -:104C700064032091650330916603DC01CB0180273A -:104C80009127A227B3278093630390936403A09393 -:104C90006503B09366031F910F910C94472108950B -:104CA000CF92DF92EF92FF920F931F93CF93DF93F8 -:104CB0008C01C0906703D0906803E0906903F09086 -:104CC0006A038091630390916403A0916503B0919E -:104CD0006603C82AD92AEA2AFB2ACFE1D0E0D70105 -:104CE000C6010C2E04C0B695A795979587950A9492 -:104CF000D2F780FF06C0B8018C2F0E94530A01979B -:104D000021F4219760F780E001C08C2FDF91CF91D3 -:104D10001F910F91FF90EF90DF90CF900895CF9368 -:104D2000DF93EC010E945026BE010E94530ADF91DE -:104D3000CF910895CB010E948F26089520911F02E4 -:104D400030912002F90132969FEF40E051915817BF -:104D500089F09F3F19F4511101C0942F4F5F4630E5 -:104D6000A9F79F3F39F0F901E90FF11D97FDFA9579 -:104D700082830895089520911F0230912002F90145 -:104D80003296285F3F4F9081981301C01082319670 -:104D9000E217F307C1F7089581E090E0E0911F0268 -:104DA000F0912002E80FF91F1082019688309105DA -:104DB000A9F7089590917603892B8093760308953F -:104DC00080959091760389238093760308951092BD -:104DD0007603089590917503892B80937503089548 -:104DE000809590917503892380937503089510929F -:104DF0007503089590917403892B8093740308952B -:104E00008095909174038923809374030895109280 -:104E10007403089580936B03089510926B030895B3 -:104E200080911F0290912002FC0131969C01285F25 -:104E30003F4F80E0919191118F5FE217F307D1F717 -:104E40000895E0911F02F091200280917603808303 -:104E5000E0911F02F0912002908180917503892BCF -:104E60008083E0911F02F091200290818091740371 -:104E7000892B808380916B03882361F0E0911F026E -:104E8000F09120029081892B80830E94102781114C -:104E900010926B0380911F02909120020C944A1B88 -:104EA00080919803843039F11092780320E488E1EE -:104EB00090E00FB6F894A895809360000FBE209301 -:104EC000600080E00E94F60580E00E942E0B83B710 -:104ED000817F846083BF83B7816083BF7894889526 -:104EE00083B78E7F83BF88E10FB6F894809360000C -:104EF000109260000FBE089508950895CF9380E04A -:104F00000E94F6050E947C270E94D10C0E947D27FA -:104F1000C0E08C2F0E940A0E892B29F4CF5FC53088 -:104F2000C1F780E001C081E0CF9108950E945B212C -:104F300080E00E94F6050E94F82C0E943E1B0C9413 -:104F40002E0B1F920F920FB60F9211248F939F93E7 -:104F5000AF93BF9380917803811113C0809179033F -:104F600090917A03A0917B03B0917C034196A11D9F -:104F7000B11D8093790390937A03A0937B03B09340 -:104F80007C03BF91AF919F918F910F900FBE0F90B7 -:104F90001F90189582E084BD93E095BD9AEF97BD70 -:104FA00080936E0008952FB7F894809179039091C3 -:104FB0007A03A0917B03B0917C032FBF0895CF9219 -:104FC000DF92EF92FF920F931F932FB7F8944091C7 -:104FD000790350917A0360917B0370917C032FBF1A -:104FE0006A017B01EE24FF248C0120E030E0C01632 -:104FF000D106E206F30610F4415051099A01281B2C -:10500000390BC9011F910F91FF90EF90DF90CF9066 -:1050100008951F920F920FB60F9211248F939F93B2 -:10502000AF93BF938091790390917A03A0917B0312 -:10503000B0917C030196A11DB11D809379039093DB -:105040007A03A0937B03B0937C03BF91AF919F91B0 -:105050008F910F900FBE0F901F9018950E943B18D4 -:10506000F8942FEF87EA91E6215080409040E1F7D5 -:1050700000C0000087E090EBDC018093A3039093D5 -:10508000A403A093A503B093A6039CE088E10FB608 -:10509000F894A895809360000FBE90936000FFCFB6 -:1050A0000E948A28811102C00E9466280E949528C9 -:1050B000809377030E94A2288093A1030E949928DD -:1050C000682F70E080E090E00C9417256DEE7EEF85 -:1050D00080E090E00E945D3160E082E090E00E941C -:1050E0004B3160E083E090E00E944B3160E084E06F -:1050F00090E00E944B3160E085E090E00E944B31EF -:1051000060E086E090E00E944B316FEF87E090E036 -:105110000C944B3180E090E00E94453121E08D3EBF -:105120009E4F09F020E0822F089582E090E00C94D9 -:105130003D3183E090E00C943D31682F83E090E0B6 -:105140000C944B3184E090E00C943D31682F84E066 -:1051500090E00C944B3186E090E00C943D31682F48 -:1051600086E090E00C944B3187E090E00C943D3168 -:10517000682F87E090E00C944B3180917F0380FF93 -:105180000BC06091240285E0689FB00111247595E1 -:105190006795759567952BC081FF09C060912402C2 -:1051A00085E0689FB00111247595679520C082FF46 -:1051B00007C06091240285E0689FB001112417C0E8 -:1051C000909180039923D1F060912302961788F77C -:1051D0002091240285E0289F90011124929FA00134 -:1051E000939F500D112470E0CA010E942331603852 -:1051F000710540F46115710539F002C065E070E099 -:10520000862F08958FE7089581E0089580917F03A8 -:1052100080FF08C06091220270E0759567957595D2 -:10522000679521C081FF06C06091220270E07595EC -:10523000679519C082FF04C06091220270E010C01F -:10524000909180039923C1F0609121029617A0F7F5 -:1052500080912202899FC001112470E00E942331B5 -:105260006038710528F46115710521F0862F0895C5 -:105270008FE7089581E0089561E070E0F4CF803F0A -:1052800021F40E94BD28819504C0813F29F40E9429 -:10529000BD28809383030895823F21F40E94BD2896 -:1052A000819504C0833F29F40E94BD288093820326 -:1052B0000895893F19F40E94062905C08A3F31F4F8 -:1052C0000E94062981958093840308958B3F21F4E1 -:1052D0000E940629819504C08C3F29F40E9406296A -:1052E000809385030895843F21F480918103816038 -:1052F00017C0853F21F480918103826011C0863FF1 -:1053000021F48091810384600BC0873F21F4809158 -:105310008103886005C0883F31F4809181038061FA -:105320008093810308958D3F21F480917F038160F4 -:105330000BC08E3F21F480917F03826005C08F3FB8 -:1053400029F480917F03846080937F030895803FD8 -:1053500039F48091830387FF6CC01092830369C086 -:10536000813F29F4809183031816BCF362C09091A9 -:105370008203823F29F497FF5CC01092820359C0D8 -:10538000833F19F41916CCF354C0893F41F480913E -:10539000840318160CF04DC0109284034AC08A3F53 -:1053A00029F48091840387FF44C0F6CF8B3F39F402 -:1053B0008091850387FF3DC0109285033AC08C3FE2 -:1053C00029F4809185031816BCF333C0843F21F47F -:1053D000809181038E7F17C0853F21F480918103E6 -:1053E0008D7F11C0863F21F4809181038B7F0BC09C -:1053F000873F21F480918103877F05C0883F31F486 -:10540000809181038F7E8093810313C08D3F21F4AF -:1054100080917F038E7F0BC08E3F21F480917F03AC -:105420008D7F05C08F3F29F480917F038B7F809310 -:105430007F038091820381110EC0809183038111CB -:105440000AC080918403811106C080918503811177 -:1054500002C010928003089581E893E00E94551BDA -:105460000E94D32790937E0380937D0308951F931A -:10547000CF93DF9380917D0390917E030E94DF277D -:10548000AC0190918003992321F02091250230E016 -:1054900006C0209126028AE0289F9001112442171D -:1054A000530708F486C080918203C0918303D09192 -:1054B000840310918503811107C0C11176C0D111F9 -:1054C00074C0111172C075C09F3F19F09F5F909317 -:1054D0008003181624F40E94BD28809382038091D3 -:1054E000820387FF05C00E94BD28819580938203B7 -:1054F0001C1624F40E94BD288093830380918303AB -:1055000087FF05C00E94BD28819580938303609129 -:105510008203662339F1C0918303CC2319F17727E5 -:1055200067FD7095872F972F0E94932E23E333E317 -:1055300043E35FE30E94472F0E94602E6093820343 -:105540006C2F772767FD7095872F972F0E94932EDA -:1055500023E333E343E35FE30E94472F0E94602E7F -:10556000609383031D1624F40E940629809384030C -:105570008091840387FF05C00E940629819580934E -:105580008403111624F40E940629809385038091D8 -:10559000850387FF05C00E940629819580938503B6 -:1055A000DF91CF911F910C942C2A9F3F09F08ECF51 -:1055B00096CFDF91CF911F910895E1E8F3E085E068 -:1055C000DF011D928A95E9F71092800310927F0304 -:1055D0000895833081F128F4813059F08230D1F080 -:1055E0000895853009F449C0B8F1863009F456C0F1 -:1055F000089580912602262F30E0280F311D2F3F7D -:10560000310524F4680F6093260208958FEF80938C -:105610002602089580912502262F30E0280F311DA3 -:105620002F3F310524F4680F6093250208958FEF12 -:1056300080932502089580912402262F30E0280FC0 -:10564000311D2F3F310524F4680F60932402089523 -:105650008FEF80932402089580912302262F30E05B -:10566000280F311D2F3F310524F4680F609323026A -:1056700008958FEF80932302089580912202262FB0 +:104280000F91FF90EF90DF90CF90BF900C94D507E7 +:1042900026960FB6F894DEBF0FBECDBFDF91CF914B +:1042A0001F910F91FF90EF90DF90CF90BF900895F6 +:1042B0000E9408270E9418270E94DD260E943227AC +:1042C0000E94EE2A0E943D2A80E090E00E94711B2D +:1042D00080E090E00C94871B0E94F8260C945821F3 +:1042E0000E94A026292F22952F7030E02C30310516 +:1042F0004CF42A3031056CF422503109223031055A +:1043000088F407C02C30310549F02F30310531F0E9 +:1043100009C0803E48F0803F29F406C093FB8827FF +:1043200080F9089580E0089581E00895CF93DF93A8 +:1043300000D000D01F92CDB7DEB70F900F900F9036 +:104340000F900F90DF91CF910895CF93DF9300D01E +:1043500000D000D0CDB7DEB726960FB6F894DEBFFA +:104360000FBECDBFDF91CF9108951F93CF93DF9301 +:10437000C0917B0316E080917C03C81799F0D0E0D0 +:104380001C9FF0011D9FF00D1124E358FC4F40814C +:10439000518162817381848195810E94A52121963A +:1043A000C770E9CFDF91CF911F9108954091AD0380 +:1043B0005091AE036091AF037091B0038091B1034F +:1043C0009091B2030C94A5218091B20382958F70D5 +:1043D00009F054C08091AF03882309F44FC0809145 +:1043E0007B03A0917C036091AD037091AE0340917B +:1043F000B0035091B103B6E08A1709F43FC090E0D2 +:1044000041155105C1F17F3F11F46F3FA1F1B89FF4 +:10441000F001B99FF00D1124E358FC4F2181721374 +:104420002AC02081621327C02281211124C0238148 +:1044300034812417350710F421503109241B350B22 +:10444000283C3105C0F42091B2032F7020612093E5 +:10445000B20326E0289FF001299FF00D1124EE57AA +:10446000FC4F80818F70806180838DEA93E00E9491 +:10447000B41D0C94B52101968770BECF0895CF92DC +:10448000DF92EF92FF920F931F93CF93DF93CDB7FD +:10449000DEB762970FB6F894DEBF0FBECDBF8C01BA +:1044A00085E0F801DE011D9601900D928A95E1F7F5 +:1044B000D8014C9111965C91119712966C911297BC +:1044C0001396CD90DC9014973091AD037091AE03AC +:1044D0008091B0039091B103009709F46BC17F3FC5 +:1044E00019F43F3F09F466C1E090AF03EE2009F4F0 +:1044F000C0C02091B203C816D90628F0F601E81B07 +:10450000F90BCF0104C0809590958C0D9D1DFF2463 +:10451000F394883C910578F0F12C207F09F0C6C017 +:104520007C2DD98AC88A89890E9496218DEA93E0D8 +:104530000E94B41DB1C0822F807F09F046C0751360 +:1045400014C0341312C0611110C02F702061209369 +:10455000B2030E94D6218DEA93E00E94B41D80919F +:10456000B203D80115968C932EC0CD2819F15F3F68 +:1045700011F44F3FF9F0F62E61111CC080917B03BE +:1045800020917C0336E0821709F45AC090E0389FEE +:10459000F001399FF00D1124E358FC4F718157133E +:1045A00006C07081471303C07281711103C0019668 +:1045B0008770E9CFF62E662309F418C18091B20303 +:1045C00081608093B203F12C11C1751308C03413BC +:1045D00006C0611104C08091B203D801C3C04D87E9 +:1045E0005E878D859E856A8B0E9470216A898823EB +:1045F000E1F16623D1F12091B203822F82958F7071 +:1046000090E0029774F08091AD039091AE0398878B +:104610008F831986DB86CA862C87CE0107960E9477 +:10462000B41D86E0F801ADEAB3E001900D928A95E1 +:10463000E1F70E94E4210E94D621FF24F394D6C022 +:104640004D875E878D859E850E94A026292F229505 +:104650002F7030E0223031050CF0BCC09F7009F0A3 +:10466000B6C0805E883008F4C1C0C8010E94B41D85 +:10467000E4CFC816D90608F453C0F601E81BF90BBD +:10468000CF01883C910508F450C0F12C7C2DD98ACB +:10469000C88A89890E949621EDEAF3E086E0DF016D +:1046A0001D928A95E9F70E94D621A0C0751314C007 +:1046B000341312C0611110C08091B203F8018583D8 +:1046C000C8010E94B41D86E0EDEAF3E0DF011D920F +:1046D0008A95E9F7FE2C8AC04D875E878D859E8579 +:1046E0006A8B0E9470216A89882309F4BECF6623F1 +:1046F00009F4BBCF2091B203822F82958F7090E096 +:1047000002970CF48ECF8091AD039091AE039A8303 +:1047100089831B82DD82CC822E83CE0101967FCFDE +:10472000809590958C0D9D1DACCFF62E662309F4D7 +:104730009CCF75132EC034132CC02091B20320FDE2 +:104740001FC0822F82958F70D9F0D80115962C93B7 +:1047500015978F3049F08F5F982F9295907F822F19 +:104760008F70892B15968C93C8010E94B41D86E02A +:10477000F801ADEAB3E001900D928A95E1F793CF8D +:1047800086E0F801ADEAB3E001900D928A95E1F779 +:104790002DC04D875E878D859E850E947021811179 +:1047A00040CF8091B20381608093B203C8010E9420 +:1047B000B41D1CC0662309F458CF4D875E878D85D4 +:1047C0009E850E947021882309F44FCF2ACF811142 +:1047D00048CF0CC0243031050CF047CF9F7009F44E +:1047E00040CFF8019581907F09F03BCF8F2D6296E5 +:1047F0000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:104800000F91FF90EF90DF90CF9008951F93CF937B +:10481000DF93CDB7DEB72C970FB6F894DEBF0FBE8F +:10482000CDBF4F83588769877A878B879C87CE0156 +:1048300007960E943F22882369F08F8198852A85F8 +:104840003B85232BF1F19F3F09F063C08F3F09F0B7 +:1048500060C037C086E0FE013796DE0111960190F8 +:104860000D928A95E1F76F817885EA85FB8530970F +:1048700041F17F3F11F46F3F21F120917C0330E043 +:10488000C90101968770992740917B0350E08417F6 +:10489000950709F447C069837A83FD83EC8396E02A +:1048A000929FD001939FB00D1124A358BC4FFE01DD +:1048B000319601900D929A95E1F780937C030E94C6 +:1048C000B52116E080917B0390917C038917C1F19B +:1048D000189FC001112483589C4F0E943F228823B7 +:1048E00079F1E0917B031E9FF0011124E358FC4F06 +:1048F0004081518162817381848195810E94A521CB +:1049000080917B0390E001968770992780937B03C9 +:10491000D9CF4F81588569857A858B859C850E9482 +:10492000A521CFCF0E946C2110927C0310927B03B3 +:10493000EDEAF3E086E0DF011D928A95E9F7C1CF49 +:104940002C960FB6F894DEBF0FBECDBFDF91CF918E +:104950001F910895EF92FF920F931F93CF93DF93D0 +:104960008C01009709F46CC0F12CEE24E394E8016B +:104970002196F8018491843740F4843008F051C0C6 +:10498000813081F0823019F15BC0853709F444C071 +:10499000A8F19CE7980F903708F052C08F770E94DB +:1049A000571D41C00E5F1F4FFE01C49180E28C0F66 +:1049B000883048F4C7708E2D01C0880FCA95EAF779 +:1049C0000E940B2714C08C2F0E948F1C2DC00E5FDD +:1049D0001F4FFE01C49180E28C0F883058F4C770DD +:1049E0008E2D01C0880FCA95EAF70E9411270E94F8 +:1049F00032271AC08C2F0E94571D16C00E5F1F4F02 +:104A0000FE01C491CC2381F08FE99FE00197F1F77B +:104A100000C00000C150F6CF0E5F1F4FFE01F490A2 +:104A200003C00E948F1C8E018F2D882309F49FCF15 +:104A3000EFE9FFE03197F1F700C000008150F5CFBA +:104A4000DF91CF911F910F91FF90EF9008950895FE +:104A50006093B7037093B8038093B9039093BA033C +:104A60000C9458210F931F930091B7031091B80332 +:104A70002091B9033091BA03DC01CB01802B912B3B +:104A8000A22BB32B8093B7039093B803A093B903E1 +:104A9000B093BA031F910F910C9458210F931F9359 +:104AA0000091B7031091B8032091B9033091BA0374 +:104AB000DC01CB0180239123A223B3238093B7038E +:104AC0009093B803A093B903B093BA031F910F91C9 +:104AD0000C9458210F931F930091B7031091B803C2 +:104AE0002091B9033091BA03DC01CB0180279127D3 +:104AF000A227B3278093B7039093B803A093B90379 +:104B0000B093BA031F910F910C9458211092B303E4 +:104B10001092B4031092B5031092B6030C9458216E +:104B200041E050E060E070E004C0440F551F661F94 +:104B3000771F8A95D2F74093B3035093B4036093E1 +:104B4000B5037093B6030C94582141E050E060E047 +:104B500070E004C0440F551F661F771F8A95D2F777 +:104B60008091B3039091B403A091B503B091B603C3 +:104B7000482B592B6A2B7B2B4093B3035093B403E0 +:104B80006093B5037093B6030C94582141E050E054 +:104B900060E070E004C0440F551F661F771F8A95C0 +:104BA000D2F740955095609570958091B3039091A0 +:104BB000B403A091B503B091B603482359236A23E7 +:104BC0007B234093B3035093B4036093B503709376 +:104BD000B6030C94582141E050E060E070E004C05E +:104BE000440F551F661F771F8A95D2F78091B30334 +:104BF0009091B403A091B503B091B603482759270B +:104C00006A277B274093B3035093B4036093B503A3 +:104C10007093B6030C9458210F931F930091B30324 +:104C20001091B4032091B5033091B603DC01CB01A0 +:104C3000802B912BA22BB32B8093B3039093B403BF +:104C4000A093B503B093B6031F910F910C94582114 +:104C50000F931F930091B3031091B4032091B503F8 +:104C60003091B603DC01CB0180239123A223B3232F +:104C70008093B3039093B403A093B503B093B603AA +:104C80001F910F910C9458210F931F930091B30320 +:104C90001091B4032091B5033091B603DC01CB0130 +:104CA00080279127A227B3278093B3039093B4035F +:104CB000A093B503B093B6031F910F910C945821A4 +:104CC0000895CF92DF92EF92FF920F931F93CF93AD +:104CD000DF938C01C090B703D090B803E090B90384 +:104CE000F090BA038091B3039091B403A091B503FF +:104CF000B091B603C82AD92AEA2AFB2ACFE1D0E02C +:104D0000D701C6010C2E04C0B695A7959795879537 +:104D10000A94D2F780FF06C0B8018C2F0E942F0A98 +:104D2000019721F4219760F780E001C08C2FDF917B +:104D3000CF911F910F91FF90EF90DF90CF9008954A +:104D4000CF93DF93EC010E946126BE010E942F0ADF +:104D5000DF91CF910895CB010E94A0260895209164 +:104D60001D0230911E02F90132969FEF40E05191F1 +:104D7000581789F09F3F19F4511101C0942F4F5FCC +:104D80004630A9F79F3F39F0F901E90FF11D97FD72 +:104D9000FA9582830895089520911D0230911E0294 +:104DA000F9013296285F3F4F9081981301C010821D +:104DB0003196E217F307C1F7089581E090E0E091A2 +:104DC0001D02F0911E02E80FF91F10820196883033 +:104DD0009105A9F708959091C603892B8093C60386 +:104DE000089580959091C60389238093C603089502 +:104DF0001092C60308959091C503892B8093C50333 +:104E0000089580959091C50389238093C5030895E3 +:104E10001092C50308959091C403892B8093C40315 +:104E2000089580959091C40389238093C4030895C5 +:104E30001092C40308958093BB0308951092BB039E +:104E4000089580911D0290911E02FC0131969C01F3 +:104E5000285F3F4F80E0919191118F5FE217F30738 +:104E6000D1F70895E0911D02F0911E028091C603D2 +:104E70008083E0911D02F0911E0290818091C50314 +:104E8000892B8083E0911D02F0911E029081809118 +:104E9000C403892B80838091BB03882361F0E09158 +:104EA0001D02F0911E029081892B80830E94212790 +:104EB00081111092BB0380911D0290911E020C94EF +:104EC0005B1B8091E803843039F11092C80320E421 +:104ED00088E190E00FB6F894A895809360000FBE2B +:104EE0002093600080E00E94D20580E00E940A0BBF +:104EF00083B7817F846083BF83B7816083BF7894E9 +:104F0000889583B78E7F83BF88E10FB6F89480932E +:104F10006000109260000FBE089508950895CF9329 +:104F200080E00E94D2050E948D270E94AD0C0E9455 +:104F30008E27C0E08C2F0E94E60D892B29F4CF5FCD +:104F4000C530C1F780E001C081E0CF9108950E9493 +:104F50006C2180E00E94D2050E94092D0E944F1B07 +:104F60000C940A0B1F920F920FB60F9211248F937D +:104F70009F93AF93BF938091C803811113C0809119 +:104F8000C9039091CA03A091CB03B091CC03419681 +:104F9000A11DB11D8093C9039093CA03A093CB03B5 +:104FA000B093CC03BF91AF919F918F910F900FBEA3 +:104FB0000F901F90189582E084BD93E095BD9AEF05 +:104FC00097BD80936E0008952FB7F8948091C90320 +:104FD0009091CA03A091CB03B091CC032FBF089549 +:104FE000CF92DF92EF92FF920F931F932FB7F89417 +:104FF0004091C9035091CA036091CB037091CC03D7 +:105000002FBF6A017B01EE24FF248C0120E030E0F9 +:10501000C016D106E206F30610F4415051099A0178 +:10502000281B390BC9011F910F91FF90EF90DF9062 +:10503000CF9008951F920F920FB60F9211248F9365 +:105040009F93AF93BF938091C9039091CA03A0919E +:10505000CB03B091CC030196A11DB11D8093C90370 +:105060009093CA03A093CB03B093CC03BF91AF91AD +:105070009F918F910F900FBE0F901F9018950E94D7 +:105080004C18F8942FEF87EA91E621508040904029 +:10509000E1F700C0000087E090EBDC018093F303B0 +:1050A0009093F403A093F503B093F6039CE088E19A +:1050B0000FB6F894A895809360000FBE909360009F +:1050C000FFCF0E949B28811102C00E9477280E9476 +:1050D000A6288093C7030E94B3288093F1030E94FF +:1050E000AA28682F70E080E090E00C9428256DEEEF +:1050F0007EEF80E090E00E94BC3160E082E090E0D2 +:105100000E94AA3160E083E090E00E94AA3160E052 +:1051100084E090E00E94AA3160E085E090E00E9487 +:10512000AA3160E086E090E00E94AA316FEF87E04C +:1051300090E00C94AA3180E090E00E94A43121E03C +:105140008D3E9E4F09F020E0822F089582E090E08E +:105150000C949C3183E090E00C949C31682F83E0A8 +:1051600090E00C94AA3184E090E00C949C31682F7C +:1051700084E090E00C94AA3186E090E00C949C319D +:10518000682F86E090E00C94AA3187E090E00C94C0 +:105190009C31682F87E090E00C94AA318091CF0376 +:1051A00080FF0BC06091220285E0689FB00111244E +:1051B00075956795759567952BC081FF09C06091BE +:1051C000220285E0689FB00111247595679520C083 +:1051D00082FF07C06091220285E0689FB001112420 +:1051E00017C09091D0039923D1F0609121029617B6 +:1051F00088F72091220285E0289F90011124929F38 +:10520000A001939F500D112470E0CA010E948231C9 +:105210006038710540F46115710539F002C065E030 +:1052200070E0862F08958FE7089581E008958091BA +:10523000CF0380FF08C06091200270E075956795EC +:105240007595679521C081FF06C06091200270E0CE +:105250007595679519C082FF04C06091200270E0C7 +:1052600010C09091D0039923C1F060911F0296174E +:10527000A0F780912002899FC001112470E00E9454 +:1052800082316038710528F46115710521F0862F8F +:1052900008958FE7089581E0089561E070E0F4CF0C +:1052A000803F21F40E94CE28819504C0813F29F4DB +:1052B0000E94CE288093D3030895823F21F40E9458 +:1052C000CE28819504C0833F29F40E94CE28809384 +:1052D000D2030895893F19F40E94172905C08A3F17 +:1052E00031F40E94172981958093D40308958B3F50 +:1052F00021F40E941729819504C08C3F29F40E9453 +:1053000017298093D5030895843F21F48091D10318 +:10531000816017C0853F21F48091D103826011C064 +:10532000863F21F48091D10384600BC0873F21F434 +:105330008091D103886005C0883F31F48091D1030A +:1053400080618093D10308958D3F21F48091CF0334 +:1053500081600BC08E3F21F48091CF03826005C035 +:105360008F3F29F48091CF0384608093CF03089509 +:10537000803F39F48091D30387FF6CC01092D30330 +:1053800069C0813F29F48091D3031816BCF362C031 +:105390009091D203823F29F497FF5CC01092D20310 +:1053A00059C0833F19F41916CCF354C0893F41F416 +:1053B0008091D40318160CF04DC01092D4034AC04B +:1053C0008A3F29F48091D40387FF44C0F6CF8B3FF6 +:1053D00039F48091D50387FF3DC01092D5033AC0C0 +:1053E0008C3F29F48091D5031816BCF333C0843F59 +:1053F00021F48091D1038E7F17C0853F21F48091E5 +:10540000D1038D7F11C0863F21F48091D1038B7F22 +:105410000BC0873F21F48091D103877F05C0883F6F +:1054200031F48091D1038F7E8093D10313C08D3FDF +:1054300021F48091CF038E7F0BC08E3F21F48091A9 +:10544000CF038D7F05C08F3F29F48091CF038B7FE1 +:105450008093CF038091D20381110EC08091D3033A +:1054600081110AC08091D403811106C08091D503B7 +:10547000811102C01092D003089581ED93E00E9443 +:10548000661B0E94E4279093CE038093CD0308957A +:105490001F93CF93DF938091CD039091CE030E9411 +:1054A000F027AC019091D003992321F020912302A1 +:1054B00030E006C0209124028AE0289F9001112448 +:1054C0004217530708F486C08091D203C091D303DA +:1054D000D091D4031091D503811107C0C11176C0BA +:1054E000D11174C0111172C075C09F3F19F09F5F38 +:1054F0009093D003181624F40E94CE288093D203F0 +:105500008091D20387FF05C00E94CE2881958093A9 +:10551000D2031C1624F40E94CE288093D3038091DA +:10552000D30387FF05C00E94CE2881958093D303C3 +:105530006091D203662339F1C091D303CC2319F1D2 +:10554000772767FD7095872F972F0E94A42E23E35E +:1055500033E343E35FE30E94B42F0E94712E609314 +:10556000D2036C2F772767FD7095872F972F0E94A6 +:10557000A42E23E333E343E35FE30E94B42F0E94AE +:10558000712E6093D3031D1624F40E941729809373 +:10559000D4038091D40387FF05C00E941729819509 +:1055A0008093D403111624F40E9417298093D50305 +:1055B0008091D50387FF05C00E94172981958093AC +:1055C000D503DF91CF911F910C943D2A9F3F09F0A5 +:1055D0008ECF96CFDF91CF911F910895E1EDF3E04B +:1055E00085E0DF011D928A95E9F71092D0031092B1 +:1055F000CF030895833081F128F4813059F082304F +:10560000D1F00895853009F449C0B8F1863009F425 +:1056100056C0089580912402262F30E0280F311DB6 +:105620002F3F310524F4680F6093240208958FEF13 +:1056300080932402089580912302262F30E0280FC2 +:10564000311D2F3F310524F4680F60932302089524 +:105650008FEF80932302089580912202262F30E05D +:10566000280F311D2F3F310524F4680F609322026B +:1056700008958FEF80932202089580912102262FB2 :1056800030E0280F311D2F3F310524F4680F60935F -:10569000220208958FEF80932202089580912102C3 +:10569000210208958FEF80932102089580912002C6 :1056A000262F30E0280F311D2F3F310524F4680FDD -:1056B0006093210208958FEF809321020895833033 -:1056C00011F128F4813049F0823091F0089585304D -:1056D00081F120F18630C1F108958091260268178A -:1056E00020F4861B809326020895109226020895C6 -:1056F00080912502681720F4861B80932502089567 -:1057000010922502089580912402681720F4861BC8 -:105710008093240208951092240208958091230218 -:10572000681720F4861B80932302089510922302A9 -:10573000089580912202681720F4861B809322022C -:10574000089510922202089580912102681720F492 -:10575000861B8093210208951092210208950F93D1 -:105760001F938732D8F58E3108F087C08E3009F448 -:1057700071C098F4873009F45BC08B3009F491C094 -:10578000863009F095C080917703817F8E7F80936A -:10579000770381E0809387038CC0863109F481C050 -:1057A00068F4803109F084C08091770383FB22275D -:1057B00020F991E0922790FB83F955C0893109F4D3 -:1057C00070C08B3109F074C08091770381FB222770 -:1057D00020F991E0922790FB81F945C0883309F4C4 -:1057E00060C050F4893209F45EC0853309F45BC0AF -:1057F000873209F458C05CC0833409F454C028F4DB -:105800008A3308F455C0895339C0883409F050C030 -:105810000E945B210E94D6070FEF13ED20E3015099 -:1058200010402040E1F700C000000E942E2839C03F -:1058300090917703892F8095817080FB90F929F0F2 -:10584000966098609093770334C0997F977F909388 -:10585000770327C08091770382FB222720F991E00C -:10586000922790FB82F9809377039923D1F080915E -:10587000770381608093770314C08D5141E050E03D -:1058800060E070E08A019B0104C0000F111F221F1D -:10589000331F8A95D2F7C901B8010E9417250E94CB -:1058A0005B2181E006C061E070E080E090E0F5CF30 -:1058B00080E01F910F91089580E0089580E00895A1 -:1058C000CF93C82F80918703813069F018F0823020 -:1058D000C9F184C0E0911F02F091200280818232E0 -:1058E00009F07EC007C0E0911F02F0912002808184 -:1058F000823261F48C2F0E945C2C811104C08C2FA9 -:105900000E94AF2B1DC081E090E01AC08C2F0E9436 -:105910005E2C811114C0C43179F048F4CB3079F099 -:10592000C03109F061C082E08093870308C0C932AA -:1059300019F0C83321F058C01092870355C081E098 -:10594000817054C0C93291F120F5C43179F1B0F4BD -:10595000C73009F047C08EE18093260282E380932E -:1059600025028AE08093240284E18093230288E068 -:105970008093220288E28093210234C0CE51C63047 -:1059800088F5EC2FF0E0E256FD4F8081809386038E -:1059900029C0CE34E9F020F4CB3421F56AE013C0FD -:1059A000C13579F0C235F1F461E00DC08091860314 -:1059B000882319F01092860315C081E08093870335 -:1059C00015C061E006C0809186030E94E92A0AC0E2 -:1059D0006AE0809186030E945F2B04C010928703C7 -:1059E00080E004C081E002C080E0AACFCF9108959A -:1059F0000E948A28811102C00E9466280E94AB285A -:105A00008093A20380FF02C0869501C080E00C94C1 -:105A1000F6058091A203982F9695292F30E0233028 -:105A200031054CF49F5F990F8170892B81608093C1 -:105A3000A2030E94AF288091A20386950C94F605DC -:105A40008091A203982F969591F09158990F8170AB -:105A5000892B8093A2038E7F91E009F490E08091DE -:105A6000A20390FB80F98093A2030E94AF2880914B -:105A7000A20386950C94F6058091A203982F909529 -:105A800090FB80F98093A2030E94AF288091A2032B -:105A900080FF02C0869501C080E00C94F6059091CD -:105AA000A203892F86958F5F8F779170843028F4B9 -:105AB000880F892B8093A20302C09093A203809148 -:105AC000A2038E7F91E009F490E08091A20390FB05 -:105AD00080F98093A2030E94AF288091A20386954B -:105AE0000C94F6052091A203922F96958927982F62 -:105AF000990F822F8170892B8093A2038E7F91E072 -:105B000009F490E08091A20390FB80F98093A203B6 -:105B10000E94AF288091A20386950C94F6055058F8 -:105B2000BB27AA270ED075C166D130F06BD120F00B -:105B300031F49F3F11F41EF45BC10EF4E095E7FBD6 -:105B400051C1E92F77D180F3BA1762077307840731 -:105B5000950718F071F49EF58FC10EF4E0950B2EA9 -:105B6000BA2FA02D0B01B90190010C01CA01A001AF -:105B70001124FF27591B99F0593F50F4503E68F10A -:105B80001A16F040A22F232F342F4427585FF3CF4B -:105B9000469537952795A795F0405395C9F77EF41C -:105BA0001F16BA0B620B730B840BBAF09150A1F065 -:105BB000FF0FBB1F661F771F881FC2F70EC0BA0FEB -:105BC000621F731F841F48F4879577956795B79573 -:105BD000F7959E3F08F0B3CF9395880F08F099276B -:105BE000EE0F979587950895D9D008F481E0089530 -:105BF0000CD00FC107D140F0FED030F021F45F3F50 -:105C000019F0F0C0511139C1F3C014D198F39923A0 -:105C1000C9F35523B1F3951B550BBB27AA27621770 -:105C20007307840738F09F5F5F4F220F331F441FB5 -:105C3000AA1FA9F333D00E2E3AF0E0E830D09150ED -:105C40005040E695001CCAF729D0FE2F27D0660FDA -:105C5000771F881FBB1F261737074807AB07B0E819 -:105C600009F0BB0B802DBF01FF2793585F4F2AF02F -:105C70009E3F510568F0B6C000C15F3FECF3983E0F -:105C8000DCF3869577956795B795F7959F5FC9F78C -:105C9000880F911D9695879597F90895E1E0660F15 -:105CA000771F881FBB1F621773078407BA0720F08E -:105CB000621B730B840BBA0BEE1F88F7E0950895F7 -:105CC00004D06894B111D9C00895BCD088F09F5712 -:105CD00090F0B92F9927B751A0F0D1F0660F771F38 -:105CE000881F991F1AF0BA95C9F712C0B13081F018 -:105CF000C3D0B1E00895C0C0672F782F8827B85F60 -:105D000039F0B93FCCF3869577956795B395D9F778 -:105D10003EF490958095709561957F4F8F4F9F4F82 -:105D20000895E89409C097FB3EF49095809570958E -:105D300061957F4F8F4F9F4F9923A9F0F92F96E9D7 -:105D4000BB279395F695879577956795B795F1114C -:105D5000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE9 -:105D60008F4F9F4F16C0882311F096E911C07723FB -:105D700021F09EE8872F762F05C0662371F096E804 -:105D8000862F70E060E02AF09A95660F771F881FD3 -:105D9000DAF7880F9695879597F90895990F000877 -:105DA000550FAA0BE0E8FEEF16161706E807F907ED -:105DB000C0F012161306E407F50798F0621B730B88 -:105DC000840B950B39F40A2661F0232B242B252B09 -:105DD00021F408950A2609F4A140A6958FEF811DAC -:105DE000811D089597F99F6780E870E060E008954D -:105DF0009FEF80EC089500240A94161617061806E3 -:105E00000906089500240A941216130614060506BE -:105E10000895092E0394000C11F4882352F0BB0F4F -:105E200040F4BF2B11F460FF04C06F5F7F4F8F4FB2 -:105E30009F4F089557FD9058440F551F59F05F3FED -:105E400071F04795880F97FB991F61F09F3F79F09C -:105E500087950895121613061406551FF2CF46951E -:105E6000F1DF08C0161617061806991FF1CF8695A0 -:105E70007105610508940895E894BB276627772784 -:105E8000CB0197F908958ADF08F48FEF08950BD0BE -:105E9000C0CFB1DF28F0B6DF18F0952309F0A2CF0C -:105EA000A7CF1124EACFC6DFA0F3959FD1F3950FBA -:105EB00050E0551F629FF001729FBB27F00DB11D8E -:105EC000639FAA27F00DB11DAA1F649F6627B00D1E -:105ED000A11D661F829F2227B00DA11D621F739F07 -:105EE000B00DA11D621F839FA00D611D221F749F15 -:105EF0003327A00D611D231F849F600D211D822F5C -:105F0000762F6A2F11249F5750408AF0E1F08823A2 -:105F10004AF0EE0FFF1FBB1F661F771F881F9150AF -:105F20005040A9F79E3F510570F05CCFA6CF5F3F70 -:105F3000ECF3983EDCF3869577956795B795F795E2 -:105F4000E7959F5FC1F7FE2B880F911D969587956A -:105F500097F90895FA01EE0FFF1F309621053105DC -:105F600099F16115710561F48038BFE39B0749F130 -:105F700068949038810561F08038BFEF9B0741F04D -:105F8000992342F5FF3FE1053105210511F1E89420 -:105F90000894E795D901AA2329F4AB2FBE2FF85F07 -:105FA000D0F310C0FF5F70F4A695E0F7F73950F01A -:105FB00019F0FF3A38F49F779F930CD00F9007FCAD -:105FC000905808953EF014CF60E070E080E89FE3C1 -:105FD00008954FE79F775F934F933F932F939ED002 -:105FE0002F913F914F915F9152DF05C019F40EF050 -:105FF000F9CE42CFFDCE26DFC8F39638C0F707F8BA -:106000000F92E8942BE33AEA48EB5FE74EDF0F92FA -:106010000F920F924DB75EB70F92C0D0E0E4F1E05F -:1060200016D04F915F91EF91FF91E595EE1FFF1F05 -:1060300049F0FE57E0684427EE0F441FFA95E1F758 -:106040004195550B32D00F9007FE26C00895DF937F -:10605000CF931F930F93FF92EF92DF927B018C01FE -:10606000689405C0DA2EEF011EDFFE01E894A591C9 -:106070002591359145915591AEF3EF0162DDFE0119 -:106080009701A801DA9479F7DF90EF90FF900F91D4 -:106090001F91CF91DF9108959B01AC0160E070E00A -:1060A00080E89FE3A5CD9ECEACC0CCDEE8F399237B -:1060B000D9F3940F511DBBF39150504094F059F017 -:1060C000882332F0660F771F881F91505040C1F728 -:1060D0009E3F510544F7880F911D9695879597F936 -:1060E00008955F3FACF0983E9CF0BB27869577956E -:1060F0006795B79508F4B1609395C1F7BB0F58F752 -:1061000011F460FFE8CF6F5F7F4F8F4F9F4FE3CF5A -:10611000B4CE0EF076C06CCE689464CE93DEC8F335 -:106120009923D1F3C6F3DF93CF931F930F93FF927D -:10613000C92FDD2788232AF02197660F771F881F34 -:10614000DAF720E030E040E85FEB9FE3883920F0A9 -:10615000803E30F021968F77E3DCE8E6F1E003C083 -:10616000DFDCE5E9F1E073DF8B01BE01EC01FB2E22 -:106170006F5771097595771F880B990BD4DD28E14E -:1061800032E741E35FE38FDEAF2D9801AE01FF9070 -:106190000F911F91CF91DF91D4DC3BCEFA01DC014E -:1061A000AA0FBB1F9B01AC01BF5728F4222733273E -:1061B000442750781FC0B75188F4AB2F0024469570 -:1061C00037952795011CA395D2F3002069F0220F83 -:1061D000331F441FB395DAF30DD0A1CC61307105A4 -:1061E000A0E88A07B94630F49B01AC0166277727FF -:1061F00088279078309621F020833183428353831F -:1062000008959F3F31F0915020F4879577956795D9 -:10621000B795880F911D9695879597F90895AA1BB4 -:10622000BB1B51E107C0AA1FBB1FA617B70710F081 -:10623000A61BB70B881F991F5A95A9F780959095B3 -:10624000BC01CD01089597FB072E16F4009407D0EA -:1062500077FD09D00E940F3107FC05D03EF49095E0 -:1062600081959F4F0895709561957F4F0895EE0F2A -:10627000FF1F0590F491E02D0994F999FECF92BD8E -:1062800081BDF89A992780B50895A8E1B0E042E071 -:1062900050E00C946531262FF999FECF92BD81BD57 -:1062A000F89A019700B4021639F01FBA20BD0FB654 -:1062B000F894FA9AF99A0FBE08950196272F0E9432 -:1062C0004C310C944B31DC01CB01FC01F999FECF30 -:1062D00006C0F2BDE1BDF89A319600B40D9241506E -:0A62E0005040B8F70895F894FFCF7E -:1062EA0007000C52D02445000000410000DC4400A5 -:1062FA0000004152D0A4440000404100005C440028 -:10630A0000004148F17644000000415C978A44004D -:10631A000000411FD592440000004152D0A444001D -:10632A000000415CFFB844000000410AA7CF4400C6 -:10633A000000410000DC44000000410AA7CF4400ED -:10634A000000410000DC44000000410000000000A1 -:10635A0000804052D0244500004041000000000067 -:10636A000080400AA74F45000040410AA7CF4400D9 -:10637A000000410000DC4400000041000000000071 -:10638A0000804052D0244500000041000000000077 -:10639A000080405CFF38450000004100000000001A -:1063AA0000804052D02445000000410AA7CF440093 -:1063BA000000410000DC4400000041000000000031 -:1063CA0000804052D024450000804110F1764400FC -:1063DA0000A04112F1F6440000004141909B4400A4 -:1063EA0000A04112F1F64400000041050000003F00 -:1063FA000000C8426A14F814D514A1146D14016C73 -:10640A00032808140A321E000002000400050007CF -:10641A000009000B000C000E0010001100130015FB -:10642A0000170018001A001C001D001F002100237D -:10643A000024002600280029002B002D002F003000 -:10644A0000320034003500370039003B0042004575 -:10645A000025002600430061006000200037006428 -:10646A000065006600670044004600240047003FBC -:10647A004D36010BB40A7E0A2A0A430A5C0A010253 -:08648A000304050607080900E0 +:1056B0006093200208958FEF8093200208958091D7 +:1056C0001F02262F30E0280F311D2F3F310524F413 +:1056D000680F60931F0208958FEF80931F02089553 +:1056E000833011F128F4813049F0823091F008952F +:1056F000853081F120F18630C1F108958091240236 +:10570000681720F4861B80932402089510922402C7 +:10571000089580912302681720F4861B809323024A +:10572000089510922302089580912202681720F4B0 +:10573000861B809322020895109222020895809180 +:105740002102681720F4861B80932102089510928D +:105750002102089580912002681720F4861B80930F +:105760002002089510922002089580911F02681768 +:1057700020F4861B80931F02089510921F02089543 +:105780000F931F938732D8F58E3108F087C08E3083 +:1057900009F471C098F4873009F45BC08B3009F4C8 +:1057A00091C0863009F095C08091C703817F8E7FBC +:1057B0008093C70381E08093D7038CC0863109F4BE +:1057C00081C068F4803109F084C08091C70383FBF5 +:1057D000222720F991E0922790FB83F955C0893167 +:1057E00009F470C08B3109F074C08091C70381FB4C +:1057F000222720F991E0922790FB81F945C0883358 +:1058000009F460C050F4893209F45EC0853309F4AC +:105810005BC0873209F458C05CC0833409F454C0BB +:1058200028F48A3308F455C0895339C0883409F004 +:1058300050C00E946C210E94B2070FEF13ED20E3CD +:10584000015010402040E1F700C000000E943F28B6 +:1058500039C09091C703892F8095817080FB90F9A2 +:1058600029F0966098609093C70334C0997F977F22 +:105870009093C70327C08091C70382FB222720F99A +:1058800091E0922790FB82F98093C7039923D1F08E +:105890008091C70381608093C70314C08D5141E09C +:1058A00050E060E070E08A019B0104C0000F111F0E +:1058B000221F331F8A95D2F7C901B8010E942825FB +:1058C0000E946C2181E006C061E070E080E090E021 +:1058D000F5CF80E01F910F91089580E0089580E05A +:1058E0000895CF93C82F8091D703813069F018F0C5 +:1058F0008230C9F184C0E0911D02F0911E028081C6 +:10590000823209F07EC007C0E0911D02F0911E02B4 +:105910008081823261F48C2F0E946D2C811104C031 +:105920008C2F0E94C02B1DC081E090E01AC08C2FEC +:105930000E946F2C811114C0C43179F048F4CB302F +:1059400079F0C03109F061C082E08093D70308C0CC +:10595000C93219F0C83321F058C01092D70355C08E +:1059600081E0817054C0C93291F120F5C43179F1E0 +:10597000B0F4C73009F047C08EE18093240282E37F +:10598000809323028AE08093220284E180932102A3 +:1059900088E08093200288E280931F0234C0CE51B9 +:1059A000C63088F5EC2FF0E0E451FD4F8081809304 +:1059B000D60329C0CE34E9F020F4CB3421F56AE0D7 +:1059C00013C0C13579F0C235F1F461E00DC08091AA +:1059D000D603882319F01092D60315C081E0809376 +:1059E000D70315C061E006C08091D6030E94FA2A51 +:1059F0000AC06AE08091D6030E94702B04C0109206 +:105A0000D70380E004C081E002C080E0AACFCF913C +:105A100008950E949B28811102C00E9477280E944D +:105A2000BC288093F20380FF02C0869501C080E00D +:105A30000C94D2058091F203982F9695292F30E08F +:105A4000233031054CF49F5F990F8170892B816061 +:105A50008093F2030E94C0288091F20386950C94F3 +:105A6000D2058091F203982F969591F09158990F55 +:105A70008170892B8093F2038E7F91E009F490E08E +:105A80008091F20390FB80F98093F2030E94C0287A +:105A90008091F20386950C94D2058091F203982FA1 +:105AA000909590FB80F98093F2030E94C02880912A +:105AB000F20380FF02C0869501C080E00C94D205FD +:105AC0009091F203892F86958F5F8F779170843044 +:105AD00028F4880F892B8093F20302C09093F2037D +:105AE0008091F2038E7F91E009F490E08091F203BF +:105AF00090FB80F98093F2030E94C0288091F2030A +:105B000086950C94D2052091F203922F96958927C1 +:105B1000982F990F822F8170892B8093F2038E7FAB +:105B200091E009F490E08091F20390FB80F980937A +:105B3000F2030E94C0288091F20386950C94D2054E +:105B40005058BB27AA270ED0D1C1C2D130F0C7D13F +:105B500020F031F49F3F11F41EF4B7C10EF4E0952C +:105B6000E7FB9FC1E92FD3D180F3BA176207730710 +:105B70008407950718F071F49EF5EBC10EF4E095DB +:105B80000B2EBA2FA02D0B01B90190010C01CA01F7 +:105B9000A0011124FF27591B99F0593F50F4503EA2 +:105BA00068F11A16F040A22F232F342F4427585F94 +:105BB000F3CF469537952795A795F0405395C9F7AC +:105BC0007EF41F16BA0B620B730B840BBAF0915064 +:105BD000A1F0FF0FBB1F661F771F881FC2F70EC003 +:105BE000BA0F621F731F841F48F4879577956795D6 +:105BF000B795F7959E3F08F0B3CF9395880F08F0BF +:105C00009927EE0F97958795089527D108F481E09D +:105C100008950CD06BC163D140F05AD130F021F41B +:105C20005F3F19F03EC1511195C14FC170D198F33A +:105C30009923C9F35523B1F3951B550BBB27AA270D +:105C400062177307840738F09F5F5F4F220F331F7F +:105C5000441FAA1FA9F333D00E2E3AF0E0E830D04B +:105C600091505040E695001CCAF729D0FE2F27D04E +:105C7000660F771F881FBB1F261737074807AB071C +:105C8000B0E809F0BB0B802DBF01FF2793585F4F91 +:105C90002AF09E3F510568F004C15CC15F3FECF300 +:105CA000983EDCF3869577956795B795F7959F5F56 +:105CB000C9F7880F911D9695879597F90895E1E0AA +:105CC000660F771F881FBB1F621773078407BA0709 +:105CD00020F0621B730B840BBA0BEE1F88F7E09564 +:105CE000089504D06894B11135C1089518D188F091 +:105CF0009F5790F0B92F9927B751A0F0D1F0660FB8 +:105D0000771F881F991F1AF0BA95C9F712C0B130D2 +:105D100081F01FD1B1E008951CC1672F782F88272B +:105D2000B85F39F0B93FCCF3869577956795B39511 +:105D3000D9F73EF490958095709561957F4F8F4F80 +:105D40009F4F0895E89409C097FB3EF49095809585 +:105D5000709561957F4F8F4F9F4F9923A9F0F92F31 +:105D600096E9BB279395F695879577956795B795AF +:105D7000F111F8CFFAF4BB0F11F460FF1BC06F5F95 +:105D80007F4F8F4F9F4F16C0882311F096E911C0A7 +:105D9000772321F09EE8872F762F05C0662371F0C8 +:105DA00096E8862F70E060E02AF09A95660F771FDC +:105DB000881FDAF7880F9695879597F9089588D008 +:105DC00018F011F08CD038F480C0C4C0E92F9FD0F7 +:105DD000B0F35523C9F3E7FB6217730784079507F0 +:105DE000A8F199F3E92FFF2788232AF03197660F4E +:105DF000771F881FDAF7952F5527442332F09150EB +:105E00005040220F331F441FD2F7BB27E91BF50B6D +:105E1000621B730B840BB109C1F222F4620F731F72 +:105E2000841FB11D31972AF0660F771F881FBB1F93 +:105E3000EFCF915050405AF041F0882332F0660F76 +:105E4000771F881F91505040C1F7939530C08695B9 +:105E5000779567959F5FD9F7F8CF990F0008550F91 +:105E6000AA0BE0E8FEEF16161706E807F907C0F0E0 +:105E700012161306E407F50798F0621B730B840BE8 +:105E8000950B39F40A2661F0232B242B252B21F4C2 +:105E900008950A2609F4A140A6958FEF811D811D62 +:105EA000089597F99F6780E870E060E008959F3F4C +:105EB00031F0915020F4879577956795B795880FC5 +:105EC000911D9695879597F908959FEF80EC089519 +:105ED00000240A94161617061806090608950024C9 +:105EE0000A9412161306140605060895092E039443 +:105EF000000C11F4882352F0BB0F40F4BF2B11F4B7 +:105F000060FF04C06F5F7F4F8F4F9F4F089557FD15 +:105F10009058440F551F59F05F3F71F04795880F17 +:105F200097FB991F61F09F3F79F0879508951216AE +:105F300013061406551FF2CF4695F1DF08C016165A +:105F400017061806991FF1CF86957105610508940B +:105F50000895E894BB2766277727CB0197F9089522 +:105F60007CDF08F48FEF08950BD0C0CFB1DF28F0AD +:105F7000B6DF18F0952309F094CFA7CF1124EACF0C +:105F8000C6DFA0F3959FD1F3950F50E0551F629F98 +:105F9000F001729FBB27F00DB11D639FAA27F00D82 +:105FA000B11DAA1F649F6627B00DA11D661F829FA9 +:105FB0002227B00DA11D621F739FB00DA11D621F8E +:105FC000839FA00D611D221F749F3327A00D611DAB +:105FD000231F849F600D211D822F762F6A2F11248D +:105FE0009F5750408AF0E1F088234AF0EE0FFF1FE0 +:105FF000BB1F661F771F881F91505040A9F79E3F17 +:10600000510570F04ECFA6CF5F3FECF3983EDCF326 +:10601000869577956795B795F795E7959F5FC1F753 +:10602000FE2B880F911D9695879597F90895FA0193 +:10603000EE0FFF1F30962105310599F161157105AD +:1060400061F48038BFE39B0749F16894903881057B +:1060500061F08038BFEF9B0741F0992342F5FF3F85 +:10606000E1053105210511F1E8940894E795D9017E +:10607000AA2329F4AB2FBE2FF85FD0F310C0FF5F27 +:1060800070F4A695E0F7F73950F019F0FF3A38F4BC +:106090009F779F930CD00F9007FC905808953EF087 +:1060A00014CF60E070E080E89FE308954FE79F77AA +:1060B0005F934F933F932F939ED02F913F914F919A +:1060C0005F9152DF05C019F40EF0EBCE42CFFDCE4A +:1060D00026DFC8F39638C0F707F80F92E8942BE351 +:1060E0003AEA48EB5FE74EDF0F920F920F924DB7FF +:1060F0005EB70F92C0D0E8EFF0E016D04F915F91FD +:10610000EF91FF91E595EE1FFF1F49F0FE57E06804 +:106110004427EE0F441FFA95E1F74195550B32D015 +:106120000F9007FE26C00895DF93CF931F930F9320 +:10613000FF92EF92DF927B018C01689405C0DA2E0A +:10614000EF011EDFFE01E894A5912591359145915F +:106150005591AEF3EF0106DDFE019701A801DA9437 +:1061600079F7DF90EF90FF900F911F91CF91DF9122 +:1061700008959B01AC0160E070E080E89FE349CDA9 +:1061800090CE95CECCDEE8F39923D9F3940F511D30 +:10619000BBF39150504094F059F0882332F0660FD1 +:1061A000771F881F91505040C1F79E3F510544F71B +:1061B000880F911D9695879597F908955F3FACF0EC +:1061C000983E9CF0BB27869577956795B79508F420 +:1061D000B1609395C1F7BB0F58F711F460FFE8CF9A +:1061E0006F5F7F4F8F4F9F4FE3CFB4CE0EF05FCEE8 +:1061F0006CCE689456CE93DEC8F39923D1F3C6F3E0 +:10620000DF93CF931F930F93FF92C92FDD2788232E +:106210002AF02197660F771F881FDAF720E030E019 +:1062200040E85FEB9FE3883920F0803E30F0219614 +:106230008F7787DCE0E2F1E003C083DCEDE4F1E09E +:1062400073DF8B01BE01EC01FB2E6F577109759551 +:10625000771F880B990B78DD28E132E741E35FE394 +:106260008FDEAF2D9801AE01FF900F911F91CF915E +:10627000DF9178DC3BCEFA01DC01AA0FBB1F9B014A +:10628000AC01BF5728F422273327442750781FC07A +:10629000B75188F4AB2F0024469537952795011CFC +:1062A000A395D2F3002069F0220F331F441FB3954A +:1062B000DAF30DD045CC61307105A0E88A07B94604 +:1062C00030F49B01AC0166277727882790783096B9 +:1062D00021F020833183428353830895AA1BBB1B83 +:1062E00051E107C0AA1FBB1FA617B70710F0A61BD6 +:1062F000B70B881F991F5A95A9F780959095BC01F7 +:10630000CD01089597FB072E16F4009407D077FD72 +:1063100009D00E946E3107FC05D03EF4909581951E +:106320009F4F0895709561957F4F0895EE0FFF1F61 +:106330000590F491E02D0994F999FECF92BD81BDAD +:10634000F89A992780B50895A8E1B0E042E050E0BE +:106350000C94C431262FF999FECF92BD81BDF89AD5 +:10636000019700B4021639F01FBA20BD0FB6F89499 +:10637000FA9AF99A0FBE08950196272F0E94AB3121 +:106380000C94AA31DC01CB01FC01F999FECF06C0C7 +:10639000F2BDE1BDF89A319600B40D9241505040E3 +:0863A000B8F70895F894FFCF4F +:1063A8000C52D02445000000410000DC44000000ED +:1063B8004152D0A4440000404100005C4400000069 +:1063C8004148F17644000000415C978A440000008F +:1063D800411FD592440000004152D0A4440000005F +:1063E800415CFFB844000000410AA7CF4400000008 +:1063F800410000DC44000000410AA7CF440000002F +:10640800410000DC44000000410000000000008062 +:106418004052D024450000404100000000000080A8 +:10642800400AA74F45000040410AA7CF440000009A +:10643800410000DC44000000410000000000008032 +:106448004052D024450000004100000000000080B8 +:10645800405CFF384500000041000000000000805B +:106468004052D02445000000410AA7CF4400000054 +:10647800410000DC440000004100000000000080F2 +:106488004052D024450000804110F176440000A01D +:106498004112F1F6440000004141909B440000A0E5 +:1064A8004112F1F64400000041050000003F0000E1 +:1064B800C8427B140915E614B2147E1401BC0328E3 +:1064C80008140A321E000002000400050007000933 +:1064D800000B000C000E001000110013001500172F +:1064E8000018001A001C001D001F002100230024B2 +:1064F800002600280029002B002D002F0030003234 +:106508000034003500370039003B004200450025C3 +:106518000026004300610060002000370064006529 +:1065280000660067004400460024004700314980A7 +:106538003F5D8B803FF8BF803FCAE1803F73ED80AD +:106548003FCAE1803FF8BF803F5D8B803F31498083 +:106558003F0000803FF16D7F3F75EA7E3F4C827EB1 +:106568003F833F7E3F84287E3F833F7E3F4C827E31 +:106578003F75EA7E3FF16D7F3F0000803F3F4D361B +:10658800B90A6C0A360AE209FB09140A0102030473 +:06659800050607080900DA :00000001FF diff --git a/quantum/audio/voices.c b/quantum/audio/voices.c index 0921bd593..d2316ba1b 100644 --- a/quantum/audio/voices.c +++ b/quantum/audio/voices.c @@ -54,28 +54,28 @@ float voice_envelope(float frequency) { } break; - case octave_crunch: - polyphony_rate = 0; - switch (compensated_index) { - case 0 ... 9: - case 20 ... 24: - case 30 ... 32: - frequency = frequency / 2; - note_timbre = TIMBRE_12; - break; - - case 10 ... 19: - case 25 ... 29: - case 33 ... 35: - frequency = frequency * 2; - note_timbre = TIMBRE_12; - break; + // case octave_crunch: + // polyphony_rate = 0; + // switch (compensated_index) { + // case 0 ... 9: + // case 20 ... 24: + // case 30 ... 32: + // frequency = frequency / 2; + // note_timbre = TIMBRE_12; + // break; + + // case 10 ... 19: + // case 25 ... 29: + // case 33 ... 35: + // frequency = frequency * 2; + // note_timbre = TIMBRE_12; + // break; - default: - note_timbre = TIMBRE_12; - break; - } - break; + // default: + // note_timbre = TIMBRE_12; + // break; + // } + // break; case duty_osc: // This slows the loop down a substantial amount, so higher notes may freeze -- cgit v1.2.3 From 9edcfcdf6f165b0896afded138fd0dcb97c552c0 Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Fri, 29 Apr 2016 22:39:05 +0300 Subject: Adds brackets to inner vertical keys in experimental layout --- .../keymaps/erez_experimental/erez_experimental.hex | 4 ++-- .../ergodox_ez/keymaps/erez_experimental/keymap.c | 20 ++++++++++---------- .../ergodox_ez/keymaps/erez_experimental/readme.md | 9 +++++++++ 3 files changed, 21 insertions(+), 12 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex index bb78a5ea4..ab32e94dd 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex @@ -17,12 +17,12 @@ :1001000016001B00E104C1002000080007000600E3 :1001100050002C0021001500090019004F004A0072 :10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 +:1001300000002F7F0000E3004F00015400003077E3 :100140000000E20023001C000B00110000002971D8 :10015000240018000D74100052004B0025000C0004 :100160000E00360051002800260012000F00370054 :100170002F002B81270013003382387130004E008E -:100180002D00310034780130C10000000100010071 +:100180002D003100347801302D0000000100010005 :1001900001000100010000003A001E0022002602BA :1001A000010001003B001F002300270201000100A5 :1001B0003C00200024002F004B0101003D002100E5 diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c index f31901331..bf5a974bf 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -20,9 +20,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | 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/)| + * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)| * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | - | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | LGui | | Alt |Ctrl/Esc| @@ -39,18 +39,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, - LSFTO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LSFTO, 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_FN1,KC_END, + KC_SPC,KC_FN1,KC_END, // right hand - KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, - TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), - MEH_T(KC_NO),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), RSFTC, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, - KC_LALT, CTL_T(KC_ESC), + 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), RSFTC, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_MINS, + KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,LT(SYMB, KC_TAB), KC_ENT ), diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md index 82e1c5e4a..205280e29 100644 --- a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md @@ -4,6 +4,15 @@ This is my personal layout which I use to test out ideas which may or may not ma Changelog: +## 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 -- cgit v1.2.3 From 711809fdac9773f224c2251ecdcc49d4acd581f1 Mon Sep 17 00:00:00 2001 From: Thomas Anderson Date: Fri, 29 Apr 2016 14:42:31 -0700 Subject: Finalized my personal layout --- keyboard/ergodox_ez/keymaps/techtomas/keymap.c | 231 ++++ .../ergodox_ez/keymaps/techtomas/techtomas.hex | 1166 ++++++++++++++++++++ 2 files changed, 1397 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/techtomas/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/techtomas/keymap.c b/keyboard/ergodox_ez/keymaps/techtomas/keymap.c new file mode 100644 index 000000000..b7d3b9a11 --- /dev/null +++ b/keyboard/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 MDIA 2 // media +#define CNTL 3 // control layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | L1/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |Meh/Tab | Q | W | E | R | T | STab | | L3 | Y | U | I | O | P | Meh/\ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Hyp/Esc | L3/A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | + * |--------+------+------+------+------+------| Tab | |AltGui|------+------+------+------+------+--------| + * | LShift | L3/Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | LAlt | LGui |Left |Right | | UP | Down | [ | ] | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtl | LGui | | LAlt |ShfGui| + * ,-------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Backsp|Delete|------| |------| 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 + LT(SYMB,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, S(KC_TAB), + ALL_T(KC_ESC), LT(CNTL,KC_A), KC_S, KC_D, KC_F, KC_G, + KC_LSFT, LT(CNTL,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TAB, + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RIGHT, + KC_LCTL, KC_LGUI, + KC_HOME, + KC_BSPC, KC_DELETE, KC_END, + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_FN3, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), + KC_H, KC_J, KC_K, KC_L, LT(MDIA,KC_SCLN), ALL_T(KC_QUOT), + LALT(KC_LGUI), KC_N, KC_M, KC_COMM, KC_DOT, LT(MDIA,KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, S(KC_LGUI), + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | Prnt | + * |--------+------+------+------+------+------| 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_TRNS, 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_PSCR, + 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: Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Prev | Next | | Prev | Next | + * ,------|------|------| |------+------+------. + * | | | VolUp| | VolUp| | | + * | Play | Mute |------| |------| Mute | Play | + * | | | VolDn| | VolDn| | | + * `--------------------' `--------------------' + */ +// Control +[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_MPRV, KC_MNXT, + KC_VOLU, + KC_MPLY, KC_MUTE, KC_VOLD, + // 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_MPLY +), +/* Keymap 3: Control Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Sleep | | | | | | Pwr | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | Rclk | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[CNTL] = KEYMAP( + KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PWR, + 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_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_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 +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), + [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/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex new file mode 100644 index 000000000..8aa849208 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/techtomas/techtomas.hex @@ -0,0 +1,1166 @@ +:100000000C94BB020C9402030C9402030C940203A4 +:100010000C9402030C9402030C9402030C9402034C +:100020000C9402030C9402030C94D20C0C94A40DB7 +:100030000C9402030C9402030C9402030C9402032C +:100040000C9402030C9470220C9402030C9402038F +:100050000C9402030C94001C0C9402030C940203F5 +:100060000C9402030C9402030C9402030C940203FC +:100070000C9402030C9402030C9402030C940203EC +:100080000C9402030C9402030C9402030C940203DC +:100090000C9402030C9402030C9402030C940203CC +:1000A0000C9402030C9402030C940203110E330E01 +:1000B000210F330E210F780E9B0E210FF00E030F30 +:1000C000EF11EF112C122C126F12AD12C614C614C0 +:1000D000C612C614C713C7139A14C614C614B11493 +:1000E0000000F0A1F0A2F0A335812B77297FE10079 +:1000F000E00000001E00140004831D83E2004D0098 +:100100001F001A0016001B00E3004C00200008002E +:100110000700060050002A00210015000900190000 +:100120004F004A00220017000A0005000000E0000E +:100130002C082B0200002B000000E3002D00C30060 +:100140000000E3040000E20023001C000B0011008B +:100150000000E302240018000D00100052004B00C4 +:1001600025000C000E00360051002C002600120065 +:100170000F0037002F002800270013003382388239 +:1001800030004E002E003177347FE500C1000000C2 +:100190000100010001000100010000003A001E0200 +:1001A00020022202010001003B001F022102230263 +:1001B000010001003C002F0226022F000100010077 +:1001C0003D00300227023000010001003E003102F4 +:1001D0003500350200000100010036020000690010 +:1001E000000001000100370200006A000000010069 +:1001F0003F003302330024020000010040002400CD +:1002000021001E00270001004100250022001F00E0 +:100210003700010042002600230020002E000100CC +:100220004300310025022D002E020100440045004C +:10023000460028000100000001000100010001004B +:100240000100000001000100010001000100AA00FE +:1002500001000100010001000100A80001000100EF +:10026000010001000100AE000100010001000100D9 +:100270000100A90001000100010001000000AC0024 +:1002800001000100000001000000AB0001000100BE +:10029000000001000000AC000100010001000100AD +:1002A0000000AB0001000100010001000100A900F5 +:1002B00001000100010001000100AE000100010089 +:1002C000010001000100A80001000100010001007F +:1002D0000100AA000100010001000100010000006E +:1002E000A600010001000100010000000100010062 +:1002F000010001000100010001000100F200010005 +:10030000010001000100F000F10001000100010006 +:1003100001000100F30001000100010001000100E3 +:10032000F400F50000000100A5000100000001003C +:1003300000000100010001000000010000000100B8 +:100340000100010050000100000001000100010057 +:1003500051000100010001000100010052000100F4 +:1003600001000100010001004F0001000100010037 +:100370000100010001000100010001000100010075 +:100380000100010001000000160345007200670033 +:100390006F0044006F007800200045005A00000004 +:1003A00016034500720067006F0044006F0078007C +:1003B000200045005A0000000403090409026D00F2 +:1003C000040100A0FA090400000103010100092151 +:1003D00011010001223F000705810308000A0904FA +:1003E00001000103010200092111010001224D0059 +:1003F0000705820308000A09040200010300000047 +:100400000921110100012236000705830308000AB3 +:100410000904030001030000000921110100012269 +:1004200039000705840310000112011001000000CB +:1004300008EDFE071301000102000105010906A1F4 +:1004400001050719E029E7150025019508750181C7 +:100450000205081901290595057501910295017597 +:100460000391010507190029771500250195787575 +:10047000018102C005010980A10185021601002643 +:10048000B7001A01002AB700751095018100C00558 +:100490000C0901A1018503160100269C021A010026 +:1004A0002A9C02751095018100C005010902A10175 +:1004B0000901A10005091901290515002501950566 +:1004C000750181029501750381010501093009312A +:1004D0001581257F95027508810609381581257FCC +:1004E000950175088106050C0A38021581257F954E +:1004F0000175088106C0C005010906A1010507199B +:10050000E029E7150025019508750181029501751F +:1005100008810105081901290595057501910295C4 +:1005200001750391010507190029FF150025FF95A5 +:100530000675088100C000000000000000000000F7 +:1005400000010204060A0F17202C3A4A5D71879DAC +:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB +:100560005D4A3A2C20170F0A060402010000000021 +:1005700000000000000011241FBECFEFDAE0DEBF54 +:10058000CDBF04B603FE27C08091EE019091EF012C +:10059000A091F001B091F1018730904BA740B04B92 +:1005A000D1F41092EE011092EF011092F00110922E +:1005B000F10114BE84B7877F84BF0FB6F894A89565 +:1005C00080916000886180936000109260000FBE8F +:1005D000E0E0FFE3099511E0A0E0B1E0ECE8F8E429 +:1005E00002C005900D92A433B107D9F721E0A4E32E +:1005F000B1E001C01D92AE3EB207E1F70E94130ABE +:100600000C9444240C94000061110BC0FC01828105 +:10061000882321F085EE0E94831003C085EE0E949E +:100620004B1180E090E0089508956091B1017091C0 +:10063000B2018091B3019091B4010E94291B569898 +:100640005E9825982D9826982E9827982F98823076 +:1006500039F0833041F0813041F4259A2D9A089584 +:10066000269A2E9A0895279A2F9A08950C94150386 +:1006700056985E9825982D9826982E9827982F980A +:100680008FEF90E0909389008093880090938B0087 +:1006900080938A0090938D0080938C00259A2D9AE8 +:1006A0002FEF80E792E0215080409040E1F700C0BA +:1006B0000000269A2E9A2FEF80E792E0215080408A +:1006C0009040E1F700C00000279A2F9A2FEF80E7B3 +:1006D00092E0215080409040E1F700C00000259852 +:1006E0002D982FEF80E792E0215080409040E1F775 +:1006F00000C0000026982E982FEF80E792E021504E +:1007000080409040E1F700C0000027982F9856984D +:100710005E9825982D9826982E9827982F980895BA +:1007200089EA8093800089E08093810024982C9846 +:100730003F988AB18F748AB96E98479A8BB1806B53 +:100740008BB9769A0E9438030C94140380E280934C +:1007500000018091340181110EC00E94F50381E0F7 +:10076000809334012FEF83ED90E32150804090403F +:10077000E1F700C0000080E40E94FB0380930001C9 +:1007800081112EC00E94250480930001811128C090 +:100790000E94250480930001811122C08FE30E94F2 +:1007A00025048093000181111BC00E941D0480E478 +:1007B0000E94FB0380930001811112C08CE00E9413 +:1007C00025048093000181110BC00E9425048093B1 +:1007D0000001811105C08FE30E9425048093000170 +:1007E0000E941D048091000108951092B9008AE0D2 +:1007F0008093B800089594EA9093BC009091BC0057 +:1008000097FFFCCF9091B900987F983021F09031FC +:1008100011F081E008958093BB0084E88093BC00D0 +:100820008091BC0087FFFCCF8091B900887F883120 +:1008300011F0803471F780E0089584E98093BC0062 +:100840008091BC0084FDFCCF08958093BB0084E8B8 +:100850008093BC008091BC0087FFFCCF9091B900D1 +:10086000987F81E0983209F480E0089584E88093CD +:10087000BC008091BC0087FFFCCF8091BB00089535 +:1008800080910001811115C080E40E94FB038093D8 +:10089000000181110CC082E10E94250480930001B7 +:1008A000811105C08FEF0E942504809300010E94F2 +:1008B0001D0484B1807F84B985B1807F85B98AB1F8 +:1008C000837F8AB98BB1837F8BB93E984698089510 +:1008D0000E94A603809300010E94400480B38C70A4 +:1008E00080BB81B3836F81BBA6E3B1E0E4E4F1E0B8 +:1008F0008EE08E0F11921D928E13FCCF0C949003FC +:10090000BF92CF92DF92EF92FF920F931F93CF93FC +:10091000DF9380910001882379F0809135018F5F0A +:1009200080933501811108C00E94A60380930001C5 +:10093000811102C00E94380306E311E0C0E0D0E05C +:10094000DD24D39482E0C82EEE24E394F12CC7304A +:10095000D10500F580910001811164C080E40E94FE +:10096000FB0380930001811112C082E10E942504E3 +:100970008093000181110BC0C7010C2E01C0880FAC +:100980000A94EAF780950E942504809300010E9452 +:100990001D0448C0CA30A1F028F4C83059F0C9304D +:1009A00061F005C0CC3089F070F0CD3089F0209A2C +:1009B000289810C0219A29980DC0229A2A980AC016 +:1009C000239A2B9807C0529A01C0539A5B9802C091 +:1009D0003E9A469890EA9A95F1F79FB1799902C0AC +:1009E00082E001C080E091709D25982B7C9902C027 +:1009F00084E001C080E0892B7D9902C038E001C00D +:100A000030E0832B7E9902C020E101C020E0822BE0 +:100A10009FB19095991F9927991F9295990F907E54 +:100A2000892B0FC080910001811149C080E40E9490 +:100A3000FB0380930001882379F1B12C0E941D04EF +:100A40008B2DF8019081981719F08083C0920101D5 +:100A50000E94400421960F5F1F4FCE30D10509F050 +:100A600076CF80910101882361F18150809301014B +:100A7000882339F08FE99FE00197F1F700C000006B +:100A800020C0A4E4B1E0E6E3F1E0CF01825F919100 +:100A90009D938E13FCCF15C083E10E9425048093A3 +:100AA00000018111CACF81E40E94FB038093000101 +:100AB0008111C3CF0E943604B82EB094BFCF80E01E +:100AC000C0CF0E94360381E0DF91CF911F910F913B +:100AD000FF90EF90DF90CF90BF900895E82FF0E067 +:100AE000EC5BFE4F808108950895089596E0799F0C +:100AF000F001112494E5899FE00DF11D1124E60F0A +:100B0000F11DEE0FFF1FE851FF4F8591949108955D +:100B1000880F991FFC01E05AF04085919491089547 +:100B2000880F991FFC01E052FF4F85919491089521 +:100B30000F931F93CF93DF93EC018115904350F5F2 +:100B4000C11580E2D80708F0B3C0CB3BD10590F4C3 +:100B5000C83AD10508F05AC0C53AD10508F04BC0D3 +:100B6000C430D10508F0BBC1219709F0B5C101E03F +:100B700010E0F5C1CF3FD10511F008F0B0C1C03F82 +:100B8000D10508F092C0CE01805E9109089708F463 +:100B9000A6C1A2C1C11591E5D907A8F4C23020E5CC +:100BA000D20708F09EC0C11580E5D80709F485C0BA +:100BB00008F091C0C11520E4D20708F08DC1DD27EF +:100BC0008E01106CCCC1C11580E8D80758F4C1154E +:100BD00090E7D90708F07CC1C11520E6D20708F4D8 +:100BE00022C17AC1C11580E9D80708F075C1DF704C +:100BF0008E01106AB4C1C53AD10509F472C1C63A72 +:100C0000D10509F071C102E810E4A9C1C83AD105C3 +:100C100009F46DC1C93AD10509F46CC1CA3AD105CC +:100C200009F46BC1CB3AD10509F46AC1CC3AD105BC +:100C300009F469C1CD3AD10509F468C1C03BD105B9 +:100C400009F467C1CE3AD10509F466C1CF3AD1059E +:100C500009F465C1C13BD10509F464C1C23BD105AA +:100C600009F463C1C33BD10509F462C1C43BD1059A +:100C700009F461C1C53BD10509F460C1C63BD1058A +:100C800009F45FC1C73BD10509F45EC1C83BD1057A +:100C900009F45DC1C93BD10509F45CC1CA3BD1056A +:100CA00009F45BC100E014E45AC18E01106557C11C +:100CB000CE019F700E94900553C10E94EA149FEFDD +:100CC00024E38CE0915020408040E1F700C0000018 +:100CD0000E94251C44C18091CD0181608093CD018B +:100CE0003EC10E94CE1D811102C00E94B41D0E940F +:100CF000EB1D90E09093EE018093ED01C23090E502 +:100D0000D90721F48091ED01816086C0C43020E5CF +:100D1000D20721F48091ED0182607EC0C63080E56B +:100D2000D80721F48091ED01846076C0C83090E549 +:100D3000D90719F48091ED0127C0CA3020E5D20708 +:100D400021F48091ED01806167C0CC3080E5D80747 +:100D500021F48091ED0180625FC0CE3090E5D9072B +:100D600021F48091ED01806457C0C03120E5D207A5 +:100D700021F48091ED0180684FC0C23180E5D80731 +:100D800029F48091ED018460886046C0C33090E50D +:100D9000D90721F48091ED018E7F3EC0C53020E55A +:100DA000D20721F48091ED018D7F36C0C73080E5F8 +:100DB000D80721F48091ED018B7F2EC0C93090E5DA +:100DC000D90719F48091ED0126C0CB3020E5D20778 +:100DD00021F48091ED018F7E1FC0CD3080E5D807D2 +:100DE00021F48091ED018F7D17C0CF3090E5D907B8 +:100DF00021F48091ED018F7B0FC0C13120E5D20736 +:100E000021F48091ED018F7707C0C331D04531F4D3 +:100E10008091ED018B7F877F8093ED018091ED01C3 +:100E20000E94EF1D9CC08D2F99278F7099278130CC +:100E30009105D9F49E012370332702C0880F991FB2 +:100E40002A95E2F79C688E0144E0000F111F4A9535 +:100E5000E1F700271370802B912B53E0CC0FDD1F9F +:100E60005A95E1F7C076DD272FC08230910531F425 +:100E7000DC2FCC278E01016F106A71C08330910581 +:100E800069F4CE018370992701E010E002C0000FE1 +:100E9000111F8A95E2F7C8019C680FC0049709F0FA +:100EA0005EC0CE018370992701E010E002C0000F00 +:100EB000111F8A95E2F7C8019A6823E0CC0FDD1F65 +:100EC0002A95E1F7C07ED7708C010C2B1D2B47C0F3 +:100ED000DF708E01106243C000E010E040C08E0160 +:100EE0003EC001E810E43BC003E810E438C002EE65 +:100EF00014E435C009EE14E432C00AEE14E42FC045 +:100F000005EB14E42CC006EB14E429C007EB14E451 +:100F100026C00CEC14E423C00DEC14E420C003E85C +:100F200015E41DC00AE815E41AC002E915E417C06B +:100F300004E915E414C001E216E411C003E216E46A +:100F40000EC004E216E40BC005E216E408C006E297 +:100F500016E405C007E216E402C00AE216E4C8017E +:100F6000DF91CF911F910F91089596E0799FF00145 +:100F7000112494E5899FE00DF11D1124E60FF11D68 +:100F8000EE0FFF1FE851FF4F85919491803E910530 +:100F9000E0F4803C910558F58133910509F46FC068 +:100FA00048F48932910509F463C08A32910509F445 +:100FB0006DC072C089339105E9F082389105D1F096 +:100FC0008533910509F44DC067C0833E910581F1D9 +:100FD00038F4803E9105B9F0823E9105D9F05CC0AD +:100FE000863E910561F1873E9105A1F155C00E94B1 +:100FF000880508952091ED0120FD02C021FF4CC01D +:1010000080EE90E049C08091ED0180FFF9CF89E347 +:1010100090E042C08091ED0182FF0EC08091ED0111 +:1010200084FF03C080E090E037C083EE90E034C0DE +:101030008091ED0182FFF2CF82EE90E02DC0809191 +:10104000ED0183FF0BC08091ED0184FDEBCF87EEB6 +:1010500090E022C08091ED0183FFF5CF86EE90E015 +:101060001BC08091ED0185FF07C089E290E014C0AC +:101070008091ED0185FFF9CF85E390E00DC080916F +:10108000ED0186FF07C08AE290E006C08091ED0185 +:1010900086FFF9CF81E390E00E94980508950895B6 +:1010A0000C944F08809162010895CF93DF9300D094 +:1010B0001F92CDB7DEB79C018091E401843019F511 +:1010C00093E099833B832A839093E9008FEF90917B +:1010D000E800815095FD06C095ED9A95F1F7000066 +:1010E0008111F5CF8091E80085FF0DC040E050E010 +:1010F00063E070E0CE0101960E94C20A8091E80090 +:101100008E778093E8000F900F900F90DF91CF9132 +:101110000895CF93DF9300D01F92CDB7DEB7209113 +:10112000E401243021F522E029839B838A8383E034 +:101130008093E9008FEF9091E800815095FD06C003 +:1011400095ED9A95F1F700008111F5CF8091E800B7 +:1011500085FF0DC040E050E063E070E0CE010196F5 +:101160000E94C20A8091E8008E778093E8000F9079 +:101170000F900F90DF91CF9108952091E4012430DA +:10118000F1F422E02093E9002FEF3091E8002150A4 +:1011900035FD06C035ED3A95F1F700002111F5CF88 +:1011A0002091E80025FF0BC040E050E065E070E0D2 +:1011B0000E94C20A8091E8008E778093E80008952B +:1011C000CF93DF93EC019091E401943009F046C095 +:1011D00080910C018823D9F080910D018823B9F00A +:1011E0009093E9008FEF9091E800815095FD06C043 +:1011F00095E19A95F1F700008111F5CF8091E80013 +:1012000085FF2CC040E050E060E170E017C081E055 +:101210008093E9008FEF9091E800815095FD06C022 +:1012200095ED9A95F1F700008111F5CF8091E800D6 +:1012300085FF14C040E050E068E070E0CE010E94FD +:10124000C20A8091E8008E778093E80080E1FE0179 +:10125000A2E5B1E001900D928A95E1F7DF91CF917F +:1012600008958091E301811109C00E94570C0E94EA +:10127000B40C8091E20084608093E20008951092A3 +:10128000E301089508950C945D220E94BB1B0E9407 +:1012900063220E945A0F0C94500842E061EC81E0F6 +:1012A0000E94D10B42E061EC82E00E94D10B42E04F +:1012B00061EC83E00E94D10B42E161EC84E00C948C +:1012C000D10B8091E601833009F455C030F48130B0 +:1012D00071F0823009F48EC008958A3009F47AC022 +:1012E0008B3009F460C0893009F09CC020C0809127 +:1012F000E501813A09F096C08091E800877F8093EC +:10130000E8008091E9019091EA01892B21F460E1E4 +:1013100082E591E003C060E080E090E070E00E9430 +:101320000D0B8091E8008B778093E8000895809101 +:10133000E501813209F076C08091E9019091EA01DE +:10134000009719F0039709F06DC08091E800877F3E +:101350008093E8008091E80082FD05C08091E4015F +:101360008111F8CF5FC08091F1008093620180917C +:10137000E8008B7753C08091E501813A09F052C0B3 +:101380008091E9019091EA01892B09F04BC080918D +:10139000E800877F8093E8008091E80080FFFCCF21 +:1013A00080910C0136C08091E5018132D9F58091A0 +:1013B000E9019091EA01892BA9F58091E800877FE6 +:1013C0008093E8000E94060C8091E70180930C0155 +:1013D0000C94EA148091E501813221F58091E800B6 +:1013E000877F8093E8000E94060C8091E80180933B +:1013F000630108958091E501813AA1F48091E800AC +:10140000877F8093E8008091E80080FFFCCF809187 +:1014100063018093F1008091E8008E778093E8006B +:101420000C94060C089584B7877F84BF0FB6F89498 +:10143000A8958091600088618093600010926000A0 +:101440000FBE90E080E80FB6F8948093610090930F +:1014500061000FBE0E94A90F0E94570C0E94B40C9D +:101460008091E20084608093E20078940E943A0FB9 +:101470000E94AB0F82E091E00E94550F0E944B2228 +:101480008091E401853069F40E94791B8091E2012A +:101490008823B1F30E94A71B882391F30E94AC0A12 +:1014A000EFCF0E94B10FECCF292F33272330310526 +:1014B000C9F064F42130310581F02230310509F0A2 +:1014C00043C08DE690E02CEB33E042C02132310581 +:1014D000F1F02232310541F137C082E190E029E29A +:1014E00034E036C099278130910541F08230910572 +:1014F00041F0892B49F5E8EBF3E005C0E0EAF3E0C1 +:1015000002C0E8E8F3E0849190E09F0121C06430DC +:10151000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081C6 +:10152000318189E090E014C0643070F470E0FB0118 +:10153000EE0FFF1FE65EFE4F20813181FB01EA5E68 +:10154000FE4F808190E004C080E090E020E030E039 +:10155000FA0131832083089580E189BD82E189BD4C +:1015600009B400FEFDCF8091D8008F7D8093D80014 +:101570008091E00082608093E0008091E00081FD36 +:10158000FCCF0895CF92DF92EF92FF920F931F93BB +:10159000CF93DF93EC018B016A010E94250C81112E +:1015A00033C0C114D10439F0F60180819181081B48 +:1015B000190BC80FD91FE12CF12C0115110519F1D8 +:1015C0008091E80085FD16C08091E8008E778093B9 +:1015D000E800C114D10449F0F60180819181E80E40 +:1015E000F91EF182E08285E00FC00E94250C88235D +:1015F00021F30AC089918093F10001501109FFEF96 +:10160000EF1AFF0ADACF80E0DF91CF911F910F919F +:10161000FF90EF90DF90CF9008952091EB013091F3 +:10162000EC012617370748F06115710539F4209150 +:10163000E8002E772093E80001C0B90140E0611571 +:101640007105A9F12091E401222309F443C025305A +:1016500009F442C02091E80023FD40C02091E80039 +:1016600022FD32C02091E80020FFE9CF4091F30035 +:101670002091F20030E0342BFC01CF01611571059F +:1016800059F02830310540F481918093F100615088 +:1016900071092F5F3F4FF1CF41E02830310509F04C +:1016A00040E02091E8002E772093E800C8CF411158 +:1016B000C9CF0AC08091E401882361F0853061F0D0 +:1016C0008091E80083FD0AC08091E80082FFF2CF9C +:1016D00080E0089582E0089583E0089581E0089510 +:1016E0002091EB013091EC012617370748F0611586 +:1016F000710539F42091E8002E772093E80001C0AD +:10170000B901FC0120E06115710591F18091E401BE +:10171000882309F440C0853009F43FC08091E80077 +:1017200083FD3DC08091E80082FD2FC08091E800DC +:1017300080FFE9CF2091F3008091F20090E0922B9E +:101740006115710559F08830910540F4249120937A +:10175000F1003196615071090196F2CF21E00897AE +:1017600009F020E08091E8008E778093E800CBCFED +:101770002111CCCF0AC08091E401882361F085302B +:1017800061F08091E80083FD0AC08091E80082FF4B +:10179000F2CF80E0089582E0089583E0089581E02B +:1017A0000895982F973058F59093E900981739F0DD +:1017B0007091EC002091ED005091F00003C0242FB7 +:1017C000762F50E021FF19C03091EB003E7F30931F +:1017D000EB003091ED003D7F3093ED003091EB0058 +:1017E00031603093EB007093EC002093ED00509348 +:1017F000F0002091EE0027FF07C09F5FD3CF8F70CE +:101800008093E90081E0089580E008958091E501EA +:1018100087FF11C08091E80082FD05C08091E4013E +:101820008111F8CF11C08091E8008B770BC08091B7 +:10183000E401882349F08091E80080FFF8CF80918F +:10184000E8008E778093E80008952091E4003091BD +:10185000E50095E64091EC00842F817040FF22C0A6 +:101860008091E80080FD1CC08091E401882391F004 +:10187000853091F08091EB0085FD10C04091E4002F +:101880005091E5004217530729F39A01915011F73F +:1018900084E0089582E0089583E0089581E008954A +:1018A00080E008954091E80042FFDECF08950E9455 +:1018B000C50C0E94CD0CE0EEF0E080818160808359 +:1018C000E8EDF0E080818F77808319BCA7EDB0E070 +:1018D0008C918E7F8C9380818F7E80831092E30128 +:1018E00008950F931F93CF93DF930E94C50C0E941E +:1018F000CD0CC8EDD0E088818F778883888180689F +:10190000888388818F7D888319BC1092E4011092AE +:10191000E0011092E2011092E10100EE10E0F80106 +:1019200080818B7F808388818160888342E060E052 +:1019300080E00E94D10BE1EEF0E080818E7F808319 +:10194000E2EEF0E080818160808380818860808326 +:10195000F80180818E7F8083888180618883DF9118 +:10196000CF911F910F910895E8EDF0E080818F7E77 +:101970008083E7EDF0E080818160808384E082BF36 +:1019800081E08093E3010C94710CE8EDF0E080813C +:101990008E7F80831092E20008951092DA001092F8 +:1019A000E10008951F920F920FB60F9211242F930A +:1019B0003F934F935F936F937F938F939F93AF93D7 +:1019C000BF93EF93FF938091E10082FF0BC0809162 +:1019D000E20082FF07C08091E1008B7F8093E100ED +:1019E0000E94390F8091DA0080FF1FC08091D800DB +:1019F00080FF1BC08091DA008E7F8093DA00809197 +:101A0000D90080FF0DC080E189BD82E189BD09B4A4 +:101A100000FEFDCF81E08093E4010E94310905C002 +:101A200019BC1092E4010E943F098091E10080FFFF +:101A300019C08091E20080FF15C08091E2008E7F86 +:101A40008093E2008091E20080618093E2008091C7 +:101A5000D80080628093D80019BC85E08093E401AF +:101A60000E9443098091E10084FF30C08091E20030 +:101A700084FF2CC080E189BD82E189BD09B400FEEC +:101A8000FDCF8091D8008F7D8093D8008091E100B8 +:101A90008F7E8093E1008091E2008F7E8093E20050 +:101AA0008091E20081608093E2008091E0018823D0 +:101AB00011F084E007C08091E30087FD02C081E05F +:101AC00001C083E08093E4010E9445098091E10018 +:101AD00083FF29C08091E20083FF25C08091E1004F +:101AE000877F8093E10082E08093E4011092E0011F +:101AF0008091E1008E7F8093E1008091E2008E7FF3 +:101B00008093E2008091E20080618093E20042E0F5 +:101B100060E080E00E94D10B8091F00088608093AB +:101B2000F0000E944209FF91EF91BF91AF919F9108 +:101B30008F917F916F915F914F913F912F910F9076 +:101B40000FBE0F901F9018951F920F920FB60F9215 +:101B500011242F933F934F935F936F937F938F93B2 +:101B60009F93AF93BF93CF93DF93EF93FF93C09176 +:101B7000E900CF708091EC00D82FD17080FDD0E8C3 +:101B80001092E9008091F000877F8093F0007894B4 +:101B90000E94E80D1092E9008091F0008860809327 +:101BA000F000CD2BCF70C093E900FF91EF91DF9152 +:101BB000CF91BF91AF919F918F917F916F915F91E5 +:101BC0004F913F912F910F900FBE0F901F9018953E +:101BD0001F93CF93DF93CDB7DEB7AA970FB6F894D4 +:101BE000DEBF0FBECDBFE5EEF1E088E08E0F909135 +:101BF000F10091938E13FBCF0E9461098091E80060 +:101C000083FF1FC18091E5019091E601492F50E0CB +:101C10004A30510508F015C1FA01EA5AFF4F0C94F9 +:101C2000F423803881F0823809F00BC18091E901FA +:101C30008F708093E9008091EB0085FB882780F905 +:101C40001092E90006C08091E1019091E2019111AA +:101C500082609091E800977F9093E8008093F10074 +:101C60001092F100C8C0282F2D7F09F0EAC0882308 +:101C700019F0823061F0E5C08091E701813009F010 +:101C8000E0C0933009F080E08093E2012BC08091A6 +:101C9000E701811127C08091E9018F7009F4D1C05B +:101CA0008093E9002091EB0020FF1CC0933021F4C9 +:101CB0008091EB00806214C09091EB009061909352 +:101CC000EB0021E030E0A90102C0440F551F8A95C6 +:101CD000E2F74093EA001092EA008091EB008860FE +:101CE0008093EB001092E9008091E800877F86C026 +:101CF0008111A7C01091E7011F778091E3008078E0 +:101D0000812B8093E3008091E800877F8093E80037 +:101D10000E94060C8091E80080FFFCCF8091E300D8 +:101D200080688093E300111102C082E001C083E06B +:101D30008093E40186C08058823008F082C0809190 +:101D4000E7019091E8018C3D53E0950779F583E038 +:101D50008A838AE289834FB7F894DE01139620E0E4 +:101D60003EE051E2E32FF0E050935700E49120FF72 +:101D700003C0E295EF703F5FEF708E2F90E0EA3086 +:101D800010F0C79601C0C0968D939D932F5F2431AC +:101D900049F74FBF8091E800877F8093E8006AE2AF +:101DA00070E0CE0101960E940D0B14C0AE014F5F92 +:101DB0005F4F6091E9010E94540ABC01892B09F42C +:101DC00040C09091E800977F9093E80089819A81C4 +:101DD0000E94700B8091E8008B778093E80031C0FF +:101DE000803879F58091E800877F8093E8008091C2 +:101DF000E0018093F1008091E8008E778093E80005 +:101E00000E94060C1EC081111CC09091E701923007 +:101E1000C0F48091E800877F8093E8009093E00110 +:101E20000E94060C8091E001811106C08091E300C0 +:101E300087FD02C081E001C084E08093E4010E943C +:101E40004D098091E80083FF0AC08091E800877FF8 +:101E50008093E8008091EB0080628093EB00AA966B +:101E60000FB6F894DEBF0FBECDBFDF91CF911F91AB +:101E700008950895CF938091E4018823A1F0C09143 +:101E8000E900CF709091EC00892F817090FD80E87F +:101E9000C82B1092E9008091E80083FD0E94E80DB4 +:101EA000CF70C093E900CF9108959093690180931A +:101EB00068010895E0916801F0916901309721F07F +:101EC0000190F081E02D099480E00895E09168018F +:101ED000F0916901309721F00280F381E02D09949F +:101EE0000895E0916801F0916901309721F0048034 +:101EF000F581E02D099408952091660130916701E4 +:101F00008217930771F09093670180936601E091C7 +:101F10006801F0916901309721F00680F781E02D8A +:101F20000994089520916401309165018217930707 +:101F300071F09093650180936401E0916801F091E4 +:101F40006901309721F00084F185E02D099408950E +:101F500008950C94A80F0E94C11B0E9468040C9461 +:101F6000871CCF92DF92EF92FF920F931F93CF9334 +:101F7000DF93CDB7DEB72B970FB6F894DEBF0FBE59 +:101F8000CDBF0E9480048BE6C82E81E0D82E00E0F1 +:101F900010E0E02E802F0E946E05F60141916F0146 +:101FA000F42EF826B1F40F5F1F4F0E30110589F79C +:101FB0008FEF89838A831B820E94CA1B8160782FDE +:101FC0009D838C8349815A816B818D810E9454103D +:101FD00040C09091CD0191FF04C08B870E94740591 +:101FE0008B8520E030E04F2D50E0922FBA01022E79 +:101FF00002C0759567950A94E2F760FF24C02E83AE +:10200000EF8221E030E0690102C0CC0CDD1C9A9522 +:10201000E2F790E08C219D21892B09F420E02887AC +:102020000E94CA1B8160782F9A8789874E815F81C1 +:1020300068858A850E945410F801E559FE4F808119 +:10204000C826C08206C02F5F3F4F2630310569F693 +:10205000AACF0E946E1F10916A010E945A0F181792 +:10206000A1F00E945A0F80936A012B960FB6F89444 +:10207000DEBF0FBECDBFDF91CF911F910F91FF90BB +:10208000EF90DF90CF900C9450082B960FB6F894F9 +:10209000DEBF0FBECDBFDF91CF911F910F91FF909B +:1020A000EF90DF90CF900895CF93DF93CDB7DEB759 +:1020B0002B970FB6F894DEBF0FBECDBF4F83588766 +:1020C00069877A878B87DE01119686E0FD01119280 +:1020D0008A95E9F785E0FE01379601900D928A9581 +:1020E000E1F749815A816B817C818D819E810E94BB +:1020F00084172B960FB6F894DEBF0FBECDBFDF91CD +:10210000CF9108950895CF93882309F4C2C0C82FB2 +:10211000823859F40E945A0F81FDBBC089E30E94A6 +:102120002D1A0E94FA1A89E30CC0833879F40E94B0 +:102130005A0F80FDAEC083E50E942D1A0E94FA1A44 +:1021400083E50E946F1ACF910C94FA1A843859F4DF +:102150000E945A0F82FD9DC087E40E942D1A0E94A2 +:10216000FA1A87E4EECF8CEF8C0F813A48F48C2F6B +:102170000E94B02181118DC08C2F0E942D1AE3CFB7 +:1021800080E28C0F883048F4C77081E001C0880F6E +:10219000CA95EAF70E94B31AD6CF8BE58C0F83302D +:1021A00078F4C53A29F0C63A31F083E890E005C0EA +:1021B00081E890E002C082E890E0CF910C947C0F1F +:1021C00088E58C0F833108F064C0C83A39F1C93A08 +:1021D00041F1CA3A49F1CB3A51F1CC3A59F1CD3AF1 +:1021E00061F1C03B69F1CE3A71F1CF3A79F1C13B6F +:1021F00081F1C23B89F1C33B91F1C43B99F1C53BED +:10220000A1F1C63BA9F1C73BB1F1C83BB9F1C93B4C +:10221000C1F1CA3BC9F180E090E038C082EE90E0A5 +:1022200035C089EE90E032C08AEE90E02FC085EB99 +:1022300090E02CC086EB90E029C087EB90E026C0B0 +:102240008CEC90E023C08DEC90E020C083E891E01E +:102250001DC08AE891E01AC082E991E017C084E9C4 +:1022600091E014C081E292E011C083E292E00EC0DE +:1022700084E292E00BC085E292E008C086E292E040 +:1022800005C087E292E002C08AE292E0CF910C940E +:10229000920FCF910895882309F44BC0823859F4E6 +:1022A0000E945A0F81FF45C089E30E942D1A0E94A7 +:1022B000FA1A89E30CC0833871F40E945A0F80FF28 +:1022C00038C083E50E942D1A0E94FA1A83E50E9405 +:1022D0006F1A0C94FA1A843859F40E945A0F82FF2C +:1022E00028C087E40E942D1A0E94FA1A87E4EFCFD3 +:1022F0009CEF980F913A58F390E2980F983050F471 +:10230000877091E001C0990F8A95EAF7892F0E94A2 +:10231000B91ADFCF9BE5980F933020F480E090E06E +:102320000C947C0F885A833120F480E090E00C9468 +:10233000920F0895882321F00E94B31A0C94FA1A80 +:102340000895882321F00E94B91A0C94FA1A08956E +:10235000BF92CF92DF92EF92FF920F931F93CF9392 +:10236000DF9300D000D000D0CDB7DEB725E0FC0170 +:10237000DE01119601900D922A95E1F7FC01D080C3 +:1023800011810281258122952F7043815481452B33 +:1023900009F4FCC21F3F21F4FFEFDF1609F4F6C277 +:1023A0007C012E830E948210D9821A8369817A81EE +:1023B000802F0E94291A182FB92E0E94DE190E9420 +:1023C000A5182E81002319F00E94D01A2E81EB2D22 +:1023D000E295EF70F0E0E05AFF4F0C94F4238B2D60 +:1023E000807F9B2D9F70F92E882319F0F29480EF47 +:1023F000F822002389F0FF2009F475C280E2810FE2 +:10240000883020F48F2D0E94B31A03C08F2D0E94B4 +:10241000C31A0E94FA1A67C2812F0E944B11FF2033 +:1024200009F4B4C2105E8F2D183018F40E94B91A46 +:1024300002C00E94C91A26960FB6F894DEBF0FBEDE +:10244000CDBFDF91CF911F910F91FF90EF90DF9063 +:10245000CF90BF900C94FA1A3B2D307F8B2D8F704C +:10246000303211F08295807F112319F0113021F163 +:102470002CC00023B9F0222309F4A0C1213009F0B7 +:102480009DC126960FB6F894DEBF0FBECDBFDF917B +:10249000CF911F910F91FF90EF90DF90CF90BF9061 +:1024A0000C94E31A222319F0213009F46FC28E83B1 +:1024B0000E94E61A8E8196C1002321F0223008F096 +:1024C00065C27CC1211162C28DC1002321F022238B +:1024D00009F474C108C2222309F484C119C22B2D46 +:1024E00026952695237030E02115310521F0213005 +:1024F0003105D1F04BC2002321F0812F9B2D937029 +:1025000002C080E090E026960FB6F894DEBF0FBEC2 +:10251000CDBFDF91CF911F910F91FF90EF90DF9092 +:10252000CF90BF900C947C0F002321F0812F9B2D26 +:10253000937002C080E090E026960FB6F894DEBF5C +:102540000FBECDBFDF91CF911F910F91FF90EF9004 +:10255000DF90CF90BF900C94920F812F002319F041 +:102560000E94761E02C00E94DE1E26960FB6F894C8 +:10257000DEBF0FBECDBFDF91CF911F910F91FF90B6 +:10258000EF90DF90CF90BF900C94631F8B2D8370E2 +:1025900009F07BC00111FAC1812F82958695877061 +:1025A000880F880F912F9F70C92ED12CE12CF12C10 +:1025B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C4 +:1025C00014FF12C04FE050E060E070E004C0440F20 +:1025D000551F661F771F8A95D2F7CB01BA01609508 +:1025E00070958095909503C060E070E0CB012B2D35 +:1025F000269526952370422F50E042305105D9F0A0 +:102600004330510569F16C297D298E299F2941307C +:10261000510551F126960FB6F894DEBF0FBECDBF1F +:10262000DF91CF911F910F91FF90EF90DF90CF90AE +:10263000BF900C94CC186C297D298E299F29269651 +:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:102650000F91FF90EF90DF90CF90BF900C94E8180F +:102660000E94CC18C701B60126960FB6F894DEBFBB +:102670000FBECDBFDF91CF911F910F91FF90EF90D3 +:10268000DF90CF90BF900C94B018002319F08B2DE1 +:10269000817001C08695882309F478C1812F8295C5 +:1026A00086958770880F880F912F9F70C92ED12C27 +:1026B000E12CF12C082E04C0CC0CDD1CEE1CFF1C00 +:1026C0000A94D2F714FF12C04FE050E060E070E0CF +:1026D00004C0440F551F661F771F8A95D2F7CB01A0 +:1026E000BA01609570958095909503C060E070E0A8 +:1026F000CB012B2D269526952370422F50E042309A +:102700005105D9F04330510569F16C297D298E2995 +:102710009F294130510551F126960FB6F894DEBF3E +:102720000FBECDBFDF91CF911F910F91FF90EF9022 +:10273000DF90CF90BF900C94A6196C297D298E292B +:102740009F2926960FB6F894DEBF0FBECDBFDF914E +:10275000CF911F910F91FF90EF90DF90CF90BF909E +:102760000C94C2190E94A619C701B60126960FB68D +:10277000F894DEBF0FBECDBFDF91CF911F910F91B7 +:10278000FF90EF90DF90CF90BF900C948A19103F8C +:10279000D1F118F4103E50F4A1C0123F09F463C007 +:1027A00008F44CC0133F09F473C098C01F708B2D00 +:1027B0008F710023A1F00E942319812F26960FB656 +:1027C000F894DEBF0FBECDBFDF91CF911F910F9167 +:1027D000FF90EF90DF90CF90BF900C949A110E94E1 +:1027E0004419812F26960FB6F894DEBF0FBECDBFD9 +:1027F000DF91CF911F910F91FF90EF90DF90CF90DD +:10280000BF900C94A1110023A9F02111BFC08B2D02 +:102810008F7126960FB6F894DEBF0FBECDBFDF9145 +:10282000CF911F910F91FF90EF90DF90CF90BF90CD +:102830000C946919223008F0A9C0E9CF0023A9F04F +:102840008B2D8F7126960FB6F894DEBF0FBECDBFCD +:10285000DF91CF911F910F91FF90EF90DF90CF907C +:10286000BF900C942319002359F38B2D8F7126965A +:102870000FB6F894DEBF0FBECDBFDF91CF911F9191 +:102880000F91FF90EF90DF90CF90BF900C94441980 +:10289000002399F08B2D8F7126960FB6F894DEBF2A +:1028A0000FBECDBFDF91CF911F910F91FF90EF90A1 +:1028B000DF90CF90BF900C940E1926960FB6F89427 +:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 +:1028D000EF90DF90CF90BF900C9404190023A9F0E3 +:1028E000222309F4ADCF812F26960FB6F894DEBFD0 +:1028F0000FBECDBFDF91CF911F910F91FF90EF9051 +:10290000DF90CF90BF900C948310222309F4ADCFB9 +:10291000812F26960FB6F894DEBF0FBECDBFDF9194 +:10292000CF911F910F91FF90EF90DF90CF90BF90CC +:102930000C944B114B2D4F70612FC7010E94040363 +:1029400026960FB6F894DEBF0FBECDBFDF91CF91B4 +:102950001F910F91FF90EF90DF90CF90BF900C945C +:1029600028184B2D4F70612FC70126960FB6F8948B +:10297000DEBF0FBECDBFDF91CF911F910F91FF90B2 +:10298000EF90DF90CF90BF900C94750526960FB610 +:10299000F894DEBF0FBECDBFDF91CF911F910F9195 +:1029A000FF90EF90DF90CF90BF9008950E94D01AD3 +:1029B0000E94E01A0E94A51A0E94FA1A0E9413208F +:1029C0000E94631F80E090E00E947C0F80E090E016 +:1029D0000C94920F0E94C01A0C94D6140E941E1AD6 +:1029E000292F22952F7030E02C3031054CF42A30FD +:1029F00031056CF4225031092230310588F407C0CA +:102A00002C30310549F02F30310531F009C0803EBE +:102A100048F0803F29F406C093FB882780F9089589 +:102A200080E0089581E00895CF93DF9300D000D037 +:102A30001F92CDB7DEB70F900F900F900F900F90B1 +:102A4000DF91CF910895CF93DF9300D000D000D0D5 +:102A5000CDB7DEB726960FB6F894DEBF0FBECDBF5A +:102A6000DF91CF9108951F93CF93DF93C0917901A8 +:102A700016E080917A01C81799F0D0E01C9FF00110 +:102A80001D9FF00D1124E558FE4F40815181628158 +:102A90007381848195810E9423152196C770E9CFA7 +:102AA000DF91CF911F9108954091AB015091AC01FE +:102AB0006091AD017091AE018091AF019091B00134 +:102AC0000C9423158091B00182958F7009F054C049 +:102AD0008091AD01882309F44FC080917901A091C4 +:102AE0007A016091AB017091AC014091AE015091BF +:102AF000AF01B6E08A1709F43FC090E041155105D7 +:102B0000C1F17F3F11F46F3FA1F1B89FF001B99F70 +:102B1000F00D1124E558FE4F218172132AC0208147 +:102B2000621327C02281211124C0238134812417FC +:102B3000350710F421503109241B350B283C310591 +:102B4000C0F42091B0012F7020612093B00126E0E5 +:102B5000289FF001299FF00D1124E058FE4F80813D +:102B60008F70806180838BEA91E00E94A8110C94A1 +:102B7000331501968770BECF0895CF92DF92EF9202 +:102B8000FF920F931F93CF93DF93CDB7DEB762977A +:102B90000FB6F894DEBF0FBECDBF8C0185E0F80103 +:102BA000DE011D9601900D928A95E1F7D8014C91B6 +:102BB00011965C91119712966C9112971396CD9085 +:102BC000DC9014973091AB017091AC018091AE0113 +:102BD0009091AF01009709F46BC17F3F19F43F3F1B +:102BE00009F466C1E090AD01EE2009F4C0C0209167 +:102BF000B001C816D90628F0F601E81BF90BCF0181 +:102C000004C0809590958C0D9D1DFF24F394883C05 +:102C1000910578F0F12C207F09F0C6C07C2DD98A6F +:102C2000C88A89890E9414158BEA91E00E94A81134 +:102C3000B1C0822F807F09F046C0751314C03413D1 +:102C400012C0611110C02F7020612093B0010E944A +:102C500054158BEA91E00E94A8118091B001D8012F +:102C600015968C932EC0CD2819F15F3F11F44F3F7C +:102C7000F9F0F62E61111CC08091790120917A0142 +:102C800036E0821709F45AC090E0389FF001399F6E +:102C9000F00D1124E558FE4F7181571306C0708165 +:102CA000471303C07281711103C001968770E9CF89 +:102CB000F62E662309F418C18091B00181608093DB +:102CC000B001F12C11C1751308C0341306C0611195 +:102CD00004C08091B001D801C3C04D875E878D8547 +:102CE0009E856A8B0E94EE146A898823E1F166232F +:102CF000D1F12091B001822F82958F7090E00297E0 +:102D000074F08091AB019091AC0198878F83198604 +:102D1000DB86CA862C87CE0107960E94A81186E022 +:102D2000F801ABEAB1E001900D928A95E1F70E94BB +:102D300062150E945415FF24F394D6C04D875E8718 +:102D40008D859E850E941E1A292F22952F7030E0B6 +:102D5000223031050CF0BCC09F7009F0B6C0805E17 +:102D6000883008F4C1C0C8010E94A811E4CFC81679 +:102D7000D90608F453C0F601E81BF90BCF01883CD3 +:102D8000910508F450C0F12C7C2DD98AC88A898914 +:102D90000E941415EBEAF1E086E0DF011D928A95AE +:102DA000E9F70E945415A0C0751314C0341312C063 +:102DB000611110C08091B001F8018583C8010E94A3 +:102DC000A81186E0EBEAF1E0DF011D928A95E9F7B0 +:102DD000FE2C8AC04D875E878D859E856A8B0E94FA +:102DE000EE146A89882309F4BECF662309F4BBCFA9 +:102DF0002091B001822F82958F7090E002970CF4A1 +:102E00008ECF8091AB019091AC019A8389831B8214 +:102E1000DD82CC822E83CE0101967FCF8095909566 +:102E20008C0D9D1DACCFF62E662309F49CCF751337 +:102E30002EC034132CC02091B00120FD1FC0822F62 +:102E400082958F70D9F0D80115962C9315978F30F5 +:102E500049F08F5F982F9295907F822F8F70892BEA +:102E600015968C93C8010E94A81186E0F801ABEA80 +:102E7000B1E001900D928A95E1F793CF86E0F801D9 +:102E8000ABEAB1E001900D928A95E1F72DC04D8734 +:102E90005E878D859E850E94EE14811140CF8091C2 +:102EA000B00181608093B001C8010E94A8111CC0CC +:102EB000662309F458CF4D875E878D859E850E94D5 +:102EC000EE14882309F44FCF2ACF811148CF0CC0CC +:102ED000243031050CF047CF9F7009F440CFF80142 +:102EE0009581907F09F03BCF8F2D62960FB6F894B5 +:102EF000DEBF0FBECDBFDF91CF911F910F91FF902D +:102F0000EF90DF90CF9008951F93CF93DF93CDB7CD +:102F1000DEB72C970FB6F894DEBF0FBECDBF4F8340 +:102F2000588769877A878B879C87CE0107960E948E +:102F3000BD15882369F08F8198852A853B85232BD1 +:102F4000F1F19F3F09F063C08F3F09F060C037C0C7 +:102F500086E0FE013796DE01119601900D928A956A +:102F6000E1F76F817885EA85FB85309741F17F3FF6 +:102F700011F46F3F21F120917A0130E0C9010196EF +:102F8000877099274091790150E08417950709F4DB +:102F900047C069837A83FD83EC8396E0929FD001DA +:102FA000939FB00D1124A558BE4FFE01319601909C +:102FB0000D929A95E1F780937A010E94331516E0FD +:102FC0008091790190917A018917C1F1189FC00110 +:102FD000112485589E4F0E94BD15882379F1E091F8 +:102FE00079011E9FF0011124E558FE4F4081518167 +:102FF00062817381848195810E942315809179017A +:1030000090E001968770992780937901D9CF4F81FD +:10301000588569857A858B859C850E942315CFCF3D +:103020000E94EA1410927A0110927901EBEAF1E021 +:1030300086E0DF011D928A95E9F7C1CF2C960FB685 +:10304000F894DEBF0FBECDBFDF91CF911F910895E1 +:10305000EF92FF920F931F93CF93DF938C01892BF5 +:1030600009F46CC0F12CEE24E394E8012196F801F8 +:103070008491843740F4843008F051C0813081F06D +:10308000823019F15BC0853709F444C0A8F19CE790 +:10309000980F903708F052C08F770E944B1141C0B3 +:1030A0000E5F1F4FFE01C49180E28C0F883048F400 +:1030B000C7708E2D01C0880FCA95EAF70E94D31AF7 +:1030C00014C08C2F0E9483102DC00E5F1F4FFE0175 +:1030D000C49180E28C0F883058F4C7708E2D01C0E7 +:1030E000880FCA95EAF70E94D91A0E94FA1A1AC0E4 +:1030F0008C2F0E944B1116C00E5F1F4FFE01C49112 +:10310000CC2381F08FE99FE00197F1F700C0000028 +:10311000C150F6CF0E5F1F4FFE01F49003C00E9416 +:1031200083108E018F2D882309F49FCFEFE9FFE0F4 +:103130003197F1F700C000008150F5CFDF91CF91BA +:103140001F910F91FF90EF90089508956093B5013E +:103150007093B6018093B7019093B8010C94D61484 +:103160000F931F930091B5011091B6012091B70103 +:103170003091B801DC01CB01802B912BA22BB32B1A +:103180008093B5019093B601A093B701B093B801B5 +:103190001F910F910C94D6140F931F930091B501BA +:1031A0001091B6012091B7013091B801DC01CB013B +:1031B00080239123A223B3238093B5019093B6017A +:1031C000A093B701B093B8011F910F910C94D6143E +:1031D0000F931F930091B5011091B6012091B70193 +:1031E0003091B801DC01CB0180279127A227B327BA +:1031F0008093B5019093B601A093B701B093B80145 +:103200001F910F910C94D6141092B1011092B2013B +:103210001092B3011092B4010C94D61441E050E026 +:1032200060E070E004C0440F551F661F771F8A9549 +:10323000D2F74093B1015093B2016093B301709300 +:10324000B4010C94D61441E050E060E070E004C09A +:10325000440F551F661F771F8A95D2F78091B101E1 +:103260009091B201A091B301B091B401482B592BB8 +:103270006A2B7B2B4093B1015093B2016093B30151 +:103280007093B4010C94D61441E050E060E070E01B +:1032900004C0440F551F661F771F8A95D2F74095CB +:1032A0005095609570958091B1019091B201A09177 +:1032B000B301B091B401482359236A237B2340937F +:1032C000B1015093B2016093B3017093B4010C94B7 +:1032D000D61441E050E060E070E004C0440F551F98 +:1032E000661F771F8A95D2F78091B1019091B20144 +:1032F000A091B301B091B401482759276A277B27D1 +:103300004093B1015093B2016093B3017093B40143 +:103310000C94D6140F931F930091B1011091B20138 +:103320002091B3013091B401DC01CB01802B912BB2 +:10333000A22BB32B8093B1019093B201A093B30160 +:10334000B093B4011F910F910C94D6140F931F9357 +:103350000091B1011091B2012091B3013091B401FB +:10336000DC01CB0180239123A223B3238093B101FD +:103370009093B201A093B301B093B4011F910F9148 +:103380000C94D6140F931F930091B1011091B201C8 +:103390002091B3013091B401DC01CB01802791274A +:1033A000A227B3278093B1019093B201A093B301F8 +:1033B000B093B4011F910F910C94D6140895CF923D +:1033C000DF92EF92FF920F931F93CF93DF938C01C5 +:1033D000C090B501D090B601E090B701F090B8016F +:1033E0008091B1019091B201A091B301B091B4016B +:1033F000C82AD92AEA2AFB2ACFE1D0E0D701C601A0 +:103400000C2E04C0B695A795979587950A94D2F788 +:1034100080FF06C0B8018C2F0E94B507019721F4E8 +:10342000219760F780E001C08C2FDF91CF911F9131 +:103430000F91FF90EF90DF90CF900895CF93DF939F +:10344000EC010E94DF19BE010E94B507DF91CF9108 +:103450000895CB010E941E1A089590910C019923A2 +:1034600021F090910D01911109C020910E01309130 +:103470000F01F90132969FEF40E01FC0982F9695FB +:10348000969596959F3050F5E0910E01F0910F01C1 +:10349000E90FF11D877021E030E0A90102C0440F5F +:1034A000551F8A95E2F7CA019181892B818308957E +:1034B0009F3F39F04F5F4E3041F051915813F8CF94 +:1034C0000DC05111F7CF942FF5CF9F3F39F0F9017F +:1034D000E90FF11D97FDFA95828308950895909163 +:1034E0000C01992321F090910D01911109C02091B7 +:1034F0000E0130910F01F9013296205F3F4F1FC03E +:10350000982F9695969596959F30F0F4E0910E0140 +:10351000F0910F01E90FF11D877021E030E0A90162 +:1035200002C0440F551F8A95E2F7CA018095918128 +:103530008923818308953196E217F30729F090815A +:103540009813F9CF1082F7CF089581E090E0E091D1 +:103550000E01F0910F01E80FF91F108201968031E2 +:103560009105A9F708959091CC01892B8093CC0106 +:10357000089580959091CC0189238093CC01089582 +:103580001092CC0108959091CB01892B8093CB01AF +:10359000089580959091CB0189238093CB01089564 +:1035A0001092CB0108959091CA01892B8093CA0192 +:1035B000089580959091CA0189238093CA01089546 +:1035C0001092CA0108958093B90108951092B9012B +:1035D000089580910E0190910F01FC0131969C019C +:1035E000205F3F4F80E0919191118F5FE217F307C9 +:1035F000D1F70895E0910E01F0910F018091CC0177 +:103600008083E0910E01F0910F0190818091CB01B8 +:10361000892B8083E0910E01F0910F0190818091C0 +:10362000CA01892B80838091B901882361F0E091E0 +:103630000E01F0910F019081892B80830E94E91A7D +:1036400081111092B90180910E0190910F010C949B +:10365000660FCF92DF92EF92FF926C01EE24FF246F +:10366000C114D104E104F10421F0C701B60120E145 +:1036700001C020E0C72ED82EE92EFF24C114D104AA +:10368000E104F10419F0285FC701B6016B017C0168 +:1036900054E0F694E794D794C7945A95D1F7C1149F +:1036A000D104E104F10419F02C5FC701B6016B01EC +:1036B0007C0142E0F694E794D794C7944A95D1F7F9 +:1036C000C114D104E104F10419F02E5FC701B60161 +:1036D000DC01CB01B695A79597958795892B8A2B09 +:1036E0008B2B09F02F5F822FFF90EF90DF90CF9010 +:1036F00008958091E401843039F11092CE0120E4E4 +:1037000088E190E00FB6F894A895809360000FBE12 +:103710002093600080E00E94500883B7817F84601E +:1037200083BF83B7816083BF7894889583B78E7F8A +:1037300083BF0FB6F894A89580916000886180934C +:103740006000109260000FBE089508950895CF9311 +:103750000E94A51B0E9480040E94A61BC0E08C2F23 +:103760000E946E05811104C0CF5FCE30C1F701C049 +:1037700081E0CF9108950E94EA140E945A0F0C94A0 +:10378000500882E084BD93E095BD9AEF97BD809389 +:103790006E0008952FB7F8948091CF019091D001D9 +:1037A000A091D101B091D2012FBF0895CF92DF92A5 +:1037B000EF92FF920F931F932FB7F8944091CF0190 +:1037C0005091D0016091D1017091D2012FBF6A0157 +:1037D0007B01EE24FF248C0120E030E0C016D106EE +:1037E000E206F30610F4415051099A01281B390BE7 +:1037F000C9011F910F91FF90EF90DF90CF90089536 +:103800001F920F920FB60F9211248F939F93AF9335 +:10381000BF938091CF019091D001A091D101B0913F +:10382000D2010196A11DB11D8093CF019093D001CB +:10383000A093D101B093D201BF91AF919F918F918D +:103840000F900FBE0F901F9018950E94570CF89480 +:103850002FEF87EA91E6215080409040E1F700C0C9 +:10386000000087E090EBDC018093EE019093EF0184 +:10387000A093F001B093F1019CE088E10FB6F894B9 +:10388000A895809360000FBE90936000FFCFEF92E9 +:10389000FF920F931F93CF93DF93D82FC0E08C2F0D +:1038A0000E946E0500E010E0E82EF12CC701002E0A +:1038B00002C0959587950A94E2F780FD06C00F5FD8 +:1038C0001F4F0630110591F709C0602F7C2F80E053 +:1038D0000E947605D813F3CF81E004C0CF5FCE30CD +:1038E000F1F680E0DF91CF911F910F91FF90EF9063 +:1038F0000895CF93C82F8CE20E94471C882321F0A3 +:103900008C2FCF910C94471C80E0CF910895CF93DA +:103910000E94CE1D811102C00E94B41DC5E6C15097 +:1039200049F00E9480048FE39CE90197F1F700C001 +:103930000000F5CF89E20E94791C811113C18AE24F +:103940000E94791C81110E94B41D85E00E94791C9F +:1039500081110E94251C0E94D91D8093CD0187E012 +:103960000E94791C8823A9F18BE10E94791C88238D +:1039700051F08091CD0181FB222720F991E092271F +:1039800090FB81F90EC08EE00E94791C882361F0C3 +:103990008091CD0182FB222720F991E0922790FBB4 +:1039A00082F98093CD0115C080E10E94791C90912D +:1039B000CD01882341F093FB222720F981E0822763 +:1039C00080FB93F904C0892F809580FB90F9909338 +:1039D000CD018091CD010E94DD1D0E94EB1D8093E1 +:1039E000ED0180EE0E94791C882341F08091ED0169 +:1039F000982F909590FB80F98093ED0189E30E94C8 +:103A0000791C882359F08091ED0181FB222720F950 +:103A100091E0922790FB81F98093ED0182EE0E9464 +:103A2000791C882359F08091ED0182FB222720F92F +:103A300091E0922790FB82F98093ED0186EE0E943F +:103A4000791C882359F08091ED0183FB222720F90E +:103A500091E0922790FB83F98093ED0183EE0E9421 +:103A6000791C882359F08091ED0184FB222720F9ED +:103A700091E0922790FB84F98093ED0185E30E9409 +:103A8000791C882359F08091ED0185FB222720F9CC +:103A900091E0922790FB85F98093ED0181E30E94EC +:103AA000791C882359F08091ED0186FB222720F9AB +:103AB00091E0922790FB86F98093ED0181E10E94CD +:103AC000791C882359F08091ED0187FB222720F98A +:103AD00091E0922790FB87F98093ED018091ED01B1 +:103AE0000E94EF1D8091ED0187FB882780F980936C +:103AF0000D0187E20E94791CC82F8EE10E94791C7B +:103B00008111C2608FE10E94791C8111C46080E242 +:103B10000E94791C8111C86081E20E94791C811188 +:103B2000C06182E20E94791C8111C06283E20E941E +:103B3000791C8111C06484E20E94791C882311F0F1 +:103B4000C06802C0CC2329F08C2F0E94E61D6C2F88 +:103B500003C00E94E21D682F70E080E090E0CF91EA +:103B60000C94A618CF9108956DEE7EEF80E090E062 +:103B70000E942E2460E082E090E00E941C2460E01D +:103B800083E090E00E941C2460E084E090E00E94CA +:103B90001C2460E085E090E00C941C2480E090E020 +:103BA0000E94162421E08D3E9E4F09F020E0822FD6 +:103BB000089582E090E00C940E24682F82E090E05B +:103BC0000C941C2483E090E00C940E24682F83E076 +:103BD00090E00C941C2484E090E00C940E24682F58 +:103BE00084E090E00C941C248091D50180FF0BC0F0 +:103BF0006091130185E0689FB00111247595679568 +:103C0000759567952BC081FF09C06091130185E010 +:103C1000689FB00111247595679520C082FF07C089 +:103C20006091130185E0689FB001112417C0909145 +:103C3000D6019923D1F060911201961788F720914F +:103C4000130185E0289F90011124929FA001939F6A +:103C5000500D112470E0CA010E94E0236038710504 +:103C600040F46115710539F002C065E070E0862FFF +:103C700008958FE7089581E008958091D50180FF30 +:103C800008C06091110170E075956795759567950D +:103C900021C081FF06C06091110170E075956795A4 +:103CA00019C082FF04C06091110170E010C09091B2 +:103CB000D6019923C1F0609110019617A0F7809169 +:103CC0001101899FC001112470E00E94E023603837 +:103CD000710528F46115710521F0862F08958FE78D +:103CE000089581E0089561E070E0F4CF803F21F411 +:103CF0000E94F41D819504C0813F29F40E94F41DA7 +:103D00008093D9010895823F21F40E94F41D81958A +:103D100004C0833F29F40E94F41D8093D8010895C4 +:103D2000893F19F40E943D1E05C08A3F31F40E946C +:103D30003D1E81958093DA0108958B3F21F40E9406 +:103D40003D1E819504C08C3F29F40E943D1E809346 +:103D5000DB010895843F21F48091D701816017C071 +:103D6000853F21F48091D701826011C0863F21F404 +:103D70008091D70184600BC0873F21F48091D701E7 +:103D8000886005C0883F31F48091D70180618093BD +:103D9000D70108958D3F21F48091D50181600BC03A +:103DA0008E3F21F48091D501826005C08F3F29F4B8 +:103DB0008091D50184608093D5010895803F39F4C6 +:103DC0008091D90187FF6CC01092D90169C0813FF1 +:103DD00029F48091D9011816BCF362C09091D801E2 +:103DE000823F29F497FF5CC01092D80159C0833FED +:103DF00019F41916CCF354C0893F41F48091DA01CB +:103E000018160CF04DC01092DA014AC08A3F29F40E +:103E10008091DA0187FF44C0F6CF8B3F39F480915F +:103E2000DB0187FF3DC01092DB013AC08C3F29F4D3 +:103E30008091DB011816BCF333C0843F21F48091DC +:103E4000D7018E7F17C0853F21F48091D7018D7FE8 +:103E500011C0863F21F48091D7018B7F0BC0873F33 +:103E600021F48091D701877F05C0883F31F480918C +:103E7000D7018F7E8093D70113C08D3F21F48091AD +:103E8000D5018E7F0BC08E3F21F48091D5018D7FAF +:103E900005C08F3F29F48091D5018B7F8093D50198 +:103EA0008091D80181110EC08091D90181110AC081 +:103EB0008091DA01811106C08091DB01811102C07D +:103EC0001092D601089587ED91E00E94710F0E9433 +:103ED000CA1B9093D4018093D30108951F93CF936D +:103EE000DF938091D3019091D4010E94D61BAC0145 +:103EF0009091D601992321F02091140130E006C061 +:103F0000209115018AE0289F900111244217530740 +:103F100008F485C08091D801C091D901D091DA010F +:103F20001091DB01811107C0C11175C0D11173C09F +:103F3000111171C074C09F3F19F09F5F9093D6011B +:103F4000181624F40E94F41D8093D8018091D801A2 +:103F500087FF05C00E94F41D81958093D8011C162F +:103F600024F40E94F41D8093D9018091D90187FF28 +:103F700005C00E94F41D81958093D9016091D801FC +:103F8000662331F1C091D901CC2311F1062E000C2A +:103F9000770B880B990B0E94E72223E333E343E37B +:103FA0005FE30E944B230E94AF226093D8016C2FE5 +:103FB000CC0F770B880B990B0E94E72223E333E3A6 +:103FC00043E35FE30E944B230E94AF226093D90139 +:103FD0001D1624F40E943D1E8093DA018091DA01BF +:103FE00087FF05C00E943D1E81958093DA0111165E +:103FF00024F40E943D1E8093DB018091DB0187FF4A +:1040000005C00E943D1E81958093DB01DF91CF9119 +:104010001F910C94631F9F3F09F08FCF97CFDF91C3 +:10402000CF911F910895E7EDF1E085E0DF011D924A +:104030008A95E9F71092D6011092D5010895833040 +:1040400081F128F4813059F08230D1F00895853023 +:1040500009F449C0B8F1863009F456C0089580913A +:104060001501262F30E0280F311D2F3F310524F494 +:10407000680F6093150108958FEF809315010895DF +:1040800080911401262F30E0280F311D2F3F31057C +:1040900024F4680F6093140108958FEF8093140146 +:1040A000089580911301262F30E0280F311D2F3FF6 +:1040B000310524F4680F6093130108958FEF809306 +:1040C0001301089580911201262F30E0280F311D31 +:1040D0002F3F310524F4680F6093120108958FEF8C +:1040E00080931201089580911101262F30E0280F4E +:1040F000311D2F3F310524F4680F6093110108959D +:104100008FEF80931101089580911001262F30E0E8 +:10411000280F311D2F3F310524F4680F60931001E3 +:1041200008958FEF809310010895833011F128F4E2 +:10413000813049F0823091F00895853081F120F18D +:104140008630C1F1089580911501681720F4861B0F +:10415000809315010895109215010895809114011E +:10416000681720F4861B809314010895109214019F +:10417000089580911301681720F4861B8093130122 +:10418000089510921301089580911201681720F488 +:10419000861B809312010895109212010895809158 +:1041A0001101681720F4861B809311010895109265 +:1041B0001101089580911001681720F4861B8093E7 +:1041C000100108951092100108950F931F938D31DF +:1041D00009F46BC008F03FC08E3009F47FC0C0F412 +:1041E000873009F469C068F4863009F0B1C0809165 +:1041F000CD01817F8E7F8093CD0181E08093DD01B1 +:10420000A8C0883009F4A2C08B3009F49FC0A0C0B8 +:10421000863109F49BC078F4803109F472C0813191 +:1042200009F096C00E94EA1490910D0181E089275F +:1042300080930D018BC0893109F488C08B3109F05E +:1042400087C08091CD0181FB222720F991E0922740 +:1042500090FB81F94CC0853309F470C048F4873273 +:1042600009F46CC008F459C0893209F467C070C001 +:10427000833438F48A3308F04EC0883309F466C0BA +:1042800067C0833409F45AC0883409F061C00E94C1 +:10429000EA140FEF13ED20E3015010402040E1F746 +:1042A00000C000000E94251C51C00E9469220E948B +:1042B0005A0F0E9450084AC09091CD01892F8095D5 +:1042C000817080FB90F929F0966098609093CD0101 +:1042D00040C0997F977F9093CD0138C08091CD01E8 +:1042E00082FB222720F991E0922790FB82F98093AC +:1042F000CD01992359F18091CD0181608093CD0149 +:1043000025C08091CD0183FB222720F991E09227DF +:1043100090FB83F9ECCF895301C08D5141E050E00F +:1043200060E070E08A019B0104C0000F111F221F92 +:10433000331F8A95D2F7C901B80104C061E070E06B +:1043400080E090E00E94A6180E94EA1481E001C07B +:1043500080E01F910F91089580E0089580E0089516 +:10436000CF93C82F8091DD01813079F018F0823031 +:10437000E9F187C0E0910E01F0910F018081813158 +:1043800069F0823209F07FC009C0E0910E01F0911E +:104390000F018081813111F0823261F48C2F0E94F3 +:1043A000AC21811104C08C2F0E94E5201DC081E04A +:1043B00090E01AC08C2F0E94AE21811114C0C4312C +:1043C00079F048F4CB3079F0C03109F060C082E078 +:1043D0008093DD0108C0C93219F0C83321F057C0FD +:1043E0001092DD0154C081E0817053C0C93289F15F +:1043F00018F5C43171F1A8F4C73009F046C08AE05D +:104400008093150194E19093140193E0909313012C +:104410008093120188E08093110188E2809310015B +:1044200034C0CE51C63088F5EC2FF0E0E65DFE4F8B +:1044300080818093DC0129C0CE34E9F020F4CB34B4 +:1044400021F56AE013C0C13579F0C235F1F461E0BD +:104450000DC08091DC01882319F01092DC0115C099 +:1044600081E08093DD0115C061E006C08091DC0130 +:104470000E941F200AC06AE08091DC010E94952002 +:1044800004C01092DD0180E004C081E002C080E041 +:10449000ABCFCF910895E1E8F0E080818860808320 +:1044A0008081816080838FB7F89493E09093890036 +:1044B00090ED909388008FBF0895EFE6F0E0808143 +:1044C000826080830895EFE6F0E080818D7F8083B5 +:1044D0000895EFE6F0E0908182E0892780830895D7 +:1044E0001F920F920FB60F9211242F933F934F9369 +:1044F0005F936F937F938F939F93AF93BF93EF934C +:10450000FF938091DE019091DF0101969093DF018E +:104510008093DE01811103C082E00E945008E09187 +:10452000DF01E695E695F0E0EA5CFA4FE4918091D0 +:10453000DE018E1303C080E00E945008FF91EF91CE +:10454000BF91AF919F918F917F916F915F914F91AB +:104550003F912F910F900FBE0F901F9018950E94C2 +:10456000B6226894B1110C94452308950E942A2321 +:1045700088F09F5798F0B92F9927B751B0F0E1F024 +:10458000660F771F881F991F1AF0BA95C9F714C0D4 +:10459000B13091F00E944423B1E008950C9444237B +:1045A000672F782F8827B85F39F0B93FCCF386950D +:1045B00077956795B395D9F73EF49095809570956A +:1045C00061957F4F8F4F9F4F0895E89409C097FBE7 +:1045D0003EF490958095709561957F4F8F4F9F4FDA +:1045E0009923A9F0F92F96E9BB279395F69587951E +:1045F00077956795B795F111F8CFFAF4BB0F11F4E1 +:1046000060FF1BC06F5F7F4F8F4F9F4F16C0882387 +:1046100011F096E911C0772321F09EE8872F762FBD +:1046200005C0662371F096E8862F70E060E02AF0FE +:104630009A95660F771F881FDAF7880F96958795EA +:1046400097F9089557FD9058440F551F59F05F3F53 +:1046500071F04795880F97FB991F61F09F3F79F0A4 +:1046600087950895121613061406551FF2CF469526 +:10467000F1DF08C0161617061806991FF1CF8695A8 +:104680007105610508940895E894BB27662777278C +:10469000CB0197F908950E945E230C94CF230E94CA +:1046A000C12338F00E94C82320F0952311F00C9408 +:1046B000B8230C94BE2311240C9445230E9422237A +:1046C00070F3959FC1F3950F50E0551F629FF00165 +:1046D000729FBB27F00DB11D639FAA27F00DB11D7E +:1046E000AA1F649F6627B00DA11D661F829F222707 +:1046F000B00DA11D621F739FB00DA11D621F839F8E +:10470000A00D611D221F749F3327A00D611D231F63 +:10471000849F600D211D822F762F6A2F11249F57B1 +:1047200050409AF0F1F088234AF0EE0FFF1FBB1FB4 +:10473000661F771F881F91505040A9F79E3F510573 +:1047400080F00C94B8230C9445235F3FE4F3983E2B +:10475000D4F3869577956795B795F795E7959F5F1D +:10476000C1F7FE2B880F911D9695879597F90895AF +:1047700097F99F6780E870E060E008959FEF80EC14 +:10478000089500240A9416161706180609060895B7 +:1047900000240A9412161306140605060895092E1D +:1047A0000394000C11F4882352F0BB0F40F4BF2B8C +:1047B00011F460FF04C06F5F7F4F8F4F9F4F0895CC +:1047C00097FB072E16F4009407D077FD09D00E94BE +:1047D000FA2307FC05D03EF4909581959F4F0895EC +:1047E000709561957F4F0895EE0FFF1F0590F4912E +:1047F000E02D0994AA1BBB1B51E107C0AA1FBB1FD8 +:10480000A617B70710F0A61BB70B881F991F5A955C +:10481000A9F780959095BC01CD010895F999FECF37 +:1048200092BD81BDF89A992780B50895A8E1B0E0BE +:1048300042E050E00C943624262FF999FECF92BD29 +:1048400081BDF89A019700B4021639F01FBA20BD55 +:104850000FB6F894FA9AF99A0FBE08950196272F89 +:104860000E941D240C941C24DC01CB01FC01F9994D +:10487000FECF06C0F2BDE1BDF89A319600B40D92AC +:0C48800041505040B8F70895F894FFCF65 +:10488C0020025208E008BD08890855080101BA0148 +:10489C0028080A03140A3F4D3639F704AA04740495 +:1048AC003B04CE03E70300041904010203040506CC +:0448BC0007080900E0 +:00000001FF -- cgit v1.2.3 From fb57b2e55dfa5773f361aa958354ddddd3d68dbc Mon Sep 17 00:00:00 2001 From: Thomas Anderson Date: Fri, 29 Apr 2016 17:25:14 -0700 Subject: Added readme --- keyboard/ergodox_ez/keymaps/techtomas/readme.md | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/techtomas/readme.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/techtomas/readme.md b/keyboard/ergodox_ez/keymaps/techtomas/readme.md new file mode 100644 index 000000000..1ed80fc20 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/techtomas/readme.md @@ -0,0 +1,36 @@ +# 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 two vertical mods on the left board are Shift+Tab and Tab. +* The two vertical mods on the right board are Control Layer tap/toggle and Alt+Cmd. +* 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. + +## Symbol Layer +The symbol layer can be tap/toggled through the bottom right key and also toggled holding the tilde/grave key in the upper left corner. I haven't used the symbol layer enough to tell if this was a good place or not but it made sense in my head + +The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac + +## Media Layer +/ & ; will toggle the media layer which has play and volume controls assigned to the thumb cluster. I found this an easy way to quickly play/pause + +## Control Layer +The a and z keys toggle the control layer. + +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 thumb cluster and mods all pass down to this layer. + +## Changelog + +* 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 -- cgit v1.2.3 From 9ab7098c834ffe601ad5c39759acfddabbd6373f Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 21:21:08 -0400 Subject: fixes plover start sound --- keyboard/planck/keymaps/default/keymap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'keyboard') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index e7a9ea9e4..ac4937b69 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -319,15 +319,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 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_off(_MUSIC); - #ifdef AUDIO_ENABLE - stop_all_notes(); - #endif layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3 From 0656f2fa10e25e160617c3e5d14cfbae35dd9c8d Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Fri, 29 Apr 2016 22:19:40 -0400 Subject: moves backlight functionality to keyboard files and updates template makefile previously there were two backlight.c files (bad) --- keyboard/atomic/Makefile | 4 --- keyboard/atomic/atomic.c | 61 ++++++++++++++++++++++++++++++++++++++++++ keyboard/atomic/atomic.h | 5 +++- keyboard/atomic/backlight.c | 63 -------------------------------------------- keyboard/planck/Makefile | 4 --- keyboard/planck/backlight.c | 61 ------------------------------------------ keyboard/planck/planck.c | 61 ++++++++++++++++++++++++++++++++++++++++++ keyboard/planck/planck.h | 1 + keyboard/preonic/Makefile | 5 ---- keyboard/preonic/backlight.c | 61 ------------------------------------------ keyboard/preonic/preonic.c | 63 +++++++++++++++++++++++++++++++++++++++++++- keyboard/preonic/preonic.h | 1 + quantum/template/Makefile | 46 ++++++++++++++++++++++---------- quantum/template/template.c | 61 ++++++++++++++++++++++++++++++++++++++++++ quantum/template/template.h | 5 +++- 15 files changed, 287 insertions(+), 215 deletions(-) delete mode 100644 keyboard/atomic/backlight.c delete mode 100644 keyboard/planck/backlight.c delete mode 100644 keyboard/preonic/backlight.c (limited to 'keyboard') diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index 1d91c34b7..c1a0a6db4 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index 5e31264e6..399649716 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -57,3 +57,64 @@ 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/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index d5461e424..0c7aeb1cc 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -3,8 +3,11 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include +#include // This a shortcut to help you visually see your layout. // The following is an example using the Planck MIT layout diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c deleted file mode 100644 index 647b57e71..000000000 --- a/keyboard/atomic/backlight.c +++ /dev/null @@ -1,63 +0,0 @@ - -#include -#include "backlight.h" -#include "atomic.h" - - -#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)); - } -} \ No newline at end of file diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 01d9e3ce9..c0c6201cb 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -171,10 +171,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/planck/backlight.c b/keyboard/planck/backlight.c deleted file mode 100644 index f69364b2a..000000000 --- a/keyboard/planck/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include -#include "backlight.h" - -#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)); - } -} \ No newline at end of file diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 4b39cf1e8..655850150 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -32,3 +32,64 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { 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/keyboard/planck/planck.h b/keyboard/planck/planck.h index edcb5fbff..c5b59d999 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include +#include #ifdef MIDI_ENABLE #include #endif diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 3504e2720..259dd6686 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -162,11 +162,6 @@ endif endif -ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) - SRC := backlight.c $(SRC) -endif - - # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/keyboard/preonic/backlight.c b/keyboard/preonic/backlight.c deleted file mode 100644 index f69364b2a..000000000 --- a/keyboard/preonic/backlight.c +++ /dev/null @@ -1,61 +0,0 @@ - -#include -#include "backlight.h" - -#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)); - } -} \ No newline at end of file diff --git a/keyboard/preonic/preonic.c b/keyboard/preonic/preonic.c index f639f247a..211f8d029 100644 --- a/keyboard/preonic/preonic.c +++ b/keyboard/preonic/preonic.c @@ -38,4 +38,65 @@ void matrix_scan_kb(void) { void process_action_kb(keyrecord_t *record) { process_action_user(record); -} \ No newline at end of file +} + +#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/keyboard/preonic/preonic.h b/keyboard/preonic/preonic.h index 51ed9ba39..030acdadb 100644 --- a/keyboard/preonic/preonic.h +++ b/keyboard/preonic/preonic.h @@ -10,6 +10,7 @@ #include "rgblight.h" #endif #include +#include #ifdef MIDI_ENABLE #include #endif diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 4fa195468..1a535ef2c 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -111,23 +111,41 @@ 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 +# 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 = 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 +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 +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax diff --git a/quantum/template/template.c b/quantum/template/template.c index cc52e496f..6050a2d20 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -46,3 +46,64 @@ 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 b1c34d3cb..22742105a 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -3,7 +3,10 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include #include // This a shortcut to help you visually see your layout. -- cgit v1.2.3 From ed0798de243d892826370e32de340700101be8d0 Mon Sep 17 00:00:00 2001 From: Anand Babu (AB) Periasamy Date: Fri, 15 Apr 2016 15:43:24 -0700 Subject: Beginner's keymap for Ergodox-EZ --- keyboard/ergodox_ez/keymaps/ab/ab.hex | 1146 ++++++++++++++++++++ .../ergodox_ez/keymaps/ab/keyboard-layout.json | 385 +++++++ keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png | Bin 0 -> 79440 bytes keyboard/ergodox_ez/keymaps/ab/keymap.c | 140 +++ keyboard/ergodox_ez/keymaps/ab/readme.md | 21 + 5 files changed, 1692 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/ab/ab.hex create mode 100644 keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json create mode 100644 keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png create mode 100644 keyboard/ergodox_ez/keymaps/ab/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/ab/readme.md (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/ab/ab.hex b/keyboard/ergodox_ez/keymaps/ab/ab.hex new file mode 100644 index 000000000..1659ae580 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ab/ab.hex @@ -0,0 +1,1146 @@ +:100000000C940F020C9453020C9453020C94530260 +:100010000C9453020C9453020C9453020C9453020C +:100020000C9453020C9453020C94190C0C94EB0C8A +:100030000C9453020C9453020C9453020C945302EC +:100040000C9453020C94CF210C9453020C94530241 +:100050000C9453020C94631B0C9453020C945302A3 +:100060000C9453020C9453020C9453020C945302BC +:100070000C9453020C9453020C9453020C945302AC +:100080000C9453020C9453020C9453020C9453029C +:100090000C9453020C9453020C9453020C9453028C +:1000A0000C9453020C9453020C945302500D720D95 +:1000B0005D0E720D5D0EB40DD70D5D0E2C0E3F0E54 +:1000C000391139117A117A11BC11F811F813F8139A +:1000D0001012F81307130713D213F813F813E613CB +:1000E00035002B003971E100E00000001E00140013 +:1000F00004001D0029002F001F001A0016001B001D +:10010000E3004C002000080007000600E2002C007D +:100110002100150009001900E20026022200170044 +:100120000A000500000006012300B60000004B0095 +:1001300000002F022400B70000004E000000300233 +:1001400025001C000B0011000000190126001800FA +:100150000D0010005200270227000C000E00360090 +:1001600050002A002D0012000F0037004F00280019 +:100170002E00130033003800510030002A003100F7 +:100180002800340001540000290001000100010092 +:10019000010000003A00010001000100010001001F +:1001A0003B000100F2000100010001003C00F000F2 +:1001B000F1000100F40000503D000100F3000100D7 +:1001C000F50001003E0001000100010000000100F7 +:1001D0003F0001000000010000000100400001009C +:1001E00000000100000001004100010001000100C9 +:1001F00000000100420001000100010001000100B7 +:100200004300010001000100AA00010044000100B8 +:1002100001000100A90001004500010001000100EA +:10022000A80001002A000100AE000100010000004A +:1002300016034500720067006F0044006F007800ED +:10024000200045005A0000001603450072006700B8 +:100250006F0044006F007800200045005A00000045 +:100260000403090409026D00040100A0FA09040056 +:10027000000103010100092111010001223F0007D3 +:1002800005810308000A09040100010301020009B5 +:100290002111010001224D000705820308000A090F +:1002A00004020001030000000921110100012236AF +:1002B000000705830308000A090403000103000086 +:1002C00000092111010001223900070584031000F3 +:1002D000011201100100000008EDFE0713010001EA +:1002E00002000105010906A101050719E029E7152A +:1002F0000025019508750181020508190129059558 +:1003000005750191029501750391010507190029F1 +:100310007715002501957875018102C005010980D6 +:10032000A101850216010026B7001A01002AB700B4 +:10033000751095018100C0050C0901A10185031606 +:100340000100269C021A01002A9C02751095018169 +:1003500000C005010902A1010901A1000509190157 +:100360002905150025019505750181029501750383 +:1003700081010501093009311581257F9502750834 +:10038000810609381581257F950175088106050CC0 +:100390000A38021581257F950175088106C0C005C0 +:1003A000010906A101050719E029E71500250195B6 +:1003B0000875018102950175088101050819012957 +:1003C00005950575019102950175039101050719C0 +:1003D0000029FF150025FF950675088100C0000063 +:1003E000000000000000000000010204060A0F17D0 +:1003F000202C3A4A5D71879DB3C7DAE9F5FCFFFC12 +:10040000F5E9DAC7B39D87715D4A3A2C20170F0AC8 +:10041000060402010000000000000000000011249A +:100420001FBECFEFDAE0DEBFCDBF04B603FE24C0AF +:100430008091EE019091EF01A091F001B091F10156 +:100440008730904BA740B04BB9F41092EE01109258 +:10045000EF011092F0011092F10114BE84B7877F72 +:1004600084BF88E10FB6F89480936000109260001A +:100470000FBEE0E0FFE3099511E0A0E0B1E0EAE49F +:10048000F7E402C005900D92A433B107D9F721E03B +:10049000A4E3B1E001C01D92AE3EB207E1F70E94B5 +:1004A0005F090C94A3230C94000061110BC0FC01A4 +:1004B0008281882321F085EE0E94C10F03C085EE62 +:1004C0000E94891080E090E0089508956091B10144 +:1004D0007091B2018091B3019091B4010E948A1A87 +:1004E00056985E9825982D9826982E9827982F989C +:1004F000813019F0823021F00895259A2D9A0895BF +:10050000269A2E9A08950C94660256985E9825981D +:100510002D9826982E9827982F988FEF90E09093FB +:1005200089008093880090938B0080938A00909339 +:100530008D0080938C00259A2D9A2FEF80E792E012 +:10054000215080409040E1F700C00000269A2E9A8A +:100550002FEF80E792E0215080409040E1F700C00B +:100560000000279A2F9A2FEF80E792E021508040D9 +:100570009040E1F700C0000025982D982FEF80E70C +:1005800092E0215080409040E1F700C000002698A2 +:100590002E982FEF80E792E0215080409040E1F7C5 +:1005A00000C0000027982F9856985E9825982D989F +:1005B00026982E9827982F98089589EA809380008E +:1005C00089E08093810024982C983F988AB18F7499 +:1005D0008AB96E98479A8BB1806B8BB9769A0E94D4 +:1005E00085020C94650280E28093000180913401C1 +:1005F00081110EC00E94420381E0809334012FEFED +:1006000083ED90E3215080409040E1F700C000006E +:1006100080E40E9448038093000181112EC00E9453 +:10062000720380930001811128C00E94720380939D +:100630000001811122C08FE30E94720380930001A8 +:1006400081111BC00E946A0380E40E9448038093CA +:100650000001811112C08CE00E947203809300019E +:1006600081110BC00E94720380930001811105C0AB +:100670008FE30E947203809300010E946A038091BD +:10068000000108951092B9008AE08093B80008959F +:1006900094EA9093BC009091BC0097FFFCCF90919E +:1006A000B900987F983021F0903111F081E00895E1 +:1006B0008093BB0084E88093BC008091BC0087FFDE +:1006C000FCCF8091B900887F883111F0803471F7B8 +:1006D00080E0089584E98093BC008091BC0084FD93 +:1006E000FCCF08958093BB0084E88093BC00809188 +:1006F000BC0087FFFCCF9091B900987F81E09832D1 +:1007000009F480E0089584E88093BC008091BC00E7 +:1007100087FFFCCF8091BB0008958091000181117B +:1007200015C080E40E9448038093000181110CC031 +:1007300082E10E94720380930001811105C08FEF56 +:100740000E947203809300010E946A0384B1807F3B +:1007500084B985B1807F85B98AB1837F8AB98BB12D +:10076000837F8BB93E98469808950E94F302809348 +:1007700000010E948D0380B38C7080BB81B3836FB6 +:1007800081BBA6E3B1E0E4E4F1E08EE08E0F1192CC +:100790001D928E13FCCF0C94DD02BF92CF92DF929C +:1007A000EF92FF920F931F93CF93DF9380910001FD +:1007B000882379F0809135018F5F80933501811115 +:1007C00008C00E94F30280930001811102C00E94C0 +:1007D000850206E311E0C0E0D0E0DD24D39482E09E +:1007E000C82EEE24E394F12CC730D10500F580919A +:1007F0000001811164C080E40E94480380930001DD +:10080000811112C082E10E94720380930001811164 +:100810000BC0C7010C2E01C0880F0A94EAF780951F +:100820000E947203809300010E946A0348C0CA308C +:10083000A1F028F4C83059F0C93061F005C0CC30BF +:1008400089F070F0CD3089F0209A289810C0219A54 +:1008500029980DC0229A2A980AC0239A2B9807C07B +:10086000529A01C0539A5B9802C03E9A469890EA09 +:100870009A95F1F79FB1799902C082E001C080E0BA +:1008800091709D25982B7C9902C084E001C080E086 +:10089000892B7D9902C038E001C030E0832B7E991E +:1008A00002C020E101C020E0822B9FB19095991FEA +:1008B0009927991F9295990F907E892B0FC080914F +:1008C0000001811149C080E40E9448038093000127 +:1008D000882379F1B12C0E946A038B2DF801908155 +:1008E000981719F08083C09201010E948D03219610 +:1008F0000F5F1F4FCE30D10509F076CF80910101F7 +:10090000882361F1815080930101882339F08FE9B8 +:100910009FE00197F1F700C0000020C0A4E4B1E01F +:10092000E6E3F1E0CF01825F91919D938E13FCCFBE +:1009300015C083E10E947203809300018111CACF28 +:1009400081E40E944803809300018111C3CF0E947B +:100950008303B82EB094BFCF80E0C0CF0E94830243 +:1009600081E0DF91CF911F910F91FF90EF90DF9089 +:10097000CF90BF900895E82FF0E0EC5BFE4F8081B0 +:1009800008950895089596E0799FF001112494E563 +:10099000899FE00DF11D1124E60FF11DEE0FFF1FE1 +:1009A000E052FF4F859194910895880F991FFC01A3 +:1009B000E05AF040859194910895880F991FFC01A9 +:1009C000E052FF4F8591949108950F931F93CF9319 +:1009D000DF93EC018115904350F5C11580E2D807F3 +:1009E00008F0B3C0CB3BD10590F4C83AD10508F06C +:1009F0005AC0C53AD10508F04BC0C430D10508F043 +:100A0000BBC1219709F0B5C101E010E0F5C1CF3FAE +:100A1000D10511F008F0B0C1C03FD10508F092C077 +:100A2000CE01805E9109089708F4A6C1A2C1C11544 +:100A300091E5D907A8F4C23020E5D20708F09EC09E +:100A4000C11580E5D80709F485C008F091C0C1152B +:100A500020E4D20708F08DC1DD278E01106CCCC1D7 +:100A6000C11580E8D80758F4C11590E7D90708F0F8 +:100A70007CC1C11520E6D20708F422C17AC1C11594 +:100A800080E9D80708F075C1DF708E01106AB4C123 +:100A9000C53AD10509F472C1C63AD10509F071C150 +:100AA00002E810E4A9C1C83AD10509F46DC1C93AF8 +:100AB000D10509F46CC1CA3AD10509F46BC1CB3A2E +:100AC000D10509F46AC1CC3AD10509F469C1CD3A1E +:100AD000D10509F468C1C03BD10509F467C1CE3A1C +:100AE000D10509F466C1CF3AD10509F465C1C13B0E +:100AF000D10509F464C1C23BD10509F463C1C33B0C +:100B0000D10509F462C1C43BD10509F461C1C53BFB +:100B1000D10509F460C1C63BD10509F45FC1C73BEB +:100B2000D10509F45EC1C83BD10509F45DC1C93BDB +:100B3000D10509F45CC1CA3BD10509F45BC100E0F1 +:100B400014E45AC18E01106557C1CE019F700E94F6 +:100B5000DD0453C10E941B149FEF24E38CE09150ED +:100B600020408040E1F700C000000E94881B44C183 +:100B70008091CD0181608093CD013EC10E94321DE4 +:100B8000811102C00E94181D0E944F1D90E0909399 +:100B9000EE018093ED01C23090E5D90721F48091F8 +:100BA000ED01816086C0C43020E5D20721F4809138 +:100BB000ED0182607EC0C63080E5D80721F48091C7 +:100BC000ED01846076C0C83090E5D90719F48091B2 +:100BD000ED0127C0CA3020E5D20721F48091ED0154 +:100BE000806167C0CC3080E5D80721F48091ED01A9 +:100BF00080625FC0CE3090E5D90721F48091ED018D +:100C0000806457C0C03120E5D20721F48091ED0106 +:100C100080684FC0C23180E5D80729F48091ED018A +:100C20008460886046C0C33090E5D90721F4809184 +:100C3000ED018E7F3EC0C53020E5D20721F48091C2 +:100C4000ED018D7F36C0C73080E5D80721F4809153 +:100C5000ED018B7F2EC0C93090E5D90719F4809142 +:100C6000ED0126C0CB3020E5D20721F48091ED01C3 +:100C70008F7E1FC0CD3080E5D80721F48091ED0133 +:100C80008F7D17C0CF3090E5D90721F48091ED0119 +:100C90008F7B0FC0C13120E5D20721F48091ED0197 +:100CA0008F7707C0C331D04531F48091ED018B7F40 +:100CB000877F8093ED018091ED010E94531D9CC0C0 +:100CC0008D2F99278F70992781309105D9F49E0136 +:100CD0002370332702C0880F991F2A95E2F79C687A +:100CE0008E0144E0000F111F4A95E1F700271370B1 +:100CF000802B912B53E0CC0FDD1F5A95E1F7C07686 +:100D0000DD272FC08230910531F4DC2FCC278E01F6 +:100D1000016F106A71C08330910569F4CE01837050 +:100D2000992701E010E002C0000F111F8A95E2F739 +:100D3000C8019C680FC0049709F05EC0CE018370A3 +:100D4000992701E010E002C0000F111F8A95E2F719 +:100D5000C8019A6823E0CC0FDD1F2A95E1F7C07E19 +:100D6000D7708C010C2B1D2B47C0DF708E011062D9 +:100D700043C000E010E040C08E013EC001E810E436 +:100D80003BC003E810E438C002EE14E435C009EEBD +:100D900014E432C00AEE14E42FC005EB14E42CC0B6 +:100DA00006EB14E429C007EB14E426C00CEC14E4B1 +:100DB00023C00DEC14E420C003E815E41DC00AE8CC +:100DC00015E41AC002E915E417C004E915E414C0DB +:100DD00001E216E411C003E216E40EC004E216E4D8 +:100DE0000BC005E216E408C006E216E405C007E2FF +:100DF00016E402C00AE216E4C801DF91CF911F9108 +:100E00000F91089596E0799FF001112494E5899F50 +:100E1000E00DF11D1124E60FF11DEE0FFF1FE05252 +:100E2000FF4F85919491803E9105E0F4803C9105BF +:100E300058F58133910509F46FC048F48932910562 +:100E400009F463C08A32910509F46DC072C0893318 +:100E50009105E9F082389105D1F08533910509F4C7 +:100E60004DC067C0833E910581F138F4803E910505 +:100E7000B9F0823E9105D9F05CC0863E910561F1E2 +:100E8000873E9105A1F155C00E94D5040895209197 +:100E9000ED0120FD02C021FF4CC080EE90E049C072 +:100EA0008091ED0180FFF9CF89E390E042C080910D +:100EB000ED0182FF0EC08091ED0184FF03C080E050 +:100EC00090E037C083EE90E034C08091ED0182FF66 +:100ED000F2CF82EE90E02DC08091ED0183FF0BC038 +:100EE0008091ED0184FDEBCF87EE90E022C08091F0 +:100EF000ED0183FFF5CF86EE90E01BC08091ED0100 +:100F000085FF07C089E290E014C08091ED0185FF64 +:100F1000F9CF85E390E00DC08091ED0186FF07C019 +:100F20008AE290E006C08091ED0186FFF9CF81E36F +:100F300090E00E94E504089508950C949C07809128 +:100F400062010895CF93DF9300D01F92CDB7DEB733 +:100F50002091E401243019F523E029839B838A83BF +:100F60002093E9008FEF9091E800815095FD06C035 +:100F700095ED9A95F1F700008111F5CF8091E80089 +:100F800085FF0DC040E050E063E070E0CE010196C7 +:100F90000E940C0A8091E8008E778093E8000F9001 +:100FA0000F900F90DF91CF910895CF93DF9300D0F2 +:100FB0001F92CDB7DEB72091E401243021F522E065 +:100FC00029839B838A8383E08093E9008FEF90914C +:100FD000E800815095FD06C095ED9A95F1F7000067 +:100FE0008111F5CF8091E80085FF0DC040E050E011 +:100FF00063E070E0CE0101960E940C0A8091E80047 +:101000008E778093E8000F900F900F90DF91CF9133 +:1010100008952091E4012430F1F422E02093E900C6 +:101020002FEF3091E800215035FD06C035ED3A959F +:10103000F1F700002111F5CF2091E80025FF0BC04A +:1010400040E050E065E070E00E940C0A8091E8000A +:101050008E778093E8000895CF93DF93EC01809121 +:10106000E401843009F046C090910C019923D9F035 +:1010700090910D019923B9F08093E9008FEF909141 +:10108000E800815095FD06C095E19A95F1F70000C2 +:101090008111F5CF8091E80085FF2CC040E050E041 +:1010A00060E170E017C081E08093E9008FEF9091DC +:1010B000E800815095FD06C095ED9A95F1F7000086 +:1010C0008111F5CF8091E80085FF14C040E050E029 +:1010D00068E070E0CE010E940C0A8091E8008E77F3 +:1010E0008093E80080E1FE01A2E5B1E001900D925D +:1010F0008A95E1F7DF91CF9108958091E301811105 +:1011000009C00E949E0B0E94FB0B8091E20084604C +:101110008093E20008951092E301089508950C94DD +:10112000BC210E941F1B0E94C2210E94980E0C9499 +:101130009D0742E061EC81E00E94180B42E061EC07 +:1011400082E00E94180B42E061EC83E00E94180BE1 +:1011500042E161EC84E00C94180B8091E60183304D +:1011600009F455C030F4813071F0823009F48EC03A +:1011700008958A3009F47AC08B3009F460C0893050 +:1011800009F09CC020C08091E501813A09F096C029 +:101190008091E800877F8093E8008091E901909139 +:1011A000EA01892B21F060E080E090E003C060E17B +:1011B00082E591E070E00E94550A8091E8008B770B +:1011C0008093E80008958091E501813209F076C0AE +:1011D0008091E9019091EA01009719F0039709F0D5 +:1011E0006DC08091E800877F8093E8008091E800DF +:1011F00082FD05C08091E4018111F8CF5FC080912C +:10120000F100809362018091E8008B7753C0809158 +:10121000E501813A09F052C08091E9019091EA011B +:10122000892B09F04BC08091E800877F8093E8000C +:101230008091E80080FFFCCF80910C0136C0809146 +:10124000E5018132D9F58091E9019091EA01892B7C +:10125000A9F58091E800877F8093E8000E944D0BFC +:101260008091E70180930C010C941B148091E5019F +:10127000813221F58091E800877F8093E8000E9409 +:101280004D0B8091E8018093630108958091E50101 +:10129000813AA1F48091E800877F8093E8008091F3 +:1012A000E80080FFFCCF809163018093F100809182 +:1012B000E8008E778093E8000C944D0B089584B776 +:1012C000877F84BF88E10FB6F89480936000109206 +:1012D00060000FBE90E080E80FB6F8948093610044 +:1012E000909361000FBE0E94E70E0E949E0B0E9429 +:1012F000FB0B8091E20084608093E20078940E946E +:10130000760E0E94E90E82E091E00E94930E0E9408 +:10131000AA218091E401853069F40E94DD1A809150 +:10132000E2018823B1F30E940B1B882391F30E94F2 +:10133000F609EFCF0E94EF0EECCF292F3327233091 +:101340003105A9F06CF42130310509F442C0223096 +:10135000310509F043C08DE690E024E632E042C05A +:1013600021323105C9F02232310519F137C09927F0 +:101370008130910541F08230910541F0892B71F562 +:10138000E0E6F2E005C0E8E4F2E002C0E0E3F2E00B +:10139000849190E09F0126C0643000F5E62FF0E0D4 +:1013A000EE0FFF1FEE5DFE4F2081318189E090E05E +:1013B00019C0643098F4E62FF0E0DF01AA0FBB1FDC +:1013C000A65EBE4F2D913C91EA5EFE4F808190E07B +:1013D00009C082E190E021ED32E004C080E090E0BD +:1013E00020E030E0FA0131832083089580E189BD57 +:1013F00082E189BD09B400FEFDCF8091D8008F7DC8 +:101400008093D8008091E00082608093E00080911A +:10141000E00081FDFCCF0895CF92DF92EF92FF9222 +:101420000F931F93CF93DF937C018B01EA010E94FE +:101430006E0B811131C0209731F088819981081B92 +:10144000190BE80EF91EC12CD12C0115110519F14B +:101450008091E80085FD14C08091E8008E7780932C +:10146000E800209741F0888199818C0D9D1D99831A +:10147000888385E011C00E946E0B882331F30CC075 +:10148000F70181917F018093F10001501109FFEF75 +:10149000CF1ADF0ADACF80E0DF91CF911F910F9151 +:1014A000FF90EF90DF90CF9008952091EB01309165 +:1014B000EC012617370748F06115710539F42091C2 +:1014C000E8002E772093E80001C0B901FC0120E07C +:1014D00061157105B9F18091E401882309F440C0D8 +:1014E000853009F43FC08091E80083FD3DC08091C4 +:1014F000E80082FF06C08091E80082FF26C080E0FD +:1015000008958091E80080FFE3CF2091F30080915F +:10151000F20090E0922B6115710551F08830910531 +:1015200038F421912093F100615071090196F3CFB5 +:1015300021E0089709F020E08091E8008E77809301 +:10154000E800C6CF2111C7CFD6CF8091E401882310 +:1015500039F0853039F08091E80083FFCCCF04C0AA +:1015600082E0089583E0089581E008952091EB01E1 +:101570003091EC012617370748F06115710539F4F1 +:101580002091E8002E772093E80001C0B901FC010A +:1015900020E061157105C1F18091E401882309F40F +:1015A00041C0853009F440C08091E80083FD3EC011 +:1015B0008091E80082FF06C08091E80082FF27C08A +:1015C00080E008958091E80080FFE3CF2091F30050 +:1015D0008091F20090E0922B6115710559F08830EE +:1015E000910540F424912093F100319661507109E6 +:1015F0000196F2CF21E0089709F020E08091E80001 +:101600008E778093E800C5CF2111C6CFD5CF8091CA +:10161000E401882339F0853039F08091E80083FFB8 +:10162000CBCF04C082E0089583E0089581E008955F +:10163000982F973058F59093E900981739F07091EA +:10164000EC002091ED005091F00003C0242F762F84 +:1016500050E021FF19C03091EB003E7F3093EB004A +:101660003091ED003D7F3093ED003091EB00316023 +:101670003093EB007093EC002093ED005093F0005A +:101680002091EE0027FF07C09F5FD3CF8F7080931C +:10169000E90081E0089580E008958091E50187FDEB +:1016A00005C08091E80080FF0EC012C08091E80064 +:1016B00082FD05C08091E4018111F8CF08958091E9 +:1016C000E8008B7708C08091E4018111EACF08958A +:1016D0008091E8008E778093E80008958091E4007F +:1016E0009091E50045E62091EC0020FF21C020917B +:1016F000E80020FD21C02091E401222389F025305B +:1017000089F02091EB0025FD0FC02091E40030917D +:10171000E5002817390739F3415041F0C901E3CFFB +:1017200082E0089583E0089581E0089584E00895BB +:101730002091E80022FFDFCF80E008950E940C0C8A +:101740000E94140CE0EEF0E0808181608083E8ED7F +:10175000F0E080818F77808319BCA7EDB0E08C9199 +:101760008E7F8C9380818F7E80831092E301089519 +:101770000F931F93CF93DF930E940C0C0E94140CC5 +:10178000C8EDD0E088818F778883888180688883DE +:1017900088818F7D888319BC1092E4011092E0014A +:1017A0001092E2011092E10100EE10E0F801808158 +:1017B0008B7F808388818160888342E060E080E065 +:1017C0000E94180BE1EEF0E080818E7F8083E2EED4 +:1017D000F0E0808181608083808188608083F8016F +:1017E00080818E7F8083888180618883DF91CF9123 +:1017F0001F910F910895E8EDF0E080818F7E808346 +:10180000E7EDF0E080818160808384E082BF81E049 +:101810008093E3010C94B80BE8EDF0E080818E7FBB +:1018200080831092E20008951092DA001092E10095 +:1018300008951F920F920FB60F9211242F933F938A +:101840004F935F936F937F938F939F93AF93BF93C8 +:10185000EF93FF938091E10082FF0BC08091E20043 +:1018600082FF07C08091E1008B7F8093E1000E949E +:10187000750E8091DA0080FF1FC08091D80080FF34 +:101880001BC08091DA008E7F8093DA008091D900AE +:1018900080FF0DC080E189BD82E189BD09B400FEF1 +:1018A000FDCF81E08093E4010E947D0805C019BC52 +:1018B0001092E4010E948B088091E10080FF19C022 +:1018C0008091E20080FF15C08091E2008E7F8093BE +:1018D000E2008091E20080618093E2008091D80074 +:1018E00080628093D80019BC85E08093E4010E9457 +:1018F0008F088091E10084FF30C08091E20084FF76 +:101900002CC080E189BD82E189BD09B400FEFDCF14 +:101910008091D8008F7D8093D8008091E1008F7EE8 +:101920008093E1008091E2008F7E8093E2008091BD +:10193000E20081608093E2008091E001882311F051 +:1019400084E007C08091E30087FF02C083E001C00C +:1019500081E08093E4010E9491088091E10083FF7F +:1019600029C08091E20083FF25C08091E100877F3C +:101970008093E10082E08093E4011092E001809185 +:10198000E1008E7F8093E1008091E2008E7F809362 +:10199000E2008091E20080618093E20042E060E03A +:1019A00080E00E94180B8091F00088608093F00026 +:1019B0000E948E08FF91EF91BF91AF919F918F91FF +:1019C0007F916F915F914F913F912F910F900FBE3B +:1019D0000F901F9018951F920F920FB60F9211241F +:1019E0002F933F934F935F936F937F938F939F9327 +:1019F000AF93BF93CF93EF93FF93C091E900CF7064 +:101A00008091EC001092E9008091F000877F809334 +:101A1000F00078940E94270D1092E9008091F00068 +:101A200088608093F000C093E900FF91EF91CF911F +:101A3000BF91AF919F918F917F916F915F914F91E6 +:101A40003F912F910F900FBE0F901F9018951F93ED +:101A5000CF93DF93CDB7DEB7AA970FB6F894DEBF6A +:101A60000FBECDBFE5EEF1E08091F100819321E062 +:101A7000ED3EF207C9F70E94AD088091E80083FFB0 +:101A80001CC12091E5013091E601832F90E08A305E +:101A9000910508F012C1FC01EA5AFF4F0C94532340 +:101AA000203881F0223809F008C18091E9018F7057 +:101AB0008093E9008091EB0085FB882780F91092E4 +:101AC000E90006C08091E1019091E20191118260EC +:101AD0009091E800977F9093E8008093F100109236 +:101AE000F100C5C0822F8D7F09F0E7C0222319F0D5 +:101AF000223061F0E2C08091E701813009F0DDC061 +:101B0000333009F080E08093E20128C08091E70142 +:101B1000811124C02091E9012F7009F4CEC02093D7 +:101B2000E9008091EB0080FF19C08091EB00333019 +:101B300011F4806211C080618093EB0081E090E03D +:101B4000022E01C0880F0A94EAF78093EA001092EF +:101B5000EA008091EB0088608093EB001092E9002E +:101B60008091E800877F86C02111A7C01091E7010E +:101B70001F778091E3008078812B8093E300809130 +:101B8000E800877F8093E8000E944D0B8091E80079 +:101B900080FFFCCF8091E30080688093E3001123F5 +:101BA00011F083E001C082E08093E40186C02058F8 +:101BB000223008F082C08091E7019091E8018C3DCD +:101BC00023E0920779F583E08A838AE289834FB71D +:101BD000F894DE01139620E03EE051E2E32FF0E0BE +:101BE00050935700E49120FF03C0E295EF703F5FF0 +:101BF000EF708E2F90E0EA3010F0C79601C0C096CB +:101C00008D939D932F5F243149F74FBF8091E8005A +:101C1000877F8093E8006AE270E0CE0101960E941F +:101C2000550A14C0AE014F5F5F4F6091E9010E94F9 +:101C30009D09009709F441C02091E800277F209377 +:101C4000E800BC0189819A810E94B60A8091E8006F +:101C50008B778093E80031C0203879F58091E800D7 +:101C6000877F8093E8008091E0018093F10080916C +:101C7000E8008E778093E8000E944D0B1EC0211172 +:101C80001CC09091E7019230C0F48091E800877FFA +:101C90008093E8009093E0010E944D0B8091E00159 +:101CA000811104C08091E30087FF02C084E001C07D +:101CB00081E08093E4010E9499088091E80083FF0D +:101CC0000AC08091E800877F8093E8008091EB0054 +:101CD00080628093EB00AA960FB6F894DEBF0FBE29 +:101CE000CDBFDF91CF911F9108950895CF9380913B +:101CF000E4018823B1F08091E9008F709091EC00AD +:101D000090FF02C090E801C090E0C92FC82B10924C +:101D1000E9008091E80083FD0E94270DCF70C093F9 +:101D2000E900CF9108959093690180936801089527 +:101D3000E0916801F0916901309721F00190F08104 +:101D4000E02D099480E00895E0916801F091690127 +:101D5000309721F00280F381E02D09940895E091FD +:101D60006801F0916901309721F00480F581E02D40 +:101D700009940895209166013091670182179307B5 +:101D800071F09093670180936601E0916801F09192 +:101D90006901309721F00680F781E02D09940895BC +:101DA00020916401309165018217930771F090933F +:101DB000650180936401E0916801F09169013097B9 +:101DC00021F00084F185E02D0994089508950C9484 +:101DD000E60E0E94251B0E94B5030C94EB1BCF92CC +:101DE000DF92EF92FF920F931F93CF93DF93CDB7C4 +:101DF000DEB72B970FB6F894DEBF0FBECDBF0E94A3 +:101E0000CD038BE6C82E81E0D82E00E010E0E02E56 +:101E1000802F0E94BB04F60141916F01F42EF82639 +:101E2000B1F40F5F1F4F0E30110589F78FEF8983D3 +:101E30008A831B820E942E1B8160782F9D838C8356 +:101E400049815A816B818D810E94920F40C090918F +:101E5000CD0191FF04C08B870E94C1048B8520E0D7 +:101E600030E04F2D50E0922FBA01022E02C075953E +:101E700067950A94E2F760FF24C02E83EF8221E089 +:101E800030E0690102C0CC0CDD1C9A95E2F790E0CD +:101E90008C219D21892B09F420E028870E942E1B8C +:101EA0008160782F9A8789874E815F8168858A85CE +:101EB0000E94920FF801E559FE4F8081C826C0822A +:101EC00006C02F5F3F4F2630310569F6AACF0E942A +:101ED000D11E10916A010E94980E1817A1F00E945D +:101EE000980E80936A012B960FB6F894DEBF0FBE52 +:101EF000CDBFDF91CF911F910F91FF90EF90DF90B9 +:101F0000CF900C949D072B960FB6F894DEBF0FBEB2 +:101F1000CDBFDF91CF911F910F91FF90EF90DF9098 +:101F2000CF900895CF93DF93CDB7DEB72B970FB641 +:101F3000F894DEBF0FBECDBF4F83588769877A877D +:101F40008B87DE01119686E0FD0111928A95E9F7F3 +:101F500085E0FE01379601900D928A95E1F749815F +:101F60005A816B817C818D819E810E94E7162B9620 +:101F70000FB6F894DEBF0FBECDBFDF91CF910895AD +:101F80000895CF93C82F882309F4C1C0823859F42B +:101F90000E94980E81FDBBC089E30E9491190E94A6 +:101FA0005B1A89E30CC0833879F40E94980E80FD97 +:101FB000AEC083E50E9491190E945B1A83E50E94DE +:101FC000D119CF910C945B1A843859F40E94980E61 +:101FD00082FD9DC087E40E9491190E945B1A87E4EC +:101FE000EECF8CEF8C0F813A48F48C2F0E940F219A +:101FF00081118DC08C2F0E949119E3CF80E28C0F4C +:10200000883048F4C77081E001C0880FCA95EAF7AC +:102010000E94121AD6CF8BE58C0F833078F4C53A24 +:1020200029F0C63A31F482E890E005C081E890E0FA +:1020300002C083E890E0CF910C94BA0E88E58C0F33 +:10204000833108F064C0C83A39F1C93A41F1CA3A5B +:1020500049F1CB3A51F1CC3A59F1CD3A61F1C03B5B +:1020600069F1CE3A71F1CF3A79F1C13B81F1C23BCE +:1020700089F1C33B91F1C43B99F1C53BA1F1C63B4A +:10208000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BAA +:10209000C9F58AE292E038C082EE90E035C089EE60 +:1020A00090E032C08AEE90E02FC085EB90E02CC02B +:1020B00086EB90E029C087EB90E026C08CEC90E0A6 +:1020C00023C08DEC90E020C083E891E01DC08AE839 +:1020D00091E01AC082E991E017C084E991E014C050 +:1020E00081E292E011C083E292E00EC084E292E0CD +:1020F0000BC085E292E008C086E292E005C087E26C +:1021000092E002C080E090E0CF910C94D00ECF918D +:102110000895882309F44BC0823859F40E94980E20 +:1021200081FF45C089E30E9491190E945B1A89E3EF +:102130000CC0833871F40E94980E80FF38C083E58C +:102140000E9491190E945B1A83E50E94D1190C9498 +:102150005B1A843859F40E94980E82FF28C087E4E5 +:102160000E9491190E945B1A87E4EFCF9CEF980FB1 +:10217000913A58F390E2980F983050F4877091E0BC +:1021800001C0990F8A95EAF7892F0E94181ADFCFAC +:102190009BE5980F933020F480E090E00C94BA0E09 +:1021A000885A833120F480E090E00C94D00E08959A +:1021B000882321F00E94121A0C945B1A0895882338 +:1021C00021F00E94181A0C945B1A0895CF92DF92A6 +:1021D000EF92FF920F931F93CF93DF93CDB7DEB7AC +:1021E00028970FB6F894DEBF0FBECDBF8C0185E0F7 +:1021F000F801DE01119601900D928A95E1F7F80140 +:10220000D080E180F280558152955F7023813481C6 +:10221000232B39F0FFEFEF1206C081E0DF1203C07D +:1022200003C081E001C080E080FDE2C2C8015F839D +:102230000E94C00FD982EA8269817A818F2D0E9423 +:102240008D199E8388870E9441190E9414184E811F +:102250005F816885FF2029F00E942F1A68855F81C1 +:102260004E81E42FE295EF70F0E0E05AFF4F0C94BE +:102270005323842F807F142F1F70882311F0129511 +:10228000107FFF20B1F0112309F467C280E2860FAE +:10229000883028F4812F68870E94121A04C0812F89 +:1022A00068870E94221A688568870E945B1A688581 +:1022B00054C2862F68870E9489106885112309F40B +:1022C00097C2605E812F683018F40E94181A02C00D +:1022D0000E94281A28960FB6F894DEBF0FBECDBF15 +:1022E000DF91CF911F910F91FF90EF90DF90CF90F2 +:1022F0000C945B1A242F207F842F8F70203211F0D2 +:102300008295807F662319F0613019F12BC0FF2080 +:10231000B1F0552309F493C1513009F090C12896CA +:102320000FB6F894DEBF0FBECDBFDF91CF911F91E6 +:102330000F91FF90EF90DF90CF900C94421A5523AD +:1023400019F0513009F454C28E830E94451A8E81CF +:1023500089C1FF2021F0523008F04AC270C15111EA +:1023600047C280C1FF2021F0552309F468C1F5C19F +:10237000552309F477C105C2242F2695269523708D +:1023800030E02115310521F021303105C9F030C28E +:10239000FF2021F0862F942F937002C080E090E000 +:1023A00028960FB6F894DEBF0FBECDBFDF91CF9158 +:1023B0001F910F91FF90EF90DF90CF900C94BA0E89 +:1023C000FF2021F0862F942F937002C080E090E0D0 +:1023D00028960FB6F894DEBF0FBECDBFDF91CF9128 +:1023E0001F910F91FF90EF90DF90CF900C94D00E43 +:1023F000862FFF2019F00E94D91D02C00E94411EA5 +:1024000028960FB6F894DEBF0FBECDBFDF91CF91F7 +:102410001F910F91FF90EF90DF90CF900C94C61E0C +:10242000842F837009F076C0F110E2C1262F229527 +:1024300026952770220F220F862F8F70C82ED12C41 +:10244000E12CF12C022E04C0CC0CDD1CEE1CFF1C78 +:102450000A94D2F764FF10C06FE070E080E090E073 +:1024600004C0660F771F881F991F2A95D2F76095C1 +:1024700070958095909503C060E070E0CB01242FAB +:10248000269526952370422F50E042305105D1F019 +:102490004330510559F16C297D298E299F294130FE +:1024A000510541F128960FB6F894DEBF0FBECDBF9F +:1024B000DF91CF911F910F91FF90EF90DF90CF9020 +:1024C0000C9439186C297D298E299F2928960FB6DE +:1024D000F894DEBF0FBECDBFDF91CF911F910F915A +:1024E000FF90EF90DF90CF900C9453180E94391812 +:1024F000C701B60128960FB6F894DEBF0FBECDBF58 +:10250000DF91CF911F910F91FF90EF90DF90CF90CF +:102510000C941F18FF2019F0842F817001C086953C +:10252000882309F465C1262F229526952770220F4E +:10253000220F862F8F70C82ED12CE12CF12C022E69 +:1025400004C0CC0CDD1CEE1CFF1C0A94D2F764FF07 +:1025500010C06FE070E080E090E004C0660F771F6D +:10256000881F991F2A95D2F7609570958095909550 +:1025700003C060E070E0CB01242F269526952370E0 +:10258000422F50E042305105D1F04330510559F10E +:102590006C297D298E299F294130510541F12896CA +:1025A0000FB6F894DEBF0FBECDBFDF91CF911F9164 +:1025B0000F91FF90EF90DF90CF900C940D196C2944 +:1025C0007D298E299F2928960FB6F894DEBF0FBE6D +:1025D000CDBFDF91CF911F910F91FF90EF90DF90D2 +:1025E000CF900C9427190E940D19C701B6012896A7 +:1025F0000FB6F894DEBF0FBECDBFDF91CF911F9114 +:102600000F91FF90EF90DF90CF900C94F318603F04 +:10261000C9F118F4603E50F49BC0623F09F460C0F9 +:1026200008F44AC0633F09F46FC092C0162F1F70B0 +:10263000842F8F71FF2099F00E948C18812F28968B +:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:102650000F91FF90EF90DF90CF900C94D8100E94D4 +:10266000AD18812F28960FB6F894DEBF0FBECDBFF0 +:10267000DF91CF911F910F91FF90EF90DF90CF905E +:102680000C94DF10FF20A1F05111B2C0842F8F7184 +:1026900028960FB6F894DEBF0FBECDBFDF91CF9165 +:1026A0001F910F91FF90EF90DF90CF900C94D21874 +:1026B000523008F09DC0EACFFF20A1F0842F8F7127 +:1026C00028960FB6F894DEBF0FBECDBFDF91CF9135 +:1026D0001F910F91FF90EF90DF90CF900C948C188A +:1026E000FF2061F3842F8F7128960FB6F894DEBF18 +:1026F0000FBECDBFDF91CF911F910F91FF90EF9053 +:10270000DF90CF900C94AD18FF2091F0842F8F7143 +:1027100028960FB6F894DEBF0FBECDBFDF91CF91E4 +:102720001F910F91FF90EF90DF90CF900C9477184E +:1027300028960FB6F894DEBF0FBECDBFDF91CF91C4 +:102740001F910F91FF90EF90DF90CF900C946D1838 +:10275000FF20A1F0552309F4B1CF862F28960FB69C +:10276000F894DEBF0FBECDBFDF91CF911F910F91C7 +:10277000FF90EF90DF90CF900C94C10F552309F498 +:10278000B1CF862F28960FB6F894DEBF0FBECDBF0F +:10279000DF91CF911F910F91FF90EF90DF90CF903D +:1027A0000C9489104F70C8010E94550228960FB6EC +:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 +:1027C000FF90EF90DF90CF900C9494174F70C8015A +:1027D00028960FB6F894DEBF0FBECDBFDF91CF9124 +:1027E0001F910F91FF90EF90DF90CF900C94C20457 +:1027F00028960FB6F894DEBF0FBECDBFDF91CF9104 +:102800001F910F91FF90EF90DF90CF9008950E945D +:102810002F1A0E943F1A0E94041A0E945B1A0E94FB +:10282000721F0E94C61E80E090E00E94BA0E80E0F7 +:1028300090E00C94D00E0E941F1A0C9407140E9472 +:102840008219292F22952F7030E02C3031054CF45D +:102850002A3031056CF4225031092230310590F4D0 +:1028600007C02C30310551F02F30310539F00AC046 +:10287000803E10F0803F31F481E0089593FB88277B +:1028800080F9089580E00895CF93DF9300D000D0C1 +:102890001F92CDB7DEB70F900F900F900F900F9053 +:1028A000DF91CF910895CF93DF9300D000D000D077 +:1028B000CDB7DEB726960FB6F894DEBF0FBECDBFFC +:1028C000DF91CF9108951F93CF93DF93C09179014A +:1028D00016E080917A01C81799F0D0E01C9FF001B2 +:1028E0001D9FF00D1124E558FE4F408151816281FA +:1028F0007381848195810E9453142196C770E9CF1A +:10290000DF91CF911F9108954091AB015091AC019F +:102910006091AD017091AE018091AF019091B001D5 +:102920000C945314CF938091B00182958F7009F06D +:102930005FC08091AD01882309F45AC020917901CC +:10294000A0917A016091AB017091AC018091AE01D0 +:102950009091AF0131E06F3F09F030E0B32FC6E056 +:102960002A1709F445C0009721F07F3F21F44B2F2F +:1029700003C041E001C040E030E040FD35C0C29FEF +:10298000F001C39FF00D1124E558FE4F41817413EF +:102990002BC04081641328C04281411125C043816E +:1029A00054814817590710F441505109481B590BDD +:1029B000483C5105C8F48091B0018F7080618093CC +:1029C000B00186E0829FF001839FF00D1124E05852 +:1029D000FE4F80818F70806180838BEA91E00E943E +:1029E000E610CF910C9463142F5F3F4F2770B8CF40 +:1029F000CF910895CF92DF92EF92FF920F931F93A2 +:102A0000CF93DF93CDB7DEB762970FB6F894DEBFF2 +:102A10000FBECDBF8C0185E0F801DE011D9601904F +:102A20000D928A95E1F7D8014C9111965C9111971E +:102A300012966C9112971396ED90FC9014977091EA +:102A4000AB01E091AC012091AE013091AF012115B5 +:102A5000310531F0EF3F31F481E07F3F19F403C0DD +:102A600081E001C080E0B82FB170CB2E80FD6CC139 +:102A7000D090AD01DD2009F4F5C0F091B001E2166F +:102A8000F30638F0C701821B930B883C910548F090 +:102A90009BC0209530952E0D3F1D283C310508F038 +:102AA00093C08F2F807F09F052C0E51314C07413B8 +:102AB00012C0D62E61110FC0FF70F061F093B0010B +:102AC0000E9484148BEA91E00E94E6108091B0018C +:102AD000F80185836CC1EF2831F05F3F31F481E06C +:102AE0004F3F19F403C081E001C080E080FD03C0C6 +:102AF00081E0862701C080E0F82FF170FF2E80FF73 +:102B00001CC08091790120917A0136E0821709F486 +:102B100028C190E0389FF001399FF00D1124E5584D +:102B2000FE4F7181571306C07081471303C0728135 +:102B3000671303C001968770E9CFD62E662309F488 +:102B400036C18091B00181608093B00153C0E5131C +:102B500008C0741306C0611104C0D8011596FC9317 +:102B6000AEC04D875E878D859E856A8B0E941F143F +:102B70006A89882329F1D62E662311F12091B001AC +:102B8000822F82958F7090E002970CF460C0809144 +:102B9000AB019091AC0198878F831986FB86EA86FA +:102BA0002C87CE01079651C0E51731F14D875E871E +:102BB0008D859E856A8B0E941F146A8981112EC0A3 +:102BC000C8010E94E610A4C08F2F807F69F77E2D78 +:102BD000F98AE88A89890E9444148BEA91E00E946C +:102BE000E610EBEAF1E086E0DF011D928A95E9F755 +:102BF0000E948414D12CDBC07413D8CF6111D6CFBE +:102C0000D8011596FC93C8010E94E610EBEAF1E0AA +:102C100086E0DF011D928A95E9F7C9C0D62E6623AA +:102C200079F22091B001822F82958F7090E0029707 +:102C300074F08091AB019091AC019A8389831B82DF +:102C4000FD82EC822E83CE0101960E94E61086E082 +:102C5000F801ABEAB1E001900D928A95E1F70E948C +:102C600092146FC0E216F30628F0C701821B930B83 +:102C70009C0104C0209530952E0D3F1D283C310548 +:102C800008F052C0D62E662309F49ACFE5132CC063 +:102C900074132AC08091B00180FD1DC0982F9295B9 +:102CA0009F70C9F0D80115968C9315979F3039F015 +:102CB0009F5F9295907F8F70892B15968C93C8019A +:102CC0000E94E61086E0F801ABEAB1E001900D92B7 +:102CD0008A95E1F736C086E0F801ABEAB1E00190F1 +:102CE0000D928A95E1F763C04D875E878D859E853D +:102CF0000E941F14882379F086E0F801ABEAB1E066 +:102D000001900D928A95E1F70E9492140E9484141A +:102D1000DD24D3944CC08091B00181608093B001D8 +:102D2000C8010E94E61043C07E2DF98AE88A89898D +:102D30000E944414EBEAF1E086E0DF011D928A95DF +:102D4000E9F70E94841433C0662309F439CF4D8714 +:102D50005E878D859E850E941F14882309F430CFDD +:102D6000CBCF4D875E878D859E850E948219292F46 +:102D700022952F7030E0223031052CF49F7041F005 +:102D8000811106C00CC0243031052CF49F7049F429 +:102D9000805E883020F0C8010E94E610CF2CDC2C29 +:102DA00006C0D80115969C91907F91F7F8CF8D2D94 +:102DB00062960FB6F894DEBF0FBECDBFDF91CF9104 +:102DC0001F910F91FF90EF90DF90CF9008951F9388 +:102DD000CF93DF93CDB7DEB72C970FB6F894DEBF55 +:102DE0000FBECDBF4F83588769877A878B879C87B3 +:102DF000CE0107960E94FA148823C1F02F813885EE +:102E00008A859B85892B31F03F3F11F080E003C01C +:102E10002F3FE1F781E0811147C04F8158856985D7 +:102E20007A858B859C850E9453143EC086E0FE0106 +:102E30003796DE01119601900D928A95E1F7FF8198 +:102E4000E8854A855B854115510531F0EF3F31F446 +:102E500081E0FF3F19F403C081E001C080E080FD04 +:102E600023C020917A0130E0C9010196877099272B +:102E70006091790170E086179707F1F1F983EA8391 +:102E80005D834C8396E0929FD001939FB00D1124F7 +:102E9000A558BE4FFE01319601900D929A95E1F72B +:102EA00080937A010E94631416E0809179019091D9 +:102EB0007A01891779F1189FC001112485589E4F16 +:102EC0000E94FA14882331F1E09179011E9FF001EC +:102ED0001124E558FE4F40815181628173818481C4 +:102EE00095810E9453148091790190E0019687703A +:102EF000992780937901D9CF0E941B1410927A01EF +:102F000010927901EBEAF1E086E0DF011D928A95EB +:102F1000E9F7CACF2C960FB6F894DEBF0FBECDBF2F +:102F2000DF91CF911F910895EF92FF920F931F931E +:102F3000CF93DF93FC01009709F46FC0F12CEE24CE +:102F4000E394EF0121968491843740F4843008F0B3 +:102F500055C0813081F0823021F15FC0853709F49E +:102F600047C0C0F19CE7980F903708F056C08F77A4 +:102F70000E94891045C08F010E5F1F4FFE01849192 +:102F800090E2980F983050F48770FE2D01C0FF0F2B +:102F90008A95EAF78F2F0E94321A15C00E94C10F3E +:102FA00014C08F010E5F1F4FFE01849190E2980FB5 +:102FB000983068F48770FE2D01C0FF0F8A95EAF7FC +:102FC0008F2F0E94381A0E945B1AE80119C00E94D4 +:102FD0008910FBCFCF010296FE01C491CC2361F092 +:102FE000EFE9FFE03197F1F700C00000C150F6CFE4 +:102FF000CF010296FE01F490EC0102C00E94C10FC5 +:103000008F2D882341F0EFE9FFE03197F1F700C001 +:1030100000008150F6CFFE0194CFDF91CF911F9138 +:103020000F91FF90EF90089508956093B50170930C +:10303000B6018093B7019093B8010C9407140F93D5 +:103040001F930091B5011091B6012091B701309105 +:10305000B801062B172B282B392B0093B5011093A1 +:10306000B6012093B7013093B8011F910F910C94D2 +:1030700007140F931F930091B5011091B601209191 +:10308000B7013091B8010623172328233923009371 +:10309000B5011093B6012093B7013093B8011F9189 +:1030A0000F910C9407140F931F930091B501109189 +:1030B000B6012091B7013091B801062717272827BC +:1030C00039270093B5011093B6012093B7013093CF +:1030D000B8011F910F910C9407141092B101109236 +:1030E000B2011092B3011092B4010C94071441E0A4 +:1030F00050E060E070E004C0440F551F661F771F6A +:103100008A95D2F74093B1015093B2016093B30115 +:103110007093B4010C94071441E050E060E070E05B +:1031200004C0440F551F661F771F8A95D2F7809100 +:10313000B1019091B201A091B301B091B401842B7F +:10314000952BA62BB72B8093B1019093B201A0933E +:10315000B301B093B4010C94071441E050E060E077 +:1031600070E004C0440F551F661F771F8A95D2F781 +:1031700040955095609570958091B1019091B20104 +:10318000A091B301B091B40184239523A623B72362 +:103190008093B1019093B201A093B301B093B401B5 +:1031A0000C94071441E050E060E070E004C0440F6C +:1031B000551F661F771F8A95D2F78091B1019091B4 +:1031C000B201A091B301B091B40184279527A6273D +:1031D000B7278093B1019093B201A093B301B0934C +:1031E000B4010C9407140F931F930091B101109137 +:1031F000B2012091B3013091B401062B172B282B7B +:10320000392B0093B1011093B2012093B301309395 +:10321000B4011F910F910C9407140F931F93009109 +:10322000B1011091B2012091B3013091B401062394 +:103230001723282339230093B1011093B20120935F +:10324000B3013093B4011F910F910C9407140F93A5 +:103250001F930091B1011091B2012091B3013091FF +:10326000B40106271727282739270093B1011093A7 +:10327000B2012093B3013093B4011F910F910C94CC +:1032800007140895CF92DF92EF92FF920F931F934E +:10329000CF93DF93EC01C090B501D090B601E090E0 +:1032A000B701F090B8018091B1019091B201A09165 +:1032B000B301B091B401C82AD92AEA2AFB2A0FE146 +:1032C00010E0B701A601002E04C0769567955795CA +:1032D00047950A94D2F740FD05C00150110988F7BF +:1032E00080E007C0BE01802F0E9402070197A9F36A +:1032F000802FDF91CF911F910F91FF90EF90DF9082 +:10330000CF900895CF93DF93EC010E944219BE0144 +:103310000E940207DF91CF910895CB010E9482198C +:10332000089590910C019923D9F090910D01992362 +:10333000B9F0982F9695969596959F3088F5E091DF +:103340000E01F0910F01E90FF11D877021E030E0CF +:1033500001C0220F8A95EAF78181822B818308952B +:1033600040910E0150910F0120E030E09FEFFA01F3 +:10337000E20FF31F6281681799F09F3F19F4611102 +:1033800001C0922F2F5F3F4F2E30310581F79F3FB5 +:1033900039F0FA01E90FF11D97FDFA95828308953E +:1033A000089590910C019923E1F090910D019923DA +:1033B000C1F0982F9695969596959F3020F5E091BF +:1033C0000E01F0910F01E90FF11D877021E030E04F +:1033D00001C0220F8A95EAF7209581812823218355 +:1033E000089540910E0150910F0120E030E0FA0164 +:1033F000E20FF31F9281981301C012822F5F3F4F9B +:103400002E303105A1F7089581E090E0E0910E01A2 +:10341000F0910F01E80FF91F10820196803191059C +:10342000A9F708959091CC01982B9093CC01089521 +:1034300080959091CC0198239093CC01089510929F +:10344000CC0108959091CB01982B9093CB010895D6 +:1034500080959091CB0198239093CB010895109281 +:10346000CB0108959091CA01982B9093CA010895B9 +:1034700080959091CA0198239093CA010895109263 +:10348000CA0108958093B90108951092B901089571 +:1034900040910E0150910F0120E030E080E0FA01F0 +:1034A000E20FF31F918191118F5F2F5F3F4F2F30FC +:1034B0003105A9F70895E0910E01F0910F01809177 +:1034C000CC018083E0910E01F0910F0180819091F9 +:1034D000CB01892B8083E0910E01F0910F01808157 +:1034E0009091CA01892B80839091B901992361F051 +:1034F000E0910E01F0910F018081892B80830E9461 +:10350000481A81111092B90180910E0190910F011A +:103510000C94A40ECF92DF92EF92FF920F931F9321 +:103520006C01EE24FF24C114D104E104F10421F460 +:103530006B017C0180E001C080E133272F2D1E2D1F +:103540000D2D011511052105310519F0885F680160 +:10355000790197018601A4E036952795179507957F +:10356000AA95D1F7011511052105310519F08C5FD8 +:103570006801790197018601F2E036952795179544 +:103580000795FA95D1F7011511052105310519F0B7 +:103590008E5F68017901B701A60176956795579509 +:1035A0004795452B462B472B09F08F5F1F910F91B5 +:1035B000FF90EF90DF90CF9008958091E4018430E8 +:1035C00039F11092CE0120E488E190E00FB6F89432 +:1035D000A895809360000FBE2093600080E00E9459 +:1035E0009D0783B7817F846083BF83B7816083BF7A +:1035F0007894889583B78E7F83BF0FB6F894A8958B +:1036000080916000886180936000109260000FBE1E +:10361000089508950895CF930E94091B0E94CD0339 +:103620000E940A1BC0E08C2F0E94BB04811104C0C1 +:10363000CF5FCE30C1F701C081E0CF9108950E94E5 +:103640001B140E94980E0C949D0782E084BD93E0A9 +:1036500095BD9AEF97BD80936E0008952FB7F894AB +:103660008091CF019091D001A091D101B091D20170 +:103670002FBF0895CF92DF92EF92FF920F931F9387 +:103680002FB7F8944091CF015091D0016091D101B2 +:103690007091D2012FBF6A017B01EE24FF248C01BF +:1036A00020E030E0C016D106E206F30610F44150E7 +:1036B0005109481B590BCA011F910F91FF90EF90C0 +:1036C000DF90CF9008951F920F920FB60F921124A2 +:1036D0008F939F93AF93BF938091CF019091D0012F +:1036E000A091D101B091D2010196A11DB11D80938D +:1036F000CF019093D001A093D101B093D201BF919B +:10370000AF919F918F910F900FBE0F901F901895C2 +:103710000E949E0BF8942FEF87EA91E6215080409B +:103720009040E1F700C0000087E090EBDC0180935F +:10373000EE019093EF01A093F001B093F1012CE022 +:1037400088E190E00FB6F894A895809360000FBED2 +:1037500020936000FFCFEF92FF920F931F93CF93C0 +:10376000DF93D82FC0E08C2F0E94BB0400E010E054 +:10377000E82EF12CC701002E02C0959587950A947A +:10378000E2F780FD06C00F5F1F4F0630110591F76D +:1037900009C0602F7C2F80E00E94C304D813F3CFB0 +:1037A00081E004C0CF5FCE30F1F680E0DF91CF91B1 +:1037B0001F910F91FF90EF900895CF93C82F8CE247 +:1037C0000E94AB1B882321F08C2FCF910C94AB1B54 +:1037D00080E0CF910895CF930E94321D811102C0E5 +:1037E0000E94181DC5E6C15049F00E94CD038FE329 +:1037F0009CE90197F1F700C00000F5CF89E20E9433 +:10380000DD1B811113C18AE20E94DD1B81110E9420 +:10381000181D85E00E94DD1B81110E94881B0E94FB +:103820003D1D8093CD0187E00E94DD1B8823A9F117 +:103830008BE10E94DD1B882351F08091CD0181FB3B +:10384000222720F991E0922790FB81F90EC08EE0AB +:103850000E94DD1B882361F08091CD0182FB22272D +:1038600020F991E0922790FB82F98093CD0115C059 +:1038700080E10E94DD1B9091CD01882341F093FBF4 +:10388000222720F981E0822780FB93F904C0892F49 +:10389000809580FB90F99093CD018091CD010E949D +:1038A000411D0E944F1D8093ED0180EE0E94DD1BA3 +:1038B000882341F08091ED01982F909590FB80F93D +:1038C0008093ED0189E30E94DD1B882359F08091EC +:1038D000ED0181FB222720F991E0922790FB81F9ED +:1038E0008093ED0182EE0E94DD1B882359F08091C8 +:1038F000ED0182FB222720F991E0922790FB82F9CB +:103900008093ED0186EE0E94DD1B882359F08091A3 +:10391000ED0183FB222720F991E0922790FB83F9A8 +:103920008093ED0183EE0E94DD1B882359F0809186 +:10393000ED0184FB222720F991E0922790FB84F986 +:103940008093ED0185E30E94DD1B882359F080916F +:10395000ED0185FB222720F991E0922790FB85F964 +:103960008093ED0181E30E94DD1B882359F0809153 +:10397000ED0186FB222720F991E0922790FB86F942 +:103980008093ED0181E10E94DD1B882359F0809135 +:10399000ED0187FB222720F991E0922790FB87F920 +:1039A0008093ED018091ED010E94531D8091ED0106 +:1039B00087FB882780F980930D0187E20E94DD1B39 +:1039C000C82F8EE10E94DD1B8111C2608FE10E9431 +:1039D000DD1B8111C46080E20E94DD1B8111C86083 +:1039E00081E20E94DD1B8111C06182E20E94DD1B29 +:1039F0008111C06283E20E94DD1B8111C06484E2F8 +:103A00000E94DD1B882311F0C06802C0CC2329F07E +:103A10008C2F0E944A1D6C2F03C00E94461D682FE8 +:103A200070E080E090E0CF910C941518CF9108954C +:103A30006DEE7EEF80E090E00E948D2360E082E0FA +:103A400090E00E947B2360E083E090E00E947B2373 +:103A500060E084E090E00E947B2360E085E090E0FD +:103A60000C947B2380E090E00E94752321E08D3E42 +:103A70009E4F09F020E0822F089582E090E00C94A0 +:103A80006D23682F82E090E00C947B2383E090E02C +:103A90000C946D23682F83E090E00C947B2384E0EA +:103AA00090E00C946D23682F84E090E00C947B23CD +:103AB0008091D50180FF0BC06091130185E0689F64 +:103AC000B001112475956795759567952AC081FF9A +:103AD00009C06091130185E0689FB00111247595BC +:103AE00067951FC082FF07C06091130185E0689F42 +:103AF000B001112416C04091D6014423C9F0609151 +:103B00001201461788F72091130185E0289F900144 +:103B10001124429FC001439F900D112470E00E9428 +:103B20003F236038710540F46115710539F002C01A +:103B300065E070E0862F08958FE7089581E008958D +:103B40008091D50180FF08C06091110170E07595EA +:103B500067957595679521C081FF06C06091110139 +:103B600070E07595679519C082FF04C060911101DE +:103B700070E010C08091D6018823C1F060911001DF +:103B80008617A0F790911101989FC001112470E051 +:103B90000E943F236038710528F46115710521F0FA +:103BA000862F08958FE7089581E0089561E070E021 +:103BB000F4CF803F21F40E94581D819504C0813FBD +:103BC00029F40E94581D8093D9010895823F21F461 +:103BD0000E94581D819504C0833F29F40E94581DFE +:103BE0008093D8010895893F19F40E94A01D05C053 +:103BF0008A3F31F40E94A01D81958093DA010895D7 +:103C00008B3F21F40E94A01D819504C08C3F29F4B4 +:103C10000E94A01D8093DB010895843F21F48091D0 +:103C2000D701816017C0853F21F48091D701826060 +:103C300011C0863F21F48091D70184600BC0873F7B +:103C400021F48091D701886005C0883F31F48091CC +:103C5000D70180618093D70108958D3F21F4809131 +:103C6000D50181600BC08E3F21F48091D501826027 +:103C700005C08F3F29F48091D50184608093D501E0 +:103C80000895803F39F48091D90187FF6CC010926C +:103C9000D90169C0813F29F48091D9011816BCF37C +:103CA00062C09091D801823F29F497FF5CC01092C6 +:103CB000D80159C0833F19F41916CCF354C0893F79 +:103CC00041F48091DA0118160CF04DC01092DA011F +:103CD0004AC08A3F29F48091DA0187FF44C0F6CFB9 +:103CE0008B3F39F48091DB0187FF3DC01092DB01EF +:103CF0003AC08C3F29F48091DB011816BCF333C025 +:103D0000843F21F48091D7018E7F17C0853F21F435 +:103D10008091D7018D7F11C0863F21F48091D7011A +:103D20008B7F0BC0873F21F48091D701877F05C02F +:103D3000883F31F48091D7018F7E8093D70113C0E3 +:103D40008D3F21F48091D5018E7F0BC08E3F21F4F1 +:103D50008091D5018D7F05C08F3F29F48091D501D9 +:103D60008B7F8093D5018091D80181110EC0809105 +:103D7000D90181110AC08091DA01811106C08091B8 +:103D8000DB01811102C01092D601089587ED91E008 +:103D90000E94AF0E0E942E1B9093D4018093D301FA +:103DA00008951F93CF93DF938091D3019091D40115 +:103DB0000E943A1B4091D601442321F02091140126 +:103DC00030E006C0209115015AE0259F9001112492 +:103DD0008217930708F482C08091D8011091D9010D +:103DE000D091DA01C091DB01811107C0111105C02A +:103DF000D11103C0CC2309F471C04F3F19F04F5FBC +:103E00004093D601181624F40E94581D8093D801BF +:103E10008091D80187FF05C00E94581D819580932D +:103E2000D801111624F40E94581D8093D901809165 +:103E3000D90187FF05C00E94581D81958093D90143 +:103E40006091D801662339F11091D901112319F13C +:103E5000772767FD7095872F972F0E94462223E3CF +:103E600033E343E35FE30E94AA220E940E226093A1 +:103E7000D801612F772767FD7095872F972F0E94B4 +:103E8000462223E333E343E35FE30E94AA220E9436 +:103E90000E226093D9011D1624F40E94A01D809368 +:103EA000DA018091DA0187FF05C00E94A01D81958B +:103EB0008093DA011C1624F40E94A01D8093DB017C +:103EC0008091DB0187FF05C00E94A01D8195809332 +:103ED000DB01DF91CF911F910C94C61EDF91CF9132 +:103EE0001F910895E7EDF1E085E0DF011D928A95CD +:103EF000E9F71092D6011092D5010895833081F12F +:103F000028F4813059F08230D1F00895853009F4D9 +:103F100049C0B8F1863009F456C008958091150162 +:103F2000262F30E0280F311D2F3F310524F4680F74 +:103F30006093150108958FEF809315010895809186 +:103F40001401262F30E0280F311D2F3F310524F4B6 +:103F5000680F6093140108958FEF80931401089502 +:103F600080911301262F30E0280F311D2F3F31059E +:103F700024F4680F6093130108958FEF8093130169 +:103F8000089580911201262F30E0280F311D2F3F18 +:103F9000310524F4680F6093120108958FEF809328 +:103FA0001201089580911101262F30E0280F311D54 +:103FB0002F3F310524F4680F6093110108958FEFAE +:103FC00080931101089580911001262F30E0280F71 +:103FD000311D2F3F310524F4680F609310010895BF +:103FE0008FEF809310010895833011F128F4813010 +:103FF00049F0823091F00895853081F120F18630CA +:10400000C1F1089580911501681720F4861B8093F3 +:1040100015010895109215010895809114016817F3 +:1040200020F4861B809314010895109214010895C2 +:1040300080911301681720F4861B80931301089563 +:1040400010921301089580911201681720F4861BC5 +:104050008093120108951092120108958091110128 +:10406000681720F4861B80931101089510921101A6 +:10407000089580911001681720F4861B8093100129 +:1040800008951092100108950F931F938D3109F434 +:104090006BC008F03FC08E3009F47FC0C0F4873099 +:1040A00009F469C068F4863009F0B1C08091CD018F +:1040B000817F8E7F8093CD0181E08093DD01A8C058 +:1040C000883009F4A2C08B3009F49FC0A0C08631AB +:1040D00009F49BC078F4803109F472C0813109F091 +:1040E00096C00E941B1490910D0181E08927809356 +:1040F0000D018BC0893109F488C08B3109F087C06C +:104100008091CD0181FB222720F991E0922790FB3D +:1041100081F94CC0853309F470C048F4873209F442 +:104120006CC008F459C0893209F467C070C0833488 +:1041300038F48A3308F04EC0883309F466C067C08B +:10414000833409F45AC0883409F061C00E941B14FA +:104150000FEF13ED20E3015010402040E1F700C0C5 +:1041600000000E94881B51C00E94C8210E94980E26 +:104170000E949D074AC09091CD01892F8095817042 +:1041800080FB90F929F0966098609093CD0140C033 +:10419000997F977F9093CD0138C08091CD0182FBAC +:1041A000222720F991E0922790FB82F98093CD019C +:1041B000992359F18091CD0181608093CD0125C073 +:1041C0008091CD0183FB222720F991E0922790FB7B +:1041D00083F9ECCF895301C08D5141E050E060E09C +:1041E00070E08A019B0104C0000F111F221F331FC2 +:1041F0008A95D2F7C901B80104C061E070E080E09F +:1042000090E00E9415180E941B1481E001C080E01C +:104210001F910F91089580E0089580E00895CF9355 +:10422000C82F8091DD01813079F018F08230E9F1FA +:1042300087C0E0910E01F0910F018081813169F01A +:10424000823209F07FC009C0E0910E01F0910F01A8 +:104250008081813111F0823261F48C2F0E940B2118 +:10426000811104C08C2F0E9444201DC081E090E089 +:104270001AC08C2F0E940D21811114C0C43179F015 +:1042800048F4CB3079F0C03109F060C082E080930F +:10429000DD0108C0C93219F0C83321F057C01092AF +:1042A000DD0154C081E0817053C0C93289F118F535 +:1042B000C43171F1A8F4C73009F046C08AE0809398 +:1042C000150194E19093140193E09093130180936E +:1042D000120188E08093110188E28093100134C0BC +:1042E000CE51C63088F5EC2FF0E0E65DFE4F8081C0 +:1042F0008093DC0129C0CE34E9F020F4CB3421F5E1 +:104300006AE013C0C13579F0C235F1F461E00DC047 +:104310008091DC01882319F01092DC0115C081E046 +:104320008093DD0115C061E006C08091DC010E9430 +:104330007E1F0AC06AE08091DC010E94F41F04C065 +:104340001092DD0180E004C081E002C080E0ABCFCC +:10435000CF910895E1E8F0E08081886080838081DA +:10436000816080838FB7F89493E09093890090EDFB +:10437000909388008FBF0895EFE6F0E0808182601F +:1043800080830895EFE6F0E080818D7F808308953B +:10439000EFE6F0E0808192E08927808308951F9204 +:1043A0000F920FB60F9211242F933F934F935F9369 +:1043B0006F937F938F939F93AF93BF93EF93FF93ED +:1043C0008091DE019091DF0101969093DF0180934F +:1043D000DE01811103C082E00E949D07E091DF01B0 +:1043E000E695E695F0E0E252FC4FE4918091DE0123 +:1043F0008E1303C080E00E949D07FF91EF91BF9153 +:10440000AF919F918F917F916F915F914F913F916C +:104410002F910F900FBE0F901F9018950E9415229C +:104420006894B1110C94A42208950E94892288F006 +:104430009F5798F0B92F9927B751B0F0E1F0660F68 +:10444000771F881F991F1AF0BA95C9F714C0B130A9 +:1044500091F00E94A322B1E008950C94A322672F4B +:10446000782F8827B85F39F0B93FCCF386957795D8 +:104470006795B395D9F73EF49095809570956195C1 +:104480007F4F8F4F9F4F0895E89409C097FB3EF4EC +:1044900090958095709561957F4F8F4F9F4F992391 +:1044A000A9F0F92F96E9BB279395F695879577950F +:1044B0006795B795F111F8CFFAF4BB0F11F460FFCF +:1044C0001BC06F5F7F4F8F4F9F4F16C0882311F027 +:1044D00096E911C0772321F09EE8872F762F05C03B +:1044E000662371F096E8862F70E060E02AF09A95D6 +:1044F000660F771F881FDAF7880F9695879597F9CB +:10450000089557FD9058440F551F59F05F3F71F0C3 +:104510004795880F97FB991F61F09F3F79F087952A +:104520000895121613061406551FF2CF4695F1DFB3 +:1045300008C0161617061806991FF1CF8695710543 +:10454000610508940895E894BB2766277727CB0177 +:1045500097F908950E94BD220C942E230E942023D7 +:1045600038F00E94272320F0952311F00C94172394 +:104570000C941D2311240C94A4220E94812270F318 +:10458000959FC1F3950F50E0551F629FF001729FF8 +:10459000BB27F00DB11D639FAA27F00DB11DAA1F07 +:1045A000649F6627B00DA11D661F829F2227B00D54 +:1045B000A11D621F739FB00DA11D621F839FA00DDF +:1045C000611D221F749F3327A00D611D231F849F2F +:1045D000600D211D822F762F6A2F11249F57504086 +:1045E0009AF0F1F088234AF0EE0FFF1FBB1F661F01 +:1045F000771F881F91505040A9F79E3F510580F0CA +:104600000C9417230C94A4225F3FE4F3983ED4F358 +:10461000869577956795B795F795E7959F5FC1F76D +:10462000FE2B880F911D9695879597F9089597F918 +:104630009F6780E870E060E008959FEF80EC089548 +:1046400000240A9416161706180609060895002471 +:104650000A9412161306140605060895092E0394EB +:10466000000C11F4882352F0BB0F40F4BF2B11F45F +:1046700060FF04C06F5F7F4F8F4F9F4F089597FB80 +:10468000072E16F4009407D077FD09D00E94592315 +:1046900007FC05D03EF4909581959F4F0895709545 +:1046A00061957F4F0895EE0FFF1F0590F491E02D67 +:1046B0000994AA1BBB1B51E107C0AA1FBB1FA61769 +:1046C000B70710F0A61BB70B881F991F5A95A9F7BB +:1046D00080959095BC01CD010895F999FECF92BDCA +:1046E00081BDF89A992780B50895A8E1B0E042E02D +:1046F00050E00C949523262FF999FECF92BD81BDF1 +:10470000F89A019700B4021639F01FBA20BD0FB60F +:10471000F894FA9AF99A0FBE08950196272F0E94ED +:104720007C230C947B23DC01CB01FC01F999FECFA7 +:1047300006C0F2BDE1BDF89A319600B40D92415029 +:0A4740005040B8F70895F894FFCF39 +:10474A0020029F072C080908D507A2070101BA0110 +:10475A0028080A03140A3F4D36399F0352031C03E3 +:10476A00E30276028F02A802C102010203040506CF +:04477A000708090023 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.json new file mode 100644 index 000000000..4ade74873 --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png new file mode 100644 index 000000000..9a6546e35 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/ab/keyboard-layout.png differ diff --git a/keyboard/ergodox_ez/keymaps/ab/keymap.c b/keyboard/ergodox_ez/keymaps/ab/keymap.c new file mode 100644 index 000000000..9b5c93c1e --- /dev/null +++ b/keyboard/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/keyboard/ergodox_ez/keymaps/ab/readme.md b/keyboard/ergodox_ez/keymaps/ab/readme.md new file mode 100644 index 000000000..67d47151b --- /dev/null +++ b/keyboard/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/keyboard/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. + + -- cgit v1.2.3 From 262930c8d5e57beec044d932ef554a09e846f9ca Mon Sep 17 00:00:00 2001 From: Nathan Sharfi Date: Sat, 30 Apr 2016 22:12:13 -0700 Subject: ergodox-zweihander: initial commit --- .../ergodox_ez/keymaps/zweihander-osx/keymap.c | 184 +++++++++++++++++++++ .../keymaps/zweihander-osx/readme.markdown | 40 +++++ 2 files changed, 224 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c new file mode 100644 index 000000000..cc94e1333 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/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 | ← | | → | 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⌘ | ← | → | | ↑ | ↓ | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | `~ | '" | | ⎋ | ⌫ | + * ,------|------|------| |------+--------+------. + * | | | 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, 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, 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 + 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), + 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_FN1, + 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_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_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 + * dim brighten + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | F14 | | F15 | | | | | | Power | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | Home | PgDn | End | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, /* F14 dims screen, F15 brightens */ + KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_HOME, 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_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, 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, + 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/zweihander-osx/readme.markdown b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown new file mode 100644 index 000000000..8103c6b32 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown @@ -0,0 +1,40 @@ +# The Zweihander Layout + +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: + +- Back (⌘[) +- Forward (⌘]) +- Open and Close Parent Folder (⌥⌘↓) +- Go Up and Close Just-Left Folder (⌥⌘↑) +- 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. -- cgit v1.2.3 From 8ec1d41a28d5223a147218bfb7fefd933b906d22 Mon Sep 17 00:00:00 2001 From: Nathan Sharfi Date: Sat, 30 Apr 2016 22:36:09 -0700 Subject: Ergodox EZ: add zweihander-osx.hex --- .../keymaps/zweihander-osx/zweihander-osx.hex | 1152 ++++++++++++++++++++ 1 file changed, 1152 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex new file mode 100644 index 000000000..9b783c957 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex @@ -0,0 +1,1152 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94720C0C94440D2B +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C940E220C94A9020C94A902FF +:100050000C94A9020C949D1B0C94A9020C94A90267 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902B10DD30DD1 +:1000B000C10ED30DC10E180E3B0EC10E900EA30E35 +:1000C0008F118F11CC11CC110F124D1266146614C2 +:1000D00066126614671367133A1466146614511493 +:1000E0000000F0A12E004C002A00E100E00000001A +:1000F0001E00140004001D00E200E2001F001A00B0 +:1001000016001B00E3002A0020000800070006007C +:1001100050002C0021001500090019004F004B0071 +:10012000220017000A0005000000350050000154AD +:100130000000E300000034004F0001540000E30021 +:100140000000290023001C000B00110000002A0001 +:10015000240018000D00100052004E0025000C0075 +:100160000E00360051002800260012000F00370054 +:100170002F002B0027001300338238713000E0007D +:100180002D0031003478E500C100000001000100BD +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F00380094 +:1001F0002D002402000001004000240021001E0008 +:1002000027004A004100250022001F00370001009E +:100210004200260023002000500001004300250278 +:100220002E022E004F004D00440045000100010049 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:100250004A0001000100010001004B004E000100B6 +:1002600001000100010001004D000100010001003A +:10027000010001000100010000000100690001000F +:1002800000000100000001006A0001000000010000 +:1002900000000100010030082F082C0200000100BE +:1002A0000100520C50002C00A90001000100520076 +:1002B0005100AC00AA0001000100510C4F00AB003E +:1002C000A80001000100010001000100010001007F +:1002D000A5000100AE00010001000000160345006A +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A +:1004E0009091EF01A091F001B091F1018730904B14 +:1004F000A740B04BB9F41092EE011092EF011092A8 +:10050000F0011092F10114BE84B7877F84BF88E1A7 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0EAEAF7E402C0D8 +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92AE3EB107E1F70E94B6090C94BE +:10055000D3230C94000061110BC0FC01828188231D +:1005600021F085EE0E94231003C085EE0E94EB105F +:1005700080E090E0089508956091B1017091B2011A +:100580008091B3019091B4010E94C91A56985E9867 +:1005900025982D9826982E9827982F98813019F015 +:1005A000823021F00895259A2D9A0895269A2E9A40 +:1005B00008950C94BC0256985E9825982D9826981C +:1005C0002E9827982F988FEF90E090938900809332 +:1005D000880090938B0080938A0090938D00809385 +:1005E0008C00259A2D9A2FEF80E792E021508040D1 +:1005F0009040E1F700C00000269A2E9A2FEF80E786 +:1006000092E0215080409040E1F700C00000279A1E +:100610002F9A2FEF80E792E0215080409040E1F741 +:1006200000C0000025982D982FEF80E792E0215020 +:1006300080409040E1F700C0000026982E982FEFF0 +:1006400080E792E0215080409040E1F700C0000038 +:1006500027982F9856985E9825982D9826982E982A +:1006600027982F98089589EA8093800089E08093E5 +:10067000810024982C983F988AB18F748AB96E981B +:10068000479A8BB1806B8BB9769A0E94DB020C94EF +:10069000BB0280E2809300018091340181110EC081 +:1006A0000E94980381E0809334012FEF83ED90E363 +:1006B000215080409040E1F700C0000080E40E949B +:1006C0009E038093000181112EC00E94C803809375 +:1006D0000001811128C00E94C8038093000181118C +:1006E00022C08FE30E94C8038093000181111BC0C8 +:1006F0000E94C00380E40E949E0380930001811148 +:1007000012C08CE00E94C8038093000181110BC0CD +:100710000E94C80380930001811105C08FE30E94ED +:10072000C803809300010E94C003809100010895D6 +:100730001092B9008AE08093B800089594EA9093EB +:10074000BC009091BC0097FFFCCF9091B900987FBE +:10075000983021F0903111F081E008958093BB0032 +:1007600084E88093BC008091BC0087FFFCCF80911F +:10077000B900887F883111F0803471F780E00895E6 +:1007800084E98093BC008091BC0084FDFCCF089577 +:100790008093BB0084E88093BC008091BC0087FFFD +:1007A000FCCF9091B900987F81E0983209F480E005 +:1007B000089584E88093BC008091BC0087FFFCCF43 +:1007C0008091BB00089580910001811115C080E4E3 +:1007D0000E949E038093000181110CC082E10E945F +:1007E000C80380930001811105C08FEF0E94C803E8 +:1007F000809300010E94C00384B1807F84B985B1D9 +:10080000807F85B98AB1837F8AB98BB1837F8BB9A9 +:100810003E98469808950E944903809300010E94E3 +:10082000E30380B38C7080BB81B3836F81BBA6E38D +:10083000B1E0E4E4F1E08EE08E0F11921D928E1390 +:10084000FCCF0C943303BF92CF92DF92EF92FF92D2 +:100850000F931F93CF93DF9380910001882379F04A +:10086000809135018F5F80933501811108C00E940E +:10087000490380930001811102C00E94DB0206E35C +:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455 +:10089000E394F12CC730D10500F58091000181115E +:1008A00064C080E40E949E0380930001811112C005 +:1008B00082E10E94C8038093000181110BC0C7012F +:1008C0000C2E01C0880F0A94EAF780950E94C80395 +:1008D000809300010E94C00348C0CA30A1F028F4F0 +:1008E000C83059F0C93061F005C0CC3089F070F0E3 +:1008F000CD3089F0209A289810C0219A29980DC0EF +:10090000229A2A980AC0239A2B9807C0529A01C0AB +:10091000539A5B9802C03E9A469890EA9A95F1F7EE +:100920009FB1799902C082E001C080E091709D255D +:10093000982B7C9902C084E001C080E0892B7D99CE +:1009400002C038E001C030E0832B7E9902C020E174 +:1009500001C020E0822B9FB19095991F9927991F84 +:100960009295990F907E892B0FC080910001811183 +:1009700049C080E40E949E0380930001882379F19E +:10098000B12C0E94C0038B2DF8019081981719F0AB +:100990008083C09201010E94E30321960F5F1F4FE5 +:1009A000CE30D10509F076CF80910101882361F125 +:1009B000815080930101882339F08FE99FE00197EE +:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC +:1009D000CF01825F91919D938E13FCCF15C083E16F +:1009E0000E94C803809300018111CACF81E40E9454 +:1009F0009E03809300018111C3CF0E94D903B82EBA +:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7 +:100A1000CF911F910F91FF90EF90DF90CF90BF90FB +:100A20000895E82FF0E0EC5BFE4F80810895089573 +:100A3000089596E0799FF001112494E5899FE00DD7 +:100A4000F11D1124E60FF11DEE0FFF1FEC51FF4FBA +:100A5000859194910895880F991FFC01E05AF04008 +:100A6000859194910895880F991FFC01E052FF4FE2 +:100A70008591949108950F931F93CF93DF93EC0189 +:100A80008115904350F5C11580E2D80708F0B3C036 +:100A9000CB3BD10590F4C83AD10508F05AC0C53A0D +:100AA000D10508F04BC0C430D10508F0BBC1219777 +:100AB00009F0B5C101E010E0F5C1CF3FD10511F05B +:100AC00008F0B0C1C03FD10508F092C0CE01805EF1 +:100AD0009109089708F4A6C1A2C1C11591E5D907EB +:100AE000A8F4C23020E5D20708F09EC0C11580E509 +:100AF000D80709F485C008F091C0C11520E4D207D9 +:100B000008F08DC1DD278E01106CCCC1C11580E8C5 +:100B1000D80758F4C11590E7D90708F07CC1C11572 +:100B200020E6D20708F422C17AC1C11580E9D807AE +:100B300008F075C1DF708E01106AB4C1C53AD105E5 +:100B400009F472C1C63AD10509F071C102E810E496 +:100B5000A9C1C83AD10509F46DC1C93AD10509F452 +:100B60006CC1CA3AD10509F46BC1CB3AD10509F47D +:100B70006AC1CC3AD10509F469C1CD3AD10509F46D +:100B800068C1C03BD10509F467C1CE3AD10509F46B +:100B900066C1CF3AD10509F465C1C13BD10509F45D +:100BA00064C1C23BD10509F463C1C33BD10509F45B +:100BB00062C1C43BD10509F461C1C53BD10509F44B +:100BC00060C1C63BD10509F45FC1C73BD10509F43B +:100BD0005EC1C83BD10509F45DC1C93BD10509F42B +:100BE0005CC1CA3BD10509F45BC100E014E45AC101 +:100BF0008E01106557C1CE019F700E94330553C10D +:100C00000E948A149FEF24E38CE0915020408040A2 +:100C1000E1F700C000000E94C21B44C18091CD01D9 +:100C200081608093CD013EC10E946B1D811102C085 +:100C30000E94511D0E94881D90E09093EE018093C8 +:100C4000ED01C23090E5D90721F48091ED0181607A +:100C500086C0C43020E5D20721F48091ED01826086 +:100C60007EC0C63080E5D80721F48091ED01846014 +:100C700076C0C83090E5D90719F48091ED0127C0FE +:100C8000CA3020E5D20721F48091ED01806167C070 +:100C9000CC3080E5D80721F48091ED0180625FC0FF +:100CA000CE3090E5D90721F48091ED01806457C0E2 +:100CB000C03120E5D20721F48091ED0180684FC05A +:100CC000C23180E5D80729F48091ED018460886005 +:100CD00046C0C33090E5D90721F48091ED018E7FA5 +:100CE0003EC0C53020E5D20721F48091ED018D7F13 +:100CF00036C0C73080E5D80721F48091ED018B7FA5 +:100D00002EC0C93090E5D90719F48091ED0126C0B5 +:100D1000CB3020E5D20721F48091ED018F7E1FC0FA +:100D2000CD3080E5D80721F48091ED018F7D17C08B +:100D3000CF3090E5D90721F48091ED018F7B0FC072 +:100D4000C13120E5D20721F48091ED018F7707C0F2 +:100D5000C331D04531F48091ED018B7F877F809343 +:100D6000ED018091ED010E948C1D9CC08D2F992773 +:100D70008F70992781309105D9F49E012370332714 +:100D800002C0880F991F2A95E2F79C688E0144E003 +:100D9000000F111F4A95E1F700271370802B912B4C +:100DA00053E0CC0FDD1F5A95E1F7C076DD272FC049 +:100DB0008230910531F4DC2FCC278E01016F106A4F +:100DC00071C08330910569F4CE018370992701E0E9 +:100DD00010E002C0000F111F8A95E2F7C8019C685D +:100DE0000FC0049709F05EC0CE018370992701E01F +:100DF00010E002C0000F111F8A95E2F7C8019A683F +:100E000023E0CC0FDD1F2A95E1F7C07ED7708C015F +:100E10000C2B1D2B47C0DF708E01106243C000E019 +:100E200010E040C08E013EC001E810E43BC003E882 +:100E300010E438C002EE14E435C009EE14E432C008 +:100E40000AEE14E42FC005EB14E42CC006EB14E406 +:100E500029C007EB14E426C00CEC14E423C00DEC0D +:100E600014E420C003E815E41DC00AE815E41AC024 +:100E700002E915E417C004E915E414C001E216E420 +:100E800011C003E216E40EC004E216E40BC005E252 +:100E900016E408C006E216E405C007E216E402C044 +:100EA0000AE216E4C801DF91CF911F910F910895D6 +:100EB00096E0799FF001112494E5899FE00DF11DE2 +:100EC0001124E60FF11DEE0FFF1FEC51FF4F85912E +:100ED0009491803E9105E0F4803C910558F5813372 +:100EE000910509F46FC048F48932910509F463C093 +:100EF0008A32910509F46DC072C089339105E9F019 +:100F000082389105D1F08533910509F44DC067C051 +:100F1000833E910581F138F4803E9105B9F0823E1F +:100F20009105D9F05CC0863E910561F1873E91053F +:100F3000A1F155C00E942B0508952091ED0120FDDF +:100F400002C021FF4CC080EE90E049C08091ED01CD +:100F500080FFF9CF89E390E042C08091ED0182FFEC +:100F60000EC08091ED0184FF03C080E090E037C0A7 +:100F700083EE90E034C08091ED0182FFF2CF82EEEB +:100F800090E02DC08091ED0183FF0BC08091ED01B9 +:100F900084FDEBCF87EE90E022C08091ED0183FFCE +:100FA000F5CF86EE90E01BC08091ED0185FF07C074 +:100FB00089E290E014C08091ED0185FFF9CF85E3CF +:100FC00090E00DC08091ED0186FF07C08AE290E0BD +:100FD00006C08091ED0186FFF9CF81E390E00E9489 +:100FE0003B05089508950C94F207809162010895DD +:100FF000CF93DF9300D01F92CDB7DEB79C018091D5 +:10100000E401843019F593E099833B832A8390931C +:10101000E9008FEF9091E800815095FD06C095EDB5 +:101020009A95F1F700008111F5CF8091E80085FFD6 +:101030000DC040E050E063E070E0CE0101960E94F8 +:10104000620A8091E8008E778093E8000F900F90FD +:101050000F90DF91CF910895CF93DF9300D01F922F +:10106000CDB7DEB72091E401243021F522E02983B9 +:101070009B838A8383E08093E9008FEF9091E8005F +:10108000815095FD06C095ED9A95F1F7000081110C +:10109000F5CF8091E80085FF0DC040E050E063E0AF +:1010A00070E0CE0101960E94620A8091E8008E777E +:1010B0008093E8000F900F900F90DF91CF910895EB +:1010C0002091E4012430F1F422E02093E9002FEF95 +:1010D0003091E800215035FD06C035ED3A95F1F725 +:1010E00000002111F5CF2091E80025FF0BC040E062 +:1010F00050E065E070E00E94620A8091E8008E771F +:101100008093E8000895CF93DF93EC019091E40180 +:10111000943009F046C080910C018823D9F0809169 +:101120000D018823B9F09093E9008FEF9091E800CA +:10113000815095FD06C095E19A95F1F70000811167 +:10114000F5CF8091E80085FF2CC040E050E060E1E1 +:1011500070E017C081E08093E9008FEF9091E80084 +:10116000815095FD06C095ED9A95F1F7000081112B +:10117000F5CF8091E80085FF14C040E050E068E0C2 +:1011800070E0CE010E94620A8091E8008E77809321 +:10119000E80080E1FE01A2E5B1E001900D928A95A0 +:1011A000E1F7DF91CF9108958091E301811109C0AA +:1011B0000E94F70B0E94540C8091E200846080939F +:1011C000E20008951092E301089508950C94FB2124 +:1011D0000E94581B0E9401220E94FA0E0C94F307F1 +:1011E00042E061EC81E00E94710B42E061EC82E040 +:1011F0000E94710B42E061EC83E00E94710B42E1BE +:1012000061EC84E00C94710B8091E601833009F469 +:1012100055C030F4813071F0823009F48EC00895E9 +:101220008A3009F47AC08B3009F460C0893009F043 +:101230009CC020C08091E501813A09F096C0809160 +:10124000E800877F8093E8008091E9019091EA01AE +:10125000892B21F460E182E591E003C060E080E049 +:1012600090E070E00E94AD0A8091E8008B77809357 +:10127000E80008958091E501813209F076C08091FF +:10128000E9019091EA01009719F0039709F06DC008 +:101290008091E800877F8093E8008091E80082FDDC +:1012A00005C08091E4018111F8CF5FC08091F10009 +:1012B000809362018091E8008B7753C08091E501B3 +:1012C000813A09F052C08091E9019091EA01892B9D +:1012D00009F04BC08091E800877F8093E8008091FF +:1012E000E80080FFFCCF80910C0136C08091E501C1 +:1012F0008132D9F58091E9019091EA01892BA9F514 +:101300008091E800877F8093E8000E94A60B80917F +:10131000E70180930C010C948A148091E5018132DD +:1013200021F58091E800877F8093E8000E94A60B5A +:101330008091E8018093630108958091E501813AED +:10134000A1F48091E800877F8093E8008091E80015 +:1013500080FFFCCF809163018093F1008091E800D1 +:101360008E778093E8000C94A60B089584B7877F4E +:1013700084BF88E10FB6F8948093600010926000FB +:101380000FBE90E080E80FB6F894809361009093D0 +:1013900061000FBE0E94490F0E94F70B0E94540C7F +:1013A0008091E20084608093E20078940E94DA0EDB +:1013B0000E944B0F82E091E00E94F50E0E94E9210D +:1013C0008091E401853069F40E94191B8091E2014B +:1013D0008823B1F30E94441B882391F30E944C0A96 +:1013E000EFCF0E94510FECCF292F33272330310547 +:1013F000C9F064F42130310581F02230310509F063 +:1014000043C08DE690E020E133E042C02132310557 +:10141000F1F02232310541F137C082E190E02DE751 +:1014200033E036C099278130910541F08230910533 +:1014300041F0892B49F5ECE0F3E005C0E4EFF2E080 +:1014400002C0ECEDF2E0849190E09F0121C0643095 +:10145000D8F4E62FF0E0EE0FFF1FEE5DFE4F208187 +:10146000318189E090E014C0643070F470E0FB01D9 +:10147000EE0FFF1FE65EFE4F20813181FB01EA5E29 +:10148000FE4F808190E004C080E090E020E030E0FA +:10149000FA0131832083089580E189BD82E189BD0D +:1014A00009B400FEFDCF8091D8008F7D8093D800D5 +:1014B0008091E00082608093E0008091E00081FDF7 +:1014C000FCCF0895CF92DF92EF92FF920F931F937C +:1014D000CF93DF93EC018B016A010E94C50B811150 +:1014E00033C0C114D10439F0F60180819181081B09 +:1014F000190BC80FD91FE12CF12C0115110519F199 +:101500008091E80085FD16C08091E8008E77809379 +:10151000E800C114D10449F0F60180819181E80E00 +:10152000F91EF182E08285E00FC00E94C50B88237E +:1015300021F30AC089918093F10001501109FFEF56 +:10154000EF1AFF0ADACF80E0DF91CF911F910F9160 +:10155000FF90EF90DF90CF9008952091EB013091B4 +:10156000EC012617370748F06115710539F4209111 +:10157000E8002E772093E80001C0B90140E0611532 +:101580007105A9F12091E401222309F443C025301B +:1015900009F442C02091E80023FD40C02091E800FA +:1015A00022FD32C02091E80020FFE9CF4091F300F6 +:1015B0002091F20030E0342BFC01CF016115710560 +:1015C00059F02830310540F481918093F100615049 +:1015D00071092F5F3F4FF1CF41E02830310509F00D +:1015E00040E02091E8002E772093E800C8CF411119 +:1015F000C9CF0AC08091E401882361F0853061F091 +:101600008091E80083FD0AC08091E80082FFF2CF5C +:1016100080E0089582E0089583E0089581E00895D0 +:101620002091EB013091EC012617370748F0611546 +:10163000710539F42091E8002E772093E80001C06D +:10164000B901FC0120E06115710591F18091E4017F +:10165000882309F440C0853009F43FC08091E80038 +:1016600083FD3DC08091E80082FD2FC08091E8009D +:1016700080FFE9CF2091F3008091F20090E0922B5F +:101680006115710559F08830910540F4249120933B +:10169000F1003196615071090196F2CF21E008976F +:1016A00009F020E08091E8008E778093E800CBCFAE +:1016B0002111CCCF0AC08091E401882361F08530EC +:1016C00061F08091E80083FD0AC08091E80082FF0C +:1016D000F2CF80E0089582E0089583E0089581E0EC +:1016E0000895982F973058F59093E900981739F09E +:1016F0007091EC002091ED005091F00003C0242F78 +:10170000762F50E021FF19C03091EB003E7F3093DF +:10171000EB003091ED003D7F3093ED003091EB0018 +:1017200031603093EB007093EC002093ED00509308 +:10173000F0002091EE0027FF07C09F5FD3CF8F708E +:101740008093E90081E0089580E008958091E501AB +:1017500087FF11C08091E80082FD05C08091E401FF +:101760008111F8CF11C08091E8008B770BC0809178 +:10177000E401882349F08091E80080FFF8CF809150 +:10178000E8008E778093E80008952091E40030917E +:10179000E50095E64091EC00842F817040FF22C067 +:1017A0008091E80080FD1CC08091E401882391F0C5 +:1017B000853091F08091EB0085FD10C04091E400F0 +:1017C0005091E5004217530729F39A01915011F700 +:1017D00084E0089582E0089583E0089581E008950B +:1017E00080E008954091E80042FFDECF08950E9416 +:1017F000650C0E946D0CE0EEF0E0808181608083DA +:10180000E8EDF0E080818F77808319BCA7EDB0E030 +:101810008C918E7F8C9380818F7E80831092E301E8 +:1018200008950F931F93CF93DF930E94650C0E943E +:101830006D0CC8EDD0E088818F77888388818068BF +:10184000888388818F7D888319BC1092E40110926F +:10185000E0011092E2011092E10100EE10E0F801C7 +:1018600080818B7F808388818160888342E060E013 +:1018700080E00E94710BE1EEF0E080818E7F80833A +:10188000E2EEF0E0808181608083808188608083E7 +:10189000F80180818E7F8083888180618883DF91D9 +:1018A000CF911F910F910895E8EDF0E080818F7E38 +:1018B0008083E7EDF0E080818160808384E082BFF7 +:1018C00081E08093E3010C94110CE8EDF0E080815D +:1018D0008E7F80831092E20008951092DA001092B9 +:1018E000E10008951F920F920FB60F9211242F93CB +:1018F0003F934F935F936F937F938F939F93AF9398 +:10190000BF93EF93FF938091E10082FF0BC0809122 +:10191000E20082FF07C08091E1008B7F8093E100AD +:101920000E94D90E8091DA0080FF1FC08091D800FC +:1019300080FF1BC08091DA008E7F8093DA00809157 +:10194000D90080FF0DC080E189BD82E189BD09B465 +:1019500000FEFDCF81E08093E4010E94D40805C021 +:1019600019BC1092E4010E94E2088091E10080FF1E +:1019700019C08091E20080FF15C08091E2008E7F47 +:101980008093E2008091E20080618093E200809188 +:10199000D80080628093D80019BC85E08093E40170 +:1019A0000E94E6088091E10084FF30C08091E2004F +:1019B00084FF2CC080E189BD82E189BD09B400FEAD +:1019C000FDCF8091D8008F7D8093D8008091E10079 +:1019D0008F7E8093E1008091E2008F7E8093E20011 +:1019E0008091E20081608093E2008091E001882391 +:1019F00011F084E007C08091E30087FD02C081E020 +:101A000001C083E08093E4010E94E8088091E10036 +:101A100083FF29C08091E20083FF25C08091E1000F +:101A2000877F8093E10082E08093E4011092E001DF +:101A30008091E1008E7F8093E1008091E2008E7FB3 +:101A40008093E2008091E20080618093E20042E0B6 +:101A500060E080E00E94710B8091F00088608093CC +:101A6000F0000E94E508FF91EF91BF91AF919F9127 +:101A70008F917F916F915F914F913F912F910F9037 +:101A80000FBE0F901F9018951F920F920FB60F92D6 +:101A900011242F933F934F935F936F937F938F9373 +:101AA0009F93AF93BF93CF93DF93EF93FF93C09137 +:101AB000E900CF708091EC00D82FD17080FDD0E884 +:101AC0001092E9008091F000877F8093F000789475 +:101AD0000E94880D1092E9008091F0008860809348 +:101AE000F000CD2BCF70C093E900FF91EF91DF9113 +:101AF000CF91BF91AF919F918F917F916F915F91A6 +:101B00004F913F912F910F900FBE0F901F901895FE +:101B10001F93CF93DF93CDB7DEB7AA970FB6F89494 +:101B2000DEBF0FBECDBFE5EEF1E088E08E0F9091F5 +:101B3000F10091938E13FBCF0E9404098091E8007D +:101B400083FF1FC18091E5019091E601492F50E08C +:101B50004A30510508F015C1FA01EA5AFF4F0C94BA +:101B60008323803881F0823809F00BC18091E9012C +:101B70008F708093E9008091EB0085FB882780F9C6 +:101B80001092E90006C08091E1019091E20191116B +:101B900082609091E800977F9093E8008093F10035 +:101BA0001092F100C8C0282F2D7F09F0EAC08823C9 +:101BB00019F0823061F0E5C08091E701813009F0D1 +:101BC000E0C0933009F080E08093E2012BC0809167 +:101BD000E701811127C08091E9018F7009F4D1C01C +:101BE0008093E9002091EB0020FF1CC0933021F48A +:101BF0008091EB00806214C09091EB009061909313 +:101C0000EB0021E030E0A90102C0440F551F8A9586 +:101C1000E2F74093EA001092EA008091EB008860BE +:101C20008093EB001092E9008091E800877F86C0E6 +:101C30008111A7C01091E7011F778091E3008078A0 +:101C4000812B8093E3008091E800877F8093E800F8 +:101C50000E94A60B8091E80080FFFCCF8091E300FA +:101C600080688093E300111102C082E001C083E02C +:101C70008093E40186C08058823008F082C0809151 +:101C8000E7019091E8018C3D53E0950779F583E0F9 +:101C90008A838AE289834FB7F894DE01139620E0A5 +:101CA0003EE051E2E32FF0E050935700E49120FF33 +:101CB00003C0E295EF703F5FEF708E2F90E0EA3047 +:101CC00010F0C79601C0C0968D939D932F5F24316D +:101CD00049F74FBF8091E800877F8093E8006AE270 +:101CE00070E0CE0101960E94AD0A14C0AE014F5FB4 +:101CF0005F4F6091E9010E94F409BC01892B09F44E +:101D000040C09091E800977F9093E80089819A8184 +:101D10000E94100B8091E8008B778093E80031C01F +:101D2000803879F58091E800877F8093E800809182 +:101D3000E0018093F1008091E8008E778093E800C5 +:101D40000E94A60B1EC081111CC09091E701923029 +:101D5000C0F48091E800877F8093E8009093E001D1 +:101D60000E94A60B8091E001811106C08091E300E2 +:101D700087FD02C081E001C084E08093E4010E94FD +:101D8000F0088091E80083FF0AC08091E800877F17 +:101D90008093E8008091EB0080628093EB00AA962C +:101DA0000FB6F894DEBF0FBECDBFDF91CF911F916C +:101DB00008950895CF938091E4018823A1F0C09104 +:101DC000E900CF709091EC00892F817090FD80E840 +:101DD000C82B1092E9008091E80083FD0E94880DD5 +:101DE000CF70C093E900CF910895909369018093DB +:101DF00068010895E0916801F0916901309721F040 +:101E00000190F081E02D099480E00895E09168014F +:101E1000F0916901309721F00280F381E02D09945F +:101E20000895E0916801F0916901309721F00480F4 +:101E3000F581E02D099408952091660130916701A4 +:101E40008217930771F09093670180936601E09188 +:101E50006801F0916901309721F00680F781E02D4B +:101E600009940895209164013091650182179307C8 +:101E700071F09093650180936401E0916801F091A5 +:101E80006901309721F00084F185E02D09940895CF +:101E900008950C94480F0E945E1B0E940B040C9442 +:101EA000241CCF92DF92EF92FF920F931F93CF9358 +:101EB000DF93CDB7DEB72B970FB6F894DEBF0FBE1A +:101EC000CDBF0E9423048BE6C82E81E0D82E00E00F +:101ED00010E0E02E802F0E941105F60141916F0164 +:101EE000F42EF826B1F40F5F1F4F0E30110589F75D +:101EF0008FEF89838A831B820E94671B8160782F02 +:101F00009D838C8349815A816B818D810E94F40F5E +:101F100040C09091CD0191FF04C08B870E941705AE +:101F20008B8520E030E04F2D50E0922FBA01022E39 +:101F300002C0759567950A94E2F760FF24C02E836E +:101F4000EF8221E030E0690102C0CC0CDD1C9A95E3 +:101F5000E2F790E08C219D21892B09F420E028876D +:101F60000E94671B8160782F9A8789874E815F81E5 +:101F700068858A850E94F40FF801E559FE4F80813B +:101F8000C826C08206C02F5F3F4F2630310569F654 +:101F9000AACF0E940B1F10916A010E94FA0E181717 +:101FA000A1F00E94FA0E80936A012B960FB6F89466 +:101FB000DEBF0FBECDBFDF91CF911F910F91FF907C +:101FC000EF90DF90CF900C94F3072B960FB6F89418 +:101FD000DEBF0FBECDBFDF91CF911F910F91FF905C +:101FE000EF90DF90CF900895CF93DF93CDB7DEB71A +:101FF0002B970FB6F894DEBF0FBECDBF4F83588727 +:1020000069877A878B87DE01119686E0FD01119240 +:102010008A95E9F785E0FE01379601900D928A9541 +:10202000E1F749815A816B817C818D819E810E947B +:1020300024172B960FB6F894DEBF0FBECDBFDF91ED +:10204000CF9108950895CF93882309F4C2C0C82F73 +:10205000823859F40E94FA0E81FDBBC089E30E94C8 +:10206000CD190E949A1A89E30CC0833879F40E9432 +:10207000FA0E80FDAEC083E50E94CD190E949A1A27 +:1020800083E50E940F1ACF910C949A1A843859F460 +:102090000E94FA0E82FD9DC087E40E94CD190E9425 +:1020A0009A1A87E4EECF8CEF8C0F813A48F48C2F8C +:1020B0000E944E2181118DC08C2F0E94CD19E3CF3B +:1020C00080E28C0F883048F4C77081E001C0880F2F +:1020D000CA95EAF70E94531AD6CF8BE58C0F83304E +:1020E00078F4C53A29F0C63A31F083E890E005C0AB +:1020F00081E890E002C082E890E0CF910C941C0F40 +:1021000088E58C0F833108F064C0C83A39F1C93AC8 +:1021100041F1CA3A49F1CB3A51F1CC3A59F1CD3AB1 +:1021200061F1C03B69F1CE3A71F1CF3A79F1C13B2F +:1021300081F1C23B89F1C33B91F1C43B99F1C53BAD +:10214000A1F1C63BA9F1C73BB1F1C83BB9F1C93B0D +:10215000C1F1CA3BC9F180E090E038C082EE90E066 +:1021600035C089EE90E032C08AEE90E02FC085EB5A +:1021700090E02CC086EB90E029C087EB90E026C071 +:102180008CEC90E023C08DEC90E020C083E891E0DF +:102190001DC08AE891E01AC082E991E017C084E985 +:1021A00091E014C081E292E011C083E292E00EC09F +:1021B00084E292E00BC085E292E008C086E292E001 +:1021C00005C087E292E002C08AE292E0CF910C94CF +:1021D000320FCF910895882309F44BC0823859F407 +:1021E0000E94FA0E81FF45C089E30E94CD190E942A +:1021F0009A1A89E30CC0833871F40E94FA0E80FFAA +:1022000038C083E50E94CD190E949A1A83E50E9486 +:102210000F1A0C949A1A843859F40E94FA0E82FF0D +:1022200028C087E40E94CD190E949A1A87E4EFCF54 +:102230009CEF980F913A58F390E2980F983050F431 +:10224000877091E001C0990F8A95EAF7892F0E9463 +:10225000591ADFCF9BE5980F933020F480E090E08F +:102260000C941C0F885A833120F480E090E00C9489 +:10227000320F0895882321F00E94531A0C949A1A61 +:102280000895882321F00E94591A0C949A1A0895EF +:10229000BF92CF92DF92EF92FF920F931F93CF9353 +:1022A000DF9300D000D000D0CDB7DEB725E0FC0131 +:1022B000DE01119601900D922A95E1F7FC01D08084 +:1022C00011810281258122952F7043815481452BF4 +:1022D00009F4FCC21F3F21F4FFEFDF1609F4F6C238 +:1022E0007C012E830E942210D9821A8369817A810F +:1022F000802F0E94C919182FB92E0E947E190E94A2 +:1023000045182E81002319F00E94701A2E81EB2DA2 +:10231000E295EF70F0E0E05AFF4F0C9483238B2D91 +:10232000807F9B2D9F70F92E882319F0F29480EF07 +:10233000F822002389F0FF2009F475C280E2810FA2 +:10234000883020F48F2D0E94531A03C08F2D0E94D5 +:10235000631A0E949A1A67C2812F0E94EB10FF2015 +:1023600009F4B4C2105E8F2D183018F40E94591A67 +:1023700002C00E94691A26960FB6F894DEBF0FBEFF +:10238000CDBFDF91CF911F910F91FF90EF90DF9024 +:10239000CF90BF900C949A1A3B2D307F8B2D8F706D +:1023A000303211F08295807F112319F0113021F124 +:1023B0002CC00023B9F0222309F4A0C1213009F078 +:1023C0009DC126960FB6F894DEBF0FBECDBFDF913C +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C94831A222319F0213009F46FC28E83D2 +:1023F0000E94861A8E8196C1002321F0223008F0B7 +:1024000065C27CC1211162C28DC1002321F022234B +:1024100009F474C108C2222309F484C119C22B2D06 +:1024200026952695237030E02115310521F02130C5 +:102430003105D1F04BC2002321F0812F9B2D9370E9 +:1024400002C080E090E026960FB6F894DEBF0FBE83 +:10245000CDBFDF91CF911F910F91FF90EF90DF9053 +:10246000CF90BF900C941C0F002321F0812F9B2D47 +:10247000937002C080E090E026960FB6F894DEBF1D +:102480000FBECDBFDF91CF911F910F91FF90EF90C5 +:10249000DF90CF90BF900C94320F812F002319F062 +:1024A0000E94131E02C00E947B1E26960FB6F8944F +:1024B000DEBF0FBECDBFDF91CF911F910F91FF9077 +:1024C000EF90DF90CF90BF900C94001F8B2D837006 +:1024D00009F07BC00111FAC1812F82958695877022 +:1024E000880F880F912F9F70C92ED12CE12CF12CD1 +:1024F000082E04C0CC0CDD1CEE1CFF1C0A94D2F785 +:1025000014FF12C04FE050E060E070E004C0440FE0 +:10251000551F661F771F8A95D2F7CB01BA016095C8 +:1025200070958095909503C060E070E0CB012B2DF5 +:10253000269526952370422F50E042305105D9F060 +:102540004330510569F16C297D298E299F2941303D +:10255000510551F126960FB6F894DEBF0FBECDBFE0 +:10256000DF91CF911F910F91FF90EF90DF90CF906F +:10257000BF900C946C186C297D298E299F29269672 +:102580000FB6F894DEBF0FBECDBFDF91CF911F9184 +:102590000F91FF90EF90DF90CF90BF900C94881830 +:1025A0000E946C18C701B60126960FB6F894DEBFDC +:1025B0000FBECDBFDF91CF911F910F91FF90EF9094 +:1025C000DF90CF90BF900C945018002319F08B2D02 +:1025D000817001C08695882309F478C1812F829586 +:1025E00086958770880F880F912F9F70C92ED12CE8 +:1025F000E12CF12C082E04C0CC0CDD1CEE1CFF1CC1 +:102600000A94D2F714FF12C04FE050E060E070E08F +:1026100004C0440F551F661F771F8A95D2F7CB0160 +:10262000BA01609570958095909503C060E070E068 +:10263000CB012B2D269526952370422F50E042305A +:102640005105D9F04330510569F16C297D298E2956 +:102650009F294130510551F126960FB6F894DEBFFF +:102660000FBECDBFDF91CF911F910F91FF90EF90E3 +:10267000DF90CF90BF900C9446196C297D298E294C +:102680009F2926960FB6F894DEBF0FBECDBFDF910F +:10269000CF911F910F91FF90EF90DF90CF90BF905F +:1026A0000C9462190E944619C701B60126960FB60E +:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 +:1026C000FF90EF90DF90CF90BF900C942A19103FAD +:1026D000D1F118F4103E50F4A1C0123F09F463C0C8 +:1026E00008F44CC0133F09F473C098C01F708B2DC1 +:1026F0008F710023A1F00E94C318812F26960FB678 +:10270000F894DEBF0FBECDBFDF91CF911F910F9127 +:10271000FF90EF90DF90CF90BF900C943A110E9401 +:10272000E418812F26960FB6F894DEBF0FBECDBFFA +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:10274000BF900C9441110023A9F02111BFC08B2D23 +:102750008F7126960FB6F894DEBF0FBECDBFDF9106 +:10276000CF911F910F91FF90EF90DF90CF90BF908E +:102770000C940919223008F0A9C0E9CF0023A9F070 +:102780008B2D8F7126960FB6F894DEBF0FBECDBF8E +:10279000DF91CF911F910F91FF90EF90DF90CF903D +:1027A000BF900C94C318002359F38B2D8F7126967C +:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152 +:1027C0000F91FF90EF90DF90CF90BF900C94E418A2 +:1027D000002399F08B2D8F7126960FB6F894DEBFEB +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C94AE1826960FB6F89449 +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF90BF900C94A4180023A9F004 +:10282000222309F4ADCF812F26960FB6F894DEBF90 +:102830000FBECDBFDF91CF911F910F91FF90EF9011 +:10284000DF90CF90BF900C942310222309F4ADCFDA +:10285000812F26960FB6F894DEBF0FBECDBFDF9155 +:10286000CF911F910F91FF90EF90DF90CF90BF908D +:102870000C94EB104B2D4F70612FC7010E94AB02DF +:1028800026960FB6F894DEBF0FBECDBFDF91CF9175 +:102890001F910F91FF90EF90DF90CF90BF900C941D +:1028A000C8174B2D4F70612FC70126960FB6F894AD +:1028B000DEBF0FBECDBFDF91CF911F910F91FF9073 +:1028C000EF90DF90CF90BF900C94180526960FB62E +:1028D000F894DEBF0FBECDBFDF91CF911F910F9156 +:1028E000FF90EF90DF90CF90BF9008950E94701AF4 +:1028F0000E94801A0E94451A0E949A1A0E94B11FD3 +:102900000E94001F80E090E00E941C0F80E090E099 +:102910000C94320F0E94601A0C9476140E94BE1917 +:10292000292F22952F7030E02C3031054CF42A30BD +:1029300031056CF4225031092230310588F407C08A +:102940002C30310549F02F30310531F009C0803E7F +:1029500048F0803F29F406C093FB882780F908954A +:1029600080E0089581E00895CF93DF9300D000D0F8 +:102970001F92CDB7DEB70F900F900F900F900F9072 +:10298000DF91CF910895CF93DF9300D000D000D096 +:10299000CDB7DEB726960FB6F894DEBF0FBECDBF1B +:1029A000DF91CF9108951F93CF93DF93C091790169 +:1029B00016E080917A01C81799F0D0E01C9FF001D1 +:1029C0001D9FF00D1124E558FE4F40815181628119 +:1029D0007381848195810E94C3142196C770E9CFC9 +:1029E000DF91CF911F9108954091AB015091AC01BF +:1029F0006091AD017091AE018091AF019091B001F5 +:102A00000C94C3148091B00182958F7009F054C06A +:102A10008091AD01882309F44FC080917901A09184 +:102A20007A016091AB017091AC014091AE0150917F +:102A3000AF01B6E08A1709F43FC090E04115510597 +:102A4000C1F17F3F11F46F3FA1F1B89FF001B99F31 +:102A5000F00D1124E558FE4F218172132AC0208108 +:102A6000621327C02281211124C0238134812417BD +:102A7000350710F421503109241B350B283C310552 +:102A8000C0F42091B0012F7020612093B00126E0A6 +:102A9000289FF001299FF00D1124E058FE4F8081FE +:102AA0008F70806180838BEA91E00E9448110C94C2 +:102AB000D31401968770BECF0895CF92DF92EF9224 +:102AC000FF920F931F93CF93DF93CDB7DEB762973B +:102AD0000FB6F894DEBF0FBECDBF8C0185E0F801C4 +:102AE000DE011D9601900D928A95E1F7D8014C9177 +:102AF00011965C91119712966C9112971396CD9046 +:102B0000DC9014973091AB017091AC018091AE01D3 +:102B10009091AF01009709F46BC17F3F19F43F3FDB +:102B200009F466C1E090AD01EE2009F4C0C0209127 +:102B3000B001C816D90628F0F601E81BF90BCF0141 +:102B400004C0809590958C0D9D1DFF24F394883CC6 +:102B5000910578F0F12C207F09F0C6C07C2DD98A30 +:102B6000C88A89890E94B4148BEA91E00E944811B6 +:102B7000B1C0822F807F09F046C0751314C0341392 +:102B800012C0611110C02F7020612093B0010E940B +:102B9000F4148BEA91E00E9448118091B001D801B1 +:102BA00015968C932EC0CD2819F15F3F11F44F3F3D +:102BB000F9F0F62E61111CC08091790120917A0103 +:102BC00036E0821709F45AC090E0389FF001399F2F +:102BD000F00D1124E558FE4F7181571306C0708126 +:102BE000471303C07281711103C001968770E9CF4A +:102BF000F62E662309F418C18091B001816080939C +:102C0000B001F12C11C1751308C0341306C0611155 +:102C100004C08091B001D801C3C04D875E878D8507 +:102C20009E856A8B0E948E146A898823E1F166234F +:102C3000D1F12091B001822F82958F7090E00297A0 +:102C400074F08091AB019091AC0198878F831986C5 +:102C5000DB86CA862C87CE0107960E94481186E043 +:102C6000F801ABEAB1E001900D928A95E1F70E947C +:102C700002150E94F414FF24F394D6C04D875E879A +:102C80008D859E850E94BE19292F22952F7030E0D8 +:102C9000223031050CF0BCC09F7009F0B6C0805ED8 +:102CA000883008F4C1C0C8010E944811E4CFC8169A +:102CB000D90608F453C0F601E81BF90BCF01883C94 +:102CC000910508F450C0F12C7C2DD98AC88A8989D5 +:102CD0000E94B414EBEAF1E086E0DF011D928A95D0 +:102CE000E9F70E94F414A0C0751314C0341312C085 +:102CF000611110C08091B001F8018583C8010E9464 +:102D0000481186E0EBEAF1E0DF011D928A95E9F7D0 +:102D1000FE2C8AC04D875E878D859E856A8B0E94BA +:102D20008E146A89882309F4BECF662309F4BBCFC9 +:102D30002091B001822F82958F7090E002970CF461 +:102D40008ECF8091AB019091AC019A8389831B82D5 +:102D5000DD82CC822E83CE0101967FCF8095909527 +:102D60008C0D9D1DACCFF62E662309F49CCF7513F8 +:102D70002EC034132CC02091B00120FD1FC0822F23 +:102D800082958F70D9F0D80115962C9315978F30B6 +:102D900049F08F5F982F9295907F822F8F70892BAB +:102DA00015968C93C8010E94481186E0F801ABEAA1 +:102DB000B1E001900D928A95E1F793CF86E0F8019A +:102DC000ABEAB1E001900D928A95E1F72DC04D87F5 +:102DD0005E878D859E850E948E14811140CF8091E3 +:102DE000B00181608093B001C8010E9448111CC0ED +:102DF000662309F458CF4D875E878D859E850E9496 +:102E00008E14882309F44FCF2ACF811148CF0CC0EC +:102E1000243031050CF047CF9F7009F440CFF80102 +:102E20009581907F09F03BCF8F2D62960FB6F89475 +:102E3000DEBF0FBECDBFDF91CF911F910F91FF90ED +:102E4000EF90DF90CF9008951F93CF93DF93CDB78E +:102E5000DEB72C970FB6F894DEBF0FBECDBF4F8301 +:102E6000588769877A878B879C87CE0107960E944F +:102E70005D15882369F08F8198852A853B85232BF2 +:102E8000F1F19F3F09F063C08F3F09F060C037C088 +:102E900086E0FE013796DE01119601900D928A952B +:102EA000E1F76F817885EA85FB85309741F17F3FB7 +:102EB00011F46F3F21F120917A0130E0C9010196B0 +:102EC000877099274091790150E08417950709F49C +:102ED00047C069837A83FD83EC8396E0929FD0019B +:102EE000939FB00D1124A558BE4FFE01319601905D +:102EF0000D929A95E1F780937A010E94D31416E01F +:102F00008091790190917A018917C1F1189FC001D0 +:102F1000112485589E4F0E945D15882379F1E09118 +:102F200079011E9FF0011124E558FE4F4081518127 +:102F300062817381848195810E94C314809179019B +:102F400090E001968770992780937901D9CF4F81BE +:102F5000588569857A858B859C850E94C314CFCF5F +:102F60000E948A1410927A0110927901EBEAF1E042 +:102F700086E0DF011D928A95E9F7C1CF2C960FB646 +:102F8000F894DEBF0FBECDBFDF91CF911F910895A2 +:102F9000EF92FF920F931F93CF93DF938C01892BB6 +:102FA00009F46CC0F12CEE24E394E8012196F801B9 +:102FB0008491843740F4843008F051C0813081F02E +:102FC000823019F15BC0853709F444C0A8F19CE751 +:102FD000980F903708F052C08F770E94EB1041C0D5 +:102FE0000E5F1F4FFE01C49180E28C0F883048F4C1 +:102FF000C7708E2D01C0880FCA95EAF70E94731A18 +:1030000014C08C2F0E9423102DC00E5F1F4FFE0195 +:10301000C49180E28C0F883058F4C7708E2D01C0A7 +:10302000880FCA95EAF70E94791A0E949A1A1AC064 +:103030008C2F0E94EB1016C00E5F1F4FFE01C49133 +:10304000CC2381F08FE99FE00197F1F700C00000E9 +:10305000C150F6CF0E5F1F4FFE01F49003C00E94D7 +:1030600023108E018F2D882309F49FCFEFE9FFE015 +:103070003197F1F700C000008150F5CFDF91CF917B +:103080001F910F91FF90EF90089508956093B501FF +:103090007093B6018093B7019093B8010C947614A5 +:1030A0000F931F930091B5011091B6012091B701C4 +:1030B0003091B801DC01CB01802B912BA22BB32BDB +:1030C0008093B5019093B601A093B701B093B80176 +:1030D0001F910F910C9476140F931F930091B501DB +:1030E0001091B6012091B7013091B801DC01CB01FC +:1030F00080239123A223B3238093B5019093B6013B +:10310000A093B701B093B8011F910F910C9476145E +:103110000F931F930091B5011091B6012091B70153 +:103120003091B801DC01CB0180279127A227B3277A +:103130008093B5019093B601A093B701B093B80105 +:103140001F910F910C9476141092B1011092B2015C +:103150001092B3011092B4010C94761441E050E047 +:1031600060E070E004C0440F551F661F771F8A950A +:10317000D2F74093B1015093B2016093B3017093C1 +:10318000B4010C94761441E050E060E070E004C0BB +:10319000440F551F661F771F8A95D2F78091B101A2 +:1031A0009091B201A091B301B091B401482B592B79 +:1031B0006A2B7B2B4093B1015093B2016093B30112 +:1031C0007093B4010C94761441E050E060E070E03C +:1031D00004C0440F551F661F771F8A95D2F740958C +:1031E0005095609570958091B1019091B201A09138 +:1031F000B301B091B401482359236A237B23409340 +:10320000B1015093B2016093B3017093B4010C9477 +:10321000761441E050E060E070E004C0440F551FB8 +:10322000661F771F8A95D2F78091B1019091B20104 +:10323000A091B301B091B401482759276A277B2791 +:103240004093B1015093B2016093B3017093B40104 +:103250000C9476140F931F930091B1011091B20159 +:103260002091B3013091B401DC01CB01802B912B73 +:10327000A22BB32B8093B1019093B201A093B30121 +:10328000B093B4011F910F910C9476140F931F9378 +:103290000091B1011091B2012091B3013091B401BC +:1032A000DC01CB0180239123A223B3238093B101BE +:1032B0009093B201A093B301B093B4011F910F9109 +:1032C0000C9476140F931F930091B1011091B201E9 +:1032D0002091B3013091B401DC01CB01802791270B +:1032E000A227B3278093B1019093B201A093B301B9 +:1032F000B093B4011F910F910C9476140895CF925E +:10330000DF92EF92FF920F931F93CF93DF938C0185 +:10331000C090B501D090B601E090B701F090B8012F +:103320008091B1019091B201A091B301B091B4012B +:10333000C82AD92AEA2AFB2ACFE1D0E0D701C60160 +:103340000C2E04C0B695A795979587950A94D2F749 +:1033500080FF06C0B8018C2F0E945807019721F406 +:10336000219760F780E001C08C2FDF91CF911F91F2 +:103370000F91FF90EF90DF90CF900895CF93DF9360 +:10338000EC010E947F19BE010E945807DF91CF9186 +:103390000895CB010E94BE19089590910C019923C4 +:1033A00021F090910D01911109C020910E013091F1 +:1033B0000F01F90132969FEF40E01FC0982F9695BC +:1033C000969596959F3050F5E0910E01F0910F0182 +:1033D000E90FF11D877021E030E0A90102C0440F20 +:1033E000551F8A95E2F7CA019181892B818308953F +:1033F0009F3F39F04F5F4E3041F051915813F8CF55 +:103400000DC05111F7CF942FF5CF9F3F39F0F9013F +:10341000E90FF11D97FDFA95828308950895909123 +:103420000C01992321F090910D01911109C0209177 +:103430000E0130910F01F9013296205F3F4F1FC0FE +:10344000982F9695969596959F30F0F4E0910E0101 +:10345000F0910F01E90FF11D877021E030E0A90123 +:1034600002C0440F551F8A95E2F7CA0180959181E9 +:103470008923818308953196E217F30729F090811B +:103480009813F9CF1082F7CF089581E090E0E09192 +:103490000E01F0910F01E80FF91F108201968031A3 +:1034A0009105A9F708959091CC01892B8093CC01C7 +:1034B000089580959091CC0189238093CC01089543 +:1034C0001092CC0108959091CB01892B8093CB0170 +:1034D000089580959091CB0189238093CB01089525 +:1034E0001092CB0108959091CA01892B8093CA0153 +:1034F000089580959091CA0189238093CA01089507 +:103500001092CA0108958093B90108951092B901EB +:10351000089580910E0190910F01FC0131969C015C +:10352000205F3F4F80E0919191118F5FE217F30789 +:10353000D1F70895E0910E01F0910F018091CC0137 +:103540008083E0910E01F0910F0190818091CB0179 +:10355000892B8083E0910E01F0910F019081809181 +:10356000CA01892B80838091B901882361F0E091A1 +:103570000E01F0910F019081892B80830E94891A9E +:1035800081111092B90180910E0190910F010C945C +:10359000060FCF92DF92EF92FF926C01EE24FF2490 +:1035A000C114D104E104F10421F0C701B60120E106 +:1035B00001C020E0C72ED82EE92EFF24C114D1046B +:1035C000E104F10419F0285FC701B6016B017C0129 +:1035D00054E0F694E794D794C7945A95D1F7C11460 +:1035E000D104E104F10419F02C5FC701B6016B01AD +:1035F0007C0142E0F694E794D794C7944A95D1F7BA +:10360000C114D104E104F10419F02E5FC701B60121 +:10361000DC01CB01B695A79597958795892B8A2BC9 +:103620008B2B09F02F5F822FFF90EF90DF90CF90D0 +:1036300008958091E401843021F11092CE0120E4BC +:1036400088E190E00FB6F894A895809360000FBED3 +:103650002093600080E00E94F30783B7817F84603D +:1036600083BF83B7816083BF7894889583B78E7F4B +:1036700083BF88E10FB6F8948093600010926000D9 +:103680000FBE089508950895CF930E94421B0E9493 +:1036900023040E94431BC0E08C2F0E94110581115E +:1036A00004C0CF5FCE30C1F701C081E0CF91089553 +:1036B0000E948A140E94FA0E0C94F30782E084BDE3 +:1036C00093E095BD9AEF97BD80936E0008952FB754 +:1036D000F8948091CF019091D001A091D101B09147 +:1036E000D2012FBF0895CF92DF92EF92FF920F93F6 +:1036F0001F932FB7F8944091CF015091D001609162 +:10370000D1017091D2012FBF6A017B01EE24FF2409 +:103710008C0120E030E0C016D106E206F30610F47A +:10372000415051099A01281B390BC9011F910F9172 +:10373000FF90EF90DF90CF9008951F920F920FB6F9 +:103740000F9211248F939F93AF93BF938091CF01DA +:103750009091D001A091D101B091D2010196A11D0B +:10376000B11D8093CF019093D001A093D101B0936C +:10377000D201BF91AF919F918F910F900FBE0F908B +:103780001F9018950E94F70BF8942FEF87EA91E6A7 +:10379000215080409040E1F700C0000087E090EBAE +:1037A000DC018093EE019093EF01A093F001B093C0 +:1037B000F1019CE088E10FB6F894A8958093600031 +:1037C0000FBE90936000FFCFEF92FF920F931F9375 +:1037D000CF93DF93D82FC0E08C2F0E94110500E01B +:1037E00010E0E82EF12CC701002E02C095958795B8 +:1037F0000A94E2F780FD06C00F5F1F4F06301105E7 +:1038000091F709C0602F7C2F80E00E941905D81322 +:10381000F3CF81E004C0CF5FCE30F1F680E0DF91DE +:10382000CF911F910F91FF90EF900895CF93C82FE4 +:103830008CE20E94E41B882321F08C2FCF910C9402 +:10384000E41B80E0CF910895CF930E946B1D8111FE +:1038500002C00E94511DC5E6C15049F00E942304D8 +:103860008FE39CE90197F1F700C00000F5CF89E2F2 +:103870000E94161C811113C18AE20E94161C81113C +:103880000E94511D85E00E94161C81110E94C21BDE +:103890000E94761D8093CD0187E00E94161C88232C +:1038A000A9F18BE10E94161C882351F08091CD0173 +:1038B00081FB222720F991E0922790FB81F90EC02D +:1038C0008EE00E94161C882361F08091CD0182FB5E +:1038D000222720F991E0922790FB82F98093CD0175 +:1038E00015C080E10E94161C9091CD01882341F003 +:1038F00093FB222720F981E0822780FB93F904C003 +:10390000892F809580FB90F99093CD018091CD0116 +:103910000E947A1D0E94881D8093ED0180EE0E9416 +:10392000161C882341F08091ED01982F909590FB13 +:1039300080F98093ED0189E30E94161C882359F0D9 +:103940008091ED0181FB222720F991E0922790FBE5 +:1039500081F98093ED0182EE0E94161C882359F0B4 +:103960008091ED0182FB222720F991E0922790FBC4 +:1039700082F98093ED0186EE0E94161C882359F08F +:103980008091ED0183FB222720F991E0922790FBA3 +:1039900083F98093ED0183EE0E94161C882359F071 +:1039A0008091ED0184FB222720F991E0922790FB82 +:1039B00084F98093ED0185E30E94161C882359F059 +:1039C0008091ED0185FB222720F991E0922790FB61 +:1039D00085F98093ED0181E30E94161C882359F03C +:1039E0008091ED0186FB222720F991E0922790FB40 +:1039F00086F98093ED0181E10E94161C882359F01D +:103A00008091ED0187FB222720F991E0922790FB1E +:103A100087F98093ED018091ED010E948C1D8091CA +:103A2000ED0187FB882780F980930D0187E20E94D2 +:103A3000161CC82F8EE10E94161C8111C2608FE1F6 +:103A40000E94161C8111C46080E20E94161C811124 +:103A5000C86081E20E94161C8111C06182E20E944E +:103A6000161C8111C06283E20E94161C8111C06481 +:103A700084E20E94161C882311F0C06802C0CC2387 +:103A800029F08C2F0E94831D6C2F03C00E947F1D84 +:103A9000682F70E080E090E0CF910C944618CF91B1 +:103AA00008956DEE7EEF80E090E00E94BD2360E01F +:103AB00082E090E00E94AB2360E083E090E00E940F +:103AC000AB2360E084E090E00E94AB2360E085E0FF +:103AD00090E00C94AB2380E090E00E94A52321E0CD +:103AE0008D3E9E4F09F020E0822F089582E090E005 +:103AF0000C949D23682F82E090E00C94AB2383E02C +:103B000090E00C949D23682F83E090E00C94AB230D +:103B100084E090E00C949D23682F84E090E00C9466 +:103B2000AB238091D50180FF0BC06091130185E02C +:103B3000689FB001112475956795759567952BC0A1 +:103B400081FF09C06091130185E0689FB0011124D5 +:103B50007595679520C082FF07C06091130185E0CD +:103B6000689FB001112417C09091D6019923D1F01C +:103B700060911201961788F72091130185E0289F24 +:103B800090011124929FA001939F500D112470E089 +:103B9000CA010E946F236038710540F461157105F8 +:103BA00039F002C065E070E0862F08958FE7089530 +:103BB00081E008958091D50180FF08C060911101D6 +:103BC00070E0759567957595679521C081FF06C072 +:103BD0006091110170E07595679519C082FF04C06E +:103BE0006091110170E010C09091D6019923C1F04D +:103BF000609110019617A0F780911101899FC00173 +:103C0000112470E00E946F236038710528F461155B +:103C1000710521F0862F08958FE7089581E00895BA +:103C200061E070E0F4CF803F21F40E94911D819506 +:103C300004C0813F29F40E94911D8093D901089509 +:103C4000823F21F40E94911D819504C0833F29F495 +:103C50000E94911D8093D8010895893F19F40E9414 +:103C6000DA1D05C08A3F31F40E94DA1D81958093E8 +:103C7000DA0108958B3F21F40E94DA1D819504C07A +:103C80008C3F29F40E94DA1D8093DB010895843F64 +:103C900021F48091D701816017C0853F21F4809184 +:103CA000D701826011C0863F21F48091D7018460E2 +:103CB0000BC0873F21F48091D701886005C0883F01 +:103CC00031F48091D70180618093D70108958D3FB1 +:103CD00021F48091D50181600BC08E3F21F4809149 +:103CE000D501826005C08F3F29F48091D5018460A1 +:103CF0008093D5010895803F39F48091D90187FFE1 +:103D00006CC01092D90169C0813F29F48091D9011A +:103D10001816BCF362C09091D801823F29F497FF36 +:103D20005CC01092D80159C0833F19F41916CCF326 +:103D300054C0893F41F48091DA0118160CF04DC04F +:103D40001092DA014AC08A3F29F48091DA0187FF94 +:103D500044C0F6CF8B3F39F48091DB0187FF3DC033 +:103D60001092DB013AC08C3F29F48091DB011816D8 +:103D7000BCF333C0843F21F48091D7018E7F17C0FC +:103D8000853F21F48091D7018D7F11C0863F21F4BA +:103D90008091D7018B7F0BC0873F21F48091D701A1 +:103DA000877F05C0883F31F48091D7018F7E809353 +:103DB000D70113C08D3F21F48091D5018E7F0BC0B8 +:103DC0008E3F21F48091D5018D7F05C08F3F29F46E +:103DD0008091D5018B7F8093D5018091D80181118D +:103DE0000EC08091D90181110AC08091DA01811140 +:103DF00006C08091DB01811102C01092D6010895A6 +:103E000087ED91E00E94110F0E94671B9093D401EF +:103E10008093D30108951F93CF93DF938091D301B3 +:103E20009091D4010E94731BAC019091D60199230B +:103E300021F02091140130E006C0209115018AE0A4 +:103E4000289F900111244217530708F486C08091DF +:103E5000D801C091D901D091DA011091DB01811113 +:103E600007C0C11176C0D11174C0111172C075C0E4 +:103E70009F3F19F09F5F9093D601181624F40E947B +:103E8000911D8093D8018091D80187FF05C00E94C1 +:103E9000911D81958093D8011C1624F40E94911DD8 +:103EA0008093D9018091D90187FF05C00E94911D9F +:103EB00081958093D9016091D801662339F1C09131 +:103EC000D901CC2319F1772767FD7095872F972F9C +:103ED0000E94802223E333E343E35FE30E94E42272 +:103EE0000E944D226093D8016C2F772767FD709553 +:103EF000872F972F0E94802223E333E343E35FE37E +:103F00000E94E4220E944D226093D9011D1624F4E0 +:103F10000E94DA1D8093DA018091DA0187FF05C0E3 +:103F20000E94DA1D81958093DA01111624F40E9413 +:103F3000DA1D8093DB018091DB0187FF05C00E94C1 +:103F4000DA1D81958093DB01DF91CF911F910C9455 +:103F5000001F9F3F09F08ECF96CFDF91CF911F9129 +:103F60000895E7EDF1E085E0DF011D928A95E9F71C +:103F70001092D6011092D5010895833081F128F472 +:103F8000813059F08230D1F00895853009F449C06C +:103F9000B8F1863009F456C0089580911501262F96 +:103FA00030E0280F311D2F3F310524F4680F609356 +:103FB000150108958FEF80931501089580911401E4 +:103FC000262F30E0280F311D2F3F310524F4680FD4 +:103FD0006093140108958FEF8093140108958091E8 +:103FE0001301262F30E0280F311D2F3F310524F417 +:103FF000680F6093130108958FEF80931301089564 +:1040000080911201262F30E0280F311D2F3F3105FE +:1040100024F4680F6093120108958FEF80931201CA +:10402000089580911101262F30E0280F311D2F3F78 +:10403000310524F4680F6093110108958FEF809388 +:104040001101089580911001262F30E0280F311DB5 +:104050002F3F310524F4680F6093100108958FEF0E +:10406000809310010895833011F128F4813049F0D4 +:10407000823091F00895853081F120F18630C1F1D0 +:10408000089580911501681720F4861B809315010F +:10409000089510921501089580911401681720F475 +:1040A000861B809314010895109214010895809145 +:1040B0001301681720F4861B809313010895109252 +:1040C0001301089580911201681720F4861B8093D4 +:1040D000120108951092120108958091110168173C +:1040E00020F4861B80931101089510921101089508 +:1040F00080911001681720F4861B809310010895A9 +:104100001092100108950F931F938D3109F46BC025 +:1041100008F03FC08E3009F47FC0C0F4873009F446 +:1041200069C068F4863009F0B1C08091CD01817F0B +:104130008E7F8093CD0181E08093DD01A8C088301F +:1041400009F4A2C08B3009F49FC0A0C0863109F4E5 +:104150009BC078F4803109F472C0813109F096C0B7 +:104160000E948A1490910D0181E0892780930D01AE +:104170008BC0893109F488C08B3109F087C08091E8 +:10418000CD0181FB222720F991E0922790FB81F954 +:104190004CC0853309F470C048F4873209F46CC010 +:1041A00008F459C0893209F467C070C0833438F408 +:1041B0008A3308F04EC0883309F466C067C0833480 +:1041C00009F45AC0883409F061C00E948A140FEFC4 +:1041D00013ED20E3015010402040E1F700C0000043 +:1041E0000E94C21B51C00E9407220E94FA0E0E9428 +:1041F000F3074AC09091CD01892F8095817080FB93 +:1042000090F929F0966098609093CD0140C0997F15 +:10421000977F9093CD0138C08091CD0182FB2227FA +:1042200020F991E0922790FB82F98093CD019923A8 +:1042300059F18091CD0181608093CD0125C080919D +:10424000CD0183FB222720F991E0922790FB83F98F +:10425000ECCF895301C08D5141E050E060E070E047 +:104260008A019B0104C0000F111F221F331F8A9572 +:10427000D2F7C901B80104C061E070E080E090E0CD +:104280000E9446180E948A1481E001C080E01F91BC +:104290000F91089580E0089580E00895CF93C82F8E +:1042A0008091DD01813079F018F08230E9F187C02A +:1042B000E0910E01F0910F018081813169F082322D +:1042C00009F07FC009C0E0910E01F0910F018081DB +:1042D000813111F0823261F48C2F0E944A218111C8 +:1042E00004C08C2F0E9483201DC081E090E01AC082 +:1042F0008C2F0E944C21811114C0C43179F048F4F4 +:10430000CB3079F0C03109F060C082E08093DD01EC +:1043100008C0C93219F0C83321F057C01092DD012E +:1043200054C081E0817053C0C93289F118F5C4319D +:1043300071F1A8F4C73009F046C08AE080931501F6 +:1043400094E19093140193E09093130180931201F0 +:1043500088E08093110188E28093100134C0CE512F +:10436000C63088F5EC2FF0E0E65DFE4F808180934B +:10437000DC0129C0CE34E9F020F4CB3421F56AE029 +:1043800013C0C13579F0C235F1F461E00DC0809100 +:10439000DC01882319F01092DC0115C081E08093C4 +:1043A000DD0115C061E006C08091DC010E94BD1FE7 +:1043B0000AC06AE08091DC010E94332004C01092A0 +:1043C000DD0180E004C081E002C080E0ABCFCF918E +:1043D0000895E1E8F0E080818860808380818160D9 +:1043E00080838FB7F89493E09093890090ED909339 +:1043F00088008FBF0895EFE6F0E0808182608083BF +:104400000895EFE6F0E080818D7F80830895EFE6E8 +:10441000F0E0908182E08927808308951F920F92B7 +:104420000FB60F9211242F933F934F935F936F9387 +:104430007F938F939F93AF93BF93EF93FF9380915D +:10444000DE019091DF0101969093DF018093DE0100 +:10445000811103C082E00E94F307E091DF01E6953D +:10446000E695F0E0E657FB4FE4918091DE018E1374 +:1044700003C080E00E94F307FF91EF91BF91AF91DD +:104480009F918F917F916F915F914F913F912F916C +:104490000F900FBE0F901F90189504D06894B11123 +:1044A0008DC0089570D088F09F5790F0B92F99274C +:1044B000B751A0F0D1F0660F771F881F991F1AF02F +:1044C000BA95C9F712C0B13081F077D0B1E0089544 +:1044D00074C0672F782F8827B85F39F0B93FCCF3C5 +:1044E000869577956795B395D9F73EF49095809525 +:1044F000709561957F4F8F4F9F4F0895E89409C045 +:1045000097FB3EF490958095709561957F4F8F4F06 +:104510009F4F9923A9F0F92F96E9BB279395F6951C +:10452000879577956795B795F111F8CFFAF4BB0F9A +:1045300011F460FF1BC06F5F7F4F8F4F9F4F16C0FE +:10454000882311F096E911C0772321F09EE8872F88 +:10455000762F05C0662371F096E8862F70E060E044 +:104560002AF09A95660F771F881FDAF7880F9695BD +:10457000879597F9089557FD9058440F551F59F0A6 +:104580005F3F71F04795880F97FB991F61F09F3F40 +:1045900079F087950895121613061406551FF2CF69 +:1045A0004695F1DF08C0161617061806991FF1CFB9 +:1045B00086957105610508940895E894BB276627E0 +:1045C0007727CB0197F908950BD078C069D028F0F0 +:1045D0006ED018F0952309F05AC05FC01124EECFB9 +:1045E000CADFA0F3959FD1F3950F50E0551F629F4E +:1045F000F001729FBB27F00DB11D639FAA27F00D3C +:10460000B11DAA1F649F6627B00DA11D661F829F62 +:104610002227B00DA11D621F739FB00DA11D621F47 +:10462000839FA00D611D221F749F3327A00D611D64 +:10463000231F849F600D211D822F762F6A2F112446 +:104640009F5750408AF0E1F088234AF0EE0FFF1F99 +:10465000BB1F661F771F881F91505040A9F79E3FD0 +:10466000510570F014C0AACF5F3FECF3983EDCF325 +:10467000869577956795B795F795E7959F5FC1F70D +:10468000FE2B880F911D9695879597F9089597F9B8 +:104690009F6780E870E060E008959FEF80EC0895E8 +:1046A00000240A9416161706180609060895002411 +:1046B0000A9412161306140605060895092E03948B +:1046C000000C11F4882352F0BB0F40F4BF2B11F4FF +:1046D00060FF04C06F5F7F4F8F4F9F4F089597FB20 +:1046E000072E16F4009407D077FD09D00E94892385 +:1046F00007FC05D03EF4909581959F4F08957095E5 +:1047000061957F4F0895EE0FFF1F0590F491E02D06 +:104710000994AA1BBB1B51E107C0AA1FBB1FA61708 +:10472000B70710F0A61BB70B881F991F5A95A9F75A +:1047300080959095BC01CD010895F999FECF92BD69 +:1047400081BDF89A992780B50895A8E1B0E042E0CC +:1047500050E00C94C523262FF999FECF92BD81BD60 +:10476000F89A019700B4021639F01FBA20BD0FB6AF +:10477000F894FA9AF99A0FBE08950196272F0E948D +:10478000AC230C94AB23DC01CB01FC01F999FECFE7 +:1047900006C0F2BDE1BDF89A319600B40D924150C9 +:0A47A0005040B8F70895F894FFCFD9 +:1047AA002002F507830860082C08F8070101BA01FE +:1047BA0028080A03140A3F4D36394B04FE03C8037E +:1047CA008F0322033B0354036D030102030405060E +:0447DA0007080900C3 +:00000001FF -- cgit v1.2.3 From 9b163d2feb332107794a0f6e3573afe92c40b7fe Mon Sep 17 00:00:00 2001 From: Nathan Sharfi Date: Sun, 1 May 2016 13:55:00 -0700 Subject: zweihander: Add ⌘`, ⌘⇧`, ⌥⇥, ⌥⇧⇥ --- keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c | 14 +++++++------- keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown | 5 +++++ .../ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex | 8 ++++---- 3 files changed, 16 insertions(+), 11 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c index cc94e1333..f53232c3c 100644 --- a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c @@ -95,9 +95,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 2: Media keys * dim brighten * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | F14 | | F15 | | | | | | Power | + * | | | | | | | F14 | | F15 | ⌘W | ⌘⇧` | ⌘` | ⌥⇧⇥ | ⌥⇥ | Power | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | Home | PgDn | End | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand - KC_F15 , KC_TRNS, KC_TRNS, KC_TRNS, 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_F15 , LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), LALT(LSFT(KC_TAB)), LALT(KC_TAB), 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, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown index 8103c6b32..7bce7c690 100644 --- a/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/readme.markdown @@ -1,5 +1,7 @@ # 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… @@ -12,10 +14,13 @@ This layout doesn’t make any concessions for Windows use. While it should work 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) diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex index 9b783c957..3e313c372 100644 --- a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex @@ -39,10 +39,10 @@ :1002600001000100010001004D000100010001003A :10027000010001000100010000000100690001000F :1002800000000100000001006A0001000000010000 -:1002900000000100010030082F082C0200000100BE -:1002A0000100520C50002C00A90001000100520076 -:1002B0005100AC00AA0001000100510C4F00AB003E -:1002C000A80001000100010001000100010001007F +:10029000000001001A0830082F082C02000001009D +:1002A000350A520C50002C00A900010035085200FC +:1002B0005100AC00AA0001002B06510C4F00AB000E +:1002C000A80001002B040100010001000100010051 :1002D000A5000100AE00010001000000160345006A :1002E000720067006F0044006F0078002000450036 :1002F0005A00000016034500720067006F004400BA -- cgit v1.2.3 From fe022a508fdd39696e3b2b188df27d60b32f0d63 Mon Sep 17 00:00:00 2001 From: Nathan Sharfi Date: Sun, 1 May 2016 15:12:38 -0700 Subject: zweihander: move dim/brighten to 1/2, add ⌘Q --- keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c | 16 ++++++++-------- .../ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c index f53232c3c..d019b731f 100644 --- a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c @@ -93,9 +93,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END , KC_TRNS, KC_TRNS ), /* Keymap 2: Media keys - * dim brighten + * * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | F14 | | F15 | ⌘W | ⌘⇧` | ⌘` | ⌥⇧⇥ | ⌥⇥ | Power | + * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | ⌥⇧⇥ | ⌥⇥ | Power | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | | | | PgUp | | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ // MEDIA AND MOUSE [MDIA] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, /* F14 dims screen, F15 brightens */ + 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -124,11 +124,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand - KC_F15 , LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), LALT(LSFT(KC_TAB)), LALT(KC_TAB), 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, + LGUI(KC_Q), LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), LALT(LSFT(KC_TAB)), LALT(KC_TAB), 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, KC_TRNS, KC_TRNS, KC_TRNS diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex index 3e313c372..b76c3ec8e 100644 --- a/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex +++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/zweihander-osx.hex @@ -34,11 +34,11 @@ :100210004200260023002000500001004300250278 :100220002E022E004F004D00440045000100010049 :1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 +:100240006900010001000100010001006A000100D5 :100250004A0001000100010001004B004E000100B6 :1002600001000100010001004D000100010001003A -:10027000010001000100010000000100690001000F -:1002800000000100000001006A0001000000010000 +:100270000100010001000100000001000100010077 +:10028000000001000000010014080100000001004E :10029000000001001A0830082F082C02000001009D :1002A000350A520C50002C00A900010035085200FC :1002B0005100AC00AA0001002B06510C4F00AB000E -- cgit v1.2.3 From 1173dbd02f5a235e6d1542e875cc1d9ed43a2e8d Mon Sep 17 00:00:00 2001 From: James ‘Twey’ Kay Date: Mon, 2 May 2016 19:19:17 +0100 Subject: Swap steno/media layers to allow using media keys in the Plover layer; display all active layers, not just the top; use only momentary modifiers --- keyboard/ergodox_ez/keymaps/twey/keymap.c | 108 ++++++++++++++---------------- 1 file changed, 50 insertions(+), 58 deletions(-) (limited to 'keyboard') diff --git a/keyboard/ergodox_ez/keymaps/twey/keymap.c b/keyboard/ergodox_ez/keymaps/twey/keymap.c index 75d264bdb..dec9f92f1 100644 --- a/keyboard/ergodox_ez/keymaps/twey/keymap.c +++ b/keyboard/ergodox_ez/keymaps/twey/keymap.c @@ -5,8 +5,8 @@ #define BASE 0 // default layer #define SYMB 1 // symbols -#define MDIA 2 // media keys -#define STEN 3 // steno +#define STEN 2 // steno +#define MDIA 3 // media keys const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -17,19 +17,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N |S / L2|- / Cmd | + * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right | | Up | Down | [ | ] | ~L1 | + * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | * `-----------------------------------' `----------------------------------' - * ,-------------. ,---------------. - * | PgUp | PgDn | | Home | End | - * ,------|------|------| |-------+-------+------. - * | | | NONE | | NONE | | | - * | Alt | NONE |------| |-------| Space | Ctrl | - * | | | Supr | | AltGr | | | - * `--------------------' `----------------------' + * ,--------------. ,---------------. + * | 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_* @@ -39,19 +39,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, - LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + 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, LT(MDIA, KC_S), GUI_T(KC_MINS), - KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, - KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + 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_NO, - KC_RALT,KC_SPC,KC_RCTL + KC_RALT, + KC_FN1,KC_SPC,KC_RCTL ), /* Keymap 1: Symbol Layer * @@ -95,7 +95,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* Keymap 2: Media and mouse keys + +[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_NO, 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_NO, + KC_NO, KC_NO, + KC_NO, + KC_FN1, PV_E, PV_U +), + +/* Keymap 3: Media and mouse keys * * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | | | | | @@ -136,31 +158,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_WBAK ), - -[STEN] = KEYMAP( // layout: layer 4: 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_NO, 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_NO, - KC_NO, KC_NO, - KC_NO, - KC_NO, PV_E, PV_U -), }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) + [1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 3 (Media) }; void toggle_steno(int pressed) @@ -200,26 +201,17 @@ void matrix_init_user(void) { // Runs constantly in the background, in a loop. void matrix_scan_user(void) { - uint8_t layer = biton32(layer_state); + 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(); - 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; - } + if (layer1) ergodox_right_led_1_on(); + if (layer2) ergodox_right_led_2_on(); + if (layer3) ergodox_right_led_3_on(); }; -- cgit v1.2.3