diff --git a/firmware/build/neodk_g071.hex b/firmware/build/neodk_g071.hex index 381abb6..9db5685 100644 --- a/firmware/build/neodk_g071.hex +++ b/firmware/build/neodk_g071.hex @@ -1,21 +1,21 @@ :020000040800F2 -:1000000000900020F124000841250008D9160008BE +:100000000090002079250008C92500086117000824 :1000100000000000000000000000000000000000E0 -:100020000000000000000000000000004125000862 -:1000300000000000000000004125000835170008FE -:1000400041250008412500084125000841250008F8 -:10005000451700084125000841250008E919000856 -:1000600041250008F11A0008412500084125000833 -:10007000551A000861170008D117000889180008F0 -:1000800041250008391A00084125000841250008CB -:1000900041250008412500084125000841250008A8 -:1000A0004125000841250008412500084125000898 -:0C00B0005D1B00084125000841250008E8 +:10002000000000000000000000000000C9250008DA +:100030000000000000000000C9250008BD170008EE +:10004000C9250008C9250008C9250008C9250008D8 +:10005000CD170008C9250008C9250008711A000835 +:10006000C9250008791B0008C9250008C925000812 +:10007000DD1A0008E91700085918000811190008CE +:10008000C9250008C11A0008C9250008C9250008AB +:10009000C9250008C9250008C9250008C925000888 +:1000A000C9250008C9250008C9250008C925000878 +:0C00B000E51B0008C9250008C925000850 :1000BC0010B5064C2378002B07D1054B002B02D032 :1000CC00044800E000BF0123237010BD7000002025 -:1000DC00000000009C450008044B10B5002B03D019 +:1000DC00000000001C460008044B10B5002B03D098 :1000EC000349044800E000BF10BDC04600000000FA -:1000FC00740000209C450008F0B50124C023844006 +:1000FC00740000201C460008F0B50124C023844085 :10010C000B4D5B00EC500700830803203840FF27A1 :10011C00AC46C026C0008740890181409B006344E7 :10012C00B6009A59BA430A439A512C60F0BDC046A6 @@ -41,1318 +41,1330 @@ :10026C00B61AB5434E6972432A4342624D68B1E7F0 :10027C0010B51124020008480B00016AA143016269 :10028C008020064980008862DA38FF38886104498A -:10029C00044803F033F9FEE7002C01400004005041 -:1002AC0034490008C44B0008FA2170B5124C050003 -:1002BC008900206801F08AFE802301385B04984293 +:10029C00044803F073F9FEE7002C01400004005001 +:1002AC00C4490008504C0008FA2170B5124C0500E6 +:1002BC008900206801F0CEFE802301385B0498424F :1002CC0001D3012070BDC0210C4A090650600C48B6 :1002DC00036A1B021B0A0B43036207210023936072 :1002EC001160032DEDD8026AA9071202120A0A4303 :1002FC00026218006560E5E70000002010E000E0F5 -:10030C0000ED00E000B506480B7ACA88498983B035 -:10031C00009101000348103103F0F0F803B000BD68 -:10032C0034490008D04B000810B50A0002490348B4 -:10033C00243103F0E3F810BD34490008084C0008E0 -:10034C0010B50A0002490348343103F0D7F810BD48 -:10035C0034490008084C00084B1E9941012310B584 -:10036C0049429943002200230E3103F02DFB10BDAE -:10037C0070B5060014001D0082B0E03600920193A7 -:10038C0032687368A41A9D41002D04D1074B9C421E -:10039C0001D802B070BD08236A46132103F014FB88 -:1003AC00009B019C33607460F3E7C046BFE1E4003E -:1003BC0030B50500A535FF352B89040083B000202E -:1003CC00002B01D103B030BD01A92800FFF7B2FE0C -:1003DC006A460378137043785370D223A9795B0073 -:1003EC00E35891709B7AD370C82902D9C823C821CD -:1003FC009370634803F082F86B46DB78042B00D8CB -:10040C00A9E06B469B78002B00D19EE06B461C79D3 -:10041C00002C00D190E06B46D9784A01521A930116 -:10042C009B1AD800FA23401880019B04984244D3AD -:10043C00544800220621544B013CD8621C635A627A -:10044C001A698A431A616B461A785B78134268D131 -:10045C000521114237D16946042488784A4901386C -:10046C008863C86813432043C8604869033C204331 -:10047C004861002B75D14022444B9A62444B3E3A62 -:10048C009C619A6106320421414B9961404B002AD0 -:10049C0044D020229A61002352213E4A3A4C5352B6 -:1004AC006363A36390693439002203F08DFA01224F -:1004BC00236801201343236084E7FA21890001F0AB -:1004CC0085FD0138B5E76946022488782E49013844 -:1004DC004863C86813432043C8604869013C204303 -:1004EC0048614021DB430120284A9161DAB2034282 -:1004FC003DD1274B02219862042308201140134060 -:10050C00024000292FD1022021498862002BBAD148 -:10051C0004211F4B99621E4B002ABAD120229A62E9 -:10052C00B9E762211C4A1D48FF3102F0F7FF6B4608 -:10053C006A465B7812788BE7D221194A17488900F2 -:10054C0002F0ECFF6B461C7965E7164A1649134816 -:10055C0002F0E4FF5AE7154A1549104802F0DEFF95 -:10056C004FE79BB2BDE7022009498861CEE708241A -:10057C0004233E39114013402240054CA061C0E7D2 -:10058C00104C0008FEFF0000002C01400008005039 -:10059C00000400508C000020844C00083C4C0008E7 -:1005AC006C4C0008504C000847030000284C000815 -:1005BC0046030000032310B5104C114A23616361FC -:1005CC00104BA261E36180239B0123620023A36291 -:1005DC006362E36222660C4A0C495832626610224E -:1005EC00E01DA2662367E366636703F037FC200017 -:1005FC00074903F033FC2023A37110BD2C210020EC -:10060C00A04C00082C0100208C000020AC4C0008F1 -:10061C00B04C0008F8B54746CE4680B58368C5682F -:10062C0099465B1B9846436804000E001700581946 -:10063C00904507D9ED1903F0D7FAE560C0BCB9466F -:10064C00B046F8BD424603F0CFFA4B463100ED19E7 -:10065C00ED1A2A006068414403F0C6FAE560EDE744 -:10066C00F0B557464E464546DE46E0B5354B83B0B1 -:10067C009A461B78060015000191002B56D0770086 -:10068C00BB19DB0053441A6F9046DA6E91469045C5 -:10069C0025D8130042462C009B1A9D4209D8002CE9 -:1006AC0009D1200003B0F0BCBB46B246A946A04617 -:1006BC00F0BD1C1EF5D0A146BB19DB005344596E8E -:1006CC00220041440198A04403F08EFA4C46002CC1 -:1006DC00E7D04346BF19FF0057443B67E1E742466A -:1006EC009B6E2C009B1A9D4227D8BB19DB005344F0 -:1006FC009B46596E22004144019803F075FA5B4603 -:10070C009B6EA0442D1B434519D04B4642469B1A69 -:10071C0099464D450DD8002DD9D0019BA1469C463C -:10072C00A44463462C000193A944C5E7FFF742FF9C -:10073C00A5E74D46002DCAD0EFE71C00D5E70023F6 -:10074C009846E6E72C210020F8B557464E46DE4683 -:10075C0045468946411CE0B517004A005218030073 -:10076C00D2009246344A5E0093461000F618F6000A -:10077C005E44F36A50449846012B0CD0022B27D0D0 -:10078C00002B17D0002398464046F0BCBB46B2461F -:10079C00A946A046F8BDB36A726A934247D9013B99 -:1007AC009B1AB8469F4200D9984642464946FFF7E5 -:1007BC0031FFE9E7B36A726A934233D9013B9B1A62 -:1007CC009F42E1D83A004946FFF724FFB846DBE7E1 -:1007DC000023746A98461DE0013B356A1B1BBB4223 -:1007EC0000D93B002D1B9D4200D91D005B46534494 -:1007FC0058682A004946001903F0F6F9336A64195F -:10080C00E31A5A1E93415B421C40A844A9447F1B27 -:10081C007462B9D0B36AA342DED8356A5B19013B66 -:10082C001B1BDCE7316A5B18013B9B1AC8E7316A7A -:10083C005B18013B9B1AB4E72C210020F0B5C6468F -:10084C0000B5856843686A1C04009A4207D803689F -:10085C0059551500C36882600133C36043689D42DB -:10086C0002D080BCB846F0BD2368276998460E4B71 -:10087C001B78002B15D0EFF31086012181F3108823 -:10088C002A0041463800FFF75FFF86F31088A36803 -:10089C00834203D001235B42E360E2E70023A360C1 -:1008AC00DFE7FFF787FEE6E72C210020F0B54E4688 -:1008BC0045465746DE46E0B583B09A460C9B8046CB -:1008CC000E0015009946914200D27DE008000127E8 -:1008DC00290001F07BFB01378542F9D9574500D23D -:1008EC00574601230D9A1A4001920D9A13424ED18C -:1008FC004B46002B4BD0130020249B075ED44F4556 -:10090C0045D201235B429C4621004046E144FFF75F -:10091C0095FF4346DB68002B32DB4B46002BEED1B8 -:10092C0053460124012B07D901235B429C46E24428 -:10093C0053466C43012BF7D82100300001F046FBE5 -:10094C008542F5D9214B9B4644239A4606E0290063 -:10095C00200001F03BFBAC420FD30400300021001F -:10096C0001F0BAFB534658440E00C15C4046FFF7F9 -:10097C0065FF4346DB68002BE9DA019B002B19D19C -:10098C0003B0F0BCBB46B246A946A046F0BD4346F8 -:10099C00DB68002BC4DAF3E74F45F1D201235B424D -:1009AC009C4620214046E144FFF748FF4346DB6864 -:1009BC00002BE5DB4B46002BEED1E1E753465C42C6 -:1009CC005C41240120349AE7012787E73449000869 -:1009DC0010B5080003F0CCF8034902005431034869 -:1009EC0002F08CFD002010BD34490008B84C000802 -:1009FC0010B5080003F0BCF803490200603103484D -:100A0C0002F07CFD002010BD34490008DC4C0008CD -:100A1C0010B508000C0003F0ABF801280CD002282C -:100A2C0010D0200003F0A4F8094902006C310948E9 -:100A3C0002F064FD002010BD054907486C3102F03E -:100A4C005DFDF7E7024905486C3102F057FDF1E70F -:100A5C0034490008B84C0008004D0008184D000837 -:100A6C00DC2310B50400C05802F0AAFF002801D105 -:100A7C00002010BDD823E05802F0A2FF0028F7D0C8 -:100A8C00200002F09DFFF4E770B5D0267600835964 -:100A9C0004009847051E1BD0A65903F04BF8010023 -:100AAC002000B047002804D053210A4A0A4802F01B -:100ABC0035FDD0235B00E55003F02EF8010020003B -:100ACC00A847002804D05621024A034802F026FD0C -:100ADC0070BDC0462C4D0008384D000870B5D026AE -:100AEC007600835904009847051E1DD0A65903F0C3 -:100AFC0021F801002000B047002805D01C210B4A2A -:100B0C000B48FF3102F00AFDD0235B00E55003F0E7 -:100B1C0003F801002000A847002805D08F21034AC4 -:100B2C000348490002F0FAFC70BDC0462C4D000889 -:100B3C004C4D0008F8B50600D036050001223000F7 -:100B4C0002F0B6FD012804D0BA21244A244802F050 -:100B5C00E5FC72B6BFF34F8FBFF36F8F4827214C64 -:100B6C00E35DFF2B2CD0482201333000A35402F05C -:100B7C0019FD00280FD04825635D002B18D04822A2 -:100B8C00013BDBB2A354002B04D1BFF34F8FBFF357 -:100B9C006F8F62B6F8BDE523EA56012A17D04825B7 -:100BAC0011491248783102F0A9FC635D002BE6D1A3 -:100BBC00A6210F4A0F48890002F0B0FC635DDEE706 -:100BCC000D4A0E490B4802F0A9FCE35DCBE78021EE -:100BDC000B4A13688B431360CDE7C0465C4D00088D -:100BEC00684D00088C00002034490008A04D000816 -:100BFC00BC4D00083C4C0008784D000891020000E8 -:100C0C0000440040F0B50400E425E020C646E6268A -:100C1C00635D00B55A1C62552258D154615DA35BCB -:100C2C00994206D327580FD0E822A05A1B18994294 -:100C3C0003D0002080BCB846F0BDE423002238006D -:100C4C00E25402F063FEF5E7380002F03BFE0028A8 -:100C5C000DD0380002F066FEE8239846E05280235F -:100C6C000100DB00984215D8615DA35BDEE7635D94 -:100C7C00013BDBB26355002BDBD00023E025E430D5 -:100C8C006259D1184978D154225C0133DBB29A42B3 -:100C9C00F6D8CEE7034802F031FC00234246A352BB -:100CAC00C7E7C046DC4D0008F0B5CE464746E62304 -:100CBC0080B583B0C65A6B46F41DE408E4001B1BD8 -:100CCC0002AF9D4602AB994688460B000092050088 -:100CDC0000220121484602F085FD2A4942460C318A -:100CEC00294802F00BFC72B6BFF34F8FBFF36F8F26 -:100CFC004823264C9846E35CFF2B34D0482228002E -:100D0C000133A35449463200D03002F053FC002882 -:100D1C0014D14825635D002B1DD04822013BDBB26A -:100D2C00A354002B04D1BFF34F8FBFF36F8F62B668 -:100D3C00BD4601B0C0BCB946B046F0BDE523EA568D -:100D4C00012A18D0482512491248783102F0D6FBF6 -:100D5C00635D002BE1D1A6210F4A1048890002F0F7 -:100D6C00DDFB635DD9E70E4A0E490C4802F0D6FB59 -:100D7C004346E35CC2E780210B4A13680B431360C4 -:100D8C00C7E7C046B4490008004E00088C0000209C -:100D9C0034490008A04D0008BC4D00083C4C00082C -:100DAC00784D00089102000000440040F0B5CE469A -:100DBC0047460400E62380B5E65A83B01000B61807 -:100DCC006A46F31DDB08DB00D31A02AF9D4602AB6B -:100DDC009846EA23E25C01900091002304214046EE -:100DEC0002F038FD72B6BFF34F8FBFF36F8F4823FD -:100DFC00234D9946EB5CFF2B34D048222000013365 -:100E0C00AB5441463200D03002F0D4FB002814D150 -:100E1C0048242B5D002B1DD04822013BDBB2AB5488 -:100E2C00002B04D1BFF34F8FBFF36F8F62B6BD465B -:100E3C0001B0C0BCB946B046F0BDE523E256012A6C -:100E4C0018D048240F491048783102F057FB2B5D1D -:100E5C00002BE1D1A6210D4A0D48890002F05EFB62 -:100E6C002B5DD9E70B4A0C49094802F057FB4B465E -:100E7C00EB5CC2E78021094A13680B431360C7E798 -:100E8C008C00002034490008A04D0008BC4D00081F -:100E9C003C4C0008784D00089102000000440040D2 -:100EAC000FB430B597B01AA920C92800019102F0EF -:100EBC001BFB2A0004005021019B02A803F002F83E -:100ECC00002807DD8C230649013082B2C85802A9DC -:100EDC00FFF76CFF200017B030BC08BC04B01847FB -:100EEC008C00002070B5050008000C0002F040FEDC -:100EFC00C31FDBB2142B03D824499B00CB589F464D -:100F0C00234902002031234802F0F8FA70BD20007A -:100F1C0002F030FE046820482100FFF7C1FF022CCC -:100F2C00F4D1E8230022EA54F0E7DC230022E8584D -:100F3C001A21002302F048FDE8E7200002F01AFE17 -:100F4C00002341680068154A01F0E0F904003C21D7 -:100F5C00200001F0C1F820000E003C2101F036F811 -:100F6C003C2101F0B9F80D00E1212000090101F04C -:100F7C002DF8330001002A000948FFF791FFC5E75F -:100F8C00DC232100E85802F063FDBFE7B4450008FC -:100F9C00B4490008444E0008304E000840420F008F -:100FAC00184E0008F8B59624E400060021002048ED -:100FBC0002F0A4FA50231F4AD4521F4B1F4A5A6105 -:100FCC00D8225200B35C0133DCB2B454042C20D0D0 -:100FDC001B4D23012F00EA183037116BFF181948ED -:100FEC00FFF75EFFD22324015B00F7502B199B8F78 -:100FFC00A536FF3633816423B3710023B3802B00F5 -:10100C0030331B19DB7A002B0BD00023F371B37236 -:10101C00F8BD0B4D00232F0000240B49B35430377F -:10102C00DDE74821094A0A4802F078FAEDE7C046A4 -:10103C005C4E00088C00002000740040FF0F000084 -:10104C00B4490008744E0008504E0008884E000841 -:10105C00A04E000870B5050008000C0002F088FDD9 -:10106C00202803D8354A800013589F46200002F0F0 -:10107C007FFD334902007031324802F03FFA002004 -:10108C0070BD2F493048703102F038FA0020F7E774 -:10109C002B492E48703102F031FA0020F0E7200085 -:1010AC0002F068FD2A4A41888388008853434A43EA -:1010BC00C10109180901091A9B0B2648920B890AD0 -:1010CC00FFF7EEFE0020DBE7D8231D4A5B00E95C4E -:1010DC00D226130009015218928F76003033AC19C6 -:1010EC005B18AB5122816422A2710022A280DA7AB1 -:1010FC00002A1BD00022E271A27219681648FFF771 -:10110C00CFFE1648BCE72800FFF74CFF0020B7E7DE -:10111C00134802F0F3F90020B2E7D2235B00EB583E -:10112C0010481968FFF7BCFE0020A9E748210E4AB9 -:10113C000E4802F0F3F9AB59DCE7C046084600084C -:10114C00B4490008DC4C0008B44E0008C84E000836 -:10115C004DCE0000DC4E0008044F00087112000850 -:10116C00144F0008344F0008884E0008A04E0008A9 -:10117C0070B5050008000C0002F0FAFC202803D81A -:10118C002C4A800013589F46200002F0F1FC2A499B -:10119C0002007C31294802F0B1F9002070BD2649CB -:1011AC0027487C3102F0AAF90020F7E722492548AC -:1011BC007C3102F0A3F90020F0E7200002F0DAFC09 -:1011CC00214A41888388008853434A43C101091846 -:1011DC000901091A9B0B1D48920B890AFFF760FE47 -:1011EC000020DBE7D2235B00EB5819481968FFF7A6 -:1011FC0057FE1848D2E72800FFF7D4FE0020CDE7B1 -:10120C00D6235B00EB5A002B0AD1A533FF33EB58E6 -:10121C0011481968FFF744FE1048BFE70020BDE7EE -:10122C00D2235B00EB580E481968FFF739FE0020FB -:10123C00B4E7C0468C460008B4490008DC4C0008F2 -:10124C00444F0008504F00084DCE0000DC4E000803 -:10125C005C4F000871120008344F00086110000840 -:10126C006C4F000870B5050008000C0002F080FC03 -:10127C00202803D8254A800013589F46200002F0EE -:10128C0077FC234902000831224802F037F900208C -:10129C0070BD1F492048083102F030F92800FFF7D3 -:1012AC0087F80020F4E71A491C48083102F026F9A7 -:1012BC000020EDE72800FFF77BF803000020002B4F -:1012CC00E6D1A533FF33EB5815481968FFF7E8FD55 -:1012DC001448DDE7200002F04DFC134A4188838856 -:1012EC00008853434A43C10109180901091A9B0B91 -:1012FC000E48920B890AFFF7D3FD0020C8E728009F -:10130C00FFF750FE0020C3E70948C1E7104700086B -:10131C00344A0008DC4C0008444F0008504F0008C9 -:10132C00344F0008611000084DCE0000DC4E000860 -:10133C007D11000870B50400303CE3B282B0462B3E -:10134C0003D8594A9B00D3589F4601005748FFF7D2 -:10135C00A7FD02B070BD8026554DB6006B693342B7 -:10136C0003D1544802F0CAF8AE61FA239B005C43E7 -:10137C00A4B22100504802F0C1F850234F4AD45275 -:10138C004F4A231C944200D98BE04E4A9BB29342A5 -:10139C0000D284E04A4AD21A4B4B534380221201AA -:1013AC0094464A4A63441B0B5361D2E75023434D86 -:1013BC00EC5A434BC83C9C4215DC424B9C4200DA35 -:1013CC001C0021003C4802F099F85023EC523C4B95 -:1013DC001C1B3D4B6343E1E75023384DEC5A384B13 -:1013EC00C8349C42E9DD1C00E7E780223849D2036F -:1013FC004869030413404022824313438B61A8E7DE -:10140C0088242E4D002300220C21285902F0DCFAEE -:10141C00002300220E21285902F0D6FA99E72D4814 -:10142C00FFF73EFD95E70223244A01938633D058FB -:10143C000721843B01AA02F0C7FA8AE788231F4AD6 -:10144C001B21D0580023002202F0BEFA81E722486B -:10145C00FFF726FD7DE721492148183102F04EF8AF -:10146C00204A214993680B4004210B43936070E799 -:10147C0080250F4CAD0063692B420BD100210E4827 -:10148C0002F03CF8502300210C4AD1520F4B174A62 -:10149C005A615EE7164802F031F8A562EEE71300D8 -:1014AC0078E7131C71E7C04694470008F04F00081A -:1014BC0000040050C04F00085C4E00088C00002057 -:1014CC00D3270000B204000049070000007400405C -:1014DC0000080050D84F00087C4F0008344A000820 -:1014EC00D44F000800240140E8FFFF7FFF0F0000ED -:1014FC00AC4F0008F0B54746CE4680B583B0804669 -:10150C0002AF08000C0002F001FA05002000012DCA -:10151C0053D002F0FFF98146032D68D0200002F071 -:10152C0001FA0600042D0ED0280002F04DF933000C -:10153C0001004A463B4801F0E1FFBD4601B0C0BC8A -:10154C00B946B046F0BD200002F0E4F905002000D9 -:10155C0002F0D8F92900020006004046FFF7A4FB70 -:10156C00200002F0E5F98146200002F0DBF92900A9 -:10157C0004000200002E2ED12B4801F0BFFF022CDC -:10158C0003D14B461B782F2B47D023006E460C33D0 -:10159C00DB08DB00F31A9D4602AB98464B46651DF3 -:1015AC000093290023004046204A02F023FC002827 -:1015BC0001DD854228D8B546BFE702F0AFF904003B -:1015CC0001001B4801F09AFF0720EA234246013430 -:1015DC000440D454B1E7174801F090FF4246C823A9 -:1015EC00D0580433D358494622009847A5E7010048 -:1015FC00114801F083FF200002F084F949460200F3 -:10160C004046FFF751FB98E78C230C4982B2C8582F -:10161C004146FFF7CBFBB5468FE74B465878FFF7B3 -:10162C0089FE8AE7B4500008405000087450000846 -:10163C000850000880500008205000088C00002042 -:10164C0070B5EB25435D0400002B0ED10A2905D0A3 -:10165C00C9B2FFF7D7FA032818D070BD012203399D -:10166C00FFF722FB01236355F7E7C9B2FFF7CAFA6C -:10167C000028F2D0E023E558280002F05BF900289E -:10168C0013D029002000FFF735FFE6E7E023E558EB -:10169C00280002F04FF900280DD029002000FFF798 -:1016AC0029FFEB230122E254D7E7064906482831EB -:1016BC0001F024FFD1E703490348283101F01EFF54 -:1016CC00EFE7C046344A0008E4500008112110B579 -:1016DC000E4A0F48136A8B43136280220D4B920003 -:1016EC009A62DA3AFF3A9A610B490C4B3C315A68D0 -:1016FC0001F004FF0A4C012321000A481031237425 -:10170C0001F0FCFE237C002BFCD110BD002C014011 -:10171C00F450000800040050344A000800ED00E0CA -:10172C000C01002004510008024A53690133536133 -:10173C007047C0460C01002010B5EFF30582034939 -:10174C000348503101F0DAFE10BDC046344A00089F -:10175C00084C0008012210B5144B19690A421DD01F -:10176C000620196891431960D9688143D9601969B9 -:10177C0001308143196140210D4B99620D4B203989 -:10178C009A6101329A6102329A611C329A610A4B57 -:10179C0000229869002302F017F910BD07491A6955 -:1017AC005C31074801F0AAFEF7E7C046002C014067 -:1017BC0000080050000400508C000020344A00083F -:1017CC003C510008022210B5244BD9680A4202D0C1 -:1017DC0019690A4235D1224C0422204BD9680A429D -:1017EC0002D019690A4220D152221C4BA25A1B6BFF -:1017FC0001339A4212D0194B1A491A690A4200D184 -:10180C0010BD1B691848194001F078FEEFF30582F2 -:10181C0016491748503101F071FEF1E70023002200 -:10182C001F21A06902F0D0F8E5E71969114891432E -:10183C0019615223E15A013189B2E15201F05EFE85 -:10184C00D2E71969064C914319615223E15A0A48AF -:10185C00013189B2E15201F051FEBDE7002C01408B -:10186C008C000020E0FF0C003C510008344A0008BA -:10187C00084C00085451000848510008F8B5802362 -:10188C000222DB0519690A420FD101211A691142A2 -:10189C0003D01A698A431A61F8BDEFF3058228490F -:1018AC002848503101F02AFEF6E71969264C91437D -:1018BC0019612668676872B6BFF34F8FBFF36F8FDD -:1018CC004825635DFF2B33D048215A1CD2B2625499 -:1018DC0080211E4DC905A869496AA961884202D9AF -:1018EC00E9690131E961002A17D04822A354002B81 -:1018FC0004D1BFF34F8FBFF36F8F62B6EB69AA6948 -:10190C00990792080A439B083800B0478022D205F9 -:10191C00536BA1685B185363BEE7A6210C4A0D48B4 -:10192C00890001F0FBFD4823E35C013BDBB2DCE703 -:10193C00094A0A49074801F0F1FD635DC4E7C04656 -:10194C00344A0008084C00088C0000200C010020D0 -:10195C00BC4D00083C4C0008784D0008910200007A -:10196C0070B548250B4C635D002B0BD04822013B16 -:10197C00DBB2A354002B04D1BFF34F8FBFF36F8F97 -:10198C0062B670BDA621044A0448890001F0C6FD68 -:10199C00635DEBE78C000020BC4D00083C4C00085C -:1019AC0070B572B6BFF34F8FBFF36F8F4825074CDE -:1019BC00635DFF2B03D048220133A35470BD044A4E -:1019CC000449054801F0AAFD635DF4E78C00002092 -:1019DC00784D0008910200003C4C0008102210B514 -:1019EC000E4BD9680A4211D119690A4207D1EFF39B -:1019FC0005820B490B48503101F080FD10BD0A489F -:101A0C0000211A610C3001F0A5FDF7E70648012111 -:101A1C00DA600C3001F09EFDF0E7C0460018024081 -:101A2C00344A0008084C00088C00002010B5EFF375 -:101A3C00058203490348503101F060FD10BDC046DA -:101A4C00344A0008084C0008102210B51C4B1968C9 -:101A5C000A421AD1012219680A4211D1802219684E -:101A6C009201114222D1042219680A4223D1082280 -:101A7C0019680A420ED01A60124801F03FFD03E0CB -:101A8C0011481A6001F03AFD10BD1A600F4801F0C0 -:101A9C0035FDF9E719680E4801F030FDEFF30582CA -:101AAC000C490D48503101F029FDEDE71A600B4847 -:101ABC0001F024FDE8E71A60094801F01FFDE3E797 -:101ACC0000240140A4510008705100086051000826 -:101ADC00B0510008344A0008084C00087C5100083A -:101AEC0098510008022310B5134C2268134218D1E8 -:101AFC0008232268134208D11049226810487C310F -:101B0C0001F0FCFC0423636010BD0C4963607C3164 -:101B1C000C4801F0F3FC01210B4A13680B431360D2 -:101B2C00F2E76360094B14211A0098694A320623C4 -:101B3C0001F04AFFE8E7C04600000240344A0008C2 -:101B4C00CC510008C0510008080002408C00002055 -:101B5C0010B50D4BDA69920610D4DB691B0605D55E -:101B6C000A4B0B49986B5B6B984710BDEFF30582E2 -:101B7C0008490948503101F0C1FCF6E70348596A9D -:101B8C001C3001F0E7FCF0E7004400408C00002022 -:101B9C0028440040344A0008084C000870B572B65E -:101BAC00BFF34F8FBFF36F8F48241B4D2B5DFF2B63 -:101BBC002BD048215A1CD2B26A548021174CC9052B -:101BCC00A069496AA161884202D9E1690131E161E8 -:101BDC00002A0FD04822AB54002B04D1BFF34F8FF7 -:101BEC00BFF36F8F62B6E169A0698B078008184359 -:101BFC00890870BDA6210A4A0A48890001F08EFCAA -:101C0C004823EB5C013BDBB2E4E7074A0749054894 -:101C1C0001F084FC2B5DCCE78C0000200C01002033 -:101C2C00BC4D00083C4C0008784D000891020000A7 -:101C3C007047C04610B50B00EFF31084012181F3FF -:101C4C0010881900FEF70CFD84F3108810BDC046F7 -:101C5C0010B582B0EFF31084012181F310886B462C -:101C6C000122D91D0020FEF7FBFC84F3108801280B -:101C7C0003D16B46D87902B010BD01204042FAE77F -:101C8C0010B5FEF797FC10BDF0B5DE464E46574634 -:101C9C004546E0B59BB00AAB059340230693002361 -:101CAC000793089301330C0091469B4602900990D0 -:101CBC0005E005A8FEF7C2FD0898002859DB21783D -:101CCC00013400295CD02529F3D122001378002699 -:101CDC0002250820140021392D2B0CD02D2B0ED8C9 -:101CEC00232B11D02B2B00D05FE10E430132137844 -:101CFC0014002D2BF2D15B4601321E43F7E7302B3B -:101D0C0005D12E430132F2E706430132EFE71A0008 -:101D1C00303A0025092A0DD81A00AB005B190134A2 -:101D2C005B009B182278303B1D001300303B092BC5 -:101D3C00F3D913002E2B00D1D8E0002723780421EF -:101D4C0001E0637801341A008A43682AF9D0252B04 -:101D5C0007D0583BDBB2202B07D8954A9B00D358B1 -:101D6C009F46252105A8FEF769FD08980134002837 -:101D7C00A5DA1BB0F0BCBB46B246A946A046F0BDE6 -:101D8C0008980028F5DD079C002C00D0C6E000194F -:101D9C00EFE74B4649461B6805A81A1D0A601968EF -:101DAC0010223B0001960095FEF780FD0134089847 -:101DBC00DDE74B4649461B6805A81A1D0A601968E1 -:101DCC000A223B0001960095FEF770FD013408983D -:101DDC00CDE74B4649461B681A1D0A601D6805E095 -:101DEC0005A8FEF72BFD08980028BFDB29780135E4 -:101DFC000029F5D10898B9E74B4649461B6805A858 -:101E0C001A1D0A60196800230193083310220093ED -:101E1C00FEF74CFD01340898A9E74B4649461B6870 -:101E2C001A1D0A601B68DA17981803930123504097 -:101E3C009A4609280DDDAA46A0461D000A21040079 -:101E4C00013500F079F9632CF8DC2B00444655463B -:101E5C009A46B846574575D3002D36D0039B002BB8 -:101E6C0074DB730772D4B30701D5002F2DD05B46FA -:101E7C0033422AD1002D28D04346A0461C00AC4248 -:101E8C0020D205A82021FEF7D9FC0898013D002896 -:101E9C0000DA87E0002DF2D1230044469846039BDC -:101EAC00002B58DB730761D403233340022B62D021 -:101EBC0005A83B000A22039901960095FEF7F6FC53 -:101ECC00089853E723004446984608980028E6DA19 -:101EDC0001344CE74B4649461B6805A81A1D0A609D -:101EEC001978FEF7ABFC0134089840E76378621C64 -:101EFC001900303914000027092900D91FE71A00EE -:101F0C00BB00DB1901345B009B182278303B1F00AF -:101F1C001300303B092BF3D9130010E7254B1B782A -:101F2C00002B15D0EFF31085012181F310882200CE -:101F3C0002980AA9FEF708FC85F310880898079CFC -:101F4C00001916E7D046002DBFD087E7013D8AE780 -:101F5C00FEF730FBE6E75B422D2105A80393FEF765 -:101F6C006DFC089800289FDA013400E72B2105A8A6 -:101F7C00FEF764FCF5E7002F9AD10AE0A8450CD2D5 -:101F8C0005A83021FEF75AFC0898013D002800DA1C -:101F9C00ECE6002DF2D100258AE70898002887DAB4 -:101FAC000134E4E644460134E1E60025C5E6C046CA -:101FBC00B04800082C21002003B4714649084000A9 -:101FCC004900095E49008E4403BC70470022430857 -:101FDC008B4274D303098B425FD3030A8B4244D3E5 -:101FEC00030B8B4228D3030C8B420DD3FF22090227 -:101FFC0012BA030C8B4202D31212090265D0030BE6 -:10200C008B4219D300E0090AC30B8B4201D3CB03DB -:10201C00C01A5241830B8B4201D38B03C01A52411D -:10202C00430B8B4201D34B03C01A5241030B8B421F -:10203C0001D30B03C01A5241C30A8B4201D3CB020A -:10204C00C01A5241830A8B4201D38B02C01A5241EF -:10205C00430A8B4201D34B02C01A5241030A8B42F2 -:10206C0001D30B02C01A5241CDD2C3098B4201D30A -:10207C00CB01C01A524183098B4201D38B01C01A88 -:10208C00524143098B4201D34B01C01A52410309FF -:10209C008B4201D30B01C01A5241C3088B4201D3AE -:1020AC00CB00C01A524183088B4201D38B00C01A5B -:1020BC00524143088B4201D34B00C01A5241411A82 -:1020CC0000D20146524110467047FFE701B500208F -:1020DC0000F006F802BDC0460029F7D076E770473D -:1020EC007047C04610B5002903D100F007F8203026 -:1020FC0002E0080000F002F810BDC0461C210123CC -:10210C001B04984201D3000C10391B0A984201D3CE -:10211C00000A08391B09984201D30009043902A2AC -:10212C00105C40187047C046040302020101010113 -:10213C00000000000000000003460B437FD4002287 -:10214C0043088B4274D303098B425FD3030A8B423F -:10215C0044D3030B8B4228D3030C8B420DD3FF22A9 -:10216C00090212BA030C8B4202D31212090265D077 -:10217C00030B8B4219D300E0090AC30B8B4201D32A -:10218C00CB03C01A5241830B8B4201D38B03C01A71 -:10219C005241430B8B4201D34B03C01A5241030BE8 -:1021AC008B4201D30B03C01A5241C30A8B4201D399 -:1021BC00CB02C01A5241830A8B4201D38B02C01A44 -:1021CC005241430A8B4201D34B02C01A5241030ABB -:1021DC008B4201D30B02C01A5241CDD2C3098B42A0 -:1021EC0001D3CB01C01A524183098B4201D38B011D -:1021FC00C01A524143098B4201D34B01C01A5241C0 -:10220C0003098B4201D30B01C01A5241C3088B4204 -:10221C0001D3CB00C01A524183088B4201D38B00EF -:10222C00C01A524143088B4201D34B00C01A524191 -:10223C00411A00D201465241104670475DE0CA0F68 -:10224C0000D04942031000D34042534000229C4628 -:10225C0003098B422DD3030A8B4212D3FC22890132 -:10226C0012BA030A8B420CD3890192118B4208D308 -:10227C00890192118B4204D389013AD0921100E06A -:10228C008909C3098B4201D3CB01C01A524183097E -:10229C008B4201D38B01C01A524143098B4201D3AB -:1022AC004B01C01A524103098B4201D30B01C01AD6 -:1022BC005241C3088B4201D3CB00C01A5241830850 -:1022CC008B4201D38B00C01A5241D9D243088B42A6 -:1022DC0001D34B00C01A5241411A00D20146634649 -:1022EC0052415B10104601D34042002B00D54942AD -:1022FC00704763465B1000D3404201B50020FFF7E6 -:10230C00EFFE02BD0029F8D016E77047002B11D163 -:10231C00002A0FD1002900D1002802D00021C94386 -:10232C00080007B4024802A14018029003BDC04641 -:10233C00B1FDFFFF03B4684601B5029800F006F842 -:10234C00019B9E4602B00CBC7047C046F0B5574688 -:10235C004E464546DE46E0B504000D0092469946D1 -:10236C0083B08B4230D82DD049465046FFF7BAFE89 -:10237C00290006002000FFF7B5FE331A9846203BD3 -:10238C009B4633D45A465346934042461F0053460D -:10239C0093401E00AF423AD8AF4200D178E05B4682 -:1023AC00A41BBD41002B00DA75E000220023009233 -:1023BC00019301235A4693400193012342469340D3 -:1023CC00009328E08242CFD900220023009201938F -:1023DC000C9B002B01D01C605D600098019903B030 -:1023EC00F0BCBB46B246A946A046F0BD42462023EF -:1023FC009B1A5246DA40414613004A468A4017005F -:10240C0042461F43534693401E00AF42C4D900229C -:10241C000023009201934346002BD9D0FB0772088E -:10242C001A4346467B080EE0AB4201D1A2420CD8BF -:10243C00A41A9D41012024196D410021013E24184C -:10244C004D41002E06D0AB42EED9013E24196D4110 -:10245C00002EF8D1009801995B4600196941002BB8 -:10246C0024DB2B005A464446D3402A00E2401C0091 -:10247C005B461500002B2ADB26009E40330026000D -:10248C004746BE403200801A9941009001919FE767 -:10249C00A342BCD883E74246202300219B1A00228A -:1024AC00009101920122DA40019286E742462023F4 -:1024BC009B1A2A0046469A402300F3404446134395 -:1024CC002A00E2401C005B461500002BD4DA424681 -:1024DC002F002023260097409B1ADE403B003343FD -:1024EC00CDE7C0460D488546FFF7A2FB0C480D49C9 -:1024FC000D4A002302E0D458C4500433C4188C4253 -:10250C00F9D30A4A0A4C002301E013600432A242B8 -:10251C00FBD301F031FB00F00FF8FEE70090002038 -:10252C00000000206C0000201454000870000020F3 -:10253C000C220020FEE70000F0B5DE4657464E4662 -:10254C004546E0B5CFB000F0CBFF934800F0D6FF86 -:10255C000722924B00215A63A0240D3213A801F0DC -:10256C004CFB0223E405169320000E3312A91293A0 -:10257C00FDF714FE129A236913409A4206D1884B38 -:10258C001B6883F30888874B1B6898470323A02696 -:10259C009A4613930023F60598463000169312A919 -:1025AC0043331293FDF7FAFD2023300012A9129346 -:1025BC008025FDF7F3FD434601277B4C1593AD00B9 -:1025CC000233200013971493129512A9A562994611 -:1025DC00FDF7E4FD40237548129312A98361FDF7C2 -:1025EC00DDFD272320001597129312A9A361FDF797 -:1025FC00D5FD4B46139317934346C024159353466E -:10260C00A400149312943000B46212A9FDF7C6FD15 -:10261C000C23300012A917971293FDF7BFFD8021F0 -:10262C005E4B09065A6D0120920092080A435A65C6 -:10263C005F4ADA635F4A1A649A6B17439F635E4B77 -:10264C001A6814431C605D4CFDF72EFE23685C4A2F -:10265C005C4913401D435C4B256098461B68580031 -:10266C00C0184000FFF7B2FC80226369D200013031 -:10267C00134202D105E0002803D0636901381342EC -:10268C00F9D180214D4A490013680B43136013683C -:10269C000B42FCD00221414A4C4BD365D36D1942FD -:1026AC00FCD0382391680B40D168102B01D100F07D -:1026BC0085FC002B01D000F085FC1368444953685D -:1026CC0019408023DB010B435360136841490B40D5 -:1026DC0013601368404A9B045B0FDA4043461A6050 -:1026EC0043465868FDF7E0FD3C4A002832D13820BB -:1026FC002A498B680340102B01D100F02DFE0B688A -:10270C003748034080200B605469800403E0536910 -:10271C001B1B022B1ED80B680342F8D1CB68314827 -:10272C001840314B0343CB60802308685B040343A0 -:10273C000B608023C8685B050343CB608021546920 -:10274C001648890403E053691B1B022B02D803684B -:10275C000B42F8D0062318490868184201D100F042 -:10276C0009FDE0230D49DB01886803438B608B680E -:10277C001E4803408B600B689B0101D400F00CFDDC -:10278C0007208B681A4C83431800022303438B6089 -:10279C003820556934E0C046DC5100080010024076 -:1027AC000000FF1F0400FF1F000400500008005031 -:1027BC0003000230010812000020024000700040AB -:1027CC00FFF9FFFF40420F000000002009800000CD -:1027DC00FF80FFFFFFC7FFFF0024F4000C01002067 -:1027EC00FFFFFFFE8C80C11132301646FFF0FFFF59 -:1027FC008813000053695B1BA34201D900F0CCFC89 -:10280C008B680340102BF5D10720F5490B6803406A -:10281C00022B01D900F044FDF24BF3499A680A40AF -:10282C009A6038229968114201D000F022FD1B6891 -:10283C00EE489B045B0FD8401F22EA4BEC4F9B6881 -:10284C001B051B0F9B00FB189B691340D84043468C -:10285C0018605868FDF728FDE64AE7491368E74811 -:10286C000B401360E64B1968434609051A68090DBD -:10287C0000F044FE84201022E24B19589143195069 -:10288C0004381958114319501968114319605968C3 -:10289C000A435A60DC4B1A68D20307D41A68DB4926 -:1028AC000A401A60DA6BDA490A40DA638023D64AA6 -:1028BC005B02116801240B4313603F22D5490920A8 -:1028CC000B6893431A00052313430B60D24BD34977 -:1028DC001A681140D24A0A43D2491A6099600321FE -:1028EC00D14A93464A32DA605A68120C12040A43EF -:1028FC005A60CE4A5460022219680A431A600822B0 -:10290C0019680A431A601A68210022431A60FDF7FD -:10291C00F3FBC74B9A68224207D1DA68C5490A40D3 -:10292C00DA601A69920092081A618021C04B8903FF -:10293C00DA680A43DA608022920119681142FCD0ED -:10294C0007211A605A698A43110002220A43702136 -:10295C005A615A698A43110050220A430F215A6165 -:10296C009A6A8A439A625A69A3490A405A619A6AD6 -:10297C00F231FF318A43110010220A4380219A62FE -:10298C005A6989000A435A619A6AAB491140C022BC -:10299C00D2000A4380219A625A69C9010A435A61DA -:1029AC009A68A6491140802252050A439A60434610 -:1029BC00A3491868FFF70AFB142343430893089BA9 -:1029CC00002B05D0089B013B0893089B002BF9D1E9 -:1029DC00974B9C499A681140802212060A439A60D0 -:1029EC009A68002AFCDB802212011A6020230893CB -:1029FC00089B002B05D0089B013B0893089B002BE0 -:102A0C00F9D180238A4C9B0522690321134323614E -:102A1C0011230C206360FDF76FFB0121E368E36871 -:102A2C00A3680B4200D1BAE3874800F067FD01248C -:102A3C007F4B86491A6912A8A2431A611A69844EFF -:102A4C000A401A619A687F490A4022439A604923D6 -:102A5C005A4616A9D454C82200F09CFFD620400038 -:102A6C0001F0AEF8C822010052001031050000F050 -:102A7C0091FFD023774A28215B00EA50DA20D82234 -:102A8C00994608AB5B189D50400001F099F8030083 -:102A9C00C822103319005200050000F07BFF4B4692 -:102AAC006D486749E8509F3BFF3B9A465046AF3311 -:102ABC00FF33E8545B469D6143461868FFF786FA7E -:102ACC003B000138B0625833B26A1900634800F019 -:102ADC0015FD634B0021B36111230D20336274602B -:102AEC00FDF70AFB00210E20FDF706FB8423336063 -:102AFC00882328211B02F4607364DC2308A8401887 -:102B0C00C550002200234A924B93E82308A80D00DD -:102B1C004118CC5439005348743100F0EFFC434653 -:102B2C0051491868FFF752FA8023504ADB050138E7 -:102B3C0098625A63102251469A611A6A12A822436B -:102B4C001A62DA680A435946DA60494A48600A60F0 -:102B5C00FA2212018A60032259690F200A435A6132 -:102B6C0051461C60FDF7C8FAEC2001F029F806006C -:102B7C00C82231000290D03000F0F8FCFF23D8229C -:102B8C003100E434335508AB5B199E587D35FF3565 -:102B9C00715138493348103100F0B0FC4A46364B7D -:102BAC00B35000F0B9FF01003000FDF731FF75594B -:102BBC002B5D7F2B00D803E3304B0693304B0793F0 -:102BCC0000F000FEE6232F4AE8521E3BEE50043381 -:102BDC00EA508023DB009C46604400F0F1FF53E098 -:102BEC000020024000100240FF8FFFFF0024F40081 -:102BFC00B44A000800700040FFFEFFFFF0510008CF -:102C0C00005801400018024000740040FFFF03FF11 -:102C1C00FFFFF8FF00080240080002400F80FFFF92 -:102C2C00A0250000402401408C0000200000024040 -:102C3C0000240140C73FFFFFFFF0FFFFE8FFFF6FDD -:102C4C0040420F00E8FFFF7F10520008FFFFFFDF3C -:102C5C00002C0140DD090008FD0900082C52000879 -:102C6C0068680000D44F000800093D00801A060077 -:102C7C007D030008344B00081D0A00083852000878 -:102C8C00684D000811030008E023E422E8500023FB -:102C9C00AB540632AB52E14AE14B516D49240B4324 -:102CAC005365E04B99468B234A46D3601268DE4B42 -:102CBC0013434A4613605B461B5D012B00D988E227 -:102CCC0002211C20FDF718FA5B4659461B5D5A1C65 -:102CDC000A55E5225BB29246AB54002B00DA7EE239 -:102CEC002A00D24909A800F02FFC0CAB18002A00CE -:102CFC00CF490FAC039300F027FC2A002000CD49EC -:102D0C0000F022FC5346EB56012B00D1DCE2E5230C -:102D1C00EA56C94B78219C460493C84B6144180071 -:102D2C0089461F00059300F0E9FBE5229246AA565E -:102D3C00012A00D1F6E24946380000F0DFFB52468A -:102D4C00AA56012A00D1EDE24946380000F0D6FB24 -:102D5C00D223BB495B002031BA48F658002500F05D -:102D6C00CDFBEB235A46F55412A9633BD150029983 -:102D7C000433D150282108AA50335218D658302287 -:102D8C009446B14B634499464F46A146AF4B9A4685 -:102D9C00AB4B383301935046396800F0AFFB3889A0 -:102DAC007B6800280ED0002204E0013292B202337C -:102DBC00904207D019785C780C42F6D00199A4485F -:102DCC0000F09CFB0135ADB21037042DE3D1D823B4 -:102DDC00D2215B00F35C9C4A1B013032D2184900B3 -:102DEC007250994935008C4663449B8FA535FF354D -:102DFC002B816423AB710023AB80D37A4C46002B20 -:102E0C0000D1FAE1934B944F019300232A89994600 -:102E1C00EB71AB729A421DD0A533FF339A463B003F -:102E2C0037004E469946280010A9FDF783F9037820 -:102E3C00237043786370AB79A3705346FB589B7A2D -:102E4C00E3702379F6182B89002BECD14B46B14655 -:102E5C003E001F004946814800F050FBD823D22188 -:102E6C005B00F25C784B120130339B1849007350B5 -:102E7C007549DB7A8C466244928F2A816422AA714E -:102E8C000022AA80934200D1B1E10023744AEB7175 -:102E9C00AB72A133FF33F25000F03EFE0100300064 -:102EAC00FEF7D8F812AA20006E4900F04DFB5B46E5 -:102EBC000C3316C816C3962403210720FDF71CF902 -:102ECC00694800F01BFBE400684800F017FB210088 -:102EDC00674800F013FB50235A468025D452654BAB -:102EEC00654A664C5A616369AD002B4203D1644854 -:102EFC0000F004FBA561634BE8259946D823DC243C -:102F0C009A46614E282208AB9B185B5D002B00D1C2 -:102F1C00C4E0282708ABDB191B5931001A00180034 -:102F2C00019300F0B3FD0028ECD1524608ABDB193D -:102F3C009B5849461A001800019300F0A7FD002881 -:102F4C00E0D112AA1000514900F0A0FD071ED9D102 -:102F5C000121039800F0ECFA002800D074E172B65D -:102F6C00BFF34F8FBFF36F8F48235A46D35CFF2BB1 -:102F7C0000D1DDE148225B4659469B5C01338B5402 -:102F8C0008AB203A9B18185900F01AFD002800D005 -:102F9C003CE148235A46D35C002B00D162E1482225 -:102FAC005B4659469B5C013BDBB28B54002BA9D191 -:102FBC00BFF34F8FBFF36F8F62B6A3E70D3B194082 -:102FCC00022920D01549324A0B68802013400B602F -:102FDC0080230A685B0013432E4A0B605469C000BF -:102FEC0005E053691B1B022B01D9FFF7B3FB0B68E0 -:102FFC000342F6D04B68284818408023DB0103437A -:10300C004B60FFF774FB1368234953681940802306 -:10301C00DB010B435360FFF763FBC046001002401B -:10302C0008000C0000440040010000204D16000870 -:10303C00350300084D03000834490008A04D000872 -:10304C00344B0008D44F0008B449000880520008E3 -:10305C0090520008884E0008A04E0008A8520008A4 -:10306C006110000865030008C4520008D85200081B -:10307C005C4E000800740040FF0F0000000400507C -:10308C00C04F0008950A0008E90A0008F10E000874 -:10309C00FFC7FFFF0C010020FF80FFFF28218026C7 -:1030AC00DF4C08AADC335218D5586369B60033429A -:1030BC0003D0DC4800F022FAA662D02464002E591A -:1030CC0000F038FD01002800B047D74B28212B51C8 -:1030DC00D82308AA5218D5582E5900F02BFD010000 -:1030EC002800B047D14BD2482B51FDF7D9FED22343 -:1030FC005B00EC58BF3BE256012A04D004990598BA -:10310C00783100F0FBF9E023E05800F063FDE52393 -:10311C00FF22E254029AD35C7F2B05D81821069A21 -:10312C000798FF3100F0FAF92824029800F052FDBC -:10313C00DC2308AA1219D05800F04CFDD82308AA99 -:10314C001219D05800F046FD72B6BA4800F0D6F904 -:10315C0000F0F8F91121B84A136A8B4313628022EC -:10316C00AF4B92009A62DA3AFF3A9A61B34B19323A -:10317C009A62FEE7072002230C68844323430B600A -:10318C005569AF4C0B680340022B01D1FFF7E9FAEC -:10319C0053695B1BA342F5D9AA4FFFF75DFBE368AC -:1031AC00A94AE3681A40A94B1343E360E3689B0206 -:1031BC0000D43CE4F023A26A1B021343A36236E45E -:1031CC00A34BA44AE12118000692079300F0A6F93C -:1031DC00F6E4A14800F092F9E523FF22EA540CAB87 -:1031EC0003939E4B0FAC04939D4B0593B0E5482184 -:1031FC003800019A00F092F947E69A4B9A4F1A0060 -:10320C0048213800019300F089F9FEE52821524647 -:10321C0008AB5B18985800F0D3FB002800D1B8E637 -:10322C0012A800F0CDFB002800D1B2E680228F4F0F -:10323C0092007B69134200D0E5E004218C4A1369AB -:10324C008B43136130BFA4E6039B8A491B78682229 -:10325C000193C87F002871D12F2B00D07FE02E3B2B -:10326C00CB777CE6A621844A8448890000F056F985 -:10327C0095E699681140082900D11FE19968114021 -:10328C00102900D187E099681140202900D118E15C -:10329C009B681A40182A00D117E10020FFF7CCFADE -:1032AC0002230C68844323430B605569644C0B6800 -:1032BC000340022B01D1FFF7AFFA53695B1BA3420A -:1032CC00F5D9604FFFF7C8FA5B4609AA1C3383CACD -:1032DC0083C35B46039A283383CA83C34B461A685D -:1032EC00042313434A4613605346EB56012B00D07C -:1032FC000DE55B465A469D63614B53635B4622006A -:10330C003C3383CA83C34B461A68082313434A468B -:10331C0013605346EA56514B0493514B0593012AC3 -:10332C0000D0F6E42023574A11680B4313600FE5D5 -:10333C00554A5649514800F0F1F81BE6019B0A2BFF -:10334C0041D0534800F0DAF80198FDF7F3FF5B46E3 -:10335C0000226833DA7702E6CB68FFF7FBF95946AF -:10336C00444B9B7FC918885401980A280AD0414FB6 -:10337C000133DBB2BB7788541E2B00D0EFE54448F9 -:10338C0000F0BCF85F4668373900424800F0B6F8E8 -:10339C000023BB77E3E5DA68D968D243D8684906DD -:1033AC00490F40040131440E920700D191E03A4894 -:1033BC00FEF70CFE6043394BD968490F0131FEF71B -:1033CC0005FEFFF739FA2B4B2A48997F4B1CDBB2D1 -:1033DC0083772F20594488541E2B08D12C4800F099 -:1033EC008DF824492B4800F089F8224B9F775F46D3 -:1033FC0000226837BB7F3900FA54264800F07EF86B -:10340C000022BA77A3E7434606201B682449584399 -:10341C00FEF7DCFD3B68234A013013403B6047E07C -:10342C0000040050AC4F0008FD090008DD0900083D -:10343C001053000820530008002C014000080050D5 -:10344C0088130000B44A00083CC2FEFF03100000C1 -:10345C00684D0008385200084C52000834490008E6 -:10346C00A04D0008884E0008A04E000800700040D7 -:10347C0000ED00E0F4000020BC4D00083C4C0008BE -:10348C00410B000800440040784D000891020000F8 -:10349C0024530008005300080024F40000100240DC -:1034AC0040420F00FFBFFFFF002800D171E501383B -:1034BC0080227B6992001342F6D1BEE60748FFF7E3 -:1034CC00BBF980200002FFF7B7F9FA20C001FFF723 -:1034DC00B3F90248FEF77AFD60436CE700127A00FC -:1034EC0010B5FEF7CDFB10BD00B583B0019101AA5C -:1034FC0001000020FEF7C8FB03B000BD0FB400B5FF -:10350C0083B004AB02CB01AA002000930193FEF719 -:10351C00BBFB03B008BC04B01847C046130010B581 -:10352C000A0001000148FFF7E9FFFEE744530008D9 -:10353C000A0010B501000020FEF77CFBC343DB172B -:10354C00184010BD7047C046002383604260016084 -:10355C007047C04610B503680400002B04D04068C7 -:10356C009847A3680133A36010BDC04601604B1E91 -:10357C00994100234942114041608360C360704708 -:10358C0003009B68C068C01A43425841C0B27047E0 -:10359C000200C368581E9368C01A536800D5C0183F -:1035AC007047C04603008268C1685B68501A00D53A -:1035BC00C0187047F0B54646D6464F460500C0B514 -:1035CC00EB688068013B0E0014001B1A1ED493425A -:1035DC001AD31700002F05D12000E0BCBA46B14623 -:1035EC00A846F0BDAB6828689C463A0060443100A0 -:1035FC0000F0FAFAAB689C466B686744AF609F4278 -:10360C00EAD10023AB60E7E70020E6E76A68904662 -:10361C004344A342F8D30319994627009A42D9D8B8 -:10362C00131A9A462B6852469C46604400F0DCFA0A -:10363C0000234246AB604B4656449F1ACAE7C0462D -:10364C00F8B54746CE4680B5C668836805008846FF -:10365C009C1B0BD4944207D82700002C20D1380097 -:10366C00C0BCB946B046F8BD1400F5E743689946AE -:10367C004C44944200D91400331927009945ECD8D6 -:10368C004B469F1B2B683A009919404600F0ACFA48 -:10369C004B46F61AA419B84400263F19002CDED06C -:1036AC00296822004046891900F09EFAD7E7C046E7 -:1036BC00F0B54F464646D646C0B50F008368C16884 -:1036CC00060014005B1A1ED493421AD31500002D69 -:1036DC0005D12000E0BCBA46B146A846F0BDF3685F -:1036EC0031689C462A006144380000F07DFAF3688A -:1036FC009C4673686544F5609D42EAD10023F360F3 -:10370C00E7E70020E6E7426890464344A342F8D33B -:10371C000B19994625009A42D9D8531A9A46036830 -:10372C0052469C463800614400F05EFA0023424643 -:10373C00F3604B4657449D1AC9E7C04670B501006B -:10374C000400861D1D4D1E4823781B02584008237B -:10375C0004E0013BDBB280B2002B09D002B2400086 -:10376C00002AF6DA013B6840DBB280B2002BF5D1BF -:10377C000134A642E8D14B888A781D0A12021543FF -:10378C001BD008314D190D4CADB20B781B025840B3 -:10379C00082304E0013BDBB280B2002B09D002B25B -:1037AC004000002AF6DA013B6040DBB280B2002B0D -:1037BC00F5D101318BB2AB42E7D170BD21100000C5 -:1037CC00FFFF000008207047052804D883001B1851 -:1037DC000248C01870470248FCE7C046685300080E -:1037EC006453000870B5040004A800784900000177 -:1037FC00084301210143072018400023D200024353 -:10380C0063802371200000230725C9B221706270E8 -:10381C00661D082201304B4004E0013AD2B2DBB203 -:10382C00002A09D059B25B000029F6DA013A6B4044 -:10383C00D2B2DBB2002AF5D1B04201D00178E8E770 -:10384C0063712000FFF77AFF030AE071A371200077 -:10385C0070BDC04670B5040004A840C84900058876 -:10386C0020001B010B43D200310023706270083022 -:10387C002A0000F0B9F92B0AA3700023E570200090 -:10388C0007252371661D02785340082204E0013A93 -:10389C00D2B2DBB2002A09D059B25B000029F6DAA9 -:1038AC00013A6B40D2B2DBB2002AF5D10130B04202 -:1038BC00E9D163712000FFF741FF030AE071A371A6 -:1038CC00200070BD70B5002307244679451D027891 -:1038DC005340082204E0013AD2B2DBB2002A09D0EC -:1038EC0059B25B000029F6DA013A6340D2B2DBB27E -:1038FC00002AF5D10130A842E9D1F01A42425041D8 -:10390C00C0B270BD00788006800F70470078000749 -:10391C00400F704740788006400F7047437807206F -:10392C0018407047827843881202180A1043704777 -:10393C000830704710B50400FFF700FFE388A17949 -:10394C001B0A09020B43181A42425041C0B210BD67 -:10395C00B0B500AF050000F0DDF86A46C31DDB080A -:10396C00DB00D31A9D460200040069462800FFF7CD -:10397C0067FE80B2844203D00024BD462000B0BD57 -:10398C00684600F0F1F804002800FFF70BFE8442B3 -:10399C00F2D8F2E770B505000C001600002905D02E -:1039AC00320028002100FFF7E1FD70BD3D21024AE5 -:1039BC000248FFF7B3FDF3E788530008985300085B -:1039CC0010B5FFF7DDFD10BDF8B5DE4657464E4687 -:1039DC004546E0B500AF1E0080468A46914600F091 -:1039EC0099F86B46C41DE408E4001B1B9D460500BA -:1039FC00801983B23200514668469B4600F0A8F805 -:103A0C00FDF7CEFF4046FFF7C3FD002483450DD9DB -:103A1C00FDF7A6FF5B46E01ABD4643425841C0B2D3 -:103A2C00F0BCBB46B246A946A046F8BD2A00694682 -:103A3C004046FFF7BFFD4B4684B2002BE8D0320066 -:103A4C0049464046FFF7B6FD2418A4B2E0E7C0464D -:103A5C00F8B5060008000F0000F086F80500FDF729 -:103A6C009FFF3000FFF794FD0024854206D9FDF737 -:103A7C0077FF601B43425841C0B2F8BD2A003900A1 -:103A8C003000FFF797FD84B2F1E7C046F8B54E461B -:103A9C004546DE465746E0B500AF060089469046DF -:103AAC00FFF756FF0025041E07D1BD462800F0BCC9 -:103ABC00BB46B246A946A046F8BD6A46C31DDB0804 -:103ACC00DB00D31AEA469D46FDF76AFF22006946E1 -:103ADC003000FFF7EDFD0600B6B2EB46FDF740FFF8 -:103AEC00002E01D1D546E0E7684600F03DF884424F -:103AFC0005D159464046C8470125D546D5E725216D -:103B0C00024A0348FFF70AFDF3E7C046B05300082A -:103B1C00985300080C20704710B5FEF73FF80200D0 -:103B2C000B0003480260436080235B02836010BD7E -:103B3C00E821002010B5FEF731F802000B00034815 -:103B4C000260436080239B02836010BDD82100205B -:103B5C0070B504000E001500FEF720F86681206099 -:103B6C0061602581200070BD00890C3080B27047E7 -:103B7C00807A70470C30704770B500260C4D0D4C98 -:103B8C00641BA410A64209D1002600F001FD0A4DC9 -:103B9C000A4C641BA410A64205D170BDB300EB58AF -:103BAC0098470136EEE7B300EB5898470136F2E739 -:103BBC000C5400080C5400080C5400081054000855 -:103BCC0010B5034B0100186800F08CF810BDC0460E -:103BDC000800002010B5034B0100186800F016F81F -:103BEC0010BDC04608000020002310B59A4200D139 -:103BFC0010BDCC5CC4540133F8E703008218934227 -:103C0C0000D1704719700133F9E7000070B5050059 -:103C1C00002910D00C1F2368002B00DAE4182800B0 -:103C2C0000F05CF91D4A1368002B05D16360146029 -:103C3C00280000F05BF970BDA34208D92168601818 -:103C4C008342F3D118685B6841182160EEE71A00D3 -:103C5C005B68002B01D0A342F9D911685018A0421F -:103C6C000BD120680918501811608342E0D11868F4 -:103C7C005B68411811605360DAE7A04202D90C234B -:103C8C002B60D5E721686018834203D118685B6804 -:103C9C004118216063605460CAE7C046F8210020D7 -:103CAC0070B50F4E0D0031680400002902D100F0F0 -:103CBC008FF830602900200000F08AF8431C0AD0ED -:103CCC000323C51C9D43A84207D0291A200000F0ED -:103CDC007FF8431C01D101256D42280070BDC04600 -:103CEC00FC210020F7B50322CB1C934308330600BC -:103CFC001F000C2B32D20C27B94231D8300000F007 -:103D0C00EDF8324D2B681C00002C2ED13900300000 -:103D1C00FFF7C6FF0400431C1ED12C682500002DA4 -:103D2C004AD123682900E3183000019300F050F8C1 -:103D3C00019B834243D123680337FF1A03239F431C -:103D4C0008370C2F00D20C2739003000FFF7A8FFE2 -:103D5C00431C34D02368DF19276013E0002BCBDA27 -:103D6C000C23002533602800FEBD2268D11B20D413 -:103D7C000B2917D9E2192760A34211D12A60636875 -:103D8C00116053603000250000F0B0F807220B35AD -:103D9C00231D9543EA1A9D42E5D05B1BA350E2E735 -:103DAC005A60ECE76268A34201D12A60EAE75A60E4 -:103DBC00E8E723006468A7E72C006D68AFE70C23E5 -:103DCC003000336000F092F8CDE7C046F8210020B7 -:103DDC00002370B5064D040008002B6000F0CAFBF0 -:103DEC00431C03D12B68002B00D0236070BDC04650 -:103DFC00002200200CB430B5174B0C001D689DB090 -:103E0C00002908DA8B2301202B6040421DB030BC06 -:103E1C0008BC02B0184782236A469B009382002399 -:103E2C0002900690994200D04B1E049307930123F5 -:103E3C006A465B42D382280021AB209A02A90193E7 -:103E4C0000F0BEF8431C01DA8B232B60002CDDD074 -:103E5C000023029A1370D9E70800002003000A78A7 -:103E6C0001311A700133002AF9D1704730B51400B2 -:103E7C0005001A009BB0002C05DA8B23036001208F -:103E8C0040421BB030BD822368469B0083810023D7 -:103E9C00009104919C4200D0631E02930593012370 -:103EAC0069465B42CB8128001E9B00F089F8431CBD -:103EBC0001DA8B232B60002CE3D00023009A1370C3 -:103ECC00DFE7000007B5009313000A000100024869 -:103EDC000068FFF7CBFF0EBD0800002010B50248AC -:103EEC0000F0F0FA10BDC0460422002010B50248C4 -:103EFC0000F0E9FA10BDC04604220020F0B58E682F -:103F0C0085B007000C00039201939E423CD890238D -:103F1C008A89DB001A4234D00969236860695B1A0C -:103F2C00029303234343DD0FED18019B02980133E9 -:103F3C001B186D10AB4200D91D00530532D529005A -:103F4C003800FFF7CFFE061E09D10C233B6040233F -:103F5C000120A28940421343A38105B0F0BD029A0F -:103F6C002169FFF741FEA389144A1A4080231343A9 -:103F7C00A381029B2661F61826606561019EED1AED -:103F8C00A560019B9E4200D9019E320003992068D6 -:103F9C0000F0A5FAA36800209B1BA36023689E1960 -:103FAC002660DAE72A00380000F0ACFA061EE0D1F1 -:103FBC0038002169FFF72AFEC7E7C0467FFBFFFFE9 -:103FCC00F0B5A1B003901D008B890F0016001B06E5 -:103FDC0011D50B69002B0ED14021FFF783FE386001 -:103FEC003861002805D10C23039A0138136021B0E5 -:103FFC00F0BD40237B61002308AC63612033637602 -:10400C001033A376079535002B78002B01D0252B88 -:10401C0047D1AB1B0593B5420CD032003900039845 -:10402C00FFF76CFF431C00D1AEE06269059B944620 -:10403C00634463612B78002B00D1A5E0012200239F -:10404C005242626004A9543252186E1C2360E36021 -:10405C00A3601370A36505223178544800F034FA3C -:10406C00751C00281FD12268D30604D5532304A93C -:10407C005B1820211970130704D5532304A95B186E -:10408C002B21197033782A2B16D0350000210A20E9 -:10409C00E3682A786E1C303A092A4ED9002911D1CE -:1040AC0017E00135B0E7414B2268C01A0123834069 -:1040BC0013432E002360CEE7079B191D1B68079145 -:1040CC00002B01DB0B9304E05B42E3600223134300 -:1040DC0023602B782E2B0AD16B782A2B35D1079B9A -:1040EC0002351A1D1B680792002B2BDB0993304EEF -:1040FC0003223000297800F0E7F9002806D040238D -:10410C00801B8340226801351343236029780622E3 -:10411C0028486E1C217600F0D7F900283CD0264B9D -:10412C00002B25D10722079B0733934308330793B2 -:10413C006369049A9B18636165E743433500012169 -:10414C009B18A6E701235B42D0E700230A201A0044 -:10415C000135636029786E1C3039092903D9002B8D -:10416C00C5D00992C3E74243350001235218F1E749 -:10417C0007AB00933A002100104B039800E000BFFE -:10418C000490049B0133D3D1BB890D985B0600D4FA -:10419C002DE7012040422AE707AB00933A002100AB -:1041AC00064B039800F07CF8EAE7C046D0530008B1 -:1041BC00D6530008DA53000800000000093F00083D -:1041CC00F7B5150001938A680B690C0000909342B7 -:1041DC0000DA130022002B6043321278002A01D03F -:1041EC0001332B6023689B0602D52B6802332B60AE -:1041FC002268062317001F401A4227D0230043339E -:10420C001B785A1E93412268920630D422000199E1 -:10421C000098089E4332B047431C25D006232068E3 -:10422C002A68E16800250340042B03D18D1AEB4367 -:10423C00DB171D40A3682269934201DD9B1AED1820 -:10424C000027BD4220D1002010E00137E3682A6826 -:10425C009B1ABB42D2DD2200012301990098089ED3 -:10426C001932B047431CF0D101204042FEBD302032 -:10427C00E1184331087021005A1C45310978A21805 -:10428C00433202331170C1E72200012301990098D7 -:10429C00089E1A32B047431CE6D00137D1E7000024 -:1042AC00F0B58BB006920A00433207930590049246 -:1042BC000A7E0C00109B782A07D8622A09D8002A9B -:1042CC0000D1C1E0582A00D18CE026004236327071 -:1042DC0022E0100063381528F7D8FDF76DFE1600A4 -:1042EC001F00F6FFF6FFF6FFF6FF1F00F6FFF6FFC6 -:1042FC00F6FFF6FFA80036009A00F6FFF6FFB900AD -:10430C00F6FF3600F6FFF6FF9E0026001A684236CE -:10431C00111D1960136833700123A7E00868196830 -:10432C000A1D05060BD50D681A60002D03DA2D2326 -:10433C00049A6D421370614B0A2703931BE00D68BE -:10434C001A604106F1D52DB2EFE70D681968081D0A -:10435C0018602E0601D50D6803E06D06FBD50D68BF -:10436C00ADB2564B082703936F2A00D002372300B7 -:10437C00002243331A706368A360002B03DB042212 -:10438C00216891432160002D02D1049E002B0CD09A -:10439C00049E28003900FDF79FFE039B013E5B5CE9 -:1043AC0033702B0005009F42F3D9082F09D12368E5 -:1043BC00DB0706D563682269934202DC3023013E99 -:1043CC003370049B9B1B2361079B21000093059872 -:1043DC00069B09AAFFF7F4FE431C4CD10120404276 -:1043EC000BB0F0BD45310A70344A03921A6821684B -:1043FC0020CA1A60080616D5CB0702D5202319430C -:10440C0021601027002DB2D1202322689A4322600C -:10441C00ADE7202209680A43226022007821453248 -:10442C001170274AE1E74806E6D5ADB2E4E71A6811 -:10443C000D68101D4969186013682E0601D51960A6 -:10444C0002E06D06FBD519800023049E2361BBE7B7 -:10445C001A68111D1960166800213000626800F09E -:10446C0033F8002801D0801B60606368236100234F -:10447C00049A1370A8E72369320006990598079DE2 -:10448C00A847431CAAD023689B0715D4099BE06856 -:10449C009842A5DA1800A3E7220001230699059893 -:1044AC00079E1932B047431C98D00135E368099A2E -:1044BC009B1AAB42F0DCE9E70025F7E7E153000873 -:1044CC00F253000870477047C9B28218904201D16C -:1044DC000020704703788B42FBD00130F6E710B513 -:1044EC00884202D98B18984203D3002307E08B5CD7 -:1044FC008354013AFBD210BDCC5CC45401339A42B4 -:10450C00FAD1F8E7F7B507000E001400002905D121 -:10451C001100FFF7E7FB05002800FEBD002A03D1C0 -:10452C00FFF774FB2500F7E700F01BF801908442BD -:10453C0003D835004308A342EED321003800FFF71F -:10454C00D1FB051EE8D0019B22009C4200D91A0029 -:10455C0031002800FFF748FB31003800FFF756FB0D -:10456C00DAE70B1F1B68181F002B01DA0B58C01859 -:10457C0070470000044A03001068002802D0C318DA -:10458C00136070470148FAE708220020102200202F -:10459C00F8B5C046F8BC08BC9E467047F8B5C04696 -:0845AC00F8BC08BC9E467047F4 -:1045B4001A0F00080C0F00080C0F00080C0F00085D -:1045C4000C0F0008360F00080C0F0008180F000825 -:1045D4000C0F00080C0F00080C0F00080C0F00084B -:1045E400460F00080C0F00080C0F00080C0F000801 -:1045F4000C0F00080C0F00080C0F00080C0F00082B -:104604008C0F0008781000088E1000089C10000819 -:104614007810000878100008781000087810000856 -:104624007810000878100008781000087810000846 -:104634007810000878100008781000087810000836 -:104644007810000878100008781000087810000826 -:1046540078100008AA1000087810000878100008E4 -:10466400781000087810000878100008D4100008AA -:10467400121100087810000878100008781000085B -:104684001C1100082611000894110008AA11000842 -:10469400B81100089411000894110008941100083E -:1046A4009411000894110008941100089411000852 -:1046B4009411000894110008941100089411000842 -:1046C4009411000894110008941100089411000832 -:1046D4009411000894110008C611000894110008F0 -:1046E4009411000894110008941100089411000812 -:1046F400F011000802120008941100089411000837 -:1047040094110008281200080C12000888120008EE -:104714009E120008B21200088812000888120008CD -:1047240088120008881200088812000888120008FD -:1047340088120008881200088812000888120008ED -:1047440088120008881200088812000888120008DD -:10475400881200088812000888120008E012000875 -:1047640088120008881200088812000888120008BD -:1047740088120008141300080A130008881200089D -:1047840088120008AE120008AE120008C012000819 -:104794007C14000862130008621300086213000806 -:1047A4006213000862130008621300086213000811 -:1047B4006213000862130008561300085613000819 -:1047C4005613000856130008561300085A1400081C -:1047D4005613000856130008561300085613000811 -:1047E4005613000856130008561300085613000801 -:1047F40056130008561300085613000856130008F1 -:1048040056130008561300085613000856130008E0 -:1048140056130008561300085613000856130008D0 -:1048240056130008561300085613000856130008C0 -:1048340056130008561300085613000856130008B0 -:1048440056130008561300085613000856130008A0 -:1048540056130008621400080C14000856130008CC -:10486400B81300085613000856130008561300081E -:104874005613000856130008561300085613000870 -:10488400F6130008561300084814000856130008CD -:104894005613000832140008561300085613000873 -:1048A40056130008E41300082A1400089E1D00088B -:1048B400761D0008761D0008761D0008761D000888 -:1048C400761D0008761D0008761D0008761D000878 -:1048D400761D0008761D0008E01E0008261E00084C -:1048E400761D0008761D0008761D0008761D000858 -:1048F400761D0008761D0008761D0008761D000848 -:10490400761D0008761D0008761D0008041E0008A8 -:10491400761D0008761D0008DE1D0008761D0008BF -:10492400BE1D0008761D0008761D00089E1D0008A7 -:104934006173736572745F6661696C65640000001D -:1049440068616E646C65486F73745061636B657401 -:104954000000000072784572726F7243616C6C6281 -:1049640061636B0074784572726F7243616C6C6240 -:1049740061636B0030313233343536373839414274 -:104984004344454673746174654E6F7000000000C3 -:1049940073746174654E6F70000000007374617409 -:1049A4006549646C650000004253505F646F43685E -:1049B400616E6E656C416374696F6E0072657370CD -:1049C4006F6E645769746841636B4672616D65000C -:1049D40064697370617463684576656E7400000081 -:1049E400504E0008C04B000802007D03C8000000C0 -:1049F40028530008B84B0008040032052C010000BD -:104A040030530008B04B000804001405C80000002F -:104A14003C5300088C4B000812001E0928000000BB -:104A2400737461746549646C650000007374617427 -:104A34006550617573656400737461746550756C59 -:104A440073696E67000000004253505F74726967B7 -:104A5400676572414443000068616E646C65496E29 -:104A6400636F6D696E674672616D6500486172645B -:104A74004661756C745F48616E646C657200000019 -:104A840073707572696F75734952510054494D3191 -:104A94005F42524B5F55505F5452475F434F4D5FE7 -:104AA40049525148616E646C65720000444D413155 -:104AB4005F4368616E6E656C315F49525148616E47 -:104AC400646C65720000000000000000000000003B -:104AD40000000000000000000000000000000000D2 -:104AE40000000000000000000100000002000000BF -:104AF400030000000400000006000000070000009E -:104B040008000000090000004253505F72656769A5 -:104B14007374657250756C736544656C6567617414 -:104B2400650000004253505F726567697374657273 -:104B340041707054696D657248616E646C65720091 -:104B4400436F6E74726F6C6C65725F696E6974002A -:104B5400446174614C696E6B5F77616974466F720E -:104B640053796E63000000005061747465726E497D -:104B740074657261746F725F636865636B506174AE -:104B84007465726E000000000102020504020A044A -:104B94000408080501080A01050A020105020204C5 -:104BA400040A080405080801010A0A0501080204A8 -:104BB400040208010102040802010804050A0A05A6 -:104BC40025732825732C202575290A0025732C208C -:104BD4007472616E73616374696F6E3D2568752CC0 -:104BE400206F70636F64653D307825303268687873 -:104BF4002C206174747269627574655F69643D2503 -:104C040068750A002573282575290A0050756C7388 -:104C1400652077696474682069732025687520C2EB -:104C2400B5730A0070742D3E706163655F6D732007 -:104C34003E3D2035000000007372632F6273705F85 -:104C440073746D3332673037312E630070742D3EC8 -:104C540070756C73655F77696474685F6D6963729E -:104C64006F7320213D20300070742D3E6E725F6F93 -:104C7400665F70756C73657320213D203000000001 -:104C840028656C636F6E5B305D202620656C636FF6 -:104C94006E5B315D29203D3D203000005465726D0E -:104CA400696E616C0000000052545400534547473C -:104CB40045520000436F6E74726F6C6C65725F25B1 -:104CC4007320756E657870656374656420657665B8 -:104CD4006E743A2025750A0053657175656E6365B7 -:104CE400725F257320756E657870656374656420E2 -:104CF4006576656E743A2025750A0000436F6E74FC -:104D0400726F6C6C65725F257320454E5452590A5C -:104D140000000000436F6E74726F6C6C65725F25E7 -:104D24007320455849540A007366203D3D204E5572 -:104D34004C4C00007372632F636F6E74726F6C6CF3 -:104D440065722E63000000007372632F73657175C2 -:104D5400656E6365722E63006E6272203D3D203184 -:104D6400000000007372632F646174616C696E6B80 -:104D74002E6300006273702E637269746963616CE0 -:104D84005F73656374696F6E5F6C6576656C202113 -:104D94003D2055434841525F4D4158002573282515 -:104DA40075293A20756E6B6E6F776E20646576692F -:104DB40063652069640A00006273702E637269740B -:104DC4006963616C5F73656374696F6E5F6C65764C -:104DD400656C20213D2030004672616D6520706154 -:104DE400796C6F616420746F6F206269673A202563 -:104DF40068752062797465730000000025732825A6 -:104E04006868752920746F20636F6E74726F6C6CA0 -:104E140065720A0054696D6520253032753A253073 -:104E240032753A253032750A000000005265636518 -:104E340069766564207369676E616C2025640A0075 -:104E4400257328256875293F0A0000004A61636BB1 -:104E540068616D6D6572000053657474696E6720D6 -:104E64005663617020746F20256875206D560A00A2 -:104E7400537769746368696E6720746F202725739C -:104E8400270A000070642D3E6E725F6F665F737454 -:104E940065707320213D2030000000007372632F81 -:104EA4007061747465726E5F697465722E6300005C -:104EB40053657175656E6365725F257320454E5445 -:104EC40052590A0053657175656E6365725F257387 -:104ED40020455849540A0000497072696D3D257592 -:104EE400206D412C20566361703D2575206D562C34 -:104EF40020566261743D2575206D560A000000003D -:104F04005374617274696E6720272573270A000041 -:104F140050756C736520747261696E206C61737472 -:104F24002070756C736520646F6E650A0000000064 -:104F340046696E697368656420272573270A000033 -:104F4400257320454E5452590A000000257320450C -:104F54005849540A00000000526573756D696E6704 -:104F640020272573270A000050617573696E672036 -:104F7400272573270A000000436F6D6D616E64730B -:104F84003A202F3F202F61202F62202F64202F6C86 -:104F9400202F6E202F71202F75202F76202F302068 -:104FA4002F312E2E2F390A005475726E696E6720C8 -:104FB40056636170204F46460A0000005475726EB5 -:104FC400696E672056636170204F4E0A000000002E -:104FD40025730A004669726D776172652076302EFA -:104FE40032372D626574610A00000000556E6B6EE5 -:104FF4006F776E20636F6D6D616E6420272F25635C -:10500400270A0000476F742041434B20666F7220CB -:105014006672616D6520256868750A00476F7420A3 -:1050240053594E43206672616D652C207365715F20 -:105034006E723D256868750A00000000476F742091 -:105044006465627567206672616D652C2073657195 -:105054005F6E723D256868752C20636F6D6D616E9F -:1050640064206C656E6774683D2568750A000000ED -:1050740027252E2A73273F0A00000000476F74205B -:105084006E6574776F726B206672616D652C207328 -:1050940065715F6E723D256868752C207061636B65 -:1050A40065742073697A653D2568750A00000000FF -:1050B400476F74202573206672616D652C207365BB -:1050C400715F6E723D256868752C207061796C6F14 -:1050D40061645F73697A653D2568750A00000000A4 -:1050E40025733A20626164206672616D650A00006E -:1050F40025732C20494353523D307825780A00000B -:1051040020205469703A2068616C74204350552CF7 -:10511400206368616E676520677561726420402052 -:10512400257020746F20302C207468656E20737491 -:1051340065702E0A0000000050742053523D3078F0 -:1051440025780A00434331202568750A00000000D1 -:10515400434332202568750A00000000414443207F -:105164006F76657272756E0A000000004144432038 -:1051740072656164790A0000414443206368616E8A -:105184006E656C20636F6E66696720726561647911 -:105194000A00000041444320454F430A0000000038 -:1051A40041444320454F530A000000004144433129 -:1051B4002D3E4953523D307825780A0025732C2022 -:1051C40054454946310A000025732C204953523D69 -:1051D400307825780A000000496E697469616C6949 -:1051E40073696E672E2E2E0A00000000446576490E -:1051F400643D307825782C2053797374656D436F42 -:105204007265436C6F636B3D25750A004C4C5F41BE -:1052140044435F5245475F496E6974206572726FFB -:10522400723D25750A00000025733A205053433D12 -:1052340025750A006D652D3E6368616E6E656C5F51 -:105244006664203C2030000043616E206F6E6C79F0 -:1052540020757365206F6E652073657269616C20BB -:10526400706F727420617420612074696D652C20E4 -:10527400666F72206E6F770A0000000043686563F2 -:105284006B696E6720272573270A000025733A206F -:1052940073686F727420696E20656C636F6E20256D -:1052A40068750A00546F74616C206E756D62657266 -:1052B400206F662070756C7365733A2025750A003B -:1052C4005374617274696E67204E656F444B210A92 -:1052D400000000005075736820746865206275745E -:1052E400746F6E20746F20706C6179206F722070FF -:1052F40061757365203A2D290A000000436F6E73AF -:105304006F6C653A20272573270A0000456E6420D8 -:105314006F662073657373696F6E0A004279652145 -:105324000A000000546F67676C65000043726F7376 -:1053340073546F67676C6500436972636C65000042 -:10534400415353455254494F4E204641494C4544DC -:1053540020282573203A202575292025730A00006A -:10536400424144004E4F4E450041434B00004E41E4 -:105374004B000053594E430044415441004F505494 -:105384005300000073746F7261676520213D204EE5 -:10539400554C4C006D616F6C69622F7372632F659D -:1053A40076656E7471756575652E63006576656ED8 -:1053B400745F73697A65203D3D20414F4576656E83 -:1053C400745F73697A65286576742900232D302B00 -:1053D4002000686C4C0065666745464700303132F2 -:1053E4003334353637383941424344454600303149 -:1053F40032333435363738396162636465660000A8 -:0854040054CFFF7F01000000FE -:04540C00E5000008AF -:04541000BD000008D3 -:105414000024F400040000000C0000200000000040 -:105424000000000000000000000000000000000078 -:105434000000000000000000000000000000000068 -:105444000000000000000000000000000000000058 -:105454000000000000000000000000000000000048 -:105464000000000000000000000000000000000038 -:0C5474000000000000000000000000002C -:04000005080024F1DA +:10030C0000ED00E010B50A0002490348103103F07B +:10031C0035F910BDC44900085C4C000810B50A0042 +:10032C0002490348203103F029F910BDC4490008E3 +:10033C005C4C00084B1E9941012310B5494299436E +:10034C00002200230E3103F07FFB10BD70B50600B8 +:10035C0014001D0082B0E03600920193326873687D +:10036C00A41A9D41002D04D1074B9C4201D802B028 +:10037C0070BD08236A46132103F066FB009B019CA9 +:10038C0033607460F3E7C046BFE1E40030B50500AC +:10039C00AD35FF352B89040083B00020002B01D133 +:1003AC0003B030BD01A92800FFF7C4FE6A460378EC +:1003BC00137043785370D623A9795B00E35891707E +:1003CC009B7AD370C82902D9C823C821937063487B +:1003DC0003F0D4F86B46DB78042B00D8A9E06B460D +:1003EC009B78002B00D19EE06B461C79002C00D131 +:1003FC0090E06B46D9784A01521A93019B1AD800A7 +:10040C00FA23401880019B04984244D3544800229C +:10041C000621544B013CD8621C635A621A698A4308 +:10042C001A616B461A785B78134268D10521114228 +:10043C0037D16946042488784A4901388863C868EA +:10044C0013432043C8604869033C20434861002B98 +:10045C0075D14022444B9A62444B3E3A9C619A615E +:10046C0006320421414B9961404B002A44D0202292 +:10047C009A61002352213E4A3A4C53526363A36360 +:10048C0090693339002203F0DFFA0122236801203E +:10049C001343236084E7FA21890001F0DBFD013866 +:1004AC00B5E76946022488782E4901384863C86844 +:1004BC0013432043C8604869013C204348614021F4 +:1004CC00DB430120284A9161DAB203423DD1274B2C +:1004DC000221986204230820114013400240002995 +:1004EC002FD1022021498862002BBAD104211F4B45 +:1004FC0099621E4B002ABAD120229A62B9E7622176 +:10050C001C4A1D48FF3103F049F86B466A465B787C +:10051C0012788BE7D221194A1748890003F03EF86C +:10052C006B461C7965E7164A1649134803F036F8F2 +:10053C005AE7154A1549104803F030F84FE79BB2BB +:10054C00BDE7022009498861CEE7082404233E391F +:10055C00114013402240054CA061C0E7644C0008D8 +:10056C00FEFF0000002C0140000800500004005069 +:10057C008C000020D84C0008904C0008C04C00089F +:10058C00A44C0008470300007C4C00084603000004 +:10059C00032310B5104C114A23616361104BA26107 +:1005AC00E36180239B0123620023A3626362E36205 +:1005BC0022660C4A0C49583262661022E01DA26673 +:1005CC002367E366636703F089FC2000074903F0A7 +:1005DC0085FC2023A37110BD2C210020F44C0008B5 +:1005EC002C0100208C000020004D0008044D000858 +:1005FC00F8B54746CE4680B58368C56899465B1BFF +:10060C009846436804000E0017005819904507D906 +:10061C00ED1903F029FBE560C0BCB946B046F8BD46 +:10062C00424603F021FB4B463100ED19ED1A2A002E +:10063C006068414403F018FBE560EDE7F0B5574600 +:10064C004E464546DE46E0B5354B83B09A461B78A0 +:10065C00060015000191002B56D07700BB19DB006A +:10066C0053441A6F9046DA6E9146904525D8130084 +:10067C0042462C009B1A9D4209D8002C09D120001F +:10068C0003B0F0BCBB46B246A946A046F0BD1C1E4A +:10069C00F5D0A146BB19DB005344596E22004144EE +:1006AC000198A04403F0E0FA4C46002CE7D04346F6 +:1006BC00BF19FF0057443B67E1E742469B6E2C0095 +:1006CC009B1A9D4227D8BB19DB0053449B46596E9D +:1006DC0022004144019803F0C7FA5B469B6EA0448C +:1006EC002D1B434519D04B4642469B1A99464D4506 +:1006FC000DD8002DD9D0019BA1469C46A44463463D +:10070C002C000193A944C5E7FFF742FFA5E74D462E +:10071C00002DCAD0EFE71C00D5E700239846E6E78A +:10072C002C210020F8B557464E46DE4645468946F4 +:10073C00411CE0B517004A0052180300D200924643 +:10074C00344A5E0093461000F618F6005E44F36AD5 +:10075C0050449846012B0CD0022B27D0002B17D0DD +:10076C00002398464046F0BCBB46B246A946A0467C +:10077C00F8BDB36A726A934247D9013B9B1AB846DB +:10078C009F4200D9984642464946FFF731FFE9E7B8 +:10079C00B36A726A934233D9013B9B1A9F42E1D8E8 +:1007AC003A004946FFF724FFB846DBE70023746A9A +:1007BC0098461DE0013B356A1B1BBB4200D93B0030 +:1007CC002D1B9D4200D91D005B46534458682A00DE +:1007DC004946001903F048FA336A6419E31A5A1EA1 +:1007EC0093415B421C40A844A9447F1B7462B9D05E +:1007FC00B36AA342DED8356A5B19013B1B1BDCE7ED +:10080C00316A5B18013B9B1AC8E7316A5B18013BE4 +:10081C009B1AB4E72C210020F0B5C64600B58568BC +:10082C0043686A1C04009A4207D80368595515009E +:10083C00C36882600133C36043689D4202D080BCB0 +:10084C00B846F0BD2368276998460E4B1B78002BE1 +:10085C0015D0EFF31086012181F310882A00414650 +:10086C003800FFF75FFF86F31088A368834203D03C +:10087C0001235B42E360E2E70023A360DFE7FFF7BD +:10088C0087FEE6E72C210020F0B54E46454657463C +:10089C00DE46E0B583B09A460C9B80460E001500F0 +:1008AC009946914200D27DE008000127290001F011 +:1008BC00D1FB01378542F9D9574500D25746012360 +:1008CC000D9A1A4001920D9A13424ED14B46002BB1 +:1008DC004BD0130020249B075ED44F4545D20123F7 +:1008EC005B429C4621004046E144FFF795FF43469E +:1008FC00DB68002B32DB4B46002BEED15346012438 +:10090C00012B07D901235B429C46E24453466C43BE +:10091C00012BF7D82100300001F09CFB8542F5D962 +:10092C00214B9B4630239A4606E02900200001F01B +:10093C0091FBAC420FD304003000210001F010FCFD +:10094C00534658440E00C15C4046FFF765FF4346D2 +:10095C00DB68002BE9DA019B002B19D103B0F0BC4A +:10096C00BB46B246A946A046F0BD4346DB68002B09 +:10097C00C4DAF3E74F45F1D201235B429C462021B8 +:10098C004046E144FFF748FF4346DB68002BE5DBBC +:10099C004B46002BEED1E1E753465C425C4124010F +:1009AC0020349AE7012787E7C449000810B50800EE +:1009BC0003F01EF9034902004031034802F0DEFD4A +:1009CC00002010BDC44900080C4D000810B50800EB +:1009DC0003F00EF9034902004C31034802F0CEFD3E +:1009EC00002010BDC4490008304D0008DC2310B5B0 +:1009FC000400C05803F024F8002801D1002010BDD9 +:100A0C00D823E05803F01CF80028F7D0200003F09E +:100A1C0017F8F4E770B5D026760083590400984790 +:100A2C00051E1BD0A65903F0C5F801002000B047E5 +:100A3C00002804D070210A4A0A4802F0AFFDD023E6 +:100A4C005B00E55003F0A8F801002000A84700283F +:100A5C0004D07321024A034802F0A0FD70BDC046C9 +:100A6C00544D0008604D000870B5D02676008359AF +:100A7C0004009847051E1DD0A65903F09BF80100F1 +:100A8C002000B047002805D01E210B4A0B48FF312F +:100A9C0002F084FDD0235B00E55003F07DF80100EB +:100AAC002000A847002805D09021034A034849009C +:100ABC0002F074FD70BDC046544D0008744D000822 +:100ACC00F8B50600CC3605000122300002F030FEED +:100ADC00012804D0C221244A244802F05FFD72B6DA +:100AEC00BFF34F8FBFF36F8F4827214CE35DFF2B74 +:100AFC002CD0482201333000A35402F093FD00287F +:100B0C000FD04825635D002B18D04822013BDBB287 +:100B1C00A354002B04D1BFF34F8FBFF36F8F62B67A +:100B2C00F8BDE123EA56012A17D04825114912488D +:100B3C00583102F023FD635D002BE6D1A6210F4A4C +:100B4C000F48890002F02AFD635DDEE70D4A0E496D +:100B5C000B4802F023FDE35DCBE780210B4A1368C1 +:100B6C008B431360CDE7C046844D0008904D0008C0 +:100B7C008C000020C4490008C84D0008E44D000852 +:100B8C00904C0008A04D0008910200000044004069 +:100B9C00F8B54746CE4680B5050000AF08000C00FE +:100BAC0003F026F8022812D015281CD0012814D0E6 +:100BBC00200003F01DF8324902006C31314802F07C +:100BCC00DDFCBD460020C0BCB946B046F8BD2C4982 +:100BDC002D486C3102F0D2FCF3E729492B486C31DB +:100BEC0002F0CCFCEDE7200003F004F8027A022AB4 +:100BFC0005D023492648783102F0C0FCE1E7428950 +:100C0C00C188244802F0BAFCD223D4245B00994654 +:100C1C00EB5864001E5B2048310002F0AFFC6A46C2 +:100C2C00B3000733DB08DB00D31AE8469D464B467E +:100C3C00E9586A460B5B1C1CB3421ED8A4B2002CAC +:100C4C000BD0D2235B00CD580023180128589900F3 +:100C5C000133505099B28C42F7D8002E0BD00F4B69 +:100C6C001500002499460134484602CDA4B202F086 +:100C7C0085FCB442F7D1C546A3E7341CDEE7C04679 +:100C8C00C44900080C4D00081C4E0008044E000816 +:100C9C00784E0008304E0008584E0008704E000880 +:100CAC00F0B50400E025DC20C646E226635D00B505 +:100CBC005A1C62552258D154615DA35B994206D3EC +:100CCC0027580FD0E422A05A1B18994203D00020B9 +:100CDC0080BCB846F0BDE02300223800E25402F09C +:100CEC0055FEF5E7380002F02DFE00280DD0380037 +:100CFC0002F058FEE4239846E05280230100DB000A +:100D0C00984215D8615DA35BDEE7635D013BDBB206 +:100D1C006355002BDBD00023DC25E0306259D11861 +:100D2C004978D154225C0133DBB29A42F6D8CEE733 +:100D3C00034802F023FC00234246A352C7E7C046F7 +:100D4C00984E0008F0B5CE464746E22380B583B0F6 +:100D5C00C65A6B46F41DE408E4001B1B02AF9D460B +:100D6C0002AB994688460B00009205000022012137 +:100D7C00484602F077FD2A4942460831294802F0DC +:100D8C00FDFB72B6BFF34F8FBFF36F8F4823264C1A +:100D9C009846E35CFF2B34D0482228000133A3543F +:100DAC0049463200CC3002F045FC002814D14825CD +:100DBC00635D002B1DD04822013BDBB2A354002BFA +:100DCC0004D1BFF34F8FBFF36F8F62B6BD4601B036 +:100DDC00C0BCB946B046F0BDE123EA56012A18D092 +:100DEC00482512491248583102F0C8FB635D002BAC +:100DFC00E1D1A6210F4A1048890002F0CFFB635DB8 +:100E0C00D9E70E4A0E490C4802F0C8FB4346E35C96 +:100E1C00C2E780210B4A13680B431360C7E7C04637 +:100E2C00444A0008BC4E00088C000020C44900084D +:100E3C00C84D0008E44D0008904C0008A04D000877 +:100E4C009102000000440040F0B5CE464746040035 +:100E5C00E22380B5E65A83B01000B6186A46F31D3B +:100E6C00DB08DB00D31A02AF9D4602AB9846E623A3 +:100E7C00E25C0190009100230421404602F02AFD1F +:100E8C0072B6BFF34F8FBFF36F8F4823234D994634 +:100E9C00EB5CFF2B34D0482220000133AB5441468D +:100EAC003200CC3002F0C6FB002814D148242B5D54 +:100EBC00002B1DD04822013BDBB2AB54002B04D1DC +:100ECC00BFF34F8FBFF36F8F62B6BD4601B0C0BC8E +:100EDC00B946B046F0BDE123E256012A18D04824A9 +:100EEC000F491048583102F049FB2B5D002BE1D122 +:100EFC00A6210D4A0D48890002F050FB2B5DD9E765 +:100F0C000B4A0C49094802F049FB4B46EB5CC2E723 +:100F1C008021094A13680B431360C7E78C0000203B +:100F2C00C4490008C84D0008E44D0008904C000866 +:100F3C00A04D000891020000004400400FB430B5F1 +:100F4C0097B01AA920C92800019102F00DFB2A00C4 +:100F5C0004005021019B02A802F0F4FF002807DDD9 +:100F6C008C230649013082B2C85802A9FFF76CFFE6 +:100F7C00200017B030BC08BC04B018478C0000200F +:100F8C0070B5050008000C0002F032FEC31FDBB286 +:100F9C00152B03D824499B00CB589F4623490200AC +:100FAC001C31234802F0EAFA70BD200002F022FE48 +:100FBC00046820482100FFF7C1FF022CF4D1E8237C +:100FCC000022EA54F0E7DC230022E8581B2100231E +:100FDC0002F03AFDE8E7200002F00CFE0023416825 +:100FEC000068154A01F0D6F904003C21200001F0FC +:100FFC00B7F820000E003C2101F02CF83C2101F048 +:10100C00AFF80D00E1212000090101F023F83300B5 +:10101C0001002A000948FFF791FFC5E7DC232100F6 +:10102C00E85802F055FDBFE734460008444A000872 +:10103C00004F0008EC4E000840420F00D44E000850 +:10104C0070B59625ED00040029001C4802F096FAB4 +:10105C0050231B4AD421D5521A4B1B4A49005A61C2 +:10106C00DC225200A35C0133DBB2A354615A9942D7 +:10107C001AD01B01D2225200A5581448ED18296829 +:10108C00FFF75CFFD6235B00E550AB89AD34FF3432 +:10109C0023816423A3710023A380EB7A002B06D059 +:1010AC000023E371A37270BD0023A354E2E748212F +:1010BC00074A084802F072FAF2E7C0460C4F0008E3 +:1010CC008C00002000740040FF0F0000244F00082B +:1010DC00384F0008504F000870B5050008000C0090 +:1010EC0002F086FD212803D8344A800013589F460D +:1010FC00200002F07DFD324902002C31314802F013 +:10110C003DFA002070BD2E492F482C3102F036FAE2 +:10111C000020F7E72A492D482C3102F02FFA002045 +:10112C00F0E7200002F066FD294A41888388008898 +:10113C0053434A43C10109180901091A9B0B25485D +:10114C00920B890AFFF7FAFE0020DBE7DC23D62698 +:10115C005B00EA5C143BEB5812019B187600AB5118 +:10116C009A89AC1922816422A2710022A280DA7AB7 +:10117C00002A1BD00022E271A27219681648FFF7F0 +:10118C00DDFE1648BEE72800FFF75AFF0020B9E73E +:10119C00134802F0F3F90020B4E7D6235B00EB58B8 +:1011AC0010481968FFF7CAFE0020ABE748210E4A29 +:1011BC000E4802F0F3F9AB59DCE7C0468C46000848 +:1011CC00444A0008304D0008644F0008784F00086E +:1011DC004DCE00008C4F0008B44F0008F1120008EF +:1011EC00C44F0008E44F0008384F0008504F000867 +:1011FC0070B5050008000C0002F0FAFC212803D899 +:10120C002C4A800013589F46200002F0F1FC2A491A +:10121C0002003831294802F0B1F9002070BD26498E +:10122C002748383102F0AAF90020F7E7224925486F +:10123C00383102F0A3F90020F0E7200002F0DAFCCC +:10124C00214A41888388008853434A43C1010918C5 +:10125C000901091A9B0B1D48920B890AFFF76EFEB8 +:10126C000020DBE7D6235B00EB5819481968FFF721 +:10127C0065FE1848D2E72800FFF7E2FE0020CDE714 +:10128C00DA235B00EB5A002B0AD1AD33FF33EB585A +:10129C0011481968FFF752FE1048BFE70020BDE760 +:1012AC00D6235B00EB580E481968FFF747FE002069 +:1012BC00B4E7C04614470008444A0008304D000803 +:1012CC00F44F0008005000084DCE00008C4F000871 +:1012DC000C500008F1120008E44F0008E51000085B +:1012EC001C50000870B5050008000C0002F080FCD2 +:1012FC00212803D8254A800013589F46200002F06D +:10130C0077FC234902004431224802F037F90020CF +:10131C0070BD1F492048443102F030F92800FFF716 +:10132C0035F80020F4E71A491C48443102F026F93C +:10133C000020EDE72800FFF729F803000020002B20 +:10134C00E6D1AD33FF33EB5815481968FFF7F6FDBE +:10135C001448DDE7200002F04DFC134A41888388D5 +:10136C00008853434A43C10109180901091A9B0B10 +:10137C000E48920B890AFFF7E1FD0020C8E7280010 +:10138C00FFF75EFE0020C3E70948C1E79C47000851 +:10139C00444A0008304D0008F44F00080050000883 +:1013AC00E44F0008E51000084DCE00008C4F0008FB +:1013BC00FD11000870B50400303CE3B282B0462B3E +:1013CC0003D8594A9B00D3589F4601005748FFF752 +:1013DC00B5FD02B070BD8026554DB6006B69334229 +:1013EC0003D1544802F0CAF8AE61FA239B005C4367 +:1013FC00A4B22100504802F0C1F850234F4AD452F5 +:10140C004F4A231C944200D98BE04E4A9BB2934224 +:10141C0000D284E04A4AD21A4B4B53438022120129 +:10142C0094464A4A63441B0B5361D2E75023434D05 +:10143C00EC5A434BC83C9C4215DC424B9C4200DAB4 +:10144C001C0021003C4802F099F85023EC523C4B14 +:10145C001C1B3D4B6343E1E75023384DEC5A384B92 +:10146C00C8349C42E9DD1C00E7E780223849D203EE +:10147C004869030413404022824313438B61A8E75D +:10148C0088242E4D002300220C21285902F0DCFA6E +:10149C00002300220E21285902F0D6FA99E72D4894 +:1014AC00FFF74CFD95E70223244A01938633D0586D +:1014BC000721843B01AA02F0C7FA8AE788231F4A56 +:1014CC001C21D0580023002202F0BEFA81E72248EA +:1014DC00FFF734FD7DE721492148543102F04EF8E5 +:1014EC00204A214993680B4004210B43936070E719 +:1014FC0080250F4CAD0063692B420BD100210E48A7 +:10150C0002F03CF8502300210C4AD1520F4B174AE1 +:10151C005A615EE7164802F031F8A562EEE7130057 +:10152C0078E7131C71E7C04624480008A050000857 +:10153C0000040050705000080C4F00088C00002074 +:10154C00D3270000B20400004907000000740040DB +:10155C0000080050885000082C500008444A00082D +:10156C008450000800240140E8FFFF7FFF0F0000BB +:10157C005C500008F0B54546DE4657464E46E0B591 +:10158C0085B0050002AF08000C0002F0FFF98046A0 +:10159C0003002000012B56D002F0FCF94346060054 +:1015AC00032B6FD0200002F0FDF943468146042B3B +:1015BC0010D0404602F048F94B46010032003B483F +:1015CC0001F0DCFFBD4603B0F0BCBB46B246A946F9 +:1015DC00A046F0BD200002F0D5F98346200002F0B1 +:1015EC00D9F98246200002F0E3F98146200002F08E +:1015FC00D9F95B46804602005146002B30D12C486D +:10160C0001F0BCFF4346022B03D14B461B782F2B1A +:10161C0046D0052343449A4643466A460C33DB08BE +:10162C00DB00D31AEB469D464B4602A87860514628 +:10163C000093204A434602F01DFC002801DD824540 +:10164C0025D8DD4615E002F0A9F9040001001A487E +:10165C0001F094FF0720E62301340440EC54B1E779 +:10166C00164801F08BFF43464A461521286802F0C4 +:10167C00EBF9200002F086F9310002002800FFF798 +:10168C0061FB9FE701000E4801F078FFF1E78C2326 +:10169C000C4982B2C8587968FFF7D6FBDD46E8E7FB +:1016AC004B465878FFF786FEE3E7C04660510008CA +:1016BC00F050000824510008B850000830510008C0 +:1016CC00D05000088C00002070B5E725435D040065 +:1016DC00002B0ED10A2905D0C9B2FFF7E1FA032875 +:1016EC0018D070BD01220339FFF72CFB0123635581 +:1016FC00F7E7C9B2FFF7D4FA0028F2D0DC23E5589B +:10170C00280002F057F9002813D029002000FFF719 +:10171C0031FFE6E7DC23E558280002F04BF90028FE +:10172C000DD029002000FFF725FFE7230122E2540A +:10173C00D7E706490648643101F020FFD1E7034999 +:10174C000348643101F01AFFEFE7C046444A000831 +:10175C0090510008112110B50E4A0F48136A8B43A3 +:10176C00136280220D4B92009A62DA3AFF3A9A6128 +:10177C000B490C4B78315A6801F000FF0A4C0123DD +:10178C0021000A481031237401F0F8FE237C002B51 +:10179C00FCD110BD002C0140A051000800040050E9 +:1017AC00444A000800ED00E00C010020B051000894 +:1017BC00024A5369013353617047C0460C01002043 +:1017CC0010B5EFF30582034903480C3101F0D6FE46 +:1017DC0010BDC046C44A00085C4C0008012210B57C +:1017EC00144B19690A421DD00620196891431960DF +:1017FC00D9688143D960196901308143196140214D +:10180C000D4B99620D4B1F399A6101329A6102326C +:10181C009A611C329A610A4B00229869002302F0EB +:10182C0013F910BD07491A691831074801F0A6FED3 +:10183C00F7E7C046002C014000080050000400509F +:10184C008C000020C44A0008E8510008022210B5A0 +:10185C00244BD9680A4202D019690A4235D1224C6C +:10186C000422204BD9680A4202D019690A4220D1BD +:10187C0052221C4BA25A1B6B01339A4212D0194BA9 +:10188C001A491A690A4200D110BD1B69184819403F +:10189C0001F074FEEFF30582164917480C3101F084 +:1018AC006DFEF1E7002300222021A06902F0CCF8A4 +:1018BC00E5E719691148914319615223E15A013145 +:1018CC0089B2E15201F05AFED2E71969064C9143F4 +:1018DC0019615223E15A0A48013189B2E15201F0EF +:1018EC004DFEBDE7002C01408C000020E0FF0C00F9 +:1018FC00E8510008C44A00085C4C0008005200087B +:10190C00F4510008F8B580230222DB0519690A425C +:10191C000FD101211A69114203D01A698A431A6145 +:10192C00F8BDEFF30582284928480C3101F026FE5A +:10193C00F6E71969264C914319612668676872B6F7 +:10194C00BFF34F8FBFF36F8F4825635DFF2B33D0F1 +:10195C0048215A1CD2B2625480211E4DC905A86977 +:10196C00496AA961884202D9E9690131E961002A11 +:10197C0017D04822A354002B04D1BFF34F8FBFF3D1 +:10198C006F8F62B6EB69AA69990792080A439B08A4 +:10199C003800B0478022D205536BA1685B185363A3 +:1019AC00BEE7A6210C4A0D48890001F0F7FD48233B +:1019BC00E35C013BDBB2DCE7094A0A49074801F06A +:1019CC00EDFD635DC4E7C046C44A00085C4C0008EA +:1019DC008C0000200C010020E44D0008904C000805 +:1019EC00A04D00089102000070B548250B4C635DBA +:1019FC00002B0BD04822013BDBB2A354002B04D1AB +:101A0C00BFF34F8FBFF36F8F62B670BDA621044A30 +:101A1C000448890001F0C2FD635DEBE78C000020F7 +:101A2C00E44D0008904C000870B572B6BFF34F8FB0 +:101A3C00BFF36F8F4825074C635DFF2B03D0482203 +:101A4C000133A35470BD044A0449054801F0A6FDB6 +:101A5C00635DF4E78C000020A04D000891020000AB +:101A6C00904C0008102210B50E4BD9680A4211D1C7 +:101A7C0019690A4207D1EFF305820B490B480C3167 +:101A8C0001F07CFD10BD0A4800211A610C3001F0F8 +:101A9C00A1FDF7E706480121DA600C3001F09AFD50 +:101AAC00F0E7C04600180240C44A00085C4C00082D +:101ABC008C00002010B5EFF30582034903480C316C +:101ACC0001F05CFD10BDC046C44A00085C4C000827 +:101ADC00102210B51C4B19680A421AD10122196840 +:101AEC000A4211D1802219689201114222D104229A +:101AFC0019680A4223D1082219680A420ED01A60CA +:101B0C00124801F03BFD03E011481A6001F036FD6C +:101B1C0010BD1A600F4801F031FDF9E719680E4845 +:101B2C0001F02CFDEFF305820C490D480C3101F04E +:101B3C0025FDEDE71A600B4801F020FDE8E71A607F +:101B4C00094801F01BFDE3E7002401405052000856 +:101B5C001C5200080C5200085C520008C44A0008D1 +:101B6C005C4C00082852000844520008022310B5AF +:101B7C00134C2268134218D108232268134208D14F +:101B8C00104922681048383101F0F8FC04236360D6 +:101B9C0010BD0C49636038310C4801F0EFFC012199 +:101BAC000B4A13680B431360F2E76360094B142173 +:101BBC001A0098694A32062301F046FFE8E7C0464E +:101BCC0000000240C44A0008785200086C52000819 +:101BDC00080002408C00002010B50D4BDA6992060B +:101BEC0010D4DB691B0605D50A4B0B49986B5B6B54 +:101BFC00984710BDEFF30582084909480C3101F0F4 +:101C0C00BDFCF6E70348596A1C3001F0E3FCF0E731 +:101C1C00004400408C00002028440040C44A0008C6 +:101C2C005C4C000870B572B6BFF34F8FBFF36F8F6B +:101C3C0048241B4D2B5DFF2B2BD048215A1CD2B2B4 +:101C4C006A548021174CC905A069496AA161884270 +:101C5C0002D9E1690131E161002A0FD04822AB546D +:101C6C00002B04D1BFF34F8FBFF36F8F62B6E169C6 +:101C7C00A0698B0780081843890870BDA6210A4A01 +:101C8C000A48890001F08AFC4823EB5C013BDBB27B +:101C9C00E4E7074A0749054801F080FC2B5DCCE7D7 +:101CAC008C0000200C010020E44D0008904C000832 +:101CBC00A04D0008910200007047C04610B50B0003 +:101CCC00EFF31084012181F310881900FEF7B6FCA4 +:101CDC0084F3108810BDC04610B582B0EFF31084A9 +:101CEC00012181F310886B460122D91D0020FEF7DB +:101CFC00A5FC84F31088012803D16B46D87902B077 +:101D0C0010BD01204042FAE710B5FEF741FC10BDB2 +:101D1C00F0B5DE464E4657464546E0B59BB00AAB9D +:101D2C0005934023069300230793089301330C007B +:101D3C0091469B460290099005E005A8FEF76CFDC4 +:101D4C000898002859DB2178013400295CD025291A +:101D5C00F3D1220013780026022508201400213923 +:101D6C002D2B0CD02D2B0ED8232B11D02B2B00D0A0 +:101D7C005FE10E430132137814002D2BF2D15B4638 +:101D8C0001321E43F7E7302B05D12E430132F2E727 +:101D9C0006430132EFE71A00303A0025092A0DD824 +:101DAC001A00AB005B1901345B009B182278303BA6 +:101DBC001D001300303B092BF3D913002E2B00D13F +:101DCC00D8E000272378042101E0637801341A005D +:101DDC008A43682AF9D0252B07D0583BDBB2202B3D +:101DEC0007D8954A9B00D3589F46252105A8FEF796 +:101DFC0013FD089801340028A5DA1BB0F0BCBB46D3 +:101E0C00B246A946A046F0BD08980028F5DD079C0F +:101E1C00002C00D0C6E00019EFE74B4649461B6882 +:101E2C0005A81A1D0A60196810223B00019600953E +:101E3C00FEF72AFD01340898DDE74B4649461B683E +:101E4C0005A81A1D0A6019680A223B000196009524 +:101E5C00FEF71AFD01340898CDE74B4649461B683E +:101E6C001A1D0A601D6805E005A8FEF7D5FC089848 +:101E7C000028BFDB297801350029F5D10898B9E78E +:101E8C004B4649461B6805A81A1D0A6019680023B1 +:101E9C000193083310220093FEF7F6FC01340898E6 +:101EAC00A9E74B4649461B681A1D0A601B68DA17DE +:101EBC0098180393012350409A4609280DDDAA4631 +:101ECC00A0461D000A210400013500F079F9632CAD +:101EDC00F8DC2B00444655469A46B846574575D310 +:101EEC00002D36D0039B002B74DB730772D4B30721 +:101EFC0001D5002F2DD05B4633422AD1002D28D09E +:101F0C004346A0461C00AC4220D205A82021FEF777 +:101F1C0083FC0898013D002800DA87E0002DF2D1FF +:101F2C00230044469846039B002B58DB730761D46F +:101F3C0003233340022B62D005A83B000A220399ED +:101F4C0001960095FEF7A0FC089853E72300444641 +:101F5C00984608980028E6DA01344CE74B46494687 +:101F6C001B6805A81A1D0A601978FEF755FC013488 +:101F7C00089840E76378621C190030391400002778 +:101F8C00092900D91FE71A00BB00DB1901345B00DB +:101F9C009B182278303B1F001300303B092BF3D9E0 +:101FAC00130010E7254B1B78002B15D0EFF3108591 +:101FBC00012181F31088220002980AA9FEF7B2FBD6 +:101FCC0085F310880898079C001916E7D046002D59 +:101FDC00BFD087E7013D8AE7FEF7DAFAE6E75B4216 +:101FEC002D2105A80393FEF717FC089800289FDA0B +:101FFC00013400E72B2105A8FEF70EFCF5E7002FB6 +:10200C009AD10AE0A8450CD205A83021FEF704FCB1 +:10201C000898013D002800DAECE6002DF2D10025ED +:10202C008AE70898002887DA0134E4E6444601344C +:10203C00E1E60025C5E6C046404900082C210020F9 +:10204C0003B47146490840004900095E49008E44BA +:10205C0003BC7047002243088B4274D303098B42A4 +:10206C005FD3030A8B4244D3030B8B4228D3030C5C +:10207C008B420DD3FF22090212BA030C8B4202D3FE +:10208C001212090265D0030B8B4219D300E0090A26 +:10209C00C30B8B4201D3CB03C01A5241830B8B422F +:1020AC0001D38B03C01A5241430B8B4201D34B0318 +:1020BC00C01A5241030B8B4201D30B03C01A52417D +:1020CC00C30A8B4201D3CB02C01A5241830A8B4202 +:1020DC0001D38B02C01A5241430A8B4201D34B02EB +:1020EC00C01A5241030A8B4201D30B02C01A52414F +:1020FC00CDD2C3098B4201D3CB01C01A5241830903 +:10210C008B4201D38B01C01A524143098B4201D33C +:10211C004B01C01A524103098B4201D30B01C01A67 +:10212C005241C3088B4201D3CB00C01A52418308E1 +:10213C008B4201D38B00C01A524143088B4201D30E +:10214C004B00C01A5241411A00D20146524110466E +:10215C007047FFE701B5002000F006F802BDC0464D +:10216C000029F7D076E770477047C04610B50029B4 +:10217C0003D100F007F8203002E0080000F002F86C +:10218C0010BDC0461C2101231B04984201D3000C36 +:10219C0010391B0A984201D3000A08391B099842CE +:1021AC0001D30009043902A2105C40187047C046E4 +:1021BC000403020201010101000000000000000004 +:1021CC0003460B437FD4002243088B4274D303098C +:1021DC008B425FD3030A8B4244D3030B8B4228D32D +:1021EC00030C8B420DD3FF22090212BA030C8B4253 +:1021FC0002D31212090265D0030B8B4219D300E0F3 +:10220C00090AC30B8B4201D3CB03C01A5241830B77 +:10221C008B4201D38B03C01A5241430B8B4201D327 +:10222C004B03C01A5241030B8B4201D30B03C01A50 +:10223C005241C30A8B4201D3CB02C01A5241830ACA +:10224C008B4201D38B02C01A5241430A8B4201D3F9 +:10225C004B02C01A5241030A8B4201D30B02C01A23 +:10226C005241CDD2C3098B4201D3CB01C01A52418A +:10227C0083098B4201D38B01C01A524143098B4213 +:10228C0001D34B01C01A524103098B4201D30B01FC +:10229C00C01A5241C3088B4201D3CB00C01A524121 +:1022AC0083088B4201D38B00C01A524143088B42E6 +:1022BC0001D34B00C01A5241411A00D2014652417F +:1022CC00104670475DE0CA0F00D04942031000D39E +:1022DC004042534000229C4603098B422DD3030AF3 +:1022EC008B4212D3FC22890112BA030A8B420CD303 +:1022FC00890192118B4208D3890192118B4204D32C +:10230C0089013AD0921100E08909C3098B4201D3AB +:10231C00CB01C01A524183098B4201D38B01C01AE5 +:10232C00524143098B4201D34B01C01A524103095C +:10233C008B4201D30B01C01A5241C3088B4201D30B +:10234C00CB00C01A524183088B4201D38B00C01AB8 +:10235C005241D9D243088B4201D34B00C01A52418F +:10236C00411A00D20146634652415B10104601D31C +:10237C004042002B00D54942704763465B1000D3A6 +:10238C00404201B50020FFF7EFFE02BD0029F8D056 +:10239C0016E77047002B11D1002A0FD1002900D16C +:1023AC00002802D00021C943080007B4024802A14A +:1023BC004018029003BDC046B1FDFFFF03B4684650 +:1023CC0001B5029800F006F8019B9E4602B00CBCC9 +:1023DC007047C046F0B557464E464546DE46E0B51A +:1023EC0004000D009246994683B08B4230D82DD014 +:1023FC0049465046FFF7BAFE290006002000FFF7B9 +:10240C00B5FE331A9846203B9B4633D45A46534666 +:10241C00934042461F00534693401E00AF423AD8A9 +:10242C00AF4200D178E05B46A41BBD41002B00DA23 +:10243C0075E0002200230092019301235A46934039 +:10244C000193012342469340009328E08242CFD966 +:10245C0000220023009201930C9B002B01D01C60E6 +:10246C005D600098019903B0F0BCBB46B246A9462A +:10247C00A046F0BD424620239B1A5246DA40414604 +:10248C0013004A468A40170042461F435346934066 +:10249C001E00AF42C4D90022002300920193434690 +:1024AC00002BD9D0FB0772081A4346467B080EE076 +:1024BC00AB4201D1A2420CD8A41A9D41012024198F +:1024CC006D410021013E24184D41002E06D0AB4237 +:1024DC00EED9013E24196D41002EF8D100980199D6 +:1024EC005B4600196941002B24DB2B005A464446FD +:1024FC00D3402A00E2401C005B461500002B2ADB6F +:10250C0026009E40330026004746BE403200801A0B +:10251C009941009001919FE7A342BCD883E74246C2 +:10252C00202300219B1A0022009101920122DA4003 +:10253C00019286E7424620239B1A2A0046469A407F +:10254C002300F340444613432A00E2401C005B4640 +:10255C001500002BD4DA42462F002023260097408A +:10256C009B1ADE403B003343CDE7C0460D48854601 +:10257C00FFF7A2FB0C480D490D4A002302E0D4588A +:10258C00C4500433C4188C42F9D30A4A0A4C0023B1 +:10259C0001E013600432A242FBD301F02DFB00F0EA +:1025AC000FF8FEE700900020000000206C000020D7 +:1025BC00CC540008700000200C220020FEE7000024 +:1025CC00F0B5DE4657464E464546E0B5CFB000F076 +:1025DC00C7FF924800F0D2FF0722914B00215A63AB +:1025EC00A0240D3213A801F048FB0223E405169336 +:1025FC0020000E3312A91293FDF7D0FD129A236915 +:10260C0013409A4206D1874B1B6883F30888864B8C +:10261C001B6898470323A0269A4613930023F605BC +:10262C0098463000169312A943331293FDF7B6FD6A +:10263C002023300012A912938025FDF7AFFD4346ED +:10264C0001277A4C1593AD00023320001397149395 +:10265C00129512A9A5629946FDF7A0FD4023744876 +:10266C00129312A98361FDF799FD2723200015977A +:10267C00129312A9A361FDF791FD4B461393179387 +:10268C004346C02415935346A4001493129430006F +:10269C00B46212A9FDF782FD0C23300012A9179722 +:1026AC001293FDF77BFD80215D4B09065A6D0120CD +:1026BC00920092080A435A655E4ADA635E4A1A64CB +:1026CC009A6B17439F635D4B1A6814431C605C4CF8 +:1026DC00FDF7EAFD23685B4A5B4913401D435B4BE6 +:1026EC0025609B461B685800C0184000FFF7B2FCE1 +:1026FC0080226369D2000130134202D105E0002828 +:10270C0003D0636901381342F9D180214C4A490046 +:10271C0013680B43136013680B42FCD00221404A30 +:10272C004B4BD365D36D1942FCD0382391680B40C9 +:10273C00D168102B01D100F081FC002B01D000F0EE +:10274C0081FC13684349536819408023DB010B4318 +:10275C005360136840490B40136013683F4A9B0455 +:10276C005B0FDA405B461A605B465868FDF79CFDD0 +:10277C003B4A002832D1382029498B680340102B62 +:10278C0001D100F027FE0B683648034080200B6017 +:10279C005469800403E053691B1B022B1ED80B6881 +:1027AC000342F8D1CB6830481840304B0343CB6020 +:1027BC00802308685B0403430B608023C8685B05B7 +:1027CC000343CB60802154691548890403E05369A5 +:1027DC001B1B022B02D803680B42F8D006231749A7 +:1027EC000868184201D100F02DFDE0230C49DB01F3 +:1027FC00886803438B608B681D4803408B600B68B3 +:10280C009B0169D507208B681A4C8343180002235F +:10281C0003438B603820556932E0C046885200086B +:10282C00001002400000FF1F0400FF1F00040050B6 +:10283C000008005003000230010812000020024082 +:10284C0000700040FFF9FFFF40420F000000002025 +:10285C0009800000FF80FFFFFFC7FFFF0024F4008A +:10286C000C010020FFFFFFFE8C80C1113230164698 +:10287C00FFF0FFFF8813000053695B1BA3422BD8AA +:10288C008B680340102BF7D10720F5490B680340E8 +:10289C00022B01D900F044FDF24BF3499A680A402F +:1028AC009A6038229968114201D000F022FD1B6811 +:1028BC00EE489B045B0FD840EA4BED4A9B681B0526 +:1028CC001B0F9B00D3181F225B6D1340D8405B4637 +:1028DC0018605868FDF7E8FCE64AE7491368E748D2 +:1028EC000B401360E64B19685B4609051A68090D25 +:1028FC0000F044FE84201022E24B195891431950E9 +:10290C000438195811431950196811431960596842 +:10291C000A435A60DC4B1A68D20307D41A68DB49A5 +:10292C000A401A60DA6BDA490A40DA638023D64A25 +:10293C005B02116801240B4313603F22D549092027 +:10294C000B6893431A00052313430B60D24BD349F6 +:10295C001A681140D24A0A43D2491A60996003217D +:10296C00D14A91464A32DA605A68120C12040A4370 +:10297C005A60CE4A5460022219680A431A6008222F +:10298C0019680A431A601A68210022431A60FDF77D +:10299C00B3FBC74B9A68224207D1DA68C5490A4093 +:1029AC00DA601A69920092081A618021C04B89037F +:1029BC00DA680A43DA608022920119681142FCD06D +:1029CC0007211A605A698A43110002220A437021B6 +:1029DC005A615A698A43110050220A430F215A61E5 +:1029EC009A6A8A439A625A69A3490A405A619A6A56 +:1029FC00F231FF318A43110010220A4380219A627E +:102A0C005A6989000A435A619A6AAB491140C0223B +:102A1C00D2000A4380219A625A69C9010A435A6159 +:102A2C009A68A6491140802252050A439A605B4677 +:102A3C00A3491868FFF70EFB142343430893089B24 +:102A4C00002B05D0089B013B0893089B002BF9D168 +:102A5C00974B9C499A681140802212060A439A604F +:102A6C009A68002AFCDB802212011A60202308934A +:102A7C00089B002B05D0089B013B0893089B002B5F +:102A8C00F9D180238A4C9B052269032113432361CE +:102A9C0011230C206360FDF72FFB0121E368E36831 +:102AAC00A3680B4200D1A5E3874800F067FD012520 +:102ABC007F4B86491A6912A8AA431A611A692827FA +:102ACC000A401A619A687F49DC260A402A439A60B8 +:102ADC0049234A4616A9D554C82200F09BFFD6209C +:102AEC00400001F0ADF8C822010052001031040082 +:102AFC0000F090FFD023D821DE20754A5B00E25015 +:102B0C00984608ABDB195C50400001F099F80300C3 +:102B1C00C822040010331900520000F07BFF08ABF0 +:102B2C00DB199C51002200234A924B93E8239A46CE +:102B3C00524608ABDB199D54664B67481433190099 +:102B4C0000F01CFD5B4665491868FFF783FA80238B +:102B5C00634ADB05013898625A6310220224484606 +:102B6C009A611A6A2A431A62DA682243DA605D4A69 +:102B7C0002604A4612A85060FA224846120182604E +:102B8C00032259690F200A435A6121001D60FDF789 +:102B9C00B3FA08AAD2199359424653488137985030 +:102BAC00D2204C4A400030321A500422FF37DA53FC +:102BBC00B532FF329C544A4693615A4640491068DC +:102BCC00FFF748FA494C43490138A062A26A7031B8 +:102BDC00474800F0D3FC474B0021A36111230D2083 +:102BEC0023626560FDF788FA00210E20FDF784FA58 +:102BFC008423236088231B02E5605046636401F044 +:102C0C001FF80400011DC8220290CC3000F0EEFC2D +:102C1C00FF23D8212200E0356355D73B08ACE418DC +:102C2C00645808A9C91889597D33FF33E1500191C3 +:102C3C003149E2510C31284800F0A0FC42462F4BA0 +:102C4C00A35000F0A9FF01002000FDF7A1FFE659F9 +:102C5C00735D7F2B00D8DEE2294B069352E0C04611 +:102C6C000020024000100240FF8FFFFF0024F40000 +:102C7C00C44A000800700040FFFEFFFF9C52000891 +:102C8C00005801400018024000740040FFFF03FF91 +:102C9C00FFFFF8FF00080240080002400F80FFFF12 +:102CAC00A0250000402401408C00002000000240C0 +:102CBC0000240140C73FFFFFFFF0FFFFE8FFFF6F5D +:102CCC0040420F00E8FFFF7FBC520008FFFFFFDF10 +:102CDC00B9090008444B00088450000800093D0065 +:102CEC00801A060059030008D9090008002C01407D +:102CFC00D852000868680000C44B00089D0B0008FF +:102D0C00E4520008E04B0793346000F09BFDE22393 +:102D1C00F0528023DB009C46604400F091FFDC23E2 +:102D2C00E022F0500023B3540632B352D74AD84BAA +:102D3C00516D49270B4353658B23D649CB600A68E9 +:102D4C00D54B13430B604B46DB5D012B00D96BE27B +:102D5C0002211C20FDF7D0F94B464946DB5D5A1C7D +:102D6C00CA55E1225BB29046B354002B00DA61E203 +:102D7C0009AB32001800C9499A4600F025FC0CAB8F +:102D8C0018003200C6490FAF039300F01DFC32004F +:102D9C003800C44900F018FC4346F356012B00D10F +:102DAC00D2E2E123F256C04B1D000493BF4B5835C1 +:102DBC00290018009A46059300F0E0FBE1229046AA +:102DCC00B256012A00D1EBE22900504600F0D6FBA6 +:102DDC004246B256012A00D1E2E22900504600F0E8 +:102DEC00CDFBD425B2496D001C31B248665900F0B8 +:102DFC00C5FB0024E7234A46F45412A95F3BD1508B +:102E0C0002990433D150282108AA50335218D658AD +:102E1C00735BA3422AD0A84B9A46D2235B009846F8 +:102E2C00A34B343301934346F35825019C46654428 +:102E3C005046296800F0A2FB28896B6800280ED048 +:102E4C00002204E0013292B20233904207D019788A +:102E5C005D780D42F6D00199984800F08FFBD42391 +:102E6C005B000134F35AA4B2A342DCD8DC235B0030 +:102E7C00F25C143BF35812019B18D622340052001A +:102E8C00B3509A89AD34FF3422816422A27100229E +:102E9C00A280DB7A934200D1EFE1894B9A46894BB1 +:102EAC00019300252389E571A572AB4215D0D62379 +:102EBC005B009846200010A9FDF73CF903783B70A5 +:102ECC0043787B70A379BB704346F3589B7AFB70B5 +:102EDC003B79ED182389002BECD129007A4800F0BE +:102EEC004DFBDC235B00F25C143BF35812019B1886 +:102EFC00D6225200B3509A8922816422A2710022F8 +:102F0C00A280DB7A934200D1B1E100236F4AE371D6 +:102F1C00A372A133FF33F25000F03EFE01003000EB +:102F2C00FEF7DAF812AA6A49380000F04DFB4B465E +:102F3C000C3316C816C3962403210720FDF7DCF8C2 +:102F4C00644800F01BFBE400634800F017FB210011 +:102F5C00624800F013FB50234A468025D452604B44 +:102F6C00604A614C5A616369AD002B4203D15F48E2 +:102F7C0000F004FBA5615E4BE8259846D823DC24C1 +:102F8C009A465C4E282208AB9B185B5D002B00D147 +:102F9C00C4E0282708ABDB191B5931001A001800B4 +:102FAC00019300F0B3FD0028ECD1524608ABDB19BD +:102FBC009B5841461A001800019300F0A7FD002809 +:102FCC00E0D112AA10004C4900F0A0FD071ED9D187 +:102FDC000121039800F0ECFA002800D075E172B6DC +:102FEC00BFF34F8FBFF36F8F48234A46D35CFF2B41 +:102FFC0000D1DBE148224B4649469B5C01338B54A4 +:10300C0008AB203A9B18185900F01AFD002800D084 +:10301C003DE148234A46D35C002B00D162E14822B3 +:10302C004B4649469B5C013BDBB28B54002BA9D130 +:10303C00BFF34F8FBFF36F8F62B6A3E70D3B194001 +:10304C00022961D011492D4A0B68802013400B6076 +:10305C0080230A685B001343294A0B605469C00043 +:10306C0005E053691B1B022B01D9FFF7B7FB0B685B +:10307C000342F6D04B68234818408023DB010343FE +:10308C004B60FFF778FBC046904D000800100240E3 +:10309C0008000C000044004001000020D516000878 +:1030AC001103000829030008C4490008C84D000892 +:1030BC00C44B0008845000082C5300083C530008F3 +:1030CC00384F0008504F000854530008E510000812 +:1030DC004103000870530008845300080C4F00088B +:1030EC0000740040FF0F00000004005070500008F6 +:1030FC00210A0008750A00088D0F0008FFC7FFFFA2 +:10310C000C010020FF80FFFF1368DE495368194053 +:10311C008023DB010B435360FFF726FB282180261D +:10312C00D94C08AADC335218D5586369B60033421F +:10313C0003D0D64800F022FAA662D02464002E599F +:10314C0000F038FD01002800B047D14B28212B514D +:10315C00D82308AA5218D5582E5900F02BFD01007F +:10316C002800B047CB4BCC482B51FDF7E7FED423BE +:10317C005B00EC58C73BE256012A04D00499059831 +:10318C00583100F0FBF9DC23E05800F063FDE1233B +:10319C00FF22E254029AD35C7F2B05D89021069A29 +:1031AC000798490000F0FAF92824029800F052FD23 +:1031BC00DC2308AA1219D05800F04CFDD82308AA19 +:1031CC001219D05800F046FD72B6B44800F0D6F98A +:1031DC0000F0F8F91121B24A136A8B431362802272 +:1031EC00A94B92009A62DA3AFF3A9A61AD4B1932C6 +:1031FC009A62FEE7E368AC4AE3681A40AB4B1343B0 +:10320C00E360E3689B0200D451E4F023A26A1B0242 +:10321C001343A3624BE4A64BA64AF721180006926F +:10322C00079300F0BBF96FE5A34800F0A7F9E12381 +:10323C00FF22F2540CAB0393A04B0FAF0493A04BA3 +:10324C000593CEE5072002230C68844323430B60CF +:10325C0055699C4C05E053695B1BA34201D9FFF7F0 +:10326C003BFB0B680340022BF5D1FFF7BEFA52462D +:10327C004821019800F092F947E6934B48219A4671 +:10328C00924B52461800019300F088F909E6282168 +:10329C00524608AB5B18985800F0D2FB002800D1BE +:1032AC00B7E612A800F0CCFB002800D1B1E68022D2 +:1032BC00874F92007B69134200D023E10421854A99 +:1032CC0013698B43136130BFA3E6039B82491B78C0 +:1032DC0068220193C87F00286ED12F2B7DD12E3B05 +:1032EC00CB777CE6A6217D4A7D48890000F056F913 +:1032FC0095E699681140082900D11AE199681140A6 +:10330C00102900D185E099681140202900D113E1E2 +:10331C009B681A40182A00D112E10020FFF7CCFA62 +:10332C0002230C68844323430B605569654C05E00C +:10333C0053695B1BA34201D9FFF7CEFA0B6803401C +:10334C00022BF5D1FFF7A8FA4B4652461C3323CA81 +:10335C0023C34B46039A283323CA23C3042361494E +:10336C000A6813430B604346F356012B00D018E553 +:10337C004B464A469E635C4B53634B463A003C3388 +:10338C0023CA23C3082357490A6813430B604346D7 +:10339C00F2564A4B04934A4B0593012A00D002E59E +:1033AC002023504A11680B4313601AE54F4A5049C9 +:1033BC004B4800F0F3F81DE6019B0A2B41D04D4819 +:1033CC0000F0DCF80198FDF7F5FF4B46002268335E +:1033DC00DA7704E6CB68FFF701FA49463E4B9B7F50 +:1033EC00C918885401980A280AD03B4F0133DBB224 +:1033FC00BB7788541E2B00D0F1E53E4800F0BEF898 +:10340C004F46683739003C4800F0B8F80023BB77CA +:10341C00E5E5DA68D968D243D8684906490F400413 +:10342C000131440E920700D18EE03448FEF712FEB3 +:10343C006043334BD968490F0131FEF70BFEFFF7A0 +:10344C003BFA254B2448997F4B1CDBB283772F200A +:10345C00494488541E2B08D1264800F08FF81E4989 +:10346C00254800F08BF81C4B9F774F46002268379D +:10347C00BB7F3900FA54204800F080F80022BA775C +:10348C00A3E7C046FF80FFFF000400505C5000081B +:10349C00D9090008B9090008BC530008CC5300082E +:1034AC00002C0140000800503CC2FEFF031000003D +:1034BC00904D0008E4520008F8520008C449000876 +:1034CC00C84D000888130000384F0008504F000802 +:1034DC000070004000ED00E0F4000020E44D000816 +:1034EC00904C000800440040CD0A0008A04D000894 +:1034FC0091020000D0530008AC5300080024F400E3 +:10350C00001002405B4606201B6812495843FEF728 +:10351C00A1FD3B68104A013013403B6003E00028DA +:10352C0000D176E5013880227B6992001342F6D1F6 +:10353C00C4E60A48FFF7C0F980200002FFF7BCF987 +:10354C00FA20C001FFF7B8F90448FEF783FD604389 +:10355C006FE7C04640420F00FFBFFFFF00127A002A +:10356C0010B5FEF7D1FB10BD00B583B0019101AAD7 +:10357C0001000020FEF7CCFB03B000BD0FB400B57A +:10358C0083B004AB02CB01AA002000930193FEF799 +:10359C00BFFB03B008BC04B01847C046130010B5FD +:1035AC000A0001000148FFF7E9FFFEE7FC530008A1 +:1035BC000A0010B501000020FEF780FBC343DB17A7 +:1035CC00184010BD7047C046002383604260016004 +:1035DC007047C04610B503680400002B04D0406847 +:1035EC009847A3680133A36010BDC04601604B1E11 +:1035FC00994100234942114041608360C360704788 +:10360C0003009B68C068C01A43425841C0B270475F +:10361C000200C368581E9368C01A536800D5C018BE +:10362C007047C04603008268C1685B68501A00D5B9 +:10363C00C0187047F0B54646D6464F460500C0B593 +:10364C00EB688068013B0E0014001B1A1ED49342D9 +:10365C001AD31700002F05D12000E0BCBA46B146A2 +:10366C00A846F0BDAB6828689C463A00604431001F +:10367C0000F0FAFAAB689C466B686744AF609F42F7 +:10368C00EAD10023AB60E7E70020E6E76A689046E2 +:10369C004344A342F8D30319994627009A42D9D838 +:1036AC00131A9A462B6852469C46604400F0DCFA8A +:1036BC0000234246AB604B4656449F1ACAE7C046AD +:1036CC00F8B54746CE4680B5C6688368050088467F +:1036DC009C1B0BD4944207D82700002C20D1380017 +:1036EC00C0BCB946B046F8BD1400F5E7436899462E +:1036FC004C44944200D91400331927009945ECD856 +:10370C004B469F1B2B683A009919404600F0ACFAC7 +:10371C004B46F61AA419B84400263F19002CDED0EB +:10372C00296822004046891900F09EFAD7E7C04666 +:10373C00F0B54F464646D646C0B50F008368C16803 +:10374C00060014005B1A1ED493421AD31500002DE8 +:10375C0005D12000E0BCBA46B146A846F0BDF368DE +:10376C0031689C462A006144380000F07DFAF36809 +:10377C009C4673686544F5609D42EAD10023F36072 +:10378C00E7E70020E6E7426890464344A342F8D3BB +:10379C000B19994625009A42D9D8531A9A460368B0 +:1037AC0052469C463800614400F05EFA00234246C3 +:1037BC00F3604B4657449D1AC9E7C04670B50100EB +:1037CC000400861D1D4D1E4823781B0258400823FB +:1037DC0004E0013BDBB280B2002B09D002B2400006 +:1037EC00002AF6DA013B6840DBB280B2002BF5D13F +:1037FC000134A642E8D14B888A781D0A120215437F +:10380C001BD008314D190D4CADB20B781B02584032 +:10381C00082304E0013BDBB280B2002B09D002B2DA +:10382C004000002AF6DA013B6040DBB280B2002B8C +:10383C00F5D101318BB2AB42E7D170BD2110000044 +:10384C00FFFF000008207047052804D883001B18D0 +:10385C000248C01870470248FCE7C04620540008D4 +:10386C001C54000870B5040004A80078490000013D +:10387C00084301210143072018400023D2000243D2 +:10388C0063802371200000230725C9B22170627068 +:10389C00661D082201304B4004E0013AD2B2DBB283 +:1038AC00002A09D059B25B000029F6DA013A6B40C4 +:1038BC00D2B2DBB2002AF5D1B04201D00178E8E7F0 +:1038CC0063712000FFF77AFF030AE071A3712000F7 +:1038DC0070BDC04670B5040004A840C849000588F6 +:1038EC0020001B010B43D2003100237062700830A2 +:1038FC002A0000F0B9F92B0AA3700023E570200010 +:10390C0007252371661D02785340082204E0013A12 +:10391C00D2B2DBB2002A09D059B25B000029F6DA28 +:10392C00013A6B40D2B2DBB2002AF5D10130B04281 +:10393C00E9D163712000FFF741FF030AE071A37125 +:10394C00200070BD70B5002307244679451D027810 +:10395C005340082204E0013AD2B2DBB2002A09D06B +:10396C0059B25B000029F6DA013A6340D2B2DBB2FD +:10397C00002AF5D10130A842E9D1F01A4242504157 +:10398C00C0B270BD00788006800F704700780007C9 +:10399C00400F704740788006400F704743780720EF +:1039AC0018407047827843881202180A10437047F7 +:1039BC000830704710B50400FFF700FFE388A179C9 +:1039CC001B0A09020B43181A42425041C0B210BDE7 +:1039DC00B0B500AF050000F0DDF86A46C31DDB088A +:1039EC00DB00D31A9D460200040069462800FFF74D +:1039FC0067FE80B2844203D00024BD462000B0BDD7 +:103A0C00684600F0F1F804002800FFF70BFE844232 +:103A1C00F2D8F2E770B505000C001600002905D0AD +:103A2C00320028002100FFF7E1FD70BD3D21024A64 +:103A3C000248FFF7B3FDF3E7405400085054000868 +:103A4C0010B5FFF7DDFD10BDF8B5DE4657464E4606 +:103A5C004546E0B500AF1E0080468A46914600F010 +:103A6C0099F86B46C41DE408E4001B1B9D46050039 +:103A7C00801983B23200514668469B4600F0A8F884 +:103A8C00FDF7D2FF4046FFF7C3FD002483450DD957 +:103A9C00FDF7AAFF5B46E01ABD4643425841C0B24F +:103AAC00F0BCBB46B246A946A046F8BD2A00694602 +:103ABC004046FFF7BFFD4B4684B2002BE8D03200E6 +:103ACC0049464046FFF7B6FD2418A4B2E0E7C046CD +:103ADC00F8B5060008000F0000F086F80500FDF7A9 +:103AEC00A3FF3000FFF794FD0024854206D9FDF7B3 +:103AFC007BFF601B43425841C0B2F8BD2A0039001D +:103B0C003000FFF797FD84B2F1E7C046F8B54E469A +:103B1C004546DE465746E0B500AF0600894690465E +:103B2C00FFF756FF0025041E07D1BD462800F0BC48 +:103B3C00BB46B246A946A046F8BD6A46C31DDB0883 +:103B4C00DB00D31AEA469D46FDF76EFF220069465C +:103B5C003000FFF7EDFD0600B6B2EB46FDF744FF73 +:103B6C00002E01D1D546E0E7684600F03DF88442CE +:103B7C0005D159464046C8470125D546D5E72521EC +:103B8C00024A0348FFF70AFDF3E7C04668540008F1 +:103B9C00505400080C20704710B5FEF743F8020093 +:103BAC000B0003480260436080235B02836010BDFE +:103BBC00E821002010B5FEF735F802000B00034891 +:103BCC000260436080239B02836010BDD8210020DB +:103BDC0070B504000E001500FEF724F86681206015 +:103BEC0061602581200070BD00890C3080B2704767 +:103BFC00807A70470C30704770B500260C4D0D4C18 +:103C0C00641BA410A64209D1002600F001FD0A4D48 +:103C1C000A4C641BA410A64205D170BDB300EB582E +:103C2C0098470136EEE7B300EB5898470136F2E7B8 +:103C3C00C4540008C4540008C4540008C8540008F4 +:103C4C0010B5034B0100186800F08CF810BDC0468D +:103C5C000800002010B5034B0100186800F016F89E +:103C6C0010BDC04608000020002310B59A4200D1B8 +:103C7C0010BDCC5CC4540133F8E7030082189342A6 +:103C8C0000D1704719700133F9E7000070B50500D9 +:103C9C00002910D00C1F2368002B00DAE418280030 +:103CAC0000F05CF91D4A1368002B05D163601460A9 +:103CBC00280000F05BF970BDA34208D92168601898 +:103CCC008342F3D118685B6841182160EEE71A0053 +:103CDC005B68002B01D0A342F9D911685018A0429F +:103CEC000BD120680918501811608342E0D1186874 +:103CFC005B68411811605360DAE7A04202D90C23CB +:103D0C002B60D5E721686018834203D118685B6883 +:103D1C004118216063605460CAE7C046F821002056 +:103D2C0070B50F4E0D0031680400002902D100F06F +:103D3C008FF830602900200000F08AF8431C0AD06C +:103D4C000323C51C9D43A84207D0291A200000F06C +:103D5C007FF8431C01D101256D42280070BDC0467F +:103D6C00FC210020F7B50322CB1C9343083306003B +:103D7C001F000C2B32D20C27B94231D8300000F086 +:103D8C00EDF8324D2B681C00002C2ED13900300080 +:103D9C00FFF7C6FF0400431C1ED12C682500002D24 +:103DAC004AD123682900E3183000019300F050F841 +:103DBC00019B834243D123680337FF1A03239F439C +:103DCC0008370C2F00D20C2739003000FFF7A8FF62 +:103DDC00431C34D02368DF19276013E0002BCBDAA7 +:103DEC000C23002533602800FEBD2268D11B20D493 +:103DFC000B2917D9E2192760A34211D12A606368F5 +:103E0C00116053603000250000F0B0F807220B352C +:103E1C00231D9543EA1A9D42E5D05B1BA350E2E7B4 +:103E2C005A60ECE76268A34201D12A60EAE75A6063 +:103E3C00E8E723006468A7E72C006D68AFE70C2364 +:103E4C003000336000F092F8CDE7C046F821002036 +:103E5C00002370B5064D040008002B6000F0CAFB6F +:103E6C00431C03D12B68002B00D0236070BDC046CF +:103E7C00002200200CB430B5174B0C001D689DB00F +:103E8C00002908DA8B2301202B6040421DB030BC86 +:103E9C0008BC02B0184782236A469B009382002319 +:103EAC0002900690994200D04B1E04930793012375 +:103EBC006A465B42D382280021AB209A02A9019367 +:103ECC0000F0BEF8431C01DA8B232B60002CDDD0F4 +:103EDC000023029A1370D9E70800002003000A7827 +:103EEC0001311A700133002AF9D1704730B5140032 +:103EFC0005001A009BB0002C05DA8B23036001200F +:103F0C0040421BB030BD822368469B008381002356 +:103F1C00009104919C4200D0631E029305930123EF +:103F2C0069465B42CB8128001E9B00F089F8431C3C +:103F3C0001DA8B232B60002CE3D00023009A137042 +:103F4C00DFE7000007B5009313000A0001000248E8 +:103F5C000068FFF7CBFF0EBD0800002010B502482B +:103F6C0000F0F0FA10BDC0460422002010B5024843 +:103F7C0000F0E9FA10BDC04604220020F0B58E68AE +:103F8C0085B007000C00039201939E423CD890230D +:103F9C008A89DB001A4234D00969236860695B1A8C +:103FAC00029303234343DD0FED18019B0298013369 +:103FBC001B186D10AB4200D91D00530532D52900DA +:103FCC003800FFF7CFFE061E09D10C233B604023BF +:103FDC000120A28940421343A38105B0F0BD029A8F +:103FEC002169FFF741FEA389144A1A408023134329 +:103FFC00A381029B2661F61826606561019EED1A6D +:10400C00A560019B9E4200D9019E32000399206855 +:10401C0000F0A5FAA36800209B1BA36023689E19DF +:10402C002660DAE72A00380000F0ACFA061EE0D170 +:10403C0038002169FFF72AFEC7E7C0467FFBFFFF68 +:10404C00F0B5A1B003901D008B890F0016001B0664 +:10405C0011D50B69002B0ED14021FFF783FE386080 +:10406C003861002805D10C23039A0138136021B064 +:10407C00F0BD40237B61002308AC63612033637681 +:10408C001033A376079535002B78002B01D0252B08 +:10409C0047D1AB1B0593B5420CD0320039000398C5 +:1040AC00FFF76CFF431C00D1AEE06269059B9446A0 +:1040BC00634463612B78002B00D1A5E0012200231F +:1040CC005242626004A9543252186E1C2360E360A1 +:1040DC00A3601370A36505223178544800F034FABC +:1040EC00751C00281FD12268D30604D5532304A9BC +:1040FC005B1820211970130704D5532304A95B18EE +:10410C002B21197033782A2B16D0350000210A2068 +:10411C00E3682A786E1C303A092A4ED9002911D14D +:10412C0017E00135B0E7414B2268C01A01238340E8 +:10413C0013432E002360CEE7079B191D1B680791C4 +:10414C00002B01DB0B9304E05B42E360022313437F +:10415C0023602B782E2B0AD16B782A2B35D1079B19 +:10416C0002351A1D1B680792002B2BDB0993304E6E +:10417C0003223000297800F0E7F9002806D040230C +:10418C00801B834022680135134323602978062263 +:10419C0028486E1C217600F0D7F900283CD0264B1D +:1041AC00002B25D10722079B073393430833079332 +:1041BC006369049A9B18636165E7434335000121E9 +:1041CC009B18A6E701235B42D0E700230A201A00C4 +:1041DC000135636029786E1C3039092903D9002B0D +:1041EC00C5D00992C3E74243350001235218F1E7C9 +:1041FC0007AB00933A002100104B039800E000BF7E +:10420C000490049B0133D3D1BB890D985B0600D479 +:10421C002DE7012040422AE707AB00933A0021002A +:10422C00064B039800F07CF8EAE7C0468854000877 +:10423C008E5400089254000800000000893F0008CA +:10424C00F7B5150001938A680B690C000090934236 +:10425C0000DA130022002B6043321278002A01D0BE +:10426C0001332B6023689B0602D52B6802332B602D +:10427C002268062317001F401A4227D0230043331D +:10428C001B785A1E93412268920630D42200019961 +:10429C000098089E4332B047431C25D00623206863 +:1042AC002A68E16800250340042B03D18D1AEB43E7 +:1042BC00DB171D40A3682269934201DD9B1AED18A0 +:1042CC000027BD4220D1002010E00137E3682A68A6 +:1042DC009B1ABB42D2DD2200012301990098089E53 +:1042EC001932B047431CF0D101204042FEBD3020B2 +:1042FC00E1184331087021005A1C45310978A21885 +:10430C00433202331170C1E7220001230199009856 +:10431C00089E1A32B047431CE6D00137D1E70000A3 +:10432C00F0B58BB006920A004332079305900492C5 +:10433C000A7E0C00109B782A07D8622A09D8002A1A +:10434C0000D1C1E0582A00D18CE0260042363270F0 +:10435C0022E0100063381528F7D8FDF771FE16001F +:10436C001F00F6FFF6FFF6FFF6FF1F00F6FFF6FF45 +:10437C00F6FFF6FFA80036009A00F6FFF6FFB9002C +:10438C00F6FF3600F6FFF6FF9E0026001A6842364E +:10439C00111D1960136833700123A7E008681968B0 +:1043AC000A1D05060BD50D681A60002D03DA2D23A6 +:1043BC00049A6D421370614B0A2703931BE00D683E +:1043CC001A604106F1D52DB2EFE70D681968081D8A +:1043DC0018602E0601D50D6803E06D06FBD50D683F +:1043EC00ADB2564B082703936F2A00D00237230037 +:1043FC00002243331A706368A360002B03DB042292 +:10440C00216891432160002D02D1049E002B0CD019 +:10441C00049E28003900FDF7A3FE039B013E5B5C64 +:10442C0033702B0005009F42F3D9082F09D1236864 +:10443C00DB0706D563682269934202DC3023013E18 +:10444C003370049B9B1B2361079B210000930598F1 +:10445C00069B09AAFFF7F4FE431C4CD101204042F5 +:10446C000BB0F0BD45310A70344A03921A682168CA +:10447C0020CA1A60080616D5CB0702D5202319438B +:10448C0021601027002DB2D1202322689A4322608C +:10449C00ADE7202209680A432260220078214532C8 +:1044AC001170274AE1E74806E6D5ADB2E4E71A6891 +:1044BC000D68101D4969186013682E0601D5196026 +:1044CC0002E06D06FBD519800023049E2361BBE737 +:1044DC001A68111D1960166800213000626800F01E +:1044EC0033F8002801D0801B6060636823610023CF +:1044FC00049A1370A8E72369320006990598079D62 +:10450C00A847431CAAD023689B0715D4099BE068D5 +:10451C009842A5DA1800A3E7220001230699059812 +:10452C00079E1932B047431C98D00135E368099AAD +:10453C009B1AAB42F0DCE9E70025F7E79954000839 +:10454C00AA54000870477047C9B28218904201D132 +:10455C000020704703788B42FBD00130F6E710B592 +:10456C00884202D98B18984203D3002307E08B5C56 +:10457C008354013AFBD210BDCC5CC45401339A4233 +:10458C00FAD1F8E7F7B507000E001400002905D1A1 +:10459C001100FFF7E7FB05002800FEBD002A03D140 +:1045AC00FFF774FB2500F7E700F01BF8019084423D +:1045BC0003D835004308A342EED321003800FFF79F +:1045CC00D1FB051EE8D0019B22009C4200D91A00A9 +:1045DC0031002800FFF748FB31003800FFF756FB8D +:1045EC00DAE70B1F1B68181F002B01DA0B58C018D9 +:1045FC0070470000044A03001068002802D0C3185A +:10460C00136070470148FAE70822002010220020AE +:10461C00F8B5C046F8BC08BC9E467047F8B5C04615 +:08462C00F8BC08BC9E46704773 +:10463400B60F0008A80F0008A80F0008A80F00086C +:10464400A80F0008D20F0008A80F0008B40F000834 +:10465400A80F0008A80F0008A80F0008A80F00085A +:10466400E20F0008A80F0008A80F0008A80F000810 +:10467400A80F0008A80F0008A80F0008A80F00083A +:10468400A80F000828100008FC10000812110008E8 +:1046940020110008FC100008FC100008FC100008A1 +:1046A400FC100008FC100008FC100008FC100008B6 +:1046B400FC100008FC100008FC100008FC100008A6 +:1046C400FC100008FC100008FC100008FC10000896 +:1046D400FC100008FC1000082E110008FC10000853 +:1046E400FC100008FC100008FC100008FC10000876 +:1046F400FC1000085811000892110008FC10000872 +:10470400FC100008FC1000089C110008A611000809 +:10471400141200082A1200083812000814120008A3 +:1047240014120008141200081412000814120008CD +:1047340014120008141200081412000814120008BD +:1047440014120008141200081412000814120008AD +:10475400141200081412000814120008141200089D +:10476400461200081412000814120008141200085B +:104774001412000814120008141200087012000821 +:1047840082120008141200081412000814120008FF +:10479400A81200088C120008081300081E13000851 +:1047A400321300080813000808130008081300084F +:1047B4000813000808130008081300080813000869 +:1047C4000813000808130008081300080813000859 +:1047D4000813000808130008081300080813000849 +:1047E40008130008081300086013000808130008E1 +:1047F4000813000808130008081300080813000829 +:1048040008130008941300088A130008081300080A +:10481400081300082E1300082E1300084013000884 +:10482400FC140008E2130008E2130008E213000875 +:10483400E2130008E2130008E2130008E213000880 +:10484400E2130008E2130008D6130008D613000888 +:10485400D6130008D6130008D6130008DA1400088B +:10486400D6130008D6130008D6130008D613000880 +:10487400D6130008D6130008D6130008D613000870 +:10488400D6130008D6130008D6130008D613000860 +:10489400D6130008D6130008D6130008D613000850 +:1048A400D6130008D6130008D6130008D613000840 +:1048B400D6130008D6130008D6130008D613000830 +:1048C400D6130008D6130008D6130008D613000820 +:1048D400D6130008D6130008D6130008D613000810 +:1048E400D6130008E21400088C140008D61300083C +:1048F40038140008D6130008D6130008D61300088D +:10490400D6130008D6130008D6130008D6130008DF +:1049140076140008D6130008C8140008D61300083B +:10492400D6130008B2140008D6130008D6130008E2 +:10493400D613000864140008AA140008261E0008F0 +:10494400FE1D0008FE1D0008FE1D0008FE1D0008D7 +:10495400FE1D0008FE1D0008FE1D0008FE1D0008C7 +:10496400FE1D0008FE1D0008681F0008AE1E00089A +:10497400FE1D0008FE1D0008FE1D0008FE1D0008A7 +:10498400FE1D0008FE1D0008FE1D0008FE1D000897 +:10499400FE1D0008FE1D0008FE1D00088C1E0008F8 +:1049A400FE1D0008FE1D0008661E0008FE1D00080E +:1049B400461E0008FE1D0008FE1D0008261E0008F5 +:1049C4006173736572745F6661696C65640000008D +:1049D40072784572726F7243616C6C6261636B00D2 +:1049E40074784572726F7243616C6C6261636B00C0 +:1049F4003031323334353637383941424344454611 +:104A040073746174654E6F70000000007374617498 +:104A1400654E6F70000000004253505F646F43683E +:104A2400616E6E656C416374696F6E00737461745A +:104A34006549646C6500000068616E646C6552656C +:104A44007175657374000000726573706F6E6457DE +:104A540069746841636B4672616D65006469737063 +:104A6400617463684576656E7400000073746174E4 +:104A74006549646C65000000737461746550617508 +:104A840073656400737461746550756C73696E67E3 +:104A9400000000004253505F747269676765724199 +:104AA4004443000068616E646C65496E636F6D69B0 +:104AB4006E674672616D6500486172644661756C2B +:104AC400745F48616E646C65720000007370757287 +:104AD400696F75734952510054494D315F42524BCD +:104AE4005F55505F5452475F434F4D5F49525148A1 +:104AF400616E646C65720000444D41315F436861CE +:104B04006E6E656C315F49525148616E646C6572BA +:104B14000000000000000000000000000000000091 +:104B24000000000000000000000000000000000081 +:104B3400000000000100000002000000030000006B +:104B44000400000006000000070000000800000048 +:104B5400090000004253505F72656769737465729F +:104B640041707054696D657248616E646C65720061 +:104B7400D45300084C4C000802007D03C800000018 +:104B8400E0530008444C0008040032052C010000E6 +:104B9400E85300083C4C000804001405C800000059 +:104BA400F4530008184C000812001E0928000000E5 +:104BB4004253505F726567697374657250756C73A4 +:104BC4006544656C6567617465000000436F6E74CD +:104BD400726F6C6C65725F696E69740044617461B4 +:104BE4004C696E6B5F77616974466F7253796E635B +:104BF400000000005061747465726E4974657261DE +:104C0400746F725F636865636B5061747465726E10 +:104C1400000000000102020504020A040408080559 +:104C240001080A01050A020105020204040A080433 +:104C340005080801010A0A05010802040402080122 +:104C44000102040802010804050A0A05257328253F +:104C5400732C202575290A002573282575290A0037 +:104C640050756C73652077696474682069732025B6 +:104C7400687520C2B5730A0070742D3E7061636557 +:104C84005F6D73203E3D2035000000007372632F7A +:104C94006273705F73746D3332673037312E630023 +:104CA40070742D3E70756C73655F77696474685FAA +:104CB4006D6963726F7320213D20300070742D3E46 +:104CC4006E725F6F665F70756C73657320213D2033 +:104CD4003000000028656C636F6E5B305D20262019 +:104CE400656C636F6E5B315D29203D3D20300000B3 +:104CF4005465726D696E616C00000000525454007A +:104D04005345474745520000436F6E74726F6C6C95 +:104D140065725F257320756E65787065637465646C +:104D2400206576656E743A2025750A0053657175A1 +:104D3400656E6365725F257320756E657870656353 +:104D4400746564206576656E743A2025750A0000E2 +:104D54007366203D3D204E554C4C00007372632F0A +:104D6400636F6E74726F6C6C65722E63000000006A +:104D74007372632F73657175656E6365722E63005C +:104D84006E6272203D3D2031000000007372632F7B +:104D9400646174616C696E6B2E6300006273702EC3 +:104DA400637269746963616C5F73656374696F6E60 +:104DB4005F6C6576656C20213D2055434841525F08 +:104DC4004D4158002573282575293A20756E6B6E60 +:104DD4006F776E206465766963652069640A0000F4 +:104DE4006273702E637269746963616C5F73656367 +:104DF40074696F6E5F6C6576656C20213D203000B0 +:104E0400436F6E74726F6C6C65725F257320454ED0 +:104E14005452590A00000000436F6E74726F6C6C38 +:104E240065725F257320455849540A005472616EB7 +:104E340073616374696F6E202568753A20726561C9 +:104E44006420617474726962757465202568750ADA +:104E54000000000057652068617665202575207084 +:104E640061747465726E733A0A0000002020257321 +:104E74000A00000025732C20756E6B6E6F776E2010 +:104E84006F70636F64652030782530326868780A03 +:104E9400000000004672616D65207061796C6F617D +:104EA4006420746F6F206269673A202568752062F8 +:104EB40079746573000000002573282568687529D6 +:104EC40020746F20636F6E74726F6C6C65720A006D +:104ED40054696D6520253032753A253032753A258E +:104EE4003032750A000000005265636569766564B6 +:104EF400207369676E616C2025640A002573282578 +:104F04006875293F0A00000053657474696E672050 +:104F14005663617020746F20256875206D560A00F1 +:104F2400537769746368696E6720746F20272573EB +:104F3400270A000070642D3E6E725F6F665F7374A3 +:104F440065707320213D2030000000007372632FD0 +:104F54007061747465726E5F697465722E630000AB +:104F640053657175656E6365725F257320454E5494 +:104F740052590A0053657175656E6365725F2573D6 +:104F840020455849540A0000497072696D3D2575E1 +:104F9400206D412C20566361703D2575206D562C83 +:104FA40020566261743D2575206D560A000000008C +:104FB4005374617274696E6720272573270A000091 +:104FC40050756C736520747261696E206C617374C2 +:104FD4002070756C736520646F6E650A00000000B4 +:104FE40046696E697368656420272573270A000083 +:104FF400257320454E5452590A000000257320455C +:105004005849540A00000000526573756D696E6753 +:1050140020272573270A000050617573696E672085 +:10502400272573270A000000436F6D6D616E64735A +:105034003A202F3F202F61202F62202F64202F6CD5 +:10504400202F6E202F71202F75202F76202F3020B7 +:105054002F312E2E2F390A005475726E696E672017 +:1050640056636170204F46460A0000005475726E04 +:10507400696E672056636170204F4E0A000000007D +:1050840025730A004669726D776172652076302E49 +:1050940032382D626574610A00000000556E6B6E33 +:1050A4006F776E20636F6D6D616E6420272F2563AB +:1050B400270A0000476F742041434B20666F72201B +:1050C4006672616D6520256868750A00476F7420F3 +:1050D40053594E43206672616D652C207365715F70 +:1050E4006E723D256868750A00000000476F7420E1 +:1050F4006465627567206672616D652C20736571E5 +:105104005F6E723D256868752C20636F6D6D616EEE +:1051140064206C656E6774683D2568750A0000003C +:1051240027252E2A73273F0A00000000476F7420AA +:105134007061636B6574206672616D652C207365A4 +:10514400715F6E723D256868752C207061636B65B4 +:10515400742073697A653D2568750A00476F742069 +:105164002573206672616D652C207365715F6E72A4 +:105174003D256868752C207061796C6F61645F737C +:10518400697A653D2568750A0000000025733A2098 +:10519400626164206672616D650A000025732C20CB +:1051A400494353523D307825780A00002020546941 +:1051B400703A2068616C74204350552C20636861F8 +:1051C4006E676520677561726420402025702074C5 +:1051D4006F20302C207468656E20737465702E0AFD +:1051E4000000000050742053523D307825780A00A6 +:1051F400434331202568750A0000000043433220F0 +:105204002568750A00000000414443206F766572EA +:1052140072756E0A000000004144432072656164A7 +:10522400790A0000414443206368616E6E656C2016 +:10523400636F6E6669672072656164790A000000B5 +:1052440041444320454F430A0000000041444320A9 +:10525400454F530A00000000414443312D3E495359 +:10526400523D307825780A0025732C205445494650 +:10527400310A000025732C204953523D307825789B +:105284000A000000496E697469616C6973696E672C +:105294002E2E2E0A0000000044657649643D3078C5 +:1052A40025782C2053797374656D436F7265436C54 +:1052B4006F636B3D25750A004C4C5F4144435F525C +:1052C40045475F496E6974206572726F723D25753A +:1052D4000A00000025733A205053433D25750A0007 +:1052E4006D652D3E6368616E6E656C5F6664203C1F +:1052F4002030000043616E206F6E6C7920757365F9 +:10530400206F6E652073657269616C20706F7274B2 +:1053140020617420612074696D652C20666F722091 +:105324006E6F770A00000000436865636B696E67FF +:1053340020272573270A000025733A2073686F72AB +:105344007420696E20656C636F6E202568750A0091 +:10535400546F74616C206E756D626572206F662087 +:1053640070756C7365733A2025750A005374617205 +:1053740074696E67204E656F444B210A000000007B +:10538400507573682074686520627574746F6E203C +:10539400746F20706C6179206F7220706175736511 +:1053A400203A2D290A000000436F6E736F6C653A32 +:1053B40020272573270A0000456E64206F6620733A +:1053C400657373696F6E0A00427965210A000000F3 +:1053D4004A61636B68616D6D65720000546F676745 +:1053E4006C65000043726F7373546F67676C65007C +:1053F400436972636C650000415353455254494FED +:105404004E204641494C454420282573203A202506 +:1054140075292025730A0000424144004E4F4E4531 +:105424000041434B00004E414B000053594E430092 +:1054340044415441004F50545300000073746F7240 +:1054440061676520213D204E554C4C006D616F6CA9 +:1054540069622F7372632F6576656E7471756575F5 +:10546400652E63006576656E745F73697A65203DA9 +:105474003D20414F4576656E745F73697A65286592 +:1054840076742900232D302B2000686C4C0065664F +:105494006745464700303132333435363738394181 +:1054A4004243444546003031323334353637383997 +:0854B40061626364656600009B +:0854BC0024CFFF7F0100000076 +:0454C400E5000008F7 +:0454C800BD0000081B +:1054CC000024F400040000000C0000200000000088 +:1054DC0000000000000000000000000000000000C0 +:1054EC0000000000000000000000000000000000B0 +:1054FC0000000000000000000000000000000000A0 +:10550C00000000000000000000000000000000008F +:10551C00000000000000000000000000000000007F +:0C552C0000000000000000000000000073 +:040000050800257951 :00000001FF diff --git a/firmware/inc/app_event.h b/firmware/inc/app_event.h index c824035..bc2cd6f 100644 --- a/firmware/inc/app_event.h +++ b/firmware/inc/app_event.h @@ -20,6 +20,7 @@ enum { ET_THIRD_PARTY = ET_AO_FIRST_APP_EVENT, // To keep other libs working. ET_APP_HEARTBEAT, ET_ADC_DATA_AVAILABLE, + ET_INCOMING_PACKET, ET_CONTROLLER_CONNECTED, ET_CONTROLLER_DISCONNECTED, ET_CONTROLLER_SENT_REQUEST, ET_CONTROLLER_SENT_CHOICE, ET_SEQUENCER_READY, ET_PLAY_PAUSE, ET_NEXT_ROUTINE, diff --git a/firmware/inc/controller.h b/firmware/inc/controller.h index da0d25e..fc665cf 100644 --- a/firmware/inc/controller.h +++ b/firmware/inc/controller.h @@ -13,6 +13,7 @@ #ifndef INC_CONTROLLER_H_ #define INC_CONTROLLER_H_ +#include "sequencer.h" #include "datalink.h" typedef struct _Controller Controller; // Opaque type. @@ -21,7 +22,7 @@ typedef struct _Controller Controller; // Opaque type. Controller *Controller_new(); // Instance methods. -void Controller_init(Controller *, DataLink *); +void Controller_init(Controller *, Sequencer *, DataLink *); void Controller_start(Controller *); bool Controller_handleEvent(Controller *); void Controller_stop(Controller *); diff --git a/firmware/inc/datalink.h b/firmware/inc/datalink.h index 0ea0701..25c0608 100644 --- a/firmware/inc/datalink.h +++ b/firmware/inc/datalink.h @@ -16,14 +16,15 @@ #include #include -typedef void (*PacketCallback)(void *, uint8_t const *packet, uint16_t nb); +#include "eventqueue.h" + typedef struct _DataLink DataLink; // Opaque type. // Class method. DataLink *DataLink_new(); // Instance methods. -bool DataLink_open(DataLink *, void *packet_handler, PacketCallback); +bool DataLink_open(DataLink *, EventQueue *); void DataLink_waitForSync(DataLink *); bool DataLink_sendDebugPacket(DataLink *, uint8_t const *, uint16_t); bool DataLink_sendDatagram(DataLink *, uint8_t const *, uint16_t); diff --git a/firmware/inc/sequencer.h b/firmware/inc/sequencer.h index 268bf3e..1f60620 100644 --- a/firmware/inc/sequencer.h +++ b/firmware/inc/sequencer.h @@ -24,8 +24,11 @@ typedef struct _Sequencer Sequencer; // Opaque type. Sequencer *Sequencer_new(void); // Instance methods. +Sequencer *Sequencer_init(Sequencer *); void Sequencer_start(Sequencer *); bool Sequencer_handleEvent(Sequencer *); +uint16_t Sequencer_nrOfPatterns(Sequencer const *me); +void Sequencer_getPatternNames(Sequencer const *, char const *[], uint16_t); void Sequencer_stop(Sequencer *); void Sequencer_delete(Sequencer *); diff --git a/firmware/src/bsp_stm32g071.c b/firmware/src/bsp_stm32g071.c index 03a1e53..6db62a8 100644 --- a/firmware/src/bsp_stm32g071.c +++ b/firmware/src/bsp_stm32g071.c @@ -781,7 +781,7 @@ void BSP_doChannelAction(DeviceId device_id, ChannelAction action) switch (device_id) { case 1: - if (device_id >= 0) doUartAction(USART2, action); + doUartAction(USART2, action); break; default: BSP_logf("%s(%u): unknown device id\n", __func__, device_id); diff --git a/firmware/src/controller.c b/firmware/src/controller.c index 15473bb..d0a97dd 100644 --- a/firmware/src/controller.c +++ b/firmware/src/controller.c @@ -15,7 +15,6 @@ #include "bsp_dbg.h" #include "bsp_app.h" #include "app_event.h" -#include "sequencer.h" #include "debug_cli.h" // This module implements: @@ -29,7 +28,9 @@ typedef struct { uint8_t message[0]; } PacketHeader; -typedef enum { OC_NONE, OC_STATUS_RESPONSE, OC_READ_REQUEST } Opcode; +typedef enum { + OC_NONE, OC_STATUS_RESPONSE, OC_READ_REQUEST, OC_SUBSCRIBE_REQUEST, OC_SUBSCRIBE_RESPONSE, OC_REPORT_DATA +} Opcode; typedef void *(*StateFunc)(Controller *, AOEvent const *); @@ -37,15 +38,38 @@ struct _Controller { EventQueue event_queue; // This MUST be the first member. uint8_t event_storage[400]; StateFunc state; - DataLink *datalink; Sequencer *sequencer; + DataLink *datalink; }; -static void handleHostPacket(Controller *me, uint8_t const *packet, uint16_t nb) +static void handleReadRequest(Controller *me, uint8_t const *request) { - uint8_t const *request = packet + sizeof(PacketHeader); - BSP_logf("%s, transaction=%hu, opcode=0x%02hhx, attribute_id=%hu\n", __func__, *(uint16_t *)request, request[2], *(uint16_t *)(request + 4)); + uint16_t attribute_id = *(uint16_t *)(request + 4); + BSP_logf("Transaction %hu: read attribute %hu\n", *(uint16_t *)request, attribute_id); + // Assume a request for the routine names for now. + uint16_t nr_of_patterns = Sequencer_nrOfPatterns(me->sequencer); + BSP_logf("We have %u patterns:\n", nr_of_patterns); + char const *pattern_names[nr_of_patterns]; + Sequencer_getPatternNames(me->sequencer, pattern_names, nr_of_patterns); + for (uint16_t i = 0; i < nr_of_patterns; i++) { + BSP_logf(" %s\n", pattern_names[i]); + } +} + + +static void handleRequest(Controller *me, uint8_t const *request) +{ + uint8_t opcode = request[2]; + switch (opcode) + { + case OC_READ_REQUEST: + handleReadRequest(me, request); + break; + default: + BSP_logf("%s, unknown opcode 0x%02hhx\n", __func__, opcode); + break; + } } @@ -66,6 +90,10 @@ static void *stateIdle(Controller *me, AOEvent const *evt) case ET_AO_EXIT: BSP_logf("Controller_%s EXIT\n", __func__); break; + case ET_INCOMING_PACKET: + // Ignore the packet header for now. + handleRequest(me, AOEvent_data(evt) + sizeof(PacketHeader)); + break; default: BSP_logf("Controller_%s unexpected event: %u\n", __func__, AOEvent_type(evt)); } @@ -100,13 +128,14 @@ Controller *Controller_new() } -void Controller_init(Controller *me, DataLink *datalink) +void Controller_init(Controller *me, Sequencer *sequencer, DataLink *datalink) { + me->sequencer = sequencer; me->datalink = datalink; BSP_logf("%s\n", __func__); me->state = &stateIdle; me->state(me, AOEvent_newEntryEvent()); - DataLink_open(me->datalink, me, (PacketCallback)&handleHostPacket); + DataLink_open(me->datalink, &me->event_queue); DataLink_waitForSync(me->datalink); } diff --git a/firmware/src/datalink.c b/firmware/src/datalink.c index f276b6e..0b7de8f 100644 --- a/firmware/src/datalink.c +++ b/firmware/src/datalink.c @@ -15,7 +15,7 @@ #include "bsp_dbg.h" #include "bsp_mao.h" #include "bsp_app.h" -#include "circbuffer.h" +#include "app_event.h" #include "net_frame.h" #include "debug_cli.h" // Temporary. @@ -25,9 +25,8 @@ #define MAX_PAYLOAD_SIZE 1024 struct _DataLink { + EventQueue *delegate_queue; uint8_t tx_buf_store[200]; - void *packet_handler; - PacketCallback packet_callback; CircBuffer output_buffer; uint8_t *rx_frame_buffer; uint8_t rx_nb; @@ -39,6 +38,16 @@ struct _DataLink { }; +static void init(DataLink *me) +{ + me->header_size = PhysFrame_headerSize(); + me->rx_frame_buffer = malloc(me->header_size + MAX_PAYLOAD_SIZE); + me->rx_nb = 0; + me->synced = false; + me->tx_seq_nr = 0; +} + + /*static*/ void dumpBuffer(const char *prefix, const uint8_t *bbuf, uint8_t nb) { if (prefix != NULL) BSP_logf("%s", prefix); @@ -107,18 +116,16 @@ static void respondWithAckFrame(DataLink *me, uint8_t ack_nr, NetworkServiceType static void handleIncomingDataFrame(DataLink *me, PhysFrame const *frame) { - uint8_t rx_seq_nr = PhysFrame_seqNr(frame); NetworkServiceType nst = PhysFrame_serviceType(frame); - respondWithAckFrame(me, rx_seq_nr, nst); - + uint8_t rx_seq_nr = PhysFrame_seqNr(frame); uint8_t const *payload = PhysFrame_payload(frame); uint16_t payload_size = PhysFrame_payloadSize(frame); if (nst == NST_DEBUG) { BSP_logf("Got debug frame, seq_nr=%hhu, command length=%hu\n", rx_seq_nr, payload_size); CLI_handleRemoteInput(payload, payload_size); } else { - BSP_logf("Got network frame, seq_nr=%hhu, packet size=%hu\n", rx_seq_nr, payload_size); - me->packet_callback(me->packet_handler, payload, payload_size); + BSP_logf("Got packet frame, seq_nr=%hhu, packet size=%hu\n", rx_seq_nr, payload_size); + EventQueue_postEvent(me->delegate_queue, ET_INCOMING_PACKET, payload, payload_size); } } @@ -148,6 +155,7 @@ static void handleIncomingFrame(DataLink *me, PhysFrame const *frame) uint16_t payload_size = PhysFrame_payloadSize(frame); if (frame_type == FT_DATA) { handleIncomingDataFrame(me, frame); + respondWithAckFrame(me, rx_seq_nr, PhysFrame_serviceType(frame)); } else { BSP_logf("Got %s frame, seq_nr=%hhu, payload_size=%hu\n", PhysFrame_frameTypeName(frame_type), rx_seq_nr, payload_size); @@ -199,10 +207,24 @@ static void txErrorCallback(DataLink *me, uint32_t tx_error) } +static void setupChannel(DataLink *me) +{ + Selector rx_sel, rx_err_sel, tx_err_sel; + Selector_init(&rx_sel, (Action)&rxCallback, me); + Selector_init(&rx_err_sel, (Action)&rxErrorCallback, me); + Selector_init(&tx_err_sel, (Action)&txErrorCallback, me); + BSP_registerRxCallback(me->channel_fd, &rx_sel, &rx_err_sel); + BSP_registerTxCallback(me->channel_fd, (void (*)(void *, uint8_t *))&txCallback, me, &tx_err_sel); + BSP_doChannelAction(me->channel_fd, CA_OVERRUN_CB_ENABLE); + BSP_doChannelAction(me->channel_fd, CA_FRAMING_CB_ENABLE); + BSP_doChannelAction(me->channel_fd, CA_RX_CB_ENABLE); +} + + static bool sendPacket(DataLink *me, NetworkServiceType nst, uint8_t const *packet, uint16_t nb) { uint8_t frame_store[me->header_size + nb]; - PhysFrame_init((PhysFrame *)frame_store, FT_DATA, me->tx_seq_nr, NST_DEBUG, packet, nb); + PhysFrame_init((PhysFrame *)frame_store, FT_DATA, me->tx_seq_nr, nst, packet, nb); // BSP_logf("Writing frame with size %hu to buffer\n", sizeof frame_store); return writeFrame(me, frame_store, sizeof frame_store) == sizeof frame_store; } @@ -220,29 +242,16 @@ DataLink *DataLink_new() } -bool DataLink_open(DataLink *me, void *packet_handler, PacketCallback packet_callback) +bool DataLink_open(DataLink *me, EventQueue *dq) { - M_ASSERT(me->channel_fd < 0); - me->header_size = PhysFrame_headerSize(); - me->packet_handler = packet_handler; - me->packet_callback = packet_callback; - me->rx_frame_buffer = malloc(me->header_size + MAX_PAYLOAD_SIZE); - me->rx_nb = 0; - me->synced = false; - me->tx_seq_nr = 0; + M_ASSERT(me->channel_fd < 0); // Make sure this link is inactive. + me->delegate_queue = dq; + init(me); BSP_initComms(); // Initialise the communication peripheral. if ((me->channel_fd = BSP_openSerialPort("serial_1")) < 0) return false; - Selector rx_sel, rx_err_sel, tx_err_sel; - Selector_init(&rx_sel, (Action)&rxCallback, me); - Selector_init(&rx_err_sel, (Action)&rxErrorCallback, me); - Selector_init(&tx_err_sel, (Action)&txErrorCallback, me); - BSP_registerRxCallback(me->channel_fd, &rx_sel, &rx_err_sel); - BSP_registerTxCallback(me->channel_fd, (void (*)(void *, uint8_t *))&txCallback, me, &tx_err_sel); - BSP_doChannelAction(me->channel_fd, CA_OVERRUN_CB_ENABLE); - BSP_doChannelAction(me->channel_fd, CA_FRAMING_CB_ENABLE); - BSP_doChannelAction(me->channel_fd, CA_RX_CB_ENABLE); + setupChannel(me); return true; } diff --git a/firmware/src/debug_cli.c b/firmware/src/debug_cli.c index a74808f..aef438e 100644 --- a/firmware/src/debug_cli.c +++ b/firmware/src/debug_cli.c @@ -85,7 +85,7 @@ static void interpretCommand(CmndInterp *me, char ch) BSP_changePrimaryVoltage_mV(+200); break; case 'v': - CLI_logf("Firmware v0.27-beta\n"); + CLI_logf("Firmware v0.28-beta\n"); break; default: CLI_logf("Unknown command '/%c'\n", ch); diff --git a/firmware/src/neodk_main.c b/firmware/src/neodk_main.c index c31a2d9..c840643 100644 --- a/firmware/src/neodk_main.c +++ b/firmware/src/neodk_main.c @@ -124,8 +124,9 @@ static bool noEventsPending(Boss const *me) static void setupAndRunApplication(Boss *me) { + Sequencer_init(me->sequencer); DataLink *datalink = DataLink_new(); - Controller_init(me->controller, datalink); + Controller_init(me->controller, me->sequencer, datalink); CLI_init(&me->event_queue, datalink); Sequencer_start(me->sequencer); diff --git a/firmware/src/sequencer.c b/firmware/src/sequencer.c index af1edf8..d2d4a00 100644 --- a/firmware/src/sequencer.c +++ b/firmware/src/sequencer.c @@ -30,6 +30,8 @@ struct _Sequencer { EventQueue event_queue; // This MUST be the first member. uint8_t event_storage[400]; StateFunc state; + PatternDescr const *pattern_descr; + uint16_t nr_of_patterns; PatternIterator pi; uint8_t pattern_index; }; @@ -85,7 +87,7 @@ static uint8_t const pattern_circle[][2] = {EL_BD, EL_AC}, }; -static PatternDescr const pattern_descr[] = +static PatternDescr const pattern_descriptors[] = { { .name = "Jackhammer", @@ -125,8 +127,8 @@ static PatternDescr const pattern_descr[] = static void selectNextRoutine(Sequencer *me) { BSP_setPrimaryVoltage_mV(DEFAULT_PRIMARY_VOLTAGE_mV); - if (++me->pattern_index == M_DIM(pattern_descr)) me->pattern_index = 0; - PatternDescr const *pd = &pattern_descr[me->pattern_index]; + if (++me->pattern_index == me->nr_of_patterns) me->pattern_index = 0; + PatternDescr const *pd = &me->pattern_descr[me->pattern_index]; CLI_logf("Switching to '%s'\n", pd->name); PatternIterator_init(&me->pi, pd); } @@ -165,7 +167,7 @@ static void *stateIdle(Sequencer *me, AOEvent const *evt) printAdcValues((uint16_t const *)AOEvent_data(evt)); break; case ET_PLAY_PAUSE: - PatternIterator_init(&me->pi, &pattern_descr[me->pattern_index]); + PatternIterator_init(&me->pi, &me->pattern_descr[me->pattern_index]); CLI_logf("Starting '%s'\n", me->pi.pattern_descr->name); return &statePulsing; // Transition. case ET_NEXT_ROUTINE: @@ -295,7 +297,15 @@ Sequencer *Sequencer_new() { Sequencer *me = (Sequencer *)malloc(sizeof(Sequencer)); EventQueue_init(&me->event_queue, me->event_storage, sizeof me->event_storage); + return me; +} + + +Sequencer *Sequencer_init(Sequencer *me) +{ me->state = &stateNop; + me->pattern_descr = pattern_descriptors; + me->nr_of_patterns = M_DIM(pattern_descriptors); me->pattern_index = 2; BSP_registerPulseDelegate(&me->event_queue); return me; @@ -304,13 +314,13 @@ Sequencer *Sequencer_new() void Sequencer_start(Sequencer *me) { - for (uint16_t i = 0; i < M_DIM(pattern_descr); i++) { - PatternDescr const *pd = &pattern_descr[i]; + for (uint16_t i = 0; i < me->nr_of_patterns; i++) { + PatternDescr const *pd = &me->pattern_descr[i]; BSP_logf("Checking '%s'\n", pd->name); PatternIterator_checkPattern(pd->pattern, pd->nr_of_elcons); } - PatternIterator_init(&me->pi, &pattern_descr[me->pattern_index]); + PatternIterator_init(&me->pi, &me->pattern_descr[me->pattern_index]); uint32_t total_nr_of_pulses = 0; PulseTrain pt; while (PatternIterator_getNextPulseTrain(&me->pi, &pt)) { @@ -319,7 +329,7 @@ void Sequencer_start(Sequencer *me) } BSP_logf("Total number of pulses: %u\n", total_nr_of_pulses); - PatternIterator_init(&me->pi, &pattern_descr[me->pattern_index]); + PatternIterator_init(&me->pi, &me->pattern_descr[me->pattern_index]); me->state = stateIdle; me->state(me, AOEvent_newEntryEvent()); } @@ -331,6 +341,21 @@ bool Sequencer_handleEvent(Sequencer *me) } +uint16_t Sequencer_nrOfPatterns(Sequencer const *me) +{ + return me->nr_of_patterns; +} + + +void Sequencer_getPatternNames(Sequencer const *me, char const *names[], uint16_t cnt) +{ + if (cnt > me->nr_of_patterns) cnt = me->nr_of_patterns; + for (uint16_t i = 0; i < cnt; i++) { + names[i] = me->pattern_descr[i].name; + } +} + + void Sequencer_stop(Sequencer *me) { BSP_primaryVoltageEnable(false); diff --git a/firmware/toolchain/gcc/Makefile.posix b/firmware/toolchain/gcc/Makefile.posix index eb09c7c..5ee2439 100755 --- a/firmware/toolchain/gcc/Makefile.posix +++ b/firmware/toolchain/gcc/Makefile.posix @@ -1,3 +1,3 @@ GNU_INSTALL_ROOT ?= /opt/arm/gcc-arm/bin/ -GNU_VERSION ?= 9.3.1 +GNU_VERSION ?= 10.3.1 GNU_PREFIX ?= arm-none-eabi