diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex new file mode 100644 index 0000000000..e29c17860a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex @@ -0,0 +1,1161 @@ +:100000000C94E9020C942D030C942D030C942D03F5 +:100010000C942D030C942D030C942D030C942D03A0 +:100020000C942D030C942D030C94720D0C94360D2E +:100030000C94911B0C942D030C942D030C942D0304 +:100040000C942D030C942D030C942D030C942D0370 +:100050000C942D030C94171C0C942D030C942D035D +:100060000C942D030C942D030C942D030C942D0350 +:100070000C942D030C942D030C942D030C942D0340 +:100080000C942D030C942D030C942D030C942D0330 +:100090000C942D030C942D030C942D030C942D0320 +:1000A0000C942D030C942D030C942D03260227028F +:1000B0002F0230022B7100001E00140004001D747A +:1000C000360219011F001A0016001B0037022C7897 +:1000D00020000800070006003102287221001500E8 +:1000E0000900190024020601220017000A00050079 +:1000F0000000378134022A000000380000003682F8 +:1001000016014C000000330000004A8223001C004E +:100110000B00110000004D81240018000D0010009C +:100120002E00520025000C000E0034002E02287212 +:10013000260012000F001E022D002C78270013004D +:100140002D023802250251002F0030001C011D0134 +:100150000154000035002B002900E100E000000000 +:100160001E00140004001D00E30001001F001A001F +:1001700016001B00E2000100200008000700060036 +:10018000E600010021001500090019002900010006 +:10019000220017000A000500000001002D000100E8 +:1001A00000002B0000001B012E00010000002900B0 +:1001B0000000010023001C000B00110000000100E2 +:1001C000240018000D0010004B00010025000C0059 +:1001D0000E0001004E004F00260012000F003700F5 +:1001E000490050002700130033003800460001008A +:1001F0000100010034006400010000000100010062 +:1002000001000100010000003A000A300B3001003B +:10021000E20001003B000C300D3001000100010044 +:100220003C0010300F300E30010001003D00113055 +:1002300012301330010001003E001430153016302A +:1002400000000100010001000000010000000100A9 +:10025000B200010000000100000001003F00173063 +:1002600018301930000001004000010001000100B9 +:100270000100010041000100010001000100010036 +:1002800042000100010001000100010043000100E3 +:1002900001000100010001004400450001000100CF +:1002A000010000000000F0A201E101260226012762 +:1002B000022702E101330233000111021101080299 +:1002C00008011A021A012C022C00013802380138E8 +:1002D000023801E101170217011202120107020799 +:1002E0000112021202E1012C022C0001050205019B +:1002F0001502150108020801040204010E020E0194 +:10030000330233000111021101180218010F020F0C +:10031000010F020F00011502150108020801170262 +:100320001701180218011502150111021100010927 +:100330000209010F020F0112021201040204011747 +:100340000217012C022C00010C020C0111021101F8 +:10035000170217012C022C000105020501120212DE +:1003600001120212010F020F012C022C00011602D1 +:10037000160117021701150215010C020C011102DA +:1003800011010A020A012C022C00011902190104B0 +:10039000020401150215012C022C00011902190199 +:1003A000120212010C020C01070207012C022C00A0 +:1003B00001060206011202120111021101160216B3 +:1003C00001170217012C022C000116021601170258 +:1003D000170104020401170217010C020C010602A6 +:1003E00006012C022C000113021301150215010C49 +:1003F000020C011902190104020401170217010875 +:100400000208012C022C000113021301180218012A +:10041000050205010F020F010C020C010602060184 +:100420002C022C0005010906A101050719E029E7A6 +:100430001500250195087501810295017508810156 +:1004400005081901290595057501910295017503A6 +:1004500091010507190029FF150025FF950675086C +:100460008100C005010902A1010901A100050919C6 +:100470000129051500250195057501810295017574 +:100480000381010501093009311581257F95027528 +:1004900008810609381581257F95017508810605B3 +:1004A0000C0A38021581257F950175088106C0C0A8 +:1004B00005010980A101850216010026B7001A0175 +:1004C000002AB700751095018100C0050C0901A133 +:1004D000018503160100269C021A01002A9C027560 +:1004E0001095018100C005010906A101050719E069 +:1004F00029E71500250195087501810205081901F4 +:10050000290595057501910295017503910105076E +:100510001900297715002501957875018102C0120F +:1005200001100100000008EDFE07130100010200A8 +:100530000109026D00040100A0FA09040000010392 +:10054000010100092111010001223F00070581037B +:1005500008000A0904010001030102000921110138 +:100560000001224D000705820308000A0904020069 +:1005700001030000000921110100012236000705D6 +:10058000830308000A090403000103000000092195 +:100590001101000122390007058403100001040342 +:1005A000090416034500720067006F0044006F00E5 +:1005B0007800200045005A00000016034500720034 +:1005C00067006F0044006F007800200045005A006B +:1005D000000011241FBECFEFDAE0DEBFCDBF04B6AE +:1005E00003FE24C08091CE019091CF01A091D00153 +:1005F000B091D1018750904BA740B04BB9F4109205 +:10060000CE011092CF011092D0011092D10114BEF0 +:1006100084B7877F84BF88E10FB6F8948093600029 +:10062000109260000FBEE0E0FFE3099511E0A0E04A +:10063000B1E0E2E5F8E402C005900D92A631B10701 +:10064000D9F711E0A6E1B1E001C01D92AE3CB107BF +:10065000E1F70E945F090C9427240C940000FC0130 +:10066000613109F464C06231A8F46D3009F441C00D +:100670006E3040F46B3079F16C30A0F56A3009F0DF +:1006800084C022C06F3009F441C08281603108F01B +:1006900043C036C0653109F45AC0663140F4633155 +:1006A00009F43FC08281643108F04CC046C0673114 +:1006B00009F459C0673108F450C0683109F459C0D1 +:1006C000693109F062C05BC08281882309F45DC092 +:1006D00027E034E05CC08281882309F456C026EE0E +:1006E00033E055C08281882309F44FC029EC33E000 +:1006F0004EC08281882309F448C020EB33E047C014 +:10070000882309F442C02BE933E041C08281882369 +:10071000E1F12AE833E03BC08823B9F12DE633E06C +:1007200036C08281882389F128E533E030C0828198 +:10073000882359F127E433E02AC0882331F12EE2DF +:1007400033E025C0882309F125E133E020C0828110 +:10075000882319F024E033E01AC082818823A9F0AD +:100760002BEE32E014C08281882379F02AEC32E04B +:100770000EC08281882349F029EB32E008C08281D3 +:10078000882319F028EA32E002C020E030E0C901F5 +:100790000895089560919701709198018091990151 +:1007A00090919A010E94201B56985E9825982D984A +:1007B00026982E9827982F98813019F0823031F49E +:1007C00003C0259A2D9A0895269A2E9A08958AECA8 +:1007D00093E0009711F0FC01099580E090E0089506 +:1007E00056985E9825982D9826982E9827982F9899 +:1007F0008FEF90E0909389008093880090938B0016 +:1008000080938A0090938D0080938C00259A2D9A76 +:1008100084EF91E020E931E0F9013197F1F7019798 +:10082000D9F7269A2E9A84EF91E020E931E0F90178 +:100830003197F1F70197D9F7279A2F9A84EF91E032 +:1008400020E931E0F9013197F1F70197D9F72598BF +:100850002D9884EF91E020E931E0F9013197F1F72B +:100860000197D9F726982E9884EF91E020E931E09E +:10087000F9013197F1F70197D9F727982F985698F2 +:100880005E9825982D9826982E9827982F98089549 +:1008900089EA8093800089E08093810024982C98D5 +:1008A0003F988AB18F748AB96E98479A8BB1806BE2 +:1008B0008BB9769A0E94F00389EC93E0009711F0CF +:1008C000FC01099580E090E0089580E280930001AA +:1008D00080911601882371F40E94B40481E0809312 +:1008E000160180E197E220E931E0F9013197F1F753 +:1008F0000197D9F780E40E94BA048093000188230D +:1009000071F50E94E80480930001882341F50E945C +:10091000E80480930001882311F58FE30E94E80426 +:10092000809300018823D9F40E94E00480E40E94AF +:10093000BA0480930001882391F48CE00E94E804BB +:1009400080930001882359F40E94E80480930001F9 +:10095000882329F48FE30E94E804809300010E9419 +:10096000E0048091000108951092B9008AE080931C +:10097000B8000895982F84EA8093BC008091BC0051 +:1009800087FFFCCF8091B900887F883021F08031CB +:1009900011F081E008959093BB0084E88093BC003F +:1009A0008091BC0087FFFCCF9091B900987F98316F +:1009B00011F480E0089580E0903409F081E008951A +:1009C00084E98093BC008091BC0084FDFCCF089535 +:1009D0008093BB0084E88093BC008091BC0087FFBB +:1009E000FCCF8091B90090E0887F883209F091E0D7 +:1009F000892F089584E88093BC008091BC0087FF14 +:100A0000FCCF8091BB000895E7E1F1E0E80FF11D14 +:100A1000808108950895809100018823A9F480E4DD +:100A20000E94BA0480930001882361F482E10E944D +:100A3000E80480930001882329F48FEF0E94E804E2 +:100A4000809300010E94E00484B1807F84B985B165 +:100A5000807F85B98AB1837F8AB98BB1837F8BB957 +:100A60003E98469808950E946504809300010E9474 +:100A70000B0580B38C7080BB81B3836F81BB80E03A +:100A800090E0FC01E95EFE4F1082FC01EB5DFE4F41 +:100A9000108201968E309105A1F788E494E00097CA +:100AA00011F0FC0109950895BF92CF92DF92EF9269 +:100AB000FF920F931F93CF93DF93809100018823C0 +:100AC00079F0809133018F5F80933301882341F463 +:100AD0000E94650480930001882311F40E94F003B2 +:100AE00025E2E22E21E0F22EC0E0D0E090EAB92E1D +:100AF00081E0C82ED12C02E0C73010F580910001B2 +:100B0000882309F045C080E40E94BA048093000164 +:100B1000882399F482E10E94E804809300018823ED +:100B200061F4C6010C2E02C0880F991F0A94E2F7E7 +:100B300080950E94E804809300010E94E00428C090 +:100B4000CA30D9F0CB3040F4C83089F0C93090F4C5 +:100B5000C73009F0A0C008C0CC30A1F0CC3080F084 +:100B6000CD3009F098C011C0209A289894C0219ADD +:100B7000299891C0229A2A988EC0239A2B988BC0CC +:100B8000529A01C0539A5B9886C03E9A469883C099 +:100B900080910001882311F010E03EC080E40E94A3 +:100BA000BA0480930001882399F483E10E94E80449 +:100BB00080930001882361F481E40E94BA04809349 +:100BC0000001882329F40E94FA04182F109501C00F +:100BD00010E00E94E00420C042E07C9902C034E0B2 +:100BE00001C030E07D9902C028E001C020E07E997C +:100BF00002C090E101C090E08FB18095881F8827E6 +:100C0000881F8295880F807E152F1C251170142B4C +:100C1000132B122B192B182BF7018081811719F038 +:100C20001083009301010E940B0521960894E11C9A +:100C3000F11CCE30D10509F05FCF809101018823EE +:100C4000C9F0815080930101882329F080EA9FE058 +:100C50000197F1F70FC020E030E0F901E95EFE4FA7 +:100C6000D901AB5DBE4F8C9180832F5F3F4F2E30FB +:100C7000310599F787EE93E0009711F0FC01099593 +:100C800081E0DF91CF911F910F91FF90EF90DF9066 +:100C9000CF90BF9008958B2D8A95F1F75FB1799B26 +:100CA0009BCF40E09ACF08959C018B3B910578F44F +:100CB000883A910548F5853A9105B8F48430910554 +:100CC00008F09FC08130910509F099C095C0803E21 +:100CD000910508F494C0883E910508F492C0805FA5 +:100CE0009040409708F08BC085C0853A910519F473 +:100CF00081E890E47DC0863A910519F083E890E49C +:100D000077C082E890E474C0883A910519F482EEC5 +:100D100094E46EC0893A910519F489EE94E468C0B0 +:100D20008A3A910519F48AEE94E462C08B3A9105EF +:100D300019F485EB94E45CC08C3A910519F486EBC8 +:100D400094E456C08D3A910519F487EB94E450C0B1 +:100D5000803B910519F48CEC94E44AC08E3A9105DD +:100D600019F48DEC94E444C08F3A910519F483E8AA +:100D700095E43EC0813B910519F48AE895E438C0BA +:100D8000823B910519F482E995E432C0833B9105D9 +:100D900019F484E995E42CC0843B910519F481E2AF +:100DA00096E426C0853B910519F483E296E420C0C1 +:100DB000863B910519F484E296E41AC0873B9105BD +:100DC00019F485E296E414C0883B910519F486E293 +:100DD00096E40EC0893B910519F487E296E408C0B9 +:100DE0008A3B910519F080E094E402C08AE296E41F +:100DF0009C0107C0306505C021E030E002C020E062 +:100E000030E0C9010895E62FF0E0EE0FFF1F9CE0EF +:100E1000799F90011124E20FF31F98EA899FC00186 +:100E20001124E80FF91FE455FF4F25913491C901B2 +:100E30000895FC01EE0FFF1FEC5DFE4F25913491EC +:100E4000C9010895FC01EE0FFF1FEC55FD4F2591E0 +:100E50003491C90108950E940307AC01805091406C +:100E600080509F4118F4CA019F710895CA018050B3 +:100E700090428050904128F4CA019F700E9422073E +:100E80000895CA01805090438050904120F4CA01D7 +:100E90009070906C089580E54030580771F40E947E +:100EA000261184EC99E020E931E0F9013197F1F75E +:100EB0000197D9F70E943C1C0EC120E54130520732 +:100EC00031F48091AE0181608093AE0104C1CA010A +:100ED000805090458050904108F056C0652F77278C +:100EE0006F70707061307105F9F49A01A4E0220FFF +:100EF000331FAA95E1F720703370CA01F3E0880F21 +:100F0000991FFA95E1F780769070282B392B3C6871 +:100F10004370507002C0660F771F4A95E2F76F71F9 +:100F20007070262B372B2EC06230710529F4942F58 +:100F30008827816F906A08956330710551F49A0192 +:100F400073E0220F331F7A95E1F7207E37703C68FB +:100F50000CC06430710561F59A0163E0220F331F04 +:100F60006A95E1F7207E37703A684370507081E0EF +:100F700090E002C0880F991F4A95E2F78F71907038 +:100F8000282B392BC9010895CA0180509047805001 +:100F9000904120F4CA019F7090620895CA01805068 +:100FA00090488050904120F4CA019F70906A089543 +:100FB000403E5105F0F4403C510588F54133510560 +:100FC00009F476C04233510548F44932510509F419 +:100FD00065C04A32510509F07AC06FC049335105E6 +:100FE00011F142385105F9F04533510509F06FC050 +:100FF00050C0433E510569F1443E510540F4403E26 +:101000005105C1F0423E510509F061C01DC0463E88 +:10101000510559F1473E510509F059C02BC0CA018D +:101020000E94190708958091BF0180FD0AC081FDCB +:1010300008C04DC08091BF0180FF03C089E390E0EC +:1010400047C080EE90E044C08091BF0182FD08C09F +:1010500004C08091BF0182FF03C082EE90E038C0DF +:1010600084FD11C083EE90E033C08091BF0183FD09 +:1010700008C004C08091BF0183FF03C086EE90E0EA +:1010800027C084FF03C080E090E022C087EE90E09C +:101090001FC08091BF0185FF05C007C08091BF01BF +:1010A00085FF03C085E390E013C089E290E010C0A3 +:1010B0008091BF0186FF05C007C08091BF0186FFF8 +:1010C00003C081E390E004C08AE290E001C0CA015D +:1010D0000E9454060895089508951092C401089539 +:1010E00008950895809135010895DF93CF9300D03E +:1010F0000F92CDB7DEB7AC018091C501843029F5E0 +:1011000083E08093E9002FEF95ED05C0892F8A9544 +:10111000F1F7222329F08091E800215085FFF6CFD6 +:101120008091E80085FF11C05B834A8383E0898357 +:10113000CE01019663E070E040E050E00E94D80BE1 +:101140008091E8008E778093E8000F900F900F90C9 +:10115000CF91DF910895DF93CF9300D00F92CDB759 +:10116000DEB7AC018091C501843029F583E080931E +:10117000E9002FEF95ED05C0892F8A95F1F722231D +:1011800029F08091E800215085FFF6CF8091E8009A +:1011900085FF11C05B834A8382E08983CE0101967B +:1011A00063E070E040E050E00E94D80B8091E800DE +:1011B0008E778093E8000F900F900F90CF91DF9182 +:1011C0000895AC018091C501843001F582E08093DF +:1011D000E9002FEF95ED05C0892F8A95F1F72223BD +:1011E00029F08091E800215085FFF6CF8091E8003A +:1011F00085FF0CC0CA0165E070E040E050E00E944D +:10120000D80B8091E8008E778093E80008950F93C3 +:101210001F93182F092F9091C501943009F04CC0ED +:10122000809102018823E1F080910D018823C1F0B3 +:101230009093E9009FEF25E105C0822F8A95F1F791 +:10124000992329F08091E800915085FFF6CF809195 +:10125000E80085FF31C0812F902F60E170E018C059 +:1012600081E08093E9009FEF25ED05C0822F8A95EC +:10127000F1F7992329F08091E800915085FFF6CF8E +:101280008091E80085FF18C0812F902F68E070E002 +:1012900040E050E00E94D80B8091E8008E77809368 +:1012A000E800A6E3B1E0212F302FC901FC0180E165 +:1012B00001900D928150E1F71F910F91089584B72D +:1012C000877F84BF88E10FB6F89480936000109206 +:1012D00060000FBE80E090E020E80FB6F894209305 +:1012E0006100809361000FBE0E9424100E94B60C22 +:1012F0000E94170D8091E20084608093E200789450 +:101300000E94B50F0E94C01083E091E00E94CB0FB5 +:101310000CC00E94691B8091C301882331F00E9498 +:10132000C11B882311F00E94ED0A8091C501853010 +:1013300081F30E942A10F9CF8091C401882349F4D7 +:101340000E94B60C0E94170D8091E2008460809389 +:10135000E20008958091C701833009F457C08430BA +:1013600030F4813071F0823009F0B1C098C08A3019 +:1013700009F485C08B3009F46AC0893009F0A7C030 +:1013800020C08091C601813A09F0A1C08091E80097 +:10139000877F8093E8008091CA019091CB01892BCF +:1013A00021F486E391E060E103C080E090E060E03A +:1013B00070E00E94030B8091E8008B778093E80037 +:1013C00008958091C601813209F081C08091CA01DF +:1013D0009091CB01009719F0039709F078C08091A4 +:1013E000E800877F8093E80005C08091C5018823CD +:1013F00009F46DC08091E80082FFF7CF8091F10081 +:10140000809335018091E8008B771CC08091C601E4 +:10141000813A09F05CC08091CA019091CB01892B7F +:1014200009F055C08091E800877F8093E8008091A3 +:10143000E80080FFFCCF809102018093F100809151 +:10144000E8008E778093E8000E94630C08958091F5 +:10145000C6018132E1F58091CA019091CB01892BBF +:10146000B1F58091E800877F8093E8000E94630CCB +:101470008091C801809302010E94261108958091F5 +:10148000C601813221F58091E800877F8093E800D2 +:101490000E94630C8091C90180933401089580916A +:1014A000C601813AA1F48091E800877F8093E8002B +:1014B0008091E80080FFFCCF809134018093F1009F +:1014C0008091E8008E778093E8000E94630C089575 +:1014D00081E061EC42E00E942B0C82E061EC42E092 +:1014E0000E942B0C83E061EC42E00E942B0C84E014 +:1014F00061EC42E10E942B0C08950E94BA1B0895F2 +:10150000DA019330C1F0943030F4913051F09230E0 +:1015100009F05BC00BC0913221F1923209F055C045 +:1015200037C0EFE1F5E022E130E053C0E1E3F5E060 +:101530002DE630E04EC0813051F0813020F0823015 +:1015400009F043C008C0EEE9F5E0849107C0E2EA83 +:10155000F5E0849103C0EAEBF5E08491282F30E0B8 +:1015600038C0613051F0613028F0623059F063309A +:1015700061F50BC0E3E4F5E002C0ECE5F5E029E03D +:1015800030E027C0E5E7F5E0FACFEEE8F5E0F7CF89 +:10159000613061F0613028F0623069F06330A9F4A5 +:1015A0000FC0E4E2F4E02FE330E013C0E3E6F4E040 +:1015B0002DE430E00EC0E0EBF4E026E330E009C0BB +:1015C000E6EEF4E029E330E004C0E0E0F0E020E003 +:1015D00030E0ED93FC93C901089580E189BD82E17B +:1015E00089BD09B400FEFDCF8091D8008F7D809326 +:1015F000D8008091E00082608093E0008091E0005C +:1016000081FDFCCF08959C014091CC015091CD010A +:101610004617570718F4F90190E043C061157105AA +:1016200011F0AB01F8CF8091E8008E778093E8004D +:1016300040E050E0F0CF8091C501882309F447C015 +:10164000853009F446C08091E80083FD44C0809154 +:10165000E80082FD36C08091E80080FF22C08091C2 +:10166000F3009091F200782F60E0292F30E0262BD4 +:10167000372B07C081918093F100415050402F5F7C +:101680003F4F4115510519F02830310598F390E08E +:101690002830310509F491E08091E8008E7780933D +:1016A000E8004115510539F6992329F60AC08091C1 +:1016B000C501882361F0853061F08091E80083FDE9 +:1016C0000AC08091E80082FFF2CF80E0089582E0B6 +:1016D000089583E0089581E008959C014091CC0134 +:1016E0005091CD014617570718F4F90190E044C016 +:1016F0006115710511F0AB01F8CF8091E8008E778C +:101700008093E80040E050E0F0CF8091C50188234D +:1017100009F448C0853009F447C08091E80083FD92 +:1017200045C08091E80082FD37C08091E80080FFCD +:1017300023C08091F3009091F200782F60E0292F70 +:1017400030E0262B372B08C084918093F10031962E +:10175000415050402F5F3F4F4115510519F028303F +:10176000310590F390E02830310509F491E0809143 +:10177000E8008E778093E8004115510531F69923F2 +:1017800021F60AC08091C501882361F0853061F09F +:101790008091E80083FD0AC08091E80082FFF2CFCB +:1017A00080E0089582E0089583E0089581E008953F +:1017B000BF92CF92DF92EF92FF920F931F93CF933E +:1017C000DF93182F092F7B016A010E94840CB82E29 +:1017D0008823B1F5812F902F9C01E901C114D10418 +:1017E00039F0F60180819181E81AF90AC80FD91FF2 +:1017F00000E010E022C08091E80085FD16C08091D5 +:10180000E8008E778093E800C114D10449F0F60116 +:1018100080819181800F911F9183808385E011C029 +:101820000E94840C882349F00CC089918093F100B8 +:101830000894E108F1080F5F1F4FE114F104D9F695 +:101840008B2DDF91CF911F910F91FF90EF90DF9043 +:10185000CF90BF900895382F282F2EC0822F8F70E1 +:101860008093E900231721F4762F942F50E006C0CF +:101870007091EC009091ED005091F00091FF1BC031 +:101880008091EB008E7F8093EB008091ED008D7F47 +:101890008093ED008091EB0081608093EB0070936A +:1018A000EC009093ED005093F0008091EE0087FDE6 +:1018B00002C080E008952F5F273080F23F703093A0 +:1018C000E90081E008958091C60188239CF404C05A +:1018D0008091C5018823B9F08091E80082FFF8CF9C +:1018E0008091E8008B778093E80008958091C5018E +:1018F000882349F08091E80080FFF8CF8091E800CC +:101900008E778093E80008954091E4005091E500BF +:1019100024E68091EC0080FF24C08091E80080FDE7 +:101920001EC08091C501882311F482E0089585309E +:1019300011F483E008958091EB0085FF02C081E0FF +:1019400008958091E4009091E5008417950709F3CC +:10195000222311F484E008952150AC01DACF80E015 +:1019600008958091E80082FFDCCFF9CF0E94290D15 +:101970000E94310DE0EEF0E0808181608083A8ED6F +:10198000B0E08C918F778C9319BCE7EDF0E080810B +:101990008E7F80838C918F7E8C931092C4010895EA +:1019A000EF92FF920F931F930E94290D0E94310D19 +:1019B00008ED10E0F80180818F7780838081806856 +:1019C000808380818F7D808319BC1092C501109225 +:1019D000C1011092C3011092C20180EEE82EF12CD9 +:1019E000F70180818B7F8083F80180818160808313 +:1019F00080E060E042E00E942B0CE1EEF0E08081AC +:101A00008E7F8083E2EEF0E0808181608083808140 +:101A100088608083F70180818E7F8083F8018081D8 +:101A2000806180831F910F91FF90EF900895E8ED02 +:101A3000F0E080818F7E8083E7EDF0E0808181603F +:101A4000808384E082BF81E08093C4010E94D00C37 +:101A50000895E8EDF0E080818E7F80831092E200AF +:101A600008951092DA001092E10008951F920F92EB +:101A70000FB60F9211241F932F933F934F935F93B1 +:101A80006F937F938F939F93AF93BF93EF93FF9346 +:101A90001091E9008091EC001092E9008091F00033 +:101AA000877F8093F00078940E94440E1092E900A2 +:101AB0008091F00088608093F0001F701093E9001F +:101AC000FF91EF91BF91AF919F918F917F916F9116 +:101AD0005F914F913F912F911F910F900FBE0F90EB +:101AE0001F9018951F920F920FB60F9211242F93EB +:101AF0003F934F935F936F937F938F939F93AF9396 +:101B0000BF93EF93FF938091E10082FF0BC0809120 +:101B1000E20082FF07C08091E1008B7F8093E100AB +:101B20000E94B40F8091DA0080FF1FC08091D8001E +:101B300080FF1BC08091DA008E7F8093DA00809155 +:101B4000D90080FF0DC080E189BD82E189BD09B463 +:101B500000FEFDCF81E08093C5010E949C0905C075 +:101B600019BC1092C5010E946D088091E10080FFB0 +:101B700019C08091E20080FF15C08091E2008E7F45 +:101B80008093E2008091E20080618093E200809186 +:101B9000D80080628093D80019BC85E08093C5018D +:101BA0000E9471088091E10084FF30C08091E200C2 +:101BB00084FF2CC080E189BD82E189BD09B400FEAB +:101BC000FDCF8091D8008F7D8093D8008091E10077 +:101BD0008F7E8093E1008091E2008F7E8093E2000F +:101BE0008091E20081608093E2008091C1018823AE +:101BF00011F084E007C08091E30087FD02C081E01E +:101C000001C083E08093C5010E947D0A8091E100BC +:101C100083FF29C08091E20083FF25C08091E1000D +:101C2000877F8093E10082E08093C5011092C1011B +:101C30008091E1008E7F8093E1008091E2008E7FB1 +:101C40008093E2008091E20080618093E20080E076 +:101C500060E042E00E942B0C8091F000886080934D +:101C6000F0000E947008FF91EF91BF91AF919F919A +:101C70008F917F916F915F914F913F912F910F9035 +:101C80000FBE0F901F9018951F93DF93CF93CDB782 +:101C9000DEB7AC970FB6F894DEBF0FBECDBFE6EC53 +:101CA000F1E08091F100819321E0EE3CF207C9F769 +:101CB0000E94AA098091E80083FF3EC18091C6017D +:101CC0003091C701353009F487C0363040F43130E7 +:101CD000C9F1313070F0333009F02EC133C03830E3 +:101CE00009F4F9C0393009F409C1363009F024C1CA +:101CF00097C0803821F0823809F01EC108C0909149 +:101D0000C2018091C301882399F0926011C0809133 +:101D1000CA018F708093E9008091EB0090E025E08C +:101D2000969587952A95E1F7982F91701092E90082 +:101D30008091E800877F8093E8009093F1001092F3 +:101D4000F100D4C0882319F0823009F0F5C090E08A +:101D50008F719070009721F0029709F0EDC00CC0D0 +:101D60008091C801813009F0E7C01092C30133307F +:101D700069F58093C3012AC08091C801882331F599 +:101D80002091CA012F7009F4D7C02093E9008091F7 +:101D9000EB0080FF1BC0333021F48091EB008062A8 +:101DA00013C08091EB0080618093EB0081E090E0B4 +:101DB00002C0880F991F2A95E2F78093EA001092DB +:101DC000EA008091EB0088608093EB001092E900BC +:101DD0008091E800877F8DC0882309F0ADC0109105 +:101DE000C8011F778091E3008078812B8093E30006 +:101DF0008091E800877F8093E8000E94630C8091C7 +:101E0000E80080FFFCCF8091E30080688093E300CE +:101E1000112311F482E001C083E08093C5018CC0DE +:101E20008058823008F088C08091C8019091C90123 +:101E300023E08C3D920709F034C083E08C838AE272 +:101E40008B837FB7F894DE0115966EE040E050E09A +:101E500011E2E62FF0E010935700849140FF03C099 +:101E600082958F706F5F8F70282F30E08A3018F066 +:101E7000C901C79602C0C901C0968D939D934F5F5B +:101E80005F4F4431510529F77FBF8091E800877F7C +:101E90008093E800CE0103966AE270E00E94030B93 +:101EA00014C06091CA01AE014F5F5F4F0E94800A6B +:101EB000BC01009709F440C08091E800877F8093BF +:101EC000E80089819A810E946D0B8091E8008B77F0 +:101ED0008093E80031C0803879F58091E800877FF1 +:101EE0008093E8008091C1018093F1008091E80027 +:101EF0008E778093E8000E94630C1EC08823E1F473 +:101F00009091C8019230C0F48091E800877F80935F +:101F1000E8009093C1010E94630C8091C101882365 +:101F200031F48091E30087FD02C081E001C084E0CC +:101F30008093C5010E94680A8091E80083FF0AC06F +:101F40008091E800877F8093E8008091EB008062B9 +:101F50008093EB00AC960FB6F894DEBF0FBECDBFFA +:101F6000CF91DF911F91089508951F938091C5012E +:101F7000882379F01091E9008091EC001092E9003B +:101F80008091E80083FF02C00E94440E1F701093EE +:101F9000E9001F91089590934B0180934A010895A1 +:101FA000E0914A01F0914B01309711F480E00895DF +:101FB0000190F081E02D09950895E0914A01F0919A +:101FC0004B01309721F00280F381E02D09950895AF +:101FD000E0914A01F0914B01309721F00480F581A6 +:101FE000E02D099508959C01809148019091490147 +:101FF0002817390779F03093490120934801E0917F +:102000004A01F0914B01309729F00680F781E02DCD +:10201000C901099508959C0180914601909147015D +:102020002817390779F03093470120934601E09152 +:102030004A01F0914B01309729F00084F185E02DA1 +:10204000C9010995089508950E94231008950E94DA +:102050006C080895BF92CF92DF92EF92FF920F9398 +:102060001F93DF93CF93CDB7DEB72A970FB6F894BF +:10207000DEBF0FBECDBF0E945405EE24FF24BE2C50 +:102080008E2D0E940405C82EF701E35BFE4FD08021 +:10209000D82609F43FC08091AE0181FF02C00E94A2 +:1020A0000A0500E010E0ED2DF0E0CF01002E02C0A7 +:1020B000959587950A94E2F780FF27C00E94DF1B61 +:1020C0000983BA826C2D70E0002E02C07595679569 +:1020D0000A94E2F7617070706B8381609D838C83DA +:1020E000402F5B2D782F8D810E949514F701E35BC3 +:1020F000FE4F81E090E0002E02C0880F991F0A94E5 +:10210000E2F72081282720831DC00F5F1F4F063074 +:10211000110559F60894E11CF11C8EE0E816F10453 +:1021200009F0ADCF0E94DF1B2FEF2E832F8318867F +:102130008160782F9A8789874FEF5FEF60E08A850B +:102140000E9495140E94B41F10914C010E94D00F60 +:10215000181731F00E94D00F80934C010E94271075 +:102160002A960FB6F894DEBF0FBECDBFCF91DF9198 +:102170001F910F91FF90EF90DF90CF90BF90089547 +:102180000E94D61B0E9433050E949C1C0895DF9379 +:10219000CF9300D000D00F92CDB7DEB70F900F9045 +:1021A0000F900F900F90CF91DF910895DF93CF9311 +:1021B00000D000D000D0CDB7DEB726960FB6F89489 +:1021C000DEBF0FBECDBFCF91DF9108950E940C19E5 +:1021D000482F892F82958F70282F30E02C303105C1 +:1021E0004CF42A3031056CF4225030402230310555 +:1021F000C0F407C02C30310551F02F30310589F47F +:1022000006C0403E10F0403F61F481E008959F70A9 +:10221000892F90E023E0969587952A95E1F78170C4 +:10222000089580E008950E94E01A0E94B51A0E9465 +:10223000F81A0E949D1F0E94A91F80E090E00E9452 +:10224000F30F80E090E00E940B1008950E94D01AD6 +:102250000E9413110895882321F00E94C91A0E9438 +:10226000F81A0895882321F00E94C31A0E94F81AD0 +:102270000895282F882309F44EC0823859F40E940B +:10228000D00F81FF48C089E30E94431A0E94F81AC8 +:1022900089E30CC0833869F40E94D00F80FF3BC0F3 +:1022A00083E50E94431A0E94F81A83E50E94811A6E +:1022B0001FC0843859F40E94D00F82FF2CC087E4DD +:1022C0000E94431A0E94F81A87E4F0CF8450813AA2 +:1022D00010F4822FEBCF822F805E883060F427705D +:1022E00081E090E001C0880F2A95EAF70E94C91AA0 +:1022F0000E94F81A0895822F855A833028F480E0CE +:1023000090E00E94F30F0895285A233120F480E0D2 +:1023100090E00E940B1008951F93182F882309F452 +:10232000D0C0823859F40E94D00F81FDCAC089E321 +:102330000E94431A0E94F81A89E30CC0833879F48A +:102340000E94D00F80FDBDC083E50E94431A0E9409 +:10235000F81A83E50E94811A0E94F81AB2C08438E4 +:1023600059F40E94D00F82FDACC087E40E94431A4A +:102370000E94F81A87E4EECF8450813A50F4812FFE +:102380000E94DE21882309F09CC0812F0E94431AFD +:10239000E3CF812F805E883050F4177081E090E0A9 +:1023A00001C0880F1A95EAF70E94C31AD5CF812F72 +:1023B000855A8330A0F4153A19F481E890E00CC0F6 +:1023C000163A19F482E890E007C0173A19F080E055 +:1023D00090E002C083E890E00E94F30F72C0812F6A +:1023E000885A833108F06DC0183A19F482EE90E0F3 +:1023F00066C0193A19F489EE90E061C01A3A19F4EE +:102400008AEE90E05CC01B3A19F485EB90E057C06F +:102410001C3A19F486EB90E052C01B3B19F483EB95 +:1024200090E04DC01C3B19F484EB90E048C01D3A8D +:1024300019F487EB90E043C0103B19F48CEC90E06A +:102440003EC01E3A19F48DEC90E039C01F3A19F4E1 +:1024500083E891E034C0113B19F48AE891E02FC081 +:10246000123B19F482E991E02AC0133B19F484E984 +:1024700091E025C0143B19F481E292E020C0153BA5 +:1024800019F483E292E01BC0163B19F484E292E057 +:1024900016C0173B19F485E292E011C0183B19F4FD +:1024A00086E292E00CC0193B19F487E292E007C083 +:1024B0001A3B19F080E090E002C08AE292E00E94AC +:1024C0000B101F910895AF92BF92CF92DF92EF92BF +:1024D000FF920F931F93DF93CF93CDB7DEB72A9769 +:1024E0000FB6F894DEBF0FBECDBF5C01DE011196C2 +:1024F000FC0185E001900D928150E1F70B81F5011F +:10250000F580F2944FE0F422DE011696FE0131963A +:1025100085E001900D928150E1F73E812F81898500 +:102520009A85892B09F4F0C12F3F09F0C0C13F3FC4 +:1025300009F0BDC1E9C18D2D8F70222311F4182F30 +:1025400003C0182F1295107F002349F0112309F4BE +:1025500088C1812F0E94D31A0E94F81A82C18C2D43 +:102560000E943911112309F4CFC1812F0E94D91A79 +:102570000E94F81AC9C18D2D8F70203211F4182FC6 +:1025800003C0182F1295107FCC2021F0F1E0CF1658 +:1025900011F516C0002359F0FF2009F431C121E0E4 +:1025A000F21609F02DC1812F0E94E31AADC1FF2060 +:1025B00021F081E0F81609F4A7C10E94E61A26C1AD +:1025C000002329F0E1E0EF1508F49EC119C1FF20B6 +:1025D00009F09AC11BC1002321F0FF2009F410C1AA +:1025E00040C1FF2009F412C147C18D2D8695869503 +:1025F000837090E0009721F0019709F085C10AC02F +:10260000002319F0C601937002C080E090E00E94A0 +:10261000F30F7AC1002319F0C601937002C080E065 +:1026200090E00E940B1070C1002321F08C2D0E94BD +:10263000AB1E03C08C2D0E94151F0E94A91F64C1F0 +:102640008D2D837009F05EC0002309F05DC12C2D33 +:10265000229526952770220F220F8C2D8F70E82E41 +:10266000FF2400E010E0022E04C0EE0CFF1C001F4F +:10267000111F0A94D2F7C4FC05C060E070E080E04E +:1026800090E00FC06FE070E080E090E004C0660F63 +:10269000771F881F991F2A95D2F7609570958095AE +:1026A0009095D694D694F3E0DF224D2D50E0413042 +:1026B0005105A9F0423051051CF4452B49F024C1C5 +:1026C0004230510589F04330510509F01DC113C056 +:1026D0006E297F29802B912B0E941E1A15C16E290D +:1026E0007F29802B912B0BC06E297F29802B912B6A +:1026F0000E940D1A09C10E941E1AC801B7010E944A +:102700002F1A02C190E0002311F4969587958170ED +:1027100009F4FAC02C2D229526952770220F220F3E +:102720008C2D8F70E82EFF2400E010E0022E04C0F4 +:10273000EE0CFF1C001F111F0A94D2F7C4FC05C049 +:1027400060E070E080E090E00FC06FE070E080E05B +:1027500090E004C0660F771F881F991F2A95D2F753 +:102760006095709580959095D694D69423E0D2226A +:102770004D2D50E041305105A9F0423051051CF477 +:10278000452B49F0C1C04230510589F04330510515 +:1027900009F0BAC013C06E297F29802B912B0E94AB +:1027A0007119B2C06E297F29802B912B0BC06E2925 +:1027B0007F29802B912B0E946019A6C00E9471195D +:1027C000C801B7010E9482199FC080EFC81611F19D +:1027D0008C1528F0E0EECE1608F43FC009C0F2EFE9 +:1027E000CF1661F1CF1628F123EFC216B1F52BC039 +:1027F0001C2D1F708D2D8F71002331F00E94CF1979 +:10280000812F0E94321180C00E94AF19812F0E9437 +:102810002B117AC0002321F0FF2009F075C004C0FD +:1028200081E08F1508F470C08D2D8F710E9493196F +:102830006BC08D2D8F71002329F119C08D2D8F71E3 +:102840000023A9F01FC0002329F08D2D8F710E9455 +:10285000EB195AC00E94FB1957C0002359F0FF2002 +:1028600021F08C2D0E948C114FC08D2D8F710E94F4 +:10287000CF194AC0FF2021F08C2D0E94391144C08D +:102880008D2D8F710E94AF193FC0EFE0DE22C50190 +:102890006C2D4D2D0E942F030E94911835C0FFE032 +:1028A000DF22C5016C2D4D2D0E9453062DC089815C +:1028B0009A810E940C196C010E940B190E940A193E +:1028C0008D2D82958F7090E08530910509F4ACCE06 +:1028D0008630910554F4843091050CF086CE2D2D70 +:1028E000207F02970CF047CE26CE8C3091053CF429 +:1028F0008A3091050CF069CF089731F4A1CE8C3065 +:10290000910519F20F9759F22A960FB6F894DEBF87 +:102910000FBECDBFCF91DF911F910F91FF90EF9030 +:10292000DF90CF90BF90AF900895DF93CF93CDB756 +:10293000DEB72B970FB6F894DEBF0FBECDBF342F96 +:102940004F83252F588769877A878B87472F582F82 +:10295000FE01319686E0DF011D928A95E9F76B83CF +:1029600039832A834C835D83432F522F8D819E812F +:102970000E94D2172B960FB6F894DEBF0FBECDBFC4 +:10298000CF91DF9108950F931F930091620115C0BD +:1029900010E0F801EE0FFF1FE00FF11FEE0FFF1F19 +:1029A000ED59FE4F4081518162817381848195810F +:1029B0000E94D6100F5F1F4F0770809161010817AA +:1029C00039F71F910F91089540915B0150915C017F +:1029D00060915D0170915E0180915F019091600155 +:1029E0000E94D61008950F931F93CF93DF93809189 +:1029F000600182958F7009F06DC080915D01882320 +:102A000009F468C0609162010091610140915E012A +:102A100050915F0110915C0170915B01EA01C095DA +:102A2000D09555C04115510509F44FC01F3F49F4D9 +:102A300080E090E07F3F11F481E090E0882309F08E +:102A400044C0262F30E0F901EE0FFF1FE20FF31F05 +:102A5000DF01AA0FBB1FAD59BE4F11968C91119784 +:102A6000181799F58C91781781F5EE0FFF1FEB5928 +:102A7000FE4F8081882349F513968D919C91149780 +:102A80008417950718F0841B950B02C08C0F9D1FAF +:102A9000883C9105D0F4809160018F7080618093B3 +:102AA0006001F901EE0FFF1FE20FF31FEE0FFF1F92 +:102AB000E859FE4F80818F70806180838BE591E0C3 +:102AC0000E9463120E94C31405C06F5F6770601795 +:102AD00009F0A8CFDF91CF911F910F910895DF9258 +:102AE000EF92FF920F931F93DF93CF93CDB7DEB793 +:102AF0006B970FB6F894DEBF0FBECDBF8C01DC0123 +:102B00001296DC9012974C9111965C911197139646 +:102B1000ED90FC90149720915E0130915F016091DF +:102B20005C0170915B012115310509F4DBC16F3F38 +:102B300009F003C27F3F09F000C2D4C1E216F306D8 +:102B400040F0C701821B930B883C910508F0EEC052 +:102B500008C0209530952E0D3F1D283C310508F00A +:102B6000E5C080916001807F09F095C06F3F09F05A +:102B7000EAC17F3F09F0E7C115C0741799F4DD2061 +:102B800089F4809160018F708061809360010E9460 +:102B9000E4148BE591E00E94631280916001F801DA +:102BA0008583BCC1FD82EC825A834983DB82DE01CE +:102BB0001696FE01319685E001900D928150E1F765 +:102BC0006885DE011B96FE01369685E001900D9228 +:102BD0008150E1F72C853B858E859F85892B09F4F3 +:102BE00051C02F3F09F0B3C13F3F09F0B0C14AC007 +:102BF000FD82EC825A834983DB82DE011B96FE0153 +:102C0000319685E001900D928150E1F7FC847B853F +:102C10006D8580916201909161011FC0282F30E085 +:102C2000F901EE0FFF1FE20FF31FDF01AA0FBB1F19 +:102C3000AD59BE4F11968C911197F81651F48C91A5 +:102C4000781739F4EE0FFF1FEB59FE4F808168179C +:102C5000C9F42F5F3F4F822F87708917F9F68DC116 +:102C60009F7059F0442349F459C19F7031F0D80145 +:102C700015968C91807F09F451C1405E483008F46C +:102C80004DC148C1DD2009F449C1809160018160D6 +:102C90008093600143C16F3F09F05DC17F3F09F040 +:102CA0005AC114C0741791F4DD2081F48091600141 +:102CB000F8018583C8010E946312ABE5B1E0F80119 +:102CC00086E001900D928150E1F720C15A8349833B +:102CD00089819A810E94E610882309F41BC1DD20B6 +:102CE00009F418C130916001832F82958F7090E0B4 +:102CF00002979CF090915C0120915B01FE0170961F +:102D000086E0DF011D928A95E9F7998B288BFC8A72 +:102D1000EB8A3D8BCF010E946312ABE5B1E0F80175 +:102D200086E001900D928150E1F7EEC08091600144 +:102D3000807FA9F47E2DFD82EC825A834983DB8259 +:102D40006D2D8D810E94C7100BE511E0C8010E9416 +:102D5000631286E0F80111928A95E9F7C0C06F3FCF +:102D600009F0FDC07F3F09F0FAC014C0741791F458 +:102D7000DD2081F480916001D80115968C93C80103 +:102D80000E946312EBE5F1E086E0DF011D928A9577 +:102D9000E9F7BEC05A83498389819A810E94E6106F +:102DA000882309F4B7C0DD2009F4B4C03091600174 +:102DB000832F82958F7090E002979CF090915C0138 +:102DC00020915B01FE01769686E0DF011D928A95D7 +:102DD000E9F79F8B2E8BFA8EE98E3B8FCF010E94F5 +:102DE0006312ABE5B1E0F80186E001900D928150ED +:102DF000E1F78AC06F3F09F0B6C07F3F09F0B3C06A +:102E000071C0E216F30640F0C701821B930B883CA9 +:102E1000910508F053C008C0209530952E0D3F1D38 +:102E2000283C310508F04AC0DD2009F473C06F3F2B +:102E300009F09FC07F3F09F09CC029C0741739F585 +:102E40009091600190FD1AC0892F82958F70B1F02A +:102E5000F80195838F3031F08F5F8295807F9F706E +:102E6000982B9583C8010E946312ABE5B1E0F8018D +:102E700086E001900D928150E1F748C0ABE5B1E0EA +:102E8000F80186E001900D928150E1F741C05A832C +:102E9000498389819A810E94E610882349F0ABE535 +:102EA000B1E0F80186E001900D928150E1F72CC06D +:102EB000809160018160809360012CC07E2DFD8235 +:102EC000EC825A834983DB826D2D8D810E94C7106D +:102ED000EBE5F1E086E0DF011D928A95E9F70E94BB +:102EE000E4141CC0DD20B1F05A83498389819A81A2 +:102EF0000E94E610882371F0ABE5B1E0F80186E0AE +:102F000001900D928150E1F70E94F3140E94E414A5 +:102F100081E005C0C8010E946312FACF80E06B9681 +:102F20000FB6F894DEBF0FBECDBFCF91DF911F91DA +:102F30000F91FF90EF90DF90089580915D018823BD +:102F400009F458CFFBCD651709F02CCE16CE6130B1 +:102F500009F498CE4DCE651709F0B8CEA3CE65170B +:102F600009F018CF03CF80915D01882309F0BACF13 +:102F700048CF651709F08BCF61CF5A834983898188 +:102F80009A810E940C19482F892F82958F70282FC3 +:102F900030E0223031050CF463CE243031050CF0E2 +:102FA000B9CF63CE0F931F93DF93CF93CDB7DEB727 +:102FB0002C970FB6F894DEBF0FBECDBF4F83588756 +:102FC00069877A878B879C878E01095F1F4FC801AD +:102FD0000E946F158823D9F028853F818A859B85BB +:102FE000892B09F46BC02F3F49F480E090E03F3F0C +:102FF00011F481E090E0882309F060C04F8158858A +:1030000069857A858B859C850E94D61057C0DE0124 +:103010001196F80186E001900D928150E1F7F98157 +:10302000EA814C815D814115510509F447C0EF3FAC +:1030300009F04CC0FF3F09F049C040C0F983EA8362 +:103040005D834C83F901EE0FFF1FE20FF31FEE0FBC +:10305000FF1FED59FE4FDE01119686E00D900192A3 +:103060008150E1F7609361010E94C31427C0919FD2 +:10307000C00111248D599E4F0E946F15882309F4B9 +:1030800045C08091620190E0FC01EE0FFF1FE80F48 +:10309000F91FEE0FFF1FED59FE4F408151816281F4 +:1030A0007381848195810E94D6108091620190E0A5 +:1030B0000196877090708093620101C016E0909134 +:1030C000620180916101981791F620C080916101A1 +:1030D000282F30E02F5F3F4FB9016770707021508B +:1030E00030408091620190E06817790709F0A6CF1F +:1030F0000E9426111092610110926201EBE5F1E04D +:1031000086E0DF011D928A95E9F7D8CF2C960FB69D +:10311000F894DEBF0FBECDBFCF91DF911F910F910D +:103120000895CF92DF92EF92FF921F93CF93DF9398 +:10313000EC01009709F466C010E090EAC92E9FE008 +:10314000D92E81E0E82EF12CFE012196949194373E +:1031500048F4943008F044C0913079F0923009F08E +:1031600051C01BC0953709F437C0953750F1892FEE +:103170008458803708F046C037C0FE0121969491EC +:10318000892F805E883060F597708E2D01C0880F82 +:103190009A95EAF70E94D31A0FC0FE0121969491E6 +:1031A000892F805E883058F497708E2D01C0880F6B +:1031B0009A95EAF70E94D91A0E94F81A19C0892F25 +:1031C00015C0FE01249104C0C6010197F1F72150FA +:1031D0002223D1F721960CC0FE012196149108C03C +:1031E000892F0E948C1104C0892F8F770E9439117A +:1031F000212F04C0C6010197F1F72150222309F4C1 +:10320000A3CFF8CFDF91CF911F91FF90EF90DF9088 +:10321000CF90089508950895CF92DF92EF92FF9294 +:103220000F931F93CF93DF936C01E0909301F09085 +:1032300094010091950110919601809197019091D0 +:103240009801A0919901B0919A01E82AF92A0A2BD4 +:103250001B2BCFE1D0E0D801C7010C2E04C0B695DE +:10326000A795979587950A94D2F781709070892BCE +:1032700041F08C2FB6010E942B079C0181309105F3 +:1032800051F421978FEFCF3FD80729F780E0B6019F +:103290000E942B079C01822FDF91CF911F910F91EC +:1032A000FF90EF90DF90CF90089560939701709317 +:1032B00098018093990190939A010E9413110895A7 +:1032C0009B01AC01609197017091980180919901E7 +:1032D00090919A0162277327842795270E94551998 +:1032E00008959B01AC0160919701709198018091C4 +:1032F000990190919A0162237323842395230E945C +:10330000551908959B01AC01609197017091980146 +:103310008091990190919A01622B732B842B952BAC +:103320000E945519089521E030E040E050E004C0CB +:10333000220F331F441F551F8A95D2F780919701A2 +:1033400090919801A0919901B0919A01282739276D +:103350004A275B27CA01B9010E945519089521E047 +:1033600030E040E050E004C0220F331F441F551FDF +:103370008A95D2F720953095409550958091970188 +:1033800090919801A0919901B0919A012823392335 +:103390004A235B23CA01B9010E945519089521E00F +:1033A00030E040E050E004C0220F331F441F551F9F +:1033B0008A95D2F78091970190919801A0919901F7 +:1033C000B0919A01282B392B4A2B5B2BCA01B901EA +:1033D0000E945519089521E030E040E050E004C01B +:1033E000220F331F441F551F8A95D2F7CA01B90116 +:1033F0000E945519089560E070E080E090E00E941E +:1034000055190895609393017093940180939501E9 +:10341000909396010E94131108959B01AC01609155 +:10342000930170919401809195019091960162278A +:103430007327842795270E94021A08959B01AC01E7 +:103440006091930170919401809195019091960102 +:1034500062237323842395230E94021A08959B01FB +:10346000AC016091930170919401809195019091CC +:103470009601622B732B842B952B0E94021A0895C0 +:103480000E94021A0895382F809102018823E1F0EA +:1034900080910D018823C1F0832F869586958695AE +:1034A0008F3070F5E0910E01F0910F01E80FF11DE2 +:1034B000377081E090E002C0880F991F3A95E2F7DB +:1034C0002181282B21830895A0910E01B0910F0135 +:1034D000FD0120E08FEF9281931791F08F3F19F457 +:1034E000992309F4822F2F5F31962E30A1F78F3F59 +:1034F00039F0992787FD9095A80FB91F12963C9334 +:103500000895482F809102018823E9F080910D01F0 +:103510008823C9F0842F8695869586958F3020F56F +:10352000E0910E01F0910F01E80FF11D477081E06D +:1035300090E002C0880F991F4A95E2F7809521819B +:1035400082238183089520E030E0E0910E01F09124 +:103550000F01E20FF31F8281841709F412822F5F9B +:103560003F4F2E30310589F7089581E090E0E091DA +:103570000E01F0910F01E80FF91F108201968031C2 +:103580009105A9F708959091AB01982B9093AB0109 +:10359000089580959091AB0198239093AB01089585 +:1035A0001092AB0108959091AD01982B9093AD01CD +:1035B000089580959091AD0198239093AD01089561 +:1035C0001092AD0108958093AC0108951092AC0162 +:1035D0000895E0910E01F0910F0120E091E08181CA +:1035E00081112F5F9F5F31969031C9F7822F089527 +:1035F000E0910E01F0910F018091AB018083E09189 +:103600000E01F0910F0180819091AD01892B808393 +:103610009091AC01992369F0E0910E01F0910F01B6 +:103620008081892B80830E94E91A882311F00E94EF +:10363000E61A80910E0190910F010E94DD0F08950E +:103640009B01AC01AA27BB270097A105B10521F476 +:10365000DA01C90160E001C060E1292F3A2F4B2F48 +:103660005527211531054105510519F49C01AD017E +:1036700001C0685FDA01C90174E0B695A795979516 +:1036800087957A95D1F70097A105B10519F4DA016C +:10369000C90101C06C5F9C01AD01F2E056954795F0 +:1036A00037952795FA95D1F7211531054105510533 +:1036B00019F49C01AD0101C06E5F56954795379591 +:1036C0002795211531054105510509F06F5F862FBA +:1036D00008958091C501843009F11092AF0120E472 +:1036E00088E190E00FB6F894A895809360000FBE33 +:1036F0002093600083B7817F846083BF83B781603C +:1037000083BF7894889583B78E7F83BF88E10FB697 +:10371000F89480936000109260000FBE08950895A1 +:1037200008951F920F920FB60F9211248F939F93BB +:10373000AF93BF938091AF01882399F48091B0013A +:103740009091B101A091B201B091B3014196A11D38 +:10375000B11D8093B0019093B101A093B201B093D9 +:10376000B301BF91AF919F918F910F900FBE0F90BA +:103770001F9018950E9426110E94D00F0E946C087D +:1037800008951F930E948F1B0E9454050E94901B56 +:1037900010E0812F0E940405882311F081E004C00D +:1037A0001F5F1E30B1F780E01F91089582E084BD55 +:1037B00093E095BD9AEF97BD80936E0008958FB703 +:1037C000F8942091B0013091B1014091B201509133 +:1037D000B3018FBFC9010895EF92FF920F931F931A +:1037E000BC018FB7F894E090B001F090B101009166 +:1037F000B2011091B3018FBFA801970140705070C2 +:10380000CB01A0E0B0E0281739074A075B0720F09A +:103810009701261B370B05C09B01209530952E0D77 +:103820003F1DC9011F910F91FF90EF9008951F92C6 +:103830000F920FB60F9211248F939F93AF93BF9364 +:103840008091B0019091B101A091B201B091B3010A +:103850000196A11DB11D8093B0019093B101A09379 +:10386000B201B093B301BF91AF919F918F910F902F +:103870000FBE0F901F9018950E94B60CF89480E22E +:103880009EE420E931E0F9013197F1F70197D9F78A +:1038900087E090EBA7E0B0EB8093CE019093CF014F +:1038A000A093D001B093D1012CE088E190E00FB655 +:1038B000F894A895809360000FBE20936000FFCF1E +:1038C000EF92FF920F931F93CF93DF93082F10E097 +:1038D000812F0E940405C0E0D0E0E82EFF24C7013C +:1038E0000C2E02C0959587950A94E2F780FF09C0D7 +:1038F00080E06C2F712F0E940307081711F481E0FC +:1039000008C02196C630D10551F71F5F1E3001F760 +:1039100080E0DF91CF911F910F91FF90EF9008957C +:103920001F93182F8CE20E94601C882319F0812FAE +:103930000E94601C1F9108951F93CF93DF930E94F4 +:103940000A1E882311F40E94151E14E6C0E4DCE967 +:1039500005C00E945405CE010197F1F71150C8F738 +:1039600089E20E94901C882309F02FC18AE20E94FC +:10397000901C882311F00E94151E85E00E94901C67 +:10398000882311F00E943C1C0E94051E8093AE010A +:1039900087E00E94901C8823B9F18BE10E94901C63 +:1039A000882349F09091AE01892F8695809581708A +:1039B000880F9D7F26C08EE00E94901C882359F0BE +:1039C0009091AE01892F8695869580958170880F9C +:1039D000880F9B7F16C080E10E94901C9091AE01E1 +:1039E000882359F0892F86958695869580958170D4 +:1039F000880F880F880F977F04C0892F809581706A +:103A00009E7F982B9093AE018091AE010E94F51D90 +:103A10000E94FB1D8093BF0180EE0E94901C8823B2 +:103A200049F08091BF01982F909591708E7F892BDE +:103A30008093BF0189E30E94901C882359F09091E4 +:103A4000BF01892F869580958170880F9D7F982B67 +:103A50009093BF0182EE0E94901C882369F09091A0 +:103A6000BF01892F8695869580958170880F880F74 +:103A70009B7F982B9093BF0186EE0E94901C882319 +:103A800079F09091BF01892F8695869586958095CE +:103A90008170880F880F880F977F982B9093BF01B4 +:103AA00083EE0E94901C882369F09091BF01892FBA +:103AB00082958F70809581708295807F9F7E982BF4 +:103AC0009093BF0185E30E94901C882379F0909128 +:103AD000BF01892F82958695877080958170829528 +:103AE000880F807E9F7D982B9093BF0181E30E9479 +:103AF000901C882389F09091BF01892F829586952B +:103B000086958370809581708295880F880F807C60 +:103B10009F7B982B9093BF0181E10E94901C88238A +:103B200079F08091BF01982F991F9927991F21E063 +:103B300092279795992797958F77892B8093BF0127 +:103B40008091BF010E94E91D8091BF01881F8827D5 +:103B5000881F80930D0187E20E94901C182F8EE130 +:103B60000E94901C811112608FE10E94901C8111B3 +:103B7000146080E20E94901C8111186081E20E9412 +:103B8000901C8111106182E20E94901C81111062D0 +:103B900083E20E94901C8111106484E20E94901CB8 +:103BA00081111068112341F0812F0E94EF1D612FB8 +:103BB00070E080E090E007C00E94001E90E0A0E06E +:103BC000B0E0BC01CD010E94401ADF91CF911F915E +:103BD0000895682F84E090E00E9404240895682FDF +:103BE00083E090E00E9404240895682F82E090E032 +:103BF0000E940424089584E090E00E94F623089532 +:103C000083E090E00E94F623089582E090E00E9415 +:103C1000F623089580E090E00E94FE2320E08D5E70 +:103C20009E4F09F421E0822F089580E090E06DEE30 +:103C30007EEF0E94122482E090E060E00E94042463 +:103C400083E090E060E00E94042484E090E060E083 +:103C50000E94042485E090E060E00E94042408951E +:103C60008091BA0180FF0BC09091120185E0989F6E +:103C7000C0011124959587959595879530C081FF52 +:103C800009C09091120185E0989FC001112495957B +:103C9000879525C082FF03C0909112010DC08091CD +:103CA000B901882319F485E090E00895609113012B +:103CB00090911201861728F085E0989FC001112489 +:103CC0000EC0899F90011124C901880F991F880F88 +:103CD000991F820F931F70E00E94CF23CB01803881 +:103CE000910510F08FE70895009709F481E0089599 +:103CF0008091BA0180FF05C0809114018695869558 +:103D000018C081FF04C080911401869512C082FF03 +:103D100003C0809114010DC02091B901222319F430 +:103D200081E090E0089560911501809114012617BB +:103D300010F090E007C0289FC001112470E00E949D +:103D4000CF23CB018038910510F08FE708950097BD +:103D500009F481E00895803F21F40E94301E81958E +:103D600004C0813F29F40E94301E8093B60108955B +:103D7000823F21F40E94301E819504C0833F29F4C4 +:103D80000E94301E8093B5010895893F19F40E9466 +:103D9000781E05C08A3F31F40E94781E8195809379 +:103DA000B70108958B3F21F40E94781E819504C0CD +:103DB0008C3F29F40E94781E8093B8010895843FB7 +:103DC00021F48091B401816017C0853F21F4809176 +:103DD000B401826011C0863F21F48091B4018460F7 +:103DE0000BC0873F21F48091B401886005C0883FF3 +:103DF00031F48091B40180618093B40108958D3FC6 +:103E000021F48091BA01816005C08E3F31F4809128 +:103E1000BA0182608093BA0108958F3F29F480919E +:103E2000BA0184608093BA010895803F29F480919B +:103E3000B60187FF6FC007C0813F41F48091B60192 +:103E400018160CF067C01092B60164C0823F29F4C6 +:103E50008091B50187FF5EC007C0833F41F4809128 +:103E6000B50118160CF056C01092B50153C0893F29 +:103E700029F48091B70118163CF04CC08A3F39F400 +:103E80008091B70187FF46C01092B70143C08B3FB6 +:103E900029F48091B80187FF3DC006C08C3F39F4FA +:103EA0008091B8011816B4F51092B80133C0843F60 +:103EB00021F48091B4018E7F05C0853F31F480915B +:103EC000B4018D7F8093B40125C0863F21F4809199 +:103ED000B4018B7FF7CF873F21F48091B401877FB6 +:103EE000F1CF883F21F48091B4018F7EEBCF8D3FDD +:103EF00021F48091BA018E7F0BC08E3F21F4809116 +:103F0000BA018D7F05C08F3F29F48091BA018B7F64 +:103F10008093BA018091B501882371F48091B60134 +:103F2000882351F48091B701882331F48091B8013E +:103F3000882311F41092B9010895E4EBF1E085E0D3 +:103F4000DF011D928A95E9F71092B9011092BA012A +:103F5000089584EB91E00E94E80F0E94DF1B90938C +:103F6000BC018093BB0108951F938091BB01909188 +:103F7000BC010E94EC1BAC012091B901222321F06D +:103F80008091110190E006C0909110018AE0989F05 +:103F9000C00111244817590708F485C09091B50154 +:103FA000992369F48091B601882349F48091B7017F +:103FB000882329F48091B801882309F474C02F3F25 +:103FC00019F02F5F2093B901191624F40E94301EB6 +:103FD0008093B5018091B50187FF05C00E94301E16 +:103FE00081958093B5018091B601181624F40E9442 +:103FF000301E8093B6018091B60187FF05C00E94F4 +:10400000301E81958093B6016091B501662339F128 +:104010001091B601112319F1772767FD7095872F4D +:10402000972F0E94E02223E333E343E35FE30E9400 +:1040300044230E94AD226093B501612F772767FD6D +:104040007095872F972F0E94E02223E333E343E309 +:104050005FE30E9444230E94AD226093B6018091E9 +:10406000B701181624F40E94781E8093B70180913E +:10407000B70187FF05C00E94781E81958093B70124 +:104080008091B801181624F40E94781E8093B8011C +:104090008091B80187FF05C00E94781E81958093AA +:1040A000B8010E94A91F1F91089580E0089580E043 +:1040B0000895833099F1843030F4813069F0823092 +:1040C00009F06FC01AC0853009F44AC08530B8F1D4 +:1040D000863009F066C055C020911001822F90E013 +:1040E000860F911D8F3F910520F4260F209310011C +:1040F00008958FEF80931001089520911101822F70 +:1041000090E0860F911D8F3F910520F4260F20939C +:10411000110108958FEF80931101089520911201EC +:10412000822F90E0860F911D8F3F910520F4260F7E +:104130002093120108958FEF80931201089520912A +:104140001301822F90E0860F911D8F3F910520F47F +:10415000260F2093130108958FEF80931301089584 +:1041600020911401822F90E0860F911D8F3F9105C1 +:1041700020F4260F2093140108958FEF80931401EB +:10418000089520911501822F90E0860F911D8F3F99 +:10419000910520F4260F2093150108958FEF809349 +:1041A00015010895833031F1843030F4813061F0AD +:1041B000823009F04AC013C0853091F1853028F172 +:1041C000863009F042C037C080911001681720F492 +:1041D000861B80931001089510921001089580911C +:1041E0001101681720F4861B809311010895109225 +:1041F0001101089580911201681720F4861B8093A5 +:104200001201089510921201089580911301681708 +:1042100020F4861B809313010895109213010895D2 +:1042200080911401681720F4861B8093140108956F +:1042300010921401089580911501681720F4861BCF +:1042400080931501089510921501089521E030E042 +:1042500040E050E004C0220F331F441F551F8A95D1 +:10426000D2F7CA01B9010E94401A0E94261108958E +:104270008B3109F463C08C3100F58E3009F468C0CD +:104280008F3068F4873009F453C0883018F48630D2 +:1042900089F537C0883081F18B3061F58DC081316F +:1042A00009F478C0823118F4803121F55DC086317F +:1042B00009F482C08931F1F47FC0853309F473C0F9 +:1042C000863358F4873209F46EC0883218F48E3180 +:1042D00088F06BC0893271F466C0833430F48A335D +:1042E00008F065C0883331F467C0833409F45BC0DB +:1042F000883481F080E008950E94051E0E94FB1D15 +:1043000059C08091AE01807F8093AE0181E080939F +:10431000BD0108950E94261180E197E220E931E075 +:10432000F9013197F1F70197D9F70E943C1C42C07F +:104330008091AE0180FF2AC0807F29C08091AE01AC +:10434000982F969590959170292F220F8D7F19C0E7 +:104350008091AE01982F9695969590959170292F02 +:10436000220F220F8B7F0DC08091AE01982F969562 +:104370009695969590959170292F220F220F220FD6 +:10438000877F822B8093AE019923B1F08160809367 +:10439000AE0110C00E94261180910D0191E0892785 +:1043A00080930D0107C080E003C08D5101C0895387 +:1043B0000E94262181E0089581E008951F93182F1F +:1043C0008091BD01813089F0813020F0823009F088 +:1043D000BFC03BC0E0910E01F0910F01E081E131DF +:1043E00069F0E23209F0B6C009C0E0910E01F09127 +:1043F0000F01E081E13111F0E23249F4812F0E9496 +:1044000055208823F9F4812F0E943821A4C0812FE0 +:104410000E9457208823B1F4143161F0153128F43B +:104420001B3081F0103141F40AC0193219F01833F1 +:1044300019F408C01092BD0180E090E08CC082E0C9 +:104440008093BD0181E090E086C0193201F11A32FB +:1044500070F41431E1F0153120F4173009F064C024 +:1044600065C0812F8E51863008F05EC01BC01E349F +:1044700009F455C01F3420F41B3409F055C049C05D +:10448000113509F442C0123509F04EC03AC080918E +:10449000BE01882319F01092BE0146C081E08093CE +:1044A000BD0159C01232F9F0133260F41F3199F096 +:1044B000103218F41E3109F510C0103281F011329B +:1044C000E1F40FC0143299F0143278F0153289F00B +:1044D000163299F410C082E011C081E00FC083E071 +:1044E0000DC084E00BC085E009C086E007C087E00E +:1044F00005C088E003C089E001C080E08093BE0170 +:1045000013C08091BE0161E007C08091BE0161E0EF +:1045100009C08091BE016AE00E94592005C08091C7 +:10452000BE016AE00E94D22081E015C09AE090931B +:10453000100184E18093110183E080931201909334 +:10454000130188E08093140188E280931501ECCF79 +:104550001092BD0180E01F91089504D06894B111BC +:104560008DC0089570D088F09F5790F0B92F99278B +:10457000B751A0F0D1F0660F771F881F991F1AF06E +:10458000BA95C9F712C0B13081F077D0B1E0089583 +:1045900074C0672F782F8827B85F39F0B93FCCF304 +:1045A000869577956795B395D9F73EF49095809564 +:1045B000709561957F4F8F4F9F4F0895E89409C084 +:1045C00097FB3EF490958095709561957F4F8F4F46 +:1045D0009F4F9923A9F0F92F96E9BB279395F6955C +:1045E000879577956795B795F111F8CFFAF4BB0FDA +:1045F00011F460FF1BC06F5F7F4F8F4F9F4F16C03E +:10460000882311F096E911C0772321F09EE8872FC7 +:10461000762F05C0662371F096E8862F70E060E083 +:104620002AF09A95660F771F881FDAF7880F9695FC +:10463000879597F9089557FD9058440F551F59F0E5 +:104640005F3F71F04795880F97FB991F61F09F3F7F +:1046500079F087950895121613061406551FF2CFA8 +:104660004695F1DF08C0161617061806991FF1CFF8 +:1046700086957105610508940895E894BB2766271F +:104680007727CB0197F908950BD078C069D028F02F +:104690006ED018F0952309F05AC05FC01124EECFF8 +:1046A000CADFA0F3959FD1F3950F50E0551F629F8D +:1046B000F001729FBB27F00DB11D639FAA27F00D7B +:1046C000B11DAA1F649F6627B00DA11D661F829FA2 +:1046D0002227B00DA11D621F739FB00DA11D621F87 +:1046E000839FA00D611D221F749F3327A00D611DA4 +:1046F000231F849F600D211D822F762F6A2F112486 +:104700009F5750408AF0E1F088234AF0EE0FFF1FD8 +:10471000BB1F661F771F881F91505040A9F79E3F0F +:10472000510570F014C0AACF5F3FECF3983EDCF364 +:10473000869577956795B795F795E7959F5FC1F74C +:10474000FE2B880F911D9695879597F9089597F9F7 +:104750009F6780E870E060E008959FEF80EC089527 +:1047600000240A9416161706180609060895002450 +:104770000A9412161306140605060895092E0394CA +:10478000000C11F4882352F0BB0F40F4BF2B11F43E +:1047900060FF04C06F5F7F4F8F4F9F4F089597FB5F +:1047A000092E07260AD077FD04D00CD006D00020B1 +:1047B0001AF4709561957F4F0895F6F7909581955D +:1047C0009F4F0895AA1BBB1B51E107C0AA1FBB1F27 +:1047D000A617B70710F0A61BB70B881F991F5A958D +:1047E000A9F780959095BC01CD010895F999FECF68 +:1047F00092BD81BDF89A992780B50895A8E1B0E0EF +:1048000042E050E00C941924262FF999FECF1FBAEC +:1048100092BD81BD20BD0FB6F894FA9AF99A0FBEE9 +:10482000019608950E940424272F0C940524DC018E +:10483000CB01FC01F999FECF06C0F2BDE1BDF89AAB +:10484000319600B40D9241505040B8F70895F89455 +:02485000FFCF98 +:1048520020020172080709E108AB087508019B01F3 +:064862000A14030A0828F5 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png new file mode 100644 index 0000000000..5c4c7c7c1b Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png differ diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png new file mode 100644 index 0000000000..dbc51b79b3 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png differ diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c new file mode 100644 index 0000000000..537b15eeac --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c @@ -0,0 +1,282 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define QWERTY 1 // qwerty keys +#define FKEYS 2 // F keys + macros + +#define MACRO_PUBLIC 10 +#define MACRO_PRIVATE 11 + +#define MACRO_STATIC 12 +#define MACRO_CONST 13 + +#define MACRO_VOID 14 +#define MACRO_VAR 15 +#define MACRO_STRING 16 + +#define MACRO_INT 17 +#define MACRO_FLOAT 18 +#define MACRO_BOOL 19 + +#define MACRO_RETURN 20 +#define MACRO_NULL 21 +#define MACRO_BREAK 22 + +#define MACRO_TODO 23 +#define MACRO_NEW 24 +#define MACRO_PARENTHESE 25 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | + * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| + * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |. ~L1 | , ~L2| |Home~L1| End~L2| + * ,------|------|------| |------+--------+------. + * | | | Copy | | UP | | | + * | Enter| Space|------| |------| Space |Enter | + * | ~LSFT| ~WIN | Past | | DOWN | ~WIN | ~LSFT| + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), + KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, + KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, + CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, + LT(1,KC_DOT), LT(2,KC_COMM), + LCTL(KC_C), + SFT_T(KC_ENTER),GUI_T(KC_SPACE),LCTL(KC_V), + // right hand + LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, + KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), + KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), + KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), + LT(2,KC_HOME), LT(1,KC_END), + KC_UP, + KC_DOWN,GUI_T(KC_SPACE), SFT_T(KC_ENTER) + ), +/* Keymap 1: QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Tab | | Esc |------+------+------+------+------+--------| + * | LSHFT | Z | X | C | V | B | | | | N | M | , | . | / | \ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | CTRL | WIN | ALT |ALT GR| Esc | | PgUp | PgDw | Ins | PtSc | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| Left | Right| + * | | | | | | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[QWERTY] = KEYMAP( // layer 2 : QWERTY + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINUS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB, + KC_LCTRL, KC_LGUI,KC_LALT, KC_RALT, KC_ESCAPE, + KC_TRNS, LCTL(KC_X), + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_EQUAL , KC_6, KC_7, KC_8, KC_9, KC_0, 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_SCOLON, KC_QUOTE, + KC_ESCAPE,KC_N, KC_M, KC_TRNS,KC_DOT , KC_SLASH, KC_NONUS_BSLASH, + KC_PGUP , KC_PGDOWN,KC_INSERT ,KC_PSCREEN, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LEFT, KC_RIGHT + ), +/* Keymap 2: F keys + macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | |Public|Static|string|int |return| | | |//TODO| | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Privat|Const |var |float |null |------| |------|new | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | |void |bool |break;| | | |(); | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | Alt | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FKEYS + MACROS +[FKEYS] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, + KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), + KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_TRNS, + KC_TRNS,KC_LALT,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(QWERTY) // FN1 - Momentary Layer 1 +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MACRO_PUBLIC: + if (record->event.pressed) { + return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); + } + break; + case MACRO_PRIVATE: + if (record->event.pressed) { + return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); + } + break; + case MACRO_STATIC: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); + } + break; + case MACRO_CONST: + if (record->event.pressed) { + return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); + } + break; + case MACRO_VOID: + if (record->event.pressed) { + return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); + } + break; + case MACRO_VAR: + if (record->event.pressed) { + return MACRO( T(V), T(A), T(R), T(SPACE), END); + } + break; + case MACRO_STRING: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); + } + break; + case MACRO_BOOL: + if (record->event.pressed) { + return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); + } + break; + case MACRO_INT: + if (record->event.pressed) { + return MACRO( T(I), T(N), T(T), T(SPACE), END); + } + break; + case MACRO_FLOAT: + if (record->event.pressed) { + return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); + } + break; + case MACRO_RETURN: + if (record->event.pressed) { + return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); + } + break; + case MACRO_NULL: + if (record->event.pressed) { + return MACRO( T(N), T(U), T(L), T(L), END); + } + case MACRO_BREAK: + if (record->event.pressed) { + return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); + } + break; + case MACRO_TODO: + if (record->event.pressed) { + return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); + } + break; + case MACRO_NEW: + if (record->event.pressed) { + return MACRO( T(N), T(E), T(W), T(SPACE), END); + } + break; + case MACRO_PARENTHESE: + if (record->event.pressed) { + return MACRO( D(LSHIFT),T(LPRN), T(RPRN),U(LSHIFT), T(SCOLON), END); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md new file mode 100644 index 0000000000..3ceb77ecaf --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md @@ -0,0 +1,46 @@ +# ErgoDox EZ C# Developer configuration + +## Changelog + +* Feb 12, 2016 (V1): + * First version commit + +## About +This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. + +I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. +There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. +The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. + +Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. + +![CSharpDev](csharp_dev_legend.png) + +## Layout design principles +* No key combination required for the most common input characters ( (),[],{},<> ... ) +* No key combination required for the most common actions (copy/paste/undo/save) +* Regroup characters by usage ( + - * = ...) +* Easy access to the most commonly used characters: ; / " . , +* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... + +## Why is it specific to C Sharp +I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. +For example there is no direct access to ~ or $ keys which can be very common in some languages. +Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os + +## In usage +It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. +Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) + +## Improvements +This layout was shared after a bunch of iterations and only once I was happy with it. +Still there are many way to improve or iterate on this: +* Make it language agnostic +* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) +* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur +* Layout 1 is mainly here for safety, most of its unique keys could be transfered to Layout 2 and it could then be removed + +## Issues +One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) + +