summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Browne <cbbrowne@ca.afilias.info>2016-06-13 16:27:33 -0400
committerChristopher Browne <cbbrowne@ca.afilias.info>2016-06-13 16:27:33 -0400
commit3fe26d47a62117c985843361d279bc73e3c86c40 (patch)
treec31d1da30ca6413b75ea6397c1d2e46648952cbb
parentdc9bf78f2b1d7d894576d87ea9bfc86d7bb3deee (diff)
Restructuring in keeping with recent changes to conventions
-rw-r--r--keyboard/planck/keymaps/README.md3
-rw-r--r--keyboard/planck/keymaps/cbbrowne/.gitignore1
-rw-r--r--keyboard/planck/keymaps/cbbrowne/README.md28
-rw-r--r--keyboard/planck/keymaps/cbbrowne/compiled.hex1463
-rw-r--r--keyboard/planck/keymaps/cbbrowne/config_user.h6
-rw-r--r--keyboard/planck/keymaps/cbbrowne/keymap.c22
-rw-r--r--keyboard/planck/keymaps/cbbrowne/readme.md63
7 files changed, 81 insertions, 1505 deletions
diff --git a/keyboard/planck/keymaps/README.md b/keyboard/planck/keymaps/README.md
index 9152353017..c1711aed80 100644
--- a/keyboard/planck/keymaps/README.md
+++ b/keyboard/planck/keymaps/README.md
@@ -19,4 +19,5 @@ When adding your keymap to this list, keep it organised alphabetically (select l
# List of Planck keymaps
-* **default** default Planck layout \ No newline at end of file
+* **default** default Planck layout
+* **cbbrowne** cbbrowne's Planck layout \ No newline at end of file
diff --git a/keyboard/planck/keymaps/cbbrowne/.gitignore b/keyboard/planck/keymaps/cbbrowne/.gitignore
new file mode 100644
index 0000000000..0cf0c6cc56
--- /dev/null
+++ b/keyboard/planck/keymaps/cbbrowne/.gitignore
@@ -0,0 +1 @@
+compiled.hex
diff --git a/keyboard/planck/keymaps/cbbrowne/README.md b/keyboard/planck/keymaps/cbbrowne/README.md
deleted file mode 100644
index e190c8b41e..0000000000
--- a/keyboard/planck/keymaps/cbbrowne/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-cbbrowne custom keyboard
-==============================
-
-Due to cbbrowne@acm.org
-Christopher Browne
-
-This was originally based on the default keyboard map, but I have been
-doing sundry experimentation:
-
- * To figure things out about the toolset
- * I'm an Emacs guy, so will be needing a fair bit of tuning
- * It made sense to mess around some with keyboard maps.
- - I tried added Workman alongside Dvorak and Colemak
- - Boy, oh boy, these don't help!!!
- - I have done 30 years of learning of Emacs key mappings, and
- these alternative keyboards massively mess me up
- - I added a keypad, originally based on keymaps/numpad.c, but
- mighty substantially revised, as that one seems to be rotated 90
- degrees from usual conventions for number pads
- * The keypad layer also includes some sample "hacks" of cool things,
- all using actions attached in using the function action_get_macro()
- - Key [1][2] aka "q" types out my name, cbbrowne, as a fun example
- of a key generating a bunch of keystrokes. The keystroke is
- sufficiently inconvenient that it isn't terribly practical for me
- to use it, but hey, it shows how others might use this facility
- in a more useful context.
- - Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random
- - Key [3][2] aka "z" uses a random number generator to select a letter a-z at random
diff --git a/keyboard/planck/keymaps/cbbrowne/compiled.hex b/keyboard/planck/keymaps/cbbrowne/compiled.hex
deleted file mode 100644
index f5a208372a..0000000000
--- a/keyboard/planck/keymaps/cbbrowne/compiled.hex
+++ /dev/null
@@ -1,1463 +0,0 @@
-:100000000C94A2020C94E6020C94E6020C94E60214
-:100010000C94E6020C94E6020C94E6020C94E602C0
-:100020000C94E6020C94E6020C94E7140C94B915B7
-:100030000C941B230C94E6020C94E6020C94E6024A
-:100040000C94E6020C9448030C94E6020C94E6022D
-:100050000C94E6020C9483230C94E6020C94E602C2
-:100060000C94E6020C94E6020C94E6020C94E60270
-:100070000C94E6020C94E6020C94E6020C94E60260
-:100080000C945C0B0C94E6020C94E6020C94E602D1
-:100090000C94E6020C94E6020C94E6020C94E60240
-:1000A0000C94E6020C94E6020C94E602261648161E
-:1000B0003617481636178D16B01636170517181747
-:1000C000021A021A311A311A701A901AE61BE61B2C
-:1000D0009B1AE61B4B1B4B1BB21BBB1BE61BE01BFF
-:1000E000581B581B581B581B581B581B581B581B78
-:1000F000581B581B581B581B581B581B581B581B68
-:10010000681B761B7D1B841B8E1B07634236B79BC7
-:10011000D8A71A39685618AEBAAB558C1D3CB7CC67
-:100120005763BD6DEDFD753EF6177231BF000000DF
-:10013000803F08000000BE922449123EABAAAA2AC2
-:10014000BECDCCCC4C3E00000080BEABAAAAAA3EDD
-:1001500000000000BF000000803F00000000000819
-:100160004178D3BB4387D1133D190E3CC3BD4282B6
-:10017000AD2B3E68EC8276BED98FE1A93E4C80EF74
-:10018000FFBE01C4FF7F3F00000000000000000030
-:1001900000000000000000010204060A0F17202CD6
-:1001A0003A4A5D71879DB3C7DAE9F5FCFFFCF5E9D2
-:1001B000DAC7B39D87715D4A3A2C20170F0A0604EF
-:1001C00002010000000000000000000075010106AF
-:1001D00002060105020501050205011502150112BD
-:1001E0000212011A021A0111021101080208290063
-:1001F00014001A000800150017001C0018000C005D
-:10020000120013002A00E000040016000700090095
-:100210000A000B000D000E000F0033002800E10063
-:100220001D001B000600190005001100100036001B
-:100230003700380034002B000030E200E3000152A8
-:100240002C002C0002525000510052004F00350289
-:100250001E021F0220022102220223022402250282
-:10026000260227022A0001003A003B003C003D0024
-:100270003E003F002D022E022F023002310201000B
-:100280004000410042004300440045000053035336
-:10029000035300500100010003530100010001005D
-:1002A000010001000100AB00AA00A900AE0035006A
-:1002B0001E001F0020002100220023002400250032
-:1002C000260027002A0001003A003B003C003D00C8
-:1002D0003E003F002D002E002F00300031000100B5
-:1002E00040004100420043004400450000530353D6
-:1002F0000353005001000100010001000100010052
-:10030000010001000100AB00AA00A900AE00290015
-:1003100001301A000800150017001C005800570093
-:10032000570058002A00E0000230160007000900BC
-:100330000A000B0056002400250026002800E100DA
-:1003400003301B00060019000500110057002100B2
-:1003500022002300370083500030E200E300000059
-:100360002C002C0000531E001F0020002700280333
-:10037000540068006500200050006C0061006E00B1
-:1003800063006B0020004B006500790062006F0085
-:1003900061007200640000002C034F0072007400C2
-:1003A00068006F006C0069006E00650061007200FB
-:1003B00020004B006500790062006F006100720050
-:1003C0006400730000000403090409026D000401C5
-:1003D00000A0FA0904000001030101000921110134
-:1003E0000001223F000705810308000A09040100FB
-:1003F0000103010200092111010001224D0007053E
-:10040000820308000A090402000103000000092118
-:10041000110100012236000705830308000A0904C0
-:10042000030001030000000921110100012239002D
-:10043000070584031000011201100100000008EDFF
-:10044000FE606001000102000105010906A101052D
-:100450000719E029E71500250195087501810205B6
-:1004600008190129059505750191029501750391FA
-:100470000105071900297715002501957875018177
-:1004800002C005010980A101850216010026B700FE
-:100490001A01002AB700751095018100C0050C09EA
-:1004A00001A1018503160100269C021A01002A9C65
-:1004B00002751095018100C005010902A101090121
-:1004C000A1000509190129051500250195057501EA
-:1004D00081029501750381010501093009311581FA
-:1004E000257F95027508810609381581257F9501BC
-:1004F00075088106050C0A38021581257F9501755E
-:10050000088106C0C005010906A101050719E029F7
-:10051000E71500250195087501810295017508818F
-:1005200001050819012905950575019102950175C7
-:100530000391010507190029FF150025FF95067590
-:10054000088100C011241FBECFEFDAE0DEBFCDBFAF
-:1005500004B603FE24C08091200390912103A09152
-:100560002203B09123038730904BA740B04BB9F4DE
-:100570001092200310922103109222031092230361
-:1005800014BE84B7877F84BF88E10FB6F894809348
-:100590006000109260000FBEE0E0F8E3099511E002
-:1005A000A0E0B1E0E0E9FAE502C005900D92A23CBE
-:1005B000B107D9F713E0A2ECB1E001C01D92A0325F
-:1005C000B107E1F70E942D120C94462D0C94000007
-:1005D0000895089581E0089508950C94E9020C941B
-:1005E000EA020C94EC020E94102923E030E0281B60
-:1005F0003109220F2093C6010895282F2F9880914A
-:100600008000211108C0877F8093800010928D00A8
-:1006100010928C001BC0886080938000233019F4F6
-:100620008FEF9FEF0FC083E090E0821B9109880F4E
-:10063000991F2FEF3FEFA90102C0569547958A9564
-:10064000E2F7CA0190938D0080938C000C94F30222
-:100650000E94F30284E08093C5011092C2010895C4
-:10066000279A2F988FEF9FEF9093870080938600B3
-:100670008AE08093800089E1809381000E9479283C
-:100680000C9428030E9430036E9A769A0C94E80228
-:100690001F920F920FB60F9211242F933F938F93B7
-:1006A0009F93EF93FF93E091C301F091C401CF01B9
-:1006B00001969093C4018093C3010090C50102C0CC
-:1006C000F695E7950A94E2F7EF738091C2018230C4
-:1006D00019F4E03251F404C0813039F4EF3329F4D5
-:1006E00080916F008D7F80936F00F0E0E457FE4FA4
-:1006F000E49121E031E0E29FC001E39F900D1124DD
-:100700000090C60102C0969587950A94E2F79093EF
-:100710008D0080938C00FF91EF919F918F913F917D
-:100720002F910F900FBE0F901F901895CF9320918F
-:10073000840030918500FC01613089F028F062303E
-:1007400091F06330B9F133C08281882331F085EEB6
-:100750000E94A6180E94D0282AC085EE26C0828159
-:10076000811146C024C0409100015091010165EB08
-:10077000649FC001659F900D112487589A4D67EAC8
-:1007800070E00E94E22C909301018093000142816D
-:10079000442369F082276AE070E00E94E22CCEE1F7
-:1007A000C80F8C2F0E94A6188C2F0E946E1980E013
-:1007B00090E020C0409100015091010165EB649FE1
-:1007C000C001659F900D112487589A4D67EA70E02B
-:1007D0000E94E22C90930101809300014281442306
-:1007E00031F382276AE170E00E94E22CC4E0D8CFA6
-:1007F0008CEC91E0CF91089581E008950C94FC0376
-:1008000008950C94420380911702882309F448C08C
-:100810008091D3019091D401009779F40E944D23E7
-:100820009093D4018093D3018091D50190E00097FB
-:1008300071F48091D60190E00AC00E945923209162
-:100840000201309103012817390740F329C00197AD
-:10085000880F991F880F991FFC01E952FE4F608194
-:100860007181828193810E94C20AE091D50184E066
-:10087000E89FF0011124E952FE4F6081718182816D
-:1008800093814FE050E00E947A0E8091D50190E074
-:1008900001966091D60170E00E94F62C8093D501FC
-:1008A0000C94ED02109219020C948F0A0895089589
-:1008B00081E0809319020C945704089508958F9253
-:1008C0009F92AF92BF92EF92FF920F931F93CF939D
-:1008D000DF93CDB7DEB7A3970FB6F894DEBF0FBE98
-:1008E000CDBF7C01FC0100811181C8010E944A2119
-:1008F000B8010E9461068C01B7010E94FE038823A3
-:1009000009F4CCC10032F0E51F0741F4F701828100
-:10091000882309F458C00E94DE0EC0C10132F0E500
-:100920001F0741F4F7018281882309F44CC00E941B
-:10093000E70EB4C10232F0E51F0751F4F7018281DE
-:10094000882309F440C00E94DA0E8111F0CFE3CF72
-:100950000332F0E51F0739F4F7018281882399F10A
-:100960000E9458049BC10432F0E51F0739F4F701D7
-:100970008281882341F10E94520490C10532F0E542
-:100980001F0749F4F70182818823E9F08091190259
-:100990008111F1CFE5CF0632F0E51F0739F4F701F9
-:1009A0008281882381F00E94EE0E0AC00732F0E5B2
-:1009B0001F0749F4F7018281882329F00E94F90E6C
-:1009C0000E945E046BC180911902811105C0F7017C
-:1009D00082818111CFC018C1003E110579F4F70161
-:1009E0008281882309F44DC00E948F0A81E08093A0
-:1009F0001802109217021092D60150C1023E110542
-:100A000059F4F70182818823E1F10E948F0A109244
-:100A100018021092170242C1033E110591F4F7012A
-:100A20008281882371F10E948F0A1092180281E05E
-:100A3000809317021092D5011092D4011092D30125
-:100A40002DC10235110559F4F7018281882309F47B
-:100A500025C180910201909103010A970DC00135D3
-:100A6000110579F4F7018281882309F417C1809177
-:100A70000201909103010A96909303018093020171
-:100A80000DC14091060183E2E1E2F1E0DE01119641
-:100A900001900D928A95E1F7F701808121E030E025
-:100AA0002C0F3D1F280F311DC901209104013091E9
-:100AB0000501FC01E20FF31F6081772767FD709548
-:100AC000640F711D882777FD8095982F0E94182A42
-:100AD00020E030E040E451E40E947D294B015C01BC
-:100AE000F701218184E090E0821B9109BC018827F5
-:100AF00077FD8095982F0E94182A9B01AC01C501B3
-:100B0000B4010E9415299B01AC0160E070E080E017
-:100B100090E40E948B2B20E030E04CED50E40E94EA
-:100B2000282B4B015C01F70182818823D1F04FE033
-:100B300050E0C501B4010E947A0E8091180288230A
-:100B4000A1F08091D60124E0829FF0011124E952A6
-:100B5000FE4F80829182A282B3828F5F8093D60102
-:100B600004C0C501B4010E94C20A0F3F110508F07C
-:100B70002ECF94C08091D20181111FC0043130E585
-:100B8000130709F051C00E94000481E08093D20154
-:100B90000E944D239093D1018093D0011092C901FE
-:100BA0001092CB011092CA011092CD011092CC018B
-:100BB0001092CF011092CE0171C08091D00190911E
-:100BC000D1010E945923883C910570F48091C9019C
-:100BD000E82FF0E0EE0FFF1FE653FE4F1183008376
-:100BE0008F5F8093C9015AC0043880E5180721F04F
-:100BF0000538104501F13AC0F7018281882341F0A0
-:100C00001092C70182E01EC0043830E5130759F581
-:100C10008091C701811106C086E20E94A61886E273
-:100C20000E946E1982E01CC00438F0E51F0741F3F2
-:100C300005381045D9F4F7018281882331F01092EC
-:100C4000C80180E20E94BD1929C08091C8018111AC
-:100C500006C087E20E94A61887E20E946E1980E211
-:100C60000E94C4191BC00538104529F381E0809308
-:100C7000C7018093C801C701A3960FB6F894DEBFE1
-:100C80000FBECDBFDF91CF911F910F91FF90EF90DD
-:100C9000BF90AF909F908F900C94EF0280E0A3964E
-:100CA0000FB6F894DEBF0FBECDBFDF91CF911F917D
-:100CB0000F91FF90EF90BF90AF909F908F9008950D
-:100CC00008959CE0799FF001112490E3899FE00D45
-:100CD000F11D1124E60FF11DEE0FFF1FE251FE4F33
-:100CE000859194910895880F991FFC01E259FF4F57
-:100CF000859194910895880F991FFC01E251FE4F50
-:100D00008591949108950F931F93CF93DF93EC01F6
-:100D1000811521E39207A0F5C11580E3D80708F0FB
-:100D2000D7C0C83ED105D8F4C03ED10508F007C2EF
-:100D3000C83AD10578F4C53AD10508F06AC0C13087
-:100D4000D10509F463C008F4F7C1C430D10508F037
-:100D5000F6C1F2C1CB3BD10508F466C0EDC1C115A7
-:100D600090E2D90708F0AFC0C11521E0D20708F022
-:100D7000E6C1C03FD10508F4DFC18E0110651FC276
-:100D8000C03880E5D80700F5C03790E5D90708F0EE
-:100D9000A3C0C11520E5D20709F4ACC050F4CE01C0
-:100DA000905480319F4008F0C7C1DF708E01106AF7
-:100DB00006C2C13080E5D80709F4AEC0C43190E561
-:100DC000D90708F4AFC0B8C1C33820E5D20709F489
-:100DD0008EC050F4C13890E5D90709F482C008F0FC
-:100DE00083C000E011EDEBC1C03181E5D80708F404
-:100DF000A3C1C11597E5D90708F436C1CE019057B4
-:100E00008115904108F098C1DF7093C101E010E0B6
-:100E1000D6C1C53AD10509F494C1C63AD10509F045
-:100E200093C102E810E4CBC1C83AD10509F48FC1DF
-:100E3000C93AD10509F48EC1CA3AD10509F48DC168
-:100E4000CB3AD10509F48CC1CC3AD10509F48BC158
-:100E5000CD3AD10509F48AC1C03BD10509F489C155
-:100E6000CE3AD10509F488C1CF3AD10509F487C13A
-:100E7000C13BD10509F486C1C23BD10509F485C146
-:100E8000C33BD10509F484C1C43BD10509F483C136
-:100E9000C53BD10509F482C1C63BD10509F481C126
-:100EA000C73BD10509F480C1C83BD10509F47FC116
-:100EB000C93BD10509F47EC1CA3BD10509F47DC106
-:100EC00000E014E47CC1CE019F700E947B0678C1D3
-:100ED000DD278E01106C73C1CF70DD278E01146D7C
-:100EE0006EC100E010ED6BC100E012ED68C100E0E2
-:100EF00013ED65C10E94511C0E948F0A0E94560486
-:100F00008FEF94E32CE0815090402040E1F700C047
-:100F100000000E94A82353C18091F4028160809355
-:100F2000F4024DC10E940924811102C00E94E523F0
-:100F30000E941C2490E090931F0380931E03C230F4
-:100F400080E5D80721F480911E03816086C0C430FB
-:100F500090E5D90721F480911E0382607EC0C630DF
-:100F600020E5D20721F480911E03846076C0C8304A
-:100F700080E5D80719F480911E0327C0CA3090E598
-:100F8000D90721F480911E03806167C0CC3020E531
-:100F9000D20721F480911E0380625FC0CE3080E5CD
-:100FA000D80721F480911E03806457C0C03190E5BA
-:100FB000D90721F480911E0380684FC0C23120E51B
-:100FC000D20729F480911E038460886046C0C33034
-:100FD00080E5D80721F480911E038E7F3EC0C53086
-:100FE00090E5D90721F480911E038D7F36C0C7306C
-:100FF00020E5D20721F480911E038B7F2EC0C930DB
-:1010000080E5D80719F480911E0326C0CB3090E507
-:10101000D90721F480911E038F7E1FC0CD3020E5BB
-:10102000D20721F480911E038F7D17C0CF3080E559
-:10103000D80721F480911E038F7B0FC0C13190E54A
-:10104000D90721F480911E038F7707C0C331D045A3
-:1010500031F480911E038B7F877F80931E038091E4
-:101060001E030E942024ABC08D2F99278F709927D3
-:1010700081309105D9F49E012370332702C0880F77
-:10108000991F2A95E2F79C688E0144E0000F111F1A
-:101090004A95E1F700271370802B912B53E0CC0F7A
-:1010A000DD1F5A95E1F7C076DD272FC0823091050C
-:1010B00031F4DC2FCC278E01016F106A80C08330A1
-:1010C000910569F4CE018370992701E010E002C018
-:1010D000000F111F8A95E2F7C8019C680FC0843089
-:1010E0009105B9F4CE018370992701E010E002C0A8
-:1010F000000F111F8A95E2F7C8019A6823E0CC0F10
-:10110000DD1F2A95E1F7C07ED7708C010C2B1D2BBB
-:1011100056C08530910531F4DC2FCC278E01046F49
-:10112000106A4DC0069709F04AC0CF71DD27DC2F49
-:10113000CC278E01106243C000E010E040C08E0159
-:101140003EC001E810E43BC003E810E438C002EE02
-:1011500014E435C009EE14E432C00AEE14E42FC0E2
-:1011600005EB14E42CC006EB14E429C007EB14E4EF
-:1011700026C00CEC14E423C00DEC14E420C003E8FA
-:1011800015E41DC00AE815E41AC002E915E417C009
-:1011900004E915E414C001E216E411C003E216E408
-:1011A0000EC004E216E40BC005E216E408C006E235
-:1011B00016E405C007E216E402C00AE216E4C8011C
-:1011C000DF91CF911F910F9108959CE0799FF001DD
-:1011D000112490E3899FE00DF11D1124E60FF11D0C
-:1011E000EE0FFF1FE251FE4F85919491803E9105D5
-:1011F000E0F4803C910558F58133910509F46FC006
-:1012000048F48932910509F463C08A32910509F4E2
-:101210006DC072C089339105E9F082389105D1F033
-:101220008533910509F44DC067C0833E910581F176
-:1012300038F4803E9105B9F0823E9105D9F05CC04A
-:10124000863E910561F1873E9105A1F155C00E944E
-:101250007306089520911E0320FD02C021FF4CC09B
-:1012600080EE90E049C080911E0380FFF9CF89E3B2
-:1012700090E042C080911E0382FF0EC080911E0349
-:1012800084FF03C080E090E037C083EE90E034C07C
-:1012900080911E0382FFF2CF82EE90E02DC08091FC
-:1012A0001E0383FF0BC080911E0384FDEBCF87EEEE
-:1012B00090E022C080911E0383FFF5CF86EE90E080
-:1012C0001BC080911E0385FF07C089E290E014C017
-:1012D00080911E0385FFF9CF85E390E00DC08091DA
-:1012E0001E0386FF07C08AE290E006C080911E03BD
-:1012F00086FFF9CF81E390E00E94830608950C9465
-:10130000F102E82FF0E0E05BFE4F8081E82FEF7004
-:10131000F0E082958F7021E030E0A90102C0440F17
-:10132000551F8A95E2F740A308950F931F93CF931B
-:10133000DF9385B7806885BF85B7806885BFC3E0C8
-:10134000D0E001E010E0FE01E05BFE4F8081E82F7D
-:10135000EF70F0E021A182958F70A80102C0440FC8
-:10136000551F8A95E2F7CA01822B81A38C2F0E9418
-:101370008109219740F78BE090E061E070E0FC018B
-:10138000EC5BFE4F2081E22FEF70F0E042A122954E
-:101390002F70DB0102C0AA0FBB1F2A95E2F79D0147
-:1013A000242B22A3019758F7DF91CF911F910F9122
-:1013B0000C940104EF92FF920F931F93CF93DF934E
-:1013C00002E212E0C3E0EE24E394F12CD5E08C2F8E
-:1013D0000E9481098BE090E040E050E0FC01EC5B72
-:1013E000FE4F6081E62FEF70F0E020A130E06295C3
-:1013F0006F7002C0359527956A95E2F720FD09C008
-:101400009701082E02C0220F331F0A94E2F7422BE5
-:10141000532B019718F7F801929182918F0184174D
-:10142000950721F051834083D09307018C2F0E94B0
-:101430008109C15060F68091070187FD2CC0815061
-:10144000809307018F3F39F08FE99FE00197F1F713
-:1014500000C0000020C08091200290912102909352
-:1014600029028093280280911E0290911F0290937E
-:1014700027028093260280911C0290911D02909376
-:1014800025028093240280911A0290911B0290936E
-:101490002302809322020E94030481E0DF91CF9116
-:1014A0001F910F91FF90EF900895E82FF0E0EE0F5D
-:1014B000FF1FEE5DFD4F80819181089508950F9388
-:1014C0001F93CF930AE212E0C0E0F801929182915B
-:1014D0008F010E94C522C80FF2E002321F07A9F750
-:1014E0008C2FCF911F910F9108950E940924811193
-:1014F00002C00E94E5230E942E24809309033E9A95
-:10150000809171008D7F8093710082E080939000C4
-:101510008AE18093910081E080932C02089580916C
-:101520002C02811102C00E94750A10927C02109256
-:101530007B02809171008D7F80937100809190007B
-:101540008F738093900010923E0210923D02109291
-:101550007502109276021092770210927802109221
-:10156000740210927302E3E5F2E0A3E4B2E0119298
-:101570001192119211921D921D9282E0E337F807A9
-:10158000B1F70895CF92DF92EF92FF920F931F93DE
-:10159000CF93DF9320913D02222309F484C06B0195
-:1015A0007C0180912C02811102C00E94750A03E720
-:1015B00012E0C7E0D0E0A7019601F8019291829174
-:1015C000729162918F010E947929811131C0FE01CF
-:1015D000EE0FFF1FEE0FFF1FED5AFD4F108211821D
-:1015E00012821382DE01AA0FBB1FAD5BBD4F1196A5
-:1015F0001C921E92C730D105E9F021964481558195
-:10160000668177814083518362837383148215825C
-:101610001682178212968D919C91139711969C9326
-:101620008E9313961C921E92129734961296E2CFC6
-:10163000219708F680917B0290917C02019797FD9B
-:1016400005C090937C0280937B0204C010927C02C0
-:1016500010927B0280917B0290917C022091790212
-:1016600030917A022817390724F010927A021092EA
-:101670007902892BC1F4809171008D7F8093710074
-:10168000809190008F738093900010927502109259
-:1016900076021092770210927802109274021092E1
-:1016A000730210923D02DF91CF911F910F91FF9035
-:1016B000EF90DF90CF9008951F920F920FB60F9288
-:1016C00011244F925F926F927F928F929F92AF926E
-:1016D000BF92CF92DF92EF92FF922F933F934F935F
-:1016E0005F936F937F938F939F93AF93BF93CF93AA
-:1016F000DF93EF93FF9380913D02882309F49BC110
-:10170000C0917B02D0917C021C161D060CF093C187
-:1017100040902D0250902E0260902F027090300267
-:1017200020E030E0A901C301B2010E94242B181669
-:101730000CF065C0C130D10509F452C08091790226
-:1017400090917A02BE010E94F62C7C0190937A025D
-:101750008093790280903F0290904002A0904102D5
-:10176000B090420220E030E040E85FE3C501B40100
-:101770000E94152960933F027093400280934102BA
-:1017800090934202F701EE0FFF1FEE0FFF1FED5A7D
-:10179000FD4FA301920160817181828193810E943A
-:1017A0007D2920E030E040E05EE30E94282B9B0191
-:1017B000AC01C501B4010E94242B18168CF4C7019A
-:1017C0000196BE010E94F62C90937A0280937902D2
-:1017D00010923F0210924002109241021092420277
-:1017E000E0917902F0917A02EE0FFF1FEE0FFF1FDA
-:1017F000ED5AFD4F6081718182819381D0C0C0908C
-:101800007502D0907602E0907702F090780220E0A6
-:1018100030E0A901C701B6010E94792921978823E8
-:1018200009F4A2C0FE01EE0FFF1FEE0FFF1FED5ADD
-:10183000FD4F80809180A280B380A5019401C701F3
-:10184000B6010E94792987FF31C0A501940160E0AB
-:1018500070E08CED93EC0E947D2920E030E040E4C4
-:1018600051E40E947D2920E030E040E05FE30E94E7
-:10187000282B9B01AC0160E070E080E090E40E94C6
-:101880008B2B9B01AC01C501B4010E94282B9B014D
-:10189000AC01C701B6010E94792987FF07C0A701E3
-:1018A000960160E070E08CED93E439C0A5019401ED
-:1018B000C701B6010E94242B18160CF055C0A501D3
-:1018C000940160E070E08CED93E40E947D2920E0BB
-:1018D00030E040E451E40E947D2920E030E040E027
-:1018E0005FE30E94282B9B01AC0160E070E080E088
-:1018F00090E40E948B2B9B01AC01C501B4010E94B6
-:10190000282B9B01AC01C701B6010E94242B18169D
-:101910005CF5A701960160E070E08CED93EC0E940D
-:101920007D2920E030E040E451E40E947D2920E060
-:1019300030E040E05FE30E94282B9B01AC0160E0B7
-:1019400070E080E090E40E948B2B9B01AC01C7010A
-:10195000B6010E94282B60937502709376028093E3
-:1019600077029093780213C0FE01EE0FFF1FEE0F77
-:10197000FF1FED5AFD4F80819181A281B381809339
-:10198000750290937602A0937702B09378026091EB
-:101990007502709176028091770290917802209181
-:1019A0002A0230912B022F3F4FEF340731F02F5F87
-:1019B0003F4F30932B0220932A020E94040F6B01A9
-:1019C0007C0120E034E244EF51E40E94792987FF52
-:1019D00008C086EFC82E88E2D82E84EFE82E81E476
-:1019E000F82E20E030E040E051E4C701B6010E944B
-:1019F000282B9B01AC0160E074E284E79BE40E9429
-:101A00007D296B017C010E94EA2970939700609305
-:101A10009600209108013091090140910A015091EE
-:101A20000B01C701B6010E94282B0E94EA2970937E
-:101A300099006093980080913E02882309F433C195
-:101A4000C0903902D0903A02E0903B02F0903C0204
-:101A500020E030E0A901C701B6010E94242B18162E
-:101A6000D4F580912A0290912B028F3F2FEF92079D
-:101A700029F0019690932B0280932A02C701B601A8
-:101A80000E94040F20E030E040E051E40E94282B47
-:101A90009B01AC0160E074E284E79BE40E947D2935
-:101AA0006B017C010E94EA29709397006093960075
-:101AB000209108013091090140910A0150910B01D8
-:101AC000C701B6010E94282B0E94EA297093990051
-:101AD0006093980008C010929700109296001092A0
-:101AE00099001092980060913302709134026F5FF8
-:101AF0007F4F7093340260933302209196003091AF
-:101B0000970080E090E0232BF1F0C0919600D091F7
-:101B100097000E94162A6B017C01BE0180E090E0D4
-:101B20000E94162A9B01AC01609135027091360229
-:101B300080913702909138020E947D2920E03FEF8A
-:101B40004FE757E410C00E94162A6B017C0120E089
-:101B500030EE4FEF54E4609135027091360280917F
-:101B60003702909138020E94282B9B01AC01C701DB
-:101B7000B6010E94242B87FD96C0809131028F5FB1
-:101B80008093310290E02091050330910603821783
-:101B90009307A0F080911003882319F0109231026E
-:101BA0000DC0809171008D7F8093710080919000B5
-:101BB0008F738093900010923E027DC0809132021C
-:101BC000C0913102811128C0C0900A03D0900B034C
-:101BD000E0900C03F0900D0320E030E0A901C70174
-:101BE000B6010E94242B1816BCF481E080933202C7
-:101BF0001092390210923A0210923B0210923C026B
-:101C0000C0923502D0923602E0923702F09238024A
-:101C1000C150C093310243C01092320210922B0285
-:101C200010922A02E0910703F091080348E0C49F54
-:101C3000E00DF11D112480819181A281B3818093F7
-:101C4000390290933A02A0933B02B0933C0220E009
-:101C500030E040E85EE364817581868197810E946F
-:101C6000282B6B017C0180910C01682F70E080E0D3
-:101C700090E00E94162A20E030E048EC52E40E94F6
-:101C80007D299B01AC01C701B6010E94282B6093FE
-:101C90003502709336028093370290933802109287
-:101CA0003402109233028091090380FD04C0109227
-:101CB0003E0210923D02FF91EF91DF91CF91BF91D3
-:101CC000AF919F918F917F916F915F914F913F91D4
-:101CD0002F91FF90EF90DF90CF90BF90AF909F90AB
-:101CE0008F907F906F905F904F900F900FBE0F90EE
-:101CF0001F901895CF92DF92EF92FF92CF93DF93D0
-:101D00006B017C01EA0180912C02811102C00E94CA
-:101D1000750A8091090380FF46C080917B029091F3
-:101D20007C0208970CF03FC0809171008D7F8093FA
-:101D3000710080913E0281110E948F0A81E08093A0
-:101D40003D0210922B0210922A0220E030E0A901FD
-:101D5000C701B6010E94242B1816DCF480917B0287
-:101D600090917C02FC01EE0FFF1FEE0FFF1FED5A5A
-:101D7000FD4FC082D182E282F382FC01EE0FFF1F91
-:101D8000ED5BFD4FD183C083019690937C028093DD
-:101D90007B0280917100826080937100809190003D
-:101DA000806880939000DF91CF91FF90EF90DF905B
-:101DB000CF9008958091090381700895809109035F
-:101DC0008160809309030E9432240C945D04809109
-:101DD00009038E7F809309030C94322480917D0245
-:101DE00090E0019666E070E00E94F62C80937D0200
-:101DF000089580917D0290E0019766E070E00E9476
-:101E0000F62C80937D0208958F929F92AF92BF929D
-:101E1000CF92DF92EF92FF920F931F93CF93DF93B6
-:101E20006B017C01C0912A02D0912B02BE0180E09F
-:101E300090E00E94162A4B015C01A701960160E028
-:101E400070E08CE594E40E947D299B01AC01C50102
-:101E5000B4010E94282B0E94EA2920917D022330A0
-:101E600009F473C028F4222351F02130E9F02CC189
-:101E7000243009F4A0C0253009F4E0C025C180E079
-:101E800090E0A0E0BFE38093080190930901A09344
-:101E90000A01B0930B0110922D0210922E021092A3
-:101EA0002F021092300210C110922D0210922E02B9
-:101EB00010922F02109230026431710540F46A30A2
-:101EC000710560F520E030E040E85EE32BC0693C3E
-:101ED000710508F0AAC080E090E00E94162A20E078
-:101EE00030E040EA51E40E94142920E030E044E36D
-:101EF00053E40E947D299B01AC010E94282B20E025
-:101F000030E040E05EE30E94282B9B01AC0160E0E2
-:101F100070E080E09EE30E94142944C020E030E09D
-:101F200040E05FE3C701B6010E94282B6B017C01F2
-:101F300080E090E0A0E0BEE3809308019093090167
-:101F4000A0930A01B0930B01BFC010922D02109212
-:101F50002E0210922F02109230024AE0469F90010A
-:101F6000479F300D1124C90168EB7BE00E94E22CF1
-:101F7000BC016C5D754077FF03C071956195710977
-:101F8000882777FD8095982F0E94182A2EE333EC3E
-:101F90004EE259E30E94282B20E030E040EC5EE363
-:101FA0000E941529609308017093090180930A012A
-:101FB00090930B0189C010922D0210922E02109264
-:101FC0002F0210923002CE0183709927892BE1F005
-:101FD000BE016170772780E090E00E94162A20E021
-:101FE00030E040E05EE30E94282B20E030E040E457
-:101FF0005FE30E94152960930801709309018093A3
-:102000000A0190930B010CC080E090E0A0E0BFE3D8
-:102010008093080190930901A0930A01B0930B01EA
-:10202000C770DD27CD2B09F04FC010920801109228
-:10203000090110920A0110920B0146C010922D0264
-:1020400010922E0210922F021092300200E010E047
-:1020500020E03FE3009308011093090120930A0157
-:1020600030930B016739710578F180E090E00E94B0
-:10207000162A20E030E047E153E40E94142920E0D2
-:1020800030E04AE754E40E947D2920E030E048E453
-:1020900052E40E94282B20E030E040EA51E40E9404
-:1020A0005A2A0E94E529660F771F660F771FFB01EA
-:1020B000EC5AFE4F2081318142815381C701B60124
-:1020C0000E94282B6B017C01C701B601DF91CF91E3
-:1020D0001F910F91FF90EF90DF90CF90BF90AF9046
-:1020E0009F908F90089580918E020895CF93DF93F3
-:1020F00000D01F92CDB7DEB79C01809115038430CC
-:1021000019F593E099833B832A839093E9008FEF3D
-:102110009091E800815095FD06C095ED9A95F1F7F4
-:1021200000008111F5CF8091E80085FF0DC040E0EF
-:1021300050E063E070E0CE0101960E94D7128091DA
-:10214000E8008E778093E8000F900F900F90DF915A
-:10215000CF910895CF93DF9300D01F92CDB7DEB714
-:1021600020911503243021F522E029839B838A8363
-:1021700083E08093E9008FEF9091E800815095FD16
-:1021800006C095ED9A95F1F700008111F5CF809189
-:10219000E80085FF0DC040E050E063E070E0CE0154
-:1021A00001960E94D7128091E8008E778093E80014
-:1021B0000F900F900F90DF91CF910895209115030C
-:1021C0002430F1F422E02093E9002FEF3091E80071
-:1021D000215035FD06C035ED3A95F1F7000021118B
-:1021E000F5CF2091E80025FF0BC040E050E065E00E
-:1021F00070E00E94D7128091E8008E778093E8000B
-:102200000895CF93DF93EC0190911503943009F07A
-:1022100046C0809117018823D9F080911801882346
-:10222000B9F09093E9008FEF9091E800815095FD0F
-:1022300006C095E19A95F1F700008111F5CF8091E4
-:10224000E80085FF2CC040E050E060E170E017C07E
-:1022500081E08093E9008FEF9091E800815095FD37
-:1022600006C095ED9A95F1F700008111F5CF8091A8
-:10227000E80085FF14C040E050E068E070E0CE0167
-:102280000E94D7128091E8008E778093E80080E169
-:10229000FE01AEE7B2E001900D928A95E1F7DF9181
-:1022A000CF91089580911403811109C00E946C148C
-:1022B0000E94C9148091E20084608093E200089536
-:1022C000109214030895089508950C94102342E089
-:1022D00061EC81E00E94E61342E061EC82E00E9442
-:1022E000E61342E061EC83E00E94E61342E161EC18
-:1022F00084E00C94E61380911703833009F455C0F1
-:1023000030F4813071F0823009F48EC008958A3043
-:1023100009F47AC08B3009F460C0893009F09CC0A0
-:1023200020C080911603813A09F096C08091E800A0
-:10233000877F8093E80080911A0390911B03892B7B
-:1023400021F460E18EE792E003C060E080E090E07D
-:1023500070E00E9422138091E8008B778093E80060
-:10236000089580911603813209F076C080911A0396
-:1023700090911B03009719F0039709F06DC08091AD
-:10238000E800877F8093E8008091E80082FD05C027
-:10239000809115038111F8CF5FC08091F100809387
-:1023A0008E028091E8008B7753C080911603813AAA
-:1023B00009F052C080911A0390911B03892B09F0F8
-:1023C0004BC08091E800877F8093E8008091E8000F
-:1023D00080FFFCCF8091170136C0809116038132B7
-:1023E000D9F580911A0390911B03892BA9F580914F
-:1023F000E800877F8093E8000E941B1480911803F7
-:10240000809317010C94511C80911603813221F5A1
-:102410008091E800877F8093E8000E941B148091E0
-:10242000190380938F02089580911603813AA1F4D5
-:102430008091E800877F8093E8008091E80080FF2A
-:10244000FCCF80918F028093F1008091E8008E771D
-:102450008093E8000C941B14089584B7877F84BF91
-:1024600088E10FB6F89480936000109260000FBE70
-:1024700090E080E80FB6F89480936100909361003B
-:102480000FBE0E94BE170E946C140E94C914809156
-:10249000E20084608093E20078940E944F170E94CB
-:1024A000C0178DE091E00E946A1780911503853076
-:1024B00069F40E94D122809113038823B1F30E9412
-:1024C000FF22882391F30E94C112EFCF0E94C81708
-:1024D000ECCF292F332723303105C9F064F42130A4
-:1024E000310581F02230310509F043C08DE690E0DE
-:1024F0002AEC33E042C021323105F1F022323105BD
-:1025000041F137C082E190E027E334E036C09927FB
-:102510008130910541F08230910541F0892B49F5D8
-:10252000E6ECF3E005C0E8E9F3E002C0EEE6F3E034
-:10253000849190E09F0121C06430D8F4E62FF0E050
-:10254000EE0FFF1FE055FE4F2081318189E090E0C2
-:1025500014C0643070F470E0FB01EE0FFF1FE8550B
-:10256000FE4F20813181FB01EC55FE4F808190E0D0
-:1025700004C080E090E020E030E0FA013183208365
-:10258000089580E189BD82E189BD09B400FEFDCFD7
-:102590008091D8008F7D8093D8008091E000826088
-:1025A0008093E0008091E00081FDFCCF0895CF9200
-:1025B000DF92EF92FF920F931F93CF93DF93EC0183
-:1025C0008B016A010E943A14811133C0C114D104F5
-:1025D00039F0F60180819181081B190BC80FD91FB2
-:1025E000E12CF12C0115110519F18091E80085FD10
-:1025F00016C08091E8008E778093E800C114D10462
-:1026000049F0F60180819181E80EF91EF182E082A5
-:1026100085E00FC00E943A14882321F30AC08991F3
-:102620008093F10001501109FFEFEF1AFF0ADACF92
-:1026300080E0DF91CF911F910F91FF90EF90DF909D
-:10264000CF90089520911C0330911D032617370762
-:1026500048F06115710539F42091E8002E77209338
-:10266000E80001C0B90140E061157105A9F12091B0
-:102670001503222309F443C0253009F442C02091F8
-:10268000E80023FD40C02091E80022FD32C02091E7
-:10269000E80020FFE9CF4091F3002091F20030E004
-:1026A000342BFC01CF016115710559F0283031053B
-:1026B00040F481918093F100615071092F5F3F4F89
-:1026C000F1CF41E02830310509F040E02091E800E9
-:1026D0002E772093E800C8CF4111C9CF0AC080915E
-:1026E0001503882361F0853061F08091E80083FD57
-:1026F0000AC08091E80082FFF2CF80E0089582E076
-:10270000089583E0089581E0089520911C0330919D
-:102710001D032617370748F06115710539F420911C
-:10272000E8002E772093E80001C0B901FC0120E009
-:102730006115710591F180911503882309F440C05A
-:10274000853009F43FC08091E80083FD3DC0809151
-:10275000E80082FD2FC08091E80080FFE9CF209142
-:10276000F3008091F20090E0922B6115710559F011
-:102770008830910540F424912093F1003196615006
-:1027800071090196F2CF21E0089709F020E08091CD
-:10279000E8008E778093E800CBCF2111CCCF0AC020
-:1027A00080911503882361F0853061F08091E80005
-:1027B00083FD0AC08091E80082FFF2CF80E0089597
-:1027C00082E0089583E0089581E00895982F97307E
-:1027D00058F59093E900981739F07091EC0020912A
-:1027E000ED005091F00003C0242F762F50E021FF20
-:1027F00019C03091EB003E7F3093EB003091ED003B
-:102800003D7F3093ED003091EB0031603093EB0071
-:102810007093EC002093ED005093F0002091EE00B7
-:1028200027FF07C09F5FD3CF8F708093E90081E0BF
-:10283000089580E008958091160387FF11C080916C
-:10284000E80082FD05C0809115038111F8CF11C009
-:102850008091E8008B770BC080911503882349F0A5
-:102860008091E80080FFF8CF8091E8008E77809318
-:10287000E80008952091E4003091E50095E640914C
-:10288000EC00842F817040FF22C08091E80080FD21
-:102890001CC080911503882391F0853091F08091C0
-:1028A000EB0085FD10C04091E4005091E500421717
-:1028B000530729F39A01915011F784E0089582E0BB
-:1028C000089583E0089581E0089580E0089540919F
-:1028D000E80042FFDECF08950E94DA140E94E2145D
-:1028E000E0EEF0E0808181608083E8EDF0E08081BF
-:1028F0008F77808319BCA7EDB0E08C918E7F8C938D
-:1029000080818F7E80831092140308950F931F930C
-:10291000CF93DF930E94DA140E94E214C8EDD0E056
-:1029200088818F77888388818068888388818F7D7C
-:10293000888319BC1092150310921103109213038F
-:102940001092120300EE10E0F80180818B7F8083EB
-:1029500088818160888342E060E080E00E94E61325
-:10296000E1EEF0E080818E7F8083E2EEF0E0808116
-:1029700081608083808188608083F80180818E7F80
-:102980008083888180618883DF91CF911F910F912F
-:102990000895E8EDF0E080818F7E8083E7EDF0E040
-:1029A00080818160808384E082BF81E08093140312
-:1029B0000C948614E8EDF0E080818E7F8083109285
-:1029C000E20008951092DA001092E10008951F923B
-:1029D0000F920FB60F9211242F933F934F935F9353
-:1029E0006F937F938F939F93AF93BF93EF93FF93D7
-:1029F0008091E10082FF0BC08091E20082FF07C05E
-:102A00008091E1008B7F8093E1000E944E178091BE
-:102A1000DA0080FF1FC08091D80080FF1BC080912A
-:102A2000DA008E7F8093DA008091D90080FF0DC09C
-:102A300080E189BD82E189BD09B400FEFDCF81E05E
-:102A4000809315030E94521105C019BC1092150302
-:102A50000E9460118091E10080FF19C08091E20026
-:102A600080FF15C08091E2008E7F8093E20080910C
-:102A7000E20080618093E2008091D80080628093C0
-:102A8000D80019BC85E0809315030E9464118091E1
-:102A9000E10084FF30C08091E20084FF2CC080E11F
-:102AA00089BD82E189BD09B400FEFDCF8091D800C7
-:102AB0008F7D8093D8008091E1008F7E8093E1002C
-:102AC0008091E2008F7E8093E2008091E20081603D
-:102AD0008093E20080911103882311F084E007C005
-:102AE0008091E30087FD02C081E001C083E0809314
-:102AF00015030E9465118091E10083FF29C0809138
-:102B0000E20083FF25C08091E100877F8093E10090
-:102B100082E080931503109211038091E1008E7F73
-:102B20008093E1008091E2008E7F8093E2008091AB
-:102B3000E20080618093E20042E060E080E00E9479
-:102B4000E6138091F00088608093F0000E9463118A
-:102B5000FF91EF91BF91AF919F918F917F916F9175
-:102B60005F914F913F912F910F900FBE0F901F904B
-:102B700018951F920F920FB60F9211242F933F9327
-:102B80004F935F936F937F938F939F93AF93BF9375
-:102B9000CF93DF93EF93FF93C091E900CF708091C3
-:102BA000EC00D82FD17080FDD0E81092E900809120
-:102BB000F000877F8093F00078940E94FD151092BA
-:102BC000E9008091F00088608093F000CD2BCF70F9
-:102BD000C093E900FF91EF91DF91CF91BF91AF9149
-:102BE0009F918F917F916F915F914F913F912F9125
-:102BF0000F900FBE0F901F9018951F93CF93DF93E8
-:102C0000CDB7DEB7AA970FB6F894DEBF0FBECDBF23
-:102C1000E6E1F3E088E08E0F9091F10091938E133E
-:102C2000FBCF0E947B118091E80083FF1FC1809140
-:102C3000160390911703492F50E04A30510508F0D0
-:102C400015C1FA01EA5AFF4F0C940A2D803881F021
-:102C5000823809F00BC180911A038F708093E900CC
-:102C60008091EB0085FB882780F91092E90006C06F
-:102C70008091120390911303911182609091E8006A
-:102C8000977F9093E8008093F1001092F100C8C004
-:102C9000282F2D7F09F0EAC0882319F0823061F0D7
-:102CA000E5C080911803813009F0E0C0933009F04D
-:102CB00080E0809313032BC080911803811127C0FB
-:102CC00080911A038F7009F4D1C08093E90020919C
-:102CD000EB0020FF1CC0933021F48091EB00806258
-:102CE00014C09091EB0090619093EB0021E030E0F4
-:102CF000A90102C0440F551F8A95E2F74093EA00EC
-:102D00001092EA008091EB0088608093EB001092B3
-:102D1000E9008091E800877F86C08111A7C01091EB
-:102D200018031F778091E3008078812B8093E30064
-:102D30008091E800877F8093E8000E941B148091B7
-:102D4000E80080FFFCCF8091E30080688093E3007F
-:102D5000111102C082E001C083E08093150386C098
-:102D60008058823008F082C0809118039091190336
-:102D70008C3D53E0950779F583E08A838AE2898365
-:102D80004FB7F894DE01139620E03EE051E2E32FC6
-:102D9000F0E050935700E49120FF03C0E295EF70FC
-:102DA0003F5FEF708E2F90E0EA3010F0C79601C0C1
-:102DB000C0968D939D932F5F243149F74FBF80912B
-:102DC000E800877F8093E8006AE270E0CE01019618
-:102DD0000E94221314C0AE014F5F5F4F60911A032F
-:102DE0000E946912BC01009709F440C09091E8006C
-:102DF000977F9093E80089819A810E948513809142
-:102E0000E8008B778093E80031C0803879F58091B5
-:102E1000E800877F8093E800809111038093F100A0
-:102E20008091E8008E778093E8000E941B141EC0FA
-:102E300081111CC0909118039230C0F48091E80079
-:102E4000877F8093E800909311030E941B14809168
-:102E50001103811106C08091E30087FD02C081E06B
-:102E600001C084E0809315030E9467118091E800FF
-:102E700083FF0AC08091E800877F8093E8008091FB
-:102E8000EB0080628093EB00AA960FB6F894DEBF49
-:102E90000FBECDBFDF91CF911F9108950895CF93BD
-:102EA000809115038823A1F0C091E900CF70909123
-:102EB000EC00892F817090FD80E8C82B1092E9000A
-:102EC0008091E80083FD0E94FD15CF70C093E9005A
-:102ED000CF91089590939502809394020895E09184
-:102EE0009402F0919502309721F00190F081E02D4D
-:102EF000099480E00895E0919402F0919502309752
-:102F000021F00280F381E02D09940895E09194026C
-:102F1000F0919502309721F00480F581E02D09941D
-:102F2000089520919202309193028217930771F0D5
-:102F30009093930280939202E0919402F091950213
-:102F4000309721F00680F781E02D099408952091B3
-:102F50009002309191028217930771F09093910241
-:102F600080939002E0919402F0919502309721F0C5
-:102F70000084F185E02D0994089508950C94BD17FF
-:102F80000E9444230E9495090E94CA230C94792828
-:102F90005F926F927F928F929F92AF92BF92CF92E9
-:102FA000DF92EF92FF920F931F93CF93DF9300D0A6
-:102FB00000D01F92CDB7DEB70E94DA099FE9C92E73
-:102FC00092E0D92E03E010E0AA24A394B12C502E55
-:102FD000802F0E94550A4C01F601729062906F0199
-:102FE0006826792661147104A1F40150110978F75B
-:102FF0008FEF89838A831B820E944D238160782F03
-:103000009D838C8349815A816B818D810E947818C0
-:1030100038C08091F40281FD0E945E0A2BE030E00E
-:103020007501022E02C0EE0CFF1C0A94E2F7C701E4
-:1030300086219721892B09F129835A828E209F208E
-:1030400091E0892809F490E09B830E944D238160E0
-:10305000782F9D838C8349815A816B818D810E9459
-:103060007818000F111FF801E956FD4F80819181FA
-:10307000E826F926F182E08204C02150310980F669
-:10308000B4CF0E94B125109196020E946F171817B5
-:10309000D1F00E946F17809396020F900F900F90BF
-:1030A0000F900F90DF91CF911F910F91FF90EF90B4
-:1030B000DF90CF90BF90AF909F908F907F906F9058
-:1030C0005F900C947F090F900F900F900F900F90CE
-:1030D000DF91CF911F910F91FF90EF90DF90CF90F4
-:1030E000BF90AF909F908F907F906F905F9008956A
-:1030F000CF93DF93CDB7DEB72B970FB6F894DEBF33
-:103100000FBECDBF4F83588769877A878B87DE01D3
-:10311000119686E0FD0111928A95E9F785E0FE019E
-:10312000379601900D928A95E1F749815A816B811A
-:103130007C818D819E810E94EF1E2B960FB6F894A4
-:10314000DEBF0FBECDBFDF91CF910895CF9388230F
-:1031500009F4C2C0C82F823859F40E946F1781FD4C
-:10316000BBC089E30E94C9210E94962289E30CC05A
-:10317000833879F40E946F1780FDAEC083E50E940A
-:10318000C9210E94962283E50E940B22CF910C94C4
-:103190009622843859F40E946F1782FD9DC087E4FF
-:1031A0000E94C9210E94962287E4EECF8CEF8C0FFB
-:1031B000813A48F48C2F0E94E12781118DC08C2F19
-:1031C0000E94C921E3CF80E28C0F883048F4C77099
-:1031D00081E001C0880FCA95EAF70E944F22D6CF3E
-:1031E0008BE58C0F833078F4C53A29F0C63A31F07C
-:1031F00083E890E005C081E890E002C082E890E0BA
-:10320000CF910C94911788E58C0F833108F064C03E
-:10321000C83A39F1C93A41F1CA3A49F1CB3A51F1C8
-:10322000CC3A59F1CD3A61F1C03B69F1CE3A71F136
-:10323000CF3A79F1C13B81F1C23B89F1C33B91F1B6
-:10324000C43B99F1C53BA1F1C63BA9F1C73BB1F124
-:10325000C83BB9F1C93BC1F1CA3BC9F180E090E07C
-:1032600038C082EE90E035C089EE90E032C08AEE40
-:1032700090E02FC085EB90E02CC086EB90E029C059
-:1032800087EB90E026C08CEC90E023C08DEC90E0C2
-:1032900020C083E891E01DC08AE891E01AC082E96D
-:1032A00091E017C084E991E014C081E292E011C07E
-:1032B00083E292E00EC084E292E00BC085E292E0ED
-:1032C00008C086E292E005C087E292E002C08AE28E
-:1032D00092E0CF910C94A717CF910895882309F419
-:1032E0004BC0823859F40E946F1781FF45C089E3B3
-:1032F0000E94C9210E94962289E30CC0833871F490
-:103300000E946F1780FF38C083E50E94C9210E9488
-:10331000962283E50E940B220C949622843859F45D
-:103320000E946F1782FF28C087E40E94C9210E9473
-:10333000962287E4EFCF9CEF980F913A58F390E2F2
-:10334000980F983050F4877091E001C0990F8A95DA
-:10335000EAF7892F0E945522DFCF9BE5980F933023
-:1033600020F480E090E00C949117885A833120F487
-:1033700080E090E00C94A7170895882321F00E9424
-:103380004F220C9496220895882321F00E94552202
-:103390000C94962208957F928F929F92AF92BF9243
-:1033A000CF92DF92EF92FF920F931F93CF93DF9311
-:1033B0001F92CDB7DEB77C01C62E772EFC010581AA
-:1033C00002950F70128111110E946C220E94C2217D
-:1033D000882379F0112369F080E28C0D883048F061
-:1033E00082E00E94AB210E94C22191E0D82ED92612
-:1033F00001C0D12CE72DE295EF70F0E0E05AFF4FCD
-:103400000C940A2D872D807F072D0F70882311F0D3
-:103410000295007F112389F0002309F499C180E20D
-:103420008C0D883020F4802F0E944F2203C0802F03
-:103430000E945F220E9496228BC18C2D0E946E19E1
-:10344000002309F4C3C180E28C0D883020F4802F62
-:103450000E94552203C0802F0E9465220E9496225E
-:10346000B5C1872D807F972D9F70803211F4892FF1
-:1034700003C0892F8295807FCC2021F0F1E0CF1608
-:10348000A1F01DC0112339F0002319F1013009F515
-:103490000E947F229BC1002319F0013009F496C1DC
-:1034A00089830E948222898110C1112321F0063074
-:1034B00008F08CC10EC0053008F088C106C1112388
-:1034C00059F0002331F0F701958190FF41C19F70C1
-:1034D00095830E94BD197AC1002309F4F6C03EC14C
-:1034E000872D86958695837090E0009719F0019757
-:1034F00061F06CC1112321F08C2D972D937002C0C7
-:1035000080E090E00E94911761C1112321F08C2D81
-:10351000972D937002C080E090E00E94A71756C1DB
-:103520008C2D112319F00E94B92402C00E9421257C
-:103530000E94A6254BC1872D837009F052C011113E
-:1035400045C18C2D829586958770880F880F9C2D9C
-:103550009F70892E912CA12CB12C082E04C0880CB0
-:10356000991CAA1CBB1C0A94D2F7C4FE14C00FE01D
-:1035700010E020E030E0B901A80104C0440F551F5D
-:10358000661F771F8A95D2F7CB01BA0160957095B7
-:103590008095909503C060E070E0CB01272D2695C3
-:1035A0002695237030E02230310569F02330310553
-:1035B00089F0682979298A299B292130310571F000
-:1035C0000E94372003C1682979298A299B290E94F2
-:1035D0005320FCC00E943720C501B4010E941B206B
-:1035E000F5C0112319F0872D817001C086958823BD
-:1035F00009F4ECC08C2D829586958770880F880F12
-:103600009C2D9F70892E912CA12CB12C082E04C0CA
-:10361000880C991CAA1CBB1C0A94D2F7C4FE14C0C7
-:103620000FE010E020E030E0B901A80104C0440F31
-:10363000551F661F771F8A95D2F7CB01BA01609597
-:1036400070958095909503C060E070E0CB01272DC8
-:10365000269526952370422F50E04230510569F09F
-:103660004330510589F0682979298A299B294130FD
-:10367000510571F00E941121A9C0682979298A2970
-:103680009B290E942D21A2C00E941121C501B401D5
-:103690000E94F5209BC08C2D90E0FC01E05EF109BA
-:1036A000E531F10508F050C0E059FF4F0C940A2DA8
-:1036B0000C2D0F70872D8F71112321F00E948E2009
-:1036C000802F07CF0E94AF20802F0E94C4197EC098
-:1036D000112341F0053008F079C0872D8F710E94C9
-:1036E000D42074C0063008F071C0F7CF112339F030
-:1036F000872D8F710E948E2069C01123C9F3872DF9
-:103700008F710E94AF2062C0112329F0872D8F7125
-:103710000E9479205BC00E946F2058C0112351F095
-:10372000172D1F71812F0E948E2063E0812F0E9430
-:10373000A2214CC081E00E94AB21023008F446C0B7
-:1037400082E00E94AB2142C0112331F0002381F2BC
-:103750008C2D0E94A6183AC0002389F28C2D0E945D
-:103760006E1934C0472D4F706C2DC7010E9496030F
-:103770000E94931F2BC0111129C0472D4F7050E09C
-:1037800042305105B9F04CF44115510581F04130FA
-:103790005105E1F40E94A12819C04330510569F098
-:1037A0004430510599F48C2D0E94F3280FC00E94DB
-:1037B0008A280CC00E94BD2809C00E94D02806C0DB
-:1037C000472D4F706C2DC7010E946006DD20F9F077
-:1037D0000E949E2180FD1BC0F70112820E94982149
-:1037E0000E948E20C7010E94161C0E9498210F90F3
-:1037F000DF91CF911F910F91FF90EF90DF90CF90CD
-:10380000BF90AF909F908F907F900C94AF200F90BF
-:10381000DF91CF911F910F91FF90EF90DF90CF90AC
-:10382000BF90AF909F908F907F9008950F931F93BC
-:10383000CF93DF93EC01888199812B813C81232BED
-:10384000B9F09F3F11F48F3F99F0CE010E945F04C1
-:10385000882371F0688179818A810E9494218C018A
-:103860000E9449210E941020B801CE010E94CB196C
-:10387000DF91CF911F910F9108950E946C220E94B9
-:103880007C220E9441220E9496220E9457260E947A
-:10389000A62580E090E00E94911780E090E00C94D3
-:1038A000A7170E945C220C943D1C0E948921292F9D
-:1038B00022952F7030E02C3031054CF42A30310540
-:1038C0006CF42250310922303105A8F407C02C30A5
-:1038D000310569F02F30310551F00DC0803F69F09E
-:1038E00018F4803E40F409C0843F29F406C093FBDD
-:1038F000882780F9089580E0089581E00895CF93A6
-:10390000DF9300D000D01F92CDB7DEB70F900F909D
-:103910000F900F900F90DF91CF910895CF93DF9389
-:1039200000D000D000D0CDB7DEB726960FB6F89401
-:10393000DEBF0FBECDBFDF91CF9108951F93CF9310
-:10394000DF93C0919F0216E08091A002C81799F002
-:10395000D0E01C9FF0011D9FF00D1124EF55FD4F8D
-:103960004081518162817381848195810E948E1C86
-:103970002196C770E9CFDF91CF911F9108954091B3
-:10398000D1025091D2026091D3027091D402809101
-:10399000D5029091D6020C948E1C8091D60282950D
-:1039A0008F7009F054C08091D302882309F44FC06E
-:1039B00080919F02A091A0026091D1027091D202E9
-:1039C0004091D4025091D502B6E08A1709F43FC065
-:1039D00090E041155105C1F17F3F11F46F3FA1F116
-:1039E000B89FF001B99FF00D1124EF55FD4F2181D3
-:1039F00072132AC02081621327C02281211124C0A2
-:103A0000238134812417350710F421503109241BF8
-:103A1000350B283C3105C0F42091D6022F7020616F
-:103A20002093D60226E0289FF001299FF00D112453
-:103A3000EA55FD4F80818F708061808381ED92E037
-:103A40000E94161C0C949E1C01968770BECF089590
-:103A5000CF92DF92EF92FF920F931F93CF93DF935A
-:103A6000CDB7DEB762970FB6F894DEBF0FBECDBFFD
-:103A70008C0185E0F801DE011D9601900D928A957A
-:103A8000E1F7D8014C9111965C91119712966C91C7
-:103A900012971396CD90DC9014973091D1027091CB
-:103AA000D2028091D4029091D502009709F46BC1A3
-:103AB0007F3F19F43F3F09F466C1E090D302EE2046
-:103AC00009F4C0C02091D602C816D90628F0F60124
-:103AD000E81BF90BCF0104C0809590958C0D9D1DBE
-:103AE000FF24F394883C910578F0F12C207F09F0B5
-:103AF000C6C07C2DD98AC88A89890E947F1C81ED25
-:103B000092E00E94161CB1C0822F807F09F046C04F
-:103B1000751314C0341312C0611110C02F702061CE
-:103B20002093D6020E94BF1C81ED92E00E94161CD9
-:103B30008091D602D80115968C932EC0CD2819F10C
-:103B40005F3F11F44F3FF9F0F62E61111CC08091D8
-:103B50009F022091A00236E0821709F45AC090E03B
-:103B6000389FF001399FF00D1124EF55FD4F718101
-:103B7000571306C07081471303C07281711103C0CF
-:103B800001968770E9CFF62E662309F418C180915B
-:103B9000D60281608093D602F12C11C1751308C042
-:103BA000341306C0611104C08091D602D801C3C08D
-:103BB0004D875E878D859E856A8B0E94551C6A891C
-:103BC0008823E1F16623D1F12091D602822F8295DC
-:103BD0008F7090E0029774F08091D1029091D202A0
-:103BE00098878F831986DB86CA862C87CE01079635
-:103BF0000E94161C86E0F801A1EDB2E001900D9242
-:103C00008A95E1F70E94CD1C0E94BF1CFF24F3940B
-:103C1000D6C04D875E878D859E850E948921292F7C
-:103C200022952F7030E0223031050CF0BCC09F701F
-:103C300009F0B6C0805E883008F4C1C0C8010E9497
-:103C4000161CE4CFC816D90608F453C0F601E81BC9
-:103C5000F90BCF01883C910508F450C0F12C7C2D64
-:103C6000D98AC88A89890E947F1CE1EDF2E086E04A
-:103C7000DF011D928A95E9F70E94BF1CA0C0751351
-:103C800014C0341312C0611110C08091D602F80123
-:103C90008583C8010E94161C86E0E1EDF2E0DF0199
-:103CA0001D928A95E9F7FE2C8AC04D875E878D8527
-:103CB0009E856A8B0E94551C6A89882309F4BECFB1
-:103CC000662309F4BBCF2091D602822F82958F7094
-:103CD00090E002970CF48ECF8091D1029091D202A5
-:103CE0009A8389831B82DD82CC822E83CE0101964A
-:103CF0007FCF809590958C0D9D1DACCFF62E6623C1
-:103D000009F49CCF75132EC034132CC02091D60219
-:103D100020FD1FC0822F82958F70D9F0D801159693
-:103D20002C9315978F3049F08F5F982F9295907F45
-:103D3000822F8F70892B15968C93C8010E94161CB8
-:103D400086E0F801A1EDB2E001900D928A95E1F7CD
-:103D500093CF86E0F801A1EDB2E001900D928A9533
-:103D6000E1F72DC04D875E878D859E850E94551C8D
-:103D7000811140CF8091D60281608093D602C80124
-:103D80000E94161C1CC0662309F458CF4D875E871D
-:103D90008D859E850E94551C882309F44FCF2ACF1C
-:103DA000811148CF0CC0243031050CF047CF9F70F3
-:103DB00009F440CFF8019581907F09F03BCF8F2D1A
-:103DC00062960FB6F894DEBF0FBECDBFDF91CF91E4
-:103DD0001F910F91FF90EF90DF90CF9008951F9368
-:103DE000CF93DF93CDB7DEB72C970FB6F894DEBF35
-:103DF0000FBECDBF4F83588769877A878B879C8793
-:103E0000CE0107960E94281D882369F08F8198852E
-:103E10002A853B85232BF1F19F3F09F063C08F3F3B
-:103E200009F060C037C086E0FE013796DE011196CA
-:103E300001900D928A95E1F76F817885EA85FB857F
-:103E4000309741F17F3F11F46F3F21F12091A002A3
-:103E500030E0C90101968770992740919F0250E098
-:103E60008417950709F447C069837A83FD83EC833F
-:103E700096E0929FD001939FB00D1124AF55BD4F96
-:103E8000FE01319601900D929A95E1F78093A00280
-:103E90000E949E1C16E080919F029091A0028917BB
-:103EA000C1F1189FC00111248F559D4F0E94281DFC
-:103EB000882379F1E0919F021E9FF0011124EF55B4
-:103EC000FD4F4081518162817381848195810E947F
-:103ED0008E1C80919F0290E00196877099278093B5
-:103EE0009F02D9CF4F81588569857A858B859C85BE
-:103EF0000E948E1CCFCF0E94511C1092A0021092E3
-:103F00009F02E1EDF2E086E0DF011D928A95E9F77C
-:103F1000C1CF2C960FB6F894DEBF0FBECDBFDF9198
-:103F2000CF911F910895EF92FF920F931F93CF931C
-:103F3000DF938C01009709F46CC0F12CEE24E3941C
-:103F4000E8012196F8018491843740F4843008F028
-:103F500051C0813081F0823019F15BC0853709F49E
-:103F600044C0A8F19CE7980F903708F052C08F77B3
-:103F70000E946E1941C00E5F1F4FFE01C49180E286
-:103F80008C0F883048F4C7708E2D01C0880FCA95F9
-:103F9000EAF70E946F2214C08C2F0E94A6182DC031
-:103FA0000E5F1F4FFE01C49180E28C0F883058F4E1
-:103FB000C7708E2D01C0880FCA95EAF70E9475223E
-:103FC0000E9496221AC08C2F0E946E1916C00E5F96
-:103FD0001F4FFE01C491CC2381F08FE99FE0019730
-:103FE000F1F700C00000C150F6CF0E5F1F4FFE0179
-:103FF000F49003C00E94A6188E018F2D882309F427
-:104000009FCFEFE9FFE03197F1F700C0000081504A
-:10401000F5CFDF91CF911F910F91FF90EF90089511
-:1040200008956093DB027093DC028093DD0290932D
-:10403000DE020C943D1C0F931F930091DB02109144
-:10404000DC022091DD023091DE02DC01CB01802B0D
-:10405000912BA22BB32B8093DB029093DC02A093D5
-:10406000DD02B093DE021F910F910C943D1C0F9363
-:104070001F930091DB021091DC022091DD02309150
-:10408000DE02DC01CB0180239123A223B3238093A2
-:10409000DB029093DC02A093DD02B093DE021F915D
-:1040A0000F910C943D1C0F931F930091DB02109114
-:1040B000DC022091DD023091DE02DC01CB018027A1
-:1040C0009127A227B3278093DB029093DC02A09371
-:1040D000DD02B093DE021F910F910C943D1C1092F3
-:1040E000D7021092D8021092D9021092DA020C94E0
-:1040F0003D1C41E050E060E070E004C0440F551FFB
-:10410000661F771F8A95D2F74093D7025093D80243
-:104110006093D9027093DA020C943D1C41E050E0A8
-:1041200060E070E004C0440F551F661F771F8A953A
-:10413000D2F78091D7029091D802A091D902B09184
-:10414000DA02482B592B6A2B7B2B4093D7025093D2
-:10415000D8026093D9027093DA020C943D1C41E0BE
-:1041600050E060E070E004C0440F551F661F771FE9
-:104170008A95D2F740955095609570958091D702B9
-:104180009091D802A091D902B091DA024823592324
-:104190006A237B234093D7025093D8026093D902BD
-:1041A0007093DA020C943D1C41E050E060E070E056
-:1041B00004C0440F551F661F771F8A95D2F7809160
-:1041C000D7029091D802A091D902B091DA02482783
-:1041D00059276A277B274093D7025093D8026093D0
-:1041E000D9027093DA020C943D1C0F931F93009137
-:1041F000D7021091D8022091D9023091DA02DC0165
-:10420000CB01802B912BA22BB32B8093D7029093C1
-:10421000D802A093D902B093DA021F910F910C94A7
-:104220003D1C0F931F930091D7021091D80220914B
-:10423000D9023091DA02DC01CB0180239123A22341
-:10424000B3238093D7029093D802A093D902B0935E
-:10425000DA021F910F910C943D1C0F931F93009154
-:10426000D7021091D8022091D9023091DA02DC01F4
-:10427000CB0180279127A227B3278093D702909361
-:10428000D802A093D902B093DA021F910F910C9437
-:104290003D1C0895CF92DF92EF92FF920F931F93F0
-:1042A000CF93DF938C01C090DB02D090DC02E090D2
-:1042B000DD02F090DE028091D7029091D802A091A9
-:1042C000D902B091DA02C82AD92AEA2AFB2ACFE118
-:1042D000D0E0D701C6010C2E04C0B695A7959795DE
-:1042E00087950A94D2F780FF06C0B8018C2F0E94F0
-:1042F000E508019721F4219760F780E001C08C2F39
-:10430000DF91CF911F910F91FF90EF90DF90CF90B1
-:104310000895CF93DF93EC010E944A21BE010E94D1
-:10432000E508DF91CF910895CB010E94892108957E
-:104330008091DF0285958595859508958091DF02AE
-:104340008770089598E0899F90011124262B20936F
-:10435000DF020C948E202091DF02809582238093CF
-:10436000DF02982F977069F430E0482F552747FDFA
-:1043700050952417350729F08595859585950C94DA
-:10438000AF2008959091DF02977081E009F480E0FA
-:10439000089590911701992321F09091180191119E
-:1043A00009C02091190130911A01F90132969FEF4D
-:1043B00040E01FC0982F9695969596959F3050F5A2
-:1043C000E0911901F0911A01E90FF11D877021E0C8
-:1043D00030E0A90102C0440F551F8A95E2F7CA01D7
-:1043E0009181892B818308959F3F39F04F5F4E3033
-:1043F00041F051915813F8CF0DC05111F7CF942FC0
-:10440000F5CF9F3F39F0F901E90FF11D97FDFA95BE
-:1044100082830895089590911701992321F0909136
-:104420001801911109C02091190130911A01F90167
-:104430003296205F3F4F1FC0982F96959695969580
-:104440009F30F0F4E0911901F0911A01E90FF11D8C
-:10445000877021E030E0A90102C0440F551F8A9502
-:10446000E2F7CA018095918189238183089531966D
-:10447000E217F30729F090819813F9CF1082F7CF54
-:10448000089581E090E0E0911901F0911A01E80FA0
-:10449000F91F1082019680319105A9F70895909136
-:1044A000F302892B8093F302089580959091F30293
-:1044B00089238093F30208951092F3020895909156
-:1044C000F202892B8093F202089580959091F20276
-:1044D00089238093F20208951092F2020895909138
-:1044E000F102892B8093F102089580959091F10259
-:1044F00089238093F10208951092F1020895809328
-:10450000E00208951092E0020895809119019091BF
-:104510001A01FC0131969C01205F3F4F80E0919190
-:1045200091118F5FE217F307D1F70895E091190118
-:10453000F0911A018091F3028083E0911901F091CA
-:104540001A0190818091F202892B8083E0911901F8
-:10455000F0911A0190818091F102892B80838091E2
-:10456000E002882361F0E0911901F0911A01908135
-:10457000892B80830E94852281111092E002809114
-:10458000190190911A010C947B1720E0009739F0E3
-:10459000AC0141505109842395232F5FF7CF822F1F
-:1045A000089580911503843039F11092F50220E4CA
-:1045B00088E190E00FB6F894A895809360000FBE54
-:1045C0002093600080E00E94FD0280E00E947F094D
-:1045D00083B7817F846083BF83B7816083BF789412
-:1045E000889583B78E7F83BF88E10FB6F894809358
-:1045F0006000109260000FBE08950895089580E055
-:104600000E94FD020E94FD220E94DA090E94FE2201
-:104610000E945F0A91E0811101C090E0892F089506
-:104620000E94511C80E00E94FD020E9479280E9495
-:104630006F170C947F091F920F920FB60F921124DF
-:104640008F939F93AF93BF938091F502811113C015
-:104650008091F6029091F702A091F802B091F902D0
-:104660004196A11DB11D8093F6029093F702A0938D
-:10467000F802B093F902BF91AF919F918F910F9083
-:104680000FBE0F901F90189582E084BD93E095BDFA
-:104690009AEF97BD80936E0008952FB7F89480919C
-:1046A000F6029091F702A091F802B091F9022FBFA3
-:1046B0000895CF92DF92EF92FF920F931F932FB73F
-:1046C000F8944091F6025091F7026091F8027091CF
-:1046D000F9022FBF6A017B01EE24FF248C0120E048
-:1046E00030E0C016D106E206F30610F4415051093D
-:1046F0009A01281B390BC9011F910F91FF90EF9070
-:10470000DF90CF9008951F920F920FB60F92112451
-:104710008F939F93AF93BF938091F6029091F7028E
-:10472000A091F802B091F9020196A11DB11D8093EC
-:10473000F6029093F702A093F802B093F902BF91AA
-:10474000AF919F918F910F900FBE0F901F90189572
-:104750000E946C14F8942FEF87EA91E62150804074
-:104760009040E1F700C0000087E090EBDC0180930F
-:10477000200390932103A0932203B09323039CE092
-:1047800088E10FB6F894A895809360000FBE9093CF
-:104790006000FFCF0E940924811102C00E94E5231E
-:1047A0000E9414248093F4020E941C2480931E0310
-:1047B00087FB882780F9809318010E941824682FAE
-:1047C00070E080E090E00C9411206DEE7EEF80E0D0
-:1047D00090E00E94302D60E082E090E00E941E2D6B
-:1047E00060E083E090E00E941E2D60E084E090E0B5
-:1047F0000E941E2D60E085E090E00E941E2D60E08A
-:1048000086E090E00E941E2D6FEF87E090E00C9410
-:104810001E2D80E090E00E94182D21E08D3E9E4FDD
-:1048200009F020E0822F089582E090E00C94102D92
-:1048300083E090E00C94102D84E090E00C94102D17
-:10484000682F84E090E00C941E2D86E090E00C949C
-:10485000102D682F86E090E00C941E2D87E090E0EC
-:104860000C94102D682F87E090E00C941E2D809101
-:10487000FC0280FF0BC060911E0185E0689FB001C3
-:10488000112475956795759567952BC081FF09C0B3
-:1048900060911E0185E0689FB001112475956795B0
-:1048A00020C082FF07C060911E0185E0689FB001B3
-:1048B000112417C09091FD029923D1F060911D0140
-:1048C000961788F720911E0185E0289F90011124FA
-:1048D000929FA001939F500D112470E0CA010E9485
-:1048E000F62C6038710540F46115710539F002C08D
-:1048F00065E070E0862F08958FE7089581E00895C0
-:104900008091FC0280FF08C060911C0170E07595E9
-:1049100067957595679521C081FF06C060911C0160
-:1049200070E07595679519C082FF04C060911C0105
-:1049300070E010C09091FD029923C1F060911B01BD
-:104940009617A0F780911C01899FC001112470E087
-:104950000E94F62C6038710528F46115710521F06C
-:10496000862F08958FE7089581E0089561E070E053
-:10497000F4CF803F21F40E943724819504C0813F09
-:1049800029F40E943724809300030895823F21F484
-:104990000E943724819504C0833F29F40E94372464
-:1049A0008093FF020895893F19F40E94802405C076
-:1049B0008A3F31F40E9480248195809301030895F9
-:1049C0008B3F21F40E948024819504C08C3F29F400
-:1049D0000E948024809302030895843F21F48091F3
-:1049E000FE02816017C0853F21F48091FE02826043
-:1049F00011C0863F21F48091FE0284600BC0873F86
-:104A000021F48091FE02886005C0883F31F48091D6
-:104A1000FE0280618093FE0208958D3F21F4809113
-:104A2000FC0281600BC08E3F21F48091FC02826009
-:104A300005C08F3F29F48091FC0284608093FC02C2
-:104A40000895803F39F48091000387FF6CC0109275
-:104A5000000369C0813F29F4809100031816BCF35C
-:104A600062C09091FF02823F29F497FF5CC01092D0
-:104A7000FF0259C0833F19F41916CCF354C0893F83
-:104A800041F48091010318160CF04DC010920103FF
-:104A90004AC08A3F29F48091010387FF44C0F6CFC2
-:104AA0008B3F39F48091020387FF3DC010920203CF
-:104AB0003AC08C3F29F4809102031816BCF333C02E
-:104AC000843F21F48091FE028E7F17C0853F21F440
-:104AD0008091FE028D7F11C0863F21F48091FE02FD
-:104AE0008B7F0BC0873F21F48091FE02877F05C03A
-:104AF000883F31F48091FE028F7E8093FE0213C0C6
-:104B00008D3F21F48091FC028E7F0BC08E3F21F4FB
-:104B10008091FC028D7F05C08F3F29F48091FC02BB
-:104B20008B7F8093FC028091FF0281110EC08091E7
-:104B3000000381110AC080910103811106C0809198
-:104B40000203811102C01092FD0208958EEF92E0DF
-:104B50000E9486170E944D239093FB028093FA02D5
-:104B600008951F93CF93DF938091FA029091FB02F7
-:104B70000E945923AC019091FD02992321F02091CC
-:104B80001F0130E006C0209120018AE0289F90019B
-:104B900011244217530708F486C08091FF02C09188
-:104BA0000003D091010310910203811107C0C111CC
-:104BB00076C0D11174C0111172C075C09F3F19F039
-:104BC0009F5F9093FD02181624F40E94372480936F
-:104BD000FF028091FF0287FF05C00E943724819564
-:104BE0008093FF021C1624F40E9437248093000354
-:104BF0008091000387FF05C00E9437248195809330
-:104C000000036091FF02662339F1C0910003CC23B9
-:104C100019F1772767FD7095872F972F0E94182A23
-:104C200023E333E343E35FE30E94282B0E94E5295B
-:104C30006093FF026C2F772767FD7095872F972F62
-:104C40000E94182A23E333E343E35FE30E94282B07
-:104C50000E94E529609300031D1624F40E9480241D
-:104C6000809301038091010387FF05C00E94802487
-:104C7000819580930103111624F40E94802480936F
-:104C800002038091020387FF05C00E948024819562
-:104C900080930203DF91CF911F910C94A6259F3F33
-:104CA00009F08ECF96CFDF91CF911F910895EEEF4F
-:104CB000F2E085E0DF011D928A95E9F71092FD028E
-:104CC0001092FC020895833081F128F4813059F06C
-:104CD0008230D1F00895853009F449C0B8F18630AA
-:104CE00009F456C0089580912001262F30E0280F46
-:104CF000311D2F3F310524F4680F60932001089582
-:104D00008FEF80932001089580911F01262F30E0BE
-:104D1000280F311D2F3F310524F4680F60931F01C8
-:104D200008958FEF80931F01089580911E01262F13
-:104D300030E0280F311D2F3F310524F4680F6093B8
-:104D40001E0108958FEF80931E01089580911D012B
-:104D5000262F30E0280F311D2F3F310524F4680F36
-:104D600060931D0108958FEF80931D010895809138
-:104D70001C01262F30E0280F311D2F3F310524F470
-:104D8000680F60931C0108958FEF80931C010895B4
-:104D900080911B01262F30E0280F311D2F3F310558
-:104DA00024F4680F60931B0108958FEF80931B011B
-:104DB0000895833011F128F4813049F0823091F068
-:104DC0000895853081F120F18630C1F108958091F8
-:104DD0002001681720F4861B80932001089510920B
-:104DE0002001089580911F01681720F4861B80938D
-:104DF0001F01089510921F01089580911E016817E8
-:104E000020F4861B80931E01089510921E010895C0
-:104E100080911D01681720F4861B80931D01089561
-:104E200010921D01089580911C01681720F4861BC3
-:104E300080931C01089510921C01089580911B011C
-:104E4000681720F4861B80931B01089510921B01A4
-:104E500008950F931F93873208F048C08E3108F0F1
-:104E60008DC0803109F477C008F5873009F461C03E
-:104E700068F4863009F09DC08091F402817F8E7FB6
-:104E80008093F40281E08093040394C08B3009F492
-:104E900089C08E3009F08DC08091F40282FB2227F8
-:104EA00020F991E0922790FB82F95EC0863109F4E7
-:104EB00079C060F4813109F07CC00E94511C90914E
-:104EC000180181E08927809318016CC0893109F4A9
-:104ED00069C08B3109F06DC08091F40281FB2227FB
-:104EE00020F991E0922790FB81F93EC0883309F4C4
-:104EF00059C050F4893209F457C0853309F454C0BD
-:104F0000873209F451C055C0833409F44DC028F4E8
-:104F10008A3308F44EC0895332C0883409F049C03E
-:104F20000E94511C0E948F0A0E9456040E94A823CE
-:104F300039C09091F402892F8095817080FB90F99F
-:104F400029F0966098609093F40234C0997F977F1F
-:104F50009093F40227C08091F40283FB222720F96A
-:104F600091E0922790FB83F98093F4029923D1F08A
-:104F70008091F40281608093F40214C08D5141E06D
-:104F800050E060E070E08A019B0104C0000F111F37
-:104F9000221F331F8A95D2F7C901B8010E94112040
-:104FA0000E94511C81E006C061E070E080E090E06A
-:104FB000F5CF80E01F910F91089580E0089580E083
-:104FC0000895CF93C82F80910403813069F018F0C1
-:104FD0008230C9F184C0E0911901F0911A018081F9
-:104FE000823209F07EC007C0E0911901F0911A01E8
-:104FF0008081823261F48C2F0E94DD27811104C0F0
-:105000008C2F0E9429271DC081E090E01AC08C2FB0
-:105010000E94DF27811114C0C43179F048F4CB30ED
-:1050200079F0C03109F061C082E08093040308C0C8
-:10503000C93219F0C83321F058C01092040355C08A
-:1050400081E0817054C0C93291F120F5C43179F109
-:10505000B0F4C73009F047C08EE18093200182E3AD
-:1050600080931F018AE080931E0184E180931D01DB
-:1050700088E080931C0188E280931B0134C0CE51EC
-:10508000C63088F5EC2FF0E0E854FE4F8081809325
-:10509000030329C0CE34E9F020F4CB3421F56AE0D3
-:1050A00013C0C13579F0C235F1F461E00DC08091D3
-:1050B0000303882319F01092030315C081E0809345
-:1050C000040315C061E006C0809103030E946326BB
-:1050D0000AC06AE0809103030E94D92604C010929E
-:1050E000040380E004C081E002C080E0AACFCF9139
-:1050F00008950E940924811102C00E94E5230E94A4
-:10510000252480931F0380FF02C0869501C080E0A4
-:105110000C94FD0280911F03982F9695292F30E063
-:10512000233031054CF49F5F990F8170892B81608A
-:1051300080931F030E94292480911F0386950C945D
-:10514000FD0280911F03982F969591F09158990F29
-:105150008170892B80931F038E7F91E009F490E08A
-:1051600080911F0390FB80F980931F030E942924E4
-:1051700080911F0386950C94FD0280911F03982F48
-:10518000909590FB80F980931F030E9429248091C1
-:105190001F0380FF02C0869501C080E00C94FD02D1
-:1051A00090911F03892F86958F5F8F779170843040
-:1051B00028F4880F892B80931F0302C090931F034C
-:1051C00080911F038E7F91E009F490E080911F038E
-:1051D00090FB80F980931F030E94292480911F0374
-:1051E00086950C94FD0220911F03922F9695892796
-:1051F000982F990F822F8170892B80931F038E7FA8
-:1052000091E009F490E080911F0390FB80F9809376
-:105210001F030E94292480911F0386950C94FD0290
-:1052200080911F03869508955058BB27AA270ED05A
-:10523000D1C1C2D130F0C7D120F031F49F3F11F479
-:105240001EF4B7C10EF4E095E7FB9FC1E92FD3D15F
-:1052500080F3BA17620773078407950718F071F493
-:105260009EF5EBC10EF4E0950B2EBA2FA02D0B018D
-:10527000B90190010C01CA01A0011124FF27591B9B
-:1052800099F0593F50F4503E68F11A16F040A22FA1
-:10529000232F342F4427585FF3CF46953795279512
-:1052A000A795F0405395C9F77EF41F16BA0B620B11
-:1052B000730B840BBAF09150A1F0FF0FBB1F661F58
-:1052C000771F881FC2F70EC0BA0F621F731F841F9B
-:1052D00048F4879577956795B795F7959E3F08F0C1
-:1052E000B3CF9395880F08F09927EE0F9795879580
-:1052F000089527D108F481E008950CD06BC163D1E3
-:1053000040F05AD130F021F45F3F19F03EC1511105
-:1053100095C14FC170D198F39923C9F35523B1F3C7
-:10532000951B550BBB27AA2762177307840738F014
-:105330009F5F5F4F220F331F441FAA1FA9F333D073
-:105340000E2E3AF0E0E830D091505040E695001C27
-:10535000CAF729D0FE2F27D0660F771F881FBB1FE3
-:10536000261737074807AB07B0E809F0BB0B802DBD
-:10537000BF01FF2793585F4F2AF09E3F510568F009
-:1053800004C15CC15F3FECF3983EDCF386957795F2
-:105390006795B795F7959F5FC9F7880F911D96950B
-:1053A000879597F90895E1E0660F771F881FBB1F67
-:1053B000621773078407BA0720F0621B730B840B14
-:1053C000BA0BEE1F88F7E095089504D06894B111E8
-:1053D00035C1089518D188F09F5790F0B92F9927BB
-:1053E000B751A0F0D1F0660F771F881F991F1AF0F0
-:1053F000BA95C9F712C0B13081F01FD1B1E008955C
-:105400001CC1672F782F8827B85F39F0B93FCCF3DC
-:10541000869577956795B395D9F73EF490958095E5
-:10542000709561957F4F8F4F9F4F0895E89409C005
-:1054300097FB3EF490958095709561957F4F8F4FC7
-:105440009F4F9923A9F0F92F96E9BB279395F695DD
-:10545000879577956795B795F111F8CFFAF4BB0F5B
-:1054600011F460FF1BC06F5F7F4F8F4F9F4F16C0BF
-:10547000882311F096E911C0772321F09EE8872F49
-:10548000762F05C0662371F096E8862F70E060E005
-:105490002AF09A95660F771F881FDAF7880F96957E
-:1054A000879597F9089588D018F011F08CD038F4CA
-:1054B00080C0C4C0E92F9FD0B0F35523C9F3E7FBE8
-:1054C0006217730784079507A8F199F3E92FFF275F
-:1054D00088232AF03197660F771F881FDAF7952FF8
-:1054E0005527442332F091505040220F331F441F60
-:1054F000D2F7BB27E91BF50B621B730B840BB109B9
-:10550000C1F222F4620F731F841FB11D31972AF07C
-:10551000660F771F881FBB1FEFCF915050405AF086
-:1055200041F0882332F0660F771F881F915050405A
-:10553000C1F7939530C08695779567959F5FD9F7AA
-:10554000F8CF990F0008550FAA0BE0E8FEEF1616EA
-:105550001706E807F907C0F012161306E407F50767
-:1055600098F0621B730B840B950B39F40A2661F0DB
-:10557000232B242B252B21F408950A2609F4A1407E
-:10558000A6958FEF811D811D089597F99F6780E88B
-:1055900070E060E008959F3F31F0915020F48795CE
-:1055A00077956795B795880F911D9695879597F98B
-:1055B00008959FEF80EC089500240A9416161706AC
-:1055C00018060906089500240A94121613061406F4
-:1055D00005060895092E0394000C11F4882352F057
-:1055E000BB0F40F4BF2B11F460FF04C06F5F7F4F0F
-:1055F0008F4F9F4F089557FD9058440F551F59F0F6
-:105600005F3F71F04795880F97FB991F61F09F3FAF
-:1056100079F087950895121613061406551FF2CFD8
-:105620004695F1DF08C0161617061806991FF1CF28
-:1056300086957105610508940895E894BB2766274F
-:105640007727CB0197F908957CDF08F48FEF089551
-:105650000BD0C0CFB1DF28F0B6DF18F0952309F0EA
-:1056600094CFA7CF1124EACFC6DFA0F3959FD1F343
-:10567000950F50E0551F629FF001729FBB27F00D00
-:10568000B11D639FAA27F00DB11DAA1F649F662755
-:10569000B00DA11D661F829F2227B00DA11D621FA4
-:1056A000739FB00DA11D621F839FA00D611D221F5E
-:1056B000749F3327A00D611D231F849F600D211D42
-:1056C000822F762F6A2F11249F5750408AF0E1F0E5
-:1056D00088234AF0EE0FFF1FBB1F661F771F881F2E
-:1056E00091505040A9F79E3F510570F04ECFA6CF84
-:1056F0005F3FECF3983EDCF3869577956795B79519
-:10570000F795E7959F5FC1F7FE2B880F911D969542
-:10571000879597F90895FA01EE0FFF1F309621053E
-:10572000310599F16115710561F48038BFE39B077C
-:1057300049F168949038810561F08038BFEF9B078C
-:1057400041F0992342F5FF3FE1053105210511F1B3
-:10575000E8940894E795D901AA2329F4AB2FBE2F2A
-:10576000F85FD0F310C0FF5F70F4A695E0F7F7394B
-:1057700050F019F0FF3A38F49F779F930CD00F90B8
-:1057800007FC905808953EF014CF60E070E080E888
-:105790009FE308954FE79F775F934F933F932F9336
-:1057A0009ED02F913F914F915F9152DF05C019F428
-:1057B0000EF0EBCE42CFFDCE26DFC8F39638C0F711
-:1057C00007F80F92E8942BE33AEA48EB5FE74EDFE5
-:1057D0000F920F920F924DB75EB70F92C0D0EAE0D2
-:1057E000F1E016D04F915F91EF91FF91E595EE1F9B
-:1057F000FF1F49F0FE57E0684427EE0F441FFA955B
-:10580000E1F74195550B32D00F9007FE26C0089561
-:10581000DF93CF931F930F93FF92EF92DF927B0161
-:105820008C01689405C0DA2EEF011EDFFE01E894BA
-:10583000A5912591359145915591AEF3EF0106DD86
-:10584000FE019701A801DA9479F7DF90EF90FF90BD
-:105850000F911F91CF91DF9108959B01AC0160E002
-:1058600070E080E89FE349CD90CE95CECCDEE8F3A2
-:105870009923D9F3940F511DBBF39150504094F0EC
-:1058800059F0882332F0660F771F881F91505040DF
-:10589000C1F79E3F510544F7880F911D9695879556
-:1058A00097F908955F3FACF0983E9CF0BB27869532
-:1058B00077956795B79508F4B1609395C1F7BB0FDD
-:1058C00058F711F460FFE8CF6F5F7F4F8F4F9F4F06
-:1058D000E3CFB4CE0EF05FCE6CCE689456CE93DE9E
-:1058E000C8F39923D1F3C6F3DF93CF931F930F939C
-:1058F000FF92C92FDD2788232AF02197660F771F93
-:10590000881FDAF720E030E040E85FEB9FE388395A
-:1059100020F0803E30F021968F7787DCE2E3F1E0E3
-:1059200003C083DCEFE5F1E073DF8B01BE01EC0126
-:10593000FB2E6F5771097595771F880B990B78DDD2
-:1059400028E132E741E35FE38FDEAF2D9801AE013E
-:10595000FF900F911F91CF91DF9178DC3BCEFA0140
-:10596000DC01AA0FBB1F9B01AC01BF5728F4222703
-:105970003327442750781FC0B75188F4AB2F002439
-:10598000469537952795011CA395D2F3002069F021
-:10599000220F331F441FB395DAF30DD045CC61308D
-:1059A0007105A0E88A07B94630F49B01AC0166276F
-:1059B000772788279078309621F02083318342839F
-:1059C00053830895AA1BBB1B51E107C0AA1FBB1F2D
-:1059D000A617B70710F0A61BB70B881F991F5A957B
-:1059E000A9F780959095BC01CD01089597FB072EEE
-:1059F00016F4009407D077FD09D00E94E22C07FC32
-:105A000005D03EF4909581959F4F089570956195CE
-:105A10007F4F0895EE0FFF1F0590F491E02D09943C
-:105A2000F999FECF92BD81BDF89A992780B5089566
-:105A3000A8E1B0E042E050E00C94382D262FF9990F
-:105A4000FECF92BD81BDF89A019700B4021639F0DD
-:105A50001FBA20BD0FB6F894FA9AF99A0FBE0895AE
-:105A60000196272F0E941F2D0C941E2DDC01CB01C7
-:105A7000FC01F999FECF06C0F2BDE1BDF89A31965E
-:105A800000B40D9241505040B8F70895F894FFCFFC
-:105A90009D00640007000CFF0000003F64731001CC
-:105AA00011DE10AA1076100101E1022808140A3252
-:105AB0001E0002040507090B0C0E10111315171810
-:105AC0001A1C1D1F2123242628292B2D2F30323468
-:105AD0003537393B1F0F03764F5F6F7F4969437935
-:105AE000095953633149803F5D8B803FF8BF803F48
-:105AF000CAE1803F73ED803FCAE1803FF8BF803F3D
-:105B00005D8B803F3149803F0000803FF16D7F3FDA
-:105B100075EA7E3F4C827E3F833F7E3F84287E3FF6
-:105B2000833F7E3F4C827E3F75EA7E3FF16D7F3F33
-:105B30000000803F3F4D36390505B8048204490412
-:105B4000DC03F5030E04270401020304050607081D
-:025B500009004A
-:00000001FF
diff --git a/keyboard/planck/keymaps/cbbrowne/config_user.h b/keyboard/planck/keymaps/cbbrowne/config_user.h
new file mode 100644
index 0000000000..5e7c2622d5
--- /dev/null
+++ b/keyboard/planck/keymaps/cbbrowne/config_user.h
@@ -0,0 +1,6 @@
+/* cbbrowne user configuration */
+
+#define randadd 53
+#define randmul 181
+#define randmod 167
+
diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c
index f46ca85de9..942efe4a29 100644
--- a/keyboard/planck/keymaps/cbbrowne/keymap.c
+++ b/keyboard/planck/keymaps/cbbrowne/keymap.c
@@ -2,6 +2,7 @@
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
+#include "config_user.h"
/* Each layer is given a name to aid in readability, which is then
used in the keymap matrix below. The underscores do not denote
@@ -19,26 +20,25 @@
/* Things I did not like about the default mapping
- - I find control too hard to get to. I think I'll want it on a
- left finger. Gonna need to lose something to do that...
- - Almost certainly, KC_LCTL should be on [2][1]
- - having dash on [lower-j] is a bit nonintuitive, but may be OK
+ - I found control too hard to get to. I use it more than Tab, so
+ switched it there.
+ - Having dash on [lower-j] is a bit nonintuitive, but may be OK
- I'll bet I should switch ESC/TAB
- I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
and shift ESC off the first column so KC_LCTL and KC_LALT can
be on the first column.
- - I think I wanna swap ' and ENTER
+ - I needed to swap ' and ENTER
- All of the above are done :-)
- - I'm keeping Colemak and Dvorak around for reference, and added
- Workman just for fun. They're useless to me, though.
+ - Dropped out support for Dvorak and friends. They aren't
+ improvements to me
*/
/* Some interesting things implemented
- - There is a macro that writes out "cbbrowne" just because I could
+ - There is a macro that writes out "cbbrowne" to show that I could
- There is a (somewhat cruddy) linear congruential random number
generator.
- I would like to be seeding it with clock info to make it look
@@ -50,16 +50,15 @@
of the random number generator
- in both, note the use of register_code()/unregister_code()
to indicate the desired key
+ - I do indeed want a sweet number pad!
*/
/* Other things to do...
- Need to think about what zsh and readline actions I use lots
- - Wanna figure out macros, so I can put in a "cbbrowne" macro
- Ought to ensure that Control-Alt-Delete is convenient enough
- How about Alt-F1 thru Alt-F8?
- What's the keystroke to get from X to console these days?
- - I do indeed want a sweet number pad!
- A layer for doing console switching would not be a bad idea
*/
@@ -112,9 +111,6 @@ const uint16_t PROGMEM fn_actions[] = {
/* This bit of logic seeds a wee linear congruential random number generator */
/* lots of prime numbers everywhere... */
static uint16_t random_value = 157;
-#define randadd 53
-#define randmul 181
-#define randmod 167
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
diff --git a/keyboard/planck/keymaps/cbbrowne/readme.md b/keyboard/planck/keymaps/cbbrowne/readme.md
new file mode 100644
index 0000000000..edb33f483d
--- /dev/null
+++ b/keyboard/planck/keymaps/cbbrowne/readme.md
@@ -0,0 +1,63 @@
+cbbrowne custom keyboard
+==============================
+
+Due to cbbrowne@acm.org
+Christopher Browne
+
+This was originally based on the default keyboard map, but I have been
+doing sundry experimentation:
+
+1. Experiments
+----------------------------------------
+
+ * To figure things out about the toolset
+ * I'm an Emacs guy, so will be needing a fair bit of tuning
+ * It made sense to mess around some with keyboard maps.
+ - I tried added Workman alongside Dvorak and Colemak
+ - Boy, oh boy, these don't help!!!
+ - I have done 30 years of learning of Emacs key mappings, and
+ these alternative keyboards massively mess me up
+ - I added a keypad, originally based on keymaps/numpad.c, but
+ mighty substantially revised, as that one seems to be rotated 90
+ degrees from usual conventions for number pads
+ * The keypad layer also includes some sample "hacks" of cool things,
+ all using actions attached in using the function action_get_macro()
+ - Key [1][2] aka "q" types out my name, cbbrowne, as a fun example
+ of a key generating a bunch of keystrokes. The keystroke is
+ sufficiently inconvenient that it isn't terribly practical for me
+ to use it, but hey, it shows how others might use this facility
+ in a more useful context.
+ - Key [2][2] aka "a" uses a random number generator to select a digit 0-9 at random
+ - Key [3][2] aka "z" uses a random number generator to select a letter a-z at random
+
+2. Some code structure ideas
+---------------------------------------------------
+
+ Each layer is given a name to aid in readability, which is then
+ used in the keymap matrix below. The underscores do not denote
+ anything - you can have a layer called STUFF or any other name.
+
+ Layer names don't all need to be of the same length, obviously, and
+ you could also skip them entirely and just use numbers, though that
+ means needing to manage the numbers.
+
+ It is preferable to keep the symbols short so that a line worth of
+ key mappings fits compactly onto a line of code. It might be an
+ interesting idea to express the maps rotated 90%, so that you
+ only need to fit 4 symbols onto each line, rather than 12.
+
+ I used enums to manage layer IDs and macro IDs so that I don't need
+ to care (beyond "start at 0", and arguably that's not needed) about
+ their values.
+
+3. Things I did not like about the default mapping
+---------------------------------------------------------
+
+ * I found control too hard to get to. I use it more than Tab, so
+ switched it there.
+ * Having dash on [lower-j] is a bit nonintuitive, but may be OK
+ * I switched ESC/TAB/M(0) around
+ * I'm suspicious that I want to shift M(0) from [4][1] to [4][2],
+ and shift ESC off the first column so KC_LCTL and KC_LALT can
+ be on the first column.
+ * I needed to swap ' and ENTER