Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 535 → Rev 570

/branches/salvo_gps/Basis_v0067g/tags/v0003/README_Gps.txt
File deleted
/branches/salvo_gps/Basis_v0067g/tags/v0003/Flight-Ctrl_MEGA644_V0_02a.hex
File deleted
/branches/salvo_gps/Basis_v0067g/tags/v0003/Flight-Ctrl_MEGA644_V0_01a.hex
0,0 → 1,2410
:100000000C946C020C9489020C9489020C94890261
:100010000C9489020C9489020C9489020C94890234
:100020000C9489020C94820C0C9489020C94890221
:100030000C949D150C9489020C9489020C948902ED
:100040000C9489020C9489020C94850B0C948902FF
:100050000C94AA070C9489020C94C5040C94890290
:100060000C94880D0C9489020C94D1140C94890280
:100070000A0A0D004E65757472616C004865616412
:10008000696E67486F6C64000A0D5374657565721C
:10009000756E673A20004F4B0A0D000A0D416267EA
:1000A0006C65696368204C756674647275636B7304
:1000B000656E736F722E2E000A0D42656E75747A2E
:1000C0006520506172616D657465727361747A2028
:1000D0002564000A0D414343206E69636874206102
:1000E000626765676C696368656E21000A0D496E19
:1000F00069742E20454550524F4D3A2047656E6534
:1001000072696572652044656661756C742D506115
:1001100072616D657465722E2E2E000A0D3D3D3D97
:100120003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DFF
:100130003D3D3D3D3D3D3D3D3D3D3D000A0D466C57
:1001400069676874436F6E74726F6C0A0D486172F0
:1001500064776172653A25642E25640A0D536F66D3
:1001600074776172653A5625642E256425632000F4
:100170002E0052616E67653A2533692D253369007B
:100180005374656C6C756E673A202533690053654E
:1001900074706F696E742020253369005365727620
:1001A0006F202000506F7469343A20202533690095
:1001B000506F7469333A202025336900506F746999
:1001C000323A202025336900506F7469313A20207B
:1001D0002533690053746172743A20202020202551
:1001E0003569004D657373776572743A2020253543
:1001F00069005269636874756E673A202025356915
:10020000004B6F6D70617373202020202020200030
:10021000456D70662E506567656C3A2535690053EB
:1002200070616E6E756E673A202025356900486FE3
:1002300063682025346920282533692900526F6CB2
:100240006C20253469202825336929004E69636BA9
:100250002025346920282533692900414343202D76
:100260002053656E736F720047696572202534698B
:1002700020282533692900526F6C6C2025346920B1
:100280002825336929004E69636B202534692028AD
:10029000253369290047696572202534692028259E
:1002A00033692900526F6C6C20253469202825336E
:1002B0006929004E69636B2025346920282533693C
:1002C00029004779726F202D2053656E736F72007D
:1002D00050333A253469202050343A2534692000BF
:1002E00050313A253469202050323A2534692000B3
:1002F00047733A253469202047693A25346920003C
:100300004E693A2534692020526F3A25346920001D
:100310004B373A25346920204B383A253469200080
:100320004B353A25346920204B363A253469200074
:100330004B333A25346920204B343A253469200068
:100340004B313A25346920204B323A25346920005C
:100350004B6F6D706173733A202020253569005210
:100360006F6C6C3A202020202020253569004E69D2
:10037000636B3A20202020202025356900616B74B2
:100380002E204C6167650048F668656E726567658A
:100390006C756E67004B65696E6520004F66662060
:1003A00020202020203A20253569004C7566746491
:1003B0007275636B3A2025356900536F6C6C486F1A
:1003C0006568653A2025356900486F6568653A209B
:1003D000202020202535690028632920486F6C677C
:1003E000657220427573730053657474696E673A61
:1003F000202564200048573A5625642E2564205352
:10040000573A25642E25642563002B2B204D696BFC
:10041000726F4B6F70746572202B2B005B25695DCA
:100420000000001100230034004600570069007AE4
:10043000008B009C00AE00BF00D000E100F2000382
:100440000114012401350146015601660177018737
:10045000019701A701B601C601D501E501F4010329
:1004600002120221022F023E024C025A0268027559
:1004700002830290029D02AA02B702C302CF02DBEE
:1004800002E702F302FE02090314031F03290333E8
:10049000033D0347035003590362036B0373037B5C
:1004A0000383038A03920399039F03A603AC03B259
:1004B00003B703BC03C103C603CA03CE03D203D6EA
:1004C00003D903DC03DE03E103E303E403E603E70C
:1004D00003E703E803E8030011241FBECFEFD0E1D8
:1004E000DEBFCDBF14E0A0E0B1E0E0EEF2E902C073
:1004F00005900D92A23AB107D9F719E0A2EAB4E04B
:1005000001C01D92AB38B107E1F70E94C4020C9400
:100510006F490C94000022E030E0D9010E945B4951
:10052000802D863028F082E0D901082E0E94634990
:1005300090E00895FB01282F863008F025E0429FC7
:10054000D0011124AC59BF4F842F90E0019724F0C3
:1005500001900E946349FACFA2E0B0E0022E0E940F
:1005600063490895FB01863008F085E0489FD0017B
:100570001124AC59BF4F842F90E0019724F00E94C2
:100580005B490192FACF0895EF92FF921F93CF93A8
:10059000DF9314B815B8189B02C08BE001C08AE045
:1005A000809300018DEC87B98FEF88B98BE184B916
:1005B00081E085B98EE38AB9579A87EF8BB984B702
:1005C000877F84BF80916000886180936000109273
:1005D000600080ED97E09093C5048093C40410926E
:1005E0006405109263051092350810923408109239
:1005F0006205109261051092600510925F0580916E
:1006000000018A3011F4289801C0289A0E94250D13
:100610000E94FD050E9488150E94820D0E94B71459
:1006200078941092330781E08093340787E08093B9
:10063000350720910001822F6AE00E94B448492FBB
:1006400050E0822F0E94B44890E021E630E03F93D2
:100650002F9321E030E03F932F931F921F925F93DF
:100660004F939F938F938CE391E09F938F931F926F
:100670000E94E1088BE191E09F938F931F920E946B
:10068000E108299AA1E0B0E00E945B49802D2DB7D6
:100690003EB7205F3F4F0FB6F8943EBF0FBE2DBF51
:1006A0008434A9F18CEE90E09F938F931F920E9467
:1006B000E1080E94CB23C0E0D0E00F900F900F9094
:1006C0008EE5E82E88E0F82E1C2FC23039F0C330BA
:1006D00019F40E94AA2204C0C43010F00E943A23E8
:1006E00047E4B701812F0E949A022196C630D105B6
:1006F00059F783E022E030E0D901082E0E946349D7
:1007000084E421503040D901082E0E946349C4E09E
:10071000D0E0DE010E945B49802D853050F083EDF2
:1007200090E09F938F931F920E94E1080F900F908B
:100730000F902297DE010E945B49802D863028F0C1
:1007400082E0DE01082E0E94634947E46EE578E00E
:100750000E94B202DE010E945B49802D863028F0A3
:1007600082E0DE01082E0E94634990E09F938F9300
:1007700088EB90E09F938F931F920E94E1088091F5
:1007800066080F900F900F900F900F9080FD03C0A0
:10079000C8EED3E020C08BE990E09F938F931F9227
:1007A0000E94E10888EE93E00E946D0CEC010E942B
:1007B00020100F900F900F90CE010E94760C88238E
:1007C000D9F386E990E09F938F931F920E94E108EE
:1007D0000F900F900F900E941C21809100018A3091
:1007E00011F4289801C0289A469880ED97E09093DC
:1007F000C5048093C40488EE93E090932E07809301
:100800002D0785E58093280788E890E09F938F93D4
:100810001F920E94E108809166080F900F900F9040
:1008200082FF03C08CE790E002C084E790E09F93D2
:100830008F931F920E94E1080F900F900F9080E716
:1008400090E09F938F931F920E94E1080E9469108D
:1008500088E893E190938603809385030F900F902F
:100860000F908091C104882309F462C01092C104E2
:100870000E945D240E94D520209100012A3011F4AD
:10088000289801C0289A80910301882321F0815083
:100890008093030110C01092B2041092B30410921E
:1008A0007F0510927E0510928105109280051092AE
:1008B00083051092820580915E05882329F080913E
:1008C0005E05815080935E0580918503909186033B
:1008D000892B01F585E090E0909386038093850352
:1008E0000E94621580910403909105038F5F9F4FD2
:1008F000F9F4809165058823D9F080E197E290931F
:10090000C5048093C40480E890E09093050380932D
:1009100004030EC080918503909186030197909304
:100920008603809385032A3011F4289801C0289A01
:100930000E9418060E94B106CE010E94760C882300
:1009400009F48FCF20910803309109038091760834
:1009500090E0281739079CF48091040390910503D7
:100960008F5F9F4F61F480E797E19093C504809378
:10097000C40480E093E0909305038093040384E62D
:1009800090E00E946D0CEC016CCF1F920F920FB69D
:100990000F9211248F939F93EF93FF938091010106
:1009A0008823E1F48091BD049091BE040196909358
:1009B000BE048093BD04FC01E650FA4FE081ED30A7
:1009C00019F08639910539F41092BE041092BD04D5
:1009D00081E080930101E093C60004C01092BE0440
:1009E0001092BD04FF91EF919F918F910F900FBED8
:1009F0000F901F901895DC0120E030E040E050E0BF
:100A000008C0FA01E650FA4F8081280F311D4F5F70
:100A10005F4F4A175B07A9F73F70C90136E096950B
:100A200087953A95E1F7835CFD01E650FA4F8083A4
:100A300011962F73235CFD01E650FA4F2083A550D9
:100A4000BA4F8DE08C93109201018091FA0580934A
:100A5000C60008951F93CF93DF93EA01722F93E2AC
:100A60009093FA056093FB058093FC05A3E0B0E04A
:100A700060E04FC0FE01E60FF11D90816F5F715085
:100A800019F410E040E00FC0FE01E60FF11D4081B7
:100A90006F5F715011F410E006C0FE01E60FF11D0A
:100AA00010816F5F7150892F86958695835CFD015B
:100AB000E650FA4F808350E09A0184E036952795FE
:100AC0008A95E1F7892F90E083709070F4E0880FA9
:100AD000991FFA95E1F7282B235CFD01E550FA4FA9
:100AE0002083812F82958695869583704F705070F4
:100AF000440F551F440F551F842B835CFD01E450A8
:100B0000FA4F80831F73135CFD01E350FA4F10838B
:100B10001496772309F0AECFCD010E94FB04DF913C
:100B2000CF911F9108951F93CF93DF93EC0170E055
:100B3000A22FB0E0129748C0E42FF0E0E35CF84F3A
:100B400030814F5FE42FF0E0E35CF84F50814F5F5E
:100B5000E42FF0E0E35CF84F10814F5FE42FF0E00A
:100B6000E35CF84F20814F5F842F90E0A817B9070E
:100B700074F15D53FE01E70FF11D852F82958F7093
:100B80003D53330F330F382B3083613001F1912FF8
:100B90009D537F5FFE01E70FF11D71505295507F0D
:100BA000892F86958695582B508363506F3F79F037
:100BB0007E5FFE01E70FF11D9295990F990F907CD2
:100BC0002D53922B90837F5F662309F0B5CFDF9181
:100BD000CF911F9108951F93182F8A3019F48DE03B
:100BE0000E94EB058091C00085FFFCCF1093C600EA
:100BF00080E090E01F9108950895E1ECF0E088E135
:100C00008083A0ECB0E08C9182608C9380818068BE
:100C100080838081806480838AE28093C40088EC32
:100C200090E00E946D0C909327078093260708950B
:100C300080910101882309F493C08091A204882344
:100C400071F080910101882351F06091F9052BE04A
:100C500048E257E087E40E942A051092A20480919E
:100C60002607909127070E94760C882321F4809113
:100C7000A4048823F9F0809101018823D9F06091C0
:100C8000F90522E443ED57E084E40E942A0510921E
:100C9000A4048091B5049091B60401969093B60493
:100CA0008093B5048AEF90E00E946D0C9093270723
:100CB00080932607609102016F3F89F0462F50E034
:100CC00094E0440F551F9A95E1F74C5F5E4F605DCD
:100CD00020E181E40E942A058FEF80930201809138
:100CE000A304882359F180910101882339F10E94DE
:100CF00072101092A3043091AC04932F9F5F9093D5
:100D0000AC04943021F08091AD04882359F026E1A1
:100D100040E358E060E084E30E942A058FEF80936F
:100D2000AC040CC044E1949FA0011124465E5C4FCA
:100D300024E160E0832F8F5C0E942A058091A50446
:100D4000882371F080910101882351F06091F905A9
:100D50002AE043E357E086E50E942A051092A504A5
:100D600008951F93CF93DF93CDB7DEB722970FB6C9
:100D7000F894DEBF0FBECDBF8091A704882309F48D
:100D8000DFC08FEF8093030180913F078B3609F41A
:100D90005EC08C3678F4833629F1843620F48136AF
:100DA00009F0CCC013C0873609F45EC0883609F05C
:100DB000C5C02BC0813709F45BC0813708F480C0FF
:100DC0008437F1F1863709F0B9C04AC02091AA04EE
:100DD00043E062E0CE0101960E94930589818093F1
:100DE0000201ACC02091AA0443E06BE088E297E0E6
:100DF0000E9493058091F10490912A07892B80939A
:100E0000F10481E08093A40499C02091AA0443E0F6
:100E100062E0CE0101960E9493058091F1049981D0
:100E2000892B8093F1048A818F3F21F481E08093A4
:100E3000AD0402C01092AD0481E08093A3047EC093
:100E40002091AA0443E064E08EEA94E006C0209179
:100E5000AA0443E063E082EB94E00E9493056EC035
:100E600081E08093A5046AC081E08093A20466C0FB
:100E70002091AA0443E062E0CE0101960E9493050E
:100E800089818F3F89F0863010F085E0898347E4BF
:100E90006EE578E089810E94B2026091F90589814E
:100EA00027E44EE558E008C01091F9050E948B0236
:100EB00027E44EE558E0612F855B0E942A053EC07D
:100EC0002091AA0443E067E48EE598E00E94930530
:100ED00080913F0747E46EE578E08B560E949A02C6
:100EE00080913F078B56A2E0B0E0082E0E94634934
:100EF0006091890870E080E090E024EC39E040E007
:100F000050E00E9495486093870370938803809314
:100F1000890390938A0360918A0870E080E090E0F2
:100F20000E94954860938B0370938C0380938D038C
:100F300090938E030E948B020E94C0201092A704FF
:100F400022960FB6F894DEBF0FBECDBFDF91CF91D2
:100F50001F9108951F920F920FB60F9211242F9395
:100F60003F934F935F936F937F938F939F93AF9331
:100F7000BF93CF93DF93EF93FF938091C60080934D
:100F8000A6048091A6040E94DB3B4091B804463938
:100F900010F01092B7048091A6048D3009F05DC066
:100FA0008091B704823009F058C01092B704A42F82
:100FB000B0E0FD01E55CF84F3081ED01C45CD84F35
:100FC00028818091BB049091BC04831B9109821BF2
:100FD00091099F709093BC048093BB049C0168941A
:100FE00015F8369527951694E1F7235C2093BA04FB
:100FF000982F9F73935C9093B9048081281729F4EC
:101000008881981711F491E006C08091A9048F5F40
:101010008093A90490E08091A704882309F065C01B
:10102000992309F462C081E08093A7044093AA0445
:10103000A35CB84F8DE08C9380913F07823509F017
:1010400054C088E190E02CE00FB6F894A895809306
:1010500060000FBE2093600048C08091B7048130CB
:10106000D9F0813018F08230F1F521C08091A604CA
:10107000833239F48091A704882319F481E08093A6
:10108000B7048091A60480933D0781E08093B80463
:101090008091A60490E022C082E08093B704E42F00
:1010A000F0E08091A604E35CF84F808309C0E42F50
:1010B000F0E08091A604E35CF84F8083463920F489
:1010C0004F5F4093B80402C01092B7042091A60469
:1010D0008091BB049091BC04820F911D9093BC043D
:1010E0008093BB0402C01092B704FF91EF91DF918F
:1010F000CF91BF91AF919F918F917F916F915F91B0
:101100004F913F912F910F900FBE0F901F90189508
:10111000982F80911508813069F48091F004E82FB0
:10112000F0E0E65EFC4F90838F5F8093F00421E057
:1011300030E005C0892F0E94EB05282F30E0C9015F
:1011400008951F93182F04C080E30E94880811504F
:101150001116D4F31F9108951F93182F04C080E235
:101160000E94880811501116D4F31F9108950F930F
:101170001F93CF93DF938C01EB0108C0F8010F5F41
:101180001F4FE4918E2F0E94880821972097B1F776
:10119000DF91CF911F910F9108950F931F93CF93DC
:1011A000DF938C01EB0106C0F80181918F010E9451
:1011B000880821972097C1F7DF91CF911F910F9158
:1011C00008952F923F924F925F926F927F928F92EB
:1011D0009F92AF92BF92CF92DF92EF92FF920F93C6
:1011E0001F93CF93DF93CDB7DEB7E5970FB6F89493
:1011F000DEBF0FBECDBF2B968FAD2B97809315080A
:10120000CE01835B9F4F9B838A832D964EAC5FAC50
:101210002D971EA61FA618AA19AA9E01225D3F4F50
:101220003DAB2CAB820102C00F5F1F4FF801F49061
:10123000FF2019F0F5E2FF16B9F7B8016419750936
:1012400019F0C2010E94B708FF2009F445C2280125
:101250000894411C511C1982AA81BB8133241BAA0A
:101260002FEF2AABF2010894411C511CB490632D5E
:1012700070E06170707035E7B31621F08B2D8062DD
:101280008837C9F46115710559F02D913D914D9143
:101290005C9113972EA73FA748AB59AB14960BC090
:1012A0008D919C9111979C0140E050E02EA73FA7A3
:1012B00048AB59AB129630E2B31621F489818823EA
:1012C00089F61CC043E2B41611F458E055C08AE216
:1012D000B81621F09DE2B91671F408C0FD0112960E
:1012E000E081EBABE7FFBECFE195EBABE0E13E2A5F
:1012F000FFED3F22B7CF2BE2B21611F4B982B2CF85
:101300003EE2B31699F5F2010894411C511C8491F8
:101310008A3221F0B82E20E030E01DC0FD01129687
:101320004081518157FF02C04FEF5FEF4AAB9ACF28
:10133000C90153E0880F991F5A95E1F7220F331F17
:10134000280F391F2B0D311D20533040F201089416
:10135000411C511CB4908B2D80538A3048F3A90155
:1013600037FF02C04FEF5FEF4AAB85CF40E3B416C3
:1013700029F434FC77CF50E2352A74CF8B2D81537A
:101380008930D8F420E030E0C90103E0880F991FCC
:101390000A95E1F7220F331F280F391F2B0D311D3E
:1013A00020533040F2010894411C511CB4908B2D05
:1013B00080538A3048F32BAB5ECF88E6B81619F419
:1013C00094E0392A4FCFECE6BE1619F4F1E03F2A3B
:1013D00049CFBB83AA8323E6B21639F41296BB83A6
:1013E000AA8312978C918E8322C134E4B31639F00C
:1013F00044E6B41631F059E6B516A9F502C081E00D
:10140000382A30FE08C01496BB83AA835E914E91A1
:101410003E912E910AC01296BB83AA839E918E9113
:101420009C01442737FD4095542F2EA73FA748AB7A
:1014300059AB8EA59FA5A8A9B9A9BB238CF42EA54D
:101440003FA548A959A950954095309521953F4F02
:101450004F4F5F4F2EA73FA748AB59AB8DE2898313
:10146000BAE02B2E80C03FE4B31621F04FE6B4164D
:1014700031F402C051E0352AA8E02A2E73C080E77B
:10148000B81689F41296BB83AA839E918E919C0113
:1014900040E050E02EA73FA748AB59AB30E4332AD9
:1014A000F8E7BF2E5DC043E7B416D1F51296BB83B3
:1014B000AA83DE90CE90C114D10489F488E28E8391
:1014C0008EE68F8385E788878CE689878A8789E21D
:1014D0008B871C86E6E0CE2ED12CCC0EDD1E5AA9C1
:1014E00057FD14C0452F552747FD509560E070E02B
:1014F000C6010E946D46009711F4FAA80EC0F82E9E
:10150000FC188AA98F154CF4F82E07C0F60101903B
:101510000020E9F73197FE2EFC18198240E090C0B8
:1015200095E5B91621F0A5E7BA1631F402C0B1E08D
:101530003B2A7AE0272E16C0E8E5BE1621F0F8E730
:10154000BF1609F070C033FE0BC02EA53FA548A9F9
:1015500059A9211531054105510511F030E4332A0F
:1015600060E1262E19824AA947FD02C05FED3522AF
:101570008EA59FA5A8A9B9A90097A105B10549F411
:101580009AA9992331F45EE2C52ED12CCC0EDD1E32
:1015900046C06EA47FA488A899A84EE2C42ED12C80
:1015A000CC0EDD1EE22CFF2400E010E06EA57FA52E
:1015B00088A999A9A80197010E94E7486A3020F4F8
:1015C00030E3A32EA60E08C027E5A22EA60EA8E59E
:1015D000BA1611F4BFEDAB22F601A2926F016EA50F
:1015E0007FA588A999A9A80197010E94E7482EA77D
:1015F0003FA748AB59AB6E147F048006910618F0E4
:1016000039014A01D3CFF8E02F1649F433FE07C061
:1016100020E3A21621F080E3D6018E936D01FCA891
:10162000FC184AA90DC0BB2009F456C0BE8219821D
:1016300096E0C92ED12CCC0EDD1E40E0FF24F394A1
:10164000E42EEF18E7FCEE248981882319F08F2D12
:101650008F5F06C036FC02C08F2D02C08F2D8E5FBB
:10166000A82EAE0C032D10E080E3882E912C802252
:1016700091228114910421F48BA98A190E94AC084B
:101680008981882329F061E070E0CE01019609C0CC
:1016900006FF09C080E38C83BD8262E070E0CE016A
:1016A00004960E94CD08B0E28B16910421F48BA918
:1016B0008A190E94A1088E2D0E94A1086F2D7727FC
:1016C00067FD7095C6010E94CD0804FFABCD8BA9C4
:1016D0008A190E94AC08A6CDE5960FB6F894DEBF35
:1016E0000FBECDBFDF91CF911F910F91FF90EF9073
:1016F000DF90CF90BF90AF909F908F907F906F9032
:101700005F904F903F902F9008951F920F920FB6C9
:101710000F9211242F933F935F936F937F938F9337
:101720009F93AF93BF938091CD0481508093CD045C
:101730008F3F11F58091CB049091CC04009729F054
:1017400001979093CC048093CB0489E08093CD04DF
:10175000809107038F5F817080930703882319F4BA
:1017600081E08093C1048091BF049091C0040196F0
:101770009093C0048093BF048091C4049091C504E9
:101780000297B8F08091C4049091C504019790939A
:10179000C5048093C4048091C4049091C504209131
:1017A00004033091050382239323892B09F081C020
:1017B00006C08FEF9FEF9093050380930403809101
:1017C00000018A3039F404C05A9A05C0479A03C010
:1017D0005A9801C04798349B0AC08091C2049091E6
:1017E000C30401969093C3048093C20468C080919F
:1017F000C2049091C304892B09F43DC08091C204B6
:101800009091C304805A9F40B0F58FEF90E0909381
:10181000CC048093CB042091C2043091C304809106
:10182000770590E0880F991F281B390B30934B05E3
:1018300020934A0580914A0590914B0597FF0AC075
:1018400080914A0590914B0588599E4F90934B0586
:1018500080934A0580914A0590914B0588569140A6
:1018600054F080914A0590914B0588569140909391
:101870004B0580934A0580914A0590914B05209134
:101880004C0530914D05845E9D4F821B930B68E69D
:1018900071E00E94D448845B904090934F05809300
:1018A0004E0581E08093C8041092C3041092C204D4
:1018B00006C0809100018A3009F088CF85CFBF91A2
:1018C000AF919F918F917F916F915F913F912F91F8
:1018D0000F900FBE0F901F9018952091BF0430916C
:1018E000C0042F5F3F4F820F931F08952091BF04C4
:1018F0003091C004821B930B892F992786958074A1
:1019000090E008951F920F920FB60F9211241F932B
:101910002F933F934F935F936F937F938F939F93F7
:10192000AF93BF93CF93DF93EF93FF938091060321
:101930008150809306038F3F09F06FC083E8809346
:10194000B00080919C03C82FD0E0D093C704C0930F
:10195000C604809193081091800880FF1FC0609199
:101960000E0570910F05809110059091110520E8EA
:1019700030E040E050E00E940949CA01B901212F3E
:1019800030E040E050E00E94954820E032E040E046
:1019900050E00E940949C20FD31F1EC060910E057E
:1019A00070910F05809110059091110520E830E0AD
:1019B00040E050E00E940949CA01B901212F30E0FE
:1019C00040E050E00E94954820E032E040E050E0E6
:1019D0000E940949C21BD30BD093C704C093C6040D
:1019E0002091C6043091C7048091810890E02817A7
:1019F000390734F08091820890E08217930724F42D
:101A00009093C7048093C6048091C6048093B3006A
:101A1000809183088093060304C083E08093B00024
:101A20005F98FF91EF91DF91CF91BF91AF919F911F
:101A30008F917F916F915F914F913F912F911F9166
:101A40000F900FBE0F901F9018958091BF0490913A
:101A5000C0040B969093CF048093CE0482E085BDA2
:101A600083EA84BD17BC88E788BD96E096BD83EC09
:101A70008093B0009093B100E0E7F0E08081826055
:101A80008083EEE6F0E08081816080838AE080934D
:101A9000B3001092B2000895AC012091BF043091C0
:101AA000C0042F5F3F4F03C08FEE80937A00809178
:101AB000BF049091C004B901681B790BCB01840F5E
:101AC000951F80709078892F99278695882361F3D8
:101AD0000895AC012091BF043091C0042F5F3F4FA7
:101AE0008091BF049091C004B901681B790BCB01B0
:101AF000840F951F80709078892F99278695882369
:101B000079F3089510927C008FEE80937A00089507
:101B10001F920F920FB60F921124EF92FF920F9324
:101B20001F932F933F934F935F936F937F938F9365
:101B30009F93AF93BF93CF93DF93EF93FF93109255
:101B40007A008091EC048F5F8093EC0481508530A3
:101B500009F486C0863090F4823009F440C08330A6
:101B600030F48823F1F0813009F044C22FC0833073
:101B700009F441C0843009F03DC25AC0883009F4EC
:101B8000C2C0893038F4863009F483C0873009F048
:101B900031C29CC0893009F4D3C08A3009F02AC20E
:101BA000B1C180917800909179009093EB0480937B
:101BB000EA0481E08093ED048091E4049091E504CF
:101BC00001969093E5048093E40418C28091780014
:101BD000909179009093E9048093E80492C08091F9
:101BE0007800909179009093E7048093E60484E074
:101BF0008093ED0403C24091080350910903809142
:101C00007800909179009A01220F331F240F351F1D
:101C100063E070E00E94C048260F371F3695279575
:101C200036952795309309032093080386E0E0CF8B
:101C300080910605909107052091780030917900F8
:101C4000821B930B909317088093160880911608B7
:101C5000909117089093D7048093D60487E0C8CF5B
:101C600080917800909179002091040530910505CC
:101C7000821B930B90932208809321088091210866
:101C8000909122089093D9048093D8041092ED0487
:101C9000B5C1809100012091EA043091EB048A30B3
:101CA00049F48091780090917900820F931F969566
:101CB000879506C08091780090917900820F931FDC
:101CC0009093D5048093D40481E092CF8091000159
:101CD0002091E8043091E9048A3049F48091780039
:101CE00090917900820F931F9695879506C08091F9
:101CF000780090917900820F931F9093D304809382
:101D0000D20482E075CF809100012091E6043091E9
:101D1000E7048A3049F48091780090917900820F2D
:101D2000931F9695879506C08091780090917900D1
:101D3000820F931F9093D1048093D00485E058CFF5
:101D40006091780070917900E0900805F0900905A5
:101D500000910A0510910B05882777FD8095982F33
:101D60000E947A47A80197010E947A460E9447473D
:101D70007093DB046093DA04E091DA04F091DB0401
:101D80008091160890911708C0912108D0912208DF
:101D900097FF03C0909581959F4F64E070E00E948B
:101DA000D4489B01CE01D7FF03C0909581959F4FEA
:101DB00064E070E00E94D448260F371FE20FF31F43
:101DC000F093DB04E093DA048091DA049091DB0471
:101DD000029704F1609108057091090580910A0548
:101DE00090910B0520E030E048E454E40E94B547B0
:101DF00088230CF03CC06091080570910905809122
:101E00000A0590910B052AE037ED43EA5CE30E9456
:101E10007B4625C08091DA049091DB048F5F9F4F51
:101E200034F5609108057091090580910A0590913B
:101E30000B0520E030E046E154E40E94B947181653
:101E4000B4F4609108057091090580910A0590919C
:101E50000B052AE037ED43EA5CE30E947A46609383
:101E600008057093090580930A0590930B0581E09E
:101E70008093E10480917800909179009093190803
:101E800080931808209146053091470540914805F8
:101E9000509149058091DA049091DB04AA2797FDBF
:101EA000A095BA2F820F931FA41FB51F80934605DC
:101EB00090934705A0934805B0934905E0904605E7
:101EC000F09047050091480510914905609146053D
:101ED00070914705809148059091490520E034E0D4
:101EE00040E050E00E940949E21AF30A040B150B86
:101EF000E0924605F0924705009348051093490586
:101F000083E076CE80912608909127082091780072
:101F100030917900820F931F9093270880932608B1
:101F200080911E088F5F80931E0880911E08853067
:101F300008F460C0809178009091790090930F032D
:101F400080930E0310921E0880911A0890911B082E
:101F50002091260830912708821B930B209166055B
:101F600030916705821B930B9093E3048093E20406
:101F70002091260830912708E0900A03F0900B0387
:101F800000910C0310910D03C801B701660F771F74
:101F9000881F991F6E0D7F1D801F911F442737FDDD
:101FA0004095542F620F731F841F951F24E030E06B
:101FB00040E050E00E94094920930A0330930B034C
:101FC00040930C0350930D0320911A0830911B0885
:101FD00080910A0390910B03A0910C03B0910D0323
:101FE000281B390B3093670520936605109227084C
:101FF000109226081092ED041092EC048091ED04EA
:1020000080937C008091EC04882319F08FEE8093FC
:102010007A00FF91EF91DF91CF91BF91AF919F91A6
:102020008F917F916F915F914F913F912F911F9170
:102030000F91FF90EF900F900FBE0F901F9018958B
:102040000F931F93CF93DF93A3E0B0E00E945B490F
:10205000802DC82FD0E0C531D10508F02A97C7BD23
:1020600084E690E00E944C0D80910E0390910F0346
:1020700082559340C8F4C0E0D0E016C0C7BD82E3EB
:1020800090E00E944C0D1F930F931F920E94E10855
:1020900080910E0390910F030F900F900F90845832
:1020A000934038F0219602C000E711E0CA3FD10505
:1020B00028F3A3E0B0E00C2E0E946349C0932308EC
:1020C0008CE291E00E944C0DDF91CF911F910F9116
:1020D0000895EAE1F3E080E2819383E0EA36F807CD
:1020E000D1F708950F931F938091F104282F30E0CA
:1020F000C90181709070682F8823A9F08091F20443
:10210000882311F0815002C080916A038093F20409
:10211000EAE1F3E080E2819383E0EA36F807D1F761
:102120008FEF8093AC04A9014270507021FF10C062
:102130008091F2048F5F8093F204EAE1F3E080E2A1
:10214000819393E0EA36F907D1F78FEF8093AC04DF
:10215000662321F0452B11F01092F20481E1809367
:10216000F0048091F20490E09F938F938CE194E0CF
:102170009F938F9301E00F930E94E1081091F20466
:102180000F900F900F900F900F90153009F4FCC135
:10219000163090F4123009F4CCC0133030F411230F
:1021A000F1F0113009F0D9C361C0133009F416C140
:1021B000143009F0D2C365C1183009F416C31930C0
:1021C00038F4163009F499C2173009F0C6C3EAC2D0
:1021D000193009F447C31A3009F0BFC381C3109204
:1021E000F0048AE094E09F938F930F930E94E1089C
:1021F00084E18093F00420910001822F6AE00E9424
:10220000B448492F50E0822F0E94B44890E021E664
:1022100030E03F932F9321E030E03F932F931F92C4
:102220001F925F934F939F938F9385EF93E09F93BC
:102230008F930F930E94E10888E28093F0040E943C
:102240008B0290E09F938F9388EE93E09F938F9300
:102250000F930E94E1088CE38093F00488ED93E0F3
:102260009F938F930F930E94E10898C28091660814
:1022700080FF47C01092F004809166059091670539
:102280009F938F9389EC93E09F938F931F930E946A
:10229000E10884E18093F0048091680590916905DC
:1022A0009F938F938AEB93E09F938F931F930E944A
:1022B000E10888E28093F00480910E0390910F036F
:1022C0009F938F938BEA93E09F938F931F930E942A
:1022D000E1088CE38093F0048091230890E09F93C1
:1022E0008F938CE993E09F938F931F930E94E10853
:1022F0008DB79EB744960FB6F8949EBF0FBE8DBFA4
:1023000031C384E18093F00485E993E09F938F9338
:102310001F930E94E10888E28093F00487E893E02D
:102320009F938F931F930E94E1088DB79EB70696E7
:10233000E2CF1092F0048DE793E09F938F930F9379
:102340000E94E10884E18093F00460910E05709191
:102350000F05809110059091110520E034E040E0D8
:1023600050E00E9409495F934F933F932F938EE66D
:1023700093E09F938F930F930E94E10888E28093EC
:10238000F0046091160570911705809118059091E1
:10239000190520E034E040E050E00E9409495F93D5
:1023A0004F933F932F938FE593E09F938F930F93DA
:1023B0000E94E1088CE38093F00480914A0590919B
:1023C0004B059F938F9380E593E09F938F930F939B
:1023D0000E94E1088DB79EB746968DCF1092F0040B
:1023E000809134089091350820913208309133085B
:1023F0009F938F933F932F9380E493E09F938F93CA
:102400000F930E94E10884E18093F00480913808E2
:102410009091390820913608309137089F938F9317
:102420003F932F9380E393E09F938F930F930E94AA
:10243000E10888E28093F00480913C0890913D0887
:1024400020913A0830913B089F938F933F932F93AD
:1024500080E293E09F938F930F930E94E1088CE3B7
:102460008093F004809140089091410820913E08AB
:1024700030913F089F938F933F932F9380E193E098
:102480007AC01092F004E0915F08F0E0EE0FFF1FB9
:10249000E05DF74F20813181E0915E08F0E0EE0FC2
:1024A000FF1FE05DF74F808191813F932F939F93B2
:1024B0008F9380E093E09F938F930F930E94E108A6
:1024C00084E18093F004E0916108F0E0EE0FFF1FDB
:1024D000E05DF74F20813181E0916008F0E0EE0F80
:1024E000FF1FE05DF74F808191813F932F939F9372
:1024F0008F9380EF92E09F938F930F930E94E10858
:1025000088E28093F004E0916308F0E0EE0FFF1F93
:10251000E05DF74F20813181E0916208F0E0EE0F3D
:10252000FF1FE05DF74F808191813F932F939F9331
:102530008F9380EE92E09F938F930F930E94E10818
:102540008CE38093F004E0916508F0E0EE0FFF1F4C
:10255000E05DF74F20813181E0916408F0E0EE0FFB
:10256000FF1FE05DF74F808191813F932F939F93F1
:102570008F9380ED92E09F938F930F930E94E108D9
:102580008DB79EB74C96B7CE1092F00482EC92E0D5
:102590009F938F930F930E94E1080F900F900F90DD
:1025A000809100018A3009F04AC084E18093F004F0
:1025B0004091FA045091FB048091D0049091D10491
:1025C0002091FA043091FB04821B930B5F934F938D
:1025D0009F938F9383EB92E09F938F930F930E942F
:1025E000E10888E28093F0044091FC045091FD04DE
:1025F0008091D2049091D3042091FC043091FD0489
:10260000821B930B5F934F939F938F9384EA92E087
:102610009F938F930F930E94E1088CE38093F004C3
:102620008091FE049091FF042091D7083091D80842
:102630009F938F933F932F9385E992E055C084E158
:102640008093F0048091FA049091FB0462E070E0C2
:102650000E94D4488091D0049091D1042091FA0432
:102660003091FB04821B930B7F936F939F938F9307
:1026700086E892E09F938F930F930E94E10888E28F
:102680008093F0048091FC049091FD0462E070E07E
:102690000E94D4488091D2049091D3042091FC04EC
:1026A0003091FD04821B930B7F936F939F938F93C5
:1026B00087E792E09F938F930F930E94E1088CE34A
:1026C0008093F0048091FE049091FF0462E070E03A
:1026D0000E94D4488091D7089091D8087F936F9337
:1026E0009F938F9388E692E09F938F930F930E941E
:1026F000E1088DB79EB74596FECD1092F0048BE5AC
:1027000092E09F938F930F930E94E10884E180935E
:10271000F00480910405909105052091D804309132
:10272000D9049F938F933F932F938CE492E09F93D0
:102730008F930F930E94E10888E28093F0048091C8
:102740000605909107052091D6043091D7049F93F8
:102750008F933F932F938DE392E09F938F930F93EB
:102760000E94E1088CE38093F00460910805709169
:10277000090580910A0590910B050E944747209119
:10278000B7083091B8087F936F933F932F938EE2F1
:1027900092E09F938F930F930E94E1088DB79EB7AD
:1027A0004896A9CD84E18093F0048091080390912C
:1027B00009039F938F938FE192E09F938F930F93E1
:1027C0000E94E10888E28093F00480915E0590E029
:1027D0009F938F9380E192E09F938F930F930E943A
:1027E000E1088DB79EB70A9686CD1092F00481E07D
:1027F00092E09F938F930F930E94E10884E180936E
:10280000F00480914E0590914F059F938F9382EF36
:1028100091E09F938F930F930E94E10888E2809349
:10282000F00480914A0590914B059F938F9383EE1E
:1028300091E09F938F930F930E94E1088CE3809324
:10284000F00480914C0590914D059F938F9384EDFA
:1028500091E09F938F930F930E94E1088DB79EB7ED
:10286000429649CD1092F0048091560590915705FB
:102870009F938F9388EC91E09F938F930F930E9487
:10288000E10884E18093F004809158059091590506
:102890009F938F938CEB91E09F938F930F930E9464
:1028A000E10888E28093F00480915A0590915B05DD
:1028B0009F938F9380EB91E09F938F930F930E9450
:1028C000E1088CE38093F00480915C0590915D05B4
:1028D0009F938F9384EA91E09F938F930F9306CDFC
:1028E0001092F0048CE991E09F938F930F930E94D4
:1028F000E10884E18093F00480919C0390E09F9331
:102900008F938EE891E09F938F930F930E94E1083D
:1029100088E28093F0048091C6049091C7049F934D
:102920008F9380E891E09F938F930F930E94E1082B
:102930008CE38093F0042091820830E0809181083C
:1029400090E03F932F939F938F9382E791E09F9323
:102950008F930F930E94E108CBCC115010936A0320
:102960001092F2041092F1041F910F9108951092A9
:10297000B9008AE28093B800089585EA8093BC008C
:1029800080E090E0089584E98093BC00089510925F
:10299000B9008093BB0085E88093BC0080E090E0A4
:1029A00008951F920F920FB60F9211248F939F9349
:1029B000EF93FF938091F3048F5F8093F304815032
:1029C0008330C1F1843028F4813091F0823020F5D9
:1029D0000AC08530B9F18530E8F18630D9F1873009
:1029E00009F062C046C08091F404880F8E5A0CC072
:1029F0008091F4048F5F8093F40481502DC0833064
:102A000009F052C08091D1081092B9008093BB00A8
:102A100085E88093BC0048C084E98093BC00809125
:102A2000F404843018F41092F30402C01092F404F9
:102A300085EAEFCF8091F504880F8D5AE5CF82307B
:102A4000A9F0DDCF8091BB00E091F504F0E0E85DF6
:102A5000F74F80838091F504813029F0813078F739
:102A60008091A808D1CF8091AD08CECF8091CD08BC
:102A7000CBCF8091F5049091BB00E82FF0E0E85DAA
:102A8000F74F94838F5F8093F504843010F0109299
:102A9000F50484E98093BC008AE090E0909386037B
:102AA000809385031092F3048091BC00806880932A
:102AB000BC00FF91EF919F918F910F900FBE0F90EF
:102AC0001F9018954CEB50E084E9DA018C9310923A
:102AD000F3042BEB30E0F90180811092F40480E8DC
:102AE0008C931092BD001092BA001082E9EBF0E0D6
:102AF0001082A8EBB0E01C9210828AE28C9385EAE7
:102B0000DA018C931082F901108285E88C93089584
:102B100083EC80938100EFE6F0E080818062808327
:102B20001092FF041092FE041092FD041092FC0417
:102B30001092FB041092FA0408951F920F920FB6A0
:102B40000F9211240F931F932F933F934F935F93F3
:102B50006F937F938F939F93AF93BF93CF93DF93A5
:102B6000EF93FF9320918600309187008091F804C5
:102B70009091F904281B390B809186009091870071
:102B80009093F9048093F804C9018D549440C09146
:102B9000F604D091F704835F9A4158F4249714F017
:102BA00010926B0381E090E09093F7048093F60419
:102BB00062C0CA30D1050CF05EC0C9018B5F904085
:102BC000845B914008F040C0A901425D5140FE0184
:102BD000EE0FFF1FE05DF74F80819181FA01E81B46
:102BE000F90BCF01F7FF03C0909581959F4F069792
:102BF0004CF480915E05883C28F480915E05865FE8
:102C000080935E05FE01EE0FFF1F8F01005D174FE1
:102C1000D8012D913C91C901880F991F820F931FF4
:102C2000840F951F64E070E00E94D448D8018D9114
:102C30009C9111979B01281B390BEA5BF74F31835D
:102C4000208311967C936E93FE013196F093F704E6
:102C5000E093F604E530F10511F45D9A06C05D9845
:102C6000E630F10511F45C9A05C05C98379711F4D1
:102C70005B9A01C05B98FF91EF91DF91CF91BF917B
:102C8000AF919F918F917F916F915F914F913F9104
:102C90002F911F910F910F900FBE0F901F901895BD
:102CA0002F923F924F925F926F927F928F929F925C
:102CB000AF92BF92CF92DF92EF92FF920F931F934A
:102CC000CF93DF93CDB7DEB722970FB6F894DEBF70
:102CD0000FBECDBF8091FE049091FF042091D404DB
:102CE0003091D504821B930B9093D8088093D7081A
:102CF0008091D2049091D3042091FC043091FD0482
:102D0000821B930B9093A7088093A6088091D00410
:102D10009091D1042091FA043091FB04821B930B13
:102D20009093AF088093AE082091D4083091D508D5
:102D30006091D8047091D904882777FD8095982FE9
:102D4000B4E0660F771F881F991FBA95D1F7442703
:102D500037FD4095542F620F731F841F951F22E08B
:102D600030E040E050E00E9409493093D5082093BC
:102D7000D4082091DE083091DF086091D60470916C
:102D8000D704882777FD8095982FA4E0660F771FDA
:102D9000881F991FAA95D1F7442737FD4095542FD6
:102DA000620F731F841F951F22E030E040E050E067
:102DB0000E9409493093DF082093DE082091B7086C
:102DC0003091B8086091DA047091DB04882777FDB0
:102DD0008095982F442737FD4095542F620F731F1D
:102DE000841F951F22E030E040E050E00E94094936
:102DF0003093B8082093B70820911E0530911F0525
:102E000040912005509121058091D8049091D904DA
:102E1000F4E0880F991FFA95E1F7AA2797FDA0958E
:102E2000BA2F820F931FA41FB51F80931E05909386
:102E30001F05A0932005B093210520912205309114
:102E4000230540912405509125058091D604909149
:102E5000D704E4E0880F991FEA95E1F7AA2797FDC8
:102E6000A095BA2F820F931FA41FB51F8093220530
:102E700090932305A0932405B09325056091260522
:102E8000709127058091280590912905E0901808F8
:102E9000F0901908A0900805B0900905C0900A05A7
:102EA000D0900B050E947A473B014C010027F7FCAC
:102EB0000095102FC801B7010E947A47A60195011D
:102EC0000E947A469B01AC01C401B3010E947B467B
:102ED0000E94474760932605709327058093280535
:102EE000909329052091D7083091D808442737FDC1
:102EF0004095542F8091E5089091E608A091E7084D
:102F0000B091E808820F931FA41FB51F8093E508B6
:102F10009093E608A093E708B093E8082091D708BB
:102F20003091D808442737FD4095542F8091B90837
:102F30009091BA08A091BB08B091BC08820F931F72
:102F4000A41FB51F8093B9089093BA08A093BB083B
:102F5000B093BC0820913E0530913F05409140055B
:102F6000509141058091D7089091D808AA2797FDE4
:102F7000A095BA2F820F931FA41FB51F80933E0503
:102F800090933F05A0934005B093410520914205E1
:102F90003091430540914405509145058091D708F3
:102FA0009091D808AA2797FDA095BA2F820F931F5A
:102FB000A41FB51F8093420590934305A093440539
:102FC000B093450520916E052A83222309F069C03C
:102FD00080916F05882309F064C08091660886FFA0
:102FE00060C060912E0570912F0580913005909101
:102FF0003105E090D708F090D808A0907C05BB245C
:10300000CC24DD240027F7FC0095102F20E030E1D0
:1030100040E050E00E940949C801B7010E9495486C
:10302000A60195010E94954820E038E040E050E07C
:103030000E9409492093C7053093C8054093C905EC
:103040005093CA0560913605709137058091380517
:1030500090913905E090D708F090D80820E030E151
:1030600040E050E00E940949CA01B901A60195015A
:103070000E9495480027F7FC0095102FA8019701A2
:103080000E94954820E038E040E050E00E94094965
:103090002093C3053093C4054093C5055093C605DE
:1030A00010C01092C3051092C4051092C50510926D
:1030B000C6051092C7051092C8051092C905109256
:1030C000CA058091A6089091A7082090C705309066
:1030D000C8054090C9055090CA05820D931D909374
:1030E000A7088093A6080091A6081091A708A090B1
:1030F000C305B090C405C090C505D090C6058091A9
:103100007D05682E772488249924C401B301A60183
:1031100095010E94954820E032E040E050E00E9496
:103120000949020F131F1093A7080093A6082091C6
:103130003A0530913B0540913C0550913D05809109
:10314000A6089091A708AA2797FDA095BA2F820FED
:10315000931FA41FB51F80933A0590933B05A0933E
:103160003C05B0933D05409136055091370560917F
:103170003805709139058091A6089091A708209193
:103180006A0530916B05821B930BAA2797FDA095CA
:10319000BA2F840F951FA61FB71F809336059093F3
:1031A0003705A0933805B093390580913605909185
:1031B0003705A0913805B0913905E0908B03F09068
:1031C0008C0300918D0310918E03E816F9060A070F
:1031D0001B0704F580E197E2A0E0B0E08E199F099B
:1031E000A00BB10B8093360590933705A09338055B
:1031F000B09339058091360590913705A091380537
:10320000B091390580933A0590933B05A0933C0516
:10321000B0933D0520913605309137054091380532
:103220005091390588279927DC018E199F09A00B39
:10323000B10B281739074A075B0704F580EF98EDB3
:10324000AFEFBFEFE80EF91E0A1F1B1FE092360515
:10325000F0923705009338051093390580913605B3
:1032600090913705A0913805B091390580933A05C2
:1032700090933B05A0933C05B0933D058091D2040B
:103280009091D3040F9734F488E19CEF9093A708B2
:103290008093A6088091D2049091D304079734F4C8
:1032A00080E398EF9093A7088093A608909100017F
:1032B00099839A30A9F48091D2049091D304835FCA
:1032C000934034F088EE93E09093A7088093A6088B
:1032D0008091D2049091D3048A5F9340DCF014C0B3
:1032E0008091D2049091D304855E974034F088EEAB
:1032F00093E09093A7088093A6088091D2049091C0
:10330000D304835F974034F080ED97E09093A70853
:103310008093A6088091AE089091AF088A199B0906
:103320009093AF088093AE080091AE081091AF085B
:10333000C401B301A20191010E94954820E032E04E
:1033400040E050E00E940949021B130B1093AF08A4
:103350000093AE0820913205309133054091340539
:10336000509135058091AE089091AF08AA2797FD3E
:10337000A095BA2F820F931FA41FB51F809332050B
:1033800090933305A0933405B093350540912E05F5
:1033900050912F0560913005709131058091AE08F4
:1033A0009091AF0820916C0530916D05821B930BB5
:1033B000AA2797FDA095BA2F840F951FA61FB71FA8
:1033C00080932E0590932F05A0933005B09331057F
:1033D00080912E0590912F05A0913005B091310577
:1033E000E0908703F09088030091890310918A038D
:1033F000E816F9060A071B0704F580E197E2A0E04A
:10340000B0E08E199F09A00BB10B80932E0590930D
:103410002F05A0933005B093310580912E05909132
:103420002F05A0913005B09131058093320590931E
:103430003305A0933405B093350520912E053091C6
:103440002F05409130055091310588279927DC01DF
:103450008E199F09A00BB10B281739074A075B0784
:1034600004F580EF98EDAFEFBFEFE80EF91E0A1FED
:103470001B1FE0922E05F0922F050093300510934C
:10348000310580912E0590912F05A0913005B091C6
:1034900031058093320590933305A0933405B093A2
:1034A00035058091D0049091D1040F9734F488E1D0
:1034B0009CEF9093AF088093AE088091D0049091D8
:1034C000D104079734F480E398EF9093AF0880938A
:1034D000AE0899819A30A9F48091D0049091D104DA
:1034E000835F934034F088EE93E09093AF0880932D
:1034F000AE088091D0049091D1048A5F9340DCF0B3
:1035000014C08091D0049091D104855E974034F02E
:1035100088EE93E09093AF088093AE088091D0043A
:103520009091D104835F974034F080ED97E09093C1
:10353000AF088093AE088FEE80937A0080913E05AD
:1035400090913F05A0914005B091410580932A05D7
:1035500090932B05A0932C05B0932D0580912E05FB
:1035600090912F05A0913005B091310580930E0503
:1035700090930F05A0931005B09311058091360527
:1035800090913705A0913805B091390580931605C3
:1035900090931705A0931805B093190580913205F3
:1035A00090913305A0913405B091350580931205B3
:1035B00090931305A0931405B093150580913A05D7
:1035C00090913B05A0913C05B0913D0580931A0573
:1035D00090931B05A0931C05B0931D058091660870
:1035E00087FF63C02A81222309F05FC080916F05A5
:1035F000882309F05AC08091AE089091AF08893CA9
:1036000091055CF02091AE083091AF088091AE0832
:103610009091AF082052334011C08091AE08909134
:10362000AF0888539F4FA4F42091AE083091AF08A3
:103630008091AE089091AF08205E3C4F880F991F93
:10364000880F991F280F391F3093AF082093AE08B9
:103650008091A6089091A708893C91055CF0209183
:10366000A6083091A7088091A6089091A70820523B
:10367000334011C08091A6089091A70888539F4FAE
:10368000A4F42091A6083091A7088091A6089091F3
:10369000A708205E3C4F880F991F880F991F280F9D
:1036A000391F3093A7082093A60820915605309122
:1036B000570580916208E82FF0E0EE0FFF1FE05DF4
:1036C000F74F8081918182599F4F281739071CF449
:1036D0002F5F3F4F0CC08081918182599F4F82178D
:1036E00093074CF42115310531F0215030403093CF
:1036F0005705209356052091580530915905809122
:103700006308E82FF0E0EE0FFF1FE05DF74F8081C8
:10371000918182599F4F281739071CF42F5F3F4F23
:103720000CC08081918182599F4F821793074CF47E
:103730002115310531F02150304030935905209347
:10374000580520915A0530915B0580916408E82F57
:10375000F0E0EE0FFF1FE05DF74F8081918182590D
:103760009F4F281739071CF42F5F3F4F0CC08081F3
:10377000918182599F4F821793074CF4211531058F
:1037800031F02150304030935B0520935A05209151
:103790005C0530915D0580916508E82FF0E0EE0F43
:1037A000FF1FE05DF74F8081918182599F4F28175D
:1037B00039071CF42F5F3F4F0CC0808191818259E3
:1037C0009F4F821793074CF42115310531F021509A
:1037D000304030935D0520935C05809156059091B3
:1037E000570597FF05C010925705109256050AC05D
:1037F0008F3F910539F034F08FEF90E090935705AB
:1038000080935605809158059091590597FF05C002
:1038100010925905109258050AC08F3F910539F052
:1038200034F08FEF90E09093590580935805809184
:103830005A0590915B0597FF05C010925B051092A9
:103840005A050AC08F3F910539F034F08FEF90E0B0
:1038500090935B0580935A0580915C0590915D057E
:1038600097FF05C010925D0510925C050AC08F3F5E
:10387000910539F034F08FEF90E090935D058093DF
:103880005C0522960FB6F894DEBF0FBECDBFDF9168
:10389000CF911F910F91FF90EF90DF90CF90BF904D
:1038A000AF909F908F907F906F905F904F903F90E0
:1038B0002F90089510927A008091D0049091D104B5
:1038C0009093AF088093AE088091D2049091D30476
:1038D0009093A7088093A6088091D4049091D50472
:1038E0009093D8088093D7088091D8049091D904F8
:1038F000AA2797FDA095BA2F74E0880F991FAA1FD9
:10390000BB1F7A95D1F79093D5088093D408809106
:10391000D6049091D704AA2797FDA095BA2F64E00A
:10392000880F991FAA1FBB1F6A95D1F79093DF08D4
:103930008093DE088091DA049091DB049093B808BC
:103940008093B7088FEE80937A00209156053091CE
:10395000570580916208E82FF0E0EE0FFF1FE05D51
:10396000F74F8081918182599F4F281739071CF4A6
:103970002F5F3F4F0CC08081918182599F4F8217EA
:1039800093074CF42115310531F02150304030932C
:10399000570520935605209158053091590580917F
:1039A0006308E82FF0E0EE0FFF1FE05DF74F808126
:1039B000918182599F4F281739071CF42F5F3F4F81
:1039C0000CC08081918182599F4F821793074CF4DC
:1039D0002115310531F021503040309359052093A5
:1039E000580520915A0530915B0580916408E82FB5
:1039F000F0E0EE0FFF1FE05DF74F8081918182596B
:103A00009F4F281739071CF42F5F3F4F0CC0808150
:103A1000918182599F4F821793074CF421153105EC
:103A200031F02150304030935B0520935A052091AE
:103A30005C0530915D0580916508E82FF0E0EE0FA0
:103A4000FF1FE05DF74F8081918182599F4F2817BA
:103A500039071CF42F5F3F4F0CC080819181825940
:103A60009F4F821793074CF42115310531F02150F7
:103A7000304030935D0520935C0580915605909110
:103A8000570597FF05C010925705109256050AC0BA
:103A90008F3F910539F034F08FEF90E09093570508
:103AA00080935605809158059091590597FF05C060
:103AB00010925905109258050AC08F3F910539F0B0
:103AC00034F08FEF90E090935905809358058091E2
:103AD0005A0590915B0597FF05C010925B05109207
:103AE0005A050AC08F3F910539F034F08FEF90E00E
:103AF00090935B0580935A0580915C0590915D05DC
:103B000097FF05C010925D0510925C050AC08F3FBB
:103B1000910539F034F08FEF90E090935D0580933C
:103B20005C056091890870E080E090E024EC39E069
:103B300040E050E00E9495486093870370938803AB
:103B40008093890390938A0360938B0370938C0313
:103B500080938D0390938E030895809169088B3F25
:103B600098F08B3F19F4809156050EC08C3F19F4E4
:103B70008091580509C08D3F19F480915A0504C001
:103B80008E3F21F480915C0580939403809194038F
:103B9000882319F41092940304C08F3F11F480938A
:103BA0009403809168088B3F98F08B3F19F48091C3
:103BB00056050EC08C3F19F48091580509C08D3F01
:103BC00019F480915A0504C08E3F21F480915C0560
:103BD0008093930380919303882319F410929303A5
:103BE00005C0843618F084E68093930380916A08B8
:103BF0008B3F98F08B3F19F4809156050EC08C3F97
:103C000019F48091580509C08D3F19F480915A0527
:103C100004C08E3F21F480915C05809395038091D0
:103C20009503882319F41092950305C0843618F083
:103C300084E68093950380916C088B3F98F08B3FCE
:103C400019F4809156050EC08C3F19F480915805E7
:103C500009C08D3F19F480915A0504C08E3F21F4AC
:103C600080915C058093960380919603882319F4D4
:103C70001092960304C08F3F11F4809396038091B5
:103C800073088B3F98F08B3F19F4809156050EC056
:103C90008C3F19F48091580509C08D3F19F480912B
:103CA0005A0504C08E3F21F480915C0580939703F0
:103CB00080919703882319F41092970304C08F3FD3
:103CC00011F480939703809174088B3F98F08B3F99
:103CD00019F4809156050EC08C3F19F48091580557
:103CE00009C08D3F19F480915A0504C08E3F21F41C
:103CF00080915C0580939803809198038B3010F439
:103D00008AE002C08F3F11F4809398038091750878
:103D10008B3F98F08B3F19F4809156050EC08C3F75
:103D200019F48091580509C08D3F19F480915A0506
:103D300004C08E3F21F480915C05809399038091AB
:103D40009903882319F41092990304C08F3F11F44A
:103D50008093990380917A088B3F98F08B3F19F4F8
:103D6000809156050EC08C3F19F48091580509C00A
:103D70008D3F19F480915A0504C08E3F21F4809143
:103D80005C0580939B0380919B03882319F4109218
:103D90009B0304C08F3F11F480939B0380917B08A9
:103DA0008B3F98F08B3F19F4809156050EC08C3FE5
:103DB00019F48091580509C08D3F19F480915A0576
:103DC00004C08E3F21F480915C058093740580913E
:103DD0007405882319F41092740504C08F3F11F400
:103DE0008093740580917C088B3F98F08B3F19F489
:103DF000809156050EC08C3F19F48091580509C07A
:103E00008D3F19F480915A0504C08E3F21F48091B2
:103E10005C058093750580917505882319F41092CF
:103E2000750504C08F3F11F48093750580917D085E
:103E30008B3F98F08B3F19F4809156050EC08C3F54
:103E400019F48091580509C08D3F19F480915A05E5
:103E500004C08E3F21F480915C05809376058091AB
:103E60007605882319F41092760504C08F3F11F46B
:103E70008093760580917E088B3F98F08B3F19F4F4
:103E8000809156050EC08C3F19F48091580509C0E9
:103E90008D3F19F480915A0504C08E3F21F4809122
:103EA0005C058093770580917705882319F410923B
:103EB000770504C08F3F11F48093770580918E08B9
:103EC0008B3F98F08B3F19F4809156050EC08C3FC4
:103ED00019F48091580509C08D3F19F480915A0555
:103EE00004C08E3F21F480915C0580937805809119
:103EF0007805882319F41092780504C08F3F11F4D7
:103F00008093780580918F088B3F98F08B3F19F450
:103F1000809156050EC08C3F19F48091580509C058
:103F20008D3F19F480915A0504C08E3F21F4809191
:103F30005C058093790580917905882319F41092A6
:103F4000790504C08F3F11F4809379058091900822
:103F50008B3F98F08B3F19F4809156050EC08C3F33
:103F600019F48091580509C08D3F19F480915A05C4
:103F700004C08E3F21F480915C0580937A05809186
:103F80007A05882319F410927A0504C08F3F11F442
:103F900080937A05809191088B3F98F08B3F19F4BC
:103FA000809156050EC08C3F19F48091580509C0C8
:103FB0008D3F19F480915A0504C08E3F21F4809101
:103FC0005C0580937B0580917B05882319F4109212
:103FD0007B0504C08F3F11F480937B0580917F089F
:103FE0008B3F98F08B3F19F4809156050EC08C3FA3
:103FF00019F48091580509C08D3F19F480915A0534
:1040000004C08E3F21F480915C0580939C038091D5
:104010009C03882319F410929C0304C08F3F11F471
:1040200080939C03809184088B3F98F08B3F19F418
:10403000809156050EC08C3F19F48091580509C037
:104040008D3F19F480915A0504C08E3F21F4809170
:104050005C0580939D0380919D03882319F4109241
:104060009D0304C08F3F11F480939D0380918708C6
:104070008B3F98F08B3F19F4809156050EC08C3F12
:1040800019F48091580509C08D3F19F480915A05A3
:1040900004C08E3F21F480915C0580937C05809163
:1040A0007C05882319F410927C0504C08F3F11F41D
:1040B00080937C05809188088B3F98F08B3F19F4A2
:1040C000809156050EC08C3F19F48091580509C0A7
:1040D0008D3F19F480915A0504C08E3F21F48091E0
:1040E0005C0580937D0580917D05882319F41092ED
:1040F0007D0504C08F3F11F480937D0580918D086C
:104100008B3F98F08B3F19F4809156050EC08C3F81
:1041100019F48091580509C08D3F19F480915A0512
:1041200004C08E3F21F480915C0580939E038091B2
:104130009E03882319F410929E0304C08F3F11F44C
:1041400080939E0360919B0370E080E090E00E946A
:10415000CD4427E137EB41ED58E30E9432486093AC
:104160008F037093900380939103909392038091B7
:1041700071088093D608809170088093B0080895E4
:104180001F93182F0EC080916505882361F484E683
:1041900090E09093C5048093C4048AEF90E00E945D
:1041A000690D115080F71F9108958091650588234E
:1041B00001F51092AD081092A8081092CD08109247
:1041C000D1088091AE04882311F08093A8088091D3
:1041D000AF04882311F08093AD088091B004882348
:1041E00011F08093D1088091B104882311F080935D
:1041F000CD088091A80890E09093EE078093ED079A
:104200008091AD0890E09093F0078093EF07809144
:10421000D10890E09093F2078093F1078091CD0848
:1042200090E09093F4078093F3071092F3041092B8
:10423000F4040E94BD140895469A10920505109248
:104240000405109207051092060580E090E0A0E0BA
:10425000B0E08093080590930905A0930A05B093F8
:104260000B051092FB041092FA041092FD041092B8
:10427000FC041092FF041092FE0410927C05109230
:104280007D050E945A1C84E690E00E944C0D0E941D
:104290005A1C8091660880FF10C080910E03909197
:1042A0000F03875B934038F480910E0390910F03C6
:1042B0008E5E924010F40E9420108091D004909164
:1042C000D1049093FB048093FA048091D2049091DE
:1042D000D3049093FD048093FC048091D4049091C6
:1042E000D5049093FF048093FE048091FC04909188
:1042F000FD0490930105809300058091FA0490914C
:10430000FB04909303058093020544E050E0DA013A
:104310000E945B49802D853038F18091DE089091B4
:10432000DF0897FF03C0909581959F4F60E170E093
:104330000E94D44870930705609306058091D408C5
:104340009091D50897FF03C0909581959F4F60E1AC
:1043500070E00E94D4487093050560930405609155
:1043600018087091190839C0DA010E945B49802D44
:104370004F5F5F4FDA010E945B49202D90E0982F3C
:104380008827820F911D90930505809304054F5F48
:104390005F4FDA010E945B49802D4F5F5F4FDA016A
:1043A0000E945B49202D90E0982F8827820F911D55
:1043B00090930705809306054F5F5F4FDA010E94D7
:1043C0005B49602D4F5F5F4FDA010E945B49202DF2
:1043D00070E0762F6627620F711D882777FD809524
:1043E000982F0E947A47609308057093090580937F
:1043F0000A0590930B0510922E0510922F0510922E
:10440000300510923105109232051092330510924A
:10441000340510923505109236051092370510922A
:1044200038051092390510923A0510923B0510920A
:104430003C0510923D0510923E0510923F051092EA
:104440004005109241051092AF081092AE081092EC
:10445000A7081092A6081092D8081092D7081092B8
:10446000B9081092BA081092BB081092BC0880914B
:104470000A0390910B03A0910C03B0910D0390934C
:104480001B0880931A081092E3041092E204109221
:1044900046051092470510924805109249058091F3
:1044A0004A0590914B0590934D0580934C050E94D1
:1044B000A63A82E390E09093C5048093C40460918F
:1044C000890870E080E090E024EC39E040E050E0C2
:1044D0000E949548609387037093880380938903B3
:1044E00090938A0360918A0870E080E090E00E94D7
:1044F000954860938B0370938C0380938D03909306
:104500008E031092A00310929F0320914A053091D0
:104510004B0584E195E0AC01249FC001259F900DDF
:10452000349F900D1124AA2797FDA095BA2F809350
:10453000E5089093E608A093E708B093E8088EE1B9
:1045400090E09093CE058093CD059093CC05809319
:10455000CB05089581E080935E0852E050935F0898
:1045600043E04093600874E07093610865E06093F5
:10457000620886E08093630887E08093640898E08F
:104580009093650880EC809366088EE180936708BD
:104590008BEF809369083AE030936A0822E3209316
:1045A000680820936C0850936B0840936D08109234
:1045B0006E0890936F088FE0809370088AEF809365
:1045C00071088AE18093720880E88093730888EC10
:1045D000809374088FEA8093750894E69093760828
:1045E0008FE5809377088CE38093780810927908A0
:1045F00030937A0880E580937B0810927C081092B3
:104600007D0810927E0810928E0810928F081092EA
:1046100090081092910890937F0888E28093800818
:10462000109293082093810886E980938208609312
:104630008308209384088AE5809385082093860860
:104640001092920890938708309388089093890875
:1046500090938A0890938B0870938C0820938D0810
:10466000A8E9B8E0ECE6F3E08CE001900D9281500F
:10467000E1F7089581E080935E0892E090935F08EF
:1046800083E08093600844E04093610855E05093D4
:10469000620886E08093630887E08093640888E07E
:1046A0008093650880E4809366088EE180936708B4
:1046B0008BEF809369083AE030936A0822E32093F5
:1046C000680820936C0890936B0840936D081092D3
:1046D0006E0830936F088FE0809370088AEF8093A4
:1046E00071088AE18093720880E8809373088FEAEA
:1046F000809374088093750894E6909376088FE50C
:10470000809377088CE3809378081092790880E290
:1047100080937A0880E580937B0810927C08109241
:104720007D0810927E0810928E0810928F081092C9
:1047300090081092910890937F0888E280938008F7
:10474000109293082093810886E980938208509301
:104750008308209384088AE580938508209386083F
:104760001092920890938708309388089093890854
:1047700090938A0890938B0840938C088BE48093E5
:104780008D08A8E9B8E0E6E7F3E08CE001900D922F
:104790008150E1F7089581E080935E0882E0809384
:1047A0005F0893E09093600844E04093610875E0EF
:1047B0007093620886E08093630887E080936408C2
:1047C00088E08093650880E4809366088EE180939A
:1047D00067088BEF809369086AE060936A0822E3B8
:1047E0002093680820936C0840936B0890936D08A1
:1047F00040936E088EE080936F088FE0809370087E
:104800008AEF809371088AE18093720880E8809330
:10481000730888E78093740856E95093750894E606
:10482000909376088FE5809377088CE380937808DF
:104830001092790880E280937A083AE530937B08F9
:1048400088E180937C0882E880937D0810927E083E
:1048500010928E0810928F08109290081092910872
:1048600090937F0888E280938008109293082093A9
:1048700081085093820870938308209384083093B2
:104880008508209386081092920890938708609379
:1048900088089093890890938A0820938B08409306
:1048A0008C0890938D08A8E9B8E0EEE7F3E08CE07F
:1048B00001900D928150E1F708952F923F924F920F
:1048C0005F926F927F928F929F92AF92BF92CF92A0
:1048D000DF92EF92FF920F931F93CF93DF93CDB7A9
:1048E000DEB766970FB6F894DEBF0FBECDBF0E944D
:1048F000501680915C0990915D09009729F001970D
:1049000090935D0980935C090E94503B892B39F498
:10491000809100018A3011F4289A01C02898299AC0
:10492000E0916008F0E0EE0FFF1FE05DF74F0081BF
:1049300011818091D60890E0449708581F4F801746
:1049400091070CF48C0120910803309109038091A8
:10495000760890E002974091840550918505821772
:104960009307C4F123E0493E520724F110928505D4
:10497000109284058090CB059090CC052091CD05B8
:104980003091CE05C901880F991F820F931F880FA0
:10499000991F880F991F6FE070E00E94D448681536
:1049A000790574F40894810891089092CC0580925E
:1049B000CB0506C04F5F5F4F50938505409384053C
:1049C0008091CB059091CC05801791070CF03FC0EA
:1049D0008C013DC033E0493E5307C4F08091CD05C2
:1049E0009091CE059C0143E0220F331F4A95E1F7D9
:1049F000280F391FC801820F931F6AE070E00E94E0
:104A0000D4487093CE056093CD0519C0CA010196B4
:104A100090938505809384056AE070E00E94D448F5
:104A2000892B89F48091CB059091CC058017910753
:104A300034F401969093CC058093CB0504C0109379
:104A4000CC050093CB050091CB051091CC051A83C2
:104A5000098317FF02C01A82198280915E0584368D
:104A600008F05DC080910301882399F480910403CC
:104A7000909105038F5F9F4F61F488E99AE39093CB
:104A8000C5048093C40480E09CE090930503809368
:104A900004038091A5059091A605009731F0019738
:104AA0009093A6058093A50504C010926505109209
:104AB0005005809100018A3011F4289A01C028988D
:104AC0008091A0059091A105815D974028F180918A
:104AD0007708682F70E07A83698381E080935005BE
:104AE000E0915E08F0E0EE0FFF1FE05DF74F1182EE
:104AF0001082E0915F08F0E0EE0FFF1FE05DF74FDE
:104B000011821082E0916108F0E0EE0FFF1FE05D7E
:104B1000F74F118210826EC2109265056BC28091B0
:104B20005E058D3808F466C21092500580917808B1
:104B300022E3829FC00111249093A6058093A505CE
:104B400089819A8189976CF08091A0059091A10547
:104B5000AFEF8F3F9A0729F001969093A1058093BC
:104B6000A0058091A0059091A105883C910520F0B9
:104B7000E981FA81B89704F51092BF051092C0053B
:104B80001092C1051092C2051092BB051092BC058F
:104B90001092BD051092BE0510923E0510923F0581
:104BA0001092400510924105109242051092430563
:104BB000109244051092450529813A81293C31051E
:104BC0000CF472C180916505882309F013C28091AD
:104BD0006108E82FF0E0EE0FFF1FE05DF74F8081E6
:104BE00091818C3491050CF4D5C08091A4058F5F20
:104BF0008093A405893C08F4FDC129980E941C21DA
:104C0000109265051092A4051092A1051092A005BE
:104C100080915E08282F30E0F901EE0FFF1FE05D64
:104C2000F74F80819181873491059CF4E0915F0872
:104C3000F0E0EE0FFF1FE05DF74F0190F081E02DF7
:104C4000F7FF03C0F095E195FF4FE734F1050CF451
:104C50006CC080915F08682F70E0DB01AA0FBB1F5A
:104C6000A05DB74F8D919C911197873491053CF0D1
:104C7000F901EE0FFF1FE05DF74F808191818D916B
:104C80009C918734910564F0F901EE0FFF1FE05D00
:104C9000F74F808191818734910514F042E001C083
:104CA00041E0FB01EE0FFF1FE05DF74F8081918136
:104CB000863491055CF4F901EE0FFF1FE05DF74FBC
:104CC00080819181873491050CF043E0FB01EE0F68
:104CD000FF1FE05DF74F808191818A5B9F4F5CF4FD
:104CE000F901EE0FFF1FE05DF74F8081918187345E
:104CF00091050CF044E0660F771F605D774FDB0194
:104D00008D919C918A5B9F4F5CF4220F331F205D35
:104D1000374FF90180819181863491050CF445E08B
:104D2000A2E0B0E0042E0E9463490E948B0247E497
:104D30006EE578E00E94B2020E948B020E94C020C1
:104D40008091660880FF10C080910E0390910F0340
:104D5000875B934038F480910E0390910F038E5E31
:104D6000924010F40E9420100E94A33B80913E09C3
:104D7000882309F43FC188EE93E00E94690D88EE14
:104D800093E09093C5048093C40484EF91E00E9463
:104D9000690D30C180819181855B9F4F0CF081C08E
:104DA0008091A4058F5F8093A405893C08F422C1FB
:104DB00029988FEF04E010E0D801082E0E94634983
:104DC000109265051092A4051092A1051092A005FD
:104DD0000E941C21809104059091050560E071E01E
:104DE0000E94D448D801062E0E9463498091040590
:104DF0009091050560E071E00E94D4480F5F1F4F5D
:104E0000D801082E0E9463498091060590910705FC
:104E100060E071E00E94D4480F5F1F4FD801062E5A
:104E20000E946349809106059091070560E071E05A
:104E30000E94D4480F5F1F4FD801082E0E9463497B
:104E4000609108057091090580910A0590910B0504
:104E50000E944747DC01CB0160E071E00E94D4482A
:104E60000F5F1F4FD801062E0E946349609108050D
:104E70007091090580910A0590910B050E944747A2
:104E8000DC01CB0160E071E00E94D4480F5F1F4F4E
:104E9000D801082E0E9463490E948B020E94C02004
:104EA000A9C01092A405A6C0E981FA81B3970CF0BD
:104EB000A1C0E0916108F0E0EE0FFF1FE05DF74F49
:104EC00080819181855B9F4F0CF072C08091A3051A
:104ED0008F5F8093A305893C08F46CC0469A88ECE8
:104EE0008093A30581E090E09093A1058093A005B5
:104EF00081E0809365051092B7051092B805109275
:104F0000B9051092BA0510923E0510923F05109215
:104F100040051092410510924205109243051092EF
:104F200044051092450510922E0510922F051092FF
:104F30003005109231051092360510923705109207
:104F400038051092390580910E0590910F05A091BA
:104F50001005B09111058093320590933305A0930D
:104F60003405B09335058091160590911705A091F1
:104F70001805B091190580933A0590933B05A093CD
:104F80003C05B0933D051092BF051092C0051092EC
:104F9000C1051092C2051092BB051092BC0510927B
:104FA000BD051092BE0580E090E00E94F83C02C072
:104FB0001092A305E0916108F0E0EE0FFF1FE05DA5
:104FC000F74F808191818C34910594F08091A205F6
:104FD0008F5F8093A205893C68F046981092650522
:104FE00088EC8093A2051092A1051092A00502C042
:104FF0001092A20580916B03815080936B03809186
:105000006B038F3F29F080915005882309F429C351
:105010000E94AD1D80915E08682E7724D301AA0FEF
:10502000BB1FCD01805D974FFC01808191819A8BE0
:10503000898B80916D08E82EFF24AA5BB74F0D90F5
:10504000BC91A02DBC8BAB8B80916E08C82EDD244B
:1050500080915F08882E9924C401880F991FDC0174
:10506000A05DB74F0D90BC91A02DB88BAF878A5B28
:10507000974FDC01AD90BC90E0916108AE2FB0E09D
:10508000AA0FBB1FA05DB74F0D90BC91A02DBE878E
:10509000AD876091980370E080E090E00E94CD447D
:1050A00020E030E040E251E40E947B4620E030E026
:1050B00040E85BE30E9432481B012C016093D90851
:1050C0007093DA088093DB089093DC086091990371
:1050D00070E080E090E00E94CD4420E030EE4BE2B2
:1050E00057E40E94DF466093C9087093CA08809312
:1050F000CB089093CC082091B304222331F08AE0AE
:1051000090E09093C5048093C404E22F22FF09C06D
:1051100080917405482F50E0440F551F440F551FD0
:1051200010C023FD03C040E050E00BC08091740527
:1051300090E0880F991F880F991F44275527481B17
:10514000590B20917E0530917F05C90113E0880F2E
:10515000991F1A95E1F7821B930B840F951F68E046
:1051600070E00E94D4488B0170937F0560937E05A8
:10517000E4FF09C080917405482F50E0440F551F8B
:10518000440F551F10C0E5FD03C040E050E00BC0C8
:105190008091740590E0880F991F880F991F44270C
:1051A0005527481B590B80918005909181059C01E2
:1051B000F3E0220F331FFA95E1F7281B390BCA01E0
:1051C000820F931F68E070E00E94D4487E8B6D8B45
:1051D00070938105609380058091B204282F83FF2E
:1051E00003C082E390E004C082FF07C08EEC9FEF13
:1051F000909383058093820504C0109283051092DA
:10520000820521FF09C080919F039091A003019620
:105210009093A00380939F0324FF09C080919F0374
:105220009091A00301979093A00380939F032B89F3
:105230003C892C9DF0012D9DF00D3C9DF00D11241D
:1052400049895A894E9DC0014F9D900D5E9D900DDC
:105250001124E80FF91FC80168E070E00E94D448EB
:10526000E60FF71FFC8BEB8BF0936005E0935F0577
:10527000AC9C8001AD9C100DBC9C100D11246F8561
:1052800078896E9DC0016F9D900D7E9D900D1124BB
:10529000080F191F8D899E8968E070E00E94D4482C
:1052A000060F171F10936205009361058091820518
:1052B00090918305AD85BE858A1B9B0B90936405F9
:1052C000809363058091660882FF0CC080E090E0C7
:1052D000A0E0B0E08093C9089093CA08A093CB08DF
:1052E000B093CC0820E030E040E050E0C201B101D2
:1052F0000E94B547882364F480E090E0A0E0B0E02D
:105300008093D9089093DA08A093DB08B093DC0867
:1053100020E030E040E050E06091C9087091CA0898
:105320008091CB089091CC080E94B547882364F403
:1053300080E090E0A0E0B0E08093C9089093CA08B4
:10534000A093CB08B093CC0880919208682F70E0AE
:10535000E4E04E2E512C4622572282FDC4C083FD2C
:10536000C2C080910E0590910F05A0911005B091DB
:10537000110581569A4EA040B040E4F0C70173E099
:10538000880F991F7A95E1F72B893C89281B390BE7
:105390003093600520935F0580910E0590910F0575
:1053A000A0911005B091110581589843A140B040DB
:1053B000ACF128C080910E0590910F05A0911005C9
:1053C000B0911105805A9541AF4FBF4F3CF5970101
:1053D00053E0220F331F5A95E1F74B895C89240F64
:1053E000351F3093600520935F0580910E059091E5
:1053F0000F05A0911005B091110581589843A14067
:10540000B04064F0C70144E0880F991F4A95E1F766
:10541000281B390B3093600520935F05809116059A
:1054200090911705A0911805B091190581569A4ED3
:10543000A040B0403CF1C701B3E0880F991FBA9576
:10544000E1F7F801E81BF90BF0936205E0936105C1
:105450008091160590911705A0911805B091190536
:1054600081589843A140B0400CF43DC0A4E0EE0C3C
:10547000FF1CAA95E1F7EE19FF09F0936205E0938E
:10548000610531C08091160590911705A09118050E
:10549000B0911905805A9541AF4FBF4F24F5970140
:1054A00073E0220F331F7A95E1F7200F311F3093FD
:1054B0006205209361058091160590911705A091D2
:1054C0001805B091190581589843A140B0405CF08F
:1054D00054E0EE0CFF1C5A95E1F72E193F0930936A
:1054E000620520936105F401EE0FFF1FE05DF74FA9
:1054F0002081318180918508482F50E04217530761
:1055000034F4452821F081E08093700511C0F40146
:10551000EE0FFF1FE05DF74F2081318180918608FB
:10552000DA01A81BB1092A173B0714F41092700581
:10553000F401EE0FFF1FE05DF74F80819181AA27F4
:10554000BB27A41BB50B8A179B0734F463FF04C069
:1055500081E08093710517C080917105882399F0CF
:10556000880C991CE0E3F8E08E0E9F1EF401208168
:1055700031818091860890E0841B950B82179307F8
:1055800014F410927105F301EE0FFF1FE05DF74F69
:10559000808191814817590734F460FF04C081E08D
:1055A0008093730515C080917305882389F0F301FA
:1055B000EE0FFF1FE05DF74F20813181809186085B
:1055C000FA01E81BF1092E173F0714F41092730536
:1055D000F301EE0FFF1FE05DF74F808191818A1785
:1055E0009B0734F461FF04C081E08093720517C00B
:1055F00080917205882399F0660C771C20E338E0CF
:10560000620E731ED3012D913C918091860890E02B
:10561000841B950B8217930714F4109272058091E6
:105620007005882321F480917105882321F081E0A1
:1056300080936F0502C010926F05809173058823D7
:1056400021F480917205882351F081E080936E05EA
:1056500010926F05109270051092710502C01092A1
:105660006E0580916F05882311F40C94833A84E6CB
:1056700090E09093C5048093C4048091840890E0E6
:10568000E981FA818E179F0714F49A8389838091A8
:105690005005882341F11092640510926305109221
:1056A000600510925F0510926205109261058DEC05
:1056B0009CECACECBDE38093D9089093DA08A093FE
:1056C000DB08B093DC088AE097EDA3EABBE38093A4
:1056D000C9089093CA08A093CB08B093CC08109245
:1056E0006F0510926E052091BF083091C00840915F
:1056F000C1085091C20880910E0590910F05A091AC
:105700001005B0911105820F931FA41FB51F809340
:10571000BF089093C008A093C108B093C20820911D
:10572000C3083091C4084091C5085091C6088091C3
:10573000160590911705A0911805B0911905820FD3
:10574000931FA41FB51F8093C3089093C408A09310
:10575000C508B093C6082091B3083091B4084091B1
:10576000B5085091B6088091120590911305A0914B
:105770001405B0911505820F931FA41FB51F8093C8
:10578000B3089093B408A093B508B093B6082091DD
:10579000A9083091AA084091AB085091AC088091BB
:1057A0001A0590911B05A0911C05B0911D05820F53
:1057B000931FA41FB51F8093A9089093AA08A093D4
:1057C000AB08B093AC0850906E05552029F4809139
:1057D0006F05882309F45FC010921E0510921F0503
:1057E0001092200510922105109222051092230597
:1057F00010922405109225051092BF081092C0083F
:105800001092C1081092C2081092C3081092C408E6
:105810001092C5081092C6081092B3081092B408EE
:105820001092B5081092B6081092A9081092AA0812
:105830001092AB081092AC0880912E0590912F0524
:10584000A0913005B09131058093320590933305D6
:10585000A0933405B09335058091360590913705B6
:10586000A0913805B091390580933A0590933B0596
:10587000A0933C05B0933D051092E5041092E4041A
:1058800010926D0510926C0510926B0510926A05CE
:10589000552009F0A7C080916F05882309F0A2C0A8
:1058A00060910E0570910F05809110059091110582
:1058B000A0907208BB24CC24DD24E090D408F090A2
:1058C000D508A60195010E9409490027F7FC00951B
:1058D000102F2E193F09400B510BCA01B90120E1CD
:1058E00030E040E050E00E94094939014A016091EE
:1058F0001605709117058091180590911905E09093
:10590000DE08F090DF08A60195010E9409490027F2
:10591000F7FC0095102F2E193F09400B510BCA01BF
:10592000B90120E130E040E050E00E940949F1E295
:105930006F1671048104910434F0F0E26F2E712C23
:10594000812C912C11C060EE66166FEF76066FEF1A
:1059500086066FEF960644F4E0EE6E2EEFEF7E2E95
:10596000EFEF8E2EEFEF9E2E2132310541055105CE
:105970002CF020E230E040E050E00CC0203E7FEF11
:1059800037077FEF47077FEF570724F420EE3FEFFD
:105990004FEF5FEF80912E0590912F05A09130057C
:1059A000B091310586199709A809B90980932E0588
:1059B00090932F05A0933005B09331058091360563
:1059C00090913705A0913805B0913905821B930B52
:1059D000A40BB50B8093360590933705A09338053B
:1059E000B09339058091E4049091E5048F3F9105CF
:1059F00009F008F4B6C4552009F037C480916F054A
:105A0000882309F032C46091BF087091C00880916A
:105A1000C1089091C20820E031E040E050E00E94CF
:105A200009492093BF083093C0084093C1085093A0
:105A3000C2086091C3087091C4088091C508909114
:105A4000C60820E031E040E050E00E940949209380
:105A5000C3083093C4084093C5085093C608E0902B
:105A60007208FF2400E010E020911E0530911F0510
:105A70004091200550912105C801B7010E94954829
:105A800020E031E040E050E00E94094920931E05EB
:105A900030931F0540932005509321052091220546
:105AA000309123054091240550912505C801B70187
:105AB0000E94954820E031E040E050E00E94094912
:105AC0002093220530932305409324055093250508
:105AD00060912605709127058091280590912905F0
:105AE00020E031E040E050E00E9409492093260583
:105AF0003093270540932805509329056091BF08EE
:105B00007091C0088091C1089091C20820911E0533
:105B100030911F054091200550912105E0908B08A0
:105B2000FF2400E010E0621B730B840B950BA801AF
:105B300097010E9409492093980530939905409355
:105B40009A0550939B05CA01B90120E031E040E07D
:105B500050E00E940949690130936D0520936C055E
:105B60006091C3087091C4088091C5089091C608DF
:105B7000209122053091230540912405509125055F
:105B8000621B730B840B950BA80197010E940949B6
:105B9000CA01B90120E031E040E050E00E9409492B
:105BA000290130936B0520936A056091B3087091C9
:105BB000B4088091B5089091B60820E031E040E04B
:105BC00050E00E9409492093B3083093B4084093F1
:105BD000B5085093B6086091A9087091AA08809101
:105BE000AB089091AC0820E031E040E050E00E942A
:105BF00009492093A9083093AA084093AB08509311
:105C0000AC08609012057090130580901405909078
:105C1000150580910E0590910F05A0911005B0918A
:105C20001105681A790A8A0A9B0A6092B305709274
:105C3000B4058092B5059092B605E0901A05F090F3
:105C40001B0500911C0510911D0580911605909172
:105C50001705A0911805B0911905E81AF90A0A0B61
:105C60001B0BE092AF05F092B0050093B1051093C5
:105C7000B2056092AB057092AC058092AD05909232
:105C8000AE05E092A705F092A8050093A905109330
:105C9000AA058091320590913305A0913405B09109
:105CA000350586199709A809B9098093320590939B
:105CB0003305A0933405B093350580913A05909152
:105CC0003B05A0913C05B0913D058E199F09A00BA5
:105CD000B10B80933A0590933B05A0933C05B0939C
:105CE0003D058091E5089091E608A091E708B09104
:105CF000E8088032E4E29E07E7E0AE07E0E0BE0796
:105D000064F080529442A740B0408093E50890939D
:105D1000E608A093E708B093E8088091E508909121
:105D2000E608A091E708B091E808B7FF0CC0805ED4
:105D30009B4DA84FBF4F8093E5089093E608A09332
:105D4000E708B093E808809100018A3011F42898A0
:105D500001C0289A81E090E090939305809392058A
:105D60008091BF089091C008A091C108B091C2086D
:105D700020918A0530918B0540918C0550918D05BD
:105D8000281B390B4A0B5B0B57FF07C050954095FA
:105D9000309521953F4F4F4F5F4F20523E4440403A
:105DA00050400CF0B9C021E0621620E1720620E0FC
:105DB000820620E092060CF44EC080919105882363
:105DC00009F445C0D401C3017CE0B595A79597952A
:105DD00087957A95D1F701969093930580939205D4
:105DE000D401C30163E0B595A795979587956A950A
:105DF000D1F78093980590939905A0939A05B09355
:105E00009B0589589341A040B04064F088E893E135
:105E1000A0E0B0E08093980590939905A0939A052F
:105E2000B0939B05609198057091990580919A05B2
:105E300090919B0520E031E040E050E00E9409494C
:105E4000C20ED31ED0926D05C0926C0562C081E077
:105E5000809391055EC01092910540E0641640EF7A
:105E600074064FEF84064FEF94060CF052C08091F9
:105E70009005882309F449C088279927DC018619F1
:105E80009709A809B9095CE0B595A79597958795F5
:105E90005A95D1F701969093930580939205C4018A
:105EA000B30128E030E040E050E00E94094920932F
:105EB00098053093990540939A0550939B05285770
:105EC0003C4E4F4F5F4F64F488E79CEEAFEFBFEF5F
:105ED0008093980590939905A0939A05B0939B059C
:105EE000609198057091990580919A0590919B0514
:105EF00020E031E040E050E00E940949C20ED31E8C
:105F0000D0926D05C0926C050BC081E08093900526
:105F100007C01092900504C010929305109292054C
:105F20008091D4089091D5082091DE083091DF0847
:105F300097FF03C0909581959F4F843691050CF093
:105F400046C0C90137FF03C0909581959F4F8436A5
:105F50009105ECF580918C08282F30E08091920516
:105F6000909193052817390724F4309393052093D3
:105F7000920571E0671674E0770670E0870670E0BE
:105F8000970674F08091FA049091FB042091920599
:105F900030919305820F931F9093FB048093FA0432
:105FA00080E068168CEF78068FEF88068FEF9806F2
:105FB00074F48091FA049091FB0420919205309141
:105FC0009305821B930B9093FB048093FA0481E06A
:105FD00090E090939305809392051092940510920F
:105FE000950510929605109297058091C30890919F
:105FF000C408A091C508B091C608209186053091CB
:1060000087054091880550918905281B390B4A0B5B
:106010005B0B57FF07C050954095309521953F4F3A
:106020004F4F5F4F20523E44404050400CF0B9C0AB
:10603000A1E0EA16A0E1FA06A0E00A07A0E01A072C
:106040000CF44EC080918F05882309F445C0D80117
:10605000C7014CE0B595A795979587954A95D1F7D7
:1060600001969093930580939205D801C70133E080
:10607000B595A795979587953A95D1F7809394050F
:1060800090939505A0939605B093970589589341F1
:10609000A040B04064F088E893E1A0E0B0E08093D5
:1060A000940590939505A0939605B09397056091FC
:1060B000940570919505809196059091970520E043
:1060C00031E040E050E00E940949420E531E5092D8
:1060D0006B0540926A0562C081E080938F055EC0C7
:1060E00010928F05F0E0EF16F0EFFF06FFEF0F07BD
:1060F000FFEF1F070CF052C080918E05882309F432
:1061000049C088279927DC018E199F09A00BB10B84
:106110002CE0B595A795979587952A95D1F7019687
:106120009093930580939205C801B70128E030E071
:1061300040E050E00E940949209394053093950572
:10614000409396055093970528573C4E4F4F5F4F0D
:1061500064F488E79CEEAFEFBFEF809394059093D3
:106160009505A0939605B09397056091940570915D
:106170009505809196059091970520E031E040E0EB
:1061800050E00E940949420E531E50926B05409206
:106190006A050BC081E080938E0507C010928E05C2
:1061A00004C010929305109292052091D40830916A
:1061B000D50837FF03C0309521953F4F3093B20883
:1061C0002093B1088091DE089091DF0897FF03C00B
:1061D000909581959F4F9093D0088093CF08243657
:1061E00031050CF04AC0843691050CF046C0809110
:1061F0008C08282F30E08091920590919305281704
:10620000390724F4309393052093920571E0E71643
:1062100074E0F70670E0070770E0170774F08091EC
:10622000FC049091FD042091920530919305820F1A
:10623000931F9093FD048093FC0480E0E8168CEF9C
:10624000F8068FEF08078FEF1807BCF48091FC0465
:106250009091FD042091920530919305821B930B40
:106260009093FD048093FC0408C010926B0510927B
:106270006A0510926D0510926C0520E030E040E058
:1062800050E06091C9087091CA088091CB08909144
:10629000CC080E94B547882341F410926B051092F8
:1062A0006A0510926D0510926C058091BF0890915F
:1062B000C008A091C108B091C20880938A0590934C
:1062C0008B05A0938C05B0938D058091C3089091A8
:1062D000C408A091C508B091C60880938605909324
:1062E0008705A0938805B093890510921E0510922A
:1062F0001F05109220051092210510922205109280
:10630000230510922405109225051092260510925F
:10631000270510922805109229051092BF081092A7
:10632000C0081092C1081092C2081092C3081092BF
:10633000C4081092C5081092C6081092B3081092B3
:10634000B4081092B5081092B6081092A9081092DD
:10635000AA081092AB081092AC081092E5041092B3
:10636000E4048091C804882309F46EC11092C80423
:106370002091D4083091D50837FF03C0309521957E
:106380003F4F3093B2082093B1088091DE0890917E
:10639000DF0897FF03C0909581959F4F9093D00899
:1063A0008093CF08243631050CF03CC1843691052A
:1063B0000CF038C120914A0530914B058091C904F9
:1063C0009091CA04281B390B37FF03C030952195E3
:1063D0003F4F263031050CF02FC18091630590911D
:1063E00064054396879708F091C080915405909179
:1063F00055058F3F91052CF4019690935505809398
:106400005405809154059091550502970CF492C063
:106410006091B9087091BA088091BB089091BC084E
:1064200024E135E040E050E00E940949F901309351
:10643000B2082093B10860914A0570914B05809194
:106440005C0890915D08681B790B7093D00860938D
:10645000CF089FEF6C34790734F468597E4F7093FE
:10646000D0086093CF088091CF089091D008853BE9
:10647000910534F0885691409093D0088093CF08CE
:106480008091CF089091D008E81BF90BF093D008C9
:10649000E093CF08359734F084E090E09093D008F3
:1064A0008093CF088091CF089091D0088C5F9F4F48
:1064B00034F48CEF9FEF9093D0088093CF08C901FC
:1064C00037FF03C0909581959F4F02979CF11092E2
:1064D000B9081092BA081092BB081092BC088091BB
:1064E0004A0590914B0590935D0880935C088091DC
:1064F000FE049091FF042091CF083091D008821BB8
:10650000930B9093FF048093FE0414C080914A057E
:1065100090914B0590935D0880935C08109255050F
:10652000109254051092B9081092BA081092BB0844
:106530001092BC0881E0809352056091E50870914B
:10654000E6088091E7089091E80824E135E040E012
:1065500050E00E9409492093E5083093E6084093F3
:10656000E7085093E80860914A0570914B05621B5B
:10657000730B7093B2086093B108CB010197833B12
:10658000910588F0643B710534F4CB018C549F4F26
:10659000843B910528F4215030404040504007C0D2
:1065A0006C547F4F64F42F5F3F4F4F4F5F4F2093EA
:1065B000E5083093E6084093E7085093E808809197
:1065C000E5089091E608A091E708B091E808B7FFC8
:1065D0000CC088599E4FAF4FBF4F8093E5089093F2
:1065E000E608A093E708B093E8086091E508709189
:1065F000E6088091E7089091E80828E631E040E05D
:1066000050E00E94094924E135E040E050E00E945A
:1066100095486093E5087093E6088093E7089093A7
:10662000E8080AC0109252051092B9081092BA08F0
:106630001092BB081092BC0880914A0590914B05BE
:106640009093CA048093C9048091660885FF42C074
:10665000E0915E08F0E0EE0FFF1FE05DF74F019064
:10666000F081E02DF7FF03C0F095E195FF4F3A97D9
:106670008CF5E0915F08F0E0EE0FFF1FE05DF74F53
:106680000190F081E02DF7FF03C0F095E195FF4FF9
:106690003A9704F580915C0990915D09892BD1F0BE
:1066A000E981FA817F97B4F080919403909153052A
:1066B000893C20F0933021F084E006C0943019F436
:1066C0001092530503C083E08093530580915305D6
:1066D00090E008C080915305882331F01092530553
:1066E00080E090E00E94F83CC0903F09D0904009C3
:1066F000C114D10429F080919D058C3009F4429891
:106700008090630590906405840197FE04C0002783
:10671000112708191909053111053CF08091660807
:1067200084FD03C081E080939C05E0906F08B40174
:10673000882777FD8095982F2E2D30E040E050E09F
:106740000E9495489801442737FD4095542F0E9498
:10675000954820E032E040E050E00E94094989017C
:106760009A01FF24E89CC001E99C900DF89C900DD3
:10677000112464E070E00E94D448600F711F1B0177
:10678000442437FC4094542C2092B7053092B8052D
:106790004092B9055092BA0580913E0590913F050F
:1067A000A0914005B091410582199309A409B5094A
:1067B00080933E0590933F05A0934005B09341051B
:1067C00080913E0590913F05A0914005B091410513
:1067D0008155934CA040B04064F080E593ECA0E07C
:1067E000B0E080933E0590933F05A0934005B093A1
:1067F000410580913E0590913F05A0914005B091E3
:106800004105805B9C43AF4FBF4F64F480EB9CE33A
:10681000AFEFBFEF80933E0590933F05A0934005F7
:10682000B093410580914A0590914B05892B09F45D
:1068300060C08091660883FF5CC08091CB0490911A
:10684000CC04892B09F455C02091CF083091D00891
:106850008091B1089091B2088217930724F4309385
:10686000B2082093B10820915205222371F0809143
:106870009C05882351F080914A0590914B05909397
:106880004D0580934C0510929C0580919703482FED
:1068900050E05093B2084093B108882351F122236D
:1068A00041F100913E0510913F0520914005309146
:1068B000410580914E0590914F05BC01469FC00156
:1068C000479F900D569F900D112460E270E00E944A
:1068D000D448882777FD8095982F600F711F821FFD
:1068E000931F60933E0570933F05809340059093FE
:1068F000410580919D05815080939D058F3F09F052
:106900002AC188E180939D058091C4049091C504BB
:10691000209104033091050382239323892B29F4CA
:1069200088B194E0892788B907C0809165058823DC
:1069300011F0429A01C0429860910E0570910F05C6
:106940008091100590911105E0907208FF2400E0FD
:1069500010E0A80197010E9409493093D6072093BF
:10696000D5076091160570911705809118059091D3
:106970001905A80197010E9409493093D80720936F
:10698000D7078091D4089091D5089093DA07809327
:10699000D9078091DE089091DF089093DC078093FF
:1069A000DB078091D7089091D8089093DE078093F9
:1069B000DD0780916605909167059093E0078093CD
:1069C000DF076091460570914705809148059091D9
:1069D000490520E032E040E050E00E940949309350
:1069E000E2072093E10780914A0590914B0590932F
:1069F000E6078093E5076091E5087091E6088091CD
:106A0000E7089091E80824E135E040E050E00E947A
:106A100009493093E8072093E7078091B5049091E6
:106A2000B6049093F6078093F50780910803909140
:106A300009039093F8078093F7078091AE0890912F
:106A4000AF089093FA078093F9078091A608909178
:106A5000A7089093FC078093FB078091D70890913B
:106A6000D8089093FE078093FD0780915F05909171
:106A70006005909300088093FF07809161059091D5
:106A80006205909302088093010890920408809216
:106A900003088091740590E09093EA078093E907DA
:106AA0008091760590E09093EC078093EB078091BE
:106AB000CF059091D00590930608809305088091AA
:106AC000D1059091D2059093080880930708809192
:106AD0006B0990916C0990930A0880930908809142
:106AE0006D0990916E0990930C0880930B0880912A
:106AF0006F099091700990930E0880930D08809112
:106B00007809909179099C0163E0220F331F6A95FF
:106B1000E1F7880F991F820F931F8C0D9D1D209107
:106B2000530542E3249F90011124820F931F9093F9
:106B3000100880930F0880915E0990915F099093EF
:106B40001208809311088091B9089091BA08909327
:106B500014088093130880916E058823A9F0609132
:106B6000AE087091AF08882777FD8095982F0E9416
:106B70007A472091D9083091DA084091DB0850918A
:106B8000DC080E94324832C060910E0570910F05FA
:106B90008091100590911105E090AE08F090AF083B
:106BA0000E947A472091C9083091CA084091CB08C9
:106BB0005091CC080E9432485B016C010027F7FC21
:106BC0000095102FC801B7010E947A472091D9087B
:106BD0003091DA084091DB085091DC080E9432487D
:106BE0009B01AC01C601B5010E947B460E9447474C
:106BF0007093AF086093AE0880916F058823A9F069
:106C00006091A6087091A708882777FD8095982F36
:106C10000E947A472091D9083091DA084091DB0828
:106C20005091DC080E94324832C060911605709184
:106C300017058091180590911905E090A608F0902D
:106C4000A7080E947A472091C9083091CA0840914C
:106C5000CB085091CC080E9432485B016C010027A0
:106C6000F7FC0095102FC801B7010E947A472091C8
:106C7000D9083091DA084091DB085091DC080E9475
:106C800032489B01AC01C601B5010E947B460E94BF
:106C900047477093A7086093A6086091D708709142
:106CA000D808E0902A05F0902B0500912C05109152
:106CB0002D058091C9089091CA08A091CB08B09188
:106CC000CC088B839C83AD83BE83882777FD80951A
:106CD000982F0E947A472091D9083091DA08409184
:106CE000DB085091DC080E9432485B016C01C8014E
:106CF000B7010E947A472B813C814D815E810E94C1
:106D0000324820E030E040E05FE30E9432489B01DF
:106D1000AC01C601B5010E947B460E9447477093B3
:106D2000D8086093D7088091AE089091AF08815041
:106D3000984034F080E098E09093AF088093AE08DC
:106D40008091AE089091AF088050984F34F480E065
:106D500098EF9093AF088093AE088091A608909129
:106D6000A7088150984034F080E098E09093A708FD
:106D70008093A6088091A6089091A7088050984F0C
:106D800034F480E098EF9093A7088093A608809150
:106D9000D7089091D8088150984034F080E098E06E
:106DA0009093D8088093D7088091D7089091D808FD
:106DB0008050984F34F480E098EF9093D8088093F7
:106DC000D7088091660880FFD8C04091940381FF66
:106DD0000EC0423310F58091660590916705449787
:106DE00090936905809368051092510519C0209110
:106DF0009F033091A003240F311D80916B0890E018
:106E0000AC01249FC001259F900D349F900D11244B
:106E10004497909369058093680581E080935105BC
:106E200080915005882321F0109269051092680521
:106E3000209166053091670540916805509169057C
:106E4000421753070CF099C080915105882309F42B
:106E500094C08091950390E0241B350BBC01629F88
:106E6000C001639F900D729F900D112460E170E04E
:106E70000E94D4484B01C090E204D090E30460919A
:106E80004605709147058091480590914905E0902D
:106E90009603FF2400E010E020E032E040E050E004
:106EA0000E940949C801B7010E94954820E230E0DC
:106EB00040E050E00E9409497FEF2E3C370714F470
:106EC0002EEC3FEF80919E0590919F058C0144E050
:106ED000000F111F4A95E1F7081B190B80919303CE
:106EE00090E0DC01AC9DC001AD9D900DBC9D900D6E
:106EF000112468E070E00E94D448061B170B23336E
:106F0000310514F022E330E0021B130B89819A81D2
:106F100088199909800F911F60E170E00E94D448A0
:106F200070939F0560939E058091670890E06817B5
:106F3000790784F4E981FA81E817F9072CF0909336
:106F40009F0580939E0506C029813A8130939F0555
:106F500020939E0580919E0590919F0549815A81BD
:106F60004817590724F450939F0540939E0560915C
:106F70009E0570919F057A83698389819A81909398
:106F8000E4078093E3072091D7083091D8088091D7
:106F9000D608682E7724A981BA8154971CF41886E4
:106FA0001F822DC0B9016219730929813A81359573
:106FB0002795621773070CF49B0189819A8162E01F
:106FC00070E00E94D448709561957F4FC9012617E3
:106FD00037070CF4CB019301E981FA812E1B3F0B9B
:106FE000281739070CF4C90129813A812619370974
:106FF00098878F838217930714F438872F83209103
:10700000AE083091AF0880905F0590906005809148
:10701000CF059091D005881A990A2819390930931B
:10702000BE082093BD0820E030E040E050E06B81D6
:107030007C818D819E810E94B5478823F1F1E0908B
:107040000E05F0900F05009110051091110560914B
:10705000BF057091C0058091C1059091C2050E9445
:107060007A475B016C01C801B7010E947A472B8106
:107070003C814D815E810E9432487B018C01B401CC
:10708000882777FD8095982F0E947A479B01AC0155
:10709000C801B7010E947A469B01AC01C601B50147
:1070A0000E947B460E9447476093BF057093C005CE
:1070B0008093C1059093C2051CC02091BD083091FA
:1070C000BE08442737FD4095542F8091BF0590910D
:1070D000C005A091C105B091C205820F931FA41FE6
:1070E000B51F8093BF059093C005A093C105B093D1
:1070F000C2058091BF059091C005A091C105B091D6
:10710000C205181619061A061B0624F40297A109CF
:10711000B10903C00296A11DB11D8093BF059093D4
:10712000C005A093C105B093C2058091BF059091A1
:10713000C005A091C105B091C20581589E43A040F1
:10714000B04064F080E89EE3A0E0B0E08093BF052B
:107150009093C005A093C105B093C2058091BF056F
:107160009091C005A091C105B091C2058058914C85
:10717000AF4FBF4F64F480E891ECAFEFBFEF809367
:10718000BF059093C005A093C105B093C20560915F
:10719000BD087091BE0880918F0390919003A091DB
:1071A0009103B091920389879A87AB87BC87882720
:1071B00077FD8095982F0E947A477B018C01609122
:1071C000BF057091C0058091C1059091C2050E94D4
:1071D0007A479B01AC0169857A858B859C850E94E5
:1071E00032489B01AC01C801B7010E947B460E9456
:1071F00047477B018C016B018F81988597FF03C006
:10720000909581959F4F62E070E00E94D448A981DB
:10721000BA816A0F7B1F882777FD8095982F209170
:107220009E0330E040E050E00E94954820E430E0CA
:1072300040E050E00E9409491901C216D3060CF43F
:1072400097014424552442185308241535050CF49D
:1072500092014F815885E981FA814E0F5F1FCA0163
:10726000820F931F97FF03C060E070E005C0BC0170
:10727000681679060CF4B3018091B008882E992421
:10728000CB01681579050CF4C4018093A808421B52
:10729000530B9A0157FF03C020E030E004C064168E
:1072A00075060CF49301281539050CF4940120930C
:1072B000AD082091A6083091A70840916105509132
:1072C00062058091D1059091D205481B590B5C8BCA
:1072D0004B8B241B350B3093A5082093A40820E08A
:1072E00030E040E050E06B817C818D819E810E9486
:1072F000B547882309F440C0E0901605F0901705C3
:1073000000911805109119056091BB057091BC059D
:107310008091BD059091BE050E947A475B016C018A
:10732000C801B7010E947A472B813C814D815E8163
:107330000E9432487B018C01AB89BC89BD01882742
:1073400077FD8095982F0E947A479B01AC01C80178
:10735000B7010E947A469B01AC01C601B5010E94AB
:107360007B460E9447476093BB057093BC058093A2
:10737000BD059093BE051CC02091A4083091A508BE
:10738000442737FD4095542F8091BB059091BC0553
:10739000A091BD05B091BE05820F931FA41FB51F1C
:1073A0008093BB059093BC05A093BD05B093BE052B
:1073B0008091BB059091BC05A091BD05B091BE0523
:1073C000181619061A061B0624F40297A109B1091A
:1073D00003C00296A11DB11D8093BB059093BC050F
:1073E000A093BD05B093BE058091BB059091BC05EF
:1073F000A091BD05B091BE0581589E43A040B0400C
:1074000064F080E89EE3A0E0B0E08093BB05909339
:10741000BC05A093BD05B093BE058091BB059091BE
:10742000BC05A091BD05B091BE058058914CAF4FF1
:10743000BF4F64F480E891ECAFEFBFEF8093BB05E2
:107440009093BC05A093BD05B093BE056091A408C0
:107450007091A508882777FD8095982F0E947A471C
:107460007B018C016091BB057091BC058091BD05CD
:107470009091BE050E947A479B01AC0169857A858F
:107480008B859C850E9432489B01AC01C801B701E5
:107490000E947B460E9447479101621573050CF4D8
:1074A0009B01241535050CF4920169817A814F8185
:1074B0005885641B750B620F731F77FF03C060E074
:1074C00070E004C0661677060CF4B3016815790500
:1074D0000CF4B4016093D10869817A81621B730B4B
:1074E0009B018F819885281B390B37FF03C020E053
:1074F00030E004C0621673060CF4930128153905B8
:1075000054F4940108C080916E05882311F00C9406
:107510003D2B0C94472B2093CD0866960FB6F8941C
:10752000DEBF0FBECDBFDF91CF911F910F91FF90B6
:10753000EF90DF90CF90BF90AF909F908F907F9013
:107540006F905F904F903F902F9008951092D405C8
:107550001092D3051092400910923F0910927909B8
:107560001092780910922B0910920D0910928A0935
:1075700010923E0910925309109271091092D00591
:107580001092CF051092D2051092D1051092770972
:107590001092760910925B0910925A0910921809FC
:1075A0001092170910925D0910925C09089580915C
:1075B0002B09882319F481E090E0089580918A09CD
:1075C000882309F46AC080910D09882309F465C0F5
:1075D00080917E0990E08370907002970CF452C005
:1075E00080917F0980FF4EC010928A0960911D0929
:1075F00070911E0980911F09909120092AE030E0C6
:1076000040E050E00E94094920934109309342092B
:1076100040934309509344096091210970912209D4
:1076200080912309909124092AE030E040E050E065
:107630000E94094920934509309346094093470920
:107640005093480960912509709126098091270976
:10765000909128092AE030E040E050E00E9409497A
:107660002093490930934A0940934B0950934C09A0
:1076700010922B0910920D0981E08093530980E04C
:1076800090E008951092530910920D0910928A0902
:1076900010922B0982E090E0089581E090E0089537
:1076A0000E94D73A181619060CF44CC080915C0958
:1076B00090915D0923E0883E920730F4885A9D4FEF
:1076C00090935D0980935C0980913E098823B1F114
:1076D000809141099091420920912C0930912D0906
:1076E000821B930B90936C0980936B0980914509E1
:1076F000909146092091300930913109821B930BFA
:1077000090936E0980936D098091490990914A097F
:107710002091340930913509821B930B90937009A5
:1077200080936F0981E08093710981E090E09093EC
:1077300077098093760980E090E0089510927109AE
:1077400082E090E008950E94D73A892B99F58091C4
:10775000410990914209A0914309B0914409809355
:107760002C0990932D09A0932E09B0932F09809195
:10777000450990914609A0914709B0914809809325
:10778000300990933109A0933209B0933309809165
:10779000490990914A09A0914B09B0914C098093F5
:1077A000340990933509A0933609B093370981E0E5
:1077B00080933E090895482F2091D3053091D40538
:1077C0002530310509F49AC0263031058CF421307A
:1077D000310529F1223031051CF4232BD1F003C1EE
:1077E0002230310571F12330310509F0FCC02FC082
:1077F0002730310509F4E2C0273031050CF490C080
:107800002830310509F4E5C02930310509F0EBC015
:10781000A2C0853B09F0E7C081E090E0D5C0823688
:1078200039F482E090E09093D4058093D30504C0AE
:107830001092D4051092D3051092E9051092EA0532
:107840000895813009F0CFC083E090E0BDC088305A
:1078500031F0823151F1833009F044C013C02BE282
:1078600039E03093F8052093F70580912B098823A0
:10787000C9F5225130403093F6052093F5052E5E70
:107880003F4F25C02AE839E03093F8052093F705EB
:1078900080918A09882331F5205130403093F605D4
:1078A0002093F505205F3F4F12C02DE039E0309363
:1078B000F8052093F70580910D09882399F4245247
:1078C00030403093F6052093F5052C5D3F4F309303
:1078D000EE052093ED0585E090E09093D40580932C
:1078E000D30504C01092D4051092D305842F8F5F66
:1078F0008093E9058F5F8093EA05089590E0909367
:10790000EC058093EB059091E905940F9093E905C0
:107910008091EA05890F8093EA0586E090E054C0E3
:10792000282F30E0322F22278091EB059091EC0533
:10793000820F931F9093EC058093EB059091E905DE
:10794000940F9093E9058091EA05890F8093EA05E9
:1079500089E090E039C06091EB057091EC0561150C
:10796000710509F440C0E091F505F091F6058083BA
:107970008091E905840F8093E9059091EA05980FBD
:107980009093EA05CB0101979093EC058093EB056A
:10799000892B89F08091ED059091EE058E179F0758
:1079A00050F03196F093F605E093F5053093D40549
:1079B0002093D305089587E090E006C08091E90503
:1079C000481789F488E090E09093D4058093D3051C
:1079D00008958091EA05481731F4E091F705F09198
:1079E000F80581E080831092D4051092D3050895A4
:1079F0002F923F924F925F926F927F928F929F92BF
:107A0000AF92BF92CF92DF92EF92FF920F931F93AC
:107A1000CF93DF933C018330910509F4B7C08430E4
:107A2000910521F0892B09F415C10FC680913F09FA
:107A3000909140090197029708F429C18091E705C8
:107A40009091E80501969093E8058093E705893CBD
:107A5000910508F4FDC51092E8051092E705109213
:107A6000F0051092EF051092F2051092F1051092B8
:107A7000F4051092F3051092E6051092E5051092B8
:107A8000E4051092E30510927309109272091092A6
:107A90007509109274091092E0051092DF0510929A
:107AA000E2051092E1051092DA051092D9051092C4
:107AB000D8051092D7051092DE051092DD051092C0
:107AC000DC051092DB0510925409109255091092B2
:107AD0005609109257091092D6051092D5051092AA
:107AE00079091092780980917109882309F44BC0B3
:107AF00080916B0990916C0990936509809364095A
:107B000060916D0970916E097093670960936609C1
:107B100021E020936A0990931109809310097093D2
:107B200013096093120920931609709561957F4F90
:107B3000909581959F4F0E9440439C0190935909D5
:107B400080935809E0916409F0916509F7FF03C03B
:107B50008AE590E002C08EE091E0821B930B909347
:107B600059098093580940915809509159096091D9
:107B7000660970916709CF010E947A447093610988
:107B80006093600957C510926A095BC580913F09EF
:107B900090914009019709F47AC08091E70590918E
:107BA000E80501969093E8058093E7058159914097
:107BB00008F44EC51092E8051092E705809171090E
:107BC000882309F444C01092F2051092F105109236
:107BD000F4051092F3051092E6051092E505109257
:107BE000E4051092E3051092730910927209109245
:107BF0007509109274091092E0051092DF05109239
:107C0000E2051092E1051092DA051092D905109262
:107C1000D8051092D7051092DE051092DD0510925E
:107C2000DC051092DB0580916B0990916C099093B3
:107C300011098093100980916D0990916E099093BC
:107C400013098093120981E080931609A1C1109253
:107C50001609F7C41092E8051092E7051092D005B6
:107C60001092CF051092D2051092D10510925B09A7
:107C700010925A0910921809109217091092790956
:107C8000109278091092400910923F09E4C4809143
:107C90003F09909140098130910509F47CC18230FF
:107CA000910541F0892B09F0CCC41092E80510929F
:107CB000E705D1C480916A09882309F4C2C4809180
:107CC000760990917709181619060CF061C1809118
:107CD000780990917909099709F45AC18091EF05C3
:107CE0009091F00501969093F0058093EF056091D7
:107CF00010097091110980916B0990916C096B01C9
:107D0000C81AD90AD7FE04C0D094C194D108D3941C
:107D1000E0911209F091130980916D0990916E091B
:107D2000DF01A81BB90BB7FF03C0B095A195BF4FEA
:107D300020915409309155094091560950915709A5
:107D40008091600990916109821B930B83339105A7
:107D50000CF444C08CE3C816D1042CF5DC971CF558
:107D60008091D5059091D6058C3091052CF4019623
:107D70009093D6058093D5058091D5059091D60531
:107D8000AA2797FDA095BA2F820F931FA41FB51F96
:107D90008093540990935509A0935609B0935709BD
:107DA00083E090E041C08091D5059091D605823066
:107DB00091052CF001979093D6058093D5052F5F00
:107DC0003F4F4F4F5F4F20935409309355094093D5
:107DD00056095093570984E090E026C04F970CF461
:107DE00084C098E2C916D1048CF498977CF42A5F79
:107DF0003F4F4F4F5F4F20935409309355094093A5
:107E000056095093570985E090E00EC02F5F3F4F11
:107E10004F4F5F4F209354093093550940935609B3
:107E20005093570986E090E0909379098093780900
:107E30001092F4051092F30581E090E09093F20522
:107E40008093F1056090540970905509809056090F
:107E50009090570980915809909159090E941C44AB
:107E60007C0120905409309055094090560950905B
:107E7000570980915809909159090E9472445C01F8
:107E80000027F7FC0095102FC801B701A40193014A
:107E90000E94954828EE33E040E050E00E940949F6
:107EA0008091640990916509820F931F9093110945
:107EB00080931009CC24B7FCC094DC2CC601B5011A
:107EC000A20191010E94954828EE33E040E050E085
:107ED0000E9409498091660990916709820F931F5A
:107EE000909313098093120953C028E2C216D1045B
:107EF0000CF048C098970CF045C087E090E0909354
:107F00007909809378091092F2051092F105109288
:107F1000F4051092F305633071051CF06350704056
:107F200006C03FEF6E3F730734F46D5F7F4F709371
:107F3000110960931009E330F10514F0339705C07F
:107F40004FEFEE3FF4072CF43396F0931309E093D0
:107F50001209809110099091110903960797C0F4B6
:107F600080911209909113090396079788F4109253
:107F7000110910921009109213091092120989E048
:107F800090E002C088E090E09093790980937809AE
:107F900081E090E051C3809176099091770918169D
:107FA00019060CF043C310927709109276092091BC
:107FB000DF053091E0054091E1055091E205C09167
:107FC0001009D091110980916B0990916C09C81B1F
:107FD000D90BD093E005C093DF05A0901209B090B3
:107FE000130980916D0990916E09A81AB90AB0928F
:107FF000E205A092E1050091E5051091E6050C0F60
:108000001D1F1093E6050093E505E091E305F0914F
:10801000E405EA0DFB1DF093E405E093E305CE01D2
:10802000821B930B9C019093DE058093DD05650117
:10803000C41AD50AD092DC05C092DB058091F10507
:108040009091F205E090D905F090DA058090D7057F
:108050009090D80518161906FCF4C90163E070E089
:108060000E94D4489B01C701880F991F63E070E00C
:108070000E94D448260F371F3093DA052093D90584
:10808000C60163E070E00E94D4489B01C401880FE0
:10809000991F63E070E022C0C901880F991F820F09
:1080A000931F64E070E00E94D4489B01C70164E024
:1080B00070E00E94D448260F371F3093DA052093D2
:1080C000D905C601880F991F8C0D9D1D64E070E0D5
:1080D0000E94D4489B01C40164E070E00E94D4482F
:1080E000260F371F3093D8052093D705C80117FFF7
:1080F00004C088279927801B910B8153954754F41E
:10810000CF01F7FF04C0882799278E1B9F0B81534F
:10811000954764F00C1B1D0B1093E6050093E505D5
:10812000EA19FB09F093E405E093E3058091F30578
:108130009091F4051816190644F41092E605109271
:10814000E5051092E4051092E305BE01D7FF03C0D8
:10815000709561957F4FC501B7FE03C090958195DD
:108160009F4F0E9440436091E1057091E205AC0190
:108170008091DF059091E0050E947A449B01AC015B
:108180008091F1059091F205892B81F4CA01B90122
:1081900023E030E040E050E00E940949E9012A96DE
:1081A000C531D10594F0C4E1D0E00FC0CA01B901D6
:1081B0002AE030E040E050E00E940949E9012A96B7
:1081C000C031D10514F0CFE0D0E0E0907505FF2478
:1081D00000E010E02091E5053091E605442737FDE9
:1081E0004095542FC801B7010E94954820E031E026
:1081F00040E050E00E94094959016A016091E3059D
:108200007091E405882777FD8095982FA801970144
:108210000E94954820E031E040E050E00E9409498A
:1082200080E6A8168FEFB8068FEFC8068FEFD80646
:1082300044F460E6A62E6FEFB62E6FEFC62E6FEFFA
:10824000D62E89019A0100369FEF19079FEF290763
:108250009FEF390724F400E61FEF2FEF3FEF8091E7
:108260007405869586958695E82EFF24809176057F
:10827000869586958695882E992441EAA416B104A0
:10828000C104D1042CF050EAA52EB12CC12CD12C64
:108290008091DF059091E005880F991FAC014E9DFC
:1082A000C0014F9D900D5E9D900D112460E170E026
:1082B0000E94D448FB01EA0DFB1D8091D9059091E5
:1082C000DA05AC01849EC001859E900D949E900DB0
:1082D0001124AC014C9FC0014D9F900D5C9F900DEF
:1082E00011246AE070E00E94D448E60FF71FF09373
:1082F0007309E093720958016901013A11052105DA
:1083000031052CF030EAA32EB12CC12CD12C809158
:10831000E1059091E205880F991F9C012E9DC001F7
:108320002F9D900D3E9D900D112460E170E00E9404
:10833000D4489B012A0D3B1D8091D7059091D8050B
:10834000AC01849EC001859E900D949E900D1124D9
:10835000AC014C9FC0014D9F900D5C9F900D11246E
:108360006AE070E00E94D448260F371F30937509E9
:1083700020937409B901CF010E9440439C0190935E
:10838000630980936209009172091091730917FDC6
:1083900003C08AE590E002C08EE091E0821B930B5F
:1083A0009093630980936209C0916209D091630937
:1083B0006091E5087091E6088091E7089091E808DF
:1083C00024E135E040E050E00E940949CE01821BE3
:1083D000930B9C0190930F0980930E09853B9105A7
:1083E0007CF0C43BD1051CF0285631400FC088E614
:1083F00091E0821B930B90930F0980930E090AC0A2
:108400009FEF2C34390734F428593E4F30930F092D
:1084100020930E09C0907409D0907509980117FF38
:1084200004C022273327201B310BC601D7FE04C00E
:10843000882799278C199D098217930754F4CE0138
:108440000E941C447C01B801882777FD8095982FF5
:1084500009C0CE010E9472447C01B601882777FDD5
:108460008095982F28EE33E040E050E00E94954838
:108470000027F7FC0095102FA80197010E940949D9
:10848000C90137FF03C0909581959F4F5C01CC24B3
:10849000B7FCC094DC2CB0925F09A0925E09809179
:1084A0000E0990910F090E941C44AA2797FDA095E0
:1084B000BA2FBC01CD01A60195010E94954828EE76
:1084C00033E040E050E00E9409493093D205209308
:1084D000D10580910E0990910F090E947244AA273C
:1084E00097FDA095BA2FBC01CD01A60195010E9470
:1084F000954828E13CEF4FEF5FEF0E940949B90131
:108500003093D0052093CF058091D1059091D2056D
:1085100021E0813492071CF080E491E005C0805C8A
:108520009E4F34F480EC9EEF9093D2058093D1055A
:1085300041E0613474071CF080E491E005C0605CA8
:108540007E4F34F480EC9EEF9093D0058093CF055E
:108550008091D1059091D2050AE510E09C01209F01
:10856000C001219F900D309F900D112460E471E0B7
:108570000E94D448CB010E941C44AA2797FDA095D5
:10858000BA2FBC01CD0129E130E040E050E00E946B
:1085900009493093D2052093D1058091CF05909160
:1085A000D005AC01409FC001419F900D509F900DA0
:1085B000112460E471E00E94D448CB010E941C4465
:1085C000AA2797FDA095BA2FBC01CD0129E130E083
:1085D00040E050E00E9409493093D0052093CF0538
:1085E0008091DF059091E00597FF03C090958195FC
:1085F0009F4F8159914064F48091E1059091E2058B
:1086000097FF03C0909581959F4F815991404CF001
:108610001092D2051092D1051092D0051092CF057C
:1086200010C034E063167104B1F404C044E0641671
:10863000710489F482E090E09093400980933F09AF
:108640000AC01092400910923F0982E090E005C0F4
:1086500081E090E002C080E090E0DF91CF911F9137
:108660000F91FF90EF90DF90CF90BF90AF909F90D1
:108670008F907F906F905F904F903F902F900895D4
:10868000EF92FF920F931F93CF93DF938C01EB0137
:108690009C0197FF04C022273327281B390BCE01EA
:1086A000D7FF04C0882799278C1B9D0B821793073F
:1086B0003CF4CE01E8018C01B1E0EB2EF12C02C0BC
:1086C000EE24FF24209741F40115110529F461E0FF
:1086D00070E080E090E024C0B801882777FD8095A5
:1086E000982F28EE33E040E050E00E9495489E012C
:1086F000442737FD4095542F0E940949B90137FF9F
:1087000003C0709561957F4F882777FD8095982FDE
:108710006D3021E0720720E0820720E0920704F527
:1087200024E630E040E050E00E9495482CE031E043
:1087300040E050E00E940949CA01B901A4E0660F77
:10874000771F881F991FAA95D1F7621B730B840BA3
:10875000950B24E630E040E050E00E94094953C008
:10876000633422E0720720E0820720E0920734F5AC
:1087700024E630E040E050E00E949548605B784697
:108780008040904026E331E040E050E00E940949FB
:10879000CA01B901F4E0660F771F881F991FFA9587
:1087A000D1F7621B730B840B950B24E630E040E09D
:1087B00050E00E940949215F3F4F25C022E330E08D
:1087C00040E050E00E949548645E704780409040D1
:1087D00026EA31E040E050E00E940949CA01B901AF
:1087E000E4E0660F771F881F991FEA95D1F7621B97
:1087F000730B840B950B22E330E040E050E00E94C5
:108800000949225E3F4FEF2829F48AE590E0821B58
:10881000930B9C0117FD03C0D7FF06C002C0D7FD14
:1088200003C0309521953F4FC901DF91CF911F9132
:108830000F91FF90EF900895FC01F7FF04C0882787
:1088400099278E1B9F0B8856914034F0CF0168E624
:1088500071E00E94D448FC01F7FD03C041E050E004
:1088600005C0F095E195FF4F4FEF5FEFCF018B55BE
:1088700090408A35910530F484EB90E08E1B9F0B7D
:10888000FC010FC0CF01855B90408A35910518F43B
:10889000E45BF0400EC0CF018F5091408A359105C6
:1088A00018F081E090E007C088E691E08E1B9F0BF6
:1088B000FC018FEF9FEFEE0FFF1FEF5DFB4F259148
:1088C0003491BC01649FC001659F900D749F900D11
:1088D0001124AC01429FC001439F900D529F900D07
:1088E000112408952AE530E0281B390BC9010E94A4
:1088F0001C440895EF92FF920F931F93CF93DF9341
:10890000EA01AC0197FF04C044275527481B590BC7
:108910009B0177FF04C022273327261B370B241720
:10892000350794F49C01B901882777FD8095982F2D
:1089300028EE33E040E050E00E9495487B018C0136
:10894000CE010E941C440FC0882777FD8095982F88
:1089500028EE33E040E050E00E9495487B018C0116
:10896000CE010E9472449C01442737FD4095542F4C
:10897000C801B7010E940949B90137FF03C07095CA
:1089800061957F4F882777FD8095982FDF91CF9154
:108990001F910F91FF90EF900895A8E0B0E0E3EDF4
:1089A000F4E40C942E497B018C016115710581055D
:1089B000910519F482E089835AC083E089838EE1AE
:1089C000C82ED12CDC82CB82ED82FE820F831887E9
:1089D000C801B7010E944045BC016150704077FF5B
:1089E00033C0EE27FF27E61BF70B20E030E040E026
:1089F00050E081E090E0A0E0B0E00E2E04C0880FCF
:108A0000991FAA1FBB1F0A94D2F70197A109B109A8
:108A10008E219F21A023B1230097A105B10521F04C
:108A200021E030E040E050E004C016950795F7944F
:108A3000E794EA95D2F72E293F29402B512B2D831D
:108A40003E834F8358870FC06115710581F0062E54
:108A500004C0EE0CFF1C001F111F0A94D2F7ED8218
:108A6000FE820F831887C61AD70ADC82CB821A824D
:108A7000CE0101960E948D45E8E028960C944A4963
:108A8000EF92FF920F931F939B01AC01203080E087
:108A9000380781E0480780E0580780F42F3F310510
:108AA0004105510509F020F4EE24FF24870119C087
:108AB00068E0E62EF12C012D112D13C0203080E04E
:108AC000380780E0480781E0580730F490E1E92E4C
:108AD000F12C012D112D05C088E1E82EF12C012D7E
:108AE000112D80E290E0A0E0B0E08E199F09A00B6C
:108AF000B10B04C05695479537952795EA94D2F760
:108B0000F901EF55FC4F2081821B9109A109B109A0
:108B10001F910F91FF90EF9008959F92AF92BF9297
:108B2000CF92DF92EF92FF920F931F93EE24FF24D8
:108B30008701FC01248135814681578191808081A4
:108B4000823010F44061A2C0843009F49BC08230AE
:108B500029F420E030E040E050E005C02115310567
:108B60004105510519F4E0E0F0E092C08281938163
:108B70006FEF823896070CF05AC062E87FEF681BEF
:108B8000790B6A3171052CF020E030E040E050E0D4
:108B90002AC0AA24BB24650181E090E0A0E0B0E0F7
:108BA000062E04C0880F991FAA1FBB1F0A94D2F774
:108BB0000197A109B10982239323A423B523009728
:108BC000A105B10529F071E0A72EB12CC12CD12C43
:108BD00004C056954795379527956A95D2F72A2967
:108BE0003B294C295D29DA01C9018F779070A0706B
:108BF000B07080349105A105B10539F427FF09C093
:108C0000205C3F4F4F4F5F4F04C0215C3F4F4F4FA1
:108C10005F4F80E090E0203060E0360760E046077C
:108C200060E4560710F081E090E0FC0123C080383A
:108C3000910544F5FC01E158FF4FDA01C9018F7736
:108C40009070A070B07080349105A105B10539F421
:108C500027FF09C0205C3F4F4F4F5F4F04C0215C8E
:108C60003F4F4F4F5F4F57FF05C05695479537957C
:108C70002795319687E056954795379527958A959C
:108C8000D1F706C020E030E040E050E0EFEFF0E048
:108C9000E22EF32E942F9F77802F8078892B9E2FA2
:108CA0009795992797958F77082F092B9E2F969543
:108CB000812F8078892B9794992497948F77182FF8
:108CC0001929C801B7011F910F91FF90EF90DF9014
:108CD000CF90BF90AF909F900895FC0141505040BD
:108CE00030F001900616D1F73197CF01089588270B
:108CF000992708955058BB27AA270ED079C16AD169
:108D000030F06FD120F031F49F3F11F41EF45FC1B9
:108D10000EF4E095E7FB55C1E92F7BD180F3BA173C
:108D2000620773078407950718F071F49EF593C1E5
:108D30000EF4E0950B2EBA2FA02D0B01B901900176
:108D40000C01CA01A0011124FF27591B99F0593FBA
:108D500050F4503E68F11A16F040A22F232F342F02
:108D60004427585FF3CF469537952795A795F04050
:108D70005395C9F77EF41F16BA0B620B730B840B65
:108D8000BAF09150A1F0FF0FBB1F661F771F881F1D
:108D9000C2F70EC0BA0F621F731F841F48F4879575
:108DA00077956795B795F7959E3F08F0B3CF939564
:108DB000880F08F09927EE0F9795879508950CD0A6
:108DC00017C10FD140F006D130F021F45F3F19F008
:108DD000F8C0511141C1FBC01CD198F39923C9F3CC
:108DE0005523B1F3951B550BBB27AA2762177307B1
:108DF000840738F09F5F5F4F220F331F441FAA1F65
:108E0000A9F333D00E2E3AF0E0E830D09150504024
:108E1000E695001CCAF729D0FE2F27D0660F771FD2
:108E2000881FBB1F261737074807AB07B0E809F0B4
:108E3000BB0B802DBF01FF2793585F4F2AF09E3F49
:108E4000510568F0BEC008C15F3FECF3983EDCF30B
:108E5000869577956795B795F7959F5FC9F7880FC2
:108E6000911D9695879597F90895E1E0660F771F14
:108E7000881FBB1F621773078407BA0720F0621BA5
:108E8000730B840BBA0BEE1F88F7E095089504D09E
:108E90006894B111E1C00895C4D088F09F5790F054
:108EA000B92F9927B751A0F0D1F0660F771F881F0F
:108EB000991F1AF0BA95C9F712C0B13081F0CBD022
:108EC000B1E00895C8C0672F782F8827B85F39F0C0
:108ED000B93FCCF3869577956795B395D9F73EF46E
:108EE00090958095709561957F4F8F4F9F4F089516
:108EF000E89409C097FB3EF4909580957095619534
:108F00007F4F8F4F9F4F9923A9F0F92F96E9BB27E9
:108F10009395F695879577956795B795F111F8CF65
:108F2000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD0
:108F30009F4F16C0882311F096E911C0772321F0C6
:108F40009EE8872F762F05C0662371F096E8862F5E
:108F500070E060E02AF09A95660F771F881FDAF7B5
:108F6000880F9695879597F9089507D008F481E0C2
:108F7000089503D008F48FEF0895990F0008550F56
:108F8000AA0BE0E8FEEF16161706E807F907C0F08F
:108F900012161306E407F50798F0621B730B840B97
:108FA000950B39F40A2661F0232B242B252B21F471
:108FB00008950A2609F4A140A6958FEF811D811D11
:108FC000089597F99F6780E870E060E008959FEF4B
:108FD00080EC089500240A94161617061806090650
:108FE000089500240A94121613061406050608951F
:108FF000092E0394000C11F4882352F0BB0F40F4A7
:10900000BF2B11F460FF04C06F5F7F4F8F4F9F4FE6
:10901000089557FD9058440F551F59F05F3F71F068
:109020004795880F97FB991F61F09F3F79F08795CF
:109030000895121613061406551FF2CF4695F1DF58
:1090400008C0161617061806991FF1CF86957105E8
:10905000610508940895E894BB2766277727CB011C
:1090600097F908950BD0C4CFB5DF28F0BADF18F018
:10907000952309F0A6CFABCF1124EECFCADFA0F322
:10908000959FD1F3950F50E0551F629FF001729F9D
:10909000BB27F00DB11D639FAA27F00DB11DAA1FBC
:1090A000649F6627B00DA11D661F829F2227B00D09
:1090B000A11D621F739FB00DA11D621F839FA00D94
:1090C000611D221F749F3327A00D611D231F849FE4
:1090D000600D211D822F762F6A2F11249F5750403B
:1090E0008AF0E1F088234AF0EE0FFF1FBB1F661FD6
:1090F000771F881F91505040A9F79E3F510570F08F
:1091000060CFAACF5F3FECF3983EDCF3869577956E
:109110006795B795F795E7959F5FC1F7FE2B880F89
:10912000911D9695879597F90895629FD001739F39
:10913000F001829FE00DF11D649FE00DF11D929FF3
:10914000F00D839FF00D749FF00D659FF00D992732
:10915000729FB00DE11DF91F639FB00DE11DF91F56
:10916000BD01CF0111240895991B79E004C0991F16
:10917000961708F0961B881F7A95C9F78095089571
:10918000AA1BBB1B51E107C0AA1FBB1FA617B7072D
:1091900010F0A61BB70B881F991F5A95A9F7809549
:1091A0009095BC01CD01089597FB092E07260AD0A2
:1091B00077FD04D0E5DF06D000201AF470956195A4
:1091C0007F4F0895F6F7909581959F4F0895A1E2FE
:1091D0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F31
:1091E000FF1FA217B307E407F50720F0A21BB30B7C
:1091F000E40BF50B661F771F881F991F1A9469F7F8
:1092000060957095809590959B01AC01BD01CF0153
:10921000089597FB092E05260ED057FD04D0D7DF01
:109220000AD0001C38F450954095309521953F4F59
:109230004F4F5F4F0895F6F7909580957095619523
:109240007F4F8F4F9F4F08952F923F924F925F9283
:109250006F927F928F929F92AF92BF92CF92DF9246
:10926000EF92FF920F931F93CF93DF93CDB7DEB7AB
:10927000CA1BDB0B0FB6F894DEBF0FBECDBF09943F
:109280002A88398848885F846E847D848C849B8496
:10929000AA84B984C884DF80EE80FD800C811B81A4
:1092A000AA81B981CE0FD11D0FB6F894DEBF0FBED3
:1092B000CDBFED010895F999FECFB2BDA1BDF89AD9
:1092C000119600B40895F999FECFB2BDA1BD00BCBE
:1092D00011960FB6F894FA9AF99A0FBE0895FFCF37
:1092E0000A01FF64496E74656772616C4E69636B55
:1092F00020202020496E74656772616C526F6C6C1F
:10930000202020204163634E69636B2020202020B1
:1093100020202020416363526F6C6C20202020208D
:10932000202020204779726F476965722020202015
:1093300020202020486F6568656E57657274202074
:10934000202020204163635A20202020202020203C
:109350002020202047617320202020202020202052
:10936000202020204B6F6D7061737356616C7565A2
:109370002020202045727361747A6B6F6D70617369
:10938000732020205573725F50617231202020209D
:10939000202020205573725F7061723320202020BE
:1093A000202020204D6F746F725F566F726E6520A3
:1093B000202020204D6F746F725F48696E74656E57
:1093C000202020204D6F746F725F4C696E6B73208C
:1093D000202020204D6F746F725F52656368747334
:1093E00020202020496E6465782020202020202025
:1093F0002020202055426174202020202020202081
:10940000202020204D657373776572745F4E696309
:109410006B2020204D657373776572745F526F6C9B
:109420006C2020204D657373776572745F476965A2
:1094300072202020537469636B5F4E69636B202038
:1094400020202020537469636B5F526F6C6C202066
:1094500009200000537469636B5F476965722020BF
:10946000202020204750535F4E69636B202020202E
:10947000202020204750535F526F6C6C202020200A
:109480002020202075746D5F65617374202020207A
:109490002020202075746D5F6E6F7274682020200C
:1094A0002020202075746D5F616C742020202020A6
:1094B000202020206770735F737461746520202002
:1094C000202020204750535F646973745F327472A8
:1094D000677420204779726F476965725F436F6DCB
:1094E00070202020FFFF0A016400007D0000FF03C0
:1094F0000102030405060708090A48616C6C6F2025
:1095000057656C74000000000000000000000000BF
:10951000000000000000000000000000000000004B
:10952000000000000000000000000000000000003B
:10953000000000000000000000000000000000002B
:10954000000000000000000000000A014265676999
:109550006E6E657200004E6F726D616C000053702C
:109560006F72740000640090D0030090D003001765
:10957000B7D13830FB103A409696020A644664EC44
:10958000FF000102020303030304040404040404AF
:10959000040505050505050505050505050505057C
:1095A000050606060606060606060606060606065C
:1095B000060606060606060606060606060606064B
:1095C000060707070707070707070707070707072C
:1095D000070707070707070707070707070707071B
:1095E000070707070707070707070707070707070B
:1095F00007070707070707070707070707070707FB
:1096000007080808080808080808080808080808DB
:1096100008080808080808080808080808080808CA
:1096200008080808080808080808080808080808BA
:1096300008080808080808080808080808080808AA
:10964000080808080808080808080808080808089A
:10965000080808080808080808080808080808088A
:10966000080808080808080808080808080808087A
:10967000080808080808080808080808080808086A
:029680000800E0
:00000001FF
/branches/salvo_gps/Basis_v0067g/tags/v0003/GPS.c
119,7 → 119,7
short int n = 0;
n = Get_GPS_data();
if (n >=1) return (n); // nix zu tun, weil keine neue Daten da sind
if (gps_alive_cnt < 400) gps_alive_cnt += 300; // Timeoutzaehler. Wird in Motorregler Routine ueberwacht und dekrementiert
if (gps_alive_cnt < 1000) gps_alive_cnt += 600; // Timeoutzaehler. Wird in Motorregler Routine ueberwacht und dekrementiert
if (gps_home_position.status > 0) //Nur wenn Home Position vorliegt
{
gps_rel_act_position.utm_east = (int) (gps_act_position.utm_east - gps_home_position.utm_east);
148,23 → 148,26
{
if (((actual_status.gpsfix_type & 0x03) >=2) && ((actual_status.nav_status_flag & 0x01) >=1)) // nur wenn Daten aktuell und gueltig sind
{
actual_status.status = 0;
gps_act_position.utm_east = actual_pos.utm_east/10;
gps_act_position.utm_north = actual_pos.utm_north/10;
gps_act_position.utm_alt = actual_pos.utm_alt/10;
gps_act_position.speed_gnd = actual_speed.speed_gnd/10;
gps_act_position.speed_gnd = actual_speed.speed_gnd/10;
gps_act_position.heading = actual_speed.heading/100000;
actual_pos.status = 0; //neue ublox Messages anfordern
// gps_act_position.speed_gnd = actual_speed.speed_gnd/10;
// gps_act_position.speed_gnd = actual_speed.speed_gnd/10;
// gps_act_position.heading = actual_speed.heading/100000;
actual_speed.status = 0;
gps_act_position.status = 1;
n = 0; //Daten gueltig
}
else
{
gps_act_position.status = 0; //Keine gueltigen Daten
n = 2;
gps_act_position.status = 0; //Keine gueltigen Daten
actual_speed.status = 0;
actual_status.status = 0;
actual_pos.status = 0; //neue ublox Messages anfordern
n = 2;
}
actual_pos.status = 0; //neue ublox Messages anfordern
actual_status.status = 0;
actual_speed.status = 0;
}
return (n);
}
307,7 → 310,7
if ((gps_state != GPS_CRTL_HOLD_ACTIVE) && (gps_state != GPS_CRTL_HOME_ACTIVE))
{
cnt++;
if (cnt > 500) // erst nach Verzoegerung
if (cnt > 200) // erst nach Verzoegerung
{
// Erst mal initialisieren
cnt = 0;
356,7 → 359,7
if (gps_state != GPS_CRTL_HOLD_ACTIVE)
{
cnt++;
if (cnt > 500) // erst nach Verzoegerung
if (cnt > 400) // erst nach Verzoegerung
{
cnt = 0;
// aktuelle positionsdaten abspeichern
554,8 → 557,8
 
//I Werte begrenzen
#define INT1_MAX (20 * GPS_V)
int_east1 = ((((long)int_east) * Parameter_UserParam2)/32);
int_north = ((((long)int_north) * Parameter_UserParam2)/32);
int_east1 = ((((long)int_east) * Parameter_UserParam2)/32)/GPS_USR_PAR_FKT;
int_north1 = ((((long)int_north) * Parameter_UserParam2)/32)/GPS_USR_PAR_FKT; //Fehler behoben am 17.12.2007 vorher int_north=
if (int_east1 > INT1_MAX) int_east1 = INT1_MAX; //begrenzen
else if (int_east1 < -INT1_MAX) int_east1 = -INT1_MAX;
if (int_north1 > INT1_MAX) int_north1 = INT1_MAX; //begrenzen
562,8 → 565,8
else if (int_north1 < -INT1_MAX) int_north1 = -INT1_MAX;
 
//PID Regler Werte aufsummieren
gps_reg_x = ((int)int_east1 + ((dist_east * Parameter_UserParam1 * diff_p)/(8*2))+ ((diff_east_f * diff_v * Parameter_UserParam3)/10)); // I + P +D Anteil X Achse
gps_reg_y = ((int)int_north1 + ((dist_north * Parameter_UserParam1 * diff_p)/(8*2))+ ((diff_north_f * diff_v * Parameter_UserParam3)/10)); // I + P +D Anteil Y Achse
gps_reg_x = ((int)int_east1 + ((dist_east * (Parameter_UserParam1/GPS_USR_PAR_FKT) * diff_p)/(8*2))+ ((diff_east_f * diff_v * (Parameter_UserParam3/GPS_USR_PAR_FKT))/10)); // I + P +D Anteil X Achse
gps_reg_y = ((int)int_north1 + ((dist_north * (Parameter_UserParam1/GPS_USR_PAR_FKT) * diff_p)/(8*2))+ ((diff_north_f * diff_v * (Parameter_UserParam3/GPS_USR_PAR_FKT))/10)); // I + P +D Anteil Y Achse
 
//Ziel-Richtung bezogen auf Nordpol bestimmen
GPS_hdng_abs_2trgt = arctan_i(gps_reg_x,gps_reg_y);
/branches/salvo_gps/Basis_v0067g/tags/v0003/README_Gps_Deutsch.txt
0,0 → 1,79
*********************************************************************
GPS Implementierung von Peter Muehlenbrock ("Salvo") für Mikrokopter/FlightCrtl
Stand 23.12.2007
Verwendung der SW ohne Gewaehr. Siehe auch die Lizenzbedingungen in File Licensce_LPGL.txt und Licensce_GPL.txt
Die Version basiert auf Holgers V00.67g.
*********************************************************************
Hardware-Voraussetzungen:
Kalibrierter Kompass vom Typ CMPS03, waagrecht eingebaut
GPS Modul vom Typ ublox, Die Meldungungen "NAV_STATUS", "NAV_POSUTM" und "NAV_VELNED"
mussen mit 4 HZ Updaterate aktiviert sein. Alle Meldungen im NMEA Format muessen deaktivert sein.
Anschluss an RX Port der FlightCRtl. Baudrate ist 57600 wie beim Kopter Tool.
 
Software-Voraussetzungen:
In timer0.h muss die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters
eingetragen sein. Wenn KOMPASS_OFFSET > 0 wird dieser Wert genommen
Wenn KOMPASS_OFFSET = 0 ist wird der UserParameter4 verwendet (=hexfile). Da die userparameter nur ein Byte lang sind werden Offsets von 0...358 Grad
durch einen Wert von 0...179 dargestellt.
 
Betriebs-Voraussetzungen:
Damit der Kompass sauber funktioniert, muss die waagrechte Lage (Gashebel Vollanschlag und Gier rechts)
im Eeprom abgespeichert worden sein.
 
Parametrierung:
Der GPS Hold Regler ist ein PID Regler, der ueber die UserParameter1(P), 2(I) und D(3) gesteuert wird.
UserParameter1 beschreibt den P-Anteil, UserParameter2 den I-Anteil und UserParameter3 den D-Anteil.
Hier kann und muss gespielt werden.Alle Parameter koennen direkt im Mikrokoptertool in den Settings eingestellt werden.
Standardwert ist 90 für den P-Anteil, 16 für den I-Anteil und 130 für den D-Anteil.
Je größer die Werte desto "ruckeliger" reagiert die Regelung aber desto schneller und stärker greift sie auch.
Wenn alle 0 sind, ist der Regler deaktiviert.
 
Voraussetzungen für GPS_Hold:
Neben den genannten HW und SW Voraussetzungen muß beim Kalibrieren das GPS MOdul bereits Positionsdaten liefern.
Nur dann wird die Home Position abgespeichert und nur dann wird GPS_Hold aktiviert.
Kenntlich gemacht wird dies durch einen etwas längeren Piepser nach dem Kalibrieren.
Das GPS Aktiv Flag im Setting muss aktiviert sein.
Eine Ausrichtung des Kopters nach Nord etc. ist nicht erforderlich.
 
Aktivierung GPS_Hold im Flug:
Wenn alle genannten Voraussetzungen erfüllt sind, wird GPS Hold im Flug automatisch aktiviert, sobald der Nick und Roll Stick
fürca. 500msec in Neutrallage sind. Weicht einer der Sticks davon ab (Parameter GPS_STICK_HOLDOFF) oder liefert das GPS Modul oder fällt der
Kompass aus wird GPS_Hold sofort deaktiviert.
Damit kann jederzeit die manuelle Kontrolle wieder übernommen werden.
 
GPS_Hold regelt nur horizontale Abweichungen, keine Hoehe.
Der Magnetkompass wird nur in waagrechter Lage dazu benutzt einen internen aus dem Giergyro ermittelten "Ersatz"kompasswert
nach zu kalibrieren. Daher funktioniert die Bstimmung der Kopterausrichtung in jeder Lebenslage, sofern nur ab und zu
der Magnetkompass in die waagrechte Lage kommt.
Ein 3D Kompass ist damit überflüssig.
 
GPS Rücksturz zur Basis (GPS Home) Funktion
Voraussetzungen wie bei GPS Hold.
Die Funktion kann im Flug aktiviert werden durch Setzen des Hoehenreglerschalters.
Holgers Code habe ich so abgeändert daß der Höhenregler mit "Parameter_MaxHoehe" ab 50 aktiviert wird.
Mit einem Schalter mit Neutrallage können damit die Funktionen
Alles aus - Hoehenregler ein, GPS Home Aus - Hoehenregler Ein UND GPS Home ein
aktiviert werden. Ist noch nicht die beste Lösung und werde ich noch anpassen
 
Weitere Änderungen:
-Bei Unterschreiten der eingestellten Warnschwelle für UBAT ertönt zunächst wie gewohnt der Piepser. Geht die Spannung weiter
runter wird zwangsweise die Gaseinstellung langsam reduziert um den Kopter zum Landen zu bringen.
-Der Ausgang PC6 kann benutzt werden um einen Externen Multiplexer zu schalten. Dieser schaltet entweder die GPS Daten
(Wenn Motoren eingeschaltet sind) oder den Ausgang des Bluetoothmoduls (wenn Motoren ausgeschaltet sind) auf den RX
Eingang der FlightCrtl. Damit kann eine zweite UART Schnittstelle bzw. die manuelle Umschaltung entfallen
-Bei vorhandenem Kompass wird eine automatische Kompensation der Giergyrodrift durchgeführt.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/branches/salvo_gps/Basis_v0067g/tags/v0003/README_Gps_English.txt
0,0 → 1,59
*********************************************************************
GPS Implementation by Peter Muehlenbrock ("Salvo") for Mikrokopter/FlightCrtl
As of 23.12.2007
Please note Licensce_LPGL.txt and Licensce_GPL.txt
This SW is based on Holgers V00.67g.
*********************************************************************
Hardware-requirements:
Calibrated compass of type CMPS03, horizontally adjusted
GPS module of type ublox, The messages "NAV_STATUS", "NAV_POSUTM" and "NAV_VELNED"
must be activated with 4 HZ update rate. All messages of type NMEA should be disabled.
The TX port of the GPS module must be connected to the RX input of the Flight Crtl. Baudrate is 57600 (like Kopter Tool).
 
UserParameter 4 tells the software the orientation for the compass. The difference between the "north" direction of the kopter
and the north direction of the compass is represented as follows 0...360 Grad Offset corresponds to a value of 0...180.
(A userparameter ist only 1 byte long and therefore can not directly represent 0..360 degree). Please check the correct values via the Koptertool
The "Kompass" debug value has to show the correct orientation: kopter front oriented to north => value approx 0 Degree)
 
Other requirements:
Please calibrate the ACC Sensor values (pitch full, yaw full right) in horizontal orientation of the kopter.
 
Parameters:
The GPS Hold regulator is of type PID: UserParameter1 =P(proportional), UserParameter2 = I(ntegral), UserParameter3 = D(ifferential).
Standardvalues for P,I and D are 90,24,130.
 
 
Requirements for GPS_Hold:
The gps module has do provide a 3D-fix. If succesfull, you can hear a longer beep when performing a gyro calibration.
The red led on the FlightCrtl flashes with a 4 Hz rate.
 
 
Enabling GPS_Hold in fligh:
GPS Hold is automatically activated if the sticks for roll and nick are in neutral position for about 400ms.
Moving the stick disables immediately the Hold mode.
 
 
GPS Coming Home function
-- coming later :-)
 
 
Other changes:
-automatically pitch reduction if the battery voltage falls more than 0.2V below the warning limit.
-Output PC6 can be used to switch TX data between a Bluetooth and the GPS Module (further hardware required) to the RX input of the FlightCrtl
-automatically Yaw gyro compensation if compass is available.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/branches/salvo_gps/Basis_v0067g/tags/v0003/eeprom.c
22,8 → 22,9
EE_Parameter.Luftdruck_D = 50; // Wert : 0-250
EE_Parameter.Hoehe_ACC_Wirkung = 50; // Wert : 0-250
EE_Parameter.Hoehe_Verstaerkung = 4; // Wert : 0-50
EE_Parameter.Stick_P = 4; //2 // Wert : 1-6
EE_Parameter.Stick_D = 8; //8 // Wert : 0-64
EE_Parameter.Stick_P = 3; //2 // Wert : 1-6
//EE_Parameter.Stick_D = 8; //8 // Wert : 0-64
EE_Parameter.Stick_D = 4; //8 // Wert : 0-64 Salvo
EE_Parameter.Gier_P = 14; // Wert : 1-20
EE_Parameter.Gas_Min = 15; // Wert : 0-32
EE_Parameter.Gas_Max = 250; // Wert : 33-250
36,9 → 37,9
EE_Parameter.NotGasZeit = 60; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.I_Faktor = 32;
EE_Parameter.UserParam1 = 0; //zur freien Verwendung
EE_Parameter.UserParam2 = 0; //zur freien Verwendung
EE_Parameter.UserParam3 = 0; //zur freien Verwendung
EE_Parameter.UserParam1 = 90; // P Anteil GPS
EE_Parameter.UserParam2 = 24; // I Anteil GPS
EE_Parameter.UserParam3 = 130; //D Anteil GPS
EE_Parameter.UserParam4 = 0; //zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
/branches/salvo_gps/Basis_v0067g/tags/v0003/fc.c
85,7 → 85,6
unsigned char HoehenReglerAktiv = 0;
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
 
 
//Salvo 12.10.2007
uint8_t magkompass_ok=0;
uint8_t gps_cmd = GPS_CMD_STOP;
94,9 → 93,12
int w,v;
//Salvo End
 
//Salvo 2.9.2007 Ersatzkompass
volatile long GyroKomp_Int;
volatile int GyroKomp_Value; // Der ermittelte Kompasswert aus Gyro und Magnetkompass
//Salvo 15.12.2007 Ersatzkompass und Giergyrokompensation
long GyroKomp_Int;
long int GyroGier_Comp;
int GyroKomp_Value; // Der ermittelte Kompasswert aus Gyro und Magnetkompass
short int cnt_stickgier_zero =0;
int gyrogier_kompass;
// Salvo End
 
float GyroFaktor;
155,6 → 157,9
void SetNeutral(void)
//############################################################################
{
// Salvo 9.12.2007
RX_SWTCH_ON; //GPS Daten auf RX eingang schalten
// Salvo End
NeutralAccX = 0;
NeutralAccY = 0;
NeutralAccZ = 0;
197,6 → 202,7
MesswertNick = 0;
MesswertRoll = 0;
MesswertGier = 0;
GyroGier_Comp =0;
StartLuftdruck = Luftdruck;
HoeheD = 0;
Mess_Integral_Hoch = 0;
234,7 → 240,8
IntegralAccZ += Aktuell_az - NeutralAccZ;
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++
//Salvo 12.11.2007
GyroKomp_Int += MesswertGier;
GyroKomp_Int += (long)MesswertGier;
GyroGier_Comp += (long)MesswertGier;
//Salvo End
Mess_Integral_Gier += MesswertGier;
Mess_Integral_Gier2 += MesswertGier;
390,7 → 397,6
}
 
 
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
458,7 → 464,6
//******PROVISORISCH***************
GRN_ON;
 
GRN_ON;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
468,7 → 473,7
// und dieser dann langsam zwangsweise reduziert
if (UBat <= EE_Parameter.UnterspannungsWarnung - 2) //Unterhalb der Piepser Schwelle aktivieren
{
if (ubat_cnt > 700)
if (ubat_cnt > 1000)
{
ubat_cnt = 0;
if (gas_actual > ((gas_mittel*12)/15)) gas_actual--;
584,7 → 589,7
if (gps_home_position.status > 0 )
{
Delay_ms(1000); //akustisch verkuenden dass GPS Home Daten da sind
beeptime = 2000;
beeptime = 1000;
Delay_ms(500);
}
}
600,12 → 605,24
delay_neutral = 0;
modell_fliegt = 0;
SetNeutral();
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],NeutralAccX / 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],NeutralAccX % 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],NeutralAccY / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],NeutralAccY % 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)NeutralAccZ / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)NeutralAccZ % 256);
if (ACC_FIXED > 0)
{
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],ACC_NICK_NEUTRAL / 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],ACC_NICK_NEUTRAL % 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],ACC_ROLL_NEUTRAL / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],ACC_ROLL_NEUTRAL % 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)ACC_Z_NEUTRAL / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)ACC_Z_NEUTRAL % 256);
}
else
{
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK],NeutralAccX / 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_NICK+1],NeutralAccX % 256); // ACC-NeutralWerte speichern
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL],NeutralAccY / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_ROLL+1],NeutralAccY % 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z],(int)NeutralAccZ / 256);
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACC_Z+1],(int)NeutralAccZ % 256);
}
Piep(GetActiveParamSetNumber());
}
}
625,6 → 642,10
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(++delay_einschalten > 200)
{
int n;
// Salvo 9.12.2007
RX_SWTCH_ON; //GPS Daten auf RX eingang schalten
// Salvo End
delay_einschalten = 200;
modell_fliegt = 1;
MotorenEin = 1;
637,6 → 658,7
Mess_IntegralRoll2 = IntegralRoll;
SummeNick = 0;
SummeRoll = 0;
n= GPS_CRTL(GPS_CMD_STOP); //GPS Lageregelung beenden
}
}
else delay_einschalten = 0;
648,6 → 670,9
{
if(++delay_ausschalten > 200) // nicht sofort
{
// Salvo 9.12.2007
RX_SWTCH_OFF; //Bluetooth Daten auf RX eingang schalten
// Salvo End
MotorenEin = 0;
delay_ausschalten = 200;
modell_fliegt = 0;
915,10 → 940,16
else last_n_n = 1;
} else last_n_n = 0;
} else cnt = 0;
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt;
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt;
 
//Salvo 11.12.2007
w = (abs(Mittelwert_AccNick));
v = (abs(Mittelwert_AccRoll));
if ((w < ACC_WAAGRECHT_LIMIT) && (v < ACC_WAAGRECHT_LIMIT)) // Gyro nur in wwagrechter Lage nachtrimmen
{
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt;
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt;
}
//Salvo End
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerNick) / 4096;
 
951,11 → 982,16
{
cnt = 0;
}
//DebugOut.Analog[27] = ausgleichRoll;
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
//if(cnt > 1) beeptime = 50;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
//Salvo 11.12.2007
w = (abs(Mittelwert_AccNick));
v = (abs(Mittelwert_AccRoll));
if ((w < ACC_WAAGRECHT_LIMIT) && (v < ACC_WAAGRECHT_LIMIT)) // Gyro nur in wwagrechter Lage nachtrimmen
{
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
}
//Salvo End
//DebugOut.Analog[23] = AdNeutralNick;//10*(AdNeutralNick - StartNeutralNick);
//DebugOut.Analog[24] = 10*(AdNeutralRoll - StartNeutralRoll);
}
976,35 → 1012,55
MittelIntegralRoll = 0;
MittelIntegralNick2 = 0;
MittelIntegralRoll2 = 0;
ZaehlMessungen = 0;
}
ZaehlMessungen = 0;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 20) // war 35
{
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) NeueKompassRichtungMerken = 1;
}
tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
tmp_int += (EE_Parameter.Gier_P * StickGier) / 4;
sollGier = tmp_int;
Mess_Integral_Gier -= tmp_int;
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
// Salvo Ersatzkompass 26.9.2007 **********************
 
} // Ende Abgleich
 
// Salvo Ersatzkompass und Giergyrokompensation 15.12.2007 **********************
if ((Kompass_Neuer_Wert > 0))
{
Kompass_Neuer_Wert = 0;
w = (abs(Mittelwert_AccNick));
v = (abs(Mittelwert_AccRoll));
if ((w < ACC_WAAGRECHT_LIMIT) && (v < ACC_WAAGRECHT_LIMIT)) //Ersatzkompass nur mit Magnetkompass aktualisieren wenn alles ok
if ((w < ACC_WAAGRECHT_LIMIT) && (v < ACC_WAAGRECHT_LIMIT)) //Ersatzkompass und Giergyro nur mit Magnetkompass aktualisieren wenn alles ok
{
if ((abs(KompassValue - Kompass_Value_Old)) <= 5) // Aufeinanderfolgende Werte duerfen nur minimal abweichen
{
 
if ((abs(StickGier) < 20)) //Giergyroabgleich mit Kompass
{
if (cnt_stickgier_zero < 255) cnt_stickgier_zero += 1;
if (cnt_stickgier_zero > 1) // nur Abgleichen wenn keine Stickbewegung da
{
w = (int) (GyroGier_Comp/(long)GYROKOMP_INC_GRAD_DEFAULT);
v = KompassValue - gyrogier_kompass; // realen Drehwinkel seit letztem Ruecksetzen von GyroGier_Comp bestimmen
if (v <-180) v +=360; // Uberlaufkorrektur
if (v > 180) v -=360; // Uberlaufkorrektur
 
v = w -v; //Differenz Gyro zu Kompass ist der Driftfehler
 
#define GIER_COMP_MAX 4
if (v > GIER_COMP_MAX) v= GIER_COMP_MAX;
if (v < -GIER_COMP_MAX) v= - GIER_COMP_MAX;
if (abs(w) > 1)
{
GyroGier_Comp = 0;
gyrogier_kompass = KompassValue; // Kompasswert merken
AdNeutralGier -= v;
}
}
}
else
{
gyrogier_kompass = KompassValue; // Kompasswert merken
cnt_stickgier_zero = 0;
GyroGier_Comp = 0;
}
 
magkompass_ok = 1; // Flag dass Magnetkompass stabil arbeitet
GyroKomp_Int = (GyroKomp_Int )/GYROKOMP_INC_GRAD_DEFAULT;
GyroKomp_Int = (GyroKomp_Int )/(long)GYROKOMP_INC_GRAD_DEFAULT;
 
w = KompassValue - GyroKomp_Int;
if ((w > 0) && (w < 180))
{
1022,18 → 1078,24
{
++GyroKomp_Int;
}
if (GyroKomp_Int < 0) GyroKomp_Int = GyroKomp_Int + 360;
GyroKomp_Int = (GyroKomp_Int%360) * GYROKOMP_INC_GRAD_DEFAULT; // An Magnetkompasswert annaehern
if (GyroKomp_Int < 0) GyroKomp_Int = GyroKomp_Int + 360L;
GyroKomp_Int = (GyroKomp_Int%360L) * (long)GYROKOMP_INC_GRAD_DEFAULT; // An Magnetkompasswert annaehern
}
}
else magkompass_ok = 0;
}
else
{
magkompass_ok = 0;
GyroGier_Comp = 0;
}
Kompass_Value_Old = KompassValue;
}
// Salvo End *************************
 
// Salvo 6.10.2007
// GPS Home aktivieren wenn Knueppel in Ruhelage und Hoehenschalter aktiviert ist
//GPS Hold Aktiveren wenn Knueppel in Ruhelage sind
if ((EE_Parameter.GlobalConfig & CFG_GPS_AKTIV) && (abs(StickRoll) < GPS_STICK_HOLDOFF) && (abs(StickNick) < GPS_STICK_HOLDOFF) && (gps_alive_cnt > 0))
if ((EE_Parameter.GlobalConfig & CFG_GPS_AKTIV) && (abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) < GPS_STICK_HOLDOFF)
&& (abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < GPS_STICK_HOLDOFF) && (gps_alive_cnt > 0) && (GasMischanteil > 30))
{
if (Parameter_MaxHoehe > 200)
{
1056,8 → 1118,25
n= GPS_CRTL(gps_cmd); //GPS Lageregelung beenden
}
}
if (gps_state != GPS_CRTL_IDLE) if (TimerWerteausgabe == 12) LED_J16_OFF; //led im GPS Mode schnell blinken lassen
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 20) // war 35
{
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX)) NeueKompassRichtungMerken = 1;
}
tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
tmp_int += (EE_Parameter.Gier_P * StickGier) / 4;
sollGier = tmp_int;
Mess_Integral_Gier -= tmp_int;
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Kompass
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV) && (Kompass_present > 0))
1080,9 → 1159,9
// Salvo Kompasssteuerung **********************
if (magkompass_ok > 0) Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten
// Salvo End
}
 
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1091,6 → 1170,13
if(!TimerWerteausgabe--)
{
TimerWerteausgabe = 24;
 
// Salvo 13.12.2007 Beleuchtung steuern
if (!(beeptime & BeepMuster)) LED_J16_FLASH;
else if (MotorenEin) LED_J16_ON;
else LED_J16_OFF;
// Salvo End
DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[2] = Mittelwert_AccNick;
1110,14 → 1196,19
DebugOut.Analog[21] = StickNick;
DebugOut.Analog[22] = StickRoll;
DebugOut.Analog[23] = StickGier;
 
 
// GPS Debugging
DebugOut.Analog[26] = gps_rel_act_position.utm_east;
// DebugOut.Analog[10] = GPS_dist_2trgt/10;
// DebugOut.Analog[11] = GPS_hdng_rel_2trgt;
DebugOut.Analog[10] = Parameter_UserParam1;
DebugOut.Analog[11] = Parameter_UserParam3;
DebugOut.Analog[24] = GPS_Nick;
DebugOut.Analog[25] = GPS_Roll;
DebugOut.Analog[26] = gps_rel_act_position.utm_east; //in 10cm ausgeben
DebugOut.Analog[27] = gps_rel_act_position.utm_north;
DebugOut.Analog[28] = gps_rel_act_position.utm_alt;
DebugOut.Analog[29] = gps_sub_state+(20*gps_cmd);
 
DebugOut.Analog[29] = gps_state + (gps_sub_state*10)+(50*gps_cmd);
DebugOut.Analog[30] = GPS_dist_2trgt;
DebugOut.Analog[31] = (int) GyroGier_Comp;
/* DebugOut.Analog[16] = motor_rx[0];
DebugOut.Analog[17] = motor_rx[1];
DebugOut.Analog[18] = motor_rx[2];
1153,8 → 1244,8
MesswertGier = MesswertGier * (GyroFaktor) + Integral_Gier * IntegralFaktor/2;
 
//DebugOut.Analog[28] = MesswertRoll;
DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
//DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
//DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
 
// Maximalwerte abfangen
#define MAX_SENSOR 2048
/branches/salvo_gps/Basis_v0067g/tags/v0003/fc.h
6,15 → 6,16
#define _FC_H
 
extern volatile unsigned int I2CTimeout;
//Salvo 9.12.2007 Neutralwerte fuer ACC Sensor nur noch infohalber drin
//Salvo 9.12.2007 Neutralwerte fuer ACC Sensor nur verwendet wenn ACC_FIXED >0
#define ACC_FIXED 0 // wenn > 0werden diese Werte beim ACC Kalbibrieren ins Eeprom geschrieben
#define ACC_NICK_NEUTRAL 518 // ADC Wandler Wert in Neutrallage (0g): Vom individuellen Sensor abhaengig
#define ACC_ROLL_NEUTRAL 516 // ADC Wandler wert in Neutrallage (0g)
 
#define ACC_Z_NEUTRAL 740 // ADC Wandler wert in Neutrallage (0g)
#define ACC_WAAGRECHT_LIMIT 100 // Nick und Roll kleiner als dieser Wert gelten als Kriterium fuer waagrechte Lage
// Salvo End
//Salvo 2.9.2007 Ersatzkompass: Gyroincrements/Grad als Defaultwert *****
// Laut Datenblatt sind die Werte ueber Zeit und Temperatur sehr stabil.
#define GYROKOMP_INC_GRAD_DEFAULT 1250 // Gyroincrements/Grad als Defaultwert
// Laut Datenblatt sind di; Werte ueber Zeit und Temperatur sehr stabil.
#define GYROKOMP_INC_GRAD_DEFAULT 1300 // Gyroincrements/Grad als Defaultwert
// Salvo End
 
extern unsigned char Sekunde,Minute;
40,9 → 41,10
 
 
//Salvo 2.9.2007 Ersatzkompass
extern volatile long GyroKomp_Int;
extern volatile int GyroKomp_Inc_Grad;
extern volatile int GyroKomp_Value; // Der ermittelte Kompasswert aus Gyro und Magnetkompass
extern long GyroKomp_Int;
extern long int GyroGier_Comp;
extern int GyroKomp_Inc_Grad;
extern int GyroKomp_Value; // Der ermittelte Kompasswert aus Gyro und Magnetkompass
// Salvo End
 
void MotorRegler(void);
/branches/salvo_gps/Basis_v0067g/tags/v0003/flightctrl.aws
1,0 → 0,0
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="G:\Mikrokopter\Flight_Crtl\v0067g\timer0.c" Position="266 101 894 593" LineCol="0 0" State="Maximized"/><File00001 Name="G:\Mikrokopter\Flight_Crtl\v0067g\analog.h" Position="288 130 908 592" LineCol="0 0" State="Maximized"/><File00002 Name="G:\Mikrokopter\Flight_Crtl\v0067g\makefile" Position="310 159 930 621" LineCol="7 0" State="Maximized"/><File00003 Name="G:\Mikrokopter\Flight_Crtl\v0067g\main.c" Position="332 188 952 650" LineCol="231 0" State="Maximized"/><File00004 Name="G:\Mikrokopter\Flight_Crtl\v0067g\fc.c" Position="354 217 974 679" LineCol="1174 0" State="Maximized"/><File00005 Name="G:\Mikrokopter\Flight_Crtl\v0067g\fc.h" Position="262 71 1048 774" LineCol="9 0" State="Maximized"/></Files></AVRWorkspace>
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="G:\Mikrokopter\Flight_Crtl\v0067g\timer0.c" Position="266 101 1248 593" LineCol="109 0" State="Maximized"/><File00001 Name="G:\Mikrokopter\Flight_Crtl\v0067g\analog.h" Position="288 130 1262 592" LineCol="0 0" State="Maximized"/><File00002 Name="G:\Mikrokopter\Flight_Crtl\v0067g\makefile" Position="310 159 1284 621" LineCol="411 0" State="Maximized"/><File00003 Name="G:\Mikrokopter\Flight_Crtl\v0067g\main.c" Position="262 71 1402 774" LineCol="125 0" State="Maximized"/></Files></AVRWorkspace>
/branches/salvo_gps/Basis_v0067g/tags/v0003/gps.h
5,6 → 5,9
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern signed int GPS_dist_2trgt; //vorzeichenlose Distanz zum Ziel
extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters
 
extern void GPS_Neutral(void);
 
extern void Get_Ublox_Msg(uint8_t rx) ;
62,7 → 65,7
typedef struct { // Struktur fuer Relative GPS Daten (bezogen z.B. auf Home Position)
int utm_east; // UTM Ost in 10 cm
int utm_north; // UTM Nord in 10 cm
int utm_alt ; // UTM Altiude in 10 cm
int utm_alt ; // UTM Altitude in 10 cm
uint8_t status; // 0: keine gueltigen Daten 1: alles ok
 
} GPS_REL_POSITION_t;
84,6 → 87,10
extern signed hdng_2home,dist_2home; //Richtung und Entfernung zur home Position
extern long int dist_flown;
 
 
#define GPS_USR_PAR_FKT 8 //Faktor durch den die Userparameter getielt werden
 
 
// Zustaende der zentralen GPS statemachine
#define GPS_CRTL_IDLE 0 //
#define GPS_CRTL_HOLD_ACTIVE 1 // Lageregelung aktiv
110,7 → 117,7
// GPS Lageregler
#define GPS_NICKROLL_MAX 40 // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll
#define GPS_DIST_MAX 400 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm)
#define GPS_STICK_HOLDOFF 25 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert
#define GPS_STICK_HOLDOFF 10 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert
#define GPS_V 8 // Teilerfaktor Regelabweichung zu Ausgabewert
 
// Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus.
/branches/salvo_gps/Basis_v0067g/tags/v0003/main.c
62,7 → 62,6
eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * number], length);
}
 
 
// -- Parametersatz ins EEPROM schreiben ---
// number [0..5]
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
96,7 → 95,9
PORTB = 0x00;
for(timer = 0; timer < 1000; timer++); // verzögern
if(PINB & 0x01) PlatinenVersion = 11; else PlatinenVersion = 10;
DDRC = 0x81; // SCL
// Salvo 9.12.2007 PC6 als Ausgang
// DDRC = 0x81; // SCL
DDRC = 0xCD; // SCL und PC2,PC3, PC6 als Ausgang
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB = 0x01; // LED_Rot
115,7 → 116,7
StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0;
 
ROT_OFF;
 
Timer_Init();
UART_Init();
rc_sum_init();
170,7 → 171,10
SetNeutral();
 
ROT_OFF;
// Salvo 9.12.2007 Defaultwert fuer Umschaltsignal fuer RX: Bluettooth Modul aktiv
RX_SWTCH_OFF;
// Salvo End
beeptime = 2000;
DebugIn.Analog[1] = 1000;
DebugIn.Digital[0] = 0x55;
186,7 → 190,7
I2CTimeout = 5000;
while (1)
{
if (UpdateMotor) // ReglerIntervall
if (UpdateMotor) // ReglerIntervall
{
// SPI_TransmitByte();
UpdateMotor=0;
195,6 → 199,7
//PORTD &= ~0x08;
SendMotorData();
ROT_OFF;
 
if(PcZugriff) PcZugriff--;
else
{
/branches/salvo_gps/Basis_v0067g/tags/v0003/main.h
19,6 → 19,15
#define GRN_ON PORTB |= 0x02
#define GRN_FLASH PORTB ^= 0x02
 
 
//Salvo 9.12.2007 Umschaltsignal fuer Bluetooth bzw. GPS Daten auf PC7
#define RX_SWTCH_ON PORTC |= 0x40
#define RX_SWTCH_OFF PORTC &= ~0x40
#define LED_J16_ON PORTC |= 0x04
#define LED_J16_OFF PORTC &= ~0x04
#define LED_J16_FLASH PORTC ^= 0x04
//Salvo End
 
#define F_CPU SYSCLK
//#ifndef F_CPU
//#error ################## F_CPU nicht definiert oder ungültig #############
/branches/salvo_gps/Basis_v0067g/tags/v0003/makefile
4,7 → 4,7
F_CPU = 20000000
#-------------------------------------------------------------------
HAUPT_VERSION = 0
NEBEN_VERSION = 02
NEBEN_VERSION = 01
VERSION_INDEX = 0
 
VERSION_KOMPATIBEL = 7 # PC-Kompatibilität
/branches/salvo_gps/Basis_v0067g/tags/v0003/timer0.c
27,8 → 27,6
 
// Aenderungen von Peter Muehlenbrock ("Salvo") Stand 21.9.2007
/*
Driftkompensation fuer Gyros verbessert
Linearsensor mit fixem Neutralwert
Ersatzkompass abgeleitet aus Magnetkompass und Giergyro fuer nahezu neigungsubhaengige Kompassfunktion
*/
SIGNAL (SIG_OVERFLOW0) // 8kHz
84,10 → 82,11
{
if((cntKompass) && (cntKompass < 4000))
{
// Salvo Kompassoffset 30.8.2007 und 21.9.2007 ***********
// Salvo Kompassoffset 23.12.2007 ***********
Kompass_present = 255;
Kompass_Value_Old = KompassValue;
KompassValue = cntKompass -KOMPASS_OFFSET;
// Kompass_Value_Old = KompassValue;
if (KOMPASS_OFFSET > 0) KompassValue = cntKompass -KOMPASS_OFFSET;
else KompassValue = cntKompass - ((int) (Parameter_UserParam4*2));
 
if (KompassValue < 0)
{
/branches/salvo_gps/Basis_v0067g/tags/v0003/timer0.h
3,7 → 3,8
#define TIMER_RELOAD_VALUE 250
 
// Salvo Kompassoffset 31.8.2007 ***********
#define KOMPASS_OFFSET 135 // Winkel zwischen Nordachse Kopter und Nordachse Kompass
#define KOMPASS_OFFSET 0 // Winkel zwischen Nordachse Kopter und Nordachse Kompass
// Wenn 0 wird der UserParameter4 fuer den Offset verwendet (0..360 Grad entspricht 0 ..180)
// Salvo End
 
void Timer_Init(void);
/branches/salvo_gps/Basis_v0067g/tags/v0003/uart.c
31,7 → 31,7
struct str_VersionInfo VersionInfo;
int Debug_Timer;
//Salvo 26.10.2007
int dataset_cnt=0; //Zahelt die uebertragenen Debugdaten
int dataset_cnt=0; //Zaehlt die uebertragenen Debugdaten
//Salvo End
 
const unsigned char ANALOG_TEXT[32][16] =
47,8 → 47,8
"Gas ",
"KompassValue ",
"Ersatzkompass ",
"Empfang ", //10
"Analog11 ",
"Usr_Par1 ", //10
"Usr_par3 ",
"Motor_Vorne ",
"Motor_Hinten ",
"Motor_Links ",
61,14 → 61,14
"Stick_Nick ",
"Stick_Roll ",
"Stick_Gier ",
"RollOffset ",
"IntRoll*Faktor ", //25
"GPS_Nick ",
"GPS_Roll ", //25
"utm_east ",
"utm_north ",
"utm_alt ",
"gps_state ",
"I-LageRoll ", //30
"StickRoll "
"GPS_dist_2trgt ", //30
"GyroGier_Comp "
};