diff options
Diffstat (limited to 'keyboard/ergodox_ez')
19 files changed, 6867 insertions, 1252 deletions
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 0000000000..984106ff46 --- /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/dvorak_intl_squisher.hex b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex new file mode 100644 index 0000000000..bd70f5829f --- /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
diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png Binary files differnew file mode 100644 index 0000000000..6a36f9bfa1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png Binary files differnew file mode 100644 index 0000000000..c6e6d913cb --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png Binary files differnew file mode 100644 index 0000000000..23f56ff4c0 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png 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 0000000000..82f55b4bc0 --- /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; + } + +}; 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 0000000000..7076a6ecb2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex new file mode 100644 index 0000000000..ee1d30967d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex @@ -0,0 +1,1240 @@ +: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 new file mode 100644 index 0000000000..d8911af412 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,783 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" + +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#define L0 0 // layer_0 +#define L1 1 // layer_1 +#define L2 2 // layer_2 +#define L3 3 // layer_3 +#define L4 4 // layer_4 +#define L5 5 // layer_5 +#define L6 6 // layer_6 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' + */ +[L0] = KEYMAP( + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, + /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), +/* + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L1] = KEYMAP( + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L2] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L3] = KEYMAP( + KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L4] = KEYMAP( + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | Θ | | | | | | Β | Μ | | | | Ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L5] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L6] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = {}; + +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; +case UC_LEFTWARDS_ARROW: + unicode_action_function(0x21, 0x90); + break; +case UC_GREEK_CAPITAL_LETTER_RHO: + unicode_action_function(0x03, 0xa1); + break; +case UC_SUBSCRIPT_THREE: + unicode_action_function(0x20, 0x83); + break; +case UC_VULGAR_FRACTION_ONE_EIGHTH: + unicode_action_function(0x21, 0x5b); + break; +case UC_GREEK_SMALL_LETTER_LAMDA: + unicode_action_function(0x03, 0xbb); + break; +case UC_VULGAR_FRACTION_ONE_THIRD: + unicode_action_function(0x21, 0x53); + break; +case UC_GREEK_SMALL_LETTER_XI: + unicode_action_function(0x03, 0xbe); + break; +case UC_THERE_DOES_NOT_EXIST: + unicode_action_function(0x22, 0x04); + break; +case UC_SUPERSCRIPT_ONE: + unicode_action_function(0x00, 0xb9); + break; +case UC_GREEK_SMALL_LETTER_BETA: + unicode_action_function(0x03, 0xb2); + break; +case UC_SUBSCRIPT_FIVE: + unicode_action_function(0x20, 0x85); + break; +case UC_GREEK_CAPITAL_LETTER_IOTA: + unicode_action_function(0x03, 0x99); + break; +case UC_VULGAR_FRACTION_ONE_FIFTH: + unicode_action_function(0x21, 0x55); + break; +case UC_GREEK_SMALL_LETTER_PSI: + unicode_action_function(0x03, 0xc8); + break; +case UC_SUBSCRIPT_NINE: + unicode_action_function(0x20, 0x89); + break; +case UC_SUPERSCRIPT_FOUR: + unicode_action_function(0x20, 0x74); + break; +case UC_RIGHTWARDS_ARROW: + unicode_action_function(0x21, 0x92); + break; +case UC_SUPERSCRIPT_SIX: + unicode_action_function(0x20, 0x76); + break; +case UC_DOWNWARDS_ARROW: + unicode_action_function(0x21, 0x93); + break; +case UC_GREEK_SMALL_LETTER_PI: + unicode_action_function(0x03, 0xc0); + break; +case UC_SUPERSCRIPT_TWO: + unicode_action_function(0x00, 0xb2); + break; +case UC_GREEK_CAPITAL_LETTER_OMEGA: + unicode_action_function(0x03, 0xa9); + break; +case UC_GREEK_CAPITAL_LETTER_PSI: + unicode_action_function(0x03, 0xa8); + break; +case UC_SUBSCRIPT_FOUR: + unicode_action_function(0x20, 0x84); + break; +case UC_GREEK_CAPITAL_LETTER_NU: + unicode_action_function(0x03, 0x9d); + break; +case UC_DIVISION_SIGN: + unicode_action_function(0x00, 0xf7); + break; +case UC_GREEK_SMALL_LETTER_SIGMA: + unicode_action_function(0x03, 0xc3); + break; +case UC_GREEK_SMALL_LETTER_RHO: + unicode_action_function(0x03, 0xc1); + break; +case UC_VULGAR_FRACTION_ONE_SIXTH: + unicode_action_function(0x21, 0x59); + break; +case UC_GREEK_SMALL_LETTER_GAMMA: + unicode_action_function(0x03, 0xb3); + break; +case UC_VULGAR_FRACTION_TWO_THIRDS: + unicode_action_function(0x21, 0x54); + break; +case UC_GREEK_SMALL_LETTER_NU: + unicode_action_function(0x03, 0xbd); + break; +case UC_GREEK_SMALL_LETTER_ZETA: + unicode_action_function(0x03, 0xb6); + break; +case UC_GREEK_SMALL_LETTER_EPSILON: + unicode_action_function(0x03, 0xb5); + break; +case UC_GREEK_SMALL_LETTER_KAPPA: + unicode_action_function(0x03, 0xba); + break; +case UC_SUPERSCRIPT_SEVEN: + unicode_action_function(0x20, 0x77); + break; +case UC_GREEK_CAPITAL_LETTER_PI: + unicode_action_function(0x03, 0xa0); + break; +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + unicode_action_function(0x03, 0xc2); + break; +case UC_GREEK_CAPITAL_LETTER_XI: + unicode_action_function(0x03, 0x9e); + break; +case UC_GREEK_SMALL_LETTER_THETA: + unicode_action_function(0x03, 0xb8); + break; +case UC_GREEK_SMALL_LETTER_ETA: + unicode_action_function(0x03, 0xb7); + break; +case UC_SUBSCRIPT_TWO: + unicode_action_function(0x20, 0x82); + break; +case UC_ASYMPTOTICALLY_EQUAL_TO: + unicode_action_function(0x22, 0x43); + break; +case UC_GREEK_SMALL_LETTER_ALPHA: + unicode_action_function(0x03, 0xb1); + break; +case UC_GREEK_CAPITAL_LETTER_PHI: + unicode_action_function(0x03, 0xa6); + break; +case UC_GREEK_SMALL_LETTER_PHI: + unicode_action_function(0x03, 0xc6); + break; +case UC_INFINITY: + unicode_action_function(0x22, 0x1e); + break; +case UC_GREEK_CAPITAL_LETTER_OMICRON: + unicode_action_function(0x03, 0x9f); + break; +case UC_ELEMENT_OF: + unicode_action_function(0x22, 0x08); + break; +case UC_MULTIPLICATION_SIGN: + unicode_action_function(0x00, 0xd7); + break; +case UC_SUBSCRIPT_ZERO: + unicode_action_function(0x20, 0x80); + break; +case UC_GREEK_CAPITAL_LETTER_SIGMA: + unicode_action_function(0x03, 0xa3); + break; +case UC_GREEK_SMALL_LETTER_OMEGA: + unicode_action_function(0x03, 0xc9); + break; +case UC_SUBSCRIPT_ONE: + unicode_action_function(0x20, 0x81); + break; +case UC_GREEK_CAPITAL_LETTER_ZETA: + unicode_action_function(0x03, 0x96); + break; +case UC_GREEK_SMALL_LETTER_TAU: + unicode_action_function(0x03, 0xc4); + break; +case UC_SUPERSCRIPT_FIVE: + unicode_action_function(0x20, 0x75); + break; +case UC_THERE_EXISTS: + unicode_action_function(0x22, 0x03); + break; +case UC_PLUS_MINUS_SIGN: + unicode_action_function(0x00, 0xb1); + break; +case UC_VULGAR_FRACTION_THREE_QUARTERS: + unicode_action_function(0x00, 0xbe); + break; +case UC_SUPERSCRIPT_THREE: + unicode_action_function(0x00, 0xb3); + break; +case UC_EMPTY_SET: + unicode_action_function(0x22, 0x05); + break; +case UC_UPWARDS_ARROW: + unicode_action_function(0x21, 0x91); + break; +case UC_SUPERSCRIPT_NINE: + unicode_action_function(0x20, 0x79); + break; +case UC_GREEK_SMALL_LETTER_DELTA: + unicode_action_function(0x03, 0xb4); + break; +case UC_GREEK_SMALL_LETTER_MU: + unicode_action_function(0x03, 0xbc); + break; +case UC_GREEK_CAPITAL_LETTER_KAPPA: + unicode_action_function(0x03, 0x9a); + break; +case UC_SUBSCRIPT_EIGHT: + unicode_action_function(0x20, 0x88); + break; +case UC_GREEK_CAPITAL_LETTER_ALPHA: + unicode_action_function(0x03, 0x91); + break; +case UC_SUBSCRIPT_SEVEN: + unicode_action_function(0x20, 0x87); + break; +case UC_GREEK_CAPITAL_LETTER_BETA: + unicode_action_function(0x03, 0x92); + break; +case UC_GREEK_CAPITAL_LETTER_ETA: + unicode_action_function(0x03, 0x97); + break; +case UC_SUPERSCRIPT_EIGHT: + unicode_action_function(0x20, 0x78); + break; +case UC_SUPERSCRIPT_ZERO: + unicode_action_function(0x20, 0x70); + break; +case UC_NOT_AN_ELEMENT_OF: + unicode_action_function(0x22, 0x09); + break; +case UC_GREEK_SMALL_LETTER_UPSILON: + unicode_action_function(0x03, 0xc5); + break; +case UC_NOT_EQUAL_TO: + unicode_action_function(0x22, 0x60); + break; +case UC_GREEK_CAPITAL_LETTER_CHI: + unicode_action_function(0x03, 0xa7); + break; +case UC_FOR_ALL: + unicode_action_function(0x22, 0x00); + break; +case UC_GREEK_CAPITAL_LETTER_TAU: + unicode_action_function(0x03, 0xa4); + break; +case UC_VULGAR_FRACTION_ONE_QUARTER: + unicode_action_function(0x00, 0xbc); + break; +case UC_GREEK_SMALL_LETTER_CHI: + unicode_action_function(0x03, 0xc7); + break; +case UC_GREEK_CAPITAL_LETTER_THETA: + unicode_action_function(0x03, 0x98); + break; +case UC_GREEK_SMALL_LETTER_IOTA: + unicode_action_function(0x03, 0xb9); + break; +case UC_GREEK_CAPITAL_LETTER_LAMDA: + unicode_action_function(0x03, 0x9b); + break; +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + unicode_action_function(0x20, 0x7f); + break; +case UC_GREEK_CAPITAL_LETTER_UPSILON: + unicode_action_function(0x03, 0xa5); + break; +case UC_GREEK_CAPITAL_LETTER_MU: + unicode_action_function(0x03, 0x9c); + break; +case UC_GREEK_CAPITAL_LETTER_EPSILON: + unicode_action_function(0x03, 0x95); + break; +case UC_GREEK_CAPITAL_LETTER_GAMMA: + unicode_action_function(0x03, 0x93); + break; +case UC_SUBSCRIPT_SIX: + unicode_action_function(0x20, 0x86); + break; +case UC_GREEK_CAPITAL_LETTER_DELTA: + unicode_action_function(0x03, 0x94); + break; +case UC_VULGAR_FRACTION_ONE_HALF: + unicode_action_function(0x00, 0xbd); + break; + default: + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 0000000000..2c9e0a8376 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,188 @@ +# ManuNeo Ergodox Keyboard Layout + +Compile this file to a `keymap.c` file using `compile_keymap.py` + + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 + + +# Layout Config + + { + "layout": "ergodox_ez", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "key_prefixes": ["DE_", "KC_"], + "macros": { + // TODO: implement macros + // "MUC": "", + }, + // TODO: implement default unicode mode + } + + +# Layers + + +## Layer 0 + + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' + + +## Layer 1 + + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 2 + + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 4 + + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 5 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 6 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png Binary files differnew file mode 100644 index 0000000000..7b5efaae79 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png diff --git a/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png Binary files differnew file mode 100644 index 0000000000..65f92dda1b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png diff --git a/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png Binary files differnew file mode 100644 index 0000000000..a69799b073 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png diff --git a/keyboard/ergodox_ez/keymaps/msc/keymap.c b/keyboard/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 0000000000..e567e513f9 --- /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 0000000000..a466a37af7 --- /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 0000000000..0d14fcbd29 --- /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. diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c index b31d0edcdf..dffcb21da3 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -13,9 +13,11 @@ #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 +#define M_LGUI_SHFT 16 #define SM_SMILE 4 #define SM_SMIRK 5 @@ -30,19 +32,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Basic layer * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LALT | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/RALT| - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |</L1| ^° |AltShf| Left | Right| | Up | Down | CMD-SHIFT | + | #/L1 | - * `----------------------------------' `----------------------------------' + * ,-----------------------------------------------------. ,--------------------------------------------------. + * | 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 | + * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' + * |</L1| ^°/CTRL_CMD | +/CTRL_ALT | UP | DOWN| | Left | Right | CMD-SHFT| ALT-SHIFT | +/L1 | + * `------------------------------------------' `---------------------------------------------' * ,-------------. ,---------------. - * | MDIA | Meh | | Hyper| NUM | + * |`/Meh | Media| | NUM | ´/Hyper | * ,------|------|------| |------+--------+------. * | | | Home | | PgUp | | | * | Back-| Del |------| |------| Enter | Space| @@ -53,21 +55,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_CTRL_CMDV), - KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, - KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, - KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, - LT(SYMB,DE_LESS), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LALT(KC_LSFT), LGUI(KC_LSFT), - M(M_MEH_SH_ACUT), TG(2), + 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 hand - M(M_CTRL_CMDC), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, - KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UE, - DE_H, DE_J, DE_K, DE_L, DE_OE, ALT_T(DE_AE), - KC_RALT, DE_N, DE_M, DE_COMM,DE_DOT, CTL_T(DE_MINS), KC_RSFT, - KC_LEFT, KC_UP,KC_DOWN,KC_RIGHT, LT(SYMB,DE_HASH), - 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(NUMB), ALL_T(DE_OSX_ACUT), KC_PGUP, KC_PGDN,KC_ENT, KC_SPC ), @@ -76,42 +78,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | < | > | ! | ? | | | | | \ | [ | ] | | | # | F12 | + * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | + * | | | ^ | % | | | ~ | | | | | | ~ | ^ | 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_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), 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 + 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 * @@ -135,7 +137,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, @@ -177,7 +179,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, @@ -197,7 +199,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, @@ -209,9 +211,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_0, 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 @@ -238,7 +240,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, @@ -308,11 +310,30 @@ 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; - case M_DE_CIRC_CTRLCMD: + 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(); + 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_OSX_CIRC_CTRLCMD: if (record->event.pressed) { start = timer_read(); return MACRO(D(LCTRL),D(LGUI),END); @@ -324,7 +345,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/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex index fde7201c10..c7cb8d8630 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -1,1199 +1,1197 @@ -:100000000C94F0030C9437040C9437040C943704CC
-:100010000C9437040C9437040C9437040C94370474
-:100020000C9437040C9437040C94370E0C94090F7D
-:100030000C9437040C9437040C9437040C94370454
-:100040000C9437040C947D230C9437040C943704DF
-:100050000C9437040C940F1D0C9437040C94370443
-:100060000C9437040C9437040C9437040C94370424
-:100070000C9437040C9437040C9437040C94370414
-:100080000C9437040C9437040C9437040C94370404
-:100090000C9437040C9437040C9437040C943704F4
-:1000A0000C9437040C9437040C943704470451041F
-:1000B00069048104C904CF04F004D504EB04E1040D
-:1000C000E604DB04B1049904F504760F980F8B1055
-:1000D000980F8B10DD0F00108B1055106810521305
-:1000E000521381138113C413FE130B160B1617142E
-:1000F0000B160C150C15DF150B160B16F61501E17A
-: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
-: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
-: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
-: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
-:00000001FF
+: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 +: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 +: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 Binary files differindex 1d5226974f..8e709ee260 100644 --- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png |