Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 798 → Rev 911

/Spektrum-Diversity/README.txt
0,0 → 1,5
This is a Subversion repository; use the 'svnadmin' tool to examine
it. Do not add, delete, or modify files here unless you know how
to avoid corrupting the repository.
 
Visit http://subversion.tigris.org/ for more information.
/Spektrum-Diversity/V0.82a/Flight-Ctrl_MEGA644_V0_82a_SVN1849.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/Spektrum-Diversity/V0.82a/Flight-Ctrl_MEGA644_V0_82a_SVN1849.hex
0,0 → 1,3651
:100000000C94C1060C9407070C9407070C9407077F
:100010000C9407070C9407070C9407070C94070728
:100020000C9407070C9442180C9407070C940707CC
:100030000C94BA310C9407070C9407070C9407072B
:100040000C9407070C9407070C94A6150C9407074B
:100050000C94B5140C9407070C94FA0B0C94070736
:100060000C94021A0C9407070C94702D0C9407073B
:100070000C940D6F0C9407070C94096A2F1A381A08
:100080003D1A461A5D1A471B741A841AA11A8B1C52
:10009000471B561B671B961BB41BD11B271C7D1CC3
:1000A0009B1F4820EA204E21B8215622FA235224D1
:1000B000C0240A255425A125EE253F269A26272768
:1000C000B327A6288E2DC12D012E692E812EBC2E80
:1000D0006E2F28302830283028302830283028301B
:1000E0002830283028302830E22FE42FE92FFC2F49
:1000F000FE2F0A0D3D3D3D3D3D3D3D3D3D3D3D3DE0
:100100003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D1F
:100110003D3D3D3D3D3D3D0A0D004E6F726D616CB4
:1001200020284143432D4D6F646529004865616473
:10013000696E67486F6C64000A0D436F6E74726F6E
:100140006C3A20000A0D466C696768742D74696DFD
:1001500065202575206D696E2020546F74616C3A9E
:100160002575206D696E004F4B0A0D000A0D436125
:100170006C6962726174696E672049522073656EA2
:10018000736F722E2E000A0D3D3D3D3D3D3D3D3DC0
:100190003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D8F
:1001A0003D3D3D3D3D3D3D3D3D3D3D000A0D0A0D82
:1001B0002121204D495353494E4720424C2D435451
:1001C000524C3A202564202121002564000A0D4666
:1001D0006F756E6420424C2D4374726C3A20000A95
:1001E0000D496E697469616C697365643A0A0D0042
:1001F000204C6F77207761726E696E67206C657630
:10020000656C3A2025642E25640020256420436512
:100210006C6C7320000A0D426174743A00416E6781
:100220006C654E69636B20202020202020416E6782
:100230006C65526F6C6C202020202020204163636D
:100240004E69636B20202020202020202041636302
:10025000526F6C6C202020202020202020596177B4
:100260004779726F202020202020202020486569B7
:100270006768742056616C75652020202041636397
:100280005A20202020202020202020202047617379
:1002900020202020202020202020202020436F6D9F
:1002A000706173732056616C7565202020566F6CE9
:1002B00074616765205B302E31565D202052656386
:1002C0006569766572204C6576656C202047797289
:1002D0006F20436F6D70617373202020204D6F7409
:1002E0006F7220312020202020202020204D6F748C
:1002F0006F7220322020202020202020204D6F747B
:100300006F7220332020202020202020204D6F7469
:100310006F72203420202020202020202031362001
:1003200020202020202020202020202020313720A5
:100330002020202020202020202020202031382094
:100340002020202020202020202020202031392083
:1003500020202020202020202020202020536572D3
:10036000766F2020202020202020202020486F761B
:100370006572676173202020202020202043757241
:1003800072656E74205B302E31415D2020436170B8
:100390006163697479205B6D41685D20203234208F
:1003A0002020202020202020202020202032352026
:1003B0002020202020202020202020202032362015
:1003C0002020202020202020202020202032372004
:1003D00020202020202020202020202020493243BF
:1003E0002D4572726F7220202020202020424C2048
:1003F0004C696D6974202020202020202047505314
:100400005F4E69636B20202020202020204750531E
:100410005F526F6C6C202020202020202021212181
:1004200020494E434F4D50415449424C45202121D3
:1004300021000A0D20444143206F7220493243209D
:100440004552524F522120436865636B2049324325
:100450002C2033567265662C2044414320616E6423
:1004600020424C2D4374726C002E00287265736517
:100470007429004163743A20202535756D696E003A
:10048000546F74616C3A2535756D696E00466C6900
:100490006768742D54696D65202000313200313158
:1004A000003130002025632020202D2020202D2009
:1004B00020202D20002025632020202563202020BF
:1004C000256320202025632000202563202020256F
:1004D00063202020256320202025632000424C2D0E
:1004E0004374726C20666F756E642000253369203A
:1004F0002533692025336920253369200025336998
:1005000020253369202533692025336920002533D0
:10051000692025336920253369202533692000426D
:100520004C2054656D706572617475726500253379
:10053000642025336420253364202533642000257E
:100540003364202533642025336420253364200060
:10055000253364202533642025336420253364202B
:1005600000424C2D4374726C204572726F7273207E
:100570000048693A253469202043663A25346920C9
:100580000047733A253469202047693A25346920A9
:10059000004E693A2534692020526F3A253469208B
:1005A0000045787465726E436F6E74726F6C2020B4
:1005B0000052616E67653A2533692D253369005015
:1005C0006F736974696F6E3A2025336900536574DF
:1005D000706F696E74202025336900536572766FE1
:1005E000202000506F7469383A202025336900506C
:1005F0006F7469373A202025336900506F7469366B
:100600003A202025336900506F7469353A2020253F
:10061000336900506F7469343A20202533690050E3
:100620006F7469333A202025336900506F74693242
:100630003A202025336900506F7469313A20202513
:1006400033690053746172743A2020202025356983
:100650000056616C75653A202020202535690048D8
:10066000656164696E673A202025356900436F6DC6
:10067000706173730052432D4368616E6E656C73D5
:100680003A2534690052432D5175616C6974793A89
:10069000202534690052432D525353493A202020DB
:1006A0002025346900526563656976657200446986
:1006B000736368617267653A202535696D4168002A
:1006C000506F7765723A202020202025346957002A
:1006D00043757272656E743A2020202533692E2589
:1006E00031694100566F6C746167653A202020259E
:1006F00033692E25316956005A202020202534697F
:1007000020282533692900526F6C6C20253469201C
:100710002825336929004E69636B20253469202818
:100720002533692900414343202D2053656E736FA3
:1007300072005961772020253469202825336929E2
:10074000282533692900526F6C6C202534692028D4
:10075000253369292825336929004E69636B2025D3
:1007600034692028253369292825336929005961EE
:1007700077202025346920282533692900526F6CA1
:100780006C2025346920282533692E257829004ED0
:1007900069636B2025346920282533692E25782943
:1007A000004769657225346920282533692900527C
:1007B0006F6C6C25346920282533692E2569290042
:1007C0004E69636B25346920282533692E256929F4
:1007D000004779726F202D2053656E736F72005041
:1007E000333A253469202050343A253469200050AA
:1007F000313A253469202050323A253469200047A7
:10080000733A253469202047693A25346920004E1F
:10081000693A2534692020526F3A25346920004B0B
:10082000373A25346920204B383A25346920004B6B
:10083000353A25346920204B363A25346920004B5F
:10084000333A25346920204B343A25346920004B53
:10085000313A25346920204B323A2534692000434F
:100860006F6D706173733A20202025356900526FD7
:100870006C6C3A202020202020253569004E6963C9
:100880006B3A202020202020253569006163742EDA
:100890002062656172696E670044495341424C456C
:1008A000440048656967687420636F6E74726F6C8A
:1008B0000044495341424C454400486569676874A7
:1008C00020636F6E74726F6C004F66667365743A66
:1008D00020202535690050726573737572653A255D
:1008E000356900536574706F696E743A2535690017
:1008F0004865696768743A202025356900493243A4
:10090000204552524F52212121004D6978657220B5
:100910004572726F7221004D697373696E67204270
:100920004C2D4374726C3A25642121004861726435
:1009300077617265204572726F7220313A256420AA
:1009400021210053657474696E673A25642025730C
:100950000048573A5625642E25642053573A25649B
:100960002E25642563002B204D696B726F4B6F70D1
:10097000746572202B005B25695D005B25695D0055
:100980000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3DFA
:100990003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D87
:1009A000000A0D4D697865722D436F6E6669673A6E
:1009B000202725732720282575204D6F746F7273AB
:1009C00029000A0D47656E65726174696E6720645F
:1009D000656661756C74204D69786572205461623A
:1009E0006C65000A0D5573696E6720506172616D08
:1009F0006574657220536574202564000A0D47658F
:100A00006E65726174696E672064656661756C7489
:100A100020506172616D6574657220536574202584
:100A200064000A0D414343206E6F742063616C695A
:100A3000627261746564210D0A0000008F001E015E
:100A4000AD013B02CA025803E603740402058F0598
:100A50001B06A7063307BE074808D2085B09E3094F
:100A60006B0AF20A780BFD0B810C040D860D070E44
:100A7000870E060F840F00107B10F5106E11E51124
:100A80005B12CF124213B31323149214FE146A158F
:100A9000D3153B16A11605176717C8172718831813
:100AA000DE1837198E19E319361A871AD61A231B3E
:100AB0006E1BB61BFD1B411C831CC31C001D3C1D73
:100AC000751DAB1DE01D121E421E6F1E9A1EC31E19
:100AD000E91E0D1F2E1F4D1F691F841F9B1FB01F76
:100AE000C31FD31FE11FEC1FF51FFB1FFF1F0020BB
:100AF000030100003A6500020101AB640103020238
:100B00004A6402000303B3634E6F204E617669436B
:100B100074726C2100486F6D653A2533646D202531
:100B2000336425630044475053004E6F46780020DD
:100B3000203344002532756D2F73205361743A259C
:100B400064200025346957202536696D41680025E9
:100B500032692E2531695620202533692E253169C9
:100B6000410025634320202020200054656D7065DE
:100B7000726174757265732020202000253369200E
:100B80002533692025336920253369002533692001
:100B90002533692025336920253369002534696DA3
:100BA000256300253469202532693A2530326900F1
:100BB0004552524F523A2025326400537461747585
:100BC0007300253364256320253033646D0025329E
:100BD000692E25316956000A0D7777772E4D696B9E
:100BE000726F4B6F707465722E64652028632920C4
:100BF000486953797374656D7320476D6248000AC4
:100C00000D74686520757365206F6620746869735C
:100C100020736F667477617265206973206F6E6CE4
:100C200079207065726D6974746564200A0D6F6E49
:100C3000206F726967696E616C204D696B726F4BD2
:100C40006F707465722D48617264776172650041DE
:100C500043542044534C004A6574692073617465A1
:100C60006C6C6974005370656B7472756D20736180
:100C700074656C6C697420284C6F77207265736F93
:100C80006C7574696F6E29005370656B7472756D45
:100C900020736174656C6C69742028323034382993
:100CA000005370656B7472756D20736174656C6C44
:100CB0006974004D756C74697369676E616C20505E
:100CC000504D000A0D52656365697665723A2000E1
:100CD000756E6B6E6F776E2E205573696E67205040
:100CE000504D2E2E2E006E6F7420737570706F72C3
:100CF000746564206279206861726477617265212D
:100D0000000A0D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D03
:100D20003D3D3D3D3D3D000A0D466C69676874439D
:100D30006F6E74726F6C0A0D4861726477617265D0
:100D40003A25642E25640A0D536F667477617265C7
:100D50003A5625642E2564256320000A0D3D3D3D4D
:100D60003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D70003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DA3
:100D8000000011241FBECFEFD0E1DEBFCDBF11E0C8
:100D9000A0E0B1E0E4E1F3EE02C005900D92A23FC5
:100DA000B107D9F718E0A2EFB1E001C01D92A43B52
:100DB000B107E1F76AEAE2E0F0E081E280935700F0
:100DC0007491AE014F5F5F4F20EF37EFDA019FE084
:100DD000F9012F5F3F4F84918D93915097FFF8CF8A
:100DE000773911F40000FECFFA019EE08191682767
:100DF0006095915097FFFACF8889681721F077396D
:100E000011F40000FECF0E94CA070C9489710C9463
:100E100000001F93CF93DF93182F882389F0E09170
:100E20002804F091290485E192E09F938F9389EB48
:100E30009CE09F938F9309950F900F900F900F90C8
:100E400080913C06823308F046C084EF91E00E9416
:100E5000A916EC01112329F0CE010E94B2168823B5
:100E6000D9F3C2E0D0E026E530E080911001909106
:100E700011018217930730F02196255D3F4FC7304F
:100E8000D10599F780913C0690E09C01C29FC0017A
:100E9000C39F900DD29F900D1124809302011123C6
:100EA00009F43FC068EC70E08C2F0E949941E091FA
:100EB0002804F0912904DF93CF938AE092E09F9376
:100EC0008F9389EB9CE09F938F9309958DB79EB785
:100ED00006968DBF04C080930201112311F1E091A9
:100EE0002804F091290440910201842F6AE00E94B5
:100EF000B470292F30E0842F0E94B47090E03F93AB
:100F00002F939F938F9380EF91E09F938F9389EB23
:100F10009CE09F938F9309952DB73EB7285F3F4F75
:100F20002DBFDF91CF911F91089580911906E82F71
:100F3000F0E0EE0FFF1FED5BF84F808191818D5E39
:100F40009F4F14F010920301808191818A5B9F4F23
:100F5000CCF4809103018823A9F481E080930301FC
:100F600080915C048F5F80935C04853038F088EE5C
:100F700093E0909322028093210204C066E970E01E
:100F80000E94994180915C0490E09093EA058093DF
:100F9000E9050895A0E0B0E0E0EDF7E00C942671DB
:100FA00014B815B8189B06C0199B02C08DE007C085
:100FB0008BE005C0199B02C084E101C08AE08093E8
:100FC000000181E887B93E9A8FEF88B98BE184B937
:100FD00081E085B98EE38AB987E48BB9469A84B7F4
:100FE000877F84BF80916000886180936000109249
:100FF000600084EC99E09093220280932102109289
:101000005B0310925A031092480710924707109200
:1010100059031092580310925703109256032091CF
:101020000001243128F084EC94E0A0E0B0E004C09A
:101030008BE095E0A0E0B0E08093D6019093D701DB
:10104000A093D801B093D9012A3011F0243110F0C7
:10105000289801C0289A0E94A8190E94BE160E94D2
:10106000C10C0E949A310E94FC1981E00E94192D46
:101070000E94775C0E94EF660E94406E80910001A2
:101080008C3010F4299A01C0299878940E94332C4E
:10109000E0912804F09129048FED91E09F938F93C4
:1010A00089EB9CE09F938F93099580916E028260FB
:1010B00080936E0210926B020E94983B84EF91E045
:1010C0000E94A916EC010F900F900F900F90809145
:1010D0006E0280FD05C0CE010E94B2168823B9F3CE
:1010E000E0912804F09129048DEC91E09F938F9377
:1010F00009EB1CE01F930F93099580EA9FE00E9483
:10110000A916EC01F5EEAF2EF6E0BF2EE9E96E2E42
:10111000E6E07E2E6501430171E0E72EF12C0F9091
:101120000F900F900F906AEC462E61E0562E0E94B1
:10113000983B80916E0280FD05C0CE010E94B216E0
:101140008823B9F3F4018081181664F014C00E945A
:10115000983B80916E0280FD05C0CE010E94B216C0
:101160008823B9F3CE010E94B216882321F4F60138
:10117000808187FFECCFF601808187FF15C0E09169
:101180002804F0912904FF92EF925F924F921F93EF
:101190000F9309958091F8018F5F8093F8012DB727
:1011A0003EB72A5F3F4F2DBF0894E11CF11C88E039
:1011B00090E0C80ED91EE4E0F0E08E0E9F1EFDE028
:1011C000EF16F10409F0B3CFC1E0D0E05CEAE52E00
:1011D00051E0F52E09EB1CE0F501808187FD17C079
:1011E000F301808118169CF4E0912804F091290401
:1011F000DF93CF93FF92EF921F930F93099582E0B5
:10120000809324022DB73EB72A5F3F4F2DBFF501D3
:10121000808180788083219628E030E0A20EB31E82
:1012200084E090E0680E791ECD30D105A9F6E091FA
:101230002804F091290486E891E09F938F93C9EBED
:10124000DCE0DF93CF9309950F900F900F900F90F4
:10125000909117068091F801981728F48091420424
:10126000806180934204E0912804F09129048CE687
:1012700091E09F938F93DF93CF93099588EE93E04E
:101280000E94A916EC010F900F900F900F90CE01C5
:101290000E94B2168823D9F3E0912804F091290422
:1012A00087E691E09F938F9389EB9CE09F938F93C8
:1012B000099580E00E94FD3E809100010F900F9003
:1012C0000F900F908A3011F0843110F0289801C0EF
:1012D000289A80ED97E0909322028093210285E581
:1012E00080935E048EE090E00E94222A082F8FE017
:1012F00090E00E94222A10E0102F0027080F111DF5
:101300001093F3010093F2018AE090E00E94222AF8
:10131000082F8BE090E00E94222A10E0102F002777
:10132000080F111D1093F5010093F4010F5F1F4F7B
:1013300039F08091F2019091F3018F5F9F4F41F45A
:101340001092F3011092F2011092F5011092F40143
:10135000E0912804F09129048091F4019091F50125
:101360002091F2013091F3019F938F933F932F933C
:1013700084E491E09F938F93C9EBDCE0DF93CF93FC
:101380000995E0912804F091290488E391E09F9366
:101390008F93DF93CF930995809125062DB73EB7A4
:1013A000245F3F4F2DBFE0912804F091290482FF74
:1013B00003C08CE291E002C08AE191E09F938F9399
:1013C000DF93CF9309950F900F900F900F900E948D
:1013D000071F88E893E1909393018093920181E045
:1013E00080935D040E94090780913F060E94A66DCC
:1013F000E0912804F091290482EF90E09F938F936D
:1014000089EB9CE09F938F93099580ED97E00E9474
:10141000A916EC018AEF90E00E94A9167C0183E0F6
:101420008093C10500E010E00F900F900F900F9097
:10143000809113028111FFCFC7010E94B216882349
:1014400039F084E690E00E94A9167C010E94FC6EAF
:1014500080911E02882309F4C5C180911F01882351
:1014600009F4C0C110921E0280915C04882319F017
:101470000E94950702C00E94BD410E94983B2091A6
:1014800000012A3011F0243110F0289801C0289A68
:101490008091550390914204882339F0809155033F
:1014A000815080935503977F0AC080916F008062BE
:1014B00080936F00109244071092430798609093B6
:1014C000420480919201909193010197909393012E
:1014D000809392018091920190919301892B21F048
:1014E00080916D028823C9F18091920190919301BE
:1014F000892BD9F40E94422D85E090E090939301CE
:10150000809392018091FB059091FC050196909348
:10151000FC058093FB058091420481608093420426
:101520008091C20582608093C20580910D019091E7
:101530000E018F5F9F4F19F580915E038823F9F0AC
:1015400080E197E2909322028093210280E890E06C
:1015500090930E0180930D0112C02A3011F02431B6
:1015600010F0289801C0289A8091210290912202BF
:10157000892B29F4809142048E7F809342048091CC
:101580001E02882309F02EC180910801882311F0E2
:101590000E94E5160E94BD0D0E947610CE010E94A9
:1015A000B216882309F41AC180916D029091420409
:1015B000882339F09260909342048091C205826042
:1015C0000CC09D7F90934204809192019091930171
:1015D000079728F08091C2058D7F8093C205809186
:1015E000920190919301079728F0809142048E7F99
:1015F0008093420480910601882321F081508093DA
:10160000060125C01092680410927E0310927D039B
:101610001092800310927F03109282031092810334
:1016200080910D0190910E018F5F9F4F81F4809109
:101630005503882361F488E99AE39093220280930A
:10164000210280E09CE090930E0180930D01809137
:10165000E101893C48F081508093E101809142048E
:101660008B7F8093420430C0809121088823E1F071
:101670008091420484608093420480910D01909196
:101680000E018F5F9F4F81F480915E03882361F08C
:1016900088E99AE3909322028093210280E098EAFD
:1016A00090930E0180930D011092E4031092E303D6
:1016B0001092E6031092E5038FEF9FEF90934F088F
:1016C00080934E081092E101209110013091110198
:1016D0008091020190E028173907CCF480918903AA
:1016E00080628093890380910D0190910E018F5F3C
:1016F0009F4FC1F480E797E19093220280932102EB
:1017000080E093E090930E0180930D010BC08091D7
:10171000210290912202892B29F4809189038F7DE7
:10172000809389030E94C05F84E0809323028091AC
:101730005E03882319F40AEA15E012C08091F901CA
:101740008F5F8093F901813359F41092F9018091F0
:10175000F6019091F70101969093F7018093F601BD
:101760000F5F1F4F3BE00237130711F0649636C03E
:101770006091F2017091F3016F5F7F4F7093F301FD
:101780006093F2018091F4019091F501019690939C
:10179000F5018093F401672F77278EE090E00E9497
:1017A000282A6091F2018FE090E00E94282A60913F
:1017B000F4017091F501672F77278AE090E00E948D
:1017C000282A6091F4018BE090E00E94282A84E1AD
:1017D00090E00E94A916EC0100E010E00E949260E7
:1017E0000E94356680912302882309F021CE0E9451
:1017F00001601ECE1F920F920FB60F9211248F938D
:101800009F93EF93FF93809104018823E1F48091EB
:101810001A0290911B02019690931B0280931A0268
:10182000FC01E95EFA4FE081ED3019F08A3A91054A
:1018300039F410921B0210921A0281E08093040185
:10184000E093C60004C010921B0210921A02FF918E
:10185000EF919F918F910F900FBE0F901F90189551
:10186000DC0120E030E040E050E008C0FA01E95E31
:10187000FA4F8081280F311D4F5F5F4F4A175B077A
:10188000A9F73F70C90136E0969587953A95E1F73B
:10189000835CFD01E95EFA4F808311962F73235C10
:1018A000FD01E95EFA4F2083A85EBA4F8DE08C936C
:1018B00010920401809117058093C600089530911D
:1018C0000502365043E063E046C0E42FF0E0E559FE
:1018D000FB4F80814F5FE42FF0E0E559FB4F208103
:1018E0004F5FE42FF0E0E559FB4F70814F5FE42F2D
:1018F000F0E04350E559FB4F50812D53E62FF0E0C7
:10190000922F92959F708D53880F880F892BE559E0
:10191000FB4F8083E62FEF5F313009F1972F9D5306
:10192000F0E02295207F892F86958695282BE55912
:10193000FB4F2083E62FEE5F33503F3F81F04C5F3B
:10194000F0E09295990F990F907C5D53952BE55996
:10195000FB4F90836D5F332309F0B7CFE62F8EE600
:1019600094E09093070280930602E350E09308020C
:101970000895982F8091C00085FFFCCF9093C600FA
:101980000895E1ECF0E088E18083A0ECB0E08C9178
:1019900082608C9380818068808380818064808372
:1019A0001092C5008AE28093C40080910B0290914E
:1019B0000C020E94A91690933B0480933A048CED8C
:1019C00090E00E94A91690936A0480936904109293
:1019D0003C0482E580933D04109240048BE08093A8
:1019E0003E0410923F0410920702109206021092D9
:1019F00008020895A2E0B0E0E0E0FDE00C942F7151
:101A00009D85AE8583E2809317059F5990931805B5
:101A10008C8580931905CE010F969A838983AA231A
:101A200041F4EE24FF2460E070E003E010E0B0E059
:101A300094C0EF84F888CE0143969A83898369899C
:101A40007A89A150F2CFF701EB0FF11D9081BF5FB2
:101A50006150704011F09B0113C0AA2309F483C0A8
:101A6000E981FA81E080F1803496FA83E983349742
:101A700022813381A1502115310509F473C0B0E0F2
:101A8000F701EB0FF11D4081BF5FB901615070405C
:101A9000A9F4AA2311F4DD2427C0E981FA81E080AA
:101AA000F1803496FA83E983349762817381A1507F
:101AB0006115710511F4DD2416C0B0E0F701EB0FDC
:101AC000F11DD080BF5F6150704071F4AA2361F0B6
:101AD000E981FA81E080F1803496FA83E9833497D2
:101AE00062817381A150B0E0892F86958695835CD1
:101AF000F801E95EFA4F808350E09A0184E0369560
:101B000027958A95E1F7892F90E083709070F4E033
:101B1000880F991FFA95E1F7282B235CF801E85EFE
:101B2000FA4F20838D2D82958695869583704F7010
:101B30005070440F551F440F551F842B835CF801D0
:101B4000E75EFA4F80838FE3D8228DE3D80EF80149
:101B5000E65EFA4FD0820C5F1F4F6115710509F0E8
:101B600072CF04C0B0E0DD2440E0BECFC8010E94C7
:101B7000300CE7E0CE5F0C944B71A0E1B0E0E3ECF9
:101B8000FDE00C94307180910401882309F4AAC20D
:101B900080911102909112020E94B216882361F086
:101BA0001092100210920F0210920C0210920B026F
:101BB00010920E0210920D0280910F02909110026D
:101BC000892B41F080911505909116050E94B2165F
:101BD000882329F48091FC01882309F460C0809156
:101BE0000401882309F45BC08091000200E211E047
:101BF0008430A8F00E941B1F80E590E09F938F9394
:101C00001F930F9381E08F938F9388E48F930E94AB
:101C1000FA0C2DB73EB7295F3F4F2DBF34C010924D
:101C20006502E0912804F09129048DE194E09F93EE
:101C30008F9380E19FE19F938F93099584E190E0DA
:101C40009F938F931F930F9381E090E09F938F93C7
:101C500080E092E09F938F9382E08F9381E08F9357
:101C600088E48F930E94FA0C809100028F5F80932A
:101C7000000281502DB73EB7215F3F4F2DBF84300A
:101C800010F01092000280910F02909110020E94B9
:101C9000A91690931605809315051092FC0180916A
:101CA000FB01882351F180910401882331F10E94C6
:101CB0001B1F80E590E09F938F9380E291E09F93BC
:101CC0008F9321E030E03F932F9380E791E09F9343
:101CD0008F933F932F9386E692E09F938F9383E0B9
:101CE0008F9381E08F938CE48F930E94FA0C109273
:101CF000FB018DB79EB70F968DBF8091FE018823A3
:101D0000D1F0809104018823B1F08AE090E09F93A4
:101D10008F938CE394E09F938F9381E08F938F93C5
:101D200086E58F930E94FA0C1092FE012DB73EB704
:101D3000295F3F4F2DBF8091FA018823D9F0809110
:101D400004018823B9F0209107018BE090E09F9374
:101D50008F938EE594E09F938F9381E08F932F93E1
:101D600087E48F930E94FA0C1092FA018DB79EB708
:101D700007968DBF8091690490916A040E94B21603
:101D8000882309F45CC080910401882309F457C0BA
:101D9000E0903406FF24EE0CFF1CEE0CFF1C002725
:101DA000F7FC0095102F6091FE027091FF02809168
:101DB000000390910103A80197010E9409713093DB
:101DC0005704209356046091060370910703809195
:101DD000080390910903A80197010E9409713093AB
:101DE0005904209358048091740380935A0480917D
:101DF000750380935B0488E090E09F938F9386E562
:101E000094E09F938F9381E08F9383E08F938BE691
:101E10008F930E94FA0C2DB73EB7295F3F4F2DBF1D
:101E200080915C04853018F086E080935C0483E642
:101E300090E00E94A91690936A04809369048091AF
:101E40000B0290910C02892B41F080913A04909101
:101E50003B040E94B216882321F48091FD0188235F
:101E600041F180910401882321F10E94EB3382E447
:101E700090E09F938F9381EC95E09F938F9381E007
:101E80008F938F9384E48F930E94FA0C1092FD013C
:101E900080910B0290910C022DB73EB7295F3F4F06
:101EA0002DBF009731F00E94A91690933B048093B8
:101EB0003A0480910D0290910E02892B09F4A5C07D
:101EC00080913804909139040E94B216882309F455
:101ED0009CC080910401882309F497C0E0903406E7
:101EE000FF24EE0CFF1CEE0CFF1C0027F7FC0095F6
:101EF000102F6091FE027091FF028091000390917B
:101F00000103A80197010E94097130932B042093CB
:101F10002A04609106037091070380910803909151
:101F20000903A80197010E94097130932D042093A1
:101F30002C046091090870910A0880910B08909117
:101F40000C082AE030E040E050E00E9495702091BB
:101F5000D6013091D7014091D8015091D9010E940A
:101F6000097130932F0420932E04809136039091B1
:101F70003703A0913803B091390349E0B595A7958F
:101F8000979587954A95D1F78093300480913A03CD
:101F900090913B03A0913C03B0913D0339E0B5958E
:101FA000A795979587953A95D1F7809331048091BD
:101FB0002E0390912F03A0913003B091310329E0BB
:101FC000B595A795979587952A95D1F78093320473
:101FD0008EE090E09F938F938AE294E09F938F939B
:101FE00081E08F938F9383E48F930E94FA0C80910A
:101FF0000D0290910E020E94A916909339048093CD
:1020000038048DB79EB707968DBF609105016F3F6D
:1020100071F170E094E0660F771F9A95E1F7635EC7
:102020007D4F40E150E08E010F5F1F4FC8010E94BD
:10203000606F80E190E09F938F931F930F9381E0F7
:1020400090E09F938F9385E091E09F938F9382E040
:102050008F9381E08F9381E48F930E94FA0C8FEF2E
:10206000809305012DB73EB7255F3F4F2DBF80916F
:1020700003068823C9F0809104018823A9F081E038
:1020800090E09F938F9383E096E09F938F9381E0FE
:102090008F938F9382E48F930E94FA0C1092030621
:1020A0008DB79EB707968DBF8091FF018823D1F031
:1020B000809104018823B1F084E390E09F938F9393
:1020C00083E497E09F938F9381E08F938F9380E5D4
:1020D0008F930E94FA0C1092FF012DB73EB7295F33
:1020E0003F4F2DBFE6E0C05F0C944C71A2E0B0E022
:1020F000ECE7F0E10C94347180910202882309F43A
:1021000030C40E945F0C80916C04823609F0F9C2E1
:1021100080916D04803709F4A7C0813790F48A3626
:1021200009F466C28B3630F48B3401F1863609F03F
:10213000E8C248C18D3609F467C08E3609F0E1C2A5
:1021400052C0843781F1853738F4813709F493C060
:10215000833709F0D6C2E1C0873709F40BC289374B
:1021600009F467C1853709F0CCC2C8C1E091060205
:10217000F091070280819181909343038093420301
:10218000845E9D4F2091440330914503821B930B45
:1021900068E671E00E94D470845B9040909347039E
:1021A00080934603AEC280910502E0910602F09151
:1021B0000702853140F0A6E4B4E080E101900D9281
:1021C000815069F0FBCF80819181A281B38180939E
:1021D000460490934704A0934804B093490480EFC9
:1021E00080930A0244C0809104018823E1F38DE4C6
:1021F00090E09F938F938CE896E09F938F9381E07C
:102200008F938F938EE429C0E0910602F09107022C
:102210008081813089F4ACE8B6E08DE401900D92C4
:102220008150E1F70E94532A81E089838091420422
:102230008F7E8093420401C019828091040188231B
:10224000E1F381E090E09F938F93CE0101969F93FD
:102250008F9381E08F938F938DE48F930E94FA0C7C
:102260008DB79EB70796C2C181E08093FF018FEFC3
:102270008093060146C2E0910602F0910702E081D8
:102280008E2F8A508A3058F48983882311F481E094
:1022900003C0863010F085E0898361E00EC08E2F88
:1022A00084518A3070F48983882311F481E003C05B
:1022B000863010F085E0898360E089810E94FA2BE6
:1022C00012C0E983EF3F19F40E94372A898389817C
:1022D000882311F481E003C0863010F085E0898303
:1022E00089810E94C42B809104018823E1F383E754
:1022F00090E09F938F9388E196E09F938F9381E086
:1023000090E09F938F93CE0101969F938F9382E0ED
:102310008F9381E08F9381E563C1E0910602F09194
:102320000702808181508530D8F59F012F5F3F4F94
:1023300081818535A9F5A8E1B6E0F90183E701902F
:102340000D928150E1F7E0910602F0910702808141
:102350000E94812B6091590670E080E090E024ECAF
:1023600039E040E050E00E949570609397017093CF
:1023700098018093990190939A0160915A0670E0B8
:1023800080E090E00E94957060939B0170939C01A7
:1023900080939D0190939E010E94372A898301C0FA
:1023A0001982809104018823E1F381E090E09F93FA
:1023B0008F93CE0101969F938F9381E08F938F939C
:1023C00083E51FC0E0910602F0910702E0818E2FA5
:1023D0008150853018F48E2F0E94C42B0E94372A1A
:1023E0008983809104018823E1F381E090E09F9349
:1023F0008F93CE0101969F938F9381E08F938F935C
:1024000086E48F930E94FA0C8DB79EB707968DBF16
:1024100080915E03882329F46EE670E089810E9432
:10242000994180E00E94090780913F060E94A66DB5
:1024300068C1E0910602F09107028081992787FD2B
:10244000909590935E0780935D078181992787FD22
:1024500090959093600780935F078281992787FD0D
:10246000909590936207809361078381992787FDF8
:10247000909590936407809363078481992787FDE3
:10248000909590936607809365078581992787FDCE
:10249000909590936807809367078681992787FDB9
:1024A000909590936A07809369078781992787FDA4
:1024B000909590936C0780936B078085992787FD93
:1024C000909590936E0780936D078185992787FD7E
:1024D00090959093700780936F078285992787FD69
:1024E000909590937207809371078385992787FD54
:1024F0009095909374078093730703C1E09106024F
:10250000F091070280810E944C308A83882319F45D
:1025100081E0898301C01982809104018823E1F35D
:10252000409106025091070288E090E09F938F93BC
:102530008AED96E09F938F9321E030E03F932F93B5
:102540005F934F933F932F93CE0102969F938F9368
:102550003F932F93CE0101969F938F9384E08F93A7
:1025600081E08F9385E58F930E94FA0C8DB79EB71B
:1025700043963CC080910802893008F4C2C0E091C3
:102580000602F0910702AAEDB6E0319688E00190CC
:102590000D928150E1F7E0910602F09107028081EF
:1025A0000E94F1308A83882319F481E0898301C075
:1025B0001982809104018823E1F321E030E03F9308
:1025C0002F93CE0102969F938F933F932F93CE012B
:1025D00001969F938F9382E08F9381E08F9387E59D
:1025E0008F930E94FA0C8DB79EB70B968DBF89C052
:1025F0000E94596D8983823019F0843009F081C0BE
:10260000F8948091C1008F738093C1008091C900BC
:102610008F738093C9008091C100877E8093C10031
:102620008091C900877E8093C90002C08091CE004E
:102630008091C80087FDFACF02C08091C6008091CA
:10264000C00087FDFACFE0910602F0910702808179
:10265000882351F581E0809313021092CD0080E42D
:102660008093CC008091CD008093C5008091CC00F8
:102670008093C4008091CA008F7D8093CA008091AE
:10268000CA008F7E8093CA008091C9008B7F80939F
:10269000C9008091CA0084608093CA008091CA00FA
:1026A00082608093CA0003C082E08093130280910D
:1026B000CA00877F8093CA008091C200877F809381
:1026C000C2008091C9008E7F8093C9008091C100B3
:1026D00088618093C1008091C90088618093C9009E
:1026E0008091C10080688093C1008091C90080689A
:1026F0008093C90010926E0010926F0010927000CB
:10270000789480916D04843609F4C0C0853680F4D5
:10271000813609F476C0823620F48B3409F019C171
:1027200053C0823609F47AC0833609F012C189C0D9
:102730008C3609F4F9C08D3638F4873609F406C1B1
:10274000883609F006C1C0C0843721F0863709F009
:1027500000C1F8C080910502E0910602F0910702E5
:10276000803140F0A6E4B4E080E101900D92815008
:1027700069F0FBCF80819181A281B381809346046F
:1027800090934704A0934804B093490480910401B6
:102790008823E1F3809107011F928F9384E58F9343
:1027A0000E94FA0C8AEF80930A028FEF8093060151
:1027B00080EA9FE00E94A916909312028093110272
:1027C0000F900F900F90C5C0E0910602F0910702A4
:1027D000808191819093430380934203845E9D4F57
:1027E0002091440330914503821B930B68E671E00E
:1027F0000E94D470845B904090934703809346037B
:10280000A8C0E0910602F091070280818093050143
:10281000803298F08FE1809305010FC0AEE5B4E0FF
:10282000E0910602F09107028BE001900D92815039
:10283000E1F780916704809303068FEF8093060190
:1028400088C080910D0290910E02892B89F4E0914D
:102850000602F0910702E081EE2351F08AE0E89F42
:10286000C00111240E94A916909339048093380462
:10287000E0910602F091070280812AE0829FC00168
:10288000112490930E0280930D0215C08FEF809358
:102890000601E0910602F091070280812AE0829F02
:1028A000C001112490930C0280930B02892B19F024
:1028B00081E08093FD0180EA9FE00E94A916909339
:1028C00012028093110245C08FEF80930601E091C0
:1028D0000602F0910702908197FD08C082E0809384
:1028E00000021092100210920F021AC0909580916F
:1028F0006702892B8093670281812AE0829FC00151
:1029000011249093100280930F0284E080930002C0
:1029100080EA9FE00E94A916909312028093110210
:1029200081E08093FC0115C08FEF80930601E09158
:102930000602F091070280818093660281E0809315
:10294000FB0107C081E08093FE0103C081E080931A
:10295000FA011092020210920702109206021092DF
:102960000802E2E0CE5F0C9450711F920F920FB6F6
:102970000F9211242F933F934F935F936F937F9305
:102980008F939F93AF93BF93CF93DF93EF93FF9377
:1029900080911302813029F48091C6008093CE008B
:1029A000C2C080911302823029F48091C6008093C6
:1029B0006B04B9C08091C60080930102409115025A
:1029C0004A3A10F010921402809101028D3009F001
:1029D00062C080911402823009F05DC0109214022E
:1029E000A42FB0E0FD01E759FB4F3081ED01C6593E
:1029F000DB4F28818091180290911902831B910965
:102A0000821B91099F7090931902809318029C0178
:102A1000689415F8369527951694E1F7235C209372
:102A20001702982F9F73935C90931602808128174A
:102A300029F48881981711F491E006C0809104026E
:102A40008F5F8093040290E080910202882309F056
:102A50006AC0992309F467C081E0809302024F5F46
:102A600040930502A559BB4F8DE08C9380916D0476
:102A7000823509F058C00E94071F88E190E02CE0E1
:102A80000FB6F894A895809360000FBE2093600065
:102A90001092240248C0809114028130D9F0813014
:102AA00018F08230F1F521C080910102833239F4AF
:102AB00080910202882319F481E0809314028091AE
:102AC000010280936B0481E08093150280910102E2
:102AD00090E022C082E080931402E42FF0E0809125
:102AE0000102E559FB4F808309C0E42FF0E080919B
:102AF0000102E559FB4F80834A3A20F44F5F40932F
:102B0000150202C010921402209101028091180255
:102B100090911902820F911D9093190280931802CF
:102B200002C010921402FF91EF91DF91CF91BF91FB
:102B3000AF919F918F917F916F915F914F913F9155
:102B40002F910F900FBE0F901F9018951F920F920C
:102B50000FB60F9211242F933F935F936F937F9340
:102B60008F939F93AF93BF9380912302882329F083
:102B70008091230281508093230280910B0488234B
:102B800019F0815080930B04809130028150809322
:102B900030028F3F09F056C089E080933002809167
:102BA0001C0290911D02019690931D0280931C02BD
:102BB00080910F018F5F817080930F01882319F43A
:102BC00081E080931E02349903C081E080932F023C
:102BD0008091210290912202892B11F18091210292
:102BE000909122020B9750F0809121029091220245
:102BF0000A97909322028093210204C0109222022D
:102C000010922102809121029091220220910D01C7
:102C100030910E0182239323892B09F086C006C0D0
:102C20008FEF9FEF90930E0180930D018091000133
:102C30008A3039F404C05A9A05C0479A03C05A989A
:102C400001C0479880912F02882309F474C08091B5
:102C5000E101882309F06FC08091250683FF6BC0D6
:102C6000349B14C080911F02909120020196909392
:102C7000200280931F0280911F0290912002895EA2
:102C8000934008F458C010922F0255C080911F0243
:102C900090912002892B09F443C080911F029091EA
:102CA00020028A569140E0F520911F0230912002C7
:102CB00080911F029091200269E270E00E94C07032
:102CC000260F371F3093200220931F0280911F028E
:102CD000909120020B9750F080911F02909120025A
:102CE0000A97909343038093420304C010924303D6
:102CF000109242038091420390914303845E9D4F62
:102D00002091440330914503821B930B68E671E0E8
:102D10000E94D470845B9040909347038093460355
:102D20001092200210921F0206C0809100018A308A
:102D300009F083CF80CFBF91AF919F918F917F9109
:102D40006F915F913F912F910F900FBE0F901F9049
:102D5000189520911C0230911D022F5F3F4F820F6A
:102D6000931F089520911C0230911D02821B930B2A
:102D7000892F99278695807490E008959FB7F894DD
:102D80005F983E9A469AA0EBB0E08C918F708C933E
:102D90008C9183608C93E1EBF0E080818B73808376
:102DA00080818B6080831092B2008FEF8093B3009C
:102DB0008C9180688C93E0E7F0E080818A7F80834B
:102DC0008081826080839FBF0895A2E0B0E0EBEE37
:102DD000F6E10C942471E0914F06F0E0EB54FE4FC5
:102DE0008681908120910801482F552747FD5095F5
:102DF000652F752F6090FE027090FF028090000397
:102E000090900103292E332427FC3094432C532C1B
:102E1000A0900603B0900703C0900803D090090368
:102E200080914E068983E0917D06EA83213009F086
:102E300097C0CB01BA01A40193010E94957020E8CC
:102E400030E040E050E00E94097179018A01C2013E
:102E5000B101A60195010E94957020E830E040E0A4
:102E600050E00E940971E21AF30A040B150B20913D
:102E7000460630E040E050E0C801B7010E9495707E
:102E800020E032E040E050E00E94097159016A01FF
:102E90002091090130910A014091090150910A01E4
:102EA0008091AE0190E0F6E0880F991FFA95E1F766
:102EB000F9816F2F70E0841B950B0E94D470260F50
:102EC000371F30930A0120930901809109019091E5
:102ED0000A0160E170E00E94D47070932802609350
:102EE00027028A8180FF07C08091270290912802E3
:102EF0008A0D9B1D06C080912702909128028A1995
:102F00009B099093280280932702209127023091F9
:102F100028028091470690E0880F991F880F991F1B
:102F20002817390774F020912702309128028091E8
:102F3000480690E0880F991F880F991F8217930702
:102F400024F4909328028093270280910001843119
:102F500008F492C0809108018F5F809308018EC0B1
:102F6000CB01BA01A60195010E94957020E830E0DE
:102F700040E050E00E94097179018A01C201B1016B
:102F8000A40193010E94957020E830E040E050E0F9
:102F90000E940971E20EF31E041F151F20914A06BC
:102FA00030E040E050E0C801B7010E94957020E099
:102FB00032E040E050E00E94097159016A0120911D
:102FC0000B0130910C0140910B0150910C0180914B
:102FD000AF0190E066E0880F991F6A95E1F7E981FB
:102FE0006E2F70E0841B950B0E94D470260F371F44
:102FF00030930C0120930B0180910B0190910C01F7
:1030000060E170E00E94D47070932A0260932902FC
:10301000FA81F1FF07C08091290290912A028A0D5E
:103020009B1D06C08091290290912A028A199B0952
:1030300090932A02809329022091290230912A023A
:1030400080914B0690E0880F991F880F991F2817D1
:10305000390774F02091290230912A0280914C06A0
:1030600090E0880F991F880F991F8217930724F407
:1030700090932A028093290210920801E2E1CE5F28
:103080000C9440711F920F920FB60F9211242F9340
:103090003F934F935F938F939F93EF93FF93809111
:1030A000000190912E02843108F04BC0992309F061
:1030B00010C18091B00086FF24C08091B0008F7B4A
:1030C0008093B000809127029091280287559E4FEF
:1030D000909326028093250225E08D3D920718F0FB
:1030E0008CED95E005C08757914030F487E791E07B
:1030F00090932602809325028091250290912602CA
:10310000AEC08091B00080648093B00080914D0685
:1031100090E02DED36E0AC01429FC001439F900D41
:10312000529F900D112420912C0230912D02821B70
:10313000930B909326028093250281E080930801EF
:10314000C5C0992309F0C5C08091B00086FF8CC02E
:103150008091B0008F7B8093B000E0912B02EE2332
:10316000E9F480914D0690E02DED36E0AC01429FF0
:10317000C001439F900D529F900D112420912C026D
:1031800030912D02821B930B90932602809325028F
:1031900010922D0210922C02469A98C089EA93E070
:1031A0009093260280932502E330B1F0E43028F4B6
:1031B000E13041F0E23001F50AC0E43081F0E53061
:1031C000D9F410C0809127029091280212C08091FA
:1031D000290290912A020DC08091D70705C08091E5
:1031E000B10702C08091DF0790E0880F991F880F18
:1031F000991F87559E4F0BC0F0E0EE0FFF1FED5B50
:10320000F84F80819181880F991F87559C4F90932B
:10321000260280932502809125029091260255E096
:103220008D3D950718F08CED95E005C087579140CE
:1032300030F487E791E09093260280932502209155
:103240002502309126022C5B3040309326022093D9
:10325000250280912C0290912D02820F931F909352
:103260002D0280932C0232C08091B0008064809344
:10327000B0008CEB90E09093260280932502809121
:103280002C0290912D0284549F4F90932D02809395
:103290002C0280912402882321F0809155038333EE
:1032A00020F480912402823011F4469801C0469A9D
:1032B00080912B028F5F80932B0290914D0698177F
:1032C00028F481E08093080110922B0281E0809322
:1032D0002E02209125023091260241E02F3734073B
:1032E00030F08FEF8093B3002F5F30400DC02F3F41
:1032F0003105C9F0C0F051E02E37350751F080E8B4
:103300008093B3002058304030932602209325024A
:1033100012C08FEF8093B3008FE790E09093260266
:103320008093250208C02093B300109226021092C9
:10333000250210922E02FF91EF919F918F915F9144
:103340004F913F912F910F900FBE0F901F901895A6
:1033500080911C0290911D020B96909332028093F3
:10336000310282E085BD83EA84BD17BC84EB88BD51
:1033700086E086BDEEE6F0E080818160808308957E
:10338000AC0120911C0230911D022F5F3F4F09C0FC
:1033900080911F01882329F010921F018FEC8093E8
:1033A0007A0080911C0290911D02B901681B790B73
:1033B000CB01840F951F80709078892F992786956F
:1033C000882331F30895AC0120911C0230911D0235
:1033D0002F5F3F4F80911C0290911D02B901681B25
:1033E000790BCB01840F951F80709078892F9927D6
:1033F0008695882379F3089510927C008FEC809352
:103400007A0008951F920F920FB60F9211246F92B7
:103410007F928F929F92AF92BF92CF92DF92EF9264
:10342000FF920F931F932F933F934F935F936F934D
:103430007F938F939F93AF93BF93EF93FF9380916D
:1034400063028F5F809363028150E82FF0E0E231E6
:10345000F10508F05EC3E25CFF4F0C945B71809154
:1034600078009091790090935D0280935C02EDC1A9
:10347000809178009091790023C18091780090919B
:10348000790090936102809360024EC12091780090
:10349000309179008091F7029091F802821B930B92
:1034A000909305068093040680910406909105068A
:1034B000909357028093560255C180917800909165
:1034C00079002091F5023091F602821B930B9093C4
:1034D0001306809312068091120690911306909322
:1034E00055028093540217C380917800909179001F
:1034F00020915E0230915F02280F391F30935F02E6
:1035000020935E0284E008C34091100150911101A4
:1035100080917800909179009A01220F331F240F37
:10352000351F63E070E00E94C070260F371F36958C
:10353000279536952795309311012093100185E04A
:10354000EBC280917800909179004091FB025091FC
:10355000FC02841B950B909344028093430280915C
:10356000430290914402029704F122E04E3E52073A
:1035700084F4209162022B5F209362022550809197
:10358000870390918803845F914018F4215F209312
:10359000620280916202853684F14F5F5F4F5093E3
:1035A000FC024093FB02845626C080914302909116
:1035B00044028F5F9F4F0CF5B2E047325B07ECF09F
:1035C000209162022550209362022B5F8091870335
:1035D00090918803845F914018F42F5020936202E9
:1035E000809162028C394CF4415050405093FC025F
:1035F0004093FB028C598093620281E080934502E4
:10360000809178009091790090930B0680930A0640
:1036100020913E0330913F0340914003509141037C
:103620008091430290914402AA2797FDA095BA2F5A
:10363000820F931FA41FB51F80933E0390933F03F7
:10364000A0934003B0934103E0903E03F0903F030A
:10365000009140031091410360913E0370913F033C
:10366000809140039091410320E034E040E050E03D
:103670000E940971E21AF30A040B150BE0923E0353
:10368000F0923F03009340031093410334C18091B3
:1036900078009091790020915C0230915D02280FB2
:1036A000391F30935D0220935C02CFC020917800D7
:1036B0003091790080915E0290915F02820F931F9A
:1036C00090935F0280935E021092640227C2809101
:1036D00000018A3071F48091780090917900019610
:1036E0002091600230916102820F931F9695879519
:1036F00017C04091600250916102843158F02091CE
:103700007800309179008FEF97E0821B930B841B38
:10371000950B06C08091780090917900840F951FD9
:1037200090933E0280933D0286E0F6C1209178009E
:10373000309179008091F7029091F802821B930BEF
:1037400090930506809304068091040690910506E7
:103750002091560230915702820F931F909340029E
:1037600080933F0287E0D8C18091780090917900E2
:103770002091F5023091F602821B930B9093130671
:1037800080931206809112069091130620915402A4
:1037900030915502820F931F909342028093410211
:1037A000BAC1209178003091790080915C029091AB
:1037B0005D02280F391F30935D0220935C028091D7
:1037C00000018A3019F4220F331F04C0220F331F67
:1037D000220F331F30935D0220935C0220915C0224
:1037E00030915D02C90168E070E00E94D47070936E
:1037F0003A026093390280915A0290915B02820FE3
:10380000931F62E070E00E94D47070935B0260933B
:103810005A028091EB029091EC02681B790B709335
:103820001301609312012091330230913402809190
:10383000120190911301820F931F62E070E00E94C9
:10384000D470709334026093330281E065C120919B
:1038500078003091790080915E0290915F02280F8C
:10386000391F30935F0220935E02809100018A30FD
:1038700019F4220F331F04C0220F331F220F331FEE
:1038800030935F0220935E0220915E0230915F02CE
:10389000C90168E070E00E94D47070933C026093AC
:1038A0003B028091580290915902820F931F62E06F
:1038B00070E00E94D4707093590260935802809116
:1038C000ED029091EE02681B790B709315016093E5
:1038D00014012091350230913602809114019091AB
:1038E0001501820F931F62E070E00E94D470709304
:1038F00036026093350283E00FC11092630281E0CB
:1039000080931F0180914D0290914E0201969093F9
:103910004E0280934D0280917800909179009093AF
:103920001B0180931A0180911A0190911B013C01A7
:10393000882499248091500290915102A0915202C2
:10394000B0915302680E791E8A1E9B1E609250022F
:1039500070925102809252029092530280914F02D3
:103960008F5F80934F02823108F4D5C08091160199
:1039700090911701A0911801B09119017C018D015E
:1039800043E0EE0CFF1C001F111F4A95D1F7E81A07
:10399000F90A0A0B1B0B84E090E0A0E0B0E0E80E0F
:1039A000F91E0A1F1B1FE60CF71C081D191D60914C
:1039B0004A02772767FD7095872F972F26EC34E210
:1039C00040E050E00E949570E61AF70A080B190BC8
:1039D000C801B70128E030E040E050E00E940971E2
:1039E0002093160130931701409318015093190149
:1039F000E0900C06F0900D06809116019091170151
:103A0000A0911801B09119010027F7FC0095102F23
:103A1000E81AF90A0A0B1B0BE0926003F0926103AB
:103A20000093620310936303A0904602B090470294
:103A3000C0904802D09049026091460270914702BE
:103A4000809148029091490220E130E040E050E04E
:103A50000E940971A21AB30AC40AD50AA0924602AA
:103A6000B0924702C0924802D09249028091460229
:103A700090914702A0914802B09149028E0D9F1D7E
:103A8000A01FB11F8093460290934702A093480263
:103A9000B0934902C0904B02D0904C026091460214
:103AA00070914702809148029091490220E130E0F4
:103AB00040E050E00E940971E21AF30A33E0EE0C94
:103AC000FF1C3A95E1F7C60125E0880F991F2A955A
:103AD000E1F78C199D098E0D9F1D60E270E00E9438
:103AE000D47070934C0260934B02C401B30122E086
:103AF00030E040E050E00E94097120935002309382
:103B00005102409352025093530289E080934F0236
:103B100002C01092630282E080936402809164028A
:103B200080937C0080916302882319F08FEC80934E
:103B30007A00FF91EF91BF91AF919F918F917F910B
:103B40006F915F914F913F912F911F910F91FF9036
:103B5000EF90DF90CF90BF90AF909F908F907F902D
:103B60006F900F900FBE0F901F901895A0E0B0E0DF
:103B7000ECEBFDE10C942E7180ED97E00E94A9160C
:103B8000EC010CE810E092E3C92E94E0D92E89EB09
:103B9000E82E8CE0F82E133019F40B3008F009E011
:103BA0008091390290913A028C5F934024F4809185
:103BB0001C0181500CC08091390290913A028750CB
:103BC000944014F411E006C080911C018F5F809333
:103BD0001C0110E080913B0290913C028C5F93406D
:103BE00024F480911D0181500AC080913B02909184
:103BF0003C028750944034F080911D018F5F809388
:103C00001D0101C01F5F80913D0290913E028C5FBB
:103C1000934024F480911E0181500AC080913D029E
:103C200090913E028750944034F080911E018F5F46
:103C300080931E0101C01F5F82E180936802809122
:103C40006E028E7F80936E0285EA8093BC00809125
:103C50001C018A3040F480914104816080934104CA
:103C60008AE080931C0180911C01863F40F0809186
:103C7000410481608093410485EF80931C01809111
:103C80001D018A3040F48091410482608093410498
:103C90008AE080931D0180911D01863F40F0809154
:103CA000410482608093410485EF80931D018091DF
:103CB0001E018A3040F48091410484608093410465
:103CC0008AE080931E0180911E01863FE0F0809182
:103CD000410484608093410485EF80931E0113C0EA
:103CE000CE010E94B216882371F0E0912804F09171
:103CF0002904DF92CF92FF92EF9209950F900F90D7
:103D00000F900F9004C080916802882349F71092A9
:103D10001F018FEC80937A0080911F018823E1F3CB
:103D20000A3020F48AE090E00E94C019015009F0A6
:103D300032CF86E490E00E94C019E8E0CDB7DEB74C
:103D40000C944A71EF92FF920F931F93CF93DF93DE
:103D500010924A0283E090E00E94222AC82FD0E00D
:103D6000C531D10508F02A97C7BD84E690E00E94CE
:103D7000C01980911A0190911B0180529340F0F478
:103D8000C0E0D0E01BC0C7BD82E390E00E94C01934
:103D9000E0912804F0912904FF92EF921F930F9372
:103DA000099580911A0190911B010F900F900F902F
:103DB0000F908052934058F0219606C029E6E22EDB
:103DC00024E0F22E09EB1CE0CA3FD105E0F21C2FE3
:103DD000C09314066C2F83E090E00E94282A809103
:103DE000250680FF0AC0809114068A508B3E28F079
:103DF0008091410480648093410417BD8CE291E07E
:103E00000E94C019E6E0CDB7DEB70C944C71E0E239
:103E1000F1E080E2819381E0E037F807D1F708957F
:103E200090916502E0E2F1E0E90FF11D80839F5F70
:103E3000909365020895A0E0B0E0E1E2FFE10C9408
:103E40002C7180916702282F30E0C9018170907039
:103E5000682F882351F080916602882311F08150E9
:103E600002C08091700180936602A9014270507077
:103E700021FF0CC09091660280917001981719F48F
:103E80001092660203C09F5F90936602662321F042
:103E9000452B11F010926602E0E2F1E080E281939E
:103EA00021E0E037F207D1F780916602C091280443
:103EB000D0912904282F30E090E1E92E9FE1F92EDE
:103EC0008A3098F481E1809365023F932F938BE7CA
:103ED00099E09F938F93FF92EF92FE0109954DB762
:103EE0005EB74A5F5F4F4DBF11C080E180936502AE
:103EF0003F932F9386E799E09F938F93FF92EF92E2
:103F0000FE0109958DB79EB706968DBF909166020A
:103F1000E92FF0E0E231F10510F00C94FA28E05BB3
:103F2000FF4FC0912804D091290480E1E82E8FE151
:103F3000F82E0C945B711092650286E699E09F93CF
:103F40008F9300E1A02E0FE1B02EFF92EF92FE01C1
:103F5000099584E180936502E0912804F091290499
:103F600020910001822F6AE00E94B470492F50E036
:103F7000822F0E94B47090E021E630E03F932F93AF
:103F800022E530E03F932F931F921F925F934F9350
:103F90009F938F9381E599E09F938F93FF92EF9288
:103FA000099588E280936502009128041091290404
:103FB0000E94372A90E02DE836E03F932F939F939D
:103FC0008F9383E499E09F938F93FF92EF92F80190
:103FD0000995909141042DB73EB7265E3F4F2DBF06
:103FE0009923B9F08CE380936502E0912804F09165
:103FF0002904892F90E09F938F938CE299E09F93FF
:104000008F93BF92AF9209954DB75EB74A5F5F4FEE
:10401000DEC090916D029923B1F08CE3809365022C
:10402000E0912804F0912904892F90E09F938F93C9
:1040300087E199E09F938F93BF92AF9209958DB7D7
:104040009EB70696BEC28091420484FF0AC08CE3EC
:1040500080936502E0912804F09129048AE099E0B8
:1040600011C08091920190919301069710F00C94E9
:1040700003298CE380936502E0912804F0912904E0
:104080008DEF98E09F938F93BF92AF920C94A028EE
:1040900080912506C0912804D091290410E1E12ED9
:1040A0001FE1F12E80FF5BC01092650260916003FA
:1040B00070916103809162039091630325E030E089
:1040C00040E050E00E9409713F932F9380EF98E009
:1040D0009F938F93FF92EF92FE01099584E1809365
:1040E0006502009128041091290460916403709185
:1040F0006503809166039091670325E030E040E01E
:1041000050E00E9409713F932F9383EE98E09F93B4
:104110008F93FF92EF92F801099588E280936502F0
:10412000E0912804F091290480911A0190911B01DB
:104130009F938F9386ED98E09F938F93FF92EF92DA
:1041400009958CE380936502E0912804F09129049D
:1041500087B590E09F938F9389EC98E0E8C4109224
:1041600065028AEB98E09F938F93FF92EF92FE0196
:10417000099584E180936502E0912804F091290477
:1041800081EB98E09F938F93FF92EF92099588E2DD
:1041900080936502E0912804F091290482EA98E076
:1041A0009F938F93FF92EF9209958CE38093650222
:1041B000E0912804F091290489E998E09F938F9376
:1041C000FF92EF9209954DB75EB7405F5F4F4DBFCD
:1041D0000C940329109265028CE898E09F938F93CA
:1041E000FF92EF92FE01099584E1809365020091B0
:1041F0002804109129046091FE027091FF028091C1
:1042000000039091010320E034E040E050E00E9480
:1042100009715F934F933F932F938DE798E09F939E
:104220008F93FF92EF92F801099588E280936502DF
:1042300000912804109129046091060370910703EE
:10424000809108039091090320E034E040E050E0C1
:104250000E9409715F934F933F932F938EE698E0EE
:104260009F938F93FF92EF92F80109958CE38093CF
:104270006502E0912804F091290480914203909115
:1042800043039F938F938FE598E09F938F93FF92C3
:10429000EF9209958DB79EB74A9693C11092650229
:1042A0008091470790914807209145073091460734
:1042B0009F938F933F932F938FE498E09F938F93D7
:1042C000FF92EF92FE01099584E180936502E091EF
:1042D0002804F091290480914B0790914C0720917C
:1042E000490730914A079F938F933F932F938FE312
:1042F00098E09F938F93FF92EF92099588E28093C5
:104300006502E0912804F091290480914F07909173
:10431000500720914D0730914E079F938F933F9305
:104320002F938FE298E09F938F93FF92EF920995DE
:104330008CE380936502E0912804F0912904809138
:1043400053079091540720915107309152079F9342
:104350008F933F932F938FE198E09F938F93FF92DA
:10436000EF9209952DB73EB7205E3F4F2DBF4BC74B
:1043700010926502E0911A06F0E0EE0FFF1FED5B70
:10438000F84F20813181E0911906F0E0EE0FFF1F18
:10439000ED5BF84F808191813F932F939F938F9393
:1043A0008FE098E09F938F93FF92EF92FE01099523
:1043B00084E1809365024091280450912904E091A2
:1043C0001C06F0E0EE0FFF1FED5BF84F20813181FE
:1043D000E0911B06F0E0EE0FFF1FED5BF84F8081D0
:1043E000918188589F4F3F932F939F938F938FEF87
:1043F00097E09F938F93FF92EF92FA01099588E2DD
:10440000809365024091280450912904E0911E0692
:10441000F0E0EE0FFF1FED5BF84F20813181225954
:104420003F4FE0911D06F0E0EE0FFF1FED5BF84FF0
:104430008081918182599F4F3F932F939F938F93B8
:104440008FEE97E09F938F93FF92EF92FA01099579
:104450008CE3809365024091280450912904E091F7
:104460002006F0E0EE0FFF1FED5BF84F2081318159
:1044700022593F4FE0911F06F0E0EE0FFF1FED5B6A
:10448000F84F8081918182599F4F3F932F939F9343
:104490008F938FED97E09F938F93FF92EF92FA01A6
:1044A00009954DB75EB7405E5F4F91CE10926502A1
:1044B00081ED97E09F938F9310E1A12E1FE1B12E24
:1044C000FF92EF92FE010995809100010F900F90ED
:1044D0000F900F908A3009F076C084E180936502D6
:1044E00000912804109129042091EB023091EC02F4
:1044F000C90168E070E00E94D470FC01C90168E065
:1045000070E00E94D4708091390290913A02861B2B
:10451000970BFF93EF937F936F939F938F9380EC11
:1045200097E09F938F93BF92AF92F801099588E22D
:104530008093650200912804109129042091ED02D6
:104540003091EE02C90168E070E00E94D470FC0175
:10455000C90168E070E00E94D47080913B029091A4
:104560003C02861B970BFF93EF937F936F939F9370
:104570008F938FEA97E09F938F93BF92AF92F8014A
:1045800009958CE380936502E0912804F091290459
:104590002091EF023091F00280913D0290913E0215
:1045A000A901481B590B3F932F935F934F9381EAC7
:1045B00097E09F938F93BF92AF9209958DB79EB767
:1045C0004C968DBF20C68B3019F0843108F489C019
:1045D00084E180936502C0902804D0902904E09182
:1045E000EB02F091EC02CF0160E170E00E94D47028
:1045F00062E070E00E94D4707B01CF0160E170E066
:104600000E94D4708B012091390230913A02CF017F
:1046100068E070E00E94D470261B370BFF92EF9287
:104620001F930F933F932F938FE897E09F938F9360
:10463000BF92AF92F601099588E280936502C0901F
:104640002804D0902904E091ED02F091EE02CF0110
:1046500060E170E00E94D47062E070E00E94D4706B
:104660007B01CF0160E170E00E94D4708B0120914A
:104670003B0230913C02CF0168E070E00E94D470B0
:10468000261B370BFF92EF921F930F933F932F93AD
:104690008DE797E09F938F93BF92AF92F6010995B4
:1046A0008CE380936502E0912804F0912904209125
:1046B000EF023091F002C90162E070E00E94D47014
:1046C00080913D0290913E02281B390B7F936F939E
:1046D0003F932F938EE697E09F938F93BF92AF9275
:1046E00027C38D3009F08FC584E180936502C090A7
:1046F0002804D0902904E0911C01F0E00091EB0225
:104700001091EC02C80160E170E00E94D4707B015E
:104710002091390230913A02C80168E070E00E94AD
:10472000D470261B370BFF93EF93FF92EF923F93CA
:104730002F938AE597E09F938F93BF92AF92F601F4
:10474000099588E280936502C0902804D0902904DE
:10475000E0911D01F0E00091ED021091EE02C80120
:1047600060E170E00E94D4707B0120913B023091A7
:104770003C02C80168E070E00E94D470261B370B31
:10478000FF93EF93FF92EF923F932F9386E497E08E
:104790009F938F93BF92AF92F60109958CE380931C
:1047A00065020091280410912904E0911E01F0E0B7
:1047B0002091EF023091F002C90162E070E00E94A6
:1047C000D47080913D0290913E02281B390BFF93DB
:1047D000EF937F936F933F932F9382E397E09F93A1
:1047E0008F93BF92AF92F80109954DB75EB7425EC5
:1047F0005F4FEDCC1092650285E297E09F938F9317
:10480000FF92EF92FE01099584E180936502E091A9
:104810002804F09129048091F5029091F6022091EC
:104820004102309142029F938F933F932F9386E1F1
:1048300097E09F938F93FF92EF92099588E2809380
:104840006502E0912804F09129048091F70290918B
:10485000F80220913F02309140029F938F933F9343
:104860002F9387E097E09F938F93FF92EF920995A4
:104870008CE380936502E0912804F09129048091F3
:10488000FB029091FC0220914302309144029F93DD
:104890008F933F932F9388EF96E09F938F93FF9290
:1048A000EF928BCE109265028091100190911101D0
:1048B0006AE070E00E94D4709C0180911001909198
:1048C00011016AE070E00E94D4703F932F937F93B0
:1048D0006F9384EE96E09F938F93FF92EF92FE0189
:1048E000099584E1809365020091280410912904C0
:1048F0002091800830918108C9016AE070E00E942F
:10490000C070FC01C9016AE070E00E94C070FF93B2
:10491000EF937F936F9380ED96E09F938F93FF9239
:10492000EF92F801099588E280936502E0912804EE
:10493000F091290480918208909183089F938F932E
:1049400080EC96E09F938F93FF92EF9209958CE312
:1049500080936502E0912804F091290480918408F5
:10496000909185089F938F938EEA96E09F938F9303
:10497000FF92EF9209952DB73EB7245E3F4FF6CCDC
:104980001092650285EA96E09F938F93FF92EF92D3
:10499000FE01099584E180936502E0912804F0917D
:1049A000290480914307909144079F938F9385E951
:1049B00096E09F938F93FF92EF92099588E2809300
:1049C0006502E0912804F09129048091550390E05C
:1049D0009F938F9385E896E09F938F93FF92EF923A
:1049E00009958CE380936502E0912804F0912904F5
:1049F0008091420790E001979F938F9385E796E01F
:104A00009F938F93FF92EF9209954DB75EB74A5EE1
:104A10005F4FDDCB109265028DE696E09F938F93FA
:104A2000FF92EF92FE01099584E180936502E09187
:104A30002804F091290480914603909147039F93A5
:104A40008F938FE596E09F938F93FF92EF92099556
:104A500088E280936502E0912804F0912904809116
:104A60004203909143039F938F9381E596E09F9338
:104A70008F93FF92EF9209958CE380936502E0910A
:104A80002804F091290480914403909145039F9359
:104A90008F9383E496E09F938F93FF92EF92099513
:104AA0008DB79EB746968DCD1092650280914C03CE
:104AB00090E09F938F9387E396E09F938F93FF926D
:104AC000EF92FE01099584E180936502E09128044C
:104AD000F091290480914D0390E09F938F938BE296
:104AE00096E09F938F93FF92EF92099588E28093CF
:104AF0006502E0912804F091290480914E0390E032
:104B00009F938F938FE196E09F938F93FF92EF9205
:104B100009958CE380936502E0912804F0912904C3
:104B200080914F0390E09F938F9383E196E09F9352
:104B30008F93FF92EF9209952DB73EB7285E3F4FB6
:104B400015CC109265028091500390E09F938F9353
:104B500087E096E09F938F93FF92EF92FE01099575
:104B600084E180936502E0912804F091290480910A
:104B7000510390E09F938F938BEF95E09F938F93DA
:104B8000FF92EF92099588E280936502E0912804F4
:104B9000F09129048091520390E09F938F938FEEC0
:104BA00095E09F938F93FF92EF9209958CE380930A
:104BB0006502E0912804F09129048091530390E06C
:104BC0009F938F9383EE95E09F938F93FF92EF9245
:104BD00009954DB75EB7485E5F4FF9CA10926502FE
:104BE0008BED95E09F938F93FF92EF92FE010995D5
:104BF00084E180936502E0912804F091290480917A
:104C0000AE0190E09F938F938DEC95E09F938F93EF
:104C1000FF92EF92099588E280936502E091280463
:104C2000F0912904809127029091280264E070E0BD
:104C30000E94D4707F936F938FEB95E09F938F9337
:104C4000FF92EF9209958CE380936502E09128042E
:104C5000F09129042091480630E08091470690E0C9
:104C60003F932F939F938F9381EB95E09F938F9327
:104C7000FF92EF9209958DB79EB74896A2CC1092FD
:104C8000650281EA95E09F938F93FF92EF92FE0178
:104C9000099584E180936502E0912804F09129044C
:104CA00020916204332727FD309580916104992774
:104CB00087FD90953F932F939F938F9381E995E084
:104CC0009F938F93FF92EF92099588E280936502FC
:104CD000E0912804F091290420916304332727FDF3
:104CE00030958091640490E03F932F939F938F932E
:104CF00081E895E09F938F93FF92EF9209958CE363
:104D000080936502E0912804F091290420916804C1
:104D100030E080916504992787FD90953F932F930C
:104D20009F938F9381E795E09F938F93FF92EF92EC
:104D3000099521CE1092650281E695E09F938F93AD
:104D4000FF92EF92FE01099584E180936502E09164
:104D50002804F09129046091FD0670E06F7770706F
:104D60004091F50650E04F7750702091ED0630E00D
:104D70002F7730708091E50690E08F7790707F9369
:104D80006F935F934F933F932F939F938F9380E500
:104D900095E09F938F93FF92EF92099588E280931D
:104DA0006502E0912804F091290460911D0770E0EC
:104DB0006F7770704091150750E04F7750702091D9
:104DC0000D0730E02F7730708091050790E08F77E6
:104DD00090707F936F935F934F933F932F939F9325
:104DE0008F938FE395E09F938F93FF92EF920995B6
:104DF0008CE380936502E0912804F091290460918E
:104E00003D0770E06F7770704091350750E04F7745
:104E1000507020912D0730E02F773070809125075A
:104E200090E08F7790707F936F935F934F933F9352
:104E30002F939F938F938EE295E09F938F93FF9292
:104E4000EF9209954DB75EB7485D5F4FC0C91092AC
:104E500065028FE195E09F938F93FF92EF92FE01A1
:104E6000099584E180936502E0912804F09129047A
:104E700060910107772767FD70954091F9065527E6
:104E800047FD50952091F106332727FD30958091FD
:104E9000E906992787FD90957F936F935F934F93D2
:104EA0003F932F939F938F938EE095E09F938F93E3
:104EB000FF92EF92099588E280936502E0912804C1
:104EC000F091290460912107772767FD7095409143
:104ED0001907552747FD509520911107332727FDC6
:104EE000309580910907992787FD90957F936F935F
:104EF0005F934F933F932F939F938F938DEF94E006
:104F00009F938F93FF92EF9209958CE380936502B4
:104F1000E0912804F091290460914107772767FD0B
:104F2000709540913907552747FD509520913107DD
:104F3000332727FD309580912907992787FD909584
:104F40007F936F935F934F933F932F939F938F9391
:104F50008CEE94E09F938F93FF92EF9209958DB71B
:104F60009EB788962ECB109265028DED94E09F93AC
:104F70008F9300E11FE1FF92EF92FE01099584E11A
:104F800080936502E0912804F09129046091FD0668
:104F9000661F6627661F87E0689FB0011124635D66
:104FA0007F4F4091F506441F4427441F86E0489FE9
:104FB000A0011124435D5F4F2091ED06221F22279F
:104FC000221F85E0289F90011124235D3F4F80918F
:104FD000E506881F8827881F90E0880F991F880F93
:104FE000991F8D967F936F935F934F933F932F936A
:104FF0009F938F9389EC94E09F938F93FF92EF920E
:10500000099588E280936502E0912804F0912904D3
:1050100060911D07661F6627661F8BE0689FB001C1
:105020001124635D7F4F40911507441F4427441F9F
:105030008AE0489FA0011124435D5F4F20910D0736
:10504000221F2227221F89E0289F90011124235D1F
:105050003F4F80910507881F8827881F90E0A3E0B5
:10506000880F991FAA95E1F78D967F936F935F93B1
:105070004F933F932F939F938F9385EB94E09F9350
:105080008F93FF92EF9209958CE380936502E091F4
:105090002804F091290480912507881F8827881FFC
:1050A0002CE0829FC00111248D969F938F9384EAF8
:1050B00094E09F938F93FF92EF9209952DB73EB79F
:1050C0002E5D3F4F2DBF80912D0787FF12C080E4DA
:1050D00080936502E0912804F091290481EA94E02C
:1050E0009F938F931F930F9309950F900F900F909D
:1050F0000F908091350787FF12C084E4809365028A
:10510000E0912804F09129048EE994E09F938F9315
:105110001F930F9309950F900F900F900F90809110
:105120003D0787FF70C088E480936502E091280402
:10513000F09129048BE994E09F938F931F930F9331
:1051400009950F900F900F900F905DC0109265021F
:105150008DE894E09F938F93FF92EF92FE01099563
:1051600084E180936502E0912804F0912904809104
:10517000F4019091F5019F938F9380E894E09F93C1
:105180008F93FF92EF92099588E280936502E091F8
:105190002804F09129048091F2019091F3019F93EA
:1051A0008F9383E794E09F938F93FF92EF920995FB
:1051B00089E480936502E0912804F09129048BE64C
:1051C00094E09F938F93FF92EF92099580916702ED
:1051D0004DB75EB74C5E5F4F4DBF83FF14C010925A
:1051E000F3011092F20160E070E08EE090E00E9426
:1051F000322A09C080917001981719F49150909348
:1052000070011092660210926702EAE0CDB7DEB735
:105210000C944871DC014AEA20E030E007C0FD014F
:10522000E20FF31F8081480F2F5F3F4F261737078C
:10523000B1F7842F90E00895FC014AEA20E030E0C5
:1052400009C0DF01A20FB31F0E946171802D480FBA
:105250002F5F3F4F26173707A1F7842F90E008955F
:1052600081E080931B0682E080931A0683E080939E
:10527000190684E080931C0685E080931D0686E075
:1052800080931E0687E080931F0688E080932006A7
:1052900089E0809321068AE0809322068BE0809348
:1052A00023068CE080932406089595E590931806D4
:1052B00080910001843170F08AE08093380610926A
:1052C0005C068BE1809334068EE4809359068093CC
:1052D0005A060DC083E08093380680E280935C0616
:1052E0008EE1809334069093590690935A068AE68D
:1052F0008093250683E080937E0681E080933F06BD
:1053000010927B061092780668E06093320686EE73
:105310008093330680E8809335065EE1509326063D
:105320008FEF809328069FE09093290650932706DD
:1053300010922B0660932C0680E480932D06109229
:105340002E0690932A061092410610924206109261
:1053500043061092440610925E0610925F06109269
:1053600060061092610638E73093450648E24093A4
:10537000460672E070937D069093470627EF2093D0
:10538000480685E080934D068DE780935006809314
:10539000510680935206309349069AE590934A0647
:1053A00010924B0620934C0640934E0610924F06E7
:1053B0008FE58093620683EF809364068AEA809388
:1053C00066068093670684E1809363068093650692
:1053D00082E380935306909354068093550610926F
:1053E0007C068EEF8093680624E6209369069093EE
:1053F0006A0690936B0690936C068BE480936D061F
:1054000080936E0680936F061092700686E08093FC
:1054100071066093720690937306509374062093FE
:10542000750620937606709377061092790610928F
:105430007A0681E280933C068DE280933D0690934C
:105440003E060895DC010E946171802D90E0089570
:10545000DC01062E0E9473710895DC010E946E71BA
:10546000CF010895DC010B010E947F71089522E0B5
:1054700030E0D9010E946171802D863028F083E0F0
:10548000D901082E0E94737190E00895863010F0C3
:1054900085E003C0882309F481E0A2E0B0E0082E93
:1054A0000E9473710895CF93DF93CCE8D6E080918A
:1054B0008C06813019F080E090E010C06DE470E05F
:1054C000CE010E940A298093D9068EE4A8EEB3E0AB
:1054D000FE01182E0E94847181E090E0DF91CF914F
:1054E00008956DE470E088EE93E00E941C29A5E326
:1054F000B4E00E946171902D891791F428EE33E099
:10550000D9010E946171802D813051F48EE4ECE864
:10551000F6E0D901182E0E94697181E090E00895AB
:1055200080E090E0089581E080938C06E9E9F6E060
:105530001082118212821382349686E0E93DF807C8
:10554000B9F780E48093990680939A0610929B069F
:1055500080939C0680939D0690EC90939E061092FB
:105560009F068093A0068093A1061092A2069093B6
:10557000A3069093A4068093A5061092A606809396
:10558000A7069093A806ADE8B6E0E1E7F1E087E072
:1055900001900D928150E1F76DE470E08CE896E0A7
:1055A0000E940A298093D90608950E94552988E00F
:1055B00080932F0630E13093300626E020933106A9
:1055C00094E69093360688E78093370690933906E1
:1055D00080933A0620933B06309340068AE58093F9
:1055E000560680E58093570696E49093580680E22D
:1055F00080935B0690935D06AFE7B6E0E9E7F1E0E4
:105600008CE001900D928150E1F763E770E088E152
:1056100096E00E940A2980938B0608950E945529DE
:105620008AE080932F0680E18093300626E0209365
:1056300031069AE59093360688E780933706909373
:10564000390680933A0620933B0620E220934006D9
:105650009093560680E5809357068CE38093580616
:1056600020935B068BE480935D06AFE7B6E0E3E84A
:10567000F1E08CE001900D928150E1F763E770E07A
:1056800088E196E00E940A2980938B0608950E9483
:1056900055298EE080932F0620E1209330068CE080
:1056A0008093310690E59093360686E9809337061D
:1056B0009093390680933A0686E080933B0680E219
:1056C000809340068AE5809356069093570681E0C2
:1056D0008093580620935B0684E680935D06AFE7CF
:1056E000B6E0EBE8F1E08CE001900D928150E1F73B
:1056F00063E770E088E196E00E940A2980938B06B8
:105700000895FF920F931F93F82E80911806853508
:10571000A9F585E08F1518F485E0F82E02C0FF206A
:1057200069F108E116E063E770E0C8010E940A2908
:1057300080938B0684E7F89ED00111245097F801DE
:10574000182E0E9484718CE00F5F1F4FA0E5B0E01F
:10575000F801182E0E9484716CE070E0C8010E946C
:105760000A29ACE5B0E0082E0E9473718F2D0E94CB
:10577000462A0E94836081E090E002C080E090E0D1
:105780001F910F91FF900895FF920F931F93CF9356
:10579000DF93982F8150853008F093E024E7F22EB4
:1057A0009F9D80011124E801609763E770E0CE01BE
:1057B0000E941C290D591F4FD8010E946171902D24
:1057C000891789F4DE010E946171802D853559F4B5
:1057D000E8E1F6E0DE011F2C0E9469710E948360FF
:1057E00081E090E002C080E090E0E5E0CDB7DEB778
:1057F0000C944D710F931F93182F062F863080F451
:10580000882311F411E006C0823039F0833049F06A
:10581000813039F40E94472B06C00E940E2B03C032
:1058200015E00E94D52A0023B1F06CE070E080E51D
:1058300090E00E941C29ACE5B0E00E946171902DBF
:10584000891749F48CE0E9E1F6E0A0E5B0E0182E14
:105850000E94697102C00E943029812F0E94812B11
:105860001F910F910895A0E0B0E0E9E3FCE20C94F1
:10587000297121E030E0D9010E946171802D8535C8
:1058800011F4DD2407C085E5D901082E0E9473714B
:10589000DD24D3946CE070E080E590E00E941C2948
:1058A000782EACE5B0E00E946171C02C10E0C1E040
:1058B000D0E05CEF852E59E0952E49EBA42E4CE00C
:1058C000B42E39E1E32E36E0F32E0C2FDD2029F43F
:1058D0008C2F0E94C42B882369F5DF93CF939F926E
:1058E0008F92BF92AF92E0912804F091290409951C
:1058F0008DB79EB706968DBF023039F0033041F068
:10590000013031F40E94472B05C00E940E2B02C0CB
:105910000E94D52A7C1441F48CE0A0E5B0E0F701A8
:10592000182E0E94697102C00E943029802F0E94A7
:10593000812B11E02196C630D10539F6112319F0DB
:1059400083E00E94462A22E030E0D9010E94617182
:10595000002D063030F083E0D901082E0E947371CB
:1059600003E0802F0E94C42B802F90E09F938F93A1
:1059700083EE99E09F938F93C9EBDCE0DF93CF93A5
:10598000E0912804F091290409958DB79EB70696F9
:105990008DBFDD2021F40E94712A882399F482ECC6
:1059A00099E09F938F93DF93CF93E0912804F09138
:1059B000290409950E94932A0E94532A0F900F9060
:1059C0000F900F90E9E9F6E090E0808118160CF452
:1059D0009F5F349686E0E93DF807B9F79093170684
:1059E000892F90E09F938F938DE896E09F938F93FC
:1059F00081EA99E09F938F9309EB1CE01F930F932B
:105A0000E0912804F0912904099580E899E09F939A
:105A10008F931F930F93E0912804F0912904099527
:105A2000EDB7FEB73C96EDBFEDE0CDB7DEB70C9419
:105A300045712FB7F8943998389A98B1936098B90E
:105A40009091B9009C7F9093B9009AE29093B8002E
:105A50001092680210926A0210926B02882379F009
:105A6000E2EEF6E010821182128213821482158215
:105A700016821782389687E0E234F80799F778940F
:105A80002FBF0895EF92FF920F931F931092680219
:105A90000CEB10E084E9F801808380E880831092A9
:105AA000BD001092BA008BEBE82EF12CF7011082AA
:105AB0001092B9001092B80010926C0280E00E941F
:105AC000192DF701108285E8F801808380916E021C
:105AD000826080936E021F910F91FF90EF90089566
:105AE0001F920F920FB60F9211242F933F934F9353
:105AF0008F939F93AF93BF93EF93FF93809168022F
:105B00008F5F809368028150E82FF0E0E731F10564
:105B100008F09EC2EE59FF4F0C945B7181E08093B8
:105B20006C0205C080916A028F5F80936A02E091E7
:105B30006A02F0E0EE0FFF1FEE0FFF1FE457F94F70
:105B40008585181624F080916A028C3058F3809174
:105B50006A028C3070F01092700210926F021092F4
:105B60006A0285E08093680280916B02880F8D5AEB
:105B700004C080916A02880F8E5A8093BB0085E82A
:105B80005CC2E0916A02F0E0A3E0EE0FFF1FAA956D
:105B9000E1F7EE51F94F81818093BB0085E8809356
:105BA000BC00E0916A02F0E0EE0FFF1FEE0FFF1F56
:105BB000EE0FFF1FEE51F94F808180FF88C0E0910A
:105BC0006A02F0E0EE0FFF1FEE0FFF1FEE0FFF1F48
:105BD000EE51F94F8281882329F080911706873092
:105BE00008F44CC280916F0290917002892B09F0E9
:105BF00045C28091710290917202892B09F03EC2D8
:105C000066C040916A02209171023091720281E077
:105C100090E002C0880F991F4A95E2F782239323F0
:105C2000892B71F0E0916A02F0E0EE0FFF1FEE0F9A
:105C3000FF1FEE0FFF1FEE51F94F80E184830BC071
:105C4000E0916A02F0E043E0EE0FFF1F4A95E1F7B2
:105C5000EE51F94F1482E0916A02A0916A02F0E0DD
:105C600033E0EE0FFF1F3A95E1F7EE51F94F9481C3
:105C7000990F990F990FB0E023E0AA0FBB1F2A9547
:105C8000E1F7AE51B94FFD0182818770982B909357
:105C9000BB0085E88093BC0040916A0220916F02AE
:105CA0003091700281E090E002C0880F991F4A9500
:105CB000E2F782239323892B51F08AED96E09093AB
:105CC00075028093740288E080937302D7C184E0E8
:105CD00076C1E0917402F091750281918093BB00CE
:105CE00085E88093BC00F0937502E0937402809184
:105CF0007302815080937302882309F4BFC183E04B
:105D00005EC18091B900803321F5809177028823AC
:105D100029F480916A028F5F80937702E0916A0292
:105D2000F0E093E0EE0FFF1F9A95E1F7EE51F94F87
:105D300083818F778F3769F0E0916A02F0E083E02A
:105D4000EE0FFF1F8A95E1F7EE51F94F83818F5FC8
:105D500083831092680284E98093BC008AE090E01B
:105D6000909393018093920180916A028F5F809358
:105D70006A02109268025BC18091B9008034B9F167
:105D8000E0916B02F0E0B3E0EE0FFF1FBA95E1F790
:105D9000EE51F94F83818F77838380916B028F5F00
:105DA00080936B0280916B028C30A0F010926B029A
:105DB0001092720210927102809176028F5F80932E
:105DC00076028C3038F01092760280916E028D7FD0
:105DD00080936E0280916E02816080936E021092B9
:105DE000680284E98093BC0010926C0270C0E0915C
:105DF0006B02F0E0A3E0EE0FFF1FAA95E1F7EE5172
:105E0000F94F838180688383E0916B02F0E0EE0FAD
:105E1000FF1FEE0FFF1FEE0FFF1FEE51F94F8081A6
:105E200080FF2FC0E0916B02F0E0EE0FFF1FEE0F3E
:105E3000FF1FEE0FFF1FEE51F94F8481882351F0B1
:105E40008031E1F58AED96E09093750280937402BB
:105E500088E032C080916B0290E0880F991F880F14
:105E6000991F880F991F8951994F909375028093BC
:105E7000740290916B02809176029817E1F483E0AE
:105E80001BC080916B0290E043E0880F991F4A95F8
:105E9000E1F78951994F9093750280937402809134
:105EA0006E0281FD06C090916B0280917602981778
:105EB00011F482E001C081E080937302809173024B
:105EC000813011F485E801C085EC8093BC0080919D
:105ED000770280936D0210927702D0C0E091740235
:105EE000F09175028091BB008193F0937502E0936D
:105EF000740280917302815080937302823010F09B
:105F000085EC5AC0813011F485E856C080916E024C
:105F100081FF2AC08091890380FD1BC0E0916B0244
:105F2000F0E033E0EE0FFF1F3A95E1F7EE51F94F45
:105F300086818A3F71F4E0916B02F0E023E0EE0F7E
:105F4000FF1F2A95E1F7EE51F94F80818160808330
:105F50000BC0E0916B02F0E093E0EE0FFF1F9A950B
:105F6000E1F7EE51F94F108280916B028F5F8093C1
:105F70006B0280916B028C30A0F010926B02109239
:105F8000720210927102809176028F5F8093760286
:105F90008C3038F01092760280916E028D7F809363
:105FA0006E021092680284E98093BC0080916E02B8
:105FB000816080936E0260C08093BC0086E0809315
:105FC00068025CC088E9D9CD80916902880F805F42
:105FD000D4CD80916902813049F0813020F0823047
:105FE00009F04CC006C080911C01C7CD80911D01F5
:105FF000C4CD80911E01C1CD80E8BFCD1092680252
:1060000084E98093BC0010926C028AE090E0909347
:1060100093018093920180916902823088F480918B
:1060200069028F5F8093690282E1809368028091A8
:106030006E028E7F80936E0285EA8093BC001EC044
:106040001092690280916E02816080936E0216C088
:106050001092680284E98093BC0080916E02816096
:1060600080936E028AE090E0909393018093920176
:1060700010926A0210926B0210926C02FF91EF91E3
:10608000BF91AF919F918F914F913F912F910F9021
:106090000FBE0F901F9018950F931F93CF93DF9310
:1060A000982F80915E03882309F091C080910A02A5
:1060B000882309F08CC09D3008F08CC0992319F416
:1060C00086E090E089C0C92FD0E02197FE0113E05F
:1060D000EE0FFF1F1A95E1F7EE51F94F838187FF0D
:1060E00079C0808180FD03C083E090E075C080EDC1
:1060F00097E00E94A9168C0180916E0280FD05C078
:10610000C8010E94B2168823B9F381E090E002C072
:10611000880F991FCA95E2F79093720280937102DB
:10612000E3EEF6E040E050E020917102309172021F
:1061300081E090E0042E02C0880F991F0A94E2F7D4
:1061400082239323892B11F0108211824F5F5F4FBE
:1061500038964C30510541F710926B021092DA06D6
:106160001092E1061092680280916E028E7F8093F9
:106170006E0285EA8093BC0080916E0280FD05C0AE
:10618000C8010E94B2168823B9F3809171029091E0
:106190007202892B29F0C8010E94B216882311F3DC
:1061A0008091DA06823019F084E090E015C067E053
:1061B00070E08AED96E00E940A299091E106891725
:1061C00019F085E090E008C080E090E005C081E033
:1061D00090E002C082E090E0DF91CF911F910F919B
:1061E00008951F93CF93DF93182F80915E03882328
:1061F00009F097C080910A02882309F092C01D30EF
:1062000008F092C0112391F0E12FF0E083E0EE0F4F
:10621000FF1F8A95E1F7E652F94F838187FF84C01B
:10622000808180FD03C083E090E080C08091DA0629
:10623000823019F084E090E079C067E070E08AED88
:1062400096E00E940A299091E106891719F085E0ED
:1062500090E06CC080ED97E00E94A916EC0180915F
:106260006E0280FD05C0CE010E94B2168823B9F3EC
:10627000112319F48FEF90E00BC0212F30E0215053
:10628000304081E090E002C0880F991F2A95E2F724
:106290009093700280936F02E3EEF6E040E050E0EE
:1062A00020916F023091700281E090E0042E02C0D4
:1062B000880F991F0A94E2F782239323892B11F008
:1062C000108211824F5F5F4F38964C30510541F775
:1062D00010926A021092680280916E028E7F809303
:1062E0006E0285EA8093BC0080916E0280FD05C03D
:1062F000CE010E94B2168823B9F380916F0290916B
:106300007002892B29F0CE010E94B216882311F366
:1063100080916F0290917002892B31F480E090E0BF
:1063200005C081E090E002C082E090E0DF91CF9173
:106330001F91089580E090E0FC01EE0FFF1FDF0148
:10634000AD5BB84F11961C921E92E958F84F11821E
:10635000108201968A31910579F71092F00210921D
:10636000EF021092EE021092ED021092EC021092E7
:10637000EB0208951F920F920FB60F9211240F9304
:106380001F932F933F934F935F936F937F938F93BD
:106390009F93AF93BF93CF93DF93EF93FF9380913E
:1063A0007E0682FDBCC020918600309187008091DE
:1063B000E7029091E802281B390B809186009091AA
:1063C00087009093E8028093E702C9018D549440BE
:1063D0000091E5021091E602835F9A4170F4009308
:1063E00042070430110514F01092940181E090E00E
:1063F0009093E6028093E502D9C10D3011050CF0AF
:10640000D5C1C9018B5F9040845B914008F06AC0A0
:10641000E901C25DD140F801EE0FFF1FED5BF84FBF
:1064200080819181FE01E81BF90BCF01F7FF03C0CA
:10643000909581959F4F06975CF480915503883C19
:1064400020F480915503865F01C088EC809355034A
:10645000F801EE0FFF1FED5BF84F20813181C9017C
:10646000880F991F820F931F8C0F9D1F64E070E0AF
:106470000E94D4709B01CE010196861797071CF4E9
:106480002150304006C021976C177D0714F42F5F10
:106490003F4F80915503E801CC0FDD1F833CB8F0DE
:1064A000FE01ED5BF84F80819181A901481B590BDA
:1064B000CA0163E070E00E94D470CB01880F991F7D
:1064C000860F971FC958D84F9983888304C0C9582D
:1064D000D84F19821882F801EE0FFF1FED5BF84FBD
:1064E00031832083F8013196F093E602E093E502D0
:1064F00080910001843108F059C1E530F10511F4B3
:106500005D9A06C05D98E630F10511F45C9A05C00D
:106510005C98379711F45B9A49C15B9847C1209109
:106520008600309187008091E3029091E402281B5D
:10653000390B80918600909187009093E4028093BC
:10654000E302C9018D54944040917A02835F9A41DD
:1065500008F072C04093780280917802843008F489
:106560004BC09091420780917802981709F044C07F
:10657000209179022B30E0F11092940130E032C08A
:106580002F31B8F0E32FF0E0EE0FFF1FDF01AD5B1E
:10659000B84F8D919C91DF01AB56BD4F8D939C936D
:1065A000DF01A958B84F8D919C91E558FD4F91831B
:1065B0008083E32FF0E0EE0FFF1FDF01A753BD4FF5
:1065C0008D919C91DF01AD5BB84F11969C938E939A
:1065D000DF01A155BD4F8D919C91E958F84F9183F2
:1065E00080833F5F3D3060F230937A022F3FB9F0F5
:1065F0002F5F2093790213C080917902853620F0B5
:106600008AE08093790202C01092790280910001A1
:106610008A3011F0843110F0289A01C0289881E066
:1066200080937A0280915E03882309F0BFC0809135
:10663000780280934207BAC04D3008F08BC0C90180
:106640008B5F9040845B914008F067C0E901C25DB8
:10665000D140042F10E0F801EE0FFF1FE753FD4F6C
:106660000190F081E02DCE018E1B9F0B05960B97BC
:10667000B0F4809179028A3120F080915503865FD1
:1066800005C08B3028F0809155038E5F80935503B1
:1066900080915503893C18F088EC80935503CF0115
:1066A000880F991F8E0F9F1F8C0F9D1F64E070E055
:1066B0000E94D4709B01CE010196861797071CF4A7
:1066C0002150304006C021976C177D0714F42F5FCE
:1066D0003F4F80915503E801CC0FDD1F8E3B88F0C2
:1066E000C155DD4FC9018E1B9F0B63E070E00E9416
:1066F000D470CB01880F991F860F971F99838883C9
:1067000004C0C155DD4F19821882000F111F0753B5
:106710001D4FF8013183208309C0809100018A3028
:1067200011F0843110F0289A01C02898809100015E
:10673000843190F4453011F45D9A05C05D9846307F
:1067400011F45C9A05C05C98473011F45B9A04C060
:106750005B9802C0443120F44F5F40937A0226C018
:10676000443121F5809100018A3011F0843110F01C
:10677000289A01C028988EE180937A02C5E9D2E078
:1067800020E030E089919991F901EE0FFF1FDF01C0
:10679000AD5BB84F11969C938E93E958F84F1182D8
:1067A00010822F5F3F4F2D30310561F7FF91EF9140
:1067B000DF91CF91BF91AF919F918F917F916F9119
:1067C0005F914F913F912F911F910F910F900FBEAD
:1067D0000F901F901895EF92FF920F931F93E090E8
:1067E0003406FF24EE0CFF1CEE0CFF1C0027F7FC08
:1067F0000095102F6091FE027091FF0280910003BE
:1068000090910103A80197010E9409713093C4057A
:106810002093C305609106037091070380910803DC
:1068200090910903A80197010E9409713093C60550
:106830002093C5058091FD079091FE0764E070E00C
:106840000E94D4707093C8056093C70580910D08AD
:1068500090910E0864E070E00E94D4707093CA05B5
:106860006093C90520913D0230913E028091EF0274
:106870009091F002821B930B9093CC058093CB05F3
:106880006091600370916103809162039091630352
:1068900025E030E040E050E00E9409713093CE05E1
:1068A0002093CD0580914302909144029093D005AE
:1068B0008093CF0580914203909143039093D40538
:1068C0008093D30580911001909111019093D6058A
:1068D0008093D5058091550390E09093D8058093DF
:1068E000D7056091090870910A0880910B08909172
:1068F0000C082091D6013091D7014091D8015091D8
:10690000D9010E9409713093DA052093D90580914D
:10691000E30690E09093DC058093DB058091EB0625
:1069200090E09093DE058093DD058091F30690E082
:106930009093E0058093DF058091FB0690E09093B3
:10694000E2058093E10580912702909128029093BF
:10695000EC058093EB0580918008909181089093DD
:10696000F0058093EF0580918408909185089093BD
:10697000F2058093F1058091860890E09093FE05E2
:106980008093FD058091E3039091E40390930006CA
:106990008093FF058091E5039091E60390930206B2
:1069A0008093010680914104882321F48091420460
:1069B000882321F08091C205816003C08091C205C7
:1069C0008E7F8093C2051F910F91FF90EF900895E5
:1069D000ABE1B0E0EEEEF4E30C94247180913D0263
:1069E00090913E022091EF023091F002281B390B6A
:1069F0003B8F2A8F30930308209302088091330243
:106A00009091340268E070E00E94D470798F688FB2
:106A1000809135029091360268E070E00E94D47057
:106A20007F8B6E8B488D598D5093CF074093CE0747
:106A30007093C7076093C6072091410230914202CC
:106A4000C901880F991F820F931F880F991F4091CA
:106A5000FD075091FE079A01220F331F240F351FA7
:106A6000820F931F64E070E00E94D4707093FE0761
:106A70006093FD0720913F0230914002C901880FC9
:106A8000991F820F931F880F991F40910D085091F5
:106A90000E089A01220F331F240F351F820F931FF8
:106AA00064E070E00E94D47070930E0860930D084B
:106AB0002091410230914202C901880F991F820F33
:106AC000931F880F991FAA2797FDA095BA2F209191
:106AD0000E0330910F034091100350911103280FC2
:106AE000391F4A1F5B1F20930E0330930F034093FF
:106AF00010035093110320913F0230914002C901CD
:106B0000880F991F820F931F880F991FAA2797FD3F
:106B1000A095BA2F209112033091130340911403D2
:106B200050911503280F391F4A1F5B1F2093120332
:106B300030931303409314035093150320914102A3
:106B4000309142028091D8079091D907820F931F0C
:106B50009093D9078093D80720913F02309140024B
:106B60008091050890910608820F931F9093060864
:106B7000809305088091F9029091FA020196909312
:106B8000FA028093F90220910A0630910B06809157
:106B9000FB029091FC02281B390B442737FD4095DE
:106BA000542F8091160390911703A0911803B09170
:106BB0001903820F931FA41FB51F80931603909390
:106BC0001703A0931803B09319038FEC80937A00F6
:106BD00010921F0120912603309127034091280332
:106BE000509129032A8B3B8B4C8B5D8B80911E032C
:106BF00090911F03A0912003B09121038E879F875E
:106C0000A88BB98B2A8D3B8D442737FD4095542F97
:106C10002A873B874C875D8720902E0330902F0377
:106C20004090300350903103220E331E441E551EF7
:106C300020922E0330922F03409230035092310362
:106C40006090090870900A0880900B0890900C08DA
:106C5000620E731E841E951E6092090870920A08C7
:106C600080920B0890920C0830916E033987332381
:106C700009F055C180916F03882309F050C18091BC
:106C8000250686FF4CC12A893B894C895D89283BB2
:106C900064E936076EEF46076FEF560724F428EBDA
:106CA00034E94EEF5FEF29833A834B835C832954A9
:106CB0003B464140504044F028E43BE641E050E090
:106CC00029833A834B835C832E853F854889598984
:106CD000283B64E936076EEF46076FEF560724F44A
:106CE00028EB34E94EEF5FEF2D833E834F835887C7
:106CF00029543B464140504044F028E43BE641E003
:106D000050E02D833E834F835887A090B201BB246F
:106D1000CC24DD248E899F899C01442737FD409532
:106D2000542F6D817E818F8198850E94957020E01F
:106D300038E040E050E00E940971CA01B901A601A3
:106D400095010E94957020E030E140E050E00E9403
:106D5000097179018A012093D7033093D8034093B6
:106D6000D9035093DA03A88DB98D9D01442737FDCF
:106D70004095542F69817A818B819C810E94957006
:106D800020E038E040E050E00E940971CA01B901FA
:106D9000A60195010E94957020E030E140E050E0AE
:106DA0000E940971F092AC07E092AB073093B007F4
:106DB0002093AF072E193F09400B510B79018A012F
:106DC0002093D3033093D4034093D5035093D60339
:106DD000620E731E841E951E6092090870920A0846
:106DE00080920B0890920C088091B3018823A1F443
:106DF000CA01B90122E030E040E050E00E94097190
:106E0000221A330A440A550A20922E0330922F0385
:106E10004092300350923103AA84BB84CC84DD8439
:106E2000AE0CBF1CC01ED11EE090B101FF2400E0DB
:106E300010E0C601B5012D813E814F8158850E9429
:106E4000957020E038E040E050E00E940971CA01EE
:106E5000B901A80197010E94957020E030E140E05F
:106E600050E00E94097139014A012093DF033093F9
:106E7000E0034093E1035093E203C601B501298189
:106E80003A814B815C810E94957020E038E040E0BF
:106E900050E00E940971CA01B901A80197010E943E
:106EA000957020E030E140E050E00E9409717901E6
:106EB0008A012093DB033093DC034093DD0350937E
:106EC000DE038A8D9B8D97FF03C0909581959F4F20
:106ED00081349105E4F1A401930197FE07C0509518
:106EE0004095309521953F4F4F4F5F4F21383105E9
:106EF0004105510584F4A801970117FF07C050957B
:106F00004095309521953F4F4F4F5F4F21383105C8
:106F100041055105E4F081E08093490318C01092C7
:106F2000B0071092AF071092AC071092AB07109207
:106F3000DB031092DC031092DD031092DE0310924B
:106F4000DF031092E0031092E1031092E203E0905D
:106F5000DF03F090E0030091E1031091E203A090C1
:106F6000DB03B090DC03C090DD03D090DE03C601EC
:106F7000B50124E630E040E050E00E94097147018D
:106F8000821A930A9092C2078092C107C801B70182
:106F900024E630E040E050E00E94097139016A18AF
:106FA0007B087092B7076092B607E0900908F090EE
:106FB0000A0800910B0810910C086091D60170919D
:106FC000D7018091D8019091D90128E631E040E0C5
:106FD00050E00E949570E616F7060807190764F05E
:106FE000E61AF70A080B190BE0920908F0920A0852
:106FF00000930B0810930C082091090830910A089F
:1070000040910B0850910C0857FF0CC0260F371FFA
:10701000481F591F2093090830930A0840930B0812
:1070200050930C082E893F89280D391D79010027BE
:10703000F7FC0095102F80912A0390912B03A091CB
:107040002C03B0912D038E0D9F1DA01FB11F8093A7
:107050002A0390932B03A0932C03B0932D038091CC
:10706000680390916903281B390B442737FD40952D
:10707000542F8A899B89AC89BD89280F391F4A1FE3
:107080005B1F2093260330932703409328035093DC
:107090002903E0909B01F0909C0100919D011091CB
:1070A0009E01E216F30604071507C4F488EA91E688
:1070B000A0E0B0E08E199F09A00BB10B80932603CE
:1070C00090932703A0932803B093290380932A0366
:1070D00090932B03A0932C03B0932D0322273327E7
:1070E000A9012E193F09400B510B80912603909165
:1070F0002703A0912803B091290382179307A407BF
:10710000B507B4F4D801C701885A9146A040B040F1
:107110008093260390932703A0932803B093290319
:1071200080932A0390932B03A0932C03B0932D03F9
:10713000288D398D260D371D79010027F7FC009524
:10714000102F8091220390912303A0912403B091EA
:1071500025038E0D9F1DA01FB11F809322039093C6
:107160002303A0932403B093250380916A03909195
:107170006B03281B390B442737FD4095542F8E8510
:107180009F85A889B989280F391F4A1F5B1F209343
:107190001E0330931F034093200350932103E0907C
:1071A0009701F09098010091990110919A01E216CF
:1071B000F30604071507C4F488EA91E6A0E0B0E0FE
:1071C0008E199F09A00BB10B80931E0390931F0390
:1071D000A0932003B0932103809322039093230371
:1071E000A0932403B093250322273327A9012E1946
:1071F0003F09400B510B80911E0390911F03A091FA
:107200002003B091210382179307A407B507B4F4B4
:10721000D801C701885A9146A040B04080931E0310
:1072200090931F03A0932003B09321038093220324
:1072300090932303A0932403B093250380912E03FE
:1072400090912F03A0913003B091310380931A03E2
:1072500090931B03A0931C03B0931D0380911E0306
:1072600090911F03A0912003B09121038093FE020F
:107270009093FF02A0930003B09301038091260333
:1072800090912703A0912803B091290380930603CE
:1072900090930703A0930803B093090380912203FE
:1072A00090912303A0912403B091250380930203BE
:1072B00090930303A0930403B093050380912A03E2
:1072C00090912B03A0912C03B0912D0380930A037E
:1072D00090930B03A0930C03B0930D0380911201C4
:1072E0009091130168E070E00E94D4707093C4071D
:1072F0006093C307809114019091150168E070E0DC
:107300000E94D4707093B5076093B40780913902DE
:1073100090913A020F9734F488E19CEF9093C40760
:107320008093C3078091390290913A02079734F411
:1073300080E398EF9093C4078093C30720910001E6
:107340002A30A9F48091390290913A02835F9340E8
:1073500034F088EE93E09093C4078093C307809144
:10736000390290913A028A5F9340DCF014C0809118
:10737000390290913A02815D974034F088EE93E0B3
:107380009093C4078093C3078091390290913A0289
:10739000805E974034F080ED97E09093C40780932F
:1073A000C30780913B0290913C020F9734F488E12F
:1073B0009CEF9093B5078093B40780913B02909126
:1073C0003C02079734F480E398EF9093B5078093DD
:1073D000B4072A30A9F480913B0290913C02835F6C
:1073E000934034F088EE93E09093B5078093B40710
:1073F00080913B0290913C028A5F9340DCF014C084
:1074000080913B0290913C02815D974034F088EE80
:1074100093E09093B5078093B40780913B029091DD
:107420003C02805E974034F080ED97E09093B50782
:107430008093B4074091A701442309F4A1C0E091CF
:107440001201F09113012091D1033091D203E21B7C
:10745000F30BF093CC03E093CB0380911201909156
:107460001301820F931F62E070E00E94D47070934A
:10747000D2036093D103E138F1051CF080E890E07D
:1074800005C0E058FF4F34F480E89FEF9093CC03A1
:107490008093CB03E0911401F09115012091CF036B
:1074A0003091D003E21BF30BF093CE03E093CD03B6
:1074B0008091140190911501820F931F62E070E09A
:1074C0000E94D4707093D0036093CF03E138F1052C
:1074D0001CF080E890E005C0E058FF4F34F480E8ED
:1074E0009FEF9093CE038093CD03242F30E08091C3
:1074F000CB039091CC03289FF001299FF00D389F7A
:10750000F00D1124CF0160E170E00E94D4708091F1
:10751000C3079091C407860F971F9093C407809369
:10752000C3078091CD039091CE03D901A89F90010C
:10753000A99F300DB89F300D1124C90160E170E0A2
:107540000E94D4708091B4079091B507860F971F61
:107550009093B5078093B407809112019091130125
:10756000E80FF91FF0931301E093120180911401C9
:1075700090911501280F391F3093150120931401A4
:107580006091AB077091AC07EE89FF891E161F064C
:10759000ECF4CB0177FF04C088279927861B970B53
:1075A0009C01B901882777FD8095982F2091B30120
:1075B00030E040E050E00E94957020E430E040E090
:1075C00050E00E940971820E931E18C077FF03C01D
:1075D000709561957F4F882777FD8095982F209132
:1075E000B30130E040E050E00E94957020E430E0CC
:1075F00040E050E00E940971821A930A9092C207FB
:107600008092C1076091AF077091B007488D598D86
:1076100014161506ECF4CB0177FF04C088279927D0
:10762000861B970BDC01BD01882777FD8095982F7D
:107630002091B30130E040E050E00E94957020E4DA
:1076400030E040E050E00E940971620E731E18C0E5
:1076500077FF03C0709561957F4F882777FD8095F0
:10766000982F2091B30130E040E050E00E949570E7
:1076700020E430E040E050E00E940971621A730A91
:107680007092B7076092B6078091250687FF4CC0BD
:10769000B985BB2309F048C080916F03882309F0A6
:1076A00043C0E88DF98D21E0E130F2074CF0809184
:1076B000C3079091C407805091408E0F9F1F0EC04A
:1076C000488D598D6FEF4030560764F48091C307A1
:1076D0009091C40780509F4F840F951F9093C407CB
:1076E0008093C3078E899F89815091405CF080917F
:1076F000B4079091B50780509140EE89FF898E0FB5
:107700009F1F0EC02E893F894FEF2030340764F44D
:107710008091B4079091B50780509F4F820F931FBF
:107720009093B5078093B407E2E1C55E0C94407175
:1077300080915E03882301F5809189038C7F80937B
:107740008903A6E4B4E0E3EEF6E080910A02882320
:1077500009F41C928D9180831182389684E0A235C1
:10776000B80799F780910A02882359F080910A029C
:10777000815080930A0205C08091890381608093C3
:10778000890380916C02882319F010926C0208958D
:1077900010926A021092680280916E028E7F80932E
:1077A0006E0285EA8093BC0008950F931F93CF93D8
:1077B000DF930DE116E0CCE4D3E0D801EC91F0E0EA
:1077C000EE0FFF1FED5BF84F8081918182599F4F33
:1077D00097FF02C080E090E0FC018F3F910519F017
:1077E00014F0EFEFF0E02881822F90E0E817F9071E
:1077F00099F0AF01481B590BCA0164E070E00E9488
:10780000D470260F2883822F90E0E817F90714F42C
:10781000215001C02F5F28830F5F1F4F219656E034
:107820000532150751F680912706883F38F0EFEFB3
:10783000F0E0E81BF109E45BFC4F80818093A1013B
:107840008091A101882319F41092A10105C084360A
:1078500018F084E68093A10180912906883F38F0D2
:10786000EFEFF0E0E81BF109E45BFC4F80818093CF
:10787000A3018091A301882319F41092A30105C0EC
:10788000843618F084E68093A30180913606883F01
:1078900038F0EFEFF0E0E81BF109E45BFC4F80818A
:1078A0008093A8018091A8018B3010F48AE002C077
:1078B0008F3F11F48093A80180916306883F38F0D0
:1078C000EFEFF0E0E81BF109E45BFC4F808180936F
:1078D000DA078091DA07823010F481E002C08F3F2E
:1078E00011F48093DA0780916506883F38F0EFEF56
:1078F000F0E0E81BF109E45BFC4F80818093000815
:1079000080910008823010F481E002C08F3F11F4B2
:107910008093000880915006883F38F0EFEFF0E048
:10792000E81BF109E45BFC4F80818093D7078091CD
:107930005106883F38F0EFEFF0E0E81BF109E45B17
:10794000FC4F80818093B10780915206883F38F0C8
:10795000EFEFF0E0E81BF109E45BFC4F80818093DE
:10796000DF0780912806883F38F0EFEFF0E0E81B52
:10797000F109E45BFC4F80818093A20180912B068A
:10798000883F38F0EFEFF0E0E81BF109E45BFC4FD3
:1079900080818093A40180912D06883F38F0EFEF1D
:1079A000F0E0E81BF109E45BFC4F80818093A601C5
:1079B00080913506883F38F0EFEFF0E0E81BF109E1
:1079C000E45BFC4F80818093A50180913706883F5E
:1079D00038F0EFEFF0E0E81BF109E45BFC4F808149
:1079E0008093A90180913806883F38F0EFEFF0E0EE
:1079F000E81BF109E45BFC4F80818093A701809133
:107A00003906883F38F0EFEFF0E0E81BF109E45B5E
:107A1000FC4F80818093AA0180913A06883F38F01C
:107A2000EFEFF0E0E81BF109E45BFC4F808180930D
:107A3000AB0180914006883F38F0EFEFF0E0E81BA3
:107A4000F109E45BFC4F80818093AD018091410698
:107A5000883F38F0EFEFF0E0E81BF109E45BFC4F02
:107A600080818093740380914206883F38F0EFEF65
:107A7000F0E0E81BF109E45BFC4F80818093750323
:107A800080914306883F38F0EFEFF0E0E81BF10902
:107A9000E45BFC4F80818093760380914406883FAD
:107AA00038F0EFEFF0E0E81BF109E45BFC4F808178
:107AB0008093770380915E06883F38F0EFEFF0E027
:107AC000E81BF109E45BFC4F80818093780380918F
:107AD0005F06883F38F0EFEFF0E0E81BF109E45B68
:107AE000FC4F80818093790380916006883F38F055
:107AF000EFEFF0E0E81BF109E45BFC4F808180933D
:107B00007A0380916106883F38F0EFEFF0E0E81BE0
:107B1000F109E45BFC4F808180937B0380914506F3
:107B2000883F38F0EFEFF0E0E81BF109E45BFC4F31
:107B300080818093AE0180914906883F38F0EFEF55
:107B4000F0E0E81BF109E45BFC4F80818093AF011A
:107B500080915306883F38F0EFEFF0E0E81BF10921
:107B6000E45BFC4F80818093B00180915606883F92
:107B700038F0EFEFF0E0E81BF109E45BFC4F8081A7
:107B80008093B10180915706883F38F0EFEFF0E025
:107B9000E81BF109E45BFC4F80818093B201809186
:107BA0005806883F38F0EFEFF0E0E81BF109E45B9E
:107BB000FC4F80818093B30180915D06883F38F04F
:107BC000EFEFF0E0E81BF109E45BFC4F808180936C
:107BD000B40180917806883F38F0EFEFF0E0E81BC1
:107BE000F109E45BFC4F8081809310086091AD0146
:107BF00070E06F5F7F4F8CE398E20E94D4707093C7
:107C0000A00160939F0180913306809301088091C9
:107C100032068093C80790917A06933320F181E071
:107C200080937C03983F58F0EFEFF0E0E91BF109F7
:107C3000E45BFC4F8081823310F410927C038091CE
:107C40004E0890914F0897FF08C080917C038823CD
:107C500021F080914104806803C0809141048F77B6
:107C60008093410402C010927C0380914E08909151
:107C70004F0897FF1DC080915E038823C9F0809153
:107C80007C038823A9F080910D0190910E018F5FF4
:107C90009F4F71F488E99AE3909322028093210226
:107CA00080E094EA90930E0180930D0110927C0382
:107CB00080917C03882339F08091B101823D18F4D2
:107CC000825E8093B101DF91CF911F910F91089552
:107CD000CF93DF93809100018D3011F40E94B61D87
:107CE00010927A008091390290913A029093C407E1
:107CF0008093C30780913B0290913C029093B5071B
:107D00008093B40780913D0290913E0290930308C6
:107D1000809302082091410230914202C901880FEC
:107D2000991F820F931F880F991F9093FE078093CE
:107D3000FD0720913F0230914002C901880F991F31
:107D4000820F931F880F991F90930E0880930D0840
:107D50008FEC80937A00CDE1D6E0ACE4B3E0E8812B
:107D6000F0E0EE0FFF1FED5BF84F0190F081E02D8A
:107D7000E259FF4F1E161F061CF0E0E0F0E005C0C0
:107D8000EF3FF10514F0EFEFF0E08C91282F30E099
:107D9000E217F30714F4815004C02E173F0714F4C0
:107DA0008F5F8C932196119686E0C532D807B9F67D
:107DB0006091590670E080E090E024EC39E040E00A
:107DC00050E00E94957060939701709398018093A2
:107DD000990190939A0160915A0670E080E090E0DA
:107DE0000E94957060939B0170939C0180939D010C
:107DF00090939E01DF91CF910895A0E0B0E0E3E081
:107E0000FFE30C942871682E10924104469A109258
:107E1000F6021092F5021092F8021092F7021092F8
:107E2000FC021092FB021092EC021092EB021092F4
:107E3000EE021092ED021092F0021092EF021092F8
:107E4000B1011092B20110924A020E94683E84E68B
:107E500090E00E94C0190E94683E8091250680FF34
:107E600010C080911A0190911B01875B934038F4F8
:107E700080911A0190911B018E5E924010F40E9435
:107E8000A21EAA24C0E0D0E000E010E0EE24FF240F
:107E90008AE090E00E94C01980913D0290913E02DC
:107EA000C80FD91F8091390290913A02080F191F0B
:107EB00080913B0290913C02E80EF91EA39480E26F
:107EC000A81631F79801205F3F4F369527953695D4
:107ED00027953093EC022093EB02C70140969695CC
:107EE0008795969587959093EE028093ED02609624
:107EF00015E0D695C7951A95E1F7D093F002C09397
:107F0000EF029093F2028093F1023093F4022093F7
:107F1000F302662009F441C08091FD079091FE07AD
:107F200097FF03C0909581959F4F6CE070E00E9491
:107F3000D4709B017093F6026093F50280910D0856
:107F400090910E0897FF03C0909581959F4F6CE02C
:107F500070E00E94D4707093F8026093F7028091F1
:107F60000A0690910B069093FC028093FB02B901E4
:107F700084E090E00E94322A6091F7027091F8024A
:107F800086E090E00E94322A6091FB027091FC0230
:107F900088E090E00E94322A65C084E090E00E9470
:107FA0002D2A9093F6028093F50286E090E00E94DD
:107FB0002D2A9093F8028093F70288E090E00E94C7
:107FC0002D2A9C019093FC028093FB028091F50284
:107FD0009091F6028150984050F48091F702909170
:107FE000F8028150984018F421503440D8F1E091C3
:107FF0002804F091290482E29AE09F938F9389EB01
:108000009CE09F938F9309958091FD079091FE07C7
:1080100097FF03C0909581959F4F6CE070E00E94A0
:10802000D4707093F6026093F50280910D089091E0
:108030000E0897FF03C0909581959F4F6CE070E00C
:108040000E94D4707093F8026093F70280910A0640
:1080500090910B069093FC028093FB020F900F907F
:108060000F900F901092C4071092C3071092B5079B
:108070001092B407109203081092020884E690E070
:108080000E94C0192091410230914202B901660F4D
:10809000771F620F731F660F771F7093FE07609341
:1080A000FD0720913F02309140027901EE0CFF1C48
:1080B000E20EF31EEE0CFF1CF0920E08E0920D088B
:1080C000A0903406BB24CC24DD24882777FD80953E
:1080D000982FA60195010E9495703B014C01609379
:1080E000FE027093FF028093000390930103002728
:1080F000F7FC0095102FC801B7010E94957060939E
:10810000060370930703809308039093090360921A
:10811000220370922303809224039092250360939C
:108120002A0370932B0380932C0390932D031092BA
:108130002E0310922F03109230031092310380917E
:10814000160190911701A0911801B0911901909317
:108150000D0680930C0610924C0210924B02109266
:108160003E0310923F03109240031092410380910E
:1081700042039091430390934503809344030E94EC
:108180004D5C82E390E09093220280932102609103
:10819000590670E080E090E024EC39E040E050E0E7
:1081A0000E9495706856754C8F4F9F4F6093970152
:1081B000709398018093990190939A0160915A0667
:1081C00070E080E090E00E9495706856754C8F4F8B
:1081D0009F4F60939B0170939C0180939D019093AE
:1081E0009E011092D5011092D401609142037091CA
:1081F0004303882777FD8095982F2091D6013091F1
:10820000D7014091D8015091D9010E949570609397
:10821000090870930A0880930B0890930C08109239
:108220004B0310924A0381E0809301010E94836016
:10823000809189038460809389038FEF80937B080A
:1082400010927C0880E280937D08ADE1B6E0CCE43A
:10825000D3E0ED91F0E0EE0FFF1FED5BF84F808172
:1082600091818259899326E0A532B20791F784E67D
:108270008093550380912402882311F0469A579ADF
:108280008091EB029091EC0280569940815C9B4278
:1082900028F0809141048160809341048091ED0237
:1082A0009091EE0280569940815C9B4228F080912B
:1082B00041048260809341048091EF029091F0022A
:1082C0008C5291408957954028F0809141048460F8
:1082D000809341048091F5029091F6028C52914076
:1082E000835C914028F08091410488608093410430
:1082F0008091F7029091F8028C529140835C9140FA
:1083000028F0809141048061809341048091FB02B8
:108310009091FC02805092408355914028F08091CA
:108320004104806280934104EEE0CDB7DEB70C9447
:108330004471EF92FF921F93CF93DF93182FEB01BD
:1083400080915E03882399F47B01EE0CFF1C0DC025
:10835000D0932202C09321028091210290912202A7
:10836000892BD1F7C7010E94E319115088F7DF91DB
:10837000CF911F91FF90EF900895A4E3B0E0E3EC5C
:10838000F1E40C9424710E94E834409100014C30D7
:1083900010F4299A01C0299820915C0330915D0363
:1083A0008091C807E82EFF248701065F1F4F1D8BB1
:1083B0000C8B0217130714F43D8B2C8B8091550303
:1083C000843608F05AC08091B5039091B6030097A7
:1083D00031F001979093B6038093B50307C01092D4
:1083E0005E03809189038F7E809389034A3011F068
:1083F000443110F0289A01C0289880918703909109
:108400008803895E9340B0F180913D06282F30E0CB
:108410003D8B2C8B80918903806180938903A0918F
:108420001906B0E0AA0FBB1FFD01E958F84F1182F1
:108430001082E0911A062E2F30E0220F331FC9015F
:108440008958984FFC0111821082AD5BB84F11968C
:108450001C921E922D5B384FD90111961C921E92D0
:10846000E0911C06F0E0EE0FFF1FED5BF84F11826C
:108470001082AAC210925E03A7C2809155038D3864
:1084800008F4A2C2809189038F7E80938903809132
:108490003E0622E3829FC00111249093B60380938D
:1084A000B503EC89FD89B9978CF080915E03882330
:1084B00069F08091870390918803FFEF8F3F9F07BA
:1084C00029F0019690938803809387038091870316
:1084D000909188038F3F910509F038F5109236038B
:1084E00010923703109238031092390310923A0316
:1084F00010923B0310923C0310923D031092C7036D
:108500001092C8031092C9031092CA0310922E034E
:1085100010922F0310923003109231038A3F91057D
:1085200049F481E08093B00305C0809189038260A3
:1085300080938903E0911B06F0E0EE0FFF1FED5BD7
:10854000F84F80819181813591050CF42DC1809186
:108550005E03882309F028C180911C06E82FF0E013
:10856000EE0FFF1FED5BF84F808191818C349105F8
:108570000CF4F2C08091B4038F5F8093B403893C04
:1085800008F412C14C3010F4299801C0299A1092B5
:108590005E031092B40310928803109287038091B7
:1085A0001906282F30E0F901EE0FFF1FED5BF84FA1
:1085B00080819181873491059CF4E0911A06F0E066
:1085C000EE0FFF1FED5BF84F0190F081E02DF7FFFC
:1085D00003C0F095E195FF4FE734F1050CF46AC054
:1085E00080911A06682F70E0DB01AA0FBB1FAD5BFC
:1085F000B84F8D919C911197873491053CF0F9010A
:10860000EE0FFF1FED5BF84F808191818D919C9162
:108610008734910564F0F901EE0FFF1FED5BF84F11
:10862000808191818734910514F042E001C041E0DE
:10863000FB01EE0FFF1FED5BF84F808191818634C7
:1086400091055CF4F901EE0FFF1FED5BF84F80819F
:108650009181873491050CF043E0FB01EE0FFF1F81
:10866000ED5BF84F808191818A5B9F4F5CF4F9014B
:10867000EE0FFF1FED5BF84F8081918187349105EC
:108680000CF044E0660F771F6D5B784FDB018D9136
:108690009C918A5B9F4F5CF4220F331F2D5B384FF8
:1086A000F90180819181863491050CF445E0842F95
:1086B0000E94462AE0911A06F0E0EE0FFF1FED5BE4
:1086C000F84F0190F081E02DF7FF03C0F095E195A0
:1086D000FF4F7E97B4F4E0911906F0E0EE0FFF1F14
:1086E000ED5BF84F808191818A5B9F4F54F481E06C
:1086F00080935C0488EE93E09093220280932102A1
:1087000053C00E94372A0E94C42B80E00E940907B0
:1087100080913F060E94A66D8091250680FF10C0C3
:1087200080911A0190911B01875B934038F48091EE
:108730001A0190911B018E5E924010F40E94A21EBD
:108740001092240280E00E94FD3E81E08093B103FC
:1087500080932402579A1FC080819181855B9F4F2F
:108760000CF58091B4038F5F8093B403893CE0F0F3
:108770004C3010F4299801C0299A10925E0310928F
:10878000B403109288031092870381E00E94FD3E9B
:1087900081E08093B1030E94372A68E770E00E946D
:1087A000994102C01092B403E0911B06F0E0EE0F75
:1087B000FF1FED5BF84F808191818B5A9F4F0CF02A
:1087C00003C180915E03E0911C06882309F0D1C0AB
:1087D000F0E0EE0FFF1FED5BF84F80819181855B2C
:1087E0009F4F0CF0C3C020917B06E22FF0E0EE0F0C
:1087F000FF1FED5BF84F80819181855B9F4F1CF0DF
:10880000222309F0B3C08091B3038F5F8093B30339
:10881000893C08F4D9C01092B303809141048823A5
:1088200009F09DC08091B103882309F498C081E0CC
:1088300090E0909388038093870381E080935E03A8
:108840001092C7031092C8031092C9031092CA0372
:1088500010922E0310922F031092300310923103C6
:1088600010923203109233031092340310923503A6
:10887000E0903406FF2400E010E06091FD07709165
:10888000FE07882777FD8095982FA80197010E9401
:10889000957060931E0370931F0380932003909341
:1088A000210360910D0870910E08882777FD80954F
:1088B000982F0E94957060932603709327038093EE
:1088C0002803909329038091FE029091FF02A091CA
:1088D0000003B09101038093220390932303A0939C
:1088E0002403B09325038091060390910703A09180
:1088F0000803B091090380932A0390932B03A0935C
:108900002C03B0932D03109236031092370310926C
:1089100038031092390310923A0310923B031092DD
:108920003C0310923D038091890388608093890302
:10893000809179062FE0829FC0011124209142038B
:1089400030914303820F931F68E671E00E94D47058
:1089500062E070E00E94D4706093FD0235C08CED3F
:1089600095E090932202809321022EC01092B303CF
:108970002BC0F0E0EE0FFF1FED5BF84F808191817F
:108980008C349105FCF020917B06E22FF0E0EE0F95
:10899000FF1FED5BF84F80819181855B9F4F14F045
:1089A000222381F48091B2038F5F8093B203893CCC
:1089B00058F010925E031092B20310928803109246
:1089C000870302C01092B20380919401815080937A
:1089D0009401809194018F3F21F08091890384FF5D
:1089E0002DC30E94D53B80911906882E9924D4016D
:1089F000AA0FBB1FFD01ED5BF84F208131818091F3
:108A00002F06682E7724A958B84FED91FC9100915C
:108A1000300610E0269DC001279D900D369D900DDB
:108A200011244091A6035091A7039A01220F331FEE
:108A3000240F351F820F931F64E070E00E94D470F2
:108A40007B01E09FC001E19F900DF09F900D1124EC
:108A5000E80EF91EF092A703E092A60380911A0691
:108A6000A82EBB24F501EE0FFF1FDF01AD5BB84F51
:108A70008D919C91E958F84F0190F081E02DDC0137
:108A8000A69DC001A79D900DB69D900D112440910B
:108A9000A4035091A5039A01220F331F240F351F01
:108AA000820F931F64E070E00E94D4702B01E09F5E
:108AB000C001E19F900DF09F900D1124480E591EAA
:108AC0005092A5034092A40380917C038823E9F18E
:108AD000C70164E070E00E94D4706B01C20164E0E1
:108AE00070E00E94D4707B010091E001112707FD26
:108AF0001095E091FB03FF27E7FDF0956E9FC00105
:108B00006F9F900D7E9F900D1124C09E9001C19E7D
:108B1000300DD09E300D1124820F931F68E070E05D
:108B20000E94D4707093570360935603E09EC00177
:108B3000E19E900DF09E900D1124CE9E9001CF9E4F
:108B4000300DDE9E300D112437C0E0917906F0E043
:108B5000EB54FE4F06810093E001E081E093FB03BC
:108B6000112707FD1095FF27E7FDF0954E9EC001E8
:108B70004F9E900D5E9E900D1124E09E9001E19E0F
:108B8000300DF09E300D1124820F931F68E070E0CD
:108B90000E94D4707093570360935603409EC001A7
:108BA000419E900D509E900D1124EE9E9001EF9EDF
:108BB000300DFE9E300D1124821B930B68E070E097
:108BC0000E94D4707093590360935803E0911C067F
:108BD000F0E0EE0FFF1FED5BF84F808191819095E3
:108BE00081959F4F90935B0380935A038330910547
:108BF00014F0029705C0BFEF8E3F9B0734F4029636
:108C000090935B0380935A0304C010925B0310920D
:108C10005A038091E7039091E80300271127081B6E
:108C2000190B8091E3039091E403081B190B8091C9
:108C3000560390915703080F191F10935703009381
:108C400056038091E9039091EA03CC24DD24C81AED
:108C5000D90A8091E5039091E603C81AD90A809158
:108C6000580390915903C80ED91ED0925903C0924F
:108C70005803E0911B06F0E0EE0FFF1FED5BF84F8D
:108C8000E080F180E8E7F0E0EE0EFF1EF0925D0379
:108C9000E0925C036091A80170E0882777FD8095E1
:108CA000982F0E94097020E030E040E251E40E94D9
:108CB000776F0E94DB6F609307088091A901809312
:108CC000E0076091AA0170E0882777FD8095982FD2
:108CD0000E94097020E030E040E251E40E94776F8A
:108CE0000E94DB6F6093BB078091AB018093D0073C
:108CF0008091680480FF58C080911008813808F482
:108D000053C080916104992787FD90959C01269D11
:108D1000C001279D900D369D900D1124080F191F3D
:108D2000109357030093560380916204992787FD9F
:108D30009095AC01469DC001479D900D569D900DAC
:108D40001124C80ED91ED0925903C0925803209105
:108D50006304332727FD309580915A0390915B037C
:108D6000820F931F90935B0380935A0320912A06EE
:108D700030E080916504992787FD9095BC01269F7E
:108D8000C001279F900D369F900D11249093D5011F
:108D90008093D4018091640490E08E159F0524F4A3
:108DA00090935D0380935C0380915C0390915D03DD
:108DB00097FF04C010925D0310925C03809125061A
:108DC00082FF02C01092E007E0915603F091570332
:108DD0002091830330918403CF0164E070E00E940E
:108DE000D47077FF03C0709561957F4F26173707C2
:108DF000C4F4CF01F7FF03C0909581959F4F64E0C5
:108E000070E00E94D470709384036093830365368E
:108E100071056CF084E690E0909384038093830363
:108E200006C0215030403093840320938303E091A7
:108E30005803F09159032091850330918603CF01A7
:108E400064E070E00E94D47077FF03C07095619574
:108E50007F4F26173707C4F4CF01F7FF03C0909563
:108E600081959F4F64E070E00E94D47070938603F8
:108E700060938503653671056CF084E690E090930D
:108E800086038093850306C02150304030938603CB
:108E9000209385038091890384FF08C01092840386
:108EA000109283031092860310928503F501EE0F52
:108EB000FF1FED5BF84F2081318180915406482FD0
:108EC00050E04217530744F480917C0682FF04C0AF
:108ED00081E08093700311C0F501EE0FFF1FED5B81
:108EE000F84F2081318180915506DA01A81BB10924
:108EF0002A173B0714F410927003F501EE0FFF1FC1
:108F0000ED5BF84F8081918166277727641B750B95
:108F10008617970744F480917C0683FF04C081E0A4
:108F20008093710317C080917103882399F0AA0C74
:108F3000BB1CE3E4F7E0AE0EBF1ED5012D913C91C2
:108F40008091550690E0841B950B8217930714F4CB
:108F500010927103F401EE0FFF1FED5BF84F80815B
:108F600091814817590744F480917C0680FF04C022
:108F700081E08093730315C080917303882389F087
:108F8000F401EE0FFF1FED5BF84F208131818091DE
:108F90005506FA01E81BF1092E173F0714F4109249
:108FA0007303F401EE0FFF1FED5BF84F8081918199
:108FB0008617970744F480917C0681FF04C081E006
:108FC0008093720319C0809172038823A9F0880CE2
:108FD000991C13E4E12E17E0F12E8E0C9F1CD40196
:108FE0002D913C918091550690E0841B950B821742
:108FF000930714F41092720380917003882321F474
:1090000080917103882321F081E080936F0302C077
:1090100010926F0380917303882321F4809172036F
:10902000882351F081E080936E0310926F031092B9
:1090300070031092710302C010926E0380916F034F
:10904000882321F480916E03882369F08091530670
:1090500090E0EC89FD898E179F0714F49D8B8C8B13
:1090600081E0809349038091890384FF1AC01092A4
:109070005B0310925A0310925703109256031092FA
:109080005903109258039AE59093070888E7809354
:10909000E0079093BB078093D00710926F03109264
:1090A0006E03E090FE02F090FF0200910003109129
:1090B0000103E982FA820B831C838091D30790918C
:1090C000D407A091D507B091D6078E0D9F1DA01F84
:1090D000B11F8093D3079093D407A093D507B09383
:1090E000D6070091060310910703209108033091E1
:1090F00009030D831E832F8338878091DB079091AE
:10910000DC07A091DD07B091DE07800F911FA21F41
:10911000B31F8093DB079093DC07A093DD07B09328
:10912000DE07209102033091030340910403509124
:1091300005032F8F38A349A35AA38091CA079091A2
:10914000CB07A091CC07B091CD07820F931FA41F2E
:10915000B51F8093CA079093CB07A093CC07B09319
:10916000CD0740910A0350910B0360910C0370915D
:109170000D034B8F5C8F6D8F7E8F8091BC0790911C
:10918000BD07A091BE07B091BF07840F951FA61F12
:10919000B71F8093BC079093BD07A093BE07B09301
:1091A000BF0750916E035987552329F480916F03AF
:1091B000882309F460C010920E0310920F031092DE
:1091C00010031092110310921203109213031092C5
:1091D0001403109215031092D3071092D407109223
:1091E000D5071092D6071092DB071092DC07109279
:1091F000DD071092DE071092CA071092CB0710927B
:10920000CC071092CD071092BC071092BD071092A8
:10921000BE071092BF0780911E0390911F03A0917B
:109220002003B09121038093220390932303A09302
:109230002403B09325038091260390912703A091E6
:109240002803B091290380932A0390932B03A093C2
:109250002C03B0932D0310924E0210924D021092E7
:109260006B0310926A031092690310926803698578
:10927000662309F0C6C180916F03882309F0C1C13C
:1092800080910A0690910B06815092402CF48091B7
:109290005E03882309F4B5C180917B08E090340611
:1092A0004090FD075090FE0780900D0890900E08AA
:1092B00060908303709084038F3F09F4BFC0FF2444
:1092C00000E010E0A82EBB24A7FCB094CB2CDB2C34
:1092D00069817A818B819C81A80197010E94097123
:1092E000C201AA2797FDA095BA2F281B390B4A0B5C
:1092F0005B0BCA01B901A60195010E94957020E09F
:1093000032E040E050E00E94097119012A016D81AC
:109310007E818F819885A80197010E940971C401FF
:10932000AA2797FDA095BA2F281B390B4A0B5B0B78
:10933000CA01B901A60195010E94957020E032E0B2
:1093400040E050E00E94097179018A0181E46816C9
:1093500071043CF4809185039091860381349105DA
:10936000A4F0C201B10122E030E040E050E00E94F0
:10937000097119012A01C801B70122E030E040E07B
:1093800050E00E94097179018A01E0911C06F0E029
:10939000EE0FFF1FED5BF84F0190F081E02DF7FF1E
:1093A00003C0F095E195FF4F7A97A4F0C201B10197
:1093B00023E030E040E050E00E94097119012A01E9
:1093C000C801B70123E030E040E050E00E9409719D
:1093D00079018A0180917D08682E772467FC70945A
:1093E000872C972CA20191016214730484049504C4
:1093F00014F4A4019301992787FD90959095819588
:109400009F4FAA2797FDA095BA2F59016A012817E7
:1094100039074A075B0714F45C016D016E147F0481
:109420008006910614F484017301E816F9060A0710
:109430001B070CF0BEC07C018D01BBC0FF2400E007
:1094400010E069817A818B819C81A80197010E943B
:10945000097159016A01C201AA2797FDA095BA2F87
:10946000A81AB90ACA0ADB0A6D817E818F819885A4
:10947000A80197010E94097179018A01C401AA27F4
:1094800097FDA095BA2FE81AF90A0A0B1B0BC60123
:10949000B50120E130E040E050E00E94097159013F
:1094A0006A01C801B70120E130E040E050E00E94CD
:1094B000097179018A0191E4691671043CF4809183
:1094C00085039091860381349105A4F0C601B5010E
:1094D00023E030E040E050E00E94097159016A0148
:1094E000C801B70123E030E040E050E00E9409717C
:1094F00079018A01E0911C06F0E0EE0FFF1FED5BA1
:10950000F84F0190F081E02DF7FF03C0F095E19551
:10951000FF4F7A97A4F0C601B50123E030E040E0A8
:1095200050E00E94097159016A01C801B70123E0A6
:1095300030E040E050E00E94097179018A01A1E227
:10954000AA16B104C104D10434F070E2A72EB12CE4
:10955000C12CD12C11C0B0EEAB16BFEFBB06BFEFD4
:10956000CB06BFEFDB0644F460EEA62E6FEFB62EFF
:109570006FEFC62E6FEFD62EE1E2EE16F104010575
:10958000110534F050E2E52EF12C012D112D11C002
:10959000F0EEEF16FFEFFF06FFEF0F07FFEF1F07DD
:1095A00044F440EEE42E4FEFF42E4FEF042F4FEF34
:1095B000142F80911E0390911F03A0912003B0915E
:1095C00021038A199B09AC09BD0980931E0390935E
:1095D0001F03A0932003B093210380912603909151
:1095E0002703A0912803B09129038E199F09A00B8E
:1095F000B10B8093260390932703A0932803B09385
:10960000290380914D0290914E028F3F910509F000
:1096100008F4DAC4E984EE2009F064C480916F0391
:10962000882309F05FC480914903882309F05AC454
:10963000F0905C06FA8EFF2009F454C46091D307C1
:109640007091D4078091D5079091D60720E031E042
:1096500040E050E00E94097119012A012093D307CC
:109660003093D4074093D5075093D6076091DB071A
:109670007091DC078091DD079091DE0720E031E0FA
:1096800040E050E00E9409712E8B3F8B488F598F2C
:109690002093DB073093DC074093DD075093DE0710
:1096A000E0903406FF2400E010E020910E0330919A
:1096B0000F034091100350911103C801B7010E949C
:1096C000957020E031E040E050E00E9409715901BE
:1096D0006A0120930E0330930F03409310035093BD
:1096E0001103209112033091130340911403509100
:1096F0001503C801B7010E94957020E031E040E0F9
:1097000050E00E94097139014A01209312033093FD
:109710001303409314035093150360911603709143
:109720001703809118039091190320E031E040E085
:1097300050E00E9409712093160330931703409361
:10974000180350931903E0905B06FF2400E010E03B
:10975000C201B1016A197B098C099D09A801970111
:109760000E94097159016A012093AC033093AD0343
:109770004093AE035093AF036E897F89888D998D96
:109780006619770988099909A80197010E9409714A
:1097900079018A012093A8033093A9034093AA0377
:1097A0005093AB03C601B50120E031E040E050E04A
:1097B0000E940971690130936B0320936A03C80109
:1097C000B70120E031E040E050E00E9409718901DA
:1097D00030936903209368038091830390918403FD
:1097E00081349105C4F4809185039091860381347E
:1097F00091058CF4E0911C06F0E0EE0FFF1FED5B8D
:10980000F84F0190F081E02DF7FF03C0F095E1954E
:10981000FF4F7A97B4F080917B088F3F91F4C60197
:1098200062E070E00E94D47070936B0360936A03EF
:10983000C80162E070E00E94D47070936903609385
:1098400068036091CA077091CB078091CC07909113
:10985000CD0720E031E040E050E00E940971209304
:10986000CA073093CB074093CC075093CD07609144
:10987000BC077091BD078091BE079091BF0720E0A3
:1098800031E040E050E00E9409712093BC07309322
:10989000BD074093BE075093BF07EF8CF8A009A106
:1098A0001AA129813A814B815C81E21AF30A040BE7
:1098B000150BE092C303F092C4030093C503109309
:1098C000C603AB8CBC8CCD8CDE8C4D815E816F81F0
:1098D0007885A41AB50AC60AD70AA092BF03B09227
:1098E000C003C092C103D092C203E092BB03F092C6
:1098F000BC030093BD031093BE03A092B703B092C4
:10990000B803C092B903D092BA0380912203909118
:109910002303A0912403B09125038E199F09A00B66
:10992000B10B8093220390932303A0932403B0935D
:10993000250380912A0390912B03A0912C03B091D1
:109940002D038A199B09AC09BD0980932A039093C2
:109950002B03A0932C03B0932D0320914A03309145
:109960004B03213831054CF08091EF029091F002C9
:1099700001969093F0028093EF0220583F4F4CF4F1
:109980008091EF029091F00201979093F002809302
:10999000EF0210924B0310924A0381E090E0909303
:1099A000A3038093A203A801970117FF07C02227F2
:1099B0003327A9012E193F09400B510B213062E0DA
:1099C000360760E0460760E0560734F084E090E038
:1099D0009093A3038093A20380919A0390919B0399
:1099E000A0919C03B0919D0382199309A409B50924
:1099F000815E914BAF4FBF4F8F539C49A040B04009
:109A000028F080917C0889310CF4C4C081E0E8160C
:109A100080E1F80680E0080780E018070CF456C0E3
:109A20008091A103882309F44DC0CA01B90120E047
:109A300032E040E050E00E9409718091A2039091D1
:109A4000A303820F931F9093A3038093A203D801D3
:109A5000C70123E0B595A795979587952A95D1F7E6
:109A60008093AC039093AD03A093AE03B093AF0388
:109A700089589341A040B04064F088E893E1A0E0A9
:109A8000B0E08093AC039093AD03A093AE03B0938A
:109A9000AF036091AC037091AD038091AE039091E0
:109AA000AF0320E031E040E050E00E940971809176
:109AB0006A0390916B03820F931F90936B038093C3
:109AC0006A0365C081E08093A10361C01092A10385
:109AD000F0E0EF16F0EFFF06FFEF0F07FFEF1F07B5
:109AE0000CF055C08091A003882309F44CC0CA0132
:109AF000B90120E032E040E050E00E94097180911D
:109B0000A2039091A303820F931F9093A3038093CA
:109B1000A203C801B70128E030E040E050E00E9415
:109B200009712093AC033093AD034093AE0350937F
:109B3000AF0328573C4E4F4F5F4F64F488E79CEECD
:109B4000AFEFBFEF8093AC039093AD03A093AE0350
:109B5000B093AF036091AC037091AD038091AE03FD
:109B60009091AF0320E031E040E050E00E940971A5
:109B700080916A0390916B03820F931F90936B0304
:109B800080936A0311C081E08093A0030DC01092FE
:109B9000A0030AC01092A3031092A20388EE93E0E0
:109BA00090939601809395017A8D672E772480910A
:109BB000A2039091A3036816790624F47092A3037C
:109BC0006092A20390907C08992079F0292D332788
:109BD00027FD30958091A2039091A30328173907A0
:109BE00024F43093A3032093A20381E8E816F10440
:109BF0000105110574F08091EB029091EC02209127
:109C0000A2033091A303820F931F9093EC028093E1
:109C1000EB0290E8E9169FEFF9069FEF09079FEF27
:109C2000190774F48091EB029091EC022091A20349
:109C30003091A303821B930B9093EC028093EB0271
:109C400081E090E09093A3038093A203A601950185
:109C5000D7FE07C022273327A9012A193B094C093F
:109C60005D092130A2E03A07A0E04A07A0E05A07C8
:109C700034F084E090E09093A3038093A20380915A
:109C8000960390919703A0919803B0919903EE8861
:109C9000FF88088D198D8E199F09A00BB10B815E6D
:109CA000914BAF4FBF4F8F539C49A040B04020F025
:109CB00018E119150CF0C4C061E0A61660E1B60603
:109CC00060E0C60660E0D6060CF456C080919F03A3
:109CD000882309F44DC0CA01B90120E032E040E018
:109CE00050E00E9409718091A2039091A303820F1A
:109CF000931F9093A3038093A203D601C50113E0A1
:109D0000B595A795979587951A95D1F78093A80350
:109D10009093A903A093AA03B093AB0389589341EE
:109D2000A040B04064F088E893E1A0E0B0E0809308
:109D3000A8039093A903A093AA03B093AB036091E7
:109D4000A8037091A9038091AA039091AB0320E02E
:109D500031E040E050E00E940971809168039091E9
:109D60006903820F931F909369038093680365C012
:109D700081E080939F0361C010929F0380E0A8164A
:109D800080EFB8068FEFC8068FEFD8060CF055C0ED
:109D900080919E03882309F44CC0CA01B90120E0D8
:109DA00032E040E050E00E9409718091A20390915E
:109DB000A303820F931F9093A3038093A203C60172
:109DC000B50128E030E040E050E00E9409712093A6
:109DD000A8033093A9034093AA035093AB032857D9
:109DE0003C4E4F4F5F4F64F488E79CEEAFEFBFEF00
:109DF0008093A8039093A903A093AA03B093AB0305
:109E00006091A8037091A9038091AA039091AB037C
:109E100020E031E040E050E00E9409718091680349
:109E200090916903820F931F909369038093680355
:109E300011C081E080939E030DC010929E030AC062
:109E40001092A3031092A20388EE93E090939601E0
:109E5000809395018091A2039091A30368167906DF
:109E600024F47092A3036092A203992079F0292D23
:109E7000332727FD30958091A2039091A3032817E3
:109E8000390724F43093A3032093A203A1E8AA1670
:109E9000B104C104D10474F08091ED029091EE02FE
:109EA0002091A2033091A303820F931F9093EE029F
:109EB0008093ED02B0E8AB16BFEFBB06BFEFCB0659
:109EC000BFEFDB06CCF48091ED029091EE02209181
:109ED000A2033091A303821B930B9093EE02809315
:109EE000ED020AC0109269031092680310926B038E
:109EF00010926A03109249038091E007882341F48D
:109F0000109269031092680310926B0310926A0317
:109F10008091D3079091D407A091D507B091D6072F
:109F200080939A0390939B03A0939C03B0939D030B
:109F30008091DB079091DC07A091DD07B091DE07EF
:109F40008093960390939703A0939803B0939903FB
:109F500010920E0310920F0310921003109211032F
:109F6000109212031092130310921403109215030F
:109F700010921603109217031092180310921903EF
:109F80001092D3071092D4071092D5071092D607DB
:109F90001092DB071092DC071092DD071092DE07AB
:109FA0001092CA071092CB071092CC071092CD07DF
:109FB0001092BC071092BD071092BE071092BF0707
:109FC00010924E0210924D02C0905A03D0905B0343
:109FD0008601D7FE04C0002711270C191D09003186
:109FE00011056CF088EE93E09093960180939501B3
:109FF0008091250684FD03C081E08093B003E0904A
:10A000003106B601882777FD8095982F2E2D30E0F8
:10A0100040E050E00E9495709801442737FD40953C
:10A02000542F0E94957020E032E040E050E00E9402
:10A03000097189019A01FF24EC9CC001ED9C900DEF
:10A04000FC9C900D112464E070E00E94D470600FBD
:10A05000711F882777FD8095982F6093C7037093B1
:10A06000C8038093C9039093CA0320912E033091B3
:10A070002F034091300350913103261B370B480BBF
:10A08000590B20932E0330932F03409330035093AA
:10A0900031032155334C4040504064F080E593EC4F
:10A0A000A0E0B0E080932E0390932F03A0933003A1
:10A0B000B093310380912E0390912F03A091300330
:10A0C000B0913103805B9C43AF4FBF4F64F480EB92
:10A0D0009CE3AFEFBFEF80932E0390932F03A093E9
:10A0E0003003B09331038090420390904303811476
:10A0F000910409F449C18091250683FF45C1698116
:10A100007A818B819C8120E032E040E050E00E9427
:10A110000971890137FF03C0109501951F4F6D81AB
:10A120007E818F81988520E032E040E050E00E94FF
:10A130000971690137FF04C0D094C194D108D39448
:10A14000C016D1060CF468014090D6015090D7019A
:10A150006090D8017090D901ACE1EA2EA2E0FA2E0D
:10A160008E0C9F1C74010027F7FC0095102F24EE25
:10A170003DEF820E931E6091090870910A0880914C
:10A180000B0890910C08A30192010E940971E21A38
:10A19000F30A040B150BC801B70128E631E040E0D3
:10A1A00050E00E940971FCE4AF2EFFEFBF2EA60E17
:10A1B000B71EE0909501F0909601E114F10459F575
:10A1C00039E1C316D1043CF580914A0390914B03C9
:10A1D0008A0D9B1D90934B0380934A038091B0039B
:10A1E0008823C9F0B401882777FD8095982FA301B3
:10A1F00092010E9495706093090870930A088093F9
:10A200000B0890930C080E9409713093450320932A
:10A2100044031092B0030091090810910A0820919C
:10A220000B0830910C08C60168E070E00E94D47001
:10A230006E5F7F4FC501E4E0880F991FEA95E1F753
:10A240000E94D4704B01AA2497FCA094BA2C800ED3
:10A25000911EA21EB31E8092090890920A08A09235
:10A260000B08B0920C088091A501482F50E05CAB20
:10A270004BABC49EC001C59E900DD49E900D112481
:10A2800060E270E00E94D4702BA83CA8261A370A1E
:10A2900037FC74C0E114F10411F00C94405C80911F
:10A2A0008503909186032091830330918403820F6C
:10A2B000931F68E070E00E94D4706B0160E470E06E
:10A2C000C60ED71E8091440390914503AA2797FD9F
:10A2D000A095BA2F5CE1E52E52E0F52E012D112D4F
:10A2E000E81AF90A0A0B1B0BC501B401A30192017C
:10A2F0000E940971E20EF31E041F151FC801B70169
:10A3000028E631E040E050E00E940971645B704053
:10A31000629DC001639D900D729D900D1124B60148
:10A320000E94D4702BA93CA9220F331F8BA99CA992
:10A33000280F391F2617370734F0309521953F4FE6
:10A34000621773070CF4B9019B01442737FD409550
:10A35000542F80912E0390912F03A0913003B09140
:10A360003103820F931FA41FB51F80932E03909378
:10A370002F03A0933003B093310306C084EF91E024
:10A38000909396018093950180914903882381F0F1
:10A3900010923A0310923B0310923C0310923D033B
:10A3A000109236031092370310923803109239033B
:10A3B0009985992319F01B8A1A8A13C06091E007C6
:10A3C00070E080E090E029813A814B815C810E94BD
:10A3D000957028EF3AE240E050E00E9409713B8B13
:10A3E0002A8B50906F03552019F0198A188A13C0D0
:10A3F0006091E00770E080E090E02D813E814F8128
:10A4000058850E94957028EF3AE240E050E00E94A3
:10A410000971398B288B8091B6079091B707893CD9
:10A4200091051CF088EC90E005C088539F4F34F4F0
:10A4300088E39FEF9093B7078093B6078091C10799
:10A440009091C207893C91051CF088EC90E005C012
:10A4500088539F4F34F488E39FEF9093C207809313
:10A46000C107A0900708BB24CC24DD24E090B607E8
:10A47000F090B7070027F7FC0095102F27E0EE0CAF
:10A48000FF1C001F111F2A95D1F72091C30730919F
:10A49000C407442737FD4095542FC601B5010E94DB
:10A4A0009570E60EF71E081F191FC801B70120E4BA
:10A4B00030E040E050E00E9409718A889B88820E5B
:10A4C000931E9092C4078092C307E090C107F0905A
:10A4D000C2070027F7FC0095102F97E0EE0CFF1C39
:10A4E000001F111F9A95D1F76091B4077091B507BD
:10A4F000882777FD8095982FA60195010E94957079
:10A50000E60EF71E081F191FC801B70120E430E04E
:10A5100040E050E00E940971C888D988C20ED31E5D
:10A52000D092B507C092B4076091020870910308F9
:10A53000660F771F882777FD8095982F2091BB079E
:10A5400030E040E050E00E94957020E430E040E0D0
:10A5500050E00E94097179018A016091D00770E092
:10A5600080E090E020911A0330911B0340911C037E
:10A5700050911D030E94957020EF35E540E050E0BA
:10A580000E940971E20EF31EF0920308E0920208A5
:10A59000E1E08E16E0E19E0634F080E090E19093D9
:10A5A000C4078093C3078091C3079091C40780506C
:10A5B000904F34F480E090EF9093C4078093C307EA
:10A5C00001E0C01600E1D00634F080E090E1909305
:10A5D000B5078093B4078091B4079091B507805078
:10A5E000904F34F480E090EF9093B5078093B407D8
:10A5F00021E0E21620E1F20634F080E090E1909351
:10A60000030880930208809102089091030880500B
:10A61000904F34F480E090EF909303088093020809
:10A6200020911001309111018091020190E0821778
:10A63000930794F460911001709111014C895D8928
:10A64000DC014A9FC0014B9F900D5A9F900D112431
:10A650000E94C0707D8B6C8B6C887D88660C771C2B
:10A66000660C771C80912506482F80FF20C6552058
:10A6700009F01DC6B985BB2309F019C680916C038A
:10A6800090916D039093EE058093ED052091E90282
:10A690003091EA022115310509F03FC080911A017D
:10A6A00090911B018959934058F087B5853F20F45C
:10A6B00080914A02815011C081E080938A034EC08C
:10A6C00080911A0190911B018436910508F587B598
:10A6D0008B30D0F080914A028F5F80934A022AE04B
:10A6E0008202C001112420911406281B27BD8CE290
:10A6F00091E090932202809321028EE591E0909365
:10A70000EA028093E9022AC081E080938B0326C08D
:10A7100010928B0310928A0321C080916003909164
:10A720006103A0916203B091630314E0880F991F45
:10A73000AA1FBB1F1A95D1F7809346029093470238
:10A74000A0934802B093490210924C0210924B021F
:10A75000215030403093EA022093E9028091A20117
:10A7600041FF24C08233D8F48091DB018150809373
:10A77000DB018F3FD9F510924803809160039091DF
:10A780006103A0916203B09163038093640390938B
:10A790006503A0936603B093670381E004C081E082
:10A7A0008093480388EC8093DB0120C02091D40182
:10A7B0003091D501280F311D80912A0690E07C014F
:10A7C0002E9DC0012F9D900D3E9D900D1124AA2716
:10A7D00097FDA095BA2F8093640390936503A0938F
:10A7E0006603B093670381E080934803E090D6014D
:10A7F000F090D7010091D8011091D90169817A8137
:10A800008B819C81A80197010E94097159016A01FD
:10A810006D817E818F819885A80197010E940971C1
:10A82000B901C5010E945C678C33910514F08CE37B
:10A8300090E00E945D639B878A8780E28093DA01C3
:10A8400080914803882309F4DFC38091890384FD44
:10A85000DBC380917E06E82FF0E0B1E02B2E312C97
:10A860002E223F2280FD04C08091250681FD0BC071
:10A87000109295031092940380918903806C8093C9
:10A88000890323018FC18091890381FF63C14091B6
:10A890005C0350915D032091DE013091DF01B9012D
:10A8A000615F7F4F64177507B4F580918B03882330
:10A8B00091F58091890387FF15C0809189038F7777
:10A8C000809389038091600390916103A09162035A
:10A8D000B09163038093640390936503A093660330
:10A8E000B0936703809189038064809389039A0100
:10A8F000261B370B37FF03C0309521953F4F8091C2
:10A90000940390919503820F931F909395038093E6
:10A9100094038BE26DC02F50304042175307B4F5BB
:10A9200080918A03882391F58091890386FF15C061
:10A93000809189038F7B809389038091600390913C
:10A940006103A0916203B0916303809364039093C9
:10A950006503A0936603B0936703809189038068C1
:10A9600080938903421B530B9A0157FF03C0309514
:10A9700021953F4F8091940390919503821B930BF7
:10A9800090939503809394038DE232C08091890364
:10A99000807C69F1809189038F7380938903109281
:10A9A00095031092940320916003309161034091CC
:10A9B00062035091630320936403309365034093D3
:10A9C000660350936703E1FF06C084EF91E0909324
:10A9D00022028093210280915F03882341F4233374
:10A9E0003105410551051CF081E080935F038DE343
:10A9F0008093DA014091940350919503CA0157FF67
:10AA000004C088279927841B950B815092400CF431
:10AA10008AC0009164031091650320916603309110
:10AA2000670380912A0690E0BC01649FC001659F86
:10AA3000900D749F900D112460E075E00E94D47019
:10AA4000882777FD8095982F600F711F821F931FB5
:10AA50006093640370936503809366039093670328
:10AA60001092950310929403E0906003F0906103BC
:10AA70000091620310916303A801970120503440B4
:10AA80004040504026173707480759075CF4A80193
:10AA9000970120503C4F4F4F5F4F62177307840759
:10AAA000950744F020936403309365034093660355
:10AAB00050936703E1FF06C084E690E09093220282
:10AAC0008093210280912E06882369F52091100140
:10AAD0003091110180916C0390916D0364E070E0FE
:10AAE0000E94D470CB016091020170E0DC01A29F52
:10AAF000C001A39F900DB29F900D11240E94D470AD
:10AB00007093DF016093DE01663471051CF486E406
:10AB100090E005C06739710534F086E990E09093C4
:10AB2000DF018093DE018091E9029091EA02892B96
:10AB3000A9F18091600390916103A0916203B091AB
:10AB400063038093640390936503A0936603B093BB
:10AB5000670324C08091600390916103A091620318
:10AB6000B091630380599140A040B040809364034A
:10AB700090936503A0936603B093670380912E06BC
:10AB8000882311F090E002C088E790E09093DF0105
:10AB90008093DE0170926D0360926C0340906C03B1
:10ABA00050906D03E0906003F090610300916203A8
:10ABB0001091630320916403309165034091660313
:10ABC000509167032E153F054007510724F02114CB
:10ABD000310409F05DC28091E9029091EA02892B6B
:10ABE00049F040906C0350906D0388249924CC2444
:10ABF000DD24B8C0D801C701821B930BA40BB50B91
:10AC00008093C3039093C403A093C503B093C6037A
:10AC10008230E0E89E07EFEFAE07EFEFBE072CF4BF
:10AC200081E090E8AFEFBFEF09C08F5F9F47A04082
:10AC3000B04064F08FEF9FE7A0E0B0E08093C303E3
:10AC40009093C403A093C503B093C603E090C303DD
:10AC5000F090C4030091C5031091C6036091A30155
:10AC600070E080E090E0A80197010E94957020E2DA
:10AC700030E040E050E00E9409712093C30330931C
:10AC8000C4034093C5035093C60325306EEF3607C7
:10AC90006FEF46076FEF56072CF484E09EEFAFEF9F
:10ACA000BFEF09C0205034404040504064F080E085
:10ACB00094E0A0E0B0E08093C3039093C403A0931A
:10ACC000C503B093C603A090C303B090C403C09063
:10ACD000C503D090C60380914B0290914C0268E06E
:10ACE00070E00E94D4708FEF623878071CF461E83E
:10ACF0007FEF05C06038710514F060E870E08827C8
:10AD000077FD8095982F2091A10130E040E050E040
:10AD10000E94957024E030E040E050E00E9409710C
:10AD2000B9019FEF213039071CF460E07FEF06C0C6
:10AD30002F3F310519F014F060E071E08091890334
:10AD4000807C21F0CB0164E070E006C02114310466
:10AD500029F0CB0168E070E00E94D47047016501E2
:10AD6000C60ED71EE090A401EE2009F448C0609101
:10AD70003E0370913F038091400390914103FF2473
:10AD800000E010E020E830E040E050E00E9409716F
:10AD9000C801B7010E94957020E230E040E050E029
:10ADA0000E9409712093C3033093C4034093C503E9
:10ADB0005093C6032138AFEF3A07AFEF4A07AFEF22
:10ADC0005A072CF480E89FEFAFEFBFEF0AC02F3F88
:10ADD00031054105510569F064F080E091E0A0E0A3
:10ADE000B0E08093C3039093C403A093C503B093D2
:10ADF000C6038091C3039091C403C80ED91E8091ED
:10AE00007F08992787FD90952091A60130E0FC01ED
:10AE1000E29FC001E39F900DF29F900D112460E826
:10AE200070E00E94D47000916C0310916D03FFEFED
:10AE300060387F0714F460E87FEFC60ED71EB601B6
:10AE4000882777FD8095982F9801442737FD4095F6
:10AE5000542F0E94957020E032E040E050E00E94C4
:10AE60000971B201621B730B809194039091950359
:10AE7000892B09F063C0101611060CF05FC0C401E5
:10AE800097FE04C088279927881999098D33910561
:10AE900048F48091900390919103861797070CF0E6
:10AEA0004CC028C09C012C533040A5E03695279516
:10AEB000AA95E1F72031310510F02FE030E0409104
:10AEC00090035091910318141904E4F480E190E088
:10AED000821B930B7C01E49EC001E59E900DF49EC5
:10AEE000900D1124F4E096958795FA95E1F7861771
:10AEF000970718F58091DC019091DD01861797077F
:10AF0000ECF41BC08091DC019091DD0146175707DE
:10AF100014F0BA0113C0205F3F4FAC01249FC00161
:10AF2000259F900D349F900D1124E4E09695879510
:10AF3000EA95E1F76817790708F0BC01882777FDE3
:10AF40008095982F5DE0660F771F881F991F5A958F
:10AF5000D1F7AA85BB859D01442737FD4095542F25
:10AF60000E9409712093BF033093C0034093C10333
:10AF70005093C2036091920370919303CB01880FA9
:10AF8000991F860F971F820F931F64E070E00E9445
:10AF9000D47070939303609392038091260690E09F
:10AFA000880F991F880F991F8617970764F480915F
:10AFB000010890E0880F991F880F991F80559040D5
:10AFC0006817790724F0909393038093920320915C
:10AFD000920330919303232861F02615370524F05E
:10AFE0007092930360929203609092037090930327
:10AFF0004FC0C301801B910B64E070E00E94D470CD
:10B000003B01620E731E44C080912E068823F9F422
:10B0100080916C0390916D0364E070E00E94D470A5
:10B020009B0180911001909111016091020170E0EB
:10B03000FC012E9FC0012F9F900D3E9F900D11246B
:10B040000E94D4707093DF016093DE0105C090E030
:10B050009093DF018093DE018091DE019091DF010A
:10B06000873491051CF486E490E005C0863991058B
:10B0700034F086E990E09093DF018093DE017092D6
:10B0800093036092920380918903806C809389037B
:10B090008091890381FFFCC080918C0390918D0386
:10B0A000A0918E03B0918F030097A105B10521F007
:10B0B00080915F038130A1F4C301AA2797FDA09579
:10B0C000BA2FFEE0880F991FAA1FBB1FFA95D1F770
:10B0D00080938C0390938D03A0938E03B0938F0382
:10B0E00080915F03813019F482E080935F03B301A4
:10B0F000882777FD8095982FEA84FB849701442761
:10B1000037FD4095542F0E94957020E030E240E0DA
:10B1100050E00E94097179018A012093BF033093A6
:10B12000C0034093C1035093C203609187037091A1
:10B1300088032FE0603A720750F580918C0390915C
:10B140008D03A0918E03B0918F039C01AD01EAE0C5
:10B150005695479537952795EA95D1F7821B930B1E
:10B16000A40BB50BA8019701F4E0220F331F441F75
:10B17000551FFA95D1F7280F391F4A1F5B1F2093DF
:10B180008C0330938D0340938E0350938F03605450
:10B190007F41E8F480918C0390918D03A0918E0300
:10B1A000B0918F039C01AD01ECE056954795379522
:10B1B0002795EA95D1F7821B930BA40BB50B72E090
:10B1C000EE0CFF1C001F111F7A95D1F721C0809152
:10B1D0004B0290914C0297FF03C0909581959F4F31
:10B1E000843691050CF580918C0390918D03A0918C
:10B1F0008E03B0918F039C01AD016EE0569547958B
:10B20000379527956A95D1F7821B930BA40BB50B45
:10B210008E0D9F1DA01FB11F80938C0390938D03F3
:10B22000A0938E03B0938F0380918C0390918D0334
:10B23000A0918E03B0918F031EE0B695A7959795C8
:10B2400087951A95D1F79C0190936D0380936C03B9
:10B2500060912C06662389F070E00E94D470C901C9
:10B26000861B970B9093910380939003260F371FB3
:10B270003093DD012093DC011FC0109291031092E6
:10B2800090038FEF93E09093DD018093DC0114C075
:10B2900010925F0310928C0310928D0310928E0314
:10B2A00010928F0310926D0310926C0305C0809171
:10B2B0008903806C809389038091C807482F50E0F0
:10B2C000440F551F440F551F5D874C879A01285D19
:10B2D0003F4FB301621673060CF4B9018091010867
:10B2E000682E7724660C771C660C771CC30180558A
:10B2F00090405B01861797070CF45C0180916D020A
:10B30000882321F4809186088F3F89F080918703FC
:10B31000909188030297C09750F41A141B043CF4D0
:10B3200081E090E090938803809387035901B09265
:10B33000D205A092D1058091C7039091C803A09136
:10B34000C903B091CA0362E0880F991FAA1FBB1FEF
:10B350006A95D1F72091020830910308281B390B18
:10B3600051EAA516B104ACF0F501F595E7952E1755
:10B370003F070CF4F901C50162E070E00E94D4704F
:10B38000709561957F4FCF01E617F7076CF4CB01FD
:10B390000BC0C901205B3F4F14F480EB9FEF813558
:10B3A000910514F080E590E093012A193B092817D4
:10B3B00039070CF4C9019501261937094C01821788
:10B3C00093070CF4490180915603909157036091C3
:10B3D000C3077091C407681B790B7093D207609301
:10B3E000D107C090E0072091360330913703409198
:10B3F000380350913903CC2059F0AA89BB89A81B86
:10B40000B90BFD01CF01AA2797FDA095BA2F05C062
:10B41000CB01AA2797FDA095BA2F280F391F4A1FE5
:10B420005B1F2093360330933703409338035093C8
:10B4300039038091360390913703A0913803B0917E
:10B44000390381509A4FA040B04064F080E09AEFF9
:10B45000A0E0B0E08093360390933703A0933803C5
:10B46000B09339038091360390913703A09138034C
:10B47000B091390380509640AF4FBF4F64F480E0E5
:10B4800096E0AFEFBFEF8093360390933703A0931E
:10B490003803B0933903D0903B0618E01D1568F0CF
:10B4A0008D2D90E09C01269FC001279F900D369F17
:10B4B000900D112468E070E00DC08D2D869590E010
:10B4C000AC01469FC001479F900D569F900D1124DF
:10B4D00064E070E00E94D4708B0180919F01909194
:10B4E000A0011C01442437FC4094542C6091360385
:10B4F000709137038091380390913903A201910133
:10B500000E940971020F131FC40197FE04C088270F
:10B5100099278819990962E070E00E94D4706A0D39
:10B520007B1D882777FD8095982F2091B40130E00E
:10B5300040E050E00E94957020E430E040E050E0B0
:10B540000E9409717901B801201731070CF4B90183
:10B55000002711270E191F097F876E876017710753
:10B5600014F41F870E8780915803909159036091BE
:10B57000B4077091B507681B790B7093B30760939C
:10B58000B20720913A0330913B0340913C03509124
:10B590003D03CC2059F0A889B989A81BB90BFD013E
:10B5A000CF01AA2797FDA095BA2F05C0CB01AA27E6
:10B5B00097FDA095BA2F280F391F4A1F5B1F2093B4
:10B5C0003A0330933B0340933C0350933D038091F7
:10B5D0003A0390913B03A0913C03B0913D0381500D
:10B5E0009A4FA040B04064F080E09AEFA0E0B0E055
:10B5F00080933A0390933B03A0933C03B0933D03A5
:10B6000080913A0390913B03A0913C03B0913D039C
:10B6100080509640AF4FBF4F64F480E096E0AFEFAC
:10B62000BFEF80933A0390933B03A0933C03B09306
:10B630003D0338E03D1568F08D2D90E0AC01469F4C
:10B64000C001479F900D569F900D112468E070E057
:10B650000DC0D6948D2D90E0DC01A69FC001A79F60
:10B66000900DB69F900D112464E070E00E94D4709C
:10B670006B0160913A0370913B0380913C03909180
:10B680003D03A20191010E940971B601620F731F6F
:10B69000E616F7060CF4B7017B01601771070CF48E
:10B6A000780109E916E043EEC42E46E0D42E31EECF
:10B6B000432E37E0532E9401442737FD4095542FF5
:10B6C0002BA33CA34DA35EA3A701662757FD60955E
:10B6D000762F4FA358A769A77AA76E857F858827FD
:10B6E00077FD8095982F6BA77CA78DA79EA7C50196
:10B6F000AA2797FDA095BA2F8FA798ABA9ABBAAB95
:10B70000D8012C9112160CF0A9C0203411F41501A7
:10B7100012C0332727FD3095432F532F6FA578A9EB
:10B7200089A99AA90E94957020E430E040E050E099
:10B730000E9409711901F8012181203419F42E8524
:10B740003F8518C0203C29F44E855F85241A350AB0
:10B7500013C0332727FD3095432F532F6BA57CA5AE
:10B760008DA59EA50E94957020E430E040E050E059
:10B770000E940971220E331EF8012281203419F42F
:10B780002E0C3F1C18C0203C19F42E183F0813C083
:10B79000332727FD3095432F532F6FA178A589A517
:10B7A0009AA50E94957020E430E040E050E00E94AD
:10B7B0000971220E331EF8012381203421F49101F6
:10B7C000280D391D19C0203C21F49101281939098F
:10B7D00013C0332727FD3095432F532F6BA17CA136
:10B7E0008DA19EA10E94957020E430E040E050E0E1
:10B7F0000E940971220D331DD201ED91FC91E217D7
:10B80000F30744F4C9018E0F9F1F62E070E00E94AD
:10B81000D47005C0B901660F771F6E1B7F0BEC85D6
:10B82000FD85E617F70714F09F0105C09B0166161A
:10B8300077060CF49301C90164E070E00E94D470B3
:10B84000D6016C93C90164E070E00E94D470880F47
:10B85000F6018183D2012D933C9303C0F60110823F
:10B8600011820C5F1F4F28E030E0C20ED31E42E071
:10B8700050E0440E551E56E0093C150751F040CFEC
:10B880000894E108F108F0929601E09295010C9479
:10B89000C451E2E1CC5C0C9440718091EB03909137
:10B8A000EC03A091ED03B091EE038093F30390932A
:10B8B000F403A093F503B093F6038091EF03909106
:10B8C000F003A091F103B091F2038093F7039093FA
:10B8D000F803A093F903B093FA0308951092E403D8
:10B8E0001092E3031092E6031092E503089584B1E9
:10B8F000806A84B93D9A82E58CBD1DBC459A81E081
:10B90000809313088AEA8093240883E880932508AB
:10B910008AE0809326081092280810922708109237
:10B920002A081092290810927E081092460808955D
:10B93000EF92FF920F931F93E0903406FF24EE0CDA
:10B94000FF1CEE0CFF1C0027F7FC0095102F6091E8
:10B95000FE027091FF028091000390910103A80103
:10B9600097010E940971309328082093270860915D
:10B970000603709107038091080390910903A801C1
:10B9800097010E94097130932A0820932908609139
:10B99000090870910A0880910B0890910C082AE020
:10B9A00030E040E050E00E9495702091D601309147
:10B9B000D7014091D8015091D9010E94097130936B
:10B9C000300820932F0820913D0230913E02809153
:10B9D000EF029091F002821B930B909336088093B4
:10B9E00035082091F9023091FA028091D8079091A0
:10B9F000D907B9010E94D470CB01880F991F860F17
:10BA0000971F880F991F64E070E00E94D4707093B4
:10BA10002C0860932B088091050890910608B901C5
:10BA20000E94D470CB01880F991F860F971F880F33
:10BA3000991F64E070E00E94D47070932E086093A8
:10BA40002D081092FA021092F9021092D907109262
:10BA5000D8071092060810920508809126088D30AC
:10BA600009F463C08E3050F48B3009F48DC08C30F3
:10BA700008F009C18A3009F0A1C10AC08F3009F469
:10BA800075C18F3008F451C1803109F097C132C0BF
:10BA900080917403809337088091750380933808F0
:10BAA00080917603809339088091770380933A08D8
:10BAB0008091780380933B088091790380933C08C0
:10BAC00080917A0380933D0880917B0380933E08A8
:10BAD0008091890380933F0880918903837F8093BD
:10BAE00089030E94372A809340088091FD02809349
:10BAF000410864C180918008909181089093380832
:10BB000080933708809184089091850890933A0833
:10BB100080933908809110019091110180933B0826
:10BB20008091020180933C0849C18091680680930E
:10BB30003708809169068093380880916A0680935F
:10BB4000390880916B0680933A0880916C06809347
:10BB50003B088091700680933C0880917106809329
:10BB60003D088091720680933E088091750680930F
:10BB70003F088091730680934008809174068093FB
:10BB80004108809176067CC0F894E0911B06F0E0B5
:10BB9000EE0FFF1FED5BF84F0190F081E02D2FEFCE
:10BBA000E138F20714F4E1E8FFEFE038F10514F0B2
:10BBB000EFE7F0E0E0933708E0911C06F0E0EE0FCD
:10BBC000FF1FED5BF84F0190F081E02D6FEFE13842
:10BBD000F60714F4E1E8FFEFE038F10514F0EFE7C1
:10BBE000F0E0E0933808E0911A06F0E0EE0FFF1F56
:10BBF000ED5BF84F0190F081E02D8FEFE138F80711
:10BC000014F4E1E8FFEFE038F10514F0EFE7F0E0BD
:10BC1000E0933908E0911906F0E0EE0FFF1FED5BAD
:10BC2000F84F0190F081E02D2FEFE138F20714F486
:10BC3000E1E8FFEF7894E038F10514F0EFE7F0E089
:10BC4000E0933A0880914C0380933B0880914D0328
:10BC500080933C0880914E0380933D0880914F0370
:10BC600080933E088091500380933F088091510358
:10BC70008093400880915203809341088091530340
:10BC8000809342089BC080915C04863018F010922B
:10BC90005C0485E0809337088091770680933808AC
:10BCA00060916003709161038091620390916303DE
:10BCB00025E030E040E050E00E94097130933A08FE
:10BCC0002093390860916403709165038091660345
:10BCD0009091670325E030E040E050E00E94097158
:10BCE00030933C0820933B0880916D0680933D087B
:10BCF00080916E0680933E0880916F0680933F0886
:10BD000080915503809340088091430790914407A8
:10BD1000809341088091D1059091D20564E070E054
:10BD20000E94D4706093420849C01092370882E59F
:10BD3000809338081092390880E180933A08809106
:10BD4000000180933B088091410480933C088091DE
:10BD5000420480933D088091430480933E08809183
:10BD6000440480933F088091450426C080914D068D
:10BD70008093370880917D06809338088091AE01CA
:10BD8000809339088091460680933A08809147064F
:10BD900080933B088091480680933C088091AF01D6
:10BDA00080933D0880914A0680933E0880914B061F
:10BDB00080933F0880914C0680934008809146080C
:10BDC000882309F4D0C08AEF8093E10140914808AC
:10BDD00050914908CA0181509E4F8F5F9340B0F443
:10BDE00020914A0830914B08C90181509E4F8F5FC6
:10BDF000934060F48091250685FF08C05093E403CA
:10BE00004093E3033093E6032093E50380914E08CB
:10BE100090914F0821E08936920724F490934303D0
:10BE2000809342038091420390914303845E9D4F2F
:10BE30002091440330914503821B930B68E671E027
:10BE40000E94D470845B9040909347038093460394
:10BE50002091520830915308809121029091220242
:10BE60008217930740F480915C04882321F4309377
:10BE700022022093210280914708883619F18936E1
:10BE800009F447C0873609F076C080915408809342
:10BE90007B088091550880937D0880915608809397
:10BEA0007C088091570880937E0880915808809381
:10BEB0007F08809159088093E00180915A0880930F
:10BEC000FB0359C08091540880931E088091550847
:10BED00080931F088091560880932008809157080E
:10BEE00080932108809158088093220880915908F6
:10BEF0009091C105892B8093C10590915A08909328
:10BF0000FD039C708091C2058370982B9093C205AD
:10BF100032C0809154088093140880915508809312
:10BF200015088091560880931608809157088093D1
:10BF30001708809158089091590890931908809398
:10BF4000180880915A0890915B0890931B08809381
:10BF50001A0880915C08992787FD90959093760741
:10BF60008093750708C01092E4031092E3031092C7
:10BF7000E6031092E5031F910F91FF90EF90089553
:10BF800080911308882309F43BC0459884E298E027
:10BF900090931D0880931C089091FC03E92FF0E01A
:10BFA000EE51FE4F8081809326089F5F9093FC03A3
:10BFB000993010F01092FC03109213080E94985CC4
:10BFC00081E08093230800000000000000000000D2
:10BFD0000000000000000000000000000000000061
:10BFE0000000000000000000000000000000000051
:10BFF00000000000000080912408809343088EBD5B
:10C00000089580911308882309F07CC00DB407FEC1
:10C0100079C084E080932302459A2EB58091FF0376
:10C02000813069F0813018F08230C9F513C0109268
:10C0300045082093FE03213891F581E008C025359D
:10C0400041F58091FE038B5A8093FE0382E080933A
:10C05000FF0325C080914508E82FF0E0EF59F74F26
:10C0600020838F5F809345089091FE038A31A0F072
:10C07000291769F4A7E4B8E0E1E6F8E08AE1019065
:10C080000D928150E1F781E08093460802C0109242
:10C0900046081092FF0303C0920F9093FE03209175
:10C0A0002308203208F028C0459800000000000056
:10C0B0000000000000000000000000000000000080
:10C0C0000000000000000000000000000000000070
:10C0D00000000000000000000000E0911C08F0914A
:10C0E0001D08E20FF11D80818EBD80819091430873
:10C0F000890F8093430803C081E0809313082F5F6A
:10C1000020932308089587B18C6087B9429843989B
:10C110001092040480E88093EB0110920504809350
:10C12000EC01089580910A04815080930A048F3FA6
:10C1300009F0EAC094E090930A0480918903807327
:10C1400021F48091420480FF1CC080916606882300
:10C1500049F080910704882311F49093040481E04E
:10C1600080930704809167068823B9F080910604C4
:10C17000882319F484E08093050481E08093060409
:10C180000CC01092070410920604809162068093FE
:10C190000904809164068093080480910704882331
:10C1A000C1F580917C06282F84FF07C080915E0333
:10C1B000882319F425FD46C047C080916306883F57
:10C1C00080F08091DA078D3D28F080910904882362
:10C1D000CCF13AC08A3028F4809109048823A4F174
:10C1E00031C0809104048150809304048F3F69F52D
:10C1F0008091DA078150809304048091EB018130B3
:10C2000011F480E801C086958093EB0180910904C8
:10C2100015C0809104048150809304048F3FA9F4D9
:10C2200089E0809304048091EB01813011F480E86F
:10C2300001C086958093EB01809166069091EB0199
:10C24000892311F0429A01C0429880910604882304
:10C2500009F03EC080917C06282F84FF07C08091A2
:10C260005E03882319F426FD4CC030C0809165061A
:10C27000883F88F0809100088D3D30F0809108045F
:10C2800088230CF43EC022C08A3028F48091080430
:10C290008823E4F036C08091050481508093050422
:10C2A0008F3F91F580910008815080930504809123
:10C2B000EC01813011F480E801C086958093EC0197
:10C2C000809108049091EC018923D9F44398089552
:10C2D000809105048150809305048F3FA9F489E083
:10C2E000809305048091EC01813011F480E801C055
:10C2F00086958093EC01809167069091EC018923EB
:10C3000011F0439A0895439808959FB7F894809147
:10C31000C9008F778093C9008091C9008F7B80937B
:10C32000C9008091C9008F7D8093C9005A9A5298A4
:10C330005B9A539A1092CD0084E18093CC00809157
:10C34000C80082608093C80080E18093C90080911A
:10C35000CA008F778093CA008091CA008F7B809338
:10C36000CA008091CA008F7D8093CA008091CA0064
:10C370008F7E8093CA008091CA00877F8093CA0015
:10C380008091C9008B7F8093C9008091CA0084602E
:10C390008093CA008091CA0082608093CA0002C064
:10C3A0008091CE008091C80087FDFACF8091C900AE
:10C3B00080688093C9009FBF08950F931F93CF9308
:10C3C000DF93982F8091ED01813061F41092ED019F
:10C3D00084E480930B0410920E0410920F041092C8
:10C3E0000D041DC120E080910B04882309F421E095
:10C3F00080910F04882371F4222311F081E010C092
:10C4000084E480930B0410920E0410920F04109297
:10C410000D04EEC0813069F4222309F0DFC082E010
:10C4200080930F0480910E048F5F80930E0483E04D
:10C43000DDC08230D1F4222309F0D0C083E08093A4
:10C440000B0490930D0420910E04223039F41092C5
:10C450000C0497FF03C081E080930C0483E0809379
:10C460000F042F5F20930E04C3C0833009F0B6C0C1
:10C47000222309F0B3C080930B0482E080930F0461
:10C4800080910E048F5F80930E0440910D04292F3C
:10C4900030E0842F90E0982F8827282B392B80912B
:10C4A0003F06813039F43370C9018050924063E017
:10C4B00070E015C0823069F43770C9018050944033
:10C4C00066E070E00E94D470EB0146954695469573
:10C4D0000BC03370C9018856914062E070E00E9441
:10C4E000D470EB0146954695842F90E08F70907044
:10C4F0008C010F5F1F4F0D30110508F079C0F80156
:10C50000EE0FFF1FED5BF84F808191819E01281B8C
:10C51000390BC90137FF03C0909581959F4F06974E
:10C5200094F480915503883C30F480915503865FE4
:10C530008093550308C088EC8093550380916F0069
:10C540008F7D80936F00F801EE0FFF1FED5BF84FBA
:10C5500020813181C901880F991F820F931F8C0F91
:10C560009D1F64E070E00E94D4709B01CE01019693
:10C57000861797071CF42150304006C021976C178E
:10C580007D0714F42F5F3F4F80915503E801CC0FD6
:10C59000DD1F843BB8F0FE01ED5BF84F8081918197
:10C5A000A901481B590BCA0163E070E00E94D470D6
:10C5B000CB01880F991F860F971FC958D84F9983B1
:10C5C000888304C0C958D84F19821882000F111FE0
:10C5D0000D5B184FF801318320830AC081E08093FE
:10C5E000ED0110920E0410920C0484E480930B046D
:10C5F00080910E04803198F080910C04882331F4EE
:10C600008091ED01882311F41092940110920E0490
:10C6100010920C0410920F0484E480930B04DF91B9
:10C62000CF911F910F91089597FD02C041E004C082
:10C63000909581959F4F4FEF68E671E00E94D4700E
:10C64000FC018B35910554F08B5590408A3591054E
:10C6500038F484EB90E08E1B9F0BFC0181E00FC04F
:10C66000CF01855B90408A35910518F4E45BF0407A
:10C6700005C088E691E08E1B9F0BFC018FEFEE0F4B
:10C68000FF1FE65CF54F25913491992787FD909522
:10C69000B901689F9001699F300D789F300D11247A
:10C6A000842F992787FD9095AC01249FC001259F79
:10C6B000900D349F900D112408952AE530E0281B39
:10C6C000390BC9010E94146308951F93182F90918C
:10C6D0001104909310048F32F1F0803318F48F31ED
:10C6E00059F511C08F34F9F08F3831F5992319F4C9
:10C6F00081E090E036C0E6E09E9FF0011124E05119
:10C70000F54FE49117C0E6E09E9FF0011124EF5031
:10C71000F54FE4910FC0E6E09E9FF0011124EE502A
:10C72000F54FE49107C0E6E09E9FF0011124ED5023
:10C73000F54FE491E093110480911104891310E006
:10C740000E944869E091110486E0E89FF0011124FD
:10C75000EC50F54F25913491812FF901099580E036
:10C7600090E01F910895CF93DF938091E101C5E39D
:10C77000D9E6882309F479C080E00E94426980915B
:10C78000150890E09F938F938091170890E09F93F6
:10C790008F9384E39BE09F938F93DF93CF93E091FC
:10C7A0002804F091290409958DB79EB708968DBF8E
:10C7B00080911608833031F48CE00E9442698FE248
:10C7C0009BE005C08CE00E9442698AE29BE09F9357
:10C7D0008F93DF93CF93E0912804F091290409957A
:10C7E0000F900F900F900F908091140881FF14C04C
:10C7F0008CE00E94426985E29BE09F938F9385E3E2
:10C8000099E69F938F93E0912804F091290409956C
:10C810000F900F900F900F9080E10E9442698FED72
:10C8200090E09F938F9380911A0890911B089F939B
:10C830008F9380911808909119086AE070E00E9427
:10C84000C0707F936F9385E19BE09F938F9385E307
:10C8500099E69F938F93E0912804F091290409951C
:10C860008DB79EB70A968DBF12C082E00E944269C2
:10C8700088E09BE09F938F93DF93CF93E091280410
:10C88000F091290409950F900F900F900F90DF9170
:10C89000CF910895EF92FF920F931F9380E00E9433
:10C8A0004269E0902804F09029042091800830919A
:10C8B0008108C9016AE070E00E94C0708C01C90162
:10C8C0006AE070E00E94C070FB01809110019091BD
:10C8D00011016AE070E00E94D4709C018091100107
:10C8E000909111016AE070E00E94D4701F930F9341
:10C8F000FF93EF933F932F937F936F938FE49BE08E
:10C900009F938F9305E319E61F930F93F701099502
:10C9100080E10E944269E0912804F091290480910D
:10C9200084089091850820918208309183089F9314
:10C930008F933F932F9383E49BE09F938F931F9359
:10C940000F9309958DB79EB744968DBF1F910F9198
:10C95000FF90EF900895CF93DF9380E00E944269AB
:10C9600080910107992787FD90959F938F938091E0
:10C97000F906992787FD90959F938F938091F106F3
:10C98000992787FD90959F938F938091E90699272A
:10C9900087FD90959F938F938CE89BE09F938F9357
:10C9A000C5E3D9E6DF93CF93E0912804F091290401
:10C9B000099580E10E94426980912107992787FDAE
:10C9C00090959F938F9380911907992787FD909554
:10C9D0009F938F9380911107992787FD90959F933F
:10C9E0008F9380910907992787FD90959F938F9347
:10C9F0008CE79BE09F938F93DF93CF93E091280484
:10CA0000F09129040995809117062DB73EB7285E4D
:10CA10003F4F2DBF853098F480E10E9442698BE63C
:10CA20009BE09F938F93DF93CF93E0912804F09145
:10CA3000290409950F900F900F900F9018C0873020
:10CA4000B0F488E10E9442698FED90E09F938F934C
:10CA500082E69BE09F938F93DF93CF93E09128042E
:10CA6000F091290409958DB79EB706968DBFDF9189
:10CA7000CF910895EF92FF920F931F93CF93DF937F
:10CA800080E00E944269E0912804F091290480919D
:10CA90001001909111016AE070E00E94D4709C0135
:10CAA00080911001909111016AE070E00E94D470B1
:10CAB0003F932F937F936F938EEC9BE09F938F9385
:10CAC000C5E3D9E6DF93CF9309952DB73EB7285F2D
:10CAD0003F4F2DBF8091E1018823B9F186E00E948C
:10CAE0004269E0902804F090290480911808909100
:10CAF00019086AE070E00E94C0708B01609109081B
:10CB000070910A0880910B0890910C082091D60131
:10CB10003091D7014091D8015091D9010E940971FB
:10CB20001F930F938FED90E09F938F933F932F93DD
:10CB300082EC9BE09F938F93DF93CF93F70109954E
:10CB40008DB79EB70A968DBF12C086E00E944269DB
:10CB5000E0912804F09129048BEB9BE09F938F9345
:10CB6000DF93CF9309950F900F900F900F908091C6
:10CB7000FD038823D1F086E00E944269E0912804F9
:10CB8000F09129048091FD0390E09F938F9380EBB7
:10CB90009BE09F938F9385E399E69F938F930995ED
:10CBA0002DB73EB72A5F3F4F2DBF80E10E944269FB
:10CBB00000912804109129042091F6013091F70189
:10CBC000C9016CE370E00E94C070FC01C9016CE314
:10CBD00070E00E94C0708091840890918508FF9356
:10CBE000EF937F936F939F938F9383EA9BE09F9341
:10CBF0008F93C5E3D9E6DF93CF93F8010995809130
:10CC000025062DB73EB7265F3F4F2DBF80FF28C0BA
:10CC10008AE10E944269E0902804F0902904009182
:10CC2000DA0110E06091600370916103809162030A
:10CC30009091630324E630E040E050E00E940971E7
:10CC40001F930F933F932F938CE99BE09F938F93B8
:10CC5000DF93CF93F70109958DB79EB708968DBFE7
:10CC6000E6E0CDB7DEB70C944C7180911204909140
:10CC700013040E94B216882309F4B0C080911204F4
:10CC8000909113040A969093130480931204E2EE99
:10CC9000F6E060E070E040E050E090E0AFEF8381CC
:10CCA00087FF0BC09F5F8581680F711D8181480FD1
:10CCB000511D86818A1708F4A82F389627E0E234A0
:10CCC000F20769F7A0938608452B41F5809114047B
:10CCD00090911504A0911604B0911704292F3A2FB2
:10CCE0004B2F5527309319042093180440E050E04F
:10CCF000821B930BA40BB50B9B0140E050E0820F0D
:10CD0000931FA41FB51F8093140490931504A09340
:10CD10001604B0931704E5E0F0E014C02091180465
:10CD2000309119042617370718F020E030E003C0CF
:10CD3000621B730B9B01E92FF0E0EE0FFF1F35968E
:10CD4000E20FF31FF0938108E0938008EF3FF105B5
:10CD500078F48091100190911101AC01E49FC00121
:10CD6000E59F900DF49F900D112464E670E013C0D0
:10CD700080911001909111019F013695279536956C
:10CD80002795AC01249FC001259F900D349F900DE5
:10CD9000112469E170E00E94C07070938308609371
:10CDA000820820911A0430911B042E0F3F1F3093EC
:10CDB0001B0420931A045EE02131350778F080913E
:10CDC0008408909185080196909385088093840843
:10CDD00020513E4030931B0420931A040895109272
:10CDE0008108109280081092850810928408109291
:10CDF000830810928208109286088AE090E00E94D0
:10CE0000A9169093130480931204089500242227F6
:10CE10003327442751E0BB27EE27FF27A0E1660F09
:10CE2000771F881F991F001C221F331F441F660F86
:10CE3000771F881F991F001C221F331F441F2AF4CD
:10CE4000050E2B1F3E1F4F1F04C0051A2B0B3E0B58
:10CE50004F0B550FBB1FEE1F587F556047FD5250BB
:10CE6000AA95E9F6E695B7955795E695B79557953E
:10CE7000852F9B2F08952227332741E0552768E00F
:10CE8000880F991F221F331F880F991F221F331FDE
:10CE90001AF4240F351F02C0241B350B440F551FF5
:10CEA000487F456037FD42506A9551F75695479542
:10CEB00056954795842F0895AA2797FF04C080951B
:10CEC00090958A1F9A1F77FF04C0609570956A1F1E
:10CED0007A1F669F9001779FA001679F300D411DCB
:10CEE0005A1F300D411D5A1F889FF001999F2E0F28
:10CEF0003F1F401D511D899F300D411D5A1F300D90
:10CF0000411D5A1FCA01B901112480CF4FB720E437
:10CF100030E0F8948091C9008F778093C9008091A8
:10CF2000C9008F7B8093C9008091C9008F7D809359
:10CF3000C9005A9A52985B9A539A832F99278093E3
:10CF4000CD002093CC008091C80082608093C800FF
:10CF500088E18093C9008091CA008F778093CA00CE
:10CF60008091CA008F7B8093CA008091CA008F7D18
:10CF70008093CA008091CA008F7E8093CA008091FE
:10CF8000CA00877F8093CA008091C9008B7F8093FD
:10CF9000C9008091CA0084608093CA008091CA0051
:10CFA00082608093CA008091C80087FF03C080918F
:10CFB000CE00F9CF8091C90080688093C9004FBF2F
:10CFC00008950F931F93CF93DF93482F4F5F8931BD
:10CFD00008F08BC080914207841720F44F5F409384
:10CFE00042074150CB0183539B4268E170E00E94AD
:10CFF000D470A42FBB27FD01EA0FFB1FED5BF84F98
:10D00000808191819B01281B390BC90137FF03C027
:10D01000909581959F4F069794F480915503883C95
:10D0200030F480915503865F8093550308C088ECE7
:10D030008093550380916F008F7D80936F00FD0179
:10D04000EA0FFB1FED5BF84F808191819C01220F5D
:10D05000331F280F391F260F371F37FF02C02D5FE0
:10D060003F4FE901D595C795D595C795CB01019659
:10D070008C179D0714F4219706C061507040C617A5
:10D08000D7070CF4219680915503843BD8F08D018D
:10D090000A0F1B1FF801ED5BF84F80819181FE01A3
:10D0A000E81BF90BCF0163E070E00E94D470CB0164
:10D0B000880F991F860F971F0958184FF801918301
:10D0C000808307C0AA0FBB1FA958B84F11961C92A6
:10D0D0001E92E42FFF27EE0FFF1FED5BF84FD18369
:10D0E000C083443011F410929401DF91CF911F91CD
:10D0F0000F910895CF93DF9320918708822F99276E
:10D10000807F9070409709F06CC02F3109F046C0C5
:10D11000809188088093200420918A08209322041B
:10D1200080918B0880932104822F99279093440744
:10D1300080934307222309F054C080911906282FB9
:10D140003327220F331FF901E958F84F118210825B
:10D1500080911A06A82FBB27AA0FBB1FFD01E95813
:10D16000F84F1182108280911C06E82FFF27EE0FE6
:10D17000FF1FCF018958984FEC01198218822D5B4F
:10D18000384FE90119821882AD5BB84F11961C9295
:10D190001E92ED5BF84F1182108223C0C22FCF7018
:10D1A000CA30F8F4809188088093B108809189088A
:10D1B0008093B00880918A088093B30880918B088F
:10D1C0008093B2086091B0087091B1088C2F0E94D2
:10D1D000E1676091B2087091B3088C2F8F5F0E9455
:10D1E000E167DF91CF910895CF93C82F8F3F49F426
:10D1F000809123048F3F29F4109225041092240477
:10D2000032C020912504222339F4CF3111F485E076
:10D2100001C084E080932604809126049091240428
:10D220008217A0F4892F8095809324048F3F19F4EE
:10D230008EEF8093240480912404C81711F40E9477
:10D240007A6810922504109224040BC0E22FFF2765
:10D25000E957F74FC0832F5F209325049C0F9093CD
:10D260002404C0932304CF91089590911F04933216
:10D2700040F4E92FFF27E357F74F80839F5F909398
:10D280001F040895833218F48D5F80931F0408955E
:10D2900090E2E0E9F8E08FE19193815087FFFCCFC5
:10D2A0000895CF93CFB723E031E0F8948091C9007F
:10D2B0008F778093C9008091C9008F7B8093C900CC
:10D2C0008091C9008F7D8093C9005A9A52985B9AC9
:10D2D000539A832F99278093CD002093CC0080917F
:10D2E000C80082608093C80088E18093C900809163
:10D2F000CA008F778093CA008091CA008F7B809389
:10D30000CA008091CA0080628093CA008091CA00DE
:10D3100080618093CA008091CA0088608093CA00AF
:10D320008091C90084608093C9008091CA008460A4
:10D330008093CA008091CA0082608093CA00809165
:10D34000C80087FF03C08091CE00F9CF8091C9004B
:10D3500080688093C9008091C90080648093C9006F
:10D360000E944869CFBFCF910895282F99278F70C9
:10D370009070892B31F4209580911E04822B80932C
:10D380001E0408958091F001882309F441C0809122
:10D39000890385FF0AC082E980938D0883E2809328
:10D3A0008E0885E580938F0802C010928D088091C9
:10D3B000F1018F3071F480911E040E94656388230F
:10D3C00041F081E980938D0880938E0881E38093FA
:10D3D0008F081092F0018091C80085FFFCCF8091EA
:10D3E000C9008F7E8093C9008091C9008E7F809391
:10D3F000C90080918D08882311F48EEF01C08EE75B
:10D400008093CE0080911E048093F10110921E043F
:10D4100008951F920F920FB60F9211248F939F932E
:10D42000EF93FF939091F001992309F040C0809110
:10D430002704882361F480918D08882311F483E008
:10D4400003C0813999F481E0809327040FC08330B1
:10D4500099F480918D08882349F090938D088091EC
:10D46000C9008E7F8093C9008EEF1EC08091C900D5
:10D4700081608093C9000EC0833261F48091C9003D
:10D480008E7F8093C9008FEF8093CE0081E08093E0
:10D49000F00114C080912704E82FFF27E357F74FCE
:10D4A0008F5F8093270480818093CE0007C0109205
:10D4B00027048091C90080618093C900FF91EF919A
:10D4C0009F918F910F900FBE0F901F901895EF9224
:10D4D000FF920F931F93CF93DF937C018B01EA019F
:10D4E000452B39F0F80181918F01F70109952197BA
:10D4F000C9F7E6E0CDB7DEB70C944C71EF92FF921E
:10D500000F931F93CF93DF937C018B01EA01452B8F
:10D5100041F0F8010F5F1F4F8491F70109952197A2
:10D52000C1F7E6E0CDB7DEB70C944C710F931F93B3
:10D53000CF938C01C62F161634F480E2F8010995BA
:10D54000C1501C16D4F3CF911F910F9108950F93E2
:10D550001F93CF938C01C62F161634F480E3F80185
:10D560000995C1501C16D4F3CF911F910F910895C6
:10D57000A5E3B0E0EEEBFAE60C9424712E96EEAD46
:10D58000FFAD2E9788249924540180911D0488238F
:10D5900021F42C961FAE1EAE2C975EE4452E512C26
:10D5A0004C0E5D1E6F01B60105C0153239F00894AE
:10D5B000C11CD11CF60114911123B9F7A601461B19
:10D5C000570B31F02C968EAD9FAD2C970E947E6A42
:10D5D000112309F46AC20894C11CD11CFF24FDA6C2
:10D5E000FCA64FEFE42EF9A6F6010894C11CD11C4D
:10D5F0001491153721F0812F80628837B1F4F0FE45
:10D600000AC0F20124E030E0420E531E8080918077
:10D61000A280B3800AC0F20142E050E0440E551EE1
:10D62000808191814C01AA24BB24103221F489A568
:10D630008823D1F61DC0133219F458E0F52AD4CF4F
:10D640001A3211F01D3291F41A3259F4F20182E0CB
:10D6500090E0480E591EE081ECA7EE232CF6E195F0
:10D66000ECA790E1F92AAFEDFA22BECF1B3211F4FC
:10D6700019A7BACF1E32C1F5F6010894C11CD11CFE
:10D6800014911A3279F4F20122E030E0420E531E76
:10D69000408151813FEF4F3F530714F44FEF5FEF4D
:10D6A000E42EA2CF40E050E0812F80538A30A0F4D6
:10D6B000CA0133E0880F991F3A95E1F7840F951F4F
:10D6C000480F591F410F511D40535040F601089417
:10D6D000C11CD11C1491E8CF8FEF4F3F580714F4B1
:10D6E0004FEF5FEFE42E85CF103329F4F4FC7CCFAD
:10D6F00090E2F92A79CF812F81538930D8F440E024
:10D7000050E0CA0123E0880F991F2A95E1F7840FA2
:10D71000951F480F591F410F511D40535040F601AE
:10D720000894C11CD11C1491812F80538A3048F376
:10D730004CA75FCF183619F4A4E0FA2A55CF1C364F
:10D7400019F4B1E0FB2A50CF133661F43E0108947E
:10D75000611C711CF20122E030E0420E531E8081F8
:10D7600089833CC1143421F0143611F0193651F577
:10D77000143411F431E0F32AF0FE0AC0F20144E05F
:10D7800050E0440E551E80809180A280B3800CC072
:10D79000F20182E090E0480E591E808191814C0197
:10D7A000AA2497FCA094BA2CB7FE0AC0B094A09407
:10D7B00090948094811C911CA11CB11C8DE289A7BE
:10D7C0000AE06FC01F3411F01F3631F41F3411F41A
:10D7D00091E0F92A08E064C0103779F4F201A2E080
:10D7E000B0E04A0E5B1E808191814C01AA24BB24CB
:10D7F00000E1B0E4FB2A18E753C01337C1F5F2018A
:10D8000022E030E0420E531E60807180611471048A
:10D8100089F43E010894611C711C88E289838EE6BC
:10D82000F301818385E78B838CE68C838D8389E28A
:10D830008E831F82E7FC13C08E2D992787FD90955C
:10D84000AC0160E070E0C3010E94696F009729F0AD
:10D85000382E3618E3140CF0C3C03E2CC1C0F301BF
:10D8600001900020E9F731973E2E3618B9C01535E2
:10D8700011F0153731F4153511F4F1E0FF2A0AE003
:10D880000FC0183519F0183709F0A0C000E1F3FEF9
:10D8900007C081149104A104B10411F020E4F22A1C
:10D8A00019A6EDA6E7FC02C03FEDF32289E2682E3F
:10D8B000712C6C0E7D1E81149104A104B10421F41D
:10D8C0004DA5442309F47BC0802F9927AA27BB27A5
:10D8D0008EA79FA7A8ABB9AB202E332490E0891662
:10D8E00090E0990691E0A90690E0B90648F0C501DC
:10D8F000B4012EA53FA548A959A90E94E77017C0F9
:10D90000AFEF8A169104A104B10449F040F0C401BC
:10D91000B1010E94C0709B014427552708C0882D83
:10D92000602F0E94B470282F3327442755272AAB35
:10D930003BAB4CAB5DAB0A3059F48AA9880F880F1A
:10D94000880F9AA9990F890F382D381B832F10C083
:10D95000003139F48AA98295807F482D481B842F95
:10D9600007C08AA9880F880F880F582D581B852F4C
:10D9700090E02EA53FA548A959A982169306A406B2
:10D98000B50608F091E08AA89BA8ACA8BDA88A308B
:10D9900010F4805D04C0895A183509F48F7DD301D5
:10D9A0008E933D01992309F099CF083041F4F3FE9D
:10D9B00006C0803321F080E3FD0182933F01CE0158
:10D9C0000196382E3618F8E23F0E0BC0112309F4E9
:10D9D0006CC03E010894611C711C1983B1E03B2EA0
:10D9E00019A6032D2DA4231827FC222489A58823FA
:10D9F00011F00F5F02C0F6FC0E5F020DEF2CFF244A
:10DA0000C70180739070892B49F48CA5801B682F07
:10DA10002C968EAD9FAD2C970E94966A89A588237F
:10DA200031F041E050E0BE01675D7F4F0AC0E6FE85
:10DA30000EC080E38AA71BA742E050E0BE01665DEE
:10DA40007F4F2C968EAD9FAD2C970E94676AC701C1
:10DA500080739070809749F48CA5801B682F2C965A
:10DA60008EAD9FAD2C970E94A76A622D2C968EAD2D
:10DA70009FAD2C970E94A76A832D992787FD9095CB
:10DA8000AC01B3012C968EAD9FAD2C970E94676AB6
:10DA9000E4FE89CD2CA5201B2CA7622F2C968EADE1
:10DAA0009FAD2C970E94966A7ECDE2E1CB5C0C94F0
:10DAB00040712FB740E0F894E0E0F0E081E280931D
:10DAC00057009491E2E0F0E0809357003491E4E055
:10DAD000F0E08093570084912FBF9E3199F436393E
:10DAE00041F4893011F441E00DC08A3059F442E02C
:10DAF00009C0373939F4863011F443E003C085306A
:10DB000009F444E0842F992708959FB7F8948091F1
:10DB1000C900877F8093C9008091C9008F7E809360
:10DB2000C9008091C9008F778093C9008091C90096
:10DB30008F7B8093C9008091C9008F7D8093C9003D
:10DB400052985A9A53985B9A9FBF08951F93CF9308
:10DB5000DF93182F80911D04882309F48DC08091D4
:10DB6000EF01181709F488C080911C04882321F460
:10DB70000E94596D80931C0483EC9CE09F938F93CB
:10DB8000C9EBDCE0DF93CF93E0912804F091290406
:10DB900009950F900F900F900F90812F9927823049
:10DBA000910501F1833091052CF4009761F0019704
:10DBB00069F024C084309105D9F084309105ACF02F
:10DBC0000597C9F01BC083EB9CE002C081EA9CE092
:10DBD0009F938F93DF93CF93E0912804F0912904D2
:10DBE000099518C088E89CE0F3CF85E69CE0F0CF6B
:10DBF00087E59CE0EDCF8FE49CE0EACF80ED9CE0F0
:10DC00009F938F93DF93CF93E0912804F0912904A1
:10DC1000099510E00F900F900F900F9080911C04C9
:10DC2000843011F0823099F40E94856D812F8150EB
:10DC3000833018F40E9485611DC0143019F40E94CD
:10DC4000516918C01530B1F40E94866713C01123C2
:10DC500089F086EE9CE09F938F9389EB9CE09F93E5
:10DC60008F93E0912804F091290409950F900F906B
:10DC70000F900F901093EF01DF91CF911F910895B6
:10DC80000F931F9381E080931D044091EE01EFEF0D
:10DC9000FBE020E030E05FE4849199272F5F3F4F65
:10DCA000829FB001839F700D929F700D11244627B3
:10DCB0005150319657FFF0CF4093EE01E7EDFBE076
:10DCC00020E030E057E2849199272F5F3F4F829FF9
:10DCD000B001839F700D929F700D11244627515003
:10DCE000319657FFF0CF4093EE0180911C048823BA
:10DCF00021F40E94596D80931C048091EE018334BD
:10DD000059F088E190E029E20FB6F894A895809345
:10DD100060000FBE2093600088EB9AE69093290480
:10DD20008093280481E09DE09F938F9309EB1CE092
:10DD30001F930F93E0912804F091290409950F9007
:10DD40000F900F900F9081E690E09F938F9382E564
:10DD500090E09F938F931F921F92809100016AE041
:10DD60000E94B470892F99279F938F93809100010F
:10DD70000E94B47099279F938F9387E29DE09F93B1
:10DD80008F931F930F93E0912804F0912904099534
:10DD90008FEF9BE09F938F931F930F93E091280445
:10DDA000F0912904099587ED9BE09F938F931F9332
:10DDB0000F93E0912804F091290409958DB79EB73F
:10DDC00046968DBF8BE59DE09F938F931F930F9396
:10DDD000E0912804F0912904099583EC8093810057
:10DDE00080916F00806280936F000F900F900F9072
:10DDF0000F901F910F91089580911D04882361F069
:10DE00008091EF01843011F40E94C2698091EE018B
:10DE1000833411F010921D0408951F920F920FB6D3
:10DE20000F9211242F933F934F935F936F937F93A0
:10DE30008F939F93AF93BF93EF93FF932091CE0067
:10DE4000809113028823B1F02093C60080911302C1
:10DE5000823029F52F3F19F58FEF94E3ACE0B0E065
:10DE6000C297A109B109B7FFFBCF80916B048093E2
:10DE7000CE0015C09091EF01892F8150833020F49E
:10DE8000822F0E94DD610BC0943021F4822F0E940A
:10DE9000B56905C0953019F4822F0E94F468FF918E
:10DEA000EF91BF91AF919F918F917F916F915F9112
:10DEB0004F913F912F910F900FBE0F901F9018958B
:10DEC000FB01DC0102C005900D9241505040D8F793
:10DED0000895FC014150504030F001900616D1F7F2
:10DEE0003197CF0108958827992708955058BB2767
:10DEF000AA270ED0E0C0D1D030F0D6D020F031F437
:10DF00009F3F11F41EF4C6C00EF4E095E7FBBCC0C1
:10DF1000E92FE2D080F3BA176207730784079507E9
:10DF200018F071F49EF5FAC00EF4E0950B2EBA2F9E
:10DF3000A02D0B01B90190010C01CA01A00111240F
:10DF4000FF27591B99F0593F50F4503E68F11A16BB
:10DF5000F040A22F232F342F4427585FF3CF46954C
:10DF600037952795A795F0405395C9F77EF41F166E
:10DF7000BA0B620B730B840BBAF09150A1F0FF0F38
:10DF8000BB1F661F771F881FC2F70EC0BA0F621F24
:10DF9000731F841F48F4879577956795B795F79514
:10DFA0009E3F08F0B3CF9395880F08F09927EE0FA6
:10DFB00097958795089598D088F09F5790F0B92F3E
:10DFC0009927B751A0F0D1F0660F771F881F991FCE
:10DFD0001AF0BA95C9F712C0B13081F09FD0B1E004
:10DFE00008959CC0672F782F8827B85F39F0B93F14
:10DFF000CCF3869577956795B395D9F73EF49095D0
:10E000008095709561957F4F8F4F9F4F0895E8944D
:10E0100009C097FB3EF490958095709561957F4F70
:10E020008F4F9F4F9923A9F0F92F96E9BB2793951E
:10E03000F695879577956795B795F111F8CFFAF42E
:10E04000BB0F11F460FF1BC06F5F7F4F8F4F9F4F5F
:10E0500016C0882311F096E911C0772321F09EE8BD
:10E06000872F762F05C0662371F096E8862F70E023
:10E0700060E02AF09A95660F771F881FDAF7880FFD
:10E080009695879597F9089597F99F6780E870E0CE
:10E0900060E008959FEF80EC089500240A9416161E
:10E0A000170618060906089500240A941216130686
:10E0B000140605060895092E0394000C11F4882314
:10E0C00052F0BB0F40F4BF2B11F460FF04C06F5F30
:10E0D0007F4F8F4F9F4F089557FD9058440F551F06
:10E0E00059F05F3F71F04795880F97FB991F61F0DA
:10E0F0009F3F79F087950895121613061406551F51
:10E10000F2CF4695F1DF08C0161617061806991FBC
:10E11000F1CF86957105610508940895E894BB27B1
:10E1200066277727CB0197F90895629FD001739FE7
:10E13000F001829FE00DF11D649FE00DF11D929FA3
:10E14000F00D839FF00D749FF00D659FF00D9927E2
:10E15000729FB00DE11DF91F639FB00DE11DF91F06
:10E16000BD01CF0111240895991B79E004C0991FC6
:10E17000961708F0961B881F7A95C9F78095089521
:10E18000AA1BBB1B51E107C0AA1FBB1FA617B707DD
:10E1900010F0A61BB70B881F991F5A95A9F78095F9
:10E1A0009095BC01CD01089597FB092E07260AD052
:10E1B00077FD04D0E5DF06D000201AF47095619554
:10E1C0007F4F0895F6F7909581959F4F0895A1E2AE
:10E1D0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1FE1
:10E1E000FF1FA217B307E407F50720F0A21BB30B2C
:10E1F000E40BF50B661F771F881F991F1A9469F7A8
:10E2000060957095809590959B01AC01BD01CF0103
:10E21000089597FB092E05260ED057FD04D0D7DFB1
:10E220000AD0001C38F450954095309521953F4F09
:10E230004F4F5F4F0895F6F79095809570956195D3
:10E240007F4F8F4F9F4F08952F923F924F925F9233
:10E250006F927F928F929F92AF92BF92CF92DF92F6
:10E26000EF92FF920F931F93CF93DF93CDB7DEB75B
:10E27000CA1BDB0B0FB6F894DEBF0FBECDBF0994EF
:10E280002A88398848885F846E847D848C849B8446
:10E29000AA84B984C884DF80EE80FD800C811B8154
:10E2A000AA81B981CE0FD11D0FB6F894DEBF0FBE83
:10E2B000CDBFED010895EE0FFF1F0590F491E02D05
:10E2C0000994F999FECFB2BDA1BDF89A119600B498
:10E2D0000895F7DF01921A94E1F70895F2DFE02D37
:10E2E000F0DFF02D0895F999FECFB2BDA1BD00BCBD
:10E2F00011960FB6F894FA9AF99A0FBE0895F3DFC3
:10E30000012CF1DF112408950190EDDF1A94E1F75B
:04E310000895FFCF9E
:10E314000A015E0101FF640101C01FC01FFFFF016C
:10E324006400C409C409007D0000FF037373730112
:10E3340048656C6C6F20576F726C640000000000BD
:10E3440000000000000000000000000000000000C9
:10E3540000000000000000000000000000000000B9
:10E3640000000000000000000000000000000000A9
:10E374000000000000000000000000000000000099
:10E384001151756164726F0000426567696E6E6554
:10E394007200004E6F726D616C000053706F727486
:10E3A4000000640001F40190D0030090D003003811
:10E3B4000130FB103A40400896969696020A64642F
:10E3C400465A414064000204060708080807060488
:10E3D4000200FEFCFAF9F8F8F8F9FAFCFE0002046F
:10E3E40006070808ECFF0B0500002064FF03780013
:10E3F40020FA0B0A0D0B0C0E0B0F1001010170FF1C
:02E40400010F06
:00000001FF
/Spektrum-Diversity/V0.82a/Flight-Ctrl_MEGA644_V0_82a_SVN1849.map
0,0 → 1,2207
Archive member included because of file (symbol)
 
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
fc.o (__addsf3)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
fc.o (__fixunssfsi)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
fc.o (__floatsisf)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_inf)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_nan)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscA)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_pscB)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_round)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_split3)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o) (__fp_zero)
libfc644.a(libfc.o) jetimenu.o (LIBFC_JetiBox_Putchar)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
uart.o (__mulsi3)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
main.o (__udivmodqi4)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
timer0.o (__udivmodhi4)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
uart.o (__divmodhi4)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
libfc644.a(libfc.o) (__udivmodsi4)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
uart.o (__divmodsi4)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
main.o (__prologue_saves__)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
uart.o (__epilogue_restores__)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o (exit)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
analog.o (__tablejump2__)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
uart.o (memcpy_P)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memchr.o)
libfc644.a(libfc.o) (memchr)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
eeprom.o (__eeprom_read_byte_1F2021)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o (__eeprom_read_block_1F2021)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
eeprom.o (__eeprom_read_word_1F2021)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
eeprom.o (__eeprom_write_byte_1F2021)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o (__eeprom_write_word_1F2021)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
eeprom.o (__eeprom_write_block_1F2021)
 
Allocating common symbols
Common symbol size file
 
KopplungsteilNickRoll
0x2 fc.o
MesswertGierBias 0x2 fc.o
SPITransferCompleted
0x1 spi.o
KopplungsteilRollNick
0x2 fc.o
RequiredMotors 0x1 eeprom.o
Parameter_Servo4 0x1 fc.o
GPSInfo 0x8 spi.o
EE_Parameter 0x74 eeprom.o
DiffRoll 0x2 fc.o
MesswertRoll 0x2 fc.o
TrimNick 0x2 fc.o
Parameter_NaviGpsP 0x1 fc.o
ErsatzKompassInGrad
0x2 fc.o
GyroFaktorGier 0x1 fc.o
MittelIntegralRoll2
0x4 fc.o
Parameter_NaviGpsModeControl
0x1 fc.o
TrimRoll 0x2 fc.o
SPI_TX_Buffer 0x2 spi.o
MesswertNick 0x2 fc.o
NC_Version 0x5 spi.o
SPI_BufferIndex 0x1 spi.o
Aktuell_ay 0x2 analog.o
ToNaviCtrl 0x20 spi.o
Data3D 0xe uart.o
Parameter_NaviGpsI 0x1 fc.o
Capacity 0x7 capacity.o
Timer3D 0x2 uart.o
SPI_ChkSum 0x1 spi.o
RohMesswertRoll 0x2 fc.o
MIN_GAS 0x1 fc.o
Parameter_NaviGpsACC
0x1 fc.o
MittelIntegralNick2
0x4 fc.o
Channels 0x1 rc.o
Debug_Timer 0x2 uart.o
RohMesswertNick 0x2 fc.o
IntegralFaktorGier 0x1 fc.o
fdknerTjg5i83th589v44
0x6 libfc644.a(libfc.o)
DiffNick 0x2 fc.o
MittelIntegralNick 0x4 fc.o
Parameter_Servo3 0x1 fc.o
VersionInfo 0xa uart.o
MotorTest 0x10 uart.o
SPI_RxBufferIndex 0x1 spi.o
NaviAccNick 0x2 fc.o
Parameter_J16Timing
0x1 fc.o
MittelIntegralRoll 0x4 fc.o
NeutralAccZ_float 0x4 analog.o
Parameter_Servo5 0x1 fc.o
SPI_RxDataValid 0x1 spi.o
PPM_in 0x34 rc.o
WinkelOut 0x8 uart.o
ExternControl 0xb uart.o
IntegralFaktor 0x1 fc.o
Aktuell_az 0x2 analog.o
FromNaviCtrl 0x1a spi.o
StartLuftdruck 0x2 analog.o
_printf_P 0x2 main.o
tmp_motorwert 0x18 fc.o
Kompass_Timer 0x2 uart.o
RxdBuffer 0xaa uart.o
Mixer 0x4e eeprom.o
Display_Timer 0x2 uart.o
Parameter_NaviOperatingRadius
0x1 fc.o
TxdBuffer 0xaa uart.o
SPI_Buffer 0x1a spi.o
Aktuell_Nick 0x2 analog.o
Aktuell_Roll 0x2 analog.o
IlIlIlIIIIIIIlIllllll
0x23 libfc644.a(libfc.o)
Aktuell_ax 0x2 analog.o
Parameter_NaviWindCorrection
0x1 fc.o
s 0x1 fc.o
h 0x1 fc.o
Mittelwert_AccNick 0x2 fc.o
Parameter_NaviSpeedCompensation
0x1 fc.o
DebugOut 0x42 uart.o
DruckOffsetSetting 0x1 analog.o
FromNaviCtrl_Value 0x5 spi.o
BLConfig 0x8 twimaster.o
Motor 0x60 twimaster.o
Aktuell_Gier 0x2 analog.o
Parameter_J17Timing
0x1 fc.o
MAX_GAS 0x1 fc.o
MesswertGier 0x2 fc.o
Parameter_J16Bitmask
0x1 fc.o
ConfirmFrame 0x1 uart.o
NaviAccRoll 0x2 fc.o
GyroFaktor 0x1 fc.o
m 0x1 fc.o
ErsatzKompass 0x4 fc.o
Mittelwert_AccRoll 0x2 fc.o
Parameter_NaviGpsGain
0x1 fc.o
fgfdogjWEti45e9tjh394
0x4 libfc644.a(libfc.o)
PPM_diff 0x34 rc.o
Parameter_ExternalControl
0x1 fc.o
Parameter_J17Bitmask
0x1 fc.o
Parameter_NaviGpsD 0x1 fc.o
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
LOAD main.o
LOAD uart.o
LOAD timer0.o
LOAD analog.o
LOAD menu.o
LOAD eeprom.o
LOAD twimaster.o
LOAD rc.o
LOAD fc.o
LOAD GPS.o
LOAD spi.o
LOAD led.o
LOAD Spektrum.o
LOAD mymath.o
LOAD jetimenu.o
LOAD capacity.o
LOAD debug.o
LOAD isqrt.o
LOAD c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a
LOAD libfc644.a
LOAD c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a
LOAD c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a
LOAD c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0xe314
*(.vectors)
.vectors 0x00000000 0x7c c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
.progmem.gcc_sw_table
0x0000007c 0x24 analog.o
.progmem.gcc_sw_table
0x000000a0 0x24 menu.o
.progmem.gcc_sw_table
0x000000c4 0x2e twimaster.o
*(.progmem*)
.progmem.data 0x000000f2 0x12b main.o
.progmem.data 0x0000021d 0x215 uart.o
0x0000021d ANALOG_TEXT
.progmem.data 0x00000432 0x39 analog.o
.progmem.data 0x0000046b 0x515 menu.o
.progmem.data 0x00000980 0xa2 eeprom.o
.progmem.data 0x00000a22 0x18 fc.o
.progmem.data 0x00000a3a 0xb6 mymath.o
0x00000a3a pgm_sinlookup
.progmem.data 0x00000af0 0xe7 jetimenu.o
0x00000af0 JetiBox_Menu
.progmem.data 0x00000bd7 0x1aa libfc644.a(libfc.o)
0x00000bff Msg1
0x00000c65 Rec_Spektrum_LOW_RES
0x00000bd7 Msg2
0x00000c57 Rec_Jeti
0x00000cb3 Rec_PPM
0x00000c4f Rec_ACT_DSL
0x00000ca1 Rec_Spektrum
0x00000c88 Rec_Spektrum_HI_RES
0x00000d82 . = ALIGN (0x2)
*fill* 0x00000d81 0x1 00
0x00000d82 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000d82 0x0 linker stubs
*(.trampolines*)
0x00000d82 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000d82 __ctors_start = .
*(.ctors)
0x00000d82 __ctors_end = .
0x00000d82 __dtors_start = .
*(.dtors)
0x00000d82 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000d82 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
0x00000d82 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000d82 0xc c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000d8e 0x16 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
0x00000d8e __do_copy_data
.init4 0x00000da4 0x10 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
0x00000da4 __do_clear_bss
*(.init4)
*(.init5)
.init5 0x00000db4 0x52 libfc644.a(libfc.o)
0x00000db4 ndfcvbghs
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000e06 0x8 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
*(.init9)
*(.text)
.text 0x00000e0e 0x4 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
0x00000e0e __vector_1
0x00000e0e __bad_interrupt
0x00000e0e __vector_6
0x00000e0e __vector_3
0x00000e0e __vector_23
0x00000e0e __vector_25
0x00000e0e __vector_11
0x00000e0e __vector_13
0x00000e0e __vector_17
0x00000e0e __vector_19
0x00000e0e __vector_7
0x00000e0e __vector_27
0x00000e0e __vector_5
0x00000e0e __vector_4
0x00000e0e __vector_2
0x00000e0e __vector_21
0x00000e0e __vector_15
0x00000e0e __vector_29
0x00000e0e __vector_8
0x00000e0e __vector_14
0x00000e0e __vector_10
0x00000e0e __vector_16
.text 0x00000e12 0x9e2 main.o
0x00000e12 LipoDetection
0x00000f2a CalMk3Mag
0x00000f94 main
.text 0x000017f4 0x1358 uart.o
0x000017f4 __vector_22
0x00001982 UART_Init
0x000020ec BearbeiteRxDaten
0x00001860 AddCRC
0x00001b7a DatenUebertragung
0x000018be Decode64
0x000019f4 SendOutData
0x0000296a __vector_20
0x00001972 uart_putchar
.text 0x00002b4c 0x8ac timer0.o
0x00002d52 SetDelay
0x00002d7c TIMER2_Init
0x00003350 Timer_Init
0x00002dca CalculateServo
0x00002d64 CheckDelay
0x000033c6 Delay_ms
0x00003380 Delay_ms_Mess
0x00003084 __vector_9
0x00002b4c __vector_18
.text 0x000033f8 0xa16 analog.o
0x00003404 __vector_24
0x00003b6c SucheGyroOffset
0x000033f8 ADC_Init
0x00003d44 SucheLuftruckOffset
.text 0x00003e0e 0x1406 menu.o
0x00003e0e LcdClear
0x00003e20 Menu_Putchar
0x00003e36 Menu
.text 0x00005214 0x81e eeprom.o
0x0000548c SetActiveParamSet
0x00005238 EEProm_Checksum
0x00005444 GetParamByte
0x000055aa ParamSet_DefaultSet3
0x000054e2 MixerTable_ReadFromEEProm
0x00005214 RAM_Checksum
0x000052aa CommonDefaults
0x00005450 SetParamByte
0x0000545a GetParamWord
0x00005464 SetParamWord
0x00005526 MixerTable_Default
0x00005788 ParamSet_ReadFromEEProm
0x000054a6 MixerTable_WriteToEEProm
0x00005702 ParamSet_WriteToEEProm
0x000057f4 SetDefaultParameter
0x00005866 ParamSet_Init
0x0000546e GetActiveParamSet
0x0000568e ParamSet_DefaultSet1
0x0000561c ParamSet_DefaultSet2
0x00005260 ParamSet_DefaultStickMapping
.text 0x00005a32 0x902 twimaster.o
0x00005a84 I2C_Reset
0x00005a32 I2C_Init
0x000061e2 I2C_WriteBLConfig
0x00006098 I2C_ReadBLConfig
0x00005ae0 __vector_26
.text 0x00006334 0x4a2 rc.o
0x00006374 __vector_12
0x00006334 rc_sum_init
.text 0x000067d6 0x50c4 fc.o
0x000067d6 CopyDebugValues
0x00007730 SendMotorData
0x000069d0 Mittelwert
0x00008332 Piep
0x00007cd0 CalibrierMittelwert
0x00007dfa SetNeutral
0x000077aa ParameterZuordnung
0x0000837a MotorRegler
.text 0x0000b89a 0x54 GPS.o
0x0000b89a GPS_Neutral
0x0000b8dc GPS_BerechneZielrichtung
.text 0x0000b8ee 0x818 spi.o
0x0000b930 UpdateSPI_Buffer
0x0000bf80 SPI_StartTransmitPacket
0x0000c002 SPI_TransmitByte
0x0000b8ee SPI_MasterInit
.text 0x0000c106 0x204 led.o
0x0000c106 LED_Init
0x0000c124 LED_Update
.text 0x0000c30a 0x31e Spektrum.o
0x0000c30a SpektrumUartInit
0x0000c3ba SpektrumParser
.text 0x0000c628 0xa2 mymath.o
0x0000c6ba c_cos_8192
0x0000c628 c_sin_8192
.text 0x0000c6ca 0x5a0 jetimenu.o
0x0000c894 Menu_Battery
0x0000ca74 Menu_Status
0x0000c766 Menu_PosInfo
0x0000c956 Menu_Temperature
0x0000c6ca JetiBox_Update
.text 0x0000cc6a 0x1a2 capacity.o
0x0000cc6a Capacity_Update
0x0000cdde Capacity_Init
.text 0x0000ce0c 0x0 debug.o
.text 0x0000ce0c 0x100 isqrt.o
0x0000ce0c isqrt32
0x0000ceb8 ihypot
0x0000ce76 isqrt16
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
.text 0x0000cf0c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.text 0x0000cf0c 0xfb4 libfc644.a(libfc.o)
0x0000de1a __vector_28
0x0000db4c LIBFC_ReceiverInit
0x0000cfc2 FGRT0589rge90gj459gg4
0x0000dc80 LIBFC_Init
0x0000d290 LIBFC_JetiBox_Clear
0x0000d1e8 FGtj76uzh56z3grEg5t45
0x0000d412 __vector_30
0x0000d2a2 INiuzBtergGIBuB76T0G5
0x0000d26a LIBFC_JetiBox_Putchar
0x0000d570 IIllllIllIlllIIlllII
0x0000ddf8 LIBFC_Polling
0x0000d384 a48784362857632195659
0x0000d52c fgmjgnrtuth587th9rTrw
0x0000dab2 LIBFC_GetCPUType
0x0000cf0c fomklkdtn89SFGrsgt9rf
0x0000d4ce njkvnfuhgbuzrgezgf483
0x0000d36a KLNMIOHMUHG76GFGr43r3
0x0000d0f4 DFGeefWEF43tgt5uGreg5
0x0000d54e wqqeRT45jth8g758735h4
0x0000db0a awokdjwqdjcjuhcuweih
0x0000d284 LIBFC_JetiBox_SetPos
0x0000d4fc lkvgnfdgun57th38rgh84
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
.text 0x0000dec0 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
.text 0x0000dec0 0x12 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
0x0000dec0 memcpy_P
.text 0x0000ded2 0x1a c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memchr.o)
0x0000ded2 memchr
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
.text 0x0000deec 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
0x0000deec . = ALIGN (0x2)
*(.text.*)
.text.fplib 0x0000deec 0xa c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
0x0000deec __subsf3
0x0000deee __addsf3
.text.fplib 0x0000def6 0xc0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
0x0000df10 __addsf3x
.text.fplib 0x0000dfb6 0x58 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
0x0000dfb6 __fixunssfsi
.text.fplib 0x0000e00e 0x7a c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
0x0000e012 __floatsisf
0x0000e00e __floatunssisf
.text.fplib 0x0000e088 0xc c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
0x0000e088 __fp_inf
.text.fplib 0x0000e094 0x6 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
0x0000e094 __fp_nan
.text.fplib 0x0000e09a 0xe c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
0x0000e09a __fp_pscA
.text.fplib 0x0000e0a8 0xe c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
0x0000e0a8 __fp_pscB
.text.fplib 0x0000e0b6 0x22 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
0x0000e0b6 __fp_round
.text.fplib 0x0000e0d8 0x44 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
0x0000e0d8 __fp_split3
0x0000e0e8 __fp_splitA
.text.fplib 0x0000e11c 0xe c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
0x0000e11c __fp_zero
0x0000e11e __fp_szero
.text.libgcc 0x0000e12a 0x3e c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
0x0000e12a __mulsi3
.text.libgcc 0x0000e168 0x18 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
0x0000e168 __udivmodqi4
.text.libgcc 0x0000e180 0x28 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
0x0000e180 __udivmodhi4
.text.libgcc 0x0000e1a8 0x26 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
0x0000e1a8 __divmodhi4
0x0000e1a8 _div
.text.libgcc 0x0000e1ce 0x44 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
0x0000e1ce __udivmodsi4
.text.libgcc 0x0000e212 0x36 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
0x0000e212 __divmodsi4
.text.libgcc 0x0000e248 0x38 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
0x0000e248 __prologue_saves__
.text.libgcc 0x0000e280 0x36 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
0x0000e280 __epilogue_restores__
.text.libgcc 0x0000e2b6 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
.text.libgcc 0x0000e2b6 0xc c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
0x0000e2ba __tablejump__
0x0000e2b6 __tablejump2__
.text.libgcc 0x0000e2c2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc 0x0000e2c2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
.text.eeprom 0x0000e2c2 0x10 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
0x0000e2c2 __eeprom_read_byte_1F2021
.text.eeprom 0x0000e2d2 0xa c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
0x0000e2d2 __eeprom_read_block_1F2021
.text.eeprom 0x0000e2dc 0xa c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
0x0000e2dc __eeprom_read_word_1F2021
.text.eeprom 0x0000e2e6 0x18 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
0x0000e2e6 __eeprom_write_byte_1F2021
.text.eeprom 0x0000e2fe 0xa c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
0x0000e2fe __eeprom_write_word_1F2021
.text.eeprom 0x0000e308 0xa c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
0x0000e308 __eeprom_write_block_1F2021
0x0000e312 . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000e312 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
0x0000e312 exit
0x0000e312 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000e312 0x2 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
*(.fini0)
0x0000e314 _etext = .
 
.data 0x00800100 0xf2 load address 0x0000e314
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
.data 0x00800100 0x4 main.o
0x00800100 PlatinenVersion
0x00800102 BattLowVoltageWarning
0x00800101 SendVersionToNavi
.data 0x00800104 0x4 uart.o
0x00800107 MeineSlaveAdresse
0x00800106 PcZugriff
0x00800104 UebertragungAbgeschlossen
0x00800105 DebugTextAnforderung
.data 0x00800108 0x8 timer0.o
0x0080010b ServoRollOffset
0x00800108 CalculateServoSignals
0x0080010d BeepMuster
0x00800109 ServoNickOffset
.data 0x00800110 0x10 analog.o
0x00800110 UBat
0x0080011c AnalogOffsetNick
0x0080011e AnalogOffsetGier
0x00800114 HiResRoll
0x0080011f AdReady
0x0080011d AnalogOffsetRoll
0x0080011a MessLuftdruck
0x00800116 Luftdruck
0x00800112 HiResNick
.data 0x00800120 0x51 menu.o
0x00800170 MaxMenue
0x00800120 DisplayBuff
.data 0x00800171 0x21 eeprom.o
.data 0x00800192 0x2 twimaster.o
0x00800192 I2CTimeout
.data 0x00800194 0x1 rc.o
0x00800194 NewPpmData
.data 0x00800195 0x4b fc.o
0x008001b3 Parameter_CouplingYawCorrection
0x00800197 Umschlag180Nick
0x0080019f Ki
0x008001a1 Parameter_Luftdruck_D
0x008001b4 Parameter_DynamicStability
0x008001aa Parameter_Gyro_Gier_P
0x008001a5 Parameter_KompassWirkung
0x008001ae Parameter_ServoNickControl
0x008001a8 Parameter_Gyro_P
0x008001a7 Parameter_Gyro_D
0x008001a3 Parameter_Hoehe_P
0x008001b2 Parameter_AchsKopplung2
0x008001d4 ExternHoehenValue
0x008001a4 Parameter_Hoehe_ACC_Wirkung
0x008001d6 GIER_GRAD_FAKTOR
0x008001b0 Parameter_LoopGasLimit
0x008001b1 Parameter_AchsKopplung1
0x008001b5 sintab
0x008001a9 Parameter_Gyro_I
0x008001ab Parameter_Gyro_Gier_I
0x0080019b Umschlag180Roll
0x008001a2 Parameter_MaxHoehe
0x008001ad Parameter_I_Faktor
0x008001a6 Parameter_Hoehe_GPS_Z
0x008001da VarioCharacter
0x008001af Parameter_ServoRollControl
0x00800195 KompassSignalSchlecht
0x008001ac Parameter_Gier_P
.data 0x008001e0 0x0 GPS.o
.data 0x008001e0 0xb spi.o
0x008001e2 SPI_CommandSequence
0x008001e0 FromNC_Rotate_C
0x008001e1 NaviDataOkay
.data 0x008001eb 0x2 led.o
0x008001eb J16Mask
0x008001ec J17Mask
.data 0x008001ed 0x1 Spektrum.o
.data 0x008001ee 0x0 mymath.o
.data 0x008001ee 0x0 jetimenu.o
.data 0x008001ee 0x0 capacity.o
.data 0x008001ee 0x0 debug.o
.data 0x008001ee 0x0 isqrt.o
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
.data 0x008001ee 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.data 0x008001ee 0x4 libfc644.a(libfc.o)
0x008001ef kf089uwjef89234hffhh
0x008001ee md5
0x008001f0 f8jhreghreGerg45gE542
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memchr.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
.data 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x008001f2 . = ALIGN (0x2)
0x008001f2 _edata = .
0x008001f2 PROVIDE (__data_end, .)
 
.bss 0x008001f2 0x6c2 load address 0x0000e406
0x008001f2 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x008001f2 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
.bss 0x008001f2 0x8 main.o
0x008001f6 FlugSekunden
0x008001f2 FlugMinuten
0x008001f4 FlugMinutenGesamt
0x008001f8 FoundMotors
.bss 0x008001fa 0x22 uart.o
0x00800201 SioTmp
0x0080020f Display_Interval
0x00800209 PC_DebugTimeout
0x008001fe GetVersionAnforderung
0x00800203 NeueKoordinateEmpfangen
0x0080020d Intervall3D
0x008001fd DebugDataAnforderung
0x0080020a PC_MotortestActive
0x00800202 NeuerDatensatzEmpfangen
0x008001fc DebugDisplayAnforderung
0x0080020b DebugDataIntervall
0x00800204 CntCrcError
0x00800211 AboTimeOut
0x008001ff GetPPMChannelAnforderung
0x008001fb DebugDisplayAnforderung1
0x00800200 DisplayLine
0x008001fa GetExternalControl
0x00800206 pRxData
0x00800208 RxDataLen
0x00800205 AnzahlEmpfangsBytes
0x00800213 JetiUpdateModeActive
.bss 0x0080021c 0x17 timer0.o
0x00800223 SendSPI
0x00800225 RemainingPulse
0x00800221 beeptime
0x00800227 ServoNickValue
0x0080021c CountMilliseconds
0x00800224 ServoActive
0x0080021f cntKompass
0x0080021e UpdateMotor
0x00800229 ServoRollValue
.bss 0x00800233 0x32 analog.o
0x00800245 messanzahl_AccHoch
0x0080024d ZaehlMessungen
0x0080024b VarioMeter
0x0080024a ExpandBaro
0x0080023b AdWertRoll
0x00800241 AdWertAccNick
0x00800239 AdWertNick
0x00800237 AdWertGierFilter
0x0080023d AdWertGier
0x00800233 AdWertNickFilter
0x0080023f AdWertAccRoll
0x00800246 SummenHoehe
0x00800235 AdWertRollFilter
0x00800243 AdWertAccHoch
.bss 0x00800265 0x3 menu.o
0x00800265 DispPtr
0x00800266 MenuePunkt
0x00800267 RemoteKeys
.bss 0x00800268 0x0 eeprom.o
.bss 0x00800268 0x10 twimaster.o
0x0080026a motor_write
0x0080026e BLFlags
0x00800268 twi_state
0x0080026d MissingMotor
0x0080026b motor_read
0x00800269 dac_channel
0x0080026c I2C_TransferActive
0x0080026f BLConfig_WriteMask
0x00800271 BLConfig_ReadMask
.bss 0x00800278 0x71 rc.o
0x00800278 tmpChannels
.bss 0x008002e9 0xfa fc.o
0x00800332 Mess_Integral_Gier2
0x00800368 LageKorrekturRoll
0x0080035a StickGier
0x00800373 Looping_Oben
0x00800322 Mess_IntegralNick2
0x00800302 IntegralNick2
0x00800355 SenderOkay
0x00800378 Parameter_UserParam5
0x00800316 IntegralAccZ
0x0080031a Integral_Gier
0x00800356 StickNick
0x0080035e MotorenEin
0x008002fd ControlHeading
0x0080036e Looping_Nick
0x0080030e IntegralAccNick
0x00800360 HoehenWert
0x0080032a Mess_IntegralRoll2
0x00800381 ExternStickGier
0x00800372 Looping_Unten
0x00800385 MaxStickRoll
0x00800387 modell_fliegt
0x00800374 Parameter_UserParam1
0x008002ed AdNeutralRoll
0x0080036c HoverGas
0x00800370 Looping_Links
0x008002fe IntegralNick
0x0080033e Mess_Integral_Hoch
0x0080037a Parameter_UserParam7
0x008002e9 BaroExpandActive
0x008002f9 NaviCntAcc
0x00800349 TrichterFlug
0x008002f5 NeutralAccX
0x0080033a SummeRoll
0x0080032e Mess_Integral_Gier
0x0080035f StartTrigger
0x0080036a LageKorrekturNick
0x00800377 Parameter_UserParam4
0x00800344 KompassStartwert
0x0080035c StickGas
0x0080036f Looping_Roll
0x0080037c CareFree
0x0080037d ExternStickNick
0x00800375 Parameter_UserParam2
0x008002f3 StartNeutralNick
0x00800342 KompassValue
0x00800312 IntegralAccRoll
0x00800346 KompassRichtung
0x00800326 Mess_IntegralRoll
0x00800358 StickRoll
0x008002eb AdNeutralNick
0x008002f7 NeutralAccY
0x0080034c Poti
0x008002fb NeutralAccZ
0x00800379 Parameter_UserParam6
0x0080030a IntegralRoll2
0x00800383 MaxStickNick
0x00800389 FC_StatusFlags
0x00800376 Parameter_UserParam3
0x008002ef AdNeutralGier
0x008002f1 StartNeutralRoll
0x00800371 Looping_Rechts
0x0080037f ExternStickRoll
0x00800348 HoehenReglerAktiv
0x00800364 SollHoehe
0x0080037b Parameter_UserParam8
0x0080034a GierGyroFehler
0x0080031e Mess_IntegralNick
0x00800336 SummeNick
0x00800306 IntegralRoll
.bss 0x008003e3 0x18 GPS.o
0x008003f3 GpsZiel_X
0x008003e9 GPS_Roll2
0x008003ef GpsAktuell_Y
0x008003e3 GPS_Nick
0x008003e7 GPS_Nick2
0x008003eb GpsAktuell_X
0x008003f7 GpsZiel_Y
0x008003e5 GPS_Roll
.bss 0x008003fb 0x5 spi.o
0x008003fb FromNC_Rotate_S
0x008003fd NC_ErrorCode
0x008003fc SPI_CommandCounter
.bss 0x00800400 0xb led.o
0x00800402 LED2_Timing
0x00800400 LED1_Timing
0x00800405 J17Blinkcount
0x00800404 J16Blinkcount
.bss 0x0080040b 0x5 Spektrum.o
0x0080040b SpektrumTimer
.bss 0x00800410 0x0 mymath.o
.bss 0x00800410 0x2 jetimenu.o
.bss 0x00800412 0xa capacity.o
0x00800412 update_timer
.bss 0x0080041c 0x0 debug.o
.bss 0x0080041c 0x0 isqrt.o
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
.bss 0x0080041c 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
.bss 0x0080041c 0xc libfc644.a(libfc.o)
0x0080041d IllIIllIlIlIlIllllII
0x00800420 DJFIORJHcvjr894hjhffj
0x0080041f IIIIIlIllllllIIllIIll
0x0080041c weiuncefcnsavsgvghjc
0x00800421 fij48zrhoih3498fhfo90
0x00800422 fojk48fj478fhw7fhw39
0x0080041e XSasC2389ufwejiCjuz32
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memchr.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
.bss 0x00800428 0x0 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
*(.bss*)
*(COMMON)
COMMON 0x00800428 0x2 main.o
0x00800428 _printf_P
COMMON 0x0080042a 0x1da uart.o
0x0080042a Data3D
0x00800438 Timer3D
0x0080043a Debug_Timer
0x0080043c VersionInfo
0x00800446 MotorTest
0x00800456 WinkelOut
0x0080045e ExternControl
0x00800469 Kompass_Timer
0x0080046b RxdBuffer
0x00800515 Display_Timer
0x00800517 TxdBuffer
0x008005c1 DebugOut
0x00800603 ConfirmFrame
COMMON 0x00800604 0x13 analog.o
0x00800604 Aktuell_ay
0x00800606 NeutralAccZ_float
0x0080060a Aktuell_az
0x0080060c StartLuftdruck
0x0080060e Aktuell_Nick
0x00800610 Aktuell_Roll
0x00800612 Aktuell_ax
0x00800614 DruckOffsetSetting
0x00800615 Aktuell_Gier
COMMON 0x00800617 0xc3 eeprom.o
0x00800617 RequiredMotors
0x00800618 EE_Parameter
0x0080068c Mixer
COMMON 0x008006da 0x68 twimaster.o
0x008006da BLConfig
0x008006e2 Motor
COMMON 0x00800742 0x69 rc.o
0x00800742 Channels
0x00800743 PPM_in
0x00800777 PPM_diff
COMMON 0x008007ab 0x68 fc.o
0x008007ab KopplungsteilNickRoll
0x008007ad MesswertGierBias
0x008007af KopplungsteilRollNick
0x008007b1 Parameter_Servo4
0x008007b2 DiffRoll
0x008007b4 MesswertRoll
0x008007b6 TrimNick
0x008007b8 Parameter_NaviGpsP
0x008007b9 ErsatzKompassInGrad
0x008007bb GyroFaktorGier
0x008007bc MittelIntegralRoll2
0x008007c0 Parameter_NaviGpsModeControl
0x008007c1 TrimRoll
0x008007c3 MesswertNick
0x008007c5 Parameter_NaviGpsI
0x008007c6 RohMesswertRoll
0x008007c8 MIN_GAS
0x008007c9 Parameter_NaviGpsACC
0x008007ca MittelIntegralNick2
0x008007ce RohMesswertNick
0x008007d0 IntegralFaktorGier
0x008007d1 DiffNick
0x008007d3 MittelIntegralNick
0x008007d7 Parameter_Servo3
0x008007d8 NaviAccNick
0x008007da Parameter_J16Timing
0x008007db MittelIntegralRoll
0x008007df Parameter_Servo5
0x008007e0 IntegralFaktor
0x008007e1 tmp_motorwert
0x008007f9 Parameter_NaviOperatingRadius
0x008007fa Parameter_NaviWindCorrection
0x008007fb s
0x008007fc h
0x008007fd Mittelwert_AccNick
0x008007ff Parameter_NaviSpeedCompensation
0x00800800 Parameter_J17Timing
0x00800801 MAX_GAS
0x00800802 MesswertGier
0x00800804 Parameter_J16Bitmask
0x00800805 NaviAccRoll
0x00800807 GyroFaktor
0x00800808 m
0x00800809 ErsatzKompass
0x0080080d Mittelwert_AccRoll
0x0080080f Parameter_NaviGpsGain
0x00800810 Parameter_ExternalControl
0x00800811 Parameter_J17Bitmask
0x00800812 Parameter_NaviGpsD
COMMON 0x00800813 0x6d spi.o
0x00800813 SPITransferCompleted
0x00800814 GPSInfo
0x0080081c SPI_TX_Buffer
0x0080081e NC_Version
0x00800823 SPI_BufferIndex
0x00800824 ToNaviCtrl
0x00800844 SPI_ChkSum
0x00800845 SPI_RxBufferIndex
0x00800846 SPI_RxDataValid
0x00800847 FromNaviCtrl
0x00800861 SPI_Buffer
0x0080087b FromNaviCtrl_Value
COMMON 0x00800880 0x7 capacity.o
0x00800880 Capacity
COMMON 0x00800887 0x2d libfc644.a(libfc.o)
0x00800887 fdknerTjg5i83th589v44
0x0080088d IlIlIlIIIIIIIlIllllll
0x008008b0 fgfdogjWEti45e9tjh394
0x008008b4 PROVIDE (__bss_end, .)
0x0000e314 __data_load_start = LOADADDR (.data)
0x0000e406 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x008008b4 0x0
0x008008b4 PROVIDE (__noinit_start, .)
*(.noinit*)
0x008008b4 PROVIDE (__noinit_end, .)
0x008008b4 _end = .
0x008008b4 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.stab 0x00000000 0x9e4
*(.stab)
.stab 0x00000000 0x378 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
.stab 0x00000378 0x66c isqrt.o
0x678 (size before relaxing)
 
.stabstr 0x00000000 0xb2
*(.stabstr)
.stabstr 0x00000000 0xb2 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(Flight-Ctrl_MEGA644_V0_82a_SVN1849.elf elf32-avr)
LOAD linker stubs
 
Cross Reference Table
 
Symbol File
ADC_Init analog.o
main.o
ANALOG_TEXT uart.o
AboTimeOut uart.o
AdNeutralGier fc.o
spi.o
rc.o
menu.o
AdNeutralNick fc.o
rc.o
menu.o
analog.o
AdNeutralRoll fc.o
rc.o
menu.o
analog.o
AdReady analog.o
fc.o
timer0.o
main.o
AdWertAccHoch analog.o
fc.o
menu.o
AdWertAccNick analog.o
fc.o
menu.o
AdWertAccRoll analog.o
fc.o
menu.o
AdWertGier analog.o
spi.o
fc.o
menu.o
AdWertGierFilter analog.o
AdWertNick analog.o
fc.o
menu.o
AdWertNickFilter analog.o
fc.o
AdWertRoll analog.o
fc.o
menu.o
AdWertRollFilter analog.o
fc.o
AddCRC uart.o
Aktuell_Gier analog.o
Aktuell_Nick analog.o
Aktuell_Roll analog.o
Aktuell_ax analog.o
Aktuell_ay analog.o
Aktuell_az fc.o
analog.o
AnalogOffsetGier analog.o
twimaster.o
menu.o
AnalogOffsetNick analog.o
twimaster.o
menu.o
AnalogOffsetRoll analog.o
twimaster.o
menu.o
AnzahlEmpfangsBytes uart.o
BLConfig twimaster.o
uart.o
BLConfig_ReadMask twimaster.o
BLConfig_WriteMask twimaster.o
BLFlags twimaster.o
fc.o
analog.o
main.o
BaroExpandActive fc.o
BattLowVoltageWarning main.o
spi.o
fc.o
BearbeiteRxDaten uart.o
main.o
BeepMuster timer0.o
fc.o
main.o
CalMk3Mag main.o
CalculateServo timer0.o
main.o
CalculateServoSignals timer0.o
main.o
CalibrierMittelwert fc.o
Capacity capacity.o
jetimenu.o
spi.o
fc.o
menu.o
Capacity_Init capacity.o
main.o
Capacity_Update capacity.o
main.o
CareFree fc.o
Channels libfc644.a(libfc.o)
rc.o
menu.o
CheckDelay timer0.o
capacity.o
twimaster.o
analog.o
uart.o
main.o
CntCrcError uart.o
CommonDefaults eeprom.o
ConfirmFrame uart.o
ControlHeading fc.o
spi.o
CopyDebugValues fc.o
uart.o
CountMilliseconds timer0.o
DFGeefWEF43tgt5uGreg5 libfc644.a(libfc.o)
DJFIORJHcvjr894hjhffj libfc644.a(libfc.o)
Data3D uart.o
DatenUebertragung uart.o
main.o
DebugDataAnforderung uart.o
DebugDataIntervall uart.o
DebugDisplayAnforderung uart.o
DebugDisplayAnforderung1 uart.o
DebugOut spi.o
fc.o
uart.o
main.o
DebugTextAnforderung uart.o
Debug_Timer uart.o
Decode64 uart.o
Delay_ms timer0.o
fc.o
Delay_ms_Mess timer0.o
fc.o
analog.o
DiffNick fc.o
DiffRoll fc.o
DispPtr menu.o
uart.o
DisplayBuff menu.o
uart.o
DisplayLine uart.o
Display_Interval uart.o
Display_Timer uart.o
DruckOffsetSetting fc.o
analog.o
EEProm_Checksum eeprom.o
EE_Parameter libfc644.a(libfc.o)
jetimenu.o
Spektrum.o
led.o
spi.o
fc.o
rc.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
ErsatzKompass jetimenu.o
spi.o
fc.o
uart.o
ErsatzKompassInGrad fc.o
ExpandBaro analog.o
fc.o
ExternControl fc.o
menu.o
uart.o
main.o
ExternHoehenValue fc.o
ExternStickGier fc.o
main.o
ExternStickNick fc.o
main.o
ExternStickRoll fc.o
main.o
FC_StatusFlags fc.o
libfc644.a(libfc.o)
led.o
spi.o
twimaster.o
main.o
FGRT0589rge90gj459gg4 libfc644.a(libfc.o)
FGtj76uzh56z3grEg5t45 libfc644.a(libfc.o)
FlugMinuten main.o
menu.o
FlugMinutenGesamt main.o
menu.o
FlugSekunden main.o
jetimenu.o
FoundMotors main.o
FromNC_Rotate_C spi.o
fc.o
FromNC_Rotate_S spi.o
fc.o
FromNaviCtrl spi.o
fc.o
main.o
FromNaviCtrl_Value spi.o
fc.o
GIER_GRAD_FAKTOR fc.o
jetimenu.o
spi.o
uart.o
main.o
GPSInfo jetimenu.o
spi.o
GPS_BerechneZielrichtung GPS.o
GPS_Neutral GPS.o
fc.o
GPS_Nick GPS.o
spi.o
fc.o
main.o
GPS_Nick2 GPS.o
fc.o
GPS_Roll GPS.o
spi.o
fc.o
main.o
GPS_Roll2 GPS.o
fc.o
GetActiveParamSet eeprom.o
spi.o
fc.o
menu.o
uart.o
GetExternalControl uart.o
GetPPMChannelAnforderung uart.o
GetParamByte eeprom.o
analog.o
main.o
GetParamWord eeprom.o
fc.o
GetVersionAnforderung uart.o
GierGyroFehler fc.o
GpsAktuell_X GPS.o
GpsAktuell_Y GPS.o
GpsZiel_X GPS.o
GpsZiel_Y GPS.o
GyroFaktor fc.o
GyroFaktorGier fc.o
HiResNick analog.o
fc.o
HiResRoll analog.o
fc.o
HoehenReglerAktiv fc.o
HoehenWert fc.o
jetimenu.o
spi.o
menu.o
analog.o
HoverGas fc.o
I2CTimeout twimaster.o
menu.o
main.o
I2C_Init twimaster.o
main.o
I2C_ReadBLConfig twimaster.o
uart.o
I2C_Reset twimaster.o
main.o
I2C_TransferActive twimaster.o
fc.o
I2C_WriteBLConfig twimaster.o
uart.o
IIIIIlIllllllIIllIIll libfc644.a(libfc.o)
IIllllIllIlllIIlllII libfc644.a(libfc.o)
INiuzBtergGIBuB76T0G5 libfc644.a(libfc.o)
IlIlIlIIIIIIIlIllllll libfc644.a(libfc.o)
IllIIllIlIlIlIllllII libfc644.a(libfc.o)
IntegralAccNick fc.o
IntegralAccRoll fc.o
IntegralAccZ fc.o
IntegralFaktor fc.o
IntegralFaktorGier fc.o
IntegralNick fc.o
spi.o
menu.o
timer0.o
uart.o
IntegralNick2 fc.o
IntegralRoll fc.o
spi.o
menu.o
timer0.o
uart.o
IntegralRoll2 fc.o
Integral_Gier fc.o
Intervall3D uart.o
J16Blinkcount led.o
J16Mask led.o
J17Blinkcount led.o
J17Mask led.o
JetiBox_Menu jetimenu.o
JetiBox_Update jetimenu.o
libfc644.a(libfc.o)
JetiUpdateModeActive uart.o
libfc644.a(libfc.o)
main.o
KLNMIOHMUHG76GFGr43r3 libfc644.a(libfc.o)
Ki fc.o
KompassRichtung fc.o
spi.o
menu.o
timer0.o
uart.o
KompassSignalSchlecht fc.o
KompassStartwert fc.o
spi.o
menu.o
timer0.o
uart.o
KompassValue fc.o
spi.o
menu.o
timer0.o
uart.o
Kompass_Timer uart.o
KopplungsteilNickRoll fc.o
KopplungsteilRollNick fc.o
LED1_Timing led.o
LED2_Timing led.o
LED_Init led.o
fc.o
eeprom.o
LED_Update led.o
main.o
LIBFC_GetCPUType libfc644.a(libfc.o)
uart.o
LIBFC_Init libfc644.a(libfc.o)
main.o
LIBFC_JetiBox_Clear libfc644.a(libfc.o)
jetimenu.o
LIBFC_JetiBox_Putchar libfc644.a(libfc.o)
jetimenu.o
LIBFC_JetiBox_SetPos libfc644.a(libfc.o)
jetimenu.o
LIBFC_Polling libfc644.a(libfc.o)
main.o
LIBFC_ReceiverInit libfc644.a(libfc.o)
fc.o
uart.o
main.o
LageKorrekturNick fc.o
LageKorrekturRoll fc.o
LcdClear menu.o
uart.o
main.o
LipoDetection main.o
fc.o
uart.o
Looping_Links fc.o
Looping_Nick fc.o
Looping_Oben fc.o
Looping_Rechts fc.o
Looping_Roll fc.o
Looping_Unten fc.o
Luftdruck analog.o
fc.o
MAX_GAS fc.o
MIN_GAS fc.o
MaxMenue menu.o
uart.o
MaxStickNick fc.o
MaxStickRoll fc.o
MeineSlaveAdresse uart.o
Menu menu.o
uart.o
Menu_Battery jetimenu.o
Menu_PosInfo jetimenu.o
Menu_Putchar menu.o
uart.o
Menu_Status jetimenu.o
Menu_Temperature jetimenu.o
MenuePunkt menu.o
uart.o
MessLuftdruck analog.o
fc.o
menu.o
Mess_IntegralNick fc.o
Mess_IntegralNick2 fc.o
Mess_IntegralRoll fc.o
Mess_IntegralRoll2 fc.o
Mess_Integral_Gier fc.o
uart.o
Mess_Integral_Gier2 fc.o
Mess_Integral_Hoch fc.o
analog.o
MesswertGier fc.o
MesswertGierBias fc.o
MesswertNick fc.o
MesswertRoll fc.o
MissingMotor twimaster.o
fc.o
menu.o
main.o
MittelIntegralNick fc.o
MittelIntegralNick2 fc.o
MittelIntegralRoll fc.o
MittelIntegralRoll2 fc.o
Mittelwert fc.o
Mittelwert_AccNick fc.o
Mittelwert_AccRoll fc.o
Mixer fc.o
twimaster.o
eeprom.o
menu.o
uart.o
main.o
MixerTable_Default eeprom.o
MixerTable_ReadFromEEProm eeprom.o
MixerTable_WriteToEEProm eeprom.o
uart.o
Motor capacity.o
jetimenu.o
fc.o
twimaster.o
menu.o
main.o
MotorRegler fc.o
main.o
MotorTest fc.o
uart.o
MotorenEin fc.o
led.o
rc.o
twimaster.o
uart.o
main.o
Msg1 libfc644.a(libfc.o)
Msg2 libfc644.a(libfc.o)
NC_ErrorCode spi.o
jetimenu.o
NC_Version spi.o
main.o
NaviAccNick spi.o
fc.o
NaviAccRoll spi.o
fc.o
NaviCntAcc fc.o
spi.o
NaviDataOkay spi.o
jetimenu.o
timer0.o
main.o
NeueKoordinateEmpfangen uart.o
NeuerDatensatzEmpfangen uart.o
NeutralAccX fc.o
menu.o
analog.o
NeutralAccY fc.o
menu.o
analog.o
NeutralAccZ fc.o
menu.o
analog.o
NeutralAccZ_float analog.o
NewPpmData rc.o
libfc644.a(libfc.o)
Spektrum.o
fc.o
PC_DebugTimeout uart.o
PC_MotortestActive uart.o
fc.o
twimaster.o
PPM_diff libfc644.a(libfc.o)
Spektrum.o
fc.o
rc.o
PPM_in libfc644.a(libfc.o)
Spektrum.o
spi.o
fc.o
rc.o
menu.o
timer0.o
uart.o
main.o
ParamSet_DefaultSet1 eeprom.o
ParamSet_DefaultSet2 eeprom.o
ParamSet_DefaultSet3 eeprom.o
ParamSet_DefaultStickMapping eeprom.o
ParamSet_Init eeprom.o
main.o
ParamSet_ReadFromEEProm eeprom.o
fc.o
uart.o
ParamSet_WriteToEEProm eeprom.o
uart.o
ParameterZuordnung fc.o
Parameter_AchsKopplung1 fc.o
Parameter_AchsKopplung2 fc.o
Parameter_CouplingYawCorrection fc.o
Parameter_DynamicStability fc.o
Parameter_ExternalControl fc.o
Parameter_Gier_P fc.o
Parameter_Gyro_D fc.o
Parameter_Gyro_Gier_I fc.o
Parameter_Gyro_Gier_P fc.o
Parameter_Gyro_I fc.o
Parameter_Gyro_P fc.o
Parameter_Hoehe_ACC_Wirkung fc.o
Parameter_Hoehe_GPS_Z fc.o
Parameter_Hoehe_P fc.o
Parameter_I_Faktor fc.o
Parameter_J16Bitmask fc.o
Parameter_J16Timing led.o
fc.o
Parameter_J17Bitmask fc.o
Parameter_J17Timing led.o
fc.o
Parameter_KompassWirkung fc.o
Parameter_LoopGasLimit fc.o
Parameter_Luftdruck_D fc.o
Parameter_MaxHoehe fc.o
Parameter_NaviGpsACC fc.o
Parameter_NaviGpsD fc.o
Parameter_NaviGpsGain fc.o
Parameter_NaviGpsI fc.o
Parameter_NaviGpsModeControl fc.o
Parameter_NaviGpsP fc.o
Parameter_NaviOperatingRadius fc.o
Parameter_NaviSpeedCompensation fc.o
Parameter_NaviWindCorrection fc.o
Parameter_Servo3 fc.o
timer0.o
Parameter_Servo4 fc.o
timer0.o
Parameter_Servo5 fc.o
timer0.o
Parameter_ServoNickControl fc.o
spi.o
menu.o
timer0.o
Parameter_ServoRollControl fc.o
spi.o
timer0.o
Parameter_UserParam1 fc.o
spi.o
uart.o
Parameter_UserParam2 fc.o
spi.o
uart.o
Parameter_UserParam3 fc.o
spi.o
Parameter_UserParam4 fc.o
spi.o
Parameter_UserParam5 fc.o
spi.o
Parameter_UserParam6 fc.o
spi.o
Parameter_UserParam7 fc.o
spi.o
Parameter_UserParam8 fc.o
spi.o
PcZugriff uart.o
main.o
Piep fc.o
uart.o
main.o
PlatinenVersion main.o
libfc644.a(libfc.o)
spi.o
fc.o
rc.o
eeprom.o
menu.o
analog.o
timer0.o
Poti fc.o
spi.o
menu.o
RAM_Checksum eeprom.o
twimaster.o
Rec_ACT_DSL libfc644.a(libfc.o)
Rec_Jeti libfc644.a(libfc.o)
Rec_PPM libfc644.a(libfc.o)
Rec_Spektrum libfc644.a(libfc.o)
Rec_Spektrum_HI_RES libfc644.a(libfc.o)
Rec_Spektrum_LOW_RES libfc644.a(libfc.o)
RemainingPulse timer0.o
RemoteKeys menu.o
uart.o
RequiredMotors jetimenu.o
twimaster.o
eeprom.o
main.o
RohMesswertNick fc.o
RohMesswertRoll fc.o
RxDataLen uart.o
RxdBuffer libfc644.a(libfc.o)
uart.o
SPITransferCompleted spi.o
SPI_Buffer spi.o
SPI_BufferIndex spi.o
SPI_ChkSum spi.o
SPI_CommandCounter spi.o
SPI_CommandSequence spi.o
SPI_MasterInit spi.o
main.o
SPI_RxBufferIndex spi.o
SPI_RxDataValid spi.o
SPI_StartTransmitPacket spi.o
main.o
SPI_TX_Buffer spi.o
SPI_TransmitByte spi.o
main.o
SendMotorData fc.o
main.o
SendOutData uart.o
SendSPI timer0.o
spi.o
main.o
SendVersionToNavi main.o
fc.o
SenderOkay fc.o
libfc644.a(libfc.o)
Spektrum.o
spi.o
rc.o
menu.o
timer0.o
main.o
ServoActive timer0.o
fc.o
uart.o
main.o
ServoNickOffset timer0.o
ServoNickValue timer0.o
fc.o
menu.o
ServoRollOffset timer0.o
ServoRollValue timer0.o
SetActiveParamSet eeprom.o
fc.o
SetDefaultParameter eeprom.o
uart.o
SetDelay timer0.o
capacity.o
twimaster.o
analog.o
uart.o
main.o
SetNeutral fc.o
main.o
SetParamByte eeprom.o
analog.o
main.o
SetParamWord eeprom.o
fc.o
menu.o
SioTmp uart.o
SollHoehe fc.o
spi.o
menu.o
SpektrumParser Spektrum.o
libfc644.a(libfc.o)
SpektrumTimer Spektrum.o
timer0.o
SpektrumUartInit Spektrum.o
libfc644.a(libfc.o)
StartLuftdruck fc.o
analog.o
StartNeutralNick fc.o
StartNeutralRoll fc.o
StartTrigger fc.o
StickGas fc.o
StickGier fc.o
main.o
StickNick fc.o
main.o
StickRoll fc.o
main.o
SucheGyroOffset analog.o
fc.o
SucheLuftruckOffset analog.o
fc.o
SummeNick fc.o
uart.o
SummeRoll fc.o
uart.o
SummenHoehe analog.o
fc.o
TIMER2_Init timer0.o
main.o
Timer3D uart.o
Timer_Init timer0.o
main.o
ToNaviCtrl spi.o
TrichterFlug fc.o
TrimNick fc.o
TrimRoll fc.o
TxdBuffer uart.o
UART_Init uart.o
main.o
UBat analog.o
capacity.o
jetimenu.o
spi.o
fc.o
menu.o
main.o
UebertragungAbgeschlossen uart.o
Umschlag180Nick fc.o
uart.o
Umschlag180Roll fc.o
uart.o
UpdateMotor timer0.o
main.o
UpdateSPI_Buffer spi.o
VarioCharacter fc.o
jetimenu.o
VarioMeter analog.o
fc.o
VersionInfo led.o
spi.o
fc.o
menu.o
analog.o
uart.o
main.o
WinkelOut spi.o
fc.o
uart.o
main.o
XSasC2389ufwejiCjuz32 libfc644.a(libfc.o)
ZaehlMessungen analog.o
fc.o
__addsf3 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
fc.o
__addsf3x c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__bad_interrupt c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__bss_end c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
__bss_start c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
__data_end c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
__data_load_start c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
__data_start c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
__divmodhi4 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
libfc644.a(libfc.o)
jetimenu.o
mymath.o
Spektrum.o
spi.o
fc.o
rc.o
menu.o
analog.o
timer0.o
uart.o
__divmodsi4 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
jetimenu.o
spi.o
fc.o
menu.o
analog.o
timer0.o
uart.o
__do_clear_bss c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_clear_bss.o)
libfc644.a(libfc.o)
debug.o
capacity.o
jetimenu.o
mymath.o
Spektrum.o
led.o
spi.o
GPS.o
fc.o
rc.o
twimaster.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
__do_copy_data c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_copy_data.o)
libfc644.a(libfc.o)
debug.o
capacity.o
jetimenu.o
mymath.o
Spektrum.o
led.o
spi.o
GPS.o
fc.o
rc.o
twimaster.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
__eeprom_read_block_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o
__eeprom_read_byte_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o
__eeprom_read_word_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
eeprom.o
__eeprom_write_block_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
eeprom.o
__eeprom_write_byte_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o
__eeprom_write_word_1F2021 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o
__epilogue_restores__ c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_epilogue.o)
libfc644.a(libfc.o)
jetimenu.o
fc.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
__fixunssfsi c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
fc.o
__floatsisf c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
fc.o
__floatunssisf c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(floatsisf.o)
__fp_inf c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_inf.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__fp_nan c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_nan.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__fp_pscA c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscA.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__fp_pscB c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_pscB.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__fp_round c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_round.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__fp_split3 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__fp_splitA c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_split3.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
__fp_szero c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
__fp_zero c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fp_zero.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(fixunssfsi.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__heap_end c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__init c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__mulsi3 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_mulsi3.o)
spi.o
fc.o
analog.o
timer0.o
uart.o
__prologue_saves__ c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_prologue.o)
libfc644.a(libfc.o)
fc.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
__stack c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__subsf3 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libm.a(addsf3.o)
__tablejump2__ c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
twimaster.o
menu.o
analog.o
__tablejump__ c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_tablejump.o)
__udivmodhi4 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodhi4.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
libfc644.a(libfc.o)
capacity.o
jetimenu.o
fc.o
menu.o
analog.o
timer0.o
__udivmodqi4 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodqi4.o)
libfc644.a(libfc.o)
menu.o
main.o
__udivmodsi4 c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_udivmodsi4.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodsi4.o)
libfc644.a(libfc.o)
__vector_1 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_10 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_11 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_12 rc.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_13 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_14 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_15 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_16 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_17 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_18 timer0.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_19 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_2 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_20 uart.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_21 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_22 uart.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_23 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_24 analog.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_25 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_26 twimaster.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_27 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_28 libfc644.a(libfc.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_29 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_3 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_30 libfc644.a(libfc.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_4 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_5 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_6 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_7 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_8 c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_9 timer0.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vector_default c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
__vectors c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
_div c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_divmodhi4.o)
_exit c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
_printf_P libfc644.a(libfc.o)
jetimenu.o
fc.o
eeprom.o
menu.o
analog.o
uart.o
main.o
a48784362857632195659 libfc644.a(libfc.o)
awokdjwqdjcjuhcuweih libfc644.a(libfc.o)
beeptime timer0.o
spi.o
fc.o
main.o
c_cos_8192 mymath.o
fc.o
c_sin_8192 mymath.o
cntKompass timer0.o
dac_channel twimaster.o
exit c:/winavr/bin/../lib/gcc/avr/4.2.2/avr5\libgcc.a(_exit.o)
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
f8jhreghreGerg45gE542 libfc644.a(libfc.o)
fdknerTjg5i83th589v44 libfc644.a(libfc.o)
fgfdogjWEti45e9tjh394 libfc644.a(libfc.o)
fgmjgnrtuth587th9rTrw libfc644.a(libfc.o)
fij48zrhoih3498fhfo90 libfc644.a(libfc.o)
fojk48fj478fhw7fhw39 libfc644.a(libfc.o)
fomklkdtn89SFGrsgt9rf libfc644.a(libfc.o)
h fc.o
ihypot isqrt.o
fc.o
isqrt16 isqrt.o
isqrt32 isqrt.o
kf089uwjef89234hffhh libfc644.a(libfc.o)
lkvgnfdgun57th38rgh84 libfc644.a(libfc.o)
m fc.o
main main.o
c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5/crtm644p.o
md5 libfc644.a(libfc.o)
memchr c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memchr.o)
libfc644.a(libfc.o)
memcpy_P c:/winavr/bin/../lib/gcc/avr/4.2.2/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
uart.o
messanzahl_AccHoch analog.o
modell_fliegt fc.o
analog.o
motor_read twimaster.o
main.o
motor_write twimaster.o
fc.o
ndfcvbghs libfc644.a(libfc.o)
njkvnfuhgbuzrgezgf483 libfc644.a(libfc.o)
pRxData uart.o
pgm_sinlookup mymath.o
rc_sum_init rc.o
main.o
s fc.o
sintab fc.o
timer0.o
tmpChannels rc.o
tmp_motorwert fc.o
twi_state twimaster.o
fc.o
analog.o
uart_putchar uart.o
libfc644.a(libfc.o)
fc.o
eeprom.o
analog.o
main.o
update_timer capacity.o
weiuncefcnsavsgvghjc libfc644.a(libfc.o)
wqqeRT45jth8g758735h4 libfc644.a(libfc.o)
/Spektrum-Diversity/V0.82a/FlightCtrl.aps
0,0 → 1,0
<AVRStudio><MANAGEMENT><ProjectName>FlightCtrl</ProjectName><Created>15-May-2007 11:20:41</Created><LastEdit>11-Oct-2007 22:58:54</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>15-May-2007 11:20:41</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\Flight-Ctrl.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\SVN\MikroKopter\FlightCtrl\branches\V0.64_ZeroWarnings\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega644.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>uart.c</SOURCEFILE><SOURCEFILE>analog.c</SOURCEFILE><SOURCEFILE>eeprom.c</SOURCEFILE><SOURCEFILE>fc.c</SOURCEFILE><SOURCEFILE>GPS.c</SOURCEFILE><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>menu.c</SOURCEFILE><SOURCEFILE>printf_P.c</SOURCEFILE><SOURCEFILE>rc.c</SOURCEFILE><SOURCEFILE>timer0.c</SOURCEFILE><SOURCEFILE>twimaster.c</SOURCEFILE><HEADERFILE>uart.h</HEADERFILE><HEADERFILE>_Settings.h</HEADERFILE><HEADERFILE>analog.h</HEADERFILE><HEADERFILE>fc.h</HEADERFILE><HEADERFILE>gps.h</HEADERFILE><HEADERFILE>main.h</HEADERFILE><HEADERFILE>menu.h</HEADERFILE><HEADERFILE>old_macros.h</HEADERFILE><HEADERFILE>printf_P.h</HEADERFILE><HEADERFILE>rc.h</HEADERFILE><HEADERFILE>Settings.h</HEADERFILE><HEADERFILE>timer0.h</HEADERFILE><HEADERFILE>twimaster.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega644</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>Flight-Ctrl.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>GPS.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>analog.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>eeprom.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>fc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>menu.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>printf_P.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>rc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>timer0.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>twimaster.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>uart.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS><LIB>libc.a</LIB><LIB>libm.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Wstrict-prototypes -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -DVERSION_HAUPTVERSION=0 -DVERSION_NEBENVERSION=64 -DVERSION_KOMPATIBEL=5</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>uart.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>menu.c</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>timer0.c</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>fc.c</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>fc.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>menu.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>TWIMASTER.C</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>twimaster.h</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>uart.h</FileName><Status>1</Status></File00009><File00010><FileId>00010</FileId><FileName>_Settings.h</FileName><Status>1</Status></File00010><File00011><FileId>00011</FileId><FileName>analog.h</FileName><Status>1</Status></File00011><File00012><FileId>00012</FileId><FileName>gps.h</FileName><Status>1</Status></File00012><File00013><FileId>00013</FileId><FileName>main.h</FileName><Status>1</Status></File00013><File00014><FileId>00014</FileId><FileName>old_macros.h</FileName><Status>1</Status></File00014><File00015><FileId>00015</FileId><FileName>printf_P.h</FileName><Status>1</Status></File00015><File00016><FileId>00016</FileId><FileName>rc.h</FileName><Status>1</Status></File00016><File00017><FileId>00017</FileId><FileName>Settings.h</FileName><Status>1</Status></File00017><File00018><FileId>00018</FileId><FileName>timer0.h</FileName><Status>1</Status></File00018></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
/Spektrum-Diversity/V0.82a/GPS.c
0,0 → 1,32
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
signed int GPS_Nick = 0;
signed int GPS_Roll = 0;
signed int GPS_Nick2 = 0;
signed int GPS_Roll2 = 0;
long GpsAktuell_X = 0;
long GpsAktuell_Y = 0;
long GpsZiel_X = 0;
long GpsZiel_Y = 0;
void GPS_Neutral(void)
{
GpsZiel_X = GpsAktuell_X;
GpsZiel_Y = GpsAktuell_Y;
}
 
void GPS_BerechneZielrichtung(void)
{
GPS_Nick = 0;
GPS_Roll = 0;
}
 
 
 
 
/Spektrum-Diversity/V0.82a/GPS.d
0,0 → 1,3
GPS.o GPS.d : GPS.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/GPS.lst
0,0 → 1,100
1 .file "GPS.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global GPS_Neutral
12 GPS_Neutral:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 8091 0000 lds r24,GpsAktuell_X
16 0004 9091 0000 lds r25,(GpsAktuell_X)+1
17 0008 A091 0000 lds r26,(GpsAktuell_X)+2
18 000c B091 0000 lds r27,(GpsAktuell_X)+3
19 0010 8093 0000 sts GpsZiel_X,r24
20 0014 9093 0000 sts (GpsZiel_X)+1,r25
21 0018 A093 0000 sts (GpsZiel_X)+2,r26
22 001c B093 0000 sts (GpsZiel_X)+3,r27
23 0020 8091 0000 lds r24,GpsAktuell_Y
24 0024 9091 0000 lds r25,(GpsAktuell_Y)+1
25 0028 A091 0000 lds r26,(GpsAktuell_Y)+2
26 002c B091 0000 lds r27,(GpsAktuell_Y)+3
27 0030 8093 0000 sts GpsZiel_Y,r24
28 0034 9093 0000 sts (GpsZiel_Y)+1,r25
29 0038 A093 0000 sts (GpsZiel_Y)+2,r26
30 003c B093 0000 sts (GpsZiel_Y)+3,r27
31 /* epilogue: frame size=0 */
32 0040 0895 ret
33 /* epilogue end (size=1) */
34 /* function GPS_Neutral size 33 (32) */
36 .global GPS_BerechneZielrichtung
38 GPS_BerechneZielrichtung:
39 /* prologue: frame size=0 */
40 /* prologue end (size=0) */
41 0042 1092 0000 sts (GPS_Nick)+1,__zero_reg__
42 0046 1092 0000 sts GPS_Nick,__zero_reg__
43 004a 1092 0000 sts (GPS_Roll)+1,__zero_reg__
44 004e 1092 0000 sts GPS_Roll,__zero_reg__
45 /* epilogue: frame size=0 */
46 0052 0895 ret
47 /* epilogue end (size=1) */
48 /* function GPS_BerechneZielrichtung size 9 (8) */
50 .global GPS_Nick
51 .global GPS_Nick
52 .section .bss
55 GPS_Nick:
56 0000 0000 .skip 2,0
57 .global GPS_Roll
58 .global GPS_Roll
61 GPS_Roll:
62 0002 0000 .skip 2,0
63 .global GPS_Nick2
64 .global GPS_Nick2
67 GPS_Nick2:
68 0004 0000 .skip 2,0
69 .global GPS_Roll2
70 .global GPS_Roll2
73 GPS_Roll2:
74 0006 0000 .skip 2,0
75 .global GpsAktuell_X
76 .global GpsAktuell_X
79 GpsAktuell_X:
80 0008 0000 0000 .skip 4,0
81 .global GpsAktuell_Y
82 .global GpsAktuell_Y
85 GpsAktuell_Y:
86 000c 0000 0000 .skip 4,0
87 .global GpsZiel_X
88 .global GpsZiel_X
91 GpsZiel_X:
92 0010 0000 0000 .skip 4,0
93 .global GpsZiel_Y
94 .global GpsZiel_Y
97 GpsZiel_Y:
98 0014 0000 0000 .skip 4,0
99 /* File "GPS.c": code 42 = 0x002a ( 40), prologues 0, epilogues 2 */
DEFINED SYMBOLS
*ABS*:00000000 GPS.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:12 .text:00000000 GPS_Neutral
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:79 .bss:00000008 GpsAktuell_X
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:91 .bss:00000010 GpsZiel_X
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:85 .bss:0000000c GpsAktuell_Y
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:97 .bss:00000014 GpsZiel_Y
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:38 .text:00000042 GPS_BerechneZielrichtung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:55 .bss:00000000 GPS_Nick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:61 .bss:00000002 GPS_Roll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:67 .bss:00000004 GPS_Nick2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccmgQhu9.s:73 .bss:00000006 GPS_Roll2
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
/Spektrum-Diversity/V0.82a/Hex-Files/BootLoader_MEGA644P_20MHZ_V0_1.hex
0,0 → 1,64
:10F8000011241FBECFEFD0E1DEBFCDBF11E0A0E0DD
:10F81000B1E0E0EEFBEF02C005900D92A030B10721
:10F82000D9F712E0A0E0B1E001C01D92A230B1070B
:10F83000E1F70C943B7C0C941D7C0895982F8091EB
:10F84000C00085FFFCCF9093C60008958091C00052
:10F850008823E4F78091C600992708958DE40E94DB
:10F860001E7C8BE40E941E7C82E40E941E7C8CE441
:10F870000E941E7C0895CFEFD0E1DEBFCDBFE0E057
:10F88000F0E014915F01772474BE98E10FB6F8940C
:10F8900090936000109260000FBE7092C5008AE2E3
:10F8A0008093C4008091C00082608093C0009093D8
:10F8B000C10086E08093C200EF01072D8091C00057
:10F8C00087FF0DC0013031F48091C6008A3AB1F152
:10F8D00000E005C08091C6008B3109F401E0CE0143
:10F8E00021968436910528F11F3F41F0112331F014
:10F8F000E0910001F091010109951BC01092C50033
:10F900008AE28093C4008AE00E941E7C8DE00E94FF
:10F910001E7C86E50E941E7C80E30E941E7C8EE297
:10F920000E941E7C81E30E941E7C8AE30E941E7C52
:10F9300005C080E593EC0197F1F7C0CF0E942E7CC3
:10F940000E94267C813611F489E547C1813471F427
:10F950000E94267CA82EBB24BA2CAA240E94267CB6
:10F960009927A82AB92AB694A79406C1823629F401
:10F9700089E50E941E7C81E00BC1823409F083C0BE
:10F980000E94267C9927D82FCC270E94267C992775
:10F99000C82BD92B0E94267C082F12E0812E11E063
:10F9A000912EEE24FF2464010894811C911CEC1616
:10F9B000FD0618F40E94267C01C08FEFD6018C93BF
:10F9C0000894E11CF11CBFEFEB16F10461F358F34E
:10F9D000E4E77E1609F0DEC0063409F03DC0FFEF13
:10F9E000AF16F7EFBF0608F033C0DE01A5016627AA
:10F9F0007727440F551F661F771F6A017B01C2E0FE
:10FA0000D1E001E08991992729913327322F2227CC
:10FA1000822B932B0C01FA0100935700E8951124D7
:10FA20004E5F5F4F6F4F7F4F129761F785E0F60192
:10FA300080935700E89507B600FCFDCF81E18093E5
:10FA40005700E89576956795579547955A0194C064
:10FA500080E00E941E7C90C0053409F08DC0F50145
:10FA60009E01A2E0B1E0E1BD8F2F992782BD8D916B
:10FA700080BD3196FA9AF99AF999FECF215030401B
:10FA800091F75F0179C0873609F047C00E94267C54
:10FA90009927D82ECC240E94267C9927C82AD92AB7
:10FAA0000E94267C863411F5E6016501EE24FF24D0
:10FAB000CC0CDD1CEE1CFF1CF60105911491802F6F
:10FAC0000E941E7C812F99270E941E7C82E090E07C
:10FAD000A0E0B0E0C80ED91EEA1EFB1E229761F717
:10FAE000F694E794D794C79456012ACF853409F049
:10FAF00027CF7501E1BC8F2D992782BDF89A089414
:10FB0000E11CF11C80B50E941E7C0894C108D1083C
:10FB1000C114D10479F7570113CF853601F594E765
:10FB2000791651F580E090E0A0E0B0E023E0FC0120
:10FB300020935700E89507B600FCFDCF80509F4FFB
:10FB4000AF4FBF4F8F3FE7EF9E07E0E0AE07E0E02B
:10FB5000BE0768F381E180935700E8950DC08534B6
:10FB600069F488E190E02CE00FB6F894A8958093B2
:10FB700060000FBE209360008DE02FC08035E1F360
:10FB80008C34D1F3803711F483E527C0843721F416
:10FB90000E941E7C80E021C0843521F40E94267CD6
:10FBA000782EEACF8B3109F4C9CE8A3A09F4C6CE51
:10FBB000863529F480E30E941E7C81E30EC08337E2
:10FBC00041F489E00E941E7C86E90E941E7C8EE141
:10FBD00004C08B3109F4B4CE8FE30E941E7CB0CEFA
:040000030000F80001
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/BootLoader_MEGA644_20MHZ_V0_1.hex
0,0 → 1,64
:10F8000011241FBECFEFD0E1DEBFCDBF11E0A0E0DD
:10F81000B1E0E0EEFBEF02C005900D92A030B10721
:10F82000D9F712E0A0E0B1E001C01D92A230B1070B
:10F83000E1F70C943B7C0C941D7C0895982F8091EB
:10F84000C00085FFFCCF9093C60008958091C00052
:10F850008823E4F78091C600992708958DE40E94DB
:10F860001E7C8BE40E941E7C82E40E941E7C8CE441
:10F870000E941E7C0895CFEFD0E1DEBFCDBFE0E057
:10F88000F0E014915F01772474BE98E10FB6F8940C
:10F8900090936000109260000FBE7092C5008AE2E3
:10F8A0008093C4008091C00082608093C0009093D8
:10F8B000C10086E08093C200EF01072D8091C00057
:10F8C00087FF0DC0013031F48091C6008A3AB1F152
:10F8D00000E005C08091C6008B3109F401E0CE0143
:10F8E00021968436910528F11F3F41F0112331F014
:10F8F000E0910001F091010109951BC01092C50033
:10F900008AE28093C4008AE00E941E7C8DE00E94FF
:10F910001E7C86E50E941E7C80E30E941E7C8EE297
:10F920000E941E7C81E30E941E7C8AE30E941E7C52
:10F9300005C080E593EC0197F1F7C0CF0E942E7CC3
:10F940000E94267C813611F489E547C1813471F427
:10F950000E94267CA82EBB24BA2CAA240E94267CB6
:10F960009927A82AB92AB694A79406C1823629F401
:10F9700089E50E941E7C81E00BC1823409F083C0BE
:10F980000E94267C9927D82FCC270E94267C992775
:10F99000C82BD92B0E94267C082F12E0812E11E063
:10F9A000912EEE24FF2464010894811C911CEC1616
:10F9B000FD0618F40E94267C01C08FEFD6018C93BF
:10F9C0000894E11CF11CBFEFEB16F10461F358F34E
:10F9D000E4E77E1609F0DEC0063409F03DC0FFEF13
:10F9E000AF16F7EFBF0608F033C0DE01A5016627AA
:10F9F0007727440F551F661F771F6A017B01C2E0FE
:10FA0000D1E001E08991992729913327322F2227CC
:10FA1000822B932B0C01FA0100935700E8951124D7
:10FA20004E5F5F4F6F4F7F4F129761F785E0F60192
:10FA300080935700E89507B600FCFDCF81E18093E5
:10FA40005700E89576956795579547955A0194C064
:10FA500080E00E941E7C90C0053409F08DC0F50145
:10FA60009E01A2E0B1E0E1BD8F2F992782BD8D916B
:10FA700080BD3196FA9AF99AF999FECF215030401B
:10FA800091F75F0179C0873609F047C00E94267C54
:10FA90009927D82ECC240E94267C9927C82AD92AB7
:10FAA0000E94267C863411F5E6016501EE24FF24D0
:10FAB000CC0CDD1CEE1CFF1CF60105911491802F6F
:10FAC0000E941E7C812F99270E941E7C82E090E07C
:10FAD000A0E0B0E0C80ED91EEA1EFB1E229761F717
:10FAE000F694E794D794C79456012ACF853409F049
:10FAF00027CF7501E1BC8F2D992782BDF89A089414
:10FB0000E11CF11C80B50E941E7C0894C108D1083C
:10FB1000C114D10479F7570113CF853601F594E765
:10FB2000791651F580E090E0A0E0B0E023E0FC0120
:10FB300020935700E89507B600FCFDCF80509F4FFB
:10FB4000AF4FBF4F8F3FE7EF9E07E0E0AE07E0E02B
:10FB5000BE0768F381E180935700E8950DC08534B6
:10FB600069F488E190E02CE00FB6F894A8958093B2
:10FB700060000FBE209360008DE02FC08035E1F360
:10FB80008C34D1F3803711F483E527C0843721F416
:10FB90000E941E7C80E021C0843521F40E94267CD6
:10FBA000782EEACF8B3109F4C9CE8A3A09F4C6CE51
:10FBB000863529F480E30E941E7C81E30EC08337E2
:10FBC00041F489E00E941E7C86E90E941E7C8EE141
:10FBD00004C08B3109F4B4CE8FE30E941E7CB0CEFA
:040000030000F80001
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/Flight-Ctrl_MEGA1284p_V0_82a.hex
0,0 → 1,3896
:100000000C94C4060C9413070C9413070C94130758
:100010000C9413070C9413070C9413070C941307F8
:100020000C9413070C943B190C9413070C941307AE
:100030000C9425340C9413070C9413070C94130799
:100040000C9413070C9413070C940B160C941307C1
:100050000C94260C0C9413070C94F00B0C941307BF
:100060000C941E1C0C9413070C94B82F0C941307BB
:100070000C94E5750C9413070C94E1700C94130721
:100080000C9413070C9413070C941307491C4E1C73
:10009000531C5C1C731C8A1C9A1CAA1CC71CB31E14
:1000A0008A1C751D861DB51DD31DF01D4A1EA51E7B
:1000B00083201521D2215222BB226B237225CF250A
:1000C0003C268626D1261E276F27D1273028CA280E
:1000D00065295F2AD72F0B304E30BE30D63017310E
:1000E000CE319532953295329532953295329532A0
:1000F00095329532953295324A324C3251326932CC
:100100006B320A0D426174743A0020256420436505
:100110006C6C732000204C6F77207761726E696E73
:1001200067206C6576656C3A2025642E2564000A8C
:100130000D466F756E6420424C2D4374726C3A20EC
:10014000002564000A0D0A0D2121204D4953534911
:100150004E4720424C2D4354524C3A2025642021D6
:1001600021000A0D3D3D3D3D3D3D3D3D3D3D3D3D7B
:100170003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DAF
:100180003D3D3D3D3D3D3D000A0D43616C69627260
:100190006174696E67207072657373757265207320
:1001A000656E736F722E2E004F4B0A0D000A0D46BE
:1001B0006C696768742D74696D65202575206D699B
:1001C0006E2020546F74616C3A2575206D696E0045
:1001D0000A0D436F6E74726F6C3A2000486561645B
:1001E000696E67486F6C64004E6F726D616C202899
:1001F0004143432D4D6F646529000A0D3D3D3D3D52
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D1E
:100210003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A41
:100220000D00416E676C654E69636B2020202020B5
:100230002020416E676C65526F6C6C20202020205E
:1002400020204163634E69636B2020202020202002
:100250002020416363526F6C6C20202020202020DE
:1002600020205961774779726F202020202020209C
:1002700020204865696768742056616C7565202088
:1002800020204163635A202020202020202020208D
:1002900020204761732020202020202020202020A3
:1002A0002020436F6D706173732056616C756520FB
:1002B0002020566F6C74616765205B302E31565D6F
:1002C00020205265636569766572204C6576656CA1
:1002D00020204779726F20436F6D70617373202007
:1002E00020204D6F746F722031202020202020208C
:1002F00020204D6F746F722032202020202020207B
:1003000020204D6F746F7220332020202020202069
:1003100020204D6F746F7220342020202020202058
:1003200020203136202020202020202020202020A6
:100330002020313720202020202020202020202095
:100340002020313820202020202020202020202084
:100350002020313920202020202020202020202073
:100360002020536572766F2020202020202020201E
:100370002020486F7665726761732020202020203E
:10038000202043757272656E74205B302E31415DA2
:1003900020204361706163697479205B6D41685D01
:1003A0002020323420202020202020202020202027
:1003B0002020323520202020202020202020202016
:1003C0002020323620202020202020202020202005
:1003D00020203237202020202020202020202020F4
:1003E00020204932432D4572726F72202020202038
:1003F0002020424C204C696D697420202020202050
:1004000020204750535F4E69636B2020202020201E
:1004100020204750535F526F6C6C202020202020FA
:10042000202021212120494E434F4D504154494223
:100430004C4520212121002A002E000A0D20444194
:1004400043206F7220493243204552524F5221209F
:10045000436865636B204932432C203356726566CE
:100460002C2044414320616E6420424C2D43747221
:100470006C005B25695D005B25695D002B204D6983
:100480006B726F4B6F70746572202B0048573A5631
:1004900025642E25642053573A25642E2564256350
:1004A0000053657474696E673A25642025730048AB
:1004B00061726477617265204572726F7220313AA1
:1004C0002564202121004D697373696E6720424CB9
:1004D0002D4374726C3A25642121004D6978657250
:1004E000204572726F722100493243204552524FAB
:1004F00052212121004865696768743A202025351A
:100500006900536574706F696E743A2535690050DF
:10051000726573737572653A253569004F66667347
:1005200065743A202025356900486569676874203C
:10053000636F6E74726F6C0044495341424C454482
:100540000048656967687420636F6E74726F6C0031
:1005500044495341424C4544006163742E20626516
:100560006172696E67004E69636B3A20202020201B
:100570002025356900526F6C6C3A20202020202005
:1005800025356900436F6D706173733A2020202513
:100590003569004B313A25346920204B323A2534F5
:1005A0006920004B333A25346920204B343A2534F6
:1005B0006920004B353A25346920204B363A2534E2
:1005C0006920004B373A25346920204B383A2534CE
:1005D0006920004E693A2534692020526F3A25344B
:1005E00069200047733A253469202047693A253449
:1005F00069200050313A253469202050323A2534A0
:1006000069200050333A253469202050343A25348B
:100610006920004779726F202D2053656E736F72C9
:10062000004E69636B25346920282533692E2569BE
:100630002900526F6C6C25346920282533692E25DA
:10064000692900476965722534692028253369299D
:10065000004E69636B2025346920282533692E25D7
:10066000782900526F6C6C20253469202825336965
:100670002E257829005961772020253469202825E6
:10068000336929004E69636B20253469202825339E
:100690006929282533692900526F6C6C202534693B
:1006A00020282533692928253369290059617720B5
:1006B0002025346920282533692928253369290014
:1006C000414343202D2053656E736F72004E696362
:1006D0006B2025346920282533692900526F6C6C02
:1006E00020253469202825336929005A202020201C
:1006F00025346920282533692900566F6C74616799
:10070000653A2020202533692E253169560043752E
:100710007272656E743A2020202533692E25316966
:100720004100506F7765723A2020202020253469DF
:1007300057004469736368617267653A20253569BB
:100740006D41680052656365697665720052432D9C
:10075000525353493A202020202534690052432D1A
:100760005175616C6974793A202534690052432DC2
:100770004368616E6E656C733A25346900436F6D32
:10078000706173730048656164696E673A20202563
:1007900035690056616C75653A2020202025356941
:1007A0000053746172743A2020202025356900506E
:1007B0006F7469313A202025336900506F746932B3
:1007C0003A202025336900506F7469333A20202580
:1007D000336900506F7469343A2020253369005022
:1007E0006F7469353A202025336900506F7469367B
:1007F0003A202025336900506F7469373A2020254C
:10080000336900506F7469383A20202533690053EA
:100810006572766F202000536574706F696E742066
:100820002025336900506F736974696F6E3A202513
:1008300033690052616E67653A2533692D25336946
:100840000045787465726E436F6E74726F6C202011
:10085000004E693A2534692020526F3A25346920C8
:100860000047733A253469202047693A25346920C6
:100870000048693A253469202043663A25346920C6
:1008800000424C2D4374726C204572726F7273205B
:100890000025336420253364202533642025336408
:1008A000200025336420253364202533642025333C
:1008B00064200025336420253364202533642025FB
:1008C00033642000424C2054656D7065726174750C
:1008D0007265002533692025336920253369202579
:1008E00033692000253369202533692025336920A9
:1008F0002533692000253369202533692025336994
:10090000202533692000424C2D4374726C20666FA1
:10091000756E642000202563202020256320202080
:10092000256320202025632000202563202020250A
:1009300063202020256320202025632000202563BC
:100940002020202D2020202D2020202D200031307F
:1009500000313100313200466C696768742D54698A
:100960006D65202000546F74616C3A2535756D6992
:100970006E004163743A20202535756D696E00283C
:10098000726573657429000A0D47656E657261743E
:10099000696E672064656661756C74205061726170
:1009A0006D6574657220536574202564000A0D55C9
:1009B00073696E6720506172616D65746572205352
:1009C0006574202564000A0D47656E65726174695F
:1009D0006E672064656661756C74204D6978657218
:1009E000205461626C65000A0D4D697865722D4373
:1009F0006F6E6669673A20272573272028257520A2
:100A00004D6F746F727329000A0D3D3D3D3D3D3DB4
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D06
:100A20003D3D3D3D3D3D3D3D000A0D414343206E72
:100A30006F742063616C69627261746564210D0A70
:100A40000000008F001E01AD013B02CA025803E600
:100A500003740402058F051B06A7063307BE07486B
:100A600008D2085B09E3096B0AF20A780BFD0B81D7
:100A70000C040D860D070E870E060F840F00107BE9
:100A800010F5106E11E5115B12CF124213B3132350
:100A9000149214FE146A15D3153B16A11605176798
:100AA00017C81727188318DE1837198E19E3193657
:100AB0001A871AD61A231B6E1BB61BFD1B411C83FB
:100AC0001CC31C001D3C1D751DAB1DE01D121E42EC
:100AD0001E6F1E9A1EC31EE91E0D1F2E1F4D1F697D
:100AE0001F841F9B1FB01FC31FD31FE11FEC1FF5E7
:100AF0001FFB1FFF1F002003010000B76A00020157
:100B000001AA6B010302023E6C020003039B6C25E9
:100B100032692E253169560025336425632025303E
:100B200033646D00537461747573004552524F52B3
:100B30003A2025326400253469202532693A25306F
:100B40003269002534696D2563002533692025331A
:100B50006920253369202533690025336920253331
:100B60006920253369202533690054656D706572ED
:100B70006174757265732020202000256343202056
:100B8000202020002532692E25316956202025336A
:100B9000692E253169410025346957202536696D54
:100BA0004168002532756D2F73205361743A2564B6
:100BB000200020203344004E6F46780044475053B5
:100BC00000486F6D653A2533646D202533642563D5
:100BD000004E6F204E6176694374726C21000A0DDD
:100BE0007777772E4D696B726F4B6F707465722ECD
:100BF00064652028632920486953797374656D738F
:100C000020476D6248000A0D746865207573652081
:100C10006F66207468697320736F6674776172659C
:100C2000206973206F6E6C79207065726D697474C1
:100C30006564200A0D6F6E206F726967696E616C62
:100C4000204D696B726F4B6F707465722D486172C5
:100C50006477617265004143542044534C004A65F7
:100C6000746920736174656C6C6974005370656B92
:100C70007472756D20736174656C6C697420284C96
:100C80006F77207265736F6C7574696F6E2900538E
:100C900070656B7472756D20736174656C6C6974CA
:100CA00020283230343829005370656B7472756DAA
:100CB00020736174656C6C6974004D756C74697334
:100CC00069676E616C2050504D000A0D5265636576
:100CD000697665723A2000756E6B6E6F776E2E20A6
:100CE0005573696E672050504D2E2E2E006E6F7416
:100CF00020737570706F727465642062792068610A
:100D000072647761726521000A0D3D3D3D3D3D3DB8
:100D10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D03
:100D20003D3D3D3D3D3D3D3D3D3D3D3D3D000A0D93
:100D3000466C69676874436F6E74726F6C0A0D4815
:100D4000617264776172653A25642E25640A0D53D9
:100D50006F6674776172653A5625642E2564256343
:100D600020000A0D3D3D3D3D3D3D3D3D3D3D3D3D70
:100D70003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DA3
:100D80003D3D3D3D3D3D3D0011241FBECFEFD0E434
:100D9000DEBFCDBF11E0A0E0B1E0E4E6F2EF00E09D
:100DA0000BBF02C007900D92A23FB107D9F718E020
:100DB000A2EFB1E001C01D92A43BB107E1F77AEACE
:100DC000E2E0F0E081E280935700D4907E01089445
:100DD000E11CF11C20EF37EF41E050E087016FE0AC
:100DE000DA01C9012F5F3F4F4F4F5F4FABBFFC018F
:100DF0008791F80181938F01615067FFF1CFF7016F
:100E00006EE0819178277095615067FFFACF8889ED
:100E1000781729F0F7E9DF1611F40000FECF0E94E1
:100E2000D4070C9431790C94000080911906E82FB6
:100E3000FF27EE0FFF1FED5BF84F808191818D5EE4
:100E40009F4F14F010920301808191818A5B9F4F24
:100E5000CCF4809103018823A9F481E080930301FD
:100E600080915C048F5F80935C04853038F088EE5D
:100E700093E0909325028093240204C066E970E019
:100E80000E948F3780915C0499279093EA058093A4
:100E9000E90508951F93CF93DF93182F882389F0D6
:100EA00082E091E09F938F9380EF92E19F938F93E5
:100EB000E0912804F091290409950F900F900F906C
:100EC0000F9080913C06823308F044C084EF91E09B
:100ED0000E941617EC01112329F0CE010E941F1762
:100EE0008823D9F3C2E0D0E026E530E080911E01EE
:100EF00090911F018217930730F02196255D3F4F97
:100F0000C730D10598F380913C069927C89F90017E
:100F1000C99F300DD89F300D11242093000111235B
:100F2000D9F068EC70E08C2F0E948F37DF93CF935D
:100F30008AE091E09F938F9380EF92E19F938F934C
:100F4000E0912804F091290409958DB79EB7069683
:100F50008DBF02C080930001112311F18091000127
:100F60006AE00E948478892F99279F938F938091BC
:100F700000010E94847899279F938F9385E191E0E7
:100F80009F938F9380EF92E19F938F93E09128043A
:100F9000F091290409952DB73EB7285F3F4F2DBF2B
:100FA000DF91CF911F910895CFEFD0E4DEBFCDBF89
:100FB0008824992414B815B8C7EED3E0E297D7FF78
:100FC000FDCF85E18093020181E887B93E9A8FEFDA
:100FD00088B98BE184B911E015B98EE38AB987E449
:100FE0008BB9469A84B7877F84BF809160008861FF
:100FF000809360001092600084EC99E09093250249
:10100000809324021092180310921703109248073D
:101010001092470710921A031092190310921C03A2
:1010200010921B0384EC94E0A0E0B0E08093960162
:1010300090939701A0939801B093990128980E94EA
:101040007F170E9450170E94F8120E9409340E94D4
:10105000AF1A812F0E946C2F0E945F630E948A6DDD
:101060000E941875809102018C3010F4299A01C0F9
:10107000299878940E94862E80916C0282608093D9
:101080006C0210926F020E94B14284EF91E00E94C4
:101090001617EC0180916C0280FD05C0CE010E9404
:1010A0001F178823B9F38FE291E09F938F93C0EFCE
:1010B000AC2EC2E1BC2EBF92AF92E0912804F09119
:1010C0002904099580EA9FE00E941617EC0100E0D0
:1010D00010E00F900F900F900F90B5EEEB2EB6E052
:1010E000FB2EA9E9CA2EA6E0DA2E0E94B142809119
:1010F0006C0280FD05C0CE010E941F178823B9F342
:10110000F60180811816ACF40BC00E94B1428091A8
:101110006C0280FD05C0CE010E941F178823B9F321
:10112000CE010E941F17882321F4F70180818823B4
:1011300064F7F701808187FF1AC00F5F1F4F1F936D
:101140000F930150104081E491E09F938F93BF92E1
:10115000AF92E0912804F091290409958091F20161
:101160008F5F8093F2018DB79EB706968DBF0F5F9C
:101170001F4FE4E0F0E0CE0EDF1E88E090E0E80EC6
:10118000F91E0C30110508F4B0CF00E010E0C2EEFB
:10119000D6E0F9E9EF2EF6E0FF2E8B8187FD1EC029
:1011A000F70180811816D4F40F5F1F4F1F930F9320
:1011B0000150104084E491E09F938F9380EF92E17F
:1011C0009F938F93E0912804F0912904099582E080
:1011D000809322028DB79EB706968DBF8B81807853
:1011E0008B830F5F1F4FE4E0F0E0EE0EFF1E2896AA
:1011F0000C30110590F282E691E09F938F93E0EF1F
:10120000EE2EE2E1FE2EFF92EF92E0912804F091A3
:1012100029040995909117068091F2010F900F9083
:101220000F900F90981728F480914204806180936A
:10123000420488E891E09F938F93FF92EF92E091B0
:101240002804F0912904099588EE93E00E9416176E
:10125000EC010E94B51A0F900F900F900F90CE01E5
:101260000E941F178823D9F388EA91E09F938F93F8
:10127000FF92EF92E0912804F0912904099580E013
:101280000E945138809102010F900F900F900F90A3
:101290008A3011F0843110F0289801C0289A80ED2E
:1012A00097E0909325028093240285E580935E0465
:1012B0008EE090E00E94BB2C9927182F00278FE02A
:1012C00090E00E94BB2C080F111D1093F8010093B1
:1012D000F7018AE090E00E94BB2C9927182F002785
:1012E0008BE090E00E94BB2C080F111D1093F601BB
:1012F0000093F5010F5F1F4F39F08091F701909136
:10130000F8018F5F9F4F41F41092F8011092F7019E
:101310001092F6011092F5018091F5019091F6017D
:101320009F938F938091F7019091F8019F938F93F2
:101330008DEA91E09F938F93FF92EF92E0912804C2
:10134000F091290409958DB79EB708968DBF80ED61
:1013500091E09F938F93FF92EF92E0912804F09198
:1013600029040995809125060F900F900F900F90FA
:10137000E0912804F091290482FF07C08CED91E0F0
:101380009F938F93FF92EF9208C088EE91E09F9316
:101390008F9380EF92E19F938F9309950F900F9019
:1013A0000F900F900E94FA1F88E893E190939301A9
:1013B0008093920181E080935D040E944A078091AE
:1013C0003F060E947E748AEF91E09F938F93FF9275
:1013D000EF92E0912804F0912904099580ED97E0BF
:1013E0000E941617EC018AEF90E00E9416178C01FC
:1013F00083E08093C1050F900F900F900F90809124
:10140000FA018111FFCFC8010E941F17882339F00C
:1014100084E690E00E9416178C010E94D47580919A
:101420002802882309F4D4C180911001882309F48B
:10143000CFC11092280280915C04882319F00E9489
:10144000150702C00E948B450E94B1422091020103
:101450002A3011F0243110F0289801C0289A809188
:101460001D0390914204882339F080911D0381501F
:1014700080931D03977F0AC080916F0080628093E4
:101480006F001092440710924307986090934204B3
:101490008091920190919301019790939301809391
:1014A00092018091920190919301892B21F080917A
:1014B0006D028823C9F18091920190919301892B4B
:1014C000D9F40E94962F85E090E090939301809349
:1014D00092018091FB059091FC0501969093FC058B
:1014E0008093FB0580914204816080934204809147
:1014F000C20582608093C205809108019091090124
:101500008F5F9F4F19F5809114038823F9F080E1D4
:1015100097E2909325028093240280E890E09093D4
:1015200009018093080112C02A3011F0243110F013
:10153000289801C0289A8091240290912502892B35
:1015400029F4809142048E7F809342048091280286
:10155000882309F03DC180910E01882311F00E947B
:1015600096170E943B130E94760ECE010E941F1711
:10157000882309F429C1649680916D0290914204F8
:10158000882339F09260909342048091C205826072
:101590000CC09D7F909342048091920190919301A1
:1015A000079728F08091C2058D7F8093C2058091B6
:1015B000920190919301079728F0809142048E7FC9
:1015C0008093420480910501882321F0815080930B
:1015D000050125C0809368041092F5021092F40270
:1015E0001092F3021092F2021092F1021092F002A5
:1015F00080910801909109018F5F9F4F81F4809144
:101600001D03882361F488E99AE39093250280936F
:10161000240280E09CE0909309018093080180916E
:10162000E901893C48F081508093E90180914204AE
:101630008B7F8093420430C0809121088823E1F0A1
:1016400080914204846080934204809108019091CB
:1016500009018F5F9F4F81F480911403882361F00B
:1016600088E99AE3909325028093240280E098EA27
:1016700090930901809308011092FA031092F903E4
:101680001092F8031092F7038FEF9FEF90934F089B
:1016900080934E081092E90180910001282F332792
:1016A00080911E0190911F0182179307CCF48091C5
:1016B000E90280628093E90280910801909109011A
:1016C0008F5F9F4FC1F480E797E19093250280934D
:1016D000240280E093E090930901809308010BC0FD
:1016E0008091240290912502892B29F48091E902AE
:1016F0008F7D8093E9020E946B6784E080932302D0
:1017000080911403882329F45AEA852E55E0952EFA
:1017100012C08091F9018F5F8093F901813359F4F0
:101720001092F9018091F3019091F4010196909348
:10173000F4018093F3010894811C911CF2E78F1649
:10174000FBE09F0609F040C0882499242091F7010E
:101750003091F8012F5F3F4F3093F8012093F7014C
:101760008091F5019091F60101969093F601809396
:10177000F501832F9927682F8EE090E00E94C32CFB
:101780008091F7019091F8019070682F8FE090E0C0
:101790000E94C32C8091F5019091F601892F992721
:1017A000682F8AE090E00E94C32C8091F50190910F
:1017B000F6019070682F8BE090E00E94C32C84E1CA
:1017C00090E00E941617EC010E94BB670E94A16D79
:1017D00080912302882309F012CE0E9480630FCEED
:1017E0001F920F920FB60F9211248F939F93EF9336
:1017F000FF93809107018823E1F480911402909176
:10180000150201969093150280931402FC01E95E83
:10181000FA4FE081ED3019F08A3A910539F41092CF
:1018200015021092140281E080930701E093C60034
:1018300004C01092150210921402FF91EF919F9133
:101840008F910F900FBE0F901F9018951F920F92BF
:101850000FB60F9211242F933F934F935F936F9383
:101860007F938F939F93AF93BF93CF93EF93FF9308
:1018700090E08091FA01813029F48091C600809334
:10188000CE00CCC08091FA01823029F48091C6004C
:1018900080936B04C3C08091C60080930C0250916A
:1018A0001A025A3A10F090931B0280910C028D306C
:1018B00009F065C080911B02823009F060C09093EE
:1018C0001B02852F992785599B4FFC013297408138
:1018D0002091160230911702241B3109DC01119767
:1018E0008C91281B3109C9019F7090931702809336
:1018F000160246E0969587954A95E1F7982F935CF6
:10190000909318022F733070235C2093190280810A
:10191000981729F48C91281711F491E006C090E0F3
:10192000809109028F5F80930902C0910B02CC2342
:1019300009F074C0992309F471C081E080930B020F
:10194000580F509308025150E52FFF27E559FB4FE0
:101950008DE0808380916D04823509F05FC00E9424
:10196000FA1F88E190E02CE00FB6F894A8958093D8
:1019700060000FBE20936000C09322024FC02091F0
:101980001B02822F992781309105F9F08230910551
:101990001CF4892B21F040C0029711F13DC08091C9
:1019A0000C02833239F480910B02882319F481E010
:1019B00080931B0280910C0280936B0481E08093E2
:1019C0001A0280910C02992722C02F5F20931B02DC
:1019D000E52FFF27E559FB4F80910C02808309C05A
:1019E000E52FFF27E559FB4F80910C0280835A3A7F
:1019F00020F45F5F50931A0202C010921B022091E4
:101A00000C028091160290911702820F911D909303
:101A100017028093160202C010921B02FF91EF91F1
:101A2000CF91BF91AF919F918F917F916F915F9176
:101A30004F913F912F910F900FBE0F901F901895CF
:101A4000AC01A0E0B0E09D01A817B90748F4E7E1B8
:101A5000F5E08191280F311D1196A417B507C8F341
:101A60003F70FD01E95EFA4FC90156E096958795F2
:101A70005A95E1F7835C80831196FD01E95EFA4F88
:101A80002F733070822F835C8083A85EBA4F8DE005
:101A90008C9310920701809117058093C6000895DA
:101AA000A0E0B0E0E6E5FDE00C94FD782C859D8596
:101AB0000E85BB2483E2809317059F5990931805E8
:101AC0002093190533E0E32EF12C002309F49EC086
:101AD000CF84D888BE016D5E7F4FA989BA89015035
:101AE000109709F493C01097B9F0F601EB0DF11DB2
:101AF000B3949081119791F4002349F1FB016E5F3B
:101B00007F4FDB01C080D1806E5F7F4F0D90BC9115
:101B1000A02DBB24015002C090E019C01097B9F06D
:101B2000F601EB0DF11DB3944081119791F4002360
:101B300041F1FB016E5F7F4FDB01C080D1806E5FA2
:101B40007F4F0D90BC91A02DBB24015002C040E0FE
:101B500018C01097B1F0F601EB0DF11DB394108190
:101B6000119781F4002371F0FB013296DB01CD90D7
:101B7000DC90BF016E5F7F4FA081B181BB2401501B
:101B800001C010E0F701E95EFA4F892F869586952E
:101B9000835C80830894E11CF11CF701E95EFA4F35
:101BA000892F99278370907024E0880F991F2A95B8
:101BB000E1F755279A0194E0369527959A95E1F734
:101BC000822B835C80830894E11CF11CF701E95EA1
:101BD000FA4F4F705070440F551F440F551F812FFF
:101BE000992726E0969587952A95E1F7842B835CC3
:101BF00080830894E11CF11CF701E95EFA4F1F7322
:101C0000135C10830894E11CF11C6ACFC7010E9489
:101C1000200DE9E00C941979A3E07A2F4091080295
:101C20004650442309F458C0E72FFF27E559FB4FDE
:101C300080818D537F5FE72FFF27E559FB4F208180
:101C40002D537F5FE72FFF27E559FB4F30813D5331
:101C50007F5FE72FFF27E559FB4F60816D537F5F63
:101C60009927880F991F880F991F522F52955F70DF
:101C7000582B822F99278F709070F4E0880F991F4E
:101C8000FA95E1F7232F26952695282B832F992760
:101C900083709070E6E0880F991FEA95E1F7682B52
:101CA00041504F3FC9F0EA2FFF27E559FB4F5083C2
:101CB000AF5F41504F3F81F0EA2FFF27E559FB4FBF
:101CC0002083AF5F41504F3F39F0EA2FFF27E5599E
:101CD000FB4F6083AF5FA5CF8EE694E09093070241
:101CE00080930602A350A09305020895A2E0B0E0FD
:101CF000ECE7FEE00C94037980910B02882309F451
:101D00006BC40E940C0E80916C04823609F025C3CE
:101D100080916D0499278037910509F4C1C08137FE
:101D20009105C4F48A36910509F48DC28B3691056C
:101D300044F48B34910571F18636910509F46CC138
:101D40000CC38D36910509F47BC08E36910509F4DC
:101D50005FC003C384379105D1F1853791054CF4F9
:101D60008137910509F4A3C08337910509F4F1C0C7
:101D7000F4C28737910509F428C2883791052CF4FD
:101D80008537910509F4E4C1E8C28937910509F462
:101D90007AC1E3C2E0910602F0910702808191814D
:101DA0009093300380932F0320912D0330912E03C5
:101DB000821B930B845E9D4F68E671E00E94A478BD
:101DC000845B904090932C0380932B03C6C2809138
:101DD0000802A0910602B0910702853140F080E12F
:101DE000E6E4F4E00D9001928A95E1F70DC08D9143
:101DF0009D910D90BC91A02D809346049093470433
:101E0000A0934804B093490480EF809303024BC031
:101E1000809107018823E1F38DE490E09F938F93F5
:101E20008CE896E09F938F9381E08F938F938EE45D
:101E30008F930E94500D8DB79EB707968DBF8DC2B0
:101E4000A0910602B09107021C91113081F48DE43B
:101E5000ECE8F6E00D9001928A95E1F70E94C32D1F
:101E60001983809142048F7E8093420401C01982BD
:101E7000809107018823E1F381E090E09F938F93A5
:101E8000CE0101969F938F9381E08F938F938DE482
:101E90008F930E94500DADB7BEB71796ADBF5DC210
:101EA00081E080930E028FEF8093050156C2E0918E
:101EB0000602F0910702E0818E2F8A508A3058F492
:101EC0008983882311F481E003C0863010F085E017
:101ED000898361E00EC08E2F84518A3070F489832B
:101EE000882311F481E003C0863010F085E08983F7
:101EF00060E089810E94432E12C0E983EF3F19F40C
:101F00000E94262E89838981882311F481E003C0F1
:101F1000863010F085E0898389810E94D92C8091D8
:101F200007018823E1F383E790E09F938F9388E193
:101F300096E09F938F9381E090E09F938F93CE01E3
:101F400001969F938F9382E08F9381E08F9381E539
:101F500072C12091060230910702D9018C91815003
:101F6000853008F040C0F90181818535E1F52F5FAA
:101F70003F4F83E7E8E1F6E0D9010D9001928A95A1
:101F8000E1F7F90182910E94422D8091590699272B
:101F9000AA27BB27BC01CD0124EC39E040E050E08A
:101FA0000E946578DC01CB018093D5019093D60126
:101FB000A093D701B093D80180915A069927AA27F8
:101FC000BB27BC01CD010E946578DC01CB01809369
:101FD000D1019093D201A093D301B093D4010E9478
:101FE000262E898301C01982809107018823E1F39D
:101FF00081E090E09F938F93CE0101969F938F9302
:1020000081E08F938F9383E58F930E94500D8DB75E
:102010009EB707968DBF26C0E0910602F091070299
:10202000E0818E2F8150853018F48E2F0E94D92C9C
:102030000E94262E8983809107018823E1F381E0A5
:1020400090E09F938F93CE0101969F938F9381E0B1
:102050008F938F9386E48F930E94500DADB7BEB7D8
:102060001796ADBF80911403882329F46EE670E0C3
:1020700089810E948F3780E00E944A0780913F0645
:102080000E947E746AC1E0910602F091070280818D
:10209000992787FD909590935E0780935D078181D6
:1020A000992787FD90959093600780935F078281C1
:1020B000992787FD909590936207809361078381AC
:1020C000992787FD90959093640780936307848197
:1020D000992787FD90959093660780936507858182
:1020E000992787FD9095909368078093670786816D
:1020F000992787FD909590936A0780936907878158
:10210000992787FD909590936C0780936B07808546
:10211000992787FD909590936E0780936D07818531
:10212000992787FD90959093700780936F0782851C
:10213000992787FD90959093720780937107838507
:10214000992787FD9095909374078093730705C135
:10215000E0910602F091070280810E9462338A8337
:10216000882319F481E0898301C0198280910701D5
:102170008823E1F388E090E09F938F938AED96E0C7
:102180009F938F9321E030E03F932F93809106023D
:10219000909107029F938F933F932F93CE010296C6
:1021A0009F938F933F932F93CE01820F931F9F9303
:1021B0008F9384E08F9381E08F9385E58F930E94C6
:1021C000500DEDB7FEB773963CC080910502893083
:1021D00008F4C3C020910602309107022F5F3F4FE1
:1021E00088E0AAEDB6E0F90101900D928A95E1F739
:1021F000D9018E910E94B8328A83882319F481E034
:10220000898301C01982809107018823E1F321E0CD
:1022100030E03F932F93CE0102969F938F933F938D
:102220002F93CE01820F931F9F938F9382E08F9302
:1022300081E08F9387E58F930E94500DEDB7FEB735
:102240003B96EDBF8AC00E9431748983823019F0B9
:10225000843009F082C0F8948091C1008F7380931C
:10226000C1008091C9008F738093C9008091C10023
:10227000877E8093C1008091C900877E8093C900CA
:102280008091C80087FF03C08091CE00F9CF809174
:10229000C00087FF03C08091C600F9CFE09106021D
:1022A000F09107028081882359F581E08093FA013B
:1022B0001092CD0080E490E08093CC008091CD001E
:1022C0008093C5008091CC008093C4008091CA00A7
:1022D0008F7D8093CA008091CA008F7E8093CA0050
:1022E0008091C9008B7F8093C9008091CA0084606F
:1022F0008093CA008091CA0082608093CA0003C0A4
:1023000082E08093FA018091CA00877F8093CA009F
:102310008091C200877F8093C2008091C9008E7F28
:102320008093C9008091C10088618093C100809131
:10233000C90088618093C9008091C1008068809342
:10234000C1008091C90080688093C90010926E001E
:1023500010926F0010927000789480916D0499270C
:102360008436910509F4CDC085369105ACF48136EB
:10237000910509F481C0823691052CF48B349105C6
:1023800009F45DC021C18236910509F482C083360B
:10239000910509F491C018C18C36910509F4FFC06C
:1023A0008D3691054CF48736910509F40AC18836BB
:1023B000910509F4C4C008C18437910529F0863716
:1023C000910509F4FAC000C180910802A0910602AB
:1023D000B0910702803140F080E1E6E4F4E00D9036
:1023E00001928A95E1F70DC08D919D910D90BC9160
:1023F000A02D8093460490934704A0934804B09383
:102400004904809107018823E1F31F928091040120
:102410008F9384E58F930E94500D8AEF809303027F
:102420008FEF8093050180EA9FE00E94161790933A
:10243000FC018093FB010F900F900F90C5C0E091BD
:102440000602F0910702808191819093300380937E
:102450002F0320912D0330912E03821B930B845E5A
:102460009D4F68E671E00E94A478845B9040909351
:102470002C0380932B03A8C0E0910602F091070281
:10248000808180930601803298F08FE1809306016D
:102490000FC0A0910602B09107028BE0EEE5F4E0D8
:1024A0000D9001928A95E1F780916704809303066D
:1024B0008FEF8093050188C08091FF019091000209
:1024C000892B89F4E0910602F0910702E081EE2366
:1024D00051F08AE0E89FC00111240E9416179093E2
:1024E000390480933804E0910602F091070290814C
:1024F0008AE0989FC0011124909300028093FF010D
:1025000015C08FEF80930501E0910602F09107025C
:1025100090818AE0989FC0011124909302028093D9
:102520000102892B19F081E08093100280EA9FE07C
:102530000E9416179093FC018093FB0145C08FEF1A
:1025400080930501E0910602F0910702908197FDCA
:1025500008C082E080930D021092FE011092FD01EE
:102560001AC0909580916502892B809365029181B4
:102570008AE0989FC00111249093FE018093FD0191
:1025800084E080930D0280EA9FE00E9416179093EA
:10259000FC018093FB0181E08093110215C08FEF55
:1025A00080930501E0910602F091070280818093FB
:1025B000660281E08093120207C081E080930F02DF
:1025C00003C081E08093130210920B021092070265
:1025D0001092060210920502E3E0CE5F0C941F7980
:1025E000982F8091C00085FFFCCF9093C60008957E
:1025F0000F931F9388E18093C1008091C000826097
:102600008093C0008091C10080688093C100809158
:10261000C10080648093C10000E010E00093C50019
:102620008AE290E08093C4008091010290910202BE
:102630000E94161790933B0480933A048CED90E02F
:102640000E94161790936A048093690410923C04C8
:1026500082E580933D04109240048BE080933E0419
:1026600010923F0410930702009306021092050295
:102670001F910F910895A0E1B0E0E1E4F3E10C9423
:10268000007980910701882309F4C1C28091FB0180
:102690009091FC010E941F17882361F01092FE01A7
:1026A0001092FD011092020210920102109200029B
:1026B0001092FF018091FD019091FE01892B41F064
:1026C00080911505909116050E941F17882329F403
:1026D00080911102882309F460C08091070188234A
:1026E00009F45BC080910D0201E211E08430A8F092
:1026F0000E940E2080E590E09F938F931F930F938D
:1027000081E08F938F9388E48F930E94500D2DB7B3
:102710003EB7295F3F4F2DBF34C01092670282E25F
:1027200094E09F938F9383E090E29F938F93E09147
:102730002804F0912904099584E190E09F938F93F8
:102740001F930F9381E090E09F938F938DE092E031
:102750009F938F9382E08F9381E08F9388E48F9390
:102760000E94500D80910D02982F8F5F80930D0273
:102770002DB73EB7215F3F4F2DBF943010F0109220
:102780000D028091FD019091FE010E941617909319
:10279000160580931505109211028091120288236C
:1027A00051F180910701882331F10E940E2080E5CC
:1027B00090E09F938F9381E291E09F938F9321E02C
:1027C00030E03F932F9380E291E09F938F933F936C
:1027D0002F9386E692E09F938F9383E08F9381E01F
:1027E0008F938CE48F930E94500D109212028DB73C
:1027F0009EB70F968DBF80910F028823D1F08091F4
:1028000007018823B1F08AE090E09F938F938CE3D7
:1028100094E09F938F9381E08F938F9386E58F93BE
:102820000E94500D10920F022DB73EB7295F3F4F07
:102830002DBF809113028823D9F08091070188234E
:10284000B9F08BE090E09F938F938EE594E09F9397
:102850008F9381E08F93809104018F9387E48F930E
:102860000E94500D109213028DB79EB707968DBF30
:102870008091690490916A040E941F17882309F4CB
:1028800061C080910701882309F45CC080913406FF
:102890009927880F991F880F991F7C010027F7FC43
:1028A0000095102F8091710390917203A091730392
:1028B000B0917403BC01CD01A80197010E94D978A1
:1028C00030935704209356048091690390916A03D2
:1028D000A0916B03B0916C03BC01CD01A8019701DD
:1028E0000E94D97830935904209358048091FE02B5
:1028F00080935A048091FD0280935B0488E090E00D
:102900009F938F9386E594E09F938F9381E08F93BD
:1029100083E08F938BE68F930E94500D80915C042F
:102920002DB73EB7295F3F4F2DBF853018F086E0A9
:1029300080935C0483E690E00E94161790936A04EB
:10294000809369048091010290910202892B41F0E9
:1029500080913A0490913B040E941F17882321F430
:1029600080911002882339F180910701882319F1A1
:102970000E94853682E490E09F938F9381EC95E0EE
:102980009F938F9381E08F938F9384E48F930E9422
:10299000500D109210028DB79EB707968DBF809193
:1029A000010290910202009731F00E941617909355
:1029B0003B0480933A048091FF0190910002892B9F
:1029C00009F4B8C080913804909139040E941F170F
:1029D000882309F4AFC080910701882309F4AAC0B5
:1029E000809134069927880F991F880F991F7C01C1
:1029F0000027F7FC0095102F8091710390917203CE
:102A0000A0917303B0917403BC01CD01A80197019B
:102A10000E94D97830932B0420932A048091690373
:102A200090916A03A0916B03B0916C03BC01CD013E
:102A3000A80197010E94D97830932D0420932C048B
:102A40002091090830910A0840910B0850910C0818
:102A5000DA01C90163E0880F991FAA1FBB1F6A959D
:102A6000D1F7820F931FA41FB51F820F931FA41FBE
:102A7000B51F209196013091970140919801509196
:102A80009901BC01CD010E94D97830932F04209385
:102A90002E048091390390913A03A0913B03B091A9
:102AA0003C0339E0B595A795979587953A95D1F769
:102AB000809330048091350390913603A0913703C1
:102AC000B091380329E0B595A795979587952A95F4
:102AD000D1F7809331048091410390914203A091FA
:102AE0004303B091440309E0B595A7959795879561
:102AF0000A95D1F7809332048EE090E09F938F93F4
:102B00008AE294E09F938F9381E08F938F9383E485
:102B10008F930E94500D8091FF01909100020E94BE
:102B2000161790933904809338042DB73EB7295F68
:102B30003F4F2DBF809106018F3F71F1992714E01F
:102B4000880F991F1A95E1F78E5D9D4F40E150E087
:102B5000BC01CE0101960E94B87680E190E09F937F
:102B60008F93CE0101969F938F9381E090E09F9386
:102B70008F9386E091E09F938F9382E08F9381E023
:102B80008F9381E48F930E94500D8FEF8093060105
:102B90008DB79EB70B968DBF809103068823D1F029
:102BA000809107018823B1F081E090E09F938F939B
:102BB00083E096E09F938F9381E08F938F9382E4DD
:102BC0008F930E94500D109203062DB73EB7295FD8
:102BD0003F4F2DBF80910E028823C9F080910701DD
:102BE0008823A9F084E390E09F938F9383E497E098
:102BF0009F938F9381E08F938F9380E58F930E94B3
:102C0000500D10920E028DB79EB707968DBFE6E06D
:102C1000C05F0C941C791F920F920FB60F92112473
:102C20002F933F935F936F937F938F939F93AF9374
:102C3000BF93EF93FF9320E080912302882329F034
:102C40008091230281508093230280910B0488237A
:102C500019F0815080930B0480912B028150809356
:102C60002B028F3F09F05BC089E080932B0280919B
:102C7000290290912A02019690932A0280932902B8
:102C800080910F018F5F817080930F01882319F469
:102C900081E080932802349903C081E080932C0264
:102CA0008091240290912502892B21F180912402A8
:102CB000909125020B9750F080912402909125026B
:102CC0000A97909325028093240204C01092250253
:102CD00010922402809124029091250220910801F3
:102CE0003091090182239323892B11F021E008C040
:102CF00020E006C08FEF9FEF9093090180930801B9
:102D000080910201222331F08A3011F45A9A07C0CF
:102D1000479A05C08A3011F45A9801C047988091AB
:102D20002C02882309F472C02091E901222309F0C2
:102D30006DC08091250683FF69C086B19927FC018B
:102D4000E071F07084FF14C08091260290912702F8
:102D500001969093270280932602809126029091FB
:102D60002702895E934008F451C020932C024EC084
:102D70008091260290912702892B09F443C080910B
:102D80002602909127028A569140E0F58091260212
:102D90009091270269E270E00E949078809126026B
:102DA00090912702860F971F909327028093260207
:102DB00080912602909127020B9750F08091260275
:102DC000909127020A979093300380932F0304C0B9
:102DD000F0933003E0932F0380912F039091300301
:102DE00020912D0330912E03821B930B845E9D4F07
:102DF00068E671E00E94A478845B904090932C0375
:102E000080932B031092270210922602FF91EF91DC
:102E1000BF91AF919F918F917F916F915F913F9102
:102E20002F910F900FBE0F901F901895209129029F
:102E300030912A02280F391FC90101960895209167
:102E4000290230912A02821B930B892F992786959C
:102E5000807490700895CF93DF930E941617EC0151
:102E6000CE010E941F178823D9F3DF91CF910895D7
:102E7000CF93DF930E941617EC0109C080911001D7
:102E8000882329F0909310018FEC80937A00CE0173
:102E90000E941F17982F882389F3DF91CF910895FF
:102EA0009FB7F8945F983E9A469A8091B0008F70D1
:102EB0008093B0008091B00083608093B0008091D7
:102EC000B1008B738093B1008091B1008B608093CF
:102ED000B1001092B2008FEF8093B3008091B000E8
:102EE00080688093B000809170008A7F809370002A
:102EF000809170008260809370009FBF08958AE087
:102F000090E00E941617909332028093310282E083
:102F100085BD83EA84BD17BC84EB88BD86E086BD91
:102F200080916E00816080936E000895A0E0B0E013
:102F3000ECE9F7E10C94FF7880914F06E82FFF272A
:102F4000E456FE4F9681D08080910E01A92FBB27B9
:102F5000A7FDB095CB2FDB2F813009F0C9C02091A0
:102F60007103309172034091730350917403BD015A
:102F7000CE010E94657897FF04C061587F4F8F4F44
:102F80009F4F7B018C0167E015950795F794E794B7
:102F90006A95D1F78D2D992787FD9095A92FB92F87
:102FA0002091690330916A0340916B0350916C0347
:102FB000BC01CD010E94657897FF04C061587F4F26
:102FC0008F4F9F4F57E095958795779567955A95C1
:102FD000D1F7F801E701C61BD70BE80BF90B80917D
:102FE00046069927AA27BB27BC01CD019E01AF0148
:102FF0000E94657897FF04C061507E4F8F4F9F4FAE
:10300000FC01EB0149E0F595E795D795C7954A9501
:10301000D1F78091C101992736E0880F991F3A9521
:10302000E1F740910C0150910D0120914E0633279C
:10303000841B950BB9010E94A47880910C0190919A
:103040000D01860F971F90930D0180930C018091C5
:103050000C0190910D0197FD0F9624E095958795B1
:103060002A95E1F790931F0280931E0280917D06BE
:1030700080FF07C080911E0290911F028C0F9D1F40
:1030800006C080911E0290911F028C1B9D0B909395
:103090001F0280931E0280914706282F3327220F9C
:1030A000331F220F331F80911E0290911F0282173F
:1030B00093077CF080914806282F3327220F331F77
:1030C000220F331F80911E0290911F02281739078B
:1030D00024F430931F0220931E0280910201843158
:1030E00008F4C2C080910E018F5F80930E01BEC0B4
:1030F0002091690330916A0340916B0350916C03F6
:10310000BD01CE010E94657897FF04C061587F4FD2
:103110008F4F9F4F7B018C01C7E015950795F79462
:10312000E794CA95D1F78D2D992787FD9095A92F02
:10313000B92F209171033091720340917303509124
:103140007403BC01CD010E9465789B01AC0197FF1F
:1031500004C021583F4F4F4F5F4FB7E055954795FB
:1031600037952795BA95D1F72E0D3F1D401F511F5A
:1031700080914A069927AA27BB27BC01CD010E944E
:10318000657897FF04C061507E4F8F4F9F4FFC01C1
:10319000EB01A9E0F595E795D795C795AA95D1F7E5
:1031A0008091C001992776E0880F991F7A95E1F701
:1031B00040910A0150910B0120914E063327841B48
:1031C000950BB9010E94A47880910A0190910B019E
:1031D000860F971F90930B0180930A0180910A013B
:1031E00090910B0197FD0F9664E0959587956A95F0
:1031F000E1F790931D0280931C0280917D0681FF70
:1032000007C080911C0290911D028C0F9D1F06C06B
:1032100080911C0290911D028C1B9D0B90931D02AE
:1032200080931C0280914B06282F3327220F331FD7
:10323000220F331F80911C0290911D028217930769
:103240007CF080914C06282F3327220F331F220F4A
:10325000331F80911C0290911D022817390724F416
:1032600030931D0220931C0210920E01E7E0CDB7AF
:10327000DEB70C941B791F920F920FB60F92112498
:103280002F933F934F935F938F939F93EF93FF936E
:103290008091020190912D02843108F04CC0992355
:1032A00009F01CC18091B00086FF24C08091B0005D
:1032B0008F7B8093B00080911E0290911F028755F2
:1032C0009E4F909321028093200225E08D3D92072E
:1032D00018F08CED95E005C08757914030F487E7F2
:1032E00091E090932102809320028091200290919E
:1032F0002102BAC08091B00080648093B0008091B8
:103300004D06282F33278DED96E0289FA001299F99
:10331000500D389F500D1124CA0120912E0230917A
:103320002F02821B930B909321028093200281E055
:1033300080930E01D0C0992309F0D0C08091B000D5
:1033400086FF97C08091B0008F7B8093B000E091A2
:103350003002EE23F1F480914D06282F33278DEDB6
:1033600096E0289FA001299F500D389F500D1124F1
:10337000CA0120912E0230912F02821B930B909351
:1033800021028093200210922F0210922E02469A60
:10339000A2C089EA93E090932102809320028E2FAD
:1033A000992783309105D9F08430910534F4813028
:1033B000910549F0029761F020C08430910591F0A9
:1033C000059799F01AC080911E0290911F0204C0C7
:1033D00080911C0290911D0287559E4F1DC08091C7
:1033E000D70705C08091B10702C08091DF079927F8
:1033F000880F991F880F991FEFCFFF27EE0FFF1F30
:10340000ED5BF84F20813181220F331F8091200224
:1034100090912102820F931F9093210280932002AA
:10342000809120029091210255E08D3D950718F082
:103430008CED95E005C08757914030F487E791E027
:10344000909321028093200220912002309121024A
:103450002C5B3040309321022093200280912E0279
:1034600090912F02820F931F90932F0280932E0230
:1034700032C08091B00080648093B0008CEB90E00B
:10348000909321028093200280912E0290912F022E
:1034900084549F4F90932F0280932E02809122029A
:1034A000882321F080911D03833320F48091220230
:1034B000823011F4469801C0469A809130028F5FA5
:1034C0008093300290914D06981728F481E0809304
:1034D0000E011092300281E080932D022091200293
:1034E0003091210241E02F37340730F08FEF809385
:1034F000B3002F5F30400FC02F3F3105C9F0C0F03F
:10350000A9014F5F50404F37510550F480E8809338
:10351000B30020583040309321022093200212C083
:103520008FEF8093B30050932102409320020AC092
:10353000809120028093B300109221021092200209
:1035400010922D02FF91EF919F918F915F914F917A
:103550003F912F910F900FBE0F901F9018951092D2
:103560007C008FEC80937A000895CF93DF931092C4
:10357000370286E987BD83E090E00E94BB2CC82F0C
:10358000863E08F4C65FC8BD84E690E00E94381706
:1035900080911401909115018152934010F0C0EF79
:1035A00002C0C530F8F0C8BD82E390E00E94381731
:1035B00087E394E09F938F9380EF92E19F938F93A3
:1035C000E0912804F09129040995809114019091CB
:1035D00015010F900F900F900F908152934010F4AF
:1035E000C550DFCF6C2F83E090E00E94C32CCF301A
:1035F00018F0CCE8D0E002C0C0E0D0E0CA3FD1056E
:10360000F8F4C7BD82E390E00E94381789E394E0A4
:103610009F938F9380EF92E19F938F93E091280483
:10362000F0912904099580911401909115010F9052
:103630000F900F900F908052934010F02196DECFA4
:10364000C09314068091250680FF09C08C2F8A50F4
:103650008B3E28F080914104806480934104C7BD73
:103660008CE291E00E943817DF91CF910895EF929C
:10367000FF921F93CF9310E080ED97E00E94161702
:103680007C01CCE8133019F4CB3008F0C9E010E02D
:1036900080914702909148028C5F934024F480917E
:1036A000130181500AC080914702909148028750CF
:1036B000944034F0809113018F5F8093130101C017
:1036C00011E080914502909146028C5F934024F472
:1036D0008091120181500AC080914502909146026A
:1036E0008750944034F0809112018F5F80931201D3
:1036F00001C01F5F80914302909144028C5F934010
:1037000024F48091110181500AC08091430290916C
:10371000440287509440C4F0809111018F5F8093E0
:10372000110113C08BE394E09F938F9380EF92E19C
:103730009F938F93E0912804F091290409950F90AD
:103740000F900F900F905FC01F5F82E18093720215
:1037500080916C028E7F80936C0285EA8093BC001E
:10376000809113018A3040F48091410481608093FC
:1037700041048AE08093130180911301863F40F059
:103780008091410481608093410485EF809313010F
:10379000809112018A3040F48091410482608093CC
:1037A00041048AE08093120180911201863F40F02B
:1037B0008091410482608093410485EF80931201DF
:1037C000809111018A3040F480914104846080939B
:1037D00041048AE08093110180911101863F40F0FD
:1037E0008091410484608093410485EF80931101AE
:1037F00080917202882339F0C7010E941F17882325
:1038000009F090CFF5CF109210018FEC80937A00E1
:10381000809110018823E1F3CA3020F48AE090E01F
:103820000E943817C15009F02DCF86E490E00E9425
:103830003817CF911F91FF90EF9008951F920F922C
:103840000FB60F921124AF92BF92CF92DF92EF92F8
:10385000FF920F931F932F933F934F935F936F9319
:103860007F938F939F93AF93BF93EF93FF93809139
:103870005002282F3327442755278F5F809350020B
:10388000F9012231310508F08CC3EA5BFF4F0C943B
:103890002B79809178009091790046C080917800D2
:1038A000909179002CC1809178009091790090934B
:1038B00053028093520257C180917A0390917B0307
:1038C0002091780030917900821B930B909305062C
:1038D00080930406809104069091050690935D0202
:1038E00080935C025EC18091780090917900209174
:1038F0007C0330917D03821B930B9093130680937E
:103900001206809112069091130690935F028093A5
:103910005E0249C38091560290915702209178002F
:1039200030917900820F931F909357028093560233
:1039300081E03AC380915402909155022091780021
:1039400030917900820F931F909355028093540217
:1039500084E02AC380911E0190911F019C01220FD7
:10396000331F280F391F809178009091790063E010
:1039700070E00E949078260F371F36952795369570
:10398000279530931F0120931E0185E00DC3809180
:103990007800909179004091760350917703841BD1
:1039A000950B90933E0280933D0280913D02909151
:1039B0003E02029704F122E04E3E520784F4209129
:1039C00051022B5F2093510225508091EA02909181
:1039D000EB02845F914018F4215F209351028091A3
:1039E0005102853684F14F5F5F4F509377034093C8
:1039F0007603845626C080913D0290913E028F5FEF
:103A00009F4F0CF532E047325307ECF02091510202
:103A10002550209351022B5F8091EA029091EB0296
:103A2000845F914018F42F502093510280915102ED
:103A30008C394CF4415050405093770340937603B7
:103A40008C598093510281E080933C0280917800F0
:103A50009091790090930B0680930A0680913D0225
:103A600090913E029C01442737FD4095542F809150
:103A7000310390913203A0913303B0913403820F4C
:103A8000931FA41FB51F8093310390933203A0931B
:103A90003303B093340320913103309132034091CA
:103AA00033035091340357FF04C021503C4F4F4F14
:103AB0005F4F0AE055954795379527950A95D1F7B9
:103AC0008091310390913203A0913303B09134037C
:103AD000821B930BA40BB50B80933103909332039D
:103AE000A0933303B09334032EC18091540290917C
:103AF00055022091780030917900820F931F9093A6
:103B000055028093540210924F0250C280910201DC
:103B10008A3071F48091780090917900209152025E
:103B200030915302820F931F01969695879517C087
:103B30004091520250915302843158F02091780004
:103B400030917900240F351F8FEF97E0821B930B84
:103B500006C08091780090917900840F951F909312
:103B600044028093430286E01FC280917A039091C1
:103B70007B032091780030917900821B930B909306
:103B80000506809304068091040690910506209115
:103B90005C0230915D02820F931F909342028093EA
:103BA000410287E001C280917800909179002091D4
:103BB0007C0330917D03821B930B909313068093BB
:103BC0001206809112069091130620915E023091A8
:103BD0005F02820F931F9093400280933F02E3C1E4
:103BE000209156023091570280917800909179008F
:103BF000280F391F309357022093560280910201FB
:103C00008A3019F4220F331F04C0220F331F220FF2
:103C1000331F309357022093560220915602309161
:103C20005702C90137FD0796A3E095958795AA9598
:103C3000E1F7909348028093470280915802909157
:103C40005902820F931F97FD019695958795909342
:103C50005902809358022091860330918703821B7A
:103C6000930B90931D0180931C0120914D02309184
:103C70004E0280911C0190911D01280F391F37FFC2
:103C800002C02F5F3F4F3595279530934E0220930A
:103C90004D024ECE20915402309155028091780011
:103CA00090917900280F391F3093550220935402C8
:103CB000809102018A3019F4220F331F04C0220FB1
:103CC000331F220F331F309355022093540220914B
:103CD000540230915502C90137FD079663E095956E
:103CE00087956A95E1F7909346028093450280910B
:103CF0005A0290915B02820F931F97FD0196959552
:103D0000879590935B0280935A02209184033091AF
:103D10008503821B930B90931B0180931A012091C2
:103D20004B0230914C0280911A0190911B01280F97
:103D3000391F37FF02C02F5F3F4F359527953093CE
:103D40004C0220934B0283E02FC11092500281E07D
:103D500080931001809133029091340201969093E8
:103D6000340280933302809178009091790090938F
:103D70001501809314018091140190911501AA27D7
:103D8000BB27A0906002B0906102C0906202D09008
:103D90006302A80EB91ECA1EDB1EA0926002B0927A
:103DA0006102C0926202D0926302809164028F5FCE
:103DB00080936402823108F4F6C0809116019091DC
:103DC0001701A0911801B09119017C018D0123E028
:103DD000EE0CFF1C001F111F2A95D1F7E81AF90AF3
:103DE0000A0B1B0BEA0CFB1C0C1D1D1D80913702DE
:103DF000992787FD9095A92FB92FBC01CD0126ECFD
:103E000034E240E050E00E946578DC01CB01E81A22
:103E1000F90A0A0B1B0BD801C7010496A11DB11D9D
:103E2000B7FF05C0D801C7010B96A11DB11D13E056
:103E3000B595A795979587951A95D1F78093160113
:103E400090931701A0931801B093190180910C066B
:103E500090910D067C010027F7FC0095102F8091B2
:103E6000160190911701A0911801B0911901E81A5B
:103E7000F90A0A0B1B0BE0920F03F0921003009358
:103E800011031093120320913802309139024091AE
:103E90003A0250913B0257FF04C0215F3F4F4F4F02
:103EA0005F4FF4E05595479537952795FA95D1F7EB
:103EB0008091380290913902A0913A02B0913B0270
:103EC000821B930BA40BB50B80933802909339029D
:103ED000A0933A02B0933B0280913802909139024C
:103EE000A0913A02B0913B028E0D9F1DA01FB11F01
:103EF0008093380290933902A0933A02B0933B0228
:103F00008091350290913602AC01E5E0440F551FD7
:103F1000EA95E1F7481B590B8091380290913902DC
:103F2000A0913A02B0913B02B7FF03C00F96A11DCA
:103F3000B11D74E0B595A795979587957A95D1F7BA
:103F400020910F0330911003281B390B63E0220FDF
:103F5000331F6A95E1F7240F351F37FF02C0215E3A
:103F60003F4F45E0359527954A95E1F73093360266
:103F700020933502D601C501D7FE03C00196A11DCD
:103F8000B11DB595A79597958795809360029093FD
:103F90006102A0936202B093630289E0809364029D
:103FA00002C01092500282E080934F0280914F0233
:103FB00080937C0080915002882319F08FEC8093CD
:103FC0007A00FF91EF91BF91AF919F918F917F9177
:103FD0006F915F914F913F912F911F910F91FF90A2
:103FE000EF90DF90CF90BF90AF900F900FBE0F90EB
:103FF0001F90189590E2E1E2F1E08FE491938150F7
:1040000087FFFCCF089590916702E1E2F1E0E90FAC
:10401000F11D80839F5F909367020895EF92FF9256
:104020000F931F93CF93DF932091650220FF0AC067
:1040300080916602882311F0815002C08091200196
:104040008093660221FF0CC090916602809120014E
:10405000981719F41092660203C09F5F909366024E
:10406000822F992780FF04C081FF02C01092660250
:104070000E94FA1F80916602282F332753E0E52E15
:1040800050E2F52EC0912804D09129048A3098F48A
:1040900081E1809367023F932F9382E794E09F939F
:1040A0008F93FF92EF92FE0109952DB73EB72A5FDD
:1040B0003F4F2DBF11C080E1809367023F932F9344
:1040C00087E794E09F938F93FF92EF92FE0109950B
:1040D0008DB79EB706968DBF20916602822F9927D5
:1040E000AA27BB27FC01429710F00C94BF2AE85A7C
:1040F000FF4F43E0E42E40E2F42EC0912804D0911B
:1041000029040C942B79109267028CE794E09F931A
:104110008F9303E010E2FF92EF92FE01099584E194
:10412000809367020F900F900F900F9081E690E0C0
:104130009F938F9382E590E09F938F931F921F929E
:10414000809102016AE00E948478892F99279F93C9
:104150008F93809102010E94847899279F938F9377
:104160008CE894E09F938F93FF92EF92E091280464
:10417000F0912904099588E2809367022DB73EB734
:10418000225F3F4F2DBF8DE896E09F938F930E9453
:10419000262E99279F938F9381EA94E09F938F9384
:1041A000FF92EF92E0912804F091290409958DB7D0
:1041B0009EB708968DBF90914104992351F08CE3EE
:1041C00080936702892F99279F938F938FEA94E0BA
:1041D00081C690916D02992371F08CE38093670200
:1041E000892F99279F938F9386EC94E09F938F93C9
:1041F0001F930F9391C08091420484FF07C08CE30A
:10420000809367028BED94E00C94512A8091920187
:1042100090919301069710F00C94C82A8CE3809338
:10422000670288EE94E00C94512A8091250633E0D1
:10423000E32E30E2F32EC0912804D091290480FFB0
:1042400074C01092670280910F0390911003A091A7
:104250001103B0911203BC01CD0125E030E040E034
:1042600050E00E94D9783F932F9385EF94E09F937D
:104270008F93FF92EF92FE01099584E1809367028C
:104280002DB73EB72A5F3F4F2DBF80910B03909112
:104290000C03A0910D03B0910E03BC01CD0125E0EC
:1042A00030E040E050E00E94D9783F932F9382E0C5
:1042B00095E09F938F93FF92EF92E0912804F09105
:1042C0002904099588E2809367028DB79EB7069608
:1042D0008DBF80911401909115019F938F938FE072
:1042E00095E09F938F93FF92EF92E0912804F091D5
:1042F000290409958CE3809367022DB73EB72A5FA6
:104300003F4F2DBF87B599279F938F938CE195E001
:104310009F938F93FF92EF92E0912804F0912904EC
:1043200009958DB79EB7069633C71092670289E24A
:1043300095E09F938F93FF92EF92FE01099584E1A0
:10434000809367020F900F900F900F9088E395E095
:104350009F938F93FF92EF92E0912804F0912904AC
:10436000099588E2809367020F900F900F900F904D
:1043700081E495E09F938F93FF92EF92E091280460
:10438000F091290409958CE3809367020F900F90B8
:104390000F900F9080E595E09F938F93FF92EF929F
:1043A0000C94552A1092670289E595E09F938F93AC
:1043B00003E010E2FF92EF92FE01099584E1809301
:1043C00067020F900F900F900F9080917103909162
:1043D0007203A0917303B0917403B7FF04C08150BE
:1043E0009C4FAF4FBF4F2AE0B595A79597958795FE
:1043F0002A95D1F7BF93AF939F938F9386E695E06D
:104400009F938F931F930F93E0912804F0912904B9
:10441000099588E2809367022DB73EB7285F3F4F2A
:104420002DBF8091690390916A03A0916B03B091B5
:104430006C03B7FF04C081509C4FAF4FBF4FCAE021
:10444000B595A79597958795CA95D1F7BF93AF93E3
:104450009F938F9385E795E09F938F931F930F937F
:10446000E0912804F091290409958CE38093670278
:104470008DB79EB708968DBF80912F039091300322
:104480009F938F9384E895E09F938F931F930F934F
:10449000E0912804F091290409952DB73EB72A5FD1
:1044A0003F4F11C7109267028091470790914807CC
:1044B0009F938F9380914507909146079F938F9389
:1044C00083E995E09F938F93FF92EF92FE01099508
:1044D00084E1809367028DB79EB708968DBF809167
:1044E0004B0790914C079F938F9380914907909130
:1044F0004A079F938F9383EA95E09F938F93FF9250
:10450000EF92E0912804F0912904099588E28093C4
:1045100067022DB73EB7285F3F4F2DBF80914F07F1
:10452000909150079F938F9380914D0790914E07E4
:104530009F938F9383EB95E09F938F93FF92EF92DE
:10454000E0912804F091290409958CE38093670297
:104550008DB79EB708968DBF8091530790915407F1
:104560009F938F9380915107909152079F938F93C0
:1045700083EC95E0A2C01092670280911A06E82FA2
:10458000FF27EE0FFF1FED5BF84F808191819F9316
:104590008F9380911906E82FFF27EE0FFF1FED5B29
:1045A000F84F808191819F938F9383ED95E09F9346
:1045B0008F93FF92EF92FE01099584E18093670249
:1045C0008DB79EB708968DBF80911C06E82FFF27F8
:1045D000EE0FFF1FED5BF84F808191819F938F93CA
:1045E00080911B06E82FFF27EE0FFF1FED5BF84FB2
:1045F0008081918188589F4F9F938F9383EE95E0A0
:104600009F938F93FF92EF92E0912804F0912904F9
:10461000099588E2809367022DB73EB7285F3F4F28
:104620002DBF80911E06E82FFF27EE0FFF1FED5BC9
:10463000F84F8081918182599F4F9F938F938091F2
:104640001D06E82FFF27EE0FFF1FED5BF84F80815F
:10465000918182599F4F9F938F9383EF95E09F9312
:104660008F93FF92EF92E0912804F091290409952D
:104670008CE3809367028DB79EB708968DBF8091BB
:104680002006E82FFF27EE0FFF1FED5BF84F80811C
:10469000918182599F4F9F938F9380911F06E82F9E
:1046A000FF27EE0FFF1FED5BF84F8081918182594C
:1046B0009F4F9F938F9383E096E09F938F93FF92FA
:1046C000EF92E0912804F091290409952DB73EB7A7
:1046D000285F3F4FF8C51092670283E196E09F93F1
:1046E0008F9303E010E2FF92EF92FE010995809113
:1046F00002010F900F900F900F908A3009F09DC02B
:1047000084E18093670280918603909187039C01E6
:1047100097FF02C0295F3F4F287F821B930B9F9317
:104720008F93809186039091870397FD0796A3E06E
:1047300095958795AA95E1F79F938F93209186038E
:104740003091870337FF02C0295F3F4FF3E0359573
:104750002795FA95E1F78091470290914802821BD4
:10476000930B9F938F9381E296E09F938F931F9378
:104770000F93E0912804F0912904099588E2809331
:1047800067028DB79EB70A968DBF80918403909182
:1047900085039C0197FF02C0295F3F4F287F821B42
:1047A000930B9F938F93809184039091850397FD42
:1047B0000796E3E095958795EA95E1F79F938F93A8
:1047C000209184033091850337FF02C0295F3F4F5A
:1047D00073E0359527957A95E1F7809145029091A0
:1047E0004602821B930B9F938F9382E396E09F93E5
:1047F0008F931F930F93E0912804F091290409955A
:104800008CE3809367022DB73EB7265F3F4F2DBFE5
:1048100080918203909183039F938F938091820371
:10482000909183032091430230914402821B930BA9
:104830009F938F9383E496E0A7C38B3019F0843164
:1048400008F4ADC084E18093670280918603909163
:1048500087039C0197FF02C0215F3F4F207F821B8F
:10486000930B97FD0196959587959F938F938091D4
:1048700086039091870397FD0F9654E09595879551
:104880005A95E1F79F938F93209186033091870388
:1048900037FF02C0295F3F4F43E0359527954A9582
:1048A000E1F78091470290914802821B930B9F93FE
:1048B0008F9381E596E09F938F931F930F93E091E1
:1048C0002804F0912904099588E2809367022DB7A6
:1048D0003EB7265F3F4F2DBF8091840390918503A3
:1048E0009C0197FF02C0215F3F4F207F821B930BEB
:1048F00097FD0196959587959F938F93809184035B
:104900009091850397FD0F96C4E095958795CA957C
:10491000E1F79F938F93209184033091850337FFB4
:1049200002C0295F3F4FB3E035952795BA95E1F76F
:104930008091450290914602821B930B9F938F9327
:1049400083E696E09F938F931F930F93E091280443
:10495000F091290409958CE3809367028DB79EB787
:104960000A968DBF809182039091830397FD0196F3
:10497000959587959F938F93809182039091830360
:104980002091430230914402821B930B9F938F939B
:1049900085E796E09F938F931F930F9392CE8D3070
:1049A00009F0F6C584E1809367028091130199278D
:1049B0009F938F93809186039091870397FD0F9625
:1049C000F4E095958795FA95E1F79F938F93209161
:1049D00086033091870337FF02C0295F3F4FE3E032
:1049E00035952795EA95E1F7809147029091480225
:1049F000821B930B9F938F9384E896E09F938F93F2
:104A00001F930F93E0912804F0912904099588E2FF
:104A1000809367028DB79EB70A968DBF8091120171
:104A200099279F938F93809184039091850397FD9D
:104A30000F9674E0959587957A95E1F79F938F93FC
:104A4000209184033091850337FF02C0295F3F4FD7
:104A500063E0359527956A95E1F78091450290913D
:104A60004602821B930B9F938F9388E996E09F9356
:104A70008F931F930F93E0912804F09129040995D7
:104A80008CE3809367022DB73EB7265F3F4F2DBF63
:104A90008091110199279F938F9380918203909128
:104AA000830397FD0196959587959F938F938091AA
:104AB0008203909183032091430230914402821B30
:104AC000930B9F938F938CEA96E09F938F931F9302
:104AD0000F93E0912804F091290409958DB79EB7B2
:104AE0000A9656C31092670280EC96E09F938F93CC
:104AF000FF92EF92FE01099584E1809367020F9087
:104B00000F900F900F9080917C0390917D039F9365
:104B10008F9380913F02909140029F938F938DECF1
:104B200096E09F938F93FF92EF92E0912804F0918B
:104B30002904099588E2809367022DB73EB7285F64
:104B40003F4F2DBF80917A0390917B039F938F936A
:104B500080914102909142029F938F938CED96E059
:104B60009F938F93FF92EF92E0912804F091290494
:104B700009958CE3809367028DB79EB708968DBF29
:104B800080917603909177039F938F9380913D025C
:104B900090913E029F938F938BEE96E08ECD109274
:104BA000670280911E0190911F016AE070E00E94EF
:104BB000A4789F938F9380911E0190911F016AE0CA
:104BC00070E00E94A4787F936F938AEF96E09F93A2
:104BD0008F93FF92EF92FE01099584E18093670223
:104BE0008DB79EB708968DBF8091800890918108FF
:104BF0006AE070E00E9490789F938F938091800884
:104C0000909181086AE070E00E9490787F936F93A2
:104C10008EE097E09F938F93FF92EF92E0912804AC
:104C2000F0912904099588E2809367022DB73EB779
:104C3000285F3F4F2DBF80918208909183089F93FA
:104C40008F9382E297E09F938F93FF92EF92E09190
:104C50002804F091290409958CE3809367028DB7AD
:104C60009EB706968DBF80918408909185089F938A
:104C70008F9382E397E02EC11092670284E497E05D
:104C80009F938F93FF92EF92FE01099584E18093A9
:104C900067020F900F900F900F90809143079091B3
:104CA00044079F938F938DE497E09F938F93FF9298
:104CB000EF92E0912804F0912904099588E280930D
:104CC00067028DB79EB706968DBF80911D03992709
:104CD0009F938F938DE597E09F938F93FF92EF9231
:104CE000E0912804F091290409958CE380936702F0
:104CF0002DB73EB72A5F3F4F2DBF809142079927BE
:104D000001979F938F938DE697E002CB10926702F5
:104D10008DE797E09F938F93FF92EF92FE010995A5
:104D200084E1809367020F900F900F900F90809115
:104D30002B0390912C039F938F9385E897E09F938B
:104D40008F93FF92EF92E0912804F0912904099546
:104D500088E2809367022DB73EB72A5F3F4F2DBF91
:104D600080912F03909130039F938F9383E997E075
:104D70009F938F93FF92EF92E0912804F091290482
:104D800009958CE3809367028DB79EB706968DBF19
:104D900080912D0390912E039F938F9381EA97E04A
:104DA00099C01092670280911E0399279F938F9359
:104DB0008FEA97E09F938F93FF92EF92FE01099500
:104DC00084E1809367028DB79EB706968DBF809170
:104DD0001F0399279F938F938BEB97E09F938F935C
:104DE000FF92EF92E0912804F0912904099588E25E
:104DF000809367022DB73EB72A5F3F4F2DBF80914A
:104E0000200399279F938F9387EC97E09F938F932D
:104E1000FF92EF92E0912804F091290409958CE328
:104E2000809367028DB79EB706968DBF8091210350
:104E300099279F938F9383ED97E04CC01092670260
:104E40008091220399279F938F938FED97E09F93F3
:104E50008F93FF92EF92FE01099584E180936702A0
:104E60008DB79EB706968DBF8091230399279F9398
:104E70008F938BEE97E09F938F93FF92EF92E09149
:104E80002804F0912904099588E2809367022DB7E0
:104E90003EB72A5F3F4F2DBF8091240399279F93F0
:104EA0008F9387EF97E09F938F93FF92EF92E0911C
:104EB0002804F091290409958CE3809367028DB74B
:104EC0009EB706968DBF8091250399279F938F9358
:104ED00083E098E09F938F93FF92EF92D9CA10924C
:104EE00067028FE098E09F938F9303E010E2FF92B8
:104EF000EF92FE01099584E1809367020F900F9075
:104F00000F900F908091C10199279F938F9387E114
:104F100098E09F938F93FF92EF92E0912804F09195
:104F20002904099588E2809367028DB79EB706969B
:104F30008DBF80911E0290911F0297FD039695955B
:104F40008795959587959F938F9385E298E09F939A
:104F50008F931F930F93E0912804F09129040995F2
:104F60008CE3809367022DB73EB72A5F3F4F2DBF7A
:104F70008091480699279F938F93809147069927A0
:104F80009F938F9383E398E09F938F931F930F9347
:104F9000E0912804F091290409958DB79EB70896F1
:104FA000F7C01092670281E498E09F938F93FF927D
:104FB000EF92FE01099584E1809367020F900F90B4
:104FC0000F900F9080916204992787FD90959F9391
:104FD0008F9380916104992787FD90959F938F937C
:104FE00081E598E09F938F93FF92EF92E0912804E0
:104FF000F0912904099588E2809367022DB73EB7A6
:10500000285F3F4F2DBF80916304992787FD9095BE
:105010009F938F938091640499279F938F9381E648
:1050200098E09F938F93FF92EF92E0912804F09184
:10503000290409958CE3809367028DB79EB7089683
:105040008DBF8091680499279F938F938091650409
:10505000992787FD90959F938F9381E798E02DCBBB
:105060001092670281E898E09F938F93FF92EF92EE
:10507000FE01099584E1809367020F900F900F90D5
:105080000F908091FD0699278F7790709F938F9353
:105090008091F50699278F7790709F938F938091D9
:1050A000ED0699278F7790709F938F938091E506F7
:1050B00099278F7790709F938F9381E998E09F93C2
:1050C0008F93FF92EF92E0912804F09129040995C3
:1050D00088E2809367028DB79EB70C968DBF809152
:1050E0001D0799278F7790709F938F938091150755
:1050F00099278F7790709F938F9380910D079927B1
:105100008F7790709F938F938091050799278F7762
:1051100090709F938F9382EA98E09F938F93FF9272
:10512000EF92E0912804F091290409958CE3809393
:1051300067022DB73EB7245F3F4F2DBF80913D07DB
:1051400099278F7790709F938F9380913507992738
:105150008F7790709F938F9380912D0799278F77EA
:1051600090709F938F938091250799278F779070E8
:105170009F938F9383EB98E09F938F93FF92EF928F
:10518000E0912804F091290409958DB79EB70C96FB
:105190008DBFFEC11092670284EC98E09F938F93BD
:1051A000FF92EF92FE01099584E1809367020F90D0
:1051B0000F900F900F9080910107992787FD909590
:1051C0009F938F938091F906992787FD90959F93E0
:1051D0008F938091F106992787FD90959F938F93E8
:1051E0008091E906992787FD90959F938F9383ED92
:1051F00098E09F938F93FF92EF92E0912804F091B3
:105200002904099588E2809367022DB73EB7245F91
:105210003F4F2DBF80912107992787FD90959F9340
:105220008F9380911907992787FD90959F938F936E
:1052300080911107992787FD90959F938F93809177
:105240000907992787FD90959F938F9384EE98E0A7
:105250009F938F93FF92EF92E0912804F09129049D
:1052600009958CE3809367028DB79EB70C968DBF2E
:1052700080914107992787FD90959F938F93809107
:105280003907992787FD90959F938F9380913107D8
:10529000992787FD90959F938F9380912907992750
:1052A00087FD90959F938F9385EF98E09F938F93C1
:1052B000FF92EF92E0912804F091290409952DB70F
:1052C0003EB7245F3F4F2DBF63C11092670286E057
:1052D00099E09F938F9303E010E2FF92EF92FE011B
:1052E000099584E1809367020F900F900F900F90C3
:1052F0008091FD06881F8827881F97E0899FC0013D
:1053000011248D969F938F938091F506881F88278F
:10531000881F96E0899FC00111248D969F938F93DB
:105320008091ED06881F8827881F95E0899FC0011E
:1053300011248D969F938F938091E506881F88276F
:10534000881F9927880F991F880F991F8D969F9303
:105350008F9385E199E09F938F93FF92EF92E09175
:105360002804F0912904099588E2809367028DB79B
:105370009EB70C968DBF80911D07881F8827881FB8
:105380009BE0899FC00111248D969F938F938091FC
:105390001507881F8827881F9AE0899FC00111245C
:1053A0008D969F938F9380910D07881F8827881F64
:1053B00099E0899FC00111248D969F938F938091CE
:1053C0000507881F8827881F992723E0880F991FC2
:1053D0002A95E1F78D969F938F9389E299E09F93A9
:1053E0008F93FF92EF92E0912804F09129040995A0
:1053F0008CE3809367022DB73EB7245F3F4F2DBFEC
:1054000080912507881F8827881F9CE0899FC001FD
:1054100011248D969F938F938DE399E09F938F93A3
:10542000FF92EF92E0912804F09129040995809170
:105430002D072DB73EB72A5F3F4F2DBF87FF12C004
:1054400080E4809367028EE499E09F938F93FF92AC
:10545000EF92E0912804F091290409950F900F90A4
:105460000F900F908091350787FF12C084E48093DE
:10547000670281E599E09F938F931F930F93E091CB
:105480002804F091290409950F900F900F900F9028
:1054900080913D0787FF7CC088E48093670284E5A4
:1054A00099E09F938F931F930F93E0912804F091BD
:1054B000290409950F900F900F900F9069C01092DA
:1054C000670287E599E09F938F93FF92EF92FE0129
:1054D000099584E1809367020F900F900F900F90D1
:1054E0008091F5019091F6019F938F9385E699E065
:1054F0009F938F93FF92EF92E0912804F0912904FB
:10550000099588E2809367028DB79EB706968DBF96
:105510008091F7019091F8019F938F9382E799E032
:105520009F938F93FF92EF92E0912804F0912904CA
:10553000099589E4809367022DB73EB72A5F3F4FF4
:105540002DBF8FE799E09F938F93FF92EF92E091A9
:105550002804F09129040995809165020F900F901D
:105560000F900F9083FF14C01092F8011092F70172
:1055700060E070E08EE090E00E94D42C09C0809141
:105580002001281719F4215020932001109266025F
:1055900010926502E6E0CDB7DEB70C941C79F9995C
:1055A000FECF92BD81BDF89A80B599270895F999EB
:1055B000FECF1FBA92BD81BD60BD0FB6F894FA9AB6
:1055C000F99A0FBE08954AEA20E030E0261737071F
:1055D00040F4FC018191480F2F5F3F4F261737079A
:1055E000C8F3842F99270895EAEA40E050E046176F
:1055F000570778F49C01F999FECF32BD21BDF89A86
:1056000080B5E80F4F5F5F4F2F5F3F4F461757073B
:1056100090F38E2F9927089581E080931B0682E0F6
:1056200080931A0683E08093190684E080931C0619
:1056300085E080931D0686E080931E0687E08093B8
:105640001F0688E08093200689E0809321068AE087
:10565000809322068BE0809323068CE080932406BF
:10566000089595E59093180680910201843170F0B9
:105670008AE08093380610925C068BE180933406B2
:105680008EE48093590680935A060DC083E0809380
:10569000380680E280935C068EE180933406909316
:1056A000590690935A068AE68093250683E08093F4
:1056B0007E0681E080933F0610927B06109278066A
:1056C00068E06093320686EE8093330680E880932C
:1056D00035065EE1509326068FEF809328069FE003
:1056E000909329065093270610922B0660932C0660
:1056F00080E480932D0610922E0690932A06109235
:1057000041061092420610924306109244061092EF
:105710005E0610925F06109260061092610638E7EE
:105720003093450648E24093460672E070937D064A
:105730009093470627EF2093480685E080934D0617
:105740008DE78093500680935106809352063093E4
:1057500049069AE590934A0610924B0620934C0610
:1057600040934E0610924F068FE58093620683EFBA
:10577000809364068AEA809366068093670684E1D4
:10578000809363068093650682E38093530690932B
:1057900054068093550610927C068EEF809368061F
:1057A00024E62093690690936A0690936B06909383
:1057B0006C068BE480936D0680936E0680936F0673
:1057C0001092700686E08093710660937206909343
:1057D0007306509374062093750620937606709393
:1057E00077061092790610927A0681E280933C0641
:1057F0008DE280933D0690933E060895CF93DF930C
:105800000E94312B8EE080932F0620E120933006FA
:105810003CE03093310690E59093360686E980931C
:1058200037069093390680933A0686E080933B06CC
:1058300080E2809340068AE580935606909357064F
:1058400081E08093580620935B0684E680935D0692
:10585000AFE7B6E0E1E7F1E0ED01019009923A959A
:10586000E1F763E770E0CD01875690400E94E32A9C
:1058700080938B06DF91CF910895CF93DF930E94A1
:10588000312B8AE080932F0680E18093300626E05A
:10589000209331069AE59093360688E78093370681
:1058A0009093390680933A0620933B0620E220939A
:1058B00040069093560680E5809357068CE38093CC
:1058C000580620935B068BE480935D06AFE7B6E055
:1058D0008CE0E8E7F1E0ED01019009928A95E1F7AB
:1058E00063E770E0CD01875690400E94E32A8093E1
:1058F0008B06DF91CF910895CF93DF930E94312BD8
:1059000088E080932F0630E13093300626E0209324
:10591000310694E69093360688E780933706909395
:10592000390680933A0620933B06309340068AE579
:105930008093560680E58093570696E49093580628
:1059400080E280935B0690935D06AFE7B6E08CE063
:10595000E0E8F1E0ED01019009928A95E1F763E753
:1059600070E0CD01875690400E94E32A80938B0619
:10597000DF91CF910895F999FECF92BD81BDF89A3C
:1059800080B599270895F999FECF1FBA92BD81BDC0
:1059900060BD0FB6F894FA9AF99A0FBE08956FECAD
:1059A0007AE20E94F376089547ED5AE20E942D773D
:1059B0000895EF92FF920F931F93CF93C82F8150BA
:1059C000853008F0C3E084E7C89F8001112480EF90
:1059D000E82E8FEFF82EE00EF11E63E770E0C701AE
:1059E0000E94F42A682F98012D593F4F8FB39927B1
:1059F000AC014270507081FDF9CF32BD21BDF89AE3
:105A000080B5861711F0CA0121C08FB399279C0178
:105A10002270307081FDF9CFF2BCE1BCF89A80B5FC
:105A2000853511F0C90112C084E7C89FC001112457
:105A300040972FEC3AE244E750E0BC0188E196E061
:105A40000E94CE760E94AC6781E090E0CF911F91DA
:105A50000F91FF90EF900895282F863010F025E0E9
:105A600003C0882309F421E0F999FECF1FBA82E030
:105A700090E092BD81BD20BD0FB6F894FA9AF99AD4
:105A80000FBE0895CF93C82F80911806853509F071
:105A900042C0C63010F0C5E003C0CC2309F43BC0BF
:105AA00063E770E088E196E00E94E32A80938B062A
:105AB00084E7C89FC001112427ED3AE244E750E093
:105AC00068E176E040970E940B7727ED3AE24CE0E0
:105AD00050E069E176E080E590E00E940B776CE0B1
:105AE00070E089E196E00E94E32A282FF999FECF21
:105AF0001FBA8CE590E092BD81BD20BD0FB6F89431
:105B0000FA9AF99A0FBE8C2F0E942C2D0E94AC6736
:105B100081E090E002C080E090E0CF9108956DE4D4
:105B200070E088EE93E00E94F42A482F8FB3992703
:105B30009C012270307081FDF9CF85E394E092BD25
:105B400081BDF89A80B5841779F48FB399279C01A9
:105B50002270307081FDF9CF88EE93E092BD81BD57
:105B6000F89A80B5813011F0C90108952FEC3AE21E
:105B70004EE450E068EE73E08CE896E00E94CE764A
:105B800081E090E0089580918C068130A9F46DE465
:105B900070E08CE896E00E94E32A8093D90627ED16
:105BA0003AE24EE450E06CE876E088EE93E00E9442
:105BB0000B7781E090E0089580E090E00895CF9326
:105BC000DF9381E080938C06ECE8F6E08FE01586A9
:105BD00016861786108A8150349687FFF8CF80E4A6
:105BE0008093990680939A0610929B0680939C0658
:105BF00080939D0690EC90939E0610929F06809352
:105C0000A0068093A1061092A2069093A3069093FB
:105C1000A4068093A5061092A6068093A7069093EB
:105C2000A806ADE8B6E087E0EAE8F1E0ED01019012
:105C300009928A95E1F76DE470E0CD0101970E9429
:105C4000E32A8093D906DF91CF910895F999FECF89
:105C500082E090E092BD81BDF89A80B5282F863011
:105C600078F023E0322FF999FECF1FBA82E090E05E
:105C700092BD81BD30BD0FB6F894FA9AF99A0FBE65
:105C8000822F992708951F93CF93C82F162F863000
:105C900010F0C5E003C0882309F4C1E08C2F9927D8
:105CA0008230910541F08330910544F4019731F43D
:105CB0000E94FE2B05C00E943D2C02C00E947C2C3D
:105CC0001123E1F06CE070E080E590E00E94F42A9E
:105CD000282FF999FECF8CE590E092BD81BDF89A0E
:105CE00080B5821759F42FEC3AE24CE050E060E5C1
:105CF00070E089E196E00E94CE7602C00E940C2BF3
:105D00008C2F0E94422DCF911F910895DF92EF9228
:105D1000FF920F931F93CF93FF24DF2CEF2C81E092
:105D200090E00E94BB2C853539F031E0E32E65E52B
:105D300081E090E00E94C32C6CE070E080E590E090
:105D40000E94F42AC82FF999FECF8CE590E092BD0D
:105D500081BDF89A80B58C1711F421E0D22EC1E0F4
:105D600001E010E0EE2029F48C2F0E94D92C88232A
:105D7000C1F591E0F92E1F930F9387E899E09F9367
:105D80008F9380EF92E19F938F93E0912804F0919D
:105D9000290409958DB79EB706968DBF023011056F
:105DA00049F0033011054CF40130110531F40E9423
:105DB000FE2B05C00E943D2C02C00E947C2CDD20E1
:105DC00059F02FEC3AE24CE050E060E570E089E1F8
:105DD00096E00E94CE7602C00E940C2B8C2F0E946F
:105DE000422DCF5F0F5F1F4FC63008F4BBCFFF209F
:105DF00019F083E00E942C2D0E94262EC82F0E94AD
:105E0000D92C8C2F99279F938F938DEA99E09F939C
:105E10008F9300EF12E11F930F93E0912804F0910C
:105E2000290409958DB79EB706968DBFEE2021F403
:105E30000E948F2D882399F486EC99E09F938F938D
:105E40001F930F93E0912804F091290409950E9473
:105E5000DF2D0E94C32D0F900F900F900F90109286
:105E6000170690E0E9E9F6E0CFE080813496181655
:105E70000CF49F5FC150C7FFF8CF90931706892F8E
:105E800099279F938F938DE896E09F938F9387EE4A
:105E900099E09F938F931F930F93E0912804F091C3
:105EA000290409958DB79EB708968DBF88E09AE0C2
:105EB0009F938F931F930F93E0912804F0912904EF
:105EC00009950F900F900F900F90CF911F910F9108
:105ED000FF90EF90DF900895982F2FB7F89439989E
:105EE000389A88B1836088B98091B9008C7F80939B
:105EF000B9008AE28093B800109272021092700288
:105F000010926F02992379F0E2EEF6E08BE01082B6
:105F10001182128213821482158216821782815096
:105F2000389687FFF4CF78942FBF089510927202AD
:105F300084E98093BC0080E88093BC001092BD008F
:105F40001092BA001092BB001092B9001092B800E3
:105F500010926E0280E00E946C2F1092BB0085E8C8
:105F60008093BC0080916C02826080936C020895E3
:105F70001F920F920FB60F9211242F933F934F93BE
:105F80005F938F939F93EF93FF9380917202282FDB
:105F90003327442755278F5F80937202F9012731F9
:105FA000310508F0C2C2E659FF4F0C942B7981E00D
:105FB00080936E0209C0809170028C3090F48091C1
:105FC00070028F5F8093700280917002E82FFF272C
:105FD000EE0FFF1FEE0FFF1FE457F94F85851816D0
:105FE00054F7809170028C3070F010926B02109216
:105FF0006A021092700285E08093720280916F02B3
:10600000880F8D5A04C080917002880F8E5A809339
:10601000BB0085E87FC280917002E82FFF2783E0F4
:10602000EE0FFF1F8A95E1F7EE51F94F81818093C2
:10603000BB0085E88093BC0080917002E82FFF27A9
:10604000EE0FFF1FEE0FFF1FEE0FFF1FEE51F94F78
:10605000808180FF91C080917002E82FFF27EE0FB2
:10606000FF1FEE0FFF1FEE0FFF1FEE51F94F828152
:10607000882329F080911706873008F46CC280913C
:106080006A0290916B02892B09F065C280916802C7
:1060900090916902892B09F05EC26EC080917002F6
:1060A00021E030E002C0220F331F8A95E2F7809191
:1060B00068029091690228233923232B79F080917B
:1060C0007002E82FFF27EE0FFF1FEE0FFF1FEE0FEE
:1060D000FF1FEE51F94F80E184830DC08091700263
:1060E000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F22
:1060F000EE51F94F148280917002E82FFF2753E090
:10610000EE0FFF1F5A95E1F7EE51F94F8481282FCA
:10611000332743E0220F331F4A95E1F78091700245
:10612000E82FFF2793E0EE0FFF1F9A95E1F7EE515E
:10613000F94F82818770822B8093BB0085E8809322
:10614000BC002091700281E090E002C0880F991F8E
:106150002A95E2F720916A0230916B028223932301
:10616000892B51F08AED96E0909376028093750228
:1061700088E080937702EFC184E089C1E0917502E5
:10618000F091760281918093BB0085E88093BC00FA
:10619000F0937602E09375028091770281508093AC
:1061A0007702882309F4D7C183E071C18091B900D7
:1061B000803351F580917302882329F48091700215
:1061C0008F5F8093730280917002E82FFF2783E036
:1061D000EE0FFF1F8A95E1F7EE51F94F8381992762
:1061E0008F7790708F3791057CF480917002E82F43
:1061F000FF27EE0FFF1FEE0FFF1FEE0FFF1FEE51E9
:10620000F94F83818F5F83831092720284E98093B8
:10621000BC008AE090E0909393018093920180917A
:1062200070028F5F80937002109272026DC1809134
:10623000B9008034C9F180916F02E82FFF27EE0F7B
:10624000FF1FEE0FFF1FEE0FFF1FEE51F94F83816F
:106250008F77838380916F028F5F80936F0280912D
:106260006F028C30A0F010926F02109269021092AF
:106270006802809174028F5F809374028C3038F0D2
:106280001092740280916C028D7F80936C028091D9
:106290006C02816080936C021092720284E9809398
:1062A000BC0010926E0273C080916F02E82FFF272E
:1062B000EE0FFF1FEE0FFF1FEE0FFF1FEE51F94F06
:1062C00083818068838380916F02E82FFF27EE0F20
:1062D000FF1FEE0FFF1FEE0FFF1FEE51F94F8081E2
:1062E00080FF2FC080916F02E82FFF2753E0EE0F51
:1062F000FF1F5A95E1F7EE51F94F848199270097D6
:1063000051F04097D9F58AED96E09093760280930C
:10631000750288E031C080916F02992743E0880FB1
:10632000991F4A95E1F78951994F9093760280938E
:10633000750290916F02809174029817E1F483E0E6
:106340001BC080916F02992733E0880F991F3A95FF
:10635000E1F78951994F909376028093750280916D
:106360006C0281FD06C090916F02809174029817B3
:1063700011F482E001C081E080937702809177027E
:10638000813011F485E801C085EC8093BC008091D8
:10639000730280936D0210927302DDC0E09175026A
:1063A000F09176028091BB0080838091750290917C
:1063B000760201969093760280937502809177021F
:1063C000815080937702823010F085EC5DC081307F
:1063D00011F485E859C080916C0281FF2DC0809135
:1063E000E90280FD1DC080916F02E82FFF2723E0A6
:1063F000EE0FFF1F2A95E1F7EE51F94F86818A3F94
:1064000079F480916F02E82FFF2793E0EE0FFF1FD2
:106410009A95E1F7EE51F94F8081816080830CC03D
:1064200080916F02E82FFF2783E0EE0FFF1F8A9510
:10643000E1F7EE51F94F108280916F028F5F8093E8
:106440006F0280916F028C30A0F010926F02109258
:10645000690210926802809174028F5F80937402C7
:106460008C3038F01092740280916C028D7F809392
:106470006C021092720284E98093BC0080916C02DD
:10648000816080936C0265C08093BC0086E080933D
:10649000720261C088E9BBCD80917102880F805F74
:1064A000B6CD8091710299278130910561F08230DB
:1064B00091051CF4892B21F04EC0029739F04BC096
:1064C00080911301A4CD80911201A1CD8091110181
:1064D0009ECD80E89CCD1092720284E98093BC002E
:1064E00010926E028AE090E0909393018093920163
:1064F00080917102823088F4809171028F5F809365
:10650000710282E18093720280916C028E7F80938F
:106510006C0285EA8093BC001EC0109271028091CB
:106520006C02816080936C0216C01092720284E942
:106530008093BC0080916C02816080936C028AE041
:1065400090E09093930180939201109270021092C8
:106550006F0210926E02FF91EF919F918F915F9168
:106560004F913F912F910F900FBE0F901F90189554
:106570001F93CF93DF93182F80911403882321F466
:1065800080910302882319F081E090E097C01D30CC
:1065900008F092C01123B1F0E12FFF2723E0EE0FA6
:1065A000FF1F2A95E1F7EE51F94F35978081359617
:1065B00088230CF081C03897808180FD03C083E080
:1065C00090E07CC08091DA06823019F084E090E09F
:1065D00075C067E070E08AED96E00E94E32A909132
:1065E000E106891719F085E090E068C080ED97E03A
:1065F0000E941617EC0180916C0280FD05C0CE014F
:106600000E941F178823B9F3112319F48FEF90E02C
:106610000BC0212F33272150304081E090E002C091
:10662000880F991F2A95E2F790936B0280936A0274
:10663000A1E0B0E0E2EEF6E040E050E06BE0CD013A
:10664000042E02C0880F991F0A94E2F720916A0273
:1066500030916B0282239323892B11F011821282D5
:1066600061504F5F5F4F389667FFE9CF109270021D
:106670001092720280916C028E7F80936C0285EA88
:106680008093BC0080916C0280FD05C0CE010E9409
:106690001F178823B9F380916A0290916B02892BAE
:1066A00029F0CE010E941F17882311F380916A02FE
:1066B00090916B02009711F082E090E0DF91CF9112
:1066C0001F9108950F931F93CF93DF93982F80917D
:1066D0001403882321F480910302882319F081E0B8
:1066E00090E092C09D30A0F4992319F486E090E0E8
:1066F0008BC0C92FDD27FE0133E0EE0FFF1F3A9557
:10670000E1F7EE51F94F35978081359687FD03C04B
:1067100082E090E079C03897808180FD03C083E0FB
:1067200090E072C080ED97E00E9416178C01809176
:106730006C0280FD05C0C8010E941F178823B9F3B1
:10674000219721E030E0C90102C0880F991FCA9546
:10675000E2F79093690280936802D901E2EEF6E0D5
:1067600040E050E06BE0CD01042E02C0880F991F7D
:106770000A94E2F720916802309169028223932300
:10678000892B11F01182128261504F5F5F4F389652
:1067900067FFE9CF10926F021092DA061092E106BD
:1067A0001092720280916C028E7F80936C0285EA57
:1067B0008093BC0080916C0280FD05C0C8010E94DE
:1067C0001F178823B9F38091680290916902892B81
:1067D00029F0C8010E941F17882311F38091DA065F
:1067E000823019F084E090E00FC067E070E08AED3D
:1067F00096E00E94E32A9091E106891719F085E05E
:1068000090E002C080E090E0DF91CF911F910F9166
:10681000089589E1A7E7B7E0E3E4F7E01182108289
:10682000329611961C921E921296815087FFF6CFD7
:1068300010928303109282031092850310928403B6
:10684000109287031092860308951F920F920FB63D
:106850000F9211240F931F932F933F934F935F93A6
:106860006F937F938F939F93AF93BF93CF93DF9358
:10687000EF93FF9380917E0682FDCFC0409186000A
:10688000509187008091790290917A02481B590BB0
:10689000809186009091870090937A02809379028C
:1068A000CA018D549440A0917B02B0917C02835F19
:1068B0009A4178F480917B0280934207149714F0F8
:1068C0001092940181E090E090937C0280937B028F
:1068D00007C2AD30B1050CF003C2CA018B5F904016
:1068E000845B914008F074C0425D5140FD01EA0FA5
:1068F000FB1FED5BF84F80819181FA01E81BF90BDA
:10690000CF01F7FF03C0909581959F4F06975CF4E8
:1069100080911D03883C20F480911D03865F01C097
:1069200088EC80931D03FD01EA0FFB1FED5BF84F20
:10693000808191819C01220F331F280F391F240F62
:10694000351F37FF02C02D5F3F4FE901D595C79531
:10695000D595C795CA0101968C179D0714F4219708
:1069600006C041505040C417D5070CF421968091C1
:106970001D03833CE0F08D010A0F1B1FF801ED5B46
:10698000F84F808191819E01281B390BC90163E07A
:1069900070E00E94A478CB01880F991F860F971F83
:1069A0000958184FD80111969C938E9307C0AA0FCF
:1069B000BB1FA958B84F11961C921E92E0917B0202
:1069C000F0917C02EE0FFF1FED5BF84FD183C08387
:1069D00020917B0230917C022F5F3F4F30937C02ED
:1069E00020937B0280910201843108F079C1253027
:1069F000310511F45D9A01C05D9880917B02909100
:106A00007C028630910511F45C9A01C05C9807976E
:106A100011F45B9A65C15B9863C140918600509107
:106A2000870080917D0290917E02481B590B8091D6
:106A300086009091870090937E0280937D02CA0128
:106A40008D5494406091E702835F9A4108F07AC0C8
:106A50006093780280917802843008F453C090915A
:106A6000420780917802981709F04CC05091E802D3
:106A70005B3008F43FC0109294011092E70240E0AE
:106A80005F31C0F0E42FFF27EE0FFF1F9F012D5451
:106A90003D4FDF01AD5BB84F8D919C91D9018D9336
:106AA0009C93DF01A958B84F8D919C91E353FD4F02
:106AB00091838083E42FFF27EE0FFF1F9F012D5B43
:106AC000384FDF01A158BD4F8D919C91D90111968E
:106AD0009C938E93DF01A756BD4F8D919C91E958F1
:106AE000F84F91838083842F8F5F482F8D3040F241
:106AF0008093E7028091E8028F3FB9F08F5F809327
:106B0000E80213C08091E802853620F08AE0809385
:106B1000E80202C01092E802809102018A3011F06E
:106B2000843110F0289A01C0289881E08093E70210
:106B300080911403882309F0D3C080917802809358
:106B40004207CEC06D3008F0A3C0CA018B5F9040F1
:106B5000845B914008F07EC0425D5140E62FFF27E4
:106B6000EE0FFF1FE158FD4F80819181FA01E81B74
:106B7000F90BCF0105960B97B0F48091E8028A31AA
:106B800020F080911D03865F05C08B3028F0809136
:106B90001D038E5F80931D0380911D03893C18F0B7
:106BA00088EC80931D03E62FFF27EE0FFF1FE158AF
:106BB000FD4F808191819C01220F331F280F391FC7
:106BC000240F351F37FF02C02D5F3F4FE901D595D8
:106BD000C795D595C795CA0101968C179D0714F4E2
:106BE000219706C041505040C417D5070CF4219698
:106BF00080911D038E3BD8F0E62FFF27EE0FFF1F7D
:106C0000DF01A158BD4F8D919C919E01281B390B2E
:106C1000C90163E070E00E94A478CB01880F991F3E
:106C2000860F971FE756FD4F9183808308C0E62F9C
:106C3000FF27EE0FFF1FE756FD4F11821082809154
:106C4000E702E82FFF27EE0FFF1FE158FD4FD1832A
:106C5000C08309C0809102018A3011F0843110F0A4
:106C6000289A01C0289880910201843188F480918B
:106C7000E702853011F45D9A05C05D98863011F405
:106C80005C9A05C05C98873011F45B9A01C05B98F0
:106C90008091E702843120F48F5F8093E70220C067
:106CA0008431F1F4809102018A3011F0843110F0C6
:106CB000289A01C028988EE18093E7022CE0C7E76C
:106CC000D7E0A3EBB2E0E3E4F7E08D919D919183EF
:106CD00080833296198218822296215027FFF5CFA1
:106CE000FF91EF91DF91CF91BF91AF919F918F91E4
:106CF0007F916F915F914F913F912F911F910F91D4
:106D00000F900FBE0F901F901895EF92FF920F9368
:106D10001F93809134069927880F991F880F991F18
:106D20007C010027F7FC0095102F80917103909152
:106D30007203A0917303B0917403BC01CD01A8014B
:106D400097010E94D9783093C4052093C3058091A0
:106D5000690390916A03A0916B03B0916C03BC012D
:106D6000CD01A80197010E94D9783093C6052093E0
:106D7000C5058091FD079091FE0797FD03969595B7
:106D80008795959587959093C8058093C7058091C1
:106D90000D0890910E0897FD03969595879595950A
:106DA00087959093CA058093C9058091820390913D
:106DB00083032091430230914402821B930B9093F2
:106DC000CC058093CB0580910F0390911003A09187
:106DD0001103B0911203BC01CD0125E030E040E089
:106DE00050E00E94D9783093CE052093CD05809154
:106DF0003D0290913E029093D0058093CF05809103
:106E00002F03909130039093D4058093D305809104
:106E10001E0190911F019093D6058093D505809116
:106E20001D0399279093D8058093D7058091090871
:106E300090910A08A0910B08B0910C08209196013E
:106E4000309197014091980150919901BC01CD0179
:106E50000E94D9783093DA052093D9058091E30612
:106E600099279093DC058093DB058091EB069927A9
:106E70009093DE058093DD058091F306992790932A
:106E8000E0058093DF058091FB0699279093E2054A
:106E90008093E10580911E0290911F029093EC0572
:106EA0008093EB0580918008909181089093F00584
:106EB0008093EF0580918408909185089093F20566
:106EC0008093F1058091860899279093FE05809321
:106ED000FD058091F9039091FA0390930006809349
:106EE000FF058091F7039091F80390930206809339
:106EF000010680914104882321F480914204882373
:106F000021F08091C205816003C08091C2058E7F0F
:106F10008093C2051F910F91FF90EF9008951F93EA
:106F2000CF93DF93182FEB01809114038823A1F4F2
:106F300011501F3F89F0D0932502C0932402809105
:106F4000240290912502892BD1F7CE018C0F9D1F31
:106F50000E942B17115078F7DF91CF911F91089560
:106F6000CF93DF93809102018D3011F40E94371B83
:106F700010927A0080914702909148029093C40742
:106F80008093C30780914502909146029093B50784
:106F90008093B40780914302909144029093030838
:106FA0008093020820913F0230914002C901880F6E
:106FB000991F880F991F820F931F820F931F909321
:106FC000FE078093FD072091410230914202C901E2
:106FD000880F991F880F991F820F931F820F931F8D
:106FE00090930E0880930D088FEC80937A00AEE1A9
:106FF000B3E0CDE1D6E097E08991E82FFF27EE0FCF
:10700000FF1FED5BF84F0190F081E02DE259FF4F3B
:107010001E161F061CF0E0E0F0E005C0EF3FF10592
:1070200014F0EFEFF0E08C91282F3327E217F307ED
:1070300014F4815004C02E173F0714F48F5F8C9313
:107040009150119697FFD8CF809159069927AA277A
:10705000BB27BC01CD0124EC39E040E050E00E94A8
:107060006578DC01CB018093D5019093D601A09384
:10707000D701B093D80180915A069927AA27BB2738
:10708000BC01CD010E946578DC01CB018093D10168
:107090009093D201A093D301B093D401DF91CF910B
:1070A0000895A0E0B0E0E7E5F8E30C94FA78882EC4
:1070B000C0E0D0E07E016E0110924104469AD09368
:1070C0007D03C0937C03D0937B03C0937A03D0935A
:1070D0007703C0937603D0938703C0938603D0933E
:1070E0008503C0938403D0938303C09382031092DB
:1070F000BE011092BD01109237020E94B03784E6A3
:1071000090E00E9438170E94B0378091250680FFDA
:1071100010C08091140190911501875B934038F461
:1071200080911401909115018E5E924010F40E949E
:10713000B51A0FE18AE090E00E943817809143026F
:1071400090914402C80FD91F809147029091480244
:10715000E80EF91E8091450290914602C80ED91E94
:10716000015007FFE7CF9701205F3F4F36952795E6
:10717000369527953093870320938603C601409662
:10718000969587959695879590938503809384032C
:107190006096F5E0D695C795FA95E1F7D09383030D
:1071A000C0938203909381038093800330937F0385
:1071B00020937E03882009F441C08091FD079091BF
:1071C000FE0797FF03C0909581959F4F6CE070E09C
:1071D0000E94A4789B0170937D0360937C0380914F
:1071E0000D0890910E0897FF03C0909581959F4FD1
:1071F0006CE070E00E94A47870937B0360937A0344
:1072000080910A0690910B06909377038093760302
:10721000B90184E090E00E94D42C60917A037091CF
:107220007B0386E090E00E94D42C609176037091FD
:10723000770388E090E00E94D42C65C084E090E061
:107240000E94CF2C90937D0380937C0386E090E096
:107250000E94CF2C90937B0380937A0388E090E088
:107260000E94CF2C9C0190937703809376038091AA
:107270007C0390917D038150984050F480917A0373
:1072800090917B038150984018F421503440D8F1FC
:1072900089E29AE09F938F9380EF92E19F938F937F
:1072A000E0912804F091290409958091FD079091BF
:1072B000FE0797FF03C0909581959F4F6CE070E0AB
:1072C0000E94A47870937D0360937C0380910D08E5
:1072D00090910E0897FF03C0909581959F4F6CE0A9
:1072E00070E00E94A47870937B0360937A0380918E
:1072F0000A0690910B0690937703809376030F9084
:107300000F900F900F901092C4071092C307109225
:10731000B5071092B407109203081092020884E691
:1073200090E00E94381780913F02909140029C01AA
:10733000220F331F220F331F280F391F280F391F29
:107340003093FE072093FD07809141029091420205
:107350008C01000F111F000F111F080F191F080FBC
:10736000191F10930E0800930D0880913406C82E43
:10737000DD24EE24FF24442737FD4095542FC70118
:10738000B6010E9465784B015C01609371037093B4
:10739000720380937303909374039801442737FD1D
:1073A0004095542FC701B6010E946578DC01CB01DE
:1073B0008093690390936A03A0936B03B0936C036B
:1073C00080924D0390924E03A0924F03B0925003CF
:1073D0008093450390934603A0934703B0934803DB
:1073E00010924103109242031092430310924403FF
:1073F0008091160190911701A0911801B091190187
:1074000090930D0680930C0610923602109235026E
:10741000109231031092320310923303109234030E
:1074200080912F039091300390932E0380932D032E
:107430000E94356382E390E09093250280932402BA
:10744000809159069927AA27BB27BC01CD0124ECBE
:1074500039E040E050E00E946578DC01CB018856BD
:10746000954CAF4FBF4F8093D5019093D601A09319
:10747000D701B093D80180915A069927AA27BB2734
:10748000BC01CD010E946578DC01CB018856954C8A
:10749000AF4FBF4F8093D1019093D201A093D301FE
:1074A000B093D40110929B0110929A0180912F0306
:1074B00090913003AA2797FDA095BA2F20919601AD
:1074C000309197014091980150919901BC01CD01F3
:1074D0000E946578DC01CB018093090890930A082B
:1074E000A0930B08B0930C08109228031092270366
:1074F00081E0809301010E94AC678091E902846081
:107500008093E9028FEF80937B0810927C0880E2E1
:1075100080937D08CEE1D3E0ADE1B6E007E08D9148
:10752000E82FFF27EE0FFF1FED5BF84F8081918161
:1075300082598993015007FFF2CF84E680931D039F
:1075400080912202882311F0469A579A80918603EF
:107550009091870380569940815C9B4228F08091EE
:10756000410481608093410480918403909185035C
:1075700080569940815C9B4228F080914104826052
:107580008093410480918203909183038C529140B7
:107590008957954028F0809141048460809341048C
:1075A00080917C0390917D038C529140835C91404B
:1075B00028F08091410488608093410480917A038F
:1075C00090917B038C529140835C914028F0809194
:1075D0004104806180934104809176039091770308
:1075E000805092408355914028F080914104806200
:1075F00080934104ECE0CDB7DEB70C941679A3E19B
:10760000B0E0E5E0FBE30C94F47880918203909184
:1076100083032091430230914402821B930B909389
:1076200003088093020880914D0290914E0297FDCD
:1076300007969C0113E0359527951A95E1F730934D
:10764000C4072093C30780914B0290914C0297FD91
:107650000796B3E095958795BA95E1F79093B507AE
:107660008093B4073093CF072093CE079093C7073A
:107670008093C6078091FD079091FE07AC01440FEF
:10768000551F480F591F20913F0230914002C901F8
:10769000880F991F880F991F820F931F820F931FC6
:1076A000480F591F57FF02C04D5F5F4F55954795D3
:1076B000559547955093FE074093FD0780910D081F
:1076C00090910E08AC01440F551F480F591F20918F
:1076D000410230914202C901880F991F880F991FFA
:1076E000820F931F820F931F480F591F57FF02C02D
:1076F0004D5F5F4F559547955595479550930E08AB
:1077000040930D0820913F0230914002C901880F3B
:10771000991F880F991F820F931F820F931F9C013F
:10772000442737FD4095542F809161039091620367
:10773000A0916303B0916403820F931FA41FB51F30
:107740008093610390936203A0936303B0936403F7
:107750002091410230914202C901880F991F880F80
:10776000991F820F931F820F931F9C01442737FD9F
:107770004095542F80915D0390915E03A0915F032B
:10778000B0916003820F931FA41FB51F80935D0308
:1077900090935E03A0935F03B09360038091D8073A
:1077A0009091D90720913F0230914002820F931FA0
:1077B0009093D9078093D807809105089091060887
:1077C0002091410230914202820F931F909306084C
:1077D00080930508809178039091790301969093A6
:1077E00079038093780380910A0690910B0620918B
:1077F000760330917703821B930B9C01442737FD5E
:107800004095542F8091590390915A03A0915B03A6
:10781000B0915C03820F931FA41FB51F809359037F
:1078200090935A03A0935B03B0935C038FEC809317
:107830007A00109210012091490330914A0340913F
:107840004B0350914C0329873A874B875C87295417
:107850003B46414050402CF028E43BE641E050E0FC
:107860000DC089859A85AB85BC85885B9449AE4FF0
:10787000BF4F4CF428EB34E94EEF5FEF2D833E838E
:107880004F83588708C089859A85AB85BC858D83D1
:107890009E83AF83B887209151033091520340916A
:1078A0005303509154032D873E874F87588B29549B
:1078B0003B46414050402CF028E43BE641E050E09C
:1078C0000DC08D859E85AF85B889885B9449AE4F84
:1078D000BF4F4CF428EB34E94EEF5FEF29833A8336
:1078E0004B835C8308C08D859E85AF85B88989836D
:1078F0009A83AB83BC83A0910208B0910308BB8B31
:10790000AA8BFD01CF01AA2797FDA095BA2FA090C1
:107910004103B0904203C0904303D0904403A80EAB
:10792000B91ECA1EDB1EA0924103B0924203C09250
:107930004303D0924403E0900908F0900A080091B4
:107940000B0810910C08E80EF91E0A1F1B1FE0928D
:107950000908F0920A0800930B0810930C08F091A4
:107960000403F98BFF2309F098C180910303882356
:1079700009F093C18091250686FF8FC18091B407DD
:107980009091B507AA2797FDA095BA2FBC01CD010C
:1079900029813A814B815C810E9465789B01AC0111
:1079A00097FF04C02150384F4F4F5F4FBBE05595B4
:1079B000479537952795BA95D1F78091BD01682EE7
:1079C000772488249924CA01B901A40193010E9453
:1079D0006578DC01CB018093920390939303A0938D
:1079E0009403B0939503B7FF04C08150904FAF4FFD
:1079F000BF4F1C012D01ACE0559447943794279458
:107A0000AA95D1F720929203309293034092940367
:107A1000509295038091C3079091C407AA2797FDC0
:107A2000A095BA2FBC01CD012D813E814F81588593
:107A30000E94657897FF04C06150784F8F4F9F4F29
:107A4000FBE09595879577956795FA95D1F7A40111
:107A500093010E946578DC01CB018093960390939B
:107A60009703A0939803B0939903B7FF04C0815084
:107A7000904FAF4FBF4F9C01AD01ECE0559547953E
:107A800037952795EA95D1F720939603309397037E
:107A9000409398035093990380919203909193039C
:107AA0009093AC078093AB078091960390919703D6
:107AB0009093B0078093AF07221933094409550901
:107AC0002093960330939703409398035093990320
:107AD000E20EF31E041F151FE0920908F0920A0837
:107AE00000930B0810930C088091BC018823B1F41B
:107AF00057FF04C02F5F3F4F4F4F5F4F559547953E
:107B000037952795A21AB30AC40AD50AA092410351
:107B1000B0924203C0924303D09244032A893B8926
:107B200079010027F7FC0095102F80919603909122
:107B30009703A0919803B0919903E80EF91E0A1FCC
:107B40001B1FC801B70129813A814B815C810E94CA
:107B500065789B01AC0197FF04C02150384F4F4F0F
:107B60005F4F6BE055954795379527956A95D1F707
:107B70008091BE01A82EBB24CC24DD24CA01B9010A
:107B8000A60195010E946578DC01CB0180938A03F0
:107B900090938B03A0938C03B0938D03B7FF04C025
:107BA0008150904FAF4FBF4F3C014D013CE0959449
:107BB0008794779467943A95D1F760928A0370928C
:107BC0008B0380928C0390928D03C801B7012D81A5
:107BD0003E814F8158850E94657897FF04C06150AF
:107BE000784F8F4F9F4F2BE09595879577956795A9
:107BF0002A95D1F7A60195010E946578DC01CB0199
:107C000080938E0390938F03A0939003B09391037E
:107C1000B7FF04C08150904FAF4FBF4FAC01BD01C3
:107C20008CE075956795579547958A95D1F7409360
:107C30008E0350938F0360939003709391032A896E
:107C40003B8937FF03C0309521953F4F21343105E3
:107C5000E4F1D401C30197FE07C0B095A0959095BB
:107C600081959F4FAF4FBF4F81389105A105B10559
:107C700084F4DB01CA0177FF07C0B095A095909509
:107C800081959F4FAF4FBF4F81389105A105B10539
:107C9000E4F081E08093290318C01092B00710929D
:107CA000AF071092AC071092AB0710928E031092A0
:107CB0008F03109290031092910310928A031092F6
:107CC0008B0310928C0310928D0380918E03909100
:107CD0008F03A0919003B0919103BC01CD0124E6E4
:107CE00030E040E050E00E94D978E0908A03F090C4
:107CF0008B03E21AF30AF092C207E092C107809167
:107D00008A0390918B03A0918C03B0918D03BC01E9
:107D1000CD0124E630E040E050E00E94D978DA015D
:107D2000C90120918E0330918F038C01021B130B2C
:107D30001093B7070093B607809196019091970131
:107D4000A0919801B0919901BC01CD0128E631E0E4
:107D500040E050E00E9465782091090830910A08BF
:107D600040910B0850910C08261737074807590710
:107D700064F0261B370B480B590B209309083093EE
:107D80000A0840930B0850930C0820910908309181
:107D90000A0840910B0850910C0857FF0CC0260FA1
:107DA000371F481F591F2093090830930A08409332
:107DB0000B0850930C086091B4077091B5076E0DD5
:107DC0007F1D9B01442737FD4095542F809145032B
:107DD00090914603A0914703B0914803820F931FEF
:107DE000A41FB51F8093450390934603A0934703B8
:107DF000B09348038091090390910A03681B790BA3
:107E0000CB01AA2797FDA095BA2F29853A854B85E6
:107E10005C85820F931FA41FB51F80934903909325
:107E20004A03A0934B03B0934C03C090D101D09070
:107E3000D201E090D301F090D401C816D906EA0629
:107E4000FB06C4F488EA91E6A0E0B0E08C199D0935
:107E5000AE09BF098093490390934A03A0934B0353
:107E6000B0934C038093450390934603A09347033C
:107E7000B093480322273327A9012C193D094E0945
:107E80005F098091490390914A03A0914B03B091FF
:107E90004C0382179307A407B507B4F4D701C601B2
:107EA000885A9146A040B0408093490390934A037A
:107EB000A0934B03B0934C038093450390934603E8
:107EC000A0934703B09348036091C3077091C40720
:107ED000600F711F9B01442737FD4095542F8091FF
:107EE0004D0390914E03A0914F03B0915003820F28
:107EF000931FA41FB51F80934D0390934E03A0932F
:107F00004F03B09350038091070390910803681BBF
:107F1000790BCB01AA2797FDA095BA2F2D853E8519
:107F20004F855889820F931FA41FB51F809351035B
:107F300090935203A0935303B0935403E090D50160
:107F4000F090D6010091D7011091D801E816F906FA
:107F50000A071B07C4F488EA91E6A0E0B0E08E1996
:107F60009F09A00BB10B8093510390935203A093F0
:107F70005303B093540380934D0390934E03A09307
:107F80004F03B093500322273327A9012E193F092D
:107F9000400B510B8091510390915203A0915303D8
:107FA000B091540382179307A407B507B4F4D8011E
:107FB000C701885A9146A040B040809351039093E6
:107FC0005203A0935303B093540380934D039093B3
:107FD0004E03A0934F03B0935003809141039091BF
:107FE0004203A0914303B0914403809355039093BF
:107FF0005603A0935703B093580380915103909177
:108000005203A0915303B091540380937103909352
:108010007203A0937303B09374038091490390910A
:108020004A03A0914B03B0914C0380936903909352
:108030006A03A0936B03B0936C0380914D039091FE
:108040004E03A0914F03B091500380936D03909322
:108050006E03A0936F03B0937003809145039091DA
:108060004603A0914703B091480380936503909322
:108070006603A0936703B093680380911C019091FD
:108080001D0197FD079603E0959587950A95E1F701
:108090009093C4078093C30780911A0190911B01AC
:1080A00097FD079613E0959587951A95E1F79093BC
:1080B000B5078093B40780914702909148020F97CB
:1080C00034F488E19CEF9093C4078093C3078091B8
:1080D000470290914802079734F480E398EF909319
:1080E000C4078093C307209102012A30A9F480912C
:1080F000470290914802835F934034F088EE93E00A
:108100009093C4078093C3078091470290914802DF
:108110008A5F9340DCF014C080914702909148023E
:10812000815D974034F088EE93E09093C40780938C
:10813000C3078091470290914802805E974034F0D7
:1081400080ED97E09093C4078093C3078091450228
:10815000909146020F9734F488E19CEF9093B50715
:108160008093B4078091450290914602079734F4BA
:1081700080E398EF9093B5078093B4072A30A9F471
:108180008091450290914602835F934034F088EEDF
:1081900093E09093B5078093B40780914502909146
:1081A00046028A5F9340DCF014C0809145029091B2
:1081B0004602815D974034F088EE93E09093B507D6
:1081C0008093B4078091450290914602805E97406B
:1081D00034F080ED97E09093B5078093B4076091F9
:1081E000C801662309F4AFC040911C0150911D01E4
:1081F00080919A0390919B03481B590B5093A103C4
:108200004093A00320911C0130911D01280F391FBC
:1082100037FF02C02F5F3F4F3595279530939B0363
:1082200020939A03413851051CF080E890E005C086
:1082300040585F4F34F480E89FEF9093A103809300
:10824000A00340911A0150911B0180919C039091D1
:108250009D03481B590B50939F0340939E0320910D
:108260001A0130911B01280F391F37FF02C02F5F01
:108270003F4F3595279530939D0320939C034138BC
:1082800051051CF080E890E005C040585F4F34F481
:1082900080E89FEF90939F0380939E03462F55277E
:1082A0008091A0039091A103849FB001859F700DE0
:1082B000949F700D11249B0177FF02C0215F3F4FF7
:1082C000F4E035952795FA95E1F78091C3079091F1
:1082D000C407820F931F9093C4078093C3078091B4
:1082E0009E0390919F03849FD001859FB00D949F22
:1082F000B00D1124AD019D01B7FF02C0215F3F4FBA
:10830000E4E035952795EA95E1F78091B4079091DF
:10831000B507820F931F9093B5078093B4078091A0
:108320001C0190911D01860F971F90931D01809352
:108330001C0180911A0190911B01840F951F90934D
:108340001B0180931A010091C6071091C707809105
:10835000AB079091AC07101611065CF59C0197FFD6
:1083600004C022273327281B390BC901AA2797FDF0
:10837000A095BA2F2091BC01332744275527BC0173
:10838000CD010E9465789B01AC0197FF04C0215C80
:108390003F4F4F4F5F4F76E055954795379527955F
:1083A0007A95D1F78091C1079091C207820F931FF0
:1083B00027C097FF03C0909581959F4FAA2797FDEF
:1083C000A095BA2F2091BC01332744275527BC0123
:1083D000CD010E9465789B01AC0197FF04C0215C30
:1083E0003F4F4F4F5F4F66E055954795379527951F
:1083F0006A95D1F78091C1079091C207821B930BB8
:108400009093C2078093C107E090CE07F090CF070A
:108410008091AF079091B0071E141F045CF59C017A
:1084200097FF04C022273327281B390BC901AA272D
:1084300097FDA095BA2F2091BC01332744275527DB
:10844000BC01CD010E9465789B01AC0197FF04C07F
:10845000215C3F4F4F4F5F4F96E0559547953795BD
:1084600027959A95D1F78091B6079091B707820F1B
:10847000931F27C097FF03C0909581959F4FAA2710
:1084800097FDA095BA2F2091BC013327442755278B
:10849000BC01CD010E9465789B01AC0197FF04C02F
:1084A000215C3F4F4F4F5F4F86E05595479537957D
:1084B00027958A95D1F78091B6079091B707821BCF
:1084C000930B9093B7078093B6078091250687FF9B
:1084D00044C0B989BB2309F040C0809103038823BD
:1084E000E1F5E1E0EE16E1E0FE064CF08091C30715
:1084F0009091C4078E0D9F1D805091400DC0F0E0FB
:10850000EF16FFEFFF0664F48091C3079091C40754
:108510008E0D9F1D80509F4F9093C4078093C3077B
:1085200021E0013012074CF08091B4079091B5071B
:10853000800F911F805091400CC03FEF0030130717
:1085400064F48091B4079091B507800F911F80501B
:108550009F4F9093B5078093B407E2E1CD5E0C94F2
:10856000107980911403882301F58091E9028C7FB2
:108570008093E902A6E4B4E0E2EEF6E09BE08091AD
:108580000302882309F48C938D9181831282915088
:10859000389697FFF4CF80910302882359F0809199
:1085A000030281508093030205C08091E90281603B
:1085B0008093E90280916E02882319F010926E0276
:1085C0000895809370028093720280916C028E7F76
:1085D00080936C0285EA8093BC000895CF93DF936B
:1085E000AEE1B3E0CDE1D6E057E08991E82FFF2777
:1085F000EE0FFF1FED5BF84F0190F081E02DE25987
:10860000FF4FEF3FF10521F01CF0EFEFF0E004C069
:10861000F7FF02C0E0E0F0E04C91242F3327E2178F
:10862000F307A9F0CF01821B930B97FD0396959555
:10863000879595958795242F280F2C93822F99271E
:10864000E817F90714F4215001C02F5F2C93515003
:10865000119657FFCACF80912706883F38F0EFEF79
:10866000F0E0E81BF109E25EFC4F80818093CE01CF
:108670008091CE01882329F0843618F084E6809317
:10868000CE0180912906883F38F0EFEFF0E0E81B3B
:10869000F109E25EFC4F80818093CC018091CC0196
:1086A000882329F0843618F084E68093CC018091E9
:1086B0003606883F38F0EFEFF0E0E81BF109E25EA4
:1086C000FC4F80818093C7018091C7018B3010F4EB
:1086D0008AE002C08F3F11F48093C7018091630646
:1086E000883F38F0EFEFF0E0E81BF109E25EFC4F65
:1086F00080818093DA078091DA07823010F481E07C
:1087000002C08F3F11F48093DA0780916506883F9D
:1087100038F0EFEFF0E0E81BF109E25EFC4F8081FA
:108720008093000880910008823010F481E002C03C
:108730008F3F11F48093000880915006883F38F0F5
:10874000EFEFF0E0E81BF109E25EFC4F80818093DF
:10875000D70780915106883F38F0EFEFF0E0E81B33
:10876000F109E25EFC4F80818093B107809152064F
:10877000883F38F0EFEFF0E0E81BF109E25EFC4FD4
:1087800080818093DF0790912806983F18F490939A
:10879000CD0109C0EFEFF0E0E91BF109E25EFC4F0B
:1087A00080818093CD01983F18F49093CD0109C04A
:1087B000EFEFF0E0E91BF109E25EFC4F808180936E
:1087C000CD0180912B06883F38F0EFEFF0E0E81BF9
:1087D000F109E25EFC4F80818093CB0180912D06F0
:1087E000883F38F0EFEFF0E0E81BF109E25EFC4F64
:1087F00080818093C90180913506883F38F0EFEF82
:10880000F0E0E81BF109E25EFC4F80818093CA0131
:1088100080913706883F38F0EFEFF0E0E81BF10970
:10882000E25EFC4F80818093C60180913806883FCC
:1088300038F0EFEFF0E0E81BF109E25EFC4F8081D9
:108840008093C80180913906883F38F0EFEFF0E05F
:10885000E81BF109E25EFC4F80818093C5018091A5
:108860003A06883F38F0EFEFF0E0E81BF109E25EEE
:10887000FC4F80818093C40180914006883F38F08E
:10888000EFEFF0E0E81BF109E25EFC4F808180939E
:10889000C20180914106883F38F0EFEFF0E0E81B1D
:1088A000F109E25EFC4F80818093FE0280914206D6
:1088B000883F38F0EFEFF0E0E81BF109E25EFC4F93
:1088C00080818093FD0280914306883F38F0EFEF6E
:1088D000F0E0E81BF109E25EFC4F80818093FC022E
:1088E00080914406883F38F0EFEFF0E0E81BF10993
:1088F000E25EFC4F80818093FB0280915E06883FA0
:1089000038F0EFEFF0E0E81BF109E25EFC4F808108
:108910008093FA0280915F06883F38F0EFEFF0E035
:10892000E81BF109E25EFC4F80818093F90280919F
:108930006006883F38F0EFEFF0E0E81BF109E25EF7
:10894000FC4F80818093F80280916106883F38F067
:10895000EFEFF0E0E81BF109E25EFC4F80818093CD
:10896000F70280914506883F38F0EFEFF0E0E81B12
:10897000F109E25EFC4F80818093C101809149063C
:10898000883F38F0EFEFF0E0E81BF109E25EFC4FC2
:1089900080818093C00180915306883F38F0EFEFCB
:1089A000F0E0E81BF109E25EFC4F80818093BF019B
:1089B00080915606883F38F0EFEFF0E0E81BF109B0
:1089C000E25EFC4F80818093BE0180915706883F14
:1089D00038F0EFEFF0E0E81BF109E25EFC4F808138
:1089E0008093BD0180915806883F38F0EFEFF0E0AA
:1089F000E81BF109E25EFC4F80818093BC0180910D
:108A00005D06883F38F0EFEFF0E0E81BF109E25E29
:108A1000FC4F80818093BB0180917806883F38F0BD
:108A2000EFEFF0E0E81BF109E25EFC4F80818093FC
:108A300010088091C201282F33272F5F3F4F8CE30E
:108A400098E2B9010E94A4787093D0016093CF019D
:108A50008091330680930108809132068093C80785
:108A600090917A06933320F181E08093F602983F4B
:108A700058F0EFEFF0E0E91BF109E25EFC4F808176
:108A8000823310F41092F60280914E0890914F08B4
:108A900097FF08C08091F602882321F0809141045D
:108AA000806803C0809141048F778093410402C0A5
:108AB0001092F60280914E0890914F0897FF1DC0CA
:108AC000809114038823C9F08091F6028823A9F0CD
:108AD00080910801909109018F5F9F4F71F488E99F
:108AE0009AE3909325028093240280E094EA909385
:108AF0000901809308011092F6028091F602882302
:108B000039F08091BE01823D18F4825E8093BE01EF
:108B1000DF91CF910895A8E1B0E0E1E9F5E40C948C
:108B2000F4780E94FF3A309102013C3010F4299A07
:108B300001C02998E0901503F0901603FA82E982AB
:108B40008091C80799270A96E816F90614F49A83C3
:108B5000898380911D03843608F05CC08091B60340
:108B60009091B703009731F001979093B7038093EA
:108B7000B60307C0109214038091E9028F7E8093A0
:108B8000E9023A3011F0343110F0289A01C02898E7
:108B90008091EA029091EB02895E9340C0F180914E
:108BA0003D06282F33273A8329838091E90280618B
:108BB0008093E90280911906A82FBB27AA0FBB1F3B
:108BC000FD01E958F84F1182108280911A06282F72
:108BD0003327220F331FC9018958984FFC01118296
:108BE0001082AD5BB84F11961C921E922D5B384FD0
:108BF000D90111961C921E9280911C06E82FFF2726
:108C0000EE0FFF1FED5BF84F11821082C9C2109268
:108C10001403C6C280911D038D3808F4C1C280912F
:108C2000E9028F7E8093E90290913E0682E3989F4D
:108C3000C00111249093B7038093B603E981FA81B0
:108C4000B9978CF080911403882369F08091EA022F
:108C50009091EB02FFEF8F3F9F0729F001969093D1
:108C6000EB028093EA028091EA029091EB028F3F3F
:108C7000910509F038F51092390310923A031092D9
:108C80003B0310923C03109235031092360310926E
:108C90003703109238031092A2031092A30310928C
:108CA000A4031092A5031092410310924203109264
:108CB0004303109244038A3F910549F481E0809375
:108CC000BC0305C08091E90282608093E902809133
:108CD0001B06E82FFF27EE0FFF1FED5BF84F80818B
:108CE0009181813591050CF441C120911403222317
:108CF00009F03CC180911C06E82FFF27EE0FFF1FF3
:108D0000ED5BF84F808191818C3491050CF406C1A4
:108D10008091B8038F5F8093B803893C08F426C123
:108D20003C3010F4299801C0299A10921403109233
:108D3000B8031092EB021092EA0230911906E32F69
:108D4000FF27EE0FFF1FED5BF84F80819181873485
:108D50009105B4F480911A06E82FFF27EE0FFF1F4C
:108D6000ED5BF84F808191810190F081E02DF7FF5C
:108D700003C0F095E195FF4FE734F1050CF478C09E
:108D800041E020911A06A22FBB27AA0FBB1FAD5BA3
:108D9000B84F8D919C9111978734910544F0E32F42
:108DA000FF27EE0FFF1FED5BF84F808191818D91C2
:108DB0009C918734910574F080911906E82FFF2764
:108DC000EE0FFF1FED5BF84F808191818734910595
:108DD0000CF042E0E22FFF27EE0FFF1FED5BF84F94
:108DE000808191818634910574F480911906E82F71
:108DF000FF27EE0FFF1FED5BF84F808191818734D5
:108E000091050CF043E0E22FFF27EE0FFF1FED5B13
:108E1000F84F808191818A5B9F4F74F4809119068D
:108E2000E82FFF27EE0FFF1FED5BF84F8081918148
:108E3000873491050CF044E0E22FFF27EE0FFF1F6F
:108E4000ED5BF84F808191818A5B9F4F74F4809134
:108E50001906E82FFF27EE0FFF1FED5BF84F80810B
:108E60009181863491050CF445E0842F0E942C2DCD
:108E700080911A06E82FFF27EE0FFF1FED5BF84FDA
:108E8000808191810190F081E02DF7FF03C0F09582
:108E9000E195FF4F7E97BCF480911906E82FFF27DC
:108EA000EE0FFF1FED5BF84F808191818A5B9F4F32
:108EB00054F481E080935C0488EE93E09093250263
:108EC0008093240253C00E94262E0E94D92C80E059
:108ED0000E944A0780913F060E947E748091250679
:108EE00080FF10C08091140190911501875B934021
:108EF00038F480911401909115018E5E924010F427
:108F00000E94B51A1092220280E00E94513881E03E
:108F10008093BB0380932202579A1FC08081918166
:108F2000855B9F4F0CF58091B8038F5F8093B803EA
:108F3000893CE0F03C3010F4299801C0299A109245
:108F400014031092B8031092EB021092EA0281E02F
:108F50000E94513881E08093BB030E94262E68E76F
:108F600070E00E948F3702C02093B80380911B06E7
:108F7000E82FFF27EE0FFF1FED5BF84F80819181F7
:108F80008B5A9F4F0CF00CC130911403E0911C06DA
:108F9000332309F0DAC0FF27EE0FFF1FED5BF84F18
:108FA00080819181855B9F4F0CF0CCC020917B0626
:108FB000E22FFF27EE0FFF1FED5BF84F80819181BD
:108FC000855B9F4F1CF0222309F0BCC08091B90340
:108FD0008F5F8093B903893C08F4E2C03093B903F2
:108FE00080914104882309F0A6C08091BB038823A7
:108FF00009F4A1C081E090E09093EB028093EA0233
:1090000081E0809314031092A2031092A3031092A4
:10901000A4031092A50310924103109242031092F0
:1090200043031092440310923D0310923E031092AA
:109030003F031092400380913406E82EFF2400275E
:1090400011278091FD079091FE079C01442737FD71
:109050004095542FC801B7010E946578DC01CB010F
:109060008093510390935203A0935303B0935403FE
:1090700080910D0890910E089C01442737FD409582
:10908000542FC801B7010E946578DC01CB018093A1
:10909000490390934A03A0934B03B0934C038091F0
:1090A000710390917203A0917303B0917403809344
:1090B0004D0390934E03A0934F03B09350038091C0
:1090C000690390916A03A0916B03B0916C03809344
:1090D000450390934603A0934703B093480310922F
:1090E000390310923A0310923B0310923C03109202
:1090F0003503109236031092370310923803809193
:10910000E90288608093E902909179068FE0989F48
:109110009001112480912F0390913003820F931FAF
:1091200068E671E00E94A47897FD01969595879571
:109130008093750335C08CED95E090932502809364
:1091400024022EC01092B9032BC0FF27EE0FFF1F81
:10915000ED5BF84F808191818C349105FCF020917A
:109160007B06E22FFF27EE0FFF1FED5BF84F80819C
:109170009181855B9F4F14F0222381F48091BA0383
:109180008F5F8093BA03893C58F0109214031092B9
:10919000BA031092EB021092EA0202C01092BA03D4
:1091A00080919401815080939401809194018F3F2C
:1091B00021F08091E90284FF72C30E94EE42809107
:1091C000C5039091C6039C01220F331F280F391F3E
:1091D000C0901906AC2DBB27AA0FBB1FFD01ED5B8C
:1091E000F84FB0902F064B2D552780819181849F99
:1091F000F001859FF00D949FF00D11242E0F3F1F5D
:1092000037FF02C02D5F3F4FB90175956795759582
:109210006795A958B84F80913006082F11278D9176
:109220009C91809F7001819FF00C909FF00C112405
:109230006E0D7F1D7093C6036093C5038091C703B5
:109240009091C8039C01220F331F280F391FD09023
:109250001A06AD2DBB27AA0FBB1FFD01ED5BF84F12
:1092600080819181849FF001859FF00D949FF00D86
:1092700011242E0F3F1F37FF02C02D5F3F4FA90162
:109280005595479555954795A958B84F8D919C91FF
:10929000809F7001819FF00C909FF00C11244E0D67
:1092A0005F1D5093C8034093C7038091F602882343
:1092B00009F448C0CB0177FD0396DC01B595A7956D
:1092C000B595A795CA0157FD0396FC01F595E7955D
:1092D000F595E7958091EA01682F772767FD7095EE
:1092E0006A9F90016B9F300D7A9F300D1124809101
:1092F000FD03482F552747FD50954E9FC0014F9FB6
:10930000900D5E9F900D1124280F391F37FF02C06A
:10931000295F3F4F03E0359527950A95E1F7309394
:109320001C0320931B036E9F90016F9F300D7E9F47
:10933000300D11244A9FC0014B9F900D5A9F900DF4
:1093400011243FC080917906E82FFF27E456FE4F95
:1093500086818093EA0190819093FD03A82FBB271B
:10936000A7FDB095A69F9001A79F300DB69F300D29
:109370001124E92FFF27E7FDF095E49FC001E59F49
:10938000900DF49F900D1124280F391F37FF02C054
:10939000295F3F4F13E0359527951A95E1F73093F4
:1093A0001C0320931B03A49F9001A59F300DB49F25
:1093B000300D1124E69FC001E79F900DF69F900DA0
:1093C0001124281B390B37FF02C0295F3F4FF3E000
:1093D00035952795FA95E1F730931A0320931903F1
:1093E00080911C06E82FFF27EE0FFF1FED5BF84F63
:1093F00080819181909581959F4F909318038093E0
:1094000017038330910514F0029705C00FEF8E3FCC
:10941000900734F40296909318038093170304C0C6
:1094200010921803109217038091F9039091FA0398
:109430002091F5033091F603820F931F00911B03D7
:1094400010911C03081B190B10931C0300931B03A2
:109450008091F7039091F8032091F3033091F40386
:10946000820F931F8090190390901A03881A990A0B
:1094700090921A038092190380911B06E82FFF2710
:10948000EE0FFF1FED5BF84FE080F18028E730E042
:10949000E20EF31EF0921603E09215038091C701CD
:1094A0009927AA2797FDA095BA2FBC01CD010E944C
:1094B000D977DC01CB0120E030E040E251E4BC018F
:1094C000CD010E944777DC01CB01BC01CD010E9498
:1094D000AB77DC01CB01809307088091C6018093B4
:1094E000E0078091C5019927AA2797FDA095BA2F7B
:1094F000BC01CD010E94D977DC01CB0120E030E036
:1095000040E251E4BC01CD010E944777DC01CB0170
:10951000BC01CD010E94AB77DC01CB018093BB077E
:109520008091C4018093D0078091680480FF59C066
:1095300080911008813808F454C080916104992703
:1095400087FD90952B2D3327829FA001839F500D7F
:10955000929F500D1124040F151F10931C030093AC
:109560001B0380916204992787FD9095829FB0012B
:10957000839F700D929F700D1124860E971E9092FE
:109580001A038092190380916304282F332727FD43
:1095900030958091170390911803820F931F909339
:1095A00018038093170380916504282F332727FD24
:1095B000309580912A069927289FD001299FB00DC8
:1095C000389FB00D1124B0939B01A0939A01809114
:1095D000640499278E159F0524F4909316038093B5
:1095E0001503809115039091160397FF04C0109204
:1095F0001603109215038091250682FF02C0109277
:10960000E00740911B0350911C03CA0157FD0396CC
:109610009C01359527953595279537FF03C03095E3
:1096200021953F4F8091EE029091EF0282179307B0
:10963000B4F4CA0157FF03C0909581959F4F97FDE1
:10964000039695958795959587959093EF028093CE
:10965000EE028536910544F084E690E001C0019762
:109660009093EF028093EE024091190350911A03F8
:10967000CA0157FD03969C01359527953595279589
:1096800037FF03C0309521953F4F8091EC029091B8
:10969000ED0282179307B4F4CA0157FF03C09095F7
:1096A00081959F4F97FD03969595879595958795FD
:1096B0009093ED028093EC028536910544F084E6A8
:1096C00090E001C001979093ED028093EC028091AD
:1096D000E90284FF08C01092EF021092EE0210928D
:1096E000ED021092EC02ED2DFF27EE0FFF1FED5B58
:1096F000F84F40915406242F3327808191812817F9
:10970000390744F480917C0682FF04C081E0809395
:10971000020313C0ED2DFF27EE0FFF1FED5BF84F87
:10972000842F992720915506821B91092081318130
:109730002817390714F41092020340911A06E42FF7
:10974000FF27EE0FFF1FED5BF84F50915406852F5A
:10975000992722273327281B390B80819181821773
:10976000930744F480917C0683FF04C081E08093DA
:10977000010316C080910103882391F0E42FFF2795
:10978000EE0FFF1FED5BF84F809155069927851B63
:109790009109208131818217930714F410920103FB
:1097A000EC2DFF27EE0FFF1FED5BF84F40915406A5
:1097B000242F3327808191812817390744F4809121
:1097C0007C0680FF04C081E08093FF0217C0809177
:1097D000FF02882399F0EC2DFF27EE0FFF1FED5BB2
:1097E000F84F842F992720915506821B91092081DB
:1097F00031812817390714F41092FF02409119069D
:10980000E42FFF27EE0FFF1FED5BF84F509154063A
:10981000852F992722273327281B390B8081918197
:109820008217930744F480917C0681FF04C081E095
:109830008093000316C080910003882391F0E42FE9
:10984000FF27EE0FFF1FED5BF84F8091550699271C
:10985000851B9109208131818217930714F410929E
:10986000000380910203882319F480910103811180
:1098700081E0809303038091FF02882321F480918B
:109880000003882351F081E08093040310920303C6
:10989000109202031092010302C08093040380918E
:1098A0000303882321F480910403882369F08091C5
:1098B00053069927E981FA818E179F0714F49A833A
:1098C000898381E0809329038091E90284FF1AC093
:1098D000109218031092170310921C0310921B038E
:1098E00010921A03109219039AE59093070888E7DB
:1098F0008093E0079093BB078093D00710920303F7
:10990000109204038091D3079091D407A091D507BA
:10991000B091D60720917103309172034091730387
:1099200050917403820F931FA41FB51F8093D30718
:109930009093D407A093D507B093D6078091DB0707
:109940009091DC07A091DD07B091DE0720906903BC
:1099500030906A0340906B0350906C03820D931D0E
:10996000A41DB51D8093DB079093DC07A093DD0752
:10997000B093DE078091CA079091CB07A091CC07E6
:10998000B091CD07E0906D03F0906E0300916F03EE
:1099900010917003EB82FC820D831E838E0D9F1D40
:1099A000A01FB11F8093CA079093CB07A093CC0749
:1099B000B093CD078091BC079091BD07A091BE07E1
:1099C000B091BF07E0906503F090660300916703D4
:1099D00010916803EF82F88609871A878E0D9F1D04
:1099E000A01FB11F8093BC079093BD07A093BE0733
:1099F000B093BF07F0900403FB86FF2029F4809109
:109A00000303882309F460C010926103109262037B
:109A1000109263031092640310925D0310925E0330
:109A200010925F03109260031092D3071092D40734
:109A30001092D5071092D6071092DB071092DC0720
:109A40001092DD071092DE071092CA071092CB0722
:109A50001092CC071092CD071092BC071092BD0750
:109A60001092BE071092BF0780915103909152034C
:109A7000A0915303B091540380934D0390934E03F0
:109A8000A0934F03B09350038091490390914A03F0
:109A9000A0914B03B0914C038093450390934603F0
:109AA000A0934703B09348031092340210923302FC
:109AB000109208031092070310920A0310920903F0
:109AC0000B85002309F0F2C180910303882309F07C
:109AD000EDC180910A0690910B06815092402CF4C2
:109AE00080911403882309F4E1C190907B08A09031
:109AF00034066091FD077091FE07788F6F8B80911F
:109B00000D0890910E089A8B898B9FEF991609F496
:109B1000D9C0BB24CC24DD24CA01B901A60195011A
:109B20000E94D97879018A01EF89F88DCF01AA279F
:109B300097FDA095BA2FE81AF90A0A0B1B0BC20170
:109B4000B101A60195010E94D97859016A012989BC
:109B50003A89C901AA2797FDA095BA2FA81AB90A70
:109B6000CA0ADB0A292C332427FC3094432C532CBB
:109B7000C801B701A20191010E94657897FF04C056
:109B800061507E4F8F4F9F4F3B014C0109E09594F0
:109B90008794779467940A95D1F7C601B501A2011D
:109BA00091010E94657897FF04C061507E4F8F4FEE
:109BB0009F4F5B016C0119E0D594C794B794A794AB
:109BC0001A95D1F78091EE029091EF0281349105C0
:109BD0003CF48091EC029091ED0281349105D4F037
:109BE000D401C30197FE03C00196A11DB11D3C0124
:109BF0004D019594879477946794D601C501D7FE5B
:109C000003C00196A11DB11D5C016D01D594C794DF
:109C1000B794A79480911C06E82FFF27EE0FFF1F33
:109C2000ED5BF84F808191810190F081E02DF7FF8D
:109C300003C0F095E195FF4F7A97A4F0C401B301FA
:109C400023E030E040E050E00E94D97839014A0139
:109C5000C601B50123E030E040E050E00E94D97831
:109C600059016A0180917D08282F332727FD3095FF
:109C7000432F532F261537054805590514F439018C
:109C80004A01992787FD9095909581959F4FAA2726
:109C900097FDA095BA2F681679068A069B0614F4DC
:109CA0003C014D012A153B054C055D0514F4590195
:109CB0006A01A816B906CA06DB060CF0CFC05C0123
:109CC0006D01CCC0EA2CFF2400271127CA01B9017D
:109CD000A80197010E94D97839014A014F89588D0E
:109CE000CA01AA2797FDA095BA2F681A790A8A0A8D
:109CF0009B0AC201B101A80197010E94D9785901BC
:109D00006A0169897A89CB01AA2797FDA095BA2FA4
:109D1000A81AB90ACA0ADB0AD401C30197FE03C014
:109D20000F96A11DB11D3C014D01F4E0959487945F
:109D300077946794FA95D1F7D601C501D7FE03C091
:109D40000F96A11DB11D5C016D01E4E0D594C7948F
:109D5000B794A794EA95D1F78091EE029091EF0223
:109D6000813491053CF48091EC029091ED028134B4
:109D70009105A4F0C401B30123E030E040E050E0DD
:109D80000E94D97839014A01C601B50123E030E0CB
:109D900040E050E00E94D97859016A0180911C0688
:109DA000E82FFF27EE0FFF1FED5BF84F80819181B9
:109DB0000190F081E02DF7FF03C0F095E195FF4F92
:109DC0007A97A4F0C401B30123E030E040E050E012
:109DD0000E94D97839014A01C601B50123E030E07B
:109DE00040E050E00E94D97859016A0171E267169B
:109DF0007104810491042CF070E2672E712C812C87
:109E0000912C80EE68168FEF78068FEF88068FEF23
:109E1000980644F460EE662E6FEF762E6FEF862E76
:109E20006FEF962E91E2A916B104C104D1042CF073
:109E300050E2A52EB12CC12CD12CA0EEAA16AFEF6A
:109E4000BA06AFEFCA06AFEFDA0644F440EEA42E2E
:109E50004FEFB42E4FEFC42E4FEFD42E809151030D
:109E600090915203A0915303B0915403861997091E
:109E7000A809B9098093510390935203A093530307
:109E8000B09354038091490390914A03A0914B03EE
:109E9000B0914C038A199B09AC09BD098093490311
:109EA00090934A03A0934B03B0934C0380913302E9
:109EB000909134028F3F910509F008F4C4C5BB8529
:109EC000BB2309F04EC580910303882309F049C5DF
:109ED00080912903882309F044C5E0915C06EC8752
:109EE000EE2309F43EC58091D3079091D407A09149
:109EF000D507B091D607B7FF04C081509F4FAF4F31
:109F0000BF4FE92EFA2E0B2F112707FD1A95E0926D
:109F1000D307F092D4070093D5071093D60780910A
:109F2000DB079091DC07A091DD07B091DE07B7FF5A
:109F300004C081509F4FAF4FBF4F892F9A2FAB2F37
:109F4000BB27A7FDBA958D879E87AF87B88B809377
:109F5000DB079093DC07A093DD07B093DE078091C9
:109F60003406A82EBB24CC24DD242091610330913B
:109F700062034091630350916403C601B5010E94DE
:109F8000657897FF04C061507F4F8F4F9F4F672EBA
:109F9000782E892E992487FC9A946092610370929E
:109FA0006203809263039092640320915D03309179
:109FB0005E0340915F0350916003C601B5010E94AA
:109FC000657897FF04C061507F4F8F4F9F4F272EBA
:109FD000382E492E552447FC5A9420925D03309226
:109FE0005E0340925F035092600380915903909109
:109FF0005A03A0915B03B0915C03B7FF04C081508A
:10A000009F4FAF4FBF4F892F9A2FAB2FBB27A7FD75
:10A01000BA958093590390935A03A0935B03B0932E
:10A020005C03D801C70186199709A809B90980936B
:10A03000AE039093AF03A093B003B093B10320910C
:10A040005B06E22EFF2400271127BC01CD01A801E9
:10A0500097010E94D97859016A012093BD0330937A
:10A06000BE034093BF035093C0038D859E85AF858B
:10A07000B88982199309A409B5098093B203909312
:10A08000B303A093B403B093B503BC01CD01A80101
:10A0900097010E94D9782093C1033093C203409363
:10A0A000C3035093C403D601C501D7FE04C0815039
:10A0B0009F4FAF4FBF4F892F9A2FAB2FBB27A7FDC5
:10A0C000BA95909308038093070357FF04C021506B
:10A0D0003F4F4F4F5F4FBB2757FDBA95A52F942F8A
:10A0E000832F90930A03809309038091EE0290914D
:10A0F000EF0281349105DCF48091EC029091ED0245
:10A1000081349105A4F480911C06E82FFF27EE0FFF
:10A11000FF1FED5BF84F808191810190F081E02D70
:10A12000F7FF03C0F095E195FF4F7A97E4F0809137
:10A130007B088F3FC1F4809107039091080397FD3E
:10A1400001969595879590930803809307038091D6
:10A15000090390910A0397FD019695958795909331
:10A160000A03809309038091CA079091CB07A091BD
:10A17000CC07B091CD07B7FF04C081509F4FAF4FC0
:10A18000BF4F892F9A2FAB2FBB27A7FDBA9580937E
:10A19000CA079093CB07A093CC07B093CD078091CB
:10A1A000BC079091BD07A091BE07B091BF07B7FF54
:10A1B00004C081509F4FAF4FBF4F892F9A2FAB2FB5
:10A1C000BB27A7FDBA958093BC079093BD07A093CA
:10A1D000BE07B093BF078091710390917203A09165
:10A1E0007303B09174032B813C814D815E81281BE8
:10A1F000390B4A0B5B0B2093A6033093A7034093C4
:10A20000A8035093A9038091690390916A03A091D8
:10A210006B03B0916C03EF80F88409851A85E81A06
:10A22000F90A0A0B1B0BE092AA03F092AB0300930E
:10A23000AC031093AD032093AE033093AF03409370
:10A24000B0035093B103E092B203F092B3030093D2
:10A25000B4031093B50380914D0390914E03A091E8
:10A260004F03B0915003821B930BA40BB50B80934B
:10A270004D0390934E03A0934F03B09350038091EE
:10A28000450390914603A0914703B09148038E196E
:10A290009F09A00BB10B8093450390934603A093B5
:10A2A0004703B0934803FC85FF23E1F02091270387
:10A2B00030912803213831054CF080918203909130
:10A2C00083030196909383038093820320583F4F2A
:10A2D0004CF48091820390918303019790938303C0
:10A2E00080938203109228031092270381E090E06C
:10A2F0009093CA038093C903E090AE03F090AF033C
:10A300000091B0031091B103D801C70117FF07C036
:10A3100088279927DC018E199F09A00BB10B81506A
:10A320009240A040B04034F084E090E09093CA03A3
:10A330008093C9038091CF039091D003A091D10362
:10A34000B091D2032091D3073091D4074091D50723
:10A350005091D607821B930BA40BB50B815E914BDA
:10A36000AF4FBF4F8F539C49A040B04028F0809121
:10A370007C0889310CF4FFC041E0E41640E1F406AA
:10A3800040E0040740E014070CF473C08091CB0355
:10A39000882309F46AC0D801C70117FF07C08827BE
:10A3A0009927DC018E199F09A00BB10B9C01AD010F
:10A3B000B7FF04C021503E4F4F4F5F4FF9E0559516
:10A3C000479537952795FA95D1F78091C9039091D4
:10A3D000CA03820F931F9093CA038093C903D801C5
:10A3E000C70117FF03C00796A11DB11DE3E0B59596
:10A3F000A79597958795EA95D1F78093BD0390939C
:10A40000BE03A093BF03B093C00389589341A040FB
:10A41000B04064F088E893E1A0E0B0E08093BD0331
:10A420009093BE03A093BF03B093C0032091BD03DC
:10A430003091BE034091BF035091C00357FF04C049
:10A4400021503F4F4F4F5F4F232F342F452F55271C
:10A4500047FD5A958091070390910803820F931F3F
:10A46000909308038093070306C081E08093CB0399
:10A4700002C01092CB0360E0E61660EFF6066FEFC5
:10A4800006076FEF16070CF073C08091CC0388238A
:10A4900009F46AC0D801C70117FF07C088279927A8
:10A4A000DC018E199F09A00BB10B9C01AD01B7FF18
:10A4B00004C021503E4F4F4F5F4F69E0559547957F
:10A4C000379527956A95D1F78091C9039091CA0372
:10A4D000820F931F9093CA038093C903D801C701C9
:10A4E00017FF03C00796A11DB11D23E0B595A795E1
:10A4F000979587952A95D1F78093BD039093BE03D6
:10A50000A093BF03B093C00388579C4EAF4FBF4F7B
:10A5100064F488E79CEEAFEFBFEF8093BD039093A8
:10A52000BE03A093BF03B093C0032091BD0330913D
:10A53000BE034091BF035091C00357FF04C0215098
:10A540003F4F4F4F5F4F232F342F452F552747FD48
:10A550005A958091070390910803820F931F90935F
:10A5600008038093070311C081E08093CC030DC0E2
:10A570001092CC030AC01092CA031092C90388EE4D
:10A5800093E09093DA018093D9018C85282F3327AB
:10A590008091C9039091CA032817390724F4309396
:10A5A000CA032093C90310917C08112379F0212F4D
:10A5B000332727FD30958091C9039091CA0328174E
:10A5C000390724F43093CA032093C9034091AE03A2
:10A5D0005091AF036091B0037091B10341385105C0
:10A5E0006105710574F08091860390918703209135
:10A5F000C9033091CA03820F931F909387038093FE
:10A60000860340585F4F6F4F7F4F74F480918603ED
:10A61000909187032091C9033091CA03821B930B49
:10A62000909387038093860381E090E09093CA0320
:10A630008093C903C090B203D090B303E090B403F9
:10A64000F090B503D701C601F7FE07C08827992708
:10A65000DC018C199D09AE09BF0981509240A040D0
:10A66000B04034F084E090E09093CA038093C90333
:10A670008091D3039091D403A091D503B091D603D8
:10A680002091DB073091DC074091DD075091DE0718
:10A69000821B930BA40BB50B815E914BAF4FBF4F49
:10A6A0008F539C49A040B04018F019310CF4FFC002
:10A6B00001E0C01600E1D00600E0E00600E0F00690
:10A6C0000CF473C08091CD03882309F46AC0D701CC
:10A6D000C601F7FE07C088279927DC018C199D0960
:10A6E000AE09BF099C01AD01B7FF04C021503E4F28
:10A6F0004F4F5F4F09E055954795379527950A9538
:10A70000D1F78091C9039091CA03820F931F909350
:10A71000CA038093C903D701C601F7FE03C0079699
:10A72000A11DB11D13E0B595A795979587951A952D
:10A73000D1F78093C1039093C203A093C303B09356
:10A74000C40389589341A040B04064F088E893E185
:10A75000A0E0B0E08093C1039093C203A093C30331
:10A76000B093C4032091C1033091C2034091C3034D
:10A770005091C40357FF04C021503F4F4F4F5F4FCC
:10A78000232F342F452F552747FD5A9580910903D4
:10A7900090910A03820F931F90930A0380930903F9
:10A7A00006C081E08093CD0302C01092CD0320E06B
:10A7B000C21620EFD2062FEFE2062FEFF2060CF0C2
:10A7C00073C08091CE03882309F46AC0D701C60103
:10A7D000F7FE07C088279927DC018C199D09AE096F
:10A7E000BF099C01AD01B7FF04C021503E4F4F4F40
:10A7F0005F4FE9E05595479537952795EA95D1F74D
:10A800008091C9039091CA03820F931F9093CA034A
:10A810008093C903D701C601F7FE03C00796A11DA7
:10A82000B11D73E0B595A795979587957A95D1F762
:10A830008093C1039093C203A093C303B093C40356
:10A8400088579C4EAF4FBF4F64F488E79CEEAFEF44
:10A85000BFEF8093C1039093C203A093C303B0934F
:10A86000C4032091C1033091C2034091C3035091AE
:10A87000C40357FF04C021503F4F4F4F5F4F232F5A
:10A88000342F452F552747FD5A9580910903909104
:10A890000A03820F931F90930A038093090311C048
:10A8A00081E08093CE030DC01092CE030AC01092B7
:10A8B000CA031092C90388EE93E09093DA01809363
:10A8C000D9014C85242F33278091C9039091CA0365
:10A8D0002817390724F43093CA032093C9038091C1
:10A8E0007C08882379F0282F332727FD3095809125
:10A8F000C9039091CA032817390724F43093CA0377
:10A900002093C9034091B2035091B3036091B40303
:10A910007091B503413851056105710574F080915E
:10A920008403909185032091C9033091CA03820F5B
:10A93000931F909385038093840340585F4F6F4F1C
:10A940007F4FCCF480918403909185032091C903BB
:10A950003091CA03821B930B9093850380938403E9
:10A960000AC010920A031092090310920803109271
:10A970000703109229038091E007882341F4109285
:10A980000A031092090310920803109207038091A2
:10A99000D3079091D407A091D507B091D6078093A3
:10A9A000CF039093D003A093D103B093D2038091AF
:10A9B000DB079091DC07A091DD07B091DE07809363
:10A9C000D3039093D403A093D503B093D6031092EE
:10A9D0006103109262031092630310926403109259
:10A9E0005D0310925E0310925F0310926003109259
:10A9F000590310925A0310925B0310925C03109259
:10AA0000D3071092D4071092D5071092D607109250
:10AA1000DB071092DC071092DD071092DE07109220
:10AA2000CA071092CB071092CC071092CD07109254
:10AA3000BC071092BD071092BE071092BF0710927C
:10AA4000340210923302E0901703F0901803C7010C
:10AA5000F7FE04C0882799278E199F0940976CF04C
:10AA600088EE93E09093DA018093D90180912506D6
:10AA700084FD03C081E08093BC0310913106A12EB8
:10AA8000BB24CC24DD24B701882777FD8095982F3F
:10AA90009701F7FE04C0222733272E193F094427C8
:10AAA00037FD4095542F0E9465789B01AC01C6018B
:10AAB000B5010E94657897FF04C061507E4F8F4FAB
:10AAC0009F4F59E095958795779567955A95D1F75A
:10AAD0009B01812F99278E9DD0018F9DB00D9E9D4A
:10AAE000B00D1124CD01B7FD0396959587959595E9
:10AAF0008795280F391F442737FD4095542F209301
:10AB0000A2033093A3034093A4035093A503809121
:10AB1000410390914203A0914303B0914403821BEF
:10AB2000930BA40BB50B8093410390934203A09326
:10AB30004303B09344038155934CA040B04064F06C
:10AB400080E593ECA0E0B0E0809341039093420352
:10AB5000A0934303B0934403809141039091420337
:10AB6000A0914303B0914403805B9C43AF4FBF4F20
:10AB700064F480EB9CE3AFEFBFEF809341039093CD
:10AB80004203A0934303B093440340902F0350909B
:10AB900030034114510409F478C18091250683FFE4
:10ABA00074C18091710390917203A0917303B0916D
:10ABB0007403B7FF04C081509E4FAF4FBF4F39E0C1
:10ABC000B595A795979587953A95D1F76C0197FF1D
:10ABD00004C0D094C194D108D3948091690390911A
:10ABE0006A03A0916B03B0916C03B7FF04C081505E
:10ABF0009E4FAF4FBF4F29E0B595A7959795879585
:10AC00002A95D1F7BC0197FF03C0709561957F4FDE
:10AC1000C616D7060CF46B01B601D7FE02C0695FF9
:10AC20007F4F3B0183E0759467948A95E1F702E0DA
:10AC3000E02EF12C6E0C7F1C0CE112E0400E511E38
:10AC400072010027F7FC0095102F24EE3DEF420E15
:10AC5000531E8091090890910A08A0910B08B091A9
:10AC60000C088090960190909701A0909801B09068
:10AC70009901BC01CD01A50194010E94D978E21A85
:10AC8000F30A040B150BC801B70128E631E040E0D8
:10AC900050E00E94D978DC01CB011CE4E12E1FEFCB
:10ACA000F12EE80EF91E0091D9011091DA0101157B
:10ACB000110589F539E1C316D1046CF5809127039C
:10ACC000909128038E0D9F1D909328038093270356
:10ACD0008091BC038823F9F0C201AA2797FDA095B3
:10ACE000BA2FBC01CD01A50194010E946578DC0159
:10ACF000CB018093090890930A08A0930B08B093A6
:10AD00000C08BC01CD010E94D97830932E0320930A
:10AD10002D031092BC03C701B4E0880F991FBA95A8
:10AD2000E1F7B3010E94A478CB01AA2797FDA09573
:10AD3000BA2F2091090830910A0840910B085091D0
:10AD40000C08280F391F4A1F5B1F209309083093F6
:10AD50000A0840930B0850930C08F090CA016F2D1D
:10AD60007727C69EC001C79E900DD69E900D1124D8
:10AD700097FD4F966C01A5E0D594C794AA95E1F78D
:10AD80006C197D096B0177FD7AC00115110509F079
:10AD90006FC00091EE021091EF028091EC02909151
:10ADA000ED02080F191F17FF02C0095F1F4FF3E0E4
:10ADB00015950795FA95E1F7005C1F4FCA01B90197
:10ADC000A50194010E94D978DA01C90120912D03CF
:10ADD00030912E03442737FD4095542F821B930B4F
:10ADE000A40BB50B845E9D4FAF4FBF4FBC01CD018F
:10ADF00028E631E040E050E00E94D978DC01CB0148
:10AE0000845B90408C9DA0018D9D500D9C9D500DAC
:10AE10001124CA01B8010E94A47883E0F89E600161
:10AE20001124C616D70614F4B60108C0882799273E
:10AE30008C199D09681779070CF4BC019B01442704
:10AE400037FD4095542F8091410390914203A0918A
:10AE50004303B0914403820F931FA41FB51F809337
:10AE6000410390934203A0934303B09344030DC066
:10AE7000015010401093DA010093D90106C084EF0D
:10AE800091E09093DA018093D9018091290388237E
:10AE900081F010923503109236031092370310920E
:10AEA00038031092390310923A0310923B03109228
:10AEB0003C03F0900403FF20F1F48091E007282F79
:10AEC0003327442755278091710390917203A091F5
:10AED0007303B0917403BC01CD010E946578DC015D
:10AEE000CB01BC01CD0128EF3AE240E050E00E94E6
:10AEF000D978390102C066247724E0900303EE205C
:10AF0000F1F48091E007282F3327442755278091BB
:10AF1000690390916A03A0916B03B0916C03BC012B
:10AF2000CD010E946578DC01CB01BC01CD0128EF89
:10AF30003AE240E050E00E94D978290102C044245E
:10AF400055248091B6079091B707893C91051CF074
:10AF500088EC90E005C088539F4F34F488E39FEF5E
:10AF60009093B7078093B6078091C1079091C2076D
:10AF7000893C91051CF088EC90E005C088539F4FF8
:10AF800034F488E39FEF9093C2078093C1078091C8
:10AF9000C3079091C407AA2797FDA095BA2F2091C7
:10AFA0000708A22EBB24CC24DD24BC01CD01A601C0
:10AFB00095010E9465789B01AC018091B607909144
:10AFC000B707AA2797FDA095BA2FE7E0880F991F2A
:10AFD000AA1FBB1FEA95D1F7280F391F4A1F5B1F15
:10AFE00057FF04C0215C3F4F4F4F5F4F76E05595B0
:10AFF0004795379527957A95D1F78301020F131F4F
:10B000001093C4070093C3078091B4079091B507CC
:10B01000AA2797FDA095BA2FBC01CD01A6019501E5
:10B020000E9465789B01AC018091C1079091C20795
:10B03000AA2797FDA095BA2F67E0880F991FAA1F2E
:10B04000BB1F6A95D1F7280F391F4A1F5B1F57FF97
:10B0500004C0215C3F4F4F4F5F4F96E05595479599
:10B06000379527959A95D1F74201820E931E9092BB
:10B07000B5078092B4078091020890910308880F69
:10B08000991FAA2797FDA095BA2F2091BB073327B8
:10B0900044275527BC01CD010E9465785B016C01F6
:10B0A00097FF08C08FE390E0A0E0B0E0A80EB91EC3
:10B0B000CA1EDB1E86E0D594C794B794A7948A95E0
:10B0C000D1F78091D007282F332744275527809127
:10B0D000550390915603A0915703B0915803BC01BA
:10B0E000CD010E946578DC01CB01BC01CD0120EFD0
:10B0F00035E540E050E00E94D978B501620F731F3A
:10B1000070930308609302080150104134F080E00E
:10B1100090E19093C4078093C3078091C3079091F7
:10B12000C4078050904F34F480E090EF9093C407B0
:10B130008093C307B1E08B16B0E19B0634F080E04A
:10B1400090E19093B5078093B4078091B4079091F4
:10B15000B5078050904F34F480E090EF9093B5079E
:10B160008093B4076150704134F080E090E1909397
:10B170000308809302088091020890910308805090
:10B18000904F34F480E090EF90930308809302088E
:10B1900080910001482F552780911E0190911F0139
:10B1A0004817590794F420911E0130911F016981BD
:10B1B0007A81649FC001659F900D749F900D11244A
:10B1C000B9010E9490787A83698389819A81880F76
:10B1D000991F880F991F9A8389834091250640FF04
:10B1E000BDC6EE2009F0BAC6FF2009F0B7C6AA24F2
:10B1F000BB24450180910503909106039093EE05D1
:10B200008093ED0520918803309189032115310544
:10B2100009F03FC080911401909115018959934024
:10B2200058F087B5803F20F480913702815011C0DB
:10B2300081E08093E2034EC080911401909115014A
:10B240008436910508F587B58031D0F080913702BA
:10B250008F5F809337029FE08902900111248091D3
:10B260001406821B87BD8CE291E0909325028093A7
:10B2700024028EE591E090938903809388032AC08D
:10B2800081E08093E10326C0F092E103F092E203B3
:10B2900021C080910F0390911003A0911103B091F0
:10B2A000120314E0880F991FAA1FBB1F1A95D1F72C
:10B2B0008093380290933902A0933A02B0933B02F4
:10B2C000B0923602A092350221503040309389036B
:10B2D000209388032091CD0141FF24C02233D8F46C
:10B2E0008091DF0181508093DF018F3FD9F510926B
:10B2F0002A0380910F0390911003A0911103B09144
:10B30000120380930B0390930C03A0930D03B0934F
:10B310000E0381E004C081E080932A0388EC8093CF
:10B32000DF0120C080919A0190919B01820F911DB5
:10B3300020912A063327829FF001839FF00D929F70
:10B34000F00D1124CF01AA2797FDA095BA2F809365
:10B350000B0390930C03A0930D03B0930E0381E0B5
:10B3600080932A038091710390917203A0917303DB
:10B37000B0917403E0909601F090970100919801CC
:10B3800010919901BC01CD01A80197010E94D978C3
:10B3900059016A018091690390916A03A0916B033E
:10B3A000B0916C03BC01CD01A80197010E94D9782E
:10B3B000B901C5010E948E768C01CC9714F00CE384
:10B3C00010E0C8010E94AF6A8C0180E28093950171
:10B3D00080912A03882309F447C48091E9029927C0
:10B3E0009C012071307084FD3FC460917E0660FD39
:10B3F00004C08091250681FD0CC0C980DA8030939D
:10B40000D8032093D7038091E902806C8093E902EE
:10B4100099C18091E90281FF6BC14091DB0150919C
:10B42000DC01CA010F962091150330911603821793
:10B430009307BCF58091E103882399F58091E90297
:10B4400087FF15C08091E9028F778093E902809190
:10B450000F0390911003A0911103B09112038093F8
:10B460000B0390930C03A0930D03B0930E038091F4
:10B47000E90280648093E902241B350B2F50304091
:10B4800037FF03C0309521953F4F8091D7039091AE
:10B49000D803820F931F9093D8038093D7038BE236
:10B4A0006EC0CA010F9728173907BCF58091E203D7
:10B4B000882399F58091E90286FF15C08091E90201
:10B4C0008F7B8093E90280910F0390911003A091EC
:10B4D0001103B091120380930B0390930C03A0937C
:10B4E0000D03B0930E038091E90280688093E90216
:10B4F000241B350B215F3F4F37FF03C0309521954B
:10B500003F4F8091D7039091D803821B930B909368
:10B51000D8038093D7038DE232C08091E902807C0A
:10B5200069F18091E9028F738093E9021092D80348
:10B530001092D70320910F03309110034091110313
:10B540005091120320930B0330930C0340930D038F
:10B5500050930E0361FF06C084EF91E090932502A3
:10B560008093240280911303882341F4233331050F
:10B57000410551051CF081E0809313038DE3809316
:10B5800095012091D7033091D803C90137FF04C03A
:10B5900088279927821B930B815092400CF491C00D
:10B5A00080912A069927289F7001299FF00C389FC7
:10B5B000F00C1124C70160E075E00E94A478CB0173
:10B5C000AA2797FDA095BA2F20910B0330910C0369
:10B5D00040910D0350910E03280F391F4A1F5B1F26
:10B5E00020930B0330930C0340930D0350930E03F1
:10B5F0001092D8031092D703C0900F03D09010037D
:10B60000E0901103F0901203D701C60180509440DE
:10B61000A040B04082179307A407B5075CF4D70198
:10B62000C60180509C4FAF4FBF4F281739074A07BC
:10B630005B0744F080930B0390930C03A0930D03DE
:10B64000B0930E0380917E0681FF06C084E690E0F1
:10B65000909325028093240280912E06882389F5F9
:10B66000409105035091060357FF02C04D5F5F4FA5
:10B67000559547955595479580911E0190911F01CD
:10B68000209100013327489FB001499F700D589FBA
:10B69000700D1124CB01B9010E94A4787093DC01D4
:10B6A0006093DB01663471051CF486E490E005C00C
:10B6B0006739710534F086E990E09093DC0180935E
:10B6C000DB018091880390918903892BB9F18091E6
:10B6D0000F0390911003A0911103B0911203809376
:10B6E0000B0390930C03A0930D03B0930E0326C09D
:10B6F00080910F0390911003A0911103B091120358
:10B7000080599140A040B04080930B0390930C036C
:10B71000A0930D03B0930E0380912E06882311F0A1
:10B72000992702C088E790E09093DC018093DB01C9
:10B7300089819A819093060380930503C090050345
:10B74000D090060320910F03309110034091110314
:10B75000509112032B8B3C8B4D8B5E8B20910B03F6
:10B7600030910C0340910D0350910E036B897C893D
:10B770008D899E89261737074807590724F080913D
:10B780007E0680FDB8C28091880390918903892B41
:10B7900039F0C0900503D0900603AA24BB24D9C079
:10B7A0008B899C89AD89BE89821B930BA40BB50B39
:10B7B0008093A6039093A703A093A803B093A90333
:10B7C000823070E897077FEFA7077FEFB7072CF469
:10B7D00081E090E8AFEFBFEF09C08F5F9F47A040C7
:10B7E000B04064F08FEF9FE7A0E0B0E08093A60345
:10B7F0009093A703A093A803B093A903A090A603D6
:10B80000B090A7038091CC01282F332744275527D8
:10B810008091A6039091A703A091A803B091A903DA
:10B82000BC01CD010E94657897FF04C0615E7F4F27
:10B830008F4F9F4FA5E09595879577956795AA952A
:10B84000D1F76093A6037093A7038093A803909306
:10B85000A9036530FEEF7F07FFEF8F07FFEF9F071C
:10B860002CF484E09EEFAFEFBFEF09C0605074404E
:10B870008040904064F080E094E0A0E0B0E08093ED
:10B88000A6039093A703A093A803B093A903809065
:10B89000A6039090A703209135023091360237FF1E
:10B8A00002C0295F3F4FF3E035952795FA95E1F700
:10B8B0004FEF223834071CF421E83FEF05C0203851
:10B8C000310514F020E830E0C901AA2797FDA095C2
:10B8D000BA2F2091CE01332744275527BC01CD0133
:10B8E0000E94657897FF04C06D5F7F4F8F4F9F4F19
:10B8F000E2E09595879577956795EA95D1F79B0155
:10B900005FEF613075071CF420E03FEF06C06F3F2A
:10B91000710519F014F020E031E08091E902807C9B
:10B9200049F0C90137FD03969C013595279535955A
:10B9300027950DC080917E0680FF09C0C90137FDA3
:10B9400007969C0143E0359527954A95E1F7820ECD
:10B95000931E2091CB01222309F454C0609131033E
:10B9600070913203809133039091340397FF04C0A8
:10B9700061587F4F8F4F9F4F37E09595879577950B
:10B9800067953A95D1F73327442755270E94657864
:10B9900097FF04C0615E7F4F8F4F9F4FB5E0959535
:10B9A000879577956795BA95D1F76093A6037093BD
:10B9B000A7038093A8039093A9036138AFEF7A0798
:10B9C000AFEF8A07AFEF9A072CF480E89FEFAFEF55
:10B9D000BFEF0AC06F3F71058105910569F064F002
:10B9E00080E091E0A0E0B0E08093A6039093A703ED
:10B9F000A093A803B093A9038091A6039091A703F5
:10BA0000880E991E8091C901282F332780917F08C5
:10BA1000992787FD9095289FF001299FF00D389F69
:10BA2000F00D11249F01F7FF02C021583F4F220F54
:10BA3000232F221F330BFFEF21383F071CF420E890
:10BA40003FEF06C02F3F310519F014F020E031E040
:10BA5000820E931EC401AA2797FDA095BA2FE090ED
:10BA60000503F09006039701442737FD4095542FB6
:10BA7000BC01CD010E94657897FF04C061507E4FE4
:10BA80008F4F9F4FF9E09595879577956795FA9534
:10BA9000D1F7C61AD70A8091D7039091D803892B82
:10BAA00009F060C01E141F040CF05CC09501B7FEC5
:10BAB00003C0309521953F4F2D33310540F48091DF
:10BAC000DB039091DC038C159D0574F526C02C5387
:10BAD0003040E5E036952795EA95E1F720313105CC
:10BAE00010F02FE030E04091DB035091DC031A149A
:10BAF0001B04E4F480E190E0821B930B489F9001CB
:10BB0000499F300D589F300D112474E036952795CC
:10BB10007A95E1F72C153D0520F58091DD01909196
:10BB2000DE01C816D906F4F06C011CC0205F3F4F3F
:10BB30008091DD019091DE01829FB001839F700DA5
:10BB4000929F700D11249B0164E0369527956A95AC
:10BB5000E1F74C155D0514F06A0104C0C216D30666
:10BB600008F06901C601AA2797FDA095BA2F2DE01C
:10BB7000880F991FAA1FBB1F2A95D1F79801442748
:10BB800037FD4095542FBC01CD010E94D9782093F8
:10BB9000AA033093AB034093AC035093AD03C09022
:10BBA000AA03D090AB038091D9039091DA039C0152
:10BBB000220F331F280F391F2C0D3D1D37FF02C0E8
:10BBC0002D5F3F4FA9015595479555954795509342
:10BBD000DA034093D90380912606282F3327220FBA
:10BBE000331F220F331F241735076CF4809101088F
:10BBF000282F3327220F331F220F331F20553040A9
:10BC00004217530724F03093DA032093D90380912D
:10BC10007E0680FF14C08091D9039091DA03A98138
:10BC2000BA818A179B0724F0B093DA03A093D90353
:10BC3000E091D903F091DA03FA83E9835CC02981AA
:10BC40003A812E193F0937FF02C02D5F3F4F3595CE
:10BC5000279535952795E090D903F090DA03E20E09
:10BC6000F31EFA82E98247C080912E06882301F5EF
:10BC7000609105037091060377FF02C06D5F7F4FEF
:10BC8000759567957595679540911E0150911F01B7
:10BC900080910001282F3327649FC001659F900D7C
:10BCA000749F900D1124B9010E94A478CB0101C0AA
:10BCB00099279093DC018093DB018091DB019091C7
:10BCC000DC01873491051CF486E490E005C08639D8
:10BCD000910534F086E990E09093DC018093DB01DC
:10BCE00029813A813093DA032093D9038091E902C4
:10BCF000806C8093E9028091E90299279C0122706F
:10BD0000307081FF1CC18091DD039091DE03A09112
:10BD1000DF03B091E0030097A105B10521F0809108
:10BD200013038130B1F449815A81CA01AA2797FDD2
:10BD3000A095BA2F2EE0880F991FAA1FBB1F2A9526
:10BD4000D1F78093DD039093DE03A093DF03B093DC
:10BD5000E00380911303813019F482E08093130390
:10BD600069817A81CB01AA2797FDA095BA2F980106
:10BD7000442737FD4095542FBC01CD010E946578C2
:10BD8000DC01CB018093AA039093AB03A093AC0397
:10BD9000B093AD03B7FF04C08150904EAF4FBF4F7B
:10BDA0007C018D01FDE015950795F794E794FA95D0
:10BDB000D1F7E092AA03F092AB030093AC03109387
:10BDC000AD036091EA027091EB028FE0603A780770
:10BDD00050F58091DD039091DE03A091DF03B091D7
:10BDE000E0039C01AD01EAE056954795379527950C
:10BDF000EA95D1F7821B930BA40BB50BA801970111
:10BE0000F4E0220F331F441F551FFA95D1F7820F1C
:10BE1000931FA41FB51F8093DD039093DE03A093AF
:10BE2000DF03B093E00360547F4118F58091DD0398
:10BE30009091DE03A091DF03B091E0039C01AD017E
:10BE4000ECE05695479537952795EA95D1F7821BF3
:10BE5000930BA40BB50BA801970172E0220F331FBF
:10BE6000441F551F7A95D1F7820F931FA41FB51F4A
:10BE700029C08091350290913602809135029091CF
:10BE8000360297FF03C0909581959F4F84369105A8
:10BE90000CF58091DD039091DE03A091DF03B0915A
:10BEA000E0039C01AD016EE05695479537952795C7
:10BEB0006A95D1F7821B930BA40BB50B8E0D9F1DBA
:10BEC000A01FB11F8093DD039093DE03A093DF03D7
:10BED000B093E0038091DD039091DE03A091DF0336
:10BEE000B091E0031EE0B695A795979587951A95B2
:10BEF000D1F7909306038093050340912C064423C9
:10BF000099F055279C01BA010E94A478C901861BAB
:10BF1000970B9093DC038093DB03260F371F30933E
:10BF2000DE012093DD011FC01092DC031092DB03C1
:10BF30008FEF93E09093DE018093DD0114C01092A7
:10BF400013031092DD031092DE031092DF031092B0
:10BF5000E003309306032093050305C08091E902B6
:10BF6000806C8093E9022090C807222D3327220F8E
:10BF7000331F220F331F285D3F4FA981BA812A1733
:10BF80003B0714F03A83298330900108832D9927C9
:10BF9000880F991F880F991F80559040E981FA8179
:10BFA0008E179F0714F49A83898380916D028823EA
:10BFB00021F4809186088F3FA1F08091EA02909150
:10BFC000EB020297C09768F4E980FA801E141F0400
:10BFD00044F481E090E09093EB028093EA023A838C
:10BFE000298309811A811093D2050093D10580918C
:10BFF000A2039091A303A091A403B091A503F2E042
:10C00000880F991FAA1FBB1FFA95D1F7009102084C
:10C0100010910308081B190B29813A81213A310537
:10C020008CF0C90137FD019695958795801791078A
:10C030000CF48C01909581959F4F081719076CF4AB
:10C040008C010BC00135110514F000E510E03FEF45
:10C05000003B130714F400EB1FEF232D3327220FAF
:10C06000331F220F331FC90149815A81841B950B4D
:10C07000801791070CF48C0169817A81621B730B24
:10C08000061717070CF48B018091C3079091C40722
:10C0900060911B0370911C03861B970B9093D20732
:10C0A0008093D107D090E0072091390330913A0373
:10C0B00040913B0350913C03DD2041F0661A770A22
:10C0C000C301AA2797FDA095BA2F04C0AA2797FD00
:10C0D000A095BA2F280F391F4A1F5B1F20933903E1
:10C0E00030933A0340933B0350933C0380913903D0
:10C0F00090913A03A0913B03B0913C0381509A4F39
:10C10000A040B04064F080E09AEFA0E0B0E08093FF
:10C11000390390933A03A0933B03B0933C0380917F
:10C12000390390913A03A0913B03B0913C038050B6
:10C130009640AF4FBF4F64F480E096E0AFEFBFEFA3
:10C140008093390390933A03A0933B03B0933C034D
:10C15000C0903B062091D1073091D207F8E0FC1542
:10C1600098F08C2D9927829F7001839FF00C929FED
:10C17000F00C1124C701F7FC07967C0163E0F594ED
:10C18000E7946A95E1F712C08C2D86959927829FD6
:10C19000A001839F500D929F500D1124CA0157FD9D
:10C1A00003967C01F594E794F594E794A090CF0171
:10C1B000B090D0019501442737FD4095542F8091D0
:10C1C000390390913A03A0913B03B0913C03BC0129
:10C1D000CD010E94D978E20EF31E9090BB01692D2B
:10C1E000772788279927980117FF04C0222733272C
:10C1F000201B310B37FF02C02F5F3F4F359527952E
:10C20000A981BA812A0F3B1F442737FD4095542F3F
:10C210000E94657897FF04C0615C7F4F8F4F9F4FEE
:10C2200026E095958795779567952A95D1F79B0197
:10C230006E157F050CF47B01309521953F4FE2167A
:10C24000F3060CF479018091B4079091B5076091E1
:10C25000190370911A03861B970B9093B307809371
:10C26000B207209135033091360340913703509146
:10C270003803DD2041F0461A570AC201AA2797FD6C
:10C28000A095BA2F04C0AA2797FDA095BA2F280F12
:10C29000391F4A1F5B1F20933503309336034093A9
:10C2A0003703509338038091350390913603A09162
:10C2B0003703B091380381509A4FA040B04064F0EA
:10C2C00080E09AEFA0E0B0E08093350390933603CE
:10C2D000A0933703B09338038091350390913603D0
:10C2E000A0913703B091380380509640AF4FBF4FB5
:10C2F00064F480E096E0AFEFBFEF80933503909356
:10C300003603A0933703B09338032091B2073091DE
:10C31000B30748E04C1598F08C2D9927829FB00107
:10C32000839F700D929F700D1124CB0177FD0796AE
:10C330006C01B3E0D594C794BA95E1F712C0C694E6
:10C340008C2D9927829FD001839FB00D929FB00DB5
:10C350001124CD01B7FD03966C01D594C794D594F3
:10C36000C7949501442737FD4095542F809135039C
:10C3700090913603A0913703B0913803BC01CD01F1
:10C380000E94D978C20ED31E692D77278827992756
:10C39000980117FF04C022273327201B310B37FFDA
:10C3A00002C02F5F3F4F35952795E981FA812E0F07
:10C3B0003F1F442737FD4095542F0E94657897FF13
:10C3C00004C0615C7F4F8F4F9F4FE6E09595879546
:10C3D00077956795EA95D1F79B016C157D050CF46F
:10C3E0006B01309521953F4FC216D3060CF46901BD
:10C3F00062EE862E66E0962E59E9A52E56E0B52E01
:10C400004BE0542E31EE632E37E0732ED5012C9184
:10C4100012160CF014C1203429F4E981FA81F88F46
:10C42000EF8B1FC049815A81CA01AA2797FDA095A9
:10C43000BA2F332727FD3095432F532FBC01CD0151
:10C440000E94657897FF04C0615C7F4F8F4F9F4FBC
:10C4500026E095958795779567952A95D1F7788FFA
:10C460006F8BF5012181203439F42F89388D2E0D01
:10C470003F1D388F2F8B2AC0203C39F44F89588DAF
:10C480004E195F09588F4F8B21C0C701AA2797FD0E
:10C49000A095BA2F332727FD3095432F532FBC018A
:10C4A000CD010E94657897FF04C0615C7F4F8F4F7C
:10C4B0009F4FB6E09595879577956795BA95D1F793
:10C4C000AF89B88DA60FB71FB88FAF8BF50122814A
:10C4D000203439F42F89388D2C0D3D1D388F2F8B4A
:10C4E0002AC0203C39F44F89588D4C195D09588F6A
:10C4F0004F8B21C0C601AA2797FDA095BA2F3327DD
:10C5000027FD3095432F532FBC01CD010E94657844
:10C5100097FF04C0615C7F4F8F4F9F4FA6E09595BA
:10C52000879577956795AA95D1F7AF89B88DA60FAE
:10C53000B71FB88FAF8BF5012381203439F42F89D1
:10C54000388D200F311F388F2F8B2AC0203C39F4B3
:10C550004F89588D401B510B588F4F8B21C0C801FC
:10C56000AA2797FDA095BA2F332727FD3095432F93
:10C57000532FBC01CD010E94657897FF04C0615C18
:10C580007F4F8F4F9F4FF6E09595879577956795ED
:10C59000FA95D1F7AF89B88DA60FB71FB88FAF8BBB
:10C5A000F301808191812F89388D8217930764F47C
:10C5B000B901680F791F77FF02C06F5F7F4F7595D4
:10C5C0006795788F6F8B08C04F89588D440F551F22
:10C5D000481B590B588F4F8B822D9927880F991F15
:10C5E000880F991F6F89788D861797075CF4832DC4
:10C5F0009927880F991F880F991FAF89B88DA817A1
:10C60000B90714F0988F8F8B8F89988D97FD0396BB
:10C610009595879595958795F4018183880F991F46
:10C62000880F991F2F89388D281B390BC901880F56
:10C630008283EF89F88DD301ED93FC9303C0F4015D
:10C64000118212825A9422E030E0620E731E44E09E
:10C6500050E0A40EB51E68E070E0860E971E57FEEF
:10C66000D5CEE2E1C85E0C9410798091EF039091F1
:10C67000F003A091F103B091F2038093E70390934C
:10C68000E803A093E903B093EA038091EB03909150
:10C69000EC03A091ED03B091EE038093E30390933C
:10C6A000E403A093E503B093E60308951092FA0320
:10C6B0001092F9031092F8031092F703089584B1D1
:10C6C000806A84B93D9A82E58CBD1DBC459A81E0A3
:10C6D000809313088AEA8093240883E880932508CE
:10C6E0008AE080932608109228081092270810925A
:10C6F0002A081092290810927E0810924608089580
:10C7000030911308332309F085C00DB407FE82C0B1
:10C7100084E080932302459A2EB58091FE039927E9
:10C720008130910589F0823091051CF4892B21F02C
:10C730003EC00297B9F03BC0309345082093FF03F9
:10C740002138A9F581E008C0253549F48091FF031F
:10C75000820F8093FF0382E08093FE0328C0309312
:10C76000FE0325C080914508E82FFF27EF59F74FBA
:10C7700020838F5F809345089091FF038A31A0F05A
:10C78000291769F48AE1A1E6B8E0E7E4F8E00D9042
:10C7900001928A95E1F781E08093460802C03093C8
:10C7A00046081092FE0303C0920F9093FF0320915E
:10C7B0002308203208F028C045980000000000003F
:10C7C0000000000000000000000000000000000069
:10C7D0000000000000000000000000000000000059
:10C7E00000000000000000000000E0911C08F09133
:10C7F0001D08E20FF11D80818EBD8091430890815C
:10C80000890F8093430803C081E0809313082F5F52
:10C81000209323080895EF92FF920F931F93809126
:10C8200034069927880F991F880F991F7C010027CC
:10C83000F7FC0095102F8091710390917203A091E5
:10C840007303B0917403BC01CD01A80197010E944C
:10C85000D978309328082093270880916903909114
:10C860006A03A0916B03B0916C03BC01CD01A801D8
:10C8700097010E94D97830932A08209329082091A3
:10C88000090830910A0840910B0850910C08DA0110
:10C89000C901E3E0880F991FAA1FBB1FEA95D1F7D2
:10C8A000820F931FA41FB51F820F931FA41FB51FD4
:10C8B00020919601309197014091980150919901F2
:10C8C000BC01CD010E94D9783093300820932F0805
:10C8D000809182039091830320914302309144021E
:10C8E000821B930B9093360880933508E091780370
:10C8F000F09179038091D8079091D907BF010E94E8
:10C90000A478CB019B01220F331F220F331F280F66
:10C91000391F280F391F37FF02C02D5F3F4F359554
:10C9200027953595279530932C0820932B088091D7
:10C93000050890910608BF010E94A4789B01220F70
:10C94000331F220F331F260F371F260F371F37FFC6
:10C9500002C02D5F3F4F359527953595279530932C
:10C960002E0820932D0810927903109278031092CC
:10C97000D9071092D80710920608109205088091E6
:10C98000260899278D30910509F466C08E309105EF
:10C990005CF48B30910509F48EC08C3091050CF05D
:10C9A0000FC10A9761F0ADC18F30910509F481C1C3
:10C9B0008F3091050CF45CC1409799F1A2C1809130
:10C9C000FE02809337088091FD02809338088091A1
:10C9D000FC02809339088091FB0280933A08809191
:10C9E000FA0280933B088091F90280933C08809181
:10C9F000F80280933D088091F70280933E08809171
:10CA0000E90280933F088091E902837F8093E902E5
:10CA10000E94262E809340088091750380934108E0
:10CA200070C180918008909181089093380880931C
:10CA30003708809184089091850890933A088093F4
:10CA4000390880911E0190911F0180933B088091CD
:10CA5000000180933C0855C1809168068093370897
:10CA6000809169068093380880916A06809339081E
:10CA700080916B0680933A0880916C0680933B0806
:10CA80008091700680933C088091710680933D08E8
:10CA90008091720680933E088091750680933F08CE
:10CAA00080917306809340088091740680934108BA
:10CAB00080917606DAC0F89480911B06E82FFF2754
:10CAC000EE0FFF1FED5BF84F0190F081E02DE03895
:10CAD000F1051CF0EFE7F0E006C02FEFE138F207B8
:10CAE00014F4E1E8FFEFE093370880911C06E82F8B
:10CAF000FF27EE0FFF1FED5BF84F0190F081E02D57
:10CB0000E038F1051CF0EFE7F0E006C06FEFE13828
:10CB1000F60714F4E1E8FFEFE093380880911A0675
:10CB2000E82FFF27EE0FFF1FED5BF84F0190F0811C
:10CB3000E02DE038F1051CF0EFE7F0E006C08FEFE4
:10CB4000E138F80714F4E1E8FFEFE0933908809149
:10CB50001906E82FFF27EE0FFF1FED5BF84F01903E
:10CB6000F081E02DE038F1051CF0EFE7F0E006C0C1
:10CB70002FEFE138F20714F4E1E8FFEF7894E09347
:10CB80003A0880911E0380933B0880911F03809395
:10CB90003C088091200380933D088091210380937D
:10CBA0003E088091220380933F0880912303809365
:10CBB000400880912403809341088091250355C04B
:10CBC00080915C04863018F010925C0485E08093BC
:10CBD0003708809177068093380880910F039091F1
:10CBE0001003A0911103B0911203BC01CD0125E007
:10CBF00030E040E050E00E94D97830933A0820932A
:10CC0000390880910B0390910C03A0910D03B09112
:10CC10000E03BC01CD0125E030E040E050E00E9471
:10CC2000D97830933C0820933B0880916D0680931F
:10CC30003D0880916E0680933E0880916F06809338
:10CC40003F0880911D038093400880914307909195
:10CC50004407809341088091D1059091D20597FDBA
:10CC6000039695958795959587958093420849C039
:10CC70001092370882E5809338081092390880E1D5
:10CC800080933A088091020180933B08809141048F
:10CC900080933C088091420480933D088091430436
:10CCA00080933E088091440480933F08809145041E
:10CCB00026C080914D068093370880917D06809331
:10CCC00038088091C101809339088091460680938D
:10CCD0003A088091470680933B08809148068093EC
:10CCE0003C088091C00180933D0880914A06809362
:10CCF0003E0880914B0680933F0880914C068093BC
:10CD0000400880914608882309F4D8C08AEF8093B0
:10CD1000E9014091480850914908CA0181509E4F4D
:10CD20008F5F9340B0F420914A0830914B08C901BD
:10CD300081509E4F8F5F934060F48091250685FF60
:10CD400008C05093FA034093F9033093F8032093FB
:10CD5000F70380914E0890914F0821E089369207A1
:10CD600024F49093300380932F0380912F039091AC
:10CD7000300320912D0330912E03821B930B845E90
:10CD80009D4F68E671E00E94A478845B9040909388
:10CD90002C0380932B0320915208309153088091EB
:10CDA0002402909125028217930740F480915C043D
:10CDB000882321F430932502209324028091470890
:10CDC00099278836910549F18936910524F48736EB
:10CDD000910531F07BC08936910509F445C076C0D4
:10CDE0008091540880937B088091550880937D083A
:10CDF0008091560880937C088091570880937E0824
:10CE00008091580880937F08809159088093EA01A7
:10CE100080915A088093FD0359C0809154088093F3
:10CE20001E088091550880931F08809156088093B2
:10CE3000200880915708809321088091580880939A
:10CE400022088091C10590915908892B8093C105D2
:10CE500090915A089093FB038091C20583709C7057
:10CE6000892B8093C20532C08091540880931408A6
:10CE70008091550880931508809156088093160874
:10CE8000809157088093170880915808909159080D
:10CE9000909319088093180880915A0890915B0824
:10CEA00090931B0880931A0880915C08992787FD4E
:10CEB0009095909376078093750708C01092FA03B7
:10CEC0001092F9031092F8031092F7031F910F913B
:10CED000FF90EF90089580911308882309F43BC0D8
:10CEE000459884E298E090931D0880931C089091E7
:10CEF000FC03E92FFF27E052FE4F9F5F9093FC0356
:10CF0000808180932608993010F01092FC031092D3
:10CF100013080E940B6481E0809323080000000046
:10CF20000000000000000000000000000000000001
:10CF300000000000000000000000000000000000F1
:10CF400000000000000000000000000080912408A4
:10CF5000809343088EBD089587B18C6087B942984D
:10CF600043981092010480E88093EC011092000431
:10CF70008093EB010895809106048150809306040C
:10CF80008F3F09F0FBC024E0209306048091E90262
:10CF9000992780739070892B21F48091420480FF3F
:10CFA0001CC080916606882349F08091090488237B
:10CFB00011F42093010481E08093090480916706B5
:10CFC0008823B9F080910A04882319F484E08093BF
:10CFD000000481E080930A040CC0109209041092AE
:10CFE0000A0480916206809307048091640680930E
:10CFF000080480910904882309F040C080917C06D0
:10D00000282F332724FF07C080911403882319F4A5
:10D0100025FD4DC04EC090916306983F50F0809121
:10D02000DA078D3D30F08091070488230CF43FC06F
:10D0300040C0983F48F08091DA078A3028F4809108
:10D0400007048823B4F133C0809101048150809398
:10D0500001048F3F79F58091DA07815080930104B4
:10D060008091EC01813011F480E801C086958093B5
:10D07000EC018091EC019091070417C080910104AC
:10D080008150809301048F3FA9F489E080930104CB
:10D090008091EC01813011F480E801C08695809385
:10D0A000EC018091EC0190916606892311F0429A7F
:10D0B00001C0429880910A04882309F043C08091FE
:10D0C0007C06282F332724FF07C080911403882370
:10D0D00019F426FD50C034C090916506983F50F079
:10D0E000809100088D3D30F08091080488230CF475
:10D0F00042C026C0983F48F0809100088A3028F44A
:10D10000809108048823E4F036C0809100048150A7
:10D11000809300048F3F91F58091000881508093A7
:10D1200000048091EB01813011F480E801C0869504
:10D130008093EB018091EB01909108048923D9F44D
:10D1400043980895809100048150809300048F3F9C
:10D15000A9F489E0809300048091EB01813011F4FF
:10D1600080E801C086958093EB018091EB0190915E
:10D170006706892311F0439A0895439808954FB79D
:10D1800024E130E0F8948091C9008F778093C90042
:10D190008091C9008F7B8093C9008091C9008F7DE9
:10D1A0008093C9005A9A52985B9A539A832F992771
:10D1B0008093CD002093CC008091C8008260809342
:10D1C000C80080E18093C9008091CA008F77809366
:10D1D000CA008091CA008F7B8093CA008091CA00E8
:10D1E0008F7D8093CA008091CA008F7E8093CA0091
:10D1F0008091CA00877F8093CA008091C9008B7F8D
:10D200008093C9008091CA0084608093CA00809195
:10D21000CA0082608093CA008091C80087FF03C063
:10D220008091CE00F9CF8091C90080688093C900B9
:10D230004FBF0895EF92FF920F931F93CF93DF9309
:10D24000482F00E010E08091ED01813061F41092F0
:10D25000ED0184E480930B0410920D0410920C04F1
:10D2600010920E042BC180910B04882319F421E045
:10D2700030E001C0980190910C04992371F4232BA4
:10D2800011F081E010C084E480930B0490930D04AE
:10D2900090930C0490930E04FAC0913069F4232B00
:10D2A00009F0EBC082E080930C0480910D048F5F45
:10D2B00080930D0483E0E9C09230D1F4232B09F070
:10D2C000DCC083E080930B0440930E0490910D0426
:10D2D000923039F410920F0447FF03C081E080932D
:10D2E0000F0483E080930C049F5F90930D04CFC0E4
:10D2F000933009F0C2C0232B09F0BFC090930B04F8
:10D3000082E080930C0480910D048F5F80930D0464
:10D3100020910E04822F9927782F6627842F992732
:10D32000682B792B80913F06813049F47370CB01D3
:10D330008050924063E070E00E94A47817C0823071
:10D3400061F47770CB018050944066E070E00E94F9
:10D35000A4782695269526950BC073706856714063
:10D36000CB0177FD0196BC017595679526952695AD
:10D37000022F11270F7010700F5F1F4F0D30110516
:10D3800008F074C07801E00EF11EF701ED5BF84F74
:10D39000808191819B01281B390BC90137FF03C094
:10D3A000909581959F4F069794F480911D03883C3A
:10D3B00030F480911D03865F80931D0308C088ECC4
:10D3C00080931D0380916F008F7D80936F00F70124
:10D3D000ED5BF84F808191819C01220F331F280F54
:10D3E000391F260F371F37FF02C02D5F3F4FE9015E
:10D3F000D595C795D595C795CB0101968C179D07F7
:10D4000014F4219706C061507040C617D7070CF47A
:10D41000219680911D03843BD0F0F701ED5BF84F1E
:10D4200080819181FE01E81BF90BCF0163E070E080
:10D430000E94A478CB01880F991F860F971F27E7BA
:10D4400037E0E20EF31EF7019183808307C027E7E0
:10D4500037E0E20EF31EF70111821082000F111F58
:10D460000D5B184FF801D183C08311C00231110543
:10D4700070F081E08093ED010AC081E08093ED01BE
:10D4800010920D0410920F0484E480930B04809199
:10D490000D04803198F080910F04882331F480913D
:10D4A000ED01882311F48093940110920D041092E1
:10D4B0000F0410920C0484E480930B04E6E0CDB7D3
:10D4C000DEB70C941C79CF93FC0197FF05C0CFEF1A
:10D4D000F095E195FF4F01C0C1E028E631E0CF01B2
:10D4E000B9010E94A478FC018B35910554F08B554D
:10D4F00090408A35910538F484EB90E08E1B9F0BA9
:10D50000FC0141E00DC0CF01855B90408A3591055B
:10D5100018F4E45BF04003C02E1B3F0BF9014FEF02
:10D52000EE0FFF1FEF5BF54F259134918C2F99275C
:10D5300087FD9095289FB001299F700D389F700D31
:10D540001124842F992787FD9095689FA001699FDA
:10D55000500D789F500D1124CA01CF9108952AE5EE
:10D5600030E0281B390BC9010E94636A0895CF93EC
:10D57000DF9380E00E941A7080911E0190911F013C
:10D580006AE070E00E94A4789F938F9380911E01BF
:10D5900090911F016AE070E00E94A4787F936F93DE
:10D5A0008FE09BE09F938F93CDE0D0E7DF93CF9305
:10D5B000E0912804F091290409952DB73EB7285F22
:10D5C0003F4F2DBF8091E9018823B9F186E00E9489
:10D5D0001A7080911808909119086AE070E00E9412
:10D5E00090787F936F938FED90E09F938F938091CE
:10D5F000090890910A08A0910B08B0910C0820919D
:10D600009601309197014091980150919901BC0188
:10D61000CD010E94D9783F932F9388E19BE09F939F
:10D620008F93DF93CF93E0912804F091290409951B
:10D630008DB79EB70A968DBF12C086E00E941A7001
:10D6400084E29BE09F938F93DF93CF93E091280434
:10D65000F091290409950F900F900F900F908091F1
:10D66000FB038823C1F086E00E941A708091FB03BF
:10D6700099279F938F938BE29BE09F938F93DF93E8
:10D68000CF93E0912804F091290409952DB73EB776
:10D690002A5F3F4F2DBF80E10E941A708091F301F5
:10D6A0009091F4016CE370E00E9490789F938F93C7
:10D6B0008091F3019091F4016CE370E00E94907806
:10D6C0007F936F9380918408909185089F938F93A7
:10D6D00086E39BE09F938F93CDE0D0E7DF93CF93DA
:10D6E000E0912804F09129040995809125062DB731
:10D6F0003EB7265F3F4F2DBF80FF29C08AE10E94C1
:10D700001A708091950199279F938F9380910F03B1
:10D7100090911003A0911103B0911203BC01CD01AF
:10D7200024E630E040E050E00E94D9783F932F9308
:10D7300083E49BE09F938F93DF93CF93E091280442
:10D74000F091290409958DB79EB708968DBFDF919A
:10D75000CF910895CF93DF9380E00E941A7080915B
:10D760000107992787FD90959F938F938091F906E4
:10D77000992787FD90959F938F938091F106992724
:10D7800087FD90959F938F938091E906992787FD58
:10D7900090959F938F938AE49BE09F938F93CDE026
:10D7A000D0E7DF93CF93E0912804F0912904099505
:10D7B00080E10E941A702DB73EB7245F3F4F2DBF06
:10D7C00080912107992787FD90959F938F93809152
:10D7D0001907992787FD90959F938F938091110743
:10D7E000992787FD90959F938F938091090799279B
:10D7F00087FD90959F938F938AE59BE09F938F93EE
:10D80000DF93CF93E0912804F0912904099580914A
:10D8100017062DB73EB7245F3F4F2DBF853098F4D4
:10D8200080E10E941A708AE69BE09F938F93DF93BA
:10D83000CF93E0912804F091290409950F900F905F
:10D840000F900F9018C08730B0F488E10E941A70D2
:10D850008FED90E09F938F938BE79BE09F938F9347
:10D86000DF93CF93E0912804F091290409958DB7B7
:10D870009EB706968DBFDF91CF9108950F931F93AA
:10D8800080E00E941A702AE030E080918008909138
:10D890008108B9010E9490789F938F9380918008AE
:10D8A00090918108B9010E9490787F936F93809145
:10D8B0001E0190911F01B9010E94A4789F938F933C
:10D8C00080911E0190911F01B9010E94A4787F935D
:10D8D0006F9384E89BE09F938F930DE010E71F9375
:10D8E0000F93E0912804F0912904099580E10E94AA
:10D8F0001A708DB79EB70C968DBF80918408909159
:10D9000085089F938F9380918208909183089F93BD
:10D910008F9387E99BE09F938F931F930F93E091E1
:10D920002804F091290409958DB79EB708968DBFFC
:10D930001F910F9108950F931F93CF93DF938091C1
:10D94000E901CDE0D0E7882309F478C080E00E94A7
:10D950001A708091150899279F938F9380911708CB
:10D9600099279F938F9383EA9BE09F938F938E01D8
:10D97000DF93CF93E0912804F091290409958DB7A6
:10D980009EB708968DBF80911608833031F48CE0E5
:10D990000E941A7082EB9BE005C08CE00E941A7016
:10D9A00087EB9BE09F938F93DF93CF93E0912804C5
:10D9B000F091290409950F900F900F900F9080918E
:10D9C000140881FF12C08CE00E941A708CEB9BE05F
:10D9D0009F938F931F930F93E0912804F091290454
:10D9E00009950F900F900F900F9080E10E941A7090
:10D9F0008FED90E09F938F9380911A0890911B0870
:10DA00009F938F9380911808909119086AE070E0B5
:10DA10000E9490787F936F9381EC9BE09F938F930C
:10DA20008DE090E79F938F93E0912804F091290473
:10DA300009958DB79EB70A968DBF12C082E00E94ED
:10DA40001A7081ED9BE09F938F93DF93CF93E091CA
:10DA50002804F091290409950F900F900F900F90D2
:10DA6000DF91CF911F910F910895CF93C82F2091EF
:10DA700010042093110499278F32910509F1803306
:10DA800091051CF44F97A1F02CC08F34910501F142
:10DA90008F38910531F5222319F481E090E038C0E8
:10DAA00086E0289FF0011124E950F54F849117C0BA
:10DAB00086E0289FF0011124E850F54F84910FC0B3
:10DAC00086E0289FF0011124E750F54F849107C0AC
:10DAD00086E0289FF0011124E650F54F8491809351
:10DAE000100490911004809111049813C0E00E94DA
:10DAF00020709091100486E0989FF0011124E55069
:10DB0000F54F259134918C2FF901099580E090E033
:10DB1000CF91089510928108109280081092850884
:10DB2000109284081092830810928208109286083E
:10DB30008AE090E00E9416179093130480931204D9
:10DB40000895CF93DF9380911204909113040E9463
:10DB50001F17882309F4AFC0809112049091130419
:10DB60000A969093130480931204E0E0F0E09F0182
:10DB700090E05FEFA2EEB6E04BE0ED018B8187FF16
:10DB80000BC09F5F8D81E80FF11D8981280F311D2A
:10DB90008E81851708F4582F4150189647FFEDCF16
:10DBA00050938608232B41F52091180430911904D5
:10DBB00040911A0450911B04BB27A52F942F832F4B
:10DBC0009093170480931604AA27BB27281B390BB0
:10DBD0004A0B5B0BCF01AA27BB27280F391F4A1F0F
:10DBE0005B1F209318043093190440931A04509338
:10DBF0001B04E5E0F0E013C02091160430911704F7
:10DC00002E173F0718F4E21BF30B02C0E0E0F0E030
:10DC1000892F9927880F991FE80FF91F3596F093E0
:10DC20008108E0938008EF3FF10578F480911E01B0
:10DC300090911F018E9F90018F9F300D9E9F300D00
:10DC40001124C90164E670E013C0CF019695879551
:10DC50009695879520911E0130911F01289FA00164
:10DC6000299F500D389F500D1124CA0169E170E0C1
:10DC70000E94907870938308609382082091140426
:10DC8000309115042E0F3F1F309315042093140478
:10DC90005EE02131350778F0809184089091850805
:10DCA0000196909385088093840820513E403093DC
:10DCB000150420931404DF91CF9108954FB720E409
:10DCC00030E0F8948091C9008F778093C9008091EB
:10DCD000C9008F7B8093C9008091C9008F7D80939C
:10DCE000C9005A9A52985B9A539A832F9927809326
:10DCF000CD002093CC008091C80082608093C80042
:10DD000088E18093C9008091CA008F778093CA0010
:10DD10008091CA008F7B8093CA008091CA008F7D5A
:10DD20008093CA008091CA008F7E8093CA00809140
:10DD3000CA00877F8093CA008091C9008B7F80933F
:10DD4000C9008091CA0084608093CA008091CA0093
:10DD500082608093CA008091C80087FF03C08091D1
:10DD6000CE00F9CF8091C90080688093C9004FBF71
:10DD700008950F931F93CF93DF93482F4F5F8931FF
:10DD800008F08BC080914207841720F44F5F4093C6
:10DD900042074150CB0183539B4268E170E00E94EF
:10DDA000A478A42FBB27FD01EA0FFB1FED5BF84F02
:10DDB000808191819B01281B390BC90137FF03C06A
:10DDC000909581959F4F069794F480911D03883C10
:10DDD00030F480911D03865F80931D0308C088EC9A
:10DDE00080931D0380916F008F7D80936F00FD01F4
:10DDF000EA0FFB1FED5BF84F808191819C01220FA0
:10DE0000331F280F391F260F371F37FF02C02D5F22
:10DE10003F4FE901D595C795D595C795CB0101969B
:10DE20008C179D0714F4219706C061507040C617E7
:10DE3000D7070CF4219680911D03843BD8F08D0107
:10DE40000A0F1B1FF801ED5BF84F80819181FE01E5
:10DE5000E81BF90BCF0163E070E00E94A478CB01CE
:10DE6000880F991F860F971F0958184FF801918343
:10DE7000808307C0AA0FBB1FA958B84F11961C92E8
:10DE80001E92E42FFF27EE0FFF1FED5BF84FD183AB
:10DE9000C083443011F410929401DF91CF911F910F
:10DEA0000F910895CF93DF9320918708822F9927B0
:10DEB000807F9070409709F06CC02F3109F046C008
:10DEC000809188088093200420918A08209322045E
:10DED00080918B0880932104822F99279093440787
:10DEE00080934307222309F054C080911906282FFC
:10DEF0003327220F331FF901E958F84F118210829E
:10DF000080911A06A82FBB27AA0FBB1FFD01E95855
:10DF1000F84F1182108280911C06E82FFF27EE0F28
:10DF2000FF1FCF018958984FEC01198218822D5B91
:10DF3000384FE90119821882AD5BB84F11961C92D7
:10DF40001E92ED5BF84F1182108223C0C22FCF705A
:10DF5000CA30F8F4809188088093B10880918908CC
:10DF60008093B00880918A088093B30880918B08D1
:10DF70008093B2086091B0087091B1088C2F0E9414
:10DF8000B96E6091B2087091B3088C2F8F5F0E94B8
:10DF9000B96EDF91CF910895CF93C82F8F3F49F489
:10DFA000809123048F3F29F41092250410922404B9
:10DFB00032C020912504222339F4CF3111F485E0B9
:10DFC00001C084E08093260480912604909124046B
:10DFD0008217A0F4892F8095809324048F3F19F431
:10DFE0008EEF8093240480912404C81711F40E94BA
:10DFF000526F10922504109224040BC0E22FFF27C9
:10E00000E957F74FC0832F5F209325049C0F90930F
:10E010002404C0932304CF91089590911F04933258
:10E0200040F4E92FFF27E357F74F80839F5F9093DA
:10E030001F040895833218F48D5F80931F040895A0
:10E0400090E2E0E9F8E08FE19193815087FFFCCF07
:10E050000895CF93CFB723E031E0F8948091C900C1
:10E060008F778093C9008091C9008F7B8093C9000E
:10E070008091C9008F7D8093C9005A9A52985B9A0B
:10E08000539A832F99278093CD002093CC008091C1
:10E09000C80082608093C80088E18093C9008091A5
:10E0A000CA008F778093CA008091CA008F7B8093CB
:10E0B000CA008091CA0080628093CA008091CA0021
:10E0C00080618093CA008091CA0088608093CA00F2
:10E0D0008091C90084608093C9008091CA008460E7
:10E0E0008093CA008091CA0082608093CA008091A8
:10E0F000C80087FF03C08091CE00F9CF8091C9008E
:10E1000080688093C9008091C90080648093C900B1
:10E110000E942070CFBFCF910895282F99278F702C
:10E120009070892B31F4209580911E04822B80936E
:10E130001E0408958091F001882309F441C0809164
:10E14000E90285FF0AC082E980938D0883E280930B
:10E150008E0885E580938F0802C010928D0880910B
:10E16000F1018F3071F480911E040E94356D882377
:10E1700041F081E980938D0880938E0881E380933C
:10E180008F081092F0018091C80085FFFCCF80912C
:10E19000C9008F7E8093C9008091C9008E7F8093D3
:10E1A000C90080918D08882311F48EEF01C08EE79D
:10E1B0008093CE0080911E048093F10110921E0482
:10E1C00008951F920F920FB60F9211248F939F9371
:10E1D000EF93FF939091F001992309F040C0809153
:10E1E0002704882361F480918D08882311F483E04B
:10E1F00003C0813999F481E0809327040FC08330F4
:10E2000099F480918D08882349F090938D0880912E
:10E21000C9008E7F8093C9008EEF1EC08091C90017
:10E2200081608093C9000EC0833261F48091C9007F
:10E230008E7F8093C9008FEF8093CE0081E0809322
:10E24000F00114C080912704E82FFF27E357F74F10
:10E250008F5F8093270480818093CE0007C0109247
:10E2600027048091C90080618093C900FF91EF91DC
:10E270009F918F910F900FBE0F901F901895EF9266
:10E28000FF920F931F93CF93DF937C018B01EA01E1
:10E29000452B39F0F80181918F01F70109952197FC
:10E2A000C9F7E6E0CDB7DEB70C941C79EF92FF9288
:10E2B0000F931F93CF93DF937C018B01EA01452BD2
:10E2C00041F0F8010F5F1F4F8491F70109952197E5
:10E2D000C1F7E6E0CDB7DEB70C941C790F931F931E
:10E2E000CF938C01C62F161634F480E2F8010995FD
:10E2F000C1501C16D4F3CF911F910F9108950F9325
:10E300001F93CF938C01C62F161634F480E3F801C7
:10E310000995C1501C16D4F3CF911F910F91089508
:10E32000A5E3B0E0E6E9F1E70C94F4782E96EEADC3
:10E33000FFAD2E9788249924540180911D048823D1
:10E3400021F42C961FAE1EAE2C975EE4452E512C68
:10E350004C0E5D1E6F01B60105C0153239F00894F0
:10E36000C11CD11CF60114911123B9F7A601461B5B
:10E37000570B31F02C968EAD9FAD2C970E945671A5
:10E38000112309F46AC20894C11CD11CFF24FDA604
:10E39000FCA64FEFE42EF9A6F6010894C11CD11C8F
:10E3A0001491153721F0812F80628837B1F4F0FE87
:10E3B0000AC0F20124E030E0420E531E80809180BA
:10E3C000A280B3800AC0F20142E050E0440E551E24
:10E3D000808191814C01AA24BB24103221F489A5AB
:10E3E0008823D1F61DC0133219F458E0F52AD4CF92
:10E3F0001A3211F01D3291F41A3259F4F20182E00E
:10E4000090E0480E591EE081ECA7EE232CF6E19532
:10E41000ECA790E1F92AAFEDFA22BECF1B3211F43E
:10E4200019A7BACF1E32C1F5F6010894C11CD11C40
:10E4300014911A3279F4F20122E030E0420E531EB8
:10E44000408151813FEF4F3F530714F44FEF5FEF8F
:10E45000E42EA2CF40E050E0812F80538A30A0F418
:10E46000CA0133E0880F991F3A95E1F7840F951F91
:10E47000480F591F410F511D40535040F601089459
:10E48000C11CD11C1491E8CF8FEF4F3F580714F4F3
:10E490004FEF5FEFE42E85CF103329F4F4FC7CCFEF
:10E4A00090E2F92A79CF812F81538930D8F440E066
:10E4B00050E0CA0123E0880F991F2A95E1F7840FE5
:10E4C000951F480F591F410F511D40535040F601F1
:10E4D0000894C11CD11C1491812F80538A3048F3B9
:10E4E0004CA75FCF183619F4A4E0FA2A55CF1C3692
:10E4F00019F4B1E0FB2A50CF133661F43E010894C1
:10E50000611C711CF20122E030E0420E531E80813A
:10E5100089833CC1143421F0143611F0193651F5B9
:10E52000143411F431E0F32AF0FE0AC0F20144E0A1
:10E5300050E0440E551E80809180A280B3800CC0B4
:10E54000F20182E090E0480E591E808191814C01D9
:10E55000AA2497FCA094BA2CB7FE0AC0B094A09449
:10E5600090948094811C911CA11CB11C8DE289A700
:10E570000AE06FC01F3411F01F3631F41F3411F45C
:10E5800091E0F92A08E064C0103779F4F201A2E0C2
:10E59000B0E04A0E5B1E808191814C01AA24BB240D
:10E5A00000E1B0E4FB2A18E753C01337C1F5F201CC
:10E5B00022E030E0420E531E6080718061147104CD
:10E5C00089F43E010894611C711C88E289838EE6FF
:10E5D000F301818385E78B838CE68C838D8389E2CD
:10E5E0008E831F82E7FC13C08E2D992787FD90959F
:10E5F000AC0160E070E0C3010E94C176009729F091
:10E60000382E3618E3140CF0C3C03E2CC1C0F30101
:10E6100001900020E9F731973E2E3618B9C0153524
:10E6200011F0153731F4153511F4F1E0FF2A0AE045
:10E630000FC0183519F0183709F0A0C000E1F3FE3B
:10E6400007C081149104A104B10411F020E4F22A5E
:10E6500019A6EDA6E7FC02C03FEDF32289E2682E81
:10E66000712C6C0E7D1E81149104A104B10421F45F
:10E670004DA5442309F47BC0802F9927AA27BB27E7
:10E680008EA79FA7A8ABB9AB202E332490E08916A4
:10E6900090E0990691E0A90690E0B90648F0C5011E
:10E6A000B4012EA53FA548A959A90E94B77817C063
:10E6B000AFEF8A169104A104B10449F040F0C401FF
:10E6C000B1010E9490789B014427552708C0882DEE
:10E6D000602F0E948478282F3327442755272AABA0
:10E6E0003BAB4CAB5DAB0A3059F48AA9880F880F5D
:10E6F000880F9AA9990F890F382D381B832F10C0C6
:10E70000003139F48AA98295807F482D481B842FD7
:10E7100007C08AA9880F880F880F582D581B852F8E
:10E7200090E02EA53FA548A959A982169306A406F4
:10E73000B50608F091E08AA89BA8ACA8BDA88A30CD
:10E7400010F4805D04C0895A183509F48F7DD30117
:10E750008E933D01992309F099CF083041F4F3FEDF
:10E7600006C0803321F080E3FD0182933F01CE019A
:10E770000196382E3618F8E23F0E0BC0112309F42B
:10E780006CC03E010894611C711C1983B1E03B2EE2
:10E7900019A6032D2DA4231827FC222489A588233C
:10E7A00011F00F5F02C0F6FC0E5F020DEF2CFF248C
:10E7B000C70180739070892B49F48CA5801B682F4A
:10E7C0002C968EAD9FAD2C970E946E7189A58823E3
:10E7D00031F041E050E0BE01675D7F4F0AC0E6FEC8
:10E7E0000EC080E38AA71BA742E050E0BE01665D31
:10E7F0007F4F2C968EAD9FAD2C970E943F71C70125
:10E8000080739070809749F48CA5801B682F2C969C
:10E810008EAD9FAD2C970E947F71622D2C968EAD90
:10E820009FAD2C970E947F71832D992787FD90952E
:10E83000AC01B3012C968EAD9FAD2C970E943F7119
:10E84000E4FE89CD2CA5201B2CA7622F2C968EAD23
:10E850009FAD2C970E946E717ECDE2E1CB5C0C9453
:10E8600010792FB740E0F894E0E0F0E081E2809387
:10E8700057009491E2E0F0E0809357003491E4E097
:10E88000F0E08093570084912FBF9E3199F4363980
:10E8900041F4893011F441E00DC08A3059F442E06E
:10E8A00009C0373939F4863011F443E003C08530AC
:10E8B00009F444E0842F992708959FB7F894809134
:10E8C000C900877F8093C9008091C9008F7E8093A3
:10E8D000C9008091C9008F778093C9008091C900D9
:10E8E0008F7B8093C9008091C9008F7D8093C90080
:10E8F00052985A9A53985B9A9FBF08951F93CF934B
:10E90000DF93182F80911D04882309F48DC0809116
:10E91000EF01181709F488C080911C04882321F4A2
:10E920000E94317480931C048AEC9CE09F938F9327
:10E93000C0EFD2E1DF93CF93E0912804F091290456
:10E9400009950F900F900F900F90812F992782308B
:10E95000910501F1833091052CF4009761F0019746
:10E9600069F024C084309105D9F084309105ACF071
:10E970000597C9F01BC08AEB9CE002C088EA9CE0C6
:10E980009F938F93DF93CF93E0912804F091290414
:10E99000099518C08FE89CE0F3CF8CE69CE0F0CF9F
:10E9A0008EE59CE0EDCF86E59CE0EACF87ED9CE02C
:10E9B0009F938F93DF93CF93E0912804F0912904E4
:10E9C000099510E00F900F900F900F9080911C040C
:10E9D000843011F0823099F40E945D74812F81504F
:10E9E000833018F40E94BF681DC0143019F40E94CF
:10E9F000297018C01530B1F40E945E6E13C0112347
:10EA000089F08DEE9CE09F938F9380EF92E19F932E
:10EA10008F93E0912804F091290409950F900F90AD
:10EA20000F900F901093EF01DF91CF911F910895F8
:10EA30000F931F9381E080931D044091EE01E6E067
:10EA4000FCE020E030E05FE4849199272F5F3F4FA6
:10EA5000829FB001839F700D929F700D11244627F5
:10EA60005150319657FFF0CF4093EE01EEEDFBE0B1
:10EA700020E030E057E2849199272F5F3F4F829F3B
:10EA8000B001839F700D929F700D11244627515045
:10EA9000319657FFF0CF4093EE0180911C048823FC
:10EAA00021F40E94317480931C048091EE01833420
:10EAB00059F088E190E029E20FB6F894A895809388
:10EAC00060000FBE2093600080E991E790932904D5
:10EAD0008093280488E09DE09F938F9300EF12E1DC
:10EAE0001F930F93E0912804F091290409950F904A
:10EAF0000F900F900F9081E690E09F938F9382E5A7
:10EB000090E09F938F931F921F92809102016AE081
:10EB10000E948478892F99279F938F938091020177
:10EB20000E94847899279F938F938EE29DE09F9314
:10EB30008F931F930F93E0912804F0912904099576
:10EB400086E09CE09F938F931F930F93E09128049E
:10EB5000F091290409958EED9BE09F938F931F936D
:10EB60000F93E0912804F091290409958DB79EB781
:10EB700046968DBF82E69DE09F938F931F930F93E0
:10EB8000E0912804F0912904099583EC8093810099
:10EB900080916F00806280936F000F900F900F90B4
:10EBA0000F901F910F91089580911D04882361F0AB
:10EBB0008091EF01843011F40E949A708091EE01EF
:10EBC000833411F010921D0408951F920F920FB616
:10EBD0000F9211242F933F934F935F936F937F93E3
:10EBE0008F939F93AF93BF93EF93FF932091CE00AA
:10EBF0008091FA018823B1F02093C6008091FA0138
:10EC0000823029F52F3F19F58FEF94E3ACE0B0E0A7
:10EC1000C297A109B109B7FFFBCF80916B04809324
:10EC2000CE0015C09091EF01892F8150833020F4E0
:10EC3000822F0E941A690BC0943021F4822F0E9407
:10EC40008D7005C0953019F4822F0E94CC6FFF9112
:10EC5000EF91BF91AF919F918F917F916F915F9154
:10EC60004F913F912F910F900FBE0F901F901895CD
:10EC7000002422273327442751E0BB27EE27FF2714
:10EC8000A0E1660F771F881F991F001C221F331FEA
:10EC9000441F660F771F881F991F001C221F331FF8
:10ECA000441F2AF4050E2B1F3E1F4F1F04C0051AD8
:10ECB0002B0B3E0B4F0B550FBB1FEE1F587F5560A4
:10ECC00047FD5250AA95E9F6E695B7955795E69512
:10ECD000B7955795852F9B2F08952227332741E01D
:10ECE000552768E0880F991F221F331F880F991F2F
:10ECF000221F331F1AF4240F351F02C0241B350BAB
:10ED0000440F551F487F456037FD42506A9551F7C3
:10ED10005695479556954795842F0895AA2797FFAE
:10ED200004C0809590958A1F9A1F77FF04C0609554
:10ED300070956A1F7A1F669F9001779FA001679F59
:10ED4000300D411D5A1F300D411D5A1F889FF00183
:10ED5000999F2E0F3F1F401D511D899F300D411D52
:10ED60005A1F300D411D5A1FCA01B901112480CF0D
:10ED7000FB01DC0102C005900D9241505040D8F7D4
:10ED80000895FC014150504030F001900616D1F733
:10ED90003197CF010895882799270895A0E0B0E022
:10EDA000E4EDF6E70C94FC786C017B01EA01590173
:10EDB00021978FEFCF3FD80789F086010894C11CB7
:10EDC000D11CC7010894E11CF11CF5010995F8015B
:10EDD00080832197FFEFCF3FDF0779F7EAE0CDB7D8
:10EDE000DEB70C941879CF92DF92EF92FF920F93D7
:10EDF0001F937C016B01FB010995082FC701019648
:10EE0000F6010995182FC8011F910F91FF90EF90FF
:10EE1000DF90CF900895A0E0B0E0E1E1F7E70C9437
:10EE2000FE788C017B01EA01690121978FEFCF3FCA
:10EE3000D80771F0F70121917F01C8010F5F1F4FC3
:10EE4000622FF60109952197FFEFCF3FDF0791F77A
:10EE5000E8E0CDB7DEB70C941A79CF92DF92EF924B
:10EE6000FF920F931F936C018B017A01FA010995B0
:10EE7000812F9927682FC6010196F70109951F91E7
:10EE80000F91FF90EF90DF90CF9008955058BB27DF
:10EE9000AA270ED0E0C0D1D030F0D6D020F031F487
:10EEA0009F3F11F41EF4C6C00EF4E095E7FBBCC012
:10EEB000E92FE2D080F3BA1762077307840795073A
:10EEC00018F071F49EF5FAC00EF4E0950B2EBA2FEF
:10EED000A02D0B01B90190010C01CA01A001112460
:10EEE000FF27591B99F0593F50F4503E68F11A160C
:10EEF000F040A22F232F342F4427585FF3CF46959D
:10EF000037952795A795F0405395C9F77EF41F16BE
:10EF1000BA0B620B730B840BBAF09150A1F0FF0F88
:10EF2000BB1F661F771F881FC2F70EC0BA0F621F74
:10EF3000731F841F48F4879577956795B795F79564
:10EF40009E3F08F0B3CF9395880F08F09927EE0FF6
:10EF500097958795089598D088F09F5790F0B92F8E
:10EF60009927B751A0F0D1F0660F771F881F991F1E
:10EF70001AF0BA95C9F712C0B13081F09FD0B1E054
:10EF800008959CC0672F782F8827B85F39F0B93F64
:10EF9000CCF3869577956795B395D9F73EF4909520
:10EFA0008095709561957F4F8F4F9F4F0895E8949E
:10EFB00009C097FB3EF490958095709561957F4FC1
:10EFC0008F4F9F4F9923A9F0F92F96E9BB2793956F
:10EFD000F695879577956795B795F111F8CFFAF47F
:10EFE000BB0F11F460FF1BC06F5F7F4F8F4F9F4FB0
:10EFF00016C0882311F096E911C0772321F09EE80E
:10F00000872F762F05C0662371F096E8862F70E073
:10F0100060E02AF09A95660F771F881FDAF7880F4D
:10F020009695879597F9089597F99F6780E870E01E
:10F0300060E008959FEF80EC089500240A9416166E
:10F04000170618060906089500240A9412161306D6
:10F05000140605060895092E0394000C11F4882364
:10F0600052F0BB0F40F4BF2B11F460FF04C06F5F80
:10F070007F4F8F4F9F4F089557FD9058440F551F56
:10F0800059F05F3F71F04795880F97FB991F61F02A
:10F090009F3F79F087950895121613061406551FA1
:10F0A000F2CF4695F1DF08C0161617061806991F0D
:10F0B000F1CF86957105610508940895E894BB2702
:10F0C00066277727CB0197F90895629FD001739F38
:10F0D000F001829FE00DF11D649FE00DF11D929FF4
:10F0E000F00D839FF00D749FF00D659FF00D992733
:10F0F000729FB00DE11DF91F639FB00DE11DF91F57
:10F10000BD01CF0111240895991B79E004C0991F16
:10F11000961708F0961B881F7A95C9F78095089571
:10F12000AA1BBB1B51E107C0AA1FBB1FA617B7072D
:10F1300010F0A61BB70B881F991F5A95A9F7809549
:10F140009095BC01CD01089597FB092E07260AD0A2
:10F1500077FD04D0E5DF06D000201AF470956195A4
:10F160007F4F0895F6F7909581959F4F0895A1E2FE
:10F170001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F31
:10F18000FF1FA217B307E407F50720F0A21BB30B7C
:10F19000E40BF50B661F771F881F991F1A9469F7F8
:10F1A00060957095809590959B01AC01BD01CF0154
:10F1B000089597FB092E05260ED057FD04D0D7DF02
:10F1C0000AD0001C38F450954095309521953F4F5A
:10F1D0004F4F5F4F0895F6F7909580957095619524
:10F1E0007F4F8F4F9F4F08952F923F924F925F9284
:10F1F0006F927F928F929F92AF92BF92CF92DF9247
:10F20000EF92FF920F931F93CF93DF93CDB7DEB7AB
:10F21000CA1BDB0B0FB6F894DEBF0FBECDBF09943F
:10F220002A88398848885F846E847D848C849B8496
:10F23000AA84B984C884DF80EE80FD800C811B81A4
:10F24000AA81B981CE0FD11D0FB6F894DEBF0FBED3
:10F25000CDBFED010895EE0FFF1F0590F491E02D55
:04F260000994FFCF3F
:10F264005E010A010164FF01FFFFC01FC01F01010D
:10F2740001737373FF03007D0000C409C4096400B3
:10F284001148656C6C6F20576F726C64000000004D
:10F29400000000000000000000000000000000006A
:10F2A400000000000000000000000000000000005A
:10F2B400000000000000000000000000000000004A
:10F2C400000000000000000000000000000000003A
:10F2D4000053706F727400004E6F726D616C0000A9
:10F2E400426567696E6E6572000051756164726F84
:10F2F4000000640001200B050000ECFF000204067E
:10F30400070808080706040200FEFCFAF9F8F8F8F2
:10F31400F9FAFCFE000204060708086440415A4654
:10F3240064640A02969696960840403A10FB303878
:10F334000190D0030090D00300F4017800FF03642F
:10F344000B0A0D0B0C0E0B0F10FA2001010170FFBC
:02F35400010FA7
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/Flight-Ctrl_MEGA1284p_V0_82a_S3D.hex
0,0 → 1,3847
:100000000C94C4060C9413070C9413070C94130758
:100010000C9413070C9413070C9413070C941307F8
:100020000C9413070C943B190C9413070C941307AE
:100030000C9425340C9413070C9413070C94130799
:100040000C9413070C9413070C940B160C941307C1
:100050000C94260C0C9413070C94F00B0C941307BF
:100060000C941E1C0C9413070C94B82F0C941307BB
:100070000C945D740C9413070C94596F0C94130733
:100080000C9413070C9413070C941307491C4E1C73
:10009000531C5C1C731C8A1C9A1CAA1CC71CB31E14
:1000A0008A1C751D861DB51DD31DF01D4A1EA51E7B
:1000B00083201521D2215222BB226B237225CF250A
:1000C0003C268626D1261E276F27D1273028CA280E
:1000D00065295F2AD72F0B304E30BE30D63017310E
:1000E000CE319532953295329532953295329532A0
:1000F00095329532953295324A324C3251326932CC
:100100006B320A0D426174743A0020256420436505
:100110006C6C732000204C6F77207761726E696E73
:1001200067206C6576656C3A2025642E2564000A8C
:100130000D466F756E6420424C2D4374726C3A20EC
:10014000002564000A0D0A0D2121204D4953534911
:100150004E4720424C2D4354524C3A2025642021D6
:1001600021000A0D3D3D3D3D3D3D3D3D3D3D3D3D7B
:100170003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DAF
:100180003D3D3D3D3D3D3D000A0D43616C69627260
:100190006174696E67207072657373757265207320
:1001A000656E736F722E2E004F4B0A0D000A0D46BE
:1001B0006C696768742D74696D65202575206D699B
:1001C0006E2020546F74616C3A2575206D696E0045
:1001D0000A0D436F6E74726F6C3A2000486561645B
:1001E000696E67486F6C64004E6F726D616C202899
:1001F0004143432D4D6F646529000A0D3D3D3D3D52
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D1E
:100210003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A41
:100220000D00416E676C654E69636B2020202020B5
:100230002020416E676C65526F6C6C20202020205E
:1002400020204163634E69636B2020202020202002
:100250002020416363526F6C6C20202020202020DE
:1002600020205961774779726F202020202020209C
:1002700020204865696768742056616C7565202088
:1002800020204163635A202020202020202020208D
:1002900020204761732020202020202020202020A3
:1002A0002020436F6D706173732056616C756520FB
:1002B0002020566F6C74616765205B302E31565D6F
:1002C00020205265636569766572204C6576656CA1
:1002D00020204779726F20436F6D70617373202007
:1002E00020204D6F746F722031202020202020208C
:1002F00020204D6F746F722032202020202020207B
:1003000020204D6F746F7220332020202020202069
:1003100020204D6F746F7220342020202020202058
:1003200020203136202020202020202020202020A6
:100330002020313720202020202020202020202095
:100340002020313820202020202020202020202084
:100350002020313920202020202020202020202073
:100360002020536572766F2020202020202020201E
:100370002020486F7665726761732020202020203E
:10038000202043757272656E74205B302E31415DA2
:1003900020204361706163697479205B6D41685D01
:1003A0002020323420202020202020202020202027
:1003B0002020323520202020202020202020202016
:1003C0002020323620202020202020202020202005
:1003D00020203237202020202020202020202020F4
:1003E00020204932432D4572726F72202020202038
:1003F0002020424C204C696D697420202020202050
:1004000020204750535F4E69636B2020202020201E
:1004100020204750535F526F6C6C202020202020FA
:10042000202021212120494E434F4D504154494223
:100430004C4520212121002A002E000A0D20444194
:1004400043206F7220493243204552524F5221209F
:10045000436865636B204932432C203356726566CE
:100460002C2044414320616E6420424C2D43747221
:100470006C005B25695D005B25695D002B204D6983
:100480006B726F4B6F70746572202B0048573A5631
:1004900025642E25642053573A25642E2564256350
:1004A0000053657474696E673A25642025730048AB
:1004B00061726477617265204572726F7220313AA1
:1004C0002564202121004D697373696E6720424CB9
:1004D0002D4374726C3A25642121004D6978657250
:1004E000204572726F722100493243204552524FAB
:1004F00052212121004865696768743A202025351A
:100500006900536574706F696E743A2535690050DF
:10051000726573737572653A253569004F66667347
:1005200065743A202025356900486569676874203C
:10053000636F6E74726F6C0044495341424C454482
:100540000048656967687420636F6E74726F6C0031
:1005500044495341424C4544006163742E20626516
:100560006172696E67004E69636B3A20202020201B
:100570002025356900526F6C6C3A20202020202005
:1005800025356900436F6D706173733A2020202513
:100590003569004B313A25346920204B323A2534F5
:1005A0006920004B333A25346920204B343A2534F6
:1005B0006920004B353A25346920204B363A2534E2
:1005C0006920004B373A25346920204B383A2534CE
:1005D0006920004E693A2534692020526F3A25344B
:1005E00069200047733A253469202047693A253449
:1005F00069200050313A253469202050323A2534A0
:1006000069200050333A253469202050343A25348B
:100610006920004779726F202D2053656E736F72C9
:10062000004E69636B25346920282533692E2569BE
:100630002900526F6C6C25346920282533692E25DA
:10064000692900476965722534692028253369299D
:10065000004E69636B2025346920282533692E25D7
:10066000782900526F6C6C20253469202825336965
:100670002E257829005961772020253469202825E6
:10068000336929004E69636B20253469202825339E
:100690006929282533692900526F6C6C202534693B
:1006A00020282533692928253369290059617720B5
:1006B0002025346920282533692928253369290014
:1006C000414343202D2053656E736F72004E696362
:1006D0006B2025346920282533692900526F6C6C02
:1006E00020253469202825336929005A202020201C
:1006F00025346920282533692900566F6C74616799
:10070000653A2020202533692E253169560043752E
:100710007272656E743A2020202533692E25316966
:100720004100506F7765723A2020202020253469DF
:1007300057004469736368617267653A20253569BB
:100740006D41680052656365697665720052432D9C
:10075000525353493A202020202534690052432D1A
:100760005175616C6974793A202534690052432DC2
:100770004368616E6E656C733A25346900436F6D32
:10078000706173730048656164696E673A20202563
:1007900035690056616C75653A2020202025356941
:1007A0000053746172743A2020202025356900506E
:1007B0006F7469313A202025336900506F746932B3
:1007C0003A202025336900506F7469333A20202580
:1007D000336900506F7469343A2020253369005022
:1007E0006F7469353A202025336900506F7469367B
:1007F0003A202025336900506F7469373A2020254C
:10080000336900506F7469383A20202533690053EA
:100810006572766F202000536574706F696E742066
:100820002025336900506F736974696F6E3A202513
:1008300033690052616E67653A2533692D25336946
:100840000045787465726E436F6E74726F6C202011
:10085000004E693A2534692020526F3A25346920C8
:100860000047733A253469202047693A25346920C6
:100870000048693A253469202043663A25346920C6
:1008800000424C2D4374726C204572726F7273205B
:100890000025336420253364202533642025336408
:1008A000200025336420253364202533642025333C
:1008B00064200025336420253364202533642025FB
:1008C00033642000424C2054656D7065726174750C
:1008D0007265002533692025336920253369202579
:1008E00033692000253369202533692025336920A9
:1008F0002533692000253369202533692025336994
:10090000202533692000424C2D4374726C20666FA1
:10091000756E642000202563202020256320202080
:10092000256320202025632000202563202020250A
:1009300063202020256320202025632000202563BC
:100940002020202D2020202D2020202D200031307F
:1009500000313100313200466C696768742D54698A
:100960006D65202000546F74616C3A2535756D6992
:100970006E004163743A20202535756D696E00283C
:10098000726573657429000A0D47656E657261743E
:10099000696E672064656661756C74205061726170
:1009A0006D6574657220536574202564000A0D55C9
:1009B00073696E6720506172616D65746572205352
:1009C0006574202564000A0D47656E65726174695F
:1009D0006E672064656661756C74204D6978657218
:1009E000205461626C65000A0D4D697865722D4373
:1009F0006F6E6669673A20272573272028257520A2
:100A00004D6F746F727329000A0D3D3D3D3D3D3DB4
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D06
:100A20003D3D3D3D3D3D3D3D000A0D414343206E72
:100A30006F742063616C69627261746564210D0A70
:100A40000000008F001E01AD013B02CA025803E600
:100A500003740402058F051B06A7063307BE07486B
:100A600008D2085B09E3096B0AF20A780BFD0B81D7
:100A70000C040D860D070E870E060F840F00107BE9
:100A800010F5106E11E5115B12CF124213B3132350
:100A9000149214FE146A15D3153B16A11605176798
:100AA00017C81727188318DE1837198E19E3193657
:100AB0001A871AD61A231B6E1BB61BFD1B411C83FB
:100AC0001CC31C001D3C1D751DAB1DE01D121E42EC
:100AD0001E6F1E9A1EC31EE91E0D1F2E1F4D1F697D
:100AE0001F841F9B1FB01FC31FD31FE11FEC1FF5E7
:100AF0001FFB1FFF1F0020030100002F69000201E0
:100B000001226A01030202B66A02000303136B2585
:100B100032692E253169560025336425632025303E
:100B200033646D00537461747573004552524F52B3
:100B30003A2025326400253469202532693A25306F
:100B40003269002534696D2563002533692025331A
:100B50006920253369202533690025336920253331
:100B60006920253369202533690054656D706572ED
:100B70006174757265732020202000256343202056
:100B8000202020002532692E25316956202025336A
:100B9000692E253169410025346957202536696D54
:100BA0004168002532756D2F73205361743A2564B6
:100BB000200020203344004E6F46780044475053B5
:100BC00000486F6D653A2533646D202533642563D5
:100BD000004E6F204E6176694374726C21000A0DDD
:100BE0007777772E4D696B726F4B6F707465722ECD
:100BF00064652028632920486953797374656D738F
:100C000020476D6248000A0D746865207573652081
:100C10006F66207468697320736F6674776172659C
:100C2000206973206F6E6C79207065726D697474C1
:100C30006564200A0D6F6E206F726967696E616C62
:100C4000204D696B726F4B6F707465722D486172C5
:100C50006477617265004143542044534C004A65F7
:100C6000746920736174656C6C6974005370656B92
:100C70007472756D20736174656C6C697420284C96
:100C80006F77207265736F6C7574696F6E2900538E
:100C900070656B7472756D20736174656C6C6974CA
:100CA00020283230343829005370656B7472756DAA
:100CB00020736174656C6C6974004D756C74697334
:100CC00069676E616C2050504D000A0D5265636576
:100CD000697665723A2000756E6B6E6F776E2E20A6
:100CE0005573696E672050504D2E2E2E006E6F7416
:100CF00020737570706F727465642062792068610A
:100D000072647761726521000A0D3D3D3D3D3D3DB8
:100D10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D03
:100D20003D3D3D3D3D3D3D3D3D3D3D3D3D000A0D93
:100D3000466C69676874436F6E74726F6C0A0D4815
:100D4000617264776172653A25642E25640A0D53D9
:100D50006F6674776172653A5625642E2564256343
:100D600020000A0D3D3D3D3D3D3D3D3D3D3D3D3D70
:100D70003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DA3
:100D80003D3D3D3D3D3D3D0011241FBECFEFD0E434
:100D9000DEBFCDBF11E0A0E0B1E0E4E5FFEE00E092
:100DA0000BBF02C007900D92A23FB107D9F718E020
:100DB000A2EFB1E001C01D92A834B107E1F77AEAD1
:100DC000E2E0F0E081E280935700D4907E01089445
:100DD000E11CF11C20EF37EF41E050E087016FE0AC
:100DE000DA01C9012F5F3F4F4F4F5F4FABBFFC018F
:100DF0008791F80181938F01615067FFF1CFF7016F
:100E00006EE0819178277095615067FFFACF8889ED
:100E1000781729F0F7E9DF1611F40000FECF0E94E1
:100E2000D4070C94A9770C9400008091AD05E82FAD
:100E3000FF27EE0FFF1FE952F94F808191818D5EF0
:100E40009F4F14F010920301808191818A5B9F4F24
:100E5000CCF4809103018823A9F481E080930301FD
:100E60008091F0038F5F8093F003853038F088EE37
:100E700093E0909325028093240204C066E970E019
:100E80000E9407368091F003992790937E05809306
:100E90007D0508951F93CF93DF93182F882389F042
:100EA00082E091E09F938F9380EF92E19F938F93E5
:100EB000E091BC03F091BD0309950F900F900F9046
:100EC0000F908091D005823308F044C084EF91E008
:100ED0000E941617EC01112329F0CE010E941F1762
:100EE0008823D9F3C2E0D0E026E530E080911E01EE
:100EF00090911F018217930730F02196255D3F4F97
:100F0000C730D10598F38091D0059927C89F9001EB
:100F1000C99F300DD89F300D11242093000111235B
:100F2000D9F068EC70E08C2F0E940736DF93CF93E6
:100F30008AE091E09F938F9380EF92E19F938F934C
:100F4000E091BC03F091BD0309958DB79EB706965D
:100F50008DBF02C080930001112311F18091000127
:100F60006AE00E94FC76892F99279F938F93809146
:100F700000010E94FC7699279F938F9385E191E071
:100F80009F938F9380EF92E19F938F93E091BC03A7
:100F9000F091BD0309952DB73EB7285F3F4F2DBF98
:100FA000DF91CF911F910895CFEFD0E4DEBFCDBF89
:100FB0008824992414B815B8C7EED3E0E297D7FF78
:100FC000FDCF85E18093020181E887B93E9A8FEFDA
:100FD00088B98BE184B911E015B98EE38AB987E449
:100FE0008BB9469A84B7877F84BF809160008861FF
:100FF000809360001092600084EC99E09093250249
:10100000809324021092AC021092AB021092DC0684
:101010001092DB061092AE021092AD021092B00256
:101020001092AF0284EC94E0A0E0B0E080939601CF
:1010300090939701A0939801B093990128980E94EA
:101040007F170E9450170E94F8120E9409340E94D4
:10105000AF1A812F0E946C2F0E94D7610E94026CF0
:101060000E949073809102018C3010F4299A01C083
:10107000299878940E94862E80916C0282608093D9
:101080006C0210926F020E94294184EF91E00E944D
:101090001617EC0180916C0280FD05C0CE010E9404
:1010A0001F178823B9F38FE291E09F938F93C0EFCE
:1010B000AC2EC2E1BC2EBF92AF92E091BC03F09186
:1010C000BD03099580EA9FE00E941617EC0100E03D
:1010D00010E00F900F900F900F90B9E7EB2EB6E055
:1010E000FB2EADE2CA2EA6E0DA2E0E9429418091A5
:1010F0006C0280FD05C0CE010E941F178823B9F342
:10110000F60180811816ACF40BC00E942941809131
:101110006C0280FD05C0CE010E941F178823B9F321
:10112000CE010E941F17882321F4F70180818823B4
:1011300064F7F701808187FF1AC00F5F1F4F1F936D
:101140000F930150104081E491E09F938F93BF92E1
:10115000AF92E091BC03F091BD0309958091F2013B
:101160008F5F8093F2018DB79EB706968DBF0F5F9C
:101170001F4FE4E0F0E0CE0EDF1E88E090E0E80EC6
:10118000F91E0C30110508F4B0CF00E010E0C6E7FE
:10119000D6E0FDE2EF2EF6E0FF2E8B8187FD1EC02C
:1011A000F70180811816D4F40F5F1F4F1F930F9320
:1011B0000150104084E491E09F938F9380EF92E17F
:1011C0009F938F93E091BC03F091BD03099582E05A
:1011D000809322028DB79EB706968DBF8B81807853
:1011E0008B830F5F1F4FE4E0F0E0EE0EFF1E2896AA
:1011F0000C30110590F282E691E09F938F93E0EF1F
:10120000EE2EE2E1FE2EFF92EF92E091BC03F09110
:10121000BD0309959091AB058091F2010F900F905D
:101220000F900F90981728F48091D60380618093D7
:10123000D60388E891E09F938F93FF92EF92E0911D
:10124000BC03F091BD03099588EE93E00E94161748
:10125000EC010E94B51A0F900F900F900F90CE01E5
:101260000E941F178823D9F388EA91E09F938F93F8
:10127000FF92EF92E091BC03F091BD03099580E0ED
:101280000E94C936809102010F900F900F900F902D
:101290008A3011F0843110F0289801C0289A80ED2E
:1012A00097E0909325028093240285E58093F203D2
:1012B0008EE090E00E94BB2C9927182F00278FE02A
:1012C00090E00E94BB2C080F111D1093F8010093B1
:1012D000F7018AE090E00E94BB2C9927182F002785
:1012E0008BE090E00E94BB2C080F111D1093F601BB
:1012F0000093F5010F5F1F4F39F08091F701909136
:10130000F8018F5F9F4F41F41092F8011092F7019E
:101310001092F6011092F5018091F5019091F6017D
:101320009F938F938091F7019091F8019F938F93F2
:101330008DEA91E09F938F93FF92EF92E091BC032F
:10134000F091BD0309958DB79EB708968DBF80EDCE
:1013500091E09F938F93FF92EF92E091BC03F09105
:10136000BD0309958091B9050F900F900F900F90D4
:10137000E091BC03F091BD0382FF07C08CED91E0CA
:101380009F938F93FF92EF9208C088EE91E09F9316
:101390008F9380EF92E19F938F9309950F900F9019
:1013A0000F900F900E94FA1F88E893E190939301A9
:1013B0008093920181E08093F1030E944A0780911B
:1013C000D3050E94F6728AEF91E09F938F93FF926C
:1013D000EF92E091BC03F091BD03099580ED97E099
:1013E0000E941617EC018AEF90E00E9416178C01FC
:1013F00083E0809355050F900F900F900F90809190
:10140000FA018111FFCFC8010E941F17882339F00C
:1014100084E690E00E9416178C010E944C74809123
:101420002802882309F4D4C180911001882309F48B
:10143000CFC1109228028091F003882319F00E94F6
:10144000150702C00E9403440E9429412091020115
:101450002A3011F0243110F0289801C0289A809188
:10146000B1029091D603882339F08091B102815066
:101470008093B102977F0AC080916F008062809351
:101480006F001092D8061092D70698609093D603FA
:101490008091920190919301019790939301809391
:1014A00092018091920190919301892B21F080917A
:1014B0006D028823C9F18091920190919301892B4B
:1014C000D9F40E94962F85E090E090939301809349
:1014D000920180918F0590919005019690939005CF
:1014E00080938F058091D60381608093D60380918D
:1014F00056058260809356058091080190910901FC
:101500008F5F9F4F19F58091A8028823F9F080E141
:1015100097E2909325028093240280E890E09093D4
:1015200009018093080112C02A3011F0243110F013
:10153000289801C0289A8091240290912502892B35
:1015400029F48091D6038E7F8093D6038091280260
:10155000882309F03DC180910E01882311F00E947B
:1015600096170E943B130E94760ECE010E941F1711
:10157000882309F429C1649680916D029091D60365
:10158000882339F092609093D6038091560582604B
:101590000CC09D7F9093D60380919201909193010E
:1015A000079728F0809156058D7F8093560580918E
:1015B000920190919301079728F08091D6038E7F36
:1015C0008093D60380910501882321F08150809378
:1015D000050125C08093FC031092890210928802B5
:1015E0001092870210928602109285021092840255
:1015F00080910801909109018F5F9F4F81F4809144
:10160000B102882361F488E99AE3909325028093DC
:10161000240280E09CE0909309018093080180916E
:10162000E901893C48F081508093E9018091D6031B
:101630008B7F8093D60330C08091B5078823E1F07B
:101640008091D60384608093D603809108019091A5
:1016500009018F5F9F4F81F48091A802882361F078
:1016600088E99AE3909325028093240280E098EA27
:10167000909309018093080110928E0310928D03BC
:1016800010928C0310928B038FEF9FEF9093E307E0
:101690008093E2071092E90180910001282F3327FF
:1016A00080911E0190911F0182179307CCF48091C5
:1016B0007D02806280937D028091080190910901F2
:1016C0008F5F9F4FC1F480E797E19093250280934D
:1016D000240280E093E090930901809308010BC0FD
:1016E0008091240290912502892B29F480917D021A
:1016F0008F7D80937D020E94E36584E080932302C6
:101700008091A802882329F45AEA852E55E0952E67
:1017100012C08091F9018F5F8093F901813359F4F0
:101720001092F9018091F3019091F4010196909348
:10173000F4018093F3010894811C911CF2E78F1649
:10174000FBE09F0609F040C0882499242091F7010E
:101750003091F8012F5F3F4F3093F8012093F7014C
:101760008091F5019091F60101969093F601809396
:10177000F501832F9927682F8EE090E00E94C32CFB
:101780008091F7019091F8019070682F8FE090E0C0
:101790000E94C32C8091F5019091F601892F992721
:1017A000682F8AE090E00E94C32C8091F50190910F
:1017B000F6019070682F8BE090E00E94C32C84E1CA
:1017C00090E00E941617EC010E9433660E94196C8B
:1017D00080912302882309F012CE0E94F8610FCE77
:1017E0001F920F920FB60F9211248F939F93EF9336
:1017F000FF93809107018823E1F480911402909176
:10180000150201969093150280931402FC01E55590
:10181000FB4FE081ED3019F08A3A910539F41092CE
:1018200015021092140281E080930701E093C60034
:1018300004C01092150210921402FF91EF919F9133
:101840008F910F900FBE0F901F9018951F920F92BF
:101850000FB60F9211242F933F934F935F936F9383
:101860007F938F939F93AF93BF93CF93EF93FF9308
:1018700090E08091FA01813029F48091C600809334
:10188000CE00CCC08091FA01823029F48091C6004C
:101890008093FF03C3C08091C60080930C025091D7
:1018A0001A025A3A10F090931B0280910C028D306C
:1018B00009F065C080911B02823009F060C09093EE
:1018C0001B02852F992781509C4FFC013297408144
:1018D0002091160230911702241B3109DC01119767
:1018E0008C91281B3109C9019F7090931702809336
:1018F000160246E0969587954A95E1F7982F935CF6
:10190000909318022F733070235C2093190280810A
:10191000981729F48C91281711F491E006C090E0F3
:10192000809109028F5F80930902C0910B02CC2342
:1019300009F074C0992309F471C081E080930B020F
:10194000580F509308025150E52FFF27E150FC4FEC
:101950008DE0808380910104823509F05FC00E9490
:10196000FA1F88E190E02CE00FB6F894A8958093D8
:1019700060000FBE20936000C09322024FC02091F0
:101980001B02822F992781309105F9F08230910551
:101990001CF4892B21F040C0029711F13DC08091C9
:1019A0000C02833239F480910B02882319F481E010
:1019B00080931B0280910C028093FF0381E080934F
:1019C0001A0280910C02992722C02F5F20931B02DC
:1019D000E52FFF27E150FC4F80910C02808309C066
:1019E000E52FFF27E150FC4F80910C0280835A3A8B
:1019F00020F45F5F50931A0202C010921B022091E4
:101A00000C028091160290911702820F911D909303
:101A100017028093160202C010921B02FF91EF91F1
:101A2000CF91BF91AF919F918F917F916F915F9176
:101A30004F913F912F910F900FBE0F901F901895CF
:101A4000AC01A0E0B0E09D01A817B90748F4EBEAAB
:101A5000F4E08191280F311D1196A417B507C8F342
:101A60003F70FD01E555FB4FC90156E096958795FE
:101A70005A95E1F7835C80831196FD01E555FB4F94
:101A80002F733070822F835C8083A455BB4F8DE011
:101A90008C93109207018091AB048093C600089547
:101AA000A0E0B0E0E6E5FDE00C9475772C859D851F
:101AB0000E85BB2483E28093AB049F599093AC04C2
:101AC0002093AD0433E0E32EF12C002309F49EC0F3
:101AD000CF84D888BE016D5E7F4FA989BA89015035
:101AE000109709F493C01097B9F0F601EB0DF11DB2
:101AF000B3949081119791F4002349F1FB016E5F3B
:101B00007F4FDB01C080D1806E5F7F4F0D90BC9115
:101B1000A02DBB24015002C090E019C01097B9F06D
:101B2000F601EB0DF11DB3944081119791F4002360
:101B300041F1FB016E5F7F4FDB01C080D1806E5FA2
:101B40007F4F0D90BC91A02DBB24015002C040E0FE
:101B500018C01097B1F0F601EB0DF11DB394108190
:101B6000119781F4002371F0FB013296DB01CD90D7
:101B7000DC90BF016E5F7F4FA081B181BB2401501B
:101B800001C010E0F701E555FB4F892F869586953A
:101B9000835C80830894E11CF11CF701E555FB4F41
:101BA000892F99278370907024E0880F991F2A95B8
:101BB000E1F755279A0194E0369527959A95E1F734
:101BC000822B835C80830894E11CF11CF701E555AE
:101BD000FB4F4F705070440F551F440F551F812FFE
:101BE000992726E0969587952A95E1F7842B835CC3
:101BF00080830894E11CF11CF701E555FB4F1F732E
:101C0000135C10830894E11CF11C6ACFC7010E9489
:101C1000200DE9E00C949177A3E07A2F409108021F
:101C20004650442309F458C0E72FFF27E150FC4FEA
:101C300080818D537F5FE72FFF27E150FC4F20818C
:101C40002D537F5FE72FFF27E150FC4F30813D533D
:101C50007F5FE72FFF27E150FC4F60816D537F5F6F
:101C60009927880F991F880F991F522F52955F70DF
:101C7000582B822F99278F709070F4E0880F991F4E
:101C8000FA95E1F7232F26952695282B832F992760
:101C900083709070E6E0880F991FEA95E1F7682B52
:101CA00041504F3FC9F0EA2FFF27E150FC4F5083CE
:101CB000AF5F41504F3F81F0EA2FFF27E150FC4FCB
:101CC0002083AF5F41504F3F39F0EA2FFF27E150AB
:101CD000FC4F6083AF5FA5CF82E094E09093070252
:101CE00080930602A350A09305020895A2E0B0E0FD
:101CF000ECE7FEE00C947B7780910B02882309F4DB
:101D00006BC40E940C0E80910004823609F025C33A
:101D10008091010499278037910509F4C1C081376A
:101D20009105C4F48A36910509F48DC28B3691056C
:101D300044F48B34910571F18636910509F46CC138
:101D40000CC38D36910509F47BC08E36910509F4DC
:101D50005FC003C384379105D1F1853791054CF4F9
:101D60008137910509F4A3C08337910509F4F1C0C7
:101D7000F4C28737910509F428C2883791052CF4FD
:101D80008537910509F4E4C1E8C28937910509F462
:101D90007AC1E3C2E0910602F0910702808191814D
:101DA0009093C4028093C3022091C1023091C20279
:101DB000821B930B845E9D4F68E671E00E941C7746
:101DC000845B90409093C0028093BF02C6C2809112
:101DD0000802A0910602B0910702853140F080E12F
:101DE000EAEDF3E00D9001928A95E1F70DC08D9137
:101DF0009D910D90BC91A02D8093DA039093DB030D
:101E0000A093DC03B093DD0380EF809303024BC00B
:101E1000809107018823E1F38DE490E09F938F93F5
:101E200080E296E09F938F9381E08F938F938EE46F
:101E30008F930E94500D8DB79EB707968DBF8DC2B0
:101E4000A0910602B09107021C91113081F48DE43B
:101E5000E0E2F6E00D9001928A95E1F70E94C32D31
:101E600019838091D6038F7E8093D60301C0198297
:101E7000809107018823E1F381E090E09F938F93A5
:101E8000CE0101969F938F9381E08F938F938DE482
:101E90008F930E94500DADB7BEB71796ADBF5DC210
:101EA00081E080930E028FEF8093050156C2E0918E
:101EB0000602F0910702E0818E2F8A508A3058F492
:101EC0008983882311F481E003C0863010F085E017
:101ED000898361E00EC08E2F84518A3070F489832B
:101EE000882311F481E003C0863010F085E08983F7
:101EF00060E089810E94432E12C0E983EF3F19F40C
:101F00000E94262E89838981882311F481E003C0F1
:101F1000863010F085E0898389810E94D92C8091D8
:101F200007018823E1F383E790E09F938F938CEA86
:101F300095E09F938F9381E090E09F938F93CE01E4
:101F400001969F938F9382E08F9381E08F9381E539
:101F500072C12091060230910702D9018C91815003
:101F6000853008F040C0F90181818535E1F52F5FAA
:101F70003F4F83E7ECEAF5E0D9010D9001928A9595
:101F8000E1F7F90182910E94422D8091ED05992798
:101F9000AA27BB27BC01CD0124EC39E040E050E08A
:101FA0000E94DD76DC01CB018093D5019093D601B0
:101FB000A093D701B093D8018091EE059927AA2765
:101FC000BB27BC01CD010E94DD76DC01CB018093F3
:101FD000D1019093D201A093D301B093D4010E9478
:101FE000262E898301C01982809107018823E1F39D
:101FF00081E090E09F938F93CE0101969F938F9302
:1020000081E08F938F9383E58F930E94500D8DB75E
:102010009EB707968DBF26C0E0910602F091070299
:10202000E0818E2F8150853018F48E2F0E94D92C9C
:102030000E94262E8983809107018823E1F381E0A5
:1020400090E09F938F93CE0101969F938F9381E0B1
:102050008F938F9386E48F930E94500DADB7BEB7D8
:102060001796ADBF8091A802882329F46EE670E030
:1020700089810E94073680E00E944A078091D3053B
:102080000E94F6726AC1E0910602F0910702808117
:10209000992787FD90959093F2068093F1068181B0
:1020A000992787FD90959093F4068093F30682819B
:1020B000992787FD90959093F6068093F506838186
:1020C000992787FD90959093F8068093F706848171
:1020D000992787FD90959093FA068093F90685815C
:1020E000992787FD90959093FC068093FB06868147
:1020F000992787FD90959093FE068093FD06878132
:10210000992787FD9095909300078093FF0680851F
:10211000992787FD90959093020780930107818509
:10212000992787FD909590930407809303078285F4
:10213000992787FD909590930607809305078385DF
:10214000992787FD9095909308078093070705C10D
:10215000E0910602F091070280810E9462338A8337
:10216000882319F481E0898301C0198280910701D5
:102170008823E1F388E090E09F938F938EE696E0CA
:102180009F938F9321E030E03F932F93809106023D
:10219000909107029F938F933F932F93CE010296C6
:1021A0009F938F933F932F93CE01820F931F9F9303
:1021B0008F9384E08F9381E08F9385E58F930E94C6
:1021C000500DEDB7FEB773963CC080910502893083
:1021D00008F4C3C020910602309107022F5F3F4FE1
:1021E00088E0AEE6B6E0F90101900D928A95E1F73C
:1021F000D9018E910E94B8328A83882319F481E034
:10220000898301C01982809107018823E1F321E0CD
:1022100030E03F932F93CE0102969F938F933F938D
:102220002F93CE01820F931F9F938F9382E08F9302
:1022300081E08F9387E58F930E94500DEDB7FEB735
:102240003B96EDBF8AC00E94A9728983823019F043
:10225000843009F082C0F8948091C1008F7380931C
:10226000C1008091C9008F738093C9008091C10023
:10227000877E8093C1008091C900877E8093C900CA
:102280008091C80087FF03C08091CE00F9CF809174
:10229000C00087FF03C08091C600F9CFE09106021D
:1022A000F09107028081882359F581E08093FA013B
:1022B0001092CD0080E490E08093CC008091CD001E
:1022C0008093C5008091CC008093C4008091CA00A7
:1022D0008F7D8093CA008091CA008F7E8093CA0050
:1022E0008091C9008B7F8093C9008091CA0084606F
:1022F0008093CA008091CA0082608093CA0003C0A4
:1023000082E08093FA018091CA00877F8093CA009F
:102310008091C200877F8093C2008091C9008E7F28
:102320008093C9008091C10088618093C100809131
:10233000C90088618093C9008091C1008068809342
:10234000C1008091C90080688093C90010926E001E
:1023500010926F0010927000789480910104992778
:102360008436910509F4CDC085369105ACF48136EB
:10237000910509F481C0823691052CF48B349105C6
:1023800009F45DC021C18236910509F482C083360B
:10239000910509F491C018C18C36910509F4FFC06C
:1023A0008D3691054CF48736910509F40AC18836BB
:1023B000910509F4C4C008C18437910529F0863716
:1023C000910509F4FAC000C180910802A0910602AB
:1023D000B0910702803140F080E1EAEDF3E00D902A
:1023E00001928A95E1F70DC08D919D910D90BC9160
:1023F000A02D8093DA039093DB03A093DC03B093CA
:10240000DD03809107018823E1F31F92809104018D
:102410008F9384E58F930E94500D8AEF809303027F
:102420008FEF8093050180EA9FE00E94161790933A
:10243000FC018093FB010F900F900F90C5C0E091BD
:102440000602F0910702808191819093C4028093EB
:10245000C3022091C1023091C202821B930B845EA1
:102460009D4F68E671E00E941C77845B90409093DA
:10247000C0028093BF02A8C0E0910602F09107025B
:10248000808180930601803298F08FE1809306016D
:102490000FC0A0910602B09107028BE0E2EFF3E0DB
:1024A0000D9001928A95E1F78091FB038093970547
:1024B0008FEF8093050188C08091FF019091000209
:1024C000892B89F4E0910602F0910702E081EE2366
:1024D00051F08AE0E89FC00111240E9416179093E2
:1024E000CD038093CC03E0910602F0910702908126
:1024F0008AE0989FC0011124909300028093FF010D
:1025000015C08FEF80930501E0910602F09107025C
:1025100090818AE0989FC0011124909302028093D9
:102520000102892B19F081E08093100280EA9FE07C
:102530000E9416179093FC018093FB0145C08FEF1A
:1025400080930501E0910602F0910702908197FDCA
:1025500008C082E080930D021092FE011092FD01EE
:102560001AC0909580916502892B809365029181B4
:102570008AE0989FC00111249093FE018093FD0191
:1025800084E080930D0280EA9FE00E9416179093EA
:10259000FC018093FB0181E08093110215C08FEF55
:1025A00080930501E0910602F091070280818093FB
:1025B000660281E08093120207C081E080930F02DF
:1025C00003C081E08093130210920B021092070265
:1025D0001092060210920502E3E0CE5F0C9497770A
:1025E000982F8091C00085FFFCCF9093C60008957E
:1025F0000F931F9388E18093C1008091C000826097
:102600008093C0008091C10080688093C100809158
:10261000C10080648093C10000E010E00093C50019
:102620008AE290E08093C4008091010290910202BE
:102630000E9416179093CF038093CE038CED90E009
:102640000E9416179093FE038093FD031092D0030F
:1026500082E58093D1031092D4038BE08093D20360
:102660001092D30310930702009306021092050202
:102670001F910F910895A0E1B0E0E1E4F3E10C9423
:10268000787780910701882309F4C1C28091FB010A
:102690009091FC010E941F17882361F01092FE01A7
:1026A0001092FD011092020210920102109200029B
:1026B0001092FF018091FD019091FE01892B41F064
:1026C0008091A9049091AA040E941F17882329F4DD
:1026D00080911102882309F460C08091070188234A
:1026E00009F45BC080910D0201E211E08430A8F092
:1026F0000E940E2080E590E09F938F931F930F938D
:1027000081E08F938F9388E48F930E94500D2DB7B3
:102710003EB7295F3F4F2DBF34C01092670282E25F
:1027200094E09F938F9383E090E29F938F93E09147
:10273000BC03F091BD03099584E190E09F938F93D2
:102740001F930F9381E090E09F938F938DE092E031
:102750009F938F9382E08F9381E08F9388E48F9390
:102760000E94500D80910D02982F8F5F80930D0273
:102770002DB73EB7215F3F4F2DBF943010F0109220
:102780000D028091FD019091FE010E941617909319
:10279000AA048093A9041092110280911202882346
:1027A00051F180910701882331F10E940E2080E5CC
:1027B00090E09F938F9381E291E09F938F9321E02C
:1027C00030E03F932F9380E291E09F938F933F936C
:1027D0002F9386E692E09F938F9383E08F9381E01F
:1027E0008F938CE48F930E94500D109212028DB73C
:1027F0009EB70F968DBF80910F028823D1F08091F4
:1028000007018823B1F08AE090E09F938F9380EDD9
:1028100093E09F938F9381E08F938F9386E58F93BF
:102820000E94500D10920F022DB73EB7295F3F4F07
:102830002DBF809113028823D9F08091070188234E
:10284000B9F08BE090E09F938F9382EF93E09F939A
:102850008F9381E08F93809104018F9387E48F930E
:102860000E94500D109213028DB79EB707968DBF30
:102870008091FD039091FE030E941F17882309F4A5
:1028800061C080910701882309F45CC08091C8056C
:102890009927880F991F880F991F7C010027F7FC43
:1028A0000095102F8091050390910603A0910703D6
:1028B000B0910803BC01CD01A80197010E94517796
:1028C0003093EB032093EA038091FD029091FE0286
:1028D000A091FF02B0910003BC01CD01A8019701B6
:1028E0000E9451773093ED032093EC038091920284
:1028F0008093EE03809191028093EF0388E090E053
:102900009F938F938AEE93E09F938F9381E08F93B1
:1029100083E08F938BE68F930E94500D8091F0039C
:102920002DB73EB7295F3F4F2DBF853018F086E0A9
:102930008093F00383E690E00E9416179093FE03C5
:102940008093FD038091010290910202892B41F056
:102950008091CE039091CF030E941F17882321F40A
:1029600080911002882339F180910701882319F1A1
:102970000E94FD3482E490E09F938F9385E595E07B
:102980009F938F9381E08F938F9384E48F930E9422
:10299000500D109210028DB79EB707968DBF809193
:1029A000010290910202009731F00E941617909355
:1029B000CF038093CE038091FF0190910002892B79
:1029C00009F4B8C08091CC039091CD030E941F17E9
:1029D000882309F4AFC080910701882309F4AAC0B5
:1029E0008091C8059927880F991F880F991F7C012E
:1029F0000027F7FC0095102F8091050390910603A6
:102A0000A0910703B0910803BC01CD01A801970173
:102A10000E9451773093BF032093BE038091FD0243
:102A20009091FE02A091FF02B0910003BC01CD0184
:102A3000A80197010E9451773093C1032093C003EE
:102A400020919D0730919E0740919F075091A007CC
:102A5000DA01C90163E0880F991FAA1FBB1F6A959D
:102A6000D1F7820F931FA41FB51F820F931FA41FBE
:102A7000B51F209196013091970140919801509196
:102A80009901BC01CD010E9451773093C30320937B
:102A9000C2038091CD029091CE02A091CF02B0915D
:102AA000D00239E0B595A795979587953A95D1F7D6
:102AB0008093C4038091C9029091CA02A091CB0275
:102AC000B091CC0229E0B595A795979587952A9561
:102AD000D1F78093C5038091D5029091D602A09141
:102AE000D702B091D80209E0B595A795979587953B
:102AF0000A95D1F78093C6038EE090E09F938F9361
:102B00008EEB93E09F938F9381E08F938F9383E479
:102B10008F930E94500D8091FF01909100020E94BE
:102B200016179093CD038093CC032DB73EB7295F42
:102B30003F4F2DBF809106018F3F71F1992714E01F
:102B4000880F991F1A95E1F78E5D9D4F40E150E087
:102B5000BC01CE0101960E94307580E190E09F9308
:102B60008F93CE0101969F938F9381E090E09F9386
:102B70008F9386E091E09F938F9382E08F9381E023
:102B80008F9381E48F930E94500D8FEF8093060105
:102B90008DB79EB70B968DBF809197058823D1F096
:102BA000809107018823B1F081E090E09F938F939B
:102BB00087E995E09F938F9381E08F938F9382E4D1
:102BC0008F930E94500D109297052DB73EB7295F45
:102BD0003F4F2DBF80910E028823C9F080910701DD
:102BE0008823A9F084E390E09F938F9387ED96E08C
:102BF0009F938F9381E08F938F9380E58F930E94B3
:102C0000500D10920E028DB79EB707968DBFE6E06D
:102C1000C05F0C9494771F920F920FB60F921124FD
:102C20002F933F935F936F937F938F939F93AF9374
:102C3000BF93EF93FF9320E080912302882329F034
:102C40008091230281508093230280919F038823E7
:102C500019F0815080939F0380912B0281508093C3
:102C60002B028F3F09F05BC089E080932B0280919B
:102C7000290290912A02019690932A0280932902B8
:102C800080910F018F5F817080930F01882319F469
:102C900081E080932802349903C081E080932C0264
:102CA0008091240290912502892B21F180912402A8
:102CB000909125020B9750F080912402909125026B
:102CC0000A97909325028093240204C01092250253
:102CD00010922402809124029091250220910801F3
:102CE0003091090182239323892B11F021E008C040
:102CF00020E006C08FEF9FEF9093090180930801B9
:102D000080910201222331F08A3011F45A9A07C0CF
:102D1000479A05C08A3011F45A9801C047988091AB
:102D20002C02882309F472C02091E901222309F0C2
:102D30006DC08091B90583FF69C086B19927FC01F8
:102D4000E071F07084FF14C08091260290912702F8
:102D500001969093270280932602809126029091FB
:102D60002702895E934008F451C020932C024EC084
:102D70008091260290912702892B09F443C080910B
:102D80002602909127028A569140E0F58091260212
:102D90009091270269E270E00E94087780912602F4
:102DA00090912702860F971F909327028093260207
:102DB00080912602909127020B9750F08091260275
:102DC000909127020A979093C4028093C30204C093
:102DD000F093C402E093C3028091C3029091C402B5
:102DE0002091C1023091C202821B930B845E9D4FE1
:102DF00068E671E00E941C77845B90409093C0026B
:102E00008093BF021092270210922602FF91EF9149
:102E1000BF91AF919F918F917F916F915F913F9102
:102E20002F910F900FBE0F901F901895209129029F
:102E300030912A02280F391FC90101960895209167
:102E4000290230912A02821B930B892F992786959C
:102E5000807490700895CF93DF930E941617EC0151
:102E6000CE010E941F178823D9F3DF91CF910895D7
:102E7000CF93DF930E941617EC0109C080911001D7
:102E8000882329F0909310018FEC80937A00CE0173
:102E90000E941F17982F882389F3DF91CF910895FF
:102EA0009FB7F8945F983E9A469A8091B0008F70D1
:102EB0008093B0008091B00083608093B0008091D7
:102EC000B1008B738093B1008091B1008B608093CF
:102ED000B1001092B2008FEF8093B3008091B000E8
:102EE00080688093B000809170008A7F809370002A
:102EF000809170008260809370009FBF08958AE087
:102F000090E00E941617909332028093310282E083
:102F100085BD83EA84BD17BC84EB88BD86E086BD91
:102F200080916E00816080936E000895A0E0B0E013
:102F3000ECE9F7E10C9477778091E305E82FFF2720
:102F4000E456FE4F9681D08080910E01A92FBB27B9
:102F5000A7FDB095CB2FDB2F813009F0C9C02091A0
:102F60000503309106034091070350910803BD010A
:102F7000CE010E94DD7697FF04C061587F4F8F4FCE
:102F80009F4F7B018C0167E015950795F794E794B7
:102F90006A95D1F78D2D992787FD9095A92FB92F87
:102FA0002091FD023091FE024091FF0250910003FA
:102FB000BC01CD010E94DD7697FF04C061587F4FB0
:102FC0008F4F9F4F57E095958795779567955A95C1
:102FD000D1F7F801E701C61BD70BE80BF90B80917D
:102FE000DA059927AA27BB27BC01CD019E01AF01B5
:102FF0000E94DD7697FF04C061507E4F8F4F9F4F38
:10300000FC01EB0149E0F595E795D795C7954A9501
:10301000D1F78091C101992736E0880F991F3A9521
:10302000E1F740910C0150910D012091E205332709
:10303000841B950BB9010E941C7780910C01909123
:103040000D01860F971F90930D0180930C018091C5
:103050000C0190910D0197FD0F9624E095958795B1
:103060002A95E1F790931F0280931E02809111062A
:1030700080FF07C080911E0290911F028C0F9D1F40
:1030800006C080911E0290911F028C1B9D0B909395
:103090001F0280931E028091DB05282F3327220F09
:1030A000331F220F331F80911E0290911F0282173F
:1030B00093077CF08091DC05282F3327220F331FE4
:1030C000220F331F80911E0290911F02281739078B
:1030D00024F430931F0220931E0280910201843158
:1030E00008F4C2C080910E018F5F80930E01BEC0B4
:1030F0002091FD023091FE024091FF0250910003A9
:10310000BD01CE010E94DD7697FF04C061587F4F5C
:103110008F4F9F4F7B018C01C7E015950795F79462
:10312000E794CA95D1F78D2D992787FD9095A92F02
:10313000B92F209105033091060340910703509168
:103140000803BC01CD010E94DD769B01AC0197FF15
:1031500004C021583F4F4F4F5F4FB7E055954795FB
:1031600037952795BA95D1F72E0D3F1D401F511F5A
:103170008091DE059927AA27BB27BC01CD010E94BB
:10318000DD7697FF04C061507E4F8F4F9F4FFC014B
:10319000EB01A9E0F595E795D795C795AA95D1F7E5
:1031A0008091C001992776E0880F991F7A95E1F701
:1031B00040910A0150910B012091E2053327841BB5
:1031C000950BB9010E941C7780910A0190910B0127
:1031D000860F971F90930B0180930A0180910A013B
:1031E00090910B0197FD0F9664E0959587956A95F0
:1031F000E1F790931D0280931C028091110681FFDC
:1032000007C080911C0290911D028C0F9D1F06C06B
:1032100080911C0290911D028C1B9D0B90931D02AE
:1032200080931C028091DF05282F3327220F331F44
:10323000220F331F80911C0290911D028217930769
:103240007CF08091E005282F3327220F331F220FB7
:10325000331F80911C0290911D022817390724F416
:1032600030931D0220931C0210920E01E7E0CDB7AF
:10327000DEB70C9493771F920F920FB60F92112422
:103280002F933F934F935F938F939F93EF93FF936E
:103290008091020190912D02843108F04CC0992355
:1032A00009F01CC18091B00086FF24C08091B0005D
:1032B0008F7B8093B00080911E0290911F028755F2
:1032C0009E4F909321028093200225E08D3D92072E
:1032D00018F08CED95E005C08757914030F487E7F2
:1032E00091E090932102809320028091200290919E
:1032F0002102BAC08091B00080648093B0008091B8
:10330000E105282F33278DED96E0289FA001299F06
:10331000500D389F500D1124CA0120912E0230917A
:103320002F02821B930B909321028093200281E055
:1033300080930E01D0C0992309F0D0C08091B000D5
:1033400086FF97C08091B0008F7B8093B000E091A2
:103350003002EE23F1F48091E105282F33278DED23
:1033600096E0289FA001299F500D389F500D1124F1
:10337000CA0120912E0230912F02821B930B909351
:1033800021028093200210922F0210922E02469A60
:10339000A2C089EA93E090932102809320028E2FAD
:1033A000992783309105D9F08430910534F4813028
:1033B000910549F0029761F020C08430910591F0A9
:1033C000059799F01AC080911E0290911F0204C0C7
:1033D00080911C0290911D0287559E4F1DC08091C7
:1033E0006B0705C08091450702C08091730799273C
:1033F000880F991F880F991FEFCFFF27EE0FFF1F30
:10340000E952F94F20813181220F331F8091200230
:1034100090912102820F931F9093210280932002AA
:10342000809120029091210255E08D3D950718F082
:103430008CED95E005C08757914030F487E791E027
:10344000909321028093200220912002309121024A
:103450002C5B3040309321022093200280912E0279
:1034600090912F02820F931F90932F0280932E0230
:1034700032C08091B00080648093B0008CEB90E00B
:10348000909321028093200280912E0290912F022E
:1034900084549F4F90932F0280932E02809122029A
:1034A000882321F08091B102833320F4809122029D
:1034B000823011F4469801C0469A809130028F5FA5
:1034C000809330029091E105981728F481E0809371
:1034D0000E011092300281E080932D022091200293
:1034E0003091210241E02F37340730F08FEF809385
:1034F000B3002F5F30400FC02F3F3105C9F0C0F03F
:10350000A9014F5F50404F37510550F480E8809338
:10351000B30020583040309321022093200212C083
:103520008FEF8093B30050932102409320020AC092
:10353000809120028093B300109221021092200209
:1035400010922D02FF91EF919F918F915F914F917A
:103550003F912F910F900FBE0F901F9018951092D2
:103560007C008FEC80937A000895CF93DF931092C4
:10357000370286E987BD83E090E00E94BB2CC82F0C
:10358000863E08F4C65FC8BD84E690E00E94381706
:1035900080911401909115018152934010F0C0EF79
:1035A00002C0C530F8F0C8BD82E390E00E94381731
:1035B00087E394E09F938F9380EF92E19F938F93A3
:1035C000E091BC03F091BD030995809114019091A5
:1035D00015010F900F900F900F908152934010F4AF
:1035E000C550DFCF6C2F83E090E00E94C32CCF301A
:1035F00018F0CCE8D0E002C0C0E0D0E0CA3FD1056E
:10360000F8F4C7BD82E390E00E94381789E394E0A4
:103610009F938F9380EF92E19F938F93E091BC03F0
:10362000F091BD03099580911401909115010F90BF
:103630000F900F900F908052934010F02196DECFA4
:10364000C093A8058091B90580FF09C08C2F8A50CE
:103650008B3E28F08091D50380648093D503C7BD4D
:103660008CE291E00E943817DF91CF910895EF929C
:10367000FF921F93CF9310E080ED97E00E94161702
:103680007C01CCE8133019F4CB3008F0C9E010E02D
:1036900080914702909148028C5F934024F480917E
:1036A000130181500AC080914702909148028750CF
:1036B000944034F0809113018F5F8093130101C017
:1036C00011E080914502909146028C5F934024F472
:1036D0008091120181500AC080914502909146026A
:1036E0008750944034F0809112018F5F80931201D3
:1036F00001C01F5F80914302909144028C5F934010
:1037000024F48091110181500AC08091430290916C
:10371000440287509440C4F0809111018F5F8093E0
:10372000110113C08BE394E09F938F9380EF92E19C
:103730009F938F93E091BC03F091BD0309950F9087
:103740000F900F900F905FC01F5F82E18093720215
:1037500080916C028E7F80936C0285EA8093BC001E
:10376000809113018A3040F48091D5038160809369
:10377000D5038AE08093130180911301863F40F0C6
:103780008091D50381608093D50385EF80931301E9
:10379000809112018A3040F48091D5038260809339
:1037A000D5038AE08093120180911201863F40F098
:1037B0008091D50382608093D50385EF80931201B9
:1037C000809111018A3040F48091D5038460809308
:1037D000D5038AE08093110180911101863F40F06A
:1037E0008091D50384608093D50385EF8093110188
:1037F00080917202882339F0C7010E941F17882325
:1038000009F090CFF5CF109210018FEC80937A00E1
:10381000809110018823E1F3CA3020F48AE090E01F
:103820000E943817C15009F02DCF86E490E00E9425
:103830003817CF911F91FF90EF9008951F920F922C
:103840000FB60F921124AF92BF92CF92DF92EF92F8
:10385000FF920F931F932F933F934F935F936F9319
:103860007F938F939F93AF93BF93EF93FF93809139
:103870005002282F3327442755278F5F809350020B
:10388000F9012231310508F08CC3EA5BFF4F0C943B
:10389000A377809178009091790046C0809178005C
:1038A000909179002CC1809178009091790090934B
:1038B00053028093520257C180910E0390910F03DF
:1038C0002091780030917900821B930B9093990599
:1038D00080939805809198059091990590935D0249
:1038E00080935C025EC18091780090917900209174
:1038F000100330911103821B930B9093A7058093C3
:10390000A6058091A6059091A70590935F028093EC
:103910005E0249C38091560290915702209178002F
:1039200030917900820F931F909357028093560233
:1039300081E03AC380915402909155022091780021
:1039400030917900820F931F909355028093540217
:1039500084E02AC380911E0190911F019C01220FD7
:10396000331F280F391F809178009091790063E010
:1039700070E00E940877260F371F369527953695F9
:10398000279530931F0120931E0185E00DC3809180
:1039900078009091790040910A0350910B03841BA9
:1039A000950B90933E0280933D0280913D02909151
:1039B0003E02029704F122E04E3E520784F4209129
:1039C00051022B5F20935102255080917E029091ED
:1039D0007F02845F914018F4215F2093510280910F
:1039E0005102853684F14F5F5F4F50930B03409334
:1039F0000A03845626C080913D0290913E028F5F5B
:103A00009F4F0CF532E047325307ECF02091510202
:103A10002550209351022B5F80917E0290917F026E
:103A2000845F914018F42F502093510280915102ED
:103A30008C394CF44150504050930B0340930A038F
:103A40008C598093510281E080933C0280917800F0
:103A50009091790090939F0580939E0580913D02FF
:103A600090913E029C01442737FD4095542F809150
:103A7000C5029091C602A091C702B091C802820F00
:103A8000931FA41FB51F8093C5029093C602A093F5
:103A9000C702B093C8022091C5023091C60240917E
:103AA000C7025091C80257FF04C021503C4F4F4FEE
:103AB0005F4F0AE055954795379527950A95D1F7B9
:103AC0008091C5029091C602A091C702B091C80230
:103AD000821B930BA40BB50B8093C5029093C60277
:103AE000A093C702B093C8022EC180915402909156
:103AF00055022091780030917900820F931F9093A6
:103B000055028093540210924F0250C280910201DC
:103B10008A3071F48091780090917900209152025E
:103B200030915302820F931F01969695879517C087
:103B30004091520250915302843158F02091780004
:103B400030917900240F351F8FEF97E0821B930B84
:103B500006C08091780090917900840F951F909312
:103B600044028093430286E01FC280910E0390912D
:103B70000F032091780030917900821B930B909372
:103B800099058093980580919805909199052091C9
:103B90005C0230915D02820F931F909342028093EA
:103BA000410287E001C280917800909179002091D4
:103BB000100330911103821B930B9093A705809300
:103BC000A6058091A6059091A70520915E023091EF
:103BD0005F02820F931F9093400280933F02E3C1E4
:103BE000209156023091570280917800909179008F
:103BF000280F391F309357022093560280910201FB
:103C00008A3019F4220F331F04C0220F331F220FF2
:103C1000331F309357022093560220915602309161
:103C20005702C90137FD0796A3E095958795AA9598
:103C3000E1F7909348028093470280915802909157
:103C40005902820F931F97FD019695958795909342
:103C500059028093580220911A0330911B03821B52
:103C6000930B90931D0180931C0120914D02309184
:103C70004E0280911C0190911D01280F391F37FFC2
:103C800002C02F5F3F4F3595279530934E0220930A
:103C90004D024ECE20915402309155028091780011
:103CA00090917900280F391F3093550220935402C8
:103CB000809102018A3019F4220F331F04C0220FB1
:103CC000331F220F331F309355022093540220914B
:103CD000540230915502C90137FD079663E095956E
:103CE00087956A95E1F7909346028093450280910B
:103CF0005A0290915B02820F931F97FD0196959552
:103D0000879590935B0280935A022091180330911B
:103D10001903821B930B90931B0180931A0120912E
:103D20004B0230914C0280911A0190911B01280F97
:103D3000391F37FF02C02F5F3F4F359527953093CE
:103D40004C0220934B0283E02FC11092500281E07D
:103D500080931001809133029091340201969093E8
:103D6000340280933302809178009091790090938F
:103D70001501809314018091140190911501AA27D7
:103D8000BB27A0906002B0906102C0906202D09008
:103D90006302A80EB91ECA1EDB1EA0926002B0927A
:103DA0006102C0926202D0926302809164028F5FCE
:103DB00080936402823108F4F6C0809116019091DC
:103DC0001701A0911801B09119017C018D0123E028
:103DD000EE0CFF1C001F111F2A95D1F7E81AF90AF3
:103DE0000A0B1B0BEA0CFB1C0C1D1D1D80913702DE
:103DF000992787FD9095A92FB92FBC01CD0126ECFD
:103E000034E240E050E00E94DD76DC01CB01E81AAC
:103E1000F90A0A0B1B0BD801C7010496A11DB11D9D
:103E2000B7FF05C0D801C7010B96A11DB11D13E056
:103E3000B595A795979587951A95D1F78093160113
:103E400090931701A0931801B09319018091A005D8
:103E50009091A1057C010027F7FC0095102F80911F
:103E6000160190911701A0911801B0911901E81A5B
:103E7000F90A0A0B1B0BE092A302F092A402009332
:103E8000A5021093A6022091380230913902409188
:103E90003A0250913B0257FF04C0215F3F4F4F4F02
:103EA0005F4FF4E05595479537952795FA95D1F7EB
:103EB0008091380290913902A0913A02B0913B0270
:103EC000821B930BA40BB50B80933802909339029D
:103ED000A0933A02B0933B0280913802909139024C
:103EE000A0913A02B0913B028E0D9F1DA01FB11F01
:103EF0008093380290933902A0933A02B0933B0228
:103F00008091350290913602AC01E5E0440F551FD7
:103F1000EA95E1F7481B590B8091380290913902DC
:103F2000A0913A02B0913B02B7FF03C00F96A11DCA
:103F3000B11D74E0B595A795979587957A95D1F7BA
:103F40002091A3023091A402281B390B63E0220FB9
:103F5000331F6A95E1F7240F351F37FF02C0215E3A
:103F60003F4F45E0359527954A95E1F73093360266
:103F700020933502D601C501D7FE03C00196A11DCD
:103F8000B11DB595A79597958795809360029093FD
:103F90006102A0936202B093630289E0809364029D
:103FA00002C01092500282E080934F0280914F0233
:103FB00080937C0080915002882319F08FEC8093CD
:103FC0007A00FF91EF91BF91AF919F918F917F9177
:103FD0006F915F914F913F912F911F910F91FF90A2
:103FE000EF90DF90CF90BF90AF900F900FBE0F90EB
:103FF0001F90189590E2E1E2F1E08FE491938150F7
:1040000087FFFCCF089590916702E1E2F1E0E90FAC
:10401000F11D80839F5F909367020895EF92FF9256
:104020000F931F93CF93DF932091650220FF0AC067
:1040300080916602882311F0815002C08091200196
:104040008093660221FF0CC090916602809120014E
:10405000981719F41092660203C09F5F909366024E
:10406000822F992780FF04C081FF02C01092660250
:104070000E94FA1F80916602282F332753E0E52E15
:1040800050E2F52EC091BC03D091BD038A3098F464
:1040900081E1809367023F932F9382E794E09F939F
:1040A0008F93FF92EF92FE0109952DB73EB72A5FDD
:1040B0003F4F2DBF11C080E1809367023F932F9344
:1040C00087E794E09F938F93FF92EF92FE0109950B
:1040D0008DB79EB706968DBF20916602822F9927D5
:1040E000AA27BB27FC01429710F00C94BF2AE85A7C
:1040F000FF4F43E0E42E40E2F42EC091BC03D09188
:10410000BD030C94A377109267028CE794E09F9311
:104110008F9303E010E2FF92EF92FE01099584E194
:10412000809367020F900F900F900F9081E690E0C0
:104130009F938F9382E590E09F938F931F921F929E
:10414000809102016AE00E94FC76892F99279F9353
:104150008F93809102010E94FC7699279F938F9301
:104160008CE894E09F938F93FF92EF92E091BC03D1
:10417000F091BD03099588E2809367022DB73EB7A1
:10418000225F3F4F2DBF81E296E09F938F930E9465
:10419000262E99279F938F9381EA94E09F938F9384
:1041A000FF92EF92E091BC03F091BD0309958DB7AA
:1041B0009EB708968DBF9091D503992351F08CE35B
:1041C00080936702892F99279F938F938FEA94E0BA
:1041D00081C690916D02992371F08CE38093670200
:1041E000892F99279F938F9386EC94E09F938F93C9
:1041F0001F930F9391C08091D60384FF07C08CE377
:10420000809367028BED94E00C94512A8091920187
:1042100090919301069710F00C94C82A8CE3809338
:10422000670288EE94E00C94512A8091B90533E03E
:10423000E32E30E2F32EC091BC03D091BD0380FF8A
:1042400074C0109267028091A3029091A402A09181
:10425000A502B091A602BC01CD0125E030E040E00E
:1042600050E00E9451773F932F9385EF94E09F9306
:104270008F93FF92EF92FE01099584E1809367028C
:104280002DB73EB72A5F3F4F2DBF80919F0290917F
:10429000A002A091A102B091A202BC01CD0125E033
:1042A00030E040E050E00E9451773F932F9382E04E
:1042B00095E09F938F93FF92EF92E091BC03F09172
:1042C000BD03099588E2809367028DB79EB7069675
:1042D0008DBF80911401909115019F938F938FE072
:1042E00095E09F938F93FF92EF92E091BC03F09142
:1042F000BD0309958CE3809367022DB73EB72A5F13
:104300003F4F2DBF87B599279F938F938CE195E001
:104310009F938F93FF92EF92E091BC03F091BD03C6
:1043200009958DB79EB7069633C71092670289E24A
:1043300095E09F938F93FF92EF92FE01099584E1A0
:10434000809367020F900F900F900F9088E395E095
:104350009F938F93FF92EF92E091BC03F091BD0386
:10436000099588E2809367020F900F900F900F904D
:1043700081E495E09F938F93FF92EF92E091BC03CD
:10438000F091BD0309958CE3809367020F900F9025
:104390000F900F9080E595E09F938F93FF92EF929F
:1043A0000C94552A1092670289E595E09F938F93AC
:1043B00003E010E2FF92EF92FE01099584E1809301
:1043C00067020F900F900F900F90809105039091CE
:1043D0000603A0910703B0910803B7FF04C0815002
:1043E0009C4FAF4FBF4F2AE0B595A79597958795FE
:1043F0002A95D1F7BF93AF939F938F9386E695E06D
:104400009F938F931F930F93E091BC03F091BD0393
:10441000099588E2809367022DB73EB7285F3F4F2A
:104420002DBF8091FD029091FE02A091FF02B091FC
:104430000003B7FF04C081509C4FAF4FBF4FCAE08D
:10444000B595A79597958795CA95D1F7BF93AF93E3
:104450009F938F9385E795E09F938F931F930F937F
:10446000E091BC03F091BD0309958CE38093670252
:104470008DB79EB708968DBF8091C3029091C402FC
:104480009F938F9384E895E09F938F931F930F934F
:10449000E091BC03F091BD0309952DB73EB72A5FAB
:1044A0003F4F11C7109267028091DB069091DC06A6
:1044B0009F938F938091D9069091DA069F938F9363
:1044C00083E995E09F938F93FF92EF92FE01099508
:1044D00084E1809367028DB79EB708968DBF809167
:1044E000DF069091E0069F938F938091DD06909177
:1044F000DE069F938F9383EA95E09F938F93FF92BD
:10450000EF92E091BC03F091BD03099588E280939E
:1045100067022DB73EB7285F3F4F2DBF8091E3065E
:104520009091E4069F938F938091E1069091E2062B
:104530009F938F9383EB95E09F938F93FF92EF92DE
:10454000E091BC03F091BD0309958CE38093670271
:104550008DB79EB708968DBF8091E7069091E806CB
:104560009F938F938091E5069091E6069F938F939A
:1045700083EC95E0A2C0109267028091AE05E82F0F
:10458000FF27EE0FFF1FE952F94F808191819F9322
:104590008F938091AD05E82FFF27EE0FFF1FE952A3
:1045A000F94F808191819F938F9383ED95E09F9345
:1045B0008F93FF92EF92FE01099584E18093670249
:1045C0008DB79EB708968DBF8091B005E82FFF2765
:1045D000EE0FFF1FE952F94F808191819F938F93D6
:1045E0008091AF05E82FFF27EE0FFF1FE952F94F2B
:1045F0008081918188589F4F9F938F9383EE95E0A0
:104600009F938F93FF92EF92E091BC03F091BD03D3
:10461000099588E2809367022DB73EB7285F3F4F28
:104620002DBF8091B205E82FFF27EE0FFF1FE95243
:10463000F94F8081918182599F4F9F938F938091F1
:10464000B105E82FFF27EE0FFF1FE952F94F8081D8
:10465000918182599F4F9F938F9383EF95E09F9312
:104660008F93FF92EF92E091BC03F091BD03099507
:104670008CE3809367028DB79EB708968DBF8091BB
:10468000B405E82FFF27EE0FFF1FE952F94F808195
:10469000918182599F4F9F938F938091B305E82F0B
:1046A000FF27EE0FFF1FE952F94F80819181825958
:1046B0009F4F9F938F9383E096E09F938F93FF92FA
:1046C000EF92E091BC03F091BD0309952DB73EB781
:1046D000285F3F4FF8C51092670283E196E09F93F1
:1046E0008F9303E010E2FF92EF92FE010995809113
:1046F00002010F900F900F900F908A3009F09DC02B
:1047000084E18093670280911A0390911B039C01BE
:1047100097FF02C0295F3F4F287F821B930B9F9317
:104720008F9380911A0390911B0397FD0796A3E046
:1047300095958795AA95E1F79F938F9320911A03FA
:1047400030911B0337FF02C0295F3F4FF3E03595DF
:104750002795FA95E1F78091470290914802821BD4
:10476000930B9F938F9381E296E09F938F931F9378
:104770000F93E091BC03F091BD03099588E280930B
:1047800067028DB79EB70A968DBF809118039091EE
:1047900019039C0197FF02C0295F3F4F287F821BAE
:1047A000930B9F938F93809118039091190397FD1A
:1047B0000796E3E095958795EA95E1F79F938F93A8
:1047C000209118033091190337FF02C0295F3F4F32
:1047D00073E0359527957A95E1F7809145029091A0
:1047E0004602821B930B9F938F9382E396E09F93E5
:1047F0008F931F930F93E091BC03F091BD03099534
:104800008CE3809367022DB73EB7265F3F4F2DBFE5
:1048100080911603909117039F938F9380911603B5
:10482000909117032091430230914402821B930B15
:104830009F938F9383E496E0A7C38B3019F0843164
:1048400008F4ADC084E18093670280911A039091CF
:104850001B039C0197FF02C0215F3F4F207F821BFB
:10486000930B97FD0196959587959F938F938091D4
:104870001A0390911B0397FD0F9654E09595879529
:104880005A95E1F79F938F9320911A0330911B0360
:1048900037FF02C0295F3F4F43E0359527954A9582
:1048A000E1F78091470290914802821B930B9F93FE
:1048B0008F9381E596E09F938F931F930F93E091E1
:1048C000BC03F091BD03099588E2809367022DB780
:1048D0003EB7265F3F4F2DBF80911803909119037B
:1048E0009C0197FF02C0215F3F4F207F821B930BEB
:1048F00097FD0196959587959F938F9380911803C7
:104900009091190397FD0F96C4E095958795CA95E8
:10491000E1F79F938F93209118033091190337FF8C
:1049200002C0295F3F4FB3E035952795BA95E1F76F
:104930008091450290914602821B930B9F938F9327
:1049400083E696E09F938F931F930F93E091BC03B0
:10495000F091BD0309958CE3809367028DB79EB7F4
:104960000A968DBF809116039091170397FD0196CB
:10497000959587959F938F93809116039091170338
:104980002091430230914402821B930B9F938F939B
:1049900085E796E09F938F931F930F9392CE8D3070
:1049A00009F0F6C584E1809367028091130199278D
:1049B0009F938F9380911A0390911B0397FD0F96FD
:1049C000F4E095958795FA95E1F79F938F93209161
:1049D0001A0330911B0337FF02C0295F3F4FE3E00A
:1049E00035952795EA95E1F7809147029091480225
:1049F000821B930B9F938F9384E896E09F938F93F2
:104A00001F930F93E091BC03F091BD03099588E2D9
:104A1000809367028DB79EB70A968DBF8091120171
:104A200099279F938F93809118039091190397FD75
:104A30000F9674E0959587957A95E1F79F938F93FC
:104A4000209118033091190337FF02C0295F3F4FAF
:104A500063E0359527956A95E1F78091450290913D
:104A60004602821B930B9F938F9388E996E09F9356
:104A70008F931F930F93E091BC03F091BD030995B1
:104A80008CE3809367022DB73EB7265F3F4F2DBF63
:104A90008091110199279F938F9380911603909194
:104AA000170397FD0196959587959F938F93809116
:104AB0001603909117032091430230914402821B08
:104AC000930B9F938F938CEA96E09F938F931F9302
:104AD0000F93E091BC03F091BD0309958DB79EB78C
:104AE0000A9656C31092670280EC96E09F938F93CC
:104AF000FF92EF92FE01099584E1809367020F9087
:104B00000F900F900F9080911003909111039F933D
:104B10008F9380913F02909140029F938F938DECF1
:104B200096E09F938F93FF92EF92E091BC03F091F8
:104B3000BD03099588E2809367022DB73EB7285FD1
:104B40003F4F2DBF80910E0390910F039F938F9342
:104B500080914102909142029F938F938CED96E059
:104B60009F938F93FF92EF92E091BC03F091BD036E
:104B700009958CE3809367028DB79EB708968DBF29
:104B800080910A0390910B039F938F9380913D0234
:104B900090913E029F938F938BEE96E08ECD109274
:104BA000670280911E0190911F016AE070E00E94EF
:104BB0001C779F938F9380911E0190911F016AE053
:104BC00070E00E941C777F936F938AEF96E09F932B
:104BD0008F93FF92EF92FE01099584E18093670223
:104BE0008DB79EB708968DBF8091140890911508D7
:104BF0006AE070E00E9408779F938F938091140879
:104C0000909115086AE070E00E9408777F936F9397
:104C10008EE097E09F938F93FF92EF92E091BC0319
:104C2000F091BD03099588E2809367022DB73EB7E6
:104C3000285F3F4F2DBF80911608909117089F93D2
:104C40008F9382E297E09F938F93FF92EF92E09190
:104C5000BC03F091BD0309958CE3809367028DB787
:104C60009EB706968DBF80911808909119089F9362
:104C70008F9382E397E02EC11092670284E497E05D
:104C80009F938F93FF92EF92FE01099584E18093A9
:104C900067020F900F900F900F908091D706909120
:104CA000D8069F938F938DE497E09F938F93FF9205
:104CB000EF92E091BC03F091BD03099588E28093E7
:104CC00067028DB79EB706968DBF8091B102992776
:104CD0009F938F938DE597E09F938F93FF92EF9231
:104CE000E091BC03F091BD0309958CE380936702CA
:104CF0002DB73EB72A5F3F4F2DBF8091D60699272B
:104D000001979F938F938DE697E002CB10926702F5
:104D10008DE797E09F938F93FF92EF92FE010995A5
:104D200084E1809367020F900F900F900F90809115
:104D3000BF029091C0029F938F9385E897E09F9365
:104D40008F93FF92EF92E091BC03F091BD03099520
:104D500088E2809367022DB73EB72A5F3F4F2DBF91
:104D60008091C3029091C4029F938F9383E997E04F
:104D70009F938F93FF92EF92E091BC03F091BD035C
:104D800009958CE3809367028DB79EB706968DBF19
:104D90008091C1029091C2029F938F9381EA97E024
:104DA00099C0109267028091B20299279F938F93C6
:104DB0008FEA97E09F938F93FF92EF92FE01099500
:104DC00084E1809367028DB79EB706968DBF809170
:104DD000B30299279F938F938BEB97E09F938F93C9
:104DE000FF92EF92E091BC03F091BD03099588E238
:104DF000809367022DB73EB72A5F3F4F2DBF80914A
:104E0000B40299279F938F9387EC97E09F938F939A
:104E1000FF92EF92E091BC03F091BD0309958CE302
:104E2000809367028DB79EB706968DBF8091B502BD
:104E300099279F938F9383ED97E04CC01092670260
:104E40008091B60299279F938F938FED97E09F9360
:104E50008F93FF92EF92FE01099584E180936702A0
:104E60008DB79EB706968DBF8091B70299279F9305
:104E70008F938BEE97E09F938F93FF92EF92E09149
:104E8000BC03F091BD03099588E2809367022DB7BA
:104E90003EB72A5F3F4F2DBF8091B80299279F935D
:104EA0008F9387EF97E09F938F93FF92EF92E0911C
:104EB000BC03F091BD0309958CE3809367028DB725
:104EC0009EB706968DBF8091B90299279F938F93C5
:104ED00083E098E09F938F93FF92EF92D9CA10924C
:104EE00067028FE098E09F938F9303E010E2FF92B8
:104EF000EF92FE01099584E1809367020F900F9075
:104F00000F900F908091C10199279F938F9387E114
:104F100098E09F938F93FF92EF92E091BC03F09102
:104F2000BD03099588E2809367028DB79EB7069608
:104F30008DBF80911E0290911F0297FD039695955B
:104F40008795959587959F938F9385E298E09F939A
:104F50008F931F930F93E091BC03F091BD030995CC
:104F60008CE3809367022DB73EB72A5F3F4F2DBF7A
:104F70008091DC0599279F938F938091DB0599277A
:104F80009F938F9383E398E09F938F931F930F9347
:104F9000E091BC03F091BD0309958DB79EB70896CB
:104FA000F7C01092670281E498E09F938F93FF927D
:104FB000EF92FE01099584E1809367020F900F90B4
:104FC0000F900F908091F603992787FD90959F93FE
:104FD0008F938091F503992787FD90959F938F93E9
:104FE00081E598E09F938F93FF92EF92E091BC034D
:104FF000F091BD03099588E2809367022DB73EB713
:10500000285F3F4F2DBF8091F703992787FD90952B
:105010009F938F938091F80399279F938F9381E6B5
:1050200098E09F938F93FF92EF92E091BC03F091F1
:10503000BD0309958CE3809367028DB79EB70896F0
:105040008DBF8091FC0399279F938F938091F903E3
:10505000992787FD90959F938F9381E798E02DCBBB
:105060001092670281E898E09F938F93FF92EF92EE
:10507000FE01099584E1809367020F900F900F90D5
:105080000F908091910699278F7790709F938F93BF
:105090008091890699278F7790709F938F93809145
:1050A000810699278F7790709F938F9380917906CF
:1050B00099278F7790709F938F9381E998E09F93C2
:1050C0008F93FF92EF92E091BC03F091BD0309959D
:1050D00088E2809367028DB79EB70C968DBF809152
:1050E000B10699278F7790709F938F938091A9062F
:1050F00099278F7790709F938F938091A10699271E
:105100008F7790709F938F938091990699278F77CF
:1051100090709F938F9382EA98E09F938F93FF9272
:10512000EF92E091BC03F091BD0309958CE380936D
:1051300067022DB73EB7245F3F4F2DBF8091D10648
:1051400099278F7790709F938F938091C9069927A5
:105150008F7790709F938F938091C10699278F7757
:1051600090709F938F938091B90699278F77907055
:105170009F938F9383EB98E09F938F93FF92EF928F
:10518000E091BC03F091BD0309958DB79EB70C96D5
:105190008DBFFEC11092670284EC98E09F938F93BD
:1051A000FF92EF92FE01099584E1809367020F90D0
:1051B0000F900F900F9080919506992787FD9095FD
:1051C0009F938F9380918D06992787FD90959F934C
:1051D0008F9380918506992787FD90959F938F9354
:1051E00080917D06992787FD90959F938F9383EDFE
:1051F00098E09F938F93FF92EF92E091BC03F09120
:10520000BD03099588E2809367022DB73EB7245FFE
:105210003F4F2DBF8091B506992787FD90959F93AD
:105220008F938091AD06992787FD90959F938F93DB
:105230008091A506992787FD90959F938F938091E4
:105240009D06992787FD90959F938F9384EE98E014
:105250009F938F93FF92EF92E091BC03F091BD0377
:1052600009958CE3809367028DB79EB70C968DBF2E
:105270008091D506992787FD90959F938F93809174
:10528000CD06992787FD90959F938F938091C506B2
:10529000992787FD90959F938F938091BD069927BD
:1052A00087FD90959F938F9385EF98E09F938F93C1
:1052B000FF92EF92E091BC03F091BD0309952DB7E9
:1052C0003EB7245F3F4F2DBF63C11092670286E057
:1052D00099E09F938F9303E010E2FF92EF92FE011B
:1052E000099584E1809367020F900F900F900F90C3
:1052F00080919106881F8827881F97E0899FC001A9
:1053000011248D969F938F9380918906881F8827FB
:10531000881F96E0899FC00111248D969F938F93DB
:1053200080918106881F8827881F95E0899FC0018A
:1053300011248D969F938F9380917906881F8827DB
:10534000881F9927880F991F880F991F8D969F9303
:105350008F9385E199E09F938F93FF92EF92E09175
:10536000BC03F091BD03099588E2809367028DB775
:105370009EB70C968DBF8091B106881F8827881F25
:105380009BE0899FC00111248D969F938F938091FC
:10539000A906881F8827881F9AE0899FC0011124C9
:1053A0008D969F938F938091A106881F8827881FD1
:1053B00099E0899FC00111248D969F938F938091CE
:1053C0009906881F8827881F992723E0880F991F2F
:1053D0002A95E1F78D969F938F9389E299E09F93A9
:1053E0008F93FF92EF92E091BC03F091BD0309957A
:1053F0008CE3809367022DB73EB7245F3F4F2DBFEC
:105400008091B906881F8827881F9CE0899FC0016A
:1054100011248D969F938F938DE399E09F938F93A3
:10542000FF92EF92E091BC03F091BD03099580914A
:10543000C1062DB73EB72A5F3F4F2DBF87FF12C071
:1054400080E4809367028EE499E09F938F93FF92AC
:10545000EF92E091BC03F091BD0309950F900F907E
:105460000F900F908091C90687FF12C084E480934B
:10547000670281E599E09F938F931F930F93E091CB
:10548000BC03F091BD0309950F900F900F900F9002
:105490008091D10687FF7CC088E48093670284E511
:1054A00099E09F938F931F930F93E091BC03F0912A
:1054B000BD0309950F900F900F900F9069C0109247
:1054C000670287E599E09F938F93FF92EF92FE0129
:1054D000099584E1809367020F900F900F900F90D1
:1054E0008091F5019091F6019F938F9385E699E065
:1054F0009F938F93FF92EF92E091BC03F091BD03D5
:10550000099588E2809367028DB79EB706968DBF96
:105510008091F7019091F8019F938F9382E799E032
:105520009F938F93FF92EF92E091BC03F091BD03A4
:10553000099589E4809367022DB73EB72A5F3F4FF4
:105540002DBF8FE799E09F938F93FF92EF92E091A9
:10555000BC03F091BD030995809165020F900F90F7
:105560000F900F9083FF14C01092F8011092F70172
:1055700060E070E08EE090E00E94D42C09C0809141
:105580002001281719F4215020932001109266025F
:1055900010926502E6E0CDB7DEB70C949477F999E6
:1055A000FECF92BD81BDF89A80B599270895F999EB
:1055B000FECF1FBA92BD81BD60BD0FB6F894FA9AB6
:1055C000F99A0FBE08954AEA20E030E0261737071F
:1055D00040F4FC018191480F2F5F3F4F261737079A
:1055E000C8F3842F99270895EAEA40E050E046176F
:1055F000570778F49C01F999FECF32BD21BDF89A86
:1056000080B5E80F4F5F5F4F2F5F3F4F461757073B
:1056100090F38E2F9927089581E08093AF0582E063
:105620008093AE0583E08093AD0584E08093B00560
:1056300085E08093B10586E08093B20587E0809392
:10564000B30588E08093B40589E08093B5058AE0CE
:105650008093B6058BE08093B7058CE08093B80506
:10566000089595E59093AC0580910201843170F026
:105670008AE08093CC051092F0058BE18093C805F9
:105680008EE48093ED058093EE050DC083E080935A
:10569000CC0580E28093F0058EE18093C80590935D
:1056A000ED059093EE058AE68093B90583E080933B
:1056B000120681E08093D30510920F0610920C061B
:1056C00068E06093C60586EE8093C70580E8809306
:1056D000C9055EE15093BA058FEF8093BC059FE04A
:1056E0009093BD055093BB051092BF056093C00514
:1056F00080E48093C1051092C2059093BE0510927C
:10570000D5051092D6051092D7051092D8051092A3
:10571000F2051092F3051092F4051092F50538E7A2
:105720003093D90548E24093DA0572E07093110690
:105730009093DB0527EF2093DC0585E08093E1055E
:105740008DE78093E4058093E5058093E60530932B
:10575000DD059AE59093DE051092DF052093E005C4
:105760004093E2051092E3058FE58093F60583EF01
:105770008093F8058AEA8093FA058093FB0584E11B
:105780008093F7058093F90582E38093E705909372
:10579000E8058093E905109210068EEF8093FC05D2
:1057A00024E62093FD059093FE059093FF059093CA
:1057B00000068BE480930106809302068093030623
:1057C0001092040686E08093050660930606909387
:1057D0000706509308062093090620930A06709343
:1057E0000B0610920D0610920E0681E28093D005F2
:1057F0008DE28093D1059093D2050895CF93DF93E6
:105800000E94312B8EE08093C30520E12093C405D4
:105810003CE03093C50590E59093CA0586E98093F6
:10582000CB059093CD058093CE0586E08093CF0580
:1058300080E28093D4058AE58093EA059093EB0596
:1058400081E08093EC052093EF0584E68093F105D9
:10585000A3E1B6E0E1E7F1E0ED01019009923A95AC
:10586000E1F763E770E0CD01875690400E94E32A9C
:1058700080931F06DF91CF910895CF93DF930E940D
:10588000312B8AE08093C30580E18093C40526E034
:105890002093C5059AE59093CA0588E78093CB05C8
:1058A0009093CD058093CE052093CF0520E22093E1
:1058B000D4059093EA0580E58093EB058CE3809313
:1058C000EC052093EF058BE48093F105A3E1B6E0AE
:1058D0008CE0E8E7F1E0ED01019009928A95E1F7AB
:1058E00063E770E0CD01875690400E94E32A8093E1
:1058F0001F06DF91CF910895CF93DF930E94312B44
:1059000088E08093C30530E13093C40526E02093FE
:10591000C50594E69093CA0588E78093CB059093DC
:10592000CD058093CE052093CF053093D4058AE52D
:105930008093EA0580E58093EB0596E49093EC056F
:1059400080E28093EF059093F105A3E1B6E08CE04F
:10595000E0E8F1E0ED01019009928A95E1F763E753
:1059600070E0CD01875690400E94E32A80931F0685
:10597000DF91CF910895F999FECF92BD81BDF89A3C
:1059800080B599270895F999FECF1FBA92BD81BDC0
:1059900060BD0FB6F894FA9AF99A0FBE08956FECAD
:1059A0007AE20E946B75089547ED5AE20E94A57550
:1059B0000895EF92FF920F931F93CF93C82F8150BA
:1059C000853008F0C3E084E7C89F8001112480EF90
:1059D000E82E8FEFF82EE00EF11E63E770E0C701AE
:1059E0000E94F42A682F98012D593F4F8FB39927B1
:1059F000AC014270507081FDF9CF32BD21BDF89AE3
:105A000080B5861711F0CA0121C08FB399279C0178
:105A10002270307081FDF9CFF2BCE1BCF89A80B5FC
:105A2000853511F0C90112C084E7C89FC001112457
:105A300040972FEC3AE244E750E0BC018CEA95E055
:105A40000E9446750E94246681E090E0CF911F91EC
:105A50000F91FF90EF900895282F863010F025E0E9
:105A600003C0882309F421E0F999FECF1FBA82E030
:105A700090E092BD81BD20BD0FB6F894FA9AF99AD4
:105A80000FBE0895CF93C82F8091AC05853509F0DE
:105A900042C0C63010F0C5E003C0CC2309F43BC0BF
:105AA00063E770E08CEA95E00E94E32A80931F068A
:105AB00084E7C89FC001112427ED3AE244E750E093
:105AC0006CEA75E040970E94837527ED3AE24CE05E
:105AD00050E06DEA75E080E590E00E9483756CE02F
:105AE00070E08DEA95E00E94E32A282FF999FECF15
:105AF0001FBA8CE590E092BD81BD20BD0FB6F89431
:105B0000FA9AF99A0FBE8C2F0E942C2D0E942466BF
:105B100081E090E002C080E090E0CF9108956DE4D4
:105B200070E088EE93E00E94F42A482F8FB3992703
:105B30009C012270307081FDF9CF85E394E092BD25
:105B400081BDF89A80B5841779F48FB399279C01A9
:105B50002270307081FDF9CF88EE93E092BD81BD57
:105B6000F89A80B5813011F0C90108952FEC3AE21E
:105B70004EE450E068EE73E080E296E00E944675E5
:105B800081E090E00895809120068130A9F46DE4D1
:105B900070E080E296E00E94E32A80936D0627ED94
:105BA0003AE24EE450E060E276E088EE93E00E9454
:105BB000837581E090E0089580E090E00895CF93B0
:105BC000DF9381E080932006E0E2F6E08FE0158627
:105BD00016861786108A8150349687FFF8CF80E4A6
:105BE00080932D0680932E0610922F068093300608
:105BF0008093310690EC9093320610923306809396
:105C000034068093350610923606909337069093AB
:105C100038068093390610923A0680933B0690939B
:105C20003C06A1E2B6E087E0EAE8F1E0ED01019090
:105C300009928A95E1F76DE470E0CD0101970E9429
:105C4000E32A80936D06DF91CF910895F999FECFF5
:105C500082E090E092BD81BDF89A80B5282F863011
:105C600078F023E0322FF999FECF1FBA82E090E05E
:105C700092BD81BD30BD0FB6F894FA9AF99A0FBE65
:105C8000822F992708951F93CF93C82F162F863000
:105C900010F0C5E003C0882309F4C1E08C2F9927D8
:105CA0008230910541F08330910544F4019731F43D
:105CB0000E94FE2B05C00E943D2C02C00E947C2C3D
:105CC0001123E1F06CE070E080E590E00E94F42A9E
:105CD000282FF999FECF8CE590E092BD81BDF89A0E
:105CE00080B5821759F42FEC3AE24CE050E060E5C1
:105CF00070E08DEA95E00E94467502C00E940C2B70
:105D00008C2F0E94422DCF911F910895DF92EF9228
:105D1000FF920F931F93CF93FF24DF2CEF2C81E092
:105D200090E00E94BB2C853539F031E0E32E65E52B
:105D300081E090E00E94C32C6CE070E080E590E090
:105D40000E94F42AC82FF999FECF8CE590E092BD0D
:105D500081BDF89A80B58C1711F421E0D22EC1E0F4
:105D600001E010E0EE2029F48C2F0E94D92C88232A
:105D7000C1F591E0F92E1F930F9387E899E09F9367
:105D80008F9380EF92E19F938F93E091BC03F0910A
:105D9000BD0309958DB79EB706968DBF02301105DC
:105DA00049F0033011054CF40130110531F40E9423
:105DB000FE2B05C00E943D2C02C00E947C2CDD20E1
:105DC00059F02FEC3AE24CE050E060E570E08DEAEB
:105DD00095E00E94467502C00E940C2B8C2F0E94F9
:105DE000422DCF5F0F5F1F4FC63008F4BBCFFF209F
:105DF00019F083E00E942C2D0E94262EC82F0E94AD
:105E0000D92C8C2F99279F938F938DEA99E09F939C
:105E10008F9300EF12E11F930F93E091BC03F09179
:105E2000BD0309958DB79EB706968DBFEE2021F470
:105E30000E948F2D882399F486EC99E09F938F938D
:105E40001F930F93E091BC03F091BD0309950E944D
:105E5000DF2D0E94C32D0F900F900F900F90109286
:105E6000AB0590E0EDE2F6E0CFE0808134961816C5
:105E70000CF49F5FC150C7FFF8CF9093AB05892FFB
:105E800099279F938F9381E296E09F938F9387EE5C
:105E900099E09F938F931F930F93E091BC03F09130
:105EA000BD0309958DB79EB708968DBF88E09AE02F
:105EB0009F938F931F930F93E091BC03F091BD03C9
:105EC00009950F900F900F900F90CF911F910F9108
:105ED000FF90EF90DF900895982F2FB7F89439989E
:105EE000389A88B1836088B98091B9008C7F80939B
:105EF000B9008AE28093B800109272021092700288
:105F000010926F02992379F0E6E7F6E08BE01082B9
:105F10001182128213821482158216821782815096
:105F2000389687FFF4CF78942FBF089510927202AD
:105F300084E98093BC0080E88093BC001092BD008F
:105F40001092BA001092BB001092B9001092B800E3
:105F500010926E0280E00E946C2F1092BB0085E8C8
:105F60008093BC0080916C02826080936C020895E3
:105F70001F920F920FB60F9211242F933F934F93BE
:105F80005F938F939F93EF93FF9380917202282FDB
:105F90003327442755278F5F80937202F9012731F9
:105FA000310508F0C2C2E659FF4F0C94A37781E097
:105FB00080936E0209C0809170028C3090F48091C1
:105FC00070028F5F8093700280917002E82FFF272C
:105FD000EE0FFF1FEE0FFF1FE05EF94F85851816CD
:105FE00054F7809170028C3070F010926B02109216
:105FF0006A021092700285E08093720280916F02B3
:10600000880F8D5A04C080917002880F8E5A809339
:10601000BB0085E87FC280917002E82FFF2783E0F4
:10602000EE0FFF1F8A95E1F7EA58F94F81818093BF
:10603000BB0085E88093BC0080917002E82FFF27A9
:10604000EE0FFF1FEE0FFF1FEE0FFF1FEA58F94F75
:10605000808180FF91C080917002E82FFF27EE0FB2
:10606000FF1FEE0FFF1FEE0FFF1FEA58F94F82814F
:10607000882329F08091AB05873008F46CC28091A9
:106080006A0290916B02892B09F065C280916802C7
:1060900090916902892B09F05EC26EC080917002F6
:1060A00021E030E002C0220F331F8A95E2F7809191
:1060B00068029091690228233923232B79F080917B
:1060C0007002E82FFF27EE0FFF1FEE0FFF1FEE0FEE
:1060D000FF1FEA58F94F80E184830DC08091700260
:1060E000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F22
:1060F000EA58F94F148280917002E82FFF2753E08D
:10610000EE0FFF1F5A95E1F7EA58F94F8481282FC7
:10611000332743E0220F331F4A95E1F78091700245
:10612000E82FFF2793E0EE0FFF1F9A95E1F7EA585B
:10613000F94F82818770822B8093BB0085E8809322
:10614000BC002091700281E090E002C0880F991F8E
:106150002A95E2F720916A0230916B028223932301
:10616000892B51F08EE696E090937602809375022B
:1061700088E080937702EFC184E089C1E0917502E5
:10618000F091760281918093BB0085E88093BC00FA
:10619000F0937602E09375028091770281508093AC
:1061A0007702882309F4D7C183E071C18091B900D7
:1061B000803351F580917302882329F48091700215
:1061C0008F5F8093730280917002E82FFF2783E036
:1061D000EE0FFF1F8A95E1F7EA58F94F838199275F
:1061E0008F7790708F3791057CF480917002E82F43
:1061F000FF27EE0FFF1FEE0FFF1FEE0FFF1FEA58E6
:10620000F94F83818F5F83831092720284E98093B8
:10621000BC008AE090E0909393018093920180917A
:1062200070028F5F80937002109272026DC1809134
:10623000B9008034C9F180916F02E82FFF27EE0F7B
:10624000FF1FEE0FFF1FEE0FFF1FEA58F94F83816C
:106250008F77838380916F028F5F80936F0280912D
:106260006F028C30A0F010926F02109269021092AF
:106270006802809174028F5F809374028C3038F0D2
:106280001092740280916C028D7F80936C028091D9
:106290006C02816080936C021092720284E9809398
:1062A000BC0010926E0273C080916F02E82FFF272E
:1062B000EE0FFF1FEE0FFF1FEE0FFF1FEA58F94F03
:1062C00083818068838380916F02E82FFF27EE0F20
:1062D000FF1FEE0FFF1FEE0FFF1FEA58F94F8081DF
:1062E00080FF2FC080916F02E82FFF2753E0EE0F51
:1062F000FF1F5A95E1F7EA58F94F848199270097D3
:1063000051F04097D9F58EE696E09093760280930F
:10631000750288E031C080916F02992743E0880FB1
:10632000991F4A95E1F78558994F9093760280938B
:10633000750290916F02809174029817E1F483E0E6
:106340001BC080916F02992733E0880F991F3A95FF
:10635000E1F78558994F909376028093750280916A
:106360006C0281FD06C090916F02809174029817B3
:1063700011F482E001C081E080937702809177027E
:10638000813011F485E801C085EC8093BC008091D8
:10639000730280936D0210927302DDC0E09175026A
:1063A000F09176028091BB0080838091750290917C
:1063B000760201969093760280937502809177021F
:1063C000815080937702823010F085EC5DC081307F
:1063D00011F485E859C080916C0281FF2DC0809135
:1063E0007D0280FD1DC080916F02E82FFF2723E012
:1063F000EE0FFF1F2A95E1F7EA58F94F86818A3F91
:1064000079F480916F02E82FFF2793E0EE0FFF1FD2
:106410009A95E1F7EA58F94F8081816080830CC03A
:1064200080916F02E82FFF2783E0EE0FFF1F8A9510
:10643000E1F7EA58F94F108280916F028F5F8093E5
:106440006F0280916F028C30A0F010926F02109258
:10645000690210926802809174028F5F80937402C7
:106460008C3038F01092740280916C028D7F809392
:106470006C021092720284E98093BC0080916C02DD
:10648000816080936C0265C08093BC0086E080933D
:10649000720261C088E9BBCD80917102880F805F74
:1064A000B6CD8091710299278130910561F08230DB
:1064B00091051CF4892B21F04EC0029739F04BC096
:1064C00080911301A4CD80911201A1CD8091110181
:1064D0009ECD80E89CCD1092720284E98093BC002E
:1064E00010926E028AE090E0909393018093920163
:1064F00080917102823088F4809171028F5F809365
:10650000710282E18093720280916C028E7F80938F
:106510006C0285EA8093BC001EC0109271028091CB
:106520006C02816080936C0216C01092720284E942
:106530008093BC0080916C02816080936C028AE041
:1065400090E09093930180939201109270021092C8
:106550006F0210926E02FF91EF919F918F915F9168
:106560004F913F912F910F900FBE0F901F90189554
:106570001F93CF93DF93182F8091A802882321F4D3
:1065800080910302882319F081E090E097C01D30CC
:1065900008F092C01123B1F0E12FFF2723E0EE0FA6
:1065A000FF1F2A95E1F7EA58F94F35978081359614
:1065B00088230CF081C03897808180FD03C083E080
:1065C00090E07CC080916E06823019F084E090E00B
:1065D00075C067E070E08EE696E00E94E32A909135
:1065E0007506891719F085E090E068C080ED97E0A6
:1065F0000E941617EC0180916C0280FD05C0CE014F
:106600000E941F178823B9F3112319F48FEF90E02C
:106610000BC0212F33272150304081E090E002C091
:10662000880F991F2A95E2F790936B0280936A0274
:10663000A1E0B0E0E6E7F6E040E050E06BE0CD013D
:10664000042E02C0880F991F0A94E2F720916A0273
:1066500030916B0282239323892B11F011821282D5
:1066600061504F5F5F4F389667FFE9CF109270021D
:106670001092720280916C028E7F80936C0285EA88
:106680008093BC0080916C0280FD05C0CE010E9409
:106690001F178823B9F380916A0290916B02892BAE
:1066A00029F0CE010E941F17882311F380916A02FE
:1066B00090916B02009711F082E090E0DF91CF9112
:1066C0001F9108950F931F93CF93DF93982F80917D
:1066D000A802882321F480910302882319F081E025
:1066E00090E092C09D30A0F4992319F486E090E0E8
:1066F0008BC0C92FDD27FE0133E0EE0FFF1F3A9557
:10670000E1F7EA58F94F35978081359687FD03C048
:1067100082E090E079C03897808180FD03C083E0FB
:1067200090E072C080ED97E00E9416178C01809176
:106730006C0280FD05C0C8010E941F178823B9F3B1
:10674000219721E030E0C90102C0880F991FCA9546
:10675000E2F79093690280936802D901E6E7F6E0D8
:1067600040E050E06BE0CD01042E02C0880F991F7D
:106770000A94E2F720916802309169028223932300
:10678000892B11F01182128261504F5F5F4F389652
:1067900067FFE9CF10926F0210926E061092750695
:1067A0001092720280916C028E7F80936C0285EA57
:1067B0008093BC0080916C0280FD05C0C8010E94DE
:1067C0001F178823B9F38091680290916902892B81
:1067D00029F0C8010E941F17882311F380916E06CB
:1067E000823019F084E090E00FC067E070E08EE640
:1067F00096E00E94E32A90917506891719F085E0CA
:1068000090E002C080E090E0DF91CF911F910F9166
:10681000089589E1ABE0B7E0E7EDF6E01182108280
:10682000329611961C921E921296815087FFF6CFD7
:106830001092170310921603109219031092180366
:1068400010921B0310921A0308951F920F920FB615
:106850000F9211240F931F932F933F934F935F93A6
:106860006F937F938F939F93AF93BF93CF93DF9358
:10687000EF93FF93409186005091870080917902B9
:1068800090917A02481B590BCA0157FD0196AC0141
:1068900055954795809186009091870090937A0254
:1068A00080937902CA0189599840A0917B02B091E6
:1068B0007C02875E954338F4149714F0109294018B
:1068C00081E090E081C0AD30B1050CF081C0CA011B
:1068D0008B5F90408356944008F071C0425C5340F7
:1068E000FD01EA0FFB1FE952F94F80819181FA0106
:1068F000E81BF90BCF01F7FF03C0909581959F4FDF
:1069000006974CF48091B102883C28F48091B10242
:10691000865F8093B102FD01EA0FFB1FE952F94F38
:10692000808191819C01220F331F280F391F240F72
:10693000351F37FF02C02D5F3F4FE901D595C79541
:10694000D595C795CA0101968C179D0714F4219718
:1069500006C041505040C417D5070CF421968091D1
:10696000B102833CD8F08D010A0F1B1FF801E952D8
:10697000F94F808191819E01281B390BC90163E089
:1069800070E00E941C77CB01880F991F860F971F1C
:10699000055F184FF8019183808307C0AA0FBB1FC2
:1069A000A55FB84F11961C921E92E0917B02F09168
:1069B0007C02EE0FFF1FE952F94FD183C083809113
:1069C0007B0290917C02019690937C0280937B02E3
:1069D000FF91EF91DF91CF91BF91AF919F918F91F7
:1069E0007F916F915F914F913F912F911F910F91E7
:1069F0000F900FBE0F901F901895EF92FF920F937C
:106A00001F938091C8059927880F991F880F991F98
:106A10007C010027F7FC0095102F809105039091D1
:106A20000603A0910703B0910803BC01CD01A801A2
:106A300097010E9451773093580520935705809114
:106A4000FD029091FE02A091FF02B0910003BC01F3
:106A5000CD01A80197010E94517730935A052093E8
:106A60005905809191079091920797FD039695950E
:106A700087959595879590935C0580935B058091AC
:106A8000A1079091A20797FD0396959587959595F7
:106A9000879590935E0580935D0580911603909194
:106AA00017032091430230914402821B930B909371
:106AB000600580935F058091A3029091A402A0914C
:106AC000A502B091A602BC01CD0125E030E040E076
:106AD00050E00E94517730936205209361058091C8
:106AE0003D0290913E0290936405809363058091EE
:106AF000C3029091C40290936805809367058091CA
:106B00001E0190911F0190936A0580936905809101
:106B1000B102992790936C0580936B0580919D0736
:106B200090919E07A0919F07B091A0072091960198
:106B3000309197014091980150919901BC01CD018C
:106B40000E94517730936E0520936D0580917706F2
:106B500099279093700580936F0580917F06992700
:106B60009093720580937105809187069927909381
:106B700074058093730580918F069927909376050D
:106B80008093750580911E0290911F02909380055D
:106B900080937F0580911408909115089093840547
:106BA0008093830580911808909119089093860529
:106BB0008093850580911A08992790939205809378
:106BC000910580918D0390918E039093940580930D
:106BD000930580918B0390918C03909396058093FD
:106BE00095058091D503882321F48091D6038823CD
:106BF00021F080915605816003C0809156058E7FFB
:106C0000809356051F910F91FF90EF9008951F9369
:106C1000CF93DF93182FEB018091A8028823A1F472
:106C200011501F3F89F0D0932502C0932402809118
:106C3000240290912502892BD1F7CE018C0F9D1F44
:106C40000E942B17115078F7DF91CF911F91089573
:106C5000CF93DF93809102018D3011F40E94371B96
:106C600010927A00809147029091480290935807C1
:106C7000809357078091450290914602909349076F
:106C80008093480780914302909144029093970724
:106C90008093960720913F0230914002C901880FEE
:106CA000991F880F991F820F931F820F931F909334
:106CB0009207809391072091410230914202C901CD
:106CC000880F991F880F991F820F931F820F931FA0
:106CD0009093A2078093A1078FEC80937A00A2EB98
:106CE000B2E0C1EBD5E097E08991E82FFF27EE0FE6
:106CF000FF1FE952F94F0190F081E02DE259FF4F5B
:106D00001E161F061CF0E0E0F0E005C0EF3FF105A5
:106D100014F0EFEFF0E08C91282F3327E217F30700
:106D200014F4815004C02E173F0714F48F5F8C9326
:106D30009150119697FFD8CF8091ED059927AA27FA
:106D4000BB27BC01CD0124EC39E040E050E00E94BB
:106D5000DD76DC01CB018093D5019093D601A09321
:106D6000D701B093D8018091EE059927AA27BB27B8
:106D7000BC01CD010E94DD76DC01CB018093D10105
:106D80009093D201A093D301B093D401DF91CF911E
:106D90000895A0E0B0E0EFECF6E30C947277882E53
:106DA000C0E0D0E07E016E011092D503469AD093E8
:106DB0001103C0931003D0930F03C0930E03D0931D
:106DC0000B03C0930A03D0931B03C0931A03D09301
:106DD0001903C0931803D0931703C093160310929E
:106DE000BE011092BD01109237020E94283684E63F
:106DF00090E00E9438170E9428368091B90580FFE4
:106E000010C08091140190911501875B934038F474
:106E100080911401909115018E5E924010F40E94B1
:106E2000B51A0FE18AE090E00E9438178091430282
:106E300090914402C80FD91F809147029091480257
:106E4000E80EF91E8091450290914602C80ED91EA7
:106E5000015007FFE7CF9701205F3F4F36952795F9
:106E60003695279530931B0320931A03C60140964D
:106E70009695879596958795909319038093180317
:106E80006096F5E0D695C795FA95E1F7D09317038C
:106E9000C093160390931503809314033093130348
:106EA00020931203882009F441C0809191079091AA
:106EB000920797FF03C0909581959F4F6CE070E01B
:106EC0000E941C779B0170931103609310038091C3
:106ED000A1079091A20797FF03C0909581959F4FBE
:106EE0006CE070E00E941C7770930F0360930E03B8
:106EF00080919E0590919F0590930B0380930A03C8
:106F0000B90184E090E00E94D42C60910E0370914E
:106F10000F0386E090E00E94D42C60910A037091E8
:106F20000B0388E090E00E94D42C65C084E090E0E0
:106F30000E94CF2C909311038093100386E090E081
:106F40000E94CF2C90930F0380930E0388E090E073
:106F50000E94CF2C9C0190930B0380930A03809195
:106F60001003909111038150984050F480910E03CA
:106F700090910F038150984018F421503440D8F17B
:106F800089E29AE09F938F9380EF92E19F938F9392
:106F9000E091BC03F091BD03099580919107909118
:106FA000920797FF03C0909581959F4F6CE070E02A
:106FB0000E941C7770931103609310038091A107C6
:106FC0009091A20797FF03C0909581959F4F6CE029
:106FD00070E00E941C7770930F0360930E03809102
:106FE0009E0590919F0590930B0380930A030F9049
:106FF0000F900F900F901092580710925707109211
:10700000490710924807109297071092960784E656
:1070100090E00E94381780913F02909140029C01BD
:10702000220F331F220F331F280F391F280F391F3C
:1070300030939207209391078091410290914202F0
:107040008C01000F111F000F111F080F191F080FCF
:10705000191F1093A2070093A1078091C805C82E9D
:10706000DD24EE24FF24442737FD4095542FC7012B
:10707000B6010E94DD764B015C01609305037093BD
:10708000060380930703909308039801442737FD74
:107090004095542FC701B6010E94DD76DC01CB017B
:1070A0008093FD029093FE02A093FF02B093000331
:1070B0008092E1029092E202A092E302B092E40296
:1070C0008093D9029093DA02A093DB02B093DC02A2
:1070D0001092D5021092D6021092D7021092D802C6
:1070E0008091160190911701A0911801B09119019A
:1070F0009093A1058093A00510923602109235025C
:107100001092C5021092C6021092C7021092C802D5
:107110008091C3029091C4029093C2028093C102F5
:107120000E94AD6182E390E0909325028093240257
:107130008091ED059927AA27BB27BC01CD0124EC3E
:1071400039E040E050E00E94DD76DC01CB0188565A
:10715000954CAF4FBF4F8093D5019093D601A0932C
:10716000D701B093D8018091EE059927AA27BB27B4
:10717000BC01CD010E94DD76DC01CB018856954C27
:10718000AF4FBF4F8093D1019093D201A093D30111
:10719000B093D40110929B0110929A018091C30286
:1071A0009091C402AA2797FDA095BA2F209196012D
:1071B000309197014091980150919901BC01CD0106
:1071C0000E94DD76DC01CB0180939D0790939E07A2
:1071D000A0939F07B093A0071092BC021092BB022D
:1071E00081E0809301010E94246680917D02846089
:1071F00080937D028FEF80930F081092100880E239
:1072000080931108C2EBD2E0A1EBB5E007E08D91CD
:10721000E82FFF27EE0FFF1FE952F94F8081918180
:1072200082598993015007FFF2CF84E68093B1021F
:1072300080912202882311F0469A579A80911A036E
:1072400090911B0380569940815C9B4228F080916D
:10725000D50381608093D503809118039091190321
:1072600080569940815C9B4228F08091D5038260D2
:107270008093D50380911603909117038C5291400F
:107280008957954028F08091D50384608093D50379
:1072900080911003909111038C529140835C914036
:1072A00028F08091D50388608093D50380910E03E8
:1072B00090910F038C529140835C914028F0809113
:1072C000D50380618093D50380910A0390910B03CD
:1072D000805092408355914028F08091D503806280
:1072E0008093D503ECE0CDB7DEB70C948E77A3E1A5
:1072F000B0E0EDE7F9E30C946C7780911603909180
:1073000017032091430230914402821B930B909308
:1073100097078093960780914D0290914E0297FDBA
:1073200007969C0113E0359527951A95E1F7309360
:1073300058072093570780914B0290914C0297FD7C
:107340000796B3E095958795BA95E1F7909349072D
:1073500080934807309363072093620790935B07FD
:1073600080935A078091910790919207AC01440F46
:10737000551F480F591F20913F0230914002C9010B
:10738000880F991F880F991F820F931F820F931FD9
:10739000480F591F57FF02C04D5F5F4F55954795E6
:1073A0005595479550939207409391078091A10777
:1073B0009091A207AC01440F551F480F591F20910F
:1073C000410230914202C901880F991F880F991F0D
:1073D000820F931F820F931F480F591F57FF02C040
:1073E0004D5F5F4F55954795559547955093A2072B
:1073F0004093A10720913F0230914002C901880FBC
:10740000991F880F991F820F931F820F931F9C0152
:10741000442737FD4095542F8091F5029091F60254
:10742000A091F702B091F802820F931FA41FB51F1D
:107430008093F5029093F602A093F702B093F802BE
:107440002091410230914202C901880F991F880F93
:10745000991F820F931F820F931F9C01442737FDB2
:107460004095542F8091F1029091F202A091F30285
:10747000B091F402820F931FA41FB51F8093F102F5
:107480009093F202A093F302B093F40280916C0700
:1074900090916D0720913F0230914002820F931F1F
:1074A00090936D0780936C078091990790919A074C
:1074B0002091410230914202820F931F90939A07CC
:1074C0008093990780910C0390910D0301969093FE
:1074D0000D0380930C0380919E0590919F05209150
:1074E0000A0330910B03821B930B9C01442737FD49
:1074F0004095542F8091ED029091EE02A091EF0201
:10750000B091F002820F931FA41FB51F8093ED026C
:107510009093EE02A093EF02B093F0028FEC809371
:107520007A00109210012091DD023091DE0240912C
:10753000DF025091E00229873A874B875C87295404
:107540003B46414050402CF028E43BE641E050E00F
:107550000DC089859A85AB85BC85885B9449AE4F03
:10756000BF4F4CF428EB34E94EEF5FEF2D833E83A1
:107570004F83588708C089859A85AB85BC858D83E4
:107580009E83AF83B8872091E5023091E602409157
:10759000E7025091E8022D873E874F87588B295488
:1075A0003B46414050402CF028E43BE641E050E0AF
:1075B0000DC08D859E85AF85B889885B9449AE4F97
:1075C000BF4F4CF428EB34E94EEF5FEF29833A8349
:1075D0004B835C8308C08D859E85AF85B889898380
:1075E0009A83AB83BC83A0919607B0919707BB8B1E
:1075F000AA8BFD01CF01AA2797FDA095BA2FA090D5
:10760000D502B090D602C090D702D090D802A80E72
:10761000B91ECA1EDB1EA092D502B092D602C0923D
:10762000D702D092D802E0909D07F0909E0700917B
:107630009F071091A007E80EF91E0A1F1B1FE0927A
:107640009D07F0929E0700939F071093A007F0916B
:107650009802F98BFF2309F098C180919702882343
:1076600009F093C18091B90586FF8FC180914807C9
:1076700090914907AA2797FDA095BA2FBC01CD018B
:1076800029813A814B815C810E94DD769B01AC01AE
:1076900097FF04C02150384F4F4F5F4FBBE05595C7
:1076A000479537952795BA95D1F78091BD01682EFA
:1076B000772488249924CA01B901A40193010E9466
:1076C000DD76DC01CB018093260390932703A09302
:1076D0002803B0932903B7FF04C08150904FAF4FE8
:1076E000BF4F1C012D01ACE055944794379427946B
:1076F000AA95D1F7209226033092270340922803BF
:10770000509229038091570790915807AA2797FD17
:10771000A095BA2FBC01CD012D813E814F815885A6
:107720000E94DD7697FF04C06150784F8F4F9F4FC6
:10773000FBE09595879577956795FA95D1F7A40124
:1077400093010E94DD76DC01CB0180932A039093A4
:107750002B03A0932C03B0932D03B7FF04C08150DB
:10776000904FAF4FBF4F9C01AD01ECE05595479551
:1077700037952795EA95D1F720932A0330932B0369
:1077800040932C0350932D0380912603909127035F
:107790009093400780933F0780912A0390912B0399
:1077A00090934407809343072219330944095509EC
:1077B00020932A0330932B0340932C0350932D03E3
:1077C000E20EF31E041F151FE0929D07F0929E0724
:1077D00000939F071093A0078091BC018823B1F408
:1077E00057FF04C02F5F3F4F4F4F5F4F5595479551
:1077F00037952795A21AB30AC40AD50AA092D502D2
:10780000B092D602C092D702D092D8022A893B8980
:1078100079010027F7FC0095102F80912A039091A1
:107820002B03A0912C03B0912D03E80EF91E0A1F23
:107830001B1FC801B70129813A814B815C810E94DD
:10784000DD769B01AC0197FF04C02150384F4F4FAC
:107850005F4F6BE055954795379527956A95D1F71A
:107860008091BE01A82EBB24CC24DD24CA01B9011D
:10787000A60195010E94DD76DC01CB0180931E03F9
:1078800090931F03A0932003B0932103B7FF04C07C
:107890008150904FAF4FBF4F3C014D013CE095945C
:1078A0008794779467943A95D1F760921E0370920B
:1078B0001F038092200390922103C801B7012D81FC
:1078C0003E814F8158850E94DD7697FF04C061504C
:1078D000784F8F4F9F4F2BE09595879577956795BC
:1078E0002A95D1F7A60195010E94DD76DC01CB0136
:1078F0008093220390932303A0932403B093250342
:10790000B7FF04C08150904FAF4FBF4FAC01BD01D6
:107910008CE075956795579547958A95D1F7409373
:1079200022035093230360932403709325032A8931
:107930003B8937FF03C0309521953F4F21343105F6
:10794000E4F1D401C30197FE07C0B095A0959095CE
:1079500081959F4FAF4FBF4F81389105A105B1056C
:1079600084F4DB01CA0177FF07C0B095A09590951C
:1079700081959F4FAF4FBF4F81389105A105B1054C
:10798000E4F081E08093BD0218C010924407109289
:1079900043071092400710923F0710922203109263
:1079A0002303109224031092250310921E031092B9
:1079B0001F031092200310922103809122039091C3
:1079C0002303A0912403B0912503BC01CD0124E63B
:1079D00030E040E050E00E945177E0901E03F090CC
:1079E0001F03E21AF30AF0925607E09255078091BE
:1079F0001E0390911F03A0912003B0912103BC01AD
:107A0000CD0124E630E040E050E00E945177DA01F9
:107A1000C90120912203309123038C01021B130B17
:107A200010934B0700934A0780919601909197011C
:107A3000A0919801B0919901BC01CD0128E631E0F7
:107A400040E050E00E94DD7620919D0730919E0736
:107A500040919F075091A0072617370748075907FD
:107A600064F0261B370B480B590B20939D0730936E
:107A70009E0740939F075093A00720919D07309148
:107A80009E0740919F075091A00757FF0CC0260FFB
:107A9000371F481F591F20939D0730939E0740931F
:107AA0009F075093A00760914807709149076E0D9A
:107AB0007F1D9B01442737FD4095542F8091D902AB
:107AC0009091DA02A091DB02B091DC02820F931F49
:107AD000A41FB51F8093D9029093DA02A093DB0212
:107AE000B093DC0280919D0290919E02681B790BFD
:107AF000CB01AA2797FDA095BA2F29853A854B85FA
:107B00005C85820F931FA41FB51F8093DD029093A5
:107B1000DE02A093DF02B093E002C090D101D090CA
:107B2000D201E090D301F090D401C816D906EA063C
:107B3000FB06C4F488EA91E6A0E0B0E08C199D0948
:107B4000AE09BF098093DD029093DE02A093DF02AD
:107B5000B093E0028093D9029093DA02A093DB0203
:107B6000B093DC0222273327A9012C193D094E09C5
:107B70005F098091DD029091DE02A091DF02B09159
:107B8000E00282179307A407B507B4F4D701C60132
:107B9000885A9146A040B0408093DD029093DE0267
:107BA000A093DF02B093E0028093D9029093DA02AF
:107BB000A093DB02B093DC026091570770915807E5
:107BC000600F711F9B01442737FD4095542F809112
:107BD000E1029091E202A091E302B091E402820FEF
:107BE000931FA41FB51F8093E1029093E202A0931C
:107BF000E302B093E40280919B0290919C02681B87
:107C0000790BCB01AA2797FDA095BA2F2D853E852C
:107C10004F855889820F931FA41FB51F8093E502DB
:107C20009093E602A093E702B093E802E090D501BA
:107C3000F090D6010091D7011091D801E816F9060D
:107C40000A071B07C4F488EA91E6A0E0B0E08E19A9
:107C50009F09A00BB10B8093E5029093E602A093DD
:107C6000E702B093E8028093E1029093E202A093CE
:107C7000E302B093E40222273327A9012E193F091A
:107C8000400B510B8091E5029091E602A091E70232
:107C9000B091E80282179307A407B507B4F4D8019E
:107CA000C701885A9146A040B0408093E502909366
:107CB000E602A093E702B093E8028093E10290937A
:107CC000E202A093E302B093E4028091D502909186
:107CD000D602A091D702B091D8028093E902909386
:107CE000EA02A093EB02B093EC028091E50290913E
:107CF000E602A091E702B091E80280930503909319
:107D00000603A0930703B09308038091DD029091CE
:107D1000DE02A091DF02B091E0028093FD02909319
:107D2000FE02A093FF02B09300038091E1029091C4
:107D3000E202A091E302B091E402809301039093E8
:107D40000203A0930303B09304038091D90290919E
:107D5000DA02A091DB02B091DC028093F9029093E9
:107D6000FA02A093FB02B093FC0280911C01909157
:107D70001D0197FD079603E0959587950A95E1F714
:107D8000909358078093570780911A0190911B0197
:107D900097FD079613E0959587951A95E1F79093CF
:107DA00049078093480780914702909148020F97B6
:107DB00034F488E19CEF90935807809357078091A3
:107DC000470290914802079734F480E398EF90932C
:107DD000580780935707209102012A30A9F4809117
:107DE000470290914802835F934034F088EE93E01D
:107DF00090935807809357078091470290914802CB
:107E00008A5F9340DCF014C0809147029091480251
:107E1000815D974034F088EE93E09093580780930B
:107E200057078091470290914802805E974034F056
:107E300080ED97E090935807809357078091450213
:107E4000909146020F9734F488E19CEF9093490794
:107E5000809348078091450290914602079734F439
:107E600080E398EF90934907809348072A30A9F45C
:107E70008091450290914602835F934034F088EEF2
:107E800093E0909349078093480780914502909131
:107E900046028A5F9340DCF014C0809145029091C5
:107EA0004602815D974034F088EE93E09093490755
:107EB000809348078091450290914602805E9740EA
:107EC00034F080ED97E090934907809348076091E4
:107ED000C801662309F4AFC040911C0150911D01F7
:107EE00080912E0390912F03481B590B509335031B
:107EF0004093340320911C0130911D01280F391F3C
:107F000037FF02C02F5F3F4F3595279530932F03E2
:107F100020932E03413851051CF080E890E005C005
:107F200040585F4F34F480E89FEF9093350380937F
:107F3000340340911A0150911B01809130039091BC
:107F40003103481B590B5093330340933203209164
:107F50001A0130911B01280F391F37FF02C02F5F14
:107F60003F4F3595279530933103209330034138A7
:107F700051051CF080E890E005C040585F4F34F494
:107F800080E89FEF9093330380933203462F552769
:107F90008091340390913503849FB001859F700DCB
:107FA000949F700D11249B0177FF02C0215F3F4F0A
:107FB000F4E035952795FA95E1F780915707909170
:107FC0005807820F931F909358078093570780910B
:107FD000320390913303849FD001859FB00D949F0D
:107FE000B00D1124AD019D01B7FF02C0215F3F4FCD
:107FF000E4E035952795EA95E1F78091480790915F
:108000004907820F931F90934907809348078091F7
:108010001C0190911D01860F971F90931D01809365
:108020001C0180911A0190911B01840F951F909360
:108030001B0180931A0100915A0710915B078091F0
:108040003F0790914007101611065CF59C0197FFC1
:1080500004C022273327281B390BC901AA2797FD03
:10806000A095BA2F2091BC01332744275527BC0186
:10807000CD010E94DD769B01AC0197FF04C0215C1D
:108080003F4F4F4F5F4F76E0559547953795279572
:108090007A95D1F78091550790915607820F931FDB
:1080A00027C097FF03C0909581959F4FAA2797FD02
:1080B000A095BA2F2091BC01332744275527BC0136
:1080C000CD010E94DD769B01AC0197FF04C0215CCD
:1080D0003F4F4F4F5F4F66E0559547953795279532
:1080E0006A95D1F78091550790915607821B930BA3
:1080F0009093560780935507E0906207F0906307CE
:1081000080914307909144071E141F045CF59C0165
:1081100097FF04C022273327281B390BC901AA2740
:1081200097FDA095BA2F2091BC01332744275527EE
:10813000BC01CD010E94DD769B01AC0197FF04C01C
:10814000215C3F4F4F4F5F4F96E0559547953795D0
:1081500027959A95D1F780914A0790914B07820F06
:10816000931F27C097FF03C0909581959F4FAA2723
:1081700097FDA095BA2F2091BC013327442755279E
:10818000BC01CD010E94DD769B01AC0197FF04C0CC
:10819000215C3F4F4F4F5F4F86E055954795379590
:1081A00027958A95D1F780914A0790914B07821BBA
:1081B000930B90934B0780934A078091B90587FFF3
:1081C00044C0B989BB2309F040C08091970288233D
:1081D000E1F5E1E0EE16E1E0FE064CF08091570794
:1081E000909158078E0D9F1D805091400DC0F0E07A
:1081F000EF16FFEFFF0664F4809157079091580740
:108200008E0D9F1D80509F4F909358078093570766
:1082100021E0013012074CF0809148079091490706
:10822000800F911F805091400CC03FEF003013072A
:1082300064F48091480790914907800F911F805006
:108240009F4F9093490780934807E2E1CD5E0C94DD
:1082500088778091A802882301F580917D028C7F28
:1082600080937D02AAEDB3E0E6E7F6E09BE0809123
:108270000302882309F48C938D918183128291509B
:10828000389697FFF4CF80910302882359F08091AC
:10829000030281508093030205C080917D028160BA
:1082A00080937D0280916E02882319F010926E02F5
:1082B0000895809370028093720280916C028E7F89
:1082C00080936C0285EA8093BC000895CF93DF937E
:1082D000A2EBB2E0C1EBD5E057E08991E82FFF2790
:1082E000EE0FFF1FE952F94F0190F081E02DE259A6
:1082F000FF4FEF3FF10521F01CF0EFEFF0E004C07D
:10830000F7FF02C0E0E0F0E04C91242F3327E217A2
:10831000F307A9F0CF01821B930B97FD0396959568
:10832000879595958795242F280F2C93822F992731
:10833000E817F90714F4215001C02F5F2C93515016
:10834000119657FFCACF8091BB05883F38F0EFEFF9
:10835000F0E0E81BF109EE54FD4F80818093CE01DF
:108360008091CE01882329F0843618F084E680932A
:10837000CE018091BD05883F38F0EFEFF0E0E81BBB
:10838000F109EE54FD4F80818093CC018091CC01A6
:10839000882329F0843618F084E68093CC018091FC
:1083A000CA05883F38F0EFEFF0E0E81BF109EE5422
:1083B000FD4F80818093C7018091C7018B3010F4FD
:1083C0008AE002C08F3F11F48093C7018091F705C6
:1083D000883F38F0EFEFF0E0E81BF109EE54FD4F75
:1083E000808180936E0780916E07823010F481E067
:1083F00002C08F3F11F480936E078091F905883F8A
:1084000038F0EFEFF0E0E81BF109EE54FD4F80810A
:108410008093940780919407823010F481E002C029
:108420008F3F11F4809394078091E405883F38F0E2
:10843000EFEFF0E0E81BF109EE54FD4F80818093EF
:108440006B078091E505883F38F0EFEFF0E0E81B1F
:10845000F109EE54FD4F8081809345078091E60538
:10846000883F38F0EFEFF0E0E81BF109EE54FD4FE4
:108470008081809373079091BC05983F18F4909386
:10848000CD0109C0EFEFF0E0E91BF109EE54FD4F1B
:1084900080818093CD01983F18F49093CD0109C05D
:1084A000EFEFF0E0E91BF109EE54FD4F808180937E
:1084B000CD018091BF05883F38F0EFEFF0E0E81B79
:1084C000F109EE54FD4F80818093CB018091C1056D
:1084D000883F38F0EFEFF0E0E81BF109EE54FD4F74
:1084E00080818093C9018091C905883F38F0EFEF02
:1084F000F0E0E81BF109EE54FD4F80818093CA0142
:108500008091CB05883F38F0EFEFF0E0E81BF109F0
:10851000EE54FD4F80818093C6018091CC05883F49
:1085200038F0EFEFF0E0E81BF109EE54FD4F8081E9
:108530008093C8018091CD05883F38F0EFEFF0E0DF
:10854000E81BF109EE54FD4F80818093C5018091B5
:10855000CE05883F38F0EFEFF0E0E81BF109EE546C
:10856000FD4F80818093C4018091D405883F38F00D
:10857000EFEFF0E0E81BF109EE54FD4F80818093AE
:10858000C2018091D505883F38F0EFEFF0E0E81B9D
:10859000F109EE54FD4F8081809392028091D605BF
:1085A000883F38F0EFEFF0E0E81BF109EE54FD4FA3
:1085B0008081809391028091D705883F38F0EFEF5A
:1085C000F0E0E81BF109EE54FD4F808180939002AA
:1085D0008091D805883F38F0EFEFF0E0E81BF10913
:1085E000EE54FD4F808180938F028091F205883F89
:1085F00038F0EFEFF0E0E81BF109EE54FD4F808119
:1086000080938E028091F305883F38F0EFEFF0E021
:10861000E81BF109EE54FD4F808180938D0280911B
:10862000F405883F38F0EFEFF0E0E81BF109EE5475
:10863000FD4F808180938C028091F505883F38F052
:10864000EFEFF0E0E81BF109EE54FD4F80818093DD
:108650008B028091D905883F38F0EFEFF0E0E81BFE
:10866000F109EE54FD4F80818093C1018091DD05B9
:10867000883F38F0EFEFF0E0E81BF109EE54FD4FD2
:1086800080818093C0018091E705883F38F0EFEF4B
:10869000F0E0E81BF109EE54FD4F80818093BF01AB
:1086A0008091EA05883F38F0EFEFF0E0E81BF10930
:1086B000EE54FD4F80818093BE018091EB05883F91
:1086C00038F0EFEFF0E0E81BF109EE54FD4F808148
:1086D0008093BD018091EC05883F38F0EFEFF0E02A
:1086E000E81BF109EE54FD4F80818093BC0180911D
:1086F000F105883F38F0EFEFF0E0E81BF109EE54A8
:10870000FD4F80818093BB0180910C06883F38F03B
:10871000EFEFF0E0E81BF109EE54FD4F808180930C
:10872000A4078091C201282F33272F5F3F4F8CE38E
:1087300098E2B9010E941C777093D0016093CF0139
:108740008091C705809395078091C60580935C074B
:1087500090910E06933320F181E080938A02983F36
:1087600058F0EFEFF0E0E91BF109EE54FD4F808186
:10877000823310F410928A028091E2079091E3070D
:1087800097FF08C080918A02882321F08091D50349
:10879000806803C08091D5038F778093D50302C092
:1087A00010928A028091E2079091E30797FF1DC023
:1087B0008091A8028823C9F080918A028823A9F0B9
:1087C00080910801909109018F5F9F4F71F488E9B2
:1087D0009AE3909325028093240280E094EA909398
:1087E00009018093080110928A0280918A028823ED
:1087F00039F08091BE01823D18F4825E8093BE0103
:10880000DF91CF910895A8E1B0E0E9E0F4E40C94A1
:108810006C770E947739309102013C3010F4299A2C
:1088200001C02998E090A902F090AA02FA82E98298
:1088300080915C0799270A96E816F90614F49A8342
:1088400089838091B102843608F05CC080914A032C
:1088500090914B03009731F0019790934B038093D5
:108860004A0307C01092A80280917D028F7E8093F8
:108870007D023A3011F0343110F0289A01C0289866
:1088800080917E0290917F02895E9340C0F1809139
:10889000D105282F33273A83298380917D02806177
:1088A00080937D028091AD05A82FBB27AA0FBB1F27
:1088B000FD01E55FF84F118210828091AE05282FEF
:1088C0003327220F331FC901855F984FFC011182A6
:1088D0001082A952B94F11961C921E922952394FFB
:1088E000D90111961C921E928091B005E82FFF27A6
:1088F000EE0FFF1FE952F94F11821082C9C2109288
:10890000A802C6C28091B1028D3808F4C1C280911C
:108910007D028F7E80937D029091D20582E3989FA5
:10892000C001112490934B0380934A03E981FA819B
:10893000B9978CF08091A802882369F080917E021B
:1089400090917F02FFEF8F3F9F0729F00196909350
:108950007F0280937E0280917E0290917F028F3F02
:10896000910509F038F51092CD021092CE021092C6
:10897000CF021092D0021092C9021092CA02109235
:10898000CB021092CC021092360310923703109251
:108990003803109239031092D5021092D602109229
:1089A000D7021092D8028A3F910549F481E0809362
:1089B000500305C080917D02826080937D0280918A
:1089C000AF05E82FFF27EE0FFF1FE952F94F808117
:1089D0009181813591050CF441C12091A802222397
:1089E00009F03CC18091B005E82FFF27EE0FFF1F73
:1089F000E952F94F808191818C3491050CF406C1C4
:108A000080914C038F5F80934C03893C08F426C10E
:108A10003C3010F4299801C0299A1092A8021092B3
:108A20004C0310927F0210927E023091AD05E32F2D
:108A3000FF27EE0FFF1FE952F94F808191818734A4
:108A40009105B4F48091AE05E82FFF27EE0FFF1FCC
:108A5000E952F94F808191810190F081E02DF7FF7B
:108A600003C0F095E195FF4FE734F1050CF478C0B1
:108A700041E02091AE05A22FBB27AA0FBB1FA95230
:108A8000B94F8D919C9111978734910544F0E32F54
:108A9000FF27EE0FFF1FE952F94F808191818D91E1
:108AA0009C918734910574F08091AD05E82FFF27E4
:108AB000EE0FFF1FE952F94F8081918187349105B4
:108AC0000CF042E0E22FFF27EE0FFF1FE952F94FB3
:108AD000808191818634910574F48091AD05E82FF1
:108AE000FF27EE0FFF1FE952F94F808191818734F4
:108AF00091050CF043E0E22FFF27EE0FFF1FE95234
:108B0000F94F808191818A5B9F4F74F48091AD050C
:108B1000E82FFF27EE0FFF1FE952F94F8081918167
:108B2000873491050CF044E0E22FFF27EE0FFF1F82
:108B3000E952F94F808191818A5B9F4F74F4809153
:108B4000AD05E82FFF27EE0FFF1FE952F94F808197
:108B50009181863491050CF445E0842F0E942C2DE0
:108B60008091AE05E82FFF27EE0FFF1FE952F94F66
:108B7000808191810190F081E02DF7FF03C0F09595
:108B8000E195FF4F7E97BCF48091AD05E82FFF275C
:108B9000EE0FFF1FE952F94F808191818A5B9F4F51
:108BA00054F481E08093F00388EE93E090932502E3
:108BB0008093240253C00E94262E0E94D92C80E06C
:108BC0000E944A078091D3050E94F6728091B905F0
:108BD00080FF10C08091140190911501875B934034
:108BE00038F480911401909115018E5E924010F43A
:108BF0000E94B51A1092220280E00E94C93681E0DC
:108C000080934F0380932202579A1FC080819181E5
:108C1000855B9F4F0CF580914C038F5F80934C03D5
:108C2000893CE0F03C3010F4299801C0299A109258
:108C3000A80210924C0310927F0210927E0281E0F3
:108C40000E94C93681E080934F030E94262E68E778
:108C500070E00E94073602C020934C038091AF055C
:108C6000E82FFF27EE0FFF1FE952F94F8081918116
:108C70008B5A9F4F0CF00CC13091A802E091B005C7
:108C8000332309F0DAC0FF27EE0FFF1FE952F94F37
:108C900080819181855B9F4F0CF0CCC020910F06A5
:108CA000E22FFF27EE0FFF1FE952F94F80819181DC
:108CB000855B9F4F1CF0222309F0BCC080914D03BF
:108CC0008F5F80934D03893C08F4E2C030934D03DD
:108CD0008091D503882309F0A6C080914F03882393
:108CE00009F4A1C081E090E090937F0280937E021E
:108CF00081E08093A80210923603109237031092FD
:108D00003803109239031092D5021092D6021092B5
:108D1000D7021092D8021092D1021092D202109271
:108D2000D3021092D4028091C805E82EFF240027B8
:108D3000112780919107909192079C01442737FD5C
:108D40004095542FC801B7010E94DD76DC01CB01AC
:108D50008093E5029093E602A093E702B093E802C5
:108D60008091A1079091A2079C01442737FD40956F
:108D7000542FC801B7010E94DD76DC01CB0180933E
:108D8000DD029093DE02A093DF02B093E0028091B7
:108D9000050390910603A0910703B0910803809307
:108DA000E1029093E202A093E302B093E402809187
:108DB000FD029091FE02A091FF02B091000380930A
:108DC000D9029093DA02A093DB02B093DC021092F6
:108DD000CD021092CE021092CF021092D0021092C9
:108DE000C9021092CA021092CB021092CC0280915A
:108DF0007D02886080937D0290910D068FE0989FA0
:108E0000900111248091C3029091C402820F931F9C
:108E100068E671E00E941C7797FD0196959587950D
:108E20008093090335C08CED95E0909325028093E3
:108E300024022EC010924D032BC0FF27EE0FFF1F00
:108E4000E952F94F808191818C349105FCF0209199
:108E50000F06E22FFF27EE0FFF1FE952F94F808127
:108E60009181855B9F4F14F0222381F480914E0302
:108E70008F5F80934E03893C58F01092A8021092A5
:108E80004E0310927F0210927E0202C010924E0397
:108E900080919401815080939401809194018F3F3F
:108EA00021F080917D0284FF72C30E94664180910F
:108EB000590390915A039C01220F331F280F391F29
:108EC000C090AD05AC2DBB27AA0FBB1FFD01E95219
:108ED000F94FB090C3054B2D552780819181849F18
:108EE000F001859FF00D949FF00D11242E0F3F1F70
:108EF00037FF02C02D5F3F4FB90175956795759596
:108F00006795A55FB84F8091C405082F11278D91F3
:108F10009C91809F7001819FF00C909FF00C112418
:108F20006E0D7F1D70935A036093590380915B030C
:108F300090915C039C01220F331F280F391FD090A2
:108F4000AE05AD2DBB27AA0FBB1FFD01E952F94F9E
:108F500080819181849FF001859FF00D949FF00D99
:108F600011242E0F3F1F37FF02C02D5F3F4FA90175
:108F70005595479555954795A55FB84F8D919C910F
:108F8000809F7001819FF00C909FF00C11244E0D7A
:108F90005F1D50935C0340935B0380918A0288239A
:108FA00009F448C0CB0177FD0396DC01B595A79580
:108FB000B595A795CA0157FD0396FC01F595E79570
:108FC000F595E7958091EA01682F772767FD709501
:108FD0006A9F90016B9F300D7A9F300D1124809114
:108FE0009103482F552747FD50954E9FC0014F9F35
:108FF000900D5E9F900D1124280F391F37FF02C07E
:10900000295F3F4F03E0359527950A95E1F73093A7
:10901000B0022093AF026E9F90016F9F300D7E9F34
:10902000300D11244A9FC0014B9F900D5A9F900D07
:1090300011243FC080910D06E82FFF27E456FE4F14
:1090400086818093EA01908190939103A82FBB279A
:10905000A7FDB095A69F9001A79F300DB69F300D3C
:109060001124E92FFF27E7FDF095E49FC001E59F5C
:10907000900DF49F900D1124280F391F37FF02C067
:10908000295F3F4F13E0359527951A95E1F7309307
:10909000B0022093AF02A49F9001A59F300DB49F12
:1090A000300D1124E69FC001E79F900DF69F900DB3
:1090B0001124281B390B37FF02C0295F3F4FF3E013
:1090C00035952795FA95E1F73093AE022093AD02DE
:1090D0008091B005E82FFF27EE0FFF1FE952F94FEF
:1090E00080819181909581959F4F9093AC02809360
:1090F000AB028330910514F0029705C00FEF8E3F4D
:10910000900734F402969093AC028093AB0204C0B3
:109110001092AC021092AB0280918D0390918E035D
:109120002091890330918A03820F931F0091AF022F
:109130001091B002081B190B1093B0020093AF02FC
:1091400080918B0390918C03209187033091880349
:10915000820F931F8090AD029090AE02881A990AF8
:109160009092AE028092AD028091AF05E82FFF276A
:10917000EE0FFF1FE952F94FE080F18028E730E061
:10918000E20EF31EF092AA02E092A9028091C701BA
:109190009927AA2797FDA095BA2FBC01CD010E945F
:1091A0005176DC01CB0120E030E040E251E4BC012B
:1091B000CD010E94BF75DC01CB01BC01CD010E9435
:1091C0002376DC01CB0180939B078091C6018093BD
:1091D00074078091C5019927AA2797FDA095BA2FFA
:1091E000BC01CD010E945176DC01CB0120E030E0D2
:1091F00040E251E4BC01CD010E94BF75DC01CB010E
:10920000BC01CD010E942376DC01CB0180934F0786
:109210008091C401809364078091FC0380FF59C052
:109220008091A407813808F454C08091F5039927F0
:1092300087FD90952B2D3327829FA001839F500D92
:10924000929F500D1124040F151F1093B00200932C
:10925000AF028091F603992787FD9095829FB00118
:10926000839F700D929F700D1124860E971E909211
:10927000AE028092AD028091F703282F332727FD9D
:1092800030958091AB029091AC02820F931F909326
:10929000AC028093AB028091F903282F332727FD7E
:1092A00030958091BE059927289FD001299FB00D48
:1092B000389FB00D1124B0939B01A0939A01809127
:1092C000F80399278E159F0524F49093AA028093A2
:1092D000A9028091A9029091AA0297FF04C010925E
:1092E000AA021092A9028091B90582FF02C01092D1
:1092F00074074091AF025091B002CA0157FD039626
:109300009C01359527953595279537FF03C03095F6
:1093100021953F4F8091820290918302821793079B
:10932000B4F4CA0157FF03C0909581959F4F97FDF4
:10933000039695958795959587959093830280934D
:1093400082028536910544F084E690E001C00197E1
:1093500090938302809382024091AD025091AE02BD
:10936000CA0157FD03969C0135952795359527959C
:1093700037FF03C0309521953F4F80918002909137
:10938000810282179307B4F4CA0157FF03C0909576
:1093900081959F4F97FD0396959587959595879510
:1093A00090938102809380028536910544F084E693
:1093B00090E001C001979093810280938002809198
:1093C0007D0284FF08C010928302109282021092E4
:1093D000810210928002ED2DFF27EE0FFF1FE95250
:1093E000F94F4091E805242F332780819181281778
:1093F000390744F48091100682FF04C081E0809315
:10940000960213C0ED2DFF27EE0FFF1FE952F94F13
:10941000842F99272091E905821B910920813181B0
:109420002817390714F4109296024091AE05E42FE4
:10943000FF27EE0FFF1FE952F94F5091E805852FE6
:10944000992722273327281B390B80819181821786
:10945000930744F48091100683FF04C081E0809359
:10946000950216C080919502882391F0E42FFF2782
:10947000EE0FFF1FE952F94F8091E9059927851BEF
:109480009109208131818217930714F4109295027B
:10949000EC2DFF27EE0FFF1FE952F94F4091E80531
:1094A000242F3327808191812817390744F4809134
:1094B000100680FF04C081E08093930217C0809162
:1094C0009302882399F0EC2DFF27EE0FFF1FE9523E
:1094D000F94F842F99272091E905821B910920815A
:1094E00031812817390714F4109293024091AD0589
:1094F000E42FFF27EE0FFF1FE952F94F5091E805C7
:10950000852F992722273327281B390B80819181AA
:109510008217930744F48091100681FF04C081E014
:109520008093940216C080919402882391F0E42FD6
:10953000FF27EE0FFF1FE952F94F8091E9059927A8
:10954000851B9109208131818217930714F41092B1
:10955000940280919602882319F4809195028111DA
:1095600081E08093970280919302882321F4809177
:109570009402882351F081E0809398021092970220
:10958000109296021092950202C0809398028091E8
:109590009702882321F480919802882369F08091B2
:1095A000E7059927E981FA818E179F0714F49A83BA
:1095B000898381E08093BD0280917D0284FF1AC07F
:1095C0001092AC021092AB021092B0021092AF0255
:1095D0001092AE021092AD029AE590939B0788E735
:1095E0008093740790934F078093640710929702BB
:1095F000109298028091670790916807A09169077F
:10960000B0916A072091050330910603409107034A
:1096100050910803820F931FA41FB51F8093670703
:1096200090936807A0936907B0936A0780916F07CA
:1096300090917007A0917107B09172072090FD0280
:109640003090FE024090FF0250900003820D931D67
:10965000A41DB51D80936F0790937007A0937107A9
:10966000B093720780915E0790915F07A0916007A9
:10967000B0916107E0900103F090020300910303B1
:1096800010910403EB82FC820D831E838E0D9F1DBF
:10969000A01FB11F80935E0790935F07A0936007A0
:1096A000B09361078091500790915107A0915207A4
:1096B000B0915307E090F902F090FA020091FB029A
:1096C0001091FC02EF82F88609871A878E0D9F1D84
:1096D000A01FB11F8093500790935107A09352078A
:1096E000B0935307F0909802FB86FF2029F48091F5
:1096F0009702882309F460C01092F5021092F602D6
:109700001092F7021092F8021092F1021092F202F7
:109710001092F3021092F4021092670710926807F9
:109720001092690710926A0710926F0710927007E3
:10973000109271071092720710925E0710925F07E5
:109740001092600710926107109250071092510713
:1097500010925207109253078091E5029091E60211
:10976000A091E702B091E8028093E1029093E202B7
:10977000A093E302B093E4028091DD029091DE02B7
:10978000A091DF02B091E0028093D9029093DA02B7
:10979000A093DB02B093DC021092340210923302E9
:1097A00010929C0210929B0210929E0210929D02B7
:1097B0000B85002309F0F2C180919702882309F0FC
:1097C000EDC180919E0590919F05815092402CF4AF
:1097D0008091A802882309F4E1C190900F08A0901D
:1097E000C8056091910770919207788F6F8B809177
:1097F000A1079091A2079A8B898B9FEF991609F484
:10980000D9C0BB24CC24DD24CA01B901A60195012D
:109810000E94517779018A01EF89F88DCF01AA273B
:1098200097FDA095BA2FE81AF90A0A0B1B0BC20183
:10983000B101A60195010E94517759016A01298958
:109840003A89C901AA2797FDA095BA2FA81AB90A83
:10985000CA0ADB0A292C332427FC3094432C532CCE
:10986000C801B701A20191010E94DD7697FF04C0F3
:1098700061507E4F8F4F9F4F3B014C0109E0959403
:109880008794779467940A95D1F7C601B501A20130
:1098900091010E94DD7697FF04C061507E4F8F4F8B
:1098A0009F4F5B016C0119E0D594C794B794A794BE
:1098B0001A95D1F7809182029091830281349105AB
:1098C0003CF4809180029091810281349105D4F022
:1098D000D401C30197FE03C00196A11DB11D3C0137
:1098E0004D019594879477946794D601C501D7FE6E
:1098F00003C00196A11DB11D5C016D01D594C794F3
:10990000B794A7948091B005E82FFF27EE0FFF1FB3
:10991000E952F94F808191810190F081E02DF7FFAC
:1099200003C0F095E195FF4F7A97A4F0C401B3010D
:1099300023E030E040E050E00E94517739014A01D5
:10994000C601B50123E030E040E050E00E945177CD
:1099500059016A0180911108282F332727FD30957E
:10996000432F532F261537054805590514F439019F
:109970004A01992787FD9095909581959F4FAA2739
:1099800097FDA095BA2F681679068A069B0614F4EF
:109990003C014D012A153B054C055D0514F45901A8
:1099A0006A01A816B906CA06DB060CF0CFC05C0136
:1099B0006D01CCC0EA2CFF2400271127CA01B90190
:1099C000A80197010E94517739014A014F89588DAA
:1099D000CA01AA2797FDA095BA2F681A790A8A0AA0
:1099E0009B0AC201B101A80197010E945177590158
:1099F0006A0169897A89CB01AA2797FDA095BA2FB8
:109A0000A81AB90ACA0ADB0AD401C30197FE03C027
:109A10000F96A11DB11D3C014D01F4E09594879472
:109A200077946794FA95D1F7D601C501D7FE03C0A4
:109A30000F96A11DB11D5C016D01E4E0D594C794A2
:109A4000B794A794EA95D1F780918202909183020E
:109A5000813491053CF4809180029091810281349F
:109A60009105A4F0C401B30123E030E040E050E0F0
:109A70000E94517739014A01C601B50123E030E067
:109A800040E050E00E94517759016A018091B00591
:109A9000E82FFF27EE0FFF1FE952F94F80819181D8
:109AA0000190F081E02DF7FF03C0F095E195FF4FA5
:109AB0007A97A4F0C401B30123E030E040E050E025
:109AC0000E94517739014A01C601B50123E030E017
:109AD00040E050E00E94517759016A0171E2671637
:109AE0007104810491042CF070E2672E712C812C9A
:109AF000912C80EE68168FEF78068FEF88068FEF37
:109B0000980644F460EE662E6FEF762E6FEF862E89
:109B10006FEF962E91E2A916B104C104D1042CF086
:109B200050E2A52EB12CC12CD12CA0EEAA16AFEF7D
:109B3000BA06AFEFCA06AFEFDA0644F440EEA42E41
:109B40004FEFB42E4FEFC42E4FEFD42E8091E5028D
:109B50009091E602A091E702B091E8028619970978
:109B6000A809B9098093E5029093E602A093E70261
:109B7000B093E8028091DD029091DE02A091DF02B5
:109B8000B091E0028A199B09AC09BD098093DD02FE
:109B90009093DE02A093DF02B093E0028091330243
:109BA000909134028F3F910509F008F4C4C5BB853C
:109BB000BB2309F04EC580919702882309F049C55F
:109BC0008091BD02882309F044C5E091F005EC873F
:109BD000EE2309F43EC58091670790916807A09134
:109BE0006907B0916A07B7FF04C081509F4FAF4F1C
:109BF000BF4FE92EFA2E0B2F112707FD1A95E09281
:109C00006707F09268070093690710936A078091CD
:109C10006F0790917007A0917107B0917207B7FF1D
:109C200004C081509F4FAF4FBF4F892F9A2FAB2F4A
:109C3000BB27A7FDBA958D879E87AF87B88B80938A
:109C40006F0790937007A0937107B093720780918C
:109C5000C805A82EBB24CC24DD242091F502309128
:109C6000F6024091F7025091F802C601B5010E9438
:109C7000DD7697FF04C061507F4F8F4F9F4F672E57
:109C8000782E892E992487FC9A946092F50270921E
:109C9000F6028092F7029092F8022091F102309140
:109CA000F2024091F3025091F402C601B5010E9404
:109CB000DD7697FF04C061507F4F8F4F9F4F272E57
:109CC000382E492E552447FC5A942092F1023092A6
:109CD000F2024092F3025092F4028091ED029091D0
:109CE000EE02A091EF02B091F002B7FF04C08150E4
:109CF0009F4FAF4FBF4F892F9A2FAB2FBB27A7FD89
:109D0000BA958093ED029093EE02A093EF02B09388
:109D1000F002D801C70186199709A809B9098093EB
:109D2000420390934303A0934403B09345032091CF
:109D3000EF05E22EFF2400271127BC01CD01A80169
:109D400097010E94517759016A0120935103309382
:109D5000520340935303509354038D859E85AF85E2
:109D6000B88982199309A409B50980934603909391
:109D70004703A0934803B0934903BC01CD01A80158
:109D800097010E94517720935503309356034093D7
:109D9000570350935803D601C501D7FE04C0815024
:109DA0009F4FAF4FBF4F892F9A2FAB2FBB27A7FDD8
:109DB000BA9590939C0280939B0257FF04C0215058
:109DC0003F4F4F4F5F4FBB2757FDBA95A52F942F9D
:109DD000832F90939E0280939D02809182029091A6
:109DE000830281349105DCF480918002909181029C
:109DF00081349105A4F48091B005E82FFF27EE0F80
:109E0000FF1FE952F94F808191810190F081E02D8F
:109E1000F7FF03C0F095E195FF4F7A97E4F080914A
:109E20000F088F3FC1F480919B0290919C0297FD97
:109E300001969595879590939C0280939B028091C3
:109E40009D0290919E0297FD01969595879590931E
:109E50009E0280939D0280915E0790915F07A09182
:109E60006007B0916107B7FF04C081509F4FAF4FAB
:109E7000BF4F892F9A2FAB2FBB27A7FDBA95809391
:109E80005E0790935F07A0936007B093610780918E
:109E9000500790915107A0915207B0915307B7FF17
:109EA00004C081509F4FAF4FBF4F892F9A2FAB2FC8
:109EB000BB27A7FDBA958093500790935107A093B5
:109EC0005207B09353078091050390910603A09128
:109ED0000703B09108032B813C814D815E81281BD3
:109EE000390B4A0B5B0B20933A0330933B034093AF
:109EF0003C0350933D038091FD029091FE02A0919E
:109F0000FF02B0910003EF80F88409851A85E81AF2
:109F1000F90A0A0B1B0BE0923E03F0923F030093F9
:109F20004003109341032093420330934303409333
:109F3000440350934503E0924603F0924703009395
:109F40004803109349038091E1029091E202A091AD
:109F5000E302B091E402821B930BA40BB50B809338
:109F6000E1029093E202A093E302B093E4028091B5
:109F7000D9029091DA02A091DB02B091DC028E1935
:109F80009F09A00BB10B8093D9029093DA02A093A2
:109F9000DB02B093DC02FC85FF23E1F02091BB02E1
:109FA0003091BC02213831054CF08091160390911C
:109FB00017030196909317038093160320583F4F81
:109FC0004CF4809116039091170301979093170317
:109FD000809316031092BC021092BB0281E090E0C5
:109FE00090935E0380935D03E0904203F0904303FF
:109FF0000091440310914503D801C70117FF07C022
:10A0000088279927DC018E199F09A00BB10B81507D
:10A010009240A040B04034F084E090E090935E0322
:10A0200080935D038091630390916403A091650325
:10A03000B0916603209167073091680740916907E6
:10A0400050916A07821B930BA40BB50B815E914B59
:10A05000AF4FBF4F8F539C49A040B04028F0809134
:10A06000100889310CF4FFC041E0E41640E1F40629
:10A0700040E0040740E014070CF473C080915F03D4
:10A08000882309F46AC0D801C70117FF07C08827D1
:10A090009927DC018E199F09A00BB10B9C01AD0122
:10A0A000B7FF04C021503E4F4F4F5F4FF9E0559529
:10A0B000479537952795FA95D1F780915D03909153
:10A0C0005E03820F931F90935E0380935D03D8011C
:10A0D000C70117FF03C00796A11DB11DE3E0B595A9
:10A0E000A79597958795EA95D1F78093510390931B
:10A0F0005203A0935303B093540389589341A04053
:10A10000B04064F088E893E1A0E0B0E080935103B0
:10A1100090935203A0935303B0935403209151039F
:10A1200030915203409153035091540357FF04C0A0
:10A1300021503F4F4F4F5F4F232F342F452F55272F
:10A1400047FD5A9580919B0290919C02820F931F2C
:10A1500090939C0280939B0206C081E080935F03F2
:10A1600002C010925F0360E0E61660EFF6066FEF44
:10A1700006076FEF16070CF073C080916003882309
:10A1800009F46AC0D801C70117FF07C088279927BB
:10A19000DC018E199F09A00BB10B9C01AD01B7FF2B
:10A1A00004C021503E4F4F4F5F4F69E05595479592
:10A1B000379527956A95D1F780915D0390915E035D
:10A1C000820F931F90935E0380935D03D801C701B4
:10A1D00017FF03C00796A11DB11D23E0B595A795F4
:10A1E000979587952A95D1F78093510390935203C1
:10A1F000A0935303B093540388579C4EAF4FBF4F67
:10A2000064F488E79CEEAFEFBFEF80935103909327
:10A210005203A0935303B093540320915103309100
:10A220005203409153035091540357FF04C02150EF
:10A230003F4F4F4F5F4F232F342F452F552747FD5B
:10A240005A9580919B0290919C02820F931F90934C
:10A250009C0280939B0211C081E0809360030DC03B
:10A26000109260030AC010925E0310925D0388EEA4
:10A2700093E09093DA018093D9018C85282F3327BE
:10A2800080915D0390915E032817390724F4309381
:10A290005E0320935D0310911008112379F0212FA4
:10A2A000332727FD309580915D0390915E03281739
:10A2B000390724F430935E0320935D0340914203F9
:10A2C0005091430360914403709145034138510517
:10A2D0006105710574F080911A0390911B03209120
:10A2E0005D0330915E03820F931F90931B03809355
:10A2F0001A0340585F4F6F4F7F4F74F480911A03D9
:10A3000090911B0320915D0330915E03821B930BA0
:10A3100090931B0380931A0381E090E090935E0377
:10A3200080935D03C0904603D0904703E0904803BC
:10A33000F0904903D701C601F7FE07C08827992787
:10A34000DC018C199D09AE09BF0981509240A040E3
:10A35000B04034F084E090E090935E0380935D031E
:10A360008091670390916803A0916903B0916A039B
:10A3700020916F07309170074091710750917207DB
:10A38000821B930BA40BB50B815E914BAF4FBF4F5C
:10A390008F539C49A040B04018F019310CF4FFC015
:10A3A00001E0C01600E1D00600E0E00600E0F006A3
:10A3B0000CF473C080916103882309F46AC0D7014B
:10A3C000C601F7FE07C088279927DC018C199D0973
:10A3D000AE09BF099C01AD01B7FF04C021503E4F3B
:10A3E0004F4F5F4F09E055954795379527950A954B
:10A3F000D1F780915D0390915E03820F931F90933C
:10A400005E0380935D03D701C601F7FE03C0079684
:10A41000A11DB11D13E0B595A795979587951A9540
:10A42000D1F78093550390935603A0935703B093AD
:10A43000580389589341A040B04064F088E893E104
:10A44000A0E0B0E08093550390935603A093570388
:10A45000B093580320915503309156034091570310
:10A460005091580357FF04C021503F4F4F4F5F4F4B
:10A47000232F342F452F552747FD5A9580919D0254
:10A4800090919E02820F931F90939E0280939D0253
:10A4900006C081E08093610302C01092610320E056
:10A4A000C21620EFD2062FEFE2062FEFF2060CF0D5
:10A4B00073C080916203882309F46AC0D701C60182
:10A4C000F7FE07C088279927DC018C199D09AE0982
:10A4D000BF099C01AD01B7FF04C021503E4F4F4F53
:10A4E0005F4FE9E05595479537952795EA95D1F760
:10A4F00080915D0390915E03820F931F90935E03A2
:10A5000080935D03D701C601F7FE03C00796A11D26
:10A51000B11D73E0B595A795979587957A95D1F775
:10A520008093550390935603A0935703B093580319
:10A5300088579C4EAF4FBF4F64F488E79CEEAFEF57
:10A54000BFEF8093550390935603A0935703B093A6
:10A550005803209155033091560340915703509171
:10A56000580357FF04C021503F4F4F4F5F4F232FD9
:10A57000342F452F552747FD5A9580919D02909184
:10A580009E02820F931F90939E0280939D0211C0A2
:10A5900081E0809362030DC0109262030AC01092A2
:10A5A0005E0310925D0388EE93E09093DA0180934E
:10A5B000D9014C85242F332780915D0390915E0350
:10A5C0002817390724F430935E0320935D038091AC
:10A5D0001008882379F0282F332727FD30958091A4
:10A5E0005D0390915E032817390724F430935E03CE
:10A5F00020935D03409146035091470360914803C7
:10A6000070914903413851056105710574F08091DD
:10A6100018039091190320915D0330915E03820F1E
:10A62000931F909319038093180340585F4F6F4F07
:10A630007F4FCCF4809118039091190320915D0312
:10A6400030915E03821B930B909319038093180340
:10A650000AC010929E0210929D0210929C021092CB
:10A660009B021092BD0280917407882341F41092DE
:10A670009E0210929D0210929C0210929B02809169
:10A68000670790916807A0916907B0916A07809366
:10A69000630390936403A0936503B0936603809172
:10A6A0006F0790917007A0917107B0917207809326
:10A6B000670390936803A0936903B0936A031092B1
:10A6C000F5021092F6021092F7021092F802109220
:10A6D000F1021092F2021092F3021092F402109220
:10A6E000ED021092EE021092EF021092F002109220
:10A6F0006707109268071092690710926A07109214
:10A700006F071092700710927107109272071092E3
:10A710005E0710925F071092600710926107109217
:10A72000500710925107109252071092530710923F
:10A73000340210923302E090AB02F090AC02C701F9
:10A74000F7FE04C0882799278E199F0940976CF05F
:10A7500088EE93E09093DA018093D9018091B90556
:10A7600084FD03C081E0809350031091C505A12EA4
:10A77000BB24CC24DD24B701882777FD8095982F52
:10A780009701F7FE04C0222733272E193F094427DB
:10A7900037FD4095542F0E94DD769B01AC01C60128
:10A7A000B5010E94DD7697FF04C061507E4F8F4F48
:10A7B0009F4F59E095958795779567955A95D1F76D
:10A7C0009B01812F99278E9DD0018F9DB00D9E9D5D
:10A7D000B00D1124CD01B7FD0396959587959595FC
:10A7E0008795280F391F442737FD4095542F209314
:10A7F00036033093370340933803509339038091E5
:10A80000D5029091D602A091D702B091D802821BB6
:10A81000930BA40BB50B8093D5029093D602A09313
:10A82000D702B093D8028155934CA040B04064F059
:10A8300080E593ECA0E0B0E08093D5029093D6023F
:10A84000A093D702B093D8028091D5029091D602FE
:10A85000A091D702B091D802805B9C43AF4FBF4F0D
:10A8600064F480EB9CE3AFEFBFEF8093D50290934D
:10A87000D602A093D702B093D8024090C302509062
:10A88000C4024114510409F478C18091B90583FFD1
:10A8900074C18091050390910603A0910703B091C4
:10A8A0000803B7FF04C081509E4FAF4FBF4F39E040
:10A8B000B595A795979587953A95D1F76C0197FF30
:10A8C00004C0D094C194D108D3948091FD0290919A
:10A8D000FE02A091FF02B0910003B7FF04C08150B7
:10A8E0009E4FAF4FBF4F29E0B595A7959795879598
:10A8F0002A95D1F7BC0197FF03C0709561957F4FF2
:10A90000C616D7060CF46B01B601D7FE02C0695F0C
:10A910007F4F3B0183E0759467948A95E1F702E0ED
:10A92000E02EF12C6E0C7F1C0CE112E0400E511E4B
:10A9300072010027F7FC0095102F24EE3DEF420E28
:10A94000531E80919D0790919E07A0919F07B09103
:10A95000A0078090960190909701A0909801B090E8
:10A960009901BC01CD01A50194010E945177E21A21
:10A97000F30A040B150BC801B70128E631E040E0EB
:10A9800050E00E945177DC01CB011CE4E12E1FEF67
:10A99000F12EE80EF91E0091D9011091DA0101158E
:10A9A000110589F539E1C316D1046CF58091BB021C
:10A9B0009091BC028E0D9F1D9093BC028093BB02B0
:10A9C000809150038823F9F0C201AA2797FDA09532
:10A9D000BA2FBC01CD01A50194010E94DD76DC01F6
:10A9E000CB0180939D0790939E07A0939F07B09300
:10A9F000A007BC01CD010E9451773093C202209381
:10AA0000C10210925003C701B4E0880F991FBA9594
:10AA1000E1F7B3010E941C77CB01AA2797FDA0950F
:10AA2000BA2F20919D0730919E0740919F0750912A
:10AA3000A007280F391F4A1F5B1F20939D073093E3
:10AA40009E0740939F075093A007F090CA016F2D77
:10AA50007727C69EC001C79E900DD69E900D1124EB
:10AA600097FD4F966C01A5E0D594C794AA95E1F7A0
:10AA70006C197D096B0177FD7AC00115110509F08C
:10AA80006FC00091820210918302809180029091A8
:10AA90008102080F191F17FF02C0095F1F4FF3E063
:10AAA00015950795FA95E1F7005C1F4FCA01B901AA
:10AAB000A50194010E945177DA01C9012091C102D8
:10AAC0003091C202442737FD4095542F821B930BCF
:10AAD000A40BB50B845E9D4FAF4FBF4FBC01CD01A2
:10AAE00028E631E040E050E00E945177DC01CB01E4
:10AAF000845B90408C9DA0018D9D500D9C9D500DC0
:10AB00001124CA01B8010E941C7783E0F89E6001FD
:10AB10001124C616D70614F4B60108C08827992751
:10AB20008C199D09681779070CF4BC019B01442717
:10AB300037FD4095542F8091D5029091D602A09177
:10AB4000D702B091D802820F931FA41FB51F809324
:10AB5000D5029093D602A093D702B093D8020DC02D
:10AB6000015010401093DA010093D90106C084EF20
:10AB700091E09093DA018093D9018091BD028823FE
:10AB800081F01092C9021092CA021092CB02109268
:10AB9000CC021092CD021092CE021092CF021092EF
:10ABA000D002F0909802FF20F1F480917407282FD2
:10ABB0003327442755278091050390910603A091E0
:10ABC0000703B0910803BC01CD010E94DD76DC01D2
:10ABD000CB01BC01CD0128EF3AE240E050E00E94F9
:10ABE0005177390102C066247724E0909702EE2065
:10ABF000F1F480917407282F33274427552780913B
:10AC0000FD029091FE02A091FF02B0910003BC01F1
:10AC1000CD010E94DD76DC01CB01BC01CD0128EF26
:10AC20003AE240E050E00E945177290102C04424FA
:10AC3000552480914A0790914B07893C91051CF05F
:10AC400088EC90E005C088539F4F34F488E39FEF71
:10AC500090934B0780934A07809155079091560730
:10AC6000893C91051CF088EC90E005C088539F4F0B
:10AC700034F488E39FEF90935607809355078091B3
:10AC8000570790915807AA2797FDA095BA2F2091B2
:10AC90009B07A22EBB24CC24DD24BC01CD01A60140
:10ACA00095010E94DD769B01AC0180914A0790914D
:10ACB0004B07AA2797FDA095BA2FE7E0880F991FA9
:10ACC000AA1FBB1FEA95D1F7280F391F4A1F5B1F28
:10ACD00057FF04C0215C3F4F4F4F5F4F76E05595C3
:10ACE0004795379527957A95D1F78301020F131F62
:10ACF0001093580700935707809148079091490790
:10AD0000AA2797FDA095BA2FBC01CD01A6019501F8
:10AD10000E94DD769B01AC0180915507909156070A
:10AD2000AA2797FDA095BA2F67E0880F991FAA1F41
:10AD3000BB1F6A95D1F7280F391F4A1F5B1F57FFAA
:10AD400004C0215C3F4F4F4F5F4F96E055954795AC
:10AD5000379527959A95D1F74201820E931E9092CE
:10AD60004907809248078091960790919707880F2E
:10AD7000991FAA2797FDA095BA2F20914F07332737
:10AD800044275527BC01CD010E94DD765B016C0193
:10AD900097FF08C08FE390E0A0E0B0E0A80EB91ED6
:10ADA000CA1EDB1E86E0D594C794B794A7948A95F3
:10ADB000D1F780916407282F3327442755278091A6
:10ADC000E9029091EA02A091EB02B091EC02BC0181
:10ADD000CD010E94DD76DC01CB01BC01CD0120EF6D
:10ADE00035E540E050E00E945177B501620F731FD6
:10ADF00070939707609396070150104134F080E0FC
:10AE000090E190935807809357078091570790914E
:10AE100058078050904F34F480E090EF909358079B
:10AE200080935707B1E08B16B0E19B0634F080E0C9
:10AE300090E190934907809348078091480790914B
:10AE400049078050904F34F480E090EF9093490789
:10AE5000809348076150704134F080E090E1909316
:10AE60009707809396078091960790919707805057
:10AE7000904F34F480E090EF90939707809396077B
:10AE800080910001482F552780911E0190911F014C
:10AE90004817590794F420911E0130911F016981D0
:10AEA0007A81649FC001659F900D749F900D11245D
:10AEB000B9010E9408777A83698389819A81880F12
:10AEC000991F880F991F9A8389834091B90540FF84
:10AED000BDC6EE2009F0BAC6FF2009F0B7C6AA2405
:10AEE000BB2445018091990290919A02909382052A
:10AEF0008093810520911C0330911D03211531059C
:10AF000009F03FC080911401909115018959934037
:10AF100058F087B5803F20F480913702815011C0EE
:10AF200081E0809376034EC08091140190911501C9
:10AF30008436910508F587B58031D0F080913702CD
:10AF40008F5F809337029FE08902900111248091E6
:10AF5000A805821B87BD8CE291E090932502809327
:10AF600024028EE591E090931D0380931C032AC078
:10AF700081E08093750326C0F0927503F09276030A
:10AF800021C08091A3029091A402A091A502B0914A
:10AF9000A60214E0880F991FAA1FBB1F1A95D1F7AC
:10AFA0008093380290933902A0933A02B0933B0207
:10AFB000B0923602A09235022150304030931D03EA
:10AFC00020931C032091CD0141FF24C02233D8F4EB
:10AFD0008091DF0181508093DF018F3FD9F510927E
:10AFE000BE028091A3029091A402A091A502B0910B
:10AFF000A60280939F029093A002A093A102B09317
:10B00000A20281E004C081E08093BE0288EC8093BC
:10B01000DF0120C080919A0190919B01820F911DC8
:10B020002091BE053327829FF001839FF00D929FF0
:10B03000F00D1124CF01AA2797FDA095BA2F809378
:10B040009F029093A002A093A102B093A20281E07C
:10B050008093BE028091050390910603A09107039F
:10B06000B0910803E0909601F0909701009198014B
:10B0700010919901BC01CD01A80197010E9451775F
:10B0800059016A018091FD029091FE02A091FF0298
:10B09000B0910003BC01CD01A80197010E94517736
:10B0A000B901C5010E9406758C01CC9714F00CE320
:10B0B00010E0C8010E9427698C0180E2809395010D
:10B0C0008091BE02882309F447C480917D029927AC
:10B0D0009C012071307084FD3FC46091120660FDB8
:10B0E00004C08091B90581FD0CC0C980DA8030931D
:10B0F0006C0320936B0380917D02806C80937D02B2
:10B1000099C180917D0281FF6BC14091DB0150911B
:10B11000DC01CA010F962091A9023091AA02821780
:10B120009307BCF580917503882399F580917D0282
:10B1300087FF15C080917D028F7780937D0280917B
:10B14000A3029091A402A091A502B091A6028093BF
:10B150009F029093A002A093A102B093A2028091BB
:10B160007D02806480937D02241B350B2F5030407C
:10B1700037FF03C0309521953F4F80916B0390912D
:10B180006C03820F931F90936C0380936B038BE28D
:10B190006EC0CA010F9728173907BCF58091760356
:10B1A000882399F580917D0286FF15C080917D02EC
:10B1B0008F7B80937D028091A3029091A402A09145
:10B1C000A502B091A60280939F029093A002A09343
:10B1D000A102B093A20280917D02806880937D02DB
:10B1E000241B350B215F3F4F37FF03C0309521955E
:10B1F0003F4F80916B0390916C03821B930B909354
:10B200006C0380936B038DE232C080917D02807C61
:10B2100069F180917D028F7380937D0210926C039F
:10B2200010926B032091A3023091A4024091A502D9
:10B230005091A60220939F023093A0024093A10256
:10B240005093A20261FF06C084EF91E09093250223
:10B25000809324028091A702882341F4233331058F
:10B26000410551051CF081E08093A7028DE3809396
:10B27000950120916B0330916C03C90137FF04C025
:10B2800088279927821B930B815092400CF491C020
:10B290008091BE059927289F7001299FF00C389F47
:10B2A000F00C1124C70160E075E00E941C77CB010F
:10B2B000AA2797FDA095BA2F20919F023091A00256
:10B2C0004091A1025091A202280F391F4A1F5B1F13
:10B2D00020939F023093A0024093A1025093A202B8
:10B2E00010926C0310926B03C090A302D090A40242
:10B2F000E090A502F090A602D701C60180509440CC
:10B30000A040B04082179307A407B5075CF4D701AB
:10B31000C60180509C4FAF4FBF4F281739074A07CF
:10B320005B0744F080939F029093A002A093A10238
:10B33000B093A2028091120681FF06C084E690E0DD
:10B3400090932502809324028091C205882389F579
:10B350004091990250919A0257FF02C04D5F5F4F92
:10B36000559547955595479580911E0190911F01E0
:10B37000209100013327489FB001499F700D589FCD
:10B38000700D1124CB01B9010E941C777093DC0170
:10B390006093DB01663471051CF486E490E005C01F
:10B3A0006739710534F086E990E09093DC01809371
:10B3B000DB0180911C0390911D03892BB9F18091D1
:10B3C000A3029091A402A091A502B091A60280933D
:10B3D0009F029093A002A093A102B093A20226C064
:10B3E0008091A3029091A402A091A502B091A6021F
:10B3F00080599140A040B04080939F029093A0025A
:10B40000A093A102B093A2028091C205882311F0FB
:10B41000992702C088E790E09093DC018093DB01DC
:10B4200089819A8190939A0280939902C09099029F
:10B43000D0909A022091A3023091A4024091A502DB
:10B440005091A6022B8B3C8B4D8B5E8B20919F02E3
:10B450003091A0024091A1025091A2026B897C8997
:10B460008D899E89261737074807590724F0809150
:10B47000120680FDB8C280911C0390911D03892B98
:10B4800039F0C0909902D0909A02AA24BB24D9C066
:10B490008B899C89AD89BE89821B930BA40BB50B4C
:10B4A00080933A0390933B03A0933C03B0933D03F6
:10B4B000823070E897077FEFA7077FEFB7072CF47C
:10B4C00081E090E8AFEFBFEF09C08F5F9F47A040DA
:10B4D000B04064F08FEF9FE7A0E0B0E080933A03C4
:10B4E00090933B03A0933C03B0933D03A0903A0399
:10B4F000B0903B038091CC01282F33274427552758
:10B5000080913A0390913B03A0913C03B0913D039D
:10B51000BC01CD010E94DD7697FF04C0615E7F4FC4
:10B520008F4F9F4FA5E09595879577956795AA953D
:10B53000D1F760933A0370933B0380933C0390935D
:10B540003D036530FEEF7F07FFEF8F07FFEF9F079B
:10B550002CF484E09EEFAFEFBFEF09C06050744061
:10B560008040904064F080E094E0A0E0B0E0809300
:10B570003A0390933B03A0933C03B0933D03809028
:10B580003A0390903B03209135023091360237FF09
:10B5900002C0295F3F4FF3E035952795FA95E1F713
:10B5A0004FEF223834071CF421E83FEF05C0203864
:10B5B000310514F020E830E0C901AA2797FDA095D5
:10B5C000BA2F2091CE01332744275527BC01CD0146
:10B5D0000E94DD7697FF04C06D5F7F4F8F4F9F4FB6
:10B5E000E2E09595879577956795EA95D1F79B0168
:10B5F0005FEF613075071CF420E03FEF06C06F3F3E
:10B60000710519F014F020E031E080917D02807C1A
:10B6100049F0C90137FD03969C013595279535956D
:10B6200027950DC08091120680FF09C0C90137FD22
:10B6300007969C0143E0359527954A95E1F7820EE0
:10B64000931E2091CB01222309F454C06091C502BE
:10B650007091C6028091C7029091C80297FF04C002
:10B6600061587F4F8F4F9F4F37E09595879577951E
:10B6700067953A95D1F73327442755270E94DD7601
:10B6800097FF04C0615E7F4F8F4F9F4FB5E0959548
:10B69000879577956795BA95D1F760933A0370933C
:10B6A0003B0380933C0390933D036138AFEF7A07EF
:10B6B000AFEF8A07AFEF9A072CF480E89FEFAFEF68
:10B6C000BFEF0AC06F3F71058105910569F064F015
:10B6D00080E091E0A0E0B0E080933A0390933B03D8
:10B6E000A0933C03B0933D0380913A0390913B03B8
:10B6F000880E991E8091C901282F33278091130845
:10B70000992787FD9095289FF001299FF00D389F7C
:10B71000F00D11249F01F7FF02C021583F4F220F67
:10B72000232F221F330BFFEF21383F071CF420E8A3
:10B730003FEF06C02F3F310519F014F020E031E053
:10B74000820E931EC401AA2797FDA095BA2FE09000
:10B750009902F0909A029701442737FD4095542FA3
:10B76000BC01CD010E94DD7697FF04C061507E4F81
:10B770008F4F9F4FF9E09595879577956795FA9547
:10B78000D1F7C61AD70A80916B0390916C03892B6D
:10B7900009F060C01E141F040CF05CC09501B7FED8
:10B7A00003C0309521953F4F2D33310540F48091F2
:10B7B0006F03909170038C159D0574F526C02C5372
:10B7C0003040E5E036952795EA95E1F720313105DF
:10B7D00010F02FE030E040916F03509170031A1485
:10B7E0001B04E4F480E190E0821B930B489F9001DE
:10B7F000499F300D589F300D112474E036952795E0
:10B800007A95E1F72C153D0520F58091DD019091A9
:10B81000DE01C816D906F4F06C011CC0205F3F4F52
:10B820008091DD019091DE01829FB001839F700DB8
:10B83000929F700D11249B0164E0369527956A95BF
:10B84000E1F74C155D0514F06A0104C0C216D30679
:10B8500008F06901C601AA2797FDA095BA2F2DE02F
:10B86000880F991FAA1FBB1F2A95D1F7980144275B
:10B8700037FD4095542FBC01CD010E945177209394
:10B880003E0330933F034093400350934103C090E5
:10B890003E03D0903F0380916D0390916E039C0115
:10B8A000220F331F280F391F2C0D3D1D37FF02C0FB
:10B8B0002D5F3F4FA9015595479555954795509355
:10B8C0006E0340936D038091BA05282F3327220F12
:10B8D000331F220F331F241735076CF4809195070F
:10B8E000282F3327220F331F220F331F20553040BC
:10B8F0004217530724F030936E0320936D03809119
:10B90000120680FF14C080916D0390916E03A9818F
:10B91000BA818A179B0724F0B0936E03A0936D033E
:10B92000E0916D03F0916E03FA83E9835CC0298195
:10B930003A812E193F0937FF02C02D5F3F4F3595E1
:10B94000279535952795E0906D03F0906E03E20EF4
:10B95000F31EFA82E98247C08091C205882301F56F
:10B960006091990270919A0277FF02C06D5F7F4FDC
:10B97000759567957595679540911E0150911F01CA
:10B9800080910001282F3327649FC001659F900D8F
:10B99000749F900D1124B9010E941C77CB0101C046
:10B9A00099279093DC018093DB018091DB019091DA
:10B9B000DC01873491051CF486E490E005C08639EB
:10B9C000910534F086E990E09093DC018093DB01EF
:10B9D00029813A8130936E0320936D0380917D021B
:10B9E000806C80937D0280917D0299279C0122705A
:10B9F000307081FF1CC18091710390917203A091FE
:10BA00007303B09174030097A105B10521F08091F3
:10BA1000A7028130B1F449815A81CA01AA2797FD52
:10BA2000A095BA2F2EE0880F991FAA1FBB1F2A9539
:10BA3000D1F78093710390937203A0937303B09333
:10BA400074038091A702813019F482E08093A702E9
:10BA500069817A81CB01AA2797FDA095BA2F980119
:10BA6000442737FD4095542FBC01CD010E94DD765F
:10BA7000DC01CB0180933E0390933F03A0934003EE
:10BA8000B0934103B7FF04C08150904EAF4FBF4FFA
:10BA90007C018D01FDE015950795F794E794FA95E3
:10BAA000D1F7E0923E03F0923F03009340031093DE
:10BAB000410360917E0270917F028FE0603A7807C7
:10BAC00050F58091710390917203A0917303B0912E
:10BAD00074039C01AD01EAE056954795379527958B
:10BAE000EA95D1F7821B930BA40BB50BA801970124
:10BAF000F4E0220F331F441F551FFA95D1F7820F30
:10BB0000931FA41FB51F8093710390937203A0939A
:10BB10007303B093740360547F4118F580917103EF
:10BB200090917203A0917303B09174039C01AD01D5
:10BB3000ECE05695479537952795EA95D1F7821B06
:10BB4000930BA40BB50BA801970172E0220F331FD2
:10BB5000441F551F7A95D1F7820F931FA41FB51F5D
:10BB600029C08091350290913602809135029091E2
:10BB7000360297FF03C0909581959F4F84369105BB
:10BB80000CF58091710390917203A0917303B091B1
:10BB900074039C01AD016EE0569547953795279546
:10BBA0006A95D1F7821B930BA40BB50B8E0D9F1DCD
:10BBB000A01FB11F8093710390937203A09373032E
:10BBC000B09374038091710390917203A0917303F9
:10BBD000B09174031EE0B695A795979587951A9531
:10BBE000D1F790939A02809399024091C005442323
:10BBF00099F055279C01BA010E941C77C901861B48
:10BC0000970B9093700380936F03260F371F309329
:10BC1000DE012093DD011FC01092700310926F03AC
:10BC20008FEF93E09093DE018093DD0114C01092BA
:10BC3000A702109271031092720310927303109274
:10BC4000740330939A022093990205C080917D027B
:10BC5000806C80937D0220905C07222D3327220F79
:10BC6000331F220F331F285D3F4FA981BA812A1746
:10BC70003B0714F03A83298330909507832D992749
:10BC8000880F991F880F991F80559040E981FA818C
:10BC90008E179F0714F49A83898380916D028823FD
:10BCA00021F480911A088F3FA1F080917E0290913B
:10BCB0007F020297C09768F4E980FA801E141F047F
:10BCC00044F481E090E090937F0280937E023A8377
:10BCD000298309811A811093660500936505809177
:10BCE000360390913703A0913803B0913903F2E005
:10BCF000880F991FAA1FBB1FFA95D1F700919607CD
:10BD000010919707081B190B29813A81213A3105B7
:10BD10008CF0C90137FD019695958795801791079D
:10BD20000CF48C01909581959F4F081719076CF4BE
:10BD30008C010BC00135110514F000E510E03FEF58
:10BD4000003B130714F400EB1FEF232D3327220FC2
:10BD5000331F220F331FC90149815A81841B950B60
:10BD6000801791070CF48C0169817A81621B730B37
:10BD7000061717070CF48B0180915707909158070D
:10BD80006091AF027091B002861B970B909366078B
:10BD900080936507D09074072091CD023091CE0238
:10BDA0004091CF025091D002DD2041F0661A770A0F
:10BDB000C301AA2797FDA095BA2F04C0AA2797FD13
:10BDC000A095BA2F280F391F4A1F5B1F2093CD0261
:10BDD0003093CE024093CF025093D0028091CD0297
:10BDE0009091CE02A091CF02B091D00281509A4F93
:10BDF000A040B04064F080E09AEFA0E0B0E0809313
:10BE0000CD029093CE02A093CF02B093D002809146
:10BE1000CD029091CE02A091CF02B091D00280507D
:10BE20009640AF4FBF4F64F480E096E0AFEFBFEFB6
:10BE30008093CD029093CE02A093CF02B093D00214
:10BE4000C090CF052091650730916607F8E0FC159A
:10BE500098F08C2D9927829F7001839FF00C929F00
:10BE6000F00C1124C701F7FC07967C0163E0F59400
:10BE7000E7946A95E1F712C08C2D86959927829FE9
:10BE8000A001839F500D929F500D1124CA0157FDB0
:10BE900003967C01F594E794F594E794A090CF0184
:10BEA000B090D0019501442737FD4095542F8091E3
:10BEB000CD029091CE02A091CF02B091D002BC01F0
:10BEC000CD010E945177E20EF31E9090BB01692DC7
:10BED000772788279927980117FF04C0222733273F
:10BEE000201B310B37FF02C02F5F3F4F3595279541
:10BEF000A981BA812A0F3B1F442737FD4095542F53
:10BF00000E94DD7697FF04C0615C7F4F8F4F9F4F8B
:10BF100026E095958795779567952A95D1F79B01AA
:10BF20006E157F050CF47B01309521953F4FE2168D
:10BF3000F3060CF4790180914807909149076091CC
:10BF4000AD027091AE02861B970B909347078093CA
:10BF500046072091C9023091CA024091CB0250910C
:10BF6000CC02DD2041F0461A570AC201AA2797FDEC
:10BF7000A095BA2F04C0AA2797FDA095BA2F280F25
:10BF8000391F4A1F5B1F2093C9023093CA02409396
:10BF9000CB025093CC028091C9029091CA02A09129
:10BFA000CB02B091CC0281509A4FA040B04064F0D7
:10BFB00080E09AEFA0E0B0E08093C9029093CA02BB
:10BFC000A093CB02B093CC028091C9029091CA0297
:10BFD000A091CB02B091CC0280509640AF4FBF4FA2
:10BFE00064F480E096E0AFEFBFEF8093C9029093D6
:10BFF000CA02A093CB02B093CC02209146073091A5
:10C00000470748E04C1598F08C2D9927829FB00186
:10C01000839F700D929F700D1124CB0177FD0796C1
:10C020006C01B3E0D594C794BA95E1F712C0C694F9
:10C030008C2D9927829FD001839FB00D929FB00DC8
:10C040001124CD01B7FD03966C01D594C794D59406
:10C05000C7949501442737FD4095542F8091C9021C
:10C060009091CA02A091CB02B091CC02BC01CD014B
:10C070000E945177C20ED31E692D772788279927F2
:10C08000980117FF04C022273327201B310B37FFED
:10C0900002C02F5F3F4F35952795E981FA812E0F1A
:10C0A0003F1F442737FD4095542F0E94DD7697FFB0
:10C0B00004C0615C7F4F8F4F9F4FE6E09595879559
:10C0C00077956795EA95D1F79B016C157D050CF482
:10C0D0006B01309521953F4FC216D3060CF46901D0
:10C0E00066E7862E66E0962E5DE2A52E56E0B52E1A
:10C0F0004BE0542E35E7632E37E0732ED5012C919B
:10C1000012160CF014C1203429F4E981FA81F88F59
:10C11000EF8B1FC049815A81CA01AA2797FDA095BC
:10C12000BA2F332727FD3095432F532FBC01CD0164
:10C130000E94DD7697FF04C0615C7F4F8F4F9F4F59
:10C1400026E095958795779567952A95D1F7788F0D
:10C150006F8BF5012181203439F42F89388D2E0D14
:10C160003F1D388F2F8B2AC0203C39F44F89588DC2
:10C170004E195F09588F4F8B21C0C701AA2797FD21
:10C18000A095BA2F332727FD3095432F532FBC019D
:10C19000CD010E94DD7697FF04C0615C7F4F8F4F19
:10C1A0009F4FB6E09595879577956795BA95D1F7A6
:10C1B000AF89B88DA60FB71FB88FAF8BF50122815D
:10C1C000203439F42F89388D2C0D3D1D388F2F8B5D
:10C1D0002AC0203C39F44F89588D4C195D09588F7D
:10C1E0004F8B21C0C601AA2797FDA095BA2F3327F0
:10C1F00027FD3095432F532FBC01CD010E94DD76E2
:10C2000097FF04C0615C7F4F8F4F9F4FA6E09595CD
:10C21000879577956795AA95D1F7AF89B88DA60FC1
:10C22000B71FB88FAF8BF5012381203439F42F89E4
:10C23000388D200F311F388F2F8B2AC0203C39F4C6
:10C240004F89588D401B510B588F4F8B21C0C8010F
:10C25000AA2797FDA095BA2F332727FD3095432FA6
:10C26000532FBC01CD010E94DD7697FF04C0615CB5
:10C270007F4F8F4F9F4FF6E0959587957795679500
:10C28000FA95D1F7AF89B88DA60FB71FB88FAF8BCE
:10C29000F301808191812F89388D8217930764F48F
:10C2A000B901680F791F77FF02C06F5F7F4F7595E7
:10C2B0006795788F6F8B08C04F89588D440F551F35
:10C2C000481B590B588F4F8B822D9927880F991F28
:10C2D000880F991F6F89788D861797075CF4832DD7
:10C2E0009927880F991F880F991FAF89B88DA817B4
:10C2F000B90714F0988F8F8B8F89988D97FD0396CF
:10C300009595879595958795F4018183880F991F59
:10C31000880F991F2F89388D281B390BC901880F69
:10C320008283EF89F88DD301ED93FC9303C0F40170
:10C33000118212825A9422E030E0620E731E44E0B1
:10C3400050E0A40EB51E68E070E0860E971E57FE02
:10C35000D5CEE2E1C85E0C948877809183039091FA
:10C360008403A0918503B091860380937B0390930F
:10C370007C03A0937D03B0937E0380917F03909113
:10C380008003A0918103B0918203809377039093FF
:10C390007803A0937903B0937A03089510928E03E3
:10C3A00010928D0310928C0310928B03089584B128
:10C3B000806A84B93D9A82E58CBD1DBC459A81E0B6
:10C3C0008093A7078AEA8093B80783E88093B90728
:10C3D0008AE08093BA071092BC071092BB071092B4
:10C3E000BE071092BD07109212081092DA07089546
:10C3F0003091A707332309F085C00DB407FE82C032
:10C4000084E080932302459A2EB580919203992768
:10C410008130910589F0823091051CF4892B21F03F
:10C420003EC00297B9F03BC03093D90720939303E5
:10C430002138A9F581E008C0253549F4809193039E
:10C44000820F8093930382E08093920328C03093FD
:10C45000920325C08091D907E82FFF27EB50F84FB2
:10C4600020838F5F8093D907909193038A31A0F046
:10C47000291769F48AE1A5EFB7E0EBEDF7E00D903D
:10C4800001928A95E1F781E08093DA0702C0309348
:10C49000DA071092920303C0920F909393032091B6
:10C4A000B707203208F028C04598000000000000BF
:10C4B000000000000000000000000000000000007C
:10C4C000000000000000000000000000000000006C
:10C4D00000000000000000000000E091B007F091B3
:10C4E000B107E20FF11D80818EBD8091D707908149
:10C4F000890F8093D70703C081E08093A7072F5F40
:10C500002093B7070895EF92FF920F931F938091A6
:10C51000C8059927880F991F880F991F7C0100274C
:10C52000F7FC0095102F8091050390910603A091D0
:10C530000703B0910803BC01CD01A80197010E9437
:10C5400051773093BC072093BB078091FD029091F7
:10C55000FE02A091FF02B0910003BC01CD01A80131
:10C5600097010E9451773093BE072093BD07209119
:10C570009D0730919E0740919F075091A007DA01D7
:10C58000C901E3E0880F991FAA1FBB1FEA95D1F7E5
:10C59000820F931FA41FB51F820F931FA41FB51FE7
:10C5A0002091960130919701409198015091990105
:10C5B000BC01CD010E9451773093C4072093C3077B
:10C5C0008091160390911703209143023091440209
:10C5D000821B930B9093CA078093C907E0910C03C9
:10C5E000F0910D0380916C0790916D07BF010E943F
:10C5F0001C77CB019B01220F331F220F331F280F03
:10C60000391F280F391F37FF02C02D5F3F4F359567
:10C610002795359527953093C0072093BF078091C4
:10C62000990790919A07BF010E941C779B01220FE6
:10C63000331F220F331F260F371F260F371F37FFD9
:10C6400002C02D5F3F4F359527953595279530933F
:10C65000C2072093C10710920D0310920C03109291
:10C660006D0710926C0710929A07109299078091AB
:10C67000BA0799278D30910509F466C08E3091056F
:10C680005CF48B30910509F48EC08C3091050CF070
:10C690000FC10A9761F0ADC18F30910509F481C1D6
:10C6A0008F3091050CF45CC1409799F1A2C1809143
:10C6B00092028093CB07809191028093CC07809166
:10C6C00090028093CD0780918F028093CE07809156
:10C6D0008E028093CF0780918D028093D007809146
:10C6E0008C028093D10780918B028093D207809136
:10C6F0007D028093D30780917D02837F80937D02AA
:10C700000E94262E8093D407809109038093D50739
:10C7100070C180911408909115089093CC07809374
:10C72000CB0780911808909119089093CE078093B9
:10C73000CD0780911E0190911F018093CF078091BA
:10C7400000018093D00755C18091FC058093CB07F1
:10C750008091FD058093CC078091FE058093CD07E5
:10C760008091FF058093CE07809100068093CF07CC
:10C77000809104068093D007809105068093D107AD
:10C78000809106068093D207809109068093D30793
:10C79000809107068093D407809108068093D5077F
:10C7A00080910A06DAC0F8948091AF05E82FFF2740
:10C7B000EE0FFF1FE952F94F0190F081E02DE038B4
:10C7C000F1051CF0EFE7F0E006C02FEFE138F207CB
:10C7D00014F4E1E8FFEFE093CB078091B005E82F78
:10C7E000FF27EE0FFF1FE952F94F0190F081E02D76
:10C7F000E038F1051CF0EFE7F0E006C06FEFE1383C
:10C80000F60714F4E1E8FFEFE093CC078091AE0562
:10C81000E82FFF27EE0FFF1FE952F94F0190F0813B
:10C82000E02DE038F1051CF0EFE7F0E006C08FEFF7
:10C83000E138F80714F4E1E8FFEFE093CD078091C9
:10C84000AD05E82FFF27EE0FFF1FE952F94F0190CA
:10C85000F081E02DE038F1051CF0EFE7F0E006C0D4
:10C860002FEFE138F20714F4E1E8FFEF7894E0935A
:10C87000CE078091B2028093CF078091B30280935C
:10C88000D0078091B4028093D1078091B502809344
:10C89000D2078091B6028093D3078091B70280932C
:10C8A000D4078091B8028093D5078091B90255C012
:10C8B0008091F003863018F01092F00385E08093A9
:10C8C000CB0780910B068093CC078091A3029091B7
:10C8D000A402A091A502B091A602BC01CD0125E061
:10C8E00030E040E050E00E9451773093CE07209333
:10C8F000CD0780919F029091A002A091A102B091DA
:10C90000A202BC01CD0125E030E040E050E00E94F1
:10C9100051773093D0072093CF0780910106809301
:10C92000D107809102068093D207809103068093FD
:10C93000D3078091B1028093D4078091D70690915C
:10C94000D8068093D507809165059091660597FD7F
:10C95000039695958795959587958093D60749C0B9
:10C960001092CB0782E58093CC071092CD0780E12F
:10C970008093CE07809102018093CF078091D503E9
:10C980008093D0078091D6038093D1078091D703FD
:10C990008093D2078091D8038093D3078091D903E5
:10C9A00026C08091E1058093CB078091110680938A
:10C9B000CC078091C1018093CD078091DA058093E7
:10C9C000CE078091DB058093CF078091DC058093B3
:10C9D000D0078091C0018093D1078091DE058093BC
:10C9E000D2078091DF058093D3078091E005809383
:10C9F000D4078091DA07882309F4D8C08AEF80939E
:10CA0000E9014091DC075091DD07CA0181509E4F3A
:10CA10008F5F9340B0F42091DE073091DF07C901AA
:10CA200081509E4F8F5F934060F48091B90585FFE0
:10CA300008C050938E0340938D0330938C03209352
:10CA40008B038091E2079091E30721E089369207FA
:10CA500024F49093C4028093C3028091C302909106
:10CA6000C4022091C1023091C202821B930B845EEA
:10CA70009D4F68E671E00E941C77845B9040909324
:10CA8000C0028093BF022091E6073091E7078091B2
:10CA90002402909125028217930740F48091F003BD
:10CAA000882321F430932502209324028091DB0710
:10CAB00099278836910549F18936910524F48736FE
:10CAC000910531F07BC08936910509F445C076C0E7
:10CAD0008091E80780930F088091E90780931108FF
:10CAE0008091EA07809310088091EB0780931208E9
:10CAF0008091EC07809313088091ED078093EA0101
:10CB00008091EE078093910359C08091E80780934C
:10CB1000B2078091E9078093B3078091EA07809379
:10CB2000B4078091EB078093B5078091EC07809361
:10CB3000B607809155059091ED07892B8093550597
:10CB40009091EE0790938F038091560583709C70AF
:10CB5000892B8093560532C08091E8078093A807FF
:10CB60008091E9078093A9078091EA078093AA073B
:10CB70008091EB078093AB078091EC079091ED07D4
:10CB80009093AD078093AC078091EE079091EF07EB
:10CB90009093AF078093AE078091F007992787FDA8
:10CBA000909590930A078093090708C010928E030E
:10CBB00010928D0310928C0310928B031F910F9192
:10CBC000FF90EF9008958091A707882309F43BC058
:10CBD000459888EB97E09093B1078093B0079091C8
:10CBE0009003E92FFF27E052FE4F9F5F9093900341
:10CBF00080818093BA07993010F0109290031092C0
:10CC0000A7070E94836281E08093B70700000000BD
:10CC10000000000000000000000000000000000014
:10CC20000000000000000000000000000000000004
:10CC30000000000000000000000000008091B80724
:10CC40008093D7078EBD089587B18C6087B94298CD
:10CC500043981092950380E88093EC01109294031E
:10CC60008093EB01089580919A03815080939A03F9
:10CC70008F3F09F0FBC024E020939A0380917D024E
:10CC8000992780739070892B21F48091D60380FFBF
:10CC90001CC08091FA05882349F080919D03882368
:10CCA00011F42093950381E080939D038091FB050F
:10CCB0008823B9F080919E03882319F484E080933F
:10CCC000940381E080939E030CC010929D03109208
:10CCD0009E038091F60580939B038091F8058093D5
:10CCE0009C0380919D03882309F040C08091100629
:10CCF000282F332724FF07C08091A802882319F426
:10CD000025FD4DC04EC09091F705983F50F08091A1
:10CD10006E078D3D30F080919B0388230CF43FC05B
:10CD200040C0983F48F080916E078A3028F4809187
:10CD30009B038823B4F133C0809195038150809385
:10CD400095038F3F79F580916E078150809395030D
:10CD50008091EC01813011F480E801C086958093C8
:10CD6000EC018091EC0190919B0317C08091950399
:10CD70008150809395038F3FA9F489E080939503B8
:10CD80008091EC01813011F480E801C08695809398
:10CD9000EC018091EC019091FA05892311F0429AFF
:10CDA00001C0429880919E03882309F043C080917E
:10CDB0001006282F332724FF07C08091A80288235C
:10CDC00019F426FD50C034C09091F905983F50F0F9
:10CDD000809194078D3D30F080919C0388230CF462
:10CDE00042C026C0983F48F0809194078A3028F4CA
:10CDF00080919C038823E4F036C080919403815095
:10CE0000809394038F3F91F5809194078150809394
:10CE100094038091EB01813011F480E801C0869584
:10CE20008093EB018091EB0190919C038923D9F4CD
:10CE300043980895809194038150809394038F3F89
:10CE4000A9F489E0809394038091EB01813011F47F
:10CE500080E801C086958093EB018091EB01909171
:10CE6000FB05892311F0439A0895439808954FB71D
:10CE700024E130E0F8948091C9008F778093C90055
:10CE80008091C9008F7B8093C9008091C9008F7DFC
:10CE90008093C9005A9A52985B9A539A832F992784
:10CEA0008093CD002093CC008091C8008260809355
:10CEB000C80080E18093C9008091CA008F77809379
:10CEC000CA008091CA008F7B8093CA008091CA00FB
:10CED0008F7D8093CA008091CA008F7E8093CA00A4
:10CEE0008091CA00877F8093CA008091C9008B7FA0
:10CEF0008093C9008091CA0084608093CA008091A9
:10CF0000CA0082608093CA008091C80087FF03C076
:10CF10008091CE00F9CF8091C90080688093C900CC
:10CF20004FBF0895EF92FF920F931F93CF93DF931C
:10CF3000482F00E010E08091ED01813061F4109203
:10CF4000ED0184E480939F031092A1031092A0034B
:10CF50001092A2032BC180919F03882319F421E032
:10CF600030E001C098019091A003992371F4232B24
:10CF700011F081E010C084E480939F039093A1039B
:10CF80009093A0039093A203FAC0913069F4232BED
:10CF900009F0EBC082E08093A0038091A1038F5F32
:10CFA0008093A10383E0E9C09230D1F4232B09F0F0
:10CFB000DCC083E080939F034093A2039091A10380
:10CFC000923039F41092A30347FF03C081E08093AD
:10CFD000A30383E08093A0039F5F9093A103CFC03E
:10CFE000933009F0C2C0232B09F0BFC090939F0378
:10CFF00082E08093A0038091A1038F5F8093A103BF
:10D000002091A203822F9927782F6627842F9927B2
:10D01000682B792B8091D305813049F47370CB0153
:10D020008050924063E070E00E941C7717C082300D
:10D0300061F47770CB018050944066E070E00E940C
:10D040001C772695269526950BC0737068567140FF
:10D05000CB0177FD0196BC017595679526952695C0
:10D06000022F11270F7010700F5F1F4F0D30110529
:10D0700008F074C07801E00EF11EF701E952F94F93
:10D08000808191819B01281B390BC90137FF03C0A7
:10D09000909581959F4F069794F48091B102883CBA
:10D0A00030F48091B102865F8093B10208C088ECB1
:10D0B0008093B10280916F008F7D80936F00F701A4
:10D0C000E952F94F808191819C01220F331F280F73
:10D0D000391F260F371F37FF02C02D5F3F4FE90171
:10D0E000D595C795D595C795CB0101968C179D070A
:10D0F00014F4219706C061507040C617D7070CF48E
:10D1000021968091B102843BD0F0F701E952F94FAA
:10D1100080819181FE01E81BF90BCF0163E070E093
:10D120000E941C77CB01880F991F860F971F2BE059
:10D1300037E0E20EF31EF7019183808307C02BE0F6
:10D1400037E0E20EF31EF70111821082000F111F6B
:10D150000952194FF801D183C08311C00231110562
:10D1600070F081E08093ED010AC081E08093ED01D1
:10D170001092A1031092A30384E480939F038091F3
:10D18000A103803198F08091A303882331F480912A
:10D19000ED01882311F4809394011092A103109261
:10D1A000A3031092A00384E480939F03E6E0CDB72D
:10D1B000DEB70C949477CF93FC0197FF05C0CFEFB7
:10D1C000F095E195FF4F01C0C1E028E631E0CF01C5
:10D1D000B9010E941C77FC018B35910554F08B55E9
:10D1E00090408A35910538F484EB90E08E1B9F0BBC
:10D1F000FC0141E00DC0CF01855B90408A3591056F
:10D2000018F4E45BF04003C02E1B3F0BF9014FEF15
:10D21000EE0FFF1FEF5BF54F259134918C2F99276F
:10D2200087FD9095289FB001299F700D389F700D44
:10D230001124842F992787FD9095689FA001699FED
:10D24000500D789F500D1124CA01CF9108952AE501
:10D2500030E0281B390BC9010E94DB680895CF9389
:10D26000DF9380E00E94926E80911E0190911F01D9
:10D270006AE070E00E941C779F938F9380911E015B
:10D2800090911F016AE070E00E941C777F936F937A
:10D290008FE09BE09F938F93C5E8DEE6DF93CF930B
:10D2A000E091BC03F091BD0309952DB73EB7285F0F
:10D2B0003F4F2DBF8091E9018823B9F186E00E949C
:10D2C000926E8091AC079091AD076AE070E00E9489
:10D2D00008777F936F938FED90E09F938F9380916A
:10D2E0009D0790919E07A0919F07B091A007209164
:10D2F0009601309197014091980150919901BC019C
:10D30000CD010E9451773F932F9388E19BE09F933B
:10D310008F93DF93CF93E091BC03F091BD03099508
:10D320008DB79EB70A968DBF12C086E00E94926E9E
:10D3300084E29BE09F938F93DF93CF93E091BC03B4
:10D34000F091BD0309950F900F900F900F90809171
:10D350008F038823C1F086E00E94926E80918F0334
:10D3600099279F938F938BE29BE09F938F93DF93FB
:10D37000CF93E091BC03F091BD0309952DB73EB763
:10D380002A5F3F4F2DBF80E10E94926E8091F30192
:10D390009091F4016CE370E00E9408779F938F9363
:10D3A0008091F3019091F4016CE370E00E940877A2
:10D3B0007F936F9380911808909119089F938F9392
:10D3C00086E39BE09F938F93C5E8DEE6DF93CF93E0
:10D3D000E091BC03F091BD0309958091B9052DB78B
:10D3E0003EB7265F3F4F2DBF80FF29C08AE10E94D4
:10D3F000926E8091950199279F938F938091A302BC
:10D400009091A402A091A502B091A602BC01CD0109
:10D4100024E630E040E050E00E9451773F932F93A4
:10D4200083E49BE09F938F93DF93CF93E091BC03C2
:10D43000F091BD0309958DB79EB708968DBFDF911A
:10D44000CF910895CF93DF9380E00E94926E8091F8
:10D450009506992787FD90959F938F9380918D06D0
:10D46000992787FD90959F938F93809185069927A3
:10D4700087FD90959F938F9380917D06992787FDD7
:10D4800090959F938F938AE49BE09F938F93C5E839
:10D49000DEE6DF93CF93E091BC03F091BD030995E5
:10D4A00080E10E94926E2DB73EB7245F3F4F2DBFA3
:10D4B0008091B506992787FD90959F938F938091D2
:10D4C000AD06992787FD90959F938F938091A50630
:10D4D000992787FD90959F938F9380919D0699271B
:10D4E00087FD90959F938F938AE59BE09F938F9301
:10D4F000DF93CF93E091BC03F091BD030995809138
:10D50000AB052DB73EB7245F3F4F2DBF853098F454
:10D5100080E10E94926E8AE69BE09F938F93DF9357
:10D52000CF93E091BC03F091BD0309950F900F904C
:10D530000F900F9018C08730B0F488E10E94926E6F
:10D540008FED90E09F938F938BE79BE09F938F935A
:10D55000DF93CF93E091BC03F091BD0309958DB7A4
:10D560009EB706968DBFDF91CF9108950F931F93BD
:10D5700080E00E94926E2AE030E080911408909141
:10D580001508B9010E9408779F938F938091140822
:10D5900090911508B9010E9408777F936F9380914D
:10D5A0001E0190911F01B9010E941C779F938F93D8
:10D5B00080911E0190911F01B9010E941C777F93F9
:10D5C0006F9384E89BE09F938F9305E81EE61F937B
:10D5D0000F93E091BC03F091BD03099580E10E9497
:10D5E000926E8DB79EB70C968DBF80911808909162
:10D5F00019089F938F9380911608909117089F9315
:10D600008F9387E99BE09F938F931F930F93E091F4
:10D61000BC03F091BD0309958DB79EB708968DBFE9
:10D620001F910F9108950F931F93CF93DF938091D4
:10D63000E901C5E8DEE6882309F478C080E00E94AD
:10D64000926E8091A90799279F938F938091AB0742
:10D6500099279F938F9383EA9BE09F938F938E01EB
:10D66000DF93CF93E091BC03F091BD0309958DB793
:10D670009EB708968DBF8091AA07833031F48CE065
:10D680000E94926E82EB9BE005C08CE00E94926E3D
:10D6900087EB9BE09F938F93DF93CF93E091BC0345
:10D6A000F091BD0309950F900F900F900F9080910E
:10D6B000A80781FF12C08CE00E94926E8CEB9BE069
:10D6C0009F938F931F930F93E091BC03F091BD0341
:10D6D00009950F900F900F900F9080E10E94926E2D
:10D6E0008FED90E09F938F938091AE079091AF075D
:10D6F0009F938F938091AC079091AD076AE070E0A3
:10D700000E9408777F936F9381EC9BE09F938F93A8
:10D7100085E89EE69F938F93E091BC03F091BD0353
:10D7200009958DB79EB70A968DBF12C082E00E9400
:10D73000926E81ED9BE09F938F93DF93CF93E09167
:10D74000BC03F091BD0309950F900F900F900F90BF
:10D75000DF91CF911F910F910895CF93C82F209102
:10D76000A4032093A50399278F32910509F18033F3
:10D7700091051CF44F97A1F02CC08F34910501F155
:10D780008F38910531F5222319F481E090E038C0FB
:10D7900086E0289FF0011124E950F54F849117C0CD
:10D7A00086E0289FF0011124E850F54F84910FC0C6
:10D7B00086E0289FF0011124E750F54F849107C0BF
:10D7C00086E0289FF0011124E650F54F8491809364
:10D7D000A4039091A4038091A5039813C0E00E9434
:10D7E000986E9091A40386E0989FF0011124E55073
:10D7F000F54F259134918C2FF901099580E090E047
:10D80000CF910895109215081092140810921908DB
:10D8100010921808109217081092160810921A0801
:10D820008AE090E00E9416179093A7038093A603C6
:10D830000895CF93DF938091A6039091A7030E9450
:10D840001F17882309F4AFC08091A6039091A70306
:10D850000A969093A7038093A603E0E0F0E09F016F
:10D8600090E05FEFA6E7B6E04BE0ED018B8187FF2C
:10D870000BC09F5F8D81E80FF11D8981280F311D3D
:10D880008E81851708F4582F4150189647FFEDCF29
:10D8900050931A08232B41F52091AC033091AD032E
:10D8A0004091AE035091AF03BB27A52F942F832F38
:10D8B0009093AB038093AA03AA27BB27281B390B9D
:10D8C0004A0B5B0BCF01AA27BB27280F391F4A1F22
:10D8D0005B1F2093AC033093AD034093AE03509392
:10D8E000AF03E5E0F0E013C02091AA033091AB0351
:10D8F0002E173F0718F4E21BF30B02C0E0E0F0E044
:10D90000892F9927880F991FE80FF91F3596F093F3
:10D910001508E0931408EF3FF10578F480911E019B
:10D9200090911F018E9F90018F9F300D9E9F300D13
:10D930001124C90164E670E013C0CF019695879564
:10D940009695879520911E0130911F01289FA00177
:10D95000299F500D389F500D1124CA0169E170E0D4
:10D960000E94087770931708609316082091A80307
:10D970003091A9032E0F3F1F3093A9032093A803D2
:10D980005EE02131350778F08091180890911908F0
:10D990000196909319088093180820513E403093C7
:10D9A000A9032093A803DF91CF9108954FB720E4F6
:10D9B00030E0F8948091C9008F778093C9008091FE
:10D9C000C9008F7B8093C9008091C9008F7D8093AF
:10D9D000C9005A9A52985B9A539A832F9927809339
:10D9E000CD002093CC008091C80082608093C80055
:10D9F00088E18093C9008091CA008F778093CA0024
:10DA00008091CA008F7B8093CA008091CA008F7D6D
:10DA10008093CA008091CA008F7E8093CA00809153
:10DA2000CA00877F8093CA008091C9008B7F809352
:10DA3000C9008091CA0084608093CA008091CA00A6
:10DA400082608093CA008091C80087FF03C08091E4
:10DA5000CE00F9CF8091C90080688093C9004FBF84
:10DA600008950F931F93CF93DF93482F4F5F893112
:10DA700008F08BC08091D606841720F44F5F409346
:10DA8000D6064150CB0183539B4268E170E00E946F
:10DA90001C77A42FBB27FD01EA0FFB1FE952F94FAA
:10DAA000808191819B01281B390BC90137FF03C07D
:10DAB000909581959F4F069794F48091B102883C90
:10DAC00030F48091B102865F8093B10208C088EC87
:10DAD0008093B10280916F008F7D80936F00FD0174
:10DAE000EA0FFB1FE952F94F808191819C01220FBF
:10DAF000331F280F391F260F371F37FF02C02D5F36
:10DB00003F4FE901D595C795D595C795CB010196AE
:10DB10008C179D0714F4219706C061507040C617FA
:10DB2000D7070CF421968091B102843BD8F08D0187
:10DB30000A0F1B1FF801E952F94F80819181FE0104
:10DB4000E81BF90BCF0163E070E00E941C77CB016A
:10DB5000880F991F860F971F055F184FF801918353
:10DB6000808307C0AA0FBB1FA55FB84F11961C92F8
:10DB70001E92E42FFF27EE0FFF1FE952F94FD183CA
:10DB8000C083443011F410929401DF91CF911F9122
:10DB90000F910895CF93DF9320911B08822F99272F
:10DBA000807F9070409709F06CC02F3109F046C01B
:10DBB00080911C088093B40320911E082093B60323
:10DBC00080911F088093B503822F99279093D806E0
:10DBD0008093D706222309F054C08091AD05282FE9
:10DBE0003327220F331FF901E55FF84F11821082AE
:10DBF0008091AE05A82FBB27AA0FBB1FFD01E55FD3
:10DC0000F84F118210828091B005E82FFF27EE0FA8
:10DC1000FF1FCF01855F984FEC01198218822952AE
:10DC2000394FE90119821882A952B94F11961C92F5
:10DC30001E92E952F94F1182108223C0C22FCF7079
:10DC4000CA30F8F480911C088093450880911D0823
:10DC50008093440880911E088093470880911F0894
:10DC60008093460860914408709145088C2F0E946B
:10DC7000316D60914608709147088C2F8F5F0E942C
:10DC8000316DDF91CF910895CF93C82F8F3F49F425
:10DC90008091B7038F3F29F41092B9031092B80313
:10DCA00032C02091B903222339F4CF3111F485E039
:10DCB00001C084E08093BA038091BA039091B803C5
:10DCC0008217A0F4892F80958093B8038F3F19F4B1
:10DCD0008EEF8093B8038091B803C81711F40E94A7
:10DCE000CA6D1092B9031092B8030BC0E22FFF2740
:10DCF000E55EF74FC0832F5F2093B9039C0F90938D
:10DD0000B803C093B703CF9108959091B3039332B2
:10DD100040F4E92FFF27EF5DF74F80839F5F9093DB
:10DD2000B3030895833218F48D5F8093B30308958D
:10DD300090E2E4E2F8E08FE19193815087FFFCCF1D
:10DD40000895CF93CFB723E031E0F8948091C900D4
:10DD50008F778093C9008091C9008F7B8093C90021
:10DD60008091C9008F7D8093C9005A9A52985B9A1E
:10DD7000539A832F99278093CD002093CC008091D4
:10DD8000C80082608093C80088E18093C9008091B8
:10DD9000CA008F778093CA008091CA008F7B8093DE
:10DDA000CA008091CA0080628093CA008091CA0034
:10DDB00080618093CA008091CA0088608093CA0005
:10DDC0008091C90084608093C9008091CA008460FA
:10DDD0008093CA008091CA0082608093CA008091BB
:10DDE000C80087FF03C08091CE00F9CF8091C900A1
:10DDF00080688093C9008091C90080648093C900C5
:10DE00000E94986ECFBFCF910895282F99278F70C9
:10DE10009070892B31F420958091B203822B8093EE
:10DE2000B20308958091F001882309F441C08091E4
:10DE30007D0285FF0AC082E98093210883E28093F6
:10DE4000220885E58093230802C010922108809162
:10DE5000F1018F3071F48091B2030E94AD6B882381
:10DE600041F081E9809321088093220881E3809327
:10DE700023081092F0018091C80085FFFCCF8091AB
:10DE8000C9008F7E8093C9008091C9008E7F8093E6
:10DE9000C90080912108882311F48EEF01C08EE71C
:10DEA0008093CE008091B2038093F1011092B2036F
:10DEB00008951F920F920FB60F9211248F939F9384
:10DEC000EF93FF939091F001992309F040C0809166
:10DED000BB03882361F480912108882311F483E037
:10DEE00003C0813999F481E08093BB030FC0833074
:10DEF00099F480912108882349F09093210880911A
:10DF0000C9008E7F8093C9008EEF1EC08091C9002A
:10DF100081608093C9000EC0833261F48091C90092
:10DF20008E7F8093C9008FEF8093CE0081E0809335
:10DF3000F00114C08091BB03E82FFF27EF5DF74F7E
:10DF40008F5F8093BB0380818093CE0007C01092C7
:10DF5000BB038091C90080618093C900FF91EF915C
:10DF60009F918F910F900FBE0F901F901895EF9279
:10DF7000FF920F931F93CF93DF937C018B01EA01F4
:10DF8000452B39F0F80181918F01F701099521970F
:10DF9000C9F7E6E0CDB7DEB70C949477EF92FF9225
:10DFA0000F931F93CF93DF937C018B01EA01452BE5
:10DFB00041F0F8010F5F1F4F8491F70109952197F8
:10DFC000C1F7E6E0CDB7DEB70C9494770F931F93BB
:10DFD000CF938C01C62F161634F480E2F801099510
:10DFE000C1501C16D4F3CF911F910F9108950F9338
:10DFF0001F93CF938C01C62F161634F480E3F801DB
:10E000000995C1501C16D4F3CF911F910F9108951B
:10E01000A5E3B0E0EEE0F0E70C946C772E96EEAD61
:10E02000FFAD2E978824992454018091B103882351
:10E0300021F42C961FAE1EAE2C975EE4452E512C7B
:10E040004C0E5D1E6F01B60105C0153239F0089403
:10E05000C11CD11CF60114911123B9F7A601461B6E
:10E06000570B31F02C968EAD9FAD2C970E94CE6F42
:10E07000112309F46AC20894C11CD11CFF24FDA617
:10E08000FCA64FEFE42EF9A6F6010894C11CD11CA2
:10E090001491153721F0812F80628837B1F4F0FE9A
:10E0A0000AC0F20124E030E0420E531E80809180CD
:10E0B000A280B3800AC0F20142E050E0440E551E37
:10E0C000808191814C01AA24BB24103221F489A5BE
:10E0D0008823D1F61DC0133219F458E0F52AD4CFA5
:10E0E0001A3211F01D3291F41A3259F4F20182E021
:10E0F00090E0480E591EE081ECA7EE232CF6E19546
:10E10000ECA790E1F92AAFEDFA22BECF1B3211F451
:10E1100019A7BACF1E32C1F5F6010894C11CD11C53
:10E1200014911A3279F4F20122E030E0420E531ECB
:10E13000408151813FEF4F3F530714F44FEF5FEFA2
:10E14000E42EA2CF40E050E0812F80538A30A0F42B
:10E15000CA0133E0880F991F3A95E1F7840F951FA4
:10E16000480F591F410F511D40535040F60108946C
:10E17000C11CD11C1491E8CF8FEF4F3F580714F406
:10E180004FEF5FEFE42E85CF103329F4F4FC7CCF02
:10E1900090E2F92A79CF812F81538930D8F440E079
:10E1A00050E0CA0123E0880F991F2A95E1F7840FF8
:10E1B000951F480F591F410F511D40535040F60104
:10E1C0000894C11CD11C1491812F80538A3048F3CC
:10E1D0004CA75FCF183619F4A4E0FA2A55CF1C36A5
:10E1E00019F4B1E0FB2A50CF133661F43E010894D4
:10E1F000611C711CF20122E030E0420E531E80814E
:10E2000089833CC1143421F0143611F0193651F5CC
:10E21000143411F431E0F32AF0FE0AC0F20144E0B4
:10E2200050E0440E551E80809180A280B3800CC0C7
:10E23000F20182E090E0480E591E808191814C01EC
:10E24000AA2497FCA094BA2CB7FE0AC0B094A0945C
:10E2500090948094811C911CA11CB11C8DE289A713
:10E260000AE06FC01F3411F01F3631F41F3411F46F
:10E2700091E0F92A08E064C0103779F4F201A2E0D5
:10E28000B0E04A0E5B1E808191814C01AA24BB2420
:10E2900000E1B0E4FB2A18E753C01337C1F5F201DF
:10E2A00022E030E0420E531E6080718061147104E0
:10E2B00089F43E010894611C711C88E289838EE612
:10E2C000F301818385E78B838CE68C838D8389E2E0
:10E2D0008E831F82E7FC13C08E2D992787FD9095B2
:10E2E000AC0160E070E0C3010E943975009729F02D
:10E2F000382E3618E3140CF0C3C03E2CC1C0F30115
:10E3000001900020E9F731973E2E3618B9C0153537
:10E3100011F0153731F4153511F4F1E0FF2A0AE058
:10E320000FC0183519F0183709F0A0C000E1F3FE4E
:10E3300007C081149104A104B10411F020E4F22A71
:10E3400019A6EDA6E7FC02C03FEDF32289E2682E94
:10E35000712C6C0E7D1E81149104A104B10421F472
:10E360004DA5442309F47BC0802F9927AA27BB27FA
:10E370008EA79FA7A8ABB9AB202E332490E08916B7
:10E3800090E0990691E0A90690E0B90648F0C50131
:10E39000B4012EA53FA548A959A90E942F7717C0FF
:10E3A000AFEF8A169104A104B10449F040F0C40112
:10E3B000B1010E9408779B014427552708C0882D8A
:10E3C000602F0E94FC76282F3327442755272AAB3D
:10E3D0003BAB4CAB5DAB0A3059F48AA9880F880F70
:10E3E000880F9AA9990F890F382D381B832F10C0D9
:10E3F000003139F48AA98295807F482D481B842FEB
:10E4000007C08AA9880F880F880F582D581B852FA1
:10E4100090E02EA53FA548A959A982169306A40607
:10E42000B50608F091E08AA89BA8ACA8BDA88A30E0
:10E4300010F4805D04C0895A183509F48F7DD3012A
:10E440008E933D01992309F099CF083041F4F3FEF2
:10E4500006C0803321F080E3FD0182933F01CE01AD
:10E460000196382E3618F8E23F0E0BC0112309F43E
:10E470006CC03E010894611C711C1983B1E03B2EF5
:10E4800019A6032D2DA4231827FC222489A588234F
:10E4900011F00F5F02C0F6FC0E5F020DEF2CFF249F
:10E4A000C70180739070892B49F48CA5801B682F5D
:10E4B0002C968EAD9FAD2C970E94E66F89A5882380
:10E4C00031F041E050E0BE01675D7F4F0AC0E6FEDB
:10E4D0000EC080E38AA71BA742E050E0BE01665D44
:10E4E0007F4F2C968EAD9FAD2C970E94B76FC701C2
:10E4F00080739070809749F48CA5801B682F2C96B0
:10E500008EAD9FAD2C970E94F76F622D2C968EAD2D
:10E510009FAD2C970E94F76F832D992787FD9095CB
:10E52000AC01B3012C968EAD9FAD2C970E94B76FB6
:10E53000E4FE89CD2CA5201B2CA7622F2C968EAD36
:10E540009FAD2C970E94E66F7ECDE2E1CB5C0C94F0
:10E5500088772FB740E0F894E0E0F0E081E2809324
:10E5600057009491E2E0F0E0809357003491E4E0AA
:10E57000F0E08093570084912FBF9E3199F4363993
:10E5800041F4893011F441E00DC08A3059F442E081
:10E5900009C0373939F4863011F443E003C08530BF
:10E5A00009F444E0842F992708959FB7F894809147
:10E5B000C900877F8093C9008091C9008F7E8093B6
:10E5C000C9008091C9008F778093C9008091C900EC
:10E5D0008F7B8093C9008091C9008F7D8093C90093
:10E5E00052985A9A53985B9A9FBF08951F93CF935E
:10E5F000DF93182F8091B103882309F48DC0809197
:10E60000EF01181709F488C08091B003882321F422
:10E610000E94A9728093B0038AEC9CE09F938F9331
:10E62000C0EFD2E1DF93CF93E091BC03F091BD0343
:10E6300009950F900F900F900F90812F992782309E
:10E64000910501F1833091052CF4009761F0019759
:10E6500069F024C084309105D9F084309105ACF084
:10E660000597C9F01BC08AEB9CE002C088EA9CE0D9
:10E670009F938F93DF93CF93E091BC03F091BD0301
:10E68000099518C08FE89CE0F3CF8CE69CE0F0CFB2
:10E690008EE59CE0EDCF86E59CE0EACF87ED9CE03F
:10E6A0009F938F93DF93CF93E091BC03F091BD03D1
:10E6B000099510E00F900F900F900F908091B0038C
:10E6C000843011F0823099F40E94D572812F8150EC
:10E6D000833018F40E9437671DC0143019F40E946B
:10E6E000A16E18C01530B1F40E94D66C13C011236E
:10E6F00089F08DEE9CE09F938F9380EF92E19F9342
:10E700008F93E091BC03F091BD0309950F900F909A
:10E710000F900F901093EF01DF91CF911F9108950B
:10E720000F931F9381E08093B1034091EE01E6E0E7
:10E73000FCE020E030E05FE4849199272F5F3F4FB9
:10E74000829FB001839F700D929F700D1124462708
:10E750005150319657FFF0CF4093EE01EEEDFBE0C4
:10E7600020E030E057E2849199272F5F3F4F829F4E
:10E77000B001839F700D929F700D11244627515058
:10E78000319657FFF0CF4093EE018091B00388237C
:10E7900021F40E94A9728093B0038091EE0183342A
:10E7A00059F088E190E029E20FB6F894A89580939B
:10E7B00060000FBE2093600088E090E79093BD0357
:10E7C0008093BC0388E09DE09F938F9300EF12E15C
:10E7D0001F930F93E091BC03F091BD0309950F9037
:10E7E0000F900F900F9081E690E09F938F9382E5BA
:10E7F00090E09F938F931F921F92809102016AE095
:10E800000E94FC76892F99279F938F938091020114
:10E810000E94FC7699279F938F938EE29DE09F93B1
:10E820008F931F930F93E091BC03F091BD03099563
:10E8300086E09CE09F938F931F930F93E091BC031E
:10E84000F091BD0309958EED9BE09F938F931F93ED
:10E850000F93E091BC03F091BD0309958DB79EB76E
:10E8600046968DBF82E69DE09F938F931F930F93F3
:10E87000E091BC03F091BD03099582EC8093810087
:10E8800080916F00806280936F000F900F900F90C7
:10E890000F901F910F9108958091B103882361F02B
:10E8A0008091EF01843011F40E94126F8091EE018B
:10E8B000833411F01092B10308951F920F920FB696
:10E8C0000F9211242F933F934F935F936F937F93F6
:10E8D0008F939F93AF93BF93EF93FF932091CE00BD
:10E8E0008091FA018823B1F02093C6008091FA014B
:10E8F000823029F52F3F19F58FEF94E3ACE0B0E0BB
:10E90000C297A109B109B7FFFBCF8091FF038093A4
:10E91000CE0015C09091EF01892F8150833020F4F3
:10E92000822F0E9492670BC0943021F4822F0E94A4
:10E93000056F05C0953019F4822F0E94446EFF9137
:10E94000EF91BF91AF919F918F917F916F915F9167
:10E950004F913F912F910F900FBE0F901F901895E0
:10E96000002422273327442751E0BB27EE27FF2727
:10E97000A0E1660F771F881F991F001C221F331FFD
:10E98000441F660F771F881F991F001C221F331F0B
:10E99000441F2AF4050E2B1F3E1F4F1F04C0051AEB
:10E9A0002B0B3E0B4F0B550FBB1FEE1F587F5560B7
:10E9B00047FD5250AA95E9F6E695B7955795E69525
:10E9C000B7955795852F9B2F08952227332741E030
:10E9D000552768E0880F991F221F331F880F991F42
:10E9E000221F331F1AF4240F351F02C0241B350BBE
:10E9F000440F551F487F456037FD42506A9551F7D7
:10EA00005695479556954795842F0895AA2797FFC1
:10EA100004C0809590958A1F9A1F77FF04C0609567
:10EA200070956A1F7A1F669F9001779FA001679F6C
:10EA3000300D411D5A1F300D411D5A1F889FF00196
:10EA4000999F2E0F3F1F401D511D899F300D411D65
:10EA50005A1F300D411D5A1FCA01B901112480CF20
:10EA6000FB01DC0102C005900D9241505040D8F7E7
:10EA70000895FC014150504030F001900616D1F746
:10EA80003197CF010895882799270895A0E0B0E035
:10EA9000ECE4F5E70C9474776C017B01EA01590111
:10EAA00021978FEFCF3FD80789F086010894C11CCA
:10EAB000D11CC7010894E11CF11CF5010995F8016E
:10EAC00080832197FFEFCF3FDF0779F7EAE0CDB7EB
:10EAD000DEB70C949077CF92DF92EF92FF920F9374
:10EAE0001F937C016B01FB010995082FC70101965B
:10EAF000F6010995182FC8011F910F91FF90EF9013
:10EB0000DF90CF900895A0E0B0E0E9E8F5E70C943D
:10EB100076778C017B01EA01690121978FEFCF3F66
:10EB2000D80771F0F70121917F01C8010F5F1F4FD6
:10EB3000622FF60109952197FFEFCF3FDF0791F78D
:10EB4000E8E0CDB7DEB70C949277CF92DF92EF92E8
:10EB5000FF920F931F936C018B017A01FA010995C3
:10EB6000812F9927682FC6010196F70109951F91FA
:10EB70000F91FF90EF90DF90CF9008955058BB27F2
:10EB8000AA270ED0E0C0D1D030F0D6D020F031F49A
:10EB90009F3F11F41EF4C6C00EF4E095E7FBBCC025
:10EBA000E92FE2D080F3BA1762077307840795074D
:10EBB00018F071F49EF5FAC00EF4E0950B2EBA2F02
:10EBC000A02D0B01B90190010C01CA01A001112473
:10EBD000FF27591B99F0593F50F4503E68F11A161F
:10EBE000F040A22F232F342F4427585FF3CF4695B0
:10EBF00037952795A795F0405395C9F77EF41F16D2
:10EC0000BA0B620B730B840BBAF09150A1F0FF0F9B
:10EC1000BB1F661F771F881FC2F70EC0BA0F621F87
:10EC2000731F841F48F4879577956795B795F79577
:10EC30009E3F08F0B3CF9395880F08F09927EE0F09
:10EC400097958795089598D088F09F5790F0B92FA1
:10EC50009927B751A0F0D1F0660F771F881F991F31
:10EC60001AF0BA95C9F712C0B13081F09FD0B1E067
:10EC700008959CC0672F782F8827B85F39F0B93F77
:10EC8000CCF3869577956795B395D9F73EF4909533
:10EC90008095709561957F4F8F4F9F4F0895E894B1
:10ECA00009C097FB3EF490958095709561957F4FD4
:10ECB0008F4F9F4F9923A9F0F92F96E9BB27939582
:10ECC000F695879577956795B795F111F8CFFAF492
:10ECD000BB0F11F460FF1BC06F5F7F4F8F4F9F4FC3
:10ECE00016C0882311F096E911C0772321F09EE821
:10ECF000872F762F05C0662371F096E8862F70E087
:10ED000060E02AF09A95660F771F881FDAF7880F60
:10ED10009695879597F9089597F99F6780E870E031
:10ED200060E008959FEF80EC089500240A94161681
:10ED3000170618060906089500240A9412161306E9
:10ED4000140605060895092E0394000C11F4882377
:10ED500052F0BB0F40F4BF2B11F460FF04C06F5F93
:10ED60007F4F8F4F9F4F089557FD9058440F551F69
:10ED700059F05F3F71F04795880F97FB991F61F03D
:10ED80009F3F79F087950895121613061406551FB4
:10ED9000F2CF4695F1DF08C0161617061806991F20
:10EDA000F1CF86957105610508940895E894BB2715
:10EDB00066277727CB0197F90895629FD001739F4B
:10EDC000F001829FE00DF11D649FE00DF11D929F07
:10EDD000F00D839FF00D749FF00D659FF00D992746
:10EDE000729FB00DE11DF91F639FB00DE11DF91F6A
:10EDF000BD01CF0111240895991B79E004C0991F2A
:10EE0000961708F0961B881F7A95C9F78095089584
:10EE1000AA1BBB1B51E107C0AA1FBB1FA617B70740
:10EE200010F0A61BB70B881F991F5A95A9F780955C
:10EE30009095BC01CD01089597FB092E07260AD0B5
:10EE400077FD04D0E5DF06D000201AF470956195B7
:10EE50007F4F0895F6F7909581959F4F0895A1E211
:10EE60001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F44
:10EE7000FF1FA217B307E407F50720F0A21BB30B8F
:10EE8000E40BF50B661F771F881F991F1A9469F70B
:10EE900060957095809590959B01AC01BD01CF0167
:10EEA000089597FB092E05260ED057FD04D0D7DF15
:10EEB0000AD0001C38F450954095309521953F4F6D
:10EEC0004F4F5F4F0895F6F7909580957095619537
:10EED0007F4F8F4F9F4F08952F923F924F925F9297
:10EEE0006F927F928F929F92AF92BF92CF92DF925A
:10EEF000EF92FF920F931F93CF93DF93CDB7DEB7BF
:10EF0000CA1BDB0B0FB6F894DEBF0FBECDBF099452
:10EF10002A88398848885F846E847D848C849B84A9
:10EF2000AA84B984C884DF80EE80FD800C811B81B7
:10EF3000AA81B981CE0FD11D0FB6F894DEBF0FBEE6
:10EF4000CDBFED010895EE0FFF1F0590F491E02D68
:04EF50000994FFCF52
:10EF54005E010A010164FF01FFFFC01FC01F010120
:10EF640001737373FF03007D0000C409C4096400C6
:10EF74001148656C6C6F20576F726C640000000060
:10EF8400000000000000000000000000000000007D
:10EF9400000000000000000000000000000000006D
:10EFA400000000000000000000000000000000005D
:10EFB400000000000000000000000000000000004D
:10EFC4000053706F727400004E6F726D616C0000BC
:10EFD400426567696E6E6572000051756164726F97
:10EFE4000000640001200B050000ECFF0002040691
:10EFF400070808080706040200FEFCFAF9F8F8F806
:10F00400F9FAFCFE000204060708086440415A4667
:10F0140064640A02969696960840403A10FB30388B
:10F024000190D0030090D00300F4017800FF036442
:10F034000B0A0D0B0C0E0B0F10FA2001010170FFCF
:02F04400010FBA
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/Flight-Ctrl_MEGA644_V0_82a.hex
0,0 → 1,3892
:100000000C94BB060C9401070C9401070C94010797
:100010000C9401070C9401070C9401070C94010740
:100020000C9401070C9441190C9401070C940107DE
:100030000C9404340C9401070C9401070C940107F0
:100040000C9401070C9401070C9411160C940107F1
:100050000C942C0C0C9401070C94F60B0C940107D7
:100060000C94FD1B0C9401070C94972F0C94010722
:100070000C94C4750C9401070C94C070281C2D1CA2
:10008000321C3B1C521C691C791C891CA61C921E2C
:10009000691C541D651D941DB21DCF1D291E841E93
:1000A0006220F420B12131229A224A235125AE2523
:1000B0001B266526B026FD264E27B0270F28A92827
:1000C00044293E2AB62FEA2F2D309D30B530F63028
:1000D000AD317432743274327432743274327432B8
:1000E000743274327432743229322B3230324832E4
:1000F0004A320A0D426174743A0020256420436537
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E25642563005396
:10049000657474696E673A2564202573004861723B
:1004A0006477617265204572726F7220313A2564FB
:1004B000202121004D697373696E6720424C2D43E2
:1004C00074726C3A25642121004D6978657220456B
:1004D00072726F722100493243204552524F5221AD
:1004E0002121004865696768743A20202535690034
:1004F000536574706F696E743A2535690050726582
:1005000073737572653A253569004F666673657455
:100510003A20202535690048656967687420636F53
:100520006E74726F6C0044495341424C454400481C
:10053000656967687420636F6E74726F6C004449FC
:100540005341424C4544006163742E2062656172E0
:10055000696E67004E69636B3A20202020202025B9
:10056000356900526F6C6C3A202020202020253500
:100570006900436F6D706173733A202020253569DF
:10058000004B313A25346920204B323A253469201A
:10059000004B333A25346920204B343A2534692006
:1005A000004B353A25346920204B363A25346920F2
:1005B000004B373A25346920204B383A25346920DE
:1005C000004E693A2534692020526F3A253469205B
:1005D0000047733A253469202047693A2534692059
:1005E0000050313A253469202050323A25346920B0
:1005F0000050333A253469202050343A253469209C
:10060000004779726F202D2053656E736F72004E14
:1006100069636B25346920282533692E25692900F3
:10062000526F6C6C25346920282533692E25692981
:100630000047696572253469202825336929004EF1
:1006400069636B2025346920282533692E25782994
:1006500000526F6C6C2025346920282533692E25C3
:1006600078290059617720202534692028253369AD
:1006700029004E69636B20253469202825336929B8
:10068000282533692900526F6C6C20253469202895
:1006900025336929282533692900596177202025C8
:1006A00034692028253369292825336929004143E5
:1006B00043202D2053656E736F72004E69636B206B
:1006C00025346920282533692900526F6C6C202558
:1006D0003469202825336929005A20202020253418
:1006E0006920282533692900566F6C746167653A63
:1006F0002020202533692E253169560043757272FA
:10070000656E743A2020202533692E253169410019
:10071000506F7765723A20202020202534695700D9
:100720004469736368617267653A202535696D4174
:10073000680052656365697665720052432D5253B5
:1007400053493A202020202534690052432D517509
:10075000616C6974793A202534690052432D4368ED
:10076000616E6E656C733A25346900436F6D70611C
:1007700073730048656164696E673A2020253569A6
:100780000056616C75653A2020202025356900539C
:10079000746172743A2020202025356900506F74EE
:1007A00069313A202025336900506F7469323A204C
:1007B0002025336900506F7469333A20202533694E
:1007C00000506F7469343A202025336900506F74EB
:1007D00069353A202025336900506F7469363A2014
:1007E0002025336900506F7469373A20202533691A
:1007F00000506F7469383A202025336900536572C0
:10080000766F202000536574706F696E7420202508
:10081000336900506F736974696F6E3A20253369CC
:100820000052616E67653A2533692D2533690045AD
:10083000787465726E436F6E74726F6C2020004E18
:10084000693A2534692020526F3A253469200047DF
:10085000733A253469202047693A253469200048D5
:10086000693A253469202043663A253469200042DC
:100870004C2D4374726C204572726F727320002588
:10088000336420253364202533642025336420001D
:1008900025336420253364202533642025336420E8
:1008A00000253364202533642025336420253364F8
:1008B0002000424C2054656D7065726174757265DC
:1008C00000253369202533692025336920253369C4
:1008D00020002533692025336920253369202533FD
:1008E00069200025336920253369202533692025B7
:1008F00033692000424C2D4374726C20666F756E14
:1009000064200020256320202025632020202563EB
:10091000202020256320002025632020202563201F
:10092000202025632020202563200020256320200F
:10093000202D2020202D2020202D2000313000319E
:100940003100313200466C696768742D54696D65F9
:10095000202000546F74616C3A2535756D696E0006
:100960004163743A20202535756D696E00287265E3
:1009700073657429000A0D47656E65726174696E4E
:10098000672064656661756C7420506172616D6585
:1009900074657220536574202564000A0D557369CF
:1009A0006E6720506172616D657465722053657465
:1009B000202564000A0D47656E65726174696E6773
:1009C0002064656661756C74204D69786572205489
:1009D00061626C65000A0D4D697865722D436F6E1A
:1009E0006669673A202725732720282575204D6FD3
:1009F000746F727329000A0D3D3D3D3D3D3D3D3D07
:100A00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D16
:100A10003D3D3D3D3D3D000A0D414343206E6F7419
:100A20002063616C69627261746564210D0A000063
:100A3000008F001E01AD013B02CA025803E6037499
:100A40000402058F051B06A7063307BE074808D218
:100A5000085B09E3096B0AF20A780BFD0B810C04B1
:100A60000D860D070E870E060F840F00107B10F504
:100A7000106E11E5115B12CF124213B313231492BF
:100A800014FE146A15D3153B16A11605176717C86F
:100A90001727188318DE1837198E19E319361A87A5
:100AA0001AD61A231B6E1BB61BFD1B411C831CC3CD
:100AB0001C001D3C1D751DAB1DE01D121E421E6F4E
:100AC0001E9A1EC31EE91E0D1F2E1F4D1F691F8477
:100AD0001F9B1FB01FC31FD31FE11FEC1FF51FFB80
:100AE0001FFF1F002003010000966A000201018918
:100AF0006B010302021D6C020003037A6C2532694C
:100B00002E25316956002533642563202530336452
:100B10006D00537461747573004552524F523A2000
:100B200025326400253469202532693A253032693E
:100B3000002534696D25630025336920253369203C
:100B40002533692025336900253369202533692041
:100B5000253369202533690054656D7065726174B1
:100B600075726573202020200025634320202020FB
:100B700020002532692E2531695620202533692E23
:100B8000253169410025346957202536696D416852
:100B9000002532756D2F73205361743A256420004F
:100BA00020203344004E6F4678004447505300489D
:100BB0006F6D653A2533646D202533642563004EDF
:100BC0006F204E6176694374726C21000A0D77774D
:100BD000772E4D696B726F4B6F707465722E646502
:100BE0002028632920486953797374656D73204701
:100BF0006D6248000A0D74686520757365206F6624
:100C0000207468697320736F6674776172652069F8
:100C100073206F6E6C79207065726D697474656491
:100C2000200A0D6F6E206F726967696E616C204DCE
:100C3000696B726F4B6F707465722D486172647767
:100C4000617265004143542044534C004A65746905
:100C500020736174656C6C6974005370656B747299
:100C6000756D20736174656C6C697420284C6F77A6
:100C7000207265736F6C7574696F6E2900537065AF
:100C80006B7472756D20736174656C6C6974202867
:100C90003230343829005370656B7472756D20736F
:100CA0006174656C6C6974004D756C746973696707
:100CB0006E616C2050504D000A0D52656365697677
:100CC00065723A2000756E6B6E6F776E2E205573CD
:100CD000696E672050504D2E2E2E006E6F7420735B
:100CE0007570706F727465642062792068617264D7
:100CF0007761726521000A0D3D3D3D3D3D3D3D3D25
:100D00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D13
:100D10003D3D3D3D3D3D3D3D3D3D3D000A0D466C6B
:100D200069676874436F6E74726F6C0A0D48617204
:100D300064776172653A25642E25640A0D536F66E7
:100D400074776172653A5625642E25642563200008
:100D50000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3D26
:100D60003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D70003D3D3D3D3D0011241FBECFEFD0E1DEBF24
:100D8000CDBF11E0A0E0B1E0E2E2F2EF02C00590D9
:100D90000D92A23FB107D9F718E0A2EFB1E001C070
:100DA0001D92A43BB107E1F76AEAE2E0F0E081E2DC
:100DB000809357007491AE014F5F5F4F20EF37EF84
:100DC000DA019FE0F9012F5F3F4F84918D9391509D
:100DD00097FFF8CF773911F40000FECFFA019EE0BB
:100DE000819168276095915097FFFACF888968179D
:100DF00021F0773911F40000FECF0E94C2070C9455
:100E000010790C94000080911906E82FFF27EE0F4F
:100E1000FF1FED5BF84F808191818D5E9F4F14F035
:100E200010920301808191818A5B9F4FCCF4809165
:100E300003018823A9F481E08093030180915C047D
:100E40008F5F80935C04853038F088EE93E0909358
:100E500025028093240204C066E970E00E946E3788
:100E600080915C0499279093EA058093E9050895A1
:100E70001F93CF93DF93182F882389F082EF90E0A0
:100E80009F938F9386EF92E19F938F93E091280435
:100E9000F091290409950F900F900F900F90809179
:100EA0003C06823308F044C084EF91E00E941C1796
:100EB000EC01112329F0CE010E9425178823D9F3D4
:100EC000C2E0D0E026E530E080911E0190911F0144
:100ED0008217930730F02196255D3F4FC730D1052B
:100EE00098F380913C069927C89F9001C99F300DC7
:100EF000D89F300D1124209300011123D9F068EC04
:100F000070E08C2F0E946E37DF93CF938AEF90E0D2
:100F10009F938F9386EF92E19F938F93E0912804A4
:100F2000F091290409958DB79EB706968DBF02C032
:100F300080930001112311F1809100016AE00E9469
:100F40006378892F99279F938F93809100010E9446
:100F5000637899279F938F9385E091E09F938F9378
:100F600086EF92E19F938F93E0912804F0912904FA
:100F700009952DB73EB7285F3F4F2DBFDF91CF9129
:100F80001F910895CFEFD0E1DEBFCDBF8824992413
:100F900014B815B807EE13E00253104017FFFCCF4A
:100FA000189B06C0199B02C08DE007C08BE005C0EE
:100FB000199B02C084E101C08AE08093020181E8AC
:100FC00087B93E9A8FEF88B98BE184B981E085B902
:100FD0008EE38AB987E48BB9469A84B7877F84BF4A
:100FE000809160008861809360001092600084ECC2
:100FF00099E0909325028093240210921803109296
:101000001703109248071092470710921A03109284
:10101000190310921C0310921B032091020124312A
:1010200028F084EC94E0A0E0B0E004C08BE095E010
:10103000A0E0B0E08093960190939701A09398016F
:10104000B09399012A3011F0243110F0289801C092
:10105000289A0E9485170E9456170E94FE120E942D
:10106000E8330E94B51A81E00E944B2F0E943E6334
:101070000E94696D0E94F774809102018C3010F417
:10108000299A01C0299878940E94652E80916C025B
:10109000826080936C0210926F020E94904284EFF3
:1010A00091E00E941C178C0180916C0280FD05C0AC
:1010B000C8010E9425178823B9F38FE191E09F931F
:1010C0008F93B6EFAB2EB2E1BB2EBF92AF92E09101
:1010D0002804F0912904099580EA9FE00E941C17DA
:1010E0008C01C0E0D0E00F900F900F900F90A5EE14
:1010F000EA2EA6E0FA2EF9E9CF2EF6E0DF2E0E94C6
:10110000904280916C0280FD05C0C8010E942517A5
:101110008823B9F3F60180811816ACF40BC00E9445
:10112000904280916C0280FD05C0C8010E94251785
:101130008823B9F3C8010E942517882321F4F701F9
:101140008081882364F7F701808187FF18C021968A
:10115000DF93CF93219781E391E09F938F93BF9289
:10116000AF92E0912804F091290409958091F20151
:101170008F5F8093F2018DB79EB706968DBF219643
:10118000E4E0F0E0CE0EDF1E88E090E0E80EF91E0D
:10119000CC30D10508F4B3CFC0E0D0E002EE16E0C9
:1011A000E9E9EE2EE6E0FE2EF801838187FD1CC002
:1011B000F70180811816C4F42196DF93CF9321970D
:1011C00084E391E09F938F9386EF92E19F938F93B7
:1011D000E0912804F0912904099582E0809322028D
:1011E0008DB79EB706968DBFF80183818078838383
:1011F000219684E090E0E80EF91E085F1F4FCC3086
:10120000D10590F282E591E09F938F93C6EFD2E1F2
:10121000DF93CF93E0912804F091290409959091F0
:1012200017068091F2010F900F900F900F90981772
:1012300028F48091420480618093420488E791E021
:101240009F938F93DF93CF93E0912804F09129042B
:10125000099588EE93E00E941C178C010E94BB1A2E
:101260000F900F900F900F90C8010E9425178823B0
:10127000D9F388E991E09F938F93DF93CF93E09127
:101280002804F0912904099580E00E94303880916B
:1012900002010F900F900F900F908A3011F084315F
:1012A00010F0289801C0289A80ED97E090932502CD
:1012B0008093240285E580935E048EE090E00E9496
:1012C0009A2C9927182F00278FE090E00E949A2CE3
:1012D000080F111D1093F8010093F7018AE090E0C8
:1012E0000E949A2C9927182F00278BE090E00E94EB
:1012F0009A2C080F111D1093F6010093F5010F5F52
:101300001F4F39F08091F7019091F8018F5F9F4F47
:1013100041F41092F8011092F7011092F601109228
:10132000F5018091F5019091F6019F938F93809143
:10133000F7019091F8019F938F938DE991E09F932E
:101340008F93DF93CF93E0912804F09129040995BE
:101350008DB79EB708968DBF80EC91E09F938F93D9
:10136000DF93CF93E0912804F091290409958091AF
:1013700025060F900F900F900F90E0912804F091A8
:10138000290482FF07C08CEC91E09F938F93DF9339
:10139000CF9308C088ED91E09F938F9386EF92E101
:1013A0009F938F9309950F900F900F900F900E942D
:1013B000D91F88E893E1909393018093920181E093
:1013C00080935D040E94380780913F060E945D74FF
:1013D0008AEE91E09F938F93DF93CF93E09128045F
:1013E000F0912904099580ED97E00E941C178C016B
:1013F0008AEF90E00E941C17EC0183E08093C10506
:101400000F900F900F900F908091FA018111FFCFF4
:10141000CE010E942517882339F084E690E00E94CF
:101420001C17EC010E94B37580912802882309F4EF
:10143000D5C180911001882309F4D0C110922802EF
:1014400080915C04882319F00E94030702C00E9467
:101450006A450E949042209102012A3011F0243105
:1014600010F0289801C0289A80911D0390914204A1
:10147000882339F080911D03815080931D03977F4D
:101480000AC080916F00806280936F0010924407C1
:10149000109243079860909342048091920190913A
:1014A000930101979093930180939201809192010F
:1014B00090919301892B21F080916D028823C9F1CD
:1014C0008091920190919301892BD9F40E94752FFC
:1014D00085E090E090939301809392018091FB05C9
:1014E0009091FC0501969093FC058093FB058091FB
:1014F00042048160809342048091C205826080939F
:10150000C20580910801909109018F5F9F4F19F5E5
:10151000809114038823F9F080E197E290932502EB
:101520008093240280E890E0909309018093080161
:1015300012C02A3011F0243110F0289801C0289AE6
:101540008091240290912502892B29F480914204F4
:101550008E7F8093420480912802882309F03EC147
:1015600080910E01882311F00E949C170E94411364
:101570000E947C0EC8010E942517882309F42AC105
:101580000C5E1F4F80916D0290914204882339F0C8
:101590009260909342048091C20582600CC09D7F4E
:1015A000909342048091920190919301079728F0C3
:1015B0008091C2058D7F8093C205809192019091A8
:1015C0009301079728F0809142048E7F8093420414
:1015D00080910501882321F081508093050125C069
:1015E000809368041092F5021092F4021092F302B4
:1015F0001092F2021092F1021092F0028091080112
:10160000909109018F5F9F4F81F480911D03882382
:1016100061F488E99AE3909325028093240280E0A4
:101620009CE090930901809308018091E901893C35
:1016300048F081508093E901809142048B7F809330
:10164000420430C0809121088823E1F08091420457
:1016500084608093420480910801909109018F5F1A
:101660009F4F81F480911403882361F088E99AE305
:10167000909325028093240280E098EA90930901D8
:10168000809308011092FA031092F9031092F80364
:101690001092F7038FEF9FEF90934F0880934E08BF
:1016A0001092E90180910001282F332780911E01BB
:1016B00090911F0182179307CCF48091E902806218
:1016C0008093E90280910801909109018F5F9F4FFB
:1016D000C1F480E797E1909325028093240280E093
:1016E00093E090930901809308010BC0809124023C
:1016F00090912502892B29F48091E9028F7D8093B6
:10170000E9020E944A6784E08093230280911403D7
:10171000882329F45AEA852E55E0952E12C080912F
:10172000F9018F5F8093F901813359F41092F90127
:101730008091F3019091F40101969093F4018093CC
:10174000F3010894811C911CF2E78F16FBE09F06C1
:1017500009F040C0882499242091F7013091F801C4
:101760002F5F3F4F3093F8012093F7018091F501EF
:101770009091F60101969093F6018093F501832FE5
:101780009927682F8EE090E00E94A22C8091F701AB
:101790009091F8019070682F8FE090E00E94A22C49
:1017A0008091F5019091F601892F9927682F8AE0A1
:1017B00090E00E94A22C8091F5019091F60190702A
:1017C000682F8BE090E00E94A22C84E190E00E94C0
:1017D0001C178C010E949A670E94806D80912302E1
:1017E000882309F011CE0E945F630ECE1F920F92E4
:1017F0000FB60F9211248F939F93EF93FF938091D5
:1018000007018823E1F4809114029091150201965A
:101810009093150280931402FC01E95EFA4FE08177
:10182000ED3019F08A3A910539F4109215021092B0
:10183000140281E080930701E093C60004C0109277
:10184000150210921402FF91EF919F918F910F90CA
:101850000FBE0F901F9018951F920F920FB60F9208
:1018600011242F933F934F935F936F937F938F93A5
:101870009F93AF93BF93CF93EF93FF9390E08091AB
:10188000FA01813029F48091C6008093CE00CCC04B
:101890008091FA01823029F48091C60080936B0414
:1018A000C3C08091C60080930C0250911A025A3A2C
:1018B00010F090931B0280910C028D3009F065C0EE
:1018C00080911B02823009F060C090931B02852F2B
:1018D000992785599B4FFC01329740812091160230
:1018E00030911702241B3109DC0111978C91281BC0
:1018F0003109C9019F70909317028093160246E048
:10190000969587954A95E1F7982F935C90931802E6
:101910002F733070235C209319028081981729F46B
:101920008C91281711F491E006C090E08091090293
:101930008F5F80930902C0910B02CC2309F074C021
:10194000992309F471C081E080930B02580F5093E2
:1019500008025150E52FFF27E559FB4F8DE08083AA
:1019600080916D04823509F05FC00E94D91F88E123
:1019700090E02CE00FB6F894A895809360000FBE1D
:1019800020936000C09322024FC020911B02822F3F
:10199000992781309105F9F0823091051CF4892B4B
:1019A00021F040C0029711F13DC080910C028332BA
:1019B00039F480910B02882319F481E080931B0293
:1019C00080910C0280936B0481E080931A028091D5
:1019D0000C02992722C02F5F20931B02E52FFF27BF
:1019E000E559FB4F80910C02808309C0E52FFF274A
:1019F000E559FB4F80910C0280835A3A20F45F5FD7
:101A000050931A0202C010921B0220910C02809186
:101A1000160290911702820F911D909317028093E6
:101A2000160202C010921B02FF91EF91CF91BF915D
:101A3000AF919F918F917F916F915F914F913F9166
:101A40002F910F900FBE0F901F901895AC01A0E042
:101A5000B0E09D01A817B90748F4E7E1F5E08191EE
:101A6000280F311D1196A417B507C8F33F70FD016B
:101A7000E95EFA4FC90156E0969587955A95E1F7C8
:101A8000835C80831196FD01E95EFA4F2F733070FD
:101A9000822F835C8083A85EBA4F8DE08C93109276
:101AA0000701809117058093C6000895A0E0B0E07B
:101AB000ECE5FDE00C94DC782C859D850E85BB243F
:101AC00083E2809317059F59909318052093190579
:101AD00033E0E32EF12C002309F49EC0CF84D88894
:101AE000BE016D5E7F4FA989BA890150109709F434
:101AF00093C01097B9F0F601EB0DF11DB3949081EE
:101B0000119791F4002349F1FB016E5F7F4FDB01D8
:101B1000C080D1806E5F7F4F0D90BC91A02DBB2403
:101B2000015002C090E019C01097B9F0F601EB0D1A
:101B3000F11DB3944081119791F4002341F1FB0111
:101B40006E5F7F4FDB01C080D1806E5F7F4F0D9055
:101B5000BC91A02DBB24015002C040E018C01097DA
:101B6000B1F0F601EB0DF11DB3941081119781F4E2
:101B7000002371F0FB013296DB01CD90DC90BF01B8
:101B80006E5F7F4FA081B181BB24015001C010E086
:101B9000F701E95EFA4F892F86958695835C8083ED
:101BA0000894E11CF11CF701E95EFA4F892F99278F
:101BB0008370907024E0880F991F2A95E1F75527CC
:101BC0009A0194E0369527959A95E1F7822B835CEC
:101BD00080830894E11CF11CF701E95EFA4F4F7015
:101BE0005070440F551F440F551F812F992726E031
:101BF000969587952A95E1F7842B835C80830894DA
:101C0000E11CF11CF701E95EFA4F1F73135C1083AE
:101C10000894E11CF11C6ACFC7010E94260DE9E07F
:101C20000C94F878A3E07A2F4091080246504423A0
:101C300009F458C0E72FFF27E559FB4F80818D53EA
:101C40007F5FE72FFF27E559FB4F20812D537F5FF3
:101C5000E72FFF27E559FB4F30813D537F5FE72F8B
:101C6000FF27E559FB4F60816D537F5F9927880FF0
:101C7000991F880F991F522F52955F70582B822FF2
:101C800099278F709070F4E0880F991FFA95E1F70B
:101C9000232F26952695282B832F992783709070C4
:101CA000E6E0880F991FEA95E1F7682B41504F3F16
:101CB000C9F0EA2FFF27E559FB4F5083AF5F415032
:101CC0004F3F81F0EA2FFF27E559FB4F2083AF5F9D
:101CD00041504F3F39F0EA2FFF27E559FB4F608312
:101CE000AF5FA5CF8EE694E0909307028093060243
:101CF000A350A09305020895A2E0B0E0E2E8FEE060
:101D00000C94E27880910B02882309F46BC40E9442
:101D1000120E80916C04823609F025C380916D0407
:101D200099278037910509F4C1C081379105C4F422
:101D30008A36910509F48DC28B36910544F48B34B3
:101D4000910571F18636910509F46CC10CC38D368D
:101D5000910509F47BC08E36910509F45FC003C379
:101D600084379105D1F1853791054CF48137910580
:101D700009F4A3C08337910509F4F1C0F4C2873791
:101D8000910509F428C2883791052CF4853791050F
:101D900009F4E4C1E8C28937910509F47AC1E3C2C4
:101DA000E0910602F09107028081918190933003C7
:101DB00080932F0320912D0330912E03821B930BD0
:101DC000845E9D4F68E671E00E948378845B90405A
:101DD00090932C0380932B03C6C280910802A0919C
:101DE0000602B0910702853140F080E1E6E4F4E0BC
:101DF0000D9001928A95E1F70DC08D919D910D9006
:101E0000BC91A02D8093460490934704A09348046E
:101E1000B093490480EF809303024BC08091070187
:101E20008823E1F38DE490E09F938F938CE896E014
:101E30009F938F9381E08F938F938EE48F930E9473
:101E4000560D8DB79EB707968DBF8DC2A091060225
:101E5000B09107021C91113081F48DE4ECE8F6E0BA
:101E60000D9001928A95E1F70E94A22D198380912D
:101E700042048F7E8093420401C019828091070141
:101E80008823E1F381E090E09F938F93CE01019648
:101E90009F938F9381E08F938F938DE48F930E9414
:101EA000560DADB7BEB71796ADBF5DC281E080934A
:101EB0000E028FEF8093050156C2E0910602F09169
:101EC0000702E0818E2F8A508A3058F48983882354
:101ED00011F481E003C0863010F085E0898361E071
:101EE0000EC08E2F84518A3070F48983882311F4B8
:101EF00081E003C0863010F085E0898360E089814D
:101F00000E94222E12C0E983EF3F19F40E94052E91
:101F100089838981882311F481E003C0863010F021
:101F200085E0898389810E94B82C809107018823EC
:101F3000E1F383E790E09F938F9388E196E09F938E
:101F40008F9381E090E09F938F93CE0101969F93B2
:101F50008F9382E08F9381E08F9381E572C120910E
:101F6000060230910702D9018C918150853008F02A
:101F700040C0F90181818535E1F52F5F3F4F83E74F
:101F8000E8E1F6E0D9010D9001928A95E1F7F901B7
:101F900082910E94212D809159069927AA27BB275B
:101FA000BC01CD0124EC39E040E050E00E944478CF
:101FB000DC01CB018093D5019093D601A093D7018A
:101FC000B093D80180915A069927AA27BB27BC0154
:101FD000CD010E944478DC01CB018093D101909324
:101FE000D201A093D301B093D4010E94052E89831E
:101FF00001C01982809107018823E1F381E090E01C
:102000009F938F93CE0101969F938F9381E08F933F
:102010008F9383E58F930E94560D8DB79EB70796D9
:102020008DBF26C0E0910602F0910702E0818E2F5D
:102030008150853018F48E2F0E94B82C0E94052EF6
:102040008983809107018823E1F381E090E09F93E9
:102050008F93CE0101969F938F9381E08F938F93FF
:1020600086E48F930E94560DADB7BEB71796ADBFED
:1020700080911403882329F46EE670E089810E9420
:102080006E3780E00E94380780913F060E945D74A1
:102090006AC1E0910602F09107028081992787FDCD
:1020A000909590935E0780935D078181992787FDC6
:1020B00090959093600780935F078281992787FDB1
:1020C000909590936207809361078381992787FD9C
:1020D000909590936407809363078481992787FD87
:1020E000909590936607809365078581992787FD72
:1020F000909590936807809367078681992787FD5D
:10210000909590936A07809369078781992787FD47
:10211000909590936C0780936B078085992787FD36
:10212000909590936E0780936D078185992787FD21
:1021300090959093700780936F078285992787FD0C
:10214000909590937207809371078385992787FDF7
:102150009095909374078093730705C1E0910602F0
:10216000F091070280810E9441338A83882319F409
:1021700081E0898301C01982809107018823E1F3FE
:1021800088E090E09F938F938AED96E09F938F93E2
:1021900021E030E03F932F93809106029091070257
:1021A0009F938F933F932F93CE0102969F938F938C
:1021B0003F932F93CE01820F931F9F938F9384E0C1
:1021C0008F9381E08F9385E58F930E94560DEDB735
:1021D000FEB773963CC080910502893008F4C3C0F5
:1021E00020910602309107022F5F3F4F88E0AAED51
:1021F000B6E0F90101900D928A95E1F7D9018E912F
:102200000E9497328A83882319F481E0898301C070
:102210001982809107018823E1F321E030E03F93A8
:102220002F93CE0102969F938F933F932F93CE01CE
:10223000820F931F9F938F9382E08F9381E08F9300
:1022400087E58F930E94560DEDB7FEB73B96EDBF25
:102250008AC00E9410748983823019F0843009F09A
:1022600082C0F8948091C1008F738093C1008091E7
:10227000C9008F738093C9008091C100877E8093CD
:10228000C1008091C900877E8093C9008091C800F9
:1022900087FF03C08091CE00F9CF8091C00087FFF7
:1022A00003C08091C600F9CFE0910602F0910702C9
:1022B0008081882359F581E08093FA011092CD0046
:1022C00080E490E08093CC008091CD008093C500A5
:1022D0008091CC008093C4008091CA008F7D809350
:1022E000CA008091CA008F7E8093CA008091C90085
:1022F0008B7F8093C9008091CA0084608093CA005C
:102300008091CA0082608093CA0003C082E08093FB
:10231000FA018091CA00877F8093CA008091C20031
:10232000877F8093C2008091C9008E7F8093C9000F
:102330008091C10088618093C1008091C90088614B
:102340008093C9008091C10080688093C100809112
:10235000C90080688093C90010926E0010926F00CF
:1023600010927000789480916D04992784369105BD
:1023700009F4CDC085369105ACF48136910509F498
:1023800081C0823691052CF48B34910509F45DC02F
:1023900021C18236910509F482C08336910509F482
:1023A00091C018C18C36910509F4FFC08D36910596
:1023B0004CF48736910509F40AC18836910509F471
:1023C000C4C008C18437910529F08637910509F406
:1023D000FAC000C180910802A0910602B0910702E4
:1023E000803140F080E1E6E4F4E00D9001928A95BE
:1023F000E1F70DC08D919D910D90BC91A02D809322
:10240000460490934704A0934804B09349048091F4
:1024100007018823E1F31F92809104018F9384E5E3
:102420008F930E94560D8AEF809303028FEF809363
:10243000050180EA9FE00E941C179093FC018093A5
:10244000FB010F900F900F90C5C0E0910602F09134
:102450000702808191819093300380932F03209114
:102460002D0330912E03821B930B845E9D4F68E6F3
:1024700071E00E948378845B904090932C0380935A
:102480002B03A8C0E0910602F0910702808180939F
:102490000601803298F08FE1809306010FC0A09171
:1024A0000602B09107028BE0EEE5F4E00D90019298
:1024B0008A95E1F780916704809303068FEF8093FC
:1024C000050188C08091FF0190910002892B89F459
:1024D000E0910602F0910702E081EE2351F08AE0DC
:1024E000E89FC00111240E941C1790933904809327
:1024F0003804E0910602F091070290818AE0989FEB
:10250000C0011124909300028093FF0115C08FEF4A
:1025100080930501E0910602F091070290818AE024
:10252000989FC00111249093020280930102892B8D
:1025300019F081E08093100280EA9FE00E941C174E
:102540009093FC018093FB0145C08FEF80930501C0
:10255000E0910602F0910702908197FD08C082E0A9
:1025600080930D021092FE011092FD011AC0909509
:1025700080916502892B8093650291818AE0989F02
:10258000C00111249093FE018093FD0184E08093AB
:102590000D0280EA9FE00E941C179093FC0180933B
:1025A000FB0181E08093110215C08FEF809305013C
:1025B000E0910602F091070280818093660281E03B
:1025C0008093120207C081E080930F0203C081E074
:1025D0008093130210920B021092070210920602CF
:1025E00010920502E3E0CE5F0C94FE78982F809164
:1025F000C00085FFFCCF9093C60008950F931F93F2
:1026000088E18093C1008091C00082608093C00007
:102610008091C10080688093C1008091C100806476
:102620008093C10000E010E00093C5008AE290E0D2
:102630008093C40080910102909102020E941C17B5
:1026400090933B0480933A048CED90E00E941C1719
:1026500090936A048093690410923C0482E580930D
:102660003D04109240048BE080933E0410923F049E
:102670001093070200930602109205021F910F911A
:102680000895A0E1B0E0E7E4F3E10C94DF788091F5
:102690000701882309F4C1C28091FB019091FC01DC
:1026A0000E942517882361F01092FE011092FD010F
:1026B0001092020210920102109200021092FF0189
:1026C0008091FD019091FE01892B41F080911505CB
:1026D000909116050E942517882329F480911102F4
:1026E000882309F460C080910701882309F45BC046
:1026F00080910D0201E211E08430A8F00E94ED1FEC
:1027000080E590E09F938F931F930F9381E08F93C9
:102710008F9388E48F930E94560D2DB73EB7295FA3
:102720003F4F2DBF34C01092670282E194E09F9327
:102730008F9382EE9FE19F938F93E0912804F09115
:102740002904099584E190E09F938F931F930F9341
:1027500081E090E09F938F938DE092E09F938F9321
:1027600082E08F9381E08F9388E48F930E94560DCF
:1027700080910D02982F8F5F80930D022DB73EB789
:10278000215F3F4F2DBF943010F010920D028091C9
:10279000FD019091FE010E941C17909316058093F5
:1027A00015051092110280911202882351F1809137
:1027B0000701882331F10E94ED1F80E590E09F938F
:1027C0008F9381E291E09F938F9321E030E03F93DC
:1027D0002F9380E291E09F938F933F932F9386E610
:1027E00092E09F938F9383E08F9381E08F938CE4AB
:1027F0008F930E94560D109212028DB79EB70F96BE
:102800008DBF80910F028823D1F08091070188232A
:10281000B1F08AE090E09F938F938CE394E09F93D4
:102820008F9381E08F938F9386E58F930E94560D4F
:1028300010920F022DB73EB7295F3F4F2DBF8091F9
:1028400013028823D9F0809107018823B9F08BE027
:1028500090E09F938F938EE594E09F938F9381E018
:102860008F93809104018F9387E48F930E94560D7C
:10287000109213028DB79EB707968DBF80916904A1
:1028800090916A040E942517882309F461C0809101
:102890000701882309F45CC0809134069927880FCA
:1028A000991F880F991F7C010027F7FC0095102FB6
:1028B0008091710390917203A0917303B09174039E
:1028C000BC01CD01A80197010E94B878309357044C
:1028D000209356048091690390916A03A0916B0341
:1028E000B0916C03BC01CD01A80197010E94B8789A
:1028F00030935904209358048091FE0280935A0427
:102900008091FD0280935B0488E090E09F938F9319
:1029100086E594E09F938F9381E08F9383E08F937C
:102920008BE68F930E94560D80915C042DB73EB7C5
:10293000295F3F4F2DBF853018F086E080935C04FF
:1029400083E690E00E941C1790936A0480936904C8
:102950008091010290910202892B41F080913A040A
:1029600090913B040E942517882321F48091100246
:10297000882339F180910701882319F10E94643678
:1029800082E490E09F938F9381EC95E09F938F93E7
:1029900081E08F938F9384E48F930E94560D109261
:1029A00010028DB79EB707968DBF8091010290915E
:1029B0000202009731F00E941C1790933B04809311
:1029C0003A048091FF0190910002892B09F4B8C06C
:1029D00080913804909139040E942517882309F4C6
:1029E000AFC080910701882309F4AAC08091340602
:1029F0009927880F991F880F991F7C010027F7FCE2
:102A00000095102F8091710390917203A091730330
:102A1000B0917403BC01CD01A80197010E94B87860
:102A200030932B0420932A048091690390916A03C8
:102A3000A0916B03B0916C03BC01CD01A80197017B
:102A40000E94B87830932D0420932C04209109081B
:102A500030910A0840910B0850910C08DA01C90125
:102A600063E0880F991FAA1FBB1F6A95D1F7820FD9
:102A7000931FA41FB51F820F931FA41FB51F209182
:102A80009601309197014091980150919901BC01B4
:102A9000CD010E94B87830932F0420932E048091AA
:102AA000390390913A03A0913B03B0913C0339E084
:102AB000B595A795979587953A95D1F7809330046A
:102AC0008091350390913603A0913703B09138037C
:102AD00029E0B595A795979587952A95D1F7809385
:102AE00031048091410390914203A0914303B0913E
:102AF000440309E0B595A795979587950A95D1F771
:102B0000809332048EE090E09F938F938AE294E06A
:102B10009F938F9381E08F938F9383E48F930E9491
:102B2000560D8091FF01909100020E941C17909316
:102B30003904809338042DB73EB7295F3F4F2DBF2E
:102B4000809106018F3F71F1992714E0880F991F3A
:102B50001A95E1F78E5E9D4F40E150E0BC01CE0139
:102B600001960E94977680E190E09F938F93CE012B
:102B700001969F938F9381E090E09F938F9386E0DF
:102B800091E09F938F9382E08F9381E08F9381E414
:102B90008F930E94560D8FEF809306018DB79EB7DD
:102BA0000B968DBF809103068823D1F08091070199
:102BB0008823B1F081E090E09F938F9383E096E0CB
:102BC0009F938F9381E08F938F9382E48F930E94E2
:102BD000560D109203062DB73EB7295F3F4F2DBF0C
:102BE00080910E028823C9F0809107018823A9F003
:102BF00084E390E09F938F9383E497E09F938F9378
:102C000081E08F938F9380E58F930E94560D1092F1
:102C10000E028DB79EB707968DBFE6E0C05F0C949D
:102C2000FB781F920F920FB60F9211242F933F93B0
:102C30005F936F937F938F939F93AF93BF93EF9324
:102C4000FF9320E080912302882329F080912302C2
:102C500081508093230280910B04882319F08150C6
:102C600080930B0480912B02815080932B028F3F25
:102C700009F05BC089E080932B028091290290913A
:102C80002A02019690932A028093290280910F01D3
:102C90008F5F817080930F01882319F481E0809306
:102CA0002802349903C081E080932C028091240291
:102CB00090912502892B21F1809124029091250287
:102CC0000B9750F080912402909125020A979093DF
:102CD00025028093240204C010922502109224023F
:102CE00080912402909125022091080130910901E0
:102CF00082239323892B11F021E008C020E006C035
:102D00008FEF9FEF9093090180930801809102015A
:102D1000222331F08A3011F45A9A07C0479A05C02D
:102D20008A3011F45A9801C0479880912C02882368
:102D300009F472C02091E901222309F06DC080914D
:102D4000250683FF69C086B19927FC01E071F07008
:102D500084FF14C0809126029091270201969093DF
:102D60002702809326028091260290912702895E95
:102D7000934008F451C020932C024EC0809126024B
:102D800090912702892B09F443C0809126029091EB
:102D900027028A569140E0F5809126029091270201
:102DA00069E270E00E946F7880912602909127027C
:102DB000860F971F90932702809326028091260208
:102DC000909127020B9750F0809126029091270254
:102DD0000A979093300380932F0304C0F09330033D
:102DE000E0932F0380912F039091300320912D03C6
:102DF00030912E03821B930B845E9D4F68E671E039
:102E00000E948378845B904090932C0380932B03E3
:102E10001092270210922602FF91EF91BF91AF917D
:102E20009F918F917F916F915F913F912F910F9023
:102E30000FBE0F901F9018952091290230912A0201
:102E4000280F391FC9010196089520912902309158
:102E50002A02821B930B892F992786958074907084
:102E60000895CF93DF930E941C17EC01CE010E94BE
:102E700025178823D9F3DF91CF910895CF93DF935E
:102E80000E941C17EC0109C080911001882329F0D1
:102E9000909310018FEC80937A00CE010E94251749
:102EA000982F882389F3DF91CF9108959FB7F894E5
:102EB0005F983E9A469A8091B0008F708093B000E0
:102EC0008091B00083608093B0008091B1008B73DB
:102ED0008093B1008091B1008B608093B10010921B
:102EE000B2008FEF8093B3008091B0008068809330
:102EF000B000809170008A7F809370008091700094
:102F00008260809370009FBF08958AE090E00E94E5
:102F10001C17909332028093310282E085BD83EAD0
:102F200084BD17BC84EB88BD86E086BD80916E00B1
:102F3000816080936E000895A0E0B0E0E2EAF7E1DE
:102F40000C94DE7880914F06E82FFF27E456FE4F61
:102F50009681D08080910E01A92FBB27A7FDB09547
:102F6000CB2FDB2F813009F0C9C020917103309144
:102F700072034091730350917403BD01CE010E940E
:102F8000447897FF04C061587F4F8F4F9F4F7B015C
:102F90008C0167E015950795F794E7946A95D1F74A
:102FA0008D2D992787FD9095A92FB92F2091690321
:102FB00030916A0340916B0350916C03BC01CD01C9
:102FC0000E94447897FF04C061587F4F8F4F9F4FF6
:102FD00057E095958795779567955A95D1F7F801BC
:102FE000E701C61BD70BE80BF90B80914606992722
:102FF000AA27BB27BC01CD019E01AF010E944478E6
:1030000097FF04C061507E4F8F4F9F4FFC01EB0133
:1030100049E0F595E795D795C7954A95D1F7809101
:10302000C101992736E0880F991F3A95E1F7409141
:103030000C0150910D0120914E063327841B950BF6
:10304000B9010E94837880910C0190910D01860F47
:10305000971F90930D0180930C0180910C0190912A
:103060000D0197FD0F9624E0959587952A95E1F738
:1030700090931F0280931E0280917D0680FF07C0FF
:1030800080911E0290911F028C0F9D1F06C080919F
:103090001E0290911F028C1B9D0B90931F02809328
:1030A0001E0280914706282F3327220F331F220F3D
:1030B000331F80911E0290911F02821793077CF0AC
:1030C00080914806282F3327220F331F220F331FEA
:1030D00080911E0290911F022817390724F4309323
:1030E0001F0220931E0280910201843108F4C2C0A5
:1030F00080910E018F5F80930E01BEC02091690305
:1031000030916A0340916B0350916C03BD01CE0175
:103110000E94447897FF04C061587F4F8F4F9F4FA4
:103120007B018C01C7E015950795F794E794CA9544
:10313000D1F78D2D992787FD9095A92FB92F209133
:103140007103309172034091730350917403BC0179
:10315000CD010E9444789B01AC0197FF04C0215827
:103160003F4F4F4F5F4FB7E05595479537952795A0
:10317000BA95D1F72E0D3F1D401F511F80914A0671
:103180009927AA27BB27BC01CD010E94447897FF4D
:1031900004C061507E4F8F4F9F4FFC01EB01A9E0AF
:1031A000F595E795D795C795AA95D1F78091C00178
:1031B000992776E0880F991F7A95E1F740910A01E7
:1031C00050910B0120914E063327841B950BB901BA
:1031D0000E94837880910A0190910B01860F971FBE
:1031E00090930B0180930A0180910A0190910B0149
:1031F00097FD0F9664E0959587956A95E1F7909312
:103200001D0280931C0280917D0681FF07C0809182
:103210001C0290911D028C0F9D1F06C080911C0204
:1032200090911D028C1B9D0B90931D0280931C029C
:1032300080914B06282F3327220F331F220F331F75
:1032400080911C0290911D02821793077CF080915F
:103250004C06282F3327220F331F220F331F809154
:103260001C0290911D022817390724F430931D0287
:1032700020931C0210920E01E7E0CDB7DEB70C944C
:10328000FA781F920F920FB60F9211242F933F934B
:103290004F935F938F939F93EF93FF9380910201DE
:1032A00090912D02843108F04CC0992309F01CC183
:1032B0008091B00086FF24C08091B0008F7B809306
:1032C000B00080911E0290911F0287559E4F9093EF
:1032D00021028093200225E08D3D920718F08CEDAD
:1032E00095E005C08757914030F487E791E09093CF
:1032F0002102809320028091200290912102BAC085
:103300008091B00080648093B00080914D06282F9A
:1033100033278DED96E0289FA001299F500D389FFF
:10332000500D1124CA0120912E0230912F02821BD0
:10333000930B909321028093200281E080930E01F1
:10334000D0C0992309F0D0C08091B00086FF97C00B
:103350008091B0008F7B8093B000E0913002EE232B
:10336000F1F480914D06282F33278DED96E0289FAC
:10337000A001299F500D389F500D1124CA012091A2
:103380002E0230912F02821B930B90932102809387
:10339000200210922F0210922E02469AA2C089EAB1
:1033A00093E090932102809320028E2F99278330FF
:1033B0009105D9F08430910534F48130910549F0BC
:1033C000029761F020C08430910591F0059799F043
:1033D0001AC080911E0290911F0204C080911C02AD
:1033E00090911D0287559E4F1DC08091D70705C043
:1033F0008091B10702C08091DF079927880F991F3C
:10340000880F991FEFCFFF27EE0FFF1FED5BF84FDF
:1034100020813181220F331F80912002909121025F
:10342000820F931F909321028093200280912002AB
:103430009091210255E08D3D950718F08CED95E0B7
:1034400005C08757914030F487E791E090932102BF
:103450008093200220912002309121022C5B304089
:10346000309321022093200280912E0290912F020E
:10347000820F931F90932F0280932E0232C080916F
:10348000B00080648093B0008CEB90E090932102B8
:103490008093200280912E0290912F0284549F4F9E
:1034A00090932F0280932E0280912202882321F094
:1034B00080911D03833320F480912202823011F425
:1034C000469801C0469A809130028F5F8093300207
:1034D00090914D06981728F481E080930E01109288
:1034E000300281E080932D02209120023091210250
:1034F00041E02F37340730F08FEF8093B3002F5F18
:1035000030400FC02F3F3105C9F0C0F0A9014F5F17
:1035100050404F37510550F480E88093B300205855
:103520003040309321022093200212C08FEF80930D
:10353000B30050932102409320020AC080912002E0
:103540008093B300109221021092200210922D025B
:10355000FF91EF919F918F915F914F913F912F91AB
:103560000F900FBE0F901F90189510927C008FEC5B
:1035700080937A000895CF93DF931092370283E00F
:1035800090E00E949A2CC82FDD27C531D10508F0A4
:103590002A97C7BD84E690E00E943E1780911401EF
:1035A000909115018052934010F4C0E0D0E0CA3FE2
:1035B000D105F8F4C7BD82E390E00E943E1787E290
:1035C00094E09F938F9386EF92E19F938F93E09186
:1035D0002804F09129040995809114019091150116
:1035E0000F900F900F900F908052934010F0219603
:1035F000DECFC09314066C2F83E090E00E94A22CD3
:103600008091250680FF0AC0809114068A508B3E67
:1036100028F080914104806480934104C7BD8CE20E
:1036200091E00E943E17DF91CF910895EF92FF92B3
:103630001F93CF9310E080ED97E00E941C177C0150
:10364000CCE8133019F4CB3008F0C9E010E08091D9
:103650004702909148028C5F934024F480911301BB
:1036600081500AC08091470290914802875094404F
:1036700034F0809113018F5F8093130101C011E03A
:1036800080914502909146028C5F934024F4809192
:10369000120181500AC080914502909146028750E4
:1036A000944034F0809112018F5F8093120101C029
:1036B0001F5F80914302909144028C5F934024F4F9
:1036C0008091110181500AC080914302909144027F
:1036D00087509440C4F0809111018F5F8093110155
:1036E00013C089E294E09F938F9386EF92E19F93BA
:1036F0008F93E0912804F091290409950F900F9081
:103700000F900F905FC01F5F82E1809372028091E3
:103710006C028E7F80936C0285EA8093BC0080915E
:1037200013018A3040F48091410481608093410408
:103730008AE08093130180911301863F40F08091CD
:10374000410481608093410485EF8093130180914F
:1037500012018A3040F480914104826080934104D8
:103760008AE08093120180911201863F40F080919F
:10377000410482608093410485EF8093120180911F
:1037800011018A3040F480914104846080934104A7
:103790008AE08093110180911101863F40F0809171
:1037A000410484608093410485EF809311018091EE
:1037B0007202882339F0C7010E942517882309F077
:1037C00090CFF5CF109210018FEC80937A0080910A
:1037D00010018823E1F3CA3020F48AE090E00E94CF
:1037E0003E17C15009F02DCF86E490E00E943E17AD
:1037F000CF911F91FF90EF9008951F920F920FB6F7
:103800000F921124AF92BF92CF92DF92EF92FF926C
:103810000F931F932F933F934F935F936F937F93D8
:103820008F939F93AF93BF93EF93FF938091500239
:10383000282F3327442755278F5F80935002F901A3
:103840002231310508F08CC3E25CFF4F0C940A79F9
:10385000809178009091790046C080917800909195
:1038600079002CC180917800909179009093530257
:103870008093520257C180917A0390917B032091EB
:10388000780030917900821B930B9093050680930A
:103890000406809104069091050690935D02809342
:1038A0005C025EC1809178009091790020917C0348
:1038B00030917D03821B930B909313068093120625
:1038C000809112069091130690935F0280935E029E
:1038D00049C380915602909157022091780030910F
:1038E0007900820F931F909357028093560281E0D4
:1038F0003AC3809154029091550220917800309102
:103900007900820F931F909355028093540284E0B4
:103910002AC380911E0190911F019C01220F331F29
:10392000280F391F809178009091790063E070E052
:103930000E946F78260F371F369527953695279565
:1039400030931F0120931E0185E00DC38091780004
:10395000909179004091760350917703841B950BE9
:1039600090933E0280933D0280913D0290913E02F1
:10397000029704F122E04E3E520784F42091510256
:103980002B5F2093510225508091EA029091EB0227
:10399000845F914018F4215F20935102809151027D
:1039A000853684F14F5F5F4F5093770340937603E2
:1039B000845626C080913D0290913E028F5F9F4FBA
:1039C0000CF532E047325307ECF0209151022550BC
:1039D000209351022B5F8091EA029091EB02845F69
:1039E000914018F42F5020935102809151028C394C
:1039F0004CF44150504050937703409376038C59D8
:103A00008093510281E080933C02809178009091F4
:103A1000790090930B0680930A0680913D02909165
:103A20003E029C01442737FD4095542F809131037D
:103A300090913203A0913303B0913403820F931F0E
:103A4000A41FB51F8093310390933203A0933303D7
:103A5000B09334032091310330913203409133030A
:103A60005091340357FF04C021503C4F4F4F5F4FDC
:103A70000AE055954795379527950A95D1F7809196
:103A8000310390913203A0913303B0913403821B30
:103A9000930BA40BB50B8093310390933203A09347
:103AA0003303B09334032EC1809154029091550298
:103AB0002091780030917900820F931F90935502E6
:103AC0008093540210924F0250C2809102018A30BA
:103AD00071F4809178009091790020915202309198
:103AE0005302820F931F01969695879517C04091B8
:103AF000520250915302843158F020917800309155
:103B00007900240F351F8FEF97E0821B930B06C0BF
:103B10008091780090917900840F951F90934402D2
:103B20008093430286E01FC280917A0390917B03C9
:103B30002091780030917900821B930B90930506B9
:103B400080930406809104069091050620915C0202
:103B500030915D02820F931F909342028093410245
:103B600087E001C2809178009091790020917C03D8
:103B700030917D03821B930B909313068093120662
:103B8000809112069091130620915E0230915F029F
:103B9000820F931F9093400280933F02E3C12091D4
:103BA0005602309157028091780090917900280F49
:103BB000391F3093570220935602809102018A30B8
:103BC00019F4220F331F04C0220F331F220F331F9B
:103BD000309357022093560220915602309157029B
:103BE000C90137FD0796A3E095958795AA95E1F75A
:103BF0009093480280934702809158029091590215
:103C0000820F931F97FD0196959587959093590282
:103C1000809358022091860330918703821B930B77
:103C200090931D0180931C0120914D0230914E0212
:103C300080911C0190911D01280F391F37FF02C090
:103C40002F5F3F4F3595279530934E0220934D02BD
:103C50004ECE20915402309155028091780090917F
:103C60007900280F391F3093550220935402809118
:103C700002018A3019F4220F331F04C0220F331FB0
:103C8000220F331F30935502209354022091540287
:103C900030915502C90137FD079663E095958795E8
:103CA0006A95E1F7909346028093450280915A020B
:103CB00090915B02820F931F97FD019695958795D2
:103CC00090935B0280935A02209184033091850384
:103CD000821B930B90931B0180931A0120914B023E
:103CE00030914C0280911A0190911B01280F391FCD
:103CF00037FF02C02F5F3F4F3595279530934C0219
:103D000020934B0283E02FC11092500281E08093F8
:103D10001001809133029091340201969093340205
:103D200080933302809178009091790090931501EF
:103D3000809314018091140190911501AA27BB274B
:103D4000A0906002B0906102C0906202D0906302C5
:103D5000A80EB91ECA1EDB1EA0926002B0926102BC
:103D6000C0926202D0926302809164028F5F80935E
:103D70006402823108F4F6C0809116019091170117
:103D8000A0911801B09119017C018D0123E0EE0C86
:103D9000FF1C001F111F2A95D1F7E81AF90A0A0B18
:103DA0001B0BEA0CFB1C0C1D1D1D80913702992773
:103DB00087FD9095A92FB92FBC01CD0126EC34E2E7
:103DC00040E050E00E944478DC01CB01E81AF90A97
:103DD0000A0B1B0BD801C7010496A11DB11DB7FF2B
:103DE00005C0D801C7010B96A11DB11D13E0B59503
:103DF000A795979587951A95D1F78093160190937B
:103E00001701A0931801B093190180910C069091AD
:103E10000D067C010027F7FC0095102F80911601FC
:103E200090911701A0911801B0911901E81AF90AAF
:103E30000A0B1B0BE0920F03F09210030093110387
:103E400010931203209138023091390240913A02C6
:103E500050913B0257FF04C0215F3F4F4F4F5F4FD0
:103E6000F4E05595479537952795FA95D1F78091C8
:103E7000380290913902A0913A02B0913B02821B24
:103E8000930BA40BB50B8093380290933902A09347
:103E90003A02B0933B028091380290913902A0918E
:103EA0003A02B0913B028E0D9F1DA01FB11F80935F
:103EB000380290933902A0933A02B0933B0280916A
:103EC000350290913602AC01E5E0440F551FEA95AA
:103ED000E1F7481B590B8091380290913902A0916B
:103EE0003A02B0913B02B7FF03C00F96A11DB11D6E
:103EF00074E0B595A795979587957A95D1F7209118
:103F00000F0330911003281B390B63E0220F331F7E
:103F10006A95E1F7240F351F37FF02C0215E3F4F3E
:103F200045E0359527954A95E1F730933602209381
:103F30003502D601C501D7FE03C00196A11DB11DF2
:103F4000B595A795979587958093600290936102A8
:103F5000A0936202B093630289E08093640202C07E
:103F60001092500282E080934F0280914F02809322
:103F70007C0080915002882319F08FEC80937A00A6
:103F8000FF91EF91BF91AF919F918F917F916F9131
:103F90005F914F913F912F911F910F91FF90EF9063
:103FA000DF90CF90BF90AF900F900FBE0F901F90FB
:103FB000189590E2E1E2F1E08FE49193815087FF60
:103FC000FCCF089590916702E1E2F1E0E90FF11D65
:103FD00080839F5F909367020895EF92FF920F9303
:103FE0001F93CF93DF932091650220FF0AC0809139
:103FF0006602882311F0815002C0809120018093D5
:10400000660221FF0CC090916602809120019817F2
:1040100019F41092660203C09F5F90936602822F8C
:10402000992780FF04C081FF02C0109266020E949F
:10403000D91F80916602282F332752EEE52E5FE1CB
:10404000F52EC0912804D09129048A3098F481E19A
:10405000809367023F932F9380E694E09F938F9322
:10406000FF92EF92FE0109952DB73EB72A5F3F4FB1
:104070002DBF11C080E1809367023F932F9385E6A7
:1040800094E09F938F93FF92EF92FE0109958DB775
:104090009EB706968DBF20916602822F9927AA2788
:1040A000BB27FC01429710F00C949E2AE05BFF4F67
:1040B00042EEE42E4FE1F42EC0912804D091290461
:1040C0000C940A79109267028AE694E09F938F938A
:1040D00002EE1FE1FF92EF92FE01099584E18093C9
:1040E00067020F900F900F900F9081E690E09F93E2
:1040F0008F9382E590E09F938F931F921F92809100
:1041000002016AE00E946378892F99279F938F9319
:10411000809102010E94637899279F938F938AE789
:1041200094E09F938F93FF92EF92E0912804F09197
:104130002904099588E2809367022DB73EB7225F74
:104140003F4F2DBF8DE896E09F938F930E94052EE1
:1041500099279F938F938FE894E09F938F93FF927B
:10416000EF92E0912804F091290409958DB79EB74C
:1041700008968DBF90914104992351F08CE3809370
:104180006702892F99279F938F938DE994E081C6C9
:1041900090916D02992371F08CE380936702892FCF
:1041A00099279F938F9384EB94E09F938F931F9312
:1041B0000F9391C08091420484FF07C08CE38093E9
:1041C000670289EC94E00C94302A809192019091DE
:1041D0009301069710F00C94A72A8CE38093670252
:1041E00086ED94E00C94302A8091250632EEE32E81
:1041F0003FE1F32EC0912804D091290480FF74C0C0
:104200001092670280910F0390911003A091110307
:10421000B0911203BC01CD0125E030E040E050E058
:104220000E94B8783F932F9383EE94E09F938F93EF
:10423000FF92EF92FE01099584E1809367022DB70A
:104240003EB72A5F3F4F2DBF80910B0390910C0327
:10425000A0910D03B0910E03BC01CD0125E030E02B
:1042600040E050E00E94B8783F932F9380EF94E0B5
:104270009F938F93FF92EF92E0912804F09129048D
:10428000099588E2809367028DB79EB706968DBF29
:1042900080911401909115019F938F938DEF94E07D
:1042A0009F938F93FF92EF92E0912804F09129045D
:1042B00009958CE3809367022DB73EB72A5F3F4F85
:1042C0002DBF87B599279F938F938AE095E09F93A1
:1042D0008F93FF92EF92E0912804F09129040995C1
:1042E0008DB79EB7069633C71092670287E195E0B7
:1042F0009F938F93FF92EF92FE01099584E1809343
:1043000067020F900F900F900F9086E295E09F93B9
:104310008F93FF92EF92E0912804F0912904099580
:1043200088E2809367020F900F900F900F908FE2BA
:1043300095E09F938F93FF92EF92E0912804F09184
:10434000290409958CE3809367020F900F900F90DA
:104350000F908EE395E09F938F93FF92EF920C94D2
:10436000342A1092670287E495E09F938F9302EEC0
:104370001FE1FF92EF92FE01099584E180936702AD
:104380000F900F900F900F90809171039091720396
:10439000A0917303B0917403B7FF04C081509C4F88
:1043A000AF4FBF4F2AE0B595A795979587952A956A
:1043B000D1F7BF93AF939F938F9384E595E09F933D
:1043C0008F931F930F93E0912804F091290409958E
:1043D00088E2809367022DB73EB7285F3F4F2DBF1D
:1043E0008091690390916A03A0916B03B0916C0373
:1043F000B7FF04C081509C4FAF4FBF4FCAE0B59587
:10440000A79597958795CA95D1F7BF93AF939F933B
:104410008F9383E695E09F938F931F930F93E09183
:104420002804F091290409958CE3809367028DB7E5
:104430009EB708968DBF80912F03909130039F9374
:104440008F9382E795E09F938F931F930F93E09153
:104450002804F091290409952DB73EB72A5F3F4FF4
:1044600011C71092670280914707909148079F9368
:104470008F9380914507909146079F938F9381E892
:1044800095E09F938F93FF92EF92FE01099584E14F
:10449000809367028DB79EB708968DBF80914B07BA
:1044A00090914C079F938F938091490790914A0771
:1044B0009F938F9381E995E09F938F93FF92EF9263
:1044C000E0912804F0912904099588E2809367021D
:1044D0002DB73EB7285F3F4F2DBF80914F0790917A
:1044E00050079F938F9380914D0790914E079F9314
:1044F0008F9381EA95E09F938F93FF92EF92E091E3
:104500002804F091290409958CE3809367028DB704
:104510009EB708968DBF80915307909154079F9343
:104520008F9380915107909152079F938F9381EBC6
:1045300095E0A2C01092670280911A06E82FFF272B
:10454000EE0FFF1FED5BF84F808191819F938F935A
:1045500080911906E82FFF27EE0FFF1FED5BF84F44
:10456000808191819F938F9381EC95E09F938F93AE
:10457000FF92EF92FE01099584E1809367028DB767
:104580009EB708968DBF80911C06E82FFF27EE0F7F
:10459000FF1FED5BF84F808191819F938F938091F6
:1045A0001B06E82FFF27EE0FFF1FED5BF84F808102
:1045B000918188589F4F9F938F9381ED95E09F93B2
:1045C0008F93FF92EF92E0912804F09129040995CE
:1045D00088E2809367022DB73EB7285F3F4F2DBF1B
:1045E00080911E06E82FFF27EE0FFF1FED5BF84FAF
:1045F0008081918182599F4F9F938F9380911D0657
:10460000E82FFF27EE0FFF1FED5BF84F80819181B0
:1046100082599F4F9F938F9381EE95E09F938F9345
:10462000FF92EF92E0912804F091290409958CE320
:10463000809367028DB79EB708968DBF8091200644
:10464000E82FFF27EE0FFF1FED5BF84F8081918170
:1046500082599F4F9F938F9380911F06E82FFF27CA
:10466000EE0FFF1FED5BF84F8081918182599F4FC4
:104670009F938F9381EF95E09F938F93FF92EF929B
:10468000E0912804F091290409952DB73EB7285FE1
:104690003F4FF8C51092670281E096E09F938F9399
:1046A00002EE1FE1FF92EF92FE0109958091020157
:1046B0000F900F900F900F908A3009F09DC084E109
:1046C0008093670280918603909187039C0197FFF6
:1046D00002C0295F3F4F287F821B930B9F938F93CC
:1046E000809186039091870397FD0796A3E09595A7
:1046F0008795AA95E1F79F938F9320918603309138
:10470000870337FF02C0295F3F4FF3E035952795B8
:10471000FA95E1F78091470290914802821B930B32
:104720009F938F938FE096E09F938F931F930F93A8
:10473000E0912804F0912904099588E280936702AA
:104740008DB79EB70A968DBF8091840390918503A3
:104750009C0197FF02C0295F3F4F287F821B930B6C
:104760009F938F93809184039091850397FD079683
:10477000E3E095958795EA95E1F79F938F932091D4
:1047800084033091850337FF02C0295F3F4F73E0F8
:10479000359527957A95E1F78091450290914602EB
:1047A000821B930B9F938F9380E296E09F938F934E
:1047B0001F930F93E0912804F091290409958CE34D
:1047C000809367022DB73EB7265F3F4F2DBF809184
:1047D0008203909183039F938F93809182039091A2
:1047E00083032091430230914402821B930B9F93D9
:1047F0008F9381E396E0A7C38B3019F0843108F4DE
:10480000ADC084E180936702809186039091870315
:104810009C0197FF02C0215F3F4F207F821B930BBB
:1048200097FD0196959587959F938F938091860329
:104830009091870397FD0F9654E0959587955A952B
:10484000E1F79F938F93209186033091870337FF81
:1048500002C0295F3F4F43E0359527954A95E1F720
:104860008091470290914802821B930B9F938F93F4
:104870008FE396E09F938F931F930F93E09128040B
:10488000F0912904099588E2809367022DB73EB71D
:10489000265F3F4F2DBF80918403909185039C013B
:1048A00097FF02C0215F3F4F207F821B930B97FD34
:1048B0000196959587959F938F938091840390910E
:1048C000850397FD0F96C4E095958795CA95E1F706
:1048D0009F938F93209184033091850337FF02C00B
:1048E000295F3F4FB3E035952795BA95E1F7809161
:1048F000450290914602821B930B9F938F9381E513
:1049000096E09F938F931F930F93E0912804F0916B
:10491000290409958CE3809367028DB79EB70A96A8
:104920008DBF809182039091830397FD01969595A9
:1049300087959F938F938091820390918303209119
:10494000430230914402821B930B9F938F9383E623
:1049500096E09F938F931F930F9392CE8D3009F023
:10496000F6C584E1809367028091130199279F9394
:104970008F93809186039091870397FD0F96F4E0C3
:1049800095958795FA95E1F79F938F9320918603EC
:104990003091870337FF02C0295F3F4FE3E0359531
:1049A0002795EA95E1F78091470290914802821B92
:1049B000930B9F938F9382E796E09F938F931F9320
:1049C0000F93E0912804F0912904099588E28093DF
:1049D00067028DB79EB70A968DBF80911201992705
:1049E0009F938F93809184039091850397FD0F96F9
:1049F00074E0959587957A95E1F79F938F93209131
:104A000084033091850337FF02C0295F3F4F63E085
:104A1000359527956A95E1F7809145029091460278
:104A2000821B930B9F938F9386E896E09F938F93BF
:104A30001F930F93E0912804F091290409958CE3CA
:104A4000809367022DB73EB7265F3F4F2DBF809101
:104A5000110199279F938F938091820390918303F3
:104A600097FD0196959587959F938F9380918203EB
:104A7000909183032091430230914402821B930B57
:104A80009F938F938AE996E09F938F931F930F9341
:104A9000E0912804F091290409958DB79EB70A96F4
:104AA00056C3109267028EEA96E09F938F93FF920F
:104AB000EF92FE01099584E1809367020F900F90B9
:104AC0000F900F9080917C0390917D039F938F9323
:104AD00080913F02909140029F938F938BEB96E0E1
:104AE0009F938F93FF92EF92E0912804F091290415
:104AF000099588E2809367022DB73EB7285F3F4F44
:104B00002DBF80917A0390917B039F938F93809127
:104B10004102909142029F938F938AEC96E09F937B
:104B20008F93FF92EF92E0912804F0912904099568
:104B30008CE3809367028DB79EB708968DBF8091F6
:104B40007603909177039F938F9380913D0290918C
:104B50003E029F938F9389ED96E08ECD109267026F
:104B600080911E0190911F016AE070E00E9483789D
:104B70009F938F9380911E0190911F016AE070E0D6
:104B80000E9483787F936F9388EE96E09F938F9334
:104B9000FF92EF92FE01099584E1809367028DB741
:104BA0009EB708968DBF80918008909181086AE039
:104BB00070E00E946F789F938F938091800890910E
:104BC00081086AE070E00E946F787F936F938CEFAA
:104BD00096E09F938F93FF92EF92E0912804F091DB
:104BE0002904099588E2809367022DB73EB7285FB4
:104BF0003F4F2DBF80918208909183089F938F93A0
:104C000080E197E09F938F93FF92EF92E0912804C9
:104C1000F091290409958CE3809367028DB79EB7C4
:104C200006968DBF80918408909185089F938F93FD
:104C300080E297E02EC11092670282E397E09F9393
:104C40008F93FF92EF92FE01099584E180936702B2
:104C50000F900F900F900F90809143079091440711
:104C60009F938F938BE397E09F938F93FF92EF92A5
:104C7000E0912804F0912904099588E28093670265
:104C80008DB79EB706968DBF80911D0399279F9380
:104C90008F938BE497E09F938F93FF92EF92E09135
:104CA0002804F091290409958CE3809367022DB7BD
:104CB0003EB72A5F3F4F2DBF80914207992701974A
:104CC0009F938F938BE597E002CB109267028BE660
:104CD00097E09F938F93FF92EF92FE01099584E1F5
:104CE000809367020F900F900F900F9080912B038D
:104CF00090912C039F938F9383E797E09F938F93DB
:104D0000FF92EF92E0912804F0912904099588E23E
:104D1000809367022DB73EB72A5F3F4F2DBF80912A
:104D20002F03909130039F938F9381E897E09F9397
:104D30008F93FF92EF92E0912804F0912904099556
:104D40008CE3809367028DB79EB706968DBF8091E6
:104D50002D0390912E039F938F938FE897E099C036
:104D60001092670280911E0399279F938F938DE97C
:104D700097E09F938F93FF92EF92FE01099584E154
:104D8000809367028DB79EB706968DBF80911F03F3
:104D900099279F938F9389EA97E09F938F93FF9230
:104DA000EF92E0912804F0912904099588E280931C
:104DB00067022DB73EB72A5F3F4F2DBF809120037A
:104DC00099279F938F9385EB97E09F938F93FF9203
:104DD000EF92E0912804F091290409958CE38093E7
:104DE00067028DB79EB706968DBF809121039927E4
:104DF0009F938F9381EC97E04CC010926702809153
:104E0000220399279F938F938DEC97E09F938F9325
:104E1000FF92EF92FE01099584E1809367028DB7BE
:104E20009EB706968DBF8091230399279F938F93FA
:104E300089ED97E09F938F93FF92EF92E091280482
:104E4000F0912904099588E2809367022DB73EB757
:104E50002A5F3F4F2DBF8091240399279F938F9303
:104E600085EE97E09F938F93FF92EF92E091280455
:104E7000F091290409958CE3809367028DB79EB762
:104E800006968DBF8091250399279F938F9381EF7D
:104E900097E09F938F93FF92EF92D9CA1092670287
:104EA0008DEF97E09F938F9302EE1FE1FF92EF92B9
:104EB000FE01099584E1809367020F900F900F9097
:104EC0000F908091C10199279F938F9385E098E07F
:104ED0009F938F93FF92EF92E0912804F091290421
:104EE000099588E2809367028DB79EB706968DBFBD
:104EF00080911E0290911F0297FD039695958795CC
:104F0000959587959F938F9383E198E09F938F93D7
:104F10001F930F93E0912804F091290409958CE3E5
:104F2000809367022DB73EB72A5F3F4F2DBF809118
:104F3000480699279F938F938091470699279F93BF
:104F40008F9381E298E09F938F931F930F93E0914B
:104F50002804F091290409958DB79EB70896F7C0EB
:104F6000109267028FE298E09F938F93FF92EF92E7
:104F7000FE01099584E1809367020F900F900F90D6
:104F80000F9080916204992787FD90959F938F934E
:104F900080916104992787FD90959F938F938FE36C
:104FA00098E09F938F93FF92EF92E0912804F09105
:104FB0002904099588E2809367022DB73EB7285FE0
:104FC0003F4F2DBF80916304992787FD90959F9354
:104FD0008F938091640499279F938F938FE498E037
:104FE0009F938F93FF92EF92E0912804F091290410
:104FF00009958CE3809367028DB79EB708968DBFA5
:105000008091680499279F938F93809165049927D5
:1050100087FD90959F938F938FE598E02DCB10920D
:1050200067028FE698E09F938F93FF92EF92FE01C5
:10503000099584E1809367020F900F900F900F9075
:105040008091FD0699278F7790709F938F93809121
:10505000F50699278F7790709F938F938091ED0637
:1050600099278F7790709F938F938091E50699276A
:105070008F7790709F938F938FE798E09F938F9394
:10508000FF92EF92E0912804F0912904099588E2BB
:10509000809367028DB79EB70C968DBF80911D07D8
:1050A00099278F7790709F938F93809115079927F9
:1050B0008F7790709F938F9380910D0799278F77AB
:1050C00090709F938F938091050799278F779070A9
:1050D0009F938F9380E998E09F938F93FF92EF9235
:1050E000E0912804F091290409958CE380936702EC
:1050F0002DB73EB7245F3F4F2DBF80913D079927C5
:105100008F7790709F938F938091350799278F7732
:1051100090709F938F9380912D0799278F77907030
:105120009F938F938091250799278F7790709F93F6
:105130008F9381EA98E09F938F93FF92EF92E09193
:105140002804F091290409958DB79EB70C968DBF60
:10515000FEC11092670282EB98E09F938F93FF92BB
:10516000EF92FE01099584E1809367020F900F9002
:105170000F900F9080910107992787FD90959F933D
:105180008F938091F906992787FD90959F938F9330
:105190008091F106992787FD90959F938F93809139
:1051A000E906992787FD90959F938F9381EC98E06E
:1051B0009F938F93FF92EF92E0912804F09129043E
:1051C000099588E2809367022DB73EB7245F3F4F71
:1051D0002DBF80912107992787FD90959F938F93ED
:1051E00080911907992787FD90959F938F938091C0
:1051F0001107992787FD90959F938F9380910907B9
:10520000992787FD90959F938F9382ED98E09F93C8
:105210008F93FF92EF92E0912804F0912904099571
:105220008CE3809367028DB79EB70C968DBF8091FB
:105230004107992787FD90959F938F938091390718
:10524000992787FD90959F938F9380913107992798
:1052500087FD90959F938F9380912907992787FDCC
:1052600090959F938F9383EE98E09F938F93FF92F7
:10527000EF92E0912804F091290409952DB73EB7EB
:10528000245F3F4F2DBF63C11092670284EF98E007
:105290009F938F9302EE1FE1FF92EF92FE0109951B
:1052A00084E1809367020F900F900F900F90809190
:1052B000FD06881F8827881F97E0899FC001112459
:1052C0008D969F938F938091F506881F8827881F5E
:1052D00096E0899FC00111248D969F938F938091B2
:1052E000ED06881F8827881F95E0899FC00111243B
:1052F0008D969F938F938091E506881F8827881F3E
:105300009927880F991F880F991F8D969F938F93C8
:1053100083E099E09F938F93FF92EF92E0912804AE
:10532000F0912904099588E2809367028DB79EB7B2
:105330000C968DBF80911D07881F8827881F9BE0D2
:10534000899FC00111248D969F938F93809115079B
:10535000881F8827881F9AE0899FC00111248D9695
:105360009F938F9380910D07881F8827881F99E04E
:10537000899FC00111248D969F938F93809105077B
:10538000881F8827881F992723E0880F991F2A954F
:10539000E1F78D969F938F9387E199E09F938F9389
:1053A000FF92EF92E0912804F091290409958CE393
:1053B000809367022DB73EB7245F3F4F2DBF80918A
:1053C0002507881F8827881F9CE0899FC00111241A
:1053D0008D969F938F938BE299E09F938F93FF928B
:1053E000EF92E0912804F0912904099580912D070E
:1053F0002DB73EB72A5F3F4F2DBF87FF12C080E415
:10540000809367028CE399E09F938F93FF92EF92D2
:10541000E0912804F091290409950F900F900F90C6
:105420000F908091350787FF12C084E48093670254
:105430008FE399E09F938F931F930F93E09128043C
:10544000F091290409950F900F900F900F90809183
:105450003D0787FF7CC088E48093670282E499E07F
:105460009F938F931F930F93E0912804F091290449
:1054700009950F900F900F900F9069C010926702DE
:1054800085E499E09F938F93FF92EF92FE01099537
:1054900084E1809367020F900F900F900F9080919E
:1054A000F5019091F6019F938F9383E599E09F9387
:1054B0008F93FF92EF92E0912804F09129040995CF
:1054C00088E2809367028DB79EB706968DBF809164
:1054D000F7019091F8019F938F9380E699E09F9355
:1054E0008F93FF92EF92E0912804F091290409959F
:1054F00089E4809367022DB73EB72A5F3F4F2DBFE7
:105500008DE699E09F938F93FF92EF92E0912804AC
:10551000F09129040995809165020F900F900F90EA
:105520000F9083FF14C01092F8011092F70160E011
:1055300070E08EE090E00E94B32C09C080912001C1
:10554000281719F42150209320011092660210921E
:105550006502E6E0CDB7DEB70C94FB78F999FECF93
:1055600092BD81BDF89A80B599270895F999FECF2B
:105570001FBA92BD81BD60BD0FB6F894FA9AF99A30
:105580000FBE08954AEA20E030E02617370740F4BE
:10559000FC018191480F2F5F3F4F26173707C8F353
:1055A000842F99270895EAEA40E050E0461757070C
:1055B00078F49C01F999FECF32BD21BDF89A80B5EF
:1055C000E80F4F5F5F4F2F5F3F4F4617570790F32E
:1055D0008E2F9927089581E080931B0682E08093A7
:1055E0001A0683E08093190684E080931C0685E008
:1055F00080931D0686E080931E0687E080931F0639
:1056000088E08093200689E0809321068AE08093D9
:1056100022068BE0809323068CE080932406089575
:1056200095E59093180680910201843170F08AE02C
:105630008093380610925C068BE1809334068EE4EA
:105640008093590680935A060DC083E080933806F4
:1056500080E280935C068EE1809334069093590635
:1056600090935A068AE68093250683E080937E060F
:1056700081E080933F0610927B061092780668E0E6
:105680006093320686EE8093330680E88093350679
:105690005EE1509326068FEF809328069FE090935B
:1056A00029065093270610922B0660932C0680E45F
:1056B00080932D0610922E0690932A061092410692
:1056C00010924206109243061092440610925E0613
:1056D00010925F06109260061092610638E73093D0
:1056E000450648E24093460672E070937D0690932B
:1056F000470627EF2093480685E080934D068DE707
:105700008093500680935106809352063093490649
:105710009AE590934A0610924B0620934C064093CC
:105720004E0610924F068FE58093620683EF8093BA
:1057300064068AEA809366068093670684E1809314
:1057400063068093650682E3809353069093540624
:105750008093550610927C068EEF8093680624E6AF
:105760002093690690936A0690936B0690936C065B
:105770008BE480936D0680936E0680936F06109283
:10578000700686E0809371066093720690937306AC
:1057900050937406209375062093760670937706CF
:1057A0001092790610927A0681E280933C068DE28F
:1057B00080933D0690933E060895CF93DF930E9419
:1057C000102B8EE080932F0620E1209330063CE0E2
:1057D0003093310690E59093360686E9809337063C
:1057E0009093390680933A0686E080933B0680E2E8
:1057F000809340068AE5809356069093570681E091
:105800008093580620935B0684E680935D06AFE79D
:10581000B6E0E1E7F1E0ED01019009923A95E1F798
:1058200063E770E0CD01875690400E94C22A8093C2
:105830008B06DF91CF910895CF93DF930E94102BB9
:105840008AE080932F0680E18093300626E0209343
:1058500031069AE59093360688E780933706909351
:10586000390680933A0620933B0620E220934006B7
:105870009093560680E5809357068CE380935806F4
:1058800020935B068BE480935D06AFE7B6E08CE087
:10589000E8E7F1E0ED01019009928A95E1F763E70D
:1058A00070E0CD01875690400E94C22A80938B06FB
:1058B000DF91CF910895CF93DF930E94102B88E062
:1058C00080932F0630E13093300626E02093310696
:1058D00094E69093360688E78093370690933906CE
:1058E00080933A0620933B06309340068AE58093E6
:1058F000560680E58093570696E49093580680E21A
:1059000080935B0690935D06AFE7B6E08CE0E0E83D
:10591000F1E0ED01019009928A95E1F763E770E00B
:10592000CD01875690400E94C22A80938B06DF915A
:10593000CF910895F999FECF92BD81BDF89A80B5B7
:1059400099270895F999FECF1FBA92BD81BD60BD18
:105950000FB6F894FA9AF99A0FBE08956EEA7AE2B1
:105960000E94D276089546EB5AE20E940C77089581
:10597000EF92FF920F931F93CF93C82F81508530E2
:1059800008F0C3E084E7C89F8001112480EFE82E6F
:105990008FEFF82EE00EF11E63E770E0C7010E9462
:1059A000D32A682F98012D593F4F8FB39927AC0107
:1059B0004270507081FDF9CF32BD21BDF89A80B59B
:1059C000861711F0CA0121C08FB399279C0122705C
:1059D000307081FDF9CFF2BCE1BCF89A80B5853515
:1059E00011F0C90112C084E7C89FC001112440977B
:1059F0002EEA3AE244E750E0BC0188E196E00E94DA
:105A0000AD760E948B6781E090E0CF911F910F915E
:105A1000FF90EF900895282F863010F025E003C006
:105A2000882309F421E0F999FECF1FBA82E090E0C3
:105A300092BD81BD20BD0FB6F894FA9AF99A0FBEB7
:105A40000895CF93C82F80911806853509F042C07C
:105A5000C63010F0C5E003C0CC2309F43BC063E7B7
:105A600070E088E196E00E94C22A80938B0684E76A
:105A7000C89FC001112426EB3AE244E750E068E1F8
:105A800076E040970E94EA7626EB3AE24CE050E05E
:105A900069E176E080E590E00E94EA766CE070E0F3
:105AA00089E196E00E94C22A282FF999FECF1FBAF9
:105AB0008CE590E092BD81BD20BD0FB6F894FA9AB6
:105AC000F99A0FBE8C2F0E940B2D0E948B6781E0EC
:105AD00090E002C080E090E0CF9108956DE470E026
:105AE00088EE93E00E94D32A482F8FB399279C0118
:105AF0002270307081FDF9CF85E394E092BD81BDC5
:105B0000F89A80B5841779F48FB399279C01227095
:105B1000307081FDF9CF88EE93E092BD81BDF89A97
:105B200080B5813011F0C90108952EEA3AE24EE4C1
:105B300050E068EE73E08CE896E00E94AD7681E07C
:105B400090E0089580918C068130A9F46DE470E0B6
:105B50008CE896E00E94C22A8093D90626EB3AE2AE
:105B60004EE450E06CE876E088EE93E00E94EA763E
:105B700081E090E0089580E090E00895CF93DF9376
:105B800081E080938C06ECE8F6E08FE015861686BF
:105B90001786108A8150349687FFF8CF80E480936F
:105BA000990680939A0610929B0680939C06809398
:105BB0009D0690EC90939E0610929F068093A006FF
:105BC0008093A1061092A2069093A3069093A40638
:105BD0008093A5061092A6068093A7069093A80628
:105BE000ADE8B6E087E0EAE8F1E0ED010190099266
:105BF0008A95E1F76DE470E0CD0101970E94C22A19
:105C00008093D906DF91CF910895F999FECF82E074
:105C100090E092BD81BDF89A80B5282F863078F04B
:105C200023E0322FF999FECF1FBA82E090E092BDB7
:105C300081BD30BD0FB6F894FA9AF99A0FBE822F43
:105C4000992708951F93CF93C82F162F863010F0F1
:105C5000C5E003C0882309F4C1E08C2F9927823066
:105C6000910541F08330910544F4019731F40E948D
:105C7000DD2B05C00E941C2C02C00E945B2C11234E
:105C8000E1F06CE070E080E590E00E94D32A282FDC
:105C9000F999FECF8CE590E092BD81BDF89A80B570
:105CA000821759F42EEA3AE24CE050E060E570E0E9
:105CB00089E196E00E94AD7602C00E94EB2A8C2F0B
:105CC0000E94212DCF911F910895DF92EF92FF92B4
:105CD0000F931F93CF93FF24DF2CEF2C81E090E0F4
:105CE0000E949A2C853539F031E0E32E65E581E09C
:105CF00090E00E94A22C6CE070E080E590E00E94B1
:105D0000D32AC82FF999FECF8CE590E092BD81BDD2
:105D1000F89A80B58C1711F421E0D22EC1E001E091
:105D200010E0EE2029F48C2F0E94B82C8823C1F5B6
:105D300091E0F92E1F930F9385E799E09F938F933E
:105D400086EF92E19F938F93E0912804F0912904CC
:105D500009958DB79EB706968DBF0230110549F0A3
:105D6000033011054CF40130110531F40E94DD2B94
:105D700005C00E941C2C02C00E945B2CDD2059F043
:105D80002EEA3AE24CE050E060E570E089E196E00E
:105D90000E94AD7602C00E94EB2A8C2F0E94212D1A
:105DA000CF5F0F5F1F4FC63008F4BBCFFF2019F045
:105DB00083E00E940B2D0E94052EC82F0E94B82C54
:105DC0008C2F99279F938F938BE999E09F938F93C3
:105DD00006EF12E11F930F93E0912804F09129043C
:105DE00009958DB79EB706968DBFEE2021F40E94CF
:105DF0006E2D882399F484EB99E09F938F931F93E2
:105E00000F93E0912804F091290409950E94BE2D7A
:105E10000E94A22D0F900F900F900F9010921706D6
:105E200090E0E9E9F6E0CFE08081349618160CF4B2
:105E30009F5FC150C7FFF8CF90931706892F99270E
:105E40009F938F938DE896E09F938F9385ED99E0D4
:105E50009F938F931F930F93E0912804F09129044F
:105E600009958DB79EB708968DBF86EF99E09F93F1
:105E70008F931F930F93E0912804F09129040995C3
:105E80000F900F900F900F90CF911F910F91FF9057
:105E9000EF90DF900895982F2FB7F8943998389A9B
:105EA00088B1836088B98091B9008C7F8093B900F4
:105EB0008AE28093B80010927202109270021092DF
:105EC0006F02992379F0E2EEF6E08BE01082118206
:105ED000128213821482158216821782815038969C
:105EE00087FFF4CF78942FBF08951092720284E94F
:105EF0008093BC0080E88093BC001092BD0010929B
:105F0000BA001092BB001092B9001092B800109223
:105F10006E0280E00E944B2F1092BB0085E88093B8
:105F2000BC0080916C02826080936C0208951F9285
:105F30000F920FB60F9211242F933F934F935F93BD
:105F40008F939F93EF93FF9380917202282F3327B3
:105F5000442755278F5F80937202F901273131055D
:105F600008F0C2C2EE59FF4F0C940A7981E0809389
:105F70006E0209C0809170028C3090F480917002A2
:105F80008F5F8093700280917002E82FFF27EE0FE1
:105F9000FF1FEE0FFF1FE457F94F8585181654F7C2
:105FA000809170028C3070F010926B0210926A0235
:105FB0001092700285E08093720280916F02880FC8
:105FC0008D5A04C080917002880F8E5A8093BB0056
:105FD00085E87FC280917002E82FFF2783E0EE0FF3
:105FE000FF1F8A95E1F7EE51F94F81818093BB0045
:105FF00085E88093BC0080917002E82FFF27EE0FA8
:10600000FF1FEE0FFF1FEE0FFF1FEE51F94F8081B4
:1060100080FF91C080917002E82FFF27EE0FFF1FD5
:10602000EE0FFF1FEE0FFF1FEE51F94F8281882305
:1060300029F080911706873008F46CC280916A02BB
:1060400090916B02892B09F065C280916802909152
:106050006902892B09F05EC26EC08091700221E056
:1060600030E002C0220F331F8A95E2F78091680268
:106070009091690228233923232B79F080917002B3
:10608000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F82
:10609000EE51F94F80E184830DC080917002E82FAA
:1060A000FF27EE0FFF1FEE0FFF1FEE0FFF1FEE513A
:1060B000F94F148280917002E82FFF2753E0EE0F12
:1060C000FF1F5A95E1F7EE51F94F8481282F3327AE
:1060D00043E0220F331F4A95E1F780917002E82FC9
:1060E000FF2793E0EE0FFF1F9A95E1F7EE51F94F6E
:1060F00082818770822B8093BB0085E88093BC00EF
:106100002091700281E090E002C0880F991F2A95CB
:10611000E2F720916A0230916B0282239323892B4C
:1061200051F08AED96E0909376028093750288E0B4
:1061300080937702EFC184E089C1E0917502F0910C
:10614000760281918093BB0085E88093BC00F09338
:106150007602E093750280917702815080937702F6
:10616000882309F4D7C183E071C18091B9008033DD
:1061700051F580917302882329F4809170028F5F1A
:106180008093730280917002E82FFF2783E0EE0F67
:10619000FF1F8A95E1F7EE51F94F838199278F7799
:1061A00090708F3791057CF480917002E82FFF2763
:1061B000EE0FFF1FEE0FFF1FEE0FFF1FEE51F94F07
:1061C00083818F5F83831092720284E98093BC0085
:1061D0008AE090E090939301809392018091700205
:1061E0008F5F80937002109272026DC18091B9002E
:1061F0008034C9F180916F02E82FFF27EE0FFF1F57
:10620000EE0FFF1FEE0FFF1FEE51F94F83818F77C7
:10621000838380916F028F5F80936F0280916F0202
:106220008C30A0F010926F021092690210926802F6
:10623000809174028F5F809374028C3038F01092DA
:10624000740280916C028D7F80936C0280916C024D
:10625000816080936C021092720284E98093BC008A
:1062600010926E0273C080916F02E82FFF27EE0F2D
:10627000FF1FEE0FFF1FEE0FFF1FEE51F94F83813F
:106280008068838380916F02E82FFF27EE0FFF1F46
:10629000EE0FFF1FEE0FFF1FEE51F94F808180FFC1
:1062A0002FC080916F02E82FFF2753E0EE0FFF1FF2
:1062B0005A95E1F7EE51F94F84819927009751F0F3
:1062C0004097D9F58AED96E0909376028093750217
:1062D00088E031C080916F02992743E0880F991FB1
:1062E0004A95E1F78951994F909376028093750210
:1062F00090916F02809174029817E1F483E01BC0C3
:1063000080916F02992733E0880F991F3A95E1F742
:106310008951994F909376028093750280916C0217
:1063200081FD06C090916F0280917402981711F45C
:1063300082E001C081E08093770280917702813012
:1063400011F485E801C085EC8093BC008091730254
:1063500080936D0210927302DDC0E0917502F0919E
:1063600076028091BB0080838091750290917602C5
:106370000196909376028093750280917702815006
:1063800080937702823010F085EC5DC0813011F48B
:1063900085E859C080916C0281FF2DC08091E9028F
:1063A00080FD1DC080916F02E82FFF2723E0EE0FD4
:1063B000FF1F2A95E1F7EE51F94F86818A3F79F464
:1063C00080916F02E82FFF2793E0EE0FFF1F9A9551
:1063D000E1F7EE51F94F8081816080830CC080919C
:1063E0006F02E82FFF2783E0EE0FFF1F8A95E1F78A
:1063F000EE51F94F108280916F028F5F80936F0290
:1064000080916F028C30A0F010926F02109269029E
:1064100010926802809174028F5F809374028C30B6
:1064200038F01092740280916C028D7F80936C0220
:106430001092720284E98093BC0080916C028160AA
:1064400080936C0265C08093BC0086E080937202EA
:1064500061C088E9BBCD80917102880F805FB6CDA5
:106460008091710299278130910561F08230910508
:106470001CF4892B21F04EC0029739F04BC080915B
:106480001301A4CD80911201A1CD809111019ECD67
:1064900080E89CCD1092720284E98093BC00109237
:1064A0006E028AE090E09093930180939201809134
:1064B0007102823088F4809171028F5F8093710243
:1064C00082E18093720280916C028E7F80936C02D5
:1064D00085EA8093BC001EC01092710280916C020C
:1064E000816080936C0216C01092720284E98093DE
:1064F000BC0080916C02816080936C028AE090E025
:1065000090939301809392011092700210926F0207
:1065100010926E02FF91EF919F918F915F914F9139
:106520003F912F910F900FBE0F901F9018951F93C2
:10653000CF93DF93182F80911403882321F4809147
:106540000302882319F081E090E097C01D3008F025
:1065500092C01123B1F0E12FFF2723E0EE0FFF1FC0
:106560002A95E1F7EE51F94F3597808135968823CA
:106570000CF081C03897808180FD03C083E090E0FB
:106580007CC08091DA06823019F084E090E075C01A
:1065900067E070E08AED96E00E94C22A9091E106E1
:1065A000891719F085E090E068C080ED97E00E94BF
:1065B0001C17EC0180916C0280FD05C0CE010E9489
:1065C00025178823B9F3112319F48FEF90E00BC03E
:1065D000212F33272150304081E090E002C0880F06
:1065E000991F2A95E2F790936B0280936A02A1E0CB
:1065F000B0E0E2EEF6E040E050E06BE0CD01042ECA
:1066000002C0880F991F0A94E2F720916A02309124
:106610006B0282239323892B11F011821282615025
:106620004F5F5F4F389667FFE9CF1092700210926C
:10663000720280916C028E7F80936C0285EA809357
:10664000BC0080916C0280FD05C0CE010E94251720
:106650008823B9F380916A0290916B02892B29F00B
:10666000CE010E942517882311F380916A02909130
:106670006B02009711F082E090E0DF91CF911F91C3
:1066800008950F931F93CF93DF93982F8091140356
:10669000882321F480910302882319F081E090E09F
:1066A00092C09D30A0F4992319F486E090E08BC04D
:1066B000C92FDD27FE0133E0EE0FFF1F3A95E1F70A
:1066C000EE51F94F35978081359687FD03C082E002
:1066D00090E079C03897808180FD03C083E090E02E
:1066E00072C080ED97E00E941C178C0180916C02B3
:1066F00080FD05C0C8010E9425178823B9F32197A2
:1067000021E030E0C90102C0880F991FCA95E2F765
:106710009093690280936802D901E2EEF6E040E0CE
:1067200050E06BE0CD01042E02C0880F991F0A943F
:10673000E2F7209168023091690282239323892B2A
:1067400011F01182128261504F5F5F4F389667FFE0
:10675000E9CF10926F021092DA061092E1061092C1
:10676000720280916C028E7F80936C0285EA809326
:10677000BC0080916C0280FD05C0C8010E942517F5
:106780008823B9F38091680290916902892B29F0DE
:10679000C8010E942517882311F38091DA06823000
:1067A00019F084E090E00FC067E070E08AED96E0B9
:1067B0000E94C22A9091E106891719F085E090E0C5
:1067C00002C080E090E0DF91CF911F910F9108957A
:1067D00089E1A7E7B7E0E3E4F7E01182108232969F
:1067E00011961C921E921296815087FFF6CF10923E
:1067F00083031092820310928503109284031092F7
:1068000087031092860308951F920F920FB60F927E
:1068100011240F931F932F933F934F935F936F9385
:106820007F938F939F93AF93BF93CF93DF93EF9318
:10683000FF9380917E0682FDCFC0409186005091EB
:1068400087008091790290917A02481B590B8091C0
:1068500086009091870090937A0280937902CA0112
:106860008D549440A0917B02B0917C02835F9A4149
:1068700078F480917B0280934207149714F0109271
:10688000940181E090E090937C0280937B0207C2A8
:10689000AD30B1050CF003C2CA018B5F9040845B40
:1068A000914008F074C0425D5140FD01EA0FFB1FAA
:1068B000ED5BF84F80819181FA01E81BF90BCF0164
:1068C000F7FF03C0909581959F4F06975CF48091E8
:1068D0001D03883C20F480911D03865F01C088EC75
:1068E00080931D03FD01EA0FFB1FED5BF84F8081D4
:1068F00091819C01220F331F280F391F240F351F50
:1069000037FF02C02D5F3F4FE901D595C795D5955B
:10691000C795CA0101968C179D0714F4219706C0EC
:1069200041505040C417D5070CF4219680911D03A7
:10693000833CE0F08D010A0F1B1FF801ED5BF84F5F
:10694000808191819E01281B390BC90163E070E0B1
:106950000E948378CB01880F991F860F971F0958D3
:10696000184FD80111969C938E9307C0AA0FBB1F96
:10697000A958B84F11961C921E92E0917B02F0919B
:106980007C02EE0FFF1FED5BF84FD183C083209197
:106990007B0230917C022F5F3F4F30937C0220932B
:1069A0007B0280910201843108F079C125303105E4
:1069B00011F45D9A01C05D9880917B0290917C02F8
:1069C0008630910511F45C9A01C05C98079711F428
:1069D0005B9A65C15B9863C14091860050918700C6
:1069E00080917D0290917E02481B590B8091860018
:1069F0009091870090937E0280937D02CA018D540E
:106A000094406091E702835F9A4108F07AC06093F6
:106A1000780280917802843008F453C09091420744
:106A200080917802981709F04CC05091E8025B30D1
:106A300008F43FC0109294011092E70240E05F31E9
:106A4000C0F0E42FFF27EE0FFF1F9F012D543D4F95
:106A5000DF01AD5BB84F8D919C91D9018D939C93D3
:106A6000DF01A958B84F8D919C91E353FD4F91835D
:106A70008083E42FFF27EE0FFF1F9F012D5B384F10
:106A8000DF01A158BD4F8D919C91D90111969C9326
:106A90008E93DF01A756BD4F8D919C91E958F84F19
:106AA00091838083842F8F5F482F8D3040F28093B5
:106AB000E7028091E8028F3FB9F08F5F8093E80290
:106AC00013C08091E802853620F08AE08093E802C6
:106AD00002C01092E802809102018A3011F08431E4
:106AE00010F0289A01C0289881E08093E7028091F5
:106AF0001403882309F0D3C0809178028093420761
:106B0000CEC06D3008F0A3C0CA018B5F9040845B9B
:106B1000914008F07EC0425D5140E62FFF27EE0F06
:106B2000FF1FE158FD4F80819181FA01E81BF90BAD
:106B3000CF0105960B97B0F48091E8028A3120F0DE
:106B400080911D03865F05C08B3028F080911D0366
:106B50008E5F80931D0380911D03893C18F088ECA3
:106B600080931D03E62FFF27EE0FFF1FE158FD4F17
:106B7000808191819C01220F331F280F391F240F20
:106B8000351F37FF02C02D5F3F4FE901D595C795EF
:106B9000D595C795CA0101968C179D0714F42197C6
:106BA00006C041505040C417D5070CF4219680917F
:106BB0001D038E3BD8F0E62FFF27EE0FFF1FDF01EE
:106BC000A158BD4F8D919C919E01281B390BC90185
:106BD00063E070E00E948378CB01880F991F860FD5
:106BE000971FE756FD4F9183808308C0E62FFF274C
:106BF000EE0FFF1FE756FD4F118210828091E702D2
:106C0000E82FFF27EE0FFF1FE158FD4FD183C08310
:106C100009C0809102018A3011F0843110F0289A65
:106C200001C0289880910201843188F48091E702A4
:106C3000853011F45D9A05C05D98863011F45C9A38
:106C400005C05C98873011F45B9A01C05B98809115
:106C5000E702843120F48F5F8093E70220C0843103
:106C6000F1F4809102018A3011F0843110F0289AF9
:106C700001C028988EE18093E7022CE0C7E7D7E0B7
:106C8000A3EBB2E0E3E4F7E08D919D9191838083E3
:106C90003296198218822296215027FFF5CFFF9154
:106CA000EF91DF91CF91BF91AF919F918F917F91A4
:106CB0006F915F914F913F912F911F910F910F9085
:106CC0000FBE0F901F901895EF92FF920F931F9396
:106CD000809134069927880F991F880F991F7C018E
:106CE0000027F7FC0095102F80917103909172039B
:106CF000A0917303B0917403BC01CD01A801970169
:106D00000E94B8783093C4052093C305809169032D
:106D100090916A03A0916B03B0916C03BC01CD010B
:106D2000A80197010E94B8783093C6052093C50545
:106D30008091FD079091FE0797FD039695958795A5
:106D4000959587959093C8058093C70580910D0808
:106D500090910E0897FD0396959587959595879543
:106D60009093CA058093C905809182039091830313
:106D70002091430230914402821B930B9093CC05E7
:106D80008093CB0580910F0390911003A091110384
:106D9000B0911203BC01CD0125E030E040E050E0AD
:106DA0000E94B8783093CE052093CD0580913D02A6
:106DB00090913E029093D0058093CF0580912F0350
:106DC000909130039093D4058093D30580911E0158
:106DD00090911F019093D6058093D50580911D0356
:106DE00099279093D8058093D705809109089091B1
:106DF0000A08A0910B08B0910C08209196013091DF
:106E000097014091980150919901BC01CD010E94D8
:106E1000B8783093DA052093D9058091E306992755
:106E20009093DC058093DB058091EB069927909386
:106E3000DE058093DD058091F30699279093E005A8
:106E40008093DF058091FB0699279093E20580935C
:106E5000E10580911E0290911F029093EC058093B2
:106E6000EB0580918008909181089093F0058093C4
:106E7000EF0580918408909185089093F2058093A6
:106E8000F1058091860899279093FE058093FD0572
:106E90008091F9039091FA03909300068093FF0587
:106EA0008091F7039091F803909302068093010676
:106EB00080914104882321F480914204882321F0A9
:106EC0008091C205816003C08091C2058E7F80934E
:106ED000C2051F910F91FF90EF9008951F93CF93DC
:106EE000DF93182FEB01809114038823A1F4115034
:106EF0001F3F89F0D0932502C09324028091240281
:106F000090912502892BD1F7CE018C0F9D1F0E94F5
:106F10003117115078F7DF91CF911F910895CF93DA
:106F2000DF93809102018D3011F40E94161B1092A4
:106F30007A0080914702909148029093C407809311
:106F4000C30780914502909146029093B5078093C4
:106F5000B407809143029091440290930308809378
:106F6000020820913F0230914002C901880F991F09
:106F7000880F991F820F931F820F931F9093FE0714
:106F80008093FD072091410230914202C901880F90
:106F9000991F880F991F820F931F820F931F909341
:106FA0000E0880930D088FEC80937A00AEE1B3E079
:106FB000CDE1D6E097E08991E82FFF27EE0FFF1F84
:106FC000ED5BF84F0190F081E02DE259FF4F1E1666
:106FD0001F061CF0E0E0F0E005C0EF3FF10514F003
:106FE000EFEFF0E08C91282F3327E217F30714F42A
:106FF000815004C02E173F0714F48F5F8C9391507B
:10700000119697FFD8CF809159069927AA27BB27B9
:10701000BC01CD0124EC39E040E050E00E9444780E
:10702000DC01CB018093D5019093D601A093D701C9
:10703000B093D80180915A069927AA27BB27BC0193
:10704000CD010E944478DC01CB018093D101909363
:10705000D201A093D301B093D401DF91CF910895D1
:10706000A0E0B0E0E6E3F8E30C94D978882EC0E025
:10707000D0E07E016E0110924104469AD0937D03C8
:10708000C0937C03D0937B03C0937A03D0937703A0
:10709000C0937603D0938703C0938603D093850370
:1070A000C0938403D0938303C09382031092BE01E4
:1070B0001092BD01109237020E948F3784E690E053
:1070C0000E943E170E948F378091250680FF10C0D6
:1070D0008091140190911501875B934038F4809161
:1070E0001401909115018E5E924010F40E94BB1A1B
:1070F0000FE18AE090E00E943E1780914302909158
:107100004402C80FD91F8091470290914802E80EAF
:10711000F91E8091450290914602C80ED91E015079
:1071200007FFE7CF9701205F3F4F369527953695AC
:1071300027953093870320938603C6014096969542
:1071400087959695879590938503809384036096A1
:10715000F5E0D695C795FA95E1F7D0938303C093F0
:107160008203909381038093800330937F03209365
:107170007E03882009F441C08091FD079091FE07AD
:1071800097FF03C0909581959F4F6CE070E00E943F
:1071900083789B0170937D0360937C0380910D083D
:1071A00090910E0897FF03C0909581959F4F6CE0DA
:1071B00070E00E94837870937B0360937A038091E0
:1071C0000A0690910B069093770380937603B9019A
:1071D00084E090E00E94B32C60917A0370917B036D
:1071E00086E090E00E94B32C609176037091770363
:1071F00088E090E00E94B32C65C084E090E00E949B
:10720000AE2C90937D0380937C0386E090E00E94F7
:10721000AE2C90937B0380937A0388E090E00E94E9
:10722000AE2C9C01909377038093760380917C032E
:1072300090917D038150984050F480917A03909111
:107240007B038150984018F421503440D8F187E1F5
:107250009AE09F938F9386EF92E19F938F93E091B3
:107260002804F091290409958091FD079091FE076B
:1072700097FF03C0909581959F4F6CE070E00E944E
:10728000837870937D0360937C0380910D089091C7
:107290000E0897FF03C0909581959F4F6CE070E0BA
:1072A0000E94837870937B0360937A0380910A062F
:1072B00090910B0690937703809376030F900F9035
:1072C0000F900F901092C4071092C3071092B50749
:1072D0001092B407109203081092020884E690E01E
:1072E0000E943E1780913F02909140029C01220F24
:1072F000331F220F331F280F391F280F391F3093D8
:10730000FE072093FD0780914102909142028C017B
:10731000000F111F000F111F080F191F080F191F51
:1073200010930E0800930D0880913406C82EDD24BA
:10733000EE24FF24442737FD4095542FC701B601A2
:107340000E9444784B015C01609371037093720357
:1073500080937303909374039801442737FD4095FD
:10736000542FC701B6010E944478DC01CB01809301
:10737000690390936A03A0936B03B0936C038092AC
:107380004D0390924E03A0924F03B092500380930E
:10739000450390934603A0934703B093480310928C
:1073A00041031092420310924303109244038091D0
:1073B000160190911701A0911801B09119019093B5
:1073C0000D0680930C061092360210923502109230
:1073D00031031092320310923303109234038091E0
:1073E0002F039091300390932E0380932D030E94DE
:1073F000146382E390E090932502809324028091AD
:1074000059069927AA27BB27BC01CD0124EC39E0F6
:1074100040E050E00E944478DC01CB018856954C56
:10742000AF4FBF4F8093D5019093D601A093D70162
:10743000B093D80180915A069927AA27BB27BC018F
:10744000CD010E944478DC01CB018856954CAF4FAA
:10745000BF4F8093D1019093D201A093D301B093F9
:10746000D40110929B0110929A0180912F03909168
:107470003003AA2797FDA095BA2F2091960130914D
:1074800097014091980150919901BC01CD010E9452
:107490004478DC01CB018093090890930A08A093FB
:1074A0000B08B0930C08109228031092270381E078
:1074B000809301010E948B678091E9028460809330
:1074C000E9028FEF80937B0810927C0880E2809322
:1074D0007D08CEE1D3E0ADE1B6E007E08D91E82F85
:1074E000FF27EE0FFF1FED5BF84F808191818259DE
:1074F0008993015007FFF2CF84E680931D038091AA
:107500002202882311F0469A579A8091860390911F
:10751000870380569940815C9B4228F0809141040A
:10752000816080934104809184039091850380560B
:107530009940815C9B4228F0809141048260809355
:10754000410480918203909183038C52914089572A
:10755000954028F08091410484608093410480919B
:107560007C0390917D038C529140835C914028F084
:107570008091410488608093410480917A039091C6
:107580007B038C529140835C914028F080914104B0
:1075900080618093410480917603909177038050BD
:1075A00092408355914028F08091410480628093FD
:1075B0004104ECE0CDB7DEB70C94F578A3E1B0E080
:1075C000E4EEFAE30C94D3788091820390918303E4
:1075D0002091430230914402821B930B9093030845
:1075E0008093020880914D0290914E0297FD07967C
:1075F0009C0113E0359527951A95E1F73093C40760
:107600002093C30780914B0290914C0297FD0796FF
:10761000B3E095958795BA95E1F79093B507809378
:10762000B4073093CF072093CE079093C70780937A
:10763000C6078091FD079091FE07AC01440F551FCE
:10764000480F591F20913F0230914002C901880F15
:10765000991F880F991F820F931F820F931F480F46
:10766000591F57FF02C04D5F5F4F55954795559580
:1076700047955093FE074093FD0780910D08909128
:107680000E08AC01440F551F480F591F20914102AD
:1076900030914202C901880F991F880F991F820FEC
:1076A000931F820F931F480F591F57FF02C04D5F52
:1076B0005F4F559547955595479550930E084093C4
:1076C0000D0820913F0230914002C901880F991F97
:1076D000880F991F820F931F820F931F9C014427CD
:1076E00037FD4095542F8091610390916203A091E2
:1076F0006303B0916403820F931FA41FB51F80938F
:10770000610390936203A0936303B0936403209199
:10771000410230914202C901880F991F880F991FB9
:10772000820F931F820F931F9C01442737FD4095C2
:10773000542F80915D0390915E03A0915F03B091FF
:107740006003820F931FA41FB51F80935D03909366
:107750005E03A0935F03B09360038091D80790917C
:10776000D90720913F0230914002820F931F9093DE
:10777000D9078093D8078091050890910608209139
:10778000410230914202820F931F9093060880932A
:10779000050880917803909179030196909379037D
:1077A0008093780380910A0690910B0620917603CE
:1077B00030917703821B930B9C01442737FD409542
:1077C000542F8091590390915A03A0915B03B0917B
:1077D0005C03820F931FA41FB51F809359039093DE
:1077E0005A03A0935B03B0935C038FEC80937A0001
:1077F000109210012091490330914A0340914B03AC
:1078000050914C0329873A874B875C8729543B4624
:10781000414050402CF028E43BE641E050E00DC0F0
:1078200089859A85AB85BC85885B9449AE4FBF4FEF
:107830004CF428EB34E94EEF5FEF2D833E834F830A
:10784000588708C089859A85AB85BC858D839E83C2
:10785000AF83B88720915103309152034091530375
:10786000509154032D873E874F87588B29543B46B0
:10787000414050402CF028E43BE641E050E00DC090
:107880008D859E85AF85B889885B9449AE4FBF4F83
:107890004CF428EB34E94EEF5FEF29833A834B83B6
:1078A0005C8308C08D859E85AF85B88989839A835E
:1078B000AB83BC83A0910208B0910308BB8BAA8B59
:1078C000FD01CF01AA2797FDA095BA2FA0904103F3
:1078D000B0904203C0904303D0904403A80EB91E59
:1078E000CA1EDB1EA0924103B0924203C092430322
:1078F000D0924403E0900908F0900A0800910B0828
:1079000010910C08E80EF91E0A1F1B1FE0920908CF
:10791000F0920A0800930B0810930C08F0910403EE
:10792000F98BFF2309F098C180910303882309F0A4
:1079300093C18091250686FF8FC18091B4079091F5
:10794000B507AA2797FDA095BA2FBC01CD012981C3
:107950003A814B815C810E9444789B01AC0197FF86
:1079600004C02150384F4F4F5F4FBBE055954795AE
:1079700037952795BA95D1F78091BD01682E772468
:1079800088249924CA01B901A40193010E94447872
:10799000DC01CB018093920390939303A093940313
:1079A000B0939503B7FF04C08150904FAF4FBF4FC6
:1079B0001C012D01ACE05594479437942794AA9567
:1079C000D1F7209292033092930340929403509205
:1079D00095038091C3079091C407AA2797FDA095AE
:1079E000BA2FBC01CD012D813E814F8158850E9467
:1079F000447897FF04C06150784F8F4F9F4FFBE052
:107A00009595879577956795FA95D1F7A401930198
:107A10000E944478DC01CB018093960390939703F6
:107A2000A0939803B0939903B7FF04C08150904F7F
:107A3000AF4FBF4F9C01AD01ECE055954795379591
:107A40002795EA95D1F720939603309397034093B7
:107A5000980350939903809192039091930390938C
:107A6000AC078093AB078091960390919703909316
:107A7000B0078093AF0722193309440955092093B1
:107A80009603309397034093980350939903E20E23
:107A9000F31E041F151FE0920908F0920A080093D4
:107AA0000B0810930C088091BC018823B1F457FF98
:107AB00004C02F5F3F4F4F4F5F4F55954795379508
:107AC0002795A21AB30AC40AD50AA0924103B0921C
:107AD0004203C0924303D09244032A893B8979012F
:107AE0000027F7FC0095102F809196039091970343
:107AF000A0919803B0919903E80EF91E0A1F1B1F6D
:107B0000C801B70129813A814B815C810E94447888
:107B10009B01AC0197FF04C02150384F4F4F5F4F7E
:107B20006BE055954795379527956A95D1F78091E4
:107B3000BE01A82EBB24CC24DD24CA01B901A601B4
:107B400095010E944478DC01CB0180938A039093D5
:107B50008B03A0938C03B0938D03B7FF04C08150B7
:107B6000904FAF4FBF4F3C014D013CE0959487943F
:107B7000779467943A95D1F760928A0370928B0359
:107B800080928C0390928D03C801B7012D813E81B4
:107B90004F8158850E94447897FF04C06150784F08
:107BA0008F4F9F4F2BE095958795779567952A95F1
:107BB000D1F7A60195010E944478DC01CB018093A6
:107BC0008E0390938F03A0939003B0939103B7FF1C
:107BD00004C08150904FAF4FBF4FAC01BD018CE04E
:107BE00075956795579547958A95D1F740938E037C
:107BF00050938F0360939003709391032A893B897C
:107C000037FF03C0309521953F4F21343105E4F112
:107C1000D401C30197FE07C0B095A09590958195BA
:107C20009F4FAF4FBF4F81389105A105B10584F437
:107C3000DB01CA0177FF07C0B095A09590958195AB
:107C40009F4FAF4FBF4F81389105A105B105E4F0BB
:107C500081E08093290318C01092B0071092AF07FB
:107C60001092AC071092AB0710928E0310928F0304
:107C7000109290031092910310928A0310928B033A
:107C800010928C0310928D0380918E0390918F033C
:107C9000A0919003B0919103BC01CD0124E630E0A6
:107CA00040E050E00E94B878E0908A03F0908B03A7
:107CB000E21AF30AF092C207E092C10780918A03A8
:107CC00090918B03A0918C03B0918D03BC01CD01E9
:107CD00024E630E040E050E00E94B878DA01C901C3
:107CE00020918E0330918F038C01021B130B109394
:107CF000B7070093B6078091960190919701A091E4
:107D00009801B0919901BC01CD0128E631E040E035
:107D100050E00E9444782091090830910A0840916F
:107D20000B0850910C08261737074807590764F0CD
:107D3000261B370B480B590B2093090830930A0870
:107D400040930B0850930C082091090830910A08C1
:107D500040910B0850910C0857FF0CC0260F371F9D
:107D6000481F591F2093090830930A0840930B08B5
:107D700050930C086091B4077091B5076E0D7F1D8C
:107D80009B01442737FD4095542F809145039091E6
:107D90004603A0914703B0914803820F931FA41F8D
:107DA000B51F8093450390934603A0934703B09378
:107DB00048038091090390910A03681B790BCB015A
:107DC000AA2797FDA095BA2F29853A854B855C8512
:107DD000820F931FA41FB51F8093490390934A03FA
:107DE000A0934B03B0934C03C090D101D090D2012B
:107DF000E090D301F090D401C816D906EA06FB063C
:107E0000C4F488EA91E6A0E0B0E08C199D09AE09BF
:107E1000BF098093490390934A03A0934B03B09307
:107E20004C038093450390934603A0934703B0937C
:107E3000480322273327A9012C193D094E095F0960
:107E40008091490390914A03A0914B03B0914C0358
:107E500082179307A407B507B4F4D701C601885A5F
:107E60009146A040B0408093490390934A03A09369
:107E70004B03B0934C038093450390934603A09328
:107E80004703B09348036091C3077091C407600F24
:107E9000711F9B01442737FD4095542F80914D035E
:107EA00090914E03A0914F03B0915003820F931F06
:107EB000A41FB51F80934D0390934E03A0934F03CF
:107EC000B09350038091070390910803681B790BCE
:107ED000CB01AA2797FDA095BA2F2D853E854F850A
:107EE0005889820F931FA41FB51F8093510390934D
:107EF0005203A0935303B0935403E090D501F09044
:107F0000D6010091D7011091D801E816F9060A07A9
:107F10001B07C4F488EA91E6A0E0B0E08E199F093F
:107F2000A00BB10B8093510390935203A093530382
:107F3000B093540380934D0390934E03A0934F034B
:107F4000B093500322273327A9012E193F09400B74
:107F5000510B8091510390915203A0915303B09122
:107F6000540382179307A407B507B4F4D801C701D7
:107F7000885A9146A040B040809351039093520399
:107F8000A0935303B093540380934D0390934E03F7
:107F9000A0934F03B093500380914103909142030B
:107FA000A0914303B09144038093550390935603EB
:107FB000A0935703B09358038091510390915203BB
:107FC000A0915303B0915403809371039093720373
:107FD000A0937303B09374038091490390914A0373
:107FE000A0914B03B0914C038093690390936A0373
:107FF000A0936B03B0936C0380914D0390914E035B
:10800000A0914F03B091500380936D0390936E0342
:10801000A0936F03B0937003809145039091460342
:10802000A0914703B0914803809365039093660342
:10803000A0936703B093680380911C0190911D0188
:1080400097FD079603E0959587950A95E1F790933C
:10805000C4078093C30780911A0190911B0197FD7B
:10806000079613E0959587951A95E1F79093B507D4
:108070008093B40780914702909148020F9734F49F
:1080800088E19CEF9093C4078093C30780914702D7
:1080900090914802079734F480E398EF9093C407D7
:1080A0008093C307209102012A30A9F480914702EE
:1080B00090914802835F934034F088EE93E0909370
:1080C000C4078093C30780914702909148028A5F5A
:1080D0009340DCF014C08091470290914802815D8A
:1080E000974034F088EE93E09093C4078093C307E1
:1080F0008091470290914802805E974034F080ED75
:1081000097E09093C4078093C307809145029091B4
:1081100046020F9734F488E19CEF9093B507809363
:10812000B4078091450290914602079734F480E3AA
:1081300098EF9093B5078093B4072A30A9F4809103
:10814000450290914602835F934034F088EE93E0BD
:108150009093B5078093B4078091450290914602B1
:108160008A5F9340DCF014C08091450290914602F2
:10817000815D974034F088EE93E09093B50780934B
:10818000B4078091450290914602805E974034F09A
:1081900080ED97E09093B5078093B4076091C80194
:1081A000662309F4AFC040911C0150911D018091DC
:1081B0009A0390919B03481B590B5093A103409342
:1081C000A00320911C0130911D01280F391F37FF9A
:1081D00002C02F5F3F4F3595279530939B03209327
:1081E0009A03413851051CF080E890E005C04058E2
:1081F0005F4F34F480E89FEF9093A1038093A00336
:1082000040911A0150911B0180919C0390919D0314
:10821000481B590B50939F0340939E0320911A01D2
:1082200030911B01280F391F37FF02C02F5F3F4FCE
:108230003595279530939D0320939C034138510534
:108240001CF080E890E005C040585F4F34F480E8AF
:108250009FEF90939F0380939E03462F5527809115
:10826000A0039091A103849FB001859F700D949FFE
:10827000700D11249B0177FF02C0215F3F4FF4E096
:1082800035952795FA95E1F78091C3079091C4073A
:10829000820F931F9093C4078093C30780919E031E
:1082A00090919F03849FD001859FB00D949FB00D46
:1082B0001124AD019D01B7FF02C0215F3F4FE4E0F3
:1082C00035952795EA95E1F78091B4079091B50728
:1082D000820F931F9093B5078093B40780911C0180
:1082E00090911D01860F971F90931D0180931C0193
:1082F00080911A0190911B01840F951F90931B018F
:1083000080931A010091C6071091C7078091AB07AF
:108310009091AC07101611065CF59C0197FF04C004
:1083200022273327281B390BC901AA2797FDA095BF
:10833000BA2F2091BC01332744275527BC01CD011A
:108340000E9444789B01AC0197FF04C0215C3F4F21
:108350004F4F5F4F76E055954795379527957A951E
:10836000D1F78091C1079091C207820F931F27C058
:1083700097FF03C0909581959F4FAA2797FDA095E1
:10838000BA2F2091BC01332744275527BC01CD01CA
:108390000E9444789B01AC0197FF04C0215C3F4FD1
:1083A0004F4F5F4F66E055954795379527956A95EE
:1083B000D1F78091C1079091C207821B930B9093D4
:1083C000C2078093C107E090CE07F090CF0780915D
:1083D000AF079091B0071E141F045CF59C0197FF36
:1083E00004C022273327281B390BC901AA2797FD70
:1083F000A095BA2F2091BC01332744275527BC01F3
:10840000CD010E9444789B01AC0197FF04C0215C20
:108410003F4F4F4F5F4F96E05595479537952795BE
:108420009A95D1F78091B6079091B707820F931F65
:1084300027C097FF03C0909581959F4FAA2797FD6E
:10844000A095BA2F2091BC01332744275527BC01A2
:10845000CD010E9444789B01AC0197FF04C0215CD0
:108460003F4F4F4F5F4F86E055954795379527957E
:108470008A95D1F78091B6079091B707821B930B2D
:108480009093B7078093B6078091250687FF44C075
:10849000B989BB2309F040C0809103038823E1F52B
:1084A000E1E0EE16E1E0FE064CF08091C30790910A
:1084B000C4078E0D9F1D805091400DC0F0E0EF1657
:1084C000FFEFFF0664F48091C3079091C4078E0DFF
:1084D0009F1D80509F4F9093C4078093C30721E056
:1084E000013012074CF08091B4079091B507800FCE
:1084F000911F805091400CC03FEF0030130764F48F
:108500008091B4079091B507800F911F80509F4FC5
:108510009093B5078093B407E2E1CD5E0C94EF78B9
:1085200080911403882301F58091E9028C7F809368
:10853000E902A6E4B4E0E2EEF6E09BE080910302FB
:10854000882309F48C938D918183128291503896FF
:1085500097FFF4CF80910302882359F080910302A2
:1085600081508093030205C08091E902816080936D
:10857000E90280916E02882319F010926E0208952C
:10858000809370028093720280916C028E7F809340
:108590006C0285EA8093BC000895CF93DF93AEE12F
:1085A000B3E0CDE1D6E057E08991E82FFF27EE0F49
:1085B000FF1FED5BF84F0190F081E02DE259FF4F76
:1085C000EF3FF10521F01CF0EFEFF0E004C0F7FF02
:1085D00002C0E0E0F0E04C91242F3327E217F307CC
:1085E000A9F0CF01821B930B97FD03969595879574
:1085F00095958795242F280F2C93822F9927E8177C
:10860000F90714F4215001C02F5F2C93515011969B
:1086100057FFCACF80912706883F38F0EFEFF0E090
:10862000E81BF109E25EFC4F80818093CE018091CE
:10863000CE01882329F0843618F084E68093CE0199
:1086400080912906883F38F0EFEFF0E0E81BF10950
:10865000E25EFC4F80818093CC018091CC01882325
:1086600029F0843618F084E68093CC018091360698
:10867000883F38F0EFEFF0E0E81BF109E25EFC4FD5
:1086800080818093C7018091C7018B3010F48AE00C
:1086900002C08F3F11F48093C70180916306883F29
:1086A00038F0EFEFF0E0E81BF109E25EFC4F80816B
:1086B0008093DA078091DA07823010F481E002C0FB
:1086C0008F3F11F48093DA0780916506883F38F078
:1086D000EFEFF0E0E81BF109E25EFC4F8081809350
:1086E000000880910008823010F481E002C08F3FC2
:1086F00011F48093000880915006883F38F0EFEF26
:10870000F0E0E81BF109E25EFC4F80818093D7071F
:1087100080915106883F38F0EFEFF0E0E81BF10957
:10872000E25EFC4F80818093B10780915206883FC2
:1087300038F0EFEFF0E0E81BF109E25EFC4F8081DA
:108740008093DF0790912806983F18F49093CD010D
:1087500009C0EFEFF0E0E91BF109E25EFC4F808118
:108760008093CD01983F18F49093CD0109C0EFEFAD
:10877000F0E0E91BF109E25EFC4F80818093CD01BE
:1087800080912B06883F38F0EFEFF0E0E81BF1090D
:10879000E25EFC4F80818093CB0180912D06883F63
:1087A00038F0EFEFF0E0E81BF109E25EFC4F80816A
:1087B0008093C90180913506883F38F0EFEFF0E0F3
:1087C000E81BF109E25EFC4F80818093CA01809131
:1087D0003706883F38F0EFEFF0E0E81BF109E25E82
:1087E000FC4F80818093C60180913806883F38F025
:1087F000EFEFF0E0E81BF109E25EFC4F808180932F
:10880000C80180913906883F38F0EFEFF0E0E81BAF
:10881000F109E25EFC4F80818093C50180913A06A8
:10882000883F38F0EFEFF0E0E81BF109E25EFC4F23
:1088300080818093C40180914006883F38F0EFEF3B
:10884000F0E0E81BF109E25EFC4F80818093C201F9
:1088500080914106883F38F0EFEFF0E0E81BF10926
:10886000E25EFC4F80818093FE0280914206883F49
:1088700038F0EFEFF0E0E81BF109E25EFC4F808199
:108880008093FD0280914306883F38F0EFEFF0E0DF
:10889000E81BF109E25EFC4F80818093FC0280912D
:1088A0004406883F38F0EFEFF0E0E81BF109E25EA4
:1088B000FC4F80818093FB0280915E06883F38F0F8
:1088C000EFEFF0E0E81BF109E25EFC4F808180935E
:1088D000FA0280915F06883F38F0EFEFF0E0E81B86
:1088E000F109E25EFC4F80818093F902809160067D
:1088F000883F38F0EFEFF0E0E81BF109E25EFC4F53
:1089000080818093F80280916106883F38F0EFEF14
:10891000F0E0E81BF109E25EFC4F80818093F702F2
:1089200080914506883F38F0EFEFF0E0E81BF10951
:10893000E25EFC4F80818093C10180914906883FAF
:1089400038F0EFEFF0E0E81BF109E25EFC4F8081C8
:108950008093C00180915306883F38F0EFEFF0E03C
:10896000E81BF109E25EFC4F80818093BF0180919A
:108970005606883F38F0EFEFF0E0E81BF109E25EC1
:10898000FC4F80818093BE0180915706883F38F06C
:10899000EFEFF0E0E81BF109E25EFC4F808180938D
:1089A000BD0180915806883F38F0EFEFF0E0E81BFA
:1089B000F109E25EFC4F80818093BC0180915D06ED
:1089C000883F38F0EFEFF0E0E81BF109E25EFC4F82
:1089D00080818093BB0180917806883F38F0EFEF6B
:1089E000F0E0E81BF109E25EFC4F80818093100803
:1089F0008091C201282F33272F5F3F4F8CE398E2ED
:108A0000B9010E9483787093D0016093CF01809167
:108A1000330680930108809132068093C8079091B5
:108A20007A06933320F181E08093F602983F58F064
:108A3000EFEFF0E0E91BF109E25EFC4F8081823349
:108A400010F41092F60280914E0890914F0897FF13
:108A500008C08091F602882321F08091410480684B
:108A600003C0809141048F778093410402C010922B
:108A7000F60280914E0890914F0897FF1DC080919B
:108A800014038823C9F08091F6028823A9F080910D
:108A90000801909109018F5F9F4F71F488E99AE373
:108AA000909325028093240280E094EA9093090138
:108AB000809308011092F6028091F602882339F023
:108AC0008091BE01823D18F4825E8093BE01DF91E9
:108AD000CF910895A8E1B0E0E0E7F5E40C94D378F5
:108AE0000E94DE3A309102013C3010F4299A01C014
:108AF0002998E0901503F0901603FA82E98280919C
:108B0000C80799270A96E816F90614F49A83898308
:108B100080911D03843608F05CC08091B60390916B
:108B2000B703009731F001979093B7038093B60392
:108B300007C0109214038091E9028F7E8093E902AE
:108B40003A3011F0343110F0289A01C02898809101
:108B5000EA029091EB02895E9340C0F180913D065C
:108B6000282F33273A8329838091E90280618093FB
:108B7000E90280911906A82FBB27AA0FBB1FFD0190
:108B8000E958F84F1182108280911A06282F332756
:108B9000220F331FC9018958984FFC01118210829E
:108BA000AD5BB84F11961C921E922D5B384FD901C8
:108BB00011961C921E9280911C06E82FFF27EE0F43
:108BC000FF1FED5BF84F11821082C9C2109214038F
:108BD000C6C280911D038D3808F4C1C28091E9029C
:108BE0008F7E8093E90290913E0682E3989FC001B8
:108BF00011249093B7038093B603E981FA81B99762
:108C00008CF080911403882369F08091EA0290919E
:108C1000EB02FFEF8F3F9F0729F001969093EB0245
:108C20008093EA028091EA029091EB028F3F9105D6
:108C300009F038F51092390310923A0310923B0371
:108C400010923C03109235031092360310923703B2
:108C5000109238031092A2031092A3031092A4035F
:108C60001092A50310924103109242031092430305
:108C7000109244038A3F910549F481E08093BC033C
:108C800005C08091E90282608093E90280911B0611
:108C9000E82FFF27EE0FFF1FED5BF84F80819181DA
:108CA000813591050CF441C120911403222309F070
:108CB0003CC180911C06E82FFF27EE0FFF1FED5BE4
:108CC000F84F808191818C3491050CF406C180911C
:108CD000B8038F5F8093B803893C08F426C13C3009
:108CE00010F4299801C0299A109214031092B80325
:108CF0001092EB021092EA0230911906E32FFF273F
:108D0000EE0FFF1FED5BF84F808191818734910555
:108D1000B4F480911A06E82FFF27EE0FFF1FED5BDA
:108D2000F84F808191810190F081E02DF7FF03C021
:108D3000F095E195FF4FE734F1050CF478C041E080
:108D400020911A06A22FBB27AA0FBB1FAD5BB84FFD
:108D50008D919C9111978734910544F0E32FFF2763
:108D6000EE0FFF1FED5BF84F808191818D919C91FB
:108D70008734910574F080911906E82FFF27EE0FD4
:108D8000FF1FED5BF84F80819181873491050CF0D6
:108D900042E0E22FFF27EE0FFF1FED5BF84F8081CF
:108DA00091818634910574F480911906E82FFF278C
:108DB000EE0FFF1FED5BF84F8081918187349105A5
:108DC0000CF043E0E22FFF27EE0FFF1FED5BF84FA3
:108DD000808191818A5B9F4F74F480911906E82FFE
:108DE000FF27EE0FFF1FED5BF84F808191818734E5
:108DF00091050CF044E0E22FFF27EE0FFF1FED5B23
:108E0000F84F808191818A5B9F4F74F4809119069D
:108E1000E82FFF27EE0FFF1FED5BF84F8081918158
:108E2000863491050CF445E0842F0E940B2D80912F
:108E30001A06E82FFF27EE0FFF1FED5BF84F80812A
:108E400091810190F081E02DF7FF03C0F095E1954D
:108E5000FF4F7E97BCF480911906E82FFF27EE0F95
:108E6000FF1FED5BF84F808191818A5B9F4F54F427
:108E700081E080935C0488EE93E0909325028093D8
:108E8000240253C00E94052E0E94B82C80E00E944C
:108E9000380780913F060E945D748091250680FF0F
:108EA00010C08091140190911501875B934038F4B4
:108EB00080911401909115018E5E924010F40E94F1
:108EC000BB1A1092220280E00E94303881E0809329
:108ED000BB0380932202579A1FC080819181855BDA
:108EE0009F4F0CF58091B8038F5F8093B803893C46
:108EF000E0F03C3010F4299801C0299A1092140334
:108F00001092B8031092EB021092EA0281E00E94E4
:108F1000303881E08093BB030E94052E68E770E043
:108F20000E946E3702C02093B80380911B06E82F81
:108F3000FF27EE0FFF1FED5BF84F808191818B5A69
:108F40009F4F0CF00CC130911403E0911C063323A9
:108F500009F0DAC0FF27EE0FFF1FED5BF84F8081AD
:108F60009181855B9F4F0CF0CCC020917B06E22F56
:108F7000FF27EE0FFF1FED5BF84F80819181855B2E
:108F80009F4F1CF0222309F0BCC08091B9038F5F72
:108F90008093B903893C08F4E2C03093B90380910F
:108FA0004104882309F0A6C08091BB03882309F4FB
:108FB000A1C081E090E09093EB028093EA0281E00F
:108FC000809314031092A2031092A3031092A4039F
:108FD0001092A50310924103109242031092430392
:108FE0001092440310923D0310923E0310923F03EF
:108FF0001092400380913406E82EFF2400271127A9
:109000008091FD079091FE079C01442737FD409514
:10901000542FC801B7010E944478DC01CB01809332
:10902000510390935203A0935303B0935403809140
:109030000D0890910E089C01442737FD4095542F50
:10904000C801B7010E944478DC01CB018093490339
:1090500090934A03A0934B03B0934C038091710308
:1090600090917203A0917303B091740380934D03A8
:1090700090934E03A0934F03B093500380916903E4
:1090800090916A03A0916B03B0916C0380934503A8
:1090900090934603A0934703B0934803109239037B
:1090A00010923A0310923B0310923C031092350346
:1090B0001092360310923703109238038091E90220
:1090C00088608093E902909179068FE0989F9001E3
:1090D000112480912F0390913003820F931F68E633
:1090E00071E00E94837897FD01969595879580930E
:1090F000750335C08CED95E0909325028093240292
:109100002EC01092B9032BC0FF27EE0FFF1FED5B9F
:10911000F84F808191818C349105FCF020917B0681
:10912000E22FFF27EE0FFF1FED5BF84F808191814B
:10913000855B9F4F14F0222381F48091BA038F5FE7
:109140008093BA03893C58F0109214031092BA032A
:109150001092EB021092EA0202C01092BA038091C0
:109160009401815080939401809194018F3F21F06C
:109170008091E90284FF72C30E94CD428091C503B1
:109180009091C6039C01220F331F280F391FC090F6
:109190001906AC2DBB27AA0FBB1FFD01ED5BF84FD5
:1091A000B0902F064B2D552780819181849FF0012F
:1091B000859FF00D949FF00D11242E0F3F1F37FF58
:1091C00002C02D5F3F4FB9017595679575956795FD
:1091D000A958B84F80913006082F11278D919C9186
:1091E000809F7001819FF00C909FF00C11246E0DF8
:1091F0007F1D7093C6036093C5038091C703909150
:10920000C8039C01220F331F280F391FD0901A0664
:10921000AD2DBB27AA0FBB1FFD01ED5BF84F808171
:109220009181849FF001859FF00D949FF00D112492
:109230002E0F3F1F37FF02C02D5F3F4FA9015595ED
:10924000479555954795A958B84F8D919C91809F0A
:109250007001819FF00C909FF00C11244E0D5F1D4A
:109260005093C8034093C7038091F602882309F402
:1092700048C0CB0177FD0396DC01B595A795B59560
:10928000A795CA0157FD0396FC01F595E795F5955D
:10929000E7958091EA01682F772767FD70956A9FAF
:1092A00090016B9F300D7A9F300D11248091FD034A
:1092B000482F552747FD50954E9FC0014F9F900D59
:1092C0005E9F900D1124280F391F37FF02C0295FC0
:1092D0003F4F03E0359527950A95E1F730931C033E
:1092E00020931B036E9F90016F9F300D7E9F300D6A
:1092F00011244A9FC0014B9F900D5A9F900D11243D
:109300003FC080917906E82FFF27E456FE4F868103
:109310008093EA0190819093FD03A82FBB27A7FDBE
:10932000B095A69F9001A79F300DB69F300D1124D8
:10933000E92FFF27E7FDF095E49FC001E59F900D21
:10934000F49F900D1124280F391F37FF02C0295FA9
:109350003F4F13E0359527951A95E1F730931C039D
:1093600020931B03A49F9001A59F300DB49F300D47
:109370001124E69FC001E79F900DF69F900D1124E8
:10938000281B390B37FF02C0295F3F4FF3E03595AB
:109390002795FA95E1F730931A03209319038091EA
:1093A0001C06E82FFF27EE0FFF1FED5BF84F8081B3
:1093B0009181909581959F4F909318038093170307
:1093C0008330910514F0029705C00FEF8E3F900790
:1093D00034F40296909318038093170304C01092FC
:1093E0001803109217038091F9039091FA032091CA
:1093F000F5033091F603820F931F00911B03109128
:109400001C03081B190B10931C0300931B03809172
:10941000F7039091F8032091F3033091F403820F46
:10942000931F8090190390901A03881A990A9092BA
:109430001A038092190380911B06E82FFF27EE0F75
:10944000FF1FED5BF84FE080F18028E730E0E20E8F
:10945000F31EF0921603E09215038091C70199273D
:10946000AA2797FDA095BA2FBC01CD010E94B8771D
:10947000DC01CB0120E030E040E251E4BC01CD0151
:109480000E942677DC01CB01BC01CD010E948A77C6
:10949000DC01CB01809307088091C6018093E0072F
:1094A0008091C5019927AA2797FDA095BA2FBC01E5
:1094B000CD010E94B877DC01CB0120E030E040E232
:1094C00051E4BC01CD010E942677DC01CB01BC0137
:1094D000CD010E948A77DC01CB018093BB0780918C
:1094E000C4018093D0078091680480FF59C08091A7
:1094F0001008813808F454C080916104992787FDD1
:1095000090952B2D3327829FA001839F500D929F12
:10951000500D1124040F151F10931C0300931B03FF
:1095200080916204992787FD9095829FB001839F67
:10953000700D929F700D1124860E971E90921A0343
:109540008092190380916304282F332727FD3095DB
:109550008091170390911803820F931F9093180323
:109560008093170380916504282F332727FD3095BA
:1095700080912A069927289FD001299FB00D389FF6
:10958000B00D1124B0939B01A0939A0180916404C3
:1095900099278E159F0524F4909316038093150345
:1095A000809115039091160397FF04C01092160343
:1095B000109215038091250682FF02C01092E007E9
:1095C00040911B0350911C03CA0157FD03969C0157
:1095D000359527953595279537FF03C0309521950B
:1095E0003F4F8091EE029091EF0282179307B4F4FF
:1095F000CA0157FF03C0909581959F4F97FD039631
:1096000095958795959587959093EF028093EE02B7
:109610008536910544F084E690E001C0019790936F
:10962000EF028093EE024091190350911A03CA0190
:1096300057FD03969C01359527953595279537FF5E
:1096400003C0309521953F4F8091EC029091ED023F
:1096500082179307B4F4CA0157FF03C09095819510
:109660009F4F97FD03969595879595958795909330
:10967000ED028093EC028536910544F084E690E09B
:1096800001C001979093ED028093EC028091E90272
:1096900084FF08C01092EF021092EE021092ED02C9
:1096A0001092EC02ED2DFF27EE0FFF1FED5BF84F40
:1096B00040915406242F3327808191812817390740
:1096C00044F480917C0682FF04C081E08093020311
:1096D00013C0ED2DFF27EE0FFF1FED5BF84F842F1A
:1096E000992720915506821B9109208131812817E5
:1096F000390714F41092020340911A06E42FFF2751
:10970000EE0FFF1FED5BF84F50915406852F992700
:1097100022273327281B390B8081918182179307D9
:1097200044F480917C0683FF04C081E080930103B0
:1097300016C080910103882391F0E42FFF27EE0FDC
:10974000FF1FED5BF84F809155069927851B910906
:10975000208131818217930714F410920103EC2DBC
:10976000FF27EE0FFF1FED5BF84F40915406242FAB
:109770003327808191812817390744F480917C0632
:1097800080FF04C081E08093FF0217C08091FF0238
:10979000882399F0EC2DFF27EE0FFF1FED5BF84FAC
:1097A000842F992720915506821B910920813181B0
:1097B0002817390714F41092FF0240911906E42F7C
:1097C000FF27EE0FFF1FED5BF84F50915406852FDA
:1097D000992722273327281B390B808191818217F3
:1097E000930744F480917C0681FF04C081E080935C
:1097F000000316C080910003882391F0E42FFF2717
:10980000EE0FFF1FED5BF84F809155069927851BE2
:109810009109208131818217930714F4109200037B
:1098200080910203882319F480910103811181E062
:10983000809303038091FF02882321F48091000329
:10984000882351F081E08093040310920303109267
:1098500002031092010302C080930403809103036A
:10986000882321F480910403882369F080915306B2
:109870009927E981FA818E179F0714F49A838983C7
:1098800081E0809329038091E90284FF1AC010923D
:1098900018031092170310921C0310921B031092CE
:1098A0001A03109219039AE59093070888E78093AA
:1098B000E0079093BB078093D007109203031092A8
:1098C00004038091D3079091D407A091D507B0915C
:1098D000D607209171033091720340917303509128
:1098E0007403820F931FA41FB51F8093D307909317
:1098F000D407A093D507B093D6078091DB0790914A
:10990000DC07A091DD07B091DE072090690330905D
:109910006A0340906B0350906C03820D931DA41D4D
:10992000B51D8093DB079093DC07A093DD07B09310
:10993000DE078091CA079091CB07A091CC07B09128
:10994000CD07E0906D03F0906E0300916F031091CE
:109950007003EB82FC820D831E838E0D9F1DA01F62
:10996000B11F8093CA079093CB07A093CC07B09305
:10997000CD078091BC079091BD07A091BE07B09123
:10998000BF07E0906503F0906603009167031091B4
:109990006803EF82F88609871A878E0D9F1DA01F26
:1099A000B11F8093BC079093BD07A093BE07B093EF
:1099B000BF07F0900403FB86FF2029F48091030386
:1099C000882309F460C01092610310926203109220
:1099D00063031092640310925D0310925E03109271
:1099E0005F03109260031092D3071092D407109275
:1099F000D5071092D6071092DB071092DC07109261
:109A0000DD071092DE071092CA071092CB07109262
:109A1000CC071092CD071092BC071092BD07109290
:109A2000BE071092BF078091510390915203A091FD
:109A30005303B091540380934D0390934E03A0932E
:109A40004F03B09350038091490390914A03A09132
:109A50004B03B0914C038093450390934603A0932E
:109A60004703B093480310923402109233021092CD
:109A700008031092070310920A03109209030B8542
:109A8000002309F0F2C180910303882309F0EDC19E
:109A900080910A0690910B06815092402CF480919F
:109AA0001403882309F4E1C190907B08A090340648
:109AB0006091FD077091FE07788F6F8B80910D0884
:109AC00090910E089A8B898B9FEF991609F4D9C053
:109AD000BB24CC24DD24CA01B901A60195010E9452
:109AE000B87879018A01EF89F88DCF01AA2797FD0F
:109AF000A095BA2FE81AF90A0A0B1B0BC201B10193
:109B0000A60195010E94B87859016A0129893A890C
:109B1000C901AA2797FDA095BA2FA81AB90ACA0A9F
:109B2000DB0A292C332427FC3094432C532CC80106
:109B3000B701A20191010E94447897FF04C06150CF
:109B40007E4F8F4F9F4F3B014C0109E095948794C6
:109B5000779467940A95D1F7C601B501A2019101E6
:109B60000E94447897FF04C061507E4F8F4F9F4FF3
:109B70005B016C0119E0D594C794B794A7941A952A
:109B8000D1F78091EE029091EF02813491053CF47F
:109B90008091EC029091ED0281349105D4F0D401D2
:109BA000C30197FE03C00196A11DB11D3C014D01EB
:109BB0009594879477946794D601C501D7FE03C026
:109BC0000196A11DB11D5C016D01D594C794B79498
:109BD000A79480911C06E82FFF27EE0FFF1FED5B77
:109BE000F84F808191810190F081E02DF7FF03C053
:109BF000F095E195FF4F7A97A4F0C401B30123E0FB
:109C000030E040E050E00E94B87839014A01C601D6
:109C1000B50123E030E040E050E00E94B8785901FF
:109C20006A0180917D08282F332727FD3095432F27
:109C3000532F261537054805590514F439014A01F3
:109C4000992787FD9095909581959F4FAA2797FD1D
:109C5000A095BA2F681679068A069B0614F43C0173
:109C60004D012A153B054C055D0514F459016A01A7
:109C7000A816B906CA06DB060CF0CFC05C016D0160
:109C8000CCC0EA2CFF2400271127CA01B901A80182
:109C900097010E94B87839014A014F89588DCA014D
:109CA000AA2797FDA095BA2F681A790A8A0A9B0AF3
:109CB000C201B101A80197010E94B87859016A0157
:109CC00069897A89CB01AA2797FDA095BA2FA81A8E
:109CD000B90ACA0ADB0AD401C30197FE03C00F9672
:109CE000A11DB11D3C014D01F4E09594879477943A
:109CF0006794FA95D1F7D601C501D7FE03C00F9638
:109D0000A11DB11D5C016D01E4E0D594C794B79429
:109D1000A794EA95D1F78091EE029091EF028134F9
:109D200091053CF48091EC029091ED028134910513
:109D3000A4F0C401B30123E030E040E050E00E9411
:109D4000B87839014A01C601B50123E030E040E0AE
:109D500050E00E94B87859016A0180911C06E82FF2
:109D6000FF27EE0FFF1FED5BF84F8081918101907F
:109D7000F081E02DF7FF03C0F095E195FF4F7A9752
:109D8000A4F0C401B30123E030E040E050E00E94C1
:109D9000B87839014A01C601B50123E030E040E05E
:109DA00050E00E94B87859016A0171E267167104A7
:109DB000810491042CF070E2672E712C812C912C7F
:109DC00080EE68168FEF78068FEF88068FEF980683
:109DD00044F460EE662E6FEF762E6FEF862E6FEFF7
:109DE000962E91E2A916B104C104D1042CF050E2E0
:109DF000A52EB12CC12CD12CA0EEAA16AFEFBA061D
:109E0000AFEFCA06AFEFDA0644F440EEA42E4FEFF0
:109E1000B42E4FEFC42E4FEFD42E8091510390916A
:109E20005203A0915303B091540386199709A809CE
:109E3000B9098093510390935203A0935303B093B5
:109E400054038091490390914A03A0914B03B09130
:109E50004C038A199B09AC09BD098093490390936F
:109E60004A03A0934B03B0934C038091330290912B
:109E700034028F3F910509F008F4C4C5BB85BB23AC
:109E800009F04EC580910303882309F049C58091EC
:109E90002903882309F044C5E0915C06EC87EE2392
:109EA00009F43EC58091D3079091D407A091D507BE
:109EB000B091D607B7FF04C081509F4FAF4FBF4F3F
:109EC000E92EFA2E0B2F112707FD1A95E092D307E2
:109ED000F092D4070093D5071093D6078091DB0743
:109EE0009091DC07A091DD07B091DE07B7FF04C0B9
:109EF00081509F4FAF4FBF4F892F9A2FAB2FBB275A
:109F0000A7FDBA958D879E87AF87B88B8093DB07B7
:109F10009093DC07A093DD07B093DE0780913406B1
:109F2000A82EBB24CC24DD24209161033091620350
:109F30004091630350916403C601B5010E944478C7
:109F400097FF04C061507F4F8F4F9F4F672E782E31
:109F5000892E992487FC9A9460926103709262031F
:109F6000809263039092640320915D0330915E03BD
:109F700040915F0350916003C601B5010E9444788F
:109F800097FF04C061507F4F8F4F9F4F272E382E71
:109F9000492E552447FC5A9420925D0330925E036B
:109FA00040925F03509260038091590390915A034D
:109FB000A0915B03B0915C03B7FF04C081509F4F39
:109FC000AF4FBF4F892F9A2FAB2FBB27A7FDBA9555
:109FD0008093590390935A03A0935B03B0935C035F
:109FE000D801C70186199709A809B9098093AE035A
:109FF0009093AF03A093B003B093B10320915B069D
:10A00000E22EFF2400271127BC01CD01A8019701F2
:10A010000E94B87859016A012093BD033093BE03B2
:10A020004093BF035093C0038D859E85AF85B8894B
:10A0300082199309A409B5098093B2039093B303DD
:10A04000A093B403B093B503BC01CD01A80197015F
:10A050000E94B8782093C1033093C2034093C30396
:10A060005093C403D601C501D7FE04C081509F4F51
:10A07000AF4FBF4F892F9A2FAB2FBB27A7FDBA95A4
:10A08000909308038093070357FF04C021503F4F6C
:10A090004F4F5F4FBB2757FDBA95A52F942F832FA6
:10A0A00090930A03809309038091EE029091EF024E
:10A0B00081349105DCF48091EC029091ED028134C1
:10A0C0009105A4F480911C06E82FFF27EE0FFF1FD7
:10A0D000ED5BF84F808191810190F081E02DF7FFD9
:10A0E00003C0F095E195FF4F7A97E4F080917B08EB
:10A0F0008F3FC1F4809107039091080397FD01966B
:10A1000095958795909308038093070380910903A1
:10A1100090910A0397FD01969595879590930A0370
:10A12000809309038091CA079091CB07A091CC0737
:10A13000B091CD07B7FF04C081509F4FAF4FBF4FC5
:10A14000892F9A2FAB2FBB27A7FDBA958093CA07FB
:10A150009093CB07A093CC07B093CD078091BC0719
:10A160009091BD07A091BE07B091BF07B7FF04C093
:10A1700081509F4FAF4FBF4F892F9A2FAB2FBB27D7
:10A18000A7FDBA958093BC079093BD07A093BE0727
:10A19000B093BF078091710390917203A0917303F4
:10A1A000B09174032B813C814D815E81281B390B5A
:10A1B0004A0B5B0B2093A6033093A7034093A8039D
:10A1C0005093A9038091690390916A03A0916B0356
:10A1D000B0916C03EF80F88409851A85E81AF90AB2
:10A1E0000A0B1B0BE092AA03F092AB030093AC03A3
:10A1F0001093AD032093AE033093AF034093B003AD
:10A200005093B103E092B203F092B3030093B4030E
:10A210001093B50380914D0390914E03A0914F038D
:10A22000B0915003821B930BA40BB50B80934D038D
:10A2300090934E03A0934F03B09350038091450336
:10A2400090914603A0914703B09148038E199F094E
:10A25000A00BB10B8093450390934603A093470353
:10A26000B0934803FC85FF23E1F020912703309150
:10A270002803213831054CF08091820390918303AB
:10A280000196909383038093820320583F4F4CF4B0
:10A29000809182039091830301979093830380932D
:10A2A0008203109228031092270381E090E090939C
:10A2B000CA038093C903E090AE03F090AF0300910E
:10A2C000B0031091B103D801C70117FF07C0882759
:10A2D0009927DC018E199F09A00BB10B8150924088
:10A2E000A040B04034F084E090E09093CA038093A3
:10A2F000C9038091CF039091D003A091D103B09175
:10A30000D2032091D3073091D4074091D5075091C3
:10A31000D607821B930BA40BB50B815E914BAF4FFD
:10A32000BF4F8F539C49A040B04028F080917C08DB
:10A3300089310CF4FFC041E0E41640E1F40640E04E
:10A34000040740E014070CF473C08091CB0388230A
:10A3500009F46AC0D801C70117FF07C088279927E9
:10A36000DC018E199F09A00BB10B9C01AD01B7FF59
:10A3700004C021503E4F4F4F5F4FF9E05595479530
:10A3800037952795FA95D1F78091C9039091CA0323
:10A39000820F931F9093CA038093C903D801C7010A
:10A3A00017FF03C00796A11DB11DE3E0B595A79562
:10A3B00097958795EA95D1F78093BD039093BE0357
:10A3C000A093BF03B093C00389589341A040B0400D
:10A3D00064F088E893E1A0E0B0E08093BD0390933F
:10A3E000BE03A093BF03B093C0032091BD0330917F
:10A3F000BE034091BF035091C00357FF04C02150DA
:10A400003F4F4F4F5F4F232F342F452F552747FD89
:10A410005A958091070390910803820F931F9093A0
:10A4200008038093070306C081E08093CB0302C03A
:10A430001092CB0360E0E61660EFF6066FEF0607BA
:10A440006FEF16070CF073C08091CC03882309F4DA
:10A450006AC0D801C70117FF07C088279927DC0108
:10A460008E199F09A00BB10B9C01AD01B7FF04C071
:10A4700021503E4F4F4F5F4F69E0559547953795B7
:10A4800027956A95D1F78091C9039091CA03820FED
:10A49000931F9093CA038093C903D801C70117FF84
:10A4A00003C00796A11DB11D23E0B595A79597950B
:10A4B00087952A95D1F78093BD039093BE03A0930F
:10A4C000BF03B093C00388579C4EAF4FBF4F64F497
:10A4D00088E79CEEAFEFBFEF8093BD039093BE0380
:10A4E000A093BF03B093C0032091BD033091BE037E
:10A4F0004091BF035091C00357FF04C021503F4F0C
:10A500004F4F5F4F232F342F452F552747FD5A9527
:10A510008091070390910803820F931F9093080383
:10A520008093070311C081E08093CC030DC010928B
:10A53000CC030AC01092CA031092C90388EE93E0BC
:10A540009093DA018093D9018C85282F332780914D
:10A55000C9039091CA032817390724F43093CA031A
:10A560002093C90310917C08112379F0212F332700
:10A5700027FD30958091C9039091CA0328173907A8
:10A5800024F43093CA032093C9034091AE03509141
:10A59000AF036091B0037091B1034138510561057B
:10A5A000710574F080918603909187032091C9030F
:10A5B0003091CA03820F931F909387038093860381
:10A5C00040585F4F6F4F7F4F74F480918603909196
:10A5D00087032091C9033091CA03821B930B909388
:10A5E00087038093860381E090E09093CA03809371
:10A5F000C903C090B203D090B303E090B403F090CD
:10A60000B503D701C601F7FE07C088279927DC01EB
:10A610008C199D09AE09BF0981509240A040B040FD
:10A6200034F084E090E09093CA038093C903809152
:10A63000D3039091D403A091D503B091D603209178
:10A64000DB073091DC074091DD075091DE07821B6C
:10A65000930BA40BB50B815E914BAF4FBF4F8F5344
:10A660009C49A040B04018F019310CF4FFC001E043
:10A67000C01600E1D00600E0E00600E0F0060CF4B1
:10A6800073C08091CD03882309F46AC0D701C60145
:10A69000F7FE07C088279927DC018C199D09AE09B0
:10A6A000BF099C01AD01B7FF04C021503E4F4F4F81
:10A6B0005F4F09E055954795379527950A95D1F74E
:10A6C0008091C9039091CA03820F931F9093CA038C
:10A6D0008093C903D701C601F7FE03C00796A11DE9
:10A6E000B11D13E0B595A795979587951A95D1F764
:10A6F0008093C1039093C203A093C303B093C40398
:10A7000089589341A040B04064F088E893E1A0E00C
:10A71000B0E08093C1039093C203A093C303B093AE
:10A72000C4032091C1033091C2034091C3035091EF
:10A73000C40357FF04C021503F4F4F4F5F4F232F9B
:10A74000342F452F552747FD5A9580910903909145
:10A750000A03820F931F90930A038093090306C094
:10A7600081E08093CD0302C01092CD0320E0C21699
:10A7700020EFD2062FEFE2062FEFF2060CF073C0A7
:10A780008091CE03882309F46AC0D701C601F7FE81
:10A7900007C088279927DC018C199D09AE09BF09DC
:10A7A0009C01AD01B7FF04C021503E4F4F4F5F4F9A
:10A7B000E9E05595479537952795EA95D1F780912A
:10A7C000C9039091CA03820F931F9093CA03809389
:10A7D000C903D701C601F7FE03C00796A11DB11D2D
:10A7E00073E0B595A795979587957A95D1F780935E
:10A7F000C1039093C203A093C303B093C4038857CB
:10A800009C4EAF4FBF4F64F488E79CEEAFEFBFEFB5
:10A810008093C1039093C203A093C303B093C40376
:10A820002091C1033091C2034091C3035091C403EE
:10A8300057FF04C021503F4F4F4F5F4F232F342FFE
:10A84000452F552747FD5A958091090390910A039A
:10A85000820F931F90930A038093090311C081E034
:10A860008093CE030DC01092CE030AC01092CA038B
:10A870001092C90388EE93E09093DA018093D90196
:10A880004C85242F33278091C9039091CA03281740
:10A89000390724F43093CA032093C90380917C08BC
:10A8A000882379F0282F332727FD30958091C9031D
:10A8B0009091CA032817390724F43093CA032093D0
:10A8C000C9034091B2035091B3036091B4037091F6
:10A8D000B503413851056105710574F08091840319
:10A8E000909185032091C9033091CA03820F931F71
:10A8F000909385038093840340585F4F6F4F7F4F41
:10A90000CCF480918403909185032091C903309108
:10A91000CA03821B930B90938503809384030AC020
:10A9200010920A0310920903109208031092070371
:10A93000109229038091E007882341F410920A03C2
:10A940001092090310920803109207038091D30715
:10A950009091D407A091D507B091D6078093CF03EB
:10A960009093D003A093D103B093D2038091DB07DF
:10A970009091DC07A091DD07B091DE078093D303AF
:10A980009093D403A093D503B093D60310926103A0
:10A9900010926203109263031092640310925D039D
:10A9A00010925E0310925F0310926003109259039D
:10A9B00010925A0310925B0310925C031092D3071B
:10A9C0001092D4071092D5071092D6071092DB0789
:10A9D0001092DC071092DD071092DE071092CA0772
:10A9E0001092CB071092CC071092CD071092BC07A3
:10A9F0001092BD071092BE071092BF07109234024A
:10AA000010923302E0901703F0901803C701F7FE8D
:10AA100004C0882799278E199F0940976CF088EE0B
:10AA200093E09093DA018093D9018091250684FD0B
:10AA300003C081E08093BC0310913106A12EBB249A
:10AA4000CC24DD24B701882777FD8095982F9701C6
:10AA5000F7FE04C0222733272E193F09442737FD6C
:10AA60004095542F0E9444789B01AC01C601B5016A
:10AA70000E94447897FF04C061507E4F8F4F9F4FD4
:10AA800059E095958795779567955A95D1F79B01EC
:10AA9000812F99278E9DD0018F9DB00D9E9DB00D69
:10AAA0001124CD01B7FD03969595879595958795CA
:10AAB000280F391F442737FD4095542F2093A203B8
:10AAC0003093A3034093A4035093A50380914103C3
:10AAD00090914203A0914303B0914403821B930BD6
:10AAE000A40BB50B8093410390934203A0934303BF
:10AAF000B09344038155934CA040B04064F080E58E
:10AB000093ECA0E0B0E08093410390934203A093C4
:10AB10004303B09344038091410390914203A09179
:10AB20004303B0914403805B9C43AF4FBF4F64F439
:10AB300080EB9CE3AFEFBFEF809341039093420320
:10AB4000A0934303B093440340902F0350903003ED
:10AB50004114510409F478C18091250683FF74C122
:10AB60008091710390917203A0917303B09174036B
:10AB7000B7FF04C081509E4FAF4FBF4F39E0B5952E
:10AB8000A795979587953A95D1F76C0197FF04C0E3
:10AB9000D094C194D108D3948091690390916A03B1
:10ABA000A0916B03B0916C03B7FF04C081509E4F1E
:10ABB000AF4FBF4F29E0B595A795979587952A95F3
:10ABC000D1F7BC0197FF03C0709561957F4FC61602
:10ABD000D7060CF46B01B601D7FE02C0695F7F4F48
:10ABE0003B0183E0759467948A95E1F702E0E02EDB
:10ABF000F12C6E0C7F1C0CE112E0400E511E720114
:10AC00000027F7FC0095102F24EE3DEF420E531E57
:10AC10008091090890910A08A0910B08B0910C0846
:10AC20008090960190909701A0909801B090990122
:10AC3000BC01CD01A50194010E94B878E21AF30A83
:10AC4000040B150BC801B70128E631E040E050E0E5
:10AC50000E94B878DC01CB011CE4E12E1FEFF12E3D
:10AC6000E80EF91E0091D9011091DA0101151105C4
:10AC700089F539E1C316D1046CF5809127039091D1
:10AC800028038E0D9F1D90932803809327038091A6
:10AC9000BC038823F9F0C201AA2797FDA095BA2F1B
:10ACA000BC01CD01A50194010E944478DC01CB01D7
:10ACB0008093090890930A08A0930B08B0930C089E
:10ACC000BC01CD010E94B87830932E0320932D0350
:10ACD0001092BC03C701B4E0880F991FBA95E1F741
:10ACE000B3010E948378CB01AA2797FDA095BA2FC4
:10ACF0002091090830910A0840910B0850910C08E6
:10AD0000280F391F4A1F5B1F2093090830930A0838
:10AD100040930B0850930C08F090CA016F2D7727D1
:10AD2000C69EC001C79E900DD69E900D112497FD22
:10AD30004F966C01A5E0D594C794AA95E1F76C19DC
:10AD40007D096B0177FD7AC00115110509F06FC00F
:10AD50000091EE021091EF028091EC029091ED02D1
:10AD6000080F191F17FF02C0095F1F4FF3E0159569
:10AD70000795FA95E1F7005C1F4FCA01B901A501DB
:10AD800094010E94B878DA01C90120912D03309115
:10AD90002E03442737FD4095542F821B930BA40BA1
:10ADA000B50B845E9D4FAF4FBF4FBC01CD0128E670
:10ADB00031E040E050E00E94B878DC01CB01845BD8
:10ADC00090408C9DA0018D9D500D9C9D500D112497
:10ADD000CA01B8010E94837883E0F89E60011124C3
:10ADE000C616D70614F4B60108C0882799278C190F
:10ADF0009D09681779070CF4BC019B01442737FDB6
:10AE00004095542F8091410390914203A0914303B8
:10AE1000B0914403820F931FA41FB51F8093410379
:10AE200090934203A0934303B09344030DC0015099
:10AE300010401093DA010093D90106C084EF91E02D
:10AE40009093DA018093D90180912903882381F0BE
:10AE50001092350310923603109237031092380384
:10AE60001092390310923A0310923B0310923C0364
:10AE7000F0900403FF20F1F48091E007282F33279E
:10AE8000442755278091710390917203A091730319
:10AE9000B0917403BC01CD010E944478DC01CB0168
:10AEA000BC01CD0128EF3AE240E050E00E94B878C2
:10AEB000390102C066247724E0900303EE20F1F408
:10AEC0008091E007282F3327442755278091690375
:10AED00090916A03A0916B03B0916C03BC01CD010A
:10AEE0000E944478DC01CB01BC01CD0128EF3AE29D
:10AEF00040E050E00E94B878290102C04424552463
:10AF00008091B6079091B707893C91051CF088ECB9
:10AF100090E005C088539F4F34F488E39FEF9093EF
:10AF2000B7078093B6078091C1079091C207893C0B
:10AF300091051CF088EC90E005C088539F4F34F4D5
:10AF400088E39FEF9093C2078093C1078091C30766
:10AF50009091C407AA2797FDA095BA2F20910708C2
:10AF6000A22EBB24CC24DD24BC01CD01A601950179
:10AF70000E9444789B01AC018091B6079091B7077D
:10AF8000AA2797FDA095BA2FE7E0880F991FAA1F5F
:10AF9000BB1FEA95D1F7280F391F4A1F5B1F57FFC8
:10AFA00004C0215C3F4F4F4F5F4F76E0559547956A
:10AFB000379527957A95D1F78301020F131F1093C8
:10AFC000C4070093C3078091B4079091B507AA27DF
:10AFD00097FDA095BA2FBC01CD01A60195010E9455
:10AFE00044789B01AC018091C1079091C207AA27C8
:10AFF00097FDA095BA2F67E0880F991FAA1FBB1F66
:10B000006A95D1F7280F391F4A1F5B1F57FF04C0ED
:10B01000215C3F4F4F4F5F4F96E0559547953795D1
:10B0200027959A95D1F74201820E931E9092B5070B
:10B030008092B4078091020890910308880F991FAD
:10B04000AA2797FDA095BA2F2091BB073327442745
:10B050005527BC01CD010E9444785B016C0197FF2C
:10B0600008C08FE390E0A0E0B0E0A80EB91ECA1EB1
:10B07000DB1E86E0D594C794B794A7948A95D1F740
:10B080008091D007282F33274427552780915503D7
:10B0900090915603A0915703B0915803BC01CD0184
:10B0A0000E944478DC01CB01BC01CD0120EF35E5E5
:10B0B00040E050E00E94B878B501620F731F7093B2
:10B0C0000308609302080150104134F080E090E1E1
:10B0D0009093C4078093C3078091C3079091C407DE
:10B0E0008050904F34F480E090EF9093C4078093A9
:10B0F000C307B1E08B16B0E19B0634F080E090E12D
:10B100009093B5078093B4078091B4079091B507E9
:10B110008050904F34F480E090EF9093B507809387
:10B12000B4076150704134F080E090E190930308DF
:10B130008093020880910208909103088050904FFC
:10B1400034F480E090EF909303088093020880919C
:10B150000001482F552780911E0190911F0148172B
:10B16000590794F420911E0130911F0169817A8161
:10B17000649FC001659F900D749F900D1124B901CB
:10B180000E946F787A83698389819A81880F991FD9
:10B19000880F991F9A8389834091250640FFBDC679
:10B1A000EE2009F0BAC6FF2009F0B7C6AA24BB24D6
:10B1B000450180910503909106039093EE058093DD
:10B1C000ED0520918803309189032115310509F09F
:10B1D0003FC080911401909115018959934058F016
:10B1E00087B5853F20F480913702815011C081E0FE
:10B1F0008093E2034EC08091140190911501843632
:10B20000910508F587B58B30D0F0809137028F5FBC
:10B21000809337029AE089029001112480911406EC
:10B22000821B87BD8CE291E09093250280932402DB
:10B230008EE591E090938903809388032AC081E092
:10B240008093E10326C0F092E103F092E20321C073
:10B2500080910F0390911003A0911103B0911203FC
:10B2600014E0880F991FAA1FBB1F1A95D1F780936E
:10B27000380290933902A0933A02B0933B02B09205
:10B280003602A0923502215030403093890320933A
:10B2900088032091CD0141FF24C02233D8F480914E
:10B2A000DF0181508093DF018F3FD9F510922A038F
:10B2B00080910F0390911003A0911103B09112039C
:10B2C00080930B0390930C03A0930D03B0930E0394
:10B2D00081E004C081E080932A0388EC8093DF0141
:10B2E00020C080919A0190919B01820F911D209125
:10B2F0002A063327829FF001839FF00D929FF00D65
:10B300001124CF01AA2797FDA095BA2F80930B0394
:10B3100090930C03A0930D03B0930E0381E08093F0
:10B320002A038091710390917203A0917303B091ED
:10B330007403E0909601F0909701009198011091AC
:10B340009901BC01CD01A80197010E94B87859016B
:10B350006A018091690390916A03A0916B03B09197
:10B360006C03BC01CD01A80197010E94B878B90116
:10B37000C5010E946D768C01CC9714F00CE310E0AF
:10B38000C8010E948E6A8C0180E2809395018091B1
:10B390002A03882309F447C48091E90299279C0174
:10B3A0002071307084FD3FC460917E0660FD04C052
:10B3B0008091250681FD0CC0C980DA803093D803C6
:10B3C0002093D7038091E902806C8093E90299C1B0
:10B3D0008091E90281FF6BC14091DB015091DC015A
:10B3E000CA010F9620911503309116038217930717
:10B3F000BCF58091E103882399F58091E90287FFEC
:10B4000015C08091E9028F778093E90280910F0344
:10B4100090911003A0911103B091120380930B033C
:10B4200090930C03A0930D03B0930E038091E90257
:10B4300080648093E902241B350B2F50304037FF86
:10B4400003C0309521953F4F8091D7039091D80349
:10B45000820F931F9093D8038093D7038BE26EC023
:10B46000CA010F9728173907BCF58091E20388239A
:10B4700099F58091E90286FF15C08091E9028F7BE2
:10B480008093E90280910F0390911003A091110322
:10B49000B091120380930B0390930C03A0930D03C0
:10B4A000B0930E038091E90280688093E902241B27
:10B4B000350B215F3F4F37FF03C0309521953F4F3C
:10B4C0008091D7039091D803821B930B9093D8035C
:10B4D0008093D7038DE232C08091E902807C69F1CC
:10B4E0008091E9028F738093E9021092D803109241
:10B4F000D70320910F033091100340911103509115
:10B50000120320930B0330930C0340930D035093CD
:10B510000E0361FF06C084EF91E0909325028093B3
:10B52000240280911303882341F42333310541051C
:10B5300051051CF081E0809313038DE38093950106
:10B540002091D7033091D803C90137FF04C0882761
:10B550009927821B930B815092400CF491C08091EB
:10B560002A069927289F7001299FF00C389FF00C1C
:10B570001124C70160E075E00E948378CB01AA27FF
:10B5800097FDA095BA2F20910B0330910C034091A9
:10B590000D0350910E03280F391F4A1F5B1F209384
:10B5A0000B0330930C0340930D0350930E03109242
:10B5B000D8031092D703C0900F03D0901003E090EF
:10B5C0001103F0901203D701C60180509440A040AF
:10B5D000B04082179307A407B5075CF4D701C601F2
:10B5E00080509C4FAF4FBF4F281739074A075B0762
:10B5F00044F080930B0390930C03A0930D03B0933E
:10B600000E0380917E0681FF06C084E690E0909351
:10B6100025028093240280912E06882389F540918B
:10B6200005035091060357FF02C04D5F5F4F5595CC
:10B6300047955595479580911E0190911F01209146
:10B6400000013327489FB001499F700D589F700D2E
:10B650001124CB01B9010E9483787093DC016093BF
:10B66000DB01663471051CF486E490E005C067399F
:10B67000710534F086E990E09093DC018093DB0162
:10B680008091880390918903892BB9F180910F03F0
:10B6900090911003A0911103B091120380930B03BA
:10B6A00090930C03A0930D03B0930E0326C08091DA
:10B6B0000F0390911003A0911103B09112038059D0
:10B6C0009140A040B04080930B0390930C03A09353
:10B6D0000D03B0930E0380912E06882311F0992755
:10B6E00002C088E790E09093DC018093DB018981C0
:10B6F0009A819093060380930503C0900503D09030
:10B70000060320910F0330911003409111035091D3
:10B7100012032B8B3C8B4D8B5E8B20910B03309156
:10B720000C0340910D0350910E036B897C898D8928
:10B730009E89261737074807590724F080917E060F
:10B7400080FDB8C28091880390918903892B39F0DC
:10B75000C0900503D0900603AA24BB24D9C08B89CE
:10B760009C89AD89BE89821B930BA40BB50B80937A
:10B77000A6039093A703A093A803B093A9038230D4
:10B7800070E897077FEFA7077FEFB7072CF481E0FA
:10B7900090E8AFEFBFEF09C08F5F9F47A040B04078
:10B7A00064F08FEF9FE7A0E0B0E08093A603909352
:10B7B000A703A093A803B093A903A090A603B090F9
:10B7C000A7038091CC01282F332744275527809148
:10B7D000A6039091A703A091A803B091A903BC016F
:10B7E000CD010E94447897FF04C0615E7F4F8F4F68
:10B7F0009F4FA5E09595879577956795AA95D1F781
:10B800006093A6037093A7038093A8039093A90362
:10B810006530FEEF7F07FFEF8F07FFEF9F072CF4E8
:10B8200084E09EEFAFEFBFEF09C0605074408040EE
:10B83000904064F080E094E0A0E0B0E08093A60344
:10B840009093A703A093A803B093A9038090A603A5
:10B850009090A703209135023091360237FF02C045
:10B86000295F3F4FF3E035952795FA95E1F74FEFC4
:10B87000223834071CF421E83FEF05C02038310599
:10B8800014F020E830E0C901AA2797FDA095BA2F4F
:10B890002091CE01332744275527BC01CD010E94BA
:10B8A000447897FF04C06D5F7F4F8F4F9F4FE2E05A
:10B8B0009595879577956795EA95D1F79B015FEF09
:10B8C000613075071CF420E03FEF06C06F3F710543
:10B8D00019F014F020E031E08091E902807C49F019
:10B8E000C90137FD03969C01359527953595279518
:10B8F0000DC080917E0680FF09C0C90137FD079603
:10B900009C0143E0359527954A95E1F7820E931EF9
:10B910002091CB01222309F454C06091310370912E
:10B920003203809133039091340397FF04C0615830
:10B930007F4F8F4F9F4F37E0959587957795679508
:10B940003A95D1F73327442755270E94447897FF2B
:10B9500004C0615E7F4F8F4F9F4FB5E095958795EF
:10B9600077956795BA95D1F76093A6037093A7036F
:10B970008093A8039093A9036138AFEF7A07AFEFE4
:10B980008A07AFEF9A072CF480E89FEFAFEFBFEF85
:10B990000AC06F3F71058105910569F064F080E090
:10B9A00091E0A0E0B0E08093A6039093A703A0935A
:10B9B000A803B093A9038091A6039091A703880ED2
:10B9C000991E8091C901282F332780917F089927DC
:10B9D00087FD9095289FF001299FF00D389FF00D6D
:10B9E00011249F01F7FF02C021583F4F220F232F40
:10B9F000221F330BFFEF21383F071CF420E83FEFF5
:10BA000006C02F3F310519F014F020E031E0820E1E
:10BA1000931EC401AA2797FDA095BA2FE0900503B5
:10BA2000F09006039701442737FD4095542FBC0141
:10BA3000CD010E94447897FF04C061507E4F8F4F24
:10BA40009F4FF9E09595879577956795FA95D1F78A
:10BA5000C61AD70A8091D7039091D803892B09F091
:10BA600060C01E141F040CF05CC09501B7FE03C03B
:10BA7000309521953F4F2D33310540F48091DB0304
:10BA80009091DC038C159D0574F526C02C53304035
:10BA9000E5E036952795EA95E1F72031310510F07C
:10BAA0002FE030E04091DB035091DC031A141B04BB
:10BAB000E4F480E190E0821B930B489F9001499F42
:10BAC000300D589F300D112474E0369527957A95E6
:10BAD000E1F72C153D0520F58091DD019091DE0107
:10BAE000C816D906F4F06C011CC0205F3F4F80914E
:10BAF000DD019091DE01829FB001839F700D929FC6
:10BB0000700D11249B0164E0369527956A95E1F745
:10BB10004C155D0514F06A0104C0C216D30608F086
:10BB20006901C601AA2797FDA095BA2F2DE0880FBD
:10BB3000991FAA1FBB1F2A95D1F79801442737FDEB
:10BB40004095542FBC01CD010E94B8782093AA03E0
:10BB50003093AB034093AC035093AD03C090AA0362
:10BB6000D090AB038091D9039091DA039C01220F0E
:10BB7000331F280F391F2C0D3D1D37FF02C02D5FCD
:10BB80003F4FA90155954795559547955093DA0331
:10BB90004093D90380912606282F3327220F331F85
:10BBA000220F331F241735076CF480910108282FCA
:10BBB0003327220F331F220F331F205530404217E7
:10BBC000530724F03093DA032093D90380917E0643
:10BBD00080FF14C08091D9039091DA03A981BA81C2
:10BBE0008A179B0724F0B093DA03A093D903E0915E
:10BBF000D903F091DA03FA83E9835CC029813A81A1
:10BC00002E193F0937FF02C02D5F3F4F359527950D
:10BC100035952795E090D903F090DA03E20EF31EF4
:10BC2000FA82E98247C080912E06882301F560914F
:10BC300005037091060377FF02C06D5F7F4F759516
:10BC400067957595679540911E0150911F018091F0
:10BC50000001282F3327649FC001659F900D749FBA
:10BC6000900D1124B9010E948378CB0101C099275E
:10BC70009093DC018093DB018091DB019091DC01EA
:10BC8000873491051CF486E490E005C0863991055F
:10BC900034F086E990E09093DC018093DB01298108
:10BCA0003A813093DA032093D9038091E902806CC2
:10BCB0008093E9028091E90299279C0122703070FB
:10BCC00081FF1CC18091DD039091DE03A091DF0311
:10BCD000B091E0030097A105B10521F08091130315
:10BCE0008130B1F449815A81CA01AA2797FDA095F4
:10BCF000BA2F2EE0880F991FAA1FBB1F2A95D1F7D4
:10BD00008093DD039093DE03A093DF03B093E00301
:10BD100080911303813019F482E0809313036981C9
:10BD20007A81CB01AA2797FDA095BA2F98014427C5
:10BD300037FD4095542FBC01CD010E944478DC01B1
:10BD4000CB018093AA039093AB03A093AC03B09371
:10BD5000AD03B7FF04C08150904EAF4FBF4F7C0181
:10BD60008D01FDE015950795F794E794FA95D1F7C5
:10BD7000E092AA03F092AB030093AC031093AD03DF
:10BD80006091EA027091EB028FE0603A780750F51B
:10BD90008091DD039091DE03A091DF03B091E00379
:10BDA0009C01AD01EAE05695479537952795EA95B0
:10BDB000D1F7821B930BA40BB50BA8019701F4E0FC
:10BDC000220F331F441F551FFA95D1F7820F931F7F
:10BDD000A41FB51F8093DD039093DE03A093DF03C0
:10BDE000B093E00360547F4118F58091DD0390919A
:10BDF000DE03A091DF03B091E0039C01AD01ECE014
:10BE00005695479537952795EA95D1F7821B930B61
:10BE1000A40BB50BA801970172E0220F331F441F3A
:10BE2000551F7A95D1F7820F931FA41FB51F29C004
:10BE300080913502909136028091350290913602C0
:10BE400097FF03C0909581959F4F843691050CF51F
:10BE50008091DD039091DE03A091DF03B091E003B8
:10BE60009C01AD016EE056954795379527956A95EB
:10BE7000D1F7821B930BA40BB50B8E0D9F1DA01F3A
:10BE8000B11F8093DD039093DE03A093DF03B09393
:10BE9000E0038091DD039091DE03A091DF03B09178
:10BEA000E0031EE0B695A795979587951A95D1F76B
:10BEB000909306038093050340912C06442399F048
:10BEC00055279C01BA010E948378C901861B970BF4
:10BED0009093DC038093DB03260F371F3093DE0142
:10BEE0002093DD011FC01092DC031092DB038FEF63
:10BEF00093E09093DE018093DD0114C01092130350
:10BF00001092DD031092DE031092DF031092E00323
:10BF1000309306032093050305C08091E902806CED
:10BF20008093E9022090C807222D3327220F331F68
:10BF3000220F331F285D3F4FA981BA812A173B0783
:10BF400014F03A83298330900108832D9927880FB4
:10BF5000991F880F991F80559040E981FA818E17AB
:10BF60009F0714F49A83898380916D02882321F4BA
:10BF7000809186088F3FA1F08091EA029091EB02B8
:10BF80000297C09768F4E980FA801E141F0444F4F5
:10BF900081E090E09093EB028093EA023A83298358
:10BFA00009811A811093D2050093D1058091A203D3
:10BFB0009091A303A091A403B091A503F2E0880F90
:10BFC000991FAA1FBB1FFA95D1F700910208109183
:10BFD0000308081B190B29813A81213A31058CF09D
:10BFE000C90137FD019695958795801791070CF447
:10BFF0008C01909581959F4F081719076CF48C015F
:10C000000BC00135110514F000E510E03FEF003BD7
:10C01000130714F400EB1FEF232D3327220F331FD8
:10C02000220F331FC90149815A81841B950B801748
:10C0300091070CF48C0169817A81621B730B0617DE
:10C0400017070CF48B018091C3079091C40760918E
:10C050001B0370911C03861B970B9093D207809350
:10C06000D107D090E0072091390330913A034091F5
:10C070003B0350913C03DD2041F0661A770AC3016F
:10C08000AA2797FDA095BA2F04C0AA2797FDA095CF
:10C09000BA2F280F391F4A1F5B1F20933903309393
:10C0A0003A0340933B0350933C03809139039091B2
:10C0B0003A03A0913B03B0913C0381509A4FA040BA
:10C0C000B04064F080E09AEFA0E0B0E080933903E4
:10C0D00090933A03A0933B03B0933C0380913903C0
:10C0E00090913A03A0913B03B0913C03805096405D
:10C0F000AF4FBF4F64F480E096E0AFEFBFEF8093A7
:10C10000390390933A03A0933B03B0933C03C09050
:10C110003B062091D1073091D207F8E0FC1598F04A
:10C120008C2D9927829F7001839FF00C929FF00CB9
:10C130001124C701F7FC07967C0163E0F594E794AE
:10C140006A95E1F712C08C2D86959927829FA001F0
:10C15000839F500D929F500D1124CA0157FD0396E5
:10C160007C01F594E794F594E794A090CF01B0900A
:10C17000D0019501442737FD4095542F8091390314
:10C1800090913A03A0913B03B0913C03BC01CD01D7
:10C190000E94B878E20EF31E9090BB01692D7727BC
:10C1A00088279927980117FF04C022273327201BCF
:10C1B000310B37FF02C02F5F3F4F35952795A9817F
:10C1C000BA812A0F3B1F442737FD4095542F0E9408
:10C1D000447897FF04C0615C7F4F8F4F9F4F26E0EC
:10C1E00095958795779567952A95D1F79B016E155B
:10C1F0007F050CF47B01309521953F4FE216F30645
:10C200000CF479018091B4079091B50760911903FE
:10C2100070911A03861B970B9093B3078093B20714
:10C220002091350330913603409137035091380304
:10C23000DD2041F0461A570AC201AA2797FDA095B2
:10C24000BA2F04C0AA2797FDA095BA2F280F391F2F
:10C250004A1F5B1F20933503309336034093370307
:10C26000509338038091350390913603A0913703A2
:10C27000B091380381509A4FA040B04064F080E004
:10C280009AEFA0E0B0E08093350390933603A0933B
:10C290003703B09338038091350390913603A09112
:10C2A0003703B091380380509640AF4FBF4F64F4CE
:10C2B00080E096E0AFEFBFEF8093350390933603B5
:10C2C000A0933703B09338032091B2073091B3079E
:10C2D00048E04C1598F08C2D9927829FB001839FE0
:10C2E000700D929F700D1124CB0177FD07966C01A4
:10C2F000B3E0D594C794BA95E1F712C0C6948C2DDB
:10C300009927829FD001839FB00D929FB00D112479
:10C31000CD01B7FD03966C01D594C794D594C7940D
:10C320009501442737FD4095542F80913503909116
:10C330003603A0913703B0913803BC01CD010E94B0
:10C34000B878C20ED31E692D7727882799279801C0
:10C3500017FF04C022273327201B310B37FF02C0F1
:10C360002F5F3F4F35952795E981FA812E0F3F1FAB
:10C37000442737FD4095542F0E94447897FF04C00E
:10C38000615C7F4F8F4F9F4FE6E09595879577953E
:10C390006795EA95D1F79B016C157D050CF46B014F
:10C3A000309521953F4FC216D3060CF4690162EE19
:10C3B000862E66E0962E59E9A52E56E0B52E4BE066
:10C3C000542E31EE632E37E0732ED5012C911216C8
:10C3D0000CF014C1203429F4E981FA81F88FEF8B35
:10C3E0001FC049815A81CA01AA2797FDA095BA2F7B
:10C3F000332727FD3095432F532FBC01CD010E94D9
:10C40000447897FF04C0615C7F4F8F4F9F4F26E0B9
:10C4100095958795779567952A95D1F7788F6F8B46
:10C42000F5012181203439F42F89388D2E0D3F1DDF
:10C43000388F2F8B2AC0203C39F44F89588D4E19E4
:10C440005F09588F4F8B21C0C701AA2797FDA09580
:10C45000BA2F332727FD3095432F532FBC01CD0131
:10C460000E94447897FF04C0615C7F4F8F4F9F4FBD
:10C47000B6E09595879577956795BA95D1F7AF8989
:10C48000B88DA60FB71FB88FAF8BF501228120346E
:10C4900039F42F89388D2C0D3D1D388F2F8B2AC0F4
:10C4A000203C39F44F89588D4C195D09588F4F8BBA
:10C4B00021C0C601AA2797FDA095BA2F332727FDD3
:10C4C0003095432F532FBC01CD010E94447897FF34
:10C4D00004C0615C7F4F8F4F9F4FA6E09595879575
:10C4E00077956795AA95D1F7AF89B88DA60FB71F35
:10C4F000B88FAF8BF5012381203439F42F89388D23
:10C50000200F311F388F2F8B2AC0203C39F44F89E0
:10C51000588D401B510B588F4F8B21C0C801AA2743
:10C5200097FDA095BA2F332727FD3095432F532F22
:10C53000BC01CD010E94447897FF04C0615C7F4F2D
:10C540008F4F9F4FF6E09595879577956795FA956C
:10C55000D1F7AF89B88DA60FB71FB88FAF8BF30196
:10C56000808191812F89388D8217930764F4B901F6
:10C57000680F791F77FF02C06F5F7F4F75956795D2
:10C58000788F6F8B08C04F89588D440F551F481BFB
:10C59000590B588F4F8B822D9927880F991F880F21
:10C5A000991F6F89788D861797075CF4832D9927DB
:10C5B000880F991F880F991FAF89B88DA817B907E1
:10C5C00014F0988F8F8B8F89988D97FD0396959592
:10C5D000879595958795F4018183880F991F880F1A
:10C5E000991F2F89388D281B390BC901880F828329
:10C5F000EF89F88DD301ED93FC9303C0F401118210
:10C6000012825A9422E030E0620E731E44E050E041
:10C61000A40EB51E68E070E0860E971E57FED5CEBC
:10C62000E2E1C85E0C94EF788091EF039091F00303
:10C63000A091F103B091F2038093E7039093E80394
:10C64000A093E903B093EA038091EB039091EC038C
:10C65000A091ED03B091EE038093E3039093E40384
:10C66000A093E503B093E60308951092FA031092A5
:10C67000F9031092F8031092F703089584B1806AC9
:10C6800084B93D9A82E58CBD1DBC459A81E08093BA
:10C6900013088AEA8093240883E8809325088AE0B7
:10C6A00080932608109228081092270810922A08D2
:10C6B0001092290810927E08109246080895309131
:10C6C0001308332309F085C00DB407FE82C084E04F
:10C6D00080932302459A2EB58091FE0399278130DD
:10C6E000910589F0823091051CF4892B21F03EC020
:10C6F0000297B9F03BC0309345082093FF032138DF
:10C70000A9F581E008C0253549F48091FF03820F27
:10C710008093FF0382E08093FE0328C03093FE03E2
:10C7200025C080914508E82FFF27EF59F74F208358
:10C730008F5F809345089091FF038A31A0F02917FD
:10C7400069F48AE1A1E6B8E0E7E4F8E00D9001922F
:10C750008A95E1F781E08093460802C0309346084D
:10C760001092FE0303C0920F9093FF0320912308C1
:10C77000203208F028C045980000000000000000AA
:10C7800000000000000000000000000000000000A9
:10C790000000000000000000000000000000000099
:10C7A0000000000000000000E0911C08F0911D084E
:10C7B000E20FF11D80818EBD809143089081890F29
:10C7C0008093430803C081E0809313082F5F209378
:10C7D00023080895EF92FF920F931F9380913406E0
:10C7E0009927880F991F880F991F7C010027F7FC54
:10C7F0000095102F8091710390917203A0917303A3
:10C80000B0917403BC01CD01A80197010E94B878D2
:10C8100030932808209327088091690390916A0338
:10C82000A0916B03B0916C03BC01CD01A8019701ED
:10C830000E94B87830932A0820932908209109088B
:10C8400030910A0840910B0850910C08DA01C90197
:10C85000E3E0880F991FAA1FBB1FEA95D1F7820F4B
:10C86000931FA41FB51F820F931FA41FB51F2091F4
:10C870009601309197014091980150919901BC0126
:10C88000CD010E94B8783093300820932F08809112
:10C890008203909183032091430230914402821BD2
:10C8A000930B9093360880933508E0917803F091CC
:10C8B00079038091D8079091D907BF010E948378AE
:10C8C000CB019B01220F331F220F331F280F391F6B
:10C8D000280F391F37FF02C02D5F3F4F3595279531
:10C8E0003595279530932C0820932B0880910508C7
:10C8F00090910608BF010E9483789B01220F331F8D
:10C90000220F331F260F371F260F371F37FF02C096
:10C910002D5F3F4F359527953595279530932E08F8
:10C9200020932D0810927903109278031092D90762
:10C930001092D807109206081092050880912608D8
:10C9400099278D30910509F466C08E3091055CF40D
:10C950008B30910509F48EC08C3091050CF00FC11D
:10C960000A9761F0ADC18F30910509F481C18F3014
:10C9700091050CF45CC1409799F1A2C18091FE022F
:10C98000809337088091FD02809338088091FC02E3
:10C99000809339088091FB0280933A088091FA02D3
:10C9A00080933B088091F90280933C088091F802C3
:10C9B00080933D088091F70280933E088091E902C0
:10C9C00080933F088091E902837F8093E9020E946F
:10C9D000052E80934008809175038093410870C1B3
:10C9E000809180089091810890933808809337084F
:10C9F000809184089091850890933A088093390833
:10CA000080911E0190911F0180933B08809100014D
:10CA100080933C0855C180916806809337088091C7
:10CA200069068093380880916A068093390880915E
:10CA30006B0680933A0880916C0680933B08809146
:10CA4000700680933C088091710680933D08809128
:10CA5000720680933E088091750680933F0880910E
:10CA600073068093400880917406809341088091FA
:10CA70007606DAC0F89480911B06E82FFF27EE0FA8
:10CA8000FF1FED5BF84F0190F081E02DE038F105DC
:10CA90001CF0EFE7F0E006C02FEFE138F20714F4E6
:10CAA000E1E8FFEFE093370880911C06E82FFF27AD
:10CAB000EE0FFF1FED5BF84F0190F081E02DE038A5
:10CAC000F1051CF0EFE7F0E006C06FEFE138F60784
:10CAD00014F4E1E8FFEFE093380880911A06E82F9C
:10CAE000FF27EE0FFF1FED5BF84F0190F081E02D67
:10CAF000E038F1051CF0EFE7F0E006C08FEFE13819
:10CB0000F80714F4E1E8FFEFE09339088091190683
:10CB1000E82FFF27EE0FFF1FED5BF84F0190F0812C
:10CB2000E02DE038F1051CF0EFE7F0E006C02FEF54
:10CB3000E138F20714F4E1E8FFEF7894E0933A0863
:10CB400080911E0380933B0880911F0380933C08D3
:10CB50008091200380933D088091210380933E08BB
:10CB60008091220380933F088091230380934008A3
:10CB700080912403809341088091250355C08091C2
:10CB80005C04863018F010925C0485E080933708CE
:10CB9000809177068093380880910F03909110035D
:10CBA000A0911103B0911203BC01CD0125E030E04A
:10CBB00040E050E00E94B87830933A08209339085A
:10CBC00080910B0390910C03A0910D03B0910E0383
:10CBD000BC01CD0125E030E040E050E00E94B87893
:10CBE00030933C0820933B0880916D0680933D086C
:10CBF00080916E0680933E0880916F0680933F0877
:10CC000080911D03809340088091430790914407D1
:10CC1000809341088091D1059091D20597FD0396AC
:10CC200095958795959587958093420849C0109270
:10CC3000370882E5809338081092390880E18093A4
:10CC40003A088091020180933B08809141048093CF
:10CC50003C088091420480933D0880914304809376
:10CC60003E088091440480933F088091450426C08B
:10CC700080914D068093370880917D068093380817
:10CC80008091C101809339088091460680933A08CB
:10CC90008091470680933B088091480680933C082A
:10CCA0008091C00180933D0880914A0680933E08A0
:10CCB00080914B0680933F0880914C0680934008FA
:10CCC00080914608882309F4D8C08AEF8093E9014F
:10CCD0004091480850914908CA0181509E4F8F5F8A
:10CCE0009340B0F420914A0830914B08C90181501B
:10CCF0009E4F8F5F934060F48091250685FF08C0AA
:10CD00005093FA034093F9033093F8032093F70309
:10CD100080914E0890914F0821E08936920724F4C3
:10CD20009093300380932F0380912F0390913003D1
:10CD300020912D0330912E03821B930B845E9D4F17
:10CD400068E671E00E948378845B904090932C03A6
:10CD500080932B0320915208309153088091240234
:10CD6000909125028217930740F480915C048823F8
:10CD700021F43093250220932402809147089927BB
:10CD80008836910549F18936910524F48736910555
:10CD900031F07BC08936910509F445C076C0809199
:10CDA000540880937B088091550880937D0880917A
:10CDB000560880937C088091570880937E08809164
:10CDC000580880937F08809159088093EA018091E8
:10CDD0005A088093FD0359C08091540880931E081F
:10CDE0008091550880931F088091560880932008F1
:10CDF00080915708809321088091580880932208D9
:10CE00008091C10590915908892B8093C10590911B
:10CE10005A089093FB038091C20583709C70892B04
:10CE20008093C20532C08091540880931408809189
:10CE300055088093150880915608809316088091B4
:10CE4000570880931708809158089091590890933B
:10CE500019088093180880915A0890915B08909364
:10CE60001B0880931A0880915C08992787FD90958C
:10CE7000909376078093750708C01092FA0310927A
:10CE8000F9031092F8031092F7031F910F91FF908E
:10CE9000EF90089580911308882309F43BC04598CA
:10CEA00084E298E090931D0880931C089091FC0305
:10CEB000E92FFF27E052FE4F9F5F9093FC03808194
:10CEC00080932608993010F01092FC0310921308FA
:10CED0000E94EA6381E080932308000000000000C4
:10CEE0000000000000000000000000000000000042
:10CEF0000000000000000000000000000000000032
:10CF000000000000000000000000809124088093D1
:10CF100043088EBD089587B18C6087B942984398C5
:10CF20001092010480E88093EC0110920004809339
:10CF3000EB010895809106048150809306048F3F91
:10CF400009F0FBC024E0209306048091E9029927B0
:10CF500080739070892B21F48091420480FF1CC063
:10CF600080916606882349F080910904882311F492
:10CF70002093010481E0809309048091670688234F
:10CF8000B9F080910A04882319F484E080930004A6
:10CF900081E080930A040CC01092090410920A04E4
:10CFA0008091620680930704809164068093080450
:10CFB00080910904882309F040C080917C06282FC5
:10CFC000332724FF07C080911403882319F425FD1B
:10CFD0004DC04EC090916306983F50F08091DA07A3
:10CFE0008D3D30F08091070488230CF43FC040C091
:10CFF000983F48F08091DA078A3028F4809107043E
:10D000008823B4F133C080910104815080930104DE
:10D010008F3F79F58091DA078150809301048091E8
:10D02000EC01813011F480E801C086958093EC0119
:10D030008091EC019091070417C080910104815008
:10D04000809301048F3FA9F489E0809301048091CB
:10D05000EC01813011F480E801C086958093EC01E9
:10D060008091EC0190916606892311F0429A01C0EB
:10D07000429880910A04882309F043C080917C067D
:10D08000282F332724FF07C080911403882319F425
:10D0900026FD50C034C090916506983F50F08091B5
:10D0A00000088D3D30F08091080488230CF442C0C4
:10D0B00026C0983F48F0809100088A3028F480917B
:10D0C00008048823E4F036C08091000481508093E6
:10D0D00000048F3F91F580910008815080930004F7
:10D0E0008091EB01813011F480E801C08695809336
:10D0F000EB018091EB01909108048923D9F44398C6
:10D100000895809100048150809300048F3FA9F41A
:10D1100089E0809300048091EB01813011F480E874
:10D1200001C086958093EB018091EB019091670699
:10D13000892311F0439A0895439808954FB724E145
:10D1400030E0F8948091C9008F778093C900809176
:10D15000C9008F7B8093C9008091C9008F7D809327
:10D16000C9005A9A52985B9A539A832F99278093B1
:10D17000CD002093CC008091C80082608093C800CD
:10D1800080E18093C9008091CA008F778093CA00A4
:10D190008091CA008F7B8093CA008091CA008F7DE6
:10D1A0008093CA008091CA008F7E8093CA008091CC
:10D1B000CA00877F8093CA008091C9008B7F8093CB
:10D1C000C9008091CA0084608093CA008091CA001F
:10D1D00082608093CA008091C80087FF03C080915D
:10D1E000CE00F9CF8091C90080688093C9004FBFFD
:10D1F0000895EF92FF920F931F93CF93DF93482FE1
:10D2000000E010E08091ED01813061F41092ED01B9
:10D2100084E480930B0410920D0410920C0410927D
:10D220000E042BC180910B04882319F421E030E017
:10D2300001C0980190910C04992371F4232B11F0F3
:10D2400081E010C084E480930B0490930D049093CC
:10D250000C0490930E04FAC0913069F4232B09F06A
:10D26000EBC082E080930C0480910D048F5F80936B
:10D270000D0483E0E9C09230D1F4232B09F0DCC027
:10D2800083E080930B0440930E0490910D04923040
:10D2900039F410920F0447FF03C081E080930F041C
:10D2A00083E080930C049F5F90930D04CFC0933074
:10D2B00009F0C2C0232B09F0BFC090930B0482E099
:10D2C00080930C0480910D048F5F80930D04209156
:10D2D0000E04822F9927782F6627842F9927682B91
:10D2E000792B80913F06813049F47370CB018050D7
:10D2F000924063E070E00E94837817C0823061F44E
:10D300007770CB018050944066E070E00E94837893
:10D310002695269526950BC0737068567140CB01F3
:10D3200077FD0196BC017595679526952695022F88
:10D3300011270F7010700F5F1F4F0D30110508F08F
:10D3400074C07801E00EF11EF701ED5BF84F8081AB
:10D3500091819B01281B390BC90137FF03C09095B0
:10D3600081959F4F069794F480911D03883C30F47B
:10D3700080911D03865F80931D0308C088EC809315
:10D380001D0380916F008F7D80936F00F701ED5B2F
:10D39000F84F808191819C01220F331F280F391F84
:10D3A000260F371F37FF02C02D5F3F4FE901D5958C
:10D3B000C795D595C795CB0101968C179D0714F499
:10D3C000219706C061507040C617D7070CF421960C
:10D3D00080911D03843BD0F0F701ED5BF84F808115
:10D3E0009181FE01E81BF90BCF0163E070E00E9420
:10D3F0008378CB01880F991F860F971F27E737E0A7
:10D40000E20EF31EF7019183808307C027E737E020
:10D41000E20EF31EF70111821082000F111F0D5B47
:10D42000184FF801D183C08311C00231110570F08B
:10D4300081E08093ED010AC081E08093ED011092BC
:10D440000D0410920F0484E480930B0480910D046A
:10D45000803198F080910F04882331F48091ED01A0
:10D46000882311F48093940110920D0410920F04FC
:10D4700010920C0484E480930B04E6E0CDB7DEB791
:10D480000C94FB78CF93FC0197FF05C0CFEFF0958C
:10D49000E195FF4F01C0C1E028E631E0CF01B901BD
:10D4A0000E948378FC018B35910554F08B55904098
:10D4B0008A35910538F484EB90E08E1B9F0BFC01BC
:10D4C00041E00DC0CF01855B90408A35910518F48D
:10D4D000E45BF04003C02E1B3F0BF9014FEFEE0F52
:10D4E000FF1FE15DF54F259134918C2F992787FD22
:10D4F0009095289FB001299F700D389F700D1124C1
:10D50000842F992787FD9095689FA001699F500DF2
:10D51000789F500D1124CA01CF9108952AE530E07B
:10D52000281B390BC9010E94426A0895CF93DF93EB
:10D5300080E00E94F96F80911E0190911F016AE0C6
:10D5400070E00E9483789F938F9380911E01909149
:10D550001F016AE070E00E9483787F936F938DEFE4
:10D560009AE09F938F93CCEEDFE6DF93CF93E09129
:10D570002804F091290409952DB73EB7285F3F4F45
:10D580002DBF8091E9018823B9F186E00E94F96FEF
:10D5900080911808909119086AE070E00E946F78F5
:10D5A0007F936F938FED90E09F938F938091090805
:10D5B00090910A08A0910B08B0910C082091960157
:10D5C000309197014091980150919901BC01CD0192
:10D5D0000E94B8783F932F9386E09BE09F938F93B0
:10D5E000DF93CF93E0912804F091290409958DB73A
:10D5F0009EB70A968DBF12C086E00E94F96F82E145
:10D600009BE09F938F93DF93CF93E0912804F09159
:10D61000290409950F900F900F900F908091FB03B4
:10D620008823C1F086E00E94F96F8091FB0399275F
:10D630009F938F9389E19BE09F938F93DF93CF9389
:10D64000E0912804F091290409952DB73EB72A5F8F
:10D650003F4F2DBF80E10E94F96F8091F3019091BF
:10D66000F4016CE370E00E946F789F938F93809138
:10D67000F3019091F4016CE370E00E946F787F9366
:10D680006F9380918408909185089F938F9384E293
:10D690009BE09F938F93CCEEDFE6DF93CF93E091F7
:10D6A0002804F09129040995809125062DB73EB7ED
:10D6B000265F3F4F2DBF80FF29C08AE10E94F96F8E
:10D6C0008091950199279F938F9380910F0390915B
:10D6D0001003A0911103B0911203BC01CD0124E607
:10D6E00030E040E050E00E94B8783F932F9381E310
:10D6F0009BE09F938F93DF93CF93E0912804F09169
:10D70000290409958DB79EB708968DBFDF91CF91FB
:10D710000895CF93DF9380E00E94F96F8091010715
:10D72000992787FD90959F938F938091F90699276C
:10D7300087FD90959F938F938091F106992787FDA0
:10D7400090959F938F938091E906992787FD9095F7
:10D750009F938F9388E39BE09F938F93CCEEDFE6BC
:10D76000DF93CF93E0912804F0912904099580E19B
:10D770000E94F96F2DB73EB7245F3F4F2DBF8091B8
:10D780002107992787FD90959F938F938091190783
:10D79000992787FD90959F938F93809111079927E3
:10D7A00087FD90959F938F9380910907992787FD17
:10D7B00090959F938F9388E49BE09F938F93DF9343
:10D7C000CF93E0912804F0912904099580911706E0
:10D7D0002DB73EB7245F3F4F2DBF853098F480E1D1
:10D7E0000E94F96F88E59BE09F938F93DF93CF931F
:10D7F000E0912804F091290409950F900F900F9063
:10D800000F9018C08730B0F488E10E94F96F8FED57
:10D8100090E09F938F9389E69BE09F938F93DF9394
:10D82000CF93E0912804F091290409958DB79EB714
:10D8300006968DBFDF91CF9108950F931F9380E0DF
:10D840000E94F96F2AE030E0809180089091810871
:10D85000B9010E946F789F938F9380918008909177
:10D860008108B9010E946F787F936F9380911E01A8
:10D8700090911F01B9010E9483789F938F938091AB
:10D880001E0190911F01B9010E9483787F936F93CD
:10D8900082E79BE09F938F930CEE1FE61F930F93FD
:10D8A000E0912804F0912904099580E10E94F96F24
:10D8B0008DB79EB70C968DBF809184089091850896
:10D8C0009F938F9380918208909183089F938F9369
:10D8D00085E89BE09F938F931F930F93E09128041B
:10D8E000F091290409958DB79EB708968DBF1F91B9
:10D8F0000F9108950F931F93CF93DF938091E901C8
:10D90000CCEEDFE6882309F478C080E00E94F96F4E
:10D910008091150899279F938F93809117089927D5
:10D920009F938F9381E99BE09F938F938E01DF9369
:10D93000CF93E0912804F091290409958DB79EB703
:10D9400008968DBF80911608833031F48CE00E94D8
:10D95000F96F80EA9BE005C08CE00E94F96F85EAD0
:10D960009BE09F938F93DF93CF93E0912804F091F6
:10D97000290409950F900F900F900F908091140833
:10D9800081FF12C08CE00E94F96F8AEA9BE09F93AE
:10D990008F931F930F93E0912804F0912904099528
:10D9A0000F900F900F900F9080E10E94F96F8FED14
:10D9B00090E09F938F9380911A0890911B089F93FA
:10D9C0008F9380911808909119086AE070E00E9486
:10D9D0006F787F936F938FEA9BE09F938F938CEE8A
:10D9E0009FE69F938F93E0912804F0912904099575
:10D9F0008DB79EB70A968DBF12C082E00E94F96F64
:10DA00008FEB9BE09F938F93DF93CF93E09128045C
:10DA1000F091290409950F900F900F900F90DF91CE
:10DA2000CF911F910F910895CF93C82F209110048B
:10DA30002093110499278F32910509F180339105C4
:10DA40001CF44F97A1F02CC08F34910501F18F3851
:10DA5000910531F5222319F481E090E038C086E089
:10DA6000289FF0011124EB51F54F849117C086E0F7
:10DA7000289FF0011124EA51F54F84910FC086E0F0
:10DA8000289FF0011124E951F54F849107C086E0E9
:10DA9000289FF0011124E851F54F849180931004E0
:10DAA00090911004809111049813C0E00E94FF6FC0
:10DAB0009091100486E0989FF0011124E751F54FF2
:10DAC000259134918C2FF901099580E090E0CF9158
:10DAD0000895109281081092800810928508109283
:10DAE00084081092830810928208109286088AE0B7
:10DAF00090E00E941C1790931304809312040895E1
:10DB0000CF93DF9380911204909113040E94251704
:10DB1000882309F4AFC080911204909113040A96EF
:10DB20009093130480931204E0E0F0E09F0190E0F2
:10DB30005FEFA2EEB6E04BE0ED018B8187FF0BC0FB
:10DB40009F5F8D81E80FF11D8981280F311D8E8126
:10DB5000851708F4582F4150189647FFEDCF509382
:10DB60008608232B41F52091180430911904409127
:10DB70001A0450911B04BB27A52F942F832F909339
:10DB8000170480931604AA27BB27281B390B4A0BBE
:10DB90005B0BCF01AA27BB27280F391F4A1F5B1F2A
:10DBA000209318043093190440931A0450931B04D3
:10DBB000E5E0F0E013C020911604309117042E1711
:10DBC0003F0718F4E21BF30B02C0E0E0F0E0892FFE
:10DBD0009927880F991FE80FF91F3596F093810850
:10DBE000E0938008EF3FF10578F480911E01909159
:10DBF0001F018E9F90018F9F300D9E9F300D11242D
:10DC0000C90164E670E013C0CF019695879596959B
:10DC1000879520911E0130911F01289FA001299F07
:10DC2000500D389F500D1124CA0169E170E00E9427
:10DC30006F78709383086093820820911404309168
:10DC400015042E0F3F1F30931504209314045EE03B
:10DC50002131350778F080918408909185080196EC
:10DC6000909385088093840820513E40309315049A
:10DC700020931404DF91CF9108954FB720E430E052
:10DC8000F8948091C9008F778093C9008091C90072
:10DC90008F7B8093C9008091C9008F7D8093C900DC
:10DCA0005A9A52985B9A539A832F99278093CD0062
:10DCB0002093CC008091C80082608093C80088E1E6
:10DCC0008093C9008091CA008F778093CA008091A9
:10DCD000CA008F7B8093CA008091CA008F7D809399
:10DCE000CA008091CA008F7E8093CA008091CA00CA
:10DCF000877F8093CA008091C9008B7F8093C90081
:10DD00008091CA0084608093CA008091CA008260BA
:10DD10008093CA008091C80087FF03C08091CE0025
:10DD2000F9CF8091C90080688093C9004FBF0895E2
:10DD30000F931F93CF93DF93482F4F5F893108F0E4
:10DD40008BC080914207841720F44F5F40934207B5
:10DD50004150CB0183539B4268E170E00E9483787D
:10DD6000A42FBB27FD01EA0FFB1FED5BF84F80815D
:10DD700091819B01281B390BC90137FF03C0909586
:10DD800081959F4F069794F480911D03883C30F451
:10DD900080911D03865F80931D0308C088EC8093EB
:10DDA0001D0380916F008F7D80936F00FD01EA0F4E
:10DDB000FB1FED5BF84F808191819C01220F331F87
:10DDC000280F391F260F371F37FF02C02D5F3F4F27
:10DDD000E901D595C795D595C795CB0101968C17C7
:10DDE0009D0714F4219706C061507040C617D707ED
:10DDF0000CF4219680911D03843BD8F08D010A0F0D
:10DE00001B1FF801ED5BF84F80819181FE01E81B3B
:10DE1000F90BCF0163E070E00E948378CB01880F9B
:10DE2000991F860F971F0958184FF8019183808317
:10DE300007C0AA0FBB1FA958B84F11961C921E927B
:10DE4000E42FFF27EE0FFF1FED5BF84FD183C08358
:10DE5000443011F410929401DF91CF911F910F91F2
:10DE60000895CF93DF9320918708822F9927807F91
:10DE70009070409709F06CC02F3109F046C0809136
:10DE800088088093200420918A082093220480919E
:10DE90008B0880932104822F9927909344078093C5
:10DEA0004307222309F054C080911906282F3327F5
:10DEB000220F331FF901E958F84F11821082809127
:10DEC0001A06A82FBB27AA0FBB1FFD01E958F84F60
:10DED0001182108280911C06E82FFF27EE0FFF1F92
:10DEE000CF018958984FEC01198218822D5B384F69
:10DEF000E90119821882AD5BB84F11961C921E92EF
:10DF0000ED5BF84F1182108223C0C22FCF70CA3050
:10DF1000F8F4809188088093B108809189088093F3
:10DF2000B00880918A088093B30880918B08809311
:10DF3000B2086091B0087091B1088C2F0E94986E61
:10DF40006091B2087091B3088C2F8F5F0E94986E19
:10DF5000DF91CF910895CF93C82F8F3F49F48091DF
:10DF600023048F3F29F4109225041092240432C018
:10DF700020912504222339F4CF3111F485E001C02A
:10DF800084E08093260480912604909124048217D3
:10DF9000A0F4892F8095809324048F3F19F48EEF8D
:10DFA0008093240480912404C81711F40E94316FD7
:10DFB00010922504109224040BC0E22FFF27E9578A
:10DFC000F74FC0832F5F209325049C0F9093240468
:10DFD000C0932304CF91089590911F04933240F48D
:10DFE000E92FFF27E357F74F80839F5F90931F042C
:10DFF0000895833218F48D5F80931F04089590E292
:10E00000E0E9F8E08FE19193815087FFFCCF08951C
:10E01000CF93CFB723E031E0F8948091C9008F7798
:10E020008093C9008091C9008F7B8093C900809143
:10E03000C9008F7D8093C9005A9A52985B9A539A6F
:10E04000832F99278093CD002093CC008091C80026
:10E0500082608093C80088E18093C9008091CA00E3
:10E060008F778093CA008091CA008F7B8093CA000B
:10E070008091CA0080628093CA008091CA0080614A
:10E080008093CA008091CA0088608093CA00809102
:10E09000C90084608093C9008091CA008460809325
:10E0A000CA008091CA0082608093CA008091C80033
:10E0B00087FF03C08091CE00F9CF8091C9008068AE
:10E0C0008093C9008091C90080648093C9000E9438
:10E0D000FF6FCFBFCF910895282F99278F70907031
:10E0E000892B31F4209580911E04822B80931E048D
:10E0F00008958091F001882309F441C08091E902DC
:10E1000085FF0AC082E980938D0883E280938E08A0
:10E1100085E580938F0802C010928D088091F101EF
:10E120008F3071F480911E040E94146D882341F099
:10E1300081E980938D0880938E0881E380938F0816
:10E140001092F0018091C80085FFFCCF8091C9003A
:10E150008F7E8093C9008091C9008E7F8093C90013
:10E1600080918D08882311F48EEF01C08EE7809393
:10E17000CE0080911E048093F10110921E04089538
:10E180001F920F920FB60F9211248F939F93EF93CC
:10E19000FF939091F001992309F040C080912704EA
:10E1A000882361F480918D08882311F483E003C0F3
:10E1B000813999F481E0809327040FC0833099F46A
:10E1C00080918D08882349F090938D088091C90033
:10E1D0008E7F8093C9008EEF1EC08091C900816040
:10E1E0008093C9000EC0833261F48091C9008E7F94
:10E1F0008093C9008FEF8093CE0081E08093F0017F
:10E2000014C080912704E82FFF27E357F74F8F5F53
:10E210008093270480818093CE0007C0109227044A
:10E220008091C90080618093C900FF91EF919F9117
:10E230008F910F900FBE0F901F901895EF92FF9245
:10E240000F931F93CF93DF937C018B01EA01452B42
:10E2500039F0F80181918F01F70109952197C9F7EC
:10E26000E6E0CDB7DEB70C94FB78EF92FF920F9308
:10E270001F93CF93DF937C018B01EA01452B41F083
:10E28000F8010F5F1F4F8491F70109952197C1F79E
:10E29000E6E0CDB7DEB70C94FB780F931F93CF93D6
:10E2A0008C01C62F161634F480E2F8010995C1508E
:10E2B0001C16D4F3CF911F910F9108950F931F93C4
:10E2C000CF938C01C62F161634F480E3F80109951C
:10E2D000C1501C16D4F3CF911F910F910895A5E35F
:10E2E000B0E0E5E7F1E70C94D3782E96EEADFFAD04
:10E2F0002E9788249924540180911D04882321F4A9
:10E300002C961FAE1EAE2C975EE4452E512C4C0E63
:10E310005D1E6F01B60105C0153239F00894C11CAD
:10E32000D11CF60114911123B9F7A601461B570B16
:10E3300031F02C968EAD9FAD2C970E943571112334
:10E3400009F46AC20894C11CD11CFF24FDA6FCA6D6
:10E350004FEFE42EF9A6F6010894C11CD11C1491CC
:10E36000153721F0812F80628837B1F4F0FE0AC0A2
:10E37000F20124E030E0420E531E80809180A280A2
:10E38000B3800AC0F20142E050E0440E551E808185
:10E3900091814C01AA24BB24103221F489A5882341
:10E3A000D1F61DC0133219F458E0F52AD4CF1A3231
:10E3B00011F01D3291F41A3259F4F20182E090E02A
:10E3C000480E591EE081ECA7EE232CF6E195ECA750
:10E3D00090E1F92AAFEDFA22BECF1B3211F419A752
:10E3E000BACF1E32C1F5F6010894C11CD11C14919C
:10E3F0001A3279F4F20122E030E0420E531E4081DD
:10E4000051813FEF4F3F530714F44FEF5FEFE42E7E
:10E41000A2CF40E050E0812F80538A30A0F4CA019F
:10E4200033E0880F991F3A95E1F7840F951F480F45
:10E43000591F410F511D40535040F6010894C11C13
:10E44000D11C1491E8CF8FEF4F3F580714F44FEFD2
:10E450005FEFE42E85CF103329F4F4FC7CCF90E2FB
:10E46000F92A79CF812F81538930D8F440E050E0E8
:10E47000CA0123E0880F991F2A95E1F7840F951FA1
:10E48000480F591F410F511D40535040F601089449
:10E49000C11CD11C1491812F80538A3048F34CA7A2
:10E4A0005FCF183619F4A4E0FA2A55CF1C3619F4B8
:10E4B000B1E0FB2A50CF133661F43E010894611C91
:10E4C000711CF20122E030E0420E531E80818983EC
:10E4D0003CC1143421F0143611F0193651F51434BE
:10E4E00011F431E0F32AF0FE0AC0F20144E050E0FA
:10E4F000440E551E80809180A280B3800CC0F20132
:10E5000082E090E0480E591E808191814C01AA243E
:10E5100097FCA094BA2CB7FE0AC0B094A094909433
:10E520008094811C911CA11CB11C8DE289A70AE07A
:10E530006FC01F3411F01F3631F41F3411F491E015
:10E54000F92A08E064C0103779F4F201A2E0B0E0E3
:10E550004A0E5B1E808191814C01AA24BB2400E1FC
:10E56000B0E4FB2A18E753C01337C1F5F20122E0EB
:10E5700030E0420E531E608071806114710489F492
:10E580003E010894611C711C88E289838EE6F301C8
:10E59000818385E78B838CE68C838D8389E28E83F0
:10E5A0001F82E7FC13C08E2D992787FD9095AC0143
:10E5B00060E070E0C3010E94A076009729F0382E39
:10E5C0003618E3140CF0C3C03E2CC1C0F301019017
:10E5D0000020E9F731973E2E3618B9C0153511F0F5
:10E5E000153731F4153511F4F1E0FF2A0AE00FC0B8
:10E5F000183519F0183709F0A0C000E1F3FE07C084
:10E6000081149104A104B10411F020E4F22A19A6A6
:10E61000EDA6E7FC02C03FEDF32289E2682E712CE3
:10E620006C0E7D1E81149104A104B10421F44DA54A
:10E63000442309F47BC0802F9927AA27BB278EA7E4
:10E640009FA7A8ABB9AB202E332490E0891690E0A9
:10E65000990691E0A90690E0B90648F0C501B40119
:10E660002EA53FA548A959A90E94967817C0AFEFDB
:10E670008A169104A104B10449F040F0C401B1012B
:10E680000E946F789B014427552708C0882D602F72
:10E690000E946378282F3327442755272AAB3BABAA
:10E6A0004CAB5DAB0A3059F48AA9880F880F880FEC
:10E6B0009AA9990F890F382D381B832F10C000316C
:10E6C00039F48AA98295807F482D481B842F07C082
:10E6D0008AA9880F880F880F582D581B852F90E026
:10E6E0002EA53FA548A959A982169306A406B506EA
:10E6F00008F091E08AA89BA8ACA8BDA88A3010F4C5
:10E70000805D04C0895A183509F48F7DD3018E933A
:10E710003D01992309F099CF083041F4F3FE06C07A
:10E72000803321F080E3FD0182933F01CE01019609
:10E73000382E3618F8E23F0E0BC0112309F46CC0D6
:10E740003E010894611C711C1983B1E03B2E19A68F
:10E75000032D2DA4231827FC222489A5882311F03A
:10E760000F5F02C0F6FC0E5F020DEF2CFF24C70105
:10E7700080739070892B49F48CA5801B682F2C9690
:10E780008EAD9FAD2C970E944D7189A5882331F0E5
:10E7900041E050E0BE01675D7F4F0AC0E6FE0EC05B
:10E7A00080E38AA71BA742E050E0BE01665D7F4F71
:10E7B0002C968EAD9FAD2C970E941E71C701807361
:10E7C0009070809749F48CA5801B682F2C968EAD95
:10E7D0009FAD2C970E945E71622D2C968EAD9FADE1
:10E7E0002C970E945E71832D992787FD9095AC012F
:10E7F000B3012C968EAD9FAD2C970E941E71E4FE46
:10E8000089CD2CA5201B2CA7622F2C968EAD9FADF9
:10E810002C970E944D717ECDE2E1CB5C0C94EF7899
:10E820002FB740E0F894E0E0F0E081E280935700F9
:10E830009491E2E0F0E0809357003491E4E0F0E05E
:10E840008093570084912FBF9E3199F4363941F45B
:10E85000893011F441E00DC08A3059F442E009C01A
:10E86000373939F4863011F443E003C0853009F4B8
:10E8700044E0842F992708959FB7F8948091C900A8
:10E88000877F8093C9008091C9008F7E8093C900E3
:10E890008091C9008F778093C9008091C9008F7BD8
:10E8A0008093C9008091C9008F7D8093C9005298E0
:10E8B0005A9A53985B9A9FBF08951F93CF93DF9303
:10E8C000182F80911D04882309F48DC08091EF01D9
:10E8D000181709F488C080911C04882321F40E9431
:10E8E000107480931C0488EB9CE09F938F93C6EF79
:10E8F000D2E1DF93CF93E0912804F09129040995A8
:10E900000F900F900F900F90812F992782309105D3
:10E9100001F1833091052CF4009761F0019769F0C3
:10E9200024C084309105D9F084309105ACF005976E
:10E93000C9F01BC088EA9CE002C086E99CE09F9376
:10E940008F93DF93CF93E0912804F09129040995E8
:10E9500018C08DE79CE0F3CF8AE59CE0F0CF8CE413
:10E960009CE0EDCF84E49CE0EACF85EC9CE09F93B3
:10E970008F93DF93CF93E0912804F09129040995B8
:10E9800010E00F900F900F900F9080911C04843036
:10E9900011F0823099F40E943C74812F81508330B1
:10E9A00018F40E949E681DC0143019F40E9408706B
:10E9B00018C01530B1F40E943D6E13C0112389F0C8
:10E9C0008BED9CE09F938F9386EF92E19F938F93C3
:10E9D000E0912804F091290409950F900F900F9071
:10E9E0000F901093EF01DF91CF911F9108950F9336
:10E9F0001F9381E080931D044091EE01E4EFFBE062
:10EA000020E030E05FE4849199272F5F3F4F829FA1
:10EA1000B001839F700D929F700D112446275150B5
:10EA2000319657FFF0CF4093EE01ECECFBE020E095
:10EA300030E057E2849199272F5F3F4F829FB001CA
:10EA4000839F700D929F700D11244627515031966F
:10EA500057FFF0CF4093EE0180911C04882321F4EE
:10EA60000E94107480931C048091EE01833459F04D
:10EA700088E190E029E20FB6F894A89580936000B1
:10EA80000FBE209360008FE691E790932904809356
:10EA9000280486EF9CE09F938F9306EF12E11F936B
:10EAA0000F93E0912804F091290409950F900F909D
:10EAB0000F900F9081E690E09F938F9382E590E016
:10EAC0009F938F931F921F92809102016AE00E9490
:10EAD0006378892F99279F938F93809102010E94D9
:10EAE000637899279F938F938CE19DE09F938F93F9
:10EAF0001F930F93E0912804F0912904099584EF66
:10EB00009BE09F938F931F930F93E0912804F091C4
:10EB1000290409958CEC9BE09F938F931F930F938F
:10EB2000E0912804F091290409958DB79EB7469687
:10EB30008DBF80E59DE09F938F931F930F93E0918E
:10EB40002804F0912904099583EC80938100809139
:10EB50006F00806280936F000F900F900F900F9066
:10EB60001F910F91089580911D04882361F0809179
:10EB7000EF01843011F40E9479708091EE018334AA
:10EB800011F010921D0408951F920F920FB60F926C
:10EB900011242F933F934F935F936F937F938F93A2
:10EBA0009F93AF93BF93EF93FF932091CE008091FB
:10EBB000FA018823B1F02093C6008091FA018230D7
:10EBC00029F52F3F19F58FEF94E3ACE0B0E0C29741
:10EBD000A109B109B7FFFBCF80916B048093CE00F0
:10EBE00015C09091EF01892F8150833020F4822F3E
:10EBF0000E94F9680BC0943021F4822F0E946C703F
:10EC000005C0953019F4822F0E94AB6FFF91EF91F0
:10EC1000BF91AF919F918F917F916F915F914F9134
:10EC20003F912F910F900FBE0F901F9018950024C9
:10EC300022273327442751E0BB27EE27FF27A0E1F7
:10EC4000660F771F881F991F001C221F331F441F48
:10EC5000660F771F881F991F001C221F331F441F38
:10EC60002AF4050E2B1F3E1F4F1F04C0051A2B0B45
:10EC70003E0B4F0B550FBB1FEE1F587F556047FDD6
:10EC80005250AA95E9F6E695B7955795E695B7954A
:10EC90005795852F9B2F08952227332741E055272D
:10ECA00068E0880F991F221F331F880F991F221FAA
:10ECB000331F1AF4240F351F02C0241B350B440FD9
:10ECC000551F487F456037FD42506A9551F756956C
:10ECD000479556954795842F0895AA2797FF04C016
:10ECE000809590958A1F9A1F77FF04C06095709554
:10ECF0006A1F7A1F669F9001779FA001679F300D62
:10ED0000411D5A1F300D411D5A1F889FF001999FC8
:10ED10002E0F3F1F401D511D899F300D411D5A1F51
:10ED2000300D411D5A1FCA01B901112480CFFB01CA
:10ED3000DC0102C005900D9241505040D8F7089573
:10ED4000FC014150504030F001900616D1F7319748
:10ED5000CF010895882799270895A0E0B0E0E3EB5C
:10ED6000F6E70C94DB786C017B01EA0159012197ED
:10ED70008FEFCF3FD80789F086010894C11CD11CC2
:10ED8000C7010894E11CF11CF5010995F801808385
:10ED90002197FFEFCF3FDF0779F7EAE0CDB7DEB786
:10EDA0000C94F778CF92DF92EF92FF920F931F931C
:10EDB0007C016B01FB010995082FC7010196F60143
:10EDC0000995182FC8011F910F91FF90EF90DF90C8
:10EDD000CF900895A0E0B0E0E0EFF6E70C94DD7886
:10EDE0008C017B01EA01690121978FEFCF3FD807A2
:10EDF00071F0F70121917F01C8010F5F1F4F622F52
:10EE0000F60109952197FFEFCF3FDF0791F7E8E083
:10EE1000CDB7DEB70C94F978CF92DF92EF92FF92E4
:10EE20000F931F936C018B017A01FA010995812FD1
:10EE30009927682FC6010196F70109951F910F9137
:10EE4000FF90EF90DF90CF9008955058BB27AA27EE
:10EE50000ED0E0C0D1D030F0D6D020F031F49F3FBA
:10EE600011F41EF4C6C00EF4E095E7FBBCC0E92F18
:10EE7000E2D080F3BA17620773078407950718F08A
:10EE800071F49EF5FAC00EF4E0950B2EBA2FA02D6A
:10EE90000B01B90190010C01CA01A0011124FF2747
:10EEA000591B99F0593F50F4503E68F11A16F04042
:10EEB000A22F232F342F4427585FF3CF4695379541
:10EEC0002795A795F0405395C9F77EF41F16BA0B06
:10EED000620B730B840BBAF09150A1F0FF0FBB1FB4
:10EEE000661F771F881FC2F70EC0BA0F621F731FFD
:10EEF000841F48F4879577956795B795F7959E3F5A
:10EF000008F0B3CF9395880F08F09927EE0F9795E7
:10EF10008795089598D088F09F5790F0B92F99273A
:10EF2000B751A0F0D1F0660F771F881F991F1AF014
:10EF3000BA95C9F712C0B13081F09FD0B1E0089501
:10EF40009CC0672F782F8827B85F39F0B93FCCF382
:10EF5000869577956795B395D9F73EF4909580950A
:10EF6000709561957F4F8F4F9F4F0895E89409C02A
:10EF700097FB3EF490958095709561957F4F8F4FEC
:10EF80009F4F9923A9F0F92F96E9BB279395F69502
:10EF9000879577956795B795F111F8CFFAF4BB0F80
:10EFA00011F460FF1BC06F5F7F4F8F4F9F4F16C0E4
:10EFB000882311F096E911C0772321F09EE8872F6E
:10EFC000762F05C0662371F096E8862F70E060E02A
:10EFD0002AF09A95660F771F881FDAF7880F9695A3
:10EFE000879597F9089597F99F6780E870E060E04A
:10EFF00008959FEF80EC089500240A9416161706D2
:10F0000018060906089500240A9412161306140619
:10F0100005060895092E0394000C11F4882352F07C
:10F02000BB0F40F4BF2B11F460FF04C06F5F7F4F34
:10F030008F4F9F4F089557FD9058440F551F59F01B
:10F040005F3F71F04795880F97FB991F61F09F3FD5
:10F0500079F087950895121613061406551FF2CFFE
:10F060004695F1DF08C0161617061806991FF1CF4E
:10F0700086957105610508940895E894BB27662775
:10F080007727CB0197F90895629FD001739FF00114
:10F09000829FE00DF11D649FE00DF11D929FF00D28
:10F0A000839FF00D749FF00D659FF00D9927729F5F
:10F0B000B00DE11DF91F639FB00DE11DF91FBD01EA
:10F0C000CF0111240895991B79E004C0991F961768
:10F0D00008F0961B881F7A95C9F780950895AA1B9A
:10F0E000BB1B51E107C0AA1FBB1FA617B70710F033
:10F0F000A61BB70B881F991F5A95A9F78095909565
:10F10000BC01CD01089597FB092E07260AD077FD93
:10F1100004D0E5DF06D000201AF4709561957F4F8A
:10F120000895F6F7909581959F4F0895A1E21A2EC4
:10F13000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F9B
:10F14000A217B307E407F50720F0A21BB30BE40BEB
:10F15000F50B661F771F881F991F1A9469F7609532
:10F160007095809590959B01AC01BD01CF010895EC
:10F1700097FB092E05260ED057FD04D0D7DF0AD005
:10F18000001C38F450954095309521953F4F4F4FD6
:10F190005F4F0895F6F790958095709561957F4F34
:10F1A0008F4F9F4F08952F923F924F925F926F9291
:10F1B0007F928F929F92AF92BF92CF92DF92EF9207
:10F1C000FF920F931F93CF93DF93CDB7DEB7CA1B88
:10F1D000DB0B0FB6F894DEBF0FBECDBF09942A88B3
:10F1E000398848885F846E847D848C849B84AA845B
:10F1F000B984C884DF80EE80FD800C811B81AA81E8
:10F20000B981CE0FD11D0FB6F894DEBF0FBECDBFB2
:10F21000ED010895EE0FFF1F0590F491E02D099484
:02F22000FFCF1E
:10F222005E010A010164FF01FFFFC01FC01F01014F
:10F2320001737373FF03007D0000C409C4096400F5
:10F242001148656C6C6F20576F726C64000000008F
:10F2520000000000000000000000000000000000AC
:10F26200000000000000000000000000000000009C
:10F27200000000000000000000000000000000008C
:10F28200000000000000000000000000000000007C
:10F292000053706F727400004E6F726D616C0000EB
:10F2A200426567696E6E6572000051756164726FC6
:10F2B2000000640001200B050000ECFF00020406C0
:10F2C200070808080706040200FEFCFAF9F8F8F835
:10F2D200F9FAFCFE000204060708086440415A4697
:10F2E20064640A02969696960840403A10FB3038BB
:10F2F2000190D0030090D00300F4017800FF036472
:10F302000B0A0D0B0C0E0B0F10FA2001010170FFFE
:02F31200010FE9
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/Flight-Ctrl_MEGA644_V0_82a_S3D.hex
0,0 → 1,3843
:100000000C94BB060C9401070C9401070C94010797
:100010000C9401070C9401070C9401070C94010740
:100020000C9401070C9441190C9401070C940107DE
:100030000C9404340C9401070C9401070C940107F0
:100040000C9401070C9401070C9411160C940107F1
:100050000C942C0C0C9401070C94F60B0C940107D7
:100060000C94FD1B0C9401070C94972F0C94010722
:100070000C943C740C9401070C94386F281C2D1CB4
:10008000321C3B1C521C691C791C891CA61C921E2C
:10009000691C541D651D941DB21DCF1D291E841E93
:1000A0006220F420B12131229A224A235125AE2523
:1000B0001B266526B026FD264E27B0270F28A92827
:1000C00044293E2AB62FEA2F2D309D30B530F63028
:1000D000AD317432743274327432743274327432B8
:1000E000743274327432743229322B3230324832E4
:1000F0004A320A0D426174743A0020256420436537
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E25642563005396
:10049000657474696E673A2564202573004861723B
:1004A0006477617265204572726F7220313A2564FB
:1004B000202121004D697373696E6720424C2D43E2
:1004C00074726C3A25642121004D6978657220456B
:1004D00072726F722100493243204552524F5221AD
:1004E0002121004865696768743A20202535690034
:1004F000536574706F696E743A2535690050726582
:1005000073737572653A253569004F666673657455
:100510003A20202535690048656967687420636F53
:100520006E74726F6C0044495341424C454400481C
:10053000656967687420636F6E74726F6C004449FC
:100540005341424C4544006163742E2062656172E0
:10055000696E67004E69636B3A20202020202025B9
:10056000356900526F6C6C3A202020202020253500
:100570006900436F6D706173733A202020253569DF
:10058000004B313A25346920204B323A253469201A
:10059000004B333A25346920204B343A2534692006
:1005A000004B353A25346920204B363A25346920F2
:1005B000004B373A25346920204B383A25346920DE
:1005C000004E693A2534692020526F3A253469205B
:1005D0000047733A253469202047693A2534692059
:1005E0000050313A253469202050323A25346920B0
:1005F0000050333A253469202050343A253469209C
:10060000004779726F202D2053656E736F72004E14
:1006100069636B25346920282533692E25692900F3
:10062000526F6C6C25346920282533692E25692981
:100630000047696572253469202825336929004EF1
:1006400069636B2025346920282533692E25782994
:1006500000526F6C6C2025346920282533692E25C3
:1006600078290059617720202534692028253369AD
:1006700029004E69636B20253469202825336929B8
:10068000282533692900526F6C6C20253469202895
:1006900025336929282533692900596177202025C8
:1006A00034692028253369292825336929004143E5
:1006B00043202D2053656E736F72004E69636B206B
:1006C00025346920282533692900526F6C6C202558
:1006D0003469202825336929005A20202020253418
:1006E0006920282533692900566F6C746167653A63
:1006F0002020202533692E253169560043757272FA
:10070000656E743A2020202533692E253169410019
:10071000506F7765723A20202020202534695700D9
:100720004469736368617267653A202535696D4174
:10073000680052656365697665720052432D5253B5
:1007400053493A202020202534690052432D517509
:10075000616C6974793A202534690052432D4368ED
:10076000616E6E656C733A25346900436F6D70611C
:1007700073730048656164696E673A2020253569A6
:100780000056616C75653A2020202025356900539C
:10079000746172743A2020202025356900506F74EE
:1007A00069313A202025336900506F7469323A204C
:1007B0002025336900506F7469333A20202533694E
:1007C00000506F7469343A202025336900506F74EB
:1007D00069353A202025336900506F7469363A2014
:1007E0002025336900506F7469373A20202533691A
:1007F00000506F7469383A202025336900536572C0
:10080000766F202000536574706F696E7420202508
:10081000336900506F736974696F6E3A20253369CC
:100820000052616E67653A2533692D2533690045AD
:10083000787465726E436F6E74726F6C2020004E18
:10084000693A2534692020526F3A253469200047DF
:10085000733A253469202047693A253469200048D5
:10086000693A253469202043663A253469200042DC
:100870004C2D4374726C204572726F727320002588
:10088000336420253364202533642025336420001D
:1008900025336420253364202533642025336420E8
:1008A00000253364202533642025336420253364F8
:1008B0002000424C2054656D7065726174757265DC
:1008C00000253369202533692025336920253369C4
:1008D00020002533692025336920253369202533FD
:1008E00069200025336920253369202533692025B7
:1008F00033692000424C2D4374726C20666F756E14
:1009000064200020256320202025632020202563EB
:10091000202020256320002025632020202563201F
:10092000202025632020202563200020256320200F
:10093000202D2020202D2020202D2000313000319E
:100940003100313200466C696768742D54696D65F9
:10095000202000546F74616C3A2535756D696E0006
:100960004163743A20202535756D696E00287265E3
:1009700073657429000A0D47656E65726174696E4E
:10098000672064656661756C7420506172616D6585
:1009900074657220536574202564000A0D557369CF
:1009A0006E6720506172616D657465722053657465
:1009B000202564000A0D47656E65726174696E6773
:1009C0002064656661756C74204D69786572205489
:1009D00061626C65000A0D4D697865722D436F6E1A
:1009E0006669673A202725732720282575204D6FD3
:1009F000746F727329000A0D3D3D3D3D3D3D3D3D07
:100A00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D16
:100A10003D3D3D3D3D3D000A0D414343206E6F7419
:100A20002063616C69627261746564210D0A000063
:100A3000008F001E01AD013B02CA025803E6037499
:100A40000402058F051B06A7063307BE074808D218
:100A5000085B09E3096B0AF20A780BFD0B810C04B1
:100A60000D860D070E870E060F840F00107B10F504
:100A7000106E11E5115B12CF124213B313231492BF
:100A800014FE146A15D3153B16A11605176717C86F
:100A90001727188318DE1837198E19E319361A87A5
:100AA0001AD61A231B6E1BB61BFD1B411C831CC3CD
:100AB0001C001D3C1D751DAB1DE01D121E421E6F4E
:100AC0001E9A1EC31EE91E0D1F2E1F4D1F691F8477
:100AD0001F9B1FB01FC31FD31FE11FEC1FF51FFB80
:100AE0001FFF1F0020030100000E69000201010129
:100AF0006A01030202956A02000303F26A25326961
:100B00002E25316956002533642563202530336452
:100B10006D00537461747573004552524F523A2000
:100B200025326400253469202532693A253032693E
:100B3000002534696D25630025336920253369203C
:100B40002533692025336900253369202533692041
:100B5000253369202533690054656D7065726174B1
:100B600075726573202020200025634320202020FB
:100B700020002532692E2531695620202533692E23
:100B8000253169410025346957202536696D416852
:100B9000002532756D2F73205361743A256420004F
:100BA00020203344004E6F4678004447505300489D
:100BB0006F6D653A2533646D202533642563004EDF
:100BC0006F204E6176694374726C21000A0D77774D
:100BD000772E4D696B726F4B6F707465722E646502
:100BE0002028632920486953797374656D73204701
:100BF0006D6248000A0D74686520757365206F6624
:100C0000207468697320736F6674776172652069F8
:100C100073206F6E6C79207065726D697474656491
:100C2000200A0D6F6E206F726967696E616C204DCE
:100C3000696B726F4B6F707465722D486172647767
:100C4000617265004143542044534C004A65746905
:100C500020736174656C6C6974005370656B747299
:100C6000756D20736174656C6C697420284C6F77A6
:100C7000207265736F6C7574696F6E2900537065AF
:100C80006B7472756D20736174656C6C6974202867
:100C90003230343829005370656B7472756D20736F
:100CA0006174656C6C6974004D756C746973696707
:100CB0006E616C2050504D000A0D52656365697677
:100CC00065723A2000756E6B6E6F776E2E205573CD
:100CD000696E672050504D2E2E2E006E6F7420735B
:100CE0007570706F727465642062792068617264D7
:100CF0007761726521000A0D3D3D3D3D3D3D3D3D25
:100D00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D13
:100D10003D3D3D3D3D3D3D3D3D3D3D000A0D466C6B
:100D200069676874436F6E74726F6C0A0D48617204
:100D300064776172653A25642E25640A0D536F66E7
:100D400074776172653A5625642E25642563200008
:100D50000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3D26
:100D60003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D70003D3D3D3D3D0011241FBECFEFD0E1DEBF24
:100D8000CDBF11E0A0E0B1E0E2E1FFEE02C00590CE
:100D90000D92A23FB107D9F718E0A2EFB1E001C070
:100DA0001D92A834B107E1F76AEAE2E0F0E081E2DF
:100DB000809357007491AE014F5F5F4F20EF37EF84
:100DC000DA019FE0F9012F5F3F4F84918D9391509D
:100DD00097FFF8CF773911F40000FECFFA019EE0BB
:100DE000819168276095915097FFFACF888968179D
:100DF00021F0773911F40000FECF0E94C2070C9455
:100E000088770C9400008091AD05E82FFF27EE0F46
:100E1000FF1FE952F94F808191818D5E9F4F14F041
:100E200010920301808191818A5B9F4FCCF4809165
:100E300003018823A9F481E0809303018091F003EA
:100E40008F5F8093F003853038F088EE93E09093C5
:100E500025028093240204C066E970E00E94E63512
:100E60008091F003992790937E0580937D050895E6
:100E70001F93CF93DF93182F882389F082EF90E0A0
:100E80009F938F9386EF92E19F938F93E091BC03A2
:100E9000F091BD0309950F900F900F900F908091E6
:100EA000D005823308F044C084EF91E00E941C1703
:100EB000EC01112329F0CE010E9425178823D9F3D4
:100EC000C2E0D0E026E530E080911E0190911F0144
:100ED0008217930730F02196255D3F4FC730D1052B
:100EE00098F38091D0059927C89F9001C99F300D34
:100EF000D89F300D1124209300011123D9F068EC04
:100F000070E08C2F0E94E635DF93CF938AEF90E05C
:100F10009F938F9386EF92E19F938F93E091BC0311
:100F2000F091BD0309958DB79EB706968DBF02C09F
:100F300080930001112311F1809100016AE00E9469
:100F4000DB76892F99279F938F93809100010E94D0
:100F5000DB7699279F938F9385E091E09F938F9302
:100F600086EF92E19F938F93E091BC03F091BD03D4
:100F700009952DB73EB7285F3F4F2DBFDF91CF9129
:100F80001F910895CFEFD0E1DEBFCDBF8824992413
:100F900014B815B807EE13E00253104017FFFCCF4A
:100FA000189B06C0199B02C08DE007C08BE005C0EE
:100FB000199B02C084E101C08AE08093020181E8AC
:100FC00087B93E9A8FEF88B98BE184B981E085B902
:100FD0008EE38AB987E48BB9469A84B7877F84BF4A
:100FE000809160008861809360001092600084ECC2
:100FF00099E090932502809324021092AC02109203
:10100000AB021092DC061092DB061092AE02109238
:10101000AD021092B0021092AF0220910201243171
:1010200028F084EC94E0A0E0B0E004C08BE095E010
:10103000A0E0B0E08093960190939701A09398016F
:10104000B09399012A3011F0243110F0289801C092
:10105000289A0E9485170E9456170E94FE120E942D
:10106000E8330E94B51A81E00E944B2F0E94B661BE
:101070000E94E16B0E946F73809102018C3010F42A
:10108000299A01C0299878940E94652E80916C025B
:10109000826080936C0210926F020E94084184EF7C
:1010A00091E00E941C178C0180916C0280FD05C0AC
:1010B000C8010E9425178823B9F38FE191E09F931F
:1010C0008F93B6EFAB2EB2E1BB2EBF92AF92E09101
:1010D000BC03F091BD03099580EA9FE00E941C17B4
:1010E0008C01C0E0D0E00F900F900F900F90A9E717
:1010F000EA2EA6E0FA2EFDE2CF2EF6E0DF2E0E94C9
:10110000084180916C0280FD05C0C8010E9425172E
:101110008823B9F3F60180811816ACF40BC00E9445
:10112000084180916C0280FD05C0C8010E9425170E
:101130008823B9F3C8010E942517882321F4F701F9
:101140008081882364F7F701808187FF18C021968A
:10115000DF93CF93219781E391E09F938F93BF9289
:10116000AF92E091BC03F091BD0309958091F2012B
:101170008F5F8093F2018DB79EB706968DBF219643
:10118000E4E0F0E0CE0EDF1E88E090E0E80EF91E0D
:10119000CC30D10508F4B3CFC0E0D0E006E716E0CC
:1011A000EDE2EE2EE6E0FE2EF801838187FD1CC005
:1011B000F70180811816C4F42196DF93CF9321970D
:1011C00084E391E09F938F9386EF92E19F938F93B7
:1011D000E091BC03F091BD03099582E08093220267
:1011E0008DB79EB706968DBFF80183818078838383
:1011F000219684E090E0E80EF91E085F1F4FCC3086
:10120000D10590F282E591E09F938F93C6EFD2E1F2
:10121000DF93CF93E091BC03F091BD0309959091CA
:10122000AB058091F2010F900F900F900F909817DF
:1012300028F48091D60380618093D60388E791E0FB
:101240009F938F93DF93CF93E091BC03F091BD0305
:10125000099588EE93E00E941C178C010E94BB1A2E
:101260000F900F900F900F90C8010E9425178823B0
:10127000D9F388E991E09F938F93DF93CF93E09127
:10128000BC03F091BD03099580E00E94A8368091CF
:1012900002010F900F900F900F908A3011F084315F
:1012A00010F0289801C0289A80ED97E090932502CD
:1012B0008093240285E58093F2038EE090E00E9403
:1012C0009A2C9927182F00278FE090E00E949A2CE3
:1012D000080F111D1093F8010093F7018AE090E0C8
:1012E0000E949A2C9927182F00278BE090E00E94EB
:1012F0009A2C080F111D1093F6010093F5010F5F52
:101300001F4F39F08091F7019091F8018F5F9F4F47
:1013100041F41092F8011092F7011092F601109228
:10132000F5018091F5019091F6019F938F93809143
:10133000F7019091F8019F938F938DE991E09F932E
:101340008F93DF93CF93E091BC03F091BD03099598
:101350008DB79EB708968DBF80EC91E09F938F93D9
:10136000DF93CF93E091BC03F091BD030995809189
:10137000B9050F900F900F900F90E091BC03F09182
:10138000BD0382FF07C08CEC91E09F938F93DF93A6
:10139000CF9308C088ED91E09F938F9386EF92E101
:1013A0009F938F9309950F900F900F900F900E942D
:1013B000D91F88E893E1909393018093920181E093
:1013C0008093F1030E9438078091D3050E94D57263
:1013D0008AEE91E09F938F93DF93CF93E091BC03CC
:1013E000F091BD03099580ED97E00E941C178C01D8
:1013F0008AEF90E00E941C17EC0183E08093550572
:101400000F900F900F900F908091FA018111FFCFF4
:10141000CE010E942517882339F084E690E00E94CF
:101420001C17EC010E942B7480912802882309F478
:10143000D5C180911001882309F4D0C110922802EF
:101440008091F003882319F00E94030702C00E94D4
:10145000E2430E940841209102012A3011F0243118
:1014600010F0289801C0289A8091B1029091D6037B
:10147000882339F08091B10281508093B102977F27
:101480000AC080916F00806280936F001092D8062E
:101490001092D70698609093D60380919201909114
:1014A000930101979093930180939201809192010F
:1014B00090919301892B21F080916D028823C9F1CD
:1014C0008091920190919301892BD9F40E94752FFC
:1014D00085E090E0909393018093920180918F0535
:1014E0009091900501969093900580938F0580913F
:1014F000D60381608093D6038091560582608093E5
:10150000560580910801909109018F5F9F4F19F551
:101510008091A8028823F9F080E197E29093250258
:101520008093240280E890E0909309018093080161
:1015300012C02A3011F0243110F0289801C0289AE6
:101540008091240290912502892B29F48091D60361
:101550008E7F8093D60380912802882309F03EC1B4
:1015600080910E01882311F00E949C170E94411364
:101570000E947C0EC8010E942517882309F42AC105
:101580000C5E1F4F80916D029091D603882339F035
:1015900092609093D6038091560582600CC09D7F27
:1015A0009093D6038091920190919301079728F030
:1015B000809156058D7F8093560580919201909180
:1015C0009301079728F08091D6038E7F8093D603EE
:1015D00080910501882321F081508093050125C069
:1015E0008093FC0310928902109288021092870265
:1015F0001092860210928502109284028091080156
:10160000909109018F5F9F4F81F48091B1028823EF
:1016100061F488E99AE3909325028093240280E0A4
:101620009CE090930901809308018091E901893C35
:1016300048F081508093E9018091D6038B7F80939D
:10164000D60330C08091B5078823E1F08091D6039E
:1016500084608093D60380910801909109018F5F87
:101660009F4F81F48091A802882361F088E99AE372
:10167000909325028093240280E098EA90930901D8
:101680008093080110928E0310928D0310928C03A8
:1016900010928B038FEF9FEF9093E3078093E20705
:1016A0001092E90180910001282F332780911E01BB
:1016B00090911F0182179307CCF480917D02806284
:1016C00080937D0280910801909109018F5F9F4F67
:1016D000C1F480E797E1909325028093240280E093
:1016E00093E090930901809308010BC0809124023C
:1016F00090912502892B29F480917D028F7D809322
:101700007D020E94C26584E0809323028091A8023A
:10171000882329F45AEA852E55E0952E12C080912F
:10172000F9018F5F8093F901813359F41092F90127
:101730008091F3019091F40101969093F4018093CC
:10174000F3010894811C911CF2E78F16FBE09F06C1
:1017500009F040C0882499242091F7013091F801C4
:101760002F5F3F4F3093F8012093F7018091F501EF
:101770009091F60101969093F6018093F501832FE5
:101780009927682F8EE090E00E94A22C8091F701AB
:101790009091F8019070682F8FE090E00E94A22C49
:1017A0008091F5019091F601892F9927682F8AE0A1
:1017B00090E00E94A22C8091F5019091F60190702A
:1017C000682F8BE090E00E94A22C84E190E00E94C0
:1017D0001C178C010E9412660E94F86B80912302F4
:1017E000882309F011CE0E94D7610ECE1F920F926E
:1017F0000FB60F9211248F939F93EF93FF938091D5
:1018000007018823E1F4809114029091150201965A
:101810009093150280931402FC01E555FB4FE08183
:10182000ED3019F08A3A910539F4109215021092B0
:10183000140281E080930701E093C60004C0109277
:10184000150210921402FF91EF919F918F910F90CA
:101850000FBE0F901F9018951F920F920FB60F9208
:1018600011242F933F934F935F936F937F938F93A5
:101870009F93AF93BF93CF93EF93FF9390E08091AB
:10188000FA01813029F48091C6008093CE00CCC04B
:101890008091FA01823029F48091C6008093FF0381
:1018A000C3C08091C60080930C0250911A025A3A2C
:1018B00010F090931B0280910C028D3009F065C0EE
:1018C00080911B02823009F060C090931B02852F2B
:1018D000992781509C4FFC0132974081209116023C
:1018E00030911702241B3109DC0111978C91281BC0
:1018F0003109C9019F70909317028093160246E048
:10190000969587954A95E1F7982F935C90931802E6
:101910002F733070235C209319028081981729F46B
:101920008C91281711F491E006C090E08091090293
:101930008F5F80930902C0910B02CC2309F074C021
:10194000992309F471C081E080930B02580F5093E2
:1019500008025150E52FFF27E150FC4F8DE08083B6
:1019600080910104823509F05FC00E94D91F88E18F
:1019700090E02CE00FB6F894A895809360000FBE1D
:1019800020936000C09322024FC020911B02822F3F
:10199000992781309105F9F0823091051CF4892B4B
:1019A00021F040C0029711F13DC080910C028332BA
:1019B00039F480910B02882319F481E080931B0293
:1019C00080910C028093FF0381E080931A02809142
:1019D0000C02992722C02F5F20931B02E52FFF27BF
:1019E000E150FC4F80910C02808309C0E52FFF2756
:1019F000E150FC4F80910C0280835A3A20F45F5FE3
:101A000050931A0202C010921B0220910C02809186
:101A1000160290911702820F911D909317028093E6
:101A2000160202C010921B02FF91EF91CF91BF915D
:101A3000AF919F918F917F916F915F914F913F9166
:101A40002F910F900FBE0F901F901895AC01A0E042
:101A5000B0E09D01A817B90748F4EBEAF4E08191E2
:101A6000280F311D1196A417B507C8F33F70FD016B
:101A7000E555FB4FC90156E0969587955A95E1F7D4
:101A8000835C80831196FD01E555FB4F2F73307009
:101A9000822F835C8083A455BB4F8DE08C93109282
:101AA00007018091AB048093C6000895A0E0B0E0E8
:101AB000ECE5FDE00C9454772C859D850E85BB24C8
:101AC00083E28093AB049F599093AC042093AD04C0
:101AD00033E0E32EF12C002309F49EC0CF84D88894
:101AE000BE016D5E7F4FA989BA890150109709F434
:101AF00093C01097B9F0F601EB0DF11DB3949081EE
:101B0000119791F4002349F1FB016E5F7F4FDB01D8
:101B1000C080D1806E5F7F4F0D90BC91A02DBB2403
:101B2000015002C090E019C01097B9F0F601EB0D1A
:101B3000F11DB3944081119791F4002341F1FB0111
:101B40006E5F7F4FDB01C080D1806E5F7F4F0D9055
:101B5000BC91A02DBB24015002C040E018C01097DA
:101B6000B1F0F601EB0DF11DB3941081119781F4E2
:101B7000002371F0FB013296DB01CD90DC90BF01B8
:101B80006E5F7F4FA081B181BB24015001C010E086
:101B9000F701E555FB4F892F86958695835C8083F9
:101BA0000894E11CF11CF701E555FB4F892F99279B
:101BB0008370907024E0880F991F2A95E1F75527CC
:101BC0009A0194E0369527959A95E1F7822B835CEC
:101BD00080830894E11CF11CF701E555FB4F4F7021
:101BE0005070440F551F440F551F812F992726E031
:101BF000969587952A95E1F7842B835C80830894DA
:101C0000E11CF11CF701E555FB4F1F73135C1083BA
:101C10000894E11CF11C6ACFC7010E94260DE9E07F
:101C20000C947077A3E07A2F409108024650442329
:101C300009F458C0E72FFF27E150FC4F80818D53F6
:101C40007F5FE72FFF27E150FC4F20812D537F5FFF
:101C5000E72FFF27E150FC4F30813D537F5FE72F97
:101C6000FF27E150FC4F60816D537F5F9927880FFC
:101C7000991F880F991F522F52955F70582B822FF2
:101C800099278F709070F4E0880F991FFA95E1F70B
:101C9000232F26952695282B832F992783709070C4
:101CA000E6E0880F991FEA95E1F7682B41504F3F16
:101CB000C9F0EA2FFF27E150FC4F5083AF5F41503E
:101CC0004F3F81F0EA2FFF27E150FC4F2083AF5FA9
:101CD00041504F3F39F0EA2FFF27E150FC4F60831E
:101CE000AF5FA5CF82E094E0909307028093060255
:101CF000A350A09305020895A2E0B0E0E2E8FEE060
:101D00000C945A7780910B02882309F46BC40E94CB
:101D1000120E80910004823609F025C380910104DF
:101D200099278037910509F4C1C081379105C4F422
:101D30008A36910509F48DC28B36910544F48B34B3
:101D4000910571F18636910509F46CC10CC38D368D
:101D5000910509F47BC08E36910509F45FC003C379
:101D600084379105D1F1853791054CF48137910580
:101D700009F4A3C08337910509F4F1C0F4C2873791
:101D8000910509F428C2883791052CF4853791050F
:101D900009F4E4C1E8C28937910509F47AC1E3C2C4
:101DA000E0910602F0910702808191819093C40234
:101DB0008093C3022091C1023091C202821B930B17
:101DC000845E9D4F68E671E00E94FB76845B9040E4
:101DD0009093C0028093BF02C6C280910802A09176
:101DE0000602B0910702853140F080E1EAEDF3E0B0
:101DF0000D9001928A95E1F70DC08D919D910D9006
:101E0000BC91A02D8093DA039093DB03A093DC03B5
:101E1000B093DD0380EF809303024BC080910701F4
:101E20008823E1F38DE490E09F938F9380E296E026
:101E30009F938F9381E08F938F938EE48F930E9473
:101E4000560D8DB79EB707968DBF8DC2A091060225
:101E5000B09107021C91113081F48DE4E0E2F6E0CC
:101E60000D9001928A95E1F70E94A22D198380912D
:101E7000D6038F7E8093D60301C01982809107011B
:101E80008823E1F381E090E09F938F93CE01019648
:101E90009F938F9381E08F938F938DE48F930E9414
:101EA000560DADB7BEB71796ADBF5DC281E080934A
:101EB0000E028FEF8093050156C2E0910602F09169
:101EC0000702E0818E2F8A508A3058F48983882354
:101ED00011F481E003C0863010F085E0898361E071
:101EE0000EC08E2F84518A3070F48983882311F4B8
:101EF00081E003C0863010F085E0898360E089814D
:101F00000E94222E12C0E983EF3F19F40E94052E91
:101F100089838981882311F481E003C0863010F021
:101F200085E0898389810E94B82C809107018823EC
:101F3000E1F383E790E09F938F938CEA95E09F9382
:101F40008F9381E090E09F938F93CE0101969F93B2
:101F50008F9382E08F9381E08F9381E572C120910E
:101F6000060230910702D9018C918150853008F02A
:101F700040C0F90181818535E1F52F5F3F4F83E74F
:101F8000ECEAF5E0D9010D9001928A95E1F7F901AB
:101F900082910E94212D8091ED059927AA27BB27C8
:101FA000BC01CD0124EC39E040E050E00E94BC7659
:101FB000DC01CB018093D5019093D601A093D7018A
:101FC000B093D8018091EE059927AA27BB27BC01C1
:101FD000CD010E94BC76DC01CB018093D1019093AE
:101FE000D201A093D301B093D4010E94052E89831E
:101FF00001C01982809107018823E1F381E090E01C
:102000009F938F93CE0101969F938F9381E08F933F
:102010008F9383E58F930E94560D8DB79EB70796D9
:102020008DBF26C0E0910602F0910702E0818E2F5D
:102030008150853018F48E2F0E94B82C0E94052EF6
:102040008983809107018823E1F381E090E09F93E9
:102050008F93CE0101969F938F9381E08F938F93FF
:1020600086E48F930E94560DADB7BEB71796ADBFED
:102070008091A802882329F46EE670E089810E948D
:10208000E63580E00E9438078091D3050E94D57222
:102090006AC1E0910602F09107028081992787FDCD
:1020A00090959093F2068093F1068181992787FDA0
:1020B00090959093F4068093F3068281992787FD8B
:1020C00090959093F6068093F5068381992787FD76
:1020D00090959093F8068093F7068481992787FD61
:1020E00090959093FA068093F9068581992787FD4C
:1020F00090959093FC068093FB068681992787FD37
:1021000090959093FE068093FD068781992787FD21
:102110009095909300078093FF068085992787FD0F
:10212000909590930207809301078185992787FDF9
:10213000909590930407809303078285992787FDE4
:10214000909590930607809305078385992787FDCF
:102150009095909308078093070705C1E0910602C8
:10216000F091070280810E9441338A83882319F409
:1021700081E0898301C01982809107018823E1F3FE
:1021800088E090E09F938F938EE696E09F938F93E5
:1021900021E030E03F932F93809106029091070257
:1021A0009F938F933F932F93CE0102969F938F938C
:1021B0003F932F93CE01820F931F9F938F9384E0C1
:1021C0008F9381E08F9385E58F930E94560DEDB735
:1021D000FEB773963CC080910502893008F4C3C0F5
:1021E00020910602309107022F5F3F4F88E0AEE654
:1021F000B6E0F90101900D928A95E1F7D9018E912F
:102200000E9497328A83882319F481E0898301C070
:102210001982809107018823E1F321E030E03F93A8
:102220002F93CE0102969F938F933F932F93CE01CE
:10223000820F931F9F938F9382E08F9381E08F9300
:1022400087E58F930E94560DEDB7FEB73B96EDBF25
:102250008AC00E9488728983823019F0843009F024
:1022600082C0F8948091C1008F738093C1008091E7
:10227000C9008F738093C9008091C100877E8093CD
:10228000C1008091C900877E8093C9008091C800F9
:1022900087FF03C08091CE00F9CF8091C00087FFF7
:1022A00003C08091C600F9CFE0910602F0910702C9
:1022B0008081882359F581E08093FA011092CD0046
:1022C00080E490E08093CC008091CD008093C500A5
:1022D0008091CC008093C4008091CA008F7D809350
:1022E000CA008091CA008F7E8093CA008091C90085
:1022F0008B7F8093C9008091CA0084608093CA005C
:102300008091CA0082608093CA0003C082E08093FB
:10231000FA018091CA00877F8093CA008091C20031
:10232000877F8093C2008091C9008E7F8093C9000F
:102330008091C10088618093C1008091C90088614B
:102340008093C9008091C10080688093C100809112
:10235000C90080688093C90010926E0010926F00CF
:102360001092700078948091010499278436910529
:1023700009F4CDC085369105ACF48136910509F498
:1023800081C0823691052CF48B34910509F45DC02F
:1023900021C18236910509F482C08336910509F482
:1023A00091C018C18C36910509F4FFC08D36910596
:1023B0004CF48736910509F40AC18836910509F471
:1023C000C4C008C18437910529F08637910509F406
:1023D000FAC000C180910802A0910602B0910702E4
:1023E000803140F080E1EAEDF3E00D9001928A95B2
:1023F000E1F70DC08D919D910D90BC91A02D809322
:10240000DA039093DB03A093DC03B093DD038091A8
:1024100007018823E1F31F92809104018F9384E5E3
:102420008F930E94560D8AEF809303028FEF809363
:10243000050180EA9FE00E941C179093FC018093A5
:10244000FB010F900F900F90C5C0E0910602F09134
:102450000702808191819093C4028093C3022091EE
:10246000C1023091C202821B930B845E9D4F68E6CD
:1024700071E00E94FB76845B90409093C002809351
:10248000BF02A8C0E0910602F0910702808180930C
:102490000601803298F08FE1809306010FC0A09171
:1024A0000602B09107028BE0E2EFF3E00D9001929B
:1024B0008A95E1F78091FB03809397058FEF8093D6
:1024C000050188C08091FF0190910002892B89F459
:1024D000E0910602F0910702E081EE2351F08AE0DC
:1024E000E89FC00111240E941C179093CD03809394
:1024F000CC03E0910602F091070290818AE0989F58
:10250000C0011124909300028093FF0115C08FEF4A
:1025100080930501E0910602F091070290818AE024
:10252000989FC00111249093020280930102892B8D
:1025300019F081E08093100280EA9FE00E941C174E
:102540009093FC018093FB0145C08FEF80930501C0
:10255000E0910602F0910702908197FD08C082E0A9
:1025600080930D021092FE011092FD011AC0909509
:1025700080916502892B8093650291818AE0989F02
:10258000C00111249093FE018093FD0184E08093AB
:102590000D0280EA9FE00E941C179093FC0180933B
:1025A000FB0181E08093110215C08FEF809305013C
:1025B000E0910602F091070280818093660281E03B
:1025C0008093120207C081E080930F0203C081E074
:1025D0008093130210920B021092070210920602CF
:1025E00010920502E3E0CE5F0C947677982F8091ED
:1025F000C00085FFFCCF9093C60008950F931F93F2
:1026000088E18093C1008091C00082608093C00007
:102610008091C10080688093C1008091C100806476
:102620008093C10000E010E00093C5008AE290E0D2
:102630008093C40080910102909102020E941C17B5
:102640009093CF038093CE038CED90E00E941C17F3
:102650009093FE038093FD031092D00382E5809354
:10266000D1031092D4038BE08093D2031092D30352
:102670001093070200930602109205021F910F911A
:102680000895A0E1B0E0E7E4F3E10C94577780917E
:102690000701882309F4C1C28091FB019091FC01DC
:1026A0000E942517882361F01092FE011092FD010F
:1026B0001092020210920102109200021092FF0189
:1026C0008091FD019091FE01892B41F08091A90438
:1026D0009091AA040E942517882329F48091110261
:1026E000882309F460C080910701882309F45BC046
:1026F00080910D0201E211E08430A8F00E94ED1FEC
:1027000080E590E09F938F931F930F9381E08F93C9
:102710008F9388E48F930E94560D2DB73EB7295FA3
:102720003F4F2DBF34C01092670282E194E09F9327
:102730008F9382EE9FE19F938F93E091BC03F09182
:10274000BD03099584E190E09F938F931F930F93AE
:1027500081E090E09F938F938DE092E09F938F9321
:1027600082E08F9381E08F9388E48F930E94560DCF
:1027700080910D02982F8F5F80930D022DB73EB789
:10278000215F3F4F2DBF943010F010920D028091C9
:10279000FD019091FE010E941C179093AA04809362
:1027A000A9041092110280911202882351F18091A4
:1027B0000701882331F10E94ED1F80E590E09F938F
:1027C0008F9381E291E09F938F9321E030E03F93DC
:1027D0002F9380E291E09F938F933F932F9386E610
:1027E00092E09F938F9383E08F9381E08F938CE4AB
:1027F0008F930E94560D109212028DB79EB70F96BE
:102800008DBF80910F028823D1F08091070188232A
:10281000B1F08AE090E09F938F9380ED93E09F93D7
:102820008F9381E08F938F9386E58F930E94560D4F
:1028300010920F022DB73EB7295F3F4F2DBF8091F9
:1028400013028823D9F0809107018823B9F08BE027
:1028500090E09F938F9382EF93E09F938F9381E01B
:102860008F93809104018F9387E48F930E94560D7C
:10287000109213028DB79EB707968DBF8091FD030E
:102880009091FE030E942517882309F461C080916E
:102890000701882309F45CC08091C8059927880F37
:1028A000991F880F991F7C010027F7FC0095102FB6
:1028B0008091050390910603A0910703B09108034E
:1028C000BC01CD01A80197010E9430773093EB0342
:1028D0002093EA038091FD029091FE02A091FF02F5
:1028E000B0910003BC01CD01A80197010E9430778F
:1028F0003093ED032093EC03809192028093EE03DA
:10290000809191028093EF0388E090E09F938F93F2
:102910008AEE93E09F938F9381E08F9383E08F9370
:102920008BE68F930E94560D8091F0032DB73EB732
:10293000295F3F4F2DBF853018F086E08093F0036C
:1029400083E690E00E941C179093FE038093FD03A2
:102950008091010290910202892B41F08091CE0377
:102960009091CF030E942517882321F480911002B3
:10297000882339F180910701882319F10E94DC3402
:1029800082E490E09F938F9385E595E09F938F93EA
:1029900081E08F938F9384E48F930E94560D109261
:1029A00010028DB79EB707968DBF8091010290915E
:1029B0000202009731F00E941C179093CF0380937E
:1029C000CE038091FF0190910002892B09F4B8C0D9
:1029D0008091CC039091CD030E942517882309F4A0
:1029E000AFC080910701882309F4AAC08091C8056F
:1029F0009927880F991F880F991F7C010027F7FCE2
:102A00000095102F8091050390910603A091070374
:102A1000B0910803BC01CD01A80197010E94307755
:102A20003093BF032093BE038091FD029091FE027C
:102A3000A091FF02B0910003BC01CD01A801970154
:102A40000E9430773093C1032093C00320919D07EB
:102A500030919E0740919F075091A007DA01C9016C
:102A600063E0880F991FAA1FBB1F6A95D1F7820FD9
:102A7000931FA41FB51F820F931FA41FB51F209182
:102A80009601309197014091980150919901BC01B4
:102A9000CD010E9430773093C3032093C20380910D
:102AA000CD029091CE02A091CF02B091D00239E038
:102AB000B595A795979587953A95D1F78093C403D7
:102AC0008091C9029091CA02A091CB02B091CC0230
:102AD00029E0B595A795979587952A95D1F7809385
:102AE000C5038091D5029091D602A091D702B091F2
:102AF000D80209E0B595A795979587950A95D1F7DE
:102B00008093C6038EE090E09F938F938EEB93E0CB
:102B10009F938F9381E08F938F9383E48F930E9491
:102B2000560D8091FF01909100020E941C17909316
:102B3000CD038093CC032DB73EB7295F3F4F2DBF08
:102B4000809106018F3F71F1992714E0880F991F3A
:102B50001A95E1F78E5E9D4F40E150E0BC01CE0139
:102B600001960E940F7580E190E09F938F93CE01B4
:102B700001969F938F9381E090E09F938F9386E0DF
:102B800091E09F938F9382E08F9381E08F9381E414
:102B90008F930E94560D8FEF809306018DB79EB7DD
:102BA0000B968DBF809197058823D1F08091070106
:102BB0008823B1F081E090E09F938F9387E995E0BF
:102BC0009F938F9381E08F938F9382E48F930E94E2
:102BD000560D109297052DB73EB7295F3F4F2DBF79
:102BE00080910E028823C9F0809107018823A9F003
:102BF00084E390E09F938F9387ED96E09F938F936C
:102C000081E08F938F9380E58F930E94560D1092F1
:102C10000E028DB79EB707968DBFE6E0C05F0C949D
:102C200073771F920F920FB60F9211242F933F9339
:102C30005F936F937F938F939F93AF93BF93EF9324
:102C4000FF9320E080912302882329F080912302C2
:102C500081508093230280919F03882319F0815033
:102C600080939F0380912B02815080932B028F3F92
:102C700009F05BC089E080932B028091290290913A
:102C80002A02019690932A028093290280910F01D3
:102C90008F5F817080930F01882319F481E0809306
:102CA0002802349903C081E080932C028091240291
:102CB00090912502892B21F1809124029091250287
:102CC0000B9750F080912402909125020A979093DF
:102CD00025028093240204C010922502109224023F
:102CE00080912402909125022091080130910901E0
:102CF00082239323892B11F021E008C020E006C035
:102D00008FEF9FEF9093090180930801809102015A
:102D1000222331F08A3011F45A9A07C0479A05C02D
:102D20008A3011F45A9801C0479880912C02882368
:102D300009F472C02091E901222309F06DC080914D
:102D4000B90583FF69C086B19927FC01E071F07075
:102D500084FF14C0809126029091270201969093DF
:102D60002702809326028091260290912702895E95
:102D7000934008F451C020932C024EC0809126024B
:102D800090912702892B09F443C0809126029091EB
:102D900027028A569140E0F5809126029091270201
:102DA00069E270E00E94E776809126029091270206
:102DB000860F971F90932702809326028091260208
:102DC000909127020B9750F0809126029091270254
:102DD0000A979093C4028093C30204C0F093C40284
:102DE000E093C3028091C3029091C4022091C1027A
:102DF0003091C202821B930B845E9D4F68E671E0A6
:102E00000E94FB76845B90409093C0028093BF0247
:102E10001092270210922602FF91EF91BF91AF917D
:102E20009F918F917F916F915F913F912F910F9023
:102E30000FBE0F901F9018952091290230912A0201
:102E4000280F391FC9010196089520912902309158
:102E50002A02821B930B892F992786958074907084
:102E60000895CF93DF930E941C17EC01CE010E94BE
:102E700025178823D9F3DF91CF910895CF93DF935E
:102E80000E941C17EC0109C080911001882329F0D1
:102E9000909310018FEC80937A00CE010E94251749
:102EA000982F882389F3DF91CF9108959FB7F894E5
:102EB0005F983E9A469A8091B0008F708093B000E0
:102EC0008091B00083608093B0008091B1008B73DB
:102ED0008093B1008091B1008B608093B10010921B
:102EE000B2008FEF8093B3008091B0008068809330
:102EF000B000809170008A7F809370008091700094
:102F00008260809370009FBF08958AE090E00E94E5
:102F10001C17909332028093310282E085BD83EAD0
:102F200084BD17BC84EB88BD86E086BD80916E00B1
:102F3000816080936E000895A0E0B0E0E2EAF7E1DE
:102F40000C9456778091E305E82FFF27E456FE4F57
:102F50009681D08080910E01A92FBB27A7FDB09547
:102F6000CB2FDB2F813009F0C9C0209105033091B0
:102F700006034091070350910803BD01CE010E9452
:102F8000BC7697FF04C061587F4F8F4F9F4F7B01E6
:102F90008C0167E015950795F794E7946A95D1F74A
:102FA0008D2D992787FD9095A92FB92F2091FD028E
:102FB0003091FE024091FF0250910003BC01CD010F
:102FC0000E94BC7697FF04C061587F4F8F4F9F4F80
:102FD00057E095958795779567955A95D1F7F801BC
:102FE000E701C61BD70BE80BF90B8091DA0599278F
:102FF000AA27BB27BC01CD019E01AF010E94BC7670
:1030000097FF04C061507E4F8F4F9F4FFC01EB0133
:1030100049E0F595E795D795C7954A95D1F7809101
:10302000C101992736E0880F991F3A95E1F7409141
:103030000C0150910D012091E2053327841B950B63
:10304000B9010E94FB7680910C0190910D01860FD1
:10305000971F90930D0180930C0180910C0190912A
:103060000D0197FD0F9624E0959587952A95E1F738
:1030700090931F0280931E028091110680FF07C06B
:1030800080911E0290911F028C0F9D1F06C080919F
:103090001E0290911F028C1B9D0B90931F02809328
:1030A0001E028091DB05282F3327220F331F220FAA
:1030B000331F80911E0290911F02821793077CF0AC
:1030C0008091DC05282F3327220F331F220F331F57
:1030D00080911E0290911F022817390724F4309323
:1030E0001F0220931E0280910201843108F4C2C0A5
:1030F00080910E018F5F80930E01BEC02091FD0272
:103100003091FE024091FF0250910003BD01CE01BB
:103110000E94BC7697FF04C061587F4F8F4F9F4F2E
:103120007B018C01C7E015950795F794E794CA9544
:10313000D1F78D2D992787FD9095A92FB92F209133
:103140000503309106034091070350910803BC0129
:10315000CD010E94BC769B01AC0197FF04C02158B1
:103160003F4F4F4F5F4FB7E05595479537952795A0
:10317000BA95D1F72E0D3F1D401F511F8091DE05DE
:103180009927AA27BB27BC01CD010E94BC7697FFD7
:1031900004C061507E4F8F4F9F4FFC01EB01A9E0AF
:1031A000F595E795D795C795AA95D1F78091C00178
:1031B000992776E0880F991F7A95E1F740910A01E7
:1031C00050910B012091E2053327841B950BB90127
:1031D0000E94FB7680910A0190910B01860F971F48
:1031E00090930B0180930A0180910A0190910B0149
:1031F00097FD0F9664E0959587956A95E1F7909312
:103200001D0280931C028091110681FF07C08091EE
:103210001C0290911D028C0F9D1F06C080911C0204
:1032200090911D028C1B9D0B90931D0280931C029C
:103230008091DF05282F3327220F331F220F331FE2
:1032400080911C0290911D02821793077CF080915F
:10325000E005282F3327220F331F220F331F8091C1
:103260001C0290911D022817390724F430931D0287
:1032700020931C0210920E01E7E0CDB7DEB70C944C
:1032800072771F920F920FB60F9211242F933F93D4
:103290004F935F938F939F93EF93FF9380910201DE
:1032A00090912D02843108F04CC0992309F01CC183
:1032B0008091B00086FF24C08091B0008F7B809306
:1032C000B00080911E0290911F0287559E4F9093EF
:1032D00021028093200225E08D3D920718F08CEDAD
:1032E00095E005C08757914030F487E791E09093CF
:1032F0002102809320028091200290912102BAC085
:103300008091B00080648093B0008091E105282F07
:1033100033278DED96E0289FA001299F500D389FFF
:10332000500D1124CA0120912E0230912F02821BD0
:10333000930B909321028093200281E080930E01F1
:10334000D0C0992309F0D0C08091B00086FF97C00B
:103350008091B0008F7B8093B000E0913002EE232B
:10336000F1F48091E105282F33278DED96E0289F19
:10337000A001299F500D389F500D1124CA012091A2
:103380002E0230912F02821B930B90932102809387
:10339000200210922F0210922E02469AA2C089EAB1
:1033A00093E090932102809320028E2F99278330FF
:1033B0009105D9F08430910534F48130910549F0BC
:1033C000029761F020C08430910591F0059799F043
:1033D0001AC080911E0290911F0204C080911C02AD
:1033E00090911D0287559E4F1DC080916B0705C0AF
:1033F0008091450702C0809173079927880F991F14
:10340000880F991FEFCFFF27EE0FFF1FE952F94FEB
:1034100020813181220F331F80912002909121025F
:10342000820F931F909321028093200280912002AB
:103430009091210255E08D3D950718F08CED95E0B7
:1034400005C08757914030F487E791E090932102BF
:103450008093200220912002309121022C5B304089
:10346000309321022093200280912E0290912F020E
:10347000820F931F90932F0280932E0232C080916F
:10348000B00080648093B0008CEB90E090932102B8
:103490008093200280912E0290912F0284549F4F9E
:1034A00090932F0280932E0280912202882321F094
:1034B0008091B102833320F480912202823011F492
:1034C000469801C0469A809130028F5F8093300207
:1034D0009091E105981728F481E080930E011092F5
:1034E000300281E080932D02209120023091210250
:1034F00041E02F37340730F08FEF8093B3002F5F18
:1035000030400FC02F3F3105C9F0C0F0A9014F5F17
:1035100050404F37510550F480E88093B300205855
:103520003040309321022093200212C08FEF80930D
:10353000B30050932102409320020AC080912002E0
:103540008093B300109221021092200210922D025B
:10355000FF91EF919F918F915F914F913F912F91AB
:103560000F900FBE0F901F90189510927C008FEC5B
:1035700080937A000895CF93DF931092370283E00F
:1035800090E00E949A2CC82FDD27C531D10508F0A4
:103590002A97C7BD84E690E00E943E1780911401EF
:1035A000909115018052934010F4C0E0D0E0CA3FE2
:1035B000D105F8F4C7BD82E390E00E943E1787E290
:1035C00094E09F938F9386EF92E19F938F93E09186
:1035D000BC03F091BD0309958091140190911501F0
:1035E0000F900F900F900F908052934010F0219603
:1035F000DECFC093A8056C2F83E090E00E94A22C40
:103600008091B90580FF0AC08091A8058A508B3E41
:1036100028F08091D50380648093D503C7BD8CE2E8
:1036200091E00E943E17DF91CF910895EF92FF92B3
:103630001F93CF9310E080ED97E00E941C177C0150
:10364000CCE8133019F4CB3008F0C9E010E08091D9
:103650004702909148028C5F934024F480911301BB
:1036600081500AC08091470290914802875094404F
:1036700034F0809113018F5F8093130101C011E03A
:1036800080914502909146028C5F934024F4809192
:10369000120181500AC080914502909146028750E4
:1036A000944034F0809112018F5F8093120101C029
:1036B0001F5F80914302909144028C5F934024F4F9
:1036C0008091110181500AC080914302909144027F
:1036D00087509440C4F0809111018F5F8093110155
:1036E00013C089E294E09F938F9386EF92E19F93BA
:1036F0008F93E091BC03F091BD0309950F900F905B
:103700000F900F905FC01F5F82E1809372028091E3
:103710006C028E7F80936C0285EA8093BC0080915E
:1037200013018A3040F48091D50381608093D503E2
:103730008AE08093130180911301863F40F08091CD
:10374000D50381608093D50385EF80931301809129
:1037500012018A3040F48091D50382608093D503B2
:103760008AE08093120180911201863F40F080919F
:10377000D50382608093D50385EF809312018091F9
:1037800011018A3040F48091D50384608093D50381
:103790008AE08093110180911101863F40F0809171
:1037A000D50384608093D50385EF809311018091C8
:1037B0007202882339F0C7010E942517882309F077
:1037C00090CFF5CF109210018FEC80937A0080910A
:1037D00010018823E1F3CA3020F48AE090E00E94CF
:1037E0003E17C15009F02DCF86E490E00E943E17AD
:1037F000CF911F91FF90EF9008951F920F920FB6F7
:103800000F921124AF92BF92CF92DF92EF92FF926C
:103810000F931F932F933F934F935F936F937F93D8
:103820008F939F93AF93BF93EF93FF938091500239
:10383000282F3327442755278F5F80935002F901A3
:103840002231310508F08CC3E25CFF4F0C94827783
:10385000809178009091790046C080917800909195
:1038600079002CC180917800909179009093530257
:103870008093520257C180910E0390910F032091C3
:10388000780030917900821B930B90939905809377
:103890009805809198059091990590935D02809389
:1038A0005C025EC1809178009091790020911003B4
:1038B00030911103821B930B9093A7058093A6056B
:1038C0008091A6059091A70590935F0280935E0278
:1038D00049C380915602909157022091780030910F
:1038E0007900820F931F909357028093560281E0D4
:1038F0003AC3809154029091550220917800309102
:103900007900820F931F909355028093540284E0B4
:103910002AC380911E0190911F019C01220F331F29
:10392000280F391F809178009091790063E070E052
:103930000E94E776260F371F3695279536952795EF
:1039400030931F0120931E0185E00DC38091780004
:103950009091790040910A0350910B03841B950BC1
:1039600090933E0280933D0280913D0290913E02F1
:10397000029704F122E04E3E520784F42091510256
:103980002B5F20935102255080917E0290917F02FF
:10399000845F914018F4215F20935102809151027D
:1039A000853684F14F5F5F4F50930B0340930A03BA
:1039B000845626C080913D0290913E028F5F9F4FBA
:1039C0000CF532E047325307ECF0209151022550BC
:1039D000209351022B5F80917E0290917F02845F41
:1039E000914018F42F5020935102809151028C394C
:1039F0004CF44150504050930B0340930A038C59B0
:103A00008093510281E080933C02809178009091F4
:103A1000790090939F0580939E0580913D0290913F
:103A20003E029C01442737FD4095542F8091C502EA
:103A30009091C602A091C702B091C802820F931F55
:103A4000A41FB51F8093C5029093C602A093C7021E
:103A5000B093C8022091C5023091C6024091C702BE
:103A60005091C80257FF04C021503C4F4F4F5F4F49
:103A70000AE055954795379527950A95D1F7809196
:103A8000C5029091C602A091C702B091C802821BE4
:103A9000930BA40BB50B8093C5029093C602A09321
:103AA000C702B093C8022EC1809154029091550272
:103AB0002091780030917900820F931F90935502E6
:103AC0008093540210924F0250C2809102018A30BA
:103AD00071F4809178009091790020915202309198
:103AE0005302820F931F01969695879517C04091B8
:103AF000520250915302843158F020917800309155
:103B00007900240F351F8FEF97E0821B930B06C0BF
:103B10008091780090917900840F951F90934402D2
:103B20008093430286E01FC280910E0390910F03A1
:103B30002091780030917900821B930B9093990526
:103B400080939805809198059091990520915C0249
:103B500030915D02820F931F909342028093410245
:103B600087E001C280917800909179002091100344
:103B700030911103821B930B9093A7058093A605A8
:103B80008091A6059091A70520915E0230915F0279
:103B9000820F931F9093400280933F02E3C12091D4
:103BA0005602309157028091780090917900280F49
:103BB000391F3093570220935602809102018A30B8
:103BC00019F4220F331F04C0220F331F220F331F9B
:103BD000309357022093560220915602309157029B
:103BE000C90137FD0796A3E095958795AA95E1F75A
:103BF0009093480280934702809158029091590215
:103C0000820F931F97FD0196959587959093590282
:103C10008093580220911A0330911B03821B930B4F
:103C200090931D0180931C0120914D0230914E0212
:103C300080911C0190911D01280F391F37FF02C090
:103C40002F5F3F4F3595279530934E0220934D02BD
:103C50004ECE20915402309155028091780090917F
:103C60007900280F391F3093550220935402809118
:103C700002018A3019F4220F331F04C0220F331FB0
:103C8000220F331F30935502209354022091540287
:103C900030915502C90137FD079663E095958795E8
:103CA0006A95E1F7909346028093450280915A020B
:103CB00090915B02820F931F97FD019695958795D2
:103CC00090935B0280935A0220911803309119035C
:103CD000821B930B90931B0180931A0120914B023E
:103CE00030914C0280911A0190911B01280F391FCD
:103CF00037FF02C02F5F3F4F3595279530934C0219
:103D000020934B0283E02FC11092500281E08093F8
:103D10001001809133029091340201969093340205
:103D200080933302809178009091790090931501EF
:103D3000809314018091140190911501AA27BB274B
:103D4000A0906002B0906102C0906202D0906302C5
:103D5000A80EB91ECA1EDB1EA0926002B0926102BC
:103D6000C0926202D0926302809164028F5F80935E
:103D70006402823108F4F6C0809116019091170117
:103D8000A0911801B09119017C018D0123E0EE0C86
:103D9000FF1C001F111F2A95D1F7E81AF90A0A0B18
:103DA0001B0BEA0CFB1C0C1D1D1D80913702992773
:103DB00087FD9095A92FB92FBC01CD0126EC34E2E7
:103DC00040E050E00E94BC76DC01CB01E81AF90A21
:103DD0000A0B1B0BD801C7010496A11DB11DB7FF2B
:103DE00005C0D801C7010B96A11DB11D13E0B59503
:103DF000A795979587951A95D1F78093160190937B
:103E00001701A0931801B09319018091A00590911A
:103E1000A1057C010027F7FC0095102F8091160169
:103E200090911701A0911801B0911901E81AF90AAF
:103E30000A0B1B0BE092A302F092A4020093A502CE
:103E40001093A602209138023091390240913A0233
:103E500050913B0257FF04C0215F3F4F4F4F5F4FD0
:103E6000F4E05595479537952795FA95D1F78091C8
:103E7000380290913902A0913A02B0913B02821B24
:103E8000930BA40BB50B8093380290933902A09347
:103E90003A02B0933B028091380290913902A0918E
:103EA0003A02B0913B028E0D9F1DA01FB11F80935F
:103EB000380290933902A0933A02B0933B0280916A
:103EC000350290913602AC01E5E0440F551FEA95AA
:103ED000E1F7481B590B8091380290913902A0916B
:103EE0003A02B0913B02B7FF03C00F96A11DB11D6E
:103EF00074E0B595A795979587957A95D1F7209118
:103F0000A3023091A402281B390B63E0220F331F58
:103F10006A95E1F7240F351F37FF02C0215E3F4F3E
:103F200045E0359527954A95E1F730933602209381
:103F30003502D601C501D7FE03C00196A11DB11DF2
:103F4000B595A795979587958093600290936102A8
:103F5000A0936202B093630289E08093640202C07E
:103F60001092500282E080934F0280914F02809322
:103F70007C0080915002882319F08FEC80937A00A6
:103F8000FF91EF91BF91AF919F918F917F916F9131
:103F90005F914F913F912F911F910F91FF90EF9063
:103FA000DF90CF90BF90AF900F900FBE0F901F90FB
:103FB000189590E2E1E2F1E08FE49193815087FF60
:103FC000FCCF089590916702E1E2F1E0E90FF11D65
:103FD00080839F5F909367020895EF92FF920F9303
:103FE0001F93CF93DF932091650220FF0AC0809139
:103FF0006602882311F0815002C0809120018093D5
:10400000660221FF0CC090916602809120019817F2
:1040100019F41092660203C09F5F90936602822F8C
:10402000992780FF04C081FF02C0109266020E949F
:10403000D91F80916602282F332752EEE52E5FE1CB
:10404000F52EC091BC03D091BD038A3098F481E174
:10405000809367023F932F9380E694E09F938F9322
:10406000FF92EF92FE0109952DB73EB72A5F3F4FB1
:104070002DBF11C080E1809367023F932F9385E6A7
:1040800094E09F938F93FF92EF92FE0109958DB775
:104090009EB706968DBF20916602822F9927AA2788
:1040A000BB27FC01429710F00C949E2AE05BFF4F67
:1040B00042EEE42E4FE1F42EC091BC03D091BD033B
:1040C0000C948277109267028AE694E09F938F9314
:1040D00002EE1FE1FF92EF92FE01099584E18093C9
:1040E00067020F900F900F900F9081E690E09F93E2
:1040F0008F9382E590E09F938F931F921F92809100
:1041000002016AE00E94DB76892F99279F938F93A3
:10411000809102010E94DB7699279F938F938AE713
:1041200094E09F938F93FF92EF92E091BC03F09104
:10413000BD03099588E2809367022DB73EB7225FE1
:104140003F4F2DBF81E296E09F938F930E94052EF3
:1041500099279F938F938FE894E09F938F93FF927B
:10416000EF92E091BC03F091BD0309958DB79EB726
:1041700008968DBF9091D503992351F08CE38093DD
:104180006702892F99279F938F938DE994E081C6C9
:1041900090916D02992371F08CE380936702892FCF
:1041A00099279F938F9384EB94E09F938F931F9312
:1041B0000F9391C08091D60384FF07C08CE3809356
:1041C000670289EC94E00C94302A809192019091DE
:1041D0009301069710F00C94A72A8CE38093670252
:1041E00086ED94E00C94302A8091B90532EEE32EEE
:1041F0003FE1F32EC091BC03D091BD0380FF74C09A
:10420000109267028091A3029091A402A091A5024E
:10421000B091A602BC01CD0125E030E040E050E0C5
:104220000E9430773F932F9383EE94E09F938F9378
:10423000FF92EF92FE01099584E1809367022DB70A
:104240003EB72A5F3F4F2DBF80919F029091A00201
:10425000A091A102B091A202BC01CD0125E030E005
:1042600040E050E00E9430773F932F9380EF94E03E
:104270009F938F93FF92EF92E091BC03F091BD0367
:10428000099588E2809367028DB79EB706968DBF29
:1042900080911401909115019F938F938DEF94E07D
:1042A0009F938F93FF92EF92E091BC03F091BD0337
:1042B00009958CE3809367022DB73EB72A5F3F4F85
:1042C0002DBF87B599279F938F938AE095E09F93A1
:1042D0008F93FF92EF92E091BC03F091BD0309959B
:1042E0008DB79EB7069633C71092670287E195E0B7
:1042F0009F938F93FF92EF92FE01099584E1809343
:1043000067020F900F900F900F9086E295E09F93B9
:104310008F93FF92EF92E091BC03F091BD0309955A
:1043200088E2809367020F900F900F900F908FE2BA
:1043300095E09F938F93FF92EF92E091BC03F091F1
:10434000BD0309958CE3809367020F900F900F9047
:104350000F908EE395E09F938F93FF92EF920C94D2
:10436000342A1092670287E495E09F938F9302EEC0
:104370001FE1FF92EF92FE01099584E180936702AD
:104380000F900F900F900F9080910503909106036E
:10439000A0910703B0910803B7FF04C081509C4F60
:1043A000AF4FBF4F2AE0B595A795979587952A956A
:1043B000D1F7BF93AF939F938F9384E595E09F933D
:1043C0008F931F930F93E091BC03F091BD03099568
:1043D00088E2809367022DB73EB7285F3F4F2DBF1D
:1043E0008091FD029091FE02A091FF02B091000326
:1043F000B7FF04C081509C4FAF4FBF4FCAE0B59587
:10440000A79597958795CA95D1F7BF93AF939F933B
:104410008F9383E695E09F938F931F930F93E09183
:10442000BC03F091BD0309958CE3809367028DB7BF
:104430009EB708968DBF8091C3029091C4029F934E
:104440008F9382E795E09F938F931F930F93E09153
:10445000BC03F091BD0309952DB73EB72A5F3F4FCE
:1044600011C7109267028091DB069091DC069F9342
:104470008F938091D9069091DA069F938F9381E86C
:1044800095E09F938F93FF92EF92FE01099584E14F
:10449000809367028DB79EB708968DBF8091DF0627
:1044A0009091E0069F938F938091DD069091DE06B8
:1044B0009F938F9381E995E09F938F93FF92EF9263
:1044C000E091BC03F091BD03099588E280936702F7
:1044D0002DB73EB7285F3F4F2DBF8091E3069091E7
:1044E000E4069F938F938091E1069091E2069F935B
:1044F0008F9381EA95E09F938F93FF92EF92E091E3
:10450000BC03F091BD0309958CE3809367028DB7DE
:104510009EB708968DBF8091E7069091E8069F931D
:104520008F938091E5069091E6069F938F9381EBA0
:1045300095E0A2C0109267028091AE05E82FFF2798
:10454000EE0FFF1FE952F94F808191819F938F9366
:104550008091AD05E82FFF27EE0FFF1FE952F94FBD
:10456000808191819F938F9381EC95E09F938F93AE
:10457000FF92EF92FE01099584E1809367028DB767
:104580009EB708968DBF8091B005E82FFF27EE0FEC
:10459000FF1FE952F94F808191819F938F93809102
:1045A000AF05E82FFF27EE0FFF1FE952F94F80817B
:1045B000918188589F4F9F938F9381ED95E09F93B2
:1045C0008F93FF92EF92E091BC03F091BD030995A8
:1045D00088E2809367022DB73EB7285F3F4F2DBF1B
:1045E0008091B205E82FFF27EE0FFF1FE952F94F28
:1045F0008081918182599F4F9F938F938091B105C4
:10460000E82FFF27EE0FFF1FE952F94F80819181BC
:1046100082599F4F9F938F9381EE95E09F938F9345
:10462000FF92EF92E091BC03F091BD0309958CE3FA
:10463000809367028DB79EB708968DBF8091B405B1
:10464000E82FFF27EE0FFF1FE952F94F808191817C
:1046500082599F4F9F938F938091B305E82FFF2737
:10466000EE0FFF1FE952F94F8081918182599F4FD0
:104670009F938F9381EF95E09F938F93FF92EF929B
:10468000E091BC03F091BD0309952DB73EB7285FBB
:104690003F4FF8C51092670281E096E09F938F9399
:1046A00002EE1FE1FF92EF92FE0109958091020157
:1046B0000F900F900F900F908A3009F09DC084E109
:1046C0008093670280911A0390911B039C0197FFCE
:1046D00002C0295F3F4F287F821B930B9F938F93CC
:1046E00080911A0390911B0397FD0796A3E095957F
:1046F0008795AA95E1F79F938F9320911A033091A4
:104700001B0337FF02C0295F3F4FF3E03595279524
:10471000FA95E1F78091470290914802821B930B32
:104720009F938F938FE096E09F938F931F930F93A8
:10473000E091BC03F091BD03099588E28093670284
:104740008DB79EB70A968DBF80911803909119037B
:104750009C0197FF02C0295F3F4F287F821B930B6C
:104760009F938F93809118039091190397FD07965B
:10477000E3E095958795EA95E1F79F938F932091D4
:1047800018033091190337FF02C0295F3F4F73E0D0
:10479000359527957A95E1F78091450290914602EB
:1047A000821B930B9F938F9380E296E09F938F934E
:1047B0001F930F93E091BC03F091BD0309958CE327
:1047C000809367022DB73EB7265F3F4F2DBF809184
:1047D0001603909117039F938F93809116039091E6
:1047E00017032091430230914402821B930B9F9345
:1047F0008F9381E396E0A7C38B3019F0843108F4DE
:10480000ADC084E18093670280911A0390911B03ED
:104810009C0197FF02C0215F3F4F207F821B930BBB
:1048200097FD0196959587959F938F9380911A0395
:1048300090911B0397FD0F9654E0959587955A9597
:10484000E1F79F938F9320911A0330911B0337FF59
:1048500002C0295F3F4F43E0359527954A95E1F720
:104860008091470290914802821B930B9F938F93F4
:104870008FE396E09F938F931F930F93E091BC0378
:10488000F091BD03099588E2809367022DB73EB78A
:10489000265F3F4F2DBF80911803909119039C0113
:1048A00097FF02C0215F3F4F207F821B930B97FD34
:1048B0000196959587959F938F938091180390917A
:1048C000190397FD0F96C4E095958795CA95E1F772
:1048D0009F938F93209118033091190337FF02C0E3
:1048E000295F3F4FB3E035952795BA95E1F7809161
:1048F000450290914602821B930B9F938F9381E513
:1049000096E09F938F931F930F93E091BC03F091D8
:10491000BD0309958CE3809367028DB79EB70A9615
:104920008DBF809116039091170397FD0196959581
:1049300087959F938F9380911603909117032091F1
:10494000430230914402821B930B9F938F9383E623
:1049500096E09F938F931F930F9392CE8D3009F023
:10496000F6C584E1809367028091130199279F9394
:104970008F9380911A0390911B0397FD0F96F4E09B
:1049800095958795FA95E1F79F938F9320911A0358
:1049900030911B0337FF02C0295F3F4FE3E035959D
:1049A0002795EA95E1F78091470290914802821B92
:1049B000930B9F938F9382E796E09F938F931F9320
:1049C0000F93E091BC03F091BD03099588E28093B9
:1049D00067028DB79EB70A968DBF80911201992705
:1049E0009F938F93809118039091190397FD0F96D1
:1049F00074E0959587957A95E1F79F938F93209131
:104A000018033091190337FF02C0295F3F4F63E05D
:104A1000359527956A95E1F7809145029091460278
:104A2000821B930B9F938F9386E896E09F938F93BF
:104A30001F930F93E091BC03F091BD0309958CE3A4
:104A4000809367022DB73EB7265F3F4F2DBF809101
:104A5000110199279F938F938091160390911703CB
:104A600097FD0196959587959F938F938091160357
:104A7000909117032091430230914402821B930BC3
:104A80009F938F938AE996E09F938F931F930F9341
:104A9000E091BC03F091BD0309958DB79EB70A96CE
:104AA00056C3109267028EEA96E09F938F93FF920F
:104AB000EF92FE01099584E1809367020F900F90B9
:104AC0000F900F9080911003909111039F938F93FB
:104AD00080913F02909140029F938F938BEB96E0E1
:104AE0009F938F93FF92EF92E091BC03F091BD03EF
:104AF000099588E2809367022DB73EB7285F3F4F44
:104B00002DBF80910E0390910F039F938F938091FF
:104B10004102909142029F938F938AEC96E09F937B
:104B20008F93FF92EF92E091BC03F091BD03099542
:104B30008CE3809367028DB79EB708968DBF8091F6
:104B40000A0390910B039F938F9380913D02909164
:104B50003E029F938F9389ED96E08ECD109267026F
:104B600080911E0190911F016AE070E00E94FB7627
:104B70009F938F9380911E0190911F016AE070E0D6
:104B80000E94FB767F936F9388EE96E09F938F93BE
:104B9000FF92EF92FE01099584E1809367028DB741
:104BA0009EB708968DBF80911408909115086AE011
:104BB00070E00E94E7769F938F9380911408909104
:104BC00015086AE070E00E94E7767F936F938CEFA0
:104BD00096E09F938F93FF92EF92E091BC03F09148
:104BE000BD03099588E2809367022DB73EB7285F21
:104BF0003F4F2DBF80911608909117089F938F9378
:104C000080E197E09F938F93FF92EF92E091BC0336
:104C1000F091BD0309958CE3809367028DB79EB731
:104C200006968DBF80911808909119089F938F93D5
:104C300080E297E02EC11092670282E397E09F9393
:104C40008F93FF92EF92FE01099584E180936702B2
:104C50000F900F900F900F908091D7069091D806EB
:104C60009F938F938BE397E09F938F93FF92EF92A5
:104C7000E091BC03F091BD03099588E2809367023F
:104C80008DB79EB706968DBF8091B10299279F93ED
:104C90008F938BE497E09F938F93FF92EF92E09135
:104CA000BC03F091BD0309958CE3809367022DB797
:104CB0003EB72A5F3F4F2DBF8091D60699270197B7
:104CC0009F938F938BE597E002CB109267028BE660
:104CD00097E09F938F93FF92EF92FE01099584E1F5
:104CE000809367020F900F900F900F908091BF02FA
:104CF0009091C0029F938F9383E797E09F938F9348
:104D0000FF92EF92E091BC03F091BD03099588E218
:104D1000809367022DB73EB72A5F3F4F2DBF80912A
:104D2000C3029091C4029F938F9381E897E09F9371
:104D30008F93FF92EF92E091BC03F091BD03099530
:104D40008CE3809367028DB79EB706968DBF8091E6
:104D5000C1029091C2029F938F938FE897E099C010
:104D6000109267028091B20299279F938F938DE9E9
:104D700097E09F938F93FF92EF92FE01099584E154
:104D8000809367028DB79EB706968DBF8091B30260
:104D900099279F938F9389EA97E09F938F93FF9230
:104DA000EF92E091BC03F091BD03099588E28093F6
:104DB00067022DB73EB72A5F3F4F2DBF8091B402E7
:104DC00099279F938F9385EB97E09F938F93FF9203
:104DD000EF92E091BC03F091BD0309958CE38093C1
:104DE00067028DB79EB706968DBF8091B502992751
:104DF0009F938F9381EC97E04CC010926702809153
:104E0000B60299279F938F938DEC97E09F938F9392
:104E1000FF92EF92FE01099584E1809367028DB7BE
:104E20009EB706968DBF8091B70299279F938F9367
:104E300089ED97E09F938F93FF92EF92E091BC03EF
:104E4000F091BD03099588E2809367022DB73EB7C4
:104E50002A5F3F4F2DBF8091B80299279F938F9370
:104E600085EE97E09F938F93FF92EF92E091BC03C2
:104E7000F091BD0309958CE3809367028DB79EB7CF
:104E800006968DBF8091B90299279F938F9381EFEA
:104E900097E09F938F93FF92EF92D9CA1092670287
:104EA0008DEF97E09F938F9302EE1FE1FF92EF92B9
:104EB000FE01099584E1809367020F900F900F9097
:104EC0000F908091C10199279F938F9385E098E07F
:104ED0009F938F93FF92EF92E091BC03F091BD03FB
:104EE000099588E2809367028DB79EB706968DBFBD
:104EF00080911E0290911F0297FD039695958795CC
:104F0000959587959F938F9383E198E09F938F93D7
:104F10001F930F93E091BC03F091BD0309958CE3BF
:104F2000809367022DB73EB72A5F3F4F2DBF809118
:104F3000DC0599279F938F938091DB0599279F9399
:104F40008F9381E298E09F938F931F930F93E0914B
:104F5000BC03F091BD0309958DB79EB70896F7C0C5
:104F6000109267028FE298E09F938F93FF92EF92E7
:104F7000FE01099584E1809367020F900F900F90D6
:104F80000F908091F603992787FD90959F938F93BB
:104F90008091F503992787FD90959F938F938FE3D9
:104FA00098E09F938F93FF92EF92E091BC03F09172
:104FB000BD03099588E2809367022DB73EB7285F4D
:104FC0003F4F2DBF8091F703992787FD90959F93C1
:104FD0008F938091F80399279F938F938FE498E0A4
:104FE0009F938F93FF92EF92E091BC03F091BD03EA
:104FF00009958CE3809367028DB79EB708968DBFA5
:105000008091FC0399279F938F938091F9039927AF
:1050100087FD90959F938F938FE598E02DCB10920D
:1050200067028FE698E09F938F93FF92EF92FE01C5
:10503000099584E1809367020F900F900F900F9075
:105040008091910699278F7790709F938F9380918D
:10505000890699278F7790709F938F93809181060F
:1050600099278F7790709F938F93809179069927D6
:105070008F7790709F938F938FE798E09F938F9394
:10508000FF92EF92E091BC03F091BD03099588E295
:10509000809367028DB79EB70C968DBF8091B10645
:1050A00099278F7790709F938F938091A906992766
:1050B0008F7790709F938F938091A10699278F7718
:1050C00090709F938F938091990699278F77907016
:1050D0009F938F9380E998E09F938F93FF92EF9235
:1050E000E091BC03F091BD0309958CE380936702C6
:1050F0002DB73EB7245F3F4F2DBF8091D106992732
:105100008F7790709F938F938091C90699278F779F
:1051100090709F938F938091C10699278F7790709D
:105120009F938F938091B90699278F7790709F9363
:105130008F9381EA98E09F938F93FF92EF92E09193
:10514000BC03F091BD0309958DB79EB70C968DBF3A
:10515000FEC11092670282EB98E09F938F93FF92BB
:10516000EF92FE01099584E1809367020F900F9002
:105170000F900F9080919506992787FD90959F93AA
:105180008F9380918D06992787FD90959F938F939C
:1051900080918506992787FD90959F938F938091A5
:1051A0007D06992787FD90959F938F9381EC98E0DA
:1051B0009F938F93FF92EF92E091BC03F091BD0318
:1051C000099588E2809367022DB73EB7245F3F4F71
:1051D0002DBF8091B506992787FD90959F938F935A
:1051E0008091AD06992787FD90959F938F9380912D
:1051F000A506992787FD90959F938F9380919D0693
:10520000992787FD90959F938F9382ED98E09F93C8
:105210008F93FF92EF92E091BC03F091BD0309954B
:105220008CE3809367028DB79EB70C968DBF8091FB
:10523000D506992787FD90959F938F938091CD06F2
:10524000992787FD90959F938F938091C506992705
:1052500087FD90959F938F938091BD06992787FD39
:1052600090959F938F9383EE98E09F938F93FF92F7
:10527000EF92E091BC03F091BD0309952DB73EB7C5
:10528000245F3F4F2DBF63C11092670284EF98E007
:105290009F938F9302EE1FE1FF92EF92FE0109951B
:1052A00084E1809367020F900F900F900F90809190
:1052B0009106881F8827881F97E0899FC0011124C5
:1052C0008D969F938F9380918906881F8827881FCA
:1052D00096E0899FC00111248D969F938F938091B2
:1052E0008106881F8827881F95E0899FC0011124A7
:1052F0008D969F938F9380917906881F8827881FAA
:105300009927880F991F880F991F8D969F938F93C8
:1053100083E099E09F938F93FF92EF92E091BC031B
:10532000F091BD03099588E2809367028DB79EB71F
:105330000C968DBF8091B106881F8827881F9BE03F
:10534000899FC00111248D969F938F938091A90608
:10535000881F8827881F9AE0899FC00111248D9695
:105360009F938F938091A106881F8827881F99E0BB
:10537000899FC00111248D969F938F9380919906E8
:10538000881F8827881F992723E0880F991F2A954F
:10539000E1F78D969F938F9387E199E09F938F9389
:1053A000FF92EF92E091BC03F091BD0309958CE36D
:1053B000809367022DB73EB7245F3F4F2DBF80918A
:1053C000B906881F8827881F9CE0899FC001112487
:1053D0008D969F938F938BE299E09F938F93FF928B
:1053E000EF92E091BC03F091BD0309958091C10655
:1053F0002DB73EB72A5F3F4F2DBF87FF12C080E415
:10540000809367028CE399E09F938F93FF92EF92D2
:10541000E091BC03F091BD0309950F900F900F90A0
:105420000F908091C90687FF12C084E480936702C1
:105430008FE399E09F938F931F930F93E091BC03A9
:10544000F091BD0309950F900F900F900F908091F0
:10545000D10687FF7CC088E48093670282E499E0EC
:105460009F938F931F930F93E091BC03F091BD0323
:1054700009950F900F900F900F9069C010926702DE
:1054800085E499E09F938F93FF92EF92FE01099537
:1054900084E1809367020F900F900F900F9080919E
:1054A000F5019091F6019F938F9383E599E09F9387
:1054B0008F93FF92EF92E091BC03F091BD030995A9
:1054C00088E2809367028DB79EB706968DBF809164
:1054D000F7019091F8019F938F9380E699E09F9355
:1054E0008F93FF92EF92E091BC03F091BD03099579
:1054F00089E4809367022DB73EB72A5F3F4F2DBFE7
:105500008DE699E09F938F93FF92EF92E091BC0319
:10551000F091BD030995809165020F900F900F9057
:105520000F9083FF14C01092F8011092F70160E011
:1055300070E08EE090E00E94B32C09C080912001C1
:10554000281719F42150209320011092660210921E
:105550006502E6E0CDB7DEB70C947377F999FECF1C
:1055600092BD81BDF89A80B599270895F999FECF2B
:105570001FBA92BD81BD60BD0FB6F894FA9AF99A30
:105580000FBE08954AEA20E030E02617370740F4BE
:10559000FC018191480F2F5F3F4F26173707C8F353
:1055A000842F99270895EAEA40E050E0461757070C
:1055B00078F49C01F999FECF32BD21BDF89A80B5EF
:1055C000E80F4F5F5F4F2F5F3F4F4617570790F32E
:1055D0008E2F9927089581E08093AF0582E0809314
:1055E000AE0583E08093AD0584E08093B00585E04F
:1055F0008093B10586E08093B20587E08093B30580
:1056000088E08093B40589E08093B5058AE08093B3
:10561000B6058BE08093B7058CE08093B8050895BC
:1056200095E59093AC0580910201843170F08AE099
:105630008093CC051092F0058BE18093C8058EE431
:105640008093ED058093EE050DC083E08093CC053B
:1056500080E28093F0058EE18093C8059093ED057C
:105660009093EE058AE68093B90583E08093120655
:1056700081E08093D30510920F0610920C0668E02B
:105680006093C60586EE8093C70580E88093C905C0
:105690005EE15093BA058FEF8093BC059FE0909335
:1056A000BD055093BB051092BF056093C00580E413
:1056B0008093C1051092C2059093BE051092D50546
:1056C0001092D6051092D7051092D8051092F205C7
:1056D0001092F3051092F4051092F50538E7309317
:1056E000D90548E24093DA0572E070931106909371
:1056F000DB0527EF2093DC0585E08093E1058DE74E
:105700008093E4058093E5058093E6053093DD05FD
:105710009AE59093DE051092DF052093E005409313
:10572000E2051092E3058FE58093F60583EF809301
:10573000F8058AEA8093FA058093FB0584E180935B
:10574000F7058093F90582E38093E7059093E805D8
:105750008093E905109210068EEF8093FC0524E6F5
:105760002093FD059093FE059093FF05909300060E
:105770008BE48093010680930206809303061092C7
:10578000040686E08093050660930606909307065C
:10579000509308062093090620930A0670930B067F
:1057A00010920D0610920E0681E28093D0058DE2D4
:1057B0008093D1059093D2050895CF93DF930E94F3
:1057C000102B8EE08093C30520E12093C4053CE0BC
:1057D0003093C50590E59093CA0586E98093CB0583
:1057E0009093CD058093CE0586E08093CF0580E22F
:1057F0008093D4058AE58093EA059093EB0581E0D8
:105800008093EC052093EF0584E68093F105A3E1F6
:10581000B6E0E1E7F1E0ED01019009923A95E1F798
:1058200063E770E0CD01875690400E94C22A8093C2
:105830001F06DF91CF910895CF93DF930E94102B25
:105840008AE08093C30580E18093C40526E020931D
:10585000C5059AE59093CA0588E78093CB05909398
:10586000CD058093CE052093CF0520E22093D4056B
:105870009093EA0580E58093EB058CE38093EC053B
:105880002093EF058BE48093F105A3E1B6E08CE073
:10589000E8E7F1E0ED01019009928A95E1F763E70D
:1058A00070E0CD01875690400E94C22A80931F0667
:1058B000DF91CF910895CF93DF930E94102B88E062
:1058C0008093C30530E13093C40526E02093C505DD
:1058D00094E69093CA0588E78093CB059093CD0515
:1058E0008093CE052093CF053093D4058AE580932D
:1058F000EA0580E58093EB0596E49093EC0580E261
:105900008093EF059093F105A3E1B6E08CE0E0E829
:10591000F1E0ED01019009928A95E1F763E770E00B
:10592000CD01875690400E94C22A80931F06DF91C6
:10593000CF910895F999FECF92BD81BDF89A80B5B7
:1059400099270895F999FECF1FBA92BD81BD60BD18
:105950000FB6F894FA9AF99A0FBE08956EEA7AE2B1
:105960000E944A75089546EB5AE20E948475089594
:10597000EF92FF920F931F93CF93C82F81508530E2
:1059800008F0C3E084E7C89F8001112480EFE82E6F
:105990008FEFF82EE00EF11E63E770E0C7010E9462
:1059A000D32A682F98012D593F4F8FB39927AC0107
:1059B0004270507081FDF9CF32BD21BDF89A80B59B
:1059C000861711F0CA0121C08FB399279C0122705C
:1059D000307081FDF9CFF2BCE1BCF89A80B5853515
:1059E00011F0C90112C084E7C89FC001112440977B
:1059F0002EEA3AE244E750E0BC018CEA95E00E94CE
:105A000025750E94036681E090E0CF911F910F9170
:105A1000FF90EF900895282F863010F025E003C006
:105A2000882309F421E0F999FECF1FBA82E090E0C3
:105A300092BD81BD20BD0FB6F894FA9AF99A0FBEB7
:105A40000895CF93C82F8091AC05853509F042C0E9
:105A5000C63010F0C5E003C0CC2309F43BC063E7B7
:105A600070E08CEA95E00E94C22A80931F0684E7CA
:105A7000C89FC001112426EB3AE244E750E06CEAEB
:105A800075E040970E94627526EB3AE24CE050E0E8
:105A90006DEA75E080E590E00E9462756CE070E070
:105AA0008DEA95E00E94C22A282FF999FECF1FBAED
:105AB0008CE590E092BD81BD20BD0FB6F894FA9AB6
:105AC000F99A0FBE8C2F0E940B2D0E94036681E075
:105AD00090E002C080E090E0CF9108956DE470E026
:105AE00088EE93E00E94D32A482F8FB399279C0118
:105AF0002270307081FDF9CF85E394E092BD81BDC5
:105B0000F89A80B5841779F48FB399279C01227095
:105B1000307081FDF9CF88EE93E092BD81BDF89A97
:105B200080B5813011F0C90108952EEA3AE24EE4C1
:105B300050E068EE73E080E296E00E94257581E017
:105B400090E00895809120068130A9F46DE470E022
:105B500080E296E00E94C22A80936D0626EB3AE22C
:105B60004EE450E060E276E088EE93E00E946275D9
:105B700081E090E0089580E090E00895CF93DF9376
:105B800081E080932006E0E2F6E08FE0158616863D
:105B90001786108A8150349687FFF8CF80E480936F
:105BA0002D0680932E0610922F0680933006809348
:105BB000310690EC909332061092330680933406AF
:105BC00080933506109236069093370690933806E8
:105BD0008093390610923A0680933B0690933C06D8
:105BE000A1E2B6E087E0EAE8F1E0ED010190099278
:105BF0008A95E1F76DE470E0CD0101970E94C22A19
:105C000080936D06DF91CF910895F999FECF82E0E0
:105C100090E092BD81BDF89A80B5282F863078F04B
:105C200023E0322FF999FECF1FBA82E090E092BDB7
:105C300081BD30BD0FB6F894FA9AF99A0FBE822F43
:105C4000992708951F93CF93C82F162F863010F0F1
:105C5000C5E003C0882309F4C1E08C2F9927823066
:105C6000910541F08330910544F4019731F40E948D
:105C7000DD2B05C00E941C2C02C00E945B2C11234E
:105C8000E1F06CE070E080E590E00E94D32A282FDC
:105C9000F999FECF8CE590E092BD81BDF89A80B570
:105CA000821759F42EEA3AE24CE050E060E570E0E9
:105CB0008DEA95E00E94257502C00E94EB2A8C2F88
:105CC0000E94212DCF911F910895DF92EF92FF92B4
:105CD0000F931F93CF93FF24DF2CEF2C81E090E0F4
:105CE0000E949A2C853539F031E0E32E65E581E09C
:105CF00090E00E94A22C6CE070E080E590E00E94B1
:105D0000D32AC82FF999FECF8CE590E092BD81BDD2
:105D1000F89A80B58C1711F421E0D22EC1E001E091
:105D200010E0EE2029F48C2F0E94B82C8823C1F5B6
:105D300091E0F92E1F930F9385E799E09F938F933E
:105D400086EF92E19F938F93E091BC03F091BD03A6
:105D500009958DB79EB706968DBF0230110549F0A3
:105D6000033011054CF40130110531F40E94DD2B94
:105D700005C00E941C2C02C00E945B2CDD2059F043
:105D80002EEA3AE24CE050E060E570E08DEA95E002
:105D90000E94257502C00E94EB2A8C2F0E94212DA3
:105DA000CF5F0F5F1F4FC63008F4BBCFFF2019F045
:105DB00083E00E940B2D0E94052EC82F0E94B82C54
:105DC0008C2F99279F938F938BE999E09F938F93C3
:105DD00006EF12E11F930F93E091BC03F091BD0316
:105DE00009958DB79EB706968DBFEE2021F40E94CF
:105DF0006E2D882399F484EB99E09F938F931F93E2
:105E00000F93E091BC03F091BD0309950E94BE2D54
:105E10000E94A22D0F900F900F900F901092AB0543
:105E200090E0EDE2F6E0CFE08081349618160CF4B5
:105E30009F5FC150C7FFF8CF9093AB05892F99277B
:105E40009F938F9381E296E09F938F9385ED99E0E6
:105E50009F938F931F930F93E091BC03F091BD0329
:105E600009958DB79EB708968DBF86EF99E09F93F1
:105E70008F931F930F93E091BC03F091BD0309959D
:105E80000F900F900F900F90CF911F910F91FF9057
:105E9000EF90DF900895982F2FB7F8943998389A9B
:105EA00088B1836088B98091B9008C7F8093B900F4
:105EB0008AE28093B80010927202109270021092DF
:105EC0006F02992379F0E6E7F6E08BE01082118209
:105ED000128213821482158216821782815038969C
:105EE00087FFF4CF78942FBF08951092720284E94F
:105EF0008093BC0080E88093BC001092BD0010929B
:105F0000BA001092BB001092B9001092B800109223
:105F10006E0280E00E944B2F1092BB0085E88093B8
:105F2000BC0080916C02826080936C0208951F9285
:105F30000F920FB60F9211242F933F934F935F93BD
:105F40008F939F93EF93FF9380917202282F3327B3
:105F5000442755278F5F80937202F901273131055D
:105F600008F0C2C2EE59FF4F0C94827781E0809313
:105F70006E0209C0809170028C3090F480917002A2
:105F80008F5F8093700280917002E82FFF27EE0FE1
:105F9000FF1FEE0FFF1FE05EF94F8585181654F7BF
:105FA000809170028C3070F010926B0210926A0235
:105FB0001092700285E08093720280916F02880FC8
:105FC0008D5A04C080917002880F8E5A8093BB0056
:105FD00085E87FC280917002E82FFF2783E0EE0FF3
:105FE000FF1F8A95E1F7EA58F94F81818093BB0042
:105FF00085E88093BC0080917002E82FFF27EE0FA8
:10600000FF1FEE0FFF1FEE0FFF1FEA58F94F8081B1
:1060100080FF91C080917002E82FFF27EE0FFF1FD5
:10602000EE0FFF1FEE0FFF1FEA58F94F8281882302
:1060300029F08091AB05873008F46CC280916A0228
:1060400090916B02892B09F065C280916802909152
:106050006902892B09F05EC26EC08091700221E056
:1060600030E002C0220F331F8A95E2F78091680268
:106070009091690228233923232B79F080917002B3
:10608000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F82
:10609000EA58F94F80E184830DC080917002E82FA7
:1060A000FF27EE0FFF1FEE0FFF1FEE0FFF1FEA5837
:1060B000F94F148280917002E82FFF2753E0EE0F12
:1060C000FF1F5A95E1F7EA58F94F8481282F3327AB
:1060D00043E0220F331F4A95E1F780917002E82FC9
:1060E000FF2793E0EE0FFF1F9A95E1F7EA58F94F6B
:1060F00082818770822B8093BB0085E88093BC00EF
:106100002091700281E090E002C0880F991F2A95CB
:10611000E2F720916A0230916B0282239323892B4C
:1061200051F08EE696E0909376028093750288E0B7
:1061300080937702EFC184E089C1E0917502F0910C
:10614000760281918093BB0085E88093BC00F09338
:106150007602E093750280917702815080937702F6
:10616000882309F4D7C183E071C18091B9008033DD
:1061700051F580917302882329F4809170028F5F1A
:106180008093730280917002E82FFF2783E0EE0F67
:10619000FF1F8A95E1F7EA58F94F838199278F7796
:1061A00090708F3791057CF480917002E82FFF2763
:1061B000EE0FFF1FEE0FFF1FEE0FFF1FEA58F94F04
:1061C00083818F5F83831092720284E98093BC0085
:1061D0008AE090E090939301809392018091700205
:1061E0008F5F80937002109272026DC18091B9002E
:1061F0008034C9F180916F02E82FFF27EE0FFF1F57
:10620000EE0FFF1FEE0FFF1FEA58F94F83818F77C4
:10621000838380916F028F5F80936F0280916F0202
:106220008C30A0F010926F021092690210926802F6
:10623000809174028F5F809374028C3038F01092DA
:10624000740280916C028D7F80936C0280916C024D
:10625000816080936C021092720284E98093BC008A
:1062600010926E0273C080916F02E82FFF27EE0F2D
:10627000FF1FEE0FFF1FEE0FFF1FEA58F94F83813C
:106280008068838380916F02E82FFF27EE0FFF1F46
:10629000EE0FFF1FEE0FFF1FEA58F94F808180FFBE
:1062A0002FC080916F02E82FFF2753E0EE0FFF1FF2
:1062B0005A95E1F7EA58F94F84819927009751F0F0
:1062C0004097D9F58EE696E090937602809375021A
:1062D00088E031C080916F02992743E0880F991FB1
:1062E0004A95E1F78558994F90937602809375020D
:1062F00090916F02809174029817E1F483E01BC0C3
:1063000080916F02992733E0880F991F3A95E1F742
:106310008558994F909376028093750280916C0214
:1063200081FD06C090916F0280917402981711F45C
:1063300082E001C081E08093770280917702813012
:1063400011F485E801C085EC8093BC008091730254
:1063500080936D0210927302DDC0E0917502F0919E
:1063600076028091BB0080838091750290917602C5
:106370000196909376028093750280917702815006
:1063800080937702823010F085EC5DC0813011F48B
:1063900085E859C080916C0281FF2DC080917D02FB
:1063A00080FD1DC080916F02E82FFF2723E0EE0FD4
:1063B000FF1F2A95E1F7EA58F94F86818A3F79F461
:1063C00080916F02E82FFF2793E0EE0FFF1F9A9551
:1063D000E1F7EA58F94F8081816080830CC0809199
:1063E0006F02E82FFF2783E0EE0FFF1F8A95E1F78A
:1063F000EA58F94F108280916F028F5F80936F028D
:1064000080916F028C30A0F010926F02109269029E
:1064100010926802809174028F5F809374028C30B6
:1064200038F01092740280916C028D7F80936C0220
:106430001092720284E98093BC0080916C028160AA
:1064400080936C0265C08093BC0086E080937202EA
:1064500061C088E9BBCD80917102880F805FB6CDA5
:106460008091710299278130910561F08230910508
:106470001CF4892B21F04EC0029739F04BC080915B
:106480001301A4CD80911201A1CD809111019ECD67
:1064900080E89CCD1092720284E98093BC00109237
:1064A0006E028AE090E09093930180939201809134
:1064B0007102823088F4809171028F5F8093710243
:1064C00082E18093720280916C028E7F80936C02D5
:1064D00085EA8093BC001EC01092710280916C020C
:1064E000816080936C0216C01092720284E98093DE
:1064F000BC0080916C02816080936C028AE090E025
:1065000090939301809392011092700210926F0207
:1065100010926E02FF91EF919F918F915F914F9139
:106520003F912F910F900FBE0F901F9018951F93C2
:10653000CF93DF93182F8091A802882321F48091B4
:106540000302882319F081E090E097C01D3008F025
:1065500092C01123B1F0E12FFF2723E0EE0FFF1FC0
:106560002A95E1F7EA58F94F3597808135968823C7
:106570000CF081C03897808180FD03C083E090E0FB
:106580007CC080916E06823019F084E090E075C086
:1065900067E070E08EE696E00E94C22A9091750650
:1065A000891719F085E090E068C080ED97E00E94BF
:1065B0001C17EC0180916C0280FD05C0CE010E9489
:1065C00025178823B9F3112319F48FEF90E00BC03E
:1065D000212F33272150304081E090E002C0880F06
:1065E000991F2A95E2F790936B0280936A02A1E0CB
:1065F000B0E0E6E7F6E040E050E06BE0CD01042ECD
:1066000002C0880F991F0A94E2F720916A02309124
:106610006B0282239323892B11F011821282615025
:106620004F5F5F4F389667FFE9CF1092700210926C
:10663000720280916C028E7F80936C0285EA809357
:10664000BC0080916C0280FD05C0CE010E94251720
:106650008823B9F380916A0290916B02892B29F00B
:10666000CE010E942517882311F380916A02909130
:106670006B02009711F082E090E0DF91CF911F91C3
:1066800008950F931F93CF93DF93982F8091A802C3
:10669000882321F480910302882319F081E090E09F
:1066A00092C09D30A0F4992319F486E090E08BC04D
:1066B000C92FDD27FE0133E0EE0FFF1F3A95E1F70A
:1066C000EA58F94F35978081359687FD03C082E0FF
:1066D00090E079C03897808180FD03C083E090E02E
:1066E00072C080ED97E00E941C178C0180916C02B3
:1066F00080FD05C0C8010E9425178823B9F32197A2
:1067000021E030E0C90102C0880F991FCA95E2F765
:106710009093690280936802D901E6E7F6E040E0D1
:1067200050E06BE0CD01042E02C0880F991F0A943F
:10673000E2F7209168023091690282239323892B2A
:1067400011F01182128261504F5F5F4F389667FFE0
:10675000E9CF10926F0210926E0610927506109299
:10676000720280916C028E7F80936C0285EA809326
:10677000BC0080916C0280FD05C0C8010E942517F5
:106780008823B9F38091680290916902892B29F0DE
:10679000C8010E942517882311F380916E0682306C
:1067A00019F084E090E00FC067E070E08EE696E0BC
:1067B0000E94C22A90917506891719F085E090E031
:1067C00002C080E090E0DF91CF911F910F9108957A
:1067D00089E1ABE0B7E0E7EDF6E011821082329696
:1067E00011961C921E921296815087FFF6CF10923E
:1067F00017031092160310921903109218031092A7
:106800001B0310921A0308951F920F920FB60F9256
:1068100011240F931F932F933F934F935F936F9385
:106820007F938F939F93AF93BF93CF93DF93EF9318
:10683000FF9340918600509187008091790290915A
:106840007A02481B590BCA0157FD0196AC015595B8
:106850004795809186009091870090937A0280936B
:106860007902CA0189599840A0917B02B0917C02BB
:10687000875E954338F4149714F01092940181E0E8
:1068800090E081C0AD30B1050CF081C0CA018B5FD2
:1068900090408356944008F071C0425C5340FD0123
:1068A000EA0FFB1FE952F94F80819181FA01E81B41
:1068B000F90BCF01F7FF03C0909581959F4F069785
:1068C0004CF48091B102883C28F48091B102865F3B
:1068D0008093B102FD01EA0FFB1FE952F94F80815D
:1068E00091819C01220F331F280F391F240F351F60
:1068F00037FF02C02D5F3F4FE901D595C795D5956C
:10690000C795CA0101968C179D0714F4219706C0FC
:1069100041505040C417D5070CF421968091B10224
:10692000833CD8F08D010A0F1B1FF801E952F94F83
:10693000808191819E01281B390BC90163E070E0C1
:106940000E94FB76CB01880F991F860F971F055F6A
:10695000184FF8019183808307C0AA0FBB1FA55F62
:10696000B84F11961C921E92E0917B02F0917C022E
:10697000EE0FFF1FE952F94FD183C08380917B0254
:1069800090917C02019690937C0280937B02FF9110
:10699000EF91DF91CF91BF91AF919F918F917F91B7
:1069A0006F915F914F913F912F911F910F910F9098
:1069B0000FBE0F901F901895EF92FF920F931F93A9
:1069C0008091C8059927880F991F880F991F7C010E
:1069D0000027F7FC0095102F809105039091060386
:1069E000A0910703B0910803BC01CD01A801970154
:1069F0000E94307730935805209357058091FD020F
:106A00009091FE02A091FF02B0910003BC01CD0164
:106A1000A80197010E94307730935A0520935905B9
:106A2000809191079091920797FD03969595879590
:106A30009595879590935C0580935B058091A10760
:106A40009091A20797FD03969595879595958795C3
:106A500090935E0580935D058091160390911703D6
:106A60002091430230914402821B930B9093600566
:106A700080935F058091A3029091A402A091A5024A
:106A8000B091A602BC01CD0125E030E040E050E02D
:106A90000E943077309362052093610580913D021A
:106AA00090913E0290936405809363058091C302A8
:106AB0009091C402909368058093670580911E01B0
:106AC00090911F0190936A05809369058091B102AE
:106AD000992790936C0580936B0580919D07909109
:106AE0009E07A0919F07B091A00720919601309139
:106AF00097014091980150919901BC01CD010E94EC
:106B0000307730936E0520936D0580917706992735
:106B10009093700580936F0580917F0699279093DD
:106B2000720580937105809187069927909374056B
:106B30008093730580918F069927909376058093B3
:106B4000750580911E0290911F029093800580939D
:106B50007F05809114089091150890938405809387
:106B60008305809118089091190890938605809369
:106B7000850580911A089927909392058093910535
:106B800080918D0390918E0390939405809393054B
:106B900080918B0390918C0390939605809395053B
:106BA0008091D503882321F48091D603882321F096
:106BB00080915605816003C0809156058E7F809339
:106BC00056051F910F91FF90EF9008951F93CF935B
:106BD000DF93182FEB018091A8028823A1F41150B4
:106BE0001F3F89F0D0932502C09324028091240294
:106BF00090912502892BD1F7CE018C0F9D1F0E9409
:106C00003117115078F7DF91CF911F910895CF93ED
:106C1000DF93809102018D3011F40E94161B1092B7
:106C20007A00809147029091480290935807809390
:106C300057078091450290914602909349078093AF
:106C40004807809143029091440290939707809364
:106C5000960720913F0230914002C901880F991F89
:106C6000880F991F820F931F820F931F9093920793
:106C7000809391072091410230914202C901880F0F
:106C8000991F880F991F820F931F820F931F909354
:106C9000A2078093A1078FEC80937A00A2EBB2E069
:106CA000C1EBD5E097E08991E82FFF27EE0FFF1F9A
:106CB000E952F94F0190F081E02DE259FF4F1E1685
:106CC0001F061CF0E0E0F0E005C0EF3FF10514F016
:106CD000EFEFF0E08C91282F3327E217F30714F43D
:106CE000815004C02E173F0714F48F5F8C9391508E
:106CF000119697FFD8CF8091ED059927AA27BB273A
:106D0000BC01CD0124EC39E040E050E00E94BC76AB
:106D1000DC01CB018093D5019093D601A093D701DC
:106D2000B093D8018091EE059927AA27BB27BC0113
:106D3000CD010E94BC76DC01CB018093D101909300
:106D4000D201A093D301B093D401DF91CF910895E4
:106D5000A0E0B0E0EEEAF6E30C945177882EC0E0B4
:106D6000D0E07E016E011092D503469AD0931103B4
:106D7000C0931003D0930F03C0930E03D0930B0363
:106D8000C0930A03D0931B03C0931A03D093190333
:106D9000C0931803D0931703C09316031092BE013B
:106DA0001092BD01109237020E94073684E690E0EF
:106DB0000E943E170E9407368091B90580FF10C0DF
:106DC0008091140190911501875B934038F4809174
:106DD0001401909115018E5E924010F40E94BB1A2E
:106DE0000FE18AE090E00E943E178091430290916B
:106DF0004402C80FD91F8091470290914802E80EC3
:106E0000F91E8091450290914602C80ED91E01508C
:106E100007FFE7CF9701205F3F4F369527953695BF
:106E2000279530931B0320931A03C601409696952D
:106E3000879596958795909319038093180360968C
:106E4000F5E0D695C795FA95E1F7D0931703C0936F
:106E50001603909315038093140330931303209328
:106E60001203882009F441C0809191079091920704
:106E700097FF03C0909581959F4F6CE070E00E9452
:106E8000FB769B0170931103609310038091A1071F
:106E90009091A20797FF03C0909581959F4F6CE05A
:106EA00070E00E94FB7670930F0360930E03809155
:106EB0009E0590919F0590930B0380930A03B9015F
:106EC00084E090E00E94B32C60910E0370910F0358
:106ED00086E090E00E94B32C60910A0370910B034E
:106EE00088E090E00E94B32C65C084E090E00E94AE
:106EF000AE2C909311038093100386E090E00E94E3
:106F0000AE2C90930F0380930E0388E090E00E94D4
:106F1000AE2C9C0190930B0380930A038091100385
:106F2000909111038150984050F480910E039091FC
:106F30000F038150984018F421503440D8F187E174
:106F40009AE09F938F9386EF92E19F938F93E091C6
:106F5000BC03F091BD030995809191079091920730
:106F600097FF03C0909581959F4F6CE070E00E9461
:106F7000FB7670931103609310038091A1079091A9
:106F8000A20797FF03C0909581959F4F6CE070E03A
:106F90000E94FB7670930F0360930E0380919E0511
:106FA00090919F0590930B0380930A030F900F908D
:106FB0000F900F90109258071092570710924907A0
:106FC00010924807109297071092960784E690E077
:106FD0000E943E1780913F02909140029C01220F37
:106FE000331F220F331F280F391F280F391F3093EB
:106FF00092072093910780914102909142028C0167
:10700000000F111F000F111F080F191F080F191F64
:107010001093A2070093A1078091C805C82EDD2414
:10702000EE24FF24442737FD4095542FC701B601B5
:107030000E94BC764B015C016093050370930603CC
:1070400080930703909308039801442737FD4095E8
:10705000542FC701B6010E94BC76DC01CB0180939E
:10706000FD029093FE02A093FF02B0930003809272
:10707000E1029092E202A092E302B092E4028093D5
:10708000D9029093DA02A093DB02B093DC02109253
:10709000D5021092D6021092D7021092D802809197
:1070A000160190911701A0911801B09119019093C8
:1070B000A1058093A005109236021092350210921D
:1070C000C5021092C6021092C7021092C8028091A7
:1070D000C3029091C4029093C2028093C1020E94A5
:1070E0008C6182E390E0909325028093240280914A
:1070F000ED059927AA27BB27BC01CD0124EC39E077
:1071000040E050E00E94BC76DC01CB018856954CF3
:10711000AF4FBF4F8093D5019093D601A093D70175
:10712000B093D8018091EE059927AA27BB27BC010F
:10713000CD010E94BC76DC01CB018856954CAF4F47
:10714000BF4F8093D1019093D201A093D301B0930C
:10715000D40110929B0110929A018091C3029091E8
:10716000C402AA2797FDA095BA2F209196013091CD
:1071700097014091980150919901BC01CD010E9465
:10718000BC76DC01CB0180939D0790939E07A09372
:107190009F07B093A0071092BC021092BB0281E03F
:1071A000809301010E94036680917D028460809338
:1071B0007D028FEF80930F081092100880E2809379
:1071C0001108C2EBD2E0A1EBB5E007E08D91E82F0A
:1071D000FF27EE0FFF1FE952F94F808191818259FD
:1071E0008993015007FFF2CF84E68093B10280912A
:1071F0002202882311F0469A579A80911A0390919F
:107200001B0380569940815C9B4228F08091D503F6
:1072100081608093D5038091180390911903805663
:107220009940815C9B4228F08091D50382608093D5
:10723000D50380911603909117038C529140895782
:10724000954028F08091D50384608093D503809188
:107250001003909111038C529140835C914028F06F
:107260008091D50388608093D50380910E0390911F
:107270000F038C529140835C914028F08091D5039C
:1072800080618093D50380910A0390910B03805015
:1072900092408355914028F08091D503806280937D
:1072A000D503ECE0CDB7DEB70C946D77A3E1B0E089
:1072B000ECE5F9E30C944B7780911603909117035A
:1072C0002091430230914402821B930B90939707C5
:1072D0008093960780914D0290914E0297FD0796FC
:1072E0009C0113E0359527951A95E1F730935807DF
:1072F0002093570780914B0290914C0297FD07967F
:10730000B3E095958795BA95E1F7909349078093F7
:107310004807309363072093620790935B0780933D
:107320005A078091910790919207AC01440F551F25
:10733000480F591F20913F0230914002C901880F28
:10734000991F880F991F820F931F820F931F480F59
:10735000591F57FF02C04D5F5F4F55954795559593
:10736000479550939207409391078091A107909180
:10737000A207AC01440F551F480F591F209141022D
:1073800030914202C901880F991F880F991F820FFF
:10739000931F820F931F480F591F57FF02C04D5F65
:1073A0005F4F55954795559547955093A207409344
:1073B000A10720913F0230914002C901880F991F17
:1073C000880F991F820F931F820F931F9C014427E0
:1073D00037FD4095542F8091F5029091F602A091CF
:1073E000F702B091F802820F931FA41FB51F80937C
:1073F000F5029093F602A093F702B093F802209161
:10740000410230914202C901880F991F880F991FCC
:10741000820F931F820F931F9C01442737FD4095D5
:10742000542F8091F1029091F202A091F302B09159
:10743000F402820F931FA41FB51F8093F102909353
:10744000F202A093F302B093F40280916C07909142
:107450006D0720913F0230914002820F931F90935D
:107460006D0780936C078091990790919A072091FE
:10747000410230914202820F931F90939A078093AA
:10748000990780910C0390910D03019690930D0341
:1074900080930C0380919E0590919F0520910A0393
:1074A00030910B03821B930B9C01442737FD4095C1
:1074B000542F8091ED029091EE02A091EF02B091D5
:1074C000F002820F931FA41FB51F8093ED029093CB
:1074D000EE02A093EF02B093F0028FEC80937A005B
:1074E000109210012091DD023091DE024091DF0206
:1074F0005091E00229873A874B875C8729543B46A5
:10750000414050402CF028E43BE641E050E00DC003
:1075100089859A85AB85BC85885B9449AE4FBF4F02
:107520004CF428EB34E94EEF5FEF2D833E834F831D
:10753000588708C089859A85AB85BC858D839E83D5
:10754000AF83B8872091E5023091E6024091E702CF
:107550005091E8022D873E874F87588B29543B4630
:10756000414050402CF028E43BE641E050E00DC0A3
:107570008D859E85AF85B889885B9449AE4FBF4F96
:107580004CF428EB34E94EEF5FEF29833A834B83C9
:107590005C8308C08D859E85AF85B88989839A8371
:1075A000AB83BC83A0919607B0919707BB8BAA8B46
:1075B000FD01CF01AA2797FDA095BA2FA090D50273
:1075C000B090D602C090D702D090D802A80EB91EB3
:1075D000CA1EDB1EA092D502B092D602C092D7027C
:1075E000D092D802E0909D07F0909E0700919F07EF
:1075F0001091A007E80EF91E0A1F1B1FE0929D07BD
:10760000F0929E0700939F071093A007F0919802B5
:10761000F98BFF2309F098C180919702882309F024
:1076200093C18091B90586FF8FC1809148079091E1
:107630004907AA2797FDA095BA2FBC01CD01298142
:107640003A814B815C810E94BC769B01AC0197FF23
:1076500004C02150384F4F4F5F4FBBE055954795C1
:1076600037952795BA95D1F78091BD01682E77247B
:1076700088249924CA01B901A40193010E94BC760F
:10768000DC01CB018093260390932703A09328036A
:10769000B0932903B7FF04C08150904FAF4FBF4F45
:1076A0001C012D01ACE05594479437942794AA957A
:1076B000D1F720922603309227034092280350925C
:1076C00029038091570790915807AA2797FDA09505
:1076D000BA2FBC01CD012D813E814F8158850E947A
:1076E000BC7697FF04C06150784F8F4F9F4FFBE0EF
:1076F0009595879577956795FA95D1F7A4019301AC
:107700000E94BC76DC01CB0180932A0390932B036B
:10771000A0932C03B0932D03B7FF04C08150904F6A
:10772000AF4FBF4F9C01AD01ECE0559547953795A4
:107730002795EA95D1F720932A0330932B034093A2
:107740002C0350932D03809126039091270390934F
:10775000400780933F0780912A0390912B039093D9
:10776000440780934307221933094409550920939C
:107770002A0330932B0340932C0350932D03E20EE6
:10778000F31E041F151FE0929D07F0929E070093C1
:107790009F071093A0078091BC018823B1F457FF85
:1077A00004C02F5F3F4F4F4F5F4F5595479537951B
:1077B0002795A21AB30AC40AD50AA092D502B0929C
:1077C000D602C092D702D092D8022A893B89790189
:1077D0000027F7FC0095102F80912A0390912B032E
:1077E000A0912C03B0912D03E80EF91E0A1F1B1F58
:1077F000C801B70129813A814B815C810E94BC7626
:107800009B01AC0197FF04C02150384F4F4F5F4F91
:107810006BE055954795379527956A95D1F78091F7
:10782000BE01A82EBB24CC24DD24CA01B901A601C7
:1078300095010E94BC76DC01CB0180931E039093DE
:107840001F03A0932003B0932103B7FF04C081500E
:10785000904FAF4FBF4F3C014D013CE09594879452
:10786000779467943A95D1F760921E0370921F0344
:107870008092200390922103C801B7012D813E819F
:107880004F8158850E94BC7697FF04C06150784FA5
:107890008F4F9F4F2BE095958795779567952A9504
:1078A000D1F7A60195010E94BC76DC01CB01809343
:1078B000220390932303A0932403B0932503B7FFDF
:1078C00004C08150904FAF4FBF4FAC01BD018CE061
:1078D00075956795579547958A95D1F740932203FB
:1078E0005093230360932403709325032A893B89D3
:1078F00037FF03C0309521953F4F21343105E4F126
:10790000D401C30197FE07C0B095A09590958195CD
:107910009F4FAF4FBF4F81389105A105B10584F44A
:10792000DB01CA0177FF07C0B095A09590958195BE
:107930009F4FAF4FBF4F81389105A105B105E4F0CE
:1079400081E08093BD0218C0109244071092430753
:107950001092400710923F071092220310922303C7
:10796000109224031092250310921E0310921F03FD
:1079700010922003109221038091220390912303FF
:10798000A0912403B0912503BC01CD0124E630E091
:1079900040E050E00E943077E0901E03F0901F031B
:1079A000E21AF30AF0925607E092550780911E03FF
:1079B00090911F03A0912003B0912103BC01CD0140
:1079C00024E630E040E050E00E943077DA01C9015F
:1079D00020912203309123038C01021B130B10937F
:1079E0004B0700934A078091960190919701A091CF
:1079F0009801B0919901BC01CD0128E631E040E049
:107A000050E00E94BC7620919D0730919E074091E6
:107A10009F075091A007261737074807590764F0BA
:107A2000261B370B480B590B20939D0730939E075D
:107A300040939F075093A00720919D0730919E0788
:107A400040919F075091A00757FF0CC0260F371F8A
:107A5000481F591F20939D0730939E0740939F070F
:107A60005093A00760914807709149076E0D7F1DE4
:107A70009B01442737FD4095542F8091D902909166
:107A8000DA02A091DB02B091DC02820F931FA41FE7
:107A9000B51F8093D9029093DA02A093DB02B093D2
:107AA000DC0280919D0290919E02681B790BCB01B4
:107AB000AA2797FDA095BA2F29853A854B855C8525
:107AC000820F931FA41FB51F8093DD029093DE02E7
:107AD000A093DF02B093E002C090D101D090D20118
:107AE000E090D301F090D401C816D906EA06FB064F
:107AF000C4F488EA91E6A0E0B0E08C199D09AE09D3
:107B0000BF098093DD029093DE02A093DF02B09361
:107B1000E0028093D9029093DA02A093DB02B09343
:107B2000DC0222273327A9012C193D094E095F09E0
:107B30008091DD029091DE02A091DF02B091E0021F
:107B400082179307A407B507B4F4D701C601885A72
:107B50009146A040B0408093DD029093DE02A09356
:107B6000DF02B093E0028093D9029093DA02A093EF
:107B7000DB02B093DC026091570770915807600FE9
:107B8000711F9B01442737FD4095542F8091E102DE
:107B90009091E202A091E302B091E402820F931F60
:107BA000A41FB51F8093E1029093E202A093E30229
:107BB000B093E40280919B0290919C02681B790B28
:107BC000CB01AA2797FDA095BA2F2D853E854F851D
:107BD0005889820F931FA41FB51F8093E5029093CD
:107BE000E602A093E702B093E802E090D501F0909E
:107BF000D6010091D7011091D801E816F9060A07BD
:107C00001B07C4F488EA91E6A0E0B0E08E199F0952
:107C1000A00BB10B8093E5029093E602A093E702DC
:107C2000B093E8028093E1029093E202A093E30212
:107C3000B093E40222273327A9012E193F09400BF4
:107C4000510B8091E5029091E602A091E702B0917C
:107C5000E80282179307A407B507B4F4D801C70157
:107C6000885A9146A040B0408093E5029093E60286
:107C7000A093E702B093E8028093E1029093E202BE
:107C8000A093E302B093E4028091D5029091D602D2
:107C9000A091D702B091D8028093E9029093EA02B2
:107CA000A093EB02B093EC028091E5029091E60282
:107CB000A091E702B091E802809305039093060338
:107CC000A0930703B09308038091DD029091DE0238
:107CD000A091DF02B091E0028093FD029093FE023A
:107CE000A093FF02B09300038091E1029091E20221
:107CF000A091E302B091E402809301039093020308
:107D0000A0930303B09304038091D9029091DA0207
:107D1000A091DB02B091DC028093F9029093FA0209
:107D2000A093FB02B093FC0280911C0190911D0175
:107D300097FD079603E0959587950A95E1F790934F
:107D400058078093570780911A0190911B0197FD66
:107D5000079613E0959587951A95E1F79093490753
:107D60008093480780914702909148020F9734F41E
:107D700088E19CEF909358078093570780914702C2
:107D800090914802079734F480E398EF9093580756
:107D900080935707209102012A30A9F4809147026D
:107DA00090914802835F934034F088EE93E0909383
:107DB00058078093570780914702909148028A5F45
:107DC0009340DCF014C08091470290914802815D9D
:107DD000974034F088EE93E09093580780935707CC
:107DE0008091470290914802805E974034F080ED88
:107DF00097E09093580780935707809145029091A0
:107E000046020F9734F488E19CEF909349078093E2
:107E100048078091450290914602079734F480E329
:107E200098EF90934907809348072A30A9F48091EE
:107E3000450290914602835F934034F088EE93E0D0
:107E4000909349078093480780914502909146029C
:107E50008A5F9340DCF014C0809145029091460205
:107E6000815D974034F088EE93E0909349078093CA
:107E700048078091450290914602805E974034F019
:107E800080ED97E090934907809348076091C8017F
:107E9000662309F4AFC040911C0150911D018091EF
:107EA0002E0390912F03481B590B50933503409399
:107EB000340320911C0130911D01280F391F37FF19
:107EC00002C02F5F3F4F3595279530932F032093A6
:107ED0002E03413851051CF080E890E005C0405861
:107EE0005F4F34F480E89FEF909335038093340321
:107EF00040911A0150911B01809130039091310300
:107F0000481B590B509333034093320320911A01BD
:107F100030911B01280F391F37FF02C02F5F3F4FE1
:107F2000359527953093310320933003413851051F
:107F30001CF080E890E005C040585F4F34F480E8C2
:107F40009FEF9093330380933203462F5527809100
:107F5000340390913503849FB001859F700D949FE9
:107F6000700D11249B0177FF02C0215F3F4FF4E0A9
:107F700035952795FA95E1F7809157079091580725
:107F8000820F931F90935807809357078091320375
:107F900090913303849FD001859FB00D949FB00DC5
:107FA0001124AD019D01B7FF02C0215F3F4FE4E006
:107FB00035952795EA95E1F7809148079091490713
:107FC000820F931F909349078093480780911C016B
:107FD00090911D01860F971F90931D0180931C01A6
:107FE00080911A0190911B01840F951F90931B01A2
:107FF00080931A0100915A0710915B0780913F0707
:1080000090914007101611065CF59C0197FF04C083
:1080100022273327281B390BC901AA2797FDA095D2
:10802000BA2F2091BC01332744275527BC01CD012D
:108030000E94BC769B01AC0197FF04C0215C3F4FBE
:108040004F4F5F4F76E055954795379527957A9531
:10805000D1F78091550790915607820F931F27C043
:1080600097FF03C0909581959F4FAA2797FDA095F4
:10807000BA2F2091BC01332744275527BC01CD01DD
:108080000E94BC769B01AC0197FF04C0215C3F4F6E
:108090004F4F5F4F66E055954795379527956A9501
:1080A000D1F78091550790915607821B930B9093BF
:1080B000560780935507E0906207F0906307809120
:1080C0004307909144071E141F045CF59C0197FF21
:1080D00004C022273327281B390BC901AA2797FD83
:1080E000A095BA2F2091BC01332744275527BC0106
:1080F000CD010E94BC769B01AC0197FF04C0215CBE
:108100003F4F4F4F5F4F96E05595479537952795D1
:108110009A95D1F780914A0790914B07820F931F50
:1081200027C097FF03C0909581959F4FAA2797FD81
:10813000A095BA2F2091BC01332744275527BC01B5
:10814000CD010E94BC769B01AC0197FF04C0215C6D
:108150003F4F4F4F5F4F86E0559547953795279591
:108160008A95D1F780914A0790914B07821B930B18
:1081700090934B0780934A078091B90587FF44C0CD
:10818000B989BB2309F040C0809197028823E1F5AB
:10819000E1E0EE16E1E0FE064CF080915707909189
:1081A00058078E0D9F1D805091400DC0F0E0EF16D6
:1081B000FFEFFF0664F480915707909158078E0DEA
:1081C0009F1D80509F4F909358078093570721E041
:1081D000013012074CF08091480790914907800FB9
:1081E000911F805091400CC03FEF0030130764F4A2
:1081F0008091480790914907800F911F80509F4FB1
:108200009093490780934807E2E1CD5E0C9467772D
:108210008091A802882301F580917D028C7F809354
:108220007D02AAEDB3E0E6E7F6E09BE08091030271
:10823000882309F48C938D91818312829150389612
:1082400097FFF4CF80910302882359F080910302B5
:1082500081508093030205C080917D0281608093EC
:108260007D0280916E02882319F010926E020895AB
:10827000809370028093720280916C028E7F809353
:108280006C0285EA8093BC000895CF93DF93A2EB44
:10829000B2E0C1EBD5E057E08991E82FFF27EE0F60
:1082A000FF1FE952F94F0190F081E02DE259FF4F95
:1082B000EF3FF10521F01CF0EFEFF0E004C0F7FF15
:1082C00002C0E0E0F0E04C91242F3327E217F307DF
:1082D000A9F0CF01821B930B97FD03969595879587
:1082E00095958795242F280F2C93822F9927E8178F
:1082F000F90714F4215001C02F5F2C9351501196AF
:1083000057FFCACF8091BB05883F38F0EFEFF0E010
:10831000E81BF109EE54FD4F80818093CE018091DE
:10832000CE01882329F0843618F084E68093CE01AC
:108330008091BD05883F38F0EFEFF0E0E81BF109D0
:10834000EE54FD4F80818093CC018091CC01882335
:1083500029F0843618F084E68093CC018091CA0518
:10836000883F38F0EFEFF0E0E81BF109EE54FD4FE5
:1083700080818093C7018091C7018B3010F48AE01F
:1083800002C08F3F11F48093C7018091F705883FA9
:1083900038F0EFEFF0E0E81BF109EE54FD4F80817B
:1083A00080936E0780916E07823010F481E002C0E6
:1083B0008F3F11F480936E078091F905883F38F064
:1083C000EFEFF0E0E81BF109EE54FD4F8081809360
:1083D000940780919407823010F481E002C08F3FAF
:1083E00011F4809394078091E405883F38F0EFEF13
:1083F000F0E0E81BF109EE54FD4F808180936B079C
:108400008091E505883F38F0EFEFF0E0E81BF109D7
:10841000EE54FD4F8081809345078091E605883FAB
:1084200038F0EFEFF0E0E81BF109EE54FD4F8081EA
:10843000809373079091BC05983F18F49093CD01F9
:1084400009C0EFEFF0E0E91BF109EE54FD4F808128
:108450008093CD01983F18F49093CD0109C0EFEFC0
:10846000F0E0E91BF109EE54FD4F80818093CD01CE
:108470008091BF05883F38F0EFEFF0E0E81BF1098D
:10848000EE54FD4F80818093CB018091C105883FE0
:1084900038F0EFEFF0E0E81BF109EE54FD4F80817A
:1084A0008093C9018091C905883F38F0EFEFF0E073
:1084B000E81BF109EE54FD4F80818093CA01809141
:1084C000CB05883F38F0EFEFF0E0E81BF109EE5400
:1084D000FD4F80818093C6018091CC05883F38F0A4
:1084E000EFEFF0E0E81BF109EE54FD4F808180933F
:1084F000C8018091CD05883F38F0EFEFF0E0E81B30
:10850000F109EE54FD4F80818093C5018091CE0525
:10851000883F38F0EFEFF0E0E81BF109EE54FD4F33
:1085200080818093C4018091D405883F38F0EFEFBB
:10853000F0E0E81BF109EE54FD4F80818093C20109
:108540008091D505883F38F0EFEFF0E0E81BF109A6
:10855000EE54FD4F8081809392028091D605883F32
:1085600038F0EFEFF0E0E81BF109EE54FD4F8081A9
:10857000809391028091D705883F38F0EFEFF0E0CB
:10858000E81BF109EE54FD4F8081809390028091A9
:10859000D805883F38F0EFEFF0E0E81BF109EE5422
:1085A000FD4F808180938F028091F205883F38F0E3
:1085B000EFEFF0E0E81BF109EE54FD4F808180936E
:1085C0008E028091F305883F38F0EFEFF0E0E81B72
:1085D000F109EE54FD4F808180938D028091F40566
:1085E000883F38F0EFEFF0E0E81BF109EE54FD4F63
:1085F000808180938C028091F505883F38F0EFEF01
:10860000F0E0E81BF109EE54FD4F808180938B026E
:108610008091D905883F38F0EFEFF0E0E81BF109D1
:10862000EE54FD4F80818093C1018091DD05883F2C
:1086300038F0EFEFF0E0E81BF109EE54FD4F8081D8
:108640008093C0018091E705883F38F0EFEFF0E0BC
:10865000E81BF109EE54FD4F80818093BF018091AA
:10866000EA05883F38F0EFEFF0E0E81BF109EE543F
:10867000FD4F80818093BE018091EB05883F38F0EB
:10868000EFEFF0E0E81BF109EE54FD4F808180939D
:10869000BD018091EC05883F38F0EFEFF0E0E81B7A
:1086A000F109EE54FD4F80818093BC018091F1056A
:1086B000883F38F0EFEFF0E0E81BF109EE54FD4F92
:1086C00080818093BB0180910C06883F38F0EFEFEA
:1086D000F0E0E81BF109EE54FD4F80818093A40780
:1086E0008091C201282F33272F5F3F4F8CE398E200
:1086F000B9010E94FB767093D0016093CF01809105
:10870000C705809395078091C60580935C0790917B
:108710000E06933320F181E080938A02983F58F04F
:10872000EFEFF0E0E91BF109EE54FD4F8081823359
:1087300010F410928A028091E2079091E30797FF6C
:1087400008C080918A02882321F08091D503806837
:1087500003C08091D5038F778093D50302C0109218
:108760008A028091E2079091E30797FF1DC08091F4
:10877000A8028823C9F080918A028823A9F08091F9
:108780000801909109018F5F9F4F71F488E99AE386
:10879000909325028093240280E094EA909309014B
:1087A0008093080110928A0280918A02882339F00E
:1087B0008091BE01823D18F4825E8093BE01DF91FC
:1087C000CF910895A8E1B0E0E8EEF3E40C944B7784
:1087D0000E945639309102013C3010F4299A01C0B0
:1087E0002998E090A902F090AA02FA82E982809189
:1087F0005C0799270A96E816F90614F49A83898388
:108800008091B102843608F05CC080914A03909157
:108810004B03009731F0019790934B0380934A03E9
:1088200007C01092A80280917D028F7E80937D0206
:108830003A3011F0343110F0289A01C02898809114
:108840007E0290917F02895E9340C0F18091D105B4
:10885000282F33273A83298380917D02806180937A
:108860007D028091AD05A82FBB27AA0FBB1FFD017C
:10887000E55FF84F118210828091AE05282F3327D3
:10888000220F331FC901855F984FFC0111821082AE
:10889000A952B94F11961C921E922952394FD901F3
:1088A00011961C921E928091B005E82FFF27EE0FC3
:1088B000FF1FE952F94F11821082C9C21092A8021B
:1088C000C6C28091B1028D3808F4C1C280917D0288
:1088D0008F7E80937D029091D20582E3989FC001A4
:1088E000112490934B0380934A03E981FA81B9974D
:1088F0008CF08091A802882369F080917E0290918B
:108900007F02FFEF8F3F9F0729F0019690937F0230
:1089100080937E0280917E0290917F028F3F91052D
:1089200009F038F51092CD021092CE021092CF02CB
:108930001092D0021092C9021092CA021092CB0279
:108940001092CC0210923603109237031092380323
:10895000109239031092D5021092D6021092D702CB
:108960001092D8028A3F910549F481E08093500328
:1089700005C080917D02826080937D028091AF0569
:10898000E82FFF27EE0FFF1FE952F94F80819181F9
:10899000813591050CF441C12091A802222309F0F0
:1089A0003CC18091B005E82FFF27EE0FFF1FE95271
:1089B000F94F808191818C3491050CF406C180912E
:1089C0004C038F5F80934C03893C08F426C13C30F4
:1089D00010F4299801C0299A1092A80210924C0311
:1089E00010927F0210927E023091AD05E32FFF2797
:1089F000EE0FFF1FE952F94F808191818734910575
:108A0000B4F48091AE05E82FFF27EE0FFF1FE95267
:108A1000F94F808191810190F081E02DF7FF03C033
:108A2000F095E195FF4FE734F1050CF478C041E093
:108A30002091AE05A22FBB27AA0FBB1FA952B94F89
:108A40008D919C9111978734910544F0E32FFF2776
:108A5000EE0FFF1FE952F94F808191818D919C911A
:108A60008734910574F08091AD05E82FFF27EE0F54
:108A7000FF1FE952F94F80819181873491050CF0F5
:108A800042E0E22FFF27EE0FFF1FE952F94F8081EE
:108A900091818634910574F48091AD05E82FFF270C
:108AA000EE0FFF1FE952F94F8081918187349105C4
:108AB0000CF043E0E22FFF27EE0FFF1FE952F94FC2
:108AC000808191818A5B9F4F74F48091AD05E82F7E
:108AD000FF27EE0FFF1FE952F94F80819181873404
:108AE00091050CF044E0E22FFF27EE0FFF1FE95243
:108AF000F94F808191818A5B9F4F74F48091AD051D
:108B0000E82FFF27EE0FFF1FE952F94F8081918177
:108B1000863491050CF445E0842F0E940B2D809142
:108B2000AE05E82FFF27EE0FFF1FE952F94F8081B6
:108B300091810190F081E02DF7FF03C0F095E19560
:108B4000FF4F7E97BCF48091AD05E82FFF27EE0F15
:108B5000FF1FE952F94F808191818A5B9F4F54F446
:108B600081E08093F00388EE93E090932502809358
:108B7000240253C00E94052E0E94B82C80E00E945F
:108B800038078091D3050E94D5728091B90580FF86
:108B900010C08091140190911501875B934038F4C7
:108BA00080911401909115018E5E924010F40E9404
:108BB000BB1A1092220280E00E94A83681E08093C6
:108BC0004F0380932202579A1FC080819181855B59
:108BD0009F4F0CF580914C038F5F80934C03893C31
:108BE000E0F03C3010F4299801C0299A1092A802B4
:108BF00010924C0310927F0210927E0281E00E943C
:108C0000A83681E080934F030E94052E68E770E04C
:108C10000E94E63502C020934C038091AF05E82FF7
:108C2000FF27EE0FFF1FE952F94F808191818B5A88
:108C30009F4F0CF00CC13091A802E091B005332396
:108C400009F0DAC0FF27EE0FFF1FE952F94F8081CC
:108C50009181855B9F4F0CF0CCC020910F06E22FD5
:108C6000FF27EE0FFF1FE952F94F80819181855B4D
:108C70009F4F1CF0222309F0BCC080914D038F5FF1
:108C800080934D03893C08F4E2C030934D038091FA
:108C9000D503882309F0A6C080914F03882309F4E7
:108CA000A1C081E090E090937F0280937E0281E0FA
:108CB0008093A80210923603109237031092380363
:108CC000109239031092D5021092D6021092D70258
:108CD0001092D8021092D1021092D2021092D302B6
:108CE0001092D4028091C805E82EFF240027112796
:108CF00080919107909192079C01442737FD409500
:108D0000542FC801B7010E94BC76DC01CB018093CF
:108D1000E5029093E602A093E702B093E802809107
:108D2000A1079091A2079C01442737FD4095542F3D
:108D3000C801B7010E94BC76DC01CB018093DD0243
:108D40009093DE02A093DF02B093E00280910503CE
:108D500090910603A0910703B09108038093E1026C
:108D60009093E202A093E302B093E4028091FD02AB
:108D70009091FE02A091FF02B09100038093D9026E
:108D80009093DA02A093DB02B093DC021092CD0242
:108D90001092CE021092CF021092D0021092C9020D
:108DA0001092CA021092CB021092CC0280917D02E6
:108DB000886080937D0290910D068FE0989F9001CE
:108DC00011248091C3029091C402820F931F68E620
:108DD00071E00E94FB7697FD0196959587958093AB
:108DE000090335C08CED95E0909325028093240211
:108DF0002EC010924D032BC0FF27EE0FFF1FE9522C
:108E0000F94F808191818C349105FCF020910F06FF
:108E1000E22FFF27EE0FFF1FE952F94F808191816A
:108E2000855B9F4F14F0222381F480914E038F5F66
:108E300080934E03893C58F01092A80210924E0382
:108E400010927F0210927E0202C010924E03809117
:108E50009401815080939401809194018F3F21F07F
:108E600080917D0284FF72C30E9445418091590325
:108E700090915A039C01220F331F280F391FC09075
:108E8000AD05AC2DBB27AA0FBB1FFD01E952F94F61
:108E9000B090C3054B2D552780819181849FF001AF
:108EA000859FF00D949FF00D11242E0F3F1F37FF6B
:108EB00002C02D5F3F4FB901759567957595679510
:108EC000A55FB84F8091C405082F11278D919C9103
:108ED000809F7001819FF00C909FF00C11246E0D0B
:108EE0007F1D70935A036093590380915B039091A7
:108EF0005C039C01220F331F280F391FD090AE0551
:108F0000AD2DBB27AA0FBB1FFD01E952F94F808190
:108F10009181849FF001859FF00D949FF00D1124A5
:108F20002E0F3F1F37FF02C02D5F3F4FA901559500
:108F3000479555954795A55FB84F8D919C91809F1A
:108F40007001819FF00C909FF00C11244E0D5F1D5D
:108F500050935C0340935B0380918A02882309F459
:108F600048C0CB0177FD0396DC01B595A795B59573
:108F7000A795CA0157FD0396FC01F595E795F59570
:108F8000E7958091EA01682F772767FD70956A9FC2
:108F900090016B9F300D7A9F300D112480919103C9
:108FA000482F552747FD50954E9FC0014F9F900D6C
:108FB0005E9F900D1124280F391F37FF02C0295FD3
:108FC0003F4F03E0359527950A95E1F73093B002BE
:108FD0002093AF026E9F90016F9F300D7E9F300DEA
:108FE00011244A9FC0014B9F900D5A9F900D112450
:108FF0003FC080910D06E82FFF27E456FE4F868183
:109000008093EA01908190939103A82FBB27A7FD3D
:10901000B095A69F9001A79F300DB69F300D1124EB
:10902000E92FFF27E7FDF095E49FC001E59F900D34
:10903000F49F900D1124280F391F37FF02C0295FBC
:109040003F4F13E0359527951A95E1F73093B0021D
:109050002093AF02A49F9001A59F300DB49F300DC7
:109060001124E69FC001E79F900DF69F900D1124FB
:10907000281B390B37FF02C0295F3F4FF3E03595BE
:109080002795FA95E1F73093AE022093AD028091D7
:10909000B005E82FFF27EE0FFF1FE952F94F80813F
:1090A0009181909581959F4F9093AC028093AB02F4
:1090B0008330910514F0029705C00FEF8E3F9007A3
:1090C00034F402969093AC028093AB0204C01092E9
:1090D000AC021092AB0280918D0390918E0320918F
:1090E000890330918A03820F931F0091AF02109180
:1090F000B002081B190B1093B0020093AF028091CD
:109100008B0390918C032091870330918803820F09
:10911000931F8090AD029090AE02881A990A9092A7
:10912000AE028092AD028091AF05E82FFF27EE0FCF
:10913000FF1FE952F94FE080F18028E730E0E20EAE
:10914000F31EF092AA02E092A9028091C70199272A
:10915000AA2797FDA095BA2FBC01CD010E943076B9
:10916000DC01CB0120E030E040E251E4BC01CD0164
:109170000E949E75DC01CB01BC01CD010E940276EC
:10918000DC01CB0180939B078091C601809374071B
:109190008091C5019927AA2797FDA095BA2FBC01F8
:1091A000CD010E943076DC01CB0120E030E040E2CE
:1091B00051E4BC01CD010E949E75DC01CB01BC01D4
:1091C000CD010E940276DC01CB0180934F07809194
:1091D000C401809364078091FC0380FF59C0809193
:1091E000A407813808F454C08091F503992787FDBE
:1091F00090952B2D3327829FA001839F500D929F26
:10920000500D1124040F151F1093B0020093AF02EC
:109210008091F603992787FD9095829FB001839FE7
:10922000700D929F700D1124860E971E9092AE02C3
:109230008092AD028091F703282F332727FD3095C8
:109240008091AB029091AC02820F931F9093AC027D
:109250008093AB028091F903282F332727FD3095A7
:109260008091BE059927289FD001299FB00D389F76
:10927000B00D1124B0939B01A0939A018091F80343
:1092800099278E159F0524F49093AA028093A90232
:109290008091A9029091AA0297FF04C01092AA029D
:1092A0001092A9028091B90582FF02C01092740742
:1092B0004091AF025091B002CA0157FD03969C0144
:1092C000359527953595279537FF03C0309521951E
:1092D0003F4F809182029091830282179307B4F4EA
:1092E000CA0157FF03C0909581959F4F97FD039644
:1092F00095958795959587959093830280938202A3
:109300008536910544F084E690E001C00197909382
:109310008302809382024091AD025091AE02CA0155
:1093200057FD03969C01359527953595279537FF71
:1093300003C0309521953F4F80918002909181022A
:1093400082179307B4F4CA0157FF03C09095819523
:109350009F4F97FD03969595879595958795909343
:109360008102809380028536910544F084E690E086
:1093700001C00197909381028093800280917D02C9
:1093800084FF08C010928302109282021092810220
:1093900010928002ED2DFF27EE0FFF1FE952F94FCB
:1093A0004091E805242F33278081918128173907C0
:1093B00044F48091100682FF04C081E080939602FD
:1093C00013C0ED2DFF27EE0FFF1FE952F94F842F39
:1093D00099272091E905821B910920813181281765
:1093E000390714F4109296024091AE05E42FFF273E
:1093F000EE0FFF1FE952F94F5091E805852F99278D
:1094000022273327281B390B8081918182179307EC
:1094100044F48091100683FF04C081E0809395029C
:1094200016C080919502882391F0E42FFF27EE0F5C
:10943000FF1FE952F94F8091E9059927851B910992
:10944000208131818217930714F410929502EC2D3C
:10945000FF27EE0FFF1FE952F94F4091E805242F37
:109460003327808191812817390744F480911006B1
:1094700080FF04C081E08093930217C08091930223
:10948000882399F0EC2DFF27EE0FFF1FE952F94FCB
:10949000842F99272091E905821B91092081318130
:1094A0002817390714F4109293024091AD05E42F68
:1094B000FF27EE0FFF1FE952F94F5091E805852F66
:1094C000992722273327281B390B80819181821706
:1094D000930744F48091100681FF04C081E08093DB
:1094E000940216C080919402882391F0E42FFF2704
:1094F000EE0FFF1FE952F94F8091E9059927851B6F
:109500009109208131818217930714F410929402FB
:1095100080919602882319F480919502811181E04F
:109520008093970280919302882321F48091940282
:10953000882351F081E08093980210929702109254
:1095400096021092950202C0809398028091970231
:10955000882321F480919802882369F08091E7059F
:109560009927E981FA818E179F0714F49A838983DA
:1095700081E08093BD0280917D0284FF1AC0109229
:10958000AC021092AB021092B0021092AF02109295
:10959000AE021092AD029AE590939B0788E7809304
:1095A000740790934F07809364071092970210926C
:1095B00098028091670790916807A0916907B09120
:1095C0006A072091050330910603409107035091EB
:1095D0000803820F931FA41FB51F80936707909302
:1095E0006807A0936907B0936A0780916F0790910D
:1095F0007007A0917107B09172072090FD02309022
:10960000FE024090FF0250900003820D931DA41DA6
:10961000B51D80936F0790937007A0937107B09367
:10962000720780915E0790915F07A0916007B091EB
:109630006107E0900103F090020300910303109191
:109640000403EB82FC820D831E838E0D9F1DA01FE1
:10965000B11F80935E0790935F07A0936007B0935C
:1096600061078091500790915107A0915207B091E6
:109670005307E090F902F090FA020091FB0210917A
:10968000FC02EF82F88609871A878E0D9F1DA01FA6
:10969000B11F8093500790935107A0935207B09346
:1096A0005307F0909802FB86FF2029F480919702DF
:1096B000882309F460C01092F5021092F60210920D
:1096C000F7021092F8021092F1021092F202109238
:1096D000F3021092F402109267071092680710923A
:1096E000690710926A0710926F0710927007109224
:1096F00071071092720710925E0710925F07109226
:109700006007109261071092500710925107109253
:109710005207109253078091E5029091E602A091C2
:10972000E702B091E8028093E1029093E202A093F5
:10973000E302B093E4028091DD029091DE02A091F9
:10974000DF02B091E0028093D9029093DA02A093F5
:10975000DB02B093DC0210923402109233021092BA
:109760009C0210929B0210929E0210929D020B8509
:10977000002309F0F2C180919702882309F0EDC11E
:1097800080919E0590919F05815092402CF480918C
:10979000A802882309F4E1C190900F08A090C805A1
:1097A0006091910770919207788F6F8B8091A107DC
:1097B0009091A2079A8B898B9FEF991609F4D9C0D3
:1097C000BB24CC24DD24CA01B901A60195010E9465
:1097D000307779018A01EF89F88DCF01AA2797FDAB
:1097E000A095BA2FE81AF90A0A0B1B0BC201B101A6
:1097F000A60195010E94307759016A0129893A89A9
:10980000C901AA2797FDA095BA2FA81AB90ACA0AB2
:10981000DB0A292C332427FC3094432C532CC80119
:10982000B701A20191010E94BC7697FF04C061506C
:109830007E4F8F4F9F4F3B014C0109E095948794D9
:10984000779467940A95D1F7C601B501A2019101F9
:109850000E94BC7697FF04C061507E4F8F4F9F4F90
:109860005B016C0119E0D594C794B794A7941A953D
:10987000D1F78091820290918302813491053CF46A
:10988000809180029091810281349105D4F0D401BD
:10989000C30197FE03C00196A11DB11D3C014D01FE
:1098A0009594879477946794D601C501D7FE03C039
:1098B0000196A11DB11D5C016D01D594C794B794AB
:1098C000A7948091B005E82FFF27EE0FFF1FE95204
:1098D000F94F808191810190F081E02DF7FF03C065
:1098E000F095E195FF4F7A97A4F0C401B30123E00E
:1098F00030E040E050E00E94307739014A01C60173
:10990000B50123E030E040E050E00E94307759019B
:109910006A0180911108282F332727FD3095432FA6
:10992000532F261537054805590514F439014A0106
:10993000992787FD9095909581959F4FAA2797FD30
:10994000A095BA2F681679068A069B0614F43C0186
:109950004D012A153B054C055D0514F459016A01BA
:10996000A816B906CA06DB060CF0CFC05C016D0173
:10997000CCC0EA2CFF2400271127CA01B901A80195
:1099800097010E94307739014A014F89588DCA01E9
:10999000AA2797FDA095BA2F681A790A8A0A9B0A06
:1099A000C201B101A80197010E94307759016A01F3
:1099B00069897A89CB01AA2797FDA095BA2FA81AA1
:1099C000B90ACA0ADB0AD401C30197FE03C00F9685
:1099D000A11DB11D3C014D01F4E09594879477944D
:1099E0006794FA95D1F7D601C501D7FE03C00F964B
:1099F000A11DB11D5C016D01E4E0D594C794B7943D
:109A0000A794EA95D1F780918202909183028134E4
:109A100091053CF4809180029091810281349105FE
:109A2000A4F0C401B30123E030E040E050E00E9424
:109A3000307739014A01C601B50123E030E040E04A
:109A400050E00E94307759016A018091B005E82FFB
:109A5000FF27EE0FFF1FE952F94F8081918101909E
:109A6000F081E02DF7FF03C0F095E195FF4F7A9765
:109A7000A4F0C401B30123E030E040E050E00E94D4
:109A8000307739014A01C601B50123E030E040E0FA
:109A900050E00E94307759016A0171E26716710443
:109AA000810491042CF070E2672E712C812C912C92
:109AB00080EE68168FEF78068FEF88068FEF980696
:109AC00044F460EE662E6FEF762E6FEF862E6FEF0A
:109AD000962E91E2A916B104C104D1042CF050E2F3
:109AE000A52EB12CC12CD12CA0EEAA16AFEFBA0630
:109AF000AFEFCA06AFEFDA0644F440EEA42E4FEF04
:109B0000B42E4FEFC42E4FEFD42E8091E5029091EA
:109B1000E602A091E702B091E80286199709A80928
:109B2000B9098093E5029093E602A093E702B0930F
:109B3000E8028091DD029091DE02A091DF02B091F7
:109B4000E0028A199B09AC09BD098093DD0290935C
:109B5000DE02A093DF02B093E00280913302909185
:109B600034028F3F910509F008F4C4C5BB85BB23BF
:109B700009F04EC580919702882309F049C580916C
:109B8000BD02882309F044C5E091F005EC87EE237F
:109B900009F43EC58091670790916807A091690715
:109BA000B0916A07B7FF04C081509F4FAF4FBF4FBE
:109BB000E92EFA2E0B2F112707FD1A95E092670761
:109BC000F09268070093690710936A0780916F0706
:109BD00090917007A0917107B0917207B7FF04C010
:109BE00081509F4FAF4FBF4F892F9A2FAB2FBB276D
:109BF000A7FDBA958D879E87AF87B88B80936F0737
:109C000090937007A0937107B09372078091C80575
:109C1000A82EBB24CC24DD242091F5023091F6023D
:109C20004091F7025091F802C601B5010E94BC763E
:109C300097FF04C061507F4F8F4F9F4F672E782E44
:109C4000892E992487FC9A946092F5027092F6020C
:109C50008092F7029092F8022091F1023091F20284
:109C60004091F3025091F402C601B5010E94BC7606
:109C700097FF04C061507F4F8F4F9F4F272E382E84
:109C8000492E552447FC5A942092F1023092F20258
:109C90004092F3025092F4028091ED029091EE0214
:109CA000A091EF02B091F002B7FF04C081509F4F26
:109CB000AF4FBF4F892F9A2FAB2FBB27A7FDBA9568
:109CC0008093ED029093EE02A093EF02B093F00226
:109CD000D801C70186199709A809B90980934203D9
:109CE00090934303A0934403B09345032091EF0561
:109CF000E22EFF2400271127BC01CD01A801970106
:109D00000E94307759016A01209351033093520326
:109D100040935303509354038D859E85AF85B88936
:109D200082199309A409B5098093460390934703C8
:109D3000A0934803B0934903BC01CD01A80197014A
:109D40000E94307720935503309356034093570376
:109D500050935803D601C501D7FE04C081509F4FD0
:109D6000AF4FBF4F892F9A2FAB2FBB27A7FDBA95B7
:109D700090939C0280939B0257FF04C021503F4F59
:109D80004F4F5F4FBB2757FDBA95A52F942F832FB9
:109D900090939E0280939D02809182029091830213
:109DA00081349105DCF480918002909181028134AC
:109DB0009105A4F48091B005E82FFF27EE0FFF1F57
:109DC000E952F94F808191810190F081E02DF7FFF8
:109DD00003C0F095E195FF4F7A97E4F080910F086A
:109DE0008F3FC1F480919B0290919C0297FD019658
:109DF0009595879590939C0280939B0280919D02FC
:109E000090919E0297FD01969595879590939E025D
:109E100080939D0280915E0790915F07A0916007FB
:109E2000B0916107B7FF04C081509F4FAF4FBF4F44
:109E3000892F9A2FAB2FBB27A7FDBA9580935E077A
:109E400090935F07A0936007B093610780915007DC
:109E500090915107A0915207B0915307B7FF04C0EA
:109E600081509F4FAF4FBF4F892F9A2FAB2FBB27EA
:109E7000A7FDBA958093500790935107A09352077E
:109E8000B09353078091050390910603A0910703B7
:109E9000B09108032B813C814D815E81281B390BD9
:109EA0004A0B5B0B20933A0330933B0340933C03F4
:109EB00050933D038091FD029091FE02A091FF021C
:109EC000B0910003EF80F88409851A85E81AF90A31
:109ED0000A0B1B0BE0923E03F0923F0300934003FA
:109EE0001093410320934203309343034093440370
:109EF00050934503E0924603F092470300934803D2
:109F0000109349038091E1029091E202A091E30253
:109F1000B091E402821B930BA40BB50B8093E1027A
:109F20009093E202A093E302B093E4028091D902FD
:109F30009091DA02A091DB02B091DC028E199F09A8
:109F4000A00BB10B8093D9029093DA02A093DB02AD
:109F5000B093DC02FC85FF23E1F02091BB0230913D
:109F6000BC02213831054CF0809116039091170303
:109F70000196909317038093160320583F4F4CF49B
:109F80008091160390911703019790931703809384
:109F900016031092BC021092BB0281E090E09093F5
:109FA0005E0380935D03E0904203F09043030091D1
:109FB000440310914503D801C70117FF07C0882744
:109FC0009927DC018E199F09A00BB10B815092409B
:109FD000A040B04034F084E090E090935E03809322
:109FE0005D038091630390916403A0916503B09138
:109FF0006603209167073091680740916907509187
:10A000006A07821B930BA40BB50B815E914BAF4F7C
:10A01000BF4F8F539C49A040B04028F0809110085A
:10A0200089310CF4FFC041E0E41640E1F40640E061
:10A03000040740E014070CF473C080915F03882389
:10A0400009F46AC0D801C70117FF07C088279927FC
:10A05000DC018E199F09A00BB10B9C01AD01B7FF6C
:10A0600004C021503E4F4F4F5F4FF9E05595479543
:10A0700037952795FA95D1F780915D0390915E030E
:10A08000820F931F90935E0380935D03D801C701F5
:10A0900017FF03C00796A11DB11DE3E0B595A79575
:10A0A00097958795EA95D1F7809351039093520342
:10A0B000A0935303B093540389589341A040B040F8
:10A0C00064F088E893E1A0E0B0E0809351039093BE
:10A0D0005203A0935303B093540320915103309142
:10A0E0005203409153035091540357FF04C0215031
:10A0F0003F4F4F4F5F4F232F342F452F552747FD9D
:10A100005A9580919B0290919C02820F931F90938D
:10A110009C0280939B0206C081E080935F0302C093
:10A1200010925F0360E0E61660EFF6066FEF060739
:10A130006FEF16070CF073C080916003882309F459
:10A140006AC0D801C70117FF07C088279927DC011B
:10A150008E199F09A00BB10B9C01AD01B7FF04C084
:10A1600021503E4F4F4F5F4F69E0559547953795CA
:10A1700027956A95D1F780915D0390915E03820FD8
:10A18000931F90935E0380935D03D801C70117FF6F
:10A1900003C00796A11DB11D23E0B595A79597951E
:10A1A00087952A95D1F78093510390935203A093FA
:10A1B0005303B093540388579C4EAF4FBF4F64F482
:10A1C00088E79CEEAFEFBFEF80935103909352036B
:10A1D000A0935303B0935403209151033091520341
:10A1E000409153035091540357FF04C021503F4FF7
:10A1F0004F4F5F4F232F342F452F552747FD5A953B
:10A2000080919B0290919C02820F931F90939C02DD
:10A2100080939B0211C081E0809360030DC0109277
:10A2200060030AC010925E0310925D0388EE93E013
:10A230009093DA018093D9018C85282F3327809160
:10A240005D0390915E032817390724F430935E0371
:10A2500020935D0310911008112379F0212F3327EB
:10A2600027FD309580915D0390915E032817390793
:10A2700024F430935E0320935D0340914203509198
:10A2800043036091440370914503413851056105D2
:10A29000710574F080911A0390911B0320915D0366
:10A2A00030915E03820F931F90931B0380931A03D8
:10A2B00040585F4F6F4F7F4F74F480911A03909115
:10A2C0001B0320915D0330915E03821B930B9093DF
:10A2D0001B0380931A0381E090E090935E038093C8
:10A2E0005D03C0904603D0904703E0904803F09090
:10A2F0004903D701C601F7FE07C088279927DC016B
:10A300008C199D09AE09BF0981509240A040B04010
:10A3100034F084E090E090935E0380935D0380913D
:10A32000670390916803A0916903B0916A0320913B
:10A330006F07309170074091710750917207821B2F
:10A34000930BA40BB50B815E914BAF4FBF4F8F5357
:10A350009C49A040B04018F019310CF4FFC001E056
:10A36000C01600E1D00600E0E00600E0F0060CF4C4
:10A3700073C080916103882309F46AC0D701C601C4
:10A38000F7FE07C088279927DC018C199D09AE09C3
:10A39000BF099C01AD01B7FF04C021503E4F4F4F94
:10A3A0005F4F09E055954795379527950A95D1F761
:10A3B00080915D0390915E03820F931F90935E03E3
:10A3C00080935D03D701C601F7FE03C00796A11D68
:10A3D000B11D13E0B595A795979587951A95D1F777
:10A3E0008093550390935603A0935703B09358035B
:10A3F00089589341A040B04064F088E893E1A0E020
:10A40000B0E08093550390935603A0935703B09305
:10A4100058032091550330915603409157035091B2
:10A42000580357FF04C021503F4F4F4F5F4F232F1A
:10A43000342F452F552747FD5A9580919D029091C5
:10A440009E02820F931F90939E0280939D0206C0EE
:10A4500081E08093610302C01092610320E0C21684
:10A4600020EFD2062FEFE2062FEFF2060CF073C0BA
:10A4700080916203882309F46AC0D701C601F7FE00
:10A4800007C088279927DC018C199D09AE09BF09EF
:10A490009C01AD01B7FF04C021503E4F4F4F5F4FAD
:10A4A000E9E05595479537952795EA95D1F780913D
:10A4B0005D0390915E03820F931F90935E038093E0
:10A4C0005D03D701C601F7FE03C00796A11DB11DAC
:10A4D00073E0B595A795979587957A95D1F7809371
:10A4E000550390935603A0935703B093580388578E
:10A4F0009C4EAF4FBF4F64F488E79CEEAFEFBFEFC9
:10A500008093550390935603A0935703B093580339
:10A5100020915503309156034091570350915803B1
:10A5200057FF04C021503F4F4F4F5F4F232F342F11
:10A53000452F552747FD5A9580919D0290919E0287
:10A54000820F931F90939E0280939D0211C081E021
:10A55000809362030DC0109262030AC010925E03E2
:10A5600010925D0388EE93E09093DA018093D90115
:10A570004C85242F332780915D0390915E0328172B
:10A58000390724F430935E0320935D038091100813
:10A59000882379F0282F332727FD309580915D039C
:10A5A00090915E032817390724F430935E032093BB
:10A5B0005D034091460350914703609148037091B9
:10A5C0004903413851056105710574F08091180304
:10A5D0009091190320915D0330915E03820F931FC8
:10A5E000909319038093180340585F4F6F4F7F4F2C
:10A5F000CCF4809118039091190320915D03309160
:10A600005E03821B930B90931903809318030AC077
:10A6100010929E0210929D0210929C0210929B0238
:10A620001092BD0280917407882341F410929E021B
:10A6300010929D0210929C0210929B0280916707DB
:10A6400090916807A0916907B0916A0780936303AE
:10A6500090936403A0936503B093660380916F07A2
:10A6600090917007A0917107B09172078093670372
:10A6700090936803A0936903B0936A031092F50264
:10A680001092F6021092F7021092F8021092F10264
:10A690001092F2021092F3021092F4021092ED0264
:10A6A0001092EE021092EF021092F00210926707E1
:10A6B000109268071092690710926A0710926F074C
:10A6C00010927007109271071092720710925E0735
:10A6D00010925F0710926007109261071092500766
:10A6E00010925107109252071092530710923402A1
:10A6F00010923302E090AB02F090AC02C701F7FE7B
:10A7000004C0882799278E199F0940976CF088EE1E
:10A7100093E09093DA018093D9018091B90584FD8B
:10A7200003C081E0809350031091C505A12EBB2486
:10A73000CC24DD24B701882777FD8095982F9701D9
:10A74000F7FE04C0222733272E193F09442737FD7F
:10A750004095542F0E94BC769B01AC01C601B50107
:10A760000E94BC7697FF04C061507E4F8F4F9F4F71
:10A7700059E095958795779567955A95D1F79B01FF
:10A78000812F99278E9DD0018F9DB00D9E9DB00D7C
:10A790001124CD01B7FD03969595879595958795DD
:10A7A000280F391F442737FD4095542F2093360337
:10A7B0003093370340933803509339038091D50287
:10A7C0009091D602A091D702B091D802821B930B30
:10A7D000A40BB50B8093D5029093D602A093D70219
:10A7E000B093D8028155934CA040B04064F080E50E
:10A7F00093ECA0E0B0E08093D5029093D602A093B2
:10A80000D702B093D8028091D5029091D602A09140
:10A81000D702B091D802805B9C43AF4FBF4F64F426
:10A8200080EB9CE3AFEFBFEF8093D5029093D6020D
:10A83000A093D702B093D8024090C3025090C402B4
:10A840004114510409F478C18091B90583FF74C1A2
:10A850008091050390910603A0910703B09108032E
:10A86000B7FF04C081509E4FAF4FBF4F39E0B59541
:10A87000A795979587953A95D1F76C0197FF04C0F6
:10A88000D094C194D108D3948091FD029091FE029E
:10A89000A091FF02B0910003B7FF04C081509E4F0A
:10A8A000AF4FBF4F29E0B595A795979587952A9506
:10A8B000D1F7BC0197FF03C0709561957F4FC61615
:10A8C000D7060CF46B01B601D7FE02C0695F7F4F5B
:10A8D0003B0183E0759467948A95E1F702E0E02EEE
:10A8E000F12C6E0C7F1C0CE112E0400E511E720127
:10A8F0000027F7FC0095102F24EE3DEF420E531E6B
:10A9000080919D0790919E07A0919F07B091A0070D
:10A910008090960190909701A0909801B090990135
:10A92000BC01CD01A50194010E943077E21AF30A1F
:10A93000040B150BC801B70128E631E040E050E0F8
:10A940000E943077DC01CB011CE4E12E1FEFF12ED9
:10A95000E80EF91E0091D9011091DA0101151105D7
:10A9600089F539E1C316D1046CF58091BB02909151
:10A97000BC028E0D9F1D9093BC028093BB02809100
:10A9800050038823F9F0C201AA2797FDA095BA2F9A
:10A99000BC01CD01A50194010E94BC76DC01CB0174
:10A9A00080939D0790939E07A0939F07B093A00765
:10A9B000BC01CD010E9430773093C2022093C102C6
:10A9C00010925003C701B4E0880F991FBA95E1F7C0
:10A9D000B3010E94FB76CB01AA2797FDA095BA2F61
:10A9E00020919D0730919E0740919F075091A007AD
:10A9F000280F391F4A1F5B1F20939D0730939E0726
:10AA000040939F075093A007F090CA016F2D7727BE
:10AA1000C69EC001C79E900DD69E900D112497FD35
:10AA20004F966C01A5E0D594C794AA95E1F76C19EF
:10AA30007D096B0177FD7AC00115110509F06FC022
:10AA40000091820210918302809180029091810294
:10AA5000080F191F17FF02C0095F1F4FF3E015957C
:10AA60000795FA95E1F7005C1F4FCA01B901A501EE
:10AA700094010E943077DA01C9012091C10230911E
:10AA8000C202442737FD4095542F821B930BA40B21
:10AA9000B50B845E9D4FAF4FBF4FBC01CD0128E683
:10AAA00031E040E050E00E943077DC01CB01845B74
:10AAB00090408C9DA0018D9D500D9C9D500D1124AA
:10AAC000CA01B8010E94FB7683E0F89E6001112460
:10AAD000C616D70614F4B60108C0882799278C1922
:10AAE0009D09681779070CF4BC019B01442737FDC9
:10AAF0004095542F8091D5029091D602A091D70213
:10AB0000B091D802820F931FA41FB51F8093D50266
:10AB10009093D602A093D702B093D8020DC00150F3
:10AB200010401093DA010093D90106C084EF91E040
:10AB30009093DA018093D9018091BD02882381F03E
:10AB40001092C9021092CA021092CB021092CC024B
:10AB50001092CD021092CE021092CF021092D0022B
:10AB6000F0909802FF20F1F480917407282F33278A
:10AB7000442755278091050390910603A091070370
:10AB8000B0910803BC01CD010E94BC76DC01CB0171
:10AB9000BC01CD0128EF3AE240E050E00E9430775E
:10ABA000390102C066247724E0909702EE20F1F488
:10ABB00080917407282F3327442755278091FD0261
:10ABC0009091FE02A091FF02B0910003BC01CD0163
:10ABD0000E94BC76DC01CB01BC01CD0128EF3AE23A
:10ABE00040E050E00E943077290102C044245524FF
:10ABF00080914A0790914B07893C91051CF088ECA5
:10AC000090E005C088539F4F34F488E39FEF909302
:10AC10004B0780934A078091550790915607893CCE
:10AC200091051CF088EC90E005C088539F4F34F4E8
:10AC300088E39FEF909356078093550780915707BD
:10AC400090915807AA2797FDA095BA2F20919B07AE
:10AC5000A22EBB24CC24DD24BC01CD01A60195018C
:10AC60000E94BC769B01AC0180914A0790914B07F2
:10AC7000AA2797FDA095BA2FE7E0880F991FAA1F72
:10AC8000BB1FEA95D1F7280F391F4A1F5B1F57FFDB
:10AC900004C0215C3F4F4F4F5F4F76E0559547957D
:10ACA000379527957A95D1F78301020F131F1093DB
:10ACB0005807009357078091480790914907AA27A2
:10ACC00097FDA095BA2FBC01CD01A60195010E9468
:10ACD000BC769B01AC018091550790915607AA273D
:10ACE00097FDA095BA2F67E0880F991FAA1FBB1F79
:10ACF0006A95D1F7280F391F4A1F5B1F57FF04C001
:10AD0000215C3F4F4F4F5F4F96E0559547953795E4
:10AD100027959A95D1F74201820E931E909249078A
:10AD2000809248078091960790919707880F991F06
:10AD3000AA2797FDA095BA2F20914F0733274427C4
:10AD40005527BC01CD010E94BC765B016C0197FFC9
:10AD500008C08FE390E0A0E0B0E0A80EB91ECA1EC4
:10AD6000DB1E86E0D594C794B794A7948A95D1F753
:10AD700080916407282F3327442755278091E902C3
:10AD80009091EA02A091EB02B091EC02BC01CD01DE
:10AD90000E94BC76DC01CB01BC01CD0120EF35E582
:10ADA00040E050E00E943077B501620F731F70934E
:10ADB0009707609396070150104134F080E090E1CE
:10ADC00090935807809357078091570790915807A1
:10ADD0008050904F34F480E090EF90935807809328
:10ADE0005707B1E08B16B0E19B0634F080E090E1AC
:10ADF00090934907809348078091480790914907AD
:10AE00008050904F34F480E090EF90934907809306
:10AE100048076150704134F080E090E190939707CB
:10AE20008093960780919607909197078050904F56
:10AE300034F480E090EF9093970780939607809189
:10AE40000001482F552780911E0190911F0148173E
:10AE5000590794F420911E0130911F0169817A8174
:10AE6000649FC001659F900D749F900D1124B901DE
:10AE70000E94E7767A83698389819A81880F991F76
:10AE8000880F991F9A8389834091B90540FFBDC6F9
:10AE9000EE2009F0BAC6FF2009F0B7C6AA24BB24E9
:10AEA00045018091990290919A0290938205809336
:10AEB000810520911C0330911D032115310509F0F6
:10AEC0003FC080911401909115018959934058F029
:10AED00087B5853F20F480913702815011C081E011
:10AEE000809376034EC080911401909115018436B1
:10AEF000910508F587B58B30D0F0809137028F5FD0
:10AF0000809337029AE08902900111248091A8056C
:10AF1000821B87BD8CE291E09093250280932402EE
:10AF20008EE591E090931D0380931C032AC081E07D
:10AF30008093750326C0F0927503F092760321C0CA
:10AF40008091A3029091A402A091A502B091A602C3
:10AF500014E0880F991FAA1FBB1F1A95D1F7809381
:10AF6000380290933902A0933A02B0933B02B09218
:10AF70003602A09235022150304030931D032093B9
:10AF80001C032091CD0141FF24C02233D8F48091CD
:10AF9000DF0181508093DF018F3FD9F51092BE020F
:10AFA0008091A3029091A402A091A502B091A60263
:10AFB00080939F029093A002A093A102B093A2025B
:10AFC00081E004C081E08093BE0288EC8093DF01C1
:10AFD00020C080919A0190919B01820F911D209138
:10AFE000BE053327829FF001839FF00D929FF00DE5
:10AFF0001124CF01AA2797FDA095BA2F80939F0215
:10B000009093A002A093A102B093A20281E080934A
:10B01000BE028091050390910603A0910703B091B1
:10B020000803E0909601F09097010091980110912B
:10B030009901BC01CD01A80197010E943077590107
:10B040006A018091FD029091FE02A091FF02B091F1
:10B050000003BC01CD01A80197010E943077B9011E
:10B06000C5010E94E5748C01CC9714F00CE310E04C
:10B07000C8010E9406698C0180E28093950180914D
:10B08000BE02882309F447C480917D0299279C0160
:10B090002071307084FD3FC46091120660FD04C0D1
:10B0A0008091B90581FD0CC0C980DA8030936C03B2
:10B0B00020936B0380917D02806C80937D0299C107
:10B0C00080917D0281FF6BC14091DB015091DC01D9
:10B0D000CA010F962091A9023091AA028217930704
:10B0E000BCF580917503882399F580917D0287FFD7
:10B0F00015C080917D028F7780937D028091A3029D
:10B100009091A402A091A502B091A60280939F0203
:10B110009093A002A093A102B093A20280917D021D
:10B12000806480937D02241B350B2F50304037FF05
:10B1300003C0309521953F4F80916B0390916C0334
:10B14000820F931F90936C0380936B038BE26EC00E
:10B15000CA010F9728173907BCF580917603882319
:10B1600099F580917D0286FF15C080917D028F7BCD
:10B1700080937D028091A3029091A402A091A502E8
:10B18000B091A60280939F029093A002A093A10287
:10B19000B093A20280917D02806880937D02241B7F
:10B1A000350B215F3F4F37FF03C0309521953F4F4F
:10B1B00080916B0390916C03821B930B90936C03B3
:10B1C00080936B038DE232C080917D02807C69F1B7
:10B1D00080917D028F7380937D0210926C03109298
:10B1E0006B032091A3023091A4024091A5025091DB
:10B1F000A60220939F023093A0024093A102509395
:10B20000A20261FF06C084EF91E090932502809333
:10B2100024028091A702882341F42333310541059C
:10B2200051051CF081E08093A7028DE38093950186
:10B2300020916B0330916C03C90137FF04C088274C
:10B240009927821B930B815092400CF491C08091FE
:10B25000BE059927289F7001299FF00C389FF00C9C
:10B260001124C70160E075E00E94FB76CB01AA279C
:10B2700097FDA095BA2F20919F023091A002409196
:10B28000A1025091A202280F391F4A1F5B1F209371
:10B290009F023093A0024093A1025093A202109209
:10B2A0006C0310926B03C090A302D090A402E090B4
:10B2B000A502F090A602D701C60180509440A0409C
:10B2C000B04082179307A407B5075CF4D701C60105
:10B2D00080509C4FAF4FBF4F281739074A075B0775
:10B2E00044F080939F029093A002A093A102B09398
:10B2F000A2028091120681FF06C084E690E090933E
:10B300002502809324028091C205882389F540910B
:10B31000990250919A0257FF02C04D5F5F4F5595B9
:10B3200047955595479580911E0190911F01209159
:10B3300000013327489FB001499F700D589F700D41
:10B340001124CB01B9010E94FB767093DC0160935C
:10B35000DB01663471051CF486E490E005C06739B2
:10B36000710534F086E990E09093DC018093DB0175
:10B3700080911C0390911D03892BB9F18091A30248
:10B380009091A402A091A502B091A60280939F0281
:10B390009093A002A093A102B093A20226C0809134
:10B3A000A3029091A402A091A502B091A602805997
:10B3B0009140A040B04080939F029093A002A09340
:10B3C000A102B093A2028091C205882311F09927AF
:10B3D00002C088E790E09093DC018093DB018981D3
:10B3E0009A8190939A0280939902C0909902D0908A
:10B3F0009A022091A3023091A4024091A50250919B
:10B40000A6022B8B3C8B4D8B5E8B20919F02309143
:10B41000A0024091A1025091A2026B897C898D8982
:10B420009E89261737074807590724F0809112068E
:10B4300080FDB8C280911C0390911D03892B39F0C7
:10B44000C0909902D0909A02AA24BB24D9C08B89BB
:10B450009C89AD89BE89821B930BA40BB50B80938D
:10B460003A0390933B03A0933C03B0933D03823097
:10B4700070E897077FEFA7077FEFB7072CF481E00D
:10B4800090E8AFEFBFEF09C08F5F9F47A040B0408B
:10B4900064F08FEF9FE7A0E0B0E080933A039093D1
:10B4A0003B03A0933C03B0933D03A0903A03B090BC
:10B4B0003B038091CC01282F3327442755278091C7
:10B4C0003A0390913B03A0913C03B0913D03BC0132
:10B4D000CD010E94BC7697FF04C0615E7F4F8F4F05
:10B4E0009F4FA5E09595879577956795AA95D1F794
:10B4F00060933A0370933B0380933C0390933D0326
:10B500006530FEEF7F07FFEF8F07FFEF9F072CF4FB
:10B5100084E09EEFAFEFBFEF09C060507440804001
:10B52000904064F080E094E0A0E0B0E080933A03C3
:10B5300090933B03A0933C03B0933D0380903A0368
:10B5400090903B03209135023091360237FF02C0C4
:10B55000295F3F4FF3E035952795FA95E1F74FEFD7
:10B56000223834071CF421E83FEF05C020383105AC
:10B5700014F020E830E0C901AA2797FDA095BA2F62
:10B580002091CE01332744275527BC01CD010E94CD
:10B59000BC7697FF04C06D5F7F4F8F4F9F4FE2E0F7
:10B5A0009595879577956795EA95D1F79B015FEF1C
:10B5B000613075071CF420E03FEF06C06F3F710556
:10B5C00019F014F020E031E080917D02807C49F098
:10B5D000C90137FD03969C0135952795359527952B
:10B5E0000DC08091120680FF09C0C90137FD079682
:10B5F0009C0143E0359527954A95E1F7820E931E0D
:10B600002091CB01222309F454C06091C5027091AE
:10B61000C6028091C7029091C80297FF04C061588A
:10B620007F4F8F4F9F4F37E095958795779567951B
:10B630003A95D1F73327442755270E94BC7697FFC8
:10B6400004C0615E7F4F8F4F9F4FB5E09595879502
:10B6500077956795BA95D1F760933A0370933B035A
:10B6600080933C0390933D036138AFEF7A07AFEFCF
:10B670008A07AFEF9A072CF480E89FEFAFEFBFEF98
:10B680000AC06F3F71058105910569F064F080E0A3
:10B6900091E0A0E0B0E080933A0390933B03A09345
:10B6A0003C03B0933D0380913A0390913B03880E95
:10B6B000991E8091C901282F33278091130899275B
:10B6C00087FD9095289FF001299FF00D389FF00D80
:10B6D00011249F01F7FF02C021583F4F220F232F53
:10B6E000221F330BFFEF21383F071CF420E83FEF08
:10B6F00006C02F3F310519F014F020E031E0820E32
:10B70000931EC401AA2797FDA095BA2FE090990235
:10B71000F0909A029701442737FD4095542FBC01C1
:10B72000CD010E94BC7697FF04C061507E4F8F4FC1
:10B730009F4FF9E09595879577956795FA95D1F79D
:10B74000C61AD70A80916B0390916C03892B09F07C
:10B7500060C01E141F040CF05CC09501B7FE03C04E
:10B76000309521953F4F2D33310540F480916F0383
:10B77000909170038C159D0574F526C02C533040B4
:10B78000E5E036952795EA95E1F72031310510F08F
:10B790002FE030E040916F03509170031A141B04A6
:10B7A000E4F480E190E0821B930B489F9001499F55
:10B7B000300D589F300D112474E0369527957A95F9
:10B7C000E1F72C153D0520F58091DD019091DE011A
:10B7D000C816D906F4F06C011CC0205F3F4F809161
:10B7E000DD019091DE01829FB001839F700D929FD9
:10B7F000700D11249B0164E0369527956A95E1F759
:10B800004C155D0514F06A0104C0C216D30608F099
:10B810006901C601AA2797FDA095BA2F2DE0880FD0
:10B82000991FAA1FBB1F2A95D1F79801442737FDFE
:10B830004095542FBC01CD010E94307720933E03E8
:10B8400030933F034093400350934103C0903E0325
:10B85000D0903F0380916D0390916E039C01220F65
:10B86000331F280F391F2C0D3D1D37FF02C02D5FE0
:10B870003F4FA901559547955595479550936E03B0
:10B8800040936D038091BA05282F3327220F331F71
:10B89000220F331F241735076CF480919507282F4A
:10B8A0003327220F331F220F331F205530404217FA
:10B8B000530724F030936E0320936D03809112069A
:10B8C00080FF14C080916D0390916E03A981BA81AD
:10B8D0008A179B0724F0B0936E03A0936D03E09149
:10B8E0006D03F0916E03FA83E9835CC029813A818C
:10B8F0002E193F0937FF02C02D5F3F4F3595279521
:10B9000035952795E0906D03F0906E03E20EF31EDF
:10B91000FA82E98247C08091C205882301F56091CF
:10B92000990270919A0277FF02C06D5F7F4F759503
:10B9300067957595679540911E0150911F01809103
:10B940000001282F3327649FC001659F900D749FCD
:10B95000900D1124B9010E94FB76CB0101C09927FB
:10B960009093DC018093DB018091DB019091DC01FD
:10B97000873491051CF486E490E005C08639910572
:10B9800034F086E990E09093DC018093DB0129811B
:10B990003A8130936E0320936D0380917D02806C19
:10B9A00080937D0280917D0299279C0122703070E6
:10B9B00081FF1CC18091710390917203A091730368
:10B9C000B09174030097A105B10521F08091A70201
:10B9D0008130B1F449815A81CA01AA2797FDA09507
:10B9E000BA2F2EE0880F991FAA1FBB1F2A95D1F7E7
:10B9F0008093710390937203A0937303B0937403C5
:10BA00008091A702813019F482E08093A7026981B6
:10BA10007A81CB01AA2797FDA095BA2F98014427D8
:10BA200037FD4095542FBC01CD010E94BC76DC014E
:10BA3000CB0180933E0390933F03A0934003B093C8
:10BA40004103B7FF04C08150904EAF4FBF4F7C0100
:10BA50008D01FDE015950795F794E794FA95D1F7D8
:10BA6000E0923E03F0923F030093400310934103A2
:10BA700060917E0270917F028FE0603A780750F506
:10BA80008091710390917203A0917303B09174033C
:10BA90009C01AD01EAE05695479537952795EA95C3
:10BAA000D1F7821B930BA40BB50BA8019701F4E00F
:10BAB000220F331F441F551FFA95D1F7820F931F92
:10BAC000A41FB51F8093710390937203A093730317
:10BAD000B093740360547F4118F580917103909185
:10BAE0007203A0917303B09174039C01AD01ECE06B
:10BAF0005695479537952795EA95D1F7821B930B75
:10BB0000A40BB50BA801970172E0220F331F441F4D
:10BB1000551F7A95D1F7820F931FA41FB51F29C017
:10BB200080913502909136028091350290913602D3
:10BB300097FF03C0909581959F4F843691050CF532
:10BB40008091710390917203A0917303B09174037B
:10BB50009C01AD016EE056954795379527956A95FE
:10BB6000D1F7821B930BA40BB50B8E0D9F1DA01F4D
:10BB7000B11F8093710390937203A0937303B093EA
:10BB800074038091710390917203A0917303B0913B
:10BB900074031EE0B695A795979587951A95D1F7EA
:10BBA00090939A02809399024091C005442399F0A2
:10BBB00055279C01BA010E94FB76C901861B970B91
:10BBC0009093700380936F03260F371F3093DE012D
:10BBD0002093DD011FC01092700310926F038FEF4E
:10BBE00093E09093DE018093DD0114C01092A702D0
:10BBF00010927103109272031092730310927403E7
:10BC000030939A022093990205C080917D02806C46
:10BC100080937D0220905C07222D3327220F331F53
:10BC2000220F331F285D3F4FA981BA812A173B0796
:10BC300014F03A83298330909507832D9927880F34
:10BC4000991F880F991F80559040E981FA818E17BE
:10BC50009F0714F49A83898380916D02882321F4CD
:10BC600080911A088F3FA1F080917E0290917F020F
:10BC70000297C09768F4E980FA801E141F0444F408
:10BC800081E090E090937F0280937E023A83298343
:10BC900009811A811093660500936505809136032A
:10BCA00090913703A0913803B0913903F2E0880FE7
:10BCB000991FAA1FBB1FFA95D1F700919607109103
:10BCC0009707081B190B29813A81213A31058CF01D
:10BCD000C90137FD019695958795801791070CF45A
:10BCE0008C01909581959F4F081719076CF48C0172
:10BCF0000BC00135110514F000E510E03FEF003BEB
:10BD0000130714F400EB1FEF232D3327220F331FEB
:10BD1000220F331FC90149815A81841B950B80175B
:10BD200091070CF48C0169817A81621B730B0617F1
:10BD300017070CF48B018091570790915807609179
:10BD4000AF027091B002861B970B909366078093A9
:10BD50006507D09074072091CD023091CE024091BA
:10BD6000CF025091D002DD2041F0661A770AC3015C
:10BD7000AA2797FDA095BA2F04C0AA2797FDA095E2
:10BD8000BA2F280F391F4A1F5B1F2093CD02309313
:10BD9000CE024093CF025093D0028091CD02909179
:10BDA000CE02A091CF02B091D00281509A4FA04014
:10BDB000B04064F080E09AEFA0E0B0E08093CD0264
:10BDC0009093CE02A093CF02B093D0028091CD0287
:10BDD0009091CE02A091CF02B091D00280509640B7
:10BDE000AF4FBF4F64F480E096E0AFEFBFEF8093BA
:10BDF000CD029093CE02A093CF02B093D002C09018
:10BE0000CF052091650730916607F8E0FC1598F0A2
:10BE10008C2D9927829F7001839FF00C929FF00CCC
:10BE20001124C701F7FC07967C0163E0F594E794C1
:10BE30006A95E1F712C08C2D86959927829FA00103
:10BE4000839F500D929F500D1124CA0157FD0396F8
:10BE50007C01F594E794F594E794A090CF01B0901D
:10BE6000D0019501442737FD4095542F8091CD0294
:10BE70009091CE02A091CF02B091D002BC01CD0131
:10BE80000E943077E20EF31E9090BB01692D772758
:10BE900088279927980117FF04C022273327201BE2
:10BEA000310B37FF02C02F5F3F4F35952795A98192
:10BEB000BA812A0F3B1F442737FD4095542F0E941B
:10BEC000BC7697FF04C0615C7F4F8F4F9F4F26E089
:10BED00095958795779567952A95D1F79B016E156E
:10BEE0007F050CF47B01309521953F4FE216F30658
:10BEF0000CF4790180914807909149076091AD0257
:10BF00007091AE02861B970B90934707809346076C
:10BF10002091C9023091CA024091CB025091CC02CB
:10BF2000DD2041F0461A570AC201AA2797FDA095C5
:10BF3000BA2F04C0AA2797FDA095BA2F280F391F42
:10BF40004A1F5B1F2093C9023093CA024093CB0261
:10BF50005093CC028091C9029091CA02A091CB0269
:10BF6000B091CC0281509A4FA040B04064F080E084
:10BF70009AEFA0E0B0E08093C9029093CA02A09328
:10BF8000CB02B093CC028091C9029091CA02A091D9
:10BF9000CB02B091CC0280509640AF4FBF4F64F4BB
:10BFA00080E096E0AFEFBFEF8093C9029093CA02A2
:10BFB000A093CB02B093CC02209146073091470763
:10BFC00048E04C1598F08C2D9927829FB001839FF3
:10BFD000700D929F700D1124CB0177FD07966C01B7
:10BFE000B3E0D594C794BA95E1F712C0C6948C2DEE
:10BFF0009927829FD001839FB00D929FB00D11248D
:10C00000CD01B7FD03966C01D594C794D594C79420
:10C010009501442737FD4095542F8091C902909196
:10C02000CA02A091CB02B091CC02BC01CD010E940A
:10C030003077C20ED31E692D77278827992798015C
:10C0400017FF04C022273327201B310B37FF02C004
:10C050002F5F3F4F35952795E981FA812E0F3F1FBE
:10C06000442737FD4095542F0E94BC7697FF04C0AB
:10C07000615C7F4F8F4F9F4FE6E095958795779551
:10C080006795EA95D1F79B016C157D050CF46B0162
:10C09000309521953F4FC216D3060CF4690166E72F
:10C0A000862E66E0962E5DE2A52E56E0B52E4BE07C
:10C0B000542E35E7632E37E0732ED5012C911216DE
:10C0C0000CF014C1203429F4E981FA81F88FEF8B48
:10C0D0001FC049815A81CA01AA2797FDA095BA2F8E
:10C0E000332727FD3095432F532FBC01CD010E94EC
:10C0F000BC7697FF04C0615C7F4F8F4F9F4F26E057
:10C1000095958795779567952A95D1F7788F6F8B59
:10C11000F5012181203439F42F89388D2E0D3F1DF2
:10C12000388F2F8B2AC0203C39F44F89588D4E19F7
:10C130005F09588F4F8B21C0C701AA2797FDA09593
:10C14000BA2F332727FD3095432F532FBC01CD0144
:10C150000E94BC7697FF04C0615C7F4F8F4F9F4F5A
:10C16000B6E09595879577956795BA95D1F7AF899C
:10C17000B88DA60FB71FB88FAF8BF5012281203481
:10C1800039F42F89388D2C0D3D1D388F2F8B2AC007
:10C19000203C39F44F89588D4C195D09588F4F8BCD
:10C1A00021C0C601AA2797FDA095BA2F332727FDE6
:10C1B0003095432F532FBC01CD010E94BC7697FFD1
:10C1C00004C0615C7F4F8F4F9F4FA6E09595879588
:10C1D00077956795AA95D1F7AF89B88DA60FB71F48
:10C1E000B88FAF8BF5012381203439F42F89388D36
:10C1F000200F311F388F2F8B2AC0203C39F44F89F4
:10C20000588D401B510B588F4F8B21C0C801AA2756
:10C2100097FDA095BA2F332727FD3095432F532F35
:10C22000BC01CD010E94BC7697FF04C0615C7F4FCA
:10C230008F4F9F4FF6E09595879577956795FA957F
:10C24000D1F7AF89B88DA60FB71FB88FAF8BF301A9
:10C25000808191812F89388D8217930764F4B90109
:10C26000680F791F77FF02C06F5F7F4F75956795E5
:10C27000788F6F8B08C04F89588D440F551F481B0E
:10C28000590B588F4F8B822D9927880F991F880F34
:10C29000991F6F89788D861797075CF4832D9927EE
:10C2A000880F991F880F991FAF89B88DA817B907F4
:10C2B00014F0988F8F8B8F89988D97FD03969595A5
:10C2C000879595958795F4018183880F991F880F2D
:10C2D000991F2F89388D281B390BC901880F82833C
:10C2E000EF89F88DD301ED93FC9303C0F401118223
:10C2F00012825A9422E030E0620E731E44E050E055
:10C30000A40EB51E68E070E0860E971E57FED5CECF
:10C31000E2E1C85E0C946777809183039091840377
:10C32000A0918503B091860380937B0390937C0357
:10C33000A0937D03B0937E0380917F03909180034F
:10C34000A0918103B0918203809377039093780347
:10C35000A0937903B0937A03089510928E031092FC
:10C360008D0310928C0310928B03089584B1806A20
:10C3700084B93D9A82E58CBD1DBC459A81E08093CD
:10C38000A7078AEA8093B80783E88093B9078AE011
:10C390008093BA071092BC071092BB071092BE0799
:10C3A0001092BD07109212081092DA07089530918A
:10C3B000A707332309F085C00DB407FE82C084E0CF
:10C3C00080932302459A2EB580919203992781305C
:10C3D000910589F0823091051CF4892B21F03EC033
:10C3E0000297B9F03BC03093D907209393032138CB
:10C3F000A9F581E008C0253549F480919303820FA7
:10C400008093930382E08093920328C03093920339
:10C4100025C08091D907E82FFF27EB50F84F2083E4
:10C420008F5F8093D907909193038A31A0F02917E9
:10C4300069F48AE1A5EFB7E0EBEDF7E00D9001922A
:10C440008A95E1F781E08093DA0702C03093DA073A
:10C450001092920303C0920F909393032091B70719
:10C46000203208F028C045980000000000000000BD
:10C4700000000000000000000000000000000000BC
:10C4800000000000000000000000000000000000AC
:10C490000000000000000000E091B007F091B1073B
:10C4A000E20FF11D80818EBD8091D7079081890FA9
:10C4B0008093D70703C081E08093A7072F5F209365
:10C4C000B7070895EF92FF920F931F938091C805CD
:10C4D0009927880F991F880F991F7C010027F7FC67
:10C4E0000095102F8091050390910603A0910703FA
:10C4F000B0910803BC01CD01A80197010E943077DB
:10C500003093BC072093BB078091FD029091FE02FF
:10C51000A091FF02B0910003BC01CD01A8019701D9
:10C520000E9430773093BE072093BD0720919D076E
:10C5300030919E0740919F075091A007DA01C901F1
:10C54000E3E0880F991FAA1FBB1FEA95D1F7820F5E
:10C55000931FA41FB51F820F931FA41FB51F209107
:10C560009601309197014091980150919901BC0139
:10C57000CD010E9430773093C4072093C307809188
:10C580001603909117032091430230914402821BBD
:10C59000930B9093CA078093C907E0910C03F09125
:10C5A0000D0380916C0790916D07BF010E94FB768F
:10C5B000CB019B01220F331F220F331F280F391F7E
:10C5C000280F391F37FF02C02D5F3F4F3595279544
:10C5D000359527953093C0072093BF078091990721
:10C5E00090919A07BF010E94FB769B01220F331F97
:10C5F000220F331F260F371F260F371F37FF02C0AA
:10C600002D5F3F4F35952795359527953093C20778
:10C610002093C10710920D0310920C0310926D0726
:10C6200010926C0710929A07109299078091BA079E
:10C6300099278D30910509F466C08E3091055CF420
:10C640008B30910509F48EC08C3091050CF00FC130
:10C650000A9761F0ADC18F30910509F481C18F3027
:10C6600091050CF45CC1409799F1A2C180919202AE
:10C670008093CB07809191028093CC0780919002A8
:10C680008093CD0780918F028093CE0780918E0298
:10C690008093CF0780918D028093D00780918C0288
:10C6A0008093D10780918B028093D20780917D0285
:10C6B0008093D30780917D02837F80937D020E94C7
:10C6C000052E8093D407809109038093D50770C10C
:10C6D00080911408909115089093CC078093CB0714
:10C6E00080911808909119089093CE078093CD07F8
:10C6F00080911E0190911F018093CF0780910001CE
:10C700008093D00755C18091FC058093CB07809121
:10C71000FD058093CC078091FE058093CD07809125
:10C72000FF058093CE07809100068093CF0780910C
:10C7300004068093D007809105068093D1078091ED
:10C7400006068093D207809109068093D3078091D3
:10C7500007068093D407809108068093D5078091BF
:10C760000A06DAC0F8948091AF05E82FFF27EE0F94
:10C77000FF1FE952F94F0190F081E02DE038F105FB
:10C780001CF0EFE7F0E006C02FEFE138F20714F4F9
:10C79000E1E8FFEFE093CB078091B005E82FFF279A
:10C7A000EE0FFF1FE952F94F0190F081E02DE038C4
:10C7B000F1051CF0EFE7F0E006C06FEFE138F60797
:10C7C00014F4E1E8FFEFE093CC078091AE05E82F89
:10C7D000FF27EE0FFF1FE952F94F0190F081E02D86
:10C7E000E038F1051CF0EFE7F0E006C08FEFE1382C
:10C7F000F80714F4E1E8FFEFE093CD078091AD0571
:10C80000E82FFF27EE0FFF1FE952F94F0190F0814B
:10C81000E02DE038F1051CF0EFE7F0E006C02FEF67
:10C82000E138F20714F4E1E8FFEF7894E093CE07E3
:10C830008091B2028093CF078091B3028093D0079A
:10C840008091B4028093D1078091B5028093D20782
:10C850008091B6028093D3078091B7028093D4076A
:10C860008091B8028093D5078091B90255C080911C
:10C87000F003863018F01092F00385E08093CB0728
:10C8800080910B068093CC078091A3029091A40223
:10C89000A091A502B091A602BC01CD0125E030E037
:10C8A00040E050E00E9430773093CE072093CD07D0
:10C8B00080919F029091A002A091A102B091A2024A
:10C8C000BC01CD0125E030E040E050E00E9430772F
:10C8D0003093D0072093CF07809101068093D10732
:10C8E000809102068093D207809103068093D3073C
:10C8F0008091B1028093D4078091D7069091D80699
:10C900008093D507809165059091660597FD039604
:10C9100095958795959587958093D60749C01092F0
:10C92000CB0782E58093CC071092CD0780E18093FE
:10C93000CE07809102018093CF078091D503809329
:10C94000D0078091D6038093D1078091D70380933D
:10C95000D2078091D8038093D3078091D90326C052
:10C960008091E1058093CB07809111068093CC07DD
:10C970008091C1018093CD078091DA058093CE0725
:10C980008091DB058093CF078091DC058093D007F1
:10C990008091C0018093D1078091DE058093D207FA
:10C9A0008091DF058093D3078091E0058093D407C1
:10C9B0008091DA07882309F4D8C08AEF8093E901CF
:10C9C0004091DC075091DD07CA0181509E4F8F5F77
:10C9D0009340B0F42091DE073091DF07C901815008
:10C9E0009E4F8F5F934060F48091B90585FF08C02A
:10C9F00050938E0340938D0330938C0320938B03CD
:10CA00008091E2079091E30721E08936920724F4B0
:10CA10009093C4028093C3028091C3029091C40298
:10CA20002091C1023091C202821B930B845E9D4F04
:10CA300068E671E00E94FB76845B90409093C002B0
:10CA40008093BF022091E6073091E707809124028E
:10CA5000909125028217930740F48091F003882378
:10CA600021F430932502209324028091DB0799273B
:10CA70008836910549F18936910524F48736910568
:10CA800031F07BC08936910509F445C076C08091AC
:10CA9000E80780930F088091E9078093110880913F
:10CAA000EA07809310088091EB0780931208809129
:10CAB000EC07809313088091ED078093EA01809141
:10CAC000EE078093910359C08091E8078093B207E5
:10CAD0008091E9078093B3078091EA078093B407B8
:10CAE0008091EB078093B5078091EC078093B607A0
:10CAF000809155059091ED07892B80935505909174
:10CB0000EE0790938F038091560583709C70892B5C
:10CB10008093560532C08091E8078093A8078091E2
:10CB2000E9078093A9078091EA078093AA0780917B
:10CB3000EB078093AB078091EC079091ED07909302
:10CB4000AD078093AC078091EE079091EF0790932B
:10CB5000AF078093AE078091F007992787FD9095E6
:10CB600090930A078093090708C010928E031092D1
:10CB70008D0310928C0310928B031F910F91FF90E5
:10CB8000EF9008958091A707882309F43BC045984A
:10CB900088EB97E09093B1078093B0079091900352
:10CBA000E92FFF27E052FE4F9F5F90939003808113
:10CBB0008093BA07993010F0109290031092A70753
:10CBC0000E94626281E08093B707000000000000CD
:10CBD0000000000000000000000000000000000055
:10CBE0000000000000000000000000000000000045
:10CBF000000000000000000000008091B807809352
:10CC0000D7078EBD089587B18C6087B94298439845
:10CC10001092950380E88093EC0110929403809326
:10CC2000EB01089580919A03815080939A038F3F7E
:10CC300009F0FBC024E020939A0380917D0299279C
:10CC400080739070892B21F48091D60380FF1CC0E3
:10CC50008091FA05882349F080919D03882311F47F
:10CC60002093950381E080939D038091FB058823A9
:10CC7000B9F080919E03882319F484E08093940393
:10CC800081E080939E030CC010929D0310929E033E
:10CC90008091F60580939B038091F80580939C0317
:10CCA00080919D03882309F040C080911006282FB1
:10CCB000332724FF07C08091A802882319F425FD9B
:10CCC0004DC04EC09091F705983F50F080916E078F
:10CCD0008D3D30F080919B0388230CF43FC040C011
:10CCE000983F48F080916E078A3028F480919B032A
:10CCF0008823B4F133C080919503815080939503CC
:10CD00008F3F79F580916E078150809395038091D4
:10CD1000EC01813011F480E801C086958093EC012C
:10CD20008091EC0190919B0317C0809195038150F5
:10CD3000809395038F3FA9F489E0809395038091B8
:10CD4000EC01813011F480E801C086958093EC01FC
:10CD50008091EC019091FA05892311F0429A01C06B
:10CD6000429880919E03882309F043C08091100669
:10CD7000282F332724FF07C08091A802882319F4A5
:10CD800026FD50C034C09091F905983F50F0809135
:10CD900094078D3D30F080919C0388230CF442C0B1
:10CDA00026C0983F48F0809194078A3028F48091FB
:10CDB0009C038823E4F036C08091940381508093D3
:10CDC00094038F3F91F58091940781508093940351
:10CDD0008091EB01813011F480E801C08695809349
:10CDE000EB018091EB0190919C038923D9F4439846
:10CDF0000895809194038150809394038F3FA9F408
:10CE000089E0809394038091EB01813011F480E8F4
:10CE100001C086958093EB018091EB019091FB0519
:10CE2000892311F0439A0895439808954FB724E158
:10CE300030E0F8948091C9008F778093C900809189
:10CE4000C9008F7B8093C9008091C9008F7D80933A
:10CE5000C9005A9A52985B9A539A832F99278093C4
:10CE6000CD002093CC008091C80082608093C800E0
:10CE700080E18093C9008091CA008F778093CA00B7
:10CE80008091CA008F7B8093CA008091CA008F7DF9
:10CE90008093CA008091CA008F7E8093CA008091DF
:10CEA000CA00877F8093CA008091C9008B7F8093DE
:10CEB000C9008091CA0084608093CA008091CA0032
:10CEC00082608093CA008091C80087FF03C0809170
:10CED000CE00F9CF8091C90080688093C9004FBF10
:10CEE0000895EF92FF920F931F93CF93DF93482FF4
:10CEF00000E010E08091ED01813061F41092ED01CD
:10CF000084E480939F031092A1031092A0031092D7
:10CF1000A2032BC180919F03882319F421E030E004
:10CF200001C098019091A003992371F4232B11F073
:10CF300081E010C084E480939F039093A1039093B9
:10CF4000A0039093A203FAC0913069F4232B09F057
:10CF5000EBC082E08093A0038091A1038F5F809358
:10CF6000A10383E0E9C09230D1F4232B09F0DCC0A7
:10CF700083E080939F034093A2039091A10392309A
:10CF800039F41092A30347FF03C081E08093A30309
:10CF900083E08093A0039F5F9093A103CFC0933061
:10CFA00009F0C2C0232B09F0BFC090939F0382E019
:10CFB0008093A0038091A1038F5F8093A1032091B0
:10CFC000A203822F9927782F6627842F9927682B11
:10CFD000792B8091D305813049F47370CB01805057
:10CFE000924063E070E00E94FB7617C0823061F4EB
:10CFF0007770CB018050944066E070E00E94FB7631
:10D000002695269526950BC0737068567140CB0106
:10D0100077FD0196BC017595679526952695022F9B
:10D0200011270F7010700F5F1F4F0D30110508F0A2
:10D0300074C07801E00EF11EF701E952F94F8081CA
:10D0400091819B01281B390BC90137FF03C09095C3
:10D0500081959F4F069794F48091B102883C30F4FB
:10D060008091B102865F8093B10208C088EC809302
:10D07000B10280916F008F7D80936F00F701E952BC
:10D08000F94F808191819C01220F331F280F391F96
:10D09000260F371F37FF02C02D5F3F4FE901D5959F
:10D0A000C795D595C795CB0101968C179D0714F4AC
:10D0B000219706C061507040C617D7070CF421961F
:10D0C0008091B102843BD0F0F701E952F94F8081A1
:10D0D0009181FE01E81BF90BCF0163E070E00E9433
:10D0E000FB76CB01880F991F860F971F2BE037E047
:10D0F000E20EF31EF7019183808307C02BE037E037
:10D10000E20EF31EF70111821082000F111F095267
:10D11000194FF801D183C08311C00231110570F09D
:10D1200081E08093ED010AC081E08093ED011092CF
:10D13000A1031092A30384E480939F038091A10331
:10D14000803198F08091A303882331F48091ED0120
:10D15000882311F4809394011092A1031092A303E9
:10D160001092A00384E480939F03E6E0CDB7DEB77E
:10D170000C947377CF93FC0197FF05C0CFEFF09528
:10D18000E195FF4F01C0C1E028E631E0CF01B901D0
:10D190000E94FB76FC018B35910554F08B55904035
:10D1A0008A35910538F484EB90E08E1B9F0BFC01CF
:10D1B00041E00DC0CF01855B90408A35910518F4A0
:10D1C000E45BF04003C02E1B3F0BF9014FEFEE0F65
:10D1D000FF1FE15DF54F259134918C2F992787FD35
:10D1E0009095289FB001299F700D389F700D1124D4
:10D1F000842F992787FD9095689FA001699F500D06
:10D20000789F500D1124CA01CF9108952AE530E08E
:10D21000281B390BC9010E94BA680895CF93DF9388
:10D2200080E00E94716E80911E0190911F016AE062
:10D2300070E00E94FB769F938F9380911E019091E6
:10D240001F016AE070E00E94FB767F936F938DEF81
:10D250009AE09F938F93C4E6DEE6DF93CF93E0914D
:10D26000BC03F091BD0309952DB73EB7285F3F4F32
:10D270002DBF8091E9018823B9F186E00E94716E8B
:10D280008091AC079091AD076AE070E00E94E7766C
:10D290007F936F938FED90E09F938F9380919D0785
:10D2A00090919E07A0919F07B091A00720919601B1
:10D2B000309197014091980150919901BC01CD01A5
:10D2C0000E9430773F932F9386E09BE09F938F934C
:10D2D000DF93CF93E091BC03F091BD0309958DB727
:10D2E0009EB70A968DBF12C086E00E94716E82E1E1
:10D2F0009BE09F938F93DF93CF93E091BC03F091DA
:10D30000BD0309950F900F900F900F9080918F03A0
:10D310008823C1F086E00E94716E80918F03992767
:10D320009F938F9389E19BE09F938F93DF93CF939C
:10D33000E091BC03F091BD0309952DB73EB72A5F7C
:10D340003F4F2DBF80E10E94716E8091F30190915B
:10D35000F4016CE370E00E94E7769F938F938091D5
:10D36000F3019091F4016CE370E00E94E7767F9303
:10D370006F9380911808909119089F938F9384E27E
:10D380009BE09F938F93C4E6DEE6DF93CF93E0911B
:10D39000BC03F091BD0309958091B9052DB73EB747
:10D3A000265F3F4F2DBF80FF29C08AE10E94716E2A
:10D3B0008091950199279F938F938091A3029091DB
:10D3C000A402A091A502B091A602BC01CD0124E661
:10D3D00030E040E050E00E9430773F932F9381E3AC
:10D3E0009BE09F938F93DF93CF93E091BC03F091E9
:10D3F000BD0309958DB79EB708968DBFDF91CF917C
:10D400000895CF93DF9380E00E94716E809195061E
:10D41000992787FD90959F938F9380918D069927EB
:10D4200087FD90959F938F9380918506992787FD1F
:10D4300090959F938F9380917D06992787FD909576
:10D440009F938F9388E39BE09F938F93C4E6DEE6E0
:10D45000DF93CF93E091BC03F091BD03099580E188
:10D460000E94716E2DB73EB7245F3F4F2DBF809154
:10D47000B506992787FD90959F938F938091AD0670
:10D48000992787FD90959F938F938091A506992763
:10D4900087FD90959F938F9380919D06992787FD97
:10D4A00090959F938F9388E49BE09F938F93DF9356
:10D4B000CF93E091BC03F091BD0309958091AB053A
:10D4C0002DB73EB7245F3F4F2DBF853098F480E1E4
:10D4D0000E94716E88E59BE09F938F93DF93CF93BB
:10D4E000E091BC03F091BD0309950F900F900F9050
:10D4F0000F9018C08730B0F488E10E94716E8FEDF4
:10D5000090E09F938F9389E69BE09F938F93DF93A7
:10D51000CF93E091BC03F091BD0309958DB79EB701
:10D5200006968DBFDF91CF9108950F931F9380E0F2
:10D530000E94716E2AE030E08091140890911508E5
:10D54000B9010E94E7769F938F9380911408909180
:10D550001508B9010E94E7767F936F9380911E01B1
:10D5600090911F01B9010E94FB769F938F93809148
:10D570001E0190911F01B9010E94FB767F936F936A
:10D5800082E79BE09F938F9304E61EE61F930F9321
:10D59000E091BC03F091BD03099580E10E94716E9A
:10D5A0008DB79EB70C968DBF809118089091190881
:10D5B0009F938F9380911608909117089F938F9354
:10D5C00085E89BE09F938F931F930F93E091BC039B
:10D5D000F091BD0309958DB79EB708968DBF1F9139
:10D5E0000F9108950F931F93CF93DF938091E901DB
:10D5F000C4E6DEE6882309F478C080E00E94716EFC
:10D600008091A90799279F938F938091AB079927C2
:10D610009F938F9381E99BE09F938F938E01DF937C
:10D62000CF93E091BC03F091BD0309958DB79EB7F0
:10D6300008968DBF8091AA07833031F48CE00E9458
:10D64000716E80EA9BE005C08CE00E94716E85EAF5
:10D650009BE09F938F93DF93CF93E091BC03F09176
:10D66000BD0309950F900F900F900F908091A80720
:10D6700081FF12C08CE00E94716E8AEA9BE09F934A
:10D680008F931F930F93E091BC03F091BD03099515
:10D690000F900F900F900F9080E10E94716E8FEDB0
:10D6A00090E09F938F938091AE079091AF079F93E7
:10D6B0008F938091AC079091AD076AE070E00E9473
:10D6C000E7767F936F938FEA9BE09F938F9384E637
:10D6D0009EE69F938F93E091BC03F091BD03099563
:10D6E0008DB79EB70A968DBF12C082E00E94716E00
:10D6F0008FEB9BE09F938F93DF93CF93E091BC03DD
:10D70000F091BD0309950F900F900F900F90DF914E
:10D71000CF911F910F910895CF93C82F2091A4030B
:10D720002093A50399278F32910509F18033910544
:10D730001CF44F97A1F02CC08F34910501F18F3864
:10D74000910531F5222319F481E090E038C086E09C
:10D75000289FF0011124EB51F54F849117C086E00A
:10D76000289FF0011124EA51F54F84910FC086E003
:10D77000289FF0011124E951F54F849107C086E0FC
:10D78000289FF0011124E851F54F84918093A40360
:10D790009091A4038091A5039813C0E00E94776E36
:10D7A0009091A40386E0989FF0011124E751F54F72
:10D7B000259134918C2FF901099580E090E0CF916B
:10D7C00008951092150810921408109219081092DA
:10D7D0001808109217081092160810921A088AE07A
:10D7E00090E00E941C179093A7038093A6030895CE
:10D7F000CF93DF938091A6039091A7030E942517F2
:10D80000882309F4AFC08091A6039091A7030A96DC
:10D810009093A7038093A603E0E0F0E09F0190E0DF
:10D820005FEFA6E7B6E04BE0ED018B8187FF0BC011
:10D830009F5F8D81E80FF11D8981280F311D8E8139
:10D84000851708F4582F4150189647FFEDCF509395
:10D850001A08232B41F52091AC033091AD03409180
:10D86000AE035091AF03BB27A52F942F832F909326
:10D87000AB038093AA03AA27BB27281B390B4A0BAB
:10D880005B0BCF01AA27BB27280F391F4A1F5B1F3D
:10D890002093AC033093AD034093AE035093AF039A
:10D8A000E5E0F0E013C02091AA033091AB032E17FE
:10D8B0003F0718F4E21BF30B02C0E0E0F0E0892F11
:10D8C0009927880F991FE80FF91F3596F0931508CF
:10D8D000E0931408EF3FF10578F480911E019091D8
:10D8E0001F018E9F90018F9F300D9E9F300D112440
:10D8F000C90164E670E013C0CF01969587959695AF
:10D90000879520911E0130911F01289FA001299F1A
:10D91000500D389F500D1124CA0169E170E00E943A
:10D92000E77670931708609316082091A80330914A
:10D93000A9032E0F3F1F3093A9032093A8035EE095
:10D940002131350778F080911808909119080196D7
:10D95000909319088093180820513E403093A903F2
:10D960002093A803DF91CF9108954FB720E430E0D2
:10D97000F8948091C9008F778093C9008091C90085
:10D980008F7B8093C9008091C9008F7D8093C900EF
:10D990005A9A52985B9A539A832F99278093CD0075
:10D9A0002093CC008091C80082608093C80088E1F9
:10D9B0008093C9008091CA008F778093CA008091BC
:10D9C000CA008F7B8093CA008091CA008F7D8093AC
:10D9D000CA008091CA008F7E8093CA008091CA00DD
:10D9E000877F8093CA008091C9008B7F8093C90094
:10D9F0008091CA0084608093CA008091CA008260CE
:10DA00008093CA008091C80087FF03C08091CE0038
:10DA1000F9CF8091C90080688093C9004FBF0895F5
:10DA20000F931F93CF93DF93482F4F5F893108F0F7
:10DA30008BC08091D606841720F44F5F4093D606A2
:10DA40004150CB0183539B4268E170E00E94FB761A
:10DA5000A42FBB27FD01EA0FFB1FE952F94F80817C
:10DA600091819B01281B390BC90137FF03C0909599
:10DA700081959F4F069794F48091B102883C30F4D1
:10DA80008091B102865F8093B10208C088EC8093D8
:10DA9000B10280916F008F7D80936F00FD01EA0FCE
:10DAA000FB1FE952F94F808191819C01220F331FA6
:10DAB000280F391F260F371F37FF02C02D5F3F4F3A
:10DAC000E901D595C795D595C795CB0101968C17DA
:10DAD0009D0714F4219706C061507040C617D70700
:10DAE0000CF421968091B102843BD8F08D010A0F8D
:10DAF0001B1FF801E952F94F80819181FE01E81B5B
:10DB0000F90BCF0163E070E00E94FB76CB01880F38
:10DB1000991F860F971F055F184FF8019183808327
:10DB200007C0AA0FBB1FA55FB84F11961C921E928B
:10DB3000E42FFF27EE0FFF1FE952F94FD183C08377
:10DB4000443011F410929401DF91CF911F910F9105
:10DB50000895CF93DF9320911B08822F9927807F10
:10DB60009070409709F06CC02F3109F046C0809149
:10DB70001C088093B40320911E082093B603809163
:10DB80001F088093B503822F99279093D80680931E
:10DB9000D706222309F054C08091AD05282F3327E2
:10DBA000220F331FF901E55FF84F11821082809137
:10DBB000AE05A82FBB27AA0FBB1FFD01E55FF84FDD
:10DBC000118210828091B005E82FFF27EE0FFF1F12
:10DBD000CF01855F984FEC01198218822952394F85
:10DBE000E90119821882A952B94F11961C921E920E
:10DBF000E952F94F1182108223C0C22FCF70CA3070
:10DC0000F8F480911C088093450880911D0880934A
:10DC1000440880911E088093470880911F088093D4
:10DC2000460860914408709145088C2F0E94106D41
:10DC300060914608709147088C2F8F5F0E94106D8D
:10DC4000DF91CF910895CF93C82F8F3F49F48091F2
:10DC5000B7038F3F29F41092B9031092B80332C072
:10DC60002091B903222339F4CF3111F485E001C0AA
:10DC700084E08093BA038091BA039091B80382172D
:10DC8000A0F4892F80958093B8038F3F19F48EEF0D
:10DC90008093B8038091B803C81711F40E94A96D4E
:10DCA0001092B9031092B8030BC0E22FFF27E55E74
:10DCB000F74FC0832F5F2093B9039C0F9093B80355
:10DCC000C093B703CF9108959091B303933240F47A
:10DCD000E92FFF27EF5DF74F80839F5F9093B3039A
:10DCE0000895833218F48D5F8093B303089590E212
:10DCF000E4E2F8E08FE19193815087FFFCCF089533
:10DD0000CF93CFB723E031E0F8948091C9008F77AB
:10DD10008093C9008091C9008F7B8093C900809156
:10DD2000C9008F7D8093C9005A9A52985B9A539A82
:10DD3000832F99278093CD002093CC008091C80039
:10DD400082608093C80088E18093C9008091CA00F6
:10DD50008F778093CA008091CA008F7B8093CA001E
:10DD60008091CA0080628093CA008091CA0080615D
:10DD70008093CA008091CA0088608093CA00809115
:10DD8000C90084608093C9008091CA008460809338
:10DD9000CA008091CA0082608093CA008091C80046
:10DDA00087FF03C08091CE00F9CF8091C9008068C1
:10DDB0008093C9008091C90080648093C9000E944B
:10DDC000776ECFBFCF910895282F99278F709070CD
:10DDD000892B31F420958091B203822B8093B2037A
:10DDE00008958091F001882309F441C080917D025B
:10DDF00085FF0AC082E98093210883E2809322088C
:10DE000085E58093230802C0109221088091F101DA
:10DE10008F3071F48091B2030E948C6B882341F0A3
:10DE200081E9809321088093220881E3809323086D
:10DE30001092F0018091C80085FFFCCF8091C9004D
:10DE40008F7E8093C9008091C9008E7F8093C90026
:10DE500080912108882311F48EEF01C08EE7809312
:10DE6000CE008091B2038093F1011092B203089525
:10DE70001F920F920FB60F9211248F939F93EF93DF
:10DE8000FF939091F001992309F040C08091BB036A
:10DE9000882361F480912108882311F483E003C072
:10DEA000813999F481E08093BB030FC0833099F4EA
:10DEB00080912108882349F0909321088091C9001E
:10DEC0008E7F8093C9008EEF1EC08091C900816053
:10DED0008093C9000EC0833261F48091C9008E7FA7
:10DEE0008093C9008FEF8093CE0081E08093F00192
:10DEF00014C08091BB03E82FFF27EF5DF74F8F5FC2
:10DF00008093BB0380818093CE0007C01092BB0337
:10DF10008091C90080618093C900FF91EF919F912A
:10DF20008F910F900FBE0F901F901895EF92FF9258
:10DF30000F931F93CF93DF937C018B01EA01452B55
:10DF400039F0F80181918F01F70109952197C9F7FF
:10DF5000E6E0CDB7DEB70C947377EF92FF920F93A4
:10DF60001F93CF93DF937C018B01EA01452B41F096
:10DF7000F8010F5F1F4F8491F70109952197C1F7B1
:10DF8000E6E0CDB7DEB70C9473770F931F93CF9372
:10DF90008C01C62F161634F480E2F8010995C150A1
:10DFA0001C16D4F3CF911F910F9108950F931F93D7
:10DFB000CF938C01C62F161634F480E3F80109952F
:10DFC000C1501C16D4F3CF911F910F910895A5E372
:10DFD000B0E0EDEEFFE60C944B772E96EEADFFAD84
:10DFE0002E978824992454018091B103882321F429
:10DFF0002C961FAE1EAE2C975EE4452E512C4C0E77
:10E000005D1E6F01B60105C0153239F00894C11CC0
:10E01000D11CF60114911123B9F7A601461B570B29
:10E0200031F02C968EAD9FAD2C970E94AD6F1123D1
:10E0300009F46AC20894C11CD11CFF24FDA6FCA6E9
:10E040004FEFE42EF9A6F6010894C11CD11C1491DF
:10E05000153721F0812F80628837B1F4F0FE0AC0B5
:10E06000F20124E030E0420E531E80809180A280B5
:10E07000B3800AC0F20142E050E0440E551E808198
:10E0800091814C01AA24BB24103221F489A5882354
:10E09000D1F61DC0133219F458E0F52AD4CF1A3244
:10E0A00011F01D3291F41A3259F4F20182E090E03D
:10E0B000480E591EE081ECA7EE232CF6E195ECA763
:10E0C00090E1F92AAFEDFA22BECF1B3211F419A765
:10E0D000BACF1E32C1F5F6010894C11CD11C1491AF
:10E0E0001A3279F4F20122E030E0420E531E4081F0
:10E0F00051813FEF4F3F530714F44FEF5FEFE42E92
:10E10000A2CF40E050E0812F80538A30A0F4CA01B2
:10E1100033E0880F991F3A95E1F7840F951F480F58
:10E12000591F410F511D40535040F6010894C11C26
:10E13000D11C1491E8CF8FEF4F3F580714F44FEFE5
:10E140005FEFE42E85CF103329F4F4FC7CCF90E20E
:10E15000F92A79CF812F81538930D8F440E050E0FB
:10E16000CA0123E0880F991F2A95E1F7840F951FB4
:10E17000480F591F410F511D40535040F60108945C
:10E18000C11CD11C1491812F80538A3048F34CA7B5
:10E190005FCF183619F4A4E0FA2A55CF1C3619F4CB
:10E1A000B1E0FB2A50CF133661F43E010894611CA4
:10E1B000711CF20122E030E0420E531E80818983FF
:10E1C0003CC1143421F0143611F0193651F51434D1
:10E1D00011F431E0F32AF0FE0AC0F20144E050E00D
:10E1E000440E551E80809180A280B3800CC0F20145
:10E1F00082E090E0480E591E808191814C01AA2452
:10E2000097FCA094BA2CB7FE0AC0B094A094909446
:10E210008094811C911CA11CB11C8DE289A70AE08D
:10E220006FC01F3411F01F3631F41F3411F491E028
:10E23000F92A08E064C0103779F4F201A2E0B0E0F6
:10E240004A0E5B1E808191814C01AA24BB2400E10F
:10E25000B0E4FB2A18E753C01337C1F5F20122E0FE
:10E2600030E0420E531E608071806114710489F4A5
:10E270003E010894611C711C88E289838EE6F301DB
:10E28000818385E78B838CE68C838D8389E28E8303
:10E290001F82E7FC13C08E2D992787FD9095AC0156
:10E2A00060E070E0C3010E941875009729F0382ED5
:10E2B0003618E3140CF0C3C03E2CC1C0F30101902A
:10E2C0000020E9F731973E2E3618B9C0153511F008
:10E2D000153731F4153511F4F1E0FF2A0AE00FC0CB
:10E2E000183519F0183709F0A0C000E1F3FE07C097
:10E2F00081149104A104B10411F020E4F22A19A6BA
:10E30000EDA6E7FC02C03FEDF32289E2682E712CF6
:10E310006C0E7D1E81149104A104B10421F44DA55D
:10E32000442309F47BC0802F9927AA27BB278EA7F7
:10E330009FA7A8ABB9AB202E332490E0891690E0BC
:10E34000990691E0A90690E0B90648F0C501B4012C
:10E350002EA53FA548A959A90E940E7717C0AFEF77
:10E360008A169104A104B10449F040F0C401B1013E
:10E370000E94E7769B014427552708C0882D602F0F
:10E380000E94DB76282F3327442755272AAB3BAB47
:10E390004CAB5DAB0A3059F48AA9880F880F880FFF
:10E3A0009AA9990F890F382D381B832F10C000317F
:10E3B00039F48AA98295807F482D481B842F07C095
:10E3C0008AA9880F880F880F582D581B852F90E039
:10E3D0002EA53FA548A959A982169306A406B506FD
:10E3E00008F091E08AA89BA8ACA8BDA88A3010F4D8
:10E3F000805D04C0895A183509F48F7DD3018E934E
:10E400003D01992309F099CF083041F4F3FE06C08D
:10E41000803321F080E3FD0182933F01CE0101961C
:10E42000382E3618F8E23F0E0BC0112309F46CC0E9
:10E430003E010894611C711C1983B1E03B2E19A6A2
:10E44000032D2DA4231827FC222489A5882311F04D
:10E450000F5F02C0F6FC0E5F020DEF2CFF24C70118
:10E4600080739070892B49F48CA5801B682F2C96A3
:10E470008EAD9FAD2C970E94C56F89A5882331F082
:10E4800041E050E0BE01675D7F4F0AC0E6FE0EC06E
:10E4900080E38AA71BA742E050E0BE01665D7F4F84
:10E4A0002C968EAD9FAD2C970E94966FC7018073FE
:10E4B0009070809749F48CA5801B682F2C968EADA8
:10E4C0009FAD2C970E94D66F622D2C968EAD9FAD7E
:10E4D0002C970E94D66F832D992787FD9095AC01CC
:10E4E000B3012C968EAD9FAD2C970E94966FE4FEE3
:10E4F00089CD2CA5201B2CA7622F2C968EAD9FAD0D
:10E500002C970E94C56F7ECDE2E1CB5C0C946777BF
:10E510002FB740E0F894E0E0F0E081E2809357000C
:10E520009491E2E0F0E0809357003491E4E0F0E071
:10E530008093570084912FBF9E3199F4363941F46E
:10E54000893011F441E00DC08A3059F442E009C02D
:10E55000373939F4863011F443E003C0853009F4CB
:10E5600044E0842F992708959FB7F8948091C900BB
:10E57000877F8093C9008091C9008F7E8093C900F6
:10E580008091C9008F778093C9008091C9008F7BEB
:10E590008093C9008091C9008F7D8093C9005298F3
:10E5A0005A9A53985B9A9FBF08951F93CF93DF9316
:10E5B000182F8091B103882309F48DC08091EF0159
:10E5C000181709F488C08091B003882321F40E94B1
:10E5D00088728093B00388EB9CE09F938F93C6EF83
:10E5E000D2E1DF93CF93E091BC03F091BD03099595
:10E5F0000F900F900F900F90812F992782309105E7
:10E6000001F1833091052CF4009761F0019769F0D6
:10E6100024C084309105D9F084309105ACF0059781
:10E62000C9F01BC088EA9CE002C086E99CE09F9389
:10E630008F93DF93CF93E091BC03F091BD030995D5
:10E6400018C08DE79CE0F3CF8AE59CE0F0CF8CE426
:10E650009CE0EDCF84E49CE0EACF85EC9CE09F93C6
:10E660008F93DF93CF93E091BC03F091BD030995A5
:10E6700010E00F900F900F900F908091B0038430B6
:10E6800011F0823099F40E94B472812F815083304E
:10E6900018F40E9416671DC0143019F40E94806E91
:10E6A00018C01530B1F40E94B56C13C0112389F065
:10E6B0008BED9CE09F938F9386EF92E19F938F93D6
:10E6C000E091BC03F091BD0309950F900F900F905E
:10E6D0000F901093EF01DF91CF911F9108950F9349
:10E6E0001F9381E08093B1034091EE01E4EFFBE0E2
:10E6F00020E030E05FE4849199272F5F3F4F829FB5
:10E70000B001839F700D929F700D112446275150C8
:10E71000319657FFF0CF4093EE01ECECFBE020E0A8
:10E7200030E057E2849199272F5F3F4F829FB001DD
:10E73000839F700D929F700D112446275150319682
:10E7400057FFF0CF4093EE018091B003882321F46E
:10E750000E9488728093B0038091EE01833459F057
:10E7600088E190E029E20FB6F894A89580936000C4
:10E770000FBE2093600087EE9FE69093BD038093C9
:10E78000BC0386EF9CE09F938F9306EF12E11F93EB
:10E790000F93E091BC03F091BD0309950F900F908A
:10E7A0000F900F9081E690E09F938F9382E590E029
:10E7B0009F938F931F921F92809102016AE00E94A3
:10E7C000DB76892F99279F938F93809102010E9476
:10E7D000DB7699279F938F938CE19DE09F938F9396
:10E7E0001F930F93E091BC03F091BD03099584EF53
:10E7F0009BE09F938F931F930F93E091BC03F09145
:10E80000BD0309958CEC9BE09F938F931F930F930F
:10E81000E091BC03F091BD0309958DB79EB7469674
:10E820008DBF80E59DE09F938F931F930F93E091A1
:10E83000BC03F091BD03099582EC80938100809127
:10E840006F00806280936F000F900F900F900F9079
:10E850001F910F9108958091B103882361F08091F9
:10E86000EF01843011F40E94F16E8091EE01833447
:10E8700011F01092B10308951F920F920FB60F92EC
:10E8800011242F933F934F935F936F937F938F93B5
:10E890009F93AF93BF93EF93FF932091CE0080910E
:10E8A000FA018823B1F02093C6008091FA018230EA
:10E8B00029F52F3F19F58FEF94E3ACE0B0E0C29754
:10E8C000A109B109B7FFFBCF8091FF038093CE0070
:10E8D00015C09091EF01892F8150833020F4822F51
:10E8E0000E9471670BC0943021F4822F0E94E46E65
:10E8F00005C0953019F4822F0E94236EFF91EF918D
:10E90000BF91AF919F918F917F916F915F914F9147
:10E910003F912F910F900FBE0F901F9018950024DC
:10E9200022273327442751E0BB27EE27FF27A0E10A
:10E93000660F771F881F991F001C221F331F441F5B
:10E94000660F771F881F991F001C221F331F441F4B
:10E950002AF4050E2B1F3E1F4F1F04C0051A2B0B58
:10E960003E0B4F0B550FBB1FEE1F587F556047FDE9
:10E970005250AA95E9F6E695B7955795E695B7955D
:10E980005795852F9B2F08952227332741E0552740
:10E9900068E0880F991F221F331F880F991F221FBD
:10E9A000331F1AF4240F351F02C0241B350B440FEC
:10E9B000551F487F456037FD42506A9551F756957F
:10E9C000479556954795842F0895AA2797FF04C029
:10E9D000809590958A1F9A1F77FF04C06095709567
:10E9E0006A1F7A1F669F9001779FA001679F300D75
:10E9F000411D5A1F300D411D5A1F889FF001999FDC
:10EA00002E0F3F1F401D511D899F300D411D5A1F64
:10EA1000300D411D5A1FCA01B901112480CFFB01DD
:10EA2000DC0102C005900D9241505040D8F7089586
:10EA3000FC014150504030F001900616D1F731975B
:10EA4000CF010895882799270895A0E0B0E0EBE270
:10EA5000F5E70C9453776C017B01EA01590121978A
:10EA60008FEFCF3FD80789F086010894C11CD11CD5
:10EA7000C7010894E11CF11CF5010995F801808398
:10EA80002197FFEFCF3FDF0779F7EAE0CDB7DEB799
:10EA90000C946F77CF92DF92EF92FF920F931F93B8
:10EAA0007C016B01FB010995082FC7010196F60156
:10EAB0000995182FC8011F910F91FF90EF90DF90DB
:10EAC000CF900895A0E0B0E0E8E6F5E70C94557724
:10EAD0008C017B01EA01690121978FEFCF3FD807B5
:10EAE00071F0F70121917F01C8010F5F1F4F622F65
:10EAF000F60109952197FFEFCF3FDF0791F7E8E097
:10EB0000CDB7DEB70C947177CF92DF92EF92FF9280
:10EB10000F931F936C018B017A01FA010995812FE4
:10EB20009927682FC6010196F70109951F910F914A
:10EB3000FF90EF90DF90CF9008955058BB27AA2701
:10EB40000ED0E0C0D1D030F0D6D020F031F49F3FCD
:10EB500011F41EF4C6C00EF4E095E7FBBCC0E92F2B
:10EB6000E2D080F3BA17620773078407950718F09D
:10EB700071F49EF5FAC00EF4E0950B2EBA2FA02D7D
:10EB80000B01B90190010C01CA01A0011124FF275A
:10EB9000591B99F0593F50F4503E68F11A16F04055
:10EBA000A22F232F342F4427585FF3CF4695379554
:10EBB0002795A795F0405395C9F77EF41F16BA0B19
:10EBC000620B730B840BBAF09150A1F0FF0FBB1FC7
:10EBD000661F771F881FC2F70EC0BA0F621F731F10
:10EBE000841F48F4879577956795B795F7959E3F6D
:10EBF00008F0B3CF9395880F08F09927EE0F9795FB
:10EC00008795089598D088F09F5790F0B92F99274D
:10EC1000B751A0F0D1F0660F771F881F991F1AF027
:10EC2000BA95C9F712C0B13081F09FD0B1E0089514
:10EC30009CC0672F782F8827B85F39F0B93FCCF395
:10EC4000869577956795B395D9F73EF4909580951D
:10EC5000709561957F4F8F4F9F4F0895E89409C03D
:10EC600097FB3EF490958095709561957F4F8F4FFF
:10EC70009F4F9923A9F0F92F96E9BB279395F69515
:10EC8000879577956795B795F111F8CFFAF4BB0F93
:10EC900011F460FF1BC06F5F7F4F8F4F9F4F16C0F7
:10ECA000882311F096E911C0772321F09EE8872F81
:10ECB000762F05C0662371F096E8862F70E060E03D
:10ECC0002AF09A95660F771F881FDAF7880F9695B6
:10ECD000879597F9089597F99F6780E870E060E05D
:10ECE00008959FEF80EC089500240A9416161706E5
:10ECF00018060906089500240A941216130614062D
:10ED000005060895092E0394000C11F4882352F08F
:10ED1000BB0F40F4BF2B11F460FF04C06F5F7F4F47
:10ED20008F4F9F4F089557FD9058440F551F59F02E
:10ED30005F3F71F04795880F97FB991F61F09F3FE8
:10ED400079F087950895121613061406551FF2CF11
:10ED50004695F1DF08C0161617061806991FF1CF61
:10ED600086957105610508940895E894BB27662788
:10ED70007727CB0197F90895629FD001739FF00127
:10ED8000829FE00DF11D649FE00DF11D929FF00D3B
:10ED9000839FF00D749FF00D659FF00D9927729F72
:10EDA000B00DE11DF91F639FB00DE11DF91FBD01FD
:10EDB000CF0111240895991B79E004C0991F96177B
:10EDC00008F0961B881F7A95C9F780950895AA1BAD
:10EDD000BB1B51E107C0AA1FBB1FA617B70710F046
:10EDE000A61BB70B881F991F5A95A9F78095909578
:10EDF000BC01CD01089597FB092E07260AD077FDA7
:10EE000004D0E5DF06D000201AF4709561957F4F9D
:10EE10000895F6F7909581959F4F0895A1E21A2ED7
:10EE2000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FAE
:10EE3000A217B307E407F50720F0A21BB30BE40BFE
:10EE4000F50B661F771F881F991F1A9469F7609545
:10EE50007095809590959B01AC01BD01CF010895FF
:10EE600097FB092E05260ED057FD04D0D7DF0AD018
:10EE7000001C38F450954095309521953F4F4F4FE9
:10EE80005F4F0895F6F790958095709561957F4F47
:10EE90008F4F9F4F08952F923F924F925F926F92A4
:10EEA0007F928F929F92AF92BF92CF92DF92EF921A
:10EEB000FF920F931F93CF93DF93CDB7DEB7CA1B9B
:10EEC000DB0B0FB6F894DEBF0FBECDBF09942A88C6
:10EED000398848885F846E847D848C849B84AA846E
:10EEE000B984C884DF80EE80FD800C811B81AA81FB
:10EEF000B981CE0FD11D0FB6F894DEBF0FBECDBFC6
:10EF0000ED010895EE0FFF1F0590F491E02D099497
:02EF1000FFCF31
:10EF12005E010A010164FF01FFFFC01FC01F010162
:10EF220001737373FF03007D0000C409C409640008
:10EF32001148656C6C6F20576F726C6400000000A2
:10EF420000000000000000000000000000000000BF
:10EF520000000000000000000000000000000000AF
:10EF6200000000000000000000000000000000009F
:10EF7200000000000000000000000000000000008F
:10EF82000053706F727400004E6F726D616C0000FE
:10EF9200426567696E6E6572000051756164726FD9
:10EFA2000000640001200B050000ECFF00020406D3
:10EFB200070808080706040200FEFCFAF9F8F8F848
:10EFC200F9FAFCFE000204060708086440415A46AA
:10EFD20064640A02969696960840403A10FB3038CE
:10EFE2000190D0030090D00300F4017800FF036485
:10EFF2000B0A0D0B0C0E0B0F10FA2001010170FF12
:02F00200010FFC
:00000001FF
/Spektrum-Diversity/V0.82a/Hex-Files/WasIstWas.txt
0,0 → 1,17
+++++++++++++++++++++++++
+ Flight-Ctrl:
+++++++++++++++++++++++++
BootLoader_MEGA644_20MHZ_V0_1.hex
Der Bootloader wird per ISP eingespielt
Der Bootloader nur dann eingespielt werden, wenn noch nie ein Bootloader eingespielt wurde!
Danach können Softwareupdates seriell eingespielt werden.
 
Flight-Ctrl_MEGA644_Vx_yy.hex
Aktuelle Firmware
Wird per serielle Schnittstelle (durch den Bootloader) eingespielt
 
Achtung: Die Programme für den ATMEGA1284 dürfen ausschliesslich per Bootloader, also seriell eingespielt werden und NICHT per ISP
 
Warning: do not program the ATMEGA1284 (FC2.1) via SPI. Only use the MKUSB and the Koptertool for update!
 
/Spektrum-Diversity/V0.82a/License.txt
0,0 → 1,52
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nichtkommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-profit use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet, our webpage (http://www.MikroKopter.de) must be
// + clearly linked and named as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/Spektrum-Diversity/V0.82a/Settings.h
--- V0.82a/Spektrum.c (nonexistent)
+++ V0.82a/Spektrum.c (revision 911)
@@ -0,0 +1,407 @@
+/*#######################################################################################
+Decodieren eines RC Summen Signals oder Spektrum Empfänger-Satellit
+#######################################################################################*/
+
+#include "Spektrum.h"
+#include "main.h"
+// Achtung: RECEIVER_SPEKTRUM_EXP wird in der Main.h gesetzt
+
+unsigned char SpektrumTimer = 0;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+unsigned char s_excnt = 0; // Counter for Spektrum-Expander
+unsigned char s_exparity = 0; // Parity Bit for Spektrum-Expander
+signed char s_exdata[11]; // Data for Spektrum-Expander
+#endif
+//--------------------------------------------------------------//
+//--------------------------------------------------------------//
+/*
+void SpektrumBinding(void)
+{
+ unsigned int timerTimeout = SetDelay(10000); // Timeout 10 sec.
+ unsigned char connected = 0;
+ unsigned int delaycounter;
+
+ UCSR1B &= ~(1 << RXCIE1); // disable rx-interrupt
+ UCSR1B &= ~(1<<RXEN1); // disable Uart-Rx
+ PORTD &= ~(1 << PORTD2); // disable pull-up
+
+ printf("\n\rPlease connect Spektrum receiver for binding NOW...");
+
+ while(!CheckDelay(timerTimeout))
+ {
+ if (PIND & (1 << PORTD2)) { timerTimeout = SetDelay(90); connected = 1; break; }
+ }
+
+ if (connected)
+ {
+
+ printf("ok.\n\r");
+ DDRD |= (1 << DDD2); // Rx as output
+
+ while(!CheckDelay(timerTimeout)); // delay after startup of RX
+ for (delaycounter = 0; delaycounter < 100; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+
+ }
+ else
+ { printf("Timeout.\n\r");
+
+
+ }
+
+ DDRD &= ~(1 << DDD2); // RX as input
+ PORTD &= ~(1 << PORTD2);
+
+ SpektrumUartInit(); // init Uart again
+}
+*/
+//############################################################################
+// USART1 initialisation from killagreg
+void SpektrumUartInit(void)
+//############################################################################
+ {
+ // -- Start of USART1 initialisation for Spekturm seriell-mode
+ // USART1 Control and Status Register A, B, C and baud rate register
+ uint8_t sreg = SREG;
+
+ uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 115200) - 1);
+
+ // disable all interrupts before reconfiguration
+ cli();
+ // disable RX-Interrupt
+ UCSR1B &= ~(1 << RXCIE1);
+ // disable TX-Interrupt
+ UCSR1B &= ~(1 << TXCIE1);
+ // disable DRE-Interrupt
+ UCSR1B &= ~(1 << UDRIE1);
+ // set direction of RXD1 and TXD1 pins
+ // set RXD1 (PD2) as an input pin
+ PORTD |= (1 << PORTD2);
+ DDRD &= ~(1 << DDD2);
+
+ // set TXD1 (PD3) as an output pin
+ PORTD |= (1 << PORTD3);
+ DDRD |= (1 << DDD3);
+
+ // USART0 Baud Rate Register
+ // set clock divider
+ UBRR1H = (uint8_t)(ubrr>>8);
+ UBRR1L = (uint8_t)ubrr;
+ // enable double speed operation
+ UCSR1A |= (1 << U2X1);
+ // enable receiver and transmitter
+ //UCSR1B = (1<<RXEN1)|(1<<TXEN1);
+
+ UCSR1B = (1<<RXEN1);
+ // set asynchronous mode
+ UCSR1C &= ~(1 << UMSEL11);
+ UCSR1C &= ~(1 << UMSEL10);
+ // no parity
+ UCSR1C &= ~(1 << UPM11);
+ UCSR1C &= ~(1 << UPM10);
+ // 1 stop bit
+ UCSR1C &= ~(1 << USBS1);
+ // 8-bit
+ UCSR1B &= ~(1 << UCSZ12);
+ UCSR1C |= (1 << UCSZ11);
+ UCSR1C |= (1 << UCSZ10);
+ // flush receive buffer explicit
+ while(UCSR1A & (1<<RXC1)) UDR1;
+ // enable RX-interrupts at the end
+ UCSR1B |= (1 << RXCIE1);
+ // -- End of USART1 initialisation
+ // restore global interrupt flags
+
+ SREG = sreg;
+ return;
+ }
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Copyright (c) Rainer Walther
+// + RC-routines from original MK rc.c (c) H&I
+// + Useful infos from Walter: http://www.rcgroups.com/forums/showthread.php?t=714299&page=2
+// + only for non-profit use
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// 20080808 rw Modified for Spektrum AR6100 (PPM)
+// 20080823 rw Add Spektrum satellite receiver on USART1 (644P only)
+// 20081213 rw Add support for Spektrum DS9 Air-Tx-Module (9 channels)
+// Replace AR6100-coding with original composit-signal routines
+//
+// ---
+// Entweder Summensignal ODER Spektrum-Receiver anschließen. Nicht beides gleichzeitig betreiben!
+// Binding is not implemented. Bind with external Receiver.
+// Servo output J3, J4, J5 not serviced
+//
+// Anschuß Spektrum Receiver
+// Orange: 3V von der FC (keinesfalls an 5V anschließen!)
+// Schwarz: GND
+// Grau: RXD1 (Pin 3) auf 10-Pol FC-Stecker
+//
+// ---
+// Satellite-Reciever connected on USART1:
+//
+// DX7/DX6i: One data-frame at 115200 baud every 22ms.
+// DX7se: One data-frame at 115200 baud every 11ms.
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data (FLT-Mode)
+// byte5: and byte6: channel data (Roll)
+// byte7: and byte8: channel data (Nick)
+// byte9: and byte10: channel data (Gier)
+// byte11: and byte12: channel data (Gear Switch)
+// byte13: and byte14: channel data (Gas)
+// byte15: and byte16: channel data (AUX2)
+//
+// DS9 (9 Channel): One data-frame at 115200 baud every 11ms, alternating frame 1/2 for CH1-7 / CH8-9
+// 1st Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: channel data
+// byte9: and byte10: channel data
+// byte11: and byte12: channel data
+// byte13: and byte14: channel data
+// byte15: and byte16: channel data
+// 2nd Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: 0xffff
+// byte9: and byte10: 0xffff
+// byte11: and byte12: 0xffff
+// byte13: and byte14: 0xffff
+// byte15: and byte16: 0xffff
+//
+// Each channel data (16 bit= 2byte, first msb, second lsb) is arranged as:
+//
+// Bits: F 0 C3 C2 C1 C0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
+//
+// 0 means a '0' bit
+// F: 1 = indicates beginning of 2nd frame for CH8-9 (DS9 only)
+// C3 to C0 is the channel number. 0 to 9 (4 bit, as assigned in the transmitter)
+// D9 to D0 is the channel data (10 bit) 0xaa..0x200..0x356 for 100% transmitter-travel
+//
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+#define MIN_FRAMEGAP 68 // 7ms
+#define MAX_BYTEGAP 3 // 310us
+
+
+//############################################################################
+// Wird im UART-Interrupt aufgerufen
+//############################################################################
+void SpektrumParser(unsigned char c)
+{
+ static unsigned char Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0;
+ unsigned int Channel, index = 0;
+ signed int signal = 0, tmp;
+ int bCheckDelay;
+// c = UDR1; // get data byte
+ if(ReSync == 1)
+ {
+ // wait for beginning of new frame
+ ReSync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ else
+ {
+ if(!SpektrumTimer) bCheckDelay = 1; else bCheckDelay = 0;//CheckDelay(FrameTimer);
+ if ( Sync == 0 )
+ {
+ if(bCheckDelay)
+ {
+ // nach einer Pause von mind. 7ms erstes Sync-Character gefunden
+ // Zeichen ignorieren, da Bedeutung unbekannt
+ Sync = 1;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else
+ {
+ // Zeichen kam vor Ablauf der 7ms Sync-Pause
+ // warten auf erstes Sync-Zeichen
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ }
+ else if((Sync == 1) && !bCheckDelay)
+ {
+ // zweites Sync-Character ignorieren, Bedeutung unbekannt
+ Sync = 2;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else if((Sync == 2) && !bCheckDelay)
+ {
+ SpektrumTimer = MAX_BYTEGAP;
+ // Datenbyte high
+ ByteHigh = c;
+ if (FrameCnt == 2)
+ {
+ // is 1st Byte of Channel-data
+ // Frame 1 with Channel 1-7 comming next
+ Frame2 = 0;
+ if(ByteHigh & 0x80)
+ {
+ // DS9: Frame 2 with Channel 8-9 comming next
+ Frame2 = 1;
+ }
+ }
+ Sync = 3;
+ FrameCnt ++;
+ }
+ else if((Sync == 3) && !bCheckDelay)
+ {
+ // Datenbyte low
+ // High-Byte for next channel comes next
+ SpektrumTimer = MAX_BYTEGAP;
+ Sync = 2;
+ FrameCnt ++;
+ Channel = ((unsigned int)ByteHigh << 8) | c;
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 0x200; // Offset, range 0x000..0x3ff?
+ signal = signal/3; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+ else
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_HI_RES)
+ {
+ signal = Channel & 0x7ff;
+ signal -= 0x400; // Offset, range 0x000..0x7ff?
+ signal = signal/6; // scaling to fit PPM resolution
+ index = (ByteHigh >> 3) & 0x0f;
+ }
+ else
+ //if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_LOW_RES)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 360; // Offset, range 0x000..0x3ff?
+ signal = signal/2; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+
+ index++;
+ if(index < 13)
+ {
+ // Stabiles Signal
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if (index == 2) index = 4; // Analog channel reassigment (2 <-> 4) for logical numbering (1,2,3,4)
+ else if (index == 4) index = 2;
+#endif
+ if(abs(signal - PPM_in[index]) < 6)
+ {
+ if(SenderOkay < 200) SenderOkay += 10;
+ else
+ {
+ SenderOkay = 200;
+ TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
+ }
+ }
+ tmp = (3 * (PPM_in[index]) + signal) / 4;
+ if(tmp > signal+1) tmp--; else
+ if(tmp < signal-1) tmp++;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if(index == 6) // FLIGHT-MODE - The channel used for our data uplink
+ {
+ if (signal > 100) // SYNC received
+ {
+ if (s_exdata[s_excnt] == 125) s_exparity = ~s_exparity; // Bit = 1 -> Re-Invert parity bit
+ if ((s_excnt == 6 && ((s_exparity != 0 && s_exdata[s_excnt] == -125) || (s_exparity == 0 && s_exdata[s_excnt] == 125))) || (s_excnt == 9 && ((s_exparity == 0 && s_exdata[s_excnt] == -125) || (s_exparity != 0 && s_exdata[s_excnt] == 125)))) // Parity check
+ {
+ if (s_exdata[1] == 125 && s_exdata[2] == -125) PPM_in[5] = -125; // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == -125) PPM_in[5] = 0; // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == 125) PPM_in[5] = 125; // Reconstruct tripole Flight-Mode value (CH5)
+ PPM_in[6] = s_exdata[3]; // Elevator (CH6)
+ PPM_in[11] = s_exdata[4]; // Aileron (CH11)
+ PPM_in[12] = s_exdata[5]; // Rudder (CH12)
+
+ if (s_excnt == 9) // New Mode (12 Channels)
+ {
+ if (s_exdata[7] == 125) PPM_in[8] += 5; // Hover Pitch UP (CH8)
+ if (s_exdata[8] == 125) PPM_in[8] -= 5; // Hover Pitch DN (CH8)
+ if (PPM_in[8] < -125) PPM_in[8] = -125; // Range-Limit
+ else if (PPM_in[8] > 125) PPM_in[8] = 125; // Range-Limit
+ PPM_in[10] = s_exdata[6]; // AUX2 (CH10)
+ }
+ }
+
+ s_excnt = 0; // Reset bitcounter
+ s_exparity = 0; // Reset parity bit
+ }
+
+ if (signal < 10) s_exdata[++s_excnt] = -125; // Bit = 0 -> value = -125 (min)
+ if (s_excnt == 10) s_excnt = 0; // Overflow protection
+ if (signal < -100)
+ {
+ s_exdata[s_excnt] = 125; // Bit = 1 -> value = 125 (max)
+ s_exparity = ~s_exparity; // Bit = 1 -> Invert parity bit
+ }
+
+ }
+#endif
+ if(SenderOkay >= 180) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
+ else PPM_diff[index] = 0;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if (index < 5 ) PPM_in[index] = tmp; // Update normal potis (CH1-4)
+ else if (index == 5) PPM_in[7] = signal; // Gear (CH7)
+ else if (index == 7) PPM_in[9] = signal; // Hover Throttle (CH9)
+#else
+ PPM_in[index] = tmp;
+#endif
+ }
+ else if(index > 17) ReSync = 1; // hier stimmt was nicht: neu synchronisieren
+ }
+ else
+ {
+ // hier stimmt was nicht: neu synchronisieren
+ ReSync = 1;
+ FrameCnt = 0;
+ Frame2 = 0;
+ // new frame next, nach fruehestens 7ms erwartet
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+
+ // 16 Bytes eingetroffen -> Komplett
+ if(FrameCnt >= 16)
+ {
+ // Frame complete
+ if(Frame2 == 0)
+ {
+ // Null bedeutet: Neue Daten
+ // nur beim ersten Frame (CH 0-7) setzen
+ if(!ReSync) NewPpmData = 0;
+ }
+ FrameCnt = 0;
+ Frame2 = 0;
+ Sync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+ }
+}
/Spektrum-Diversity/V0.82a/Spektrum.d
0,0 → 1,3
Spektrum.o Spektrum.d : Spektrum.c Spektrum.h main.h old_macros.h printf_P.h timer0.h \
uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h capacity.h eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/Spektrum.h
0,0 → 1,12
/*#######################################################################################
Dekodieren eines Spektrum Signals
#######################################################################################*/
 
#ifndef _SPEKTRUM_H
#define _SPEKTRUM_H
void SpektrumUartInit(void);
void SpektrumBinding(void);
extern unsigned char SpektrumTimer;
extern void SpektrumParser(unsigned char c);
 
#endif //_RC_H
/Spektrum-Diversity/V0.82a/Spektrum.lst
0,0 → 1,406
1 .file "Spektrum.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global SpektrumUartInit
12 SpektrumUartInit:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 9FB7 in r25,95-0x20
16 /* #APP */
17 0002 F894 cli
18 /* #NOAPP */
19 0004 8091 C900 lds r24,201
20 0008 8F77 andi r24,lo8(127)
21 000a 8093 C900 sts 201,r24
22 000e 8091 C900 lds r24,201
23 0012 8F7B andi r24,lo8(-65)
24 0014 8093 C900 sts 201,r24
25 0018 8091 C900 lds r24,201
26 001c 8F7D andi r24,lo8(-33)
27 001e 8093 C900 sts 201,r24
28 0022 5A9A sbi 43-0x20,2
29 0024 5298 cbi 42-0x20,2
30 0026 5B9A sbi 43-0x20,3
31 0028 539A sbi 42-0x20,3
32 002a 1092 CD00 sts 205,__zero_reg__
33 002e 84E1 ldi r24,lo8(20)
34 0030 8093 CC00 sts 204,r24
35 0034 8091 C800 lds r24,200
36 0038 8260 ori r24,lo8(2)
37 003a 8093 C800 sts 200,r24
38 003e 80E1 ldi r24,lo8(16)
39 0040 8093 C900 sts 201,r24
40 0044 8091 CA00 lds r24,202
41 0048 8F77 andi r24,lo8(127)
42 004a 8093 CA00 sts 202,r24
43 004e 8091 CA00 lds r24,202
44 0052 8F7B andi r24,lo8(-65)
45 0054 8093 CA00 sts 202,r24
46 0058 8091 CA00 lds r24,202
47 005c 8F7D andi r24,lo8(-33)
48 005e 8093 CA00 sts 202,r24
49 0062 8091 CA00 lds r24,202
50 0066 8F7E andi r24,lo8(-17)
51 0068 8093 CA00 sts 202,r24
52 006c 8091 CA00 lds r24,202
53 0070 877F andi r24,lo8(-9)
54 0072 8093 CA00 sts 202,r24
55 0076 8091 C900 lds r24,201
56 007a 8B7F andi r24,lo8(-5)
57 007c 8093 C900 sts 201,r24
58 0080 8091 CA00 lds r24,202
59 0084 8460 ori r24,lo8(4)
60 0086 8093 CA00 sts 202,r24
61 008a 8091 CA00 lds r24,202
62 008e 8260 ori r24,lo8(2)
63 0090 8093 CA00 sts 202,r24
64 0094 00C0 rjmp .L2
65 .L3:
66 0096 8091 CE00 lds r24,206
67 .L2:
68 009a 8091 C800 lds r24,200
69 009e 87FD sbrc r24,7
70 00a0 00C0 rjmp .L3
71 00a2 8091 C900 lds r24,201
72 00a6 8068 ori r24,lo8(-128)
73 00a8 8093 C900 sts 201,r24
74 00ac 9FBF out 95-0x20,r25
75 /* epilogue: frame size=0 */
76 00ae 0895 ret
77 /* epilogue end (size=1) */
78 /* function SpektrumUartInit size 89 (88) */
80 .global SpektrumParser
82 SpektrumParser:
83 /* prologue: frame size=0 */
84 00b0 0F93 push r16
85 00b2 1F93 push r17
86 00b4 CF93 push r28
87 00b6 DF93 push r29
88 /* prologue end (size=4) */
89 00b8 982F mov r25,r24
90 00ba 8091 0000 lds r24,ReSync.2543
91 00be 8130 cpi r24,lo8(1)
92 00c0 01F4 brne .L7
93 00c2 1092 0000 sts ReSync.2543,__zero_reg__
94 00c6 84E4 ldi r24,lo8(68)
95 00c8 8093 0000 sts SpektrumTimer,r24
96 00cc 1092 0000 sts FrameCnt.2541,__zero_reg__
97 00d0 1092 0000 sts Sync.2540,__zero_reg__
98 00d4 1092 0000 sts ByteHigh.2542,__zero_reg__
99 00d8 00C0 rjmp .L50
100 .L7:
101 00da 20E0 ldi r18,lo8(0)
102 00dc 8091 0000 lds r24,SpektrumTimer
103 00e0 8823 tst r24
104 00e2 01F4 brne .L10
105 00e4 21E0 ldi r18,lo8(1)
106 .L10:
107 00e6 8091 0000 lds r24,Sync.2540
108 00ea 8823 tst r24
109 00ec 01F4 brne .L11
110 00ee 2223 tst r18
111 00f0 01F0 breq .L13
112 00f2 81E0 ldi r24,lo8(1)
113 00f4 00C0 rjmp .L54
114 .L13:
115 00f6 84E4 ldi r24,lo8(68)
116 00f8 8093 0000 sts SpektrumTimer,r24
117 00fc 1092 0000 sts FrameCnt.2541,__zero_reg__
118 0100 1092 0000 sts Sync.2540,__zero_reg__
119 0104 1092 0000 sts ByteHigh.2542,__zero_reg__
120 0108 00C0 rjmp .L15
121 .L11:
122 010a 8130 cpi r24,lo8(1)
123 010c 01F4 brne .L16
124 010e 2223 tst r18
125 0110 01F0 breq .+2
126 0112 00C0 rjmp .L25
127 0114 82E0 ldi r24,lo8(2)
128 .L54:
129 0116 8093 0000 sts Sync.2540,r24
130 011a 8091 0000 lds r24,FrameCnt.2541
131 011e 8F5F subi r24,lo8(-(1))
132 0120 8093 0000 sts FrameCnt.2541,r24
133 0124 83E0 ldi r24,lo8(3)
134 0126 00C0 rjmp .L53
135 .L16:
136 0128 8230 cpi r24,lo8(2)
137 012a 01F4 brne .L19
138 012c 2223 tst r18
139 012e 01F0 breq .+2
140 0130 00C0 rjmp .L25
141 0132 83E0 ldi r24,lo8(3)
142 0134 8093 0000 sts SpektrumTimer,r24
143 0138 9093 0000 sts ByteHigh.2542,r25
144 013c 2091 0000 lds r18,FrameCnt.2541
145 0140 2230 cpi r18,lo8(2)
146 0142 01F4 brne .L22
147 0144 1092 0000 sts Frame2.2544,__zero_reg__
148 0148 97FF sbrs r25,7
149 014a 00C0 rjmp .L22
150 014c 81E0 ldi r24,lo8(1)
151 014e 8093 0000 sts Frame2.2544,r24
152 .L22:
153 0152 83E0 ldi r24,lo8(3)
154 0154 8093 0000 sts Sync.2540,r24
155 0158 2F5F subi r18,lo8(-(1))
156 015a 2093 0000 sts FrameCnt.2541,r18
157 015e 00C0 rjmp .L15
158 .L19:
159 0160 8330 cpi r24,lo8(3)
160 0162 01F0 breq .+2
161 0164 00C0 rjmp .L25
162 0166 2223 tst r18
163 0168 01F0 breq .+2
164 016a 00C0 rjmp .L25
165 016c 8093 0000 sts SpektrumTimer,r24
166 0170 82E0 ldi r24,lo8(2)
167 0172 8093 0000 sts Sync.2540,r24
168 0176 8091 0000 lds r24,FrameCnt.2541
169 017a 8F5F subi r24,lo8(-(1))
170 017c 8093 0000 sts FrameCnt.2541,r24
171 0180 4091 0000 lds r20,ByteHigh.2542
172 0184 292F mov r18,r25
173 0186 30E0 ldi r19,lo8(0)
174 0188 842F mov r24,r20
175 018a 90E0 ldi r25,lo8(0)
176 018c 982F mov r25,r24
177 018e 8827 clr r24
178 0190 282B or r18,r24
179 0192 392B or r19,r25
180 0194 8091 0000 lds r24,EE_Parameter+39
181 0198 8130 cpi r24,lo8(1)
182 019a 01F4 brne .L28
183 019c 3370 andi r19,hi8(1023)
184 019e C901 movw r24,r18
185 01a0 8050 subi r24,lo8(-(-512))
186 01a2 9240 sbci r25,hi8(-(-512))
187 01a4 63E0 ldi r22,lo8(3)
188 01a6 70E0 ldi r23,hi8(3)
189 01a8 00C0 rjmp .L51
190 .L28:
191 01aa 8230 cpi r24,lo8(2)
192 01ac 01F4 brne .L31
193 01ae 3770 andi r19,hi8(2047)
194 01b0 C901 movw r24,r18
195 01b2 8050 subi r24,lo8(-(-1024))
196 01b4 9440 sbci r25,hi8(-(-1024))
197 01b6 66E0 ldi r22,lo8(6)
198 01b8 70E0 ldi r23,hi8(6)
199 01ba 0E94 0000 call __divmodhi4
200 01be EB01 movw r28,r22
201 01c0 4695 lsr r20
202 01c2 4695 lsr r20
203 01c4 4695 lsr r20
204 01c6 00C0 rjmp .L52
205 .L31:
206 01c8 3370 andi r19,hi8(1023)
207 01ca C901 movw r24,r18
208 01cc 8856 subi r24,lo8(-(-360))
209 01ce 9140 sbci r25,hi8(-(-360))
210 01d0 62E0 ldi r22,lo8(2)
211 01d2 70E0 ldi r23,hi8(2)
212 .L51:
213 01d4 0E94 0000 call __divmodhi4
214 01d8 EB01 movw r28,r22
215 01da 4695 lsr r20
216 01dc 4695 lsr r20
217 .L52:
218 01de 842F mov r24,r20
219 01e0 90E0 ldi r25,lo8(0)
220 01e2 8F70 andi r24,lo8(15)
221 01e4 9070 andi r25,hi8(15)
222 01e6 8C01 movw r16,r24
223 01e8 0F5F subi r16,lo8(-(1))
224 01ea 1F4F sbci r17,hi8(-(1))
225 01ec 0D30 cpi r16,13
226 01ee 1105 cpc r17,__zero_reg__
227 01f0 00F0 brlo .+2
228 01f2 00C0 rjmp .L15
229 01f4 F801 movw r30,r16
230 01f6 EE0F lsl r30
231 01f8 FF1F rol r31
232 01fa E050 subi r30,lo8(-(PPM_in))
233 01fc F040 sbci r31,hi8(-(PPM_in))
234 01fe 8081 ld r24,Z
235 0200 9181 ldd r25,Z+1
236 0202 9E01 movw r18,r28
237 0204 281B sub r18,r24
238 0206 390B sbc r19,r25
239 0208 C901 movw r24,r18
240 020a 37FF sbrs r19,7
241 020c 00C0 rjmp .L35
242 020e 9095 com r25
243 0210 8195 neg r24
244 0212 9F4F sbci r25,lo8(-1)
245 .L35:
246 0214 0697 sbiw r24,6
247 0216 04F4 brge .L34
248 0218 8091 0000 lds r24,SenderOkay
249 021c 883C cpi r24,lo8(-56)
250 021e 00F4 brsh .L37
251 0220 8091 0000 lds r24,SenderOkay
252 0224 865F subi r24,lo8(-(10))
253 0226 8093 0000 sts SenderOkay,r24
254 022a 00C0 rjmp .L34
255 .L37:
256 022c 88EC ldi r24,lo8(-56)
257 022e 8093 0000 sts SenderOkay,r24
258 0232 8091 6F00 lds r24,111
259 0236 8F7D andi r24,lo8(-33)
260 0238 8093 6F00 sts 111,r24
261 .L34:
262 023c F801 movw r30,r16
263 023e EE0F lsl r30
264 0240 FF1F rol r31
265 0242 E050 subi r30,lo8(-(PPM_in))
266 0244 F040 sbci r31,hi8(-(PPM_in))
267 0246 2081 ld r18,Z
268 0248 3181 ldd r19,Z+1
269 024a C901 movw r24,r18
270 024c 880F lsl r24
271 024e 991F rol r25
272 0250 820F add r24,r18
273 0252 931F adc r25,r19
274 0254 8C0F add r24,r28
275 0256 9D1F adc r25,r29
276 0258 64E0 ldi r22,lo8(4)
277 025a 70E0 ldi r23,hi8(4)
278 025c 0E94 0000 call __divmodhi4
279 0260 9B01 movw r18,r22
280 0262 CE01 movw r24,r28
281 0264 0196 adiw r24,1
282 0266 8617 cp r24,r22
283 0268 9707 cpc r25,r23
284 026a 04F4 brge .L39
285 026c 2150 subi r18,lo8(-(-1))
286 026e 3040 sbci r19,hi8(-(-1))
287 0270 00C0 rjmp .L41
288 .L39:
289 0272 2197 sbiw r28,1
290 0274 6C17 cp r22,r28
291 0276 7D07 cpc r23,r29
292 0278 04F4 brge .L41
293 027a 2F5F subi r18,lo8(-(1))
294 027c 3F4F sbci r19,hi8(-(1))
295 .L41:
296 027e 8091 0000 lds r24,SenderOkay
297 0282 E801 movw r28,r16
298 0284 CC0F lsl r28
299 0286 DD1F rol r29
300 0288 843B cpi r24,lo8(-76)
301 028a 00F0 brlo .L43
302 028c FE01 movw r30,r28
303 028e E050 subi r30,lo8(-(PPM_in))
304 0290 F040 sbci r31,hi8(-(PPM_in))
305 0292 8081 ld r24,Z
306 0294 9181 ldd r25,Z+1
307 0296 A901 movw r20,r18
308 0298 481B sub r20,r24
309 029a 590B sbc r21,r25
310 029c CA01 movw r24,r20
311 029e 63E0 ldi r22,lo8(3)
312 02a0 70E0 ldi r23,hi8(3)
313 02a2 0E94 0000 call __divmodhi4
314 02a6 CB01 movw r24,r22
315 02a8 880F lsl r24
316 02aa 991F rol r25
317 02ac 860F add r24,r22
318 02ae 971F adc r25,r23
319 02b0 C050 subi r28,lo8(-(PPM_diff))
320 02b2 D040 sbci r29,hi8(-(PPM_diff))
321 02b4 9983 std Y+1,r25
322 02b6 8883 st Y,r24
323 02b8 00C0 rjmp .L45
324 .L43:
325 02ba C050 subi r28,lo8(-(PPM_diff))
326 02bc D040 sbci r29,hi8(-(PPM_diff))
327 02be 1982 std Y+1,__zero_reg__
328 02c0 1882 st Y,__zero_reg__
329 .L45:
330 02c2 000F lsl r16
331 02c4 111F rol r17
332 02c6 0050 subi r16,lo8(-(PPM_in))
333 02c8 1040 sbci r17,hi8(-(PPM_in))
334 02ca F801 movw r30,r16
335 02cc 3183 std Z+1,r19
336 02ce 2083 st Z,r18
337 02d0 00C0 rjmp .L15
338 .L25:
339 02d2 81E0 ldi r24,lo8(1)
340 02d4 8093 0000 sts ReSync.2543,r24
341 02d8 1092 0000 sts FrameCnt.2541,__zero_reg__
342 02dc 1092 0000 sts Frame2.2544,__zero_reg__
343 02e0 84E4 ldi r24,lo8(68)
344 .L53:
345 02e2 8093 0000 sts SpektrumTimer,r24
346 .L15:
347 02e6 8091 0000 lds r24,FrameCnt.2541
348 02ea 8031 cpi r24,lo8(16)
349 02ec 00F0 brlo .L50
350 02ee 8091 0000 lds r24,Frame2.2544
351 02f2 8823 tst r24
352 02f4 01F4 brne .L47
353 02f6 8091 0000 lds r24,ReSync.2543
354 02fa 8823 tst r24
355 02fc 01F4 brne .L47
356 02fe 1092 0000 sts NewPpmData,__zero_reg__
357 .L47:
358 0302 1092 0000 sts FrameCnt.2541,__zero_reg__
359 0306 1092 0000 sts Frame2.2544,__zero_reg__
360 030a 1092 0000 sts Sync.2540,__zero_reg__
361 030e 84E4 ldi r24,lo8(68)
362 0310 8093 0000 sts SpektrumTimer,r24
363 .L50:
364 /* epilogue: frame size=0 */
365 0314 DF91 pop r29
366 0316 CF91 pop r28
367 0318 1F91 pop r17
368 031a 0F91 pop r16
369 031c 0895 ret
370 /* epilogue end (size=5) */
371 /* function SpektrumParser size 315 (306) */
373 .global SpektrumTimer
374 .global SpektrumTimer
375 .section .bss
378 SpektrumTimer:
379 0000 00 .skip 1,0
380 .lcomm Frame2.2544,1
381 .data
384 ReSync.2543:
385 0000 01 .byte 1
386 .lcomm ByteHigh.2542,1
387 .lcomm FrameCnt.2541,1
388 .lcomm Sync.2540,1
389 /* File "Spektrum.c": code 404 = 0x0194 ( 394), prologues 4, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 Spektrum.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:12 .text:00000000 SpektrumUartInit
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:82 .text:000000b0 SpektrumParser
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:384 .data:00000000 ReSync.2543
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:378 .bss:00000000 SpektrumTimer
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:386 .bss:00000003 FrameCnt.2541
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:387 .bss:00000004 Sync.2540
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:380 .bss:00000002 ByteHigh.2542
.bss:00000001 Frame2.2544
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
__divmodhi4
PPM_in
SenderOkay
PPM_diff
NewPpmData
/Spektrum-Diversity/V0.82a/analog.c
0,0 → 1,283
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "eeprom.h"
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 100;
volatile int AdWertNickFilter = 0, AdWertRollFilter = 0, AdWertGierFilter = 0;
volatile int HiResNick = 2500, HiResRoll = 2500;
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0;
volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0;
volatile char messanzahl_AccHoch = 0;
volatile long Luftdruck = 32000;
volatile long SummenHoehe = 0;
volatile int StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
signed char ExpandBaro = 0;
volatile int VarioMeter = 0;
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
volatile unsigned char AdReady = 1;
float NeutralAccZ_float;
//#######################################################################################
//
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
ANALOG_ON;
}
 
#define DESIRED_H_ADC 800
 
void SucheLuftruckOffset(void)
{
unsigned int off;
ExpandBaro = 0;
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
{
unsigned char off2;
OCR0A = 150;
off2 = GetParamByte(PID_PRESSURE_OFFSET);
if(off2 < 230) off2 += 10;
OCR0B = off2;
Delay_ms_Mess(100);
if(MessLuftdruck > DESIRED_H_ADC) off2 = 240;
for(; off2 >= 5; off2 -= 5)
{
OCR0B = off2;
Delay_ms_Mess(50);
printf("*");
if(MessLuftdruck > DESIRED_H_ADC) break;
}
SetParamByte(PID_PRESSURE_OFFSET, off2);
if(off2 >= 15) off = 140; else off = 0;
for(; off < 250;off++)
{
OCR0A = off;
Delay_ms_Mess(50);
printf(".");
if(MessLuftdruck < DESIRED_H_ADC) break;
}
DruckOffsetSetting = off;
}
#else
off = GetParamByte(PID_PRESSURE_OFFSET);
if(off > 20) off -= 10;
OCR0A = off;
Delay_ms_Mess(100);
if(MessLuftdruck < DESIRED_H_ADC) off = 0;
for(; off < 250;off++)
{
OCR0A = off;
Delay_ms_Mess(50);
printf(".");
if(MessLuftdruck < DESIRED_H_ADC) break;
}
DruckOffsetSetting = off;
SetParamByte(PID_PRESSURE_OFFSET, off);
#endif
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && (DruckOffsetSetting < 10 || DruckOffsetSetting >= 245)) VersionInfo.HardwareError[0] |= FC_ERROR0_PRESSURE;
OCR0A = off;
Delay_ms_Mess(300);
}
 
 
void SucheGyroOffset(void)
{
unsigned char i, ready = 0;
int timeout;
timeout = SetDelay(2000);
for(i=140; i != 0; i--)
{
if(ready == 3 && i > 10) i = 9;
ready = 0;
if(AdWertNick < 1020) AnalogOffsetNick--; else if(AdWertNick > 1030) AnalogOffsetNick++; else ready++;
if(AdWertRoll < 1020) AnalogOffsetRoll--; else if(AdWertRoll > 1030) AnalogOffsetRoll++; else ready++;
if(AdWertGier < 1020) AnalogOffsetGier--; else if(AdWertGier > 1030) AnalogOffsetGier++; else ready++;
I2C_Start(TWI_STATE_GYRO_OFFSET_TX);
if(AnalogOffsetNick < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; AnalogOffsetNick = 10;}; if(AnalogOffsetNick > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; AnalogOffsetNick = 245;};
if(AnalogOffsetRoll < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; AnalogOffsetRoll = 10;}; if(AnalogOffsetRoll > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; AnalogOffsetRoll = 245;};
if(AnalogOffsetGier < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; AnalogOffsetGier = 10;}; if(AnalogOffsetGier > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; AnalogOffsetGier = 245;};
while(twi_state) if(CheckDelay(timeout)) {printf("\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"); break;}
AdReady = 0;
ANALOG_ON;
while(!AdReady);
if(i<10) Delay_ms_Mess(10);
}
Delay_ms_Mess(70);
}
 
/*
0 n
1 r
2 g
3 y
4 x
5 n
6 r
7 u
8 z
9 L
10 n
11 r
12 g
13 y
14 x
15 n
16 r
17 L
*/
 
//#######################################################################################
//
ISR(ADC_vect)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed char subcount = 0;
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
static char messanzahl_Druck = 0;
switch(state++)
{
case 0:
nick1 = ADC;
kanal = AD_ROLL;
break;
case 1:
roll1 = ADC;
kanal = AD_GIER;
break;
case 2:
gier1 = ADC;
kanal = AD_ACC_Y;
break;
case 3:
Aktuell_ay = NeutralAccY - ADC;
accy = Aktuell_ay;
kanal = AD_ACC_X;
break;
case 4:
Aktuell_ax = ADC - NeutralAccX;
accx = Aktuell_ax;
kanal = AD_NICK;
break;
case 5:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 6:
roll1 += ADC;
kanal = AD_UBAT;
break;
case 7:
UBat = (3 * UBat + ADC / 3) / 4;
kanal = AD_ACC_Z;
break;
case 8:
AdWertAccHoch = (signed int) ADC - NeutralAccZ;
if(AdWertAccHoch > 1)
{
if(NeutralAccZ < 750)
{
subcount += 5;
if(modell_fliegt < 500) subcount += 10;
}
if(subcount > 100) { NeutralAccZ++; subcount -= 100;}
}
else if(AdWertAccHoch < -1)
{
if(NeutralAccZ > 550)
{
subcount -= 5;
if(modell_fliegt < 500) subcount -= 10;
if(subcount < -100) { NeutralAccZ--; subcount += 100;}
}
}
messanzahl_AccHoch = 1;
Aktuell_az = ADC;
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
kanal = AD_DRUCK;
break;
// "case 9:" fehlt hier absichtlich
case 10:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 11:
roll1 += ADC;
kanal = AD_GIER;
break;
case 12:
if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2;
else
if(PlatinenVersion >= 20) AdWertGier = 2047 - (ADC + gier1);
else AdWertGier = (ADC + gier1);
kanal = AD_ACC_Y;
break;
case 13:
Aktuell_ay = NeutralAccY - ADC;
AdWertAccRoll = (Aktuell_ay + accy);
kanal = AD_ACC_X;
break;
case 14:
Aktuell_ax = ADC - NeutralAccX;
AdWertAccNick = (Aktuell_ax + accx);
kanal = AD_NICK;
break;
case 15:
nick1 += ADC;
if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4;
AdWertNick = nick1 / 8;
nick_filter = (nick_filter + nick1) / 2;
HiResNick = nick_filter - AdNeutralNick;
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2;
kanal = AD_ROLL;
break;
case 16:
roll1 += ADC;
if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4;
AdWertRoll = roll1 / 8;
roll_filter = (roll_filter + roll1) / 2;
HiResRoll = roll_filter - AdNeutralRoll;
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2;
kanal = AD_DRUCK;
break;
case 17:
state = 0;
AdReady = 1;
ZaehlMessungen++;
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
tmpLuftdruck += MessLuftdruck;
if(++messanzahl_Druck >= 18)
{
Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step
HoehenWert = StartLuftdruck - Luftdruck;
SummenHoehe -= SummenHoehe/SM_FILTER;
SummenHoehe += HoehenWert;
VarioMeter = (31 * VarioMeter + 8 * (int)(HoehenWert - SummenHoehe/SM_FILTER))/32;
tmpLuftdruck /= 2;
messanzahl_Druck = 18/2;
}
kanal = AD_NICK;
break;
default:
kanal = 0; state = 0; kanal = AD_NICK;
break;
}
ADMUX = kanal;
if(state != 0) ANALOG_ON;
}
 
/Spektrum-Diversity/V0.82a/analog.d
0,0 → 1,3
analog.o analog.d : analog.c main.h old_macros.h printf_P.h timer0.h uart.h \
analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h \
capacity.h eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/analog.h
0,0 → 1,47
#ifndef _ANALOG_H
#define _ANALOG_H
/*#######################################################################################
 
#######################################################################################*/
 
#define SM_FILTER 16
 
extern volatile int UBat;
extern volatile int AdWertNick, AdWertRoll, AdWertGier;
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch;
extern volatile int HiResNick, HiResRoll;
extern volatile int AdWertNickFilter, AdWertRollFilter, AdWertGierFilter;
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az;
extern volatile long Luftdruck;
extern volatile long SummenHoehe;
extern volatile char messanzahl_Druck;
extern volatile unsigned int ZaehlMessungen;
extern unsigned char DruckOffsetSetting;
extern signed char ExpandBaro;
extern volatile int VarioMeter;
extern volatile unsigned int MessLuftdruck;
extern volatile int StartLuftdruck;
extern volatile char MessanzahlNick;
extern unsigned char AnalogOffsetNick,AnalogOffsetRoll,AnalogOffsetGier;
extern volatile unsigned char AdReady;
 
unsigned int ReadADC(unsigned char adc_input);
void ADC_Init(void);
void SucheLuftruckOffset(void);
void SucheGyroOffset(void);
 
#define AD_GIER 0
#define AD_ROLL 1
#define AD_NICK 2
#define AD_DRUCK 3
#define AD_UBAT 4
#define AD_ACC_Z 5
#define AD_ACC_Y 6
#define AD_ACC_X 7
 
 
#define ANALOG_OFF ADCSRA=0
 
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE)
//Signle trigger Mode, Interrupt on
#endif //_ANALOG_H
/Spektrum-Diversity/V0.82a/analog.lst
0,0 → 1,1262
1 .file "analog.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global ADC_Init
12 ADC_Init:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 1092 7C00 sts 124,__zero_reg__
16 0004 8FEC ldi r24,lo8(-49)
17 0006 8093 7A00 sts 122,r24
18 /* epilogue: frame size=0 */
19 000a 0895 ret
20 /* epilogue end (size=1) */
21 /* function ADC_Init size 6 (5) */
23 .global __vector_24
25 __vector_24:
26 /* prologue: frame size=0 */
27 000c 1F92 push __zero_reg__
28 000e 0F92 push __tmp_reg__
29 0010 0FB6 in __tmp_reg__,__SREG__
30 0012 0F92 push __tmp_reg__
31 0014 1124 clr __zero_reg__
32 0016 6F92 push r6
33 0018 7F92 push r7
34 001a 8F92 push r8
35 001c 9F92 push r9
36 001e AF92 push r10
37 0020 BF92 push r11
38 0022 CF92 push r12
39 0024 DF92 push r13
40 0026 EF92 push r14
41 0028 FF92 push r15
42 002a 0F93 push r16
43 002c 1F93 push r17
44 002e 2F93 push r18
45 0030 3F93 push r19
46 0032 4F93 push r20
47 0034 5F93 push r21
48 0036 6F93 push r22
49 0038 7F93 push r23
50 003a 8F93 push r24
51 003c 9F93 push r25
52 003e AF93 push r26
53 0040 BF93 push r27
54 0042 EF93 push r30
55 0044 FF93 push r31
56 /* prologue end (size=29) */
57 0046 8091 0000 lds r24,state.2593
58 004a 8F5F subi r24,lo8(-(1))
59 004c 8093 0000 sts state.2593,r24
60 0050 8150 subi r24,lo8(-(-1))
61 0052 E82F mov r30,r24
62 0054 F0E0 ldi r31,lo8(0)
63 0056 E231 cpi r30,18
64 0058 F105 cpc r31,__zero_reg__
65 005a 00F0 brlo .+2
66 005c 00C0 rjmp .L4
67 005e E050 subi r30,lo8(-(gs(.L23)))
**** Warning:expression dangerous with linker stubs
68 0060 F040 sbci r31,hi8(-(gs(.L23)))
**** Warning:expression dangerous with linker stubs
69 0062 0C94 0000 jmp __tablejump2__
70 .data
71 .section .progmem.gcc_sw_table, "a", @progbits
72 .p2align 1
73 .L23:
74 .data
75 .section .progmem.gcc_sw_table, "a", @progbits
76 .p2align 1
77 0000 0000 .word gs(.L5)
78 0002 0000 .word gs(.L6)
79 0004 0000 .word gs(.L7)
80 0006 0000 .word gs(.L8)
81 0008 0000 .word gs(.L9)
82 000a 0000 .word gs(.L15)
83 000c 0000 .word gs(.L11)
84 000e 0000 .word gs(.L12)
85 0010 0000 .word gs(.L13)
86 0012 0000 .word gs(.L14)
87 0014 0000 .word gs(.L15)
88 0016 0000 .word gs(.L16)
89 0018 0000 .word gs(.L17)
90 001a 0000 .word gs(.L18)
91 001c 0000 .word gs(.L19)
92 001e 0000 .word gs(.L20)
93 0020 0000 .word gs(.L21)
94 0022 0000 .word gs(.L22)
95 .text
96 .L5:
97 0066 8091 7800 lds r24,120
98 006a 9091 7900 lds r25,(120)+1
99 006e 9093 0000 sts (nick1.2597)+1,r25
100 0072 8093 0000 sts nick1.2597,r24
101 0076 00C0 rjmp .L59
102 .L6:
103 0078 8091 7800 lds r24,120
104 007c 9091 7900 lds r25,(120)+1
105 0080 00C0 rjmp .L58
106 .L7:
107 0082 8091 7800 lds r24,120
108 0086 9091 7900 lds r25,(120)+1
109 008a 9093 0000 sts (gier1.2595)+1,r25
110 008e 8093 0000 sts gier1.2595,r24
111 0092 00C0 rjmp .L60
112 .L8:
113 0094 2091 7800 lds r18,120
114 0098 3091 7900 lds r19,(120)+1
115 009c 8091 0000 lds r24,NeutralAccY
116 00a0 9091 0000 lds r25,(NeutralAccY)+1
117 00a4 821B sub r24,r18
118 00a6 930B sbc r25,r19
119 00a8 9093 0000 sts (Aktuell_ay)+1,r25
120 00ac 8093 0000 sts Aktuell_ay,r24
121 00b0 8091 0000 lds r24,Aktuell_ay
122 00b4 9091 0000 lds r25,(Aktuell_ay)+1
123 00b8 9093 0000 sts (accy.2600)+1,r25
124 00bc 8093 0000 sts accy.2600,r24
125 00c0 00C0 rjmp .L61
126 .L9:
127 00c2 8091 7800 lds r24,120
128 00c6 9091 7900 lds r25,(120)+1
129 00ca 2091 0000 lds r18,NeutralAccX
130 00ce 3091 0000 lds r19,(NeutralAccX)+1
131 00d2 821B sub r24,r18
132 00d4 930B sbc r25,r19
133 00d6 9093 0000 sts (Aktuell_ax)+1,r25
134 00da 8093 0000 sts Aktuell_ax,r24
135 00de 8091 0000 lds r24,Aktuell_ax
136 00e2 9091 0000 lds r25,(Aktuell_ax)+1
137 00e6 9093 0000 sts (accx.2601)+1,r25
138 00ea 8093 0000 sts accx.2601,r24
139 00ee 00C0 rjmp .L62
140 .L11:
141 00f0 8091 7800 lds r24,120
142 00f4 9091 7900 lds r25,(120)+1
143 00f8 2091 0000 lds r18,roll1.2596
144 00fc 3091 0000 lds r19,(roll1.2596)+1
145 0100 280F add r18,r24
146 0102 391F adc r19,r25
147 0104 3093 0000 sts (roll1.2596)+1,r19
148 0108 2093 0000 sts roll1.2596,r18
149 010c 84E0 ldi r24,lo8(4)
150 010e 00C0 rjmp .L57
151 .L12:
152 0110 4091 0000 lds r20,UBat
153 0114 5091 0000 lds r21,(UBat)+1
154 0118 8091 7800 lds r24,120
155 011c 9091 7900 lds r25,(120)+1
156 0120 9A01 movw r18,r20
157 0122 220F lsl r18
158 0124 331F rol r19
159 0126 240F add r18,r20
160 0128 351F adc r19,r21
161 012a 63E0 ldi r22,lo8(3)
162 012c 70E0 ldi r23,hi8(3)
163 012e 0E94 0000 call __udivmodhi4
164 0132 260F add r18,r22
165 0134 371F adc r19,r23
166 0136 3695 lsr r19
167 0138 2795 ror r18
168 013a 3695 lsr r19
169 013c 2795 ror r18
170 013e 3093 0000 sts (UBat)+1,r19
171 0142 2093 0000 sts UBat,r18
172 0146 85E0 ldi r24,lo8(5)
173 0148 00C0 rjmp .L57
174 .L13:
175 014a 8091 7800 lds r24,120
176 014e 9091 7900 lds r25,(120)+1
177 0152 4091 0000 lds r20,NeutralAccZ
178 0156 5091 0000 lds r21,(NeutralAccZ)+1
179 015a 841B sub r24,r20
180 015c 950B sbc r25,r21
181 015e 9093 0000 sts (AdWertAccHoch)+1,r25
182 0162 8093 0000 sts AdWertAccHoch,r24
183 0166 8091 0000 lds r24,AdWertAccHoch
184 016a 9091 0000 lds r25,(AdWertAccHoch)+1
185 016e 0297 sbiw r24,2
186 0170 04F0 brlt .L25
187 0172 22E0 ldi r18,hi8(750)
188 0174 4E3E cpi r20,lo8(750)
189 0176 5207 cpc r21,r18
190 0178 04F4 brge .L27
191 017a 2091 0000 lds r18,subcount.2594
192 017e 2B5F subi r18,lo8(-(5))
193 0180 2093 0000 sts subcount.2594,r18
194 0184 2550 subi r18,lo8(-(-5))
195 0186 8091 0000 lds r24,modell_fliegt
196 018a 9091 0000 lds r25,(modell_fliegt)+1
197 018e 845F subi r24,lo8(500)
198 0190 9140 sbci r25,hi8(500)
199 0192 00F4 brsh .L27
200 0194 215F subi r18,lo8(-(15))
201 0196 2093 0000 sts subcount.2594,r18
202 .L27:
203 019a 8091 0000 lds r24,subcount.2594
204 019e 8536 cpi r24,lo8(101)
205 01a0 04F0 brlt .L30
206 01a2 4F5F subi r20,lo8(-(1))
207 01a4 5F4F sbci r21,hi8(-(1))
208 01a6 5093 0000 sts (NeutralAccZ)+1,r21
209 01aa 4093 0000 sts NeutralAccZ,r20
210 01ae 8456 subi r24,lo8(-(-100))
211 01b0 00C0 rjmp .L53
212 .L25:
213 01b2 8091 0000 lds r24,AdWertAccHoch
214 01b6 9091 0000 lds r25,(AdWertAccHoch)+1
215 01ba 8F5F subi r24,lo8(-1)
216 01bc 9F4F sbci r25,hi8(-1)
217 01be 04F4 brge .L30
218 01c0 B2E0 ldi r27,hi8(551)
219 01c2 4732 cpi r20,lo8(551)
220 01c4 5B07 cpc r21,r27
221 01c6 04F0 brlt .L30
222 01c8 2091 0000 lds r18,subcount.2594
223 01cc 2550 subi r18,lo8(-(-5))
224 01ce 2093 0000 sts subcount.2594,r18
225 01d2 2B5F subi r18,lo8(-(5))
226 01d4 8091 0000 lds r24,modell_fliegt
227 01d8 9091 0000 lds r25,(modell_fliegt)+1
228 01dc 845F subi r24,lo8(500)
229 01de 9140 sbci r25,hi8(500)
230 01e0 00F4 brsh .L34
231 01e2 2F50 subi r18,lo8(-(-15))
232 01e4 2093 0000 sts subcount.2594,r18
233 .L34:
234 01e8 8091 0000 lds r24,subcount.2594
235 01ec 8C39 cpi r24,lo8(-100)
236 01ee 04F4 brge .L30
237 01f0 4150 subi r20,lo8(-(-1))
238 01f2 5040 sbci r21,hi8(-(-1))
239 01f4 5093 0000 sts (NeutralAccZ)+1,r21
240 01f8 4093 0000 sts NeutralAccZ,r20
241 01fc 8C59 subi r24,lo8(-(100))
242 .L53:
243 01fe 8093 0000 sts subcount.2594,r24
244 .L30:
245 0202 81E0 ldi r24,lo8(1)
246 0204 8093 0000 sts messanzahl_AccHoch,r24
247 0208 8091 7800 lds r24,120
248 020c 9091 7900 lds r25,(120)+1
249 0210 9093 0000 sts (Aktuell_az)+1,r25
250 0214 8093 0000 sts Aktuell_az,r24
251 0218 2091 0000 lds r18,Mess_Integral_Hoch
252 021c 3091 0000 lds r19,(Mess_Integral_Hoch)+1
253 0220 4091 0000 lds r20,(Mess_Integral_Hoch)+2
254 0224 5091 0000 lds r21,(Mess_Integral_Hoch)+3
255 0228 8091 0000 lds r24,AdWertAccHoch
256 022c 9091 0000 lds r25,(AdWertAccHoch)+1
257 0230 AA27 clr r26
258 0232 97FD sbrc r25,7
259 0234 A095 com r26
260 0236 BA2F mov r27,r26
261 0238 820F add r24,r18
262 023a 931F adc r25,r19
263 023c A41F adc r26,r20
264 023e B51F adc r27,r21
265 0240 8093 0000 sts Mess_Integral_Hoch,r24
266 0244 9093 0000 sts (Mess_Integral_Hoch)+1,r25
267 0248 A093 0000 sts (Mess_Integral_Hoch)+2,r26
268 024c B093 0000 sts (Mess_Integral_Hoch)+3,r27
269 0250 E090 0000 lds r14,Mess_Integral_Hoch
270 0254 F090 0000 lds r15,(Mess_Integral_Hoch)+1
271 0258 0091 0000 lds r16,(Mess_Integral_Hoch)+2
272 025c 1091 0000 lds r17,(Mess_Integral_Hoch)+3
273 0260 6091 0000 lds r22,Mess_Integral_Hoch
274 0264 7091 0000 lds r23,(Mess_Integral_Hoch)+1
275 0268 8091 0000 lds r24,(Mess_Integral_Hoch)+2
276 026c 9091 0000 lds r25,(Mess_Integral_Hoch)+3
277 0270 20E0 ldi r18,lo8(1024)
278 0272 34E0 ldi r19,hi8(1024)
279 0274 40E0 ldi r20,hlo8(1024)
280 0276 50E0 ldi r21,hhi8(1024)
281 0278 0E94 0000 call __divmodsi4
282 027c E21A sub r14,r18
283 027e F30A sbc r15,r19
284 0280 040B sbc r16,r20
285 0282 150B sbc r17,r21
286 0284 E092 0000 sts Mess_Integral_Hoch,r14
287 0288 F092 0000 sts (Mess_Integral_Hoch)+1,r15
288 028c 0093 0000 sts (Mess_Integral_Hoch)+2,r16
289 0290 1093 0000 sts (Mess_Integral_Hoch)+3,r17
290 0294 00C0 rjmp .L63
291 .L15:
292 0296 8091 7800 lds r24,120
293 029a 9091 7900 lds r25,(120)+1
294 029e 2091 0000 lds r18,nick1.2597
295 02a2 3091 0000 lds r19,(nick1.2597)+1
296 02a6 280F add r18,r24
297 02a8 391F adc r19,r25
298 02aa 3093 0000 sts (nick1.2597)+1,r19
299 02ae 2093 0000 sts nick1.2597,r18
300 02b2 00C0 rjmp .L59
301 .L16:
302 02b4 2091 7800 lds r18,120
303 02b8 3091 7900 lds r19,(120)+1
304 02bc 8091 0000 lds r24,roll1.2596
305 02c0 9091 0000 lds r25,(roll1.2596)+1
306 02c4 820F add r24,r18
307 02c6 931F adc r25,r19
308 .L58:
309 02c8 9093 0000 sts (roll1.2596)+1,r25
310 02cc 8093 0000 sts roll1.2596,r24
311 02d0 1092 0000 sts kanal.2592,__zero_reg__
312 02d4 00C0 rjmp .L24
313 .L17:
314 02d6 8091 0000 lds r24,PlatinenVersion
315 02da 8A30 cpi r24,lo8(10)
316 02dc 01F4 brne .L37
317 02de 8091 7800 lds r24,120
318 02e2 9091 7900 lds r25,(120)+1
319 02e6 0196 adiw r24,1
320 02e8 2091 0000 lds r18,gier1.2595
321 02ec 3091 0000 lds r19,(gier1.2595)+1
322 02f0 820F add r24,r18
323 02f2 931F adc r25,r19
324 02f4 9695 lsr r25
325 02f6 8795 ror r24
326 02f8 00C0 rjmp .L54
327 .L37:
328 02fa 4091 0000 lds r20,gier1.2595
329 02fe 5091 0000 lds r21,(gier1.2595)+1
330 0302 8431 cpi r24,lo8(20)
331 0304 00F0 brlo .L40
332 0306 2091 7800 lds r18,120
333 030a 3091 7900 lds r19,(120)+1
334 030e 8FEF ldi r24,lo8(2047)
335 0310 97E0 ldi r25,hi8(2047)
336 0312 821B sub r24,r18
337 0314 930B sbc r25,r19
338 0316 841B sub r24,r20
339 0318 950B sbc r25,r21
340 031a 00C0 rjmp .L54
341 .L40:
342 031c 8091 7800 lds r24,120
343 0320 9091 7900 lds r25,(120)+1
344 0324 840F add r24,r20
345 0326 951F adc r25,r21
346 .L54:
347 0328 9093 0000 sts (AdWertGier)+1,r25
348 032c 8093 0000 sts AdWertGier,r24
349 .L60:
350 0330 86E0 ldi r24,lo8(6)
351 0332 00C0 rjmp .L57
352 .L18:
353 0334 2091 7800 lds r18,120
354 0338 3091 7900 lds r19,(120)+1
355 033c 8091 0000 lds r24,NeutralAccY
356 0340 9091 0000 lds r25,(NeutralAccY)+1
357 0344 821B sub r24,r18
358 0346 930B sbc r25,r19
359 0348 9093 0000 sts (Aktuell_ay)+1,r25
360 034c 8093 0000 sts Aktuell_ay,r24
361 0350 8091 0000 lds r24,Aktuell_ay
362 0354 9091 0000 lds r25,(Aktuell_ay)+1
363 0358 2091 0000 lds r18,accy.2600
364 035c 3091 0000 lds r19,(accy.2600)+1
365 0360 820F add r24,r18
366 0362 931F adc r25,r19
367 0364 9093 0000 sts (AdWertAccRoll)+1,r25
368 0368 8093 0000 sts AdWertAccRoll,r24
369 .L61:
370 036c 87E0 ldi r24,lo8(7)
371 036e 00C0 rjmp .L57
372 .L19:
373 0370 8091 7800 lds r24,120
374 0374 9091 7900 lds r25,(120)+1
375 0378 2091 0000 lds r18,NeutralAccX
376 037c 3091 0000 lds r19,(NeutralAccX)+1
377 0380 821B sub r24,r18
378 0382 930B sbc r25,r19
379 0384 9093 0000 sts (Aktuell_ax)+1,r25
380 0388 8093 0000 sts Aktuell_ax,r24
381 038c 8091 0000 lds r24,Aktuell_ax
382 0390 9091 0000 lds r25,(Aktuell_ax)+1
383 0394 2091 0000 lds r18,accx.2601
384 0398 3091 0000 lds r19,(accx.2601)+1
385 039c 820F add r24,r18
386 039e 931F adc r25,r19
387 03a0 9093 0000 sts (AdWertAccNick)+1,r25
388 03a4 8093 0000 sts AdWertAccNick,r24
389 03a8 00C0 rjmp .L62
390 .L20:
391 03aa 2091 7800 lds r18,120
392 03ae 3091 7900 lds r19,(120)+1
393 03b2 8091 0000 lds r24,nick1.2597
394 03b6 9091 0000 lds r25,(nick1.2597)+1
395 03ba 280F add r18,r24
396 03bc 391F adc r19,r25
397 03be 3093 0000 sts (nick1.2597)+1,r19
398 03c2 2093 0000 sts nick1.2597,r18
399 03c6 8091 0000 lds r24,PlatinenVersion
400 03ca 8A30 cpi r24,lo8(10)
401 03cc 01F4 brne .L42
402 03ce 220F lsl r18
403 03d0 331F rol r19
404 03d2 00C0 rjmp .L55
405 .L42:
406 03d4 220F lsl r18
407 03d6 331F rol r19
408 03d8 220F lsl r18
409 03da 331F rol r19
410 .L55:
411 03dc 3093 0000 sts (nick1.2597)+1,r19
412 03e0 2093 0000 sts nick1.2597,r18
413 03e4 2091 0000 lds r18,nick1.2597
414 03e8 3091 0000 lds r19,(nick1.2597)+1
415 03ec C901 movw r24,r18
416 03ee 68E0 ldi r22,lo8(8)
417 03f0 70E0 ldi r23,hi8(8)
418 03f2 0E94 0000 call __divmodhi4
419 03f6 7093 0000 sts (AdWertNick)+1,r23
420 03fa 6093 0000 sts AdWertNick,r22
421 03fe 8091 0000 lds r24,nick_filter.2598
422 0402 9091 0000 lds r25,(nick_filter.2598)+1
423 0406 820F add r24,r18
424 0408 931F adc r25,r19
425 040a 62E0 ldi r22,lo8(2)
426 040c 70E0 ldi r23,hi8(2)
427 040e 0E94 0000 call __divmodhi4
428 0412 7093 0000 sts (nick_filter.2598)+1,r23
429 0416 6093 0000 sts nick_filter.2598,r22
430 041a 8091 0000 lds r24,AdNeutralNick
431 041e 9091 0000 lds r25,(AdNeutralNick)+1
432 0422 681B sub r22,r24
433 0424 790B sbc r23,r25
434 0426 7093 0000 sts (HiResNick)+1,r23
435 042a 6093 0000 sts HiResNick,r22
436 042e 2091 0000 lds r18,AdWertNickFilter
437 0432 3091 0000 lds r19,(AdWertNickFilter)+1
438 0436 8091 0000 lds r24,HiResNick
439 043a 9091 0000 lds r25,(HiResNick)+1
440 043e 820F add r24,r18
441 0440 931F adc r25,r19
442 0442 62E0 ldi r22,lo8(2)
443 0444 70E0 ldi r23,hi8(2)
444 0446 0E94 0000 call __divmodhi4
445 044a 7093 0000 sts (AdWertNickFilter)+1,r23
446 044e 6093 0000 sts AdWertNickFilter,r22
447 .L59:
448 0452 81E0 ldi r24,lo8(1)
449 0454 00C0 rjmp .L57
450 .L21:
451 0456 2091 7800 lds r18,120
452 045a 3091 7900 lds r19,(120)+1
453 045e 8091 0000 lds r24,roll1.2596
454 0462 9091 0000 lds r25,(roll1.2596)+1
455 0466 280F add r18,r24
456 0468 391F adc r19,r25
457 046a 3093 0000 sts (roll1.2596)+1,r19
458 046e 2093 0000 sts roll1.2596,r18
459 0472 8091 0000 lds r24,PlatinenVersion
460 0476 8A30 cpi r24,lo8(10)
461 0478 01F4 brne .L45
462 047a 220F lsl r18
463 047c 331F rol r19
464 047e 00C0 rjmp .L56
465 .L45:
466 0480 220F lsl r18
467 0482 331F rol r19
468 0484 220F lsl r18
469 0486 331F rol r19
470 .L56:
471 0488 3093 0000 sts (roll1.2596)+1,r19
472 048c 2093 0000 sts roll1.2596,r18
473 0490 2091 0000 lds r18,roll1.2596
474 0494 3091 0000 lds r19,(roll1.2596)+1
475 0498 C901 movw r24,r18
476 049a 68E0 ldi r22,lo8(8)
477 049c 70E0 ldi r23,hi8(8)
478 049e 0E94 0000 call __divmodhi4
479 04a2 7093 0000 sts (AdWertRoll)+1,r23
480 04a6 6093 0000 sts AdWertRoll,r22
481 04aa 8091 0000 lds r24,roll_filter.2599
482 04ae 9091 0000 lds r25,(roll_filter.2599)+1
483 04b2 820F add r24,r18
484 04b4 931F adc r25,r19
485 04b6 62E0 ldi r22,lo8(2)
486 04b8 70E0 ldi r23,hi8(2)
487 04ba 0E94 0000 call __divmodhi4
488 04be 7093 0000 sts (roll_filter.2599)+1,r23
489 04c2 6093 0000 sts roll_filter.2599,r22
490 04c6 8091 0000 lds r24,AdNeutralRoll
491 04ca 9091 0000 lds r25,(AdNeutralRoll)+1
492 04ce 681B sub r22,r24
493 04d0 790B sbc r23,r25
494 04d2 7093 0000 sts (HiResRoll)+1,r23
495 04d6 6093 0000 sts HiResRoll,r22
496 04da 2091 0000 lds r18,AdWertRollFilter
497 04de 3091 0000 lds r19,(AdWertRollFilter)+1
498 04e2 8091 0000 lds r24,HiResRoll
499 04e6 9091 0000 lds r25,(HiResRoll)+1
500 04ea 820F add r24,r18
501 04ec 931F adc r25,r19
502 04ee 62E0 ldi r22,lo8(2)
503 04f0 70E0 ldi r23,hi8(2)
504 04f2 0E94 0000 call __divmodhi4
505 04f6 7093 0000 sts (AdWertRollFilter)+1,r23
506 04fa 6093 0000 sts AdWertRollFilter,r22
507 .L63:
508 04fe 83E0 ldi r24,lo8(3)
509 0500 00C0 rjmp .L57
510 .L22:
511 0502 1092 0000 sts state.2593,__zero_reg__
512 0506 81E0 ldi r24,lo8(1)
513 0508 8093 0000 sts AdReady,r24
514 050c 8091 0000 lds r24,ZaehlMessungen
515 0510 9091 0000 lds r25,(ZaehlMessungen)+1
516 0514 0196 adiw r24,1
517 0516 9093 0000 sts (ZaehlMessungen)+1,r25
518 051a 8093 0000 sts ZaehlMessungen,r24
519 .L14:
520 051e 8091 7800 lds r24,120
521 0522 9091 7900 lds r25,(120)+1
522 0526 9093 0000 sts (MessLuftdruck)+1,r25
523 052a 8093 0000 sts MessLuftdruck,r24
524 052e 8091 0000 lds r24,MessLuftdruck
525 0532 9091 0000 lds r25,(MessLuftdruck)+1
526 0536 3C01 movw r6,r24
527 0538 8824 clr r8
528 053a 9924 clr r9
529 053c 8091 0000 lds r24,tmpLuftdruck.2602
530 0540 9091 0000 lds r25,(tmpLuftdruck.2602)+1
531 0544 A091 0000 lds r26,(tmpLuftdruck.2602)+2
532 0548 B091 0000 lds r27,(tmpLuftdruck.2602)+3
533 054c 680E add r6,r24
534 054e 791E adc r7,r25
535 0550 8A1E adc r8,r26
536 0552 9B1E adc r9,r27
537 0554 6092 0000 sts tmpLuftdruck.2602,r6
538 0558 7092 0000 sts (tmpLuftdruck.2602)+1,r7
539 055c 8092 0000 sts (tmpLuftdruck.2602)+2,r8
540 0560 9092 0000 sts (tmpLuftdruck.2602)+3,r9
541 0564 8091 0000 lds r24,messanzahl_Druck.2603
542 0568 8F5F subi r24,lo8(-(1))
543 056a 8093 0000 sts messanzahl_Druck.2603,r24
544 056e 8231 cpi r24,lo8(18)
545 0570 00F4 brsh .+2
546 0572 00C0 rjmp .L62
547 0574 8091 0000 lds r24,Luftdruck
548 0578 9091 0000 lds r25,(Luftdruck)+1
549 057c A091 0000 lds r26,(Luftdruck)+2
550 0580 B091 0000 lds r27,(Luftdruck)+3
551 0584 7C01 movw r14,r24
552 0586 8D01 movw r16,r26
553 0588 43E0 ldi r20,3
554 058a EE0C 1: lsl r14
555 058c FF1C rol r15
556 058e 001F rol r16
557 0590 111F rol r17
558 0592 4A95 dec r20
559 0594 01F4 brne 1b
560 0596 E81A sub r14,r24
561 0598 F90A sbc r15,r25
562 059a 0A0B sbc r16,r26
563 059c 1B0B sbc r17,r27
564 059e 84E0 ldi r24,lo8(4)
565 05a0 90E0 ldi r25,hi8(4)
566 05a2 A0E0 ldi r26,hlo8(4)
567 05a4 B0E0 ldi r27,hhi8(4)
568 05a6 E80E add r14,r24
569 05a8 F91E adc r15,r25
570 05aa 0A1F adc r16,r26
571 05ac 1B1F adc r17,r27
572 05ae E60C add r14,r6
573 05b0 F71C adc r15,r7
574 05b2 081D adc r16,r8
575 05b4 191D adc r17,r9
576 05b6 6091 0000 lds r22,ExpandBaro
577 05ba 7727 clr r23
578 05bc 67FD sbrc r22,7
579 05be 7095 com r23
580 05c0 872F mov r24,r23
581 05c2 972F mov r25,r23
582 05c4 26EC ldi r18,lo8(9414)
583 05c6 34E2 ldi r19,hi8(9414)
584 05c8 40E0 ldi r20,hlo8(9414)
585 05ca 50E0 ldi r21,hhi8(9414)
586 05cc 0E94 0000 call __mulsi3
587 05d0 E61A sub r14,r22
588 05d2 F70A sbc r15,r23
589 05d4 080B sbc r16,r24
590 05d6 190B sbc r17,r25
591 05d8 C801 movw r24,r16
592 05da B701 movw r22,r14
593 05dc 28E0 ldi r18,lo8(8)
594 05de 30E0 ldi r19,hi8(8)
595 05e0 40E0 ldi r20,hlo8(8)
596 05e2 50E0 ldi r21,hhi8(8)
597 05e4 0E94 0000 call __divmodsi4
598 05e8 2093 0000 sts Luftdruck,r18
599 05ec 3093 0000 sts (Luftdruck)+1,r19
600 05f0 4093 0000 sts (Luftdruck)+2,r20
601 05f4 5093 0000 sts (Luftdruck)+3,r21
602 05f8 E090 0000 lds r14,StartLuftdruck
603 05fc F090 0000 lds r15,(StartLuftdruck)+1
604 0600 8091 0000 lds r24,Luftdruck
605 0604 9091 0000 lds r25,(Luftdruck)+1
606 0608 A091 0000 lds r26,(Luftdruck)+2
607 060c B091 0000 lds r27,(Luftdruck)+3
608 0610 0027 clr r16
609 0612 F7FC sbrc r15,7
610 0614 0095 com r16
611 0616 102F mov r17,r16
612 0618 E81A sub r14,r24
613 061a F90A sbc r15,r25
614 061c 0A0B sbc r16,r26
615 061e 1B0B sbc r17,r27
616 0620 E092 0000 sts HoehenWert,r14
617 0624 F092 0000 sts (HoehenWert)+1,r15
618 0628 0093 0000 sts (HoehenWert)+2,r16
619 062c 1093 0000 sts (HoehenWert)+3,r17
620 0630 A090 0000 lds r10,SummenHoehe
621 0634 B090 0000 lds r11,(SummenHoehe)+1
622 0638 C090 0000 lds r12,(SummenHoehe)+2
623 063c D090 0000 lds r13,(SummenHoehe)+3
624 0640 6091 0000 lds r22,SummenHoehe
625 0644 7091 0000 lds r23,(SummenHoehe)+1
626 0648 8091 0000 lds r24,(SummenHoehe)+2
627 064c 9091 0000 lds r25,(SummenHoehe)+3
628 0650 20E1 ldi r18,lo8(16)
629 0652 30E0 ldi r19,hi8(16)
630 0654 40E0 ldi r20,hlo8(16)
631 0656 50E0 ldi r21,hhi8(16)
632 0658 0E94 0000 call __divmodsi4
633 065c A21A sub r10,r18
634 065e B30A sbc r11,r19
635 0660 C40A sbc r12,r20
636 0662 D50A sbc r13,r21
637 0664 A092 0000 sts SummenHoehe,r10
638 0668 B092 0000 sts (SummenHoehe)+1,r11
639 066c C092 0000 sts (SummenHoehe)+2,r12
640 0670 D092 0000 sts (SummenHoehe)+3,r13
641 0674 8091 0000 lds r24,SummenHoehe
642 0678 9091 0000 lds r25,(SummenHoehe)+1
643 067c A091 0000 lds r26,(SummenHoehe)+2
644 0680 B091 0000 lds r27,(SummenHoehe)+3
645 0684 8E0D add r24,r14
646 0686 9F1D adc r25,r15
647 0688 A01F adc r26,r16
648 068a B11F adc r27,r17
649 068c 8093 0000 sts SummenHoehe,r24
650 0690 9093 0000 sts (SummenHoehe)+1,r25
651 0694 A093 0000 sts (SummenHoehe)+2,r26
652 0698 B093 0000 sts (SummenHoehe)+3,r27
653 069c C090 0000 lds r12,VarioMeter
654 06a0 D090 0000 lds r13,(VarioMeter)+1
655 06a4 6091 0000 lds r22,SummenHoehe
656 06a8 7091 0000 lds r23,(SummenHoehe)+1
657 06ac 8091 0000 lds r24,(SummenHoehe)+2
658 06b0 9091 0000 lds r25,(SummenHoehe)+3
659 06b4 20E1 ldi r18,lo8(16)
660 06b6 30E0 ldi r19,hi8(16)
661 06b8 40E0 ldi r20,hlo8(16)
662 06ba 50E0 ldi r21,hhi8(16)
663 06bc 0E94 0000 call __divmodsi4
664 06c0 E21A sub r14,r18
665 06c2 F30A sbc r15,r19
666 06c4 33E0 ldi r19,3
667 06c6 EE0C 1: lsl r14
668 06c8 FF1C rol r15
669 06ca 3A95 dec r19
670 06cc 01F4 brne 1b
671 06ce C601 movw r24,r12
672 06d0 25E0 ldi r18,5
673 06d2 880F 1: lsl r24
674 06d4 991F rol r25
675 06d6 2A95 dec r18
676 06d8 01F4 brne 1b
677 06da 8C19 sub r24,r12
678 06dc 9D09 sbc r25,r13
679 06de 8E0D add r24,r14
680 06e0 9F1D adc r25,r15
681 06e2 60E2 ldi r22,lo8(32)
682 06e4 70E0 ldi r23,hi8(32)
683 06e6 0E94 0000 call __divmodhi4
684 06ea 7093 0000 sts (VarioMeter)+1,r23
685 06ee 6093 0000 sts VarioMeter,r22
686 06f2 C401 movw r24,r8
687 06f4 B301 movw r22,r6
688 06f6 22E0 ldi r18,lo8(2)
689 06f8 30E0 ldi r19,hi8(2)
690 06fa 40E0 ldi r20,hlo8(2)
691 06fc 50E0 ldi r21,hhi8(2)
692 06fe 0E94 0000 call __divmodsi4
693 0702 2093 0000 sts tmpLuftdruck.2602,r18
694 0706 3093 0000 sts (tmpLuftdruck.2602)+1,r19
695 070a 4093 0000 sts (tmpLuftdruck.2602)+2,r20
696 070e 5093 0000 sts (tmpLuftdruck.2602)+3,r21
697 0712 89E0 ldi r24,lo8(9)
698 0714 8093 0000 sts messanzahl_Druck.2603,r24
699 0718 00C0 rjmp .L62
700 .L4:
701 071a 1092 0000 sts state.2593,__zero_reg__
702 .L62:
703 071e 82E0 ldi r24,lo8(2)
704 .L57:
705 0720 8093 0000 sts kanal.2592,r24
706 .L24:
707 0724 8091 0000 lds r24,kanal.2592
708 0728 8093 7C00 sts 124,r24
709 072c 8091 0000 lds r24,state.2593
710 0730 8823 tst r24
711 0732 01F0 breq .L52
712 0734 8FEC ldi r24,lo8(-49)
713 0736 8093 7A00 sts 122,r24
714 .L52:
715 /* epilogue: frame size=0 */
716 073a FF91 pop r31
717 073c EF91 pop r30
718 073e BF91 pop r27
719 0740 AF91 pop r26
720 0742 9F91 pop r25
721 0744 8F91 pop r24
722 0746 7F91 pop r23
723 0748 6F91 pop r22
724 074a 5F91 pop r21
725 074c 4F91 pop r20
726 074e 3F91 pop r19
727 0750 2F91 pop r18
728 0752 1F91 pop r17
729 0754 0F91 pop r16
730 0756 FF90 pop r15
731 0758 EF90 pop r14
732 075a DF90 pop r13
733 075c CF90 pop r12
734 075e BF90 pop r11
735 0760 AF90 pop r10
736 0762 9F90 pop r9
737 0764 8F90 pop r8
738 0766 7F90 pop r7
739 0768 6F90 pop r6
740 076a 0F90 pop __tmp_reg__
741 076c 0FBE out __SREG__,__tmp_reg__
742 076e 0F90 pop __tmp_reg__
743 0770 1F90 pop __zero_reg__
744 0772 1895 reti
745 /* epilogue end (size=29) */
746 /* function __vector_24 size 970 (912) */
748 .global SucheGyroOffset
750 SucheGyroOffset:
751 /* prologue: frame size=0 */
752 0774 A0E0 ldi r26,lo8(0)
753 0776 B0E0 ldi r27,hi8(0)
754 0778 E0E0 ldi r30,pm_lo8(1f)
755 077a F0E0 ldi r31,pm_hi8(1f)
756 077c 0C94 0000 jmp __prologue_saves__+20
757 1:
758 /* prologue end (size=6) */
759 0780 80ED ldi r24,lo8(2000)
760 0782 97E0 ldi r25,hi8(2000)
761 0784 0E94 0000 call SetDelay
762 0788 EC01 movw r28,r24
763 078a 0CE8 ldi r16,lo8(-116)
764 078c 10E0 ldi r17,lo8(0)
765 078e 90E0 ldi r25,lo8(__c.2547)
766 0790 C92E mov r12,r25
767 0792 90E0 ldi r25,hi8(__c.2547)
768 0794 D92E mov r13,r25
769 0796 80E0 ldi r24,lo8(gs(uart_putchar))
770 0798 E82E mov r14,r24
771 079a 80E0 ldi r24,hi8(gs(uart_putchar))
772 079c F82E mov r15,r24
773 .L65:
774 079e 1330 cpi r17,lo8(3)
775 07a0 01F4 brne .L66
776 07a2 0B30 cpi r16,lo8(11)
777 07a4 00F0 brlo .L66
778 07a6 09E0 ldi r16,lo8(9)
779 .L66:
780 07a8 8091 0000 lds r24,AdWertNick
781 07ac 9091 0000 lds r25,(AdWertNick)+1
782 07b0 8C5F subi r24,lo8(1020)
783 07b2 9340 sbci r25,hi8(1020)
784 07b4 04F4 brge .L69
785 07b6 8091 0000 lds r24,AnalogOffsetNick
786 07ba 8150 subi r24,lo8(-(-1))
787 07bc 00C0 rjmp .L112
788 .L69:
789 07be 8091 0000 lds r24,AdWertNick
790 07c2 9091 0000 lds r25,(AdWertNick)+1
791 07c6 8750 subi r24,lo8(1031)
792 07c8 9440 sbci r25,hi8(1031)
793 07ca 04F4 brge .L72
794 07cc 11E0 ldi r17,lo8(1)
795 07ce 00C0 rjmp .L71
796 .L72:
797 07d0 8091 0000 lds r24,AnalogOffsetNick
798 07d4 8F5F subi r24,lo8(-(1))
799 .L112:
800 07d6 8093 0000 sts AnalogOffsetNick,r24
801 07da 10E0 ldi r17,lo8(0)
802 .L71:
803 07dc 8091 0000 lds r24,AdWertRoll
804 07e0 9091 0000 lds r25,(AdWertRoll)+1
805 07e4 8C5F subi r24,lo8(1020)
806 07e6 9340 sbci r25,hi8(1020)
807 07e8 04F4 brge .L74
808 07ea 8091 0000 lds r24,AnalogOffsetRoll
809 07ee 8150 subi r24,lo8(-(-1))
810 07f0 00C0 rjmp .L113
811 .L74:
812 07f2 8091 0000 lds r24,AdWertRoll
813 07f6 9091 0000 lds r25,(AdWertRoll)+1
814 07fa 8750 subi r24,lo8(1031)
815 07fc 9440 sbci r25,hi8(1031)
816 07fe 04F0 brlt .L77
817 0800 8091 0000 lds r24,AnalogOffsetRoll
818 0804 8F5F subi r24,lo8(-(1))
819 .L113:
820 0806 8093 0000 sts AnalogOffsetRoll,r24
821 080a 00C0 rjmp .L76
822 .L77:
823 080c 1F5F subi r17,lo8(-(1))
824 .L76:
825 080e 8091 0000 lds r24,AdWertGier
826 0812 9091 0000 lds r25,(AdWertGier)+1
827 0816 8C5F subi r24,lo8(1020)
828 0818 9340 sbci r25,hi8(1020)
829 081a 04F4 brge .L79
830 081c 8091 0000 lds r24,AnalogOffsetGier
831 0820 8150 subi r24,lo8(-(-1))
832 0822 00C0 rjmp .L114
833 .L79:
834 0824 8091 0000 lds r24,AdWertGier
835 0828 9091 0000 lds r25,(AdWertGier)+1
836 082c 8750 subi r24,lo8(1031)
837 082e 9440 sbci r25,hi8(1031)
838 0830 04F0 brlt .L82
839 0832 8091 0000 lds r24,AnalogOffsetGier
840 0836 8F5F subi r24,lo8(-(1))
841 .L114:
842 0838 8093 0000 sts AnalogOffsetGier,r24
843 083c 00C0 rjmp .L81
844 .L82:
845 083e 1F5F subi r17,lo8(-(1))
846 .L81:
847 0840 82E1 ldi r24,lo8(18)
848 0842 8093 0000 sts twi_state,r24
849 0846 8091 0000 lds r24,BLFlags
850 084a 8E7F andi r24,lo8(-2)
851 084c 8093 0000 sts BLFlags,r24
852 0850 85EA ldi r24,lo8(-91)
853 0852 8093 BC00 sts 188,r24
854 0856 8091 0000 lds r24,AnalogOffsetNick
855 085a 8A30 cpi r24,lo8(10)
856 085c 00F4 brsh .L84
857 085e 8091 0000 lds r24,VersionInfo+5
858 0862 8160 ori r24,lo8(1)
859 0864 8093 0000 sts VersionInfo+5,r24
860 0868 8AE0 ldi r24,lo8(10)
861 086a 8093 0000 sts AnalogOffsetNick,r24
862 .L84:
863 086e 8091 0000 lds r24,AnalogOffsetNick
864 0872 863F cpi r24,lo8(-10)
865 0874 00F0 brlo .L86
866 0876 8091 0000 lds r24,VersionInfo+5
867 087a 8160 ori r24,lo8(1)
868 087c 8093 0000 sts VersionInfo+5,r24
869 0880 85EF ldi r24,lo8(-11)
870 0882 8093 0000 sts AnalogOffsetNick,r24
871 .L86:
872 0886 8091 0000 lds r24,AnalogOffsetRoll
873 088a 8A30 cpi r24,lo8(10)
874 088c 00F4 brsh .L88
875 088e 8091 0000 lds r24,VersionInfo+5
876 0892 8260 ori r24,lo8(2)
877 0894 8093 0000 sts VersionInfo+5,r24
878 0898 8AE0 ldi r24,lo8(10)
879 089a 8093 0000 sts AnalogOffsetRoll,r24
880 .L88:
881 089e 8091 0000 lds r24,AnalogOffsetRoll
882 08a2 863F cpi r24,lo8(-10)
883 08a4 00F0 brlo .L90
884 08a6 8091 0000 lds r24,VersionInfo+5
885 08aa 8260 ori r24,lo8(2)
886 08ac 8093 0000 sts VersionInfo+5,r24
887 08b0 85EF ldi r24,lo8(-11)
888 08b2 8093 0000 sts AnalogOffsetRoll,r24
889 .L90:
890 08b6 8091 0000 lds r24,AnalogOffsetGier
891 08ba 8A30 cpi r24,lo8(10)
892 08bc 00F4 brsh .L92
893 08be 8091 0000 lds r24,VersionInfo+5
894 08c2 8460 ori r24,lo8(4)
895 08c4 8093 0000 sts VersionInfo+5,r24
896 08c8 8AE0 ldi r24,lo8(10)
897 08ca 8093 0000 sts AnalogOffsetGier,r24
898 .L92:
899 08ce 8091 0000 lds r24,AnalogOffsetGier
900 08d2 863F cpi r24,lo8(-10)
901 08d4 00F0 brlo .L105
902 08d6 8091 0000 lds r24,VersionInfo+5
903 08da 8460 ori r24,lo8(4)
904 08dc 8093 0000 sts VersionInfo+5,r24
905 08e0 85EF ldi r24,lo8(-11)
906 08e2 8093 0000 sts AnalogOffsetGier,r24
907 08e6 00C0 rjmp .L105
908 .L96:
909 08e8 CE01 movw r24,r28
910 08ea 0E94 0000 call CheckDelay
911 08ee 8823 tst r24
912 08f0 01F0 breq .L105
913 08f2 E091 0000 lds r30,_printf_P
914 08f6 F091 0000 lds r31,(_printf_P)+1
915 08fa DF92 push r13
916 08fc CF92 push r12
917 08fe FF92 push r15
918 0900 EF92 push r14
919 0902 0995 icall
920 0904 0F90 pop __tmp_reg__
921 0906 0F90 pop __tmp_reg__
922 0908 0F90 pop __tmp_reg__
923 090a 0F90 pop __tmp_reg__
924 090c 00C0 rjmp .L98
925 .L105:
926 090e 8091 0000 lds r24,twi_state
927 0912 8823 tst r24
928 0914 01F4 brne .L96
929 .L98:
930 0916 1092 0000 sts AdReady,__zero_reg__
931 091a 8FEC ldi r24,lo8(-49)
932 091c 8093 7A00 sts 122,r24
933 .L99:
934 0920 8091 0000 lds r24,AdReady
935 0924 8823 tst r24
936 0926 01F0 breq .L99
937 0928 0A30 cpi r16,lo8(10)
938 092a 00F4 brsh .L101
939 092c 8AE0 ldi r24,lo8(10)
940 092e 90E0 ldi r25,hi8(10)
941 0930 0E94 0000 call Delay_ms_Mess
942 .L101:
943 0934 0150 subi r16,lo8(-(-1))
944 0936 01F0 breq .+2
945 0938 00C0 rjmp .L65
946 093a 86E4 ldi r24,lo8(70)
947 093c 90E0 ldi r25,hi8(70)
948 093e 0E94 0000 call Delay_ms_Mess
949 /* epilogue: frame size=0 */
950 0942 E8E0 ldi r30,8
951 0944 CDB7 in r28,__SP_L__
952 0946 DEB7 in r29,__SP_H__
953 0948 0C94 0000 jmp __epilogue_restores__+20
954 /* epilogue end (size=5) */
955 /* function SucheGyroOffset size 243 (232) */
957 .global SucheLuftruckOffset
959 SucheLuftruckOffset:
960 /* prologue: frame size=0 */
961 094c EF92 push r14
962 094e FF92 push r15
963 0950 0F93 push r16
964 0952 1F93 push r17
965 0954 CF93 push r28
966 0956 DF93 push r29
967 /* prologue end (size=6) */
968 0958 1092 0000 sts ExpandBaro,__zero_reg__
969 095c 83E0 ldi r24,lo8(3)
970 095e 90E0 ldi r25,hi8(3)
971 0960 0E94 0000 call GetParamByte
972 0964 C82F mov r28,r24
973 0966 D0E0 ldi r29,lo8(0)
974 0968 C531 cpi r28,21
975 096a D105 cpc r29,__zero_reg__
976 096c 00F0 brlo .L116
977 096e 2A97 sbiw r28,10
978 .L116:
979 0970 C7BD out 71-0x20,r28
980 0972 84E6 ldi r24,lo8(100)
981 0974 90E0 ldi r25,hi8(100)
982 0976 0E94 0000 call Delay_ms_Mess
983 097a 8091 0000 lds r24,MessLuftdruck
984 097e 9091 0000 lds r25,(MessLuftdruck)+1
985 0982 8052 subi r24,lo8(800)
986 0984 9340 sbci r25,hi8(800)
987 0986 00F4 brsh .L118
988 0988 C0E0 ldi r28,lo8(0)
989 098a D0E0 ldi r29,hi8(0)
990 098c 00C0 rjmp .L118
991 .L120:
992 098e C7BD out 71-0x20,r28
993 0990 82E3 ldi r24,lo8(50)
994 0992 90E0 ldi r25,hi8(50)
995 0994 0E94 0000 call Delay_ms_Mess
996 0998 E091 0000 lds r30,_printf_P
997 099c F091 0000 lds r31,(_printf_P)+1
998 09a0 FF92 push r15
999 09a2 EF92 push r14
1000 09a4 1F93 push r17
1001 09a6 0F93 push r16
1002 09a8 0995 icall
1003 09aa 8091 0000 lds r24,MessLuftdruck
1004 09ae 9091 0000 lds r25,(MessLuftdruck)+1
1005 09b2 0F90 pop __tmp_reg__
1006 09b4 0F90 pop __tmp_reg__
1007 09b6 0F90 pop __tmp_reg__
1008 09b8 0F90 pop __tmp_reg__
1009 09ba 8052 subi r24,lo8(800)
1010 09bc 9340 sbci r25,hi8(800)
1011 09be 00F0 brlo .L121
1012 09c0 2196 adiw r28,1
1013 09c2 00C0 rjmp .L127
1014 .L118:
1015 09c4 20E0 ldi r18,lo8(__c.2520)
1016 09c6 E22E mov r14,r18
1017 09c8 20E0 ldi r18,hi8(__c.2520)
1018 09ca F22E mov r15,r18
1019 09cc 00E0 ldi r16,lo8(gs(uart_putchar))
1020 09ce 10E0 ldi r17,hi8(gs(uart_putchar))
1021 .L127:
1022 09d0 CA3F cpi r28,250
1023 09d2 D105 cpc r29,__zero_reg__
1024 09d4 00F0 brlo .L120
1025 .L121:
1026 09d6 1C2F mov r17,r28
1027 09d8 C093 0000 sts DruckOffsetSetting,r28
1028 09dc 6C2F mov r22,r28
1029 09de 83E0 ldi r24,lo8(3)
1030 09e0 90E0 ldi r25,hi8(3)
1031 09e2 0E94 0000 call SetParamByte
1032 09e6 8091 0000 lds r24,EE_Parameter+13
1033 09ea 80FF sbrs r24,0
1034 09ec 00C0 rjmp .L123
1035 09ee 8091 0000 lds r24,DruckOffsetSetting
1036 09f2 8A50 subi r24,lo8(-(-10))
1037 09f4 8B3E cpi r24,lo8(-21)
1038 09f6 00F0 brlo .L123
1039 09f8 8091 0000 lds r24,VersionInfo+5
1040 09fc 8064 ori r24,lo8(64)
1041 09fe 8093 0000 sts VersionInfo+5,r24
1042 .L123:
1043 0a02 17BD out 71-0x20,r17
1044 0a04 8CE2 ldi r24,lo8(300)
1045 0a06 91E0 ldi r25,hi8(300)
1046 0a08 0E94 0000 call Delay_ms_Mess
1047 /* epilogue: frame size=0 */
1048 0a0c E6E0 ldi r30,6
1049 0a0e CDB7 in r28,__SP_L__
1050 0a10 DEB7 in r29,__SP_H__
1051 0a12 0C94 0000 jmp __epilogue_restores__+24
1052 /* epilogue end (size=5) */
1053 /* function SucheLuftruckOffset size 103 (92) */
1055 .global UBat
1056 .data
1059 UBat:
1060 0000 6400 .word 100
1061 .global AdWertNickFilter
1062 .global AdWertNickFilter
1063 .section .bss
1066 AdWertNickFilter:
1067 0000 0000 .skip 2,0
1068 .global AdWertRollFilter
1069 .global AdWertRollFilter
1072 AdWertRollFilter:
1073 0002 0000 .skip 2,0
1074 .global AdWertGierFilter
1075 .global AdWertGierFilter
1078 AdWertGierFilter:
1079 0004 0000 .skip 2,0
1080 .global HiResNick
1081 .data
1084 HiResNick:
1085 0002 C409 .word 2500
1086 .global HiResRoll
1089 HiResRoll:
1090 0004 C409 .word 2500
1091 .global AdWertNick
1092 .global AdWertNick
1093 .section .bss
1096 AdWertNick:
1097 0006 0000 .skip 2,0
1098 .global AdWertRoll
1099 .global AdWertRoll
1102 AdWertRoll:
1103 0008 0000 .skip 2,0
1104 .global AdWertGier
1105 .global AdWertGier
1108 AdWertGier:
1109 000a 0000 .skip 2,0
1110 .global AdWertAccRoll
1111 .global AdWertAccRoll
1114 AdWertAccRoll:
1115 000c 0000 .skip 2,0
1116 .global AdWertAccNick
1117 .global AdWertAccNick
1120 AdWertAccNick:
1121 000e 0000 .skip 2,0
1122 .global AdWertAccHoch
1123 .global AdWertAccHoch
1126 AdWertAccHoch:
1127 0010 0000 .skip 2,0
1128 .global messanzahl_AccHoch
1129 .global messanzahl_AccHoch
1132 messanzahl_AccHoch:
1133 0012 00 .skip 1,0
1134 .global Luftdruck
1135 .data
1138 Luftdruck:
1139 0006 00 .byte 0
1140 0007 7D .byte 125
1141 0008 00 .byte 0
1142 0009 00 .byte 0
1143 .global SummenHoehe
1144 .global SummenHoehe
1145 .section .bss
1148 SummenHoehe:
1149 0013 0000 0000 .skip 4,0
1150 .global MessLuftdruck
1151 .data
1154 MessLuftdruck:
1155 000a FF03 .word 1023
1156 .global ExpandBaro
1157 .global ExpandBaro
1158 .section .bss
1161 ExpandBaro:
1162 0017 00 .skip 1,0
1163 .global VarioMeter
1164 .global VarioMeter
1167 VarioMeter:
1168 0018 0000 .skip 2,0
1169 .global ZaehlMessungen
1170 .global ZaehlMessungen
1173 ZaehlMessungen:
1174 001a 0000 .skip 2,0
1175 .global AnalogOffsetNick
1176 .data
1179 AnalogOffsetNick:
1180 000c 73 .byte 115
1181 .global AnalogOffsetRoll
1184 AnalogOffsetRoll:
1185 000d 73 .byte 115
1186 .global AnalogOffsetGier
1189 AnalogOffsetGier:
1190 000e 73 .byte 115
1191 .global AdReady
1194 AdReady:
1195 000f 01 .byte 1
1196 .lcomm messanzahl_Druck.2603,1
1197 .lcomm tmpLuftdruck.2602,4
1198 .lcomm accx.2601,2
1199 .lcomm accy.2600,2
1200 .lcomm roll_filter.2599,2
1201 .lcomm nick_filter.2598,2
1202 .lcomm nick1.2597,2
1203 .lcomm roll1.2596,2
1204 .lcomm gier1.2595,2
1205 .lcomm subcount.2594,1
1206 .lcomm state.2593,1
1207 .lcomm kanal.2592,1
1208 .section .progmem.data,"a",@progbits
1211 __c.2547:
1212 0000 0A0D 2044 .string "\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"
1212 4143 206F
1212 7220 4932
1212 4320 4552
1212 524F 5221
1215 __c.2520:
1216 0037 2E00 .string "."
1217 .comm Aktuell_Nick,2,1
1218 .comm Aktuell_Roll,2,1
1219 .comm Aktuell_Gier,2,1
1220 .comm Aktuell_ax,2,1
1221 .comm Aktuell_ay,2,1
1222 .comm Aktuell_az,2,1
1223 .comm DruckOffsetSetting,1,1
1224 .comm StartLuftdruck,2,1
1225 .comm NeutralAccZ_float,4,1
1226 /* File "analog.c": code 1322 = 0x052a (1241), prologues 41, epilogues 40 */
DEFINED SYMBOLS
*ABS*:00000000 analog.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:12 .text:00000000 ADC_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:25 .text:0000000c __vector_24
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1205 .bss:00000030 state.2593
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1201 .bss:00000029 nick1.2597
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1203 .bss:0000002d gier1.2595
*COM*:00000002 Aktuell_ay
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1198 .bss:00000023 accy.2600
*COM*:00000002 Aktuell_ax
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1197 .bss:00000021 accx.2601
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1202 .bss:0000002b roll1.2596
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1059 .data:00000000 UBat
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1126 .bss:00000010 AdWertAccHoch
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1204 .bss:0000002f subcount.2594
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1132 .bss:00000012 messanzahl_AccHoch
*COM*:00000002 Aktuell_az
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1206 .bss:00000031 kanal.2592
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1108 .bss:0000000a AdWertGier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1114 .bss:0000000c AdWertAccRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1120 .bss:0000000e AdWertAccNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1096 .bss:00000006 AdWertNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1200 .bss:00000027 nick_filter.2598
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1084 .data:00000002 HiResNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1066 .bss:00000000 AdWertNickFilter
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1102 .bss:00000008 AdWertRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1199 .bss:00000025 roll_filter.2599
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1089 .data:00000004 HiResRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1072 .bss:00000002 AdWertRollFilter
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1194 .data:0000000f AdReady
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1173 .bss:0000001a ZaehlMessungen
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1154 .data:0000000a MessLuftdruck
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1196 .bss:0000001d tmpLuftdruck.2602
.bss:0000001c messanzahl_Druck.2603
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1138 .data:00000006 Luftdruck
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1161 .bss:00000017 ExpandBaro
*COM*:00000002 StartLuftdruck
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1148 .bss:00000013 SummenHoehe
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1167 .bss:00000018 VarioMeter
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:750 .text:00000774 SucheGyroOffset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1211 .progmem.data:00000000 __c.2547
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1179 .data:0000000c AnalogOffsetNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1184 .data:0000000d AnalogOffsetRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1189 .data:0000000e AnalogOffsetGier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:959 .text:0000094c SucheLuftruckOffset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1215 .progmem.data:00000037 __c.2520
*COM*:00000001 DruckOffsetSetting
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccOyZXzb.s:1078 .bss:00000004 AdWertGierFilter
*COM*:00000002 Aktuell_Nick
*COM*:00000002 Aktuell_Roll
*COM*:00000002 Aktuell_Gier
*COM*:00000004 NeutralAccZ_float
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
NeutralAccY
NeutralAccX
__udivmodhi4
NeutralAccZ
modell_fliegt
Mess_Integral_Hoch
__divmodsi4
PlatinenVersion
__divmodhi4
AdNeutralNick
AdNeutralRoll
__mulsi3
HoehenWert
__prologue_saves__
SetDelay
uart_putchar
twi_state
BLFlags
VersionInfo
CheckDelay
_printf_P
Delay_ms_Mess
__epilogue_restores__
GetParamByte
SetParamByte
EE_Parameter
/Spektrum-Diversity/V0.82a/capacity.c
0,0 → 1,143
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Thanks to Marcel Haller (Lion) for the nice idea and first implementation
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "capacity.h"
#include "twimaster.h"
#include "main.h"
#include "timer0.h"
#include "analog.h"
 
#define CAPACITY_UPDATE_INTERVAL 10 // 10 ms
#define FC_OFFSET_CURRENT 5 // calculate with a current of 0.5A
#define BL_OFFSET_CURRENT 2 // calculate with a current of 0.2A
 
// global varialbles
unsigned short update_timer = 0;
Capacity_t Capacity;
 
// initialize capacity calculation
void Capacity_Init(void)
{
Capacity.ActualCurrent = 0;
Capacity.UsedCapacity = 0;
Capacity.ActualPower = 0;
Capacity.MinOfMaxPWM = 0;
update_timer = SetDelay(CAPACITY_UPDATE_INTERVAL);
}
 
 
// called in main loop at a regular interval
void Capacity_Update(void)
{
unsigned short Current, SetSum; // max value will be 255 * 12 = 3060
static unsigned short SubCounter = 0;
static unsigned short CurrentOffset = 0;
static unsigned long SumCurrentOffset = 0;
unsigned char i, NumOfMotors, MinOfMaxPWM;
 
if(CheckDelay(update_timer))
{
update_timer += CAPACITY_UPDATE_INTERVAL; // do not use SetDelay to avoid timing leaks
// determine sum of all present BL currents and setpoints
Current = 0;
SetSum = 0;
NumOfMotors = 0;
MinOfMaxPWM = 255;
for(i = 0; i < MAX_MOTORS; i++)
{
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
NumOfMotors++;
Current += (unsigned int)(Motor[i].Current);
SetSum += (unsigned int)(Motor[i].SetPoint);
if(Motor[i].MaxPWM < MinOfMaxPWM) MinOfMaxPWM = Motor[i].MaxPWM;
}
}
Capacity.MinOfMaxPWM = MinOfMaxPWM;
 
if(SetSum == 0) // if all setpoints are 0
{ // determine offsets of motor currents
#define CURRENT_AVERAGE 8 // 8bit = 256 * 10 ms = 2.56s average time
CurrentOffset = (unsigned int)(SumCurrentOffset>>CURRENT_AVERAGE);
SumCurrentOffset -= CurrentOffset;
SumCurrentOffset += Current;
// after averaging set current to static offset
Current = FC_OFFSET_CURRENT;
}
else // some motors are running, includes also motor test condition, where "MotorRunning" is false
{ // subtract offset
if(Current > CurrentOffset) Current -= CurrentOffset;
else Current = 0;
// add the FC and BL Offsets
Current += FC_OFFSET_CURRENT + NumOfMotors * BL_OFFSET_CURRENT;
}
 
// update actual Current
Capacity.ActualCurrent = Current;
// update actual Power
if(Current < 255) Capacity.ActualPower = (UBat * Current) / 100; // in W higher resolution
else Capacity.ActualPower = (UBat * (Current/4)) / 25; // in W
 
// update used capacity
SubCounter += Current;
 
// 100mA * 1ms * CAPACITY_UPDATE_INTERVAL = 1 mA * 100 ms * CAPACITY_UPDATE_INTERVAL
// = 1mA * 0.1s * CAPACITY_UPDATE_INTERVAL = 1mA * 1min / (600 / CAPACITY_UPDATE_INTERVAL)
// = 1mAh / (36000 / CAPACITY_UPDATE_INTERVAL)
#define SUB_COUNTER_LIMIT (36000 / CAPACITY_UPDATE_INTERVAL)
if(SubCounter > SUB_COUNTER_LIMIT)
{
Capacity.UsedCapacity++; // we have one mAh more
SubCounter -= SUB_COUNTER_LIMIT; // keep the remaining sub part
}
} // EOF check delay update timer
}
/Spektrum-Diversity/V0.82a/capacity.d
0,0 → 1,3
capacity.o capacity.d : capacity.c capacity.h twimaster.h main.h old_macros.h \
printf_P.h timer0.h uart.h analog.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/capacity.h
0,0 → 1,18
#ifndef _CAPACITY_H
#define _CAPACITY_H
 
typedef struct
{
unsigned short ActualCurrent; // in 0.1A Steps
unsigned short ActualPower; // in 0.1W
unsigned short UsedCapacity; // in mAh
unsigned char MinOfMaxPWM; // BL Power Limit
} __attribute__((packed)) Capacity_t;
 
extern Capacity_t Capacity;
 
void Capacity_Init(void);
void Capacity_Update(void);
 
#endif //_CAPACITY_H
 
/Spektrum-Diversity/V0.82a/capacity.lst
0,0 → 1,226
1 .file "capacity.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global Capacity_Update
12 Capacity_Update:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 8091 0000 lds r24,update_timer
16 0004 9091 0000 lds r25,(update_timer)+1
17 0008 0E94 0000 call CheckDelay
18 000c 8823 tst r24
19 000e 01F4 brne .+2
20 0010 00C0 rjmp .L19
21 0012 8091 0000 lds r24,update_timer
22 0016 9091 0000 lds r25,(update_timer)+1
23 001a 0A96 adiw r24,10
24 001c 9093 0000 sts (update_timer)+1,r25
25 0020 8093 0000 sts update_timer,r24
26 0024 E0E0 ldi r30,lo8(Motor)
27 0026 F0E0 ldi r31,hi8(Motor)
28 0028 60E0 ldi r22,lo8(0)
29 002a 70E0 ldi r23,hi8(0)
30 002c 40E0 ldi r20,lo8(0)
31 002e 50E0 ldi r21,hi8(0)
32 0030 90E0 ldi r25,lo8(0)
33 0032 AFEF ldi r26,lo8(-1)
34 .L4:
35 0034 8381 ldd r24,Z+3
36 0036 87FF sbrs r24,7
37 0038 00C0 rjmp .L5
38 003a 9F5F subi r25,lo8(-(1))
39 003c 8581 ldd r24,Z+5
40 003e 680F add r22,r24
41 0040 711D adc r23,__zero_reg__
42 0042 8181 ldd r24,Z+1
43 0044 480F add r20,r24
44 0046 511D adc r21,__zero_reg__
45 0048 8681 ldd r24,Z+6
46 004a 8A17 cp r24,r26
47 004c 00F4 brsh .L5
48 004e A82F mov r26,r24
49 .L5:
50 0050 3896 adiw r30,8
51 0052 20E0 ldi r18,hi8(Motor+96)
52 0054 E030 cpi r30,lo8(Motor+96)
53 0056 F207 cpc r31,r18
54 0058 01F4 brne .L4
55 005a A093 0000 sts Capacity+6,r26
56 005e 452B or r20,r21
57 0060 01F4 brne .L9
58 0062 8091 0000 lds r24,SumCurrentOffset.2516
59 0066 9091 0000 lds r25,(SumCurrentOffset.2516)+1
60 006a A091 0000 lds r26,(SumCurrentOffset.2516)+2
61 006e B091 0000 lds r27,(SumCurrentOffset.2516)+3
62 0072 292F mov r18,r25
63 0074 3A2F mov r19,r26
64 0076 4B2F mov r20,r27
65 0078 5527 clr r21
66 007a 3093 0000 sts (CurrentOffset.2515)+1,r19
67 007e 2093 0000 sts CurrentOffset.2515,r18
68 0082 40E0 ldi r20,lo8(0)
69 0084 50E0 ldi r21,hi8(0)
70 0086 821B sub r24,r18
71 0088 930B sbc r25,r19
72 008a A40B sbc r26,r20
73 008c B50B sbc r27,r21
74 008e 9B01 movw r18,r22
75 0090 40E0 ldi r20,lo8(0)
76 0092 50E0 ldi r21,hi8(0)
77 0094 820F add r24,r18
78 0096 931F adc r25,r19
79 0098 A41F adc r26,r20
80 009a B51F adc r27,r21
81 009c 8093 0000 sts SumCurrentOffset.2516,r24
82 00a0 9093 0000 sts (SumCurrentOffset.2516)+1,r25
83 00a4 A093 0000 sts (SumCurrentOffset.2516)+2,r26
84 00a8 B093 0000 sts (SumCurrentOffset.2516)+3,r27
85 00ac E5E0 ldi r30,lo8(5)
86 00ae F0E0 ldi r31,hi8(5)
87 00b0 00C0 rjmp .L11
88 .L9:
89 00b2 2091 0000 lds r18,CurrentOffset.2515
90 00b6 3091 0000 lds r19,(CurrentOffset.2515)+1
91 00ba 2617 cp r18,r22
92 00bc 3707 cpc r19,r23
93 00be 00F0 brlo .L12
94 00c0 20E0 ldi r18,lo8(0)
95 00c2 30E0 ldi r19,hi8(0)
96 00c4 00C0 rjmp .L14
97 .L12:
98 00c6 621B sub r22,r18
99 00c8 730B sbc r23,r19
100 00ca 9B01 movw r18,r22
101 .L14:
102 00cc E92F mov r30,r25
103 00ce F0E0 ldi r31,lo8(0)
104 00d0 EE0F lsl r30
105 00d2 FF1F rol r31
106 00d4 3596 adiw r30,5
107 00d6 E20F add r30,r18
108 00d8 F31F adc r31,r19
109 .L11:
110 00da F093 0000 sts (Capacity)+1,r31
111 00de E093 0000 sts Capacity,r30
112 00e2 EF3F cpi r30,255
113 00e4 F105 cpc r31,__zero_reg__
114 00e6 00F4 brsh .L15
115 00e8 8091 0000 lds r24,UBat
116 00ec 9091 0000 lds r25,(UBat)+1
117 00f0 AC01 movw r20,r24
118 00f2 E49F mul r30,r20
119 00f4 C001 movw r24,r0
120 00f6 E59F mul r30,r21
121 00f8 900D add r25,r0
122 00fa F49F mul r31,r20
123 00fc 900D add r25,r0
124 00fe 1124 clr r1
125 0100 64E6 ldi r22,lo8(100)
126 0102 70E0 ldi r23,hi8(100)
127 0104 00C0 rjmp .L22
128 .L15:
129 0106 8091 0000 lds r24,UBat
130 010a 9091 0000 lds r25,(UBat)+1
131 010e 9F01 movw r18,r30
132 0110 3695 lsr r19
133 0112 2795 ror r18
134 0114 3695 lsr r19
135 0116 2795 ror r18
136 0118 AC01 movw r20,r24
137 011a 249F mul r18,r20
138 011c C001 movw r24,r0
139 011e 259F mul r18,r21
140 0120 900D add r25,r0
141 0122 349F mul r19,r20
142 0124 900D add r25,r0
143 0126 1124 clr r1
144 0128 69E1 ldi r22,lo8(25)
145 012a 70E0 ldi r23,hi8(25)
146 .L22:
147 012c 0E94 0000 call __udivmodhi4
148 0130 7093 0000 sts (Capacity+2)+1,r23
149 0134 6093 0000 sts Capacity+2,r22
150 0138 2091 0000 lds r18,SubCounter.2514
151 013c 3091 0000 lds r19,(SubCounter.2514)+1
152 0140 2E0F add r18,r30
153 0142 3F1F adc r19,r31
154 0144 3093 0000 sts (SubCounter.2514)+1,r19
155 0148 2093 0000 sts SubCounter.2514,r18
156 014c 5EE0 ldi r21,hi8(3601)
157 014e 2131 cpi r18,lo8(3601)
158 0150 3507 cpc r19,r21
159 0152 00F0 brlo .L19
160 0154 8091 0000 lds r24,Capacity+4
161 0158 9091 0000 lds r25,(Capacity+4)+1
162 015c 0196 adiw r24,1
163 015e 9093 0000 sts (Capacity+4)+1,r25
164 0162 8093 0000 sts Capacity+4,r24
165 0166 2051 subi r18,lo8(-(-3600))
166 0168 3E40 sbci r19,hi8(-(-3600))
167 016a 3093 0000 sts (SubCounter.2514)+1,r19
168 016e 2093 0000 sts SubCounter.2514,r18
169 .L19:
170 0172 0895 ret
171 /* epilogue: frame size=0 */
172 /* epilogue: noreturn */
173 /* epilogue end (size=0) */
174 /* function Capacity_Update size 186 (186) */
176 .global Capacity_Init
178 Capacity_Init:
179 /* prologue: frame size=0 */
180 /* prologue end (size=0) */
181 0174 1092 0000 sts (Capacity)+1,__zero_reg__
182 0178 1092 0000 sts Capacity,__zero_reg__
183 017c 1092 0000 sts (Capacity+4)+1,__zero_reg__
184 0180 1092 0000 sts Capacity+4,__zero_reg__
185 0184 1092 0000 sts (Capacity+2)+1,__zero_reg__
186 0188 1092 0000 sts Capacity+2,__zero_reg__
187 018c 1092 0000 sts Capacity+6,__zero_reg__
188 0190 8AE0 ldi r24,lo8(10)
189 0192 90E0 ldi r25,hi8(10)
190 0194 0E94 0000 call SetDelay
191 0198 9093 0000 sts (update_timer)+1,r25
192 019c 8093 0000 sts update_timer,r24
193 /* epilogue: frame size=0 */
194 01a0 0895 ret
195 /* epilogue end (size=1) */
196 /* function Capacity_Init size 23 (22) */
198 .global update_timer
199 .global update_timer
200 .section .bss
203 update_timer:
204 0000 0000 .skip 2,0
205 .lcomm SumCurrentOffset.2516,4
206 .lcomm CurrentOffset.2515,2
207 .lcomm SubCounter.2514,2
208 .comm Capacity,7,1
209 /* File "capacity.c": code 209 = 0x00d1 ( 208), prologues 0, epilogues 1 */
DEFINED SYMBOLS
*ABS*:00000000 capacity.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:12 .text:00000000 Capacity_Update
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:203 .bss:00000000 update_timer
*COM*:00000007 Capacity
.bss:00000002 SumCurrentOffset.2516
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:205 .bss:00000006 CurrentOffset.2515
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:206 .bss:00000008 SubCounter.2514
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgWDiSh.s:178 .text:00000174 Capacity_Init
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
CheckDelay
Motor
UBat
__udivmodhi4
SetDelay
/Spektrum-Diversity/V0.82a/debug.c
0,0 → 1,48
#include "main.h"
#include "debug.h"
 
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#warning : "### DEBUG-Funktion aktiv ###"
 
 
 
unsigned char Debug_BufPtr = 0;
struct str_Debug tDebug;
unsigned char SendDebugOutput = 0;
 
// function called from _printf_P to output character
void Debug_Putchar(char c)
{
if (!SendDebugOutput)
{
tDebug.Text[Debug_BufPtr++] = c; // copy character to buffer
if (Debug_BufPtr > 30) Debug_BufPtr = 30; // avoid buffer overflow
}
}
 
void DebugSend(unsigned char cmd)
{
if (!SendDebugOutput)
{
tDebug.Cmd = cmd;
tDebug.Text[Debug_BufPtr] = '\0'; // end of text marker
Debug_BufPtr = 0; // set bufferindex to 0
SendDebugOutput = 1; // set flag to trasmit data the next time in serial transmit function
}
}
#endif
 
/*
add the following code block to the serial transmit function
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
 
*/
 
/Spektrum-Diversity/V0.82a/debug.d
0,0 → 1,3
debug.o debug.d : debug.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/debug.h
0,0 → 1,60
#ifndef _DEBUG_H
#define _DEBUG_H
// ----------------------------------------------
#define CMD_NONE 0x00
#define CMD_RAW_OUTPUT 0x01
#define CMD_ERROR_MSG 0x02
#define CMD_WARNING_MSG 0x04
#define CMD_GREEN_MSG 0x08
 
// debug console in MK-Tool can also handle ANSI ESC seq.
#define ANSI_ATTRIBUTE_OFF "\033[0m"
#define ANSI_BOLD "\033[1m"
#define ANSI_UNDERSCORE "\033[4m"
#define ANSI_BLINK "\033[5m"
#define ANSI_INVERSE "\033[7m"
#define ANSI_INVISIBLE "\033[8m"
 
#define ANSI_COLOR_BLACK "\033[30m"
#define ANSI_COLOR_RED "\033[31m"
#define ANSI_COLOR_GREEN "\033[32m"
#define ANSI_COLOR_YELLOW "\033[33m"
#define ANSI_COLOR_BLUE "\033[34m"
#define ANSI_COLOR_VIOLETT "\033[35m"
#define ANSI_COLOR_KOBALTBLUE "\033[36m"
#define ANSI_COLOR_WHITE "\033[37m"
 
#define ANSI_CLEAR "\033[2J"
#define ANSI_HOME "\033[H"
 
// macros for easier use
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#define Debug(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_NONE); }
#define Debug_Raw(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_RAW_OUTPUT); }
#define Debug_Warning(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_WARNING_MSG); }
#define Debug_Error(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_ERROR_MSG); }
#define Debug_OK(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_GREEN_MSG); }
 
struct str_Debug
{
unsigned char Cmd; // bitcoded command
char Text[32];
};
 
extern struct str_Debug tDebug;
unsigned char SendDebugOutput;
 
void Debug_Putchar(char c);
void DebugSend(unsigned char cmd);
 
#else // dummy macros (won't waste flash, if #DEBUG is disabled)
#define Debug(format, args...) ;
#define Debug_Raw(format, args...) ;
#define Debug_Warning(format, args...) ;
#define Debug_Error(format, args...) ;
#define Debug_OK(format, args...) ;
#endif
 
// ----------------------------------------------
#endif
/Spektrum-Diversity/V0.82a/debug.lst
0,0 → 1,20
1 .file "debug.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 /* File "debug.c": code 0 = 0x0000 ( 0), prologues 0, epilogues 0 */
DEFINED SYMBOLS
*ABS*:00000000 debug.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccYUPR3s.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccYUPR3s.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccYUPR3s.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccYUPR3s.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccYUPR3s.s:6 *ABS*:00000001 __zero_reg__
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
/Spektrum-Diversity/V0.82a/eeprom.c
0,0 → 1,595
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
 
 
#include <avr/eeprom.h>
#include <string.h>
#include "eeprom.h"
#include "uart.h"
#include "led.h"
#include "main.h"
#include "fc.h"
#include "twimaster.h"
 
paramset_t EE_Parameter;
MixerTable_t Mixer;
uint8_t RequiredMotors;
 
 
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t i;
 
for(i=0; i<len; i++)
{
crc += pBuffer[i];
}
return crc;
}
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t off;
 
for(off=0; off<len; off++)
{
crc += eeprom_read_byte((uint8_t*)(EEAddr + off));;
}
return crc;
}
 
void ParamSet_DefaultStickMapping(void)
{
EE_Parameter.Kanalbelegung[K_GAS] = 1;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_NICK] = 3;
EE_Parameter.Kanalbelegung[K_GIER] = 4;
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
EE_Parameter.Kanalbelegung[K_POTI3] = 7;
EE_Parameter.Kanalbelegung[K_POTI4] = 8;
EE_Parameter.Kanalbelegung[K_POTI5] = 9;
EE_Parameter.Kanalbelegung[K_POTI6] = 10;
EE_Parameter.Kanalbelegung[K_POTI7] = 11;
EE_Parameter.Kanalbelegung[K_POTI8] = 12;
}
 
 
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void CommonDefaults(void)
{
EE_Parameter.Revision = EEPARAM_REVISION;
 
if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
else
{
EE_Parameter.Gyro_D = 3;
EE_Parameter.Driftkomp = 32;
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT | CFG2_VARIO_BEEP;
EE_Parameter.Receiver = RECEIVER_SPEKTRUM;
EE_Parameter.MotorSafetySwitch = 0;
EE_Parameter.ExternalControl = 0;
 
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-247
EE_Parameter.KompassWirkung = 128; // Wert : 0-247
 
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 255; // Wert : 0-247 255 -> Poti1
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 0; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50
 
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
 
EE_Parameter.ServoNickControl = 120; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoCompInvert = 2; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 15; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickRefresh = 5;
EE_Parameter.Servo3 = 125;
EE_Parameter.Servo4 = 125;
EE_Parameter.Servo5 = 125;
EE_Parameter.ServoRollControl = 120; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoRollComp = 90; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoRollMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoRollMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.ServoManualControlSpeed = 40;
EE_Parameter.CamOrientation = 0;
 
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.WARN_J16_Bitmask = 0xAA;
EE_Parameter.WARN_J17_Bitmask = 0xAA;
EE_Parameter.J16Timing = 20;
EE_Parameter.J17Timing = 20;
 
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
 
EE_Parameter.NaviGpsModeControl = 254; // 254 -> Poti 2
EE_Parameter.NaviGpsGain = 100;
EE_Parameter.NaviGpsP = 90;
EE_Parameter.NaviGpsI = 90;
EE_Parameter.NaviGpsD = 90;
EE_Parameter.NaviGpsPLimit = 75;
EE_Parameter.NaviGpsILimit = 75;
EE_Parameter.NaviGpsDLimit = 75;
EE_Parameter.NaviGpsACC = 0;
EE_Parameter.NaviGpsMinSat = 6;
EE_Parameter.NaviStickThreshold = 8;
EE_Parameter.NaviWindCorrection = 90;
EE_Parameter.NaviSpeedCompensation = 30;
EE_Parameter.NaviOperatingRadius = 100;
EE_Parameter.NaviAngleLimitation = 100;
EE_Parameter.NaviPH_LoginTime = 2;
EE_Parameter.OrientationAngle = 0;
EE_Parameter.OrientationModeControl = 0;
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.NotGas = 45; // Wert : 0-247 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
}
 
void ParamSet_DefaultSet1(void) // sport
{
CommonDefaults();
EE_Parameter.Stick_P = 14; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 12; // Wert : 1-20
EE_Parameter.Gyro_P = 80; // Wert : 0-247
EE_Parameter.Gyro_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 80; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 32;
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 1;
EE_Parameter.GyroAccAbgleich = 16; // 1/k;
EE_Parameter.DynamicStability = 100;
memcpy(EE_Parameter.Name, "Sport\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Default Values for parameter set 2 */
/***************************************************/
void ParamSet_DefaultSet2(void) // normal
{
CommonDefaults();
EE_Parameter.Stick_P = 10; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gyro_P = 90; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 32;
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 60;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.DynamicStability = 75;
memcpy(EE_Parameter.Name, "Normal\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Default Values for parameter set 3 */
/***************************************************/
void ParamSet_DefaultSet3(void) // beginner
{
CommonDefaults();
EE_Parameter.Stick_P = 8; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gyro_P = 100; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 16;
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 70;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.DynamicStability = 70;
memcpy(EE_Parameter.Name, "Beginner\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter from EEPROM as word */
/***************************************************/
uint16_t GetParamWord(uint16_t param_id)
{
return eeprom_read_word((uint16_t *)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as word */
/***************************************************/
void SetParamWord(uint16_t param_id, uint16_t value)
{
eeprom_write_word((uint16_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter Set from EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber)
{
uint8_t crc;
uint16_t eeaddr;
 
// range the setnumber
if((1 > setnumber) || (setnumber > 5)) setnumber = 3;
 
// calculate eeprom addr
eeaddr = EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1);
 
// calculate checksum from eeprom
crc = EEProm_Checksum(eeaddr, PARAMSET_STRUCT_LEN - 1);
 
// check crc
if(crc != eeprom_read_byte((uint8_t*)(eeaddr + PARAMSET_STRUCT_LEN - 1))) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(eeaddr)) != EEPARAM_REVISION) return 0;
 
// read paramset from eeprom
eeprom_read_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
LED_Init();
return 1;
}
 
/***************************************************/
/* Write Parameter Set to EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_WriteToEEProm(uint8_t setnumber)
{
uint8_t crc;
 
if(EE_Parameter.Revision == EEPARAM_REVISION) // write only the right revision to eeprom
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) return 0;
 
// update checksum
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
 
// write paramset to eeprom
eeprom_write_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
 
// backup channel settings to separate block in eeprom
eeprom_write_block( (void*)(EE_Parameter.Kanalbelegung), (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
 
// write crc of channel block to eeprom
crc = RAM_Checksum((uint8_t*)(EE_Parameter.Kanalbelegung), sizeof(EE_Parameter.Kanalbelegung));
eeprom_write_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)), crc);
 
// update active settings number
SetActiveParamSet(setnumber);
LED_Init();
return 1;
}
// wrong revision
return 0;
}
 
/***************************************************/
/* Read MixerTable from EEPROM */
/***************************************************/
uint8_t MixerTable_ReadFromEEProm(void)
{
uint8_t crc;
 
// calculate checksum in eeprom
crc = EEProm_Checksum(EEPROM_ADR_MIXERTABLE, sizeof(Mixer) - 1);
 
// check crc
if( crc != eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE + sizeof(Mixer) - 1)) ) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE)) != EEMIXER_REVISION) return 0;
 
// read mixer table
eeprom_read_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
 
/***************************************************/
/* Write Mixer Table to EEPROM */
/***************************************************/
uint8_t MixerTable_WriteToEEProm(void)
{
if(Mixer.Revision == EEMIXER_REVISION)
{
// update crc
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
 
// write to eeprom
eeprom_write_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
else return 0;
}
 
/***************************************************/
/* Default Values for Mixer Table */
/***************************************************/
void MixerTable_Default(void) // Quadro
{
uint8_t i;
 
Mixer.Revision = EEMIXER_REVISION;
// clear mixer table
for(i = 0; i < 16; i++)
{
Mixer.Motor[i][MIX_GAS] = 0;
Mixer.Motor[i][MIX_NICK] = 0;
Mixer.Motor[i][MIX_ROLL] = 0;
Mixer.Motor[i][MIX_YAW] = 0;
}
// default = Quadro
Mixer.Motor[0][MIX_GAS] = 64; Mixer.Motor[0][MIX_NICK] = +64; Mixer.Motor[0][MIX_ROLL] = 0; Mixer.Motor[0][MIX_YAW] = +64;
Mixer.Motor[1][MIX_GAS] = 64; Mixer.Motor[1][MIX_NICK] = -64; Mixer.Motor[1][MIX_ROLL] = 0; Mixer.Motor[1][MIX_YAW] = +64;
Mixer.Motor[2][MIX_GAS] = 64; Mixer.Motor[2][MIX_NICK] = 0; Mixer.Motor[2][MIX_ROLL] = -64; Mixer.Motor[2][MIX_YAW] = -64;
Mixer.Motor[3][MIX_GAS] = 64; Mixer.Motor[3][MIX_NICK] = 0; Mixer.Motor[3][MIX_ROLL] = +64; Mixer.Motor[3][MIX_YAW] = -64;
memcpy(Mixer.Name, "Quadro\0", 7);
Mixer.crc = Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
}
 
/***************************************************/
/* Get active parameter set */
/***************************************************/
uint8_t GetActiveParamSet(void)
{
uint8_t setnumber;
setnumber = eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET));
if(setnumber > 5)
{
setnumber = 3;
eeprom_write_byte((void*)(EEPROM_ADR_PARAM_BEGIN+PID_ACTIVE_SET), setnumber);
}
return(setnumber);
}
 
/***************************************************/
/* Set active parameter set */
/***************************************************/
void SetActiveParamSet(uint8_t setnumber)
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) setnumber = 1;
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET), setnumber);
}
 
/***************************************************/
/* Set default parameter set */
/***************************************************/
void SetDefaultParameter(uint8_t set, uint8_t restore_channels)
{
 
if(set > 5) set = 5;
else if(set < 1) set = 1;
 
switch(set)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
break;
case 2:
ParamSet_DefaultSet2(); // Kamera
break;
case 3:
ParamSet_DefaultSet3(); // Beginner
break;
default:
ParamSet_DefaultSet3(); // Beginner
break;
}
if(restore_channels)
{
uint8_t crc;
// 1st check for a valid channel backup in eeprom
crc = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
if(crc == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung))) )
{
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
}
else ParamSet_DefaultStickMapping();
}
else ParamSet_DefaultStickMapping();
ParamSet_WriteToEEProm(set);
}
 
/***************************************************/
/* Initialize EEPROM Parameter Sets */
/***************************************************/
void ParamSet_Init(void)
{
uint8_t channel_backup = 0, bad_params = 0, ee_default = 0,i;
 
 
if(EEPARAM_REVISION != GetParamByte(PID_EE_REVISION) )
{
ee_default = 1; // software update or forced by mktool
SetParamByte(PID_EE_REVISION, EEPARAM_REVISION);
}
 
 
// 1st check for a valid channel backup in eeprom
i = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
if(i == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung))) ) channel_backup = 1;
 
 
// parameter check
 
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
printf("\n\rGenerating default Parameter Set %d",i);
switch(i)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
break;
case 2:
ParamSet_DefaultSet2(); // Kamera
break;
case 3:
ParamSet_DefaultSet3(); // Beginner
break;
default:
ParamSet_DefaultSet3(); // Kamera
break;
}
if(channel_backup) // if we have an channel mapping backup in eeprom
{ // restore it from eeprom
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
}
else
{ // use default mapping
ParamSet_DefaultStickMapping();
}
ParamSet_WriteToEEProm(i);
}
}
if(bad_params) // at least one of the parameter settings were invalid
{
// default-Setting is parameter set 3
SetActiveParamSet(3);
}
 
 
// read active parameter set to ParamSet stucture
i = GetActiveParamSet();
ParamSet_ReadFromEEProm(i);
printf("\n\rUsing Parameter Set %d", i);
 
// load mixer table
if(ee_default || !MixerTable_ReadFromEEProm() )
{
printf("\n\rGenerating default Mixer Table");
MixerTable_Default(); // Quadro
MixerTable_WriteToEEProm();
}
// determine motornumber
RequiredMotors = 0;
for(i = 0; i < 16; i++)
{
if(Mixer.Motor[i][MIX_GAS] > 0) RequiredMotors++;
}
 
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name, RequiredMotors);
printf("\n\r==============================");
}
/Spektrum-Diversity/V0.82a/eeprom.d
0,0 → 1,3
eeprom.o eeprom.d : eeprom.c eeprom.h twimaster.h uart.h led.h main.h old_macros.h \
printf_P.h timer0.h analog.h menu.h rc.h fc.h gps.h spi.h spektrum.h \
capacity.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/eeprom.h
0,0 → 1,241
#ifndef _EEPROM_H
#define _EEPROM_H
 
#include <inttypes.h>
#include "twimaster.h"
 
#define EEPARAM_REVISION 85 // is count up, if paramater stucture has changed (compatibility)
#define EEMIXER_REVISION 1 // is count up, if mixer stucture has changed (compatibility)
 
 
#define EEPROM_ADR_PARAM_BEGIN 0
#define PID_EE_REVISION 1 // byte
#define PID_ACTIVE_SET 2 // byte
#define PID_PRESSURE_OFFSET 3 // byte
 
#define PID_ACC_NICK 4 // word
#define PID_ACC_ROLL 6 // word
#define PID_ACC_TOP 8 // word
 
#define PID_FLIGHT_MINUTES_TOTAL 10 // word
#define PID_FLIGHT_MINUTES 14 // word
 
#define EEPROM_ADR_CHANNELS 80 // 80 - 93, 12 bytes + 1 byte crc
#define EEPROM_ADR_PARAMSET 100 // 100 - 650, 5 * 110 bytes
#define EEPROM_ADR_MIXERTABLE 1000 // 1000 - 1078, 78 bytes
#define EEPROM_ADR_BLCONFIG 1200 // 1200 - 1296, 12 * 8 bytes
 
#define MIX_GAS 0
#define MIX_NICK 1
#define MIX_ROLL 2
#define MIX_YAW 3
 
typedef struct
{
uint8_t Revision;
int8_t Name[12];
int8_t Motor[16][4];
uint8_t crc;
} __attribute__((packed)) MixerTable_t;
 
extern MixerTable_t Mixer;
extern uint8_t RequiredMotors;
 
#define CFG_HOEHENREGELUNG 0x01
#define CFG_HOEHEN_SCHALTER 0x02
#define CFG_HEADING_HOLD 0x04
#define CFG_KOMPASS_AKTIV 0x08
#define CFG_KOMPASS_FIX 0x10
#define CFG_GPS_AKTIV 0x20
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40
#define CFG_DREHRATEN_BEGRENZER 0x80
 
#define CFG_LOOP_OBEN 0x01
#define CFG_LOOP_UNTEN 0x02
#define CFG_LOOP_LINKS 0x04
#define CFG_LOOP_RECHTS 0x08
#define CFG_MOTOR_BLINK 0x10
#define CFG_MOTOR_OFF_LED1 0x20
#define CFG_MOTOR_OFF_LED2 0x40
#define CFG_RES4 0x80
 
#define CFG2_HEIGHT_LIMIT 0x01
#define CFG2_VARIO_BEEP 0x02
#define CFG_SENSITIVE_RC 0x04
 
// bit mask for ParamSet.Config0
#define CFG0_AIRPRESS_SENSOR 0x01
#define CFG0_HEIGHT_SWITCH 0x02
#define CFG0_HEADING_HOLD 0x04
#define CFG0_COMPASS_ACTIVE 0x08
#define CFG0_COMPASS_FIX 0x10
#define CFG0_GPS_ACTIVE 0x20
#define CFG0_AXIS_COUPLING_ACTIVE 0x40
#define CFG0_ROTARY_RATE_LIMITER 0x80
 
// defines for the receiver selection
#define RECEIVER_PPM 0
#define RECEIVER_SPEKTRUM 1
#define RECEIVER_SPEKTRUM_HI_RES 2
#define RECEIVER_SPEKTRUM_LOW_RES 3
#define RECEIVER_JETI 4
#define RECEIVER_ACT_DSL 5
#define RECEIVER_UNKNOWN 0xFF
 
// defines for lookup ParamSet.ChannelAssignment
#define K_NICK 0
#define K_ROLL 1
#define K_GAS 2
#define K_GIER 3
#define K_POTI1 4
#define K_POTI2 5
#define K_POTI3 6
#define K_POTI4 7
#define K_POTI5 8
#define K_POTI6 9
#define K_POTI7 10
#define K_POTI8 11
 
 
// values above 247 representing poti1 to poti8
// poti1 = 255
// poti2 = 254
// poti3 = 253
// poti4 = 252
// poti5 = 251
// poti6 = 250
// poti7 = 249
// poti8 = 248
 
 
typedef struct
{
unsigned char Revision;
unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
unsigned char Hoehe_MinGas; // Wert : 0-100
unsigned char Luftdruck_D; // Wert : 0-250
unsigned char MaxHoehe; // Wert : 0-32
unsigned char Hoehe_P; // Wert : 0-32
unsigned char Hoehe_Verstaerkung; // Wert : 0-50
unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
unsigned char Hoehe_HoverBand; // Wert : 0-250
unsigned char Hoehe_GPS_Z; // Wert : 0-250
unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
unsigned char Stick_P; // Wert : 1-6
unsigned char Stick_D; // Wert : 0-64
unsigned char Gier_P; // Wert : 1-20
unsigned char Gas_Min; // Wert : 0-32
unsigned char Gas_Max; // Wert : 33-250
unsigned char GyroAccFaktor; // Wert : 1-64
unsigned char KompassWirkung; // Wert : 0-32
unsigned char Gyro_P; // Wert : 10-250
unsigned char Gyro_I; // Wert : 0-250
unsigned char Gyro_D; // Wert : 0-250
unsigned char Gyro_Gier_P; // Wert : 10-250
unsigned char Gyro_Gier_I; // Wert : 0-250
unsigned char Gyro_Stability; // Wert : 0-16
unsigned char UnterspannungsWarnung; // Wert : 0-250
unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
unsigned char I_Faktor; // Wert : 0-250
unsigned char UserParam1; // Wert : 0-250
unsigned char UserParam2; // Wert : 0-250
unsigned char UserParam3; // Wert : 0-250
unsigned char UserParam4; // Wert : 0-250
unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
//--- Seit V0.75
unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoRollComp; // Wert : 0-250
unsigned char ServoRollMin; // Wert : 0-250
unsigned char ServoRollMax; // Wert : 0-250
//---
unsigned char ServoNickRefresh; // Speed of the Servo
unsigned char ServoManualControlSpeed;//
unsigned char CamOrientation; //
unsigned char Servo3; // Value or mapping of the Servo Output
unsigned char Servo4; // Value or mapping of the Servo Output
unsigned char Servo5; // Value or mapping of the Servo Output
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
unsigned char Driftkomp;
unsigned char DynamicStability;
unsigned char UserParam5; // Wert : 0-250
unsigned char UserParam6; // Wert : 0-250
unsigned char UserParam7; // Wert : 0-250
unsigned char UserParam8; // Wert : 0-250
//---Output ---------------------------------------------
unsigned char J16Bitmask; // for the J16 Output
unsigned char J16Timing; // for the J16 Output
unsigned char J17Bitmask; // for the J17 Output
unsigned char J17Timing; // for the J17 Output
// seit version V0.75c
unsigned char WARN_J16_Bitmask; // for the J16 Output
unsigned char WARN_J17_Bitmask; // for the J17 Output
//---NaviCtrl---------------------------------------------
unsigned char NaviGpsModeControl; // Parameters for the Naviboard
unsigned char NaviGpsGain;
unsigned char NaviGpsP;
unsigned char NaviGpsI;
unsigned char NaviGpsD;
unsigned char NaviGpsPLimit;
unsigned char NaviGpsILimit;
unsigned char NaviGpsDLimit;
unsigned char NaviGpsACC;
unsigned char NaviGpsMinSat;
unsigned char NaviStickThreshold;
unsigned char NaviWindCorrection;
unsigned char NaviSpeedCompensation;
unsigned char NaviOperatingRadius;
unsigned char NaviAngleLimitation;
unsigned char NaviPH_LoginTime;
//---Ext.Ctrl---------------------------------------------
unsigned char ExternalControl; // for serial Control
//---CareFree---------------------------------------------
unsigned char OrientationAngle; // Where is the front-direction?
unsigned char OrientationModeControl; // switch for CareFree
unsigned char MotorSafetySwitch;
//------------------------------------------------
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll 0 oder 1 // WICHTIG!!! am Ende lassen
unsigned char ExtraConfig; // bitcodiert
char Name[12];
unsigned char crc; // must be the last byte!
} paramset_t;
 
#define PARAMSET_STRUCT_LEN sizeof(paramset_t)
 
extern paramset_t EE_Parameter;
 
extern uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len);
 
extern void ParamSet_Init(void);
extern void SetDefaultParameter(uint8_t set, uint8_t restore_channels);
 
extern uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber);
extern uint8_t ParamSet_WriteToEEProm(uint8_t setnumber);
 
extern uint8_t GetActiveParamSet(void);
extern void SetActiveParamSet(uint8_t setnumber);
 
extern uint8_t MixerTable_ReadFromEEProm(void);
extern uint8_t MixerTable_WriteToEEProm(void);
 
extern uint8_t GetParamByte(uint16_t param_id);
extern void SetParamByte(uint16_t param_id, uint8_t value);
extern uint16_t GetParamWord(uint16_t param_id);
extern void SetParamWord(uint16_t param_id, uint16_t value);
 
 
#endif //_EEPROM_H
/Spektrum-Diversity/V0.82a/eeprom.lst
0,0 → 1,1168
1 .file "eeprom.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global RAM_Checksum
12 RAM_Checksum:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 DC01 movw r26,r24
16 0002 4AEA ldi r20,lo8(-86)
17 0004 20E0 ldi r18,lo8(0)
18 0006 30E0 ldi r19,hi8(0)
19 0008 00C0 rjmp .L2
20 .L3:
21 000a FD01 movw r30,r26
22 000c E20F add r30,r18
23 000e F31F adc r31,r19
24 0010 8081 ld r24,Z
25 0012 480F add r20,r24
26 0014 2F5F subi r18,lo8(-(1))
27 0016 3F4F sbci r19,hi8(-(1))
28 .L2:
29 0018 2617 cp r18,r22
30 001a 3707 cpc r19,r23
31 001c 01F4 brne .L3
32 001e 842F mov r24,r20
33 0020 90E0 ldi r25,lo8(0)
34 /* epilogue: frame size=0 */
35 0022 0895 ret
36 /* epilogue end (size=1) */
37 /* function RAM_Checksum size 18 (17) */
39 .global EEProm_Checksum
41 EEProm_Checksum:
42 /* prologue: frame size=0 */
43 /* prologue end (size=0) */
44 0024 FC01 movw r30,r24
45 0026 4AEA ldi r20,lo8(-86)
46 0028 20E0 ldi r18,lo8(0)
47 002a 30E0 ldi r19,hi8(0)
48 002c 00C0 rjmp .L7
49 .L8:
50 002e DF01 movw r26,r30
51 0030 A20F add r26,r18
52 0032 B31F adc r27,r19
53 /* #APP */
54 0034 0E94 0000 call __eeprom_read_byte_1F2021
55 0038 802D mov r24,__tmp_reg__
56 /* #NOAPP */
57 003a 480F add r20,r24
58 003c 2F5F subi r18,lo8(-(1))
59 003e 3F4F sbci r19,hi8(-(1))
60 .L7:
61 0040 2617 cp r18,r22
62 0042 3707 cpc r19,r23
63 0044 01F4 brne .L8
64 0046 842F mov r24,r20
65 0048 90E0 ldi r25,lo8(0)
66 /* epilogue: frame size=0 */
67 004a 0895 ret
68 /* epilogue end (size=1) */
69 /* function EEProm_Checksum size 21 (20) */
71 .global ParamSet_DefaultStickMapping
73 ParamSet_DefaultStickMapping:
74 /* prologue: frame size=0 */
75 /* prologue end (size=0) */
76 004c 81E0 ldi r24,lo8(1)
77 004e 8093 0000 sts EE_Parameter+3,r24
78 0052 82E0 ldi r24,lo8(2)
79 0054 8093 0000 sts EE_Parameter+2,r24
80 0058 83E0 ldi r24,lo8(3)
81 005a 8093 0000 sts EE_Parameter+1,r24
82 005e 84E0 ldi r24,lo8(4)
83 0060 8093 0000 sts EE_Parameter+4,r24
84 0064 85E0 ldi r24,lo8(5)
85 0066 8093 0000 sts EE_Parameter+5,r24
86 006a 86E0 ldi r24,lo8(6)
87 006c 8093 0000 sts EE_Parameter+6,r24
88 0070 87E0 ldi r24,lo8(7)
89 0072 8093 0000 sts EE_Parameter+7,r24
90 0076 88E0 ldi r24,lo8(8)
91 0078 8093 0000 sts EE_Parameter+8,r24
92 007c 89E0 ldi r24,lo8(9)
93 007e 8093 0000 sts EE_Parameter+9,r24
94 0082 8AE0 ldi r24,lo8(10)
95 0084 8093 0000 sts EE_Parameter+10,r24
96 0088 8BE0 ldi r24,lo8(11)
97 008a 8093 0000 sts EE_Parameter+11,r24
98 008e 8CE0 ldi r24,lo8(12)
99 0090 8093 0000 sts EE_Parameter+12,r24
100 /* epilogue: frame size=0 */
101 0094 0895 ret
102 /* epilogue end (size=1) */
103 /* function ParamSet_DefaultStickMapping size 37 (36) */
105 .global CommonDefaults
107 CommonDefaults:
108 /* prologue: frame size=0 */
109 /* prologue end (size=0) */
110 0096 95E5 ldi r25,lo8(85)
111 0098 9093 0000 sts EE_Parameter,r25
112 009c 8091 0000 lds r24,PlatinenVersion
113 00a0 8431 cpi r24,lo8(20)
114 00a2 00F0 brlo .L14
115 00a4 8AE0 ldi r24,lo8(10)
116 00a6 8093 0000 sts EE_Parameter+32,r24
117 00aa 1092 0000 sts EE_Parameter+68,__zero_reg__
118 00ae 8BE1 ldi r24,lo8(27)
119 00b0 8093 0000 sts EE_Parameter+28,r24
120 00b4 8EE4 ldi r24,lo8(78)
121 00b6 8093 0000 sts EE_Parameter+65,r24
122 00ba 8093 0000 sts EE_Parameter+66,r24
123 00be 00C0 rjmp .L16
124 .L14:
125 00c0 83E0 ldi r24,lo8(3)
126 00c2 8093 0000 sts EE_Parameter+32,r24
127 00c6 80E2 ldi r24,lo8(32)
128 00c8 8093 0000 sts EE_Parameter+68,r24
129 00cc 8EE1 ldi r24,lo8(30)
130 00ce 8093 0000 sts EE_Parameter+28,r24
131 00d2 9093 0000 sts EE_Parameter+65,r25
132 00d6 9093 0000 sts EE_Parameter+66,r25
133 .L16:
134 00da 8AE6 ldi r24,lo8(106)
135 00dc 8093 0000 sts EE_Parameter+13,r24
136 00e0 83E0 ldi r24,lo8(3)
137 00e2 8093 0000 sts EE_Parameter+102,r24
138 00e6 81E0 ldi r24,lo8(1)
139 00e8 8093 0000 sts EE_Parameter+39,r24
140 00ec 1092 0000 sts EE_Parameter+99,__zero_reg__
141 00f0 1092 0000 sts EE_Parameter+96,__zero_reg__
142 00f4 68E0 ldi r22,lo8(8)
143 00f6 6093 0000 sts EE_Parameter+26,r22
144 00fa 86EE ldi r24,lo8(-26)
145 00fc 8093 0000 sts EE_Parameter+27,r24
146 0100 80E8 ldi r24,lo8(-128)
147 0102 8093 0000 sts EE_Parameter+29,r24
148 0106 5EE1 ldi r21,lo8(30)
149 0108 5093 0000 sts EE_Parameter+14,r21
150 010c 8FEF ldi r24,lo8(-1)
151 010e 8093 0000 sts EE_Parameter+16,r24
152 0112 9FE0 ldi r25,lo8(15)
153 0114 9093 0000 sts EE_Parameter+17,r25
154 0118 5093 0000 sts EE_Parameter+15,r21
155 011c 1092 0000 sts EE_Parameter+19,__zero_reg__
156 0120 6093 0000 sts EE_Parameter+20,r22
157 0124 80E4 ldi r24,lo8(64)
158 0126 8093 0000 sts EE_Parameter+21,r24
159 012a 1092 0000 sts EE_Parameter+22,__zero_reg__
160 012e 9093 0000 sts EE_Parameter+18,r25
161 0132 1092 0000 sts EE_Parameter+41,__zero_reg__
162 0136 1092 0000 sts EE_Parameter+42,__zero_reg__
163 013a 1092 0000 sts EE_Parameter+43,__zero_reg__
164 013e 1092 0000 sts EE_Parameter+44,__zero_reg__
165 0142 1092 0000 sts EE_Parameter+70,__zero_reg__
166 0146 1092 0000 sts EE_Parameter+71,__zero_reg__
167 014a 1092 0000 sts EE_Parameter+72,__zero_reg__
168 014e 1092 0000 sts EE_Parameter+73,__zero_reg__
169 0152 38E7 ldi r19,lo8(120)
170 0154 3093 0000 sts EE_Parameter+45,r19
171 0158 48E2 ldi r20,lo8(40)
172 015a 4093 0000 sts EE_Parameter+46,r20
173 015e 72E0 ldi r23,lo8(2)
174 0160 7093 0000 sts EE_Parameter+101,r23
175 0164 9093 0000 sts EE_Parameter+47,r25
176 0168 27EF ldi r18,lo8(-9)
177 016a 2093 0000 sts EE_Parameter+48,r18
178 016e 85E0 ldi r24,lo8(5)
179 0170 8093 0000 sts EE_Parameter+53,r24
180 0174 8DE7 ldi r24,lo8(125)
181 0176 8093 0000 sts EE_Parameter+56,r24
182 017a 8093 0000 sts EE_Parameter+57,r24
183 017e 8093 0000 sts EE_Parameter+58,r24
184 0182 3093 0000 sts EE_Parameter+49,r19
185 0186 9AE5 ldi r25,lo8(90)
186 0188 9093 0000 sts EE_Parameter+50,r25
187 018c 1092 0000 sts EE_Parameter+51,__zero_reg__
188 0190 2093 0000 sts EE_Parameter+52,r18
189 0194 4093 0000 sts EE_Parameter+54,r20
190 0198 1092 0000 sts EE_Parameter+55,__zero_reg__
191 019c 8FE5 ldi r24,lo8(95)
192 019e 8093 0000 sts EE_Parameter+74,r24
193 01a2 83EF ldi r24,lo8(-13)
194 01a4 8093 0000 sts EE_Parameter+76,r24
195 01a8 8AEA ldi r24,lo8(-86)
196 01aa 8093 0000 sts EE_Parameter+78,r24
197 01ae 8093 0000 sts EE_Parameter+79,r24
198 01b2 84E1 ldi r24,lo8(20)
199 01b4 8093 0000 sts EE_Parameter+75,r24
200 01b8 8093 0000 sts EE_Parameter+77,r24
201 01bc 82E3 ldi r24,lo8(50)
202 01be 8093 0000 sts EE_Parameter+59,r24
203 01c2 9093 0000 sts EE_Parameter+60,r25
204 01c6 8093 0000 sts EE_Parameter+61,r24
205 01ca 1092 0000 sts EE_Parameter+100,__zero_reg__
206 01ce 8EEF ldi r24,lo8(-2)
207 01d0 8093 0000 sts EE_Parameter+80,r24
208 01d4 24E6 ldi r18,lo8(100)
209 01d6 2093 0000 sts EE_Parameter+81,r18
210 01da 9093 0000 sts EE_Parameter+82,r25
211 01de 9093 0000 sts EE_Parameter+83,r25
212 01e2 9093 0000 sts EE_Parameter+84,r25
213 01e6 8BE4 ldi r24,lo8(75)
214 01e8 8093 0000 sts EE_Parameter+85,r24
215 01ec 8093 0000 sts EE_Parameter+86,r24
216 01f0 8093 0000 sts EE_Parameter+87,r24
217 01f4 1092 0000 sts EE_Parameter+88,__zero_reg__
218 01f8 86E0 ldi r24,lo8(6)
219 01fa 8093 0000 sts EE_Parameter+89,r24
220 01fe 6093 0000 sts EE_Parameter+90,r22
221 0202 9093 0000 sts EE_Parameter+91,r25
222 0206 5093 0000 sts EE_Parameter+92,r21
223 020a 2093 0000 sts EE_Parameter+93,r18
224 020e 2093 0000 sts EE_Parameter+94,r18
225 0212 7093 0000 sts EE_Parameter+95,r23
226 0216 1092 0000 sts EE_Parameter+97,__zero_reg__
227 021a 1092 0000 sts EE_Parameter+98,__zero_reg__
228 021e 81E2 ldi r24,lo8(33)
229 0220 8093 0000 sts EE_Parameter+36,r24
230 0224 8DE2 ldi r24,lo8(45)
231 0226 8093 0000 sts EE_Parameter+37,r24
232 022a 9093 0000 sts EE_Parameter+38,r25
233 /* epilogue: frame size=0 */
234 022e 0895 ret
235 /* epilogue end (size=1) */
236 /* function CommonDefaults size 205 (204) */
238 .global GetParamByte
240 GetParamByte:
241 /* prologue: frame size=0 */
242 /* prologue end (size=0) */
243 0230 DC01 movw r26,r24
244 /* #APP */
245 0232 0E94 0000 call __eeprom_read_byte_1F2021
246 0236 802D mov r24,__tmp_reg__
247 /* #NOAPP */
248 0238 90E0 ldi r25,lo8(0)
249 /* epilogue: frame size=0 */
250 023a 0895 ret
251 /* epilogue end (size=1) */
252 /* function GetParamByte size 7 (6) */
254 .global SetParamByte
256 SetParamByte:
257 /* prologue: frame size=0 */
258 /* prologue end (size=0) */
259 023c DC01 movw r26,r24
260 /* #APP */
261 023e 062E mov __tmp_reg__,r22
262 0240 0E94 0000 call __eeprom_write_byte_1F2021
263 /* #NOAPP */
264 /* epilogue: frame size=0 */
265 0244 0895 ret
266 /* epilogue end (size=1) */
267 /* function SetParamByte size 6 (5) */
269 .global GetParamWord
271 GetParamWord:
272 /* prologue: frame size=0 */
273 /* prologue end (size=0) */
274 0246 DC01 movw r26,r24
275 /* #APP */
276 0248 0E94 0000 call __eeprom_read_word_1F2021
277
278 /* #NOAPP */
279 024c CF01 movw r24,r30
280 /* epilogue: frame size=0 */
281 024e 0895 ret
282 /* epilogue end (size=1) */
283 /* function GetParamWord size 7 (6) */
285 .global SetParamWord
287 SetParamWord:
288 /* prologue: frame size=0 */
289 /* prologue end (size=0) */
290 0250 DC01 movw r26,r24
291 /* #APP */
292 0252 0B01 movw __tmp_reg__,r22
293 0254 0E94 0000 call __eeprom_write_word_1F2021
294
295 /* #NOAPP */
296 /* epilogue: frame size=0 */
297 0258 0895 ret
298 /* epilogue end (size=1) */
299 /* function SetParamWord size 8 (7) */
301 .global GetActiveParamSet
303 GetActiveParamSet:
304 /* prologue: frame size=0 */
305 /* prologue end (size=0) */
306 025a 22E0 ldi r18,lo8(2)
307 025c 30E0 ldi r19,hi8(2)
308 025e D901 movw r26,r18
309 /* #APP */
310 0260 0E94 0000 call __eeprom_read_byte_1F2021
311 0264 802D mov r24,__tmp_reg__
312 /* #NOAPP */
313 0266 8630 cpi r24,lo8(6)
314 0268 00F0 brlo .L27
315 026a 83E0 ldi r24,lo8(3)
316 026c D901 movw r26,r18
317 /* #APP */
318 026e 082E mov __tmp_reg__,r24
319 0270 0E94 0000 call __eeprom_write_byte_1F2021
320 /* #NOAPP */
321 .L27:
322 0274 90E0 ldi r25,lo8(0)
323 /* epilogue: frame size=0 */
324 0276 0895 ret
325 /* epilogue end (size=1) */
326 /* function GetActiveParamSet size 17 (16) */
328 .global SetActiveParamSet
330 SetActiveParamSet:
331 /* prologue: frame size=0 */
332 /* prologue end (size=0) */
333 0278 8630 cpi r24,lo8(6)
334 027a 00F0 brlo .L31
335 027c 85E0 ldi r24,lo8(5)
336 027e 00C0 rjmp .L33
337 .L31:
338 0280 8823 tst r24
339 0282 01F4 brne .L33
340 0284 81E0 ldi r24,lo8(1)
341 .L33:
342 0286 A2E0 ldi r26,lo8(2)
343 0288 B0E0 ldi r27,hi8(2)
344 /* #APP */
345 028a 082E mov __tmp_reg__,r24
346 028c 0E94 0000 call __eeprom_write_byte_1F2021
347 /* #NOAPP */
348 /* epilogue: frame size=0 */
349 0290 0895 ret
350 /* epilogue end (size=1) */
351 /* function SetActiveParamSet size 14 (13) */
353 .global MixerTable_WriteToEEProm
355 MixerTable_WriteToEEProm:
356 /* prologue: frame size=0 */
357 0292 CF93 push r28
358 0294 DF93 push r29
359 /* prologue end (size=2) */
360 0296 C0E0 ldi r28,lo8(Mixer)
361 0298 D0E0 ldi r29,hi8(Mixer)
362 029a 8091 0000 lds r24,Mixer
363 029e 8130 cpi r24,lo8(1)
364 02a0 01F0 breq .L37
365 02a2 80E0 ldi r24,lo8(0)
366 02a4 90E0 ldi r25,hi8(0)
367 02a6 00C0 rjmp .L39
368 .L37:
369 02a8 6DE4 ldi r22,lo8(77)
370 02aa 70E0 ldi r23,hi8(77)
371 02ac CE01 movw r24,r28
372 02ae 0E94 0000 call RAM_Checksum
373 02b2 8093 0000 sts Mixer+77,r24
374 02b6 8EE4 ldi r24,lo8(78)
375 02b8 A8EE ldi r26,lo8(1000)
376 02ba B3E0 ldi r27,hi8(1000)
377 02bc FE01 movw r30,r28
378 /* #APP */
379 02be 182E mov __zero_reg__,r24
380 02c0 0E94 0000 call __eeprom_write_block_1F2021
381 /* #NOAPP */
382 02c4 81E0 ldi r24,lo8(1)
383 02c6 90E0 ldi r25,hi8(1)
384 .L39:
385 /* epilogue: frame size=0 */
386 02c8 DF91 pop r29
387 02ca CF91 pop r28
388 02cc 0895 ret
389 /* epilogue end (size=3) */
390 /* function MixerTable_WriteToEEProm size 31 (26) */
392 .global MixerTable_ReadFromEEProm
394 MixerTable_ReadFromEEProm:
395 /* prologue: frame size=0 */
396 /* prologue end (size=0) */
397 02ce 6DE4 ldi r22,lo8(77)
398 02d0 70E0 ldi r23,hi8(77)
399 02d2 88EE ldi r24,lo8(1000)
400 02d4 93E0 ldi r25,hi8(1000)
401 02d6 0E94 0000 call EEProm_Checksum
402 02da A5E3 ldi r26,lo8(1077)
403 02dc B4E0 ldi r27,hi8(1077)
404 /* #APP */
405 02de 0E94 0000 call __eeprom_read_byte_1F2021
406 02e2 902D mov r25,__tmp_reg__
407 /* #NOAPP */
408 02e4 8917 cp r24,r25
409 02e6 01F4 brne .L42
410 02e8 28EE ldi r18,lo8(1000)
411 02ea 33E0 ldi r19,hi8(1000)
412 02ec D901 movw r26,r18
413 /* #APP */
414 02ee 0E94 0000 call __eeprom_read_byte_1F2021
415 02f2 802D mov r24,__tmp_reg__
416 /* #NOAPP */
417 02f4 8130 cpi r24,lo8(1)
418 02f6 01F4 brne .L42
419 02f8 8EE4 ldi r24,lo8(78)
420 02fa E0E0 ldi r30,lo8(Mixer)
421 02fc F0E0 ldi r31,hi8(Mixer)
422 02fe D901 movw r26,r18
423 /* #APP */
424 0300 182E mov __zero_reg__,r24
425 0302 0E94 0000 call __eeprom_read_block_1F2021
426 /* #NOAPP */
427 0306 81E0 ldi r24,lo8(1)
428 0308 90E0 ldi r25,hi8(1)
429 030a 0895 ret
430 .L42:
431 030c 80E0 ldi r24,lo8(0)
432 030e 90E0 ldi r25,hi8(0)
433 0310 0895 ret
434 /* epilogue: frame size=0 */
435 /* epilogue: noreturn */
436 /* epilogue end (size=0) */
437 /* function MixerTable_ReadFromEEProm size 37 (37) */
439 .data
440 .LC0:
441 0000 5175 6164 .string "Quadro"
441 726F 00
442 0007 00 .string ""
443 .text
444 .global MixerTable_Default
446 MixerTable_Default:
447 /* prologue: frame size=0 */
448 /* prologue end (size=0) */
449 0312 81E0 ldi r24,lo8(1)
450 0314 8093 0000 sts Mixer,r24
451 0318 E0E0 ldi r30,lo8(Mixer+13)
452 031a F0E0 ldi r31,hi8(Mixer+13)
453 .L48:
454 031c 1082 st Z,__zero_reg__
455 031e 1182 std Z+1,__zero_reg__
456 0320 1282 std Z+2,__zero_reg__
457 0322 1382 std Z+3,__zero_reg__
458 0324 3496 adiw r30,4
459 0326 80E0 ldi r24,hi8(Mixer+77)
460 0328 E030 cpi r30,lo8(Mixer+77)
461 032a F807 cpc r31,r24
462 032c 01F4 brne .L48
463 032e 80E4 ldi r24,lo8(64)
464 0330 8093 0000 sts Mixer+13,r24
465 0334 8093 0000 sts Mixer+14,r24
466 0338 1092 0000 sts Mixer+15,__zero_reg__
467 033c 8093 0000 sts Mixer+16,r24
468 0340 8093 0000 sts Mixer+17,r24
469 0344 90EC ldi r25,lo8(-64)
470 0346 9093 0000 sts Mixer+18,r25
471 034a 1092 0000 sts Mixer+19,__zero_reg__
472 034e 8093 0000 sts Mixer+20,r24
473 0352 8093 0000 sts Mixer+21,r24
474 0356 1092 0000 sts Mixer+22,__zero_reg__
475 035a 9093 0000 sts Mixer+23,r25
476 035e 9093 0000 sts Mixer+24,r25
477 0362 8093 0000 sts Mixer+25,r24
478 0366 1092 0000 sts Mixer+26,__zero_reg__
479 036a 8093 0000 sts Mixer+27,r24
480 036e 9093 0000 sts Mixer+28,r25
481 0372 A0E0 ldi r26,lo8(Mixer+1)
482 0374 B0E0 ldi r27,hi8(Mixer+1)
483 0376 E0E0 ldi r30,lo8(.LC0)
484 0378 F0E0 ldi r31,hi8(.LC0)
485 037a 87E0 ldi r24,lo8(7)
486 .L50:
487 037c 0190 ld r0,Z+
488 037e 0D92 st X+,r0
489 0380 8150 subi r24,lo8(-(-1))
490 0382 01F4 brne .L50
491 0384 6DE4 ldi r22,lo8(77)
492 0386 70E0 ldi r23,hi8(77)
493 0388 80E0 ldi r24,lo8(Mixer)
494 038a 90E0 ldi r25,hi8(Mixer)
495 038c 0E94 0000 call RAM_Checksum
496 0390 8093 0000 sts Mixer+77,r24
497 /* epilogue: frame size=0 */
498 0394 0895 ret
499 /* epilogue end (size=1) */
500 /* function MixerTable_Default size 67 (66) */
502 .data
503 .LC1:
504 0008 4265 6769 .string "Beginner"
504 6E6E 6572
504 00
505 0011 00 .string ""
506 .text
507 .global ParamSet_DefaultSet3
509 ParamSet_DefaultSet3:
510 /* prologue: frame size=0 */
511 /* prologue end (size=0) */
512 0396 0E94 0000 call CommonDefaults
513 039a 88E0 ldi r24,lo8(8)
514 039c 8093 0000 sts EE_Parameter+23,r24
515 03a0 30E1 ldi r19,lo8(16)
516 03a2 3093 0000 sts EE_Parameter+24,r19
517 03a6 26E0 ldi r18,lo8(6)
518 03a8 2093 0000 sts EE_Parameter+25,r18
519 03ac 94E6 ldi r25,lo8(100)
520 03ae 9093 0000 sts EE_Parameter+30,r25
521 03b2 88E7 ldi r24,lo8(120)
522 03b4 8093 0000 sts EE_Parameter+31,r24
523 03b8 9093 0000 sts EE_Parameter+33,r25
524 03bc 8093 0000 sts EE_Parameter+34,r24
525 03c0 2093 0000 sts EE_Parameter+35,r18
526 03c4 3093 0000 sts EE_Parameter+40,r19
527 03c8 8AE5 ldi r24,lo8(90)
528 03ca 8093 0000 sts EE_Parameter+62,r24
529 03ce 80E5 ldi r24,lo8(80)
530 03d0 8093 0000 sts EE_Parameter+63,r24
531 03d4 96E4 ldi r25,lo8(70)
532 03d6 9093 0000 sts EE_Parameter+64,r25
533 03da 80E2 ldi r24,lo8(32)
534 03dc 8093 0000 sts EE_Parameter+67,r24
535 03e0 9093 0000 sts EE_Parameter+69,r25
536 03e4 A0E0 ldi r26,lo8(EE_Parameter+103)
537 03e6 B0E0 ldi r27,hi8(EE_Parameter+103)
538 03e8 E0E0 ldi r30,lo8(.LC1)
539 03ea F0E0 ldi r31,hi8(.LC1)
540 03ec 8CE0 ldi r24,lo8(12)
541 .L57:
542 03ee 0190 ld r0,Z+
543 03f0 0D92 st X+,r0
544 03f2 8150 subi r24,lo8(-(-1))
545 03f4 01F4 brne .L57
546 03f6 63E7 ldi r22,lo8(115)
547 03f8 70E0 ldi r23,hi8(115)
548 03fa 80E0 ldi r24,lo8(EE_Parameter)
549 03fc 90E0 ldi r25,hi8(EE_Parameter)
550 03fe 0E94 0000 call RAM_Checksum
551 0402 8093 0000 sts EE_Parameter+115,r24
552 /* epilogue: frame size=0 */
553 0406 0895 ret
554 /* epilogue end (size=1) */
555 /* function ParamSet_DefaultSet3 size 58 (57) */
557 .data
558 .LC2:
559 0012 4E6F 726D .string "Normal"
559 616C 00
560 0019 00 .string ""
561 .text
562 .global ParamSet_DefaultSet2
564 ParamSet_DefaultSet2:
565 /* prologue: frame size=0 */
566 /* prologue end (size=0) */
567 0408 0E94 0000 call CommonDefaults
568 040c 8AE0 ldi r24,lo8(10)
569 040e 8093 0000 sts EE_Parameter+23,r24
570 0412 80E1 ldi r24,lo8(16)
571 0414 8093 0000 sts EE_Parameter+24,r24
572 0418 26E0 ldi r18,lo8(6)
573 041a 2093 0000 sts EE_Parameter+25,r18
574 041e 9AE5 ldi r25,lo8(90)
575 0420 9093 0000 sts EE_Parameter+30,r25
576 0424 88E7 ldi r24,lo8(120)
577 0426 8093 0000 sts EE_Parameter+31,r24
578 042a 9093 0000 sts EE_Parameter+33,r25
579 042e 8093 0000 sts EE_Parameter+34,r24
580 0432 2093 0000 sts EE_Parameter+35,r18
581 0436 20E2 ldi r18,lo8(32)
582 0438 2093 0000 sts EE_Parameter+40,r18
583 043c 9093 0000 sts EE_Parameter+62,r25
584 0440 80E5 ldi r24,lo8(80)
585 0442 8093 0000 sts EE_Parameter+63,r24
586 0446 8CE3 ldi r24,lo8(60)
587 0448 8093 0000 sts EE_Parameter+64,r24
588 044c 2093 0000 sts EE_Parameter+67,r18
589 0450 8BE4 ldi r24,lo8(75)
590 0452 8093 0000 sts EE_Parameter+69,r24
591 0456 A0E0 ldi r26,lo8(EE_Parameter+103)
592 0458 B0E0 ldi r27,hi8(EE_Parameter+103)
593 045a E0E0 ldi r30,lo8(.LC2)
594 045c F0E0 ldi r31,hi8(.LC2)
595 045e 8CE0 ldi r24,lo8(12)
596 .L62:
597 0460 0190 ld r0,Z+
598 0462 0D92 st X+,r0
599 0464 8150 subi r24,lo8(-(-1))
600 0466 01F4 brne .L62
601 0468 63E7 ldi r22,lo8(115)
602 046a 70E0 ldi r23,hi8(115)
603 046c 80E0 ldi r24,lo8(EE_Parameter)
604 046e 90E0 ldi r25,hi8(EE_Parameter)
605 0470 0E94 0000 call RAM_Checksum
606 0474 8093 0000 sts EE_Parameter+115,r24
607 /* epilogue: frame size=0 */
608 0478 0895 ret
609 /* epilogue end (size=1) */
610 /* function ParamSet_DefaultSet2 size 58 (57) */
612 .data
613 .LC3:
614 001a 5370 6F72 .string "Sport"
614 7400
615 0020 00 .string ""
616 .text
617 .global ParamSet_DefaultSet1
619 ParamSet_DefaultSet1:
620 /* prologue: frame size=0 */
621 /* prologue end (size=0) */
622 047a 0E94 0000 call CommonDefaults
623 047e 8EE0 ldi r24,lo8(14)
624 0480 8093 0000 sts EE_Parameter+23,r24
625 0484 20E1 ldi r18,lo8(16)
626 0486 2093 0000 sts EE_Parameter+24,r18
627 048a 8CE0 ldi r24,lo8(12)
628 048c 8093 0000 sts EE_Parameter+25,r24
629 0490 90E5 ldi r25,lo8(80)
630 0492 9093 0000 sts EE_Parameter+30,r25
631 0496 86E9 ldi r24,lo8(-106)
632 0498 8093 0000 sts EE_Parameter+31,r24
633 049c 9093 0000 sts EE_Parameter+33,r25
634 04a0 8093 0000 sts EE_Parameter+34,r24
635 04a4 86E0 ldi r24,lo8(6)
636 04a6 8093 0000 sts EE_Parameter+35,r24
637 04aa 80E2 ldi r24,lo8(32)
638 04ac 8093 0000 sts EE_Parameter+40,r24
639 04b0 8AE5 ldi r24,lo8(90)
640 04b2 8093 0000 sts EE_Parameter+62,r24
641 04b6 9093 0000 sts EE_Parameter+63,r25
642 04ba 81E0 ldi r24,lo8(1)
643 04bc 8093 0000 sts EE_Parameter+64,r24
644 04c0 2093 0000 sts EE_Parameter+67,r18
645 04c4 84E6 ldi r24,lo8(100)
646 04c6 8093 0000 sts EE_Parameter+69,r24
647 04ca A0E0 ldi r26,lo8(EE_Parameter+103)
648 04cc B0E0 ldi r27,hi8(EE_Parameter+103)
649 04ce E0E0 ldi r30,lo8(.LC3)
650 04d0 F0E0 ldi r31,hi8(.LC3)
651 04d2 8CE0 ldi r24,lo8(12)
652 .L67:
653 04d4 0190 ld r0,Z+
654 04d6 0D92 st X+,r0
655 04d8 8150 subi r24,lo8(-(-1))
656 04da 01F4 brne .L67
657 04dc 63E7 ldi r22,lo8(115)
658 04de 70E0 ldi r23,hi8(115)
659 04e0 80E0 ldi r24,lo8(EE_Parameter)
660 04e2 90E0 ldi r25,hi8(EE_Parameter)
661 04e4 0E94 0000 call RAM_Checksum
662 04e8 8093 0000 sts EE_Parameter+115,r24
663 /* epilogue: frame size=0 */
664 04ec 0895 ret
665 /* epilogue end (size=1) */
666 /* function ParamSet_DefaultSet1 size 59 (58) */
668 .global ParamSet_WriteToEEProm
670 ParamSet_WriteToEEProm:
671 /* prologue: frame size=0 */
672 04ee FF92 push r15
673 04f0 0F93 push r16
674 04f2 1F93 push r17
675 /* prologue end (size=3) */
676 04f4 F82E mov r15,r24
677 04f6 8091 0000 lds r24,EE_Parameter
678 04fa 8535 cpi r24,lo8(85)
679 04fc 01F4 brne .L72
680 04fe 85E0 ldi r24,lo8(5)
681 0500 8F15 cp r24,r15
682 0502 00F4 brsh .L74
683 0504 85E0 ldi r24,lo8(5)
684 0506 F82E mov r15,r24
685 0508 00C0 rjmp .L76
686 .L74:
687 050a FF20 tst r15
688 050c 01F0 breq .L72
689 .L76:
690 050e 00E0 ldi r16,lo8(EE_Parameter)
691 0510 10E0 ldi r17,hi8(EE_Parameter)
692 0512 63E7 ldi r22,lo8(115)
693 0514 70E0 ldi r23,hi8(115)
694 0516 C801 movw r24,r16
695 0518 0E94 0000 call RAM_Checksum
696 051c 8093 0000 sts EE_Parameter+115,r24
697 0520 84E7 ldi r24,lo8(116)
698 0522 F89E mul r15,r24
699 0524 D001 movw r26,r0
700 0526 1124 clr r1
701 0528 5097 sbiw r26,16
702 052a F801 movw r30,r16
703 /* #APP */
704 052c 182E mov __zero_reg__,r24
705 052e 0E94 0000 call __eeprom_write_block_1F2021
706 /* #NOAPP */
707 0532 8CE0 ldi r24,lo8(12)
708 0534 0F5F subi r16,lo8(-(1))
709 0536 1F4F sbci r17,hi8(-(1))
710 0538 A0E5 ldi r26,lo8(80)
711 053a B0E0 ldi r27,hi8(80)
712 053c F801 movw r30,r16
713 /* #APP */
714 053e 182E mov __zero_reg__,r24
715 0540 0E94 0000 call __eeprom_write_block_1F2021
716 /* #NOAPP */
717 0544 6CE0 ldi r22,lo8(12)
718 0546 70E0 ldi r23,hi8(12)
719 0548 C801 movw r24,r16
720 054a 0E94 0000 call RAM_Checksum
721 054e ACE5 ldi r26,lo8(92)
722 0550 B0E0 ldi r27,hi8(92)
723 /* #APP */
724 0552 082E mov __tmp_reg__,r24
725 0554 0E94 0000 call __eeprom_write_byte_1F2021
726 /* #NOAPP */
727 0558 8F2D mov r24,r15
728 055a 0E94 0000 call SetActiveParamSet
729 055e 0E94 0000 call LED_Init
730 0562 81E0 ldi r24,lo8(1)
731 0564 90E0 ldi r25,hi8(1)
732 0566 00C0 rjmp .L77
733 .L72:
734 0568 80E0 ldi r24,lo8(0)
735 056a 90E0 ldi r25,hi8(0)
736 .L77:
737 /* epilogue: frame size=0 */
738 056c 1F91 pop r17
739 056e 0F91 pop r16
740 0570 FF90 pop r15
741 0572 0895 ret
742 /* epilogue end (size=4) */
743 /* function ParamSet_WriteToEEProm size 70 (63) */
745 .global ParamSet_ReadFromEEProm
747 ParamSet_ReadFromEEProm:
748 /* prologue: frame size=0 */
749 0574 FF92 push r15
750 0576 0F93 push r16
751 0578 1F93 push r17
752 057a CF93 push r28
753 057c DF93 push r29
754 /* prologue end (size=5) */
755 057e 982F mov r25,r24
756 0580 8150 subi r24,lo8(-(-1))
757 0582 8530 cpi r24,lo8(5)
758 0584 00F0 brlo .L80
759 0586 93E0 ldi r25,lo8(3)
760 .L80:
761 0588 24E7 ldi r18,lo8(116)
762 058a F22E mov r15,r18
763 058c 9F9D mul r25,r15
764 058e 8001 movw r16,r0
765 0590 1124 clr r1
766 0592 E801 movw r28,r16
767 0594 6097 sbiw r28,16
768 0596 63E7 ldi r22,lo8(115)
769 0598 70E0 ldi r23,hi8(115)
770 059a CE01 movw r24,r28
771 059c 0E94 0000 call EEProm_Checksum
772 05a0 0D59 subi r16,lo8(-(99))
773 05a2 1F4F sbci r17,hi8(-(99))
774 05a4 D801 movw r26,r16
775 /* #APP */
776 05a6 0E94 0000 call __eeprom_read_byte_1F2021
777 05aa 902D mov r25,__tmp_reg__
778 /* #NOAPP */
779 05ac 8917 cp r24,r25
780 05ae 01F4 brne .L82
781 05b0 DE01 movw r26,r28
782 /* #APP */
783 05b2 0E94 0000 call __eeprom_read_byte_1F2021
784 05b6 802D mov r24,__tmp_reg__
785 /* #NOAPP */
786 05b8 8535 cpi r24,lo8(85)
787 05ba 01F4 brne .L82
788 05bc E0E0 ldi r30,lo8(EE_Parameter)
789 05be F0E0 ldi r31,hi8(EE_Parameter)
790 05c0 DE01 movw r26,r28
791 /* #APP */
792 05c2 1F2C mov __zero_reg__,r15
793 05c4 0E94 0000 call __eeprom_read_block_1F2021
794 /* #NOAPP */
795 05c8 0E94 0000 call LED_Init
796 05cc 81E0 ldi r24,lo8(1)
797 05ce 90E0 ldi r25,hi8(1)
798 05d0 00C0 rjmp .L85
799 .L82:
800 05d2 80E0 ldi r24,lo8(0)
801 05d4 90E0 ldi r25,hi8(0)
802 .L85:
803 /* epilogue: frame size=0 */
804 05d6 E5E0 ldi r30,5
805 05d8 CDB7 in r28,__SP_L__
806 05da DEB7 in r29,__SP_H__
807 05dc 0C94 0000 jmp __epilogue_restores__+26
808 /* epilogue end (size=5) */
809 /* function ParamSet_ReadFromEEProm size 57 (47) */
811 .global SetDefaultParameter
813 SetDefaultParameter:
814 /* prologue: frame size=0 */
815 05e0 0F93 push r16
816 05e2 1F93 push r17
817 /* prologue end (size=2) */
818 05e4 182F mov r17,r24
819 05e6 062F mov r16,r22
820 05e8 8630 cpi r24,lo8(6)
821 05ea 00F4 brsh .L88
822 05ec 8823 tst r24
823 05ee 01F4 brne .L90
824 05f0 11E0 ldi r17,lo8(1)
825 05f2 00C0 rjmp .L92
826 .L90:
827 05f4 8230 cpi r24,lo8(2)
828 05f6 01F0 breq .L94
829 05f8 8330 cpi r24,lo8(3)
830 05fa 01F0 breq .L93
831 05fc 8130 cpi r24,lo8(1)
832 05fe 01F4 brne .L93
833 .L92:
834 0600 0E94 0000 call ParamSet_DefaultSet1
835 0604 00C0 rjmp .L96
836 .L94:
837 0606 0E94 0000 call ParamSet_DefaultSet2
838 060a 00C0 rjmp .L96
839 .L88:
840 060c 15E0 ldi r17,lo8(5)
841 .L93:
842 060e 0E94 0000 call ParamSet_DefaultSet3
843 .L96:
844 0612 0023 tst r16
845 0614 01F0 breq .L97
846 0616 6CE0 ldi r22,lo8(12)
847 0618 70E0 ldi r23,hi8(12)
848 061a 80E5 ldi r24,lo8(80)
849 061c 90E0 ldi r25,hi8(80)
850 061e 0E94 0000 call EEProm_Checksum
851 0622 ACE5 ldi r26,lo8(92)
852 0624 B0E0 ldi r27,hi8(92)
853 /* #APP */
854 0626 0E94 0000 call __eeprom_read_byte_1F2021
855 062a 902D mov r25,__tmp_reg__
856 /* #NOAPP */
857 062c 8917 cp r24,r25
858 062e 01F4 brne .L97
859 0630 8CE0 ldi r24,lo8(12)
860 0632 E0E0 ldi r30,lo8(EE_Parameter+1)
861 0634 F0E0 ldi r31,hi8(EE_Parameter+1)
862 0636 A0E5 ldi r26,lo8(80)
863 0638 B0E0 ldi r27,hi8(80)
864 /* #APP */
865 063a 182E mov __zero_reg__,r24
866 063c 0E94 0000 call __eeprom_read_block_1F2021
867 /* #NOAPP */
868 0640 00C0 rjmp .L101
869 .L97:
870 0642 0E94 0000 call ParamSet_DefaultStickMapping
871 .L101:
872 0646 812F mov r24,r17
873 0648 0E94 0000 call ParamSet_WriteToEEProm
874 /* epilogue: frame size=0 */
875 064c 1F91 pop r17
876 064e 0F91 pop r16
877 0650 0895 ret
878 /* epilogue end (size=3) */
879 /* function SetDefaultParameter size 59 (54) */
881 .global ParamSet_Init
883 ParamSet_Init:
884 /* prologue: frame size=0 */
885 0652 A0E0 ldi r26,lo8(0)
886 0654 B0E0 ldi r27,hi8(0)
887 0656 E0E0 ldi r30,pm_lo8(1f)
888 0658 F0E0 ldi r31,pm_hi8(1f)
889 065a 0C94 0000 jmp __prologue_saves__+10
890 1:
891 /* prologue end (size=6) */
892 065e 21E0 ldi r18,lo8(1)
893 0660 30E0 ldi r19,hi8(1)
894 0662 D901 movw r26,r18
895 /* #APP */
896 0664 0E94 0000 call __eeprom_read_byte_1F2021
897 0668 802D mov r24,__tmp_reg__
898 /* #NOAPP */
899 066a 8535 cpi r24,lo8(85)
900 066c 01F4 brne .L104
901 066e DD24 clr r13
902 0670 00C0 rjmp .L106
903 .L104:
904 0672 85E5 ldi r24,lo8(85)
905 0674 D901 movw r26,r18
906 /* #APP */
907 0676 082E mov __tmp_reg__,r24
908 0678 0E94 0000 call __eeprom_write_byte_1F2021
909 /* #NOAPP */
910 067c DD24 clr r13
911 067e D394 inc r13
912 .L106:
913 0680 6CE0 ldi r22,lo8(12)
914 0682 70E0 ldi r23,hi8(12)
915 0684 80E5 ldi r24,lo8(80)
916 0686 90E0 ldi r25,hi8(80)
917 0688 0E94 0000 call EEProm_Checksum
918 068c 782E mov r7,r24
919 068e ACE5 ldi r26,lo8(92)
920 0690 B0E0 ldi r27,hi8(92)
921 /* #APP */
922 0692 0E94 0000 call __eeprom_read_byte_1F2021
923 0696 C02C mov r12,__tmp_reg__
924 /* #NOAPP */
925 0698 10E0 ldi r17,lo8(0)
926 069a C1E0 ldi r28,lo8(1)
927 069c D0E0 ldi r29,hi8(1)
928 069e 50E0 ldi r21,lo8(__c.2643)
929 06a0 852E mov r8,r21
930 06a2 50E0 ldi r21,hi8(__c.2643)
931 06a4 952E mov r9,r21
932 06a6 40E0 ldi r20,lo8(gs(uart_putchar))
933 06a8 A42E mov r10,r20
934 06aa 40E0 ldi r20,hi8(gs(uart_putchar))
935 06ac B42E mov r11,r20
936 06ae 30E0 ldi r19,lo8(EE_Parameter+1)
937 06b0 E32E mov r14,r19
938 06b2 30E0 ldi r19,hi8(EE_Parameter+1)
939 06b4 F32E mov r15,r19
940 .L107:
941 06b6 0C2F mov r16,r28
942 06b8 DD20 tst r13
943 06ba 01F4 brne .L108
944 06bc 8C2F mov r24,r28
945 06be 0E94 0000 call ParamSet_ReadFromEEProm
946 06c2 8823 tst r24
947 06c4 01F4 brne .L110
948 .L108:
949 06c6 DF93 push r29
950 06c8 CF93 push r28
951 06ca 9F92 push r9
952 06cc 8F92 push r8
953 06ce BF92 push r11
954 06d0 AF92 push r10
955 06d2 E091 0000 lds r30,_printf_P
956 06d6 F091 0000 lds r31,(_printf_P)+1
957 06da 0995 icall
958 06dc 8DB7 in r24,__SP_L__
959 06de 9EB7 in r25,__SP_H__
960 06e0 0696 adiw r24,6
961 06e2 8DBF out __SP_L__,r24
962 06e4 0230 cpi r16,lo8(2)
963 06e6 01F0 breq .L113
964 06e8 0330 cpi r16,lo8(3)
965 06ea 01F0 breq .L111
966 06ec 0130 cpi r16,lo8(1)
967 06ee 01F4 brne .L111
968 06f0 0E94 0000 call ParamSet_DefaultSet1
969 06f4 00C0 rjmp .L115
970 .L113:
971 06f6 0E94 0000 call ParamSet_DefaultSet2
972 06fa 00C0 rjmp .L115
973 .L111:
974 06fc 0E94 0000 call ParamSet_DefaultSet3
975 .L115:
976 0700 7C14 cp r7,r12
977 0702 01F4 brne .L116
978 0704 8CE0 ldi r24,lo8(12)
979 0706 A0E5 ldi r26,lo8(80)
980 0708 B0E0 ldi r27,hi8(80)
981 070a F701 movw r30,r14
982 /* #APP */
983 070c 182E mov __zero_reg__,r24
984 070e 0E94 0000 call __eeprom_read_block_1F2021
985 /* #NOAPP */
986 0712 00C0 rjmp .L118
987 .L116:
988 0714 0E94 0000 call ParamSet_DefaultStickMapping
989 .L118:
990 0718 802F mov r24,r16
991 071a 0E94 0000 call ParamSet_WriteToEEProm
992 071e 11E0 ldi r17,lo8(1)
993 .L110:
994 0720 2196 adiw r28,1
995 0722 C630 cpi r28,6
996 0724 D105 cpc r29,__zero_reg__
997 0726 01F4 brne .L107
998 0728 1123 tst r17
999 072a 01F0 breq .L120
1000 072c 83E0 ldi r24,lo8(3)
1001 072e 0E94 0000 call SetActiveParamSet
1002 .L120:
1003 0732 22E0 ldi r18,lo8(2)
1004 0734 30E0 ldi r19,hi8(2)
1005 0736 D901 movw r26,r18
1006 /* #APP */
1007 0738 0E94 0000 call __eeprom_read_byte_1F2021
1008 073c 002D mov r16,__tmp_reg__
1009 /* #NOAPP */
1010 073e 0630 cpi r16,lo8(6)
1011 0740 00F0 brlo .L122
1012 0742 83E0 ldi r24,lo8(3)
1013 0744 D901 movw r26,r18
1014 /* #APP */
1015 0746 082E mov __tmp_reg__,r24
1016 0748 0E94 0000 call __eeprom_write_byte_1F2021
1017 /* #NOAPP */
1018 074c 03E0 ldi r16,lo8(3)
1019 .L122:
1020 074e 802F mov r24,r16
1021 0750 0E94 0000 call ParamSet_ReadFromEEProm
1022 0754 802F mov r24,r16
1023 0756 90E0 ldi r25,lo8(0)
1024 0758 9F93 push r25
1025 075a 8F93 push r24
1026 075c 80E0 ldi r24,lo8(__c.2653)
1027 075e 90E0 ldi r25,hi8(__c.2653)
1028 0760 9F93 push r25
1029 0762 8F93 push r24
1030 0764 C0E0 ldi r28,lo8(gs(uart_putchar))
1031 0766 D0E0 ldi r29,hi8(gs(uart_putchar))
1032 0768 DF93 push r29
1033 076a CF93 push r28
1034 076c E091 0000 lds r30,_printf_P
1035 0770 F091 0000 lds r31,(_printf_P)+1
1036 0774 0995 icall
1037 0776 8DB7 in r24,__SP_L__
1038 0778 9EB7 in r25,__SP_H__
1039 077a 0696 adiw r24,6
1040 077c 8DBF out __SP_L__,r24
1041 077e DD20 tst r13
1042 0780 01F4 brne .L124
1043 0782 0E94 0000 call MixerTable_ReadFromEEProm
1044 0786 8823 tst r24
1045 0788 01F4 brne .L126
1046 .L124:
1047 078a 80E0 ldi r24,lo8(__c.2655)
1048 078c 90E0 ldi r25,hi8(__c.2655)
1049 078e 9F93 push r25
1050 0790 8F93 push r24
1051 0792 DF93 push r29
1052 0794 CF93 push r28
1053 0796 E091 0000 lds r30,_printf_P
1054 079a F091 0000 lds r31,(_printf_P)+1
1055 079e 0995 icall
1056 07a0 0E94 0000 call MixerTable_Default
1057 07a4 0E94 0000 call MixerTable_WriteToEEProm
1058 07a8 0F90 pop __tmp_reg__
1059 07aa 0F90 pop __tmp_reg__
1060 07ac 0F90 pop __tmp_reg__
1061 07ae 0F90 pop __tmp_reg__
1062 .L126:
1063 07b0 E0E0 ldi r30,lo8(Mixer+13)
1064 07b2 F0E0 ldi r31,hi8(Mixer+13)
1065 07b4 90E0 ldi r25,lo8(0)
1066 .L127:
1067 07b6 8081 ld r24,Z
1068 07b8 1816 cp __zero_reg__,r24
1069 07ba 04F4 brge .L128
1070 07bc 9F5F subi r25,lo8(-(1))
1071 .L128:
1072 07be 3496 adiw r30,4
1073 07c0 80E0 ldi r24,hi8(Mixer+77)
1074 07c2 E030 cpi r30,lo8(Mixer+77)
1075 07c4 F807 cpc r31,r24
1076 07c6 01F4 brne .L127
1077 07c8 9093 0000 sts RequiredMotors,r25
1078 07cc 892F mov r24,r25
1079 07ce 90E0 ldi r25,lo8(0)
1080 07d0 9F93 push r25
1081 07d2 8F93 push r24
1082 07d4 80E0 ldi r24,lo8(Mixer+1)
1083 07d6 90E0 ldi r25,hi8(Mixer+1)
1084 07d8 9F93 push r25
1085 07da 8F93 push r24
1086 07dc 80E0 ldi r24,lo8(__c.2660)
1087 07de 90E0 ldi r25,hi8(__c.2660)
1088 07e0 9F93 push r25
1089 07e2 8F93 push r24
1090 07e4 00E0 ldi r16,lo8(gs(uart_putchar))
1091 07e6 10E0 ldi r17,hi8(gs(uart_putchar))
1092 07e8 1F93 push r17
1093 07ea 0F93 push r16
1094 07ec E091 0000 lds r30,_printf_P
1095 07f0 F091 0000 lds r31,(_printf_P)+1
1096 07f4 0995 icall
1097 07f6 80E0 ldi r24,lo8(__c.2662)
1098 07f8 90E0 ldi r25,hi8(__c.2662)
1099 07fa 9F93 push r25
1100 07fc 8F93 push r24
1101 07fe 1F93 push r17
1102 0800 0F93 push r16
1103 0802 E091 0000 lds r30,_printf_P
1104 0806 F091 0000 lds r31,(_printf_P)+1
1105 080a 0995 icall
1106 080c EDB7 in r30,__SP_L__
1107 080e FEB7 in r31,__SP_H__
1108 0810 3C96 adiw r30,12
1109 0812 EDBF out __SP_L__,r30
1110 /* epilogue: frame size=0 */
1111 0814 EDE0 ldi r30,13
1112 0816 CDB7 in r28,__SP_L__
1113 0818 DEB7 in r29,__SP_H__
1114 081a 0C94 0000 jmp __epilogue_restores__+10
1115 /* epilogue end (size=5) */
1116 /* function ParamSet_Init size 236 (225) */
1118 .section .progmem.data,"a",@progbits
1121 __c.2662:
1122 0000 0A0D 3D3D .string "\n\r=============================="
1122 3D3D 3D3D
1122 3D3D 3D3D
1122 3D3D 3D3D
1122 3D3D 3D3D
1125 __c.2660:
1126 0021 0A0D 4D69 .string "\n\rMixer-Config: '%s' (%u Motors)"
1126 7865 722D
1126 436F 6E66
1126 6967 3A20
1126 2725 7327
1129 __c.2655:
1130 0042 0A0D 4765 .string "\n\rGenerating default Mixer Table"
1130 6E65 7261
1130 7469 6E67
1130 2064 6566
1130 6175 6C74
1133 __c.2653:
1134 0063 0A0D 5573 .string "\n\rUsing Parameter Set %d"
1134 696E 6720
1134 5061 7261
1134 6D65 7465
1134 7220 5365
1137 __c.2643:
1138 007c 0A0D 4765 .string "\n\rGenerating default Parameter Set %d"
1138 6E65 7261
1138 7469 6E67
1138 2064 6566
1138 6175 6C74
1139 .comm Mixer,78,1
1140 .comm RequiredMotors,1,1
1141 .comm EE_Parameter,116,1
1142 /* File "eeprom.c": code 1072 = 0x0430 (1020), prologues 18, epilogues 34 */
DEFINED SYMBOLS
*ABS*:00000000 eeprom.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:12 .text:00000000 RAM_Checksum
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:41 .text:00000024 EEProm_Checksum
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:73 .text:0000004c ParamSet_DefaultStickMapping
*COM*:00000074 EE_Parameter
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:107 .text:00000096 CommonDefaults
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:240 .text:00000230 GetParamByte
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:256 .text:0000023c SetParamByte
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:271 .text:00000246 GetParamWord
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:287 .text:00000250 SetParamWord
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:303 .text:0000025a GetActiveParamSet
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:330 .text:00000278 SetActiveParamSet
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:355 .text:00000292 MixerTable_WriteToEEProm
*COM*:0000004e Mixer
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:394 .text:000002ce MixerTable_ReadFromEEProm
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:446 .text:00000312 MixerTable_Default
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:509 .text:00000396 ParamSet_DefaultSet3
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:564 .text:00000408 ParamSet_DefaultSet2
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:619 .text:0000047a ParamSet_DefaultSet1
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:670 .text:000004ee ParamSet_WriteToEEProm
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:747 .text:00000574 ParamSet_ReadFromEEProm
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:813 .text:000005e0 SetDefaultParameter
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:883 .text:00000652 ParamSet_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:1137 .progmem.data:0000007c __c.2643
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:1133 .progmem.data:00000063 __c.2653
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:1129 .progmem.data:00000042 __c.2655
*COM*:00000001 RequiredMotors
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:1125 .progmem.data:00000021 __c.2660
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc9cj6yR.s:1121 .progmem.data:00000000 __c.2662
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__eeprom_read_byte_1F2021
PlatinenVersion
__eeprom_write_byte_1F2021
__eeprom_read_word_1F2021
__eeprom_write_word_1F2021
__eeprom_write_block_1F2021
__eeprom_read_block_1F2021
LED_Init
__epilogue_restores__
__prologue_saves__
uart_putchar
_printf_P
/Spektrum-Diversity/V0.82a/fc.c
0,0 → 1,1732
/*#######################################################################################
Flight Control
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "mymath.h"
#include "isqrt.h"
 
unsigned char h,m,s;
unsigned int BaroExpandActive = 0;
int MesswertNick,MesswertRoll,MesswertGier,MesswertGierBias, RohMesswertNick,RohMesswertRoll;
int TrimNick, TrimRoll;
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0;
int Mittelwert_AccNick, Mittelwert_AccRoll;
unsigned int NeutralAccX=0, NeutralAccY=0;
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0;
int NeutralAccZ = 0;
unsigned char ControlHeading = 0;// in 2°
long IntegralNick = 0,IntegralNick2 = 0;
long IntegralRoll = 0,IntegralRoll2 = 0;
long IntegralAccNick = 0,IntegralAccRoll = 0,IntegralAccZ = 0;
long Integral_Gier = 0;
long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0;
long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0;
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
long SummeNick=0,SummeRoll=0;
volatile long Mess_Integral_Hoch = 0;
int KompassValue = 0;
int KompassStartwert = 0;
int KompassRichtung = 0;
unsigned int KompassSignalSchlecht = 500;
unsigned char MAX_GAS,MIN_GAS;
unsigned char HoehenReglerAktiv = 0;
unsigned char TrichterFlug = 0;
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
long ErsatzKompass;
int ErsatzKompassInGrad; // Kompasswert in Grad
int GierGyroFehler = 0;
char GyroFaktor,GyroFaktorGier;
char IntegralFaktor,IntegralFaktorGier;
int DiffNick,DiffRoll;
//int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0, Poti5 = 0, Poti6 = 0, Poti7 = 0, Poti8 = 0;
unsigned char Poti[9] = {0,0,0,0,0,0,0,0};
volatile unsigned char SenderOkay = 0;
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0;
char MotorenEin = 0,StartTrigger = 0;
long HoehenWert = 0;
long SollHoehe = 0;
int LageKorrekturRoll = 0,LageKorrekturNick = 0, HoverGas = 0;
//float Ki = FAKTOR_I;
int Ki = 10300 / 33;
unsigned char Looping_Nick = 0,Looping_Roll = 0;
unsigned char Looping_Links = 0, Looping_Rechts = 0, Looping_Unten = 0, Looping_Oben = 0;
 
unsigned char Parameter_Luftdruck_D = 48; // Wert : 0-250
unsigned char Parameter_MaxHoehe = 251; // Wert : 0-250
unsigned char Parameter_Hoehe_P = 16; // Wert : 0-32
unsigned char Parameter_Hoehe_ACC_Wirkung = 58; // Wert : 0-250
unsigned char Parameter_KompassWirkung = 64; // Wert : 0-250
unsigned char Parameter_Hoehe_GPS_Z = 64; // Wert : 0-250
unsigned char Parameter_Gyro_D = 8; // Wert : 0-250
unsigned char Parameter_Gyro_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250
unsigned char Parameter_Gier_P = 2; // Wert : 1-20
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20
unsigned char Parameter_UserParam1 = 0;
unsigned char Parameter_UserParam2 = 0;
unsigned char Parameter_UserParam3 = 0;
unsigned char Parameter_UserParam4 = 0;
unsigned char Parameter_UserParam5 = 0;
unsigned char Parameter_UserParam6 = 0;
unsigned char Parameter_UserParam7 = 0;
unsigned char Parameter_UserParam8 = 0;
unsigned char Parameter_ServoNickControl = 100;
unsigned char Parameter_ServoRollControl = 100;
unsigned char Parameter_LoopGasLimit = 70;
unsigned char Parameter_AchsKopplung1 = 90;
unsigned char Parameter_AchsKopplung2 = 65;
unsigned char Parameter_CouplingYawCorrection = 64;
//unsigned char Parameter_AchsGegenKopplung1 = 0;
unsigned char Parameter_DynamicStability = 100;
unsigned char Parameter_J16Bitmask; // for the J16 Output
unsigned char Parameter_J16Timing; // for the J16 Output
unsigned char Parameter_J17Bitmask; // for the J17 Output
unsigned char Parameter_J17Timing; // for the J17 Output
unsigned char Parameter_NaviGpsModeControl; // Parameters for the Naviboard
unsigned char Parameter_NaviGpsGain;
unsigned char Parameter_NaviGpsP;
unsigned char Parameter_NaviGpsI;
unsigned char Parameter_NaviGpsD;
unsigned char Parameter_NaviGpsACC;
unsigned char Parameter_NaviOperatingRadius;
unsigned char Parameter_NaviWindCorrection;
unsigned char Parameter_NaviSpeedCompensation;
unsigned char Parameter_ExternalControl;
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
unsigned char CareFree = 0;
const signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8};
 
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
int MaxStickNick = 0,MaxStickRoll = 0;
unsigned int modell_fliegt = 0;
volatile unsigned char FC_StatusFlags = 0;
long GIER_GRAD_FAKTOR = 1291;
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
signed int tmp_motorwert[MAX_MOTORS];
char VarioCharacter = ' ';
 
#define LIMIT_MIN(value, min) {if(value <= min) value = min;}
#define LIMIT_MAX(value, max) {if(value >= max) value = max;}
#define LIMIT_MIN_MAX(value, min, max) {if(value <= min) value = min; else if(value >= max) value = max;}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void CopyDebugValues(void)
{
DebugOut.Analog[0] = IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[1] = IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[2] = Mittelwert_AccNick / 4;
DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
DebugOut.Analog[5] = HoehenWert/5;
DebugOut.Analog[6] = AdWertAccHoch;//(Mess_Integral_Hoch / 512);// Aktuell_az;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR;
DebugOut.Analog[12] = Motor[0].SetPoint;
DebugOut.Analog[13] = Motor[1].SetPoint;
DebugOut.Analog[14] = Motor[2].SetPoint;
DebugOut.Analog[15] = Motor[3].SetPoint;
DebugOut.Analog[20] = ServoNickValue;
DebugOut.Analog[22] = Capacity.ActualCurrent;
DebugOut.Analog[23] = Capacity.UsedCapacity;
// DebugOut.Analog[22] = FromNaviCtrl_Value.GpsZ;
// DebugOut.Analog[29] = FromNaviCtrl_Value.SerialDataOkay;
DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
DebugOut.Analog[30] = GPS_Nick;
DebugOut.Analog[31] = GPS_Roll;
if(VersionInfo.HardwareError[0] || VersionInfo.HardwareError[1]) DebugOut.Status[1] |= 1; else DebugOut.Status[1] &= 0xfe;
 
//if(Capacity.MinOfMaxPWM < 250/* && modell_fliegt > 500*/) { beeptime = 1000; DebugOut.Analog[25]++; }
}
 
 
 
void Piep(unsigned char Anzahl, unsigned int dauer)
{
if(MotorenEin) return; //auf keinen Fall im Flug!
while(Anzahl--)
{
beeptime = dauer;
while(beeptime);
Delay_ms(dauer * 2);
}
}
 
//############################################################################
// Messwerte beim Ermitteln der Nullage
void CalibrierMittelwert(void)
//############################################################################
{
unsigned char i;
if(PlatinenVersion == 13) SucheGyroOffset();
// ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
ANALOG_OFF;
MesswertNick = AdWertNick;
MesswertRoll = AdWertRoll;
MesswertGier = AdWertGier;
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
// ADC einschalten
ANALOG_ON;
for(i=0;i<8;i++)
{
int tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
LIMIT_MIN_MAX(tmp, 0, 255);
if(Poti[i] > tmp) Poti[i]--; else if(Poti[i] < tmp) Poti[i]++;
}
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
}
 
//############################################################################
// Nullwerte ermitteln
void SetNeutral(unsigned char AccAdjustment)
//############################################################################
{
unsigned char i;
unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0;
VersionInfo.HardwareError[0] = 0;
HEF4017R_ON;
NeutralAccX = 0;
NeutralAccY = 0;
NeutralAccZ = 0;
 
AdNeutralNick = 0;
AdNeutralRoll = 0;
AdNeutralGier = 0;
 
Parameter_AchsKopplung1 = 0;
Parameter_AchsKopplung2 = 0;
 
ExpandBaro = 0;
 
CalibrierMittelwert();
Delay_ms_Mess(100);
 
CalibrierMittelwert();
 
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
#define NEUTRAL_FILTER 32
for(i=0; i<NEUTRAL_FILTER; i++)
{
Delay_ms_Mess(10);
gier_neutral += AdWertGier;
nick_neutral += AdWertNick;
roll_neutral += AdWertRoll;
}
AdNeutralNick= (nick_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralRoll= (roll_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralGier= (gier_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
 
StartNeutralRoll = AdNeutralRoll;
StartNeutralNick = AdNeutralNick;
 
if(AccAdjustment)
{
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
NeutralAccZ = Aktuell_az;
 
// Save ACC neutral settings to eeprom
SetParamWord(PID_ACC_NICK, (uint16_t)NeutralAccX);
SetParamWord(PID_ACC_ROLL, (uint16_t)NeutralAccY);
SetParamWord(PID_ACC_TOP, (uint16_t)NeutralAccZ);
}
else
{
// restore from eeprom
NeutralAccX = (int16_t)GetParamWord(PID_ACC_NICK);
NeutralAccY = (int16_t)GetParamWord(PID_ACC_ROLL);
NeutralAccZ = (int16_t)GetParamWord(PID_ACC_TOP);
// strange settings?
if(((unsigned int) NeutralAccX > 2048) || ((unsigned int) NeutralAccY > 2048) || ((unsigned int) NeutralAccZ > 1024))
{
printf("\n\rACC not calibrated!\r\n");
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
NeutralAccZ = Aktuell_az;
}
}
 
MesswertNick = 0;
MesswertRoll = 0;
MesswertGier = 0;
Delay_ms_Mess(100);
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
Mess_IntegralNick2 = IntegralNick;
Mess_IntegralRoll2 = IntegralRoll;
Mess_Integral_Gier = 0;
StartLuftdruck = Luftdruck;
VarioMeter = 0;
Mess_Integral_Hoch = 0;
KompassStartwert = KompassValue;
GPS_Neutral();
beeptime = 50;
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
ExternHoehenValue = 0;
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
GierGyroFehler = 0;
SendVersionToNavi = 1;
LED_Init();
FC_StatusFlags |= FC_STATUS_CALIBRATE;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl_Value.Kalman_MaxDrift = 0;
FromNaviCtrl_Value.Kalman_MaxFusion = 32;
 
for(i=0;i<8;i++)
{
Poti[i] = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
}
SenderOkay = 100;
if(ServoActive)
{
HEF4017R_ON;
DDRD |=0x80; // enable J7 -> Servo signal
}
 
if((AdNeutralNick < 150 * 16) || (AdNeutralNick > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; };
if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; };
if((AdNeutralGier < 150 * 2) || (AdNeutralGier > 850 * 2)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; };
if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_NICK; };
if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_ROLL; };
if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; };
}
 
 
//############################################################################
// Bearbeitet die Messwerte
void Mittelwert(void)
//############################################################################
{
static signed long tmpl,tmpl2,tmpl3,tmpl4;
static signed int oldNick, oldRoll, d2Roll, d2Nick;
signed long winkel_nick, winkel_roll;
unsigned char i;
MesswertGier = (signed int) AdNeutralGier - AdWertGier;
MesswertNick = (signed int) AdWertNickFilter / 8;
MesswertRoll = (signed int) AdWertRollFilter / 8;
RohMesswertNick = MesswertNick;
RohMesswertRoll = MesswertRoll;
 
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++
Mittelwert_AccNick = (Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * AdWertAccNick))) / 4L;
Mittelwert_AccRoll = (Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * AdWertAccRoll))) / 4L;
IntegralAccNick += ACC_AMPLIFY * AdWertAccNick;
IntegralAccRoll += ACC_AMPLIFY * AdWertAccRoll;
NaviAccNick += AdWertAccNick;
NaviAccRoll += AdWertAccRoll;
NaviCntAcc++;
IntegralAccZ += Aktuell_az - NeutralAccZ;
 
//++++++++++++++++++++++++++++++++++++++++++++++++
// ADC einschalten
ANALOG_ON;
AdReady = 0;
//++++++++++++++++++++++++++++++++++++++++++++++++
 
if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
else winkel_roll = Mess_IntegralRoll;
 
if(Mess_IntegralNick > 93000L) winkel_nick = 93000L;
else if(Mess_IntegralNick <-93000L) winkel_nick = -93000L;
else winkel_nick = Mess_IntegralNick;
 
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_Integral_Gier += MesswertGier;
ErsatzKompass += MesswertGier;
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV))
{
tmpl3 = (MesswertRoll * winkel_nick) / 2048L;
tmpl3 *= Parameter_AchsKopplung2; //65
tmpl3 /= 4096L;
tmpl4 = (MesswertNick * winkel_roll) / 2048L;
tmpl4 *= Parameter_AchsKopplung2; //65
tmpl4 /= 4096L;
KopplungsteilNickRoll = tmpl3;
KopplungsteilRollNick = tmpl4;
tmpl4 -= tmpl3;
ErsatzKompass += tmpl4;
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
 
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
tmpl *= Parameter_AchsKopplung1; // 90
tmpl /= 4096L;
tmpl2 = ((MesswertGier + tmpl4) * winkel_roll) / 2048L;
tmpl2 *= Parameter_AchsKopplung1;
tmpl2 /= 4096L;
if(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1;
//MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256;
}
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0;
TrimRoll = tmpl - tmpl2 / 100L;
TrimNick = -tmpl2 + tmpl / 100L;
// Kompasswert begrenzen ++++++++++++++++++++++++++++++++++++++++++++++++
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralRoll2 += MesswertRoll + TrimRoll;
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll;
if(Mess_IntegralRoll > Umschlag180Roll)
{
Mess_IntegralRoll = -(Umschlag180Roll - 25000L);
Mess_IntegralRoll2 = Mess_IntegralRoll;
}
if(Mess_IntegralRoll <-Umschlag180Roll)
{
Mess_IntegralRoll = (Umschlag180Roll - 25000L);
Mess_IntegralRoll2 = Mess_IntegralRoll;
}
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralNick2 += MesswertNick + TrimNick;
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick;
if(Mess_IntegralNick > Umschlag180Nick)
{
Mess_IntegralNick = -(Umschlag180Nick - 25000L);
Mess_IntegralNick2 = Mess_IntegralNick;
}
if(Mess_IntegralNick <-Umschlag180Nick)
{
Mess_IntegralNick = (Umschlag180Nick - 25000L);
Mess_IntegralNick2 = Mess_IntegralNick;
}
 
Integral_Gier = Mess_Integral_Gier;
IntegralNick = Mess_IntegralNick;
IntegralRoll = Mess_IntegralRoll;
IntegralNick2 = Mess_IntegralNick2;
IntegralRoll2 = Mess_IntegralRoll2;
 
#define D_LIMIT 128
 
MesswertNick = HiResNick / 8;
MesswertRoll = HiResRoll / 8;
 
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000;
if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; }
else { if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; }
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000;
if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; }
else { if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; }
 
if(Parameter_Gyro_D)
{
d2Nick = HiResNick - oldNick;
oldNick = (oldNick + HiResNick)/2;
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT;
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT;
 
d2Roll = HiResRoll - oldRoll;
oldRoll = (oldRoll + HiResRoll)/2;
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT;
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT;
 
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16;
MesswertRoll += (d2Roll * (signed int) Parameter_Gyro_D) / 16;
HiResNick += (d2Nick * (signed int) Parameter_Gyro_D);
HiResRoll += (d2Roll * (signed int) Parameter_Gyro_D);
}
 
if(RohMesswertRoll > 0) TrimRoll += ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
else TrimRoll -= ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
if(RohMesswertNick > 0) TrimNick += ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
else TrimNick -= ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
 
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll)
{
if(RohMesswertNick > 256) MesswertNick += 1 * (RohMesswertNick - 256);
else if(RohMesswertNick < -256) MesswertNick += 1 * (RohMesswertNick + 256);
if(RohMesswertRoll > 256) MesswertRoll += 1 * (RohMesswertRoll - 256);
else if(RohMesswertRoll < -256) MesswertRoll += 1 * (RohMesswertRoll + 256);
}
}
 
//############################################################################
// Senden der Motorwerte per I2C-Bus
void SendMotorData(void)
//############################################################################
{
unsigned char i;
if(!MotorenEin)
{
FC_StatusFlags &= ~(FC_STATUS_MOTOR_RUN | FC_STATUS_FLY);
for(i=0;i<MAX_MOTORS;i++)
{
if(!PC_MotortestActive) MotorTest[i] = 0;
Motor[i].SetPoint = MotorTest[i];
Motor[i].SetPointLowerBits = 0;
/*
Motor[i].SetPoint = MotorTest[i] / 4; // testing the high resolution
Motor[i].SetPointLowerBits = MotorTest[i] % 4;
*/
}
if(PC_MotortestActive) PC_MotortestActive--;
}
else FC_StatusFlags |= FC_STATUS_MOTOR_RUN;
 
if(I2C_TransferActive)
{
I2C_TransferActive = 0; // enable for the next time
}
else
{
motor_write = 0;
I2C_Start(TWI_STATE_MOTOR_TX); //Start I2C Interrupt Mode
}
}
 
 
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
unsigned char tmp,i;
#define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
#define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
for(i=0;i<8;i++)
{
int tmp2;
tmp2 = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
if(tmp2 != Poti[i])
{
Poti[i] += (tmp2 - Poti[i]) / 4;
if(Poti[i] > tmp2) Poti[i]--;
else Poti[i]++;
}
}
CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100);
CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100);
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255);
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255);
CHK_POTI(Parameter_Servo3,EE_Parameter.Servo3);
CHK_POTI(Parameter_Servo4,EE_Parameter.Servo4);
CHK_POTI(Parameter_Servo5,EE_Parameter.Servo5);
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe);
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe);
CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
CHK_POTI(Parameter_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z);
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung);
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I);
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D);
CHK_POTI(Parameter_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P);
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I);
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor);
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1);
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2);
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3);
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4);
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5);
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6);
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7);
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8);
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl);
CHK_POTI(Parameter_ServoRollControl,EE_Parameter.ServoRollControl);
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit);
CHK_POTI(Parameter_AchsKopplung1,EE_Parameter.AchsKopplung1);
CHK_POTI(Parameter_AchsKopplung2,EE_Parameter.AchsKopplung2);
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection);
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability);
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl);
Ki = 10300 / (Parameter_I_Faktor + 1);
MAX_GAS = EE_Parameter.Gas_Max;
MIN_GAS = EE_Parameter.Gas_Min;
 
tmp = EE_Parameter.OrientationModeControl;
if(tmp > 50)
{
#ifdef SWITCH_LEARNS_CAREFREE
if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
#endif
CareFree = 1;
if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= FC_ERROR0_CAREFREE; else VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE;
}
else CareFree = 0;
 
if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
{
beeptime = 15000;
BeepMuster = 0xA400;
CareFree = 0;
}
 
if(CareFree) {if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;}
}
 
//############################################################################
//
void MotorRegler(void)
//############################################################################
{
int pd_ergebnis_nick,pd_ergebnis_roll,tmp_int, tmp_int2;
int GierMischanteil,GasMischanteil;
static long sollGier = 0,tmp_long,tmp_long2;
static long IntegralFehlerNick = 0;
static long IntegralFehlerRoll = 0;
static unsigned int RcLostTimer;
static unsigned char delay_neutral = 0;
static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
static unsigned char calibration_done = 0;
static char NeueKompassRichtungMerken = 0;
static long ausgleichNick, ausgleichRoll;
int IntegralNickMalFaktor,IntegralRollMalFaktor;
unsigned char i;
Mittelwert();
GRN_ON;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GasMischanteil = StickGas;
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Empfang schlecht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay < 100)
{
if(RcLostTimer) RcLostTimer--;
else
{
MotorenEin = 0;
FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
}
ROT_ON;
if(modell_fliegt > 1000) // wahrscheinlich in der Luft --> langsam absenken
{
GasMischanteil = EE_Parameter.NotGas;
FC_StatusFlags |= FC_STATUS_EMERGENCY_LANDING;
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
}
else MotorenEin = 0;
}
else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Emfang gut
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay > 140)
{
FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
RcLostTimer = EE_Parameter.NotGasZeit * 50;
if(GasMischanteil > 40 && MotorenEin)
{
if(modell_fliegt < 0xffff) modell_fliegt++;
}
if((modell_fliegt < 256))
{
SummeNick = 0;
SummeRoll = 0;
sollGier = 0;
Mess_Integral_Gier = 0;
if(modell_fliegt == 250)
{
NeueKompassRichtungMerken = 1;
}
} else FC_StatusFlags |= FC_STATUS_FLY;
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0)
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// auf Nullwerte kalibrieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte
{
if(++delay_neutral > 200) // nicht sofort
{
GRN_OFF;
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
{
unsigned char setting=1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5;
SetActiveParamSet(setting); // aktiven Datensatz merken
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70)
{
WinkelOut.CalcState = 1;
beeptime = 1000;
}
else
{
ParamSet_ReadFromEEProm(GetActiveParamSet());
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
ServoActive = 0;
SetNeutral(0);
calibration_done = 1;
ServoActive = 1;
DDRD |=0x80; // enable J7 -> Servo signal
Piep(GetActiveParamSet(),120);
}
}
}
else
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern
{
if(++delay_neutral > 200) // nicht sofort
{
GRN_OFF;
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
SetNeutral(1);
calibration_done = 1;
Piep(GetActiveParamSet(),120);
}
}
else delay_neutral = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gas ist unten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120)
{
// Motoren Starten
if(!MotorenEin)
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Einschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(++delay_einschalten > 200)
{
delay_einschalten = 0;
if(!VersionInfo.HardwareError[0] && calibration_done)
{
modell_fliegt = 1;
MotorenEin = 1;
sollGier = 0;
Mess_Integral_Gier = 0;
Mess_Integral_Gier2 = 0;
Mess_IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
Mess_IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
Mess_IntegralNick2 = IntegralNick;
Mess_IntegralRoll2 = IntegralRoll;
SummeNick = 0;
SummeRoll = 0;
FC_StatusFlags |= FC_STATUS_START;
ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
}
else
{
beeptime = 1500; // indicate missing calibration
}
}
}
else delay_einschalten = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
else // only if motors are running
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
{
if(++delay_ausschalten > 200) // nicht sofort
{
MotorenEin = 0;
delay_ausschalten = 0;
modell_fliegt = 0;
}
}
else delay_ausschalten = 0;
}
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// neue Werte von der Funke
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(!NewPpmData-- || (FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
static int stick_nick,stick_roll;
ParameterZuordnung();
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P) / 4;
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P) / 4;
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CareFree und freie Wahl der vorderen Richtung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CareFree)
{
signed int nick, roll;
nick = stick_nick / 4;
roll = stick_roll / 4;
StickNick = ((FromNC_Rotate_C * nick) + (FromNC_Rotate_S * roll)) / (32 / 4);
StickRoll = ((FromNC_Rotate_C * roll) - (FromNC_Rotate_S * nick)) / (32 / 4);
}
else
{
FromNC_Rotate_C = sintab[EE_Parameter.OrientationAngle + 6];
FromNC_Rotate_S = sintab[EE_Parameter.OrientationAngle];
StickNick = ((FromNC_Rotate_C * stick_nick) + (FromNC_Rotate_S * stick_roll)) / 8;
StickRoll = ((FromNC_Rotate_C * stick_roll) - (FromNC_Rotate_S * stick_nick)) / 8;
}
 
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
if(StickGier > 2) StickGier -= 2; else
if(StickGier < -2) StickGier += 2; else StickGier = 0;
 
StickNick -= (GPS_Nick + GPS_Nick2);
StickRoll -= (GPS_Roll + GPS_Roll2);
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
 
GyroFaktor = (Parameter_Gyro_P + 10.0);
IntegralFaktor = Parameter_Gyro_I;
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0);
IntegralFaktorGier = Parameter_Gyro_Gier_I;
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+ Analoge Steuerung per Seriell
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128)
{
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P;
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
StickGier += ExternControl.Gier;
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
}
if(StickGas < 0) StickGas = 0;
 
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
 
if(abs(StickNick/STICK_GAIN) > MaxStickNick)
{
MaxStickNick = abs(StickNick)/STICK_GAIN;
if(MaxStickNick > 100) MaxStickNick = 100;
}
else MaxStickNick--;
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll)
{
MaxStickRoll = abs(StickRoll)/STICK_GAIN;
if(MaxStickRoll > 100) MaxStickRoll = 100;
}
else MaxStickRoll--;
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING) {MaxStickNick = 0; MaxStickRoll = 0;}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Looping?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1;
else
{
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1;
else
{
if(Looping_Rechts) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0;
}
}
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1;
else
{
if(Looping_Oben) // Hysterese
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1;
else
{
if(Looping_Unten) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0;
}
}
 
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0;
if(Looping_Oben || Looping_Unten) { Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
} // Ende neue Funken-Werte
 
if(Looping_Roll || Looping_Nick)
{
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit;
TrichterFlug = 1;
}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Bei Empfangsausfall im Flug
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING)
{
StickGier = 0;
StickNick = 0;
StickRoll = 0;
GyroFaktor = 90;
IntegralFaktor = 120;
GyroFaktorGier = 90;
IntegralFaktorGier = 120;
Looping_Roll = 0;
Looping_Nick = 0;
}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Integrale auf ACC-Signal abgleichen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define ABGLEICH_ANZAHL 256L
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
MittelIntegralRoll += IntegralRoll;
MittelIntegralNick2 += IntegralNick2;
MittelIntegralRoll2 += IntegralRoll2;
 
if(Looping_Nick || Looping_Roll)
{
IntegralAccNick = 0;
IntegralAccRoll = 0;
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
MittelIntegralNick2 = 0;
MittelIntegralRoll2 = 0;
Mess_IntegralNick2 = Mess_IntegralNick;
Mess_IntegralRoll2 = Mess_IntegralRoll;
ZaehlMessungen = 0;
LageKorrekturNick = 0;
LageKorrekturRoll = 0;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K != -1 /*&& !TrichterFlug*/)
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 2;
tmp_long2 /= 2;
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
{
tmp_long /= 3;
tmp_long2 /= 3;
}
if(tmp_long > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
}
else
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long /= 16;
tmp_long2 /= 16;
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 3;
tmp_long2 /= 3;
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
{
tmp_long /= 3;
tmp_long2 /= 3;
}
 
#define AUSGLEICH 32
if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH;
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH;
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH;
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH;
}
 
Mess_IntegralNick -= tmp_long;
Mess_IntegralRoll -= tmp_long2;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ZaehlMessungen >= ABGLEICH_ANZAHL)
{
static int cnt = 0;
static char last_n_p,last_n_n,last_r_p,last_r_n;
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt;
if(!Looping_Nick && !Looping_Roll && !TrichterFlug && EE_Parameter.Driftkomp)
{
MittelIntegralNick /= ABGLEICH_ANZAHL;
MittelIntegralRoll /= ABGLEICH_ANZAHL;
IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL;
IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL;
IntegralAccZ = IntegralAccZ / ABGLEICH_ANZAHL;
#define MAX_I 0
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerNick = (long)(MittelIntegralNick - (long)IntegralAccNick);
ausgleichNick = IntegralFehlerNick / EE_Parameter.GyroAccAbgleich;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerRoll = (long)(MittelIntegralRoll - (long)IntegralAccRoll);
ausgleichRoll = IntegralFehlerRoll / EE_Parameter.GyroAccAbgleich;
 
LageKorrekturNick = ausgleichNick / ABGLEICH_ANZAHL;
LageKorrekturRoll = ausgleichRoll / ABGLEICH_ANZAHL;
 
if(((MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)) && (FromNaviCtrl_Value.Kalman_K == -1))
{
LageKorrekturNick /= 2;
LageKorrekturRoll /= 2;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gyro-Drift ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick2 /= ABGLEICH_ANZAHL;
MittelIntegralRoll2 /= ABGLEICH_ANZAHL;
tmp_long = IntegralNick2 - IntegralNick;
tmp_long2 = IntegralRoll2 - IntegralRoll;
 
IntegralFehlerNick = tmp_long;
IntegralFehlerRoll = tmp_long2;
Mess_IntegralNick2 -= IntegralFehlerNick;
Mess_IntegralRoll2 -= IntegralFehlerRoll;
 
if(EE_Parameter.Driftkomp)
{
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; }
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; }
}
GierGyroFehler = 0;
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL / 2)
#define FEHLER_LIMIT1 (ABGLEICH_ANZAHL * 2) //4
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) //16
#define BEWEGUNGS_LIMIT 20000
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerNick) / 4096;
if(labs(IntegralFehlerNick) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerNick > FEHLER_LIMIT2)
{
if(last_n_p)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick > 5000) ausgleichNick = 5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_p = 1;
} else last_n_p = 0;
if(IntegralFehlerNick < -FEHLER_LIMIT2)
{
if(last_n_n)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick < -5000) ausgleichNick = -5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_n = 1;
} else last_n_n = 0;
}
else
{
cnt = 0;
KompassSignalSchlecht = 1000;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt;
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt;
 
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerRoll) / 4096;
if(labs(IntegralFehlerRoll) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralRoll_Alt - MittelIntegralRoll) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerRoll > FEHLER_LIMIT2)
{
if(last_r_p)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll > 5000) ausgleichRoll = 5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_p = 1;
} else last_r_p = 0;
if(IntegralFehlerRoll < -FEHLER_LIMIT2)
{
if(last_r_n)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll < -5000) ausgleichRoll = -5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_n = 1;
} else last_r_n = 0;
} else
{
cnt = 0;
KompassSignalSchlecht = 1000;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
}
else
{
LageKorrekturRoll = 0;
LageKorrekturNick = 0;
TrichterFlug = 0;
}
 
if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick_Alt = MittelIntegralNick;
MittelIntegralRoll_Alt = MittelIntegralRoll;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
IntegralAccNick = 0;
IntegralAccRoll = 0;
IntegralAccZ = 0;
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
MittelIntegralNick2 = 0;
MittelIntegralRoll2 = 0;
ZaehlMessungen = 0;
} // ZaehlMessungen >= ABGLEICH_ANZAHL
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 15) // war 35
{
KompassSignalSchlecht = 1000;
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))
{
int w,v,r,fehler,korrektur;
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /512);
if(v > w) w = v; // grösste Neigung ermitteln
korrektur = w / 8 + 2;
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180;
//fehler += MesswertGier / 12;
 
if(!KompassSignalSchlecht && w < 25)
{
GierGyroFehler += fehler;
if(NeueKompassRichtungMerken)
{
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR);
NeueKompassRichtungMerken = 0;
}
}
ErsatzKompass += (fehler * 16) / korrektur;
w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln
if(w >= 0)
{
if(!KompassSignalSchlecht)
{
v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;
r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180;
v = (r * w) / v; // nach Kompass ausrichten
w = 3 * Parameter_KompassWirkung;
if(v > w) v = w; // Begrenzen
else
if(v < -w) v = -w;
Mess_Integral_Gier += v;
}
if(KompassSignalSchlecht) KompassSignalSchlecht--;
}
else KompassSignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(TrichterFlug) { SummeRoll = 0; SummeNick = 0;};
 
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0;
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0;
 
#define TRIM_MAX 200
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX;
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX;
 
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN);
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN);
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN));
 
// Maximalwerte abfangen
// #define MAX_SENSOR (4096*STICK_GAIN)
#define MAX_SENSOR (4096)
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR;
if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR;
if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR;
if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR;
if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Höhenregelung
// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(UBat > BattLowVoltageWarning) GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen
GasMischanteil *= STICK_GAIN;
// if height control is activated
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick)) // Höhenregelung
{
#define HOVER_GAS_AVERAGE 16384L // 16384 * 2ms = 32s averaging
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#define OPA_OFFSET_STEP 15
#else
#define OPA_OFFSET_STEP 10
#endif
int HCGas, HeightDeviation = 0,GasReduction = 0;
static int HeightTrimming = 0; // rate for change of height setpoint
static int FilterHCGas = 0;
static int StickGasHover = 120, HoverGasMin = 0, HoverGasMax = 1023;
static unsigned long HoverGasFilter = 0;
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0;
int CosAttitude; // for projection of hoover gas
 
// get the current hooverpoint
DebugOut.Analog[21] = HoverGas;
 
// Expand the measurement
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs
if(!BaroExpandActive)
{
if(MessLuftdruck > 920)
{ // increase offset
if(OCR0A < (255 - OPA_OFFSET_STEP))
{
ExpandBaro -= 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down
beeptime = 300;
BaroExpandActive = 350;
}
else
{
BaroAtLowerLimit = 1;
}
}
// measurement of air pressure close to lower limit and
else
if(MessLuftdruck < 100)
{ // decrease offset
if(OCR0A > OPA_OFFSET_STEP)
{
ExpandBaro += 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up
beeptime = 300;
BaroExpandActive = 350;
}
else
{
BaroAtUpperLimit = 1;
}
}
else
{
BaroAtUpperLimit = 0;
BaroAtLowerLimit = 0;
}
}
else // delay, because of expanding the Baro-Range
{
// now clear the D-values
SummenHoehe = HoehenWert * SM_FILTER;
VarioMeter = 0;
BaroExpandActive--;
}
 
// if height control is activated by an rc channel
if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
{ // check if parameter is less than activation threshold
if(Parameter_MaxHoehe < 50) // for 3 or 2-state switch height control is disabled in lowest position
{ //height control not active
if(!delay--)
{
HoehenReglerAktiv = 0; // disable height control
SollHoehe = HoehenWert; // update SetPoint with current reading
delay = 1;
}
}
else
{ //height control is activated
HoehenReglerAktiv = 1; // enable height control
delay = 200;
}
}
else // no switchable height control
{
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung;
HoehenReglerAktiv = 1;
}
 
// calculate cos of nick and roll angle used for projection of the vertical hoover gas
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
CosAttitude = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg
LIMIT_MAX(CosAttitude, 60); // limit effective attitude angle
CosAttitude = c_cos_8192(CosAttitude); // cos of actual attitude
VarioCharacter = ' ';
if(HoehenReglerAktiv && !(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
#define HEIGHT_CONTROL_STICKTHRESHOLD 15
// Holger original version
// start of height control algorithm
// the height control is only an attenuation of the actual gas stick.
// I.e. it will work only if the gas stick is higher than the hover gas
// and the hover height will be allways larger than height setpoint.
if((EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) || !(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert)
{ // old version
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control
HeightTrimming = 0;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
}
else
{
// alternative height control
// PD-Control with respect to hoover point
// the thrust loss out of horizontal attitude is compensated
// the setpoint will be fine adjusted with the gas stick position
if(FC_StatusFlags & FC_STATUS_FLY) // trim setpoint only when flying
{ // gas stick is above hoover point
if(StickGas > (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit)
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_DOWN)
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_DOWN;
SollHoehe = HoehenWert; // update setpoint to current heigth
}
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_UP;
HeightTrimming += abs(StickGas - (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD));
VarioCharacter = '+';
} // gas stick is below hoover point
else if(StickGas < (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit )
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_UP)
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_UP;
SollHoehe = HoehenWert; // update setpoint to current heigth
}
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_DOWN;
HeightTrimming -= abs(StickGas - (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD));
VarioCharacter = '-';
}
else // Gas Stick in Hover Range
{
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN))
{
FC_StatusFlags &= ~(FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
HeightTrimming = 0;
SollHoehe = HoehenWert; // update setpoint to current height
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500;
if(!StartTrigger && HoehenWert > 50)
{
StartTrigger = 1;
}
}
VarioCharacter = '=';
}
// Trim height set point
if(abs(HeightTrimming) > 512)
{
SollHoehe += (HeightTrimming * EE_Parameter.Hoehe_Verstaerkung)/(5 * 512 / 2); // move setpoint
HeightTrimming = 0;
LIMIT_MIN_MAX(SollHoehe, (HoehenWert-1024), (HoehenWert+1024)); // max. 10m Unterschied
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 100;
//update hoover gas stick value when setpoint is shifted
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; //rescale back to stick value
StickGasHover = (StickGasHover * UBat) / BattLowVoltageWarning;
if(StickGasHover < 70) StickGasHover = 70;
else if(StickGasHover > 150) StickGasHover = 150;
}
}
if(BaroExpandActive) SollHoehe = HoehenWert; // update setpoint to current altitude if Expanding is active
} //if FCFlags & MKFCFLAG_FLY
else
{
SollHoehe = HoehenWert - 400;
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
else StickGasHover = 120;
HoverGas = GasMischanteil;
}
HCGas = HoverGas; // take hover gas (neutral point)
}
if(HoehenWert > SollHoehe || !(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT))
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
{
HCGas = HoverGas; // hover while expanding baro adc range
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWert - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
LIMIT_MIN_MAX(tmp_long, -127 * STICK_GAIN, 256 * STICK_GAIN); // more than the full range makes no sense
GasReduction = tmp_long;
// ------------------------- D-Part 1: Vario Meter ----------------------------
tmp_int = VarioMeter / 8;
LIMIT_MIN_MAX(tmp_int, -127, 128);
tmp_int = (tmp_int * (long)Parameter_Luftdruck_D) / 4L; // scale to d-gain parameter
LIMIT_MIN_MAX(tmp_int,-64 * STICK_GAIN, 64 * STICK_GAIN);
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN)) tmp_int /= 4; // reduce d-part while trimming setpoint
else
if(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) tmp_int /= 8; // reduce d-part in "Deckel" mode
GasReduction += tmp_int;
} // EOF no baro range expanding
// ------------------------ D-Part 2: ACC-Z Integral ------------------------
if(Parameter_Hoehe_ACC_Wirkung)
{
tmp_long = ((Mess_Integral_Hoch / 128L) * (int32_t) Parameter_Hoehe_ACC_Wirkung) / (128L / STICK_GAIN);
LIMIT_MIN_MAX(tmp_long, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_long;
}
// ------------------------ D-Part 3: GpsZ ----------------------------------
tmp_int = (Parameter_Hoehe_GPS_Z * (int)FromNaviCtrl_Value.GpsZ)/128L;
LIMIT_MIN_MAX(tmp_int, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_int;
GasReduction = (long)((long)GasReduction * HoverGas) / 512; // scale to the gas value
// ------------------------ ----------------------------------
HCGas -= GasReduction;
// limit deviation from hoover point within the target region
if(!HeightTrimming && HoverGas > 0) // height setpoint is not changed and hoover gas not zero
{
unsigned int tmp;
tmp = abs(HeightDeviation);
if(tmp <= 60)
{
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (tmp - 60) / 32;
if(tmp > 15) tmp = 15;
if(HeightDeviation > 0)
{
tmp = (HoverGasMin * (16 - tmp)) / 16;
LIMIT_MIN_MAX(HCGas, tmp, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (HoverGasMax * (tmp + 16)) / 16;
LIMIT_MIN_MAX(HCGas, HoverGasMin, tmp); // limit gas around the hoover point
}
}
}
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
tmp_long2 *= 8192L;
tmp_long2 /= CosAttitude;
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
// limit height control gas pd-control output
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN);
// set GasMischanteil to HeightControlGasFilter
if(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT)
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
GasMischanteil = FilterHCGas;
}
else GasMischanteil = FilterHCGas + (GasMischanteil - HoverGas) / 4; // only in Vario-Mode
}
}// EOF height control active
else // HC not active
{
//update hoover gas stick value when HC is not active
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
StickGasHover = (StickGasHover * UBat) / BattLowVoltageWarning;
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
LIMIT_MIN_MAX(StickGasHover, 70, 150); // reserve some range for trim up and down
FilterHCGas = GasMischanteil;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
}
 
// Hover gas estimation by averaging gas control output on small z-velocities
// this is done only if height contol option is selected in global config and aircraft is flying
if((FC_StatusFlags & FC_STATUS_FLY))// && !(FC_SatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation
if(StartTrigger == 1) StartTrigger = 2;
tmp_long2 = (int32_t)GasMischanteil; // take current thrust
tmp_long2 *= CosAttitude; // apply attitude projection
tmp_long2 /= 8192;
// average vertical projected thrust
if(modell_fliegt < 4000) // the first 8 seconds
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/16L);
HoverGasFilter += 16L * tmp_long2;
}
if(modell_fliegt < 8000) // the first 16 seconds
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/4L);
HoverGasFilter += 4L * tmp_long2;
}
else //later
if(abs(VarioMeter) < 100) // only on small vertical speed
{
HoverGasFilter -= HoverGasFilter/HOVER_GAS_AVERAGE;
HoverGasFilter += tmp_long2;
}
HoverGas = (int16_t)(HoverGasFilter/HOVER_GAS_AVERAGE);
if(EE_Parameter.Hoehe_HoverBand)
{
int16_t band;
band = HoverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range
HoverGasMin = HoverGas - band;
HoverGasMax = HoverGas + band;
}
else
{ // no limit
HoverGasMin = 0;
HoverGasMax = 1023;
}
}
else
{
StartTrigger = 0;
HoverGasFilter = 0;
HoverGas = 0;
}
}// EOF ParamSet.GlobalConfig & CFG_HEIGHT_CONTROL
else
{
// set undefined state to indicate vario off
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
} // EOF no height control
 
// limit gas to parameter setting
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN);
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// all BL-Ctrl connected?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(MissingMotor || Capacity.MinOfMaxPWM != 255)
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0)
{
modell_fliegt = 1;
GasMischanteil = (MIN_GAS + 10) * STICK_GAIN;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren
if(GasMischanteil > MIN_GIERGAS)
{
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
}
else
{
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2;
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
}
tmp_int = MAX_GAS*STICK_GAIN;
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Nick-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffNick = MesswertNick - StickNick; // Differenz bestimmen
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung
else SummeNick += DiffNick; // I-Anteil bei HH
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L);
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_nick = (EE_Parameter.Gyro_Stability * DiffNick) / 8; // PI-Regler für Nick
else pd_ergebnis_nick = ((EE_Parameter.Gyro_Stability / 2) * DiffNick) / 4; // Ãœberlauf verhindern
pd_ergebnis_nick += SummeNick / Ki;
 
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_nick > tmp_int) pd_ergebnis_nick = tmp_int;
if(pd_ergebnis_nick < -tmp_int) pd_ergebnis_nick = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Roll-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen
if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll;// I-Anteil bei Winkelregelung
else SummeRoll += DiffRoll; // I-Anteil bei HH
if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L);
if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_roll = (EE_Parameter.Gyro_Stability * DiffRoll) / 8; // PI-Regler für Roll
else pd_ergebnis_roll = ((EE_Parameter.Gyro_Stability / 2) * DiffRoll) / 4; // Ãœberlauf verhindern
pd_ergebnis_roll += SummeRoll / Ki;
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_roll > tmp_int) pd_ergebnis_roll = tmp_int;
if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Universal Mixer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for(i=0; i<MAX_MOTORS; i++)
{
signed int tmp_int;
if(Mixer.Motor[i][0] > 0)
{
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
// Nick
if(Mixer.Motor[i][1] == 64) tmp_int += pd_ergebnis_nick;
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
// Roll
if(Mixer.Motor[i][2] == 64) tmp_int += pd_ergebnis_roll;
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
// Gier
if(Mixer.Motor[i][3] == 64) tmp_int += GierMischanteil;
else if(Mixer.Motor[i][3] == -64) tmp_int -= GierMischanteil;
else tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L;
 
if(tmp_int > tmp_motorwert[i]) tmp_int = (tmp_motorwert[i] + tmp_int) / 2; // MotorSmoothing
else tmp_int = 2 * tmp_int - tmp_motorwert[i]; // MotorSmoothing
 
LIMIT_MIN_MAX(tmp_int,(int) MIN_GAS * 4,(int) MAX_GAS * 4);
Motor[i].SetPoint = tmp_int / 4;
Motor[i].SetPointLowerBits = (tmp_int % 4)<<1; // (3 bits total)
tmp_motorwert[i] = tmp_int;
}
else
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
}
/Spektrum-Diversity/V0.82a/fc.d
0,0 → 1,3
fc.o fc.d : fc.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h mymath.h isqrt.h
/Spektrum-Diversity/V0.82a/fc.h
0,0 → 1,109
/*#######################################################################################
Flight Control
#######################################################################################*/
 
#ifndef _FC_H
#define _FC_H
//#define GIER_GRAD_FAKTOR 1291L // Abhängigkeit zwischen GyroIntegral und Winkel
//#define GIER_GRAD_FAKTOR 1160L
extern long GIER_GRAD_FAKTOR; // Abhängigkeit zwischen GyroIntegral und Winkel
#define STICK_GAIN 4
#define ACC_AMPLIFY 6
 
// FC STATUS FLAGS
#define FC_STATUS_MOTOR_RUN 0x01
#define FC_STATUS_FLY 0x02
#define FC_STATUS_CALIBRATE 0x04
#define FC_STATUS_START 0x08
#define FC_STATUS_EMERGENCY_LANDING 0x10
#define FC_STATUS_LOWBAT 0x20
#define FC_STATUS_VARIO_TRIM_UP 0x40
#define FC_STATUS_VARIO_TRIM_DOWN 0x80
 
extern volatile unsigned char FC_StatusFlags;
 
 
#define Poti1 Poti[0]
#define Poti2 Poti[1]
#define Poti3 Poti[2]
#define Poti4 Poti[3]
#define Poti5 Poti[4]
#define Poti6 Poti[5]
#define Poti7 Poti[6]
#define Poti8 Poti[7]
 
extern unsigned char Sekunde,Minute;
extern unsigned int BaroExpandActive;
extern long IntegralNick,IntegralNick2;
extern long IntegralRoll,IntegralRoll2;
//extern int IntegralNick,IntegralNick2;
//extern int IntegralRoll,IntegralRoll2;
extern unsigned char Poti[9];
 
extern long Mess_IntegralNick,Mess_IntegralNick2;
extern long Mess_IntegralRoll,Mess_IntegralRoll2;
extern long IntegralAccNick,IntegralAccRoll;
extern long SummeNick,SummeRoll;
extern volatile long Mess_Integral_Hoch;
extern long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2;
extern int KompassValue;
extern int KompassStartwert;
extern int KompassRichtung;
extern unsigned char ControlHeading;
extern int TrimNick, TrimRoll;
extern long ErsatzKompass;
extern int ErsatzKompassInGrad; // Kompasswert in Grad
extern long HoehenWert;
extern long SollHoehe;
extern unsigned char CareFree;
extern int MesswertNick,MesswertRoll,MesswertGier;
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll;
extern unsigned int NeutralAccX, NeutralAccY;
extern unsigned char HoehenReglerAktiv;
extern int NeutralAccZ;
extern long Umschlag180Nick, Umschlag180Roll;
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier;
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8;
extern int NaviAccNick,NaviAccRoll,NaviCntAcc;
extern unsigned int modell_fliegt;
extern void MotorRegler(void);
extern void SendMotorData(void);
//void CalibrierMittelwert(void);
//void Mittelwert(void);
extern void SetNeutral(unsigned char AccAdjustment);
extern void Piep(unsigned char Anzahl, unsigned int dauer);
extern void CopyDebugValues(void);
 
extern unsigned char h,m,s;
extern volatile unsigned char Timeout ;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern int DiffNick,DiffRoll;
//extern int Poti1, Poti2, Poti3, Poti4;
extern volatile unsigned char SenderOkay;
extern int StickNick,StickRoll,StickGier;
extern char MotorenEin;
extern unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
extern char VarioCharacter;
extern int HoverGas;
 
extern unsigned char Parameter_Luftdruck_D;
extern unsigned char Parameter_MaxHoehe;
extern unsigned char Parameter_Hoehe_P;
extern unsigned char Parameter_Hoehe_ACC_Wirkung;
extern unsigned char Parameter_KompassWirkung;
extern unsigned char Parameter_Gyro_P;
extern unsigned char Parameter_Gyro_I;
extern unsigned char Parameter_Gier_P;
extern unsigned char Parameter_ServoNickControl;
extern unsigned char Parameter_ServoRollControl;
extern unsigned char Parameter_AchsKopplung1;
extern unsigned char Parameter_AchsKopplung2;
//extern unsigned char Parameter_AchsGegenKopplung1;
extern unsigned char Parameter_J16Bitmask; // for the J16 Output
extern unsigned char Parameter_J16Timing; // for the J16 Output
extern unsigned char Parameter_J17Bitmask; // for the J17 Output
extern unsigned char Parameter_J17Timing; // for the J17 Output
extern signed char MixerTable[MAX_MOTORS][4];
extern const signed char sintab[31];
#endif //_FC_H
 
/Spektrum-Diversity/V0.82a/fc.lst
0,0 → 1,9163
1 .file "fc.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global CopyDebugValues
12 CopyDebugValues:
13 /* prologue: frame size=0 */
14 0000 EF92 push r14
15 0002 FF92 push r15
16 0004 0F93 push r16
17 0006 1F93 push r17
18 /* prologue end (size=4) */
19 0008 E090 0000 lds r14,EE_Parameter+28
20 000c FF24 clr r15
21 000e EE0C lsl r14
22 0010 FF1C rol r15
23 0012 EE0C lsl r14
24 0014 FF1C rol r15
25 0016 0027 clr r16
26 0018 F7FC sbrc r15,7
27 001a 0095 com r16
28 001c 102F mov r17,r16
29 001e 6091 0000 lds r22,IntegralNick
30 0022 7091 0000 lds r23,(IntegralNick)+1
31 0026 8091 0000 lds r24,(IntegralNick)+2
32 002a 9091 0000 lds r25,(IntegralNick)+3
33 002e A801 movw r20,r16
34 0030 9701 movw r18,r14
35 0032 0E94 0000 call __divmodsi4
36 0036 3093 0000 sts (DebugOut+2)+1,r19
37 003a 2093 0000 sts DebugOut+2,r18
38 003e 6091 0000 lds r22,IntegralRoll
39 0042 7091 0000 lds r23,(IntegralRoll)+1
40 0046 8091 0000 lds r24,(IntegralRoll)+2
41 004a 9091 0000 lds r25,(IntegralRoll)+3
42 004e A801 movw r20,r16
43 0050 9701 movw r18,r14
44 0052 0E94 0000 call __divmodsi4
45 0056 3093 0000 sts (DebugOut+4)+1,r19
46 005a 2093 0000 sts DebugOut+4,r18
47 005e 8091 0000 lds r24,Mittelwert_AccNick
48 0062 9091 0000 lds r25,(Mittelwert_AccNick)+1
49 0066 64E0 ldi r22,lo8(4)
50 0068 70E0 ldi r23,hi8(4)
51 006a 0E94 0000 call __divmodhi4
52 006e 7093 0000 sts (DebugOut+6)+1,r23
53 0072 6093 0000 sts DebugOut+6,r22
54 0076 8091 0000 lds r24,Mittelwert_AccRoll
55 007a 9091 0000 lds r25,(Mittelwert_AccRoll)+1
56 007e 64E0 ldi r22,lo8(4)
57 0080 70E0 ldi r23,hi8(4)
58 0082 0E94 0000 call __divmodhi4
59 0086 7093 0000 sts (DebugOut+8)+1,r23
60 008a 6093 0000 sts DebugOut+8,r22
61 008e 2091 0000 lds r18,AdWertGier
62 0092 3091 0000 lds r19,(AdWertGier)+1
63 0096 8091 0000 lds r24,AdNeutralGier
64 009a 9091 0000 lds r25,(AdNeutralGier)+1
65 009e 821B sub r24,r18
66 00a0 930B sbc r25,r19
67 00a2 9093 0000 sts (DebugOut+10)+1,r25
68 00a6 8093 0000 sts DebugOut+10,r24
69 00aa 6091 0000 lds r22,HoehenWert
70 00ae 7091 0000 lds r23,(HoehenWert)+1
71 00b2 8091 0000 lds r24,(HoehenWert)+2
72 00b6 9091 0000 lds r25,(HoehenWert)+3
73 00ba 25E0 ldi r18,lo8(5)
74 00bc 30E0 ldi r19,hi8(5)
75 00be 40E0 ldi r20,hlo8(5)
76 00c0 50E0 ldi r21,hhi8(5)
77 00c2 0E94 0000 call __divmodsi4
78 00c6 3093 0000 sts (DebugOut+12)+1,r19
79 00ca 2093 0000 sts DebugOut+12,r18
80 00ce 8091 0000 lds r24,AdWertAccHoch
81 00d2 9091 0000 lds r25,(AdWertAccHoch)+1
82 00d6 9093 0000 sts (DebugOut+14)+1,r25
83 00da 8093 0000 sts DebugOut+14,r24
84 00de 8091 0000 lds r24,KompassValue
85 00e2 9091 0000 lds r25,(KompassValue)+1
86 00e6 9093 0000 sts (DebugOut+18)+1,r25
87 00ea 8093 0000 sts DebugOut+18,r24
88 00ee 8091 0000 lds r24,UBat
89 00f2 9091 0000 lds r25,(UBat)+1
90 00f6 9093 0000 sts (DebugOut+20)+1,r25
91 00fa 8093 0000 sts DebugOut+20,r24
92 00fe 8091 0000 lds r24,SenderOkay
93 0102 90E0 ldi r25,lo8(0)
94 0104 9093 0000 sts (DebugOut+22)+1,r25
95 0108 8093 0000 sts DebugOut+22,r24
96 010c 6091 0000 lds r22,ErsatzKompass
97 0110 7091 0000 lds r23,(ErsatzKompass)+1
98 0114 8091 0000 lds r24,(ErsatzKompass)+2
99 0118 9091 0000 lds r25,(ErsatzKompass)+3
100 011c 2091 0000 lds r18,GIER_GRAD_FAKTOR
101 0120 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
102 0124 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
103 0128 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
104 012c 0E94 0000 call __divmodsi4
105 0130 3093 0000 sts (DebugOut+24)+1,r19
106 0134 2093 0000 sts DebugOut+24,r18
107 0138 8091 0000 lds r24,Motor+1
108 013c 90E0 ldi r25,lo8(0)
109 013e 9093 0000 sts (DebugOut+26)+1,r25
110 0142 8093 0000 sts DebugOut+26,r24
111 0146 8091 0000 lds r24,Motor+9
112 014a 90E0 ldi r25,lo8(0)
113 014c 9093 0000 sts (DebugOut+28)+1,r25
114 0150 8093 0000 sts DebugOut+28,r24
115 0154 8091 0000 lds r24,Motor+17
116 0158 90E0 ldi r25,lo8(0)
117 015a 9093 0000 sts (DebugOut+30)+1,r25
118 015e 8093 0000 sts DebugOut+30,r24
119 0162 8091 0000 lds r24,Motor+25
120 0166 90E0 ldi r25,lo8(0)
121 0168 9093 0000 sts (DebugOut+32)+1,r25
122 016c 8093 0000 sts DebugOut+32,r24
123 0170 8091 0000 lds r24,ServoNickValue
124 0174 9091 0000 lds r25,(ServoNickValue)+1
125 0178 9093 0000 sts (DebugOut+42)+1,r25
126 017c 8093 0000 sts DebugOut+42,r24
127 0180 8091 0000 lds r24,Capacity
128 0184 9091 0000 lds r25,(Capacity)+1
129 0188 9093 0000 sts (DebugOut+46)+1,r25
130 018c 8093 0000 sts DebugOut+46,r24
131 0190 8091 0000 lds r24,Capacity+4
132 0194 9091 0000 lds r25,(Capacity+4)+1
133 0198 9093 0000 sts (DebugOut+48)+1,r25
134 019c 8093 0000 sts DebugOut+48,r24
135 01a0 8091 0000 lds r24,Capacity+6
136 01a4 90E0 ldi r25,lo8(0)
137 01a6 9093 0000 sts (DebugOut+60)+1,r25
138 01aa 8093 0000 sts DebugOut+60,r24
139 01ae 8091 0000 lds r24,GPS_Nick
140 01b2 9091 0000 lds r25,(GPS_Nick)+1
141 01b6 9093 0000 sts (DebugOut+62)+1,r25
142 01ba 8093 0000 sts DebugOut+62,r24
143 01be 8091 0000 lds r24,GPS_Roll
144 01c2 9091 0000 lds r25,(GPS_Roll)+1
145 01c6 9093 0000 sts (DebugOut+64)+1,r25
146 01ca 8093 0000 sts DebugOut+64,r24
147 01ce 8091 0000 lds r24,VersionInfo+5
148 01d2 8823 tst r24
149 01d4 01F4 brne .L2
150 01d6 8091 0000 lds r24,VersionInfo+6
151 01da 8823 tst r24
152 01dc 01F0 breq .L4
153 .L2:
154 01de 8091 0000 lds r24,DebugOut+1
155 01e2 8160 ori r24,lo8(1)
156 01e4 00C0 rjmp .L7
157 .L4:
158 01e6 8091 0000 lds r24,DebugOut+1
159 01ea 8E7F andi r24,lo8(-2)
160 .L7:
161 01ec 8093 0000 sts DebugOut+1,r24
162 /* epilogue: frame size=0 */
163 01f0 1F91 pop r17
164 01f2 0F91 pop r16
165 01f4 FF90 pop r15
166 01f6 EF90 pop r14
167 01f8 0895 ret
168 /* epilogue end (size=5) */
169 /* function CopyDebugValues size 253 (244) */
171 .global Mittelwert
173 Mittelwert:
174 /* prologue: frame size=27 */
175 01fa ABE1 ldi r26,lo8(27)
176 01fc B0E0 ldi r27,hi8(27)
177 01fe E0E0 ldi r30,pm_lo8(1f)
178 0200 F0E0 ldi r31,pm_hi8(1f)
179 0202 0C94 0000 jmp __prologue_saves__+0
180 1:
181 /* prologue end (size=6) */
182 0206 8091 0000 lds r24,AdWertGier
183 020a 9091 0000 lds r25,(AdWertGier)+1
184 020e 2091 0000 lds r18,AdNeutralGier
185 0212 3091 0000 lds r19,(AdNeutralGier)+1
186 0216 281B sub r18,r24
187 0218 390B sbc r19,r25
188 021a 3B8F std Y+27,r19
189 021c 2A8F std Y+26,r18
190 021e 3093 0000 sts (MesswertGier)+1,r19
191 0222 2093 0000 sts MesswertGier,r18
192 0226 8091 0000 lds r24,AdWertNickFilter
193 022a 9091 0000 lds r25,(AdWertNickFilter)+1
194 022e 68E0 ldi r22,lo8(8)
195 0230 70E0 ldi r23,hi8(8)
196 0232 0E94 0000 call __divmodhi4
197 0236 798F std Y+25,r23
198 0238 688F std Y+24,r22
199 023a 8091 0000 lds r24,AdWertRollFilter
200 023e 9091 0000 lds r25,(AdWertRollFilter)+1
201 0242 68E0 ldi r22,lo8(8)
202 0244 70E0 ldi r23,hi8(8)
203 0246 0E94 0000 call __divmodhi4
204 024a 7F8B std Y+23,r23
205 024c 6E8B std Y+22,r22
206 024e 488D ldd r20,Y+24
207 0250 598D ldd r21,Y+25
208 0252 5093 0000 sts (RohMesswertNick)+1,r21
209 0256 4093 0000 sts RohMesswertNick,r20
210 025a 7093 0000 sts (RohMesswertRoll)+1,r23
211 025e 6093 0000 sts RohMesswertRoll,r22
212 0262 2091 0000 lds r18,AdWertAccNick
213 0266 3091 0000 lds r19,(AdWertAccNick)+1
214 026a C901 movw r24,r18
215 026c 880F lsl r24
216 026e 991F rol r25
217 0270 820F add r24,r18
218 0272 931F adc r25,r19
219 0274 880F lsl r24
220 0276 991F rol r25
221 0278 4091 0000 lds r20,Mittelwert_AccNick
222 027c 5091 0000 lds r21,(Mittelwert_AccNick)+1
223 0280 9A01 movw r18,r20
224 0282 220F lsl r18
225 0284 331F rol r19
226 0286 240F add r18,r20
227 0288 351F adc r19,r21
228 028a 820F add r24,r18
229 028c 931F adc r25,r19
230 028e 64E0 ldi r22,lo8(4)
231 0290 70E0 ldi r23,hi8(4)
232 0292 0E94 0000 call __divmodhi4
233 0296 7093 0000 sts (Mittelwert_AccNick)+1,r23
234 029a 6093 0000 sts Mittelwert_AccNick,r22
235 029e 2091 0000 lds r18,AdWertAccRoll
236 02a2 3091 0000 lds r19,(AdWertAccRoll)+1
237 02a6 C901 movw r24,r18
238 02a8 880F lsl r24
239 02aa 991F rol r25
240 02ac 820F add r24,r18
241 02ae 931F adc r25,r19
242 02b0 880F lsl r24
243 02b2 991F rol r25
244 02b4 4091 0000 lds r20,Mittelwert_AccRoll
245 02b8 5091 0000 lds r21,(Mittelwert_AccRoll)+1
246 02bc 9A01 movw r18,r20
247 02be 220F lsl r18
248 02c0 331F rol r19
249 02c2 240F add r18,r20
250 02c4 351F adc r19,r21
251 02c6 820F add r24,r18
252 02c8 931F adc r25,r19
253 02ca 64E0 ldi r22,lo8(4)
254 02cc 70E0 ldi r23,hi8(4)
255 02ce 0E94 0000 call __divmodhi4
256 02d2 7093 0000 sts (Mittelwert_AccRoll)+1,r23
257 02d6 6093 0000 sts Mittelwert_AccRoll,r22
258 02da 2091 0000 lds r18,AdWertAccNick
259 02de 3091 0000 lds r19,(AdWertAccNick)+1
260 02e2 C901 movw r24,r18
261 02e4 880F lsl r24
262 02e6 991F rol r25
263 02e8 820F add r24,r18
264 02ea 931F adc r25,r19
265 02ec 880F lsl r24
266 02ee 991F rol r25
267 02f0 AA27 clr r26
268 02f2 97FD sbrc r25,7
269 02f4 A095 com r26
270 02f6 BA2F mov r27,r26
271 02f8 2091 0000 lds r18,IntegralAccNick
272 02fc 3091 0000 lds r19,(IntegralAccNick)+1
273 0300 4091 0000 lds r20,(IntegralAccNick)+2
274 0304 5091 0000 lds r21,(IntegralAccNick)+3
275 0308 280F add r18,r24
276 030a 391F adc r19,r25
277 030c 4A1F adc r20,r26
278 030e 5B1F adc r21,r27
279 0310 2093 0000 sts IntegralAccNick,r18
280 0314 3093 0000 sts (IntegralAccNick)+1,r19
281 0318 4093 0000 sts (IntegralAccNick)+2,r20
282 031c 5093 0000 sts (IntegralAccNick)+3,r21
283 0320 2091 0000 lds r18,AdWertAccRoll
284 0324 3091 0000 lds r19,(AdWertAccRoll)+1
285 0328 C901 movw r24,r18
286 032a 880F lsl r24
287 032c 991F rol r25
288 032e 820F add r24,r18
289 0330 931F adc r25,r19
290 0332 880F lsl r24
291 0334 991F rol r25
292 0336 AA27 clr r26
293 0338 97FD sbrc r25,7
294 033a A095 com r26
295 033c BA2F mov r27,r26
296 033e 2091 0000 lds r18,IntegralAccRoll
297 0342 3091 0000 lds r19,(IntegralAccRoll)+1
298 0346 4091 0000 lds r20,(IntegralAccRoll)+2
299 034a 5091 0000 lds r21,(IntegralAccRoll)+3
300 034e 280F add r18,r24
301 0350 391F adc r19,r25
302 0352 4A1F adc r20,r26
303 0354 5B1F adc r21,r27
304 0356 2093 0000 sts IntegralAccRoll,r18
305 035a 3093 0000 sts (IntegralAccRoll)+1,r19
306 035e 4093 0000 sts (IntegralAccRoll)+2,r20
307 0362 5093 0000 sts (IntegralAccRoll)+3,r21
308 0366 2091 0000 lds r18,AdWertAccNick
309 036a 3091 0000 lds r19,(AdWertAccNick)+1
310 036e 8091 0000 lds r24,NaviAccNick
311 0372 9091 0000 lds r25,(NaviAccNick)+1
312 0376 820F add r24,r18
313 0378 931F adc r25,r19
314 037a 9093 0000 sts (NaviAccNick)+1,r25
315 037e 8093 0000 sts NaviAccNick,r24
316 0382 2091 0000 lds r18,AdWertAccRoll
317 0386 3091 0000 lds r19,(AdWertAccRoll)+1
318 038a 8091 0000 lds r24,NaviAccRoll
319 038e 9091 0000 lds r25,(NaviAccRoll)+1
320 0392 820F add r24,r18
321 0394 931F adc r25,r19
322 0396 9093 0000 sts (NaviAccRoll)+1,r25
323 039a 8093 0000 sts NaviAccRoll,r24
324 039e 8091 0000 lds r24,NaviCntAcc
325 03a2 9091 0000 lds r25,(NaviCntAcc)+1
326 03a6 0196 adiw r24,1
327 03a8 9093 0000 sts (NaviCntAcc)+1,r25
328 03ac 8093 0000 sts NaviCntAcc,r24
329 03b0 2091 0000 lds r18,Aktuell_az
330 03b4 3091 0000 lds r19,(Aktuell_az)+1
331 03b8 8091 0000 lds r24,NeutralAccZ
332 03bc 9091 0000 lds r25,(NeutralAccZ)+1
333 03c0 281B sub r18,r24
334 03c2 390B sbc r19,r25
335 03c4 4427 clr r20
336 03c6 37FD sbrc r19,7
337 03c8 4095 com r20
338 03ca 542F mov r21,r20
339 03cc 8091 0000 lds r24,IntegralAccZ
340 03d0 9091 0000 lds r25,(IntegralAccZ)+1
341 03d4 A091 0000 lds r26,(IntegralAccZ)+2
342 03d8 B091 0000 lds r27,(IntegralAccZ)+3
343 03dc 820F add r24,r18
344 03de 931F adc r25,r19
345 03e0 A41F adc r26,r20
346 03e2 B51F adc r27,r21
347 03e4 8093 0000 sts IntegralAccZ,r24
348 03e8 9093 0000 sts (IntegralAccZ)+1,r25
349 03ec A093 0000 sts (IntegralAccZ)+2,r26
350 03f0 B093 0000 sts (IntegralAccZ)+3,r27
351 03f4 8FEC ldi r24,lo8(-49)
352 03f6 8093 7A00 sts 122,r24
353 03fa 1092 0000 sts AdReady,__zero_reg__
354 03fe 2091 0000 lds r18,Mess_IntegralRoll
355 0402 3091 0000 lds r19,(Mess_IntegralRoll)+1
356 0406 4091 0000 lds r20,(Mess_IntegralRoll)+2
357 040a 5091 0000 lds r21,(Mess_IntegralRoll)+3
358 040e 2A8B std Y+18,r18
359 0410 3B8B std Y+19,r19
360 0412 4C8B std Y+20,r20
361 0414 5D8B std Y+21,r21
362 0416 8091 0000 lds r24,Mess_IntegralNick
363 041a 9091 0000 lds r25,(Mess_IntegralNick)+1
364 041e A091 0000 lds r26,(Mess_IntegralNick)+2
365 0422 B091 0000 lds r27,(Mess_IntegralNick)+3
366 0426 8E87 std Y+14,r24
367 0428 9F87 std Y+15,r25
368 042a A88B std Y+16,r26
369 042c B98B std Y+17,r27
370 042e 2A8D ldd r18,Y+26
371 0430 3B8D ldd r19,Y+27
372 0432 4427 clr r20
373 0434 37FD sbrc r19,7
374 0436 4095 com r20
375 0438 542F mov r21,r20
376 043a 2A87 std Y+10,r18
377 043c 3B87 std Y+11,r19
378 043e 4C87 std Y+12,r20
379 0440 5D87 std Y+13,r21
380 0442 2090 0000 lds r2,Mess_Integral_Gier
381 0446 3090 0000 lds r3,(Mess_Integral_Gier)+1
382 044a 4090 0000 lds r4,(Mess_Integral_Gier)+2
383 044e 5090 0000 lds r5,(Mess_Integral_Gier)+3
384 0452 220E add r2,r18
385 0454 331E adc r3,r19
386 0456 441E adc r4,r20
387 0458 551E adc r5,r21
388 045a 2092 0000 sts Mess_Integral_Gier,r2
389 045e 3092 0000 sts (Mess_Integral_Gier)+1,r3
390 0462 4092 0000 sts (Mess_Integral_Gier)+2,r4
391 0466 5092 0000 sts (Mess_Integral_Gier)+3,r5
392 046a 6090 0000 lds r6,ErsatzKompass
393 046e 7090 0000 lds r7,(ErsatzKompass)+1
394 0472 8090 0000 lds r8,(ErsatzKompass)+2
395 0476 9090 0000 lds r9,(ErsatzKompass)+3
396 047a 620E add r6,r18
397 047c 731E adc r7,r19
398 047e 841E adc r8,r20
399 0480 951E adc r9,r21
400 0482 6092 0000 sts ErsatzKompass,r6
401 0486 7092 0000 sts (ErsatzKompass)+1,r7
402 048a 8092 0000 sts (ErsatzKompass)+2,r8
403 048e 9092 0000 sts (ErsatzKompass)+3,r9
404 0492 3091 0000 lds r19,Looping_Nick
405 0496 3987 std Y+9,r19
406 0498 3323 tst r19
407 049a 01F0 breq .+2
408 049c 00C0 rjmp .L9
409 049e 8091 0000 lds r24,Looping_Roll
410 04a2 8823 tst r24
411 04a4 01F0 breq .+2
412 04a6 00C0 rjmp .L9
413 04a8 8091 0000 lds r24,EE_Parameter+13
414 04ac 86FF sbrs r24,6
415 04ae 00C0 rjmp .L9
416 04b0 2A89 ldd r18,Y+18
417 04b2 3B89 ldd r19,Y+19
418 04b4 4C89 ldd r20,Y+20
419 04b6 5D89 ldd r21,Y+21
420 04b8 283B cpi r18,lo8(-93000)
421 04ba 64E9 ldi r22,hi8(-93000)
422 04bc 3607 cpc r19,r22
423 04be 6EEF ldi r22,hlo8(-93000)
424 04c0 4607 cpc r20,r22
425 04c2 6FEF ldi r22,hhi8(-93000)
426 04c4 5607 cpc r21,r22
427 04c6 04F4 brge .L13
428 04c8 28EB ldi r18,lo8(-93000)
429 04ca 34E9 ldi r19,hi8(-93000)
430 04cc 4EEF ldi r20,hlo8(-93000)
431 04ce 5FEF ldi r21,hhi8(-93000)
432 .L13:
433 04d0 2983 std Y+1,r18
434 04d2 3A83 std Y+2,r19
435 04d4 4B83 std Y+3,r20
436 04d6 5C83 std Y+4,r21
437 04d8 2954 subi r18,lo8(93001)
438 04da 3B46 sbci r19,hi8(93001)
439 04dc 4140 sbci r20,hlo8(93001)
440 04de 5040 sbci r21,hhi8(93001)
441 04e0 04F0 brlt .L14
442 04e2 28E4 ldi r18,lo8(93000)
443 04e4 3BE6 ldi r19,hi8(93000)
444 04e6 41E0 ldi r20,hlo8(93000)
445 04e8 50E0 ldi r21,hhi8(93000)
446 04ea 2983 std Y+1,r18
447 04ec 3A83 std Y+2,r19
448 04ee 4B83 std Y+3,r20
449 04f0 5C83 std Y+4,r21
450 .L14:
451 04f2 2E85 ldd r18,Y+14
452 04f4 3F85 ldd r19,Y+15
453 04f6 4889 ldd r20,Y+16
454 04f8 5989 ldd r21,Y+17
455 04fa 283B cpi r18,lo8(-93000)
456 04fc 64E9 ldi r22,hi8(-93000)
457 04fe 3607 cpc r19,r22
458 0500 6EEF ldi r22,hlo8(-93000)
459 0502 4607 cpc r20,r22
460 0504 6FEF ldi r22,hhi8(-93000)
461 0506 5607 cpc r21,r22
462 0508 04F4 brge .L15
463 050a 28EB ldi r18,lo8(-93000)
464 050c 34E9 ldi r19,hi8(-93000)
465 050e 4EEF ldi r20,hlo8(-93000)
466 0510 5FEF ldi r21,hhi8(-93000)
467 .L15:
468 0512 2D83 std Y+5,r18
469 0514 3E83 std Y+6,r19
470 0516 4F83 std Y+7,r20
471 0518 5887 std Y+8,r21
472 051a 2954 subi r18,lo8(93001)
473 051c 3B46 sbci r19,hi8(93001)
474 051e 4140 sbci r20,hlo8(93001)
475 0520 5040 sbci r21,hhi8(93001)
476 0522 04F0 brlt .L16
477 0524 28E4 ldi r18,lo8(93000)
478 0526 3BE6 ldi r19,hi8(93000)
479 0528 41E0 ldi r20,hlo8(93000)
480 052a 50E0 ldi r21,hhi8(93000)
481 052c 2D83 std Y+5,r18
482 052e 3E83 std Y+6,r19
483 0530 4F83 std Y+7,r20
484 0532 5887 std Y+8,r21
485 .L16:
486 0534 A090 0000 lds r10,Parameter_AchsKopplung2
487 0538 BB24 clr r11
488 053a CC24 clr r12
489 053c DD24 clr r13
490 053e 8E89 ldd r24,Y+22
491 0540 9F89 ldd r25,Y+23
492 0542 9C01 movw r18,r24
493 0544 4427 clr r20
494 0546 37FD sbrc r19,7
495 0548 4095 com r20
496 054a 542F mov r21,r20
497 054c 6D81 ldd r22,Y+5
498 054e 7E81 ldd r23,Y+6
499 0550 8F81 ldd r24,Y+7
500 0552 9885 ldd r25,Y+8
501 0554 0E94 0000 call __mulsi3
502 0558 20E0 ldi r18,lo8(2048)
503 055a 38E0 ldi r19,hi8(2048)
504 055c 40E0 ldi r20,hlo8(2048)
505 055e 50E0 ldi r21,hhi8(2048)
506 0560 0E94 0000 call __divmodsi4
507 0564 CA01 movw r24,r20
508 0566 B901 movw r22,r18
509 0568 A601 movw r20,r12
510 056a 9501 movw r18,r10
511 056c 0E94 0000 call __mulsi3
512 0570 20E0 ldi r18,lo8(4096)
513 0572 30E1 ldi r19,hi8(4096)
514 0574 40E0 ldi r20,hlo8(4096)
515 0576 50E0 ldi r21,hhi8(4096)
516 0578 0E94 0000 call __divmodsi4
517 057c 7901 movw r14,r18
518 057e 8A01 movw r16,r20
519 0580 2093 0000 sts tmpl3.2870,r18
520 0584 3093 0000 sts (tmpl3.2870)+1,r19
521 0588 4093 0000 sts (tmpl3.2870)+2,r20
522 058c 5093 0000 sts (tmpl3.2870)+3,r21
523 0590 A88D ldd r26,Y+24
524 0592 B98D ldd r27,Y+25
525 0594 9D01 movw r18,r26
526 0596 4427 clr r20
527 0598 37FD sbrc r19,7
528 059a 4095 com r20
529 059c 542F mov r21,r20
530 059e 6981 ldd r22,Y+1
531 05a0 7A81 ldd r23,Y+2
532 05a2 8B81 ldd r24,Y+3
533 05a4 9C81 ldd r25,Y+4
534 05a6 0E94 0000 call __mulsi3
535 05aa 20E0 ldi r18,lo8(2048)
536 05ac 38E0 ldi r19,hi8(2048)
537 05ae 40E0 ldi r20,hlo8(2048)
538 05b0 50E0 ldi r21,hhi8(2048)
539 05b2 0E94 0000 call __divmodsi4
540 05b6 CA01 movw r24,r20
541 05b8 B901 movw r22,r18
542 05ba A601 movw r20,r12
543 05bc 9501 movw r18,r10
544 05be 0E94 0000 call __mulsi3
545 05c2 20E0 ldi r18,lo8(4096)
546 05c4 30E1 ldi r19,hi8(4096)
547 05c6 40E0 ldi r20,hlo8(4096)
548 05c8 50E0 ldi r21,hhi8(4096)
549 05ca 0E94 0000 call __divmodsi4
550 05ce F092 0000 sts (KopplungsteilNickRoll)+1,r15
551 05d2 E092 0000 sts KopplungsteilNickRoll,r14
552 05d6 3093 0000 sts (KopplungsteilRollNick)+1,r19
553 05da 2093 0000 sts KopplungsteilRollNick,r18
554 05de 2E19 sub r18,r14
555 05e0 3F09 sbc r19,r15
556 05e2 400B sbc r20,r16
557 05e4 510B sbc r21,r17
558 05e6 7901 movw r14,r18
559 05e8 8A01 movw r16,r20
560 05ea 2093 0000 sts tmpl4.2871,r18
561 05ee 3093 0000 sts (tmpl4.2871)+1,r19
562 05f2 4093 0000 sts (tmpl4.2871)+2,r20
563 05f6 5093 0000 sts (tmpl4.2871)+3,r21
564 05fa 620E add r6,r18
565 05fc 731E adc r7,r19
566 05fe 841E adc r8,r20
567 0600 951E adc r9,r21
568 0602 6092 0000 sts ErsatzKompass,r6
569 0606 7092 0000 sts (ErsatzKompass)+1,r7
570 060a 8092 0000 sts (ErsatzKompass)+2,r8
571 060e 9092 0000 sts (ErsatzKompass)+3,r9
572 0612 8091 0000 lds r24,Parameter_CouplingYawCorrection
573 0616 8823 tst r24
574 0618 01F4 brne .L17
575 061a CA01 movw r24,r20
576 061c B901 movw r22,r18
577 061e 22E0 ldi r18,lo8(2)
578 0620 30E0 ldi r19,hi8(2)
579 0622 40E0 ldi r20,hlo8(2)
580 0624 50E0 ldi r21,hhi8(2)
581 0626 0E94 0000 call __divmodsi4
582 062a 221A sub r2,r18
583 062c 330A sbc r3,r19
584 062e 440A sbc r4,r20
585 0630 550A sbc r5,r21
586 0632 2092 0000 sts Mess_Integral_Gier,r2
587 0636 3092 0000 sts (Mess_Integral_Gier)+1,r3
588 063a 4092 0000 sts (Mess_Integral_Gier)+2,r4
589 063e 5092 0000 sts (Mess_Integral_Gier)+3,r5
590 .L17:
591 0642 AA84 ldd r10,Y+10
592 0644 BB84 ldd r11,Y+11
593 0646 CC84 ldd r12,Y+12
594 0648 DD84 ldd r13,Y+13
595 064a AE0C add r10,r14
596 064c BF1C adc r11,r15
597 064e C01E adc r12,r16
598 0650 D11E adc r13,r17
599 0652 E090 0000 lds r14,Parameter_AchsKopplung1
600 0656 FF24 clr r15
601 0658 00E0 ldi r16,lo8(0)
602 065a 10E0 ldi r17,hi8(0)
603 065c C601 movw r24,r12
604 065e B501 movw r22,r10
605 0660 2D81 ldd r18,Y+5
606 0662 3E81 ldd r19,Y+6
607 0664 4F81 ldd r20,Y+7
608 0666 5885 ldd r21,Y+8
609 0668 0E94 0000 call __mulsi3
610 066c 20E0 ldi r18,lo8(2048)
611 066e 38E0 ldi r19,hi8(2048)
612 0670 40E0 ldi r20,hlo8(2048)
613 0672 50E0 ldi r21,hhi8(2048)
614 0674 0E94 0000 call __divmodsi4
615 0678 CA01 movw r24,r20
616 067a B901 movw r22,r18
617 067c A801 movw r20,r16
618 067e 9701 movw r18,r14
619 0680 0E94 0000 call __mulsi3
620 0684 20E0 ldi r18,lo8(4096)
621 0686 30E1 ldi r19,hi8(4096)
622 0688 40E0 ldi r20,hlo8(4096)
623 068a 50E0 ldi r21,hhi8(4096)
624 068c 0E94 0000 call __divmodsi4
625 0690 3901 movw r6,r18
626 0692 4A01 movw r8,r20
627 0694 2093 0000 sts tmpl.2868,r18
628 0698 3093 0000 sts (tmpl.2868)+1,r19
629 069c 4093 0000 sts (tmpl.2868)+2,r20
630 06a0 5093 0000 sts (tmpl.2868)+3,r21
631 06a4 C601 movw r24,r12
632 06a6 B501 movw r22,r10
633 06a8 2981 ldd r18,Y+1
634 06aa 3A81 ldd r19,Y+2
635 06ac 4B81 ldd r20,Y+3
636 06ae 5C81 ldd r21,Y+4
637 06b0 0E94 0000 call __mulsi3
638 06b4 20E0 ldi r18,lo8(2048)
639 06b6 38E0 ldi r19,hi8(2048)
640 06b8 40E0 ldi r20,hlo8(2048)
641 06ba 50E0 ldi r21,hhi8(2048)
642 06bc 0E94 0000 call __divmodsi4
643 06c0 CA01 movw r24,r20
644 06c2 B901 movw r22,r18
645 06c4 A801 movw r20,r16
646 06c6 9701 movw r18,r14
647 06c8 0E94 0000 call __mulsi3
648 06cc 20E0 ldi r18,lo8(4096)
649 06ce 30E1 ldi r19,hi8(4096)
650 06d0 40E0 ldi r20,hlo8(4096)
651 06d2 50E0 ldi r21,hhi8(4096)
652 06d4 0E94 0000 call __divmodsi4
653 06d8 7901 movw r14,r18
654 06da 8A01 movw r16,r20
655 06dc 2093 0000 sts tmpl2.2869,r18
656 06e0 3093 0000 sts (tmpl2.2869)+1,r19
657 06e4 4093 0000 sts (tmpl2.2869)+2,r20
658 06e8 5093 0000 sts (tmpl2.2869)+3,r21
659 06ec 8A8D ldd r24,Y+26
660 06ee 9B8D ldd r25,Y+27
661 06f0 97FF sbrs r25,7
662 06f2 00C0 rjmp .L20
663 06f4 9095 com r25
664 06f6 8195 neg r24
665 06f8 9F4F sbci r25,lo8(-1)
666 .L20:
667 06fa 8134 cpi r24,65
668 06fc 9105 cpc r25,__zero_reg__
669 06fe 04F0 brlt .L19
670 0700 A401 movw r20,r8
671 0702 9301 movw r18,r6
672 0704 97FE sbrs r9,7
673 0706 00C0 rjmp .L23
674 0708 5095 com r21
675 070a 4095 com r20
676 070c 3095 com r19
677 070e 2195 neg r18
678 0710 3F4F sbci r19,lo8(-1)
679 0712 4F4F sbci r20,lo8(-1)
680 0714 5F4F sbci r21,lo8(-1)
681 .L23:
682 0716 2138 cpi r18,lo8(129)
683 0718 3105 cpc r19,__zero_reg__
684 071a 4105 cpc r20,__zero_reg__
685 071c 5105 cpc r21,__zero_reg__
686 071e 04F4 brge .L22
687 0720 A801 movw r20,r16
688 0722 9701 movw r18,r14
689 0724 17FF sbrs r17,7
690 0726 00C0 rjmp .L25
691 0728 5095 com r21
692 072a 4095 com r20
693 072c 3095 com r19
694 072e 2195 neg r18
695 0730 3F4F sbci r19,lo8(-1)
696 0732 4F4F sbci r20,lo8(-1)
697 0734 5F4F sbci r21,lo8(-1)
698 .L25:
699 0736 2138 cpi r18,lo8(129)
700 0738 3105 cpc r19,__zero_reg__
701 073a 4105 cpc r20,__zero_reg__
702 073c 5105 cpc r21,__zero_reg__
703 073e 04F0 brlt .L19
704 .L22:
705 0740 81E0 ldi r24,lo8(1)
706 0742 8093 0000 sts TrichterFlug,r24
707 0746 00C0 rjmp .L19
708 .L9:
709 0748 1092 0000 sts (KopplungsteilRollNick)+1,__zero_reg__
710 074c 1092 0000 sts KopplungsteilRollNick,__zero_reg__
711 0750 1092 0000 sts (KopplungsteilNickRoll)+1,__zero_reg__
712 0754 1092 0000 sts KopplungsteilNickRoll,__zero_reg__
713 0758 1092 0000 sts tmpl2.2869,__zero_reg__
714 075c 1092 0000 sts (tmpl2.2869)+1,__zero_reg__
715 0760 1092 0000 sts (tmpl2.2869)+2,__zero_reg__
716 0764 1092 0000 sts (tmpl2.2869)+3,__zero_reg__
717 0768 1092 0000 sts tmpl.2868,__zero_reg__
718 076c 1092 0000 sts (tmpl.2868)+1,__zero_reg__
719 0770 1092 0000 sts (tmpl.2868)+2,__zero_reg__
720 0774 1092 0000 sts (tmpl.2868)+3,__zero_reg__
721 .L19:
722 0778 E090 0000 lds r14,tmpl.2868
723 077c F090 0000 lds r15,(tmpl.2868)+1
724 0780 0091 0000 lds r16,(tmpl.2868)+2
725 0784 1091 0000 lds r17,(tmpl.2868)+3
726 0788 A090 0000 lds r10,tmpl2.2869
727 078c B090 0000 lds r11,(tmpl2.2869)+1
728 0790 C090 0000 lds r12,(tmpl2.2869)+2
729 0794 D090 0000 lds r13,(tmpl2.2869)+3
730 0798 C601 movw r24,r12
731 079a B501 movw r22,r10
732 079c 24E6 ldi r18,lo8(100)
733 079e 30E0 ldi r19,hi8(100)
734 07a0 40E0 ldi r20,hlo8(100)
735 07a2 50E0 ldi r21,hhi8(100)
736 07a4 0E94 0000 call __divmodsi4
737 07a8 4701 movw r8,r14
738 07aa 821A sub r8,r18
739 07ac 930A sbc r9,r19
740 07ae 9092 0000 sts (TrimRoll)+1,r9
741 07b2 8092 0000 sts TrimRoll,r8
742 07b6 C801 movw r24,r16
743 07b8 B701 movw r22,r14
744 07ba 24E6 ldi r18,lo8(100)
745 07bc 30E0 ldi r19,hi8(100)
746 07be 40E0 ldi r20,hlo8(100)
747 07c0 50E0 ldi r21,hhi8(100)
748 07c2 0E94 0000 call __divmodsi4
749 07c6 3901 movw r6,r18
750 07c8 6A18 sub r6,r10
751 07ca 7B08 sbc r7,r11
752 07cc 7092 0000 sts (TrimNick)+1,r7
753 07d0 6092 0000 sts TrimNick,r6
754 07d4 E090 0000 lds r14,ErsatzKompass
755 07d8 F090 0000 lds r15,(ErsatzKompass)+1
756 07dc 0091 0000 lds r16,(ErsatzKompass)+2
757 07e0 1091 0000 lds r17,(ErsatzKompass)+3
758 07e4 6091 0000 lds r22,GIER_GRAD_FAKTOR
759 07e8 7091 0000 lds r23,(GIER_GRAD_FAKTOR)+1
760 07ec 8091 0000 lds r24,(GIER_GRAD_FAKTOR)+2
761 07f0 9091 0000 lds r25,(GIER_GRAD_FAKTOR)+3
762 07f4 28E6 ldi r18,lo8(360)
763 07f6 31E0 ldi r19,hi8(360)
764 07f8 40E0 ldi r20,hlo8(360)
765 07fa 50E0 ldi r21,hhi8(360)
766 07fc 0E94 0000 call __mulsi3
767 0800 E616 cp r14,r22
768 0802 F706 cpc r15,r23
769 0804 0807 cpc r16,r24
770 0806 1907 cpc r17,r25
771 0808 04F0 brlt .L26
772 080a E61A sub r14,r22
773 080c F70A sbc r15,r23
774 080e 080B sbc r16,r24
775 0810 190B sbc r17,r25
776 0812 E092 0000 sts ErsatzKompass,r14
777 0816 F092 0000 sts (ErsatzKompass)+1,r15
778 081a 0093 0000 sts (ErsatzKompass)+2,r16
779 081e 1093 0000 sts (ErsatzKompass)+3,r17
780 .L26:
781 0822 2091 0000 lds r18,ErsatzKompass
782 0826 3091 0000 lds r19,(ErsatzKompass)+1
783 082a 4091 0000 lds r20,(ErsatzKompass)+2
784 082e 5091 0000 lds r21,(ErsatzKompass)+3
785 0832 57FF sbrs r21,7
786 0834 00C0 rjmp .L28
787 0836 260F add r18,r22
788 0838 371F adc r19,r23
789 083a 481F adc r20,r24
790 083c 591F adc r21,r25
791 083e 2093 0000 sts ErsatzKompass,r18
792 0842 3093 0000 sts (ErsatzKompass)+1,r19
793 0846 4093 0000 sts (ErsatzKompass)+2,r20
794 084a 5093 0000 sts (ErsatzKompass)+3,r21
795 .L28:
796 084e 2E89 ldd r18,Y+22
797 0850 3F89 ldd r19,Y+23
798 0852 280D add r18,r8
799 0854 391D adc r19,r9
800 0856 7901 movw r14,r18
801 0858 0027 clr r16
802 085a F7FC sbrc r15,7
803 085c 0095 com r16
804 085e 102F mov r17,r16
805 0860 8091 0000 lds r24,Mess_IntegralRoll2
806 0864 9091 0000 lds r25,(Mess_IntegralRoll2)+1
807 0868 A091 0000 lds r26,(Mess_IntegralRoll2)+2
808 086c B091 0000 lds r27,(Mess_IntegralRoll2)+3
809 0870 8E0D add r24,r14
810 0872 9F1D adc r25,r15
811 0874 A01F adc r26,r16
812 0876 B11F adc r27,r17
813 0878 8093 0000 sts Mess_IntegralRoll2,r24
814 087c 9093 0000 sts (Mess_IntegralRoll2)+1,r25
815 0880 A093 0000 sts (Mess_IntegralRoll2)+2,r26
816 0884 B093 0000 sts (Mess_IntegralRoll2)+3,r27
817 0888 8091 0000 lds r24,LageKorrekturRoll
818 088c 9091 0000 lds r25,(LageKorrekturRoll)+1
819 0890 281B sub r18,r24
820 0892 390B sbc r19,r25
821 0894 4427 clr r20
822 0896 37FD sbrc r19,7
823 0898 4095 com r20
824 089a 542F mov r21,r20
825 089c 8A89 ldd r24,Y+18
826 089e 9B89 ldd r25,Y+19
827 08a0 AC89 ldd r26,Y+20
828 08a2 BD89 ldd r27,Y+21
829 08a4 280F add r18,r24
830 08a6 391F adc r19,r25
831 08a8 4A1F adc r20,r26
832 08aa 5B1F adc r21,r27
833 08ac 2093 0000 sts Mess_IntegralRoll,r18
834 08b0 3093 0000 sts (Mess_IntegralRoll)+1,r19
835 08b4 4093 0000 sts (Mess_IntegralRoll)+2,r20
836 08b8 5093 0000 sts (Mess_IntegralRoll)+3,r21
837 08bc E090 0000 lds r14,Umschlag180Roll
838 08c0 F090 0000 lds r15,(Umschlag180Roll)+1
839 08c4 0091 0000 lds r16,(Umschlag180Roll)+2
840 08c8 1091 0000 lds r17,(Umschlag180Roll)+3
841 08cc E216 cp r14,r18
842 08ce F306 cpc r15,r19
843 08d0 0407 cpc r16,r20
844 08d2 1507 cpc r17,r21
845 08d4 04F4 brge .L30
846 08d6 88EA ldi r24,lo8(25000)
847 08d8 91E6 ldi r25,hi8(25000)
848 08da A0E0 ldi r26,hlo8(25000)
849 08dc B0E0 ldi r27,hhi8(25000)
850 08de 8E19 sub r24,r14
851 08e0 9F09 sbc r25,r15
852 08e2 A00B sbc r26,r16
853 08e4 B10B sbc r27,r17
854 08e6 8093 0000 sts Mess_IntegralRoll,r24
855 08ea 9093 0000 sts (Mess_IntegralRoll)+1,r25
856 08ee A093 0000 sts (Mess_IntegralRoll)+2,r26
857 08f2 B093 0000 sts (Mess_IntegralRoll)+3,r27
858 08f6 8093 0000 sts Mess_IntegralRoll2,r24
859 08fa 9093 0000 sts (Mess_IntegralRoll2)+1,r25
860 08fe A093 0000 sts (Mess_IntegralRoll2)+2,r26
861 0902 B093 0000 sts (Mess_IntegralRoll2)+3,r27
862 .L30:
863 0906 2227 clr r18
864 0908 3327 clr r19
865 090a A901 movw r20,r18
866 090c 2E19 sub r18,r14
867 090e 3F09 sbc r19,r15
868 0910 400B sbc r20,r16
869 0912 510B sbc r21,r17
870 0914 8091 0000 lds r24,Mess_IntegralRoll
871 0918 9091 0000 lds r25,(Mess_IntegralRoll)+1
872 091c A091 0000 lds r26,(Mess_IntegralRoll)+2
873 0920 B091 0000 lds r27,(Mess_IntegralRoll)+3
874 0924 8217 cp r24,r18
875 0926 9307 cpc r25,r19
876 0928 A407 cpc r26,r20
877 092a B507 cpc r27,r21
878 092c 04F4 brge .L32
879 092e D801 movw r26,r16
880 0930 C701 movw r24,r14
881 0932 885A subi r24,lo8(-(-25000))
882 0934 9146 sbci r25,hi8(-(-25000))
883 0936 A040 sbci r26,hlo8(-(-25000))
884 0938 B040 sbci r27,hhi8(-(-25000))
885 093a 8093 0000 sts Mess_IntegralRoll,r24
886 093e 9093 0000 sts (Mess_IntegralRoll)+1,r25
887 0942 A093 0000 sts (Mess_IntegralRoll)+2,r26
888 0946 B093 0000 sts (Mess_IntegralRoll)+3,r27
889 094a 8093 0000 sts Mess_IntegralRoll2,r24
890 094e 9093 0000 sts (Mess_IntegralRoll2)+1,r25
891 0952 A093 0000 sts (Mess_IntegralRoll2)+2,r26
892 0956 B093 0000 sts (Mess_IntegralRoll2)+3,r27
893 .L32:
894 095a 288D ldd r18,Y+24
895 095c 398D ldd r19,Y+25
896 095e 260D add r18,r6
897 0960 371D adc r19,r7
898 0962 7901 movw r14,r18
899 0964 0027 clr r16
900 0966 F7FC sbrc r15,7
901 0968 0095 com r16
902 096a 102F mov r17,r16
903 096c 8091 0000 lds r24,Mess_IntegralNick2
904 0970 9091 0000 lds r25,(Mess_IntegralNick2)+1
905 0974 A091 0000 lds r26,(Mess_IntegralNick2)+2
906 0978 B091 0000 lds r27,(Mess_IntegralNick2)+3
907 097c 8E0D add r24,r14
908 097e 9F1D adc r25,r15
909 0980 A01F adc r26,r16
910 0982 B11F adc r27,r17
911 0984 8093 0000 sts Mess_IntegralNick2,r24
912 0988 9093 0000 sts (Mess_IntegralNick2)+1,r25
913 098c A093 0000 sts (Mess_IntegralNick2)+2,r26
914 0990 B093 0000 sts (Mess_IntegralNick2)+3,r27
915 0994 8091 0000 lds r24,LageKorrekturNick
916 0998 9091 0000 lds r25,(LageKorrekturNick)+1
917 099c 281B sub r18,r24
918 099e 390B sbc r19,r25
919 09a0 4427 clr r20
920 09a2 37FD sbrc r19,7
921 09a4 4095 com r20
922 09a6 542F mov r21,r20
923 09a8 8E85 ldd r24,Y+14
924 09aa 9F85 ldd r25,Y+15
925 09ac A889 ldd r26,Y+16
926 09ae B989 ldd r27,Y+17
927 09b0 280F add r18,r24
928 09b2 391F adc r19,r25
929 09b4 4A1F adc r20,r26
930 09b6 5B1F adc r21,r27
931 09b8 2093 0000 sts Mess_IntegralNick,r18
932 09bc 3093 0000 sts (Mess_IntegralNick)+1,r19
933 09c0 4093 0000 sts (Mess_IntegralNick)+2,r20
934 09c4 5093 0000 sts (Mess_IntegralNick)+3,r21
935 09c8 E090 0000 lds r14,Umschlag180Nick
936 09cc F090 0000 lds r15,(Umschlag180Nick)+1
937 09d0 0091 0000 lds r16,(Umschlag180Nick)+2
938 09d4 1091 0000 lds r17,(Umschlag180Nick)+3
939 09d8 E216 cp r14,r18
940 09da F306 cpc r15,r19
941 09dc 0407 cpc r16,r20
942 09de 1507 cpc r17,r21
943 09e0 04F4 brge .L34
944 09e2 88EA ldi r24,lo8(25000)
945 09e4 91E6 ldi r25,hi8(25000)
946 09e6 A0E0 ldi r26,hlo8(25000)
947 09e8 B0E0 ldi r27,hhi8(25000)
948 09ea 8E19 sub r24,r14
949 09ec 9F09 sbc r25,r15
950 09ee A00B sbc r26,r16
951 09f0 B10B sbc r27,r17
952 09f2 8093 0000 sts Mess_IntegralNick,r24
953 09f6 9093 0000 sts (Mess_IntegralNick)+1,r25
954 09fa A093 0000 sts (Mess_IntegralNick)+2,r26
955 09fe B093 0000 sts (Mess_IntegralNick)+3,r27
956 0a02 8093 0000 sts Mess_IntegralNick2,r24
957 0a06 9093 0000 sts (Mess_IntegralNick2)+1,r25
958 0a0a A093 0000 sts (Mess_IntegralNick2)+2,r26
959 0a0e B093 0000 sts (Mess_IntegralNick2)+3,r27
960 .L34:
961 0a12 2227 clr r18
962 0a14 3327 clr r19
963 0a16 A901 movw r20,r18
964 0a18 2E19 sub r18,r14
965 0a1a 3F09 sbc r19,r15
966 0a1c 400B sbc r20,r16
967 0a1e 510B sbc r21,r17
968 0a20 8091 0000 lds r24,Mess_IntegralNick
969 0a24 9091 0000 lds r25,(Mess_IntegralNick)+1
970 0a28 A091 0000 lds r26,(Mess_IntegralNick)+2
971 0a2c B091 0000 lds r27,(Mess_IntegralNick)+3
972 0a30 8217 cp r24,r18
973 0a32 9307 cpc r25,r19
974 0a34 A407 cpc r26,r20
975 0a36 B507 cpc r27,r21
976 0a38 04F4 brge .L36
977 0a3a D801 movw r26,r16
978 0a3c C701 movw r24,r14
979 0a3e 885A subi r24,lo8(-(-25000))
980 0a40 9146 sbci r25,hi8(-(-25000))
981 0a42 A040 sbci r26,hlo8(-(-25000))
982 0a44 B040 sbci r27,hhi8(-(-25000))
983 0a46 8093 0000 sts Mess_IntegralNick,r24
984 0a4a 9093 0000 sts (Mess_IntegralNick)+1,r25
985 0a4e A093 0000 sts (Mess_IntegralNick)+2,r26
986 0a52 B093 0000 sts (Mess_IntegralNick)+3,r27
987 0a56 8093 0000 sts Mess_IntegralNick2,r24
988 0a5a 9093 0000 sts (Mess_IntegralNick2)+1,r25
989 0a5e A093 0000 sts (Mess_IntegralNick2)+2,r26
990 0a62 B093 0000 sts (Mess_IntegralNick2)+3,r27
991 .L36:
992 0a66 8091 0000 lds r24,Mess_Integral_Gier
993 0a6a 9091 0000 lds r25,(Mess_Integral_Gier)+1
994 0a6e A091 0000 lds r26,(Mess_Integral_Gier)+2
995 0a72 B091 0000 lds r27,(Mess_Integral_Gier)+3
996 0a76 8093 0000 sts Integral_Gier,r24
997 0a7a 9093 0000 sts (Integral_Gier)+1,r25
998 0a7e A093 0000 sts (Integral_Gier)+2,r26
999 0a82 B093 0000 sts (Integral_Gier)+3,r27
1000 0a86 8091 0000 lds r24,Mess_IntegralNick
1001 0a8a 9091 0000 lds r25,(Mess_IntegralNick)+1
1002 0a8e A091 0000 lds r26,(Mess_IntegralNick)+2
1003 0a92 B091 0000 lds r27,(Mess_IntegralNick)+3
1004 0a96 8093 0000 sts IntegralNick,r24
1005 0a9a 9093 0000 sts (IntegralNick)+1,r25
1006 0a9e A093 0000 sts (IntegralNick)+2,r26
1007 0aa2 B093 0000 sts (IntegralNick)+3,r27
1008 0aa6 8091 0000 lds r24,Mess_IntegralRoll
1009 0aaa 9091 0000 lds r25,(Mess_IntegralRoll)+1
1010 0aae A091 0000 lds r26,(Mess_IntegralRoll)+2
1011 0ab2 B091 0000 lds r27,(Mess_IntegralRoll)+3
1012 0ab6 8093 0000 sts IntegralRoll,r24
1013 0aba 9093 0000 sts (IntegralRoll)+1,r25
1014 0abe A093 0000 sts (IntegralRoll)+2,r26
1015 0ac2 B093 0000 sts (IntegralRoll)+3,r27
1016 0ac6 8091 0000 lds r24,Mess_IntegralNick2
1017 0aca 9091 0000 lds r25,(Mess_IntegralNick2)+1
1018 0ace A091 0000 lds r26,(Mess_IntegralNick2)+2
1019 0ad2 B091 0000 lds r27,(Mess_IntegralNick2)+3
1020 0ad6 8093 0000 sts IntegralNick2,r24
1021 0ada 9093 0000 sts (IntegralNick2)+1,r25
1022 0ade A093 0000 sts (IntegralNick2)+2,r26
1023 0ae2 B093 0000 sts (IntegralNick2)+3,r27
1024 0ae6 8091 0000 lds r24,Mess_IntegralRoll2
1025 0aea 9091 0000 lds r25,(Mess_IntegralRoll2)+1
1026 0aee A091 0000 lds r26,(Mess_IntegralRoll2)+2
1027 0af2 B091 0000 lds r27,(Mess_IntegralRoll2)+3
1028 0af6 8093 0000 sts IntegralRoll2,r24
1029 0afa 9093 0000 sts (IntegralRoll2)+1,r25
1030 0afe A093 0000 sts (IntegralRoll2)+2,r26
1031 0b02 B093 0000 sts (IntegralRoll2)+3,r27
1032 0b06 8091 0000 lds r24,HiResNick
1033 0b0a 9091 0000 lds r25,(HiResNick)+1
1034 0b0e 68E0 ldi r22,lo8(8)
1035 0b10 70E0 ldi r23,hi8(8)
1036 0b12 0E94 0000 call __divmodhi4
1037 0b16 7093 0000 sts (MesswertNick)+1,r23
1038 0b1a 6093 0000 sts MesswertNick,r22
1039 0b1e 8091 0000 lds r24,HiResRoll
1040 0b22 9091 0000 lds r25,(HiResRoll)+1
1041 0b26 68E0 ldi r22,lo8(8)
1042 0b28 70E0 ldi r23,hi8(8)
1043 0b2a 0E94 0000 call __divmodhi4
1044 0b2e 7093 0000 sts (MesswertRoll)+1,r23
1045 0b32 6093 0000 sts MesswertRoll,r22
1046 0b36 8091 0000 lds r24,AdWertNick
1047 0b3a 9091 0000 lds r25,(AdWertNick)+1
1048 0b3e 0F97 sbiw r24,15
1049 0b40 04F4 brge .L38
1050 0b42 88E1 ldi r24,lo8(-1000)
1051 0b44 9CEF ldi r25,hi8(-1000)
1052 0b46 9093 0000 sts (MesswertNick)+1,r25
1053 0b4a 8093 0000 sts MesswertNick,r24
1054 .L38:
1055 0b4e 8091 0000 lds r24,AdWertNick
1056 0b52 9091 0000 lds r25,(AdWertNick)+1
1057 0b56 0797 sbiw r24,7
1058 0b58 04F4 brge .L40
1059 0b5a 80E3 ldi r24,lo8(-2000)
1060 0b5c 98EF ldi r25,hi8(-2000)
1061 0b5e 9093 0000 sts (MesswertNick)+1,r25
1062 0b62 8093 0000 sts MesswertNick,r24
1063 .L40:
1064 0b66 2091 0000 lds r18,PlatinenVersion
1065 0b6a 2A30 cpi r18,lo8(10)
1066 0b6c 01F4 brne .L42
1067 0b6e 8091 0000 lds r24,AdWertNick
1068 0b72 9091 0000 lds r25,(AdWertNick)+1
1069 0b76 835F subi r24,lo8(1011)
1070 0b78 9340 sbci r25,hi8(1011)
1071 0b7a 04F0 brlt .L44
1072 0b7c 88EE ldi r24,lo8(1000)
1073 0b7e 93E0 ldi r25,hi8(1000)
1074 0b80 9093 0000 sts (MesswertNick)+1,r25
1075 0b84 8093 0000 sts MesswertNick,r24
1076 .L44:
1077 0b88 8091 0000 lds r24,AdWertNick
1078 0b8c 9091 0000 lds r25,(AdWertNick)+1
1079 0b90 8A5F subi r24,lo8(1018)
1080 0b92 9340 sbci r25,hi8(1018)
1081 0b94 04F0 brlt .L46
1082 0b96 00C0 rjmp .L96
1083 .L42:
1084 0b98 8091 0000 lds r24,AdWertNick
1085 0b9c 9091 0000 lds r25,(AdWertNick)+1
1086 0ba0 815D subi r24,lo8(2001)
1087 0ba2 9740 sbci r25,hi8(2001)
1088 0ba4 04F0 brlt .L48
1089 0ba6 88EE ldi r24,lo8(1000)
1090 0ba8 93E0 ldi r25,hi8(1000)
1091 0baa 9093 0000 sts (MesswertNick)+1,r25
1092 0bae 8093 0000 sts MesswertNick,r24
1093 .L48:
1094 0bb2 8091 0000 lds r24,AdWertNick
1095 0bb6 9091 0000 lds r25,(AdWertNick)+1
1096 0bba 805E subi r24,lo8(2016)
1097 0bbc 9740 sbci r25,hi8(2016)
1098 0bbe 04F0 brlt .L46
1099 .L96:
1100 0bc0 80ED ldi r24,lo8(2000)
1101 0bc2 97E0 ldi r25,hi8(2000)
1102 0bc4 9093 0000 sts (MesswertNick)+1,r25
1103 0bc8 8093 0000 sts MesswertNick,r24
1104 .L46:
1105 0bcc 8091 0000 lds r24,AdWertRoll
1106 0bd0 9091 0000 lds r25,(AdWertRoll)+1
1107 0bd4 0F97 sbiw r24,15
1108 0bd6 04F4 brge .L51
1109 0bd8 88E1 ldi r24,lo8(-1000)
1110 0bda 9CEF ldi r25,hi8(-1000)
1111 0bdc 9093 0000 sts (MesswertRoll)+1,r25
1112 0be0 8093 0000 sts MesswertRoll,r24
1113 .L51:
1114 0be4 8091 0000 lds r24,AdWertRoll
1115 0be8 9091 0000 lds r25,(AdWertRoll)+1
1116 0bec 0797 sbiw r24,7
1117 0bee 04F4 brge .L53
1118 0bf0 80E3 ldi r24,lo8(-2000)
1119 0bf2 98EF ldi r25,hi8(-2000)
1120 0bf4 9093 0000 sts (MesswertRoll)+1,r25
1121 0bf8 8093 0000 sts MesswertRoll,r24
1122 .L53:
1123 0bfc 2A30 cpi r18,lo8(10)
1124 0bfe 01F4 brne .L55
1125 0c00 8091 0000 lds r24,AdWertRoll
1126 0c04 9091 0000 lds r25,(AdWertRoll)+1
1127 0c08 835F subi r24,lo8(1011)
1128 0c0a 9340 sbci r25,hi8(1011)
1129 0c0c 04F0 brlt .L57
1130 0c0e 88EE ldi r24,lo8(1000)
1131 0c10 93E0 ldi r25,hi8(1000)
1132 0c12 9093 0000 sts (MesswertRoll)+1,r25
1133 0c16 8093 0000 sts MesswertRoll,r24
1134 .L57:
1135 0c1a 8091 0000 lds r24,AdWertRoll
1136 0c1e 9091 0000 lds r25,(AdWertRoll)+1
1137 0c22 8A5F subi r24,lo8(1018)
1138 0c24 9340 sbci r25,hi8(1018)
1139 0c26 04F0 brlt .L59
1140 0c28 00C0 rjmp .L97
1141 .L55:
1142 0c2a 8091 0000 lds r24,AdWertRoll
1143 0c2e 9091 0000 lds r25,(AdWertRoll)+1
1144 0c32 815D subi r24,lo8(2001)
1145 0c34 9740 sbci r25,hi8(2001)
1146 0c36 04F0 brlt .L61
1147 0c38 88EE ldi r24,lo8(1000)
1148 0c3a 93E0 ldi r25,hi8(1000)
1149 0c3c 9093 0000 sts (MesswertRoll)+1,r25
1150 0c40 8093 0000 sts MesswertRoll,r24
1151 .L61:
1152 0c44 8091 0000 lds r24,AdWertRoll
1153 0c48 9091 0000 lds r25,(AdWertRoll)+1
1154 0c4c 805E subi r24,lo8(2016)
1155 0c4e 9740 sbci r25,hi8(2016)
1156 0c50 04F0 brlt .L59
1157 .L97:
1158 0c52 80ED ldi r24,lo8(2000)
1159 0c54 97E0 ldi r25,hi8(2000)
1160 0c56 9093 0000 sts (MesswertRoll)+1,r25
1161 0c5a 8093 0000 sts MesswertRoll,r24
1162 .L59:
1163 0c5e 4091 0000 lds r20,Parameter_Gyro_D
1164 0c62 4423 tst r20
1165 0c64 01F4 brne .+2
1166 0c66 00C0 rjmp .L64
1167 0c68 E091 0000 lds r30,HiResNick
1168 0c6c F091 0000 lds r31,(HiResNick)+1
1169 0c70 2091 0000 lds r18,oldNick.2872
1170 0c74 3091 0000 lds r19,(oldNick.2872)+1
1171 0c78 E21B sub r30,r18
1172 0c7a F30B sbc r31,r19
1173 0c7c F093 0000 sts (d2Nick.2875)+1,r31
1174 0c80 E093 0000 sts d2Nick.2875,r30
1175 0c84 8091 0000 lds r24,HiResNick
1176 0c88 9091 0000 lds r25,(HiResNick)+1
1177 0c8c 820F add r24,r18
1178 0c8e 931F adc r25,r19
1179 0c90 62E0 ldi r22,lo8(2)
1180 0c92 70E0 ldi r23,hi8(2)
1181 0c94 0E94 0000 call __divmodhi4
1182 0c98 7093 0000 sts (oldNick.2872)+1,r23
1183 0c9c 6093 0000 sts oldNick.2872,r22
1184 0ca0 E138 cpi r30,129
1185 0ca2 F105 cpc r31,__zero_reg__
1186 0ca4 04F0 brlt .L66
1187 0ca6 80E8 ldi r24,lo8(128)
1188 0ca8 90E0 ldi r25,hi8(128)
1189 0caa 00C0 rjmp .L98
1190 .L66:
1191 0cac E058 subi r30,lo8(-128)
1192 0cae FF4F sbci r31,hi8(-128)
1193 0cb0 04F4 brge .L68
1194 0cb2 80E8 ldi r24,lo8(-128)
1195 0cb4 9FEF ldi r25,hi8(-128)
1196 .L98:
1197 0cb6 9093 0000 sts (d2Nick.2875)+1,r25
1198 0cba 8093 0000 sts d2Nick.2875,r24
1199 .L68:
1200 0cbe E091 0000 lds r30,HiResRoll
1201 0cc2 F091 0000 lds r31,(HiResRoll)+1
1202 0cc6 2091 0000 lds r18,oldRoll.2873
1203 0cca 3091 0000 lds r19,(oldRoll.2873)+1
1204 0cce E21B sub r30,r18
1205 0cd0 F30B sbc r31,r19
1206 0cd2 F093 0000 sts (d2Roll.2874)+1,r31
1207 0cd6 E093 0000 sts d2Roll.2874,r30
1208 0cda 8091 0000 lds r24,HiResRoll
1209 0cde 9091 0000 lds r25,(HiResRoll)+1
1210 0ce2 820F add r24,r18
1211 0ce4 931F adc r25,r19
1212 0ce6 62E0 ldi r22,lo8(2)
1213 0ce8 70E0 ldi r23,hi8(2)
1214 0cea 0E94 0000 call __divmodhi4
1215 0cee 7093 0000 sts (oldRoll.2873)+1,r23
1216 0cf2 6093 0000 sts oldRoll.2873,r22
1217 0cf6 E138 cpi r30,129
1218 0cf8 F105 cpc r31,__zero_reg__
1219 0cfa 04F0 brlt .L70
1220 0cfc 80E8 ldi r24,lo8(128)
1221 0cfe 90E0 ldi r25,hi8(128)
1222 0d00 00C0 rjmp .L99
1223 .L70:
1224 0d02 E058 subi r30,lo8(-128)
1225 0d04 FF4F sbci r31,hi8(-128)
1226 0d06 04F4 brge .L72
1227 0d08 80E8 ldi r24,lo8(-128)
1228 0d0a 9FEF ldi r25,hi8(-128)
1229 .L99:
1230 0d0c 9093 0000 sts (d2Roll.2874)+1,r25
1231 0d10 8093 0000 sts d2Roll.2874,r24
1232 .L72:
1233 0d14 242F mov r18,r20
1234 0d16 30E0 ldi r19,lo8(0)
1235 0d18 8091 0000 lds r24,d2Nick.2875
1236 0d1c 9091 0000 lds r25,(d2Nick.2875)+1
1237 0d20 289F mul r18,r24
1238 0d22 F001 movw r30,r0
1239 0d24 299F mul r18,r25
1240 0d26 F00D add r31,r0
1241 0d28 389F mul r19,r24
1242 0d2a F00D add r31,r0
1243 0d2c 1124 clr r1
1244 0d2e CF01 movw r24,r30
1245 0d30 60E1 ldi r22,lo8(16)
1246 0d32 70E0 ldi r23,hi8(16)
1247 0d34 0E94 0000 call __divmodhi4
1248 0d38 8091 0000 lds r24,MesswertNick
1249 0d3c 9091 0000 lds r25,(MesswertNick)+1
1250 0d40 860F add r24,r22
1251 0d42 971F adc r25,r23
1252 0d44 9093 0000 sts (MesswertNick)+1,r25
1253 0d48 8093 0000 sts MesswertNick,r24
1254 0d4c 8091 0000 lds r24,d2Roll.2874
1255 0d50 9091 0000 lds r25,(d2Roll.2874)+1
1256 0d54 D901 movw r26,r18
1257 0d56 A89F mul r26,r24
1258 0d58 9001 movw r18,r0
1259 0d5a A99F mul r26,r25
1260 0d5c 300D add r19,r0
1261 0d5e B89F mul r27,r24
1262 0d60 300D add r19,r0
1263 0d62 1124 clr r1
1264 0d64 C901 movw r24,r18
1265 0d66 60E1 ldi r22,lo8(16)
1266 0d68 70E0 ldi r23,hi8(16)
1267 0d6a 0E94 0000 call __divmodhi4
1268 0d6e 8091 0000 lds r24,MesswertRoll
1269 0d72 9091 0000 lds r25,(MesswertRoll)+1
1270 0d76 860F add r24,r22
1271 0d78 971F adc r25,r23
1272 0d7a 9093 0000 sts (MesswertRoll)+1,r25
1273 0d7e 8093 0000 sts MesswertRoll,r24
1274 0d82 8091 0000 lds r24,HiResNick
1275 0d86 9091 0000 lds r25,(HiResNick)+1
1276 0d8a E80F add r30,r24
1277 0d8c F91F adc r31,r25
1278 0d8e F093 0000 sts (HiResNick)+1,r31
1279 0d92 E093 0000 sts HiResNick,r30
1280 0d96 8091 0000 lds r24,HiResRoll
1281 0d9a 9091 0000 lds r25,(HiResRoll)+1
1282 0d9e 280F add r18,r24
1283 0da0 391F adc r19,r25
1284 0da2 3093 0000 sts (HiResRoll)+1,r19
1285 0da6 2093 0000 sts HiResRoll,r18
1286 .L64:
1287 0daa 6091 0000 lds r22,KopplungsteilNickRoll
1288 0dae 7091 0000 lds r23,(KopplungsteilNickRoll)+1
1289 0db2 EE89 ldd r30,Y+22
1290 0db4 FF89 ldd r31,Y+23
1291 0db6 1E16 cp __zero_reg__,r30
1292 0db8 1F06 cpc __zero_reg__,r31
1293 0dba 04F4 brge .L74
1294 0dbc CB01 movw r24,r22
1295 0dbe 77FF sbrs r23,7
1296 0dc0 00C0 rjmp .L76
1297 0dc2 8827 clr r24
1298 0dc4 9927 clr r25
1299 0dc6 861B sub r24,r22
1300 0dc8 970B sbc r25,r23
1301 .L76:
1302 0dca 9C01 movw r18,r24
1303 0dcc B901 movw r22,r18
1304 0dce 8827 clr r24
1305 0dd0 77FD sbrc r23,7
1306 0dd2 8095 com r24
1307 0dd4 982F mov r25,r24
1308 0dd6 2091 0000 lds r18,Parameter_CouplingYawCorrection
1309 0dda 30E0 ldi r19,lo8(0)
1310 0ddc 40E0 ldi r20,lo8(0)
1311 0dde 50E0 ldi r21,hi8(0)
1312 0de0 0E94 0000 call __mulsi3
1313 0de4 20E4 ldi r18,lo8(64)
1314 0de6 30E0 ldi r19,hi8(64)
1315 0de8 40E0 ldi r20,hlo8(64)
1316 0dea 50E0 ldi r21,hhi8(64)
1317 0dec 0E94 0000 call __divmodsi4
1318 0df0 820E add r8,r18
1319 0df2 931E adc r9,r19
1320 0df4 00C0 rjmp .L100
1321 .L74:
1322 0df6 77FF sbrs r23,7
1323 0df8 00C0 rjmp .L78
1324 0dfa 7095 com r23
1325 0dfc 6195 neg r22
1326 0dfe 7F4F sbci r23,lo8(-1)
1327 .L78:
1328 0e00 8827 clr r24
1329 0e02 77FD sbrc r23,7
1330 0e04 8095 com r24
1331 0e06 982F mov r25,r24
1332 0e08 2091 0000 lds r18,Parameter_CouplingYawCorrection
1333 0e0c 30E0 ldi r19,lo8(0)
1334 0e0e 40E0 ldi r20,lo8(0)
1335 0e10 50E0 ldi r21,hi8(0)
1336 0e12 0E94 0000 call __mulsi3
1337 0e16 20E4 ldi r18,lo8(64)
1338 0e18 30E0 ldi r19,hi8(64)
1339 0e1a 40E0 ldi r20,hlo8(64)
1340 0e1c 50E0 ldi r21,hhi8(64)
1341 0e1e 0E94 0000 call __divmodsi4
1342 0e22 821A sub r8,r18
1343 0e24 930A sbc r9,r19
1344 .L100:
1345 0e26 9092 0000 sts (TrimRoll)+1,r9
1346 0e2a 8092 0000 sts TrimRoll,r8
1347 0e2e 6091 0000 lds r22,KopplungsteilRollNick
1348 0e32 7091 0000 lds r23,(KopplungsteilRollNick)+1
1349 0e36 488D ldd r20,Y+24
1350 0e38 598D ldd r21,Y+25
1351 0e3a 1416 cp __zero_reg__,r20
1352 0e3c 1506 cpc __zero_reg__,r21
1353 0e3e 04F4 brge .L79
1354 0e40 CB01 movw r24,r22
1355 0e42 77FF sbrs r23,7
1356 0e44 00C0 rjmp .L81
1357 0e46 8827 clr r24
1358 0e48 9927 clr r25
1359 0e4a 861B sub r24,r22
1360 0e4c 970B sbc r25,r23
1361 .L81:
1362 0e4e DC01 movw r26,r24
1363 0e50 BD01 movw r22,r26
1364 0e52 8827 clr r24
1365 0e54 77FD sbrc r23,7
1366 0e56 8095 com r24
1367 0e58 982F mov r25,r24
1368 0e5a 2091 0000 lds r18,Parameter_CouplingYawCorrection
1369 0e5e 30E0 ldi r19,lo8(0)
1370 0e60 40E0 ldi r20,lo8(0)
1371 0e62 50E0 ldi r21,hi8(0)
1372 0e64 0E94 0000 call __mulsi3
1373 0e68 20E4 ldi r18,lo8(64)
1374 0e6a 30E0 ldi r19,hi8(64)
1375 0e6c 40E0 ldi r20,hlo8(64)
1376 0e6e 50E0 ldi r21,hhi8(64)
1377 0e70 0E94 0000 call __divmodsi4
1378 0e74 620E add r6,r18
1379 0e76 731E adc r7,r19
1380 0e78 00C0 rjmp .L101
1381 .L79:
1382 0e7a 77FF sbrs r23,7
1383 0e7c 00C0 rjmp .L83
1384 0e7e 7095 com r23
1385 0e80 6195 neg r22
1386 0e82 7F4F sbci r23,lo8(-1)
1387 .L83:
1388 0e84 8827 clr r24
1389 0e86 77FD sbrc r23,7
1390 0e88 8095 com r24
1391 0e8a 982F mov r25,r24
1392 0e8c 2091 0000 lds r18,Parameter_CouplingYawCorrection
1393 0e90 30E0 ldi r19,lo8(0)
1394 0e92 40E0 ldi r20,lo8(0)
1395 0e94 50E0 ldi r21,hi8(0)
1396 0e96 0E94 0000 call __mulsi3
1397 0e9a 20E4 ldi r18,lo8(64)
1398 0e9c 30E0 ldi r19,hi8(64)
1399 0e9e 40E0 ldi r20,hlo8(64)
1400 0ea0 50E0 ldi r21,hhi8(64)
1401 0ea2 0E94 0000 call __divmodsi4
1402 0ea6 621A sub r6,r18
1403 0ea8 730A sbc r7,r19
1404 .L101:
1405 0eaa 7092 0000 sts (TrimNick)+1,r7
1406 0eae 6092 0000 sts TrimNick,r6
1407 0eb2 8091 0000 lds r24,EE_Parameter+13
1408 0eb6 87FF sbrs r24,7
1409 0eb8 00C0 rjmp .L95
1410 0eba B985 ldd r27,Y+9
1411 0ebc BB23 tst r27
1412 0ebe 01F0 breq .+2
1413 0ec0 00C0 rjmp .L95
1414 0ec2 8091 0000 lds r24,Looping_Roll
1415 0ec6 8823 tst r24
1416 0ec8 01F0 breq .+2
1417 0eca 00C0 rjmp .L95
1418 0ecc E88D ldd r30,Y+24
1419 0ece F98D ldd r31,Y+25
1420 0ed0 21E0 ldi r18,hi8(257)
1421 0ed2 E130 cpi r30,lo8(257)
1422 0ed4 F207 cpc r31,r18
1423 0ed6 04F0 brlt .L88
1424 0ed8 8091 0000 lds r24,MesswertNick
1425 0edc 9091 0000 lds r25,(MesswertNick)+1
1426 0ee0 8050 subi r24,lo8(-(-256))
1427 0ee2 9140 sbci r25,hi8(-(-256))
1428 0ee4 8E0F add r24,r30
1429 0ee6 9F1F adc r25,r31
1430 0ee8 00C0 rjmp .L102
1431 .L88:
1432 0eea 488D ldd r20,Y+24
1433 0eec 598D ldd r21,Y+25
1434 0eee 6FEF ldi r22,hi8(-256)
1435 0ef0 4030 cpi r20,lo8(-256)
1436 0ef2 5607 cpc r21,r22
1437 0ef4 04F4 brge .L90
1438 0ef6 8091 0000 lds r24,MesswertNick
1439 0efa 9091 0000 lds r25,(MesswertNick)+1
1440 0efe 8050 subi r24,lo8(-(256))
1441 0f00 9F4F sbci r25,hi8(-(256))
1442 0f02 840F add r24,r20
1443 0f04 951F adc r25,r21
1444 .L102:
1445 0f06 9093 0000 sts (MesswertNick)+1,r25
1446 0f0a 8093 0000 sts MesswertNick,r24
1447 .L90:
1448 0f0e 8E89 ldd r24,Y+22
1449 0f10 9F89 ldd r25,Y+23
1450 0f12 8150 subi r24,lo8(257)
1451 0f14 9140 sbci r25,hi8(257)
1452 0f16 04F0 brlt .L92
1453 0f18 8091 0000 lds r24,MesswertRoll
1454 0f1c 9091 0000 lds r25,(MesswertRoll)+1
1455 0f20 8050 subi r24,lo8(-(-256))
1456 0f22 9140 sbci r25,hi8(-(-256))
1457 0f24 EE89 ldd r30,Y+22
1458 0f26 FF89 ldd r31,Y+23
1459 0f28 8E0F add r24,r30
1460 0f2a 9F1F adc r25,r31
1461 0f2c 00C0 rjmp .L103
1462 .L92:
1463 0f2e 2E89 ldd r18,Y+22
1464 0f30 3F89 ldd r19,Y+23
1465 0f32 4FEF ldi r20,hi8(-256)
1466 0f34 2030 cpi r18,lo8(-256)
1467 0f36 3407 cpc r19,r20
1468 0f38 04F4 brge .L95
1469 0f3a 8091 0000 lds r24,MesswertRoll
1470 0f3e 9091 0000 lds r25,(MesswertRoll)+1
1471 0f42 8050 subi r24,lo8(-(256))
1472 0f44 9F4F sbci r25,hi8(-(256))
1473 0f46 820F add r24,r18
1474 0f48 931F adc r25,r19
1475 .L103:
1476 0f4a 9093 0000 sts (MesswertRoll)+1,r25
1477 0f4e 8093 0000 sts MesswertRoll,r24
1478 .L95:
1479 /* epilogue: frame size=27 */
1480 0f52 E2E1 ldi r30,18
1481 0f54 C55E subi r28,-27
1482 0f56 0C94 0000 jmp __epilogue_restores__+0
1483 /* epilogue end (size=4) */
1484 /* function Mittelwert size 1733 (1723) */
1486 .global SendMotorData
1488 SendMotorData:
1489 /* prologue: frame size=0 */
1490 /* prologue end (size=0) */
1491 0f5a 8091 0000 lds r24,MotorenEin
1492 0f5e 8823 tst r24
1493 0f60 01F4 brne .L105
1494 0f62 8091 0000 lds r24,FC_StatusFlags
1495 0f66 8C7F andi r24,lo8(-4)
1496 0f68 8093 0000 sts FC_StatusFlags,r24
1497 0f6c A0E0 ldi r26,lo8(MotorTest)
1498 0f6e B0E0 ldi r27,hi8(MotorTest)
1499 0f70 E0E0 ldi r30,lo8(Motor+1)
1500 0f72 F0E0 ldi r31,hi8(Motor+1)
1501 .L107:
1502 0f74 8091 0000 lds r24,PC_MotortestActive
1503 0f78 8823 tst r24
1504 0f7a 01F4 brne .L108
1505 0f7c 1C92 st X,__zero_reg__
1506 .L108:
1507 0f7e 8D91 ld r24,X+
1508 0f80 8083 st Z,r24
1509 0f82 1182 std Z+1,__zero_reg__
1510 0f84 3896 adiw r30,8
1511 0f86 80E0 ldi r24,hi8(MotorTest+12)
1512 0f88 A030 cpi r26,lo8(MotorTest+12)
1513 0f8a B807 cpc r27,r24
1514 0f8c 01F4 brne .L107
1515 0f8e 8091 0000 lds r24,PC_MotortestActive
1516 0f92 8823 tst r24
1517 0f94 01F0 breq .L111
1518 0f96 8091 0000 lds r24,PC_MotortestActive
1519 0f9a 8150 subi r24,lo8(-(-1))
1520 0f9c 8093 0000 sts PC_MotortestActive,r24
1521 0fa0 00C0 rjmp .L111
1522 .L105:
1523 0fa2 8091 0000 lds r24,FC_StatusFlags
1524 0fa6 8160 ori r24,lo8(1)
1525 0fa8 8093 0000 sts FC_StatusFlags,r24
1526 .L111:
1527 0fac 8091 0000 lds r24,I2C_TransferActive
1528 0fb0 8823 tst r24
1529 0fb2 01F0 breq .L113
1530 0fb4 1092 0000 sts I2C_TransferActive,__zero_reg__
1531 0fb8 0895 ret
1532 .L113:
1533 0fba 1092 0000 sts motor_write,__zero_reg__
1534 0fbe 1092 0000 sts twi_state,__zero_reg__
1535 0fc2 8091 0000 lds r24,BLFlags
1536 0fc6 8E7F andi r24,lo8(-2)
1537 0fc8 8093 0000 sts BLFlags,r24
1538 0fcc 85EA ldi r24,lo8(-91)
1539 0fce 8093 BC00 sts 188,r24
1540 0fd2 0895 ret
1541 /* epilogue: frame size=0 */
1542 /* epilogue: noreturn */
1543 /* epilogue end (size=0) */
1544 /* function SendMotorData size 61 (61) */
1546 .global ParameterZuordnung
1548 ParameterZuordnung:
1549 /* prologue: frame size=0 */
1550 0fd4 0F93 push r16
1551 0fd6 1F93 push r17
1552 0fd8 CF93 push r28
1553 0fda DF93 push r29
1554 /* prologue end (size=4) */
1555 0fdc 00E0 ldi r16,lo8(EE_Parameter+5)
1556 0fde 10E0 ldi r17,hi8(EE_Parameter+5)
1557 0fe0 C0E0 ldi r28,lo8(Poti)
1558 0fe2 D0E0 ldi r29,hi8(Poti)
1559 .L120:
1560 0fe4 D801 movw r26,r16
1561 0fe6 EC91 ld r30,X
1562 0fe8 F0E0 ldi r31,lo8(0)
1563 0fea EE0F lsl r30
1564 0fec FF1F rol r31
1565 0fee E050 subi r30,lo8(-(PPM_in))
1566 0ff0 F040 sbci r31,hi8(-(PPM_in))
1567 0ff2 8081 ld r24,Z
1568 0ff4 9181 ldd r25,Z+1
1569 0ff6 8259 subi r24,lo8(-(110))
1570 0ff8 9F4F sbci r25,hi8(-(110))
1571 0ffa 97FF sbrs r25,7
1572 0ffc 00C0 rjmp .L121
1573 0ffe 80E0 ldi r24,lo8(0)
1574 1000 90E0 ldi r25,hi8(0)
1575 .L121:
1576 1002 FC01 movw r30,r24
1577 1004 8F3F cpi r24,255
1578 1006 9105 cpc r25,__zero_reg__
1579 1008 01F0 breq .L122
1580 100a 04F0 brlt .L122
1581 100c EFEF ldi r30,lo8(255)
1582 100e F0E0 ldi r31,hi8(255)
1583 .L122:
1584 1010 2881 ld r18,Y
1585 1012 822F mov r24,r18
1586 1014 90E0 ldi r25,lo8(0)
1587 1016 E817 cp r30,r24
1588 1018 F907 cpc r31,r25
1589 101a 01F0 breq .L123
1590 101c AF01 movw r20,r30
1591 101e 481B sub r20,r24
1592 1020 590B sbc r21,r25
1593 1022 CA01 movw r24,r20
1594 1024 64E0 ldi r22,lo8(4)
1595 1026 70E0 ldi r23,hi8(4)
1596 1028 0E94 0000 call __divmodhi4
1597 102c 260F add r18,r22
1598 102e 2883 st Y,r18
1599 1030 822F mov r24,r18
1600 1032 90E0 ldi r25,lo8(0)
1601 1034 E817 cp r30,r24
1602 1036 F907 cpc r31,r25
1603 1038 04F4 brge .L125
1604 103a 2150 subi r18,lo8(-(-1))
1605 103c 00C0 rjmp .L267
1606 .L125:
1607 103e 2F5F subi r18,lo8(-(1))
1608 .L267:
1609 1040 2883 st Y,r18
1610 .L123:
1611 1042 0F5F subi r16,lo8(-(1))
1612 1044 1F4F sbci r17,hi8(-(1))
1613 1046 2196 adiw r28,1
1614 1048 50E0 ldi r21,hi8(EE_Parameter+13)
1615 104a 0030 cpi r16,lo8(EE_Parameter+13)
1616 104c 1507 cpc r17,r21
1617 104e 01F4 brne .L120
1618 1050 8091 0000 lds r24,EE_Parameter+15
1619 1054 883F cpi r24,lo8(-8)
1620 1056 00F0 brlo .L268
1621 1058 EFEF ldi r30,lo8(255)
1622 105a F0E0 ldi r31,hi8(255)
1623 105c E81B sub r30,r24
1624 105e F109 sbc r31,__zero_reg__
1625 1060 E050 subi r30,lo8(-(Poti))
1626 1062 F040 sbci r31,hi8(-(Poti))
1627 1064 8081 ld r24,Z
1628 .L268:
1629 1066 8093 0000 sts Parameter_Luftdruck_D,r24
1630 106a 8091 0000 lds r24,Parameter_Luftdruck_D
1631 106e 8823 tst r24
1632 1070 01F4 brne .L131
1633 1072 1092 0000 sts Parameter_Luftdruck_D,__zero_reg__
1634 1076 00C0 rjmp .L133
1635 .L131:
1636 1078 8436 cpi r24,lo8(100)
1637 107a 00F0 brlo .L133
1638 107c 84E6 ldi r24,lo8(100)
1639 107e 8093 0000 sts Parameter_Luftdruck_D,r24
1640 .L133:
1641 1082 8091 0000 lds r24,EE_Parameter+17
1642 1086 883F cpi r24,lo8(-8)
1643 1088 00F0 brlo .L269
1644 108a EFEF ldi r30,lo8(255)
1645 108c F0E0 ldi r31,hi8(255)
1646 108e E81B sub r30,r24
1647 1090 F109 sbc r31,__zero_reg__
1648 1092 E050 subi r30,lo8(-(Poti))
1649 1094 F040 sbci r31,hi8(-(Poti))
1650 1096 8081 ld r24,Z
1651 .L269:
1652 1098 8093 0000 sts Parameter_Hoehe_P,r24
1653 109c 8091 0000 lds r24,Parameter_Hoehe_P
1654 10a0 8823 tst r24
1655 10a2 01F4 brne .L138
1656 10a4 1092 0000 sts Parameter_Hoehe_P,__zero_reg__
1657 10a8 00C0 rjmp .L140
1658 .L138:
1659 10aa 8436 cpi r24,lo8(100)
1660 10ac 00F0 brlo .L140
1661 10ae 84E6 ldi r24,lo8(100)
1662 10b0 8093 0000 sts Parameter_Hoehe_P,r24
1663 .L140:
1664 10b4 8091 0000 lds r24,EE_Parameter+30
1665 10b8 883F cpi r24,lo8(-8)
1666 10ba 00F0 brlo .L270
1667 10bc EFEF ldi r30,lo8(255)
1668 10be F0E0 ldi r31,hi8(255)
1669 10c0 E81B sub r30,r24
1670 10c2 F109 sbc r31,__zero_reg__
1671 10c4 E050 subi r30,lo8(-(Poti))
1672 10c6 F040 sbci r31,hi8(-(Poti))
1673 10c8 8081 ld r24,Z
1674 .L270:
1675 10ca 8093 0000 sts Parameter_Gyro_P,r24
1676 10ce 8091 0000 lds r24,Parameter_Gyro_P
1677 10d2 8B30 cpi r24,lo8(11)
1678 10d4 00F4 brsh .L145
1679 10d6 8AE0 ldi r24,lo8(10)
1680 10d8 00C0 rjmp .L271
1681 .L145:
1682 10da 8F3F cpi r24,lo8(-1)
1683 10dc 01F4 brne .L147
1684 .L271:
1685 10de 8093 0000 sts Parameter_Gyro_P,r24
1686 .L147:
1687 10e2 8091 0000 lds r24,EE_Parameter+75
1688 10e6 883F cpi r24,lo8(-8)
1689 10e8 00F0 brlo .L272
1690 10ea EFEF ldi r30,lo8(255)
1691 10ec F0E0 ldi r31,hi8(255)
1692 10ee E81B sub r30,r24
1693 10f0 F109 sbc r31,__zero_reg__
1694 10f2 E050 subi r30,lo8(-(Poti))
1695 10f4 F040 sbci r31,hi8(-(Poti))
1696 10f6 8081 ld r24,Z
1697 .L272:
1698 10f8 8093 0000 sts Parameter_J16Timing,r24
1699 10fc 8091 0000 lds r24,Parameter_J16Timing
1700 1100 8230 cpi r24,lo8(2)
1701 1102 00F4 brsh .L152
1702 1104 81E0 ldi r24,lo8(1)
1703 1106 00C0 rjmp .L273
1704 .L152:
1705 1108 8F3F cpi r24,lo8(-1)
1706 110a 01F4 brne .L154
1707 .L273:
1708 110c 8093 0000 sts Parameter_J16Timing,r24
1709 .L154:
1710 1110 8091 0000 lds r24,EE_Parameter+77
1711 1114 883F cpi r24,lo8(-8)
1712 1116 00F0 brlo .L274
1713 1118 EFEF ldi r30,lo8(255)
1714 111a F0E0 ldi r31,hi8(255)
1715 111c E81B sub r30,r24
1716 111e F109 sbc r31,__zero_reg__
1717 1120 E050 subi r30,lo8(-(Poti))
1718 1122 F040 sbci r31,hi8(-(Poti))
1719 1124 8081 ld r24,Z
1720 .L274:
1721 1126 8093 0000 sts Parameter_J17Timing,r24
1722 112a 8091 0000 lds r24,Parameter_J17Timing
1723 112e 8230 cpi r24,lo8(2)
1724 1130 00F4 brsh .L159
1725 1132 81E0 ldi r24,lo8(1)
1726 1134 00C0 rjmp .L275
1727 .L159:
1728 1136 8F3F cpi r24,lo8(-1)
1729 1138 01F4 brne .L161
1730 .L275:
1731 113a 8093 0000 sts Parameter_J17Timing,r24
1732 .L161:
1733 113e 8091 0000 lds r24,EE_Parameter+56
1734 1142 883F cpi r24,lo8(-8)
1735 1144 00F0 brlo .L276
1736 1146 EFEF ldi r30,lo8(255)
1737 1148 F0E0 ldi r31,hi8(255)
1738 114a E81B sub r30,r24
1739 114c F109 sbc r31,__zero_reg__
1740 114e E050 subi r30,lo8(-(Poti))
1741 1150 F040 sbci r31,hi8(-(Poti))
1742 1152 8081 ld r24,Z
1743 .L276:
1744 1154 8093 0000 sts Parameter_Servo3,r24
1745 1158 8091 0000 lds r24,EE_Parameter+57
1746 115c 883F cpi r24,lo8(-8)
1747 115e 00F0 brlo .L277
1748 1160 EFEF ldi r30,lo8(255)
1749 1162 F0E0 ldi r31,hi8(255)
1750 1164 E81B sub r30,r24
1751 1166 F109 sbc r31,__zero_reg__
1752 1168 E050 subi r30,lo8(-(Poti))
1753 116a F040 sbci r31,hi8(-(Poti))
1754 116c 8081 ld r24,Z
1755 .L277:
1756 116e 8093 0000 sts Parameter_Servo4,r24
1757 1172 8091 0000 lds r24,EE_Parameter+58
1758 1176 883F cpi r24,lo8(-8)
1759 1178 00F0 brlo .L278
1760 117a EFEF ldi r30,lo8(255)
1761 117c F0E0 ldi r31,hi8(255)
1762 117e E81B sub r30,r24
1763 1180 F109 sbc r31,__zero_reg__
1764 1182 E050 subi r30,lo8(-(Poti))
1765 1184 F040 sbci r31,hi8(-(Poti))
1766 1186 8081 ld r24,Z
1767 .L278:
1768 1188 8093 0000 sts Parameter_Servo5,r24
1769 118c 8091 0000 lds r24,EE_Parameter+16
1770 1190 883F cpi r24,lo8(-8)
1771 1192 00F0 brlo .L279
1772 1194 EFEF ldi r30,lo8(255)
1773 1196 F0E0 ldi r31,hi8(255)
1774 1198 E81B sub r30,r24
1775 119a F109 sbc r31,__zero_reg__
1776 119c E050 subi r30,lo8(-(Poti))
1777 119e F040 sbci r31,hi8(-(Poti))
1778 11a0 8081 ld r24,Z
1779 .L279:
1780 11a2 8093 0000 sts Parameter_MaxHoehe,r24
1781 11a6 8091 0000 lds r24,EE_Parameter+19
1782 11aa 883F cpi r24,lo8(-8)
1783 11ac 00F0 brlo .L280
1784 11ae EFEF ldi r30,lo8(255)
1785 11b0 F0E0 ldi r31,hi8(255)
1786 11b2 E81B sub r30,r24
1787 11b4 F109 sbc r31,__zero_reg__
1788 11b6 E050 subi r30,lo8(-(Poti))
1789 11b8 F040 sbci r31,hi8(-(Poti))
1790 11ba 8081 ld r24,Z
1791 .L280:
1792 11bc 8093 0000 sts Parameter_Hoehe_ACC_Wirkung,r24
1793 11c0 8091 0000 lds r24,EE_Parameter+21
1794 11c4 883F cpi r24,lo8(-8)
1795 11c6 00F0 brlo .L281
1796 11c8 EFEF ldi r30,lo8(255)
1797 11ca F0E0 ldi r31,hi8(255)
1798 11cc E81B sub r30,r24
1799 11ce F109 sbc r31,__zero_reg__
1800 11d0 E050 subi r30,lo8(-(Poti))
1801 11d2 F040 sbci r31,hi8(-(Poti))
1802 11d4 8081 ld r24,Z
1803 .L281:
1804 11d6 8093 0000 sts Parameter_Hoehe_GPS_Z,r24
1805 11da 8091 0000 lds r24,EE_Parameter+29
1806 11de 883F cpi r24,lo8(-8)
1807 11e0 00F0 brlo .L282
1808 11e2 EFEF ldi r30,lo8(255)
1809 11e4 F0E0 ldi r31,hi8(255)
1810 11e6 E81B sub r30,r24
1811 11e8 F109 sbc r31,__zero_reg__
1812 11ea E050 subi r30,lo8(-(Poti))
1813 11ec F040 sbci r31,hi8(-(Poti))
1814 11ee 8081 ld r24,Z
1815 .L282:
1816 11f0 8093 0000 sts Parameter_KompassWirkung,r24
1817 11f4 8091 0000 lds r24,EE_Parameter+31
1818 11f8 883F cpi r24,lo8(-8)
1819 11fa 00F0 brlo .L283
1820 11fc EFEF ldi r30,lo8(255)
1821 11fe F0E0 ldi r31,hi8(255)
1822 1200 E81B sub r30,r24
1823 1202 F109 sbc r31,__zero_reg__
1824 1204 E050 subi r30,lo8(-(Poti))
1825 1206 F040 sbci r31,hi8(-(Poti))
1826 1208 8081 ld r24,Z
1827 .L283:
1828 120a 8093 0000 sts Parameter_Gyro_I,r24
1829 120e 8091 0000 lds r24,EE_Parameter+32
1830 1212 883F cpi r24,lo8(-8)
1831 1214 00F0 brlo .L284
1832 1216 EFEF ldi r30,lo8(255)
1833 1218 F0E0 ldi r31,hi8(255)
1834 121a E81B sub r30,r24
1835 121c F109 sbc r31,__zero_reg__
1836 121e E050 subi r30,lo8(-(Poti))
1837 1220 F040 sbci r31,hi8(-(Poti))
1838 1222 8081 ld r24,Z
1839 .L284:
1840 1224 8093 0000 sts Parameter_Gyro_D,r24
1841 1228 8091 0000 lds r24,EE_Parameter+33
1842 122c 883F cpi r24,lo8(-8)
1843 122e 00F0 brlo .L285
1844 1230 EFEF ldi r30,lo8(255)
1845 1232 F0E0 ldi r31,hi8(255)
1846 1234 E81B sub r30,r24
1847 1236 F109 sbc r31,__zero_reg__
1848 1238 E050 subi r30,lo8(-(Poti))
1849 123a F040 sbci r31,hi8(-(Poti))
1850 123c 8081 ld r24,Z
1851 .L285:
1852 123e 8093 0000 sts Parameter_Gyro_Gier_P,r24
1853 1242 8091 0000 lds r24,EE_Parameter+34
1854 1246 883F cpi r24,lo8(-8)
1855 1248 00F0 brlo .L286
1856 124a EFEF ldi r30,lo8(255)
1857 124c F0E0 ldi r31,hi8(255)
1858 124e E81B sub r30,r24
1859 1250 F109 sbc r31,__zero_reg__
1860 1252 E050 subi r30,lo8(-(Poti))
1861 1254 F040 sbci r31,hi8(-(Poti))
1862 1256 8081 ld r24,Z
1863 .L286:
1864 1258 8093 0000 sts Parameter_Gyro_Gier_I,r24
1865 125c 8091 0000 lds r24,EE_Parameter+40
1866 1260 883F cpi r24,lo8(-8)
1867 1262 00F0 brlo .L287
1868 1264 EFEF ldi r30,lo8(255)
1869 1266 F0E0 ldi r31,hi8(255)
1870 1268 E81B sub r30,r24
1871 126a F109 sbc r31,__zero_reg__
1872 126c E050 subi r30,lo8(-(Poti))
1873 126e F040 sbci r31,hi8(-(Poti))
1874 1270 8081 ld r24,Z
1875 .L287:
1876 1272 8093 0000 sts Parameter_I_Faktor,r24
1877 1276 8091 0000 lds r24,EE_Parameter+41
1878 127a 883F cpi r24,lo8(-8)
1879 127c 00F0 brlo .L288
1880 127e EFEF ldi r30,lo8(255)
1881 1280 F0E0 ldi r31,hi8(255)
1882 1282 E81B sub r30,r24
1883 1284 F109 sbc r31,__zero_reg__
1884 1286 E050 subi r30,lo8(-(Poti))
1885 1288 F040 sbci r31,hi8(-(Poti))
1886 128a 8081 ld r24,Z
1887 .L288:
1888 128c 8093 0000 sts Parameter_UserParam1,r24
1889 1290 8091 0000 lds r24,EE_Parameter+42
1890 1294 883F cpi r24,lo8(-8)
1891 1296 00F0 brlo .L289
1892 1298 EFEF ldi r30,lo8(255)
1893 129a F0E0 ldi r31,hi8(255)
1894 129c E81B sub r30,r24
1895 129e F109 sbc r31,__zero_reg__
1896 12a0 E050 subi r30,lo8(-(Poti))
1897 12a2 F040 sbci r31,hi8(-(Poti))
1898 12a4 8081 ld r24,Z
1899 .L289:
1900 12a6 8093 0000 sts Parameter_UserParam2,r24
1901 12aa 8091 0000 lds r24,EE_Parameter+43
1902 12ae 883F cpi r24,lo8(-8)
1903 12b0 00F0 brlo .L290
1904 12b2 EFEF ldi r30,lo8(255)
1905 12b4 F0E0 ldi r31,hi8(255)
1906 12b6 E81B sub r30,r24
1907 12b8 F109 sbc r31,__zero_reg__
1908 12ba E050 subi r30,lo8(-(Poti))
1909 12bc F040 sbci r31,hi8(-(Poti))
1910 12be 8081 ld r24,Z
1911 .L290:
1912 12c0 8093 0000 sts Parameter_UserParam3,r24
1913 12c4 8091 0000 lds r24,EE_Parameter+44
1914 12c8 883F cpi r24,lo8(-8)
1915 12ca 00F0 brlo .L291
1916 12cc EFEF ldi r30,lo8(255)
1917 12ce F0E0 ldi r31,hi8(255)
1918 12d0 E81B sub r30,r24
1919 12d2 F109 sbc r31,__zero_reg__
1920 12d4 E050 subi r30,lo8(-(Poti))
1921 12d6 F040 sbci r31,hi8(-(Poti))
1922 12d8 8081 ld r24,Z
1923 .L291:
1924 12da 8093 0000 sts Parameter_UserParam4,r24
1925 12de 8091 0000 lds r24,EE_Parameter+70
1926 12e2 883F cpi r24,lo8(-8)
1927 12e4 00F0 brlo .L292
1928 12e6 EFEF ldi r30,lo8(255)
1929 12e8 F0E0 ldi r31,hi8(255)
1930 12ea E81B sub r30,r24
1931 12ec F109 sbc r31,__zero_reg__
1932 12ee E050 subi r30,lo8(-(Poti))
1933 12f0 F040 sbci r31,hi8(-(Poti))
1934 12f2 8081 ld r24,Z
1935 .L292:
1936 12f4 8093 0000 sts Parameter_UserParam5,r24
1937 12f8 8091 0000 lds r24,EE_Parameter+71
1938 12fc 883F cpi r24,lo8(-8)
1939 12fe 00F0 brlo .L293
1940 1300 EFEF ldi r30,lo8(255)
1941 1302 F0E0 ldi r31,hi8(255)
1942 1304 E81B sub r30,r24
1943 1306 F109 sbc r31,__zero_reg__
1944 1308 E050 subi r30,lo8(-(Poti))
1945 130a F040 sbci r31,hi8(-(Poti))
1946 130c 8081 ld r24,Z
1947 .L293:
1948 130e 8093 0000 sts Parameter_UserParam6,r24
1949 1312 8091 0000 lds r24,EE_Parameter+72
1950 1316 883F cpi r24,lo8(-8)
1951 1318 00F0 brlo .L294
1952 131a EFEF ldi r30,lo8(255)
1953 131c F0E0 ldi r31,hi8(255)
1954 131e E81B sub r30,r24
1955 1320 F109 sbc r31,__zero_reg__
1956 1322 E050 subi r30,lo8(-(Poti))
1957 1324 F040 sbci r31,hi8(-(Poti))
1958 1326 8081 ld r24,Z
1959 .L294:
1960 1328 8093 0000 sts Parameter_UserParam7,r24
1961 132c 8091 0000 lds r24,EE_Parameter+73
1962 1330 883F cpi r24,lo8(-8)
1963 1332 00F0 brlo .L295
1964 1334 EFEF ldi r30,lo8(255)
1965 1336 F0E0 ldi r31,hi8(255)
1966 1338 E81B sub r30,r24
1967 133a F109 sbc r31,__zero_reg__
1968 133c E050 subi r30,lo8(-(Poti))
1969 133e F040 sbci r31,hi8(-(Poti))
1970 1340 8081 ld r24,Z
1971 .L295:
1972 1342 8093 0000 sts Parameter_UserParam8,r24
1973 1346 8091 0000 lds r24,EE_Parameter+45
1974 134a 883F cpi r24,lo8(-8)
1975 134c 00F0 brlo .L296
1976 134e EFEF ldi r30,lo8(255)
1977 1350 F0E0 ldi r31,hi8(255)
1978 1352 E81B sub r30,r24
1979 1354 F109 sbc r31,__zero_reg__
1980 1356 E050 subi r30,lo8(-(Poti))
1981 1358 F040 sbci r31,hi8(-(Poti))
1982 135a 8081 ld r24,Z
1983 .L296:
1984 135c 8093 0000 sts Parameter_ServoNickControl,r24
1985 1360 8091 0000 lds r24,EE_Parameter+49
1986 1364 883F cpi r24,lo8(-8)
1987 1366 00F0 brlo .L297
1988 1368 EFEF ldi r30,lo8(255)
1989 136a F0E0 ldi r31,hi8(255)
1990 136c E81B sub r30,r24
1991 136e F109 sbc r31,__zero_reg__
1992 1370 E050 subi r30,lo8(-(Poti))
1993 1372 F040 sbci r31,hi8(-(Poti))
1994 1374 8081 ld r24,Z
1995 .L297:
1996 1376 8093 0000 sts Parameter_ServoRollControl,r24
1997 137a 8091 0000 lds r24,EE_Parameter+59
1998 137e 883F cpi r24,lo8(-8)
1999 1380 00F0 brlo .L298
2000 1382 EFEF ldi r30,lo8(255)
2001 1384 F0E0 ldi r31,hi8(255)
2002 1386 E81B sub r30,r24
2003 1388 F109 sbc r31,__zero_reg__
2004 138a E050 subi r30,lo8(-(Poti))
2005 138c F040 sbci r31,hi8(-(Poti))
2006 138e 8081 ld r24,Z
2007 .L298:
2008 1390 8093 0000 sts Parameter_LoopGasLimit,r24
2009 1394 8091 0000 lds r24,EE_Parameter+62
2010 1398 883F cpi r24,lo8(-8)
2011 139a 00F0 brlo .L299
2012 139c EFEF ldi r30,lo8(255)
2013 139e F0E0 ldi r31,hi8(255)
2014 13a0 E81B sub r30,r24
2015 13a2 F109 sbc r31,__zero_reg__
2016 13a4 E050 subi r30,lo8(-(Poti))
2017 13a6 F040 sbci r31,hi8(-(Poti))
2018 13a8 8081 ld r24,Z
2019 .L299:
2020 13aa 8093 0000 sts Parameter_AchsKopplung1,r24
2021 13ae 8091 0000 lds r24,EE_Parameter+63
2022 13b2 883F cpi r24,lo8(-8)
2023 13b4 00F0 brlo .L300
2024 13b6 EFEF ldi r30,lo8(255)
2025 13b8 F0E0 ldi r31,hi8(255)
2026 13ba E81B sub r30,r24
2027 13bc F109 sbc r31,__zero_reg__
2028 13be E050 subi r30,lo8(-(Poti))
2029 13c0 F040 sbci r31,hi8(-(Poti))
2030 13c2 8081 ld r24,Z
2031 .L300:
2032 13c4 8093 0000 sts Parameter_AchsKopplung2,r24
2033 13c8 8091 0000 lds r24,EE_Parameter+64
2034 13cc 883F cpi r24,lo8(-8)
2035 13ce 00F0 brlo .L301
2036 13d0 EFEF ldi r30,lo8(255)
2037 13d2 F0E0 ldi r31,hi8(255)
2038 13d4 E81B sub r30,r24
2039 13d6 F109 sbc r31,__zero_reg__
2040 13d8 E050 subi r30,lo8(-(Poti))
2041 13da F040 sbci r31,hi8(-(Poti))
2042 13dc 8081 ld r24,Z
2043 .L301:
2044 13de 8093 0000 sts Parameter_CouplingYawCorrection,r24
2045 13e2 8091 0000 lds r24,EE_Parameter+69
2046 13e6 883F cpi r24,lo8(-8)
2047 13e8 00F0 brlo .L302
2048 13ea EFEF ldi r30,lo8(255)
2049 13ec F0E0 ldi r31,hi8(255)
2050 13ee E81B sub r30,r24
2051 13f0 F109 sbc r31,__zero_reg__
2052 13f2 E050 subi r30,lo8(-(Poti))
2053 13f4 F040 sbci r31,hi8(-(Poti))
2054 13f6 8081 ld r24,Z
2055 .L302:
2056 13f8 8093 0000 sts Parameter_DynamicStability,r24
2057 13fc 8091 0000 lds r24,EE_Parameter+96
2058 1400 883F cpi r24,lo8(-8)
2059 1402 00F0 brlo .L303
2060 1404 EFEF ldi r30,lo8(255)
2061 1406 F0E0 ldi r31,hi8(255)
2062 1408 E81B sub r30,r24
2063 140a F109 sbc r31,__zero_reg__
2064 140c E050 subi r30,lo8(-(Poti))
2065 140e F040 sbci r31,hi8(-(Poti))
2066 1410 8081 ld r24,Z
2067 .L303:
2068 1412 8093 0000 sts Parameter_ExternalControl,r24
2069 1416 6091 0000 lds r22,Parameter_I_Faktor
2070 141a 70E0 ldi r23,lo8(0)
2071 141c 6F5F subi r22,lo8(-(1))
2072 141e 7F4F sbci r23,hi8(-(1))
2073 1420 8CE3 ldi r24,lo8(10300)
2074 1422 98E2 ldi r25,hi8(10300)
2075 1424 0E94 0000 call __divmodhi4
2076 1428 7093 0000 sts (Ki)+1,r23
2077 142c 6093 0000 sts Ki,r22
2078 1430 8091 0000 lds r24,EE_Parameter+27
2079 1434 8093 0000 sts MAX_GAS,r24
2080 1438 8091 0000 lds r24,EE_Parameter+26
2081 143c 8093 0000 sts MIN_GAS,r24
2082 1440 9091 0000 lds r25,EE_Parameter+98
2083 1444 9333 cpi r25,lo8(51)
2084 1446 00F0 brlo .L247
2085 1448 81E0 ldi r24,lo8(1)
2086 144a 8093 0000 sts CareFree,r24
2087 144e 983F cpi r25,lo8(-8)
2088 1450 00F0 brlo .L249
2089 1452 EFEF ldi r30,lo8(255)
2090 1454 F0E0 ldi r31,hi8(255)
2091 1456 E91B sub r30,r25
2092 1458 F109 sbc r31,__zero_reg__
2093 145a E050 subi r30,lo8(-(Poti))
2094 145c F040 sbci r31,hi8(-(Poti))
2095 145e 8081 ld r24,Z
2096 1460 8233 cpi r24,lo8(50)
2097 1462 00F4 brsh .L249
2098 1464 1092 0000 sts CareFree,__zero_reg__
2099 .L249:
2100 1468 8091 0000 lds r24,FromNaviCtrl+7
2101 146c 9091 0000 lds r25,(FromNaviCtrl+7)+1
2102 1470 97FF sbrs r25,7
2103 1472 00C0 rjmp .L252
2104 1474 8091 0000 lds r24,CareFree
2105 1478 8823 tst r24
2106 147a 01F0 breq .L252
2107 147c 8091 0000 lds r24,VersionInfo+5
2108 1480 8068 ori r24,lo8(-128)
2109 1482 00C0 rjmp .L304
2110 .L252:
2111 1484 8091 0000 lds r24,VersionInfo+5
2112 1488 8F77 andi r24,lo8(127)
2113 .L304:
2114 148a 8093 0000 sts VersionInfo+5,r24
2115 148e 00C0 rjmp .L255
2116 .L247:
2117 1490 1092 0000 sts CareFree,__zero_reg__
2118 .L255:
2119 1494 8091 0000 lds r24,FromNaviCtrl+7
2120 1498 9091 0000 lds r25,(FromNaviCtrl+7)+1
2121 149c 97FF sbrs r25,7
2122 149e 00C0 rjmp .L256
2123 14a0 8091 0000 lds r24,MotorenEin
2124 14a4 8823 tst r24
2125 14a6 01F0 breq .L256
2126 14a8 8091 0000 lds r24,CareFree
2127 14ac 8823 tst r24
2128 14ae 01F0 breq .L256
2129 14b0 8091 0000 lds r24,BeepMuster
2130 14b4 9091 0000 lds r25,(BeepMuster)+1
2131 14b8 8F5F subi r24,lo8(-1)
2132 14ba 9F4F sbci r25,hi8(-1)
2133 14bc 01F4 brne .L256
2134 14be 88E9 ldi r24,lo8(15000)
2135 14c0 9AE3 ldi r25,hi8(15000)
2136 14c2 9093 0000 sts (beeptime)+1,r25
2137 14c6 8093 0000 sts beeptime,r24
2138 14ca 80E0 ldi r24,lo8(-23552)
2139 14cc 94EA ldi r25,hi8(-23552)
2140 14ce 9093 0000 sts (BeepMuster)+1,r25
2141 14d2 8093 0000 sts BeepMuster,r24
2142 14d6 1092 0000 sts CareFree,__zero_reg__
2143 .L256:
2144 14da 8091 0000 lds r24,CareFree
2145 14de 8823 tst r24
2146 14e0 01F0 breq .L264
2147 14e2 8091 0000 lds r24,Parameter_AchsKopplung1
2148 14e6 823D cpi r24,lo8(-46)
2149 14e8 00F4 brsh .L264
2150 14ea 825E subi r24,lo8(-(30))
2151 14ec 8093 0000 sts Parameter_AchsKopplung1,r24
2152 .L264:
2153 /* epilogue: frame size=0 */
2154 14f0 DF91 pop r29
2155 14f2 CF91 pop r28
2156 14f4 1F91 pop r17
2157 14f6 0F91 pop r16
2158 14f8 0895 ret
2159 /* epilogue end (size=5) */
2160 /* function ParameterZuordnung size 660 (651) */
2162 .global CalibrierMittelwert
2164 CalibrierMittelwert:
2165 /* prologue: frame size=0 */
2166 14fa CF93 push r28
2167 14fc DF93 push r29
2168 /* prologue end (size=2) */
2169 14fe 8091 0000 lds r24,PlatinenVersion
2170 1502 8D30 cpi r24,lo8(13)
2171 1504 01F4 brne .L306
2172 1506 0E94 0000 call SucheGyroOffset
2173 .L306:
2174 150a 1092 7A00 sts 122,__zero_reg__
2175 150e 8091 0000 lds r24,AdWertNick
2176 1512 9091 0000 lds r25,(AdWertNick)+1
2177 1516 9093 0000 sts (MesswertNick)+1,r25
2178 151a 8093 0000 sts MesswertNick,r24
2179 151e 8091 0000 lds r24,AdWertRoll
2180 1522 9091 0000 lds r25,(AdWertRoll)+1
2181 1526 9093 0000 sts (MesswertRoll)+1,r25
2182 152a 8093 0000 sts MesswertRoll,r24
2183 152e 8091 0000 lds r24,AdWertGier
2184 1532 9091 0000 lds r25,(AdWertGier)+1
2185 1536 9093 0000 sts (MesswertGier)+1,r25
2186 153a 8093 0000 sts MesswertGier,r24
2187 153e 2091 0000 lds r18,AdWertAccNick
2188 1542 3091 0000 lds r19,(AdWertAccNick)+1
2189 1546 C901 movw r24,r18
2190 1548 880F lsl r24
2191 154a 991F rol r25
2192 154c 820F add r24,r18
2193 154e 931F adc r25,r19
2194 1550 880F lsl r24
2195 1552 991F rol r25
2196 1554 9093 0000 sts (Mittelwert_AccNick)+1,r25
2197 1558 8093 0000 sts Mittelwert_AccNick,r24
2198 155c 2091 0000 lds r18,AdWertAccRoll
2199 1560 3091 0000 lds r19,(AdWertAccRoll)+1
2200 1564 C901 movw r24,r18
2201 1566 880F lsl r24
2202 1568 991F rol r25
2203 156a 820F add r24,r18
2204 156c 931F adc r25,r19
2205 156e 880F lsl r24
2206 1570 991F rol r25
2207 1572 9093 0000 sts (Mittelwert_AccRoll)+1,r25
2208 1576 8093 0000 sts Mittelwert_AccRoll,r24
2209 157a 8FEC ldi r24,lo8(-49)
2210 157c 8093 7A00 sts 122,r24
2211 1580 C0E0 ldi r28,lo8(EE_Parameter+5)
2212 1582 D0E0 ldi r29,hi8(EE_Parameter+5)
2213 1584 A0E0 ldi r26,lo8(Poti)
2214 1586 B0E0 ldi r27,hi8(Poti)
2215 .L308:
2216 1588 E881 ld r30,Y
2217 158a F0E0 ldi r31,lo8(0)
2218 158c EE0F lsl r30
2219 158e FF1F rol r31
2220 1590 E050 subi r30,lo8(-(PPM_in))
2221 1592 F040 sbci r31,hi8(-(PPM_in))
2222 1594 0190 ld __tmp_reg__,Z+
2223 1596 F081 ld r31,Z
2224 1598 E02D mov r30,__tmp_reg__
2225 159a E259 subi r30,lo8(-(110))
2226 159c FF4F sbci r31,hi8(-(110))
2227 159e 1E16 cp __zero_reg__,r30
2228 15a0 1F06 cpc __zero_reg__,r31
2229 15a2 04F0 brlt .L309
2230 15a4 E0E0 ldi r30,lo8(0)
2231 15a6 F0E0 ldi r31,hi8(0)
2232 15a8 00C0 rjmp .L311
2233 .L309:
2234 15aa EF3F cpi r30,255
2235 15ac F105 cpc r31,__zero_reg__
2236 15ae 04F0 brlt .L311
2237 15b0 EFEF ldi r30,lo8(255)
2238 15b2 F0E0 ldi r31,hi8(255)
2239 .L311:
2240 15b4 8C91 ld r24,X
2241 15b6 282F mov r18,r24
2242 15b8 30E0 ldi r19,lo8(0)
2243 15ba E217 cp r30,r18
2244 15bc F307 cpc r31,r19
2245 15be 04F4 brge .L313
2246 15c0 8150 subi r24,lo8(-(-1))
2247 15c2 00C0 rjmp .L321
2248 .L313:
2249 15c4 2E17 cp r18,r30
2250 15c6 3F07 cpc r19,r31
2251 15c8 04F4 brge .L315
2252 15ca 8F5F subi r24,lo8(-(1))
2253 .L321:
2254 15cc 8C93 st X,r24
2255 .L315:
2256 15ce 2196 adiw r28,1
2257 15d0 1196 adiw r26,1
2258 15d2 80E0 ldi r24,hi8(EE_Parameter+13)
2259 15d4 C030 cpi r28,lo8(EE_Parameter+13)
2260 15d6 D807 cpc r29,r24
2261 15d8 01F4 brne .L308
2262 15da 6091 0000 lds r22,EE_Parameter+65
2263 15de 70E0 ldi r23,lo8(0)
2264 15e0 80E0 ldi r24,lo8(0)
2265 15e2 90E0 ldi r25,hi8(0)
2266 15e4 24EC ldi r18,lo8(2500)
2267 15e6 39E0 ldi r19,hi8(2500)
2268 15e8 40E0 ldi r20,hlo8(2500)
2269 15ea 50E0 ldi r21,hhi8(2500)
2270 15ec 0E94 0000 call __mulsi3
2271 15f0 6093 0000 sts Umschlag180Nick,r22
2272 15f4 7093 0000 sts (Umschlag180Nick)+1,r23
2273 15f8 8093 0000 sts (Umschlag180Nick)+2,r24
2274 15fc 9093 0000 sts (Umschlag180Nick)+3,r25
2275 1600 6091 0000 lds r22,EE_Parameter+66
2276 1604 70E0 ldi r23,lo8(0)
2277 1606 80E0 ldi r24,lo8(0)
2278 1608 90E0 ldi r25,hi8(0)
2279 160a 0E94 0000 call __mulsi3
2280 160e 6093 0000 sts Umschlag180Roll,r22
2281 1612 7093 0000 sts (Umschlag180Roll)+1,r23
2282 1616 8093 0000 sts (Umschlag180Roll)+2,r24
2283 161a 9093 0000 sts (Umschlag180Roll)+3,r25
2284 /* epilogue: frame size=0 */
2285 161e DF91 pop r29
2286 1620 CF91 pop r28
2287 1622 0895 ret
2288 /* epilogue end (size=3) */
2289 /* function CalibrierMittelwert size 149 (144) */
2291 .global SetNeutral
2293 SetNeutral:
2294 /* prologue: frame size=0 */
2295 1624 A0E0 ldi r26,lo8(0)
2296 1626 B0E0 ldi r27,hi8(0)
2297 1628 E0E0 ldi r30,pm_lo8(1f)
2298 162a F0E0 ldi r31,pm_hi8(1f)
2299 162c 0C94 0000 jmp __prologue_saves__+8
2300 1:
2301 /* prologue end (size=6) */
2302 1630 682E mov r6,r24
2303 1632 1092 0000 sts VersionInfo+5,__zero_reg__
2304 1636 469A sbi 40-0x20,6
2305 1638 1092 0000 sts (NeutralAccX)+1,__zero_reg__
2306 163c 1092 0000 sts NeutralAccX,__zero_reg__
2307 1640 1092 0000 sts (NeutralAccY)+1,__zero_reg__
2308 1644 1092 0000 sts NeutralAccY,__zero_reg__
2309 1648 1092 0000 sts (NeutralAccZ)+1,__zero_reg__
2310 164c 1092 0000 sts NeutralAccZ,__zero_reg__
2311 1650 1092 0000 sts (AdNeutralNick)+1,__zero_reg__
2312 1654 1092 0000 sts AdNeutralNick,__zero_reg__
2313 1658 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__
2314 165c 1092 0000 sts AdNeutralRoll,__zero_reg__
2315 1660 1092 0000 sts (AdNeutralGier)+1,__zero_reg__
2316 1664 1092 0000 sts AdNeutralGier,__zero_reg__
2317 1668 1092 0000 sts Parameter_AchsKopplung1,__zero_reg__
2318 166c 1092 0000 sts Parameter_AchsKopplung2,__zero_reg__
2319 1670 1092 0000 sts ExpandBaro,__zero_reg__
2320 1674 0E94 0000 call CalibrierMittelwert
2321 1678 84E6 ldi r24,lo8(100)
2322 167a 90E0 ldi r25,hi8(100)
2323 167c 0E94 0000 call Delay_ms_Mess
2324 1680 0E94 0000 call CalibrierMittelwert
2325 1684 8091 0000 lds r24,EE_Parameter+13
2326 1688 80FF sbrs r24,0
2327 168a 00C0 rjmp .L323
2328 168c 8091 0000 lds r24,MessLuftdruck
2329 1690 9091 0000 lds r25,(MessLuftdruck)+1
2330 1694 875B subi r24,lo8(951)
2331 1696 9340 sbci r25,hi8(951)
2332 1698 00F4 brsh .L325
2333 169a 8091 0000 lds r24,MessLuftdruck
2334 169e 9091 0000 lds r25,(MessLuftdruck)+1
2335 16a2 8E5E subi r24,lo8(750)
2336 16a4 9240 sbci r25,hi8(750)
2337 16a6 00F4 brsh .L323
2338 .L325:
2339 16a8 0E94 0000 call SucheLuftruckOffset
2340 .L323:
2341 16ac AA24 clr r10
2342 16ae C0E0 ldi r28,lo8(0)
2343 16b0 D0E0 ldi r29,hi8(0)
2344 16b2 00E0 ldi r16,lo8(0)
2345 16b4 10E0 ldi r17,hi8(0)
2346 16b6 EE24 clr r14
2347 16b8 FF24 clr r15
2348 .L327:
2349 16ba 8AE0 ldi r24,lo8(10)
2350 16bc 90E0 ldi r25,hi8(10)
2351 16be 0E94 0000 call Delay_ms_Mess
2352 16c2 8091 0000 lds r24,AdWertGier
2353 16c6 9091 0000 lds r25,(AdWertGier)+1
2354 16ca C80F add r28,r24
2355 16cc D91F adc r29,r25
2356 16ce 8091 0000 lds r24,AdWertNick
2357 16d2 9091 0000 lds r25,(AdWertNick)+1
2358 16d6 080F add r16,r24
2359 16d8 191F adc r17,r25
2360 16da 8091 0000 lds r24,AdWertRoll
2361 16de 9091 0000 lds r25,(AdWertRoll)+1
2362 16e2 E80E add r14,r24
2363 16e4 F91E adc r15,r25
2364 16e6 A394 inc r10
2365 16e8 80E2 ldi r24,lo8(32)
2366 16ea A816 cp r10,r24
2367 16ec 01F4 brne .L327
2368 16ee 9801 movw r18,r16
2369 16f0 205F subi r18,lo8(-(16))
2370 16f2 3F4F sbci r19,hi8(-(16))
2371 16f4 3695 lsr r19
2372 16f6 2795 ror r18
2373 16f8 3695 lsr r19
2374 16fa 2795 ror r18
2375 16fc 3093 0000 sts (AdNeutralNick)+1,r19
2376 1700 2093 0000 sts AdNeutralNick,r18
2377 1704 C701 movw r24,r14
2378 1706 4096 adiw r24,16
2379 1708 9695 lsr r25
2380 170a 8795 ror r24
2381 170c 9695 lsr r25
2382 170e 8795 ror r24
2383 1710 9093 0000 sts (AdNeutralRoll)+1,r25
2384 1714 8093 0000 sts AdNeutralRoll,r24
2385 1718 6096 adiw r28,16
2386 171a 15E0 ldi r17,5
2387 171c D695 1: lsr r29
2388 171e C795 ror r28
2389 1720 1A95 dec r17
2390 1722 01F4 brne 1b
2391 1724 D093 0000 sts (AdNeutralGier)+1,r29
2392 1728 C093 0000 sts AdNeutralGier,r28
2393 172c 9093 0000 sts (StartNeutralRoll)+1,r25
2394 1730 8093 0000 sts StartNeutralRoll,r24
2395 1734 3093 0000 sts (StartNeutralNick)+1,r19
2396 1738 2093 0000 sts StartNeutralNick,r18
2397 173c 6620 tst r6
2398 173e 01F4 brne .+2
2399 1740 00C0 rjmp .L329
2400 1742 8091 0000 lds r24,Mittelwert_AccNick
2401 1746 9091 0000 lds r25,(Mittelwert_AccNick)+1
2402 174a 97FF sbrs r25,7
2403 174c 00C0 rjmp .L331
2404 174e 9095 com r25
2405 1750 8195 neg r24
2406 1752 9F4F sbci r25,lo8(-1)
2407 .L331:
2408 1754 6CE0 ldi r22,lo8(12)
2409 1756 70E0 ldi r23,hi8(12)
2410 1758 0E94 0000 call __divmodhi4
2411 175c 9B01 movw r18,r22
2412 175e 7093 0000 sts (NeutralAccX)+1,r23
2413 1762 6093 0000 sts NeutralAccX,r22
2414 1766 8091 0000 lds r24,Mittelwert_AccRoll
2415 176a 9091 0000 lds r25,(Mittelwert_AccRoll)+1
2416 176e 97FF sbrs r25,7
2417 1770 00C0 rjmp .L332
2418 1772 9095 com r25
2419 1774 8195 neg r24
2420 1776 9F4F sbci r25,lo8(-1)
2421 .L332:
2422 1778 6CE0 ldi r22,lo8(12)
2423 177a 70E0 ldi r23,hi8(12)
2424 177c 0E94 0000 call __divmodhi4
2425 1780 7093 0000 sts (NeutralAccY)+1,r23
2426 1784 6093 0000 sts NeutralAccY,r22
2427 1788 8091 0000 lds r24,Aktuell_az
2428 178c 9091 0000 lds r25,(Aktuell_az)+1
2429 1790 9093 0000 sts (NeutralAccZ)+1,r25
2430 1794 8093 0000 sts NeutralAccZ,r24
2431 1798 B901 movw r22,r18
2432 179a 84E0 ldi r24,lo8(4)
2433 179c 90E0 ldi r25,hi8(4)
2434 179e 0E94 0000 call SetParamWord
2435 17a2 6091 0000 lds r22,NeutralAccY
2436 17a6 7091 0000 lds r23,(NeutralAccY)+1
2437 17aa 86E0 ldi r24,lo8(6)
2438 17ac 90E0 ldi r25,hi8(6)
2439 17ae 0E94 0000 call SetParamWord
2440 17b2 6091 0000 lds r22,NeutralAccZ
2441 17b6 7091 0000 lds r23,(NeutralAccZ)+1
2442 17ba 88E0 ldi r24,lo8(8)
2443 17bc 90E0 ldi r25,hi8(8)
2444 17be 0E94 0000 call SetParamWord
2445 17c2 00C0 rjmp .L333
2446 .L329:
2447 17c4 84E0 ldi r24,lo8(4)
2448 17c6 90E0 ldi r25,hi8(4)
2449 17c8 0E94 0000 call GetParamWord
2450 17cc 9093 0000 sts (NeutralAccX)+1,r25
2451 17d0 8093 0000 sts NeutralAccX,r24
2452 17d4 86E0 ldi r24,lo8(6)
2453 17d6 90E0 ldi r25,hi8(6)
2454 17d8 0E94 0000 call GetParamWord
2455 17dc 9093 0000 sts (NeutralAccY)+1,r25
2456 17e0 8093 0000 sts NeutralAccY,r24
2457 17e4 88E0 ldi r24,lo8(8)
2458 17e6 90E0 ldi r25,hi8(8)
2459 17e8 0E94 0000 call GetParamWord
2460 17ec 9C01 movw r18,r24
2461 17ee 9093 0000 sts (NeutralAccZ)+1,r25
2462 17f2 8093 0000 sts NeutralAccZ,r24
2463 17f6 8091 0000 lds r24,NeutralAccX
2464 17fa 9091 0000 lds r25,(NeutralAccX)+1
2465 17fe 8150 subi r24,lo8(2049)
2466 1800 9840 sbci r25,hi8(2049)
2467 1802 00F4 brsh .L334
2468 1804 8091 0000 lds r24,NeutralAccY
2469 1808 9091 0000 lds r25,(NeutralAccY)+1
2470 180c 8150 subi r24,lo8(2049)
2471 180e 9840 sbci r25,hi8(2049)
2472 1810 00F4 brsh .L334
2473 1812 2150 subi r18,lo8(1025)
2474 1814 3440 sbci r19,hi8(1025)
2475 1816 00F0 brlo .L333
2476 .L334:
2477 1818 E091 0000 lds r30,_printf_P
2478 181c F091 0000 lds r31,(_printf_P)+1
2479 1820 80E0 ldi r24,lo8(__c.2753)
2480 1822 90E0 ldi r25,hi8(__c.2753)
2481 1824 9F93 push r25
2482 1826 8F93 push r24
2483 1828 80E0 ldi r24,lo8(gs(uart_putchar))
2484 182a 90E0 ldi r25,hi8(gs(uart_putchar))
2485 182c 9F93 push r25
2486 182e 8F93 push r24
2487 1830 0995 icall
2488 1832 8091 0000 lds r24,Mittelwert_AccNick
2489 1836 9091 0000 lds r25,(Mittelwert_AccNick)+1
2490 183a 97FF sbrs r25,7
2491 183c 00C0 rjmp .L337
2492 183e 9095 com r25
2493 1840 8195 neg r24
2494 1842 9F4F sbci r25,lo8(-1)
2495 .L337:
2496 1844 6CE0 ldi r22,lo8(12)
2497 1846 70E0 ldi r23,hi8(12)
2498 1848 0E94 0000 call __divmodhi4
2499 184c 7093 0000 sts (NeutralAccX)+1,r23
2500 1850 6093 0000 sts NeutralAccX,r22
2501 1854 8091 0000 lds r24,Mittelwert_AccRoll
2502 1858 9091 0000 lds r25,(Mittelwert_AccRoll)+1
2503 185c 97FF sbrs r25,7
2504 185e 00C0 rjmp .L338
2505 1860 9095 com r25
2506 1862 8195 neg r24
2507 1864 9F4F sbci r25,lo8(-1)
2508 .L338:
2509 1866 6CE0 ldi r22,lo8(12)
2510 1868 70E0 ldi r23,hi8(12)
2511 186a 0E94 0000 call __divmodhi4
2512 186e 7093 0000 sts (NeutralAccY)+1,r23
2513 1872 6093 0000 sts NeutralAccY,r22
2514 1876 8091 0000 lds r24,Aktuell_az
2515 187a 9091 0000 lds r25,(Aktuell_az)+1
2516 187e 9093 0000 sts (NeutralAccZ)+1,r25
2517 1882 8093 0000 sts NeutralAccZ,r24
2518 1886 0F90 pop __tmp_reg__
2519 1888 0F90 pop __tmp_reg__
2520 188a 0F90 pop __tmp_reg__
2521 188c 0F90 pop __tmp_reg__
2522 .L333:
2523 188e 1092 0000 sts (MesswertNick)+1,__zero_reg__
2524 1892 1092 0000 sts MesswertNick,__zero_reg__
2525 1896 1092 0000 sts (MesswertRoll)+1,__zero_reg__
2526 189a 1092 0000 sts MesswertRoll,__zero_reg__
2527 189e 1092 0000 sts (MesswertGier)+1,__zero_reg__
2528 18a2 1092 0000 sts MesswertGier,__zero_reg__
2529 18a6 84E6 ldi r24,lo8(100)
2530 18a8 90E0 ldi r25,hi8(100)
2531 18aa 0E94 0000 call Delay_ms_Mess
2532 18ae 2091 0000 lds r18,AdWertAccNick
2533 18b2 3091 0000 lds r19,(AdWertAccNick)+1
2534 18b6 B901 movw r22,r18
2535 18b8 660F lsl r22
2536 18ba 771F rol r23
2537 18bc 620F add r22,r18
2538 18be 731F adc r23,r19
2539 18c0 660F lsl r22
2540 18c2 771F rol r23
2541 18c4 7093 0000 sts (Mittelwert_AccNick)+1,r23
2542 18c8 6093 0000 sts Mittelwert_AccNick,r22
2543 18cc 2091 0000 lds r18,AdWertAccRoll
2544 18d0 3091 0000 lds r19,(AdWertAccRoll)+1
2545 18d4 7901 movw r14,r18
2546 18d6 EE0C lsl r14
2547 18d8 FF1C rol r15
2548 18da E20E add r14,r18
2549 18dc F31E adc r15,r19
2550 18de EE0C lsl r14
2551 18e0 FF1C rol r15
2552 18e2 F092 0000 sts (Mittelwert_AccRoll)+1,r15
2553 18e6 E092 0000 sts Mittelwert_AccRoll,r14
2554 18ea A090 0000 lds r10,EE_Parameter+28
2555 18ee BB24 clr r11
2556 18f0 CC24 clr r12
2557 18f2 DD24 clr r13
2558 18f4 8827 clr r24
2559 18f6 77FD sbrc r23,7
2560 18f8 8095 com r24
2561 18fa 982F mov r25,r24
2562 18fc A601 movw r20,r12
2563 18fe 9501 movw r18,r10
2564 1900 0E94 0000 call __mulsi3
2565 1904 3B01 movw r6,r22
2566 1906 4C01 movw r8,r24
2567 1908 6093 0000 sts IntegralNick,r22
2568 190c 7093 0000 sts (IntegralNick)+1,r23
2569 1910 8093 0000 sts (IntegralNick)+2,r24
2570 1914 9093 0000 sts (IntegralNick)+3,r25
2571 1918 0027 clr r16
2572 191a F7FC sbrc r15,7
2573 191c 0095 com r16
2574 191e 102F mov r17,r16
2575 1920 C801 movw r24,r16
2576 1922 B701 movw r22,r14
2577 1924 0E94 0000 call __mulsi3
2578 1928 6093 0000 sts IntegralRoll,r22
2579 192c 7093 0000 sts (IntegralRoll)+1,r23
2580 1930 8093 0000 sts (IntegralRoll)+2,r24
2581 1934 9093 0000 sts (IntegralRoll)+3,r25
2582 1938 6092 0000 sts Mess_IntegralNick2,r6
2583 193c 7092 0000 sts (Mess_IntegralNick2)+1,r7
2584 1940 8092 0000 sts (Mess_IntegralNick2)+2,r8
2585 1944 9092 0000 sts (Mess_IntegralNick2)+3,r9
2586 1948 6093 0000 sts Mess_IntegralRoll2,r22
2587 194c 7093 0000 sts (Mess_IntegralRoll2)+1,r23
2588 1950 8093 0000 sts (Mess_IntegralRoll2)+2,r24
2589 1954 9093 0000 sts (Mess_IntegralRoll2)+3,r25
2590 1958 1092 0000 sts Mess_Integral_Gier,__zero_reg__
2591 195c 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
2592 1960 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
2593 1964 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
2594 1968 8091 0000 lds r24,Luftdruck
2595 196c 9091 0000 lds r25,(Luftdruck)+1
2596 1970 A091 0000 lds r26,(Luftdruck)+2
2597 1974 B091 0000 lds r27,(Luftdruck)+3
2598 1978 9093 0000 sts (StartLuftdruck)+1,r25
2599 197c 8093 0000 sts StartLuftdruck,r24
2600 1980 1092 0000 sts (VarioMeter)+1,__zero_reg__
2601 1984 1092 0000 sts VarioMeter,__zero_reg__
2602 1988 1092 0000 sts Mess_Integral_Hoch,__zero_reg__
2603 198c 1092 0000 sts (Mess_Integral_Hoch)+1,__zero_reg__
2604 1990 1092 0000 sts (Mess_Integral_Hoch)+2,__zero_reg__
2605 1994 1092 0000 sts (Mess_Integral_Hoch)+3,__zero_reg__
2606 1998 8091 0000 lds r24,KompassValue
2607 199c 9091 0000 lds r25,(KompassValue)+1
2608 19a0 9093 0000 sts (KompassStartwert)+1,r25
2609 19a4 8093 0000 sts KompassStartwert,r24
2610 19a8 0E94 0000 call GPS_Neutral
2611 19ac 82E3 ldi r24,lo8(50)
2612 19ae 90E0 ldi r25,hi8(50)
2613 19b0 9093 0000 sts (beeptime)+1,r25
2614 19b4 8093 0000 sts beeptime,r24
2615 19b8 6091 0000 lds r22,EE_Parameter+65
2616 19bc 70E0 ldi r23,lo8(0)
2617 19be 80E0 ldi r24,lo8(0)
2618 19c0 90E0 ldi r25,hi8(0)
2619 19c2 24EC ldi r18,lo8(2500)
2620 19c4 39E0 ldi r19,hi8(2500)
2621 19c6 40E0 ldi r20,hlo8(2500)
2622 19c8 50E0 ldi r21,hhi8(2500)
2623 19ca 0E94 0000 call __mulsi3
2624 19ce 6856 subi r22,lo8(-(15000))
2625 19d0 754C sbci r23,hi8(-(15000))
2626 19d2 8F4F sbci r24,hlo8(-(15000))
2627 19d4 9F4F sbci r25,hhi8(-(15000))
2628 19d6 6093 0000 sts Umschlag180Nick,r22
2629 19da 7093 0000 sts (Umschlag180Nick)+1,r23
2630 19de 8093 0000 sts (Umschlag180Nick)+2,r24
2631 19e2 9093 0000 sts (Umschlag180Nick)+3,r25
2632 19e6 6091 0000 lds r22,EE_Parameter+66
2633 19ea 70E0 ldi r23,lo8(0)
2634 19ec 80E0 ldi r24,lo8(0)
2635 19ee 90E0 ldi r25,hi8(0)
2636 19f0 0E94 0000 call __mulsi3
2637 19f4 6856 subi r22,lo8(-(15000))
2638 19f6 754C sbci r23,hi8(-(15000))
2639 19f8 8F4F sbci r24,hlo8(-(15000))
2640 19fa 9F4F sbci r25,hhi8(-(15000))
2641 19fc 6093 0000 sts Umschlag180Roll,r22
2642 1a00 7093 0000 sts (Umschlag180Roll)+1,r23
2643 1a04 8093 0000 sts (Umschlag180Roll)+2,r24
2644 1a08 9093 0000 sts (Umschlag180Roll)+3,r25
2645 1a0c 1092 0000 sts (ExternHoehenValue)+1,__zero_reg__
2646 1a10 1092 0000 sts ExternHoehenValue,__zero_reg__
2647 1a14 6091 0000 lds r22,KompassValue
2648 1a18 7091 0000 lds r23,(KompassValue)+1
2649 1a1c 8827 clr r24
2650 1a1e 77FD sbrc r23,7
2651 1a20 8095 com r24
2652 1a22 982F mov r25,r24
2653 1a24 2091 0000 lds r18,GIER_GRAD_FAKTOR
2654 1a28 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
2655 1a2c 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
2656 1a30 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
2657 1a34 0E94 0000 call __mulsi3
2658 1a38 6093 0000 sts ErsatzKompass,r22
2659 1a3c 7093 0000 sts (ErsatzKompass)+1,r23
2660 1a40 8093 0000 sts (ErsatzKompass)+2,r24
2661 1a44 9093 0000 sts (ErsatzKompass)+3,r25
2662 1a48 1092 0000 sts (GierGyroFehler)+1,__zero_reg__
2663 1a4c 1092 0000 sts GierGyroFehler,__zero_reg__
2664 1a50 81E0 ldi r24,lo8(1)
2665 1a52 8093 0000 sts SendVersionToNavi,r24
2666 1a56 0E94 0000 call LED_Init
2667 1a5a 8091 0000 lds r24,FC_StatusFlags
2668 1a5e 8460 ori r24,lo8(4)
2669 1a60 8093 0000 sts FC_StatusFlags,r24
2670 1a64 8FEF ldi r24,lo8(-1)
2671 1a66 8093 0000 sts FromNaviCtrl_Value,r24
2672 1a6a 1092 0000 sts FromNaviCtrl_Value+1,__zero_reg__
2673 1a6e 80E2 ldi r24,lo8(32)
2674 1a70 8093 0000 sts FromNaviCtrl_Value+2,r24
2675 1a74 A0E0 ldi r26,lo8(EE_Parameter+5)
2676 1a76 B0E0 ldi r27,hi8(EE_Parameter+5)
2677 1a78 C0E0 ldi r28,lo8(Poti)
2678 1a7a D0E0 ldi r29,hi8(Poti)
2679 .L339:
2680 1a7c ED91 ld r30,X+
2681 1a7e F0E0 ldi r31,lo8(0)
2682 1a80 EE0F lsl r30
2683 1a82 FF1F rol r31
2684 1a84 E050 subi r30,lo8(-(PPM_in))
2685 1a86 F040 sbci r31,hi8(-(PPM_in))
2686 1a88 8081 ld r24,Z
2687 1a8a 9181 ldd r25,Z+1
2688 1a8c 8259 subi r24,lo8(-(110))
2689 1a8e 8993 st Y+,r24
2690 1a90 20E0 ldi r18,hi8(EE_Parameter+13)
2691 1a92 A030 cpi r26,lo8(EE_Parameter+13)
2692 1a94 B207 cpc r27,r18
2693 1a96 01F4 brne .L339
2694 1a98 84E6 ldi r24,lo8(100)
2695 1a9a 8093 0000 sts SenderOkay,r24
2696 1a9e 8091 0000 lds r24,ServoActive
2697 1aa2 8823 tst r24
2698 1aa4 01F0 breq .L341
2699 1aa6 469A sbi 40-0x20,6
2700 1aa8 579A sbi 42-0x20,7
2701 .L341:
2702 1aaa 8091 0000 lds r24,AdNeutralNick
2703 1aae 9091 0000 lds r25,(AdNeutralNick)+1
2704 1ab2 8056 subi r24,lo8(-(-2400))
2705 1ab4 9940 sbci r25,hi8(-(-2400))
2706 1ab6 815C subi r24,lo8(11201)
2707 1ab8 9B42 sbci r25,hi8(11201)
2708 1aba 00F0 brlo .L343
2709 1abc 8091 0000 lds r24,VersionInfo+5
2710 1ac0 8160 ori r24,lo8(1)
2711 1ac2 8093 0000 sts VersionInfo+5,r24
2712 .L343:
2713 1ac6 8091 0000 lds r24,AdNeutralRoll
2714 1aca 9091 0000 lds r25,(AdNeutralRoll)+1
2715 1ace 8056 subi r24,lo8(-(-2400))
2716 1ad0 9940 sbci r25,hi8(-(-2400))
2717 1ad2 815C subi r24,lo8(11201)
2718 1ad4 9B42 sbci r25,hi8(11201)
2719 1ad6 00F0 brlo .L345
2720 1ad8 8091 0000 lds r24,VersionInfo+5
2721 1adc 8260 ori r24,lo8(2)
2722 1ade 8093 0000 sts VersionInfo+5,r24
2723 .L345:
2724 1ae2 8091 0000 lds r24,AdNeutralGier
2725 1ae6 9091 0000 lds r25,(AdNeutralGier)+1
2726 1aea 8C52 subi r24,lo8(-(-300))
2727 1aec 9140 sbci r25,hi8(-(-300))
2728 1aee 8957 subi r24,lo8(1401)
2729 1af0 9540 sbci r25,hi8(1401)
2730 1af2 00F0 brlo .L347
2731 1af4 8091 0000 lds r24,VersionInfo+5
2732 1af8 8460 ori r24,lo8(4)
2733 1afa 8093 0000 sts VersionInfo+5,r24
2734 .L347:
2735 1afe 8091 0000 lds r24,NeutralAccX
2736 1b02 9091 0000 lds r25,(NeutralAccX)+1
2737 1b06 8C52 subi r24,lo8(-(-300))
2738 1b08 9140 sbci r25,hi8(-(-300))
2739 1b0a 835C subi r24,lo8(451)
2740 1b0c 9140 sbci r25,hi8(451)
2741 1b0e 00F0 brlo .L349
2742 1b10 8091 0000 lds r24,VersionInfo+5
2743 1b14 8860 ori r24,lo8(8)
2744 1b16 8093 0000 sts VersionInfo+5,r24
2745 .L349:
2746 1b1a 8091 0000 lds r24,NeutralAccY
2747 1b1e 9091 0000 lds r25,(NeutralAccY)+1
2748 1b22 8C52 subi r24,lo8(-(-300))
2749 1b24 9140 sbci r25,hi8(-(-300))
2750 1b26 835C subi r24,lo8(451)
2751 1b28 9140 sbci r25,hi8(451)
2752 1b2a 00F0 brlo .L351
2753 1b2c 8091 0000 lds r24,VersionInfo+5
2754 1b30 8061 ori r24,lo8(16)
2755 1b32 8093 0000 sts VersionInfo+5,r24
2756 .L351:
2757 1b36 8091 0000 lds r24,NeutralAccZ
2758 1b3a 9091 0000 lds r25,(NeutralAccZ)+1
2759 1b3e 8050 subi r24,lo8(-(-512))
2760 1b40 9240 sbci r25,hi8(-(-512))
2761 1b42 8355 subi r24,lo8(339)
2762 1b44 9140 sbci r25,hi8(339)
2763 1b46 00F0 brlo .L355
2764 1b48 8091 0000 lds r24,VersionInfo+5
2765 1b4c 8062 ori r24,lo8(32)
2766 1b4e 8093 0000 sts VersionInfo+5,r24
2767 .L355:
2768 /* epilogue: frame size=0 */
2769 1b52 EEE0 ldi r30,14
2770 1b54 CDB7 in r28,__SP_L__
2771 1b56 DEB7 in r29,__SP_H__
2772 1b58 0C94 0000 jmp __epilogue_restores__+8
2773 /* epilogue end (size=5) */
2774 /* function SetNeutral size 679 (668) */
2776 .global Piep
2778 Piep:
2779 /* prologue: frame size=0 */
2780 1b5c EF92 push r14
2781 1b5e FF92 push r15
2782 1b60 1F93 push r17
2783 1b62 CF93 push r28
2784 1b64 DF93 push r29
2785 /* prologue end (size=5) */
2786 1b66 182F mov r17,r24
2787 1b68 EB01 movw r28,r22
2788 1b6a 8091 0000 lds r24,MotorenEin
2789 1b6e 8823 tst r24
2790 1b70 01F4 brne .L367
2791 1b72 7B01 movw r14,r22
2792 1b74 EE0C lsl r14
2793 1b76 FF1C rol r15
2794 1b78 00C0 rjmp .L363
2795 .L364:
2796 1b7a D093 0000 sts (beeptime)+1,r29
2797 1b7e C093 0000 sts beeptime,r28
2798 .L365:
2799 1b82 8091 0000 lds r24,beeptime
2800 1b86 9091 0000 lds r25,(beeptime)+1
2801 1b8a 892B or r24,r25
2802 1b8c 01F4 brne .L365
2803 1b8e C701 movw r24,r14
2804 1b90 0E94 0000 call Delay_ms
2805 .L363:
2806 1b94 1150 subi r17,1
2807 1b96 00F4 brcc .L364
2808 .L367:
2809 /* epilogue: frame size=0 */
2810 1b98 DF91 pop r29
2811 1b9a CF91 pop r28
2812 1b9c 1F91 pop r17
2813 1b9e FF90 pop r15
2814 1ba0 EF90 pop r14
2815 1ba2 0895 ret
2816 /* epilogue end (size=6) */
2817 /* function Piep size 37 (26) */
2819 .global MotorRegler
2821 MotorRegler:
2822 /* prologue: frame size=52 */
2823 1ba4 A4E3 ldi r26,lo8(52)
2824 1ba6 B0E0 ldi r27,hi8(52)
2825 1ba8 E0E0 ldi r30,pm_lo8(1f)
2826 1baa F0E0 ldi r31,pm_hi8(1f)
2827 1bac 0C94 0000 jmp __prologue_saves__+0
2828 1:
2829 /* prologue end (size=6) */
2830 1bb0 0E94 0000 call Mittelwert
2831 1bb4 4091 0000 lds r20,PlatinenVersion
2832 1bb8 4C30 cpi r20,lo8(12)
2833 1bba 00F4 brsh .L371
2834 1bbc 299A sbi 37-0x20,1
2835 1bbe 00C0 rjmp .L373
2836 .L371:
2837 1bc0 2998 cbi 37-0x20,1
2838 .L373:
2839 1bc2 2091 0000 lds r18,StickGas
2840 1bc6 3091 0000 lds r19,(StickGas)+1
2841 1bca 8091 0000 lds r24,MIN_GAS
2842 1bce E82E mov r14,r24
2843 1bd0 FF24 clr r15
2844 1bd2 8701 movw r16,r14
2845 1bd4 065F subi r16,lo8(-(10))
2846 1bd6 1F4F sbci r17,hi8(-(10))
2847 1bd8 1D8B std Y+21,r17
2848 1bda 0C8B std Y+20,r16
2849 1bdc 0217 cp r16,r18
2850 1bde 1307 cpc r17,r19
2851 1be0 04F4 brge .L374
2852 1be2 3D8B std Y+21,r19
2853 1be4 2C8B std Y+20,r18
2854 .L374:
2855 1be6 8091 0000 lds r24,SenderOkay
2856 1bea 8436 cpi r24,lo8(100)
2857 1bec 00F0 brlo .+2
2858 1bee 00C0 rjmp .L375
2859 1bf0 8091 0000 lds r24,RcLostTimer.3312
2860 1bf4 9091 0000 lds r25,(RcLostTimer.3312)+1
2861 1bf8 0097 sbiw r24,0
2862 1bfa 01F0 breq .L377
2863 1bfc 0197 sbiw r24,1
2864 1bfe 9093 0000 sts (RcLostTimer.3312)+1,r25
2865 1c02 8093 0000 sts RcLostTimer.3312,r24
2866 1c06 00C0 rjmp .L379
2867 .L377:
2868 1c08 1092 0000 sts MotorenEin,__zero_reg__
2869 1c0c 8091 0000 lds r24,FC_StatusFlags
2870 1c10 8F7E andi r24,lo8(-17)
2871 1c12 8093 0000 sts FC_StatusFlags,r24
2872 .L379:
2873 1c16 4A30 cpi r20,lo8(10)
2874 1c18 01F0 breq .L380
2875 1c1a 4431 cpi r20,lo8(20)
2876 1c1c 00F0 brlo .L382
2877 .L380:
2878 1c1e 289A sbi 37-0x20,0
2879 1c20 00C0 rjmp .L383
2880 .L382:
2881 1c22 2898 cbi 37-0x20,0
2882 .L383:
2883 1c24 8091 0000 lds r24,modell_fliegt
2884 1c28 9091 0000 lds r25,(modell_fliegt)+1
2885 1c2c 895E subi r24,lo8(1001)
2886 1c2e 9340 sbci r25,hi8(1001)
2887 1c30 00F0 brlo .L384
2888 1c32 8091 0000 lds r24,EE_Parameter+37
2889 1c36 282F mov r18,r24
2890 1c38 30E0 ldi r19,lo8(0)
2891 1c3a 3D8B std Y+21,r19
2892 1c3c 2C8B std Y+20,r18
2893 1c3e 8091 0000 lds r24,FC_StatusFlags
2894 1c42 8061 ori r24,lo8(16)
2895 1c44 8093 0000 sts FC_StatusFlags,r24
2896 1c48 A091 0000 lds r26,EE_Parameter+1
2897 1c4c B0E0 ldi r27,lo8(0)
2898 1c4e AA0F lsl r26
2899 1c50 BB1F rol r27
2900 1c52 FD01 movw r30,r26
2901 1c54 E050 subi r30,lo8(-(PPM_diff))
2902 1c56 F040 sbci r31,hi8(-(PPM_diff))
2903 1c58 1182 std Z+1,__zero_reg__
2904 1c5a 1082 st Z,__zero_reg__
2905 1c5c E091 0000 lds r30,EE_Parameter+2
2906 1c60 2E2F mov r18,r30
2907 1c62 30E0 ldi r19,lo8(0)
2908 1c64 220F lsl r18
2909 1c66 331F rol r19
2910 1c68 C901 movw r24,r18
2911 1c6a 8050 subi r24,lo8(-(PPM_diff))
2912 1c6c 9040 sbci r25,hi8(-(PPM_diff))
2913 1c6e FC01 movw r30,r24
2914 1c70 1182 std Z+1,__zero_reg__
2915 1c72 1082 st Z,__zero_reg__
2916 1c74 A050 subi r26,lo8(-(PPM_in))
2917 1c76 B040 sbci r27,hi8(-(PPM_in))
2918 1c78 1196 adiw r26,1
2919 1c7a 1C92 st X,__zero_reg__
2920 1c7c 1E92 st -X,__zero_reg__
2921 1c7e 2050 subi r18,lo8(-(PPM_in))
2922 1c80 3040 sbci r19,hi8(-(PPM_in))
2923 1c82 D901 movw r26,r18
2924 1c84 1196 adiw r26,1
2925 1c86 1C92 st X,__zero_reg__
2926 1c88 1E92 st -X,__zero_reg__
2927 1c8a E091 0000 lds r30,EE_Parameter+4
2928 1c8e F0E0 ldi r31,lo8(0)
2929 1c90 EE0F lsl r30
2930 1c92 FF1F rol r31
2931 1c94 E050 subi r30,lo8(-(PPM_in))
2932 1c96 F040 sbci r31,hi8(-(PPM_in))
2933 1c98 1182 std Z+1,__zero_reg__
2934 1c9a 1082 st Z,__zero_reg__
2935 1c9c 00C0 rjmp .L386
2936 .L384:
2937 1c9e 1092 0000 sts MotorenEin,__zero_reg__
2938 1ca2 00C0 rjmp .L386
2939 .L375:
2940 1ca4 8091 0000 lds r24,SenderOkay
2941 1ca8 8D38 cpi r24,lo8(-115)
2942 1caa 00F4 brsh .+2
2943 1cac 00C0 rjmp .L386
2944 1cae 8091 0000 lds r24,FC_StatusFlags
2945 1cb2 8F7E andi r24,lo8(-17)
2946 1cb4 8093 0000 sts FC_StatusFlags,r24
2947 1cb8 8091 0000 lds r24,EE_Parameter+38
2948 1cbc 22E3 ldi r18,lo8(50)
2949 1cbe 829F mul r24,r18
2950 1cc0 C001 movw r24,r0
2951 1cc2 1124 clr r1
2952 1cc4 9093 0000 sts (RcLostTimer.3312)+1,r25
2953 1cc8 8093 0000 sts RcLostTimer.3312,r24
2954 1ccc EC89 ldd r30,Y+20
2955 1cce FD89 ldd r31,Y+21
2956 1cd0 B997 sbiw r30,41
2957 1cd2 04F0 brlt .L388
2958 1cd4 8091 0000 lds r24,MotorenEin
2959 1cd8 8823 tst r24
2960 1cda 01F0 breq .L388
2961 1cdc 8091 0000 lds r24,modell_fliegt
2962 1ce0 9091 0000 lds r25,(modell_fliegt)+1
2963 1ce4 FFEF ldi r31,hi8(-1)
2964 1ce6 8F3F cpi r24,lo8(-1)
2965 1ce8 9F07 cpc r25,r31
2966 1cea 01F0 breq .L388
2967 1cec 0196 adiw r24,1
2968 1cee 9093 0000 sts (modell_fliegt)+1,r25
2969 1cf2 8093 0000 sts modell_fliegt,r24
2970 .L388:
2971 1cf6 8091 0000 lds r24,modell_fliegt
2972 1cfa 9091 0000 lds r25,(modell_fliegt)+1
2973 1cfe 8F3F cpi r24,255
2974 1d00 9105 cpc r25,__zero_reg__
2975 1d02 01F0 breq .+2
2976 1d04 00F4 brsh .L392
2977 1d06 1092 0000 sts SummeNick,__zero_reg__
2978 1d0a 1092 0000 sts (SummeNick)+1,__zero_reg__
2979 1d0e 1092 0000 sts (SummeNick)+2,__zero_reg__
2980 1d12 1092 0000 sts (SummeNick)+3,__zero_reg__
2981 1d16 1092 0000 sts SummeRoll,__zero_reg__
2982 1d1a 1092 0000 sts (SummeRoll)+1,__zero_reg__
2983 1d1e 1092 0000 sts (SummeRoll)+2,__zero_reg__
2984 1d22 1092 0000 sts (SummeRoll)+3,__zero_reg__
2985 1d26 1092 0000 sts sollGier.3307,__zero_reg__
2986 1d2a 1092 0000 sts (sollGier.3307)+1,__zero_reg__
2987 1d2e 1092 0000 sts (sollGier.3307)+2,__zero_reg__
2988 1d32 1092 0000 sts (sollGier.3307)+3,__zero_reg__
2989 1d36 1092 0000 sts Mess_Integral_Gier,__zero_reg__
2990 1d3a 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
2991 1d3e 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
2992 1d42 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
2993 1d46 8A3F cpi r24,250
2994 1d48 9105 cpc r25,__zero_reg__
2995 1d4a 01F4 brne .L394
2996 1d4c 81E0 ldi r24,lo8(1)
2997 1d4e 8093 0000 sts NeueKompassRichtungMerken.3317,r24
2998 1d52 00C0 rjmp .L394
2999 .L392:
3000 1d54 8091 0000 lds r24,FC_StatusFlags
3001 1d58 8260 ori r24,lo8(2)
3002 1d5a 8093 0000 sts FC_StatusFlags,r24
3003 .L394:
3004 1d5e E091 0000 lds r30,EE_Parameter+3
3005 1d62 F0E0 ldi r31,lo8(0)
3006 1d64 EE0F lsl r30
3007 1d66 FF1F rol r31
3008 1d68 E050 subi r30,lo8(-(PPM_in))
3009 1d6a F040 sbci r31,hi8(-(PPM_in))
3010 1d6c 8081 ld r24,Z
3011 1d6e 9181 ldd r25,Z+1
3012 1d70 8135 cpi r24,81
3013 1d72 9105 cpc r25,__zero_reg__
3014 1d74 04F4 brge .+2
3015 1d76 00C0 rjmp .L396
3016 1d78 8091 0000 lds r24,MotorenEin
3017 1d7c 8823 tst r24
3018 1d7e 01F0 breq .+2
3019 1d80 00C0 rjmp .L396
3020 1d82 8091 0000 lds r24,EE_Parameter+4
3021 1d86 E82F mov r30,r24
3022 1d88 F0E0 ldi r31,lo8(0)
3023 1d8a EE0F lsl r30
3024 1d8c FF1F rol r31
3025 1d8e E050 subi r30,lo8(-(PPM_in))
3026 1d90 F040 sbci r31,hi8(-(PPM_in))
3027 1d92 8081 ld r24,Z
3028 1d94 9181 ldd r25,Z+1
3029 1d96 8C34 cpi r24,76
3030 1d98 9105 cpc r25,__zero_reg__
3031 1d9a 04F4 brge .+2
3032 1d9c 00C0 rjmp .L399
3033 1d9e 8091 0000 lds r24,delay_neutral.3313
3034 1da2 8F5F subi r24,lo8(-(1))
3035 1da4 8093 0000 sts delay_neutral.3313,r24
3036 1da8 893C cpi r24,lo8(-55)
3037 1daa 00F4 brsh .+2
3038 1dac 00C0 rjmp .L396
3039 1dae 4C30 cpi r20,lo8(12)
3040 1db0 00F4 brsh .L402
3041 1db2 2998 cbi 37-0x20,1
3042 1db4 00C0 rjmp .L404
3043 .L402:
3044 1db6 299A sbi 37-0x20,1
3045 .L404:
3046 1db8 1092 0000 sts MotorenEin,__zero_reg__
3047 1dbc 1092 0000 sts delay_neutral.3313,__zero_reg__
3048 1dc0 1092 0000 sts (modell_fliegt)+1,__zero_reg__
3049 1dc4 1092 0000 sts modell_fliegt,__zero_reg__
3050 1dc8 8091 0000 lds r24,EE_Parameter+1
3051 1dcc 282F mov r18,r24
3052 1dce 30E0 ldi r19,lo8(0)
3053 1dd0 F901 movw r30,r18
3054 1dd2 EE0F lsl r30
3055 1dd4 FF1F rol r31
3056 1dd6 E050 subi r30,lo8(-(PPM_in))
3057 1dd8 F040 sbci r31,hi8(-(PPM_in))
3058 1dda 8081 ld r24,Z
3059 1ddc 9181 ldd r25,Z+1
3060 1dde 8734 cpi r24,71
3061 1de0 9105 cpc r25,__zero_reg__
3062 1de2 04F4 brge .L405
3063 1de4 E091 0000 lds r30,EE_Parameter+2
3064 1de8 F0E0 ldi r31,lo8(0)
3065 1dea EE0F lsl r30
3066 1dec FF1F rol r31
3067 1dee E050 subi r30,lo8(-(PPM_in))
3068 1df0 F040 sbci r31,hi8(-(PPM_in))
3069 1df2 0190 ld __tmp_reg__,Z+
3070 1df4 F081 ld r31,Z
3071 1df6 E02D mov r30,__tmp_reg__
3072 1df8 F7FF sbrs r31,7
3073 1dfa 00C0 rjmp .L408
3074 1dfc F095 com r31
3075 1dfe E195 neg r30
3076 1e00 FF4F sbci r31,lo8(-1)
3077 .L408:
3078 1e02 E734 cpi r30,71
3079 1e04 F105 cpc r31,__zero_reg__
3080 1e06 04F4 brge .+2
3081 1e08 00C0 rjmp .L407
3082 .L405:
3083 1e0a 8091 0000 lds r24,EE_Parameter+2
3084 1e0e 682F mov r22,r24
3085 1e10 70E0 ldi r23,lo8(0)
3086 1e12 DB01 movw r26,r22
3087 1e14 AA0F lsl r26
3088 1e16 BB1F rol r27
3089 1e18 A050 subi r26,lo8(-(PPM_in))
3090 1e1a B040 sbci r27,hi8(-(PPM_in))
3091 1e1c 8D91 ld r24,X+
3092 1e1e 9C91 ld r25,X
3093 1e20 1197 sbiw r26,1
3094 1e22 8734 cpi r24,71
3095 1e24 9105 cpc r25,__zero_reg__
3096 1e26 04F0 brlt .L409
3097 1e28 F901 movw r30,r18
3098 1e2a EE0F lsl r30
3099 1e2c FF1F rol r31
3100 1e2e E050 subi r30,lo8(-(PPM_in))
3101 1e30 F040 sbci r31,hi8(-(PPM_in))
3102 1e32 8081 ld r24,Z
3103 1e34 9181 ldd r25,Z+1
3104 .L409:
3105 1e36 8D91 ld r24,X+
3106 1e38 9C91 ld r25,X
3107 1e3a 8734 cpi r24,71
3108 1e3c 9105 cpc r25,__zero_reg__
3109 1e3e 04F0 brlt .L411
3110 1e40 F901 movw r30,r18
3111 1e42 EE0F lsl r30
3112 1e44 FF1F rol r31
3113 1e46 E050 subi r30,lo8(-(PPM_in))
3114 1e48 F040 sbci r31,hi8(-(PPM_in))
3115 1e4a 8081 ld r24,Z
3116 1e4c 9181 ldd r25,Z+1
3117 1e4e 8734 cpi r24,71
3118 1e50 9105 cpc r25,__zero_reg__
3119 1e52 04F0 brlt .L411
3120 1e54 42E0 ldi r20,lo8(2)
3121 1e56 00C0 rjmp .L414
3122 .L411:
3123 1e58 41E0 ldi r20,lo8(1)
3124 .L414:
3125 1e5a FB01 movw r30,r22
3126 1e5c EE0F lsl r30
3127 1e5e FF1F rol r31
3128 1e60 E050 subi r30,lo8(-(PPM_in))
3129 1e62 F040 sbci r31,hi8(-(PPM_in))
3130 1e64 8081 ld r24,Z
3131 1e66 9181 ldd r25,Z+1
3132 1e68 8634 cpi r24,70
3133 1e6a 9105 cpc r25,__zero_reg__
3134 1e6c 04F4 brge .L415
3135 1e6e F901 movw r30,r18
3136 1e70 EE0F lsl r30
3137 1e72 FF1F rol r31
3138 1e74 E050 subi r30,lo8(-(PPM_in))
3139 1e76 F040 sbci r31,hi8(-(PPM_in))
3140 1e78 8081 ld r24,Z
3141 1e7a 9181 ldd r25,Z+1
3142 1e7c 8734 cpi r24,71
3143 1e7e 9105 cpc r25,__zero_reg__
3144 1e80 04F0 brlt .L415
3145 1e82 43E0 ldi r20,lo8(3)
3146 .L415:
3147 1e84 FB01 movw r30,r22
3148 1e86 EE0F lsl r30
3149 1e88 FF1F rol r31
3150 1e8a E050 subi r30,lo8(-(PPM_in))
3151 1e8c F040 sbci r31,hi8(-(PPM_in))
3152 1e8e 8081 ld r24,Z
3153 1e90 9181 ldd r25,Z+1
3154 1e92 8A5B subi r24,lo8(-70)
3155 1e94 9F4F sbci r25,hi8(-70)
3156 1e96 04F4 brge .L418
3157 1e98 F901 movw r30,r18
3158 1e9a EE0F lsl r30
3159 1e9c FF1F rol r31
3160 1e9e E050 subi r30,lo8(-(PPM_in))
3161 1ea0 F040 sbci r31,hi8(-(PPM_in))
3162 1ea2 8081 ld r24,Z
3163 1ea4 9181 ldd r25,Z+1
3164 1ea6 8734 cpi r24,71
3165 1ea8 9105 cpc r25,__zero_reg__
3166 1eaa 04F0 brlt .L418
3167 1eac 44E0 ldi r20,lo8(4)
3168 .L418:
3169 1eae 660F lsl r22
3170 1eb0 771F rol r23
3171 1eb2 6050 subi r22,lo8(-(PPM_in))
3172 1eb4 7040 sbci r23,hi8(-(PPM_in))
3173 1eb6 DB01 movw r26,r22
3174 1eb8 8D91 ld r24,X+
3175 1eba 9C91 ld r25,X
3176 1ebc 8A5B subi r24,lo8(-70)
3177 1ebe 9F4F sbci r25,hi8(-70)
3178 1ec0 04F4 brge .L421
3179 1ec2 220F lsl r18
3180 1ec4 331F rol r19
3181 1ec6 2050 subi r18,lo8(-(PPM_in))
3182 1ec8 3040 sbci r19,hi8(-(PPM_in))
3183 1eca F901 movw r30,r18
3184 1ecc 8081 ld r24,Z
3185 1ece 9181 ldd r25,Z+1
3186 1ed0 8634 cpi r24,70
3187 1ed2 9105 cpc r25,__zero_reg__
3188 1ed4 04F4 brge .L421
3189 1ed6 45E0 ldi r20,lo8(5)
3190 .L421:
3191 1ed8 842F mov r24,r20
3192 1eda 0E94 0000 call SetActiveParamSet
3193 .L407:
3194 1ede E091 0000 lds r30,EE_Parameter+2
3195 1ee2 F0E0 ldi r31,lo8(0)
3196 1ee4 EE0F lsl r30
3197 1ee6 FF1F rol r31
3198 1ee8 E050 subi r30,lo8(-(PPM_in))
3199 1eea F040 sbci r31,hi8(-(PPM_in))
3200 1eec 0190 ld __tmp_reg__,Z+
3201 1eee F081 ld r31,Z
3202 1ef0 E02D mov r30,__tmp_reg__
3203 1ef2 F7FF sbrs r31,7
3204 1ef4 00C0 rjmp .L425
3205 1ef6 F095 com r31
3206 1ef8 E195 neg r30
3207 1efa FF4F sbci r31,lo8(-1)
3208 .L425:
3209 1efc 7E97 sbiw r30,30
3210 1efe 04F4 brge .L424
3211 1f00 E091 0000 lds r30,EE_Parameter+1
3212 1f04 F0E0 ldi r31,lo8(0)
3213 1f06 EE0F lsl r30
3214 1f08 FF1F rol r31
3215 1f0a E050 subi r30,lo8(-(PPM_in))
3216 1f0c F040 sbci r31,hi8(-(PPM_in))
3217 1f0e 8081 ld r24,Z
3218 1f10 9181 ldd r25,Z+1
3219 1f12 8A5B subi r24,lo8(-70)
3220 1f14 9F4F sbci r25,hi8(-70)
3221 1f16 04F4 brge .L424
3222 1f18 81E0 ldi r24,lo8(1)
3223 1f1a 8093 0000 sts WinkelOut+6,r24
3224 1f1e 88EE ldi r24,lo8(1000)
3225 1f20 93E0 ldi r25,hi8(1000)
3226 1f22 9093 0000 sts (beeptime)+1,r25
3227 1f26 8093 0000 sts beeptime,r24
3228 1f2a 00C0 rjmp .L396
3229 .L424:
3230 1f2c 0E94 0000 call GetActiveParamSet
3231 1f30 0E94 0000 call ParamSet_ReadFromEEProm
3232 1f34 80E0 ldi r24,lo8(0)
3233 1f36 0E94 0000 call LipoDetection
3234 1f3a 8091 0000 lds r24,EE_Parameter+39
3235 1f3e 0E94 0000 call LIBFC_ReceiverInit
3236 1f42 8091 0000 lds r24,EE_Parameter+13
3237 1f46 80FF sbrs r24,0
3238 1f48 00C0 rjmp .L428
3239 1f4a 8091 0000 lds r24,MessLuftdruck
3240 1f4e 9091 0000 lds r25,(MessLuftdruck)+1
3241 1f52 875B subi r24,lo8(951)
3242 1f54 9340 sbci r25,hi8(951)
3243 1f56 00F4 brsh .L430
3244 1f58 8091 0000 lds r24,MessLuftdruck
3245 1f5c 9091 0000 lds r25,(MessLuftdruck)+1
3246 1f60 8E5E subi r24,lo8(750)
3247 1f62 9240 sbci r25,hi8(750)
3248 1f64 00F4 brsh .L428
3249 .L430:
3250 1f66 0E94 0000 call SucheLuftruckOffset
3251 .L428:
3252 1f6a 1092 0000 sts ServoActive,__zero_reg__
3253 1f6e 80E0 ldi r24,lo8(0)
3254 1f70 0E94 0000 call SetNeutral
3255 1f74 81E0 ldi r24,lo8(1)
3256 1f76 8093 0000 sts calibration_done.3316,r24
3257 1f7a 8093 0000 sts ServoActive,r24
3258 1f7e 579A sbi 42-0x20,7
3259 1f80 00C0 rjmp .L913
3260 .L399:
3261 1f82 8081 ld r24,Z
3262 1f84 9181 ldd r25,Z+1
3263 1f86 855B subi r24,lo8(-75)
3264 1f88 9F4F sbci r25,hi8(-75)
3265 1f8a 04F4 brge .L432
3266 1f8c 8091 0000 lds r24,delay_neutral.3313
3267 1f90 8F5F subi r24,lo8(-(1))
3268 1f92 8093 0000 sts delay_neutral.3313,r24
3269 1f96 893C cpi r24,lo8(-55)
3270 1f98 00F0 brlo .L396
3271 1f9a 4C30 cpi r20,lo8(12)
3272 1f9c 00F4 brsh .L435
3273 1f9e 2998 cbi 37-0x20,1
3274 1fa0 00C0 rjmp .L437
3275 .L435:
3276 1fa2 299A sbi 37-0x20,1
3277 .L437:
3278 1fa4 1092 0000 sts MotorenEin,__zero_reg__
3279 1fa8 1092 0000 sts delay_neutral.3313,__zero_reg__
3280 1fac 1092 0000 sts (modell_fliegt)+1,__zero_reg__
3281 1fb0 1092 0000 sts modell_fliegt,__zero_reg__
3282 1fb4 81E0 ldi r24,lo8(1)
3283 1fb6 0E94 0000 call SetNeutral
3284 1fba 81E0 ldi r24,lo8(1)
3285 1fbc 8093 0000 sts calibration_done.3316,r24
3286 .L913:
3287 1fc0 0E94 0000 call GetActiveParamSet
3288 1fc4 68E7 ldi r22,lo8(120)
3289 1fc6 70E0 ldi r23,hi8(120)
3290 1fc8 0E94 0000 call Piep
3291 1fcc 00C0 rjmp .L396
3292 .L432:
3293 1fce 1092 0000 sts delay_neutral.3313,__zero_reg__
3294 .L396:
3295 1fd2 E091 0000 lds r30,EE_Parameter+3
3296 1fd6 F0E0 ldi r31,lo8(0)
3297 1fd8 EE0F lsl r30
3298 1fda FF1F rol r31
3299 1fdc E050 subi r30,lo8(-(PPM_in))
3300 1fde F040 sbci r31,hi8(-(PPM_in))
3301 1fe0 8081 ld r24,Z
3302 1fe2 9181 ldd r25,Z+1
3303 1fe4 8B5A subi r24,lo8(-85)
3304 1fe6 9F4F sbci r25,hi8(-85)
3305 1fe8 04F0 brlt .+2
3306 1fea 00C0 rjmp .L386
3307 1fec 8091 0000 lds r24,MotorenEin
3308 1ff0 E091 0000 lds r30,EE_Parameter+4
3309 1ff4 8823 tst r24
3310 1ff6 01F0 breq .+2
3311 1ff8 00C0 rjmp .L439
3312 1ffa F0E0 ldi r31,lo8(0)
3313 1ffc EE0F lsl r30
3314 1ffe FF1F rol r31
3315 2000 E050 subi r30,lo8(-(PPM_in))
3316 2002 F040 sbci r31,hi8(-(PPM_in))
3317 2004 8081 ld r24,Z
3318 2006 9181 ldd r25,Z+1
3319 2008 855B subi r24,lo8(-75)
3320 200a 9F4F sbci r25,hi8(-75)
3321 200c 04F0 brlt .+2
3322 200e 00C0 rjmp .L441
3323 2010 2091 0000 lds r18,EE_Parameter+99
3324 2014 E22F mov r30,r18
3325 2016 F0E0 ldi r31,lo8(0)
3326 2018 EE0F lsl r30
3327 201a FF1F rol r31
3328 201c E050 subi r30,lo8(-(PPM_in))
3329 201e F040 sbci r31,hi8(-(PPM_in))
3330 2020 8081 ld r24,Z
3331 2022 9181 ldd r25,Z+1
3332 2024 855B subi r24,lo8(-75)
3333 2026 9F4F sbci r25,hi8(-75)
3334 2028 04F0 brlt .L443
3335 202a 2223 tst r18
3336 202c 01F0 breq .+2
3337 202e 00C0 rjmp .L441
3338 .L443:
3339 2030 8091 0000 lds r24,delay_einschalten.3314
3340 2034 8F5F subi r24,lo8(-(1))
3341 2036 8093 0000 sts delay_einschalten.3314,r24
3342 203a 893C cpi r24,lo8(-55)
3343 203c 00F4 brsh .+2
3344 203e 00C0 rjmp .L386
3345 2040 1092 0000 sts delay_einschalten.3314,__zero_reg__
3346 2044 8091 0000 lds r24,VersionInfo+5
3347 2048 8823 tst r24
3348 204a 01F0 breq .+2
3349 204c 00C0 rjmp .L446
3350 204e 8091 0000 lds r24,calibration_done.3316
3351 2052 8823 tst r24
3352 2054 01F4 brne .+2
3353 2056 00C0 rjmp .L446
3354 2058 81E0 ldi r24,lo8(1)
3355 205a 90E0 ldi r25,hi8(1)
3356 205c 9093 0000 sts (modell_fliegt)+1,r25
3357 2060 8093 0000 sts modell_fliegt,r24
3358 2064 81E0 ldi r24,lo8(1)
3359 2066 8093 0000 sts MotorenEin,r24
3360 206a 1092 0000 sts sollGier.3307,__zero_reg__
3361 206e 1092 0000 sts (sollGier.3307)+1,__zero_reg__
3362 2072 1092 0000 sts (sollGier.3307)+2,__zero_reg__
3363 2076 1092 0000 sts (sollGier.3307)+3,__zero_reg__
3364 207a 1092 0000 sts Mess_Integral_Gier,__zero_reg__
3365 207e 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
3366 2082 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
3367 2086 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
3368 208a 1092 0000 sts Mess_Integral_Gier2,__zero_reg__
3369 208e 1092 0000 sts (Mess_Integral_Gier2)+1,__zero_reg__
3370 2092 1092 0000 sts (Mess_Integral_Gier2)+2,__zero_reg__
3371 2096 1092 0000 sts (Mess_Integral_Gier2)+3,__zero_reg__
3372 209a E090 0000 lds r14,EE_Parameter+28
3373 209e FF24 clr r15
3374 20a0 00E0 ldi r16,lo8(0)
3375 20a2 10E0 ldi r17,hi8(0)
3376 20a4 6091 0000 lds r22,Mittelwert_AccNick
3377 20a8 7091 0000 lds r23,(Mittelwert_AccNick)+1
3378 20ac 8827 clr r24
3379 20ae 77FD sbrc r23,7
3380 20b0 8095 com r24
3381 20b2 982F mov r25,r24
3382 20b4 A801 movw r20,r16
3383 20b6 9701 movw r18,r14
3384 20b8 0E94 0000 call __mulsi3
3385 20bc 6093 0000 sts Mess_IntegralNick,r22
3386 20c0 7093 0000 sts (Mess_IntegralNick)+1,r23
3387 20c4 8093 0000 sts (Mess_IntegralNick)+2,r24
3388 20c8 9093 0000 sts (Mess_IntegralNick)+3,r25
3389 20cc 6091 0000 lds r22,Mittelwert_AccRoll
3390 20d0 7091 0000 lds r23,(Mittelwert_AccRoll)+1
3391 20d4 8827 clr r24
3392 20d6 77FD sbrc r23,7
3393 20d8 8095 com r24
3394 20da 982F mov r25,r24
3395 20dc 0E94 0000 call __mulsi3
3396 20e0 6093 0000 sts Mess_IntegralRoll,r22
3397 20e4 7093 0000 sts (Mess_IntegralRoll)+1,r23
3398 20e8 8093 0000 sts (Mess_IntegralRoll)+2,r24
3399 20ec 9093 0000 sts (Mess_IntegralRoll)+3,r25
3400 20f0 8091 0000 lds r24,IntegralNick
3401 20f4 9091 0000 lds r25,(IntegralNick)+1
3402 20f8 A091 0000 lds r26,(IntegralNick)+2
3403 20fc B091 0000 lds r27,(IntegralNick)+3
3404 2100 8093 0000 sts Mess_IntegralNick2,r24
3405 2104 9093 0000 sts (Mess_IntegralNick2)+1,r25
3406 2108 A093 0000 sts (Mess_IntegralNick2)+2,r26
3407 210c B093 0000 sts (Mess_IntegralNick2)+3,r27
3408 2110 8091 0000 lds r24,IntegralRoll
3409 2114 9091 0000 lds r25,(IntegralRoll)+1
3410 2118 A091 0000 lds r26,(IntegralRoll)+2
3411 211c B091 0000 lds r27,(IntegralRoll)+3
3412 2120 8093 0000 sts Mess_IntegralRoll2,r24
3413 2124 9093 0000 sts (Mess_IntegralRoll2)+1,r25
3414 2128 A093 0000 sts (Mess_IntegralRoll2)+2,r26
3415 212c B093 0000 sts (Mess_IntegralRoll2)+3,r27
3416 2130 1092 0000 sts SummeNick,__zero_reg__
3417 2134 1092 0000 sts (SummeNick)+1,__zero_reg__
3418 2138 1092 0000 sts (SummeNick)+2,__zero_reg__
3419 213c 1092 0000 sts (SummeNick)+3,__zero_reg__
3420 2140 1092 0000 sts SummeRoll,__zero_reg__
3421 2144 1092 0000 sts (SummeRoll)+1,__zero_reg__
3422 2148 1092 0000 sts (SummeRoll)+2,__zero_reg__
3423 214c 1092 0000 sts (SummeRoll)+3,__zero_reg__
3424 2150 8091 0000 lds r24,FC_StatusFlags
3425 2154 8860 ori r24,lo8(8)
3426 2156 8093 0000 sts FC_StatusFlags,r24
3427 215a 8091 0000 lds r24,EE_Parameter+97
3428 215e 2FE0 ldi r18,lo8(15)
3429 2160 829F mul r24,r18
3430 2162 C001 movw r24,r0
3431 2164 1124 clr r1
3432 2166 2091 0000 lds r18,KompassValue
3433 216a 3091 0000 lds r19,(KompassValue)+1
3434 216e 820F add r24,r18
3435 2170 931F adc r25,r19
3436 2172 68E6 ldi r22,lo8(360)
3437 2174 71E0 ldi r23,hi8(360)
3438 2176 0E94 0000 call __divmodhi4
3439 217a 62E0 ldi r22,lo8(2)
3440 217c 70E0 ldi r23,hi8(2)
3441 217e 0E94 0000 call __divmodhi4
3442 2182 6093 0000 sts ControlHeading,r22
3443 2186 00C0 rjmp .L386
3444 .L446:
3445 2188 8CED ldi r24,lo8(1500)
3446 218a 95E0 ldi r25,hi8(1500)
3447 218c 9093 0000 sts (beeptime)+1,r25
3448 2190 8093 0000 sts beeptime,r24
3449 2194 00C0 rjmp .L386
3450 .L441:
3451 2196 1092 0000 sts delay_einschalten.3314,__zero_reg__
3452 219a 00C0 rjmp .L386
3453 .L439:
3454 219c F0E0 ldi r31,lo8(0)
3455 219e EE0F lsl r30
3456 21a0 FF1F rol r31
3457 21a2 E050 subi r30,lo8(-(PPM_in))
3458 21a4 F040 sbci r31,hi8(-(PPM_in))
3459 21a6 8081 ld r24,Z
3460 21a8 9181 ldd r25,Z+1
3461 21aa 8C34 cpi r24,76
3462 21ac 9105 cpc r25,__zero_reg__
3463 21ae 04F0 brlt .L449
3464 21b0 2091 0000 lds r18,EE_Parameter+99
3465 21b4 E22F mov r30,r18
3466 21b6 F0E0 ldi r31,lo8(0)
3467 21b8 EE0F lsl r30
3468 21ba FF1F rol r31
3469 21bc E050 subi r30,lo8(-(PPM_in))
3470 21be F040 sbci r31,hi8(-(PPM_in))
3471 21c0 8081 ld r24,Z
3472 21c2 9181 ldd r25,Z+1
3473 21c4 855B subi r24,lo8(-75)
3474 21c6 9F4F sbci r25,hi8(-75)
3475 21c8 04F0 brlt .L451
3476 21ca 2223 tst r18
3477 21cc 01F4 brne .L449
3478 .L451:
3479 21ce 8091 0000 lds r24,delay_ausschalten.3315
3480 21d2 8F5F subi r24,lo8(-(1))
3481 21d4 8093 0000 sts delay_ausschalten.3315,r24
3482 21d8 893C cpi r24,lo8(-55)
3483 21da 00F0 brlo .L386
3484 21dc 1092 0000 sts MotorenEin,__zero_reg__
3485 21e0 1092 0000 sts delay_ausschalten.3315,__zero_reg__
3486 21e4 1092 0000 sts (modell_fliegt)+1,__zero_reg__
3487 21e8 1092 0000 sts modell_fliegt,__zero_reg__
3488 21ec 00C0 rjmp .L386
3489 .L449:
3490 21ee 1092 0000 sts delay_ausschalten.3315,__zero_reg__
3491 .L386:
3492 21f2 8091 0000 lds r24,NewPpmData
3493 21f6 8150 subi r24,lo8(-(-1))
3494 21f8 8093 0000 sts NewPpmData,r24
3495 21fc 8091 0000 lds r24,NewPpmData
3496 2200 8F3F cpi r24,lo8(-1)
3497 2202 01F0 breq .L454
3498 2204 8091 0000 lds r24,FC_StatusFlags
3499 2208 84FF sbrs r24,4
3500 220a 00C0 rjmp .L456
3501 .L454:
3502 220c 0E94 0000 call ParameterZuordnung
3503 2210 8091 0000 lds r24,EE_Parameter+1
3504 2214 882E mov r8,r24
3505 2216 9924 clr r9
3506 2218 D401 movw r26,r8
3507 221a AA0F lsl r26
3508 221c BB1F rol r27
3509 221e FD01 movw r30,r26
3510 2220 E050 subi r30,lo8(-(PPM_in))
3511 2222 F040 sbci r31,hi8(-(PPM_in))
3512 2224 2081 ld r18,Z
3513 2226 3181 ldd r19,Z+1
3514 2228 8091 0000 lds r24,EE_Parameter+23
3515 222c 682E mov r6,r24
3516 222e 7724 clr r7
3517 2230 A050 subi r26,lo8(-(PPM_diff))
3518 2232 B040 sbci r27,hi8(-(PPM_diff))
3519 2234 ED91 ld r30,X+
3520 2236 FC91 ld r31,X
3521 2238 0091 0000 lds r16,EE_Parameter+24
3522 223c 10E0 ldi r17,lo8(0)
3523 223e 269D mul r18,r6
3524 2240 C001 movw r24,r0
3525 2242 279D mul r18,r7
3526 2244 900D add r25,r0
3527 2246 369D mul r19,r6
3528 2248 900D add r25,r0
3529 224a 1124 clr r1
3530 224c 4091 0000 lds r20,stick_nick.3324
3531 2250 5091 0000 lds r21,(stick_nick.3324)+1
3532 2254 9A01 movw r18,r20
3533 2256 220F lsl r18
3534 2258 331F rol r19
3535 225a 240F add r18,r20
3536 225c 351F adc r19,r21
3537 225e 820F add r24,r18
3538 2260 931F adc r25,r19
3539 2262 64E0 ldi r22,lo8(4)
3540 2264 70E0 ldi r23,hi8(4)
3541 2266 0E94 0000 call __divmodhi4
3542 226a 7B01 movw r14,r22
3543 226c E09F mul r30,r16
3544 226e C001 movw r24,r0
3545 2270 E19F mul r30,r17
3546 2272 900D add r25,r0
3547 2274 F09F mul r31,r16
3548 2276 900D add r25,r0
3549 2278 1124 clr r1
3550 227a E80E add r14,r24
3551 227c F91E adc r15,r25
3552 227e F092 0000 sts (stick_nick.3324)+1,r15
3553 2282 E092 0000 sts stick_nick.3324,r14
3554 2286 8091 0000 lds r24,EE_Parameter+2
3555 228a A82E mov r10,r24
3556 228c BB24 clr r11
3557 228e F501 movw r30,r10
3558 2290 EE0F lsl r30
3559 2292 FF1F rol r31
3560 2294 DF01 movw r26,r30
3561 2296 A050 subi r26,lo8(-(PPM_in))
3562 2298 B040 sbci r27,hi8(-(PPM_in))
3563 229a 8D91 ld r24,X+
3564 229c 9C91 ld r25,X
3565 229e E050 subi r30,lo8(-(PPM_diff))
3566 22a0 F040 sbci r31,hi8(-(PPM_diff))
3567 22a2 0190 ld __tmp_reg__,Z+
3568 22a4 F081 ld r31,Z
3569 22a6 E02D mov r30,__tmp_reg__
3570 22a8 DC01 movw r26,r24
3571 22aa A69D mul r26,r6
3572 22ac C001 movw r24,r0
3573 22ae A79D mul r26,r7
3574 22b0 900D add r25,r0
3575 22b2 B69D mul r27,r6
3576 22b4 900D add r25,r0
3577 22b6 1124 clr r1
3578 22b8 4091 0000 lds r20,stick_roll.3325
3579 22bc 5091 0000 lds r21,(stick_roll.3325)+1
3580 22c0 9A01 movw r18,r20
3581 22c2 220F lsl r18
3582 22c4 331F rol r19
3583 22c6 240F add r18,r20
3584 22c8 351F adc r19,r21
3585 22ca 820F add r24,r18
3586 22cc 931F adc r25,r19
3587 22ce 64E0 ldi r22,lo8(4)
3588 22d0 70E0 ldi r23,hi8(4)
3589 22d2 0E94 0000 call __divmodhi4
3590 22d6 2B01 movw r4,r22
3591 22d8 E09F mul r30,r16
3592 22da C001 movw r24,r0
3593 22dc E19F mul r30,r17
3594 22de 900D add r25,r0
3595 22e0 F09F mul r31,r16
3596 22e2 900D add r25,r0
3597 22e4 1124 clr r1
3598 22e6 480E add r4,r24
3599 22e8 591E adc r5,r25
3600 22ea 5092 0000 sts (stick_roll.3325)+1,r5
3601 22ee 4092 0000 sts stick_roll.3325,r4
3602 22f2 8091 0000 lds r24,CareFree
3603 22f6 8823 tst r24
3604 22f8 01F0 breq .L457
3605 22fa C701 movw r24,r14
3606 22fc 64E0 ldi r22,lo8(4)
3607 22fe 70E0 ldi r23,hi8(4)
3608 2300 0E94 0000 call __divmodhi4
3609 2304 6B01 movw r12,r22
3610 2306 C201 movw r24,r4
3611 2308 64E0 ldi r22,lo8(4)
3612 230a 70E0 ldi r23,hi8(4)
3613 230c 0E94 0000 call __divmodhi4
3614 2310 7B01 movw r14,r22
3615 2312 0091 0000 lds r16,FromNC_Rotate_C
3616 2316 1127 clr r17
3617 2318 07FD sbrc r16,7
3618 231a 1095 com r17
3619 231c E091 0000 lds r30,FromNC_Rotate_S
3620 2320 FF27 clr r31
3621 2322 E7FD sbrc r30,7
3622 2324 F095 com r31
3623 2326 6E9F mul r22,r30
3624 2328 C001 movw r24,r0
3625 232a 6F9F mul r22,r31
3626 232c 900D add r25,r0
3627 232e 7E9F mul r23,r30
3628 2330 900D add r25,r0
3629 2332 1124 clr r1
3630 2334 C09E mul r12,r16
3631 2336 9001 movw r18,r0
3632 2338 C19E mul r12,r17
3633 233a 300D add r19,r0
3634 233c D09E mul r13,r16
3635 233e 300D add r19,r0
3636 2340 1124 clr r1
3637 2342 820F add r24,r18
3638 2344 931F adc r25,r19
3639 2346 68E0 ldi r22,lo8(8)
3640 2348 70E0 ldi r23,hi8(8)
3641 234a 0E94 0000 call __divmodhi4
3642 234e 7093 0000 sts (StickNick)+1,r23
3643 2352 6093 0000 sts StickNick,r22
3644 2356 E09E mul r14,r16
3645 2358 C001 movw r24,r0
3646 235a E19E mul r14,r17
3647 235c 900D add r25,r0
3648 235e F09E mul r15,r16
3649 2360 900D add r25,r0
3650 2362 1124 clr r1
3651 2364 CE9E mul r12,r30
3652 2366 9001 movw r18,r0
3653 2368 CF9E mul r12,r31
3654 236a 300D add r19,r0
3655 236c DE9E mul r13,r30
3656 236e 300D add r19,r0
3657 2370 1124 clr r1
3658 2372 00C0 rjmp .L914
3659 .L457:
3660 2374 E091 0000 lds r30,EE_Parameter+97
3661 2378 F0E0 ldi r31,lo8(0)
3662 237a E050 subi r30,lo8(-(sintab))
3663 237c F040 sbci r31,hi8(-(sintab))
3664 237e 0681 ldd r16,Z+6
3665 2380 0093 0000 sts FromNC_Rotate_C,r16
3666 2384 E081 ld r30,Z
3667 2386 E093 0000 sts FromNC_Rotate_S,r30
3668 238a 1127 clr r17
3669 238c 07FD sbrc r16,7
3670 238e 1095 com r17
3671 2390 FF27 clr r31
3672 2392 E7FD sbrc r30,7
3673 2394 F095 com r31
3674 2396 4E9E mul r4,r30
3675 2398 C001 movw r24,r0
3676 239a 4F9E mul r4,r31
3677 239c 900D add r25,r0
3678 239e 5E9E mul r5,r30
3679 23a0 900D add r25,r0
3680 23a2 1124 clr r1
3681 23a4 E09E mul r14,r16
3682 23a6 9001 movw r18,r0
3683 23a8 E19E mul r14,r17
3684 23aa 300D add r19,r0
3685 23ac F09E mul r15,r16
3686 23ae 300D add r19,r0
3687 23b0 1124 clr r1
3688 23b2 820F add r24,r18
3689 23b4 931F adc r25,r19
3690 23b6 68E0 ldi r22,lo8(8)
3691 23b8 70E0 ldi r23,hi8(8)
3692 23ba 0E94 0000 call __divmodhi4
3693 23be 7093 0000 sts (StickNick)+1,r23
3694 23c2 6093 0000 sts StickNick,r22
3695 23c6 409E mul r4,r16
3696 23c8 C001 movw r24,r0
3697 23ca 419E mul r4,r17
3698 23cc 900D add r25,r0
3699 23ce 509E mul r5,r16
3700 23d0 900D add r25,r0
3701 23d2 1124 clr r1
3702 23d4 EE9E mul r14,r30
3703 23d6 9001 movw r18,r0
3704 23d8 EF9E mul r14,r31
3705 23da 300D add r19,r0
3706 23dc FE9E mul r15,r30
3707 23de 300D add r19,r0
3708 23e0 1124 clr r1
3709 .L914:
3710 23e2 821B sub r24,r18
3711 23e4 930B sbc r25,r19
3712 23e6 68E0 ldi r22,lo8(8)
3713 23e8 70E0 ldi r23,hi8(8)
3714 23ea 0E94 0000 call __divmodhi4
3715 23ee 7093 0000 sts (StickRoll)+1,r23
3716 23f2 6093 0000 sts StickRoll,r22
3717 23f6 E091 0000 lds r30,EE_Parameter+4
3718 23fa F0E0 ldi r31,lo8(0)
3719 23fc EE0F lsl r30
3720 23fe FF1F rol r31
3721 2400 E050 subi r30,lo8(-(PPM_in))
3722 2402 F040 sbci r31,hi8(-(PPM_in))
3723 2404 8081 ld r24,Z
3724 2406 9181 ldd r25,Z+1
3725 2408 9095 com r25
3726 240a 8195 neg r24
3727 240c 9F4F sbci r25,lo8(-1)
3728 240e 9093 0000 sts (StickGier)+1,r25
3729 2412 8093 0000 sts StickGier,r24
3730 2416 8330 cpi r24,3
3731 2418 9105 cpc r25,__zero_reg__
3732 241a 04F0 brlt .L460
3733 241c 0297 sbiw r24,2
3734 241e 00C0 rjmp .L915
3735 .L460:
3736 2420 BFEF ldi r27,hi8(-2)
3737 2422 8E3F cpi r24,lo8(-2)
3738 2424 9B07 cpc r25,r27
3739 2426 04F4 brge .L463
3740 2428 0296 adiw r24,2
3741 .L915:
3742 242a 9093 0000 sts (StickGier)+1,r25
3743 242e 8093 0000 sts StickGier,r24
3744 2432 00C0 rjmp .L462
3745 .L463:
3746 2434 1092 0000 sts (StickGier)+1,__zero_reg__
3747 2438 1092 0000 sts StickGier,__zero_reg__
3748 .L462:
3749 243c 8091 0000 lds r24,GPS_Nick2
3750 2440 9091 0000 lds r25,(GPS_Nick2)+1
3751 2444 0027 clr r16
3752 2446 1127 clr r17
3753 2448 081B sub r16,r24
3754 244a 190B sbc r17,r25
3755 244c 8091 0000 lds r24,GPS_Nick
3756 2450 9091 0000 lds r25,(GPS_Nick)+1
3757 2454 081B sub r16,r24
3758 2456 190B sbc r17,r25
3759 2458 8091 0000 lds r24,StickNick
3760 245c 9091 0000 lds r25,(StickNick)+1
3761 2460 080F add r16,r24
3762 2462 191F adc r17,r25
3763 2464 1093 0000 sts (StickNick)+1,r17
3764 2468 0093 0000 sts StickNick,r16
3765 246c 8091 0000 lds r24,GPS_Roll2
3766 2470 9091 0000 lds r25,(GPS_Roll2)+1
3767 2474 CC24 clr r12
3768 2476 DD24 clr r13
3769 2478 C81A sub r12,r24
3770 247a D90A sbc r13,r25
3771 247c 8091 0000 lds r24,GPS_Roll
3772 2480 9091 0000 lds r25,(GPS_Roll)+1
3773 2484 C81A sub r12,r24
3774 2486 D90A sbc r13,r25
3775 2488 8091 0000 lds r24,StickRoll
3776 248c 9091 0000 lds r25,(StickRoll)+1
3777 2490 C80E add r12,r24
3778 2492 D91E adc r13,r25
3779 2494 D092 0000 sts (StickRoll)+1,r13
3780 2498 C092 0000 sts StickRoll,r12
3781 249c E091 0000 lds r30,EE_Parameter+3
3782 24a0 F0E0 ldi r31,lo8(0)
3783 24a2 EE0F lsl r30
3784 24a4 FF1F rol r31
3785 24a6 E050 subi r30,lo8(-(PPM_in))
3786 24a8 F040 sbci r31,hi8(-(PPM_in))
3787 24aa E080 ld r14,Z
3788 24ac F180 ldd r15,Z+1
3789 24ae E8E7 ldi r30,lo8(120)
3790 24b0 F0E0 ldi r31,hi8(120)
3791 24b2 EE0E add r14,r30
3792 24b4 FF1E adc r15,r31
3793 24b6 F092 0000 sts (StickGas)+1,r15
3794 24ba E092 0000 sts StickGas,r14
3795 24be 6091 0000 lds r22,Parameter_Gyro_P
3796 24c2 70E0 ldi r23,lo8(0)
3797 24c4 8827 clr r24
3798 24c6 77FD sbrc r23,7
3799 24c8 8095 com r24
3800 24ca 982F mov r25,r24
3801 24cc 0E94 0000 call __floatsisf
3802 24d0 20E0 ldi r18,lo8(0x41200000)
3803 24d2 30E0 ldi r19,hi8(0x41200000)
3804 24d4 40E2 ldi r20,hlo8(0x41200000)
3805 24d6 51E4 ldi r21,hhi8(0x41200000)
3806 24d8 0E94 0000 call __addsf3
3807 24dc 0E94 0000 call __fixunssfsi
3808 24e0 6093 0000 sts GyroFaktor,r22
3809 24e4 8091 0000 lds r24,Parameter_Gyro_I
3810 24e8 8093 0000 sts IntegralFaktor,r24
3811 24ec 6091 0000 lds r22,Parameter_Gyro_Gier_P
3812 24f0 70E0 ldi r23,lo8(0)
3813 24f2 8827 clr r24
3814 24f4 77FD sbrc r23,7
3815 24f6 8095 com r24
3816 24f8 982F mov r25,r24
3817 24fa 0E94 0000 call __floatsisf
3818 24fe 20E0 ldi r18,lo8(0x41200000)
3819 2500 30E0 ldi r19,hi8(0x41200000)
3820 2502 40E2 ldi r20,hlo8(0x41200000)
3821 2504 51E4 ldi r21,hhi8(0x41200000)
3822 2506 0E94 0000 call __addsf3
3823 250a 0E94 0000 call __fixunssfsi
3824 250e 6093 0000 sts GyroFaktorGier,r22
3825 2512 8091 0000 lds r24,Parameter_Gyro_Gier_I
3826 2516 8093 0000 sts IntegralFaktorGier,r24
3827 251a 8091 0000 lds r24,ExternControl+10
3828 251e 80FF sbrs r24,0
3829 2520 00C0 rjmp .L465
3830 2522 8091 0000 lds r24,Parameter_ExternalControl
3831 2526 8138 cpi r24,lo8(-127)
3832 2528 00F4 brsh .+2
3833 252a 00C0 rjmp .L465
3834 252c 8091 0000 lds r24,ExternControl+3
3835 2530 9927 clr r25
3836 2532 87FD sbrc r24,7
3837 2534 9095 com r25
3838 2536 9C01 movw r18,r24
3839 2538 269D mul r18,r6
3840 253a C001 movw r24,r0
3841 253c 279D mul r18,r7
3842 253e 900D add r25,r0
3843 2540 369D mul r19,r6
3844 2542 900D add r25,r0
3845 2544 1124 clr r1
3846 2546 080F add r16,r24
3847 2548 191F adc r17,r25
3848 254a 1093 0000 sts (StickNick)+1,r17
3849 254e 0093 0000 sts StickNick,r16
3850 2552 8091 0000 lds r24,ExternControl+4
3851 2556 9927 clr r25
3852 2558 87FD sbrc r24,7
3853 255a 9095 com r25
3854 255c AC01 movw r20,r24
3855 255e 469D mul r20,r6
3856 2560 C001 movw r24,r0
3857 2562 479D mul r20,r7
3858 2564 900D add r25,r0
3859 2566 569D mul r21,r6
3860 2568 900D add r25,r0
3861 256a 1124 clr r1
3862 256c C80E add r12,r24
3863 256e D91E adc r13,r25
3864 2570 D092 0000 sts (StickRoll)+1,r13
3865 2574 C092 0000 sts StickRoll,r12
3866 2578 2091 0000 lds r18,ExternControl+5
3867 257c 3327 clr r19
3868 257e 27FD sbrc r18,7
3869 2580 3095 com r19
3870 2582 8091 0000 lds r24,StickGier
3871 2586 9091 0000 lds r25,(StickGier)+1
3872 258a 820F add r24,r18
3873 258c 931F adc r25,r19
3874 258e 9093 0000 sts (StickGier)+1,r25
3875 2592 8093 0000 sts StickGier,r24
3876 2596 2091 0000 lds r18,EE_Parameter+18
3877 259a 30E0 ldi r19,lo8(0)
3878 259c 8091 0000 lds r24,ExternControl+7
3879 25a0 9927 clr r25
3880 25a2 87FD sbrc r24,7
3881 25a4 9095 com r25
3882 25a6 BC01 movw r22,r24
3883 25a8 269F mul r18,r22
3884 25aa C001 movw r24,r0
3885 25ac 279F mul r18,r23
3886 25ae 900D add r25,r0
3887 25b0 369F mul r19,r22
3888 25b2 900D add r25,r0
3889 25b4 1124 clr r1
3890 25b6 9093 0000 sts (ExternHoehenValue)+1,r25
3891 25ba 8093 0000 sts ExternHoehenValue,r24
3892 25be 8091 0000 lds r24,ExternControl+6
3893 25c2 90E0 ldi r25,lo8(0)
3894 25c4 8E15 cp r24,r14
3895 25c6 9F05 cpc r25,r15
3896 25c8 04F4 brge .L465
3897 25ca 9093 0000 sts (StickGas)+1,r25
3898 25ce 8093 0000 sts StickGas,r24
3899 .L465:
3900 25d2 8091 0000 lds r24,StickGas
3901 25d6 9091 0000 lds r25,(StickGas)+1
3902 25da 97FF sbrs r25,7
3903 25dc 00C0 rjmp .L469
3904 25de 1092 0000 sts (StickGas)+1,__zero_reg__
3905 25e2 1092 0000 sts StickGas,__zero_reg__
3906 .L469:
3907 25e6 8091 0000 lds r24,EE_Parameter+13
3908 25ea 82FF sbrs r24,2
3909 25ec 00C0 rjmp .L471
3910 25ee 1092 0000 sts IntegralFaktor,__zero_reg__
3911 .L471:
3912 25f2 E091 0000 lds r30,StickNick
3913 25f6 F091 0000 lds r31,(StickNick)+1
3914 25fa 2091 0000 lds r18,MaxStickNick
3915 25fe 3091 0000 lds r19,(MaxStickNick)+1
3916 2602 CF01 movw r24,r30
3917 2604 64E0 ldi r22,lo8(4)
3918 2606 70E0 ldi r23,hi8(4)
3919 2608 0E94 0000 call __divmodhi4
3920 260c 77FF sbrs r23,7
3921 260e 00C0 rjmp .L474
3922 2610 7095 com r23
3923 2612 6195 neg r22
3924 2614 7F4F sbci r23,lo8(-1)
3925 .L474:
3926 2616 2617 cp r18,r22
3927 2618 3707 cpc r19,r23
3928 261a 04F4 brge .L473
3929 261c CF01 movw r24,r30
3930 261e F7FF sbrs r31,7
3931 2620 00C0 rjmp .L476
3932 2622 9095 com r25
3933 2624 8195 neg r24
3934 2626 9F4F sbci r25,lo8(-1)
3935 .L476:
3936 2628 64E0 ldi r22,lo8(4)
3937 262a 70E0 ldi r23,hi8(4)
3938 262c 0E94 0000 call __divmodhi4
3939 2630 7093 0000 sts (MaxStickNick)+1,r23
3940 2634 6093 0000 sts MaxStickNick,r22
3941 2638 6536 cpi r22,101
3942 263a 7105 cpc r23,__zero_reg__
3943 263c 04F0 brlt .L477
3944 263e 84E6 ldi r24,lo8(100)
3945 2640 90E0 ldi r25,hi8(100)
3946 2642 9093 0000 sts (MaxStickNick)+1,r25
3947 2646 8093 0000 sts MaxStickNick,r24
3948 264a 00C0 rjmp .L477
3949 .L473:
3950 264c 2150 subi r18,lo8(-(-1))
3951 264e 3040 sbci r19,hi8(-(-1))
3952 2650 3093 0000 sts (MaxStickNick)+1,r19
3953 2654 2093 0000 sts MaxStickNick,r18
3954 .L477:
3955 2658 E091 0000 lds r30,StickRoll
3956 265c F091 0000 lds r31,(StickRoll)+1
3957 2660 2091 0000 lds r18,MaxStickRoll
3958 2664 3091 0000 lds r19,(MaxStickRoll)+1
3959 2668 CF01 movw r24,r30
3960 266a 64E0 ldi r22,lo8(4)
3961 266c 70E0 ldi r23,hi8(4)
3962 266e 0E94 0000 call __divmodhi4
3963 2672 77FF sbrs r23,7
3964 2674 00C0 rjmp .L480
3965 2676 7095 com r23
3966 2678 6195 neg r22
3967 267a 7F4F sbci r23,lo8(-1)
3968 .L480:
3969 267c 2617 cp r18,r22
3970 267e 3707 cpc r19,r23
3971 2680 04F4 brge .L479
3972 2682 CF01 movw r24,r30
3973 2684 F7FF sbrs r31,7
3974 2686 00C0 rjmp .L482
3975 2688 9095 com r25
3976 268a 8195 neg r24
3977 268c 9F4F sbci r25,lo8(-1)
3978 .L482:
3979 268e 64E0 ldi r22,lo8(4)
3980 2690 70E0 ldi r23,hi8(4)
3981 2692 0E94 0000 call __divmodhi4
3982 2696 7093 0000 sts (MaxStickRoll)+1,r23
3983 269a 6093 0000 sts MaxStickRoll,r22
3984 269e 6536 cpi r22,101
3985 26a0 7105 cpc r23,__zero_reg__
3986 26a2 04F0 brlt .L483
3987 26a4 84E6 ldi r24,lo8(100)
3988 26a6 90E0 ldi r25,hi8(100)
3989 26a8 9093 0000 sts (MaxStickRoll)+1,r25
3990 26ac 8093 0000 sts MaxStickRoll,r24
3991 26b0 00C0 rjmp .L483
3992 .L479:
3993 26b2 2150 subi r18,lo8(-(-1))
3994 26b4 3040 sbci r19,hi8(-(-1))
3995 26b6 3093 0000 sts (MaxStickRoll)+1,r19
3996 26ba 2093 0000 sts MaxStickRoll,r18
3997 .L483:
3998 26be 8091 0000 lds r24,FC_StatusFlags
3999 26c2 84FF sbrs r24,4
4000 26c4 00C0 rjmp .L485
4001 26c6 1092 0000 sts (MaxStickNick)+1,__zero_reg__
4002 26ca 1092 0000 sts MaxStickNick,__zero_reg__
4003 26ce 1092 0000 sts (MaxStickRoll)+1,__zero_reg__
4004 26d2 1092 0000 sts MaxStickRoll,__zero_reg__
4005 .L485:
4006 26d6 F501 movw r30,r10
4007 26d8 EE0F lsl r30
4008 26da FF1F rol r31
4009 26dc E050 subi r30,lo8(-(PPM_in))
4010 26de F040 sbci r31,hi8(-(PPM_in))
4011 26e0 2081 ld r18,Z
4012 26e2 3181 ldd r19,Z+1
4013 26e4 8091 0000 lds r24,EE_Parameter+60
4014 26e8 482F mov r20,r24
4015 26ea 50E0 ldi r21,lo8(0)
4016 26ec 4217 cp r20,r18
4017 26ee 5307 cpc r21,r19
4018 26f0 04F4 brge .L487
4019 26f2 8091 0000 lds r24,EE_Parameter+100
4020 26f6 82FF sbrs r24,2
4021 26f8 00C0 rjmp .L487
4022 26fa 81E0 ldi r24,lo8(1)
4023 26fc 8093 0000 sts Looping_Links,r24
4024 2700 00C0 rjmp .L490
4025 .L487:
4026 2702 F501 movw r30,r10
4027 2704 EE0F lsl r30
4028 2706 FF1F rol r31
4029 2708 E050 subi r30,lo8(-(PPM_in))
4030 270a F040 sbci r31,hi8(-(PPM_in))
4031 270c 2081 ld r18,Z
4032 270e 3181 ldd r19,Z+1
4033 2710 8091 0000 lds r24,EE_Parameter+61
4034 2714 DA01 movw r26,r20
4035 2716 A81B sub r26,r24
4036 2718 B109 sbc r27,__zero_reg__
4037 271a 2A17 cp r18,r26
4038 271c 3B07 cpc r19,r27
4039 271e 04F4 brge .L490
4040 2720 1092 0000 sts Looping_Links,__zero_reg__
4041 .L490:
4042 2724 F501 movw r30,r10
4043 2726 EE0F lsl r30
4044 2728 FF1F rol r31
4045 272a E050 subi r30,lo8(-(PPM_in))
4046 272c F040 sbci r31,hi8(-(PPM_in))
4047 272e 8081 ld r24,Z
4048 2730 9181 ldd r25,Z+1
4049 2732 6627 clr r22
4050 2734 7727 clr r23
4051 2736 641B sub r22,r20
4052 2738 750B sbc r23,r21
4053 273a 8617 cp r24,r22
4054 273c 9707 cpc r25,r23
4055 273e 04F4 brge .L492
4056 2740 8091 0000 lds r24,EE_Parameter+100
4057 2744 83FF sbrs r24,3
4058 2746 00C0 rjmp .L492
4059 2748 81E0 ldi r24,lo8(1)
4060 274a 8093 0000 sts Looping_Rechts,r24
4061 274e 00C0 rjmp .L495
4062 .L492:
4063 2750 8091 0000 lds r24,Looping_Rechts
4064 2754 8823 tst r24
4065 2756 01F0 breq .L495
4066 2758 AA0C lsl r10
4067 275a BB1C rol r11
4068 275c E0E0 ldi r30,lo8(PPM_in)
4069 275e F0E0 ldi r31,hi8(PPM_in)
4070 2760 AE0E add r10,r30
4071 2762 BF1E adc r11,r31
4072 2764 D501 movw r26,r10
4073 2766 2D91 ld r18,X+
4074 2768 3C91 ld r19,X
4075 276a 8091 0000 lds r24,EE_Parameter+61
4076 276e 90E0 ldi r25,lo8(0)
4077 2770 841B sub r24,r20
4078 2772 950B sbc r25,r21
4079 2774 8217 cp r24,r18
4080 2776 9307 cpc r25,r19
4081 2778 04F4 brge .L495
4082 277a 1092 0000 sts Looping_Rechts,__zero_reg__
4083 .L495:
4084 277e F401 movw r30,r8
4085 2780 EE0F lsl r30
4086 2782 FF1F rol r31
4087 2784 E050 subi r30,lo8(-(PPM_in))
4088 2786 F040 sbci r31,hi8(-(PPM_in))
4089 2788 8081 ld r24,Z
4090 278a 9181 ldd r25,Z+1
4091 278c 4817 cp r20,r24
4092 278e 5907 cpc r21,r25
4093 2790 04F4 brge .L498
4094 2792 8091 0000 lds r24,EE_Parameter+100
4095 2796 80FF sbrs r24,0
4096 2798 00C0 rjmp .L498
4097 279a 81E0 ldi r24,lo8(1)
4098 279c 8093 0000 sts Looping_Oben,r24
4099 27a0 00C0 rjmp .L501
4100 .L498:
4101 27a2 8091 0000 lds r24,Looping_Oben
4102 27a6 8823 tst r24
4103 27a8 01F0 breq .L501
4104 27aa F401 movw r30,r8
4105 27ac EE0F lsl r30
4106 27ae FF1F rol r31
4107 27b0 E050 subi r30,lo8(-(PPM_in))
4108 27b2 F040 sbci r31,hi8(-(PPM_in))
4109 27b4 2081 ld r18,Z
4110 27b6 3181 ldd r19,Z+1
4111 27b8 8091 0000 lds r24,EE_Parameter+61
4112 27bc FA01 movw r30,r20
4113 27be E81B sub r30,r24
4114 27c0 F109 sbc r31,__zero_reg__
4115 27c2 2E17 cp r18,r30
4116 27c4 3F07 cpc r19,r31
4117 27c6 04F4 brge .L501
4118 27c8 1092 0000 sts Looping_Oben,__zero_reg__
4119 .L501:
4120 27cc F401 movw r30,r8
4121 27ce EE0F lsl r30
4122 27d0 FF1F rol r31
4123 27d2 E050 subi r30,lo8(-(PPM_in))
4124 27d4 F040 sbci r31,hi8(-(PPM_in))
4125 27d6 8081 ld r24,Z
4126 27d8 9181 ldd r25,Z+1
4127 27da 8617 cp r24,r22
4128 27dc 9707 cpc r25,r23
4129 27de 04F4 brge .L504
4130 27e0 8091 0000 lds r24,EE_Parameter+100
4131 27e4 81FF sbrs r24,1
4132 27e6 00C0 rjmp .L504
4133 27e8 81E0 ldi r24,lo8(1)
4134 27ea 8093 0000 sts Looping_Unten,r24
4135 27ee 00C0 rjmp .L507
4136 .L504:
4137 27f0 8091 0000 lds r24,Looping_Unten
4138 27f4 8823 tst r24
4139 27f6 01F0 breq .L507
4140 27f8 880C lsl r8
4141 27fa 991C rol r9
4142 27fc 10E0 ldi r17,lo8(PPM_in)
4143 27fe E12E mov r14,r17
4144 2800 10E0 ldi r17,hi8(PPM_in)
4145 2802 F12E mov r15,r17
4146 2804 8E0C add r8,r14
4147 2806 9F1C adc r9,r15
4148 2808 D401 movw r26,r8
4149 280a 2D91 ld r18,X+
4150 280c 3C91 ld r19,X
4151 280e 8091 0000 lds r24,EE_Parameter+61
4152 2812 90E0 ldi r25,lo8(0)
4153 2814 841B sub r24,r20
4154 2816 950B sbc r25,r21
4155 2818 8217 cp r24,r18
4156 281a 9307 cpc r25,r19
4157 281c 04F4 brge .L507
4158 281e 1092 0000 sts Looping_Unten,__zero_reg__
4159 .L507:
4160 2822 8091 0000 lds r24,Looping_Links
4161 2826 8823 tst r24
4162 2828 01F4 brne .L510
4163 282a 8091 0000 lds r24,Looping_Rechts
4164 282e 8823 tst r24
4165 2830 01F0 breq .L512
4166 .L510:
4167 2832 81E0 ldi r24,lo8(1)
4168 2834 8093 0000 sts Looping_Roll,r24
4169 2838 00C0 rjmp .L513
4170 .L512:
4171 283a 1092 0000 sts Looping_Roll,__zero_reg__
4172 .L513:
4173 283e 8091 0000 lds r24,Looping_Oben
4174 2842 8823 tst r24
4175 2844 01F4 brne .L514
4176 2846 8091 0000 lds r24,Looping_Unten
4177 284a 8823 tst r24
4178 284c 01F0 breq .L516
4179 .L514:
4180 284e 81E0 ldi r24,lo8(1)
4181 2850 8093 0000 sts Looping_Nick,r24
4182 2854 1092 0000 sts Looping_Roll,__zero_reg__
4183 2858 1092 0000 sts Looping_Links,__zero_reg__
4184 285c 1092 0000 sts Looping_Rechts,__zero_reg__
4185 2860 00C0 rjmp .L456
4186 .L516:
4187 2862 1092 0000 sts Looping_Nick,__zero_reg__
4188 .L456:
4189 2866 8091 0000 lds r24,Looping_Roll
4190 286a 8823 tst r24
4191 286c 01F4 brne .L517
4192 286e 8091 0000 lds r24,Looping_Nick
4193 2872 8823 tst r24
4194 2874 01F0 breq .L519
4195 .L517:
4196 2876 8091 0000 lds r24,EE_Parameter+59
4197 287a 90E0 ldi r25,lo8(0)
4198 287c EC89 ldd r30,Y+20
4199 287e FD89 ldd r31,Y+21
4200 2880 8E17 cp r24,r30
4201 2882 9F07 cpc r25,r31
4202 2884 04F4 brge .L520
4203 2886 9D8B std Y+21,r25
4204 2888 8C8B std Y+20,r24
4205 .L520:
4206 288a 81E0 ldi r24,lo8(1)
4207 288c 8093 0000 sts TrichterFlug,r24
4208 .L519:
4209 2890 8091 0000 lds r24,FC_StatusFlags
4210 2894 84FF sbrs r24,4
4211 2896 00C0 rjmp .L521
4212 2898 1092 0000 sts (StickGier)+1,__zero_reg__
4213 289c 1092 0000 sts StickGier,__zero_reg__
4214 28a0 1092 0000 sts (StickNick)+1,__zero_reg__
4215 28a4 1092 0000 sts StickNick,__zero_reg__
4216 28a8 1092 0000 sts (StickRoll)+1,__zero_reg__
4217 28ac 1092 0000 sts StickRoll,__zero_reg__
4218 28b0 9AE5 ldi r25,lo8(90)
4219 28b2 9093 0000 sts GyroFaktor,r25
4220 28b6 88E7 ldi r24,lo8(120)
4221 28b8 8093 0000 sts IntegralFaktor,r24
4222 28bc 9093 0000 sts GyroFaktorGier,r25
4223 28c0 8093 0000 sts IntegralFaktorGier,r24
4224 28c4 1092 0000 sts Looping_Roll,__zero_reg__
4225 28c8 1092 0000 sts Looping_Nick,__zero_reg__
4226 .L521:
4227 28cc E090 0000 lds r14,IntegralNick
4228 28d0 F090 0000 lds r15,(IntegralNick)+1
4229 28d4 0091 0000 lds r16,(IntegralNick)+2
4230 28d8 1091 0000 lds r17,(IntegralNick)+3
4231 28dc E982 std Y+1,r14
4232 28de FA82 std Y+2,r15
4233 28e0 0B83 std Y+3,r16
4234 28e2 1C83 std Y+4,r17
4235 28e4 8091 0000 lds r24,MittelIntegralNick
4236 28e8 9091 0000 lds r25,(MittelIntegralNick)+1
4237 28ec A091 0000 lds r26,(MittelIntegralNick)+2
4238 28f0 B091 0000 lds r27,(MittelIntegralNick)+3
4239 28f4 8E0D add r24,r14
4240 28f6 9F1D adc r25,r15
4241 28f8 A01F adc r26,r16
4242 28fa B11F adc r27,r17
4243 28fc 8093 0000 sts MittelIntegralNick,r24
4244 2900 9093 0000 sts (MittelIntegralNick)+1,r25
4245 2904 A093 0000 sts (MittelIntegralNick)+2,r26
4246 2908 B093 0000 sts (MittelIntegralNick)+3,r27
4247 290c 0091 0000 lds r16,IntegralRoll
4248 2910 1091 0000 lds r17,(IntegralRoll)+1
4249 2914 2091 0000 lds r18,(IntegralRoll)+2
4250 2918 3091 0000 lds r19,(IntegralRoll)+3
4251 291c 0D83 std Y+5,r16
4252 291e 1E83 std Y+6,r17
4253 2920 2F83 std Y+7,r18
4254 2922 3887 std Y+8,r19
4255 2924 8091 0000 lds r24,MittelIntegralRoll
4256 2928 9091 0000 lds r25,(MittelIntegralRoll)+1
4257 292c A091 0000 lds r26,(MittelIntegralRoll)+2
4258 2930 B091 0000 lds r27,(MittelIntegralRoll)+3
4259 2934 800F add r24,r16
4260 2936 911F adc r25,r17
4261 2938 A21F adc r26,r18
4262 293a B31F adc r27,r19
4263 293c 8093 0000 sts MittelIntegralRoll,r24
4264 2940 9093 0000 sts (MittelIntegralRoll)+1,r25
4265 2944 A093 0000 sts (MittelIntegralRoll)+2,r26
4266 2948 B093 0000 sts (MittelIntegralRoll)+3,r27
4267 294c 2091 0000 lds r18,IntegralNick2
4268 2950 3091 0000 lds r19,(IntegralNick2)+1
4269 2954 4091 0000 lds r20,(IntegralNick2)+2
4270 2958 5091 0000 lds r21,(IntegralNick2)+3
4271 295c 2F8F std Y+31,r18
4272 295e 38A3 std Y+32,r19
4273 2960 49A3 std Y+33,r20
4274 2962 5AA3 std Y+34,r21
4275 2964 8091 0000 lds r24,MittelIntegralNick2
4276 2968 9091 0000 lds r25,(MittelIntegralNick2)+1
4277 296c A091 0000 lds r26,(MittelIntegralNick2)+2
4278 2970 B091 0000 lds r27,(MittelIntegralNick2)+3
4279 2974 820F add r24,r18
4280 2976 931F adc r25,r19
4281 2978 A41F adc r26,r20
4282 297a B51F adc r27,r21
4283 297c 8093 0000 sts MittelIntegralNick2,r24
4284 2980 9093 0000 sts (MittelIntegralNick2)+1,r25
4285 2984 A093 0000 sts (MittelIntegralNick2)+2,r26
4286 2988 B093 0000 sts (MittelIntegralNick2)+3,r27
4287 298c 4091 0000 lds r20,IntegralRoll2
4288 2990 5091 0000 lds r21,(IntegralRoll2)+1
4289 2994 6091 0000 lds r22,(IntegralRoll2)+2
4290 2998 7091 0000 lds r23,(IntegralRoll2)+3
4291 299c 4B8F std Y+27,r20
4292 299e 5C8F std Y+28,r21
4293 29a0 6D8F std Y+29,r22
4294 29a2 7E8F std Y+30,r23
4295 29a4 8091 0000 lds r24,MittelIntegralRoll2
4296 29a8 9091 0000 lds r25,(MittelIntegralRoll2)+1
4297 29ac A091 0000 lds r26,(MittelIntegralRoll2)+2
4298 29b0 B091 0000 lds r27,(MittelIntegralRoll2)+3
4299 29b4 840F add r24,r20
4300 29b6 951F adc r25,r21
4301 29b8 A61F adc r26,r22
4302 29ba B71F adc r27,r23
4303 29bc 8093 0000 sts MittelIntegralRoll2,r24
4304 29c0 9093 0000 sts (MittelIntegralRoll2)+1,r25
4305 29c4 A093 0000 sts (MittelIntegralRoll2)+2,r26
4306 29c8 B093 0000 sts (MittelIntegralRoll2)+3,r27
4307 29cc 5091 0000 lds r21,Looping_Nick
4308 29d0 5987 std Y+9,r21
4309 29d2 5523 tst r21
4310 29d4 01F4 brne .L523
4311 29d6 8091 0000 lds r24,Looping_Roll
4312 29da 8823 tst r24
4313 29dc 01F4 brne .+2
4314 29de 00C0 rjmp .L525
4315 .L523:
4316 29e0 1092 0000 sts IntegralAccNick,__zero_reg__
4317 29e4 1092 0000 sts (IntegralAccNick)+1,__zero_reg__
4318 29e8 1092 0000 sts (IntegralAccNick)+2,__zero_reg__
4319 29ec 1092 0000 sts (IntegralAccNick)+3,__zero_reg__
4320 29f0 1092 0000 sts IntegralAccRoll,__zero_reg__
4321 29f4 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__
4322 29f8 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__
4323 29fc 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__
4324 2a00 1092 0000 sts MittelIntegralNick,__zero_reg__
4325 2a04 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__
4326 2a08 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__
4327 2a0c 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__
4328 2a10 1092 0000 sts MittelIntegralRoll,__zero_reg__
4329 2a14 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__
4330 2a18 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__
4331 2a1c 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__
4332 2a20 1092 0000 sts MittelIntegralNick2,__zero_reg__
4333 2a24 1092 0000 sts (MittelIntegralNick2)+1,__zero_reg__
4334 2a28 1092 0000 sts (MittelIntegralNick2)+2,__zero_reg__
4335 2a2c 1092 0000 sts (MittelIntegralNick2)+3,__zero_reg__
4336 2a30 1092 0000 sts MittelIntegralRoll2,__zero_reg__
4337 2a34 1092 0000 sts (MittelIntegralRoll2)+1,__zero_reg__
4338 2a38 1092 0000 sts (MittelIntegralRoll2)+2,__zero_reg__
4339 2a3c 1092 0000 sts (MittelIntegralRoll2)+3,__zero_reg__
4340 2a40 8091 0000 lds r24,Mess_IntegralNick
4341 2a44 9091 0000 lds r25,(Mess_IntegralNick)+1
4342 2a48 A091 0000 lds r26,(Mess_IntegralNick)+2
4343 2a4c B091 0000 lds r27,(Mess_IntegralNick)+3
4344 2a50 8093 0000 sts Mess_IntegralNick2,r24
4345 2a54 9093 0000 sts (Mess_IntegralNick2)+1,r25
4346 2a58 A093 0000 sts (Mess_IntegralNick2)+2,r26
4347 2a5c B093 0000 sts (Mess_IntegralNick2)+3,r27
4348 2a60 8091 0000 lds r24,Mess_IntegralRoll
4349 2a64 9091 0000 lds r25,(Mess_IntegralRoll)+1
4350 2a68 A091 0000 lds r26,(Mess_IntegralRoll)+2
4351 2a6c B091 0000 lds r27,(Mess_IntegralRoll)+3
4352 2a70 8093 0000 sts Mess_IntegralRoll2,r24
4353 2a74 9093 0000 sts (Mess_IntegralRoll2)+1,r25
4354 2a78 A093 0000 sts (Mess_IntegralRoll2)+2,r26
4355 2a7c B093 0000 sts (Mess_IntegralRoll2)+3,r27
4356 2a80 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__
4357 2a84 1092 0000 sts ZaehlMessungen,__zero_reg__
4358 2a88 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
4359 2a8c 1092 0000 sts LageKorrekturNick,__zero_reg__
4360 2a90 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
4361 2a94 1092 0000 sts LageKorrekturRoll,__zero_reg__
4362 2a98 6985 ldd r22,Y+9
4363 2a9a 6623 tst r22
4364 2a9c 01F0 breq .+2
4365 2a9e 00C0 rjmp .L526
4366 .L525:
4367 2aa0 8091 0000 lds r24,Looping_Roll
4368 2aa4 8823 tst r24
4369 2aa6 01F0 breq .+2
4370 2aa8 00C0 rjmp .L526
4371 2aaa 8091 0000 lds r24,Aktuell_az
4372 2aae 9091 0000 lds r25,(Aktuell_az)+1
4373 2ab2 8150 subi r24,lo8(513)
4374 2ab4 9240 sbci r25,hi8(513)
4375 2ab6 04F4 brge .L528
4376 2ab8 8091 0000 lds r24,MotorenEin
4377 2abc 8823 tst r24
4378 2abe 01F4 brne .+2
4379 2ac0 00C0 rjmp .L526
4380 .L528:
4381 2ac2 8091 0000 lds r24,FromNaviCtrl_Value
4382 2ac6 E090 0000 lds r14,EE_Parameter+28
4383 2aca 4090 0000 lds r4,Mittelwert_AccNick
4384 2ace 5090 0000 lds r5,(Mittelwert_AccNick)+1
4385 2ad2 8090 0000 lds r8,Mittelwert_AccRoll
4386 2ad6 9090 0000 lds r9,(Mittelwert_AccRoll)+1
4387 2ada 6090 0000 lds r6,MaxStickNick
4388 2ade 7090 0000 lds r7,(MaxStickNick)+1
4389 2ae2 8F3F cpi r24,lo8(-1)
4390 2ae4 01F4 brne .+2
4391 2ae6 00C0 rjmp .L530
4392 2ae8 FF24 clr r15
4393 2aea 00E0 ldi r16,lo8(0)
4394 2aec 10E0 ldi r17,hi8(0)
4395 2aee A82E mov r10,r24
4396 2af0 BB24 clr r11
4397 2af2 A7FC sbrc r10,7
4398 2af4 B094 com r11
4399 2af6 CB2C mov r12,r11
4400 2af8 DB2C mov r13,r11
4401 2afa 6981 ldd r22,Y+1
4402 2afc 7A81 ldd r23,Y+2
4403 2afe 8B81 ldd r24,Y+3
4404 2b00 9C81 ldd r25,Y+4
4405 2b02 A801 movw r20,r16
4406 2b04 9701 movw r18,r14
4407 2b06 0E94 0000 call __divmodsi4
4408 2b0a C201 movw r24,r4
4409 2b0c AA27 clr r26
4410 2b0e 97FD sbrc r25,7
4411 2b10 A095 com r26
4412 2b12 BA2F mov r27,r26
4413 2b14 281B sub r18,r24
4414 2b16 390B sbc r19,r25
4415 2b18 4A0B sbc r20,r26
4416 2b1a 5B0B sbc r21,r27
4417 2b1c CA01 movw r24,r20
4418 2b1e B901 movw r22,r18
4419 2b20 A601 movw r20,r12
4420 2b22 9501 movw r18,r10
4421 2b24 0E94 0000 call __mulsi3
4422 2b28 20E0 ldi r18,lo8(512)
4423 2b2a 32E0 ldi r19,hi8(512)
4424 2b2c 40E0 ldi r20,hlo8(512)
4425 2b2e 50E0 ldi r21,hhi8(512)
4426 2b30 0E94 0000 call __divmodsi4
4427 2b34 1901 movw r2,r18
4428 2b36 2A01 movw r4,r20
4429 2b38 6D81 ldd r22,Y+5
4430 2b3a 7E81 ldd r23,Y+6
4431 2b3c 8F81 ldd r24,Y+7
4432 2b3e 9885 ldd r25,Y+8
4433 2b40 A801 movw r20,r16
4434 2b42 9701 movw r18,r14
4435 2b44 0E94 0000 call __divmodsi4
4436 2b48 C401 movw r24,r8
4437 2b4a AA27 clr r26
4438 2b4c 97FD sbrc r25,7
4439 2b4e A095 com r26
4440 2b50 BA2F mov r27,r26
4441 2b52 281B sub r18,r24
4442 2b54 390B sbc r19,r25
4443 2b56 4A0B sbc r20,r26
4444 2b58 5B0B sbc r21,r27
4445 2b5a CA01 movw r24,r20
4446 2b5c B901 movw r22,r18
4447 2b5e A601 movw r20,r12
4448 2b60 9501 movw r18,r10
4449 2b62 0E94 0000 call __mulsi3
4450 2b66 20E0 ldi r18,lo8(512)
4451 2b68 32E0 ldi r19,hi8(512)
4452 2b6a 40E0 ldi r20,hlo8(512)
4453 2b6c 50E0 ldi r21,hhi8(512)
4454 2b6e 0E94 0000 call __divmodsi4
4455 2b72 7901 movw r14,r18
4456 2b74 8A01 movw r16,r20
4457 2b76 81E4 ldi r24,lo8(65)
4458 2b78 6816 cp r6,r24
4459 2b7a 7104 cpc r7,__zero_reg__
4460 2b7c 04F4 brge .L532
4461 2b7e 8091 0000 lds r24,MaxStickRoll
4462 2b82 9091 0000 lds r25,(MaxStickRoll)+1
4463 2b86 8134 cpi r24,65
4464 2b88 9105 cpc r25,__zero_reg__
4465 2b8a 04F0 brlt .L534
4466 .L532:
4467 2b8c C201 movw r24,r4
4468 2b8e B101 movw r22,r2
4469 2b90 22E0 ldi r18,lo8(2)
4470 2b92 30E0 ldi r19,hi8(2)
4471 2b94 40E0 ldi r20,hlo8(2)
4472 2b96 50E0 ldi r21,hhi8(2)
4473 2b98 0E94 0000 call __divmodsi4
4474 2b9c 1901 movw r2,r18
4475 2b9e 2A01 movw r4,r20
4476 2ba0 C801 movw r24,r16
4477 2ba2 B701 movw r22,r14
4478 2ba4 22E0 ldi r18,lo8(2)
4479 2ba6 30E0 ldi r19,hi8(2)
4480 2ba8 40E0 ldi r20,hlo8(2)
4481 2baa 50E0 ldi r21,hhi8(2)
4482 2bac 0E94 0000 call __divmodsi4
4483 2bb0 7901 movw r14,r18
4484 2bb2 8A01 movw r16,r20
4485 .L534:
4486 2bb4 E091 0000 lds r30,EE_Parameter+4
4487 2bb8 F0E0 ldi r31,lo8(0)
4488 2bba EE0F lsl r30
4489 2bbc FF1F rol r31
4490 2bbe E050 subi r30,lo8(-(PPM_in))
4491 2bc0 F040 sbci r31,hi8(-(PPM_in))
4492 2bc2 0190 ld __tmp_reg__,Z+
4493 2bc4 F081 ld r31,Z
4494 2bc6 E02D mov r30,__tmp_reg__
4495 2bc8 F7FF sbrs r31,7
4496 2bca 00C0 rjmp .L536
4497 2bcc F095 com r31
4498 2bce E195 neg r30
4499 2bd0 FF4F sbci r31,lo8(-1)
4500 .L536:
4501 2bd2 7A97 sbiw r30,26
4502 2bd4 04F0 brlt .L535
4503 2bd6 C201 movw r24,r4
4504 2bd8 B101 movw r22,r2
4505 2bda 23E0 ldi r18,lo8(3)
4506 2bdc 30E0 ldi r19,hi8(3)
4507 2bde 40E0 ldi r20,hlo8(3)
4508 2be0 50E0 ldi r21,hhi8(3)
4509 2be2 0E94 0000 call __divmodsi4
4510 2be6 1901 movw r2,r18
4511 2be8 2A01 movw r4,r20
4512 2bea C801 movw r24,r16
4513 2bec B701 movw r22,r14
4514 2bee 23E0 ldi r18,lo8(3)
4515 2bf0 30E0 ldi r19,hi8(3)
4516 2bf2 40E0 ldi r20,hlo8(3)
4517 2bf4 50E0 ldi r21,hhi8(3)
4518 2bf6 0E94 0000 call __divmodsi4
4519 2bfa 7901 movw r14,r18
4520 2bfc 8A01 movw r16,r20
4521 .L535:
4522 2bfe 8091 0000 lds r24,FromNaviCtrl_Value+2
4523 2c02 682E mov r6,r24
4524 2c04 7724 clr r7
4525 2c06 67FC sbrc r6,7
4526 2c08 7094 com r7
4527 2c0a 872C mov r8,r7
4528 2c0c 972C mov r9,r7
4529 2c0e A201 movw r20,r4
4530 2c10 9101 movw r18,r2
4531 2c12 6214 cp r6,r2
4532 2c14 7304 cpc r7,r3
4533 2c16 8404 cpc r8,r4
4534 2c18 9504 cpc r9,r5
4535 2c1a 04F4 brge .L538
4536 2c1c A401 movw r20,r8
4537 2c1e 9301 movw r18,r6
4538 .L538:
4539 2c20 9927 clr r25
4540 2c22 87FD sbrc r24,7
4541 2c24 9095 com r25
4542 2c26 9095 com r25
4543 2c28 8195 neg r24
4544 2c2a 9F4F sbci r25,lo8(-1)
4545 2c2c AA27 clr r26
4546 2c2e 97FD sbrc r25,7
4547 2c30 A095 com r26
4548 2c32 BA2F mov r27,r26
4549 2c34 5901 movw r10,r18
4550 2c36 6A01 movw r12,r20
4551 2c38 2817 cp r18,r24
4552 2c3a 3907 cpc r19,r25
4553 2c3c 4A07 cpc r20,r26
4554 2c3e 5B07 cpc r21,r27
4555 2c40 04F4 brge .L539
4556 2c42 5C01 movw r10,r24
4557 2c44 6D01 movw r12,r26
4558 .L539:
4559 2c46 6E14 cp r6,r14
4560 2c48 7F04 cpc r7,r15
4561 2c4a 8006 cpc r8,r16
4562 2c4c 9106 cpc r9,r17
4563 2c4e 04F4 brge .L540
4564 2c50 8401 movw r16,r8
4565 2c52 7301 movw r14,r6
4566 .L540:
4567 2c54 E816 cp r14,r24
4568 2c56 F906 cpc r15,r25
4569 2c58 0A07 cpc r16,r26
4570 2c5a 1B07 cpc r17,r27
4571 2c5c 04F0 brlt .+2
4572 2c5e 00C0 rjmp .L541
4573 2c60 7C01 movw r14,r24
4574 2c62 8D01 movw r16,r26
4575 2c64 00C0 rjmp .L541
4576 .L530:
4577 2c66 FF24 clr r15
4578 2c68 00E0 ldi r16,lo8(0)
4579 2c6a 10E0 ldi r17,hi8(0)
4580 2c6c 6981 ldd r22,Y+1
4581 2c6e 7A81 ldd r23,Y+2
4582 2c70 8B81 ldd r24,Y+3
4583 2c72 9C81 ldd r25,Y+4
4584 2c74 A801 movw r20,r16
4585 2c76 9701 movw r18,r14
4586 2c78 0E94 0000 call __divmodsi4
4587 2c7c 5901 movw r10,r18
4588 2c7e 6A01 movw r12,r20
4589 2c80 C201 movw r24,r4
4590 2c82 AA27 clr r26
4591 2c84 97FD sbrc r25,7
4592 2c86 A095 com r26
4593 2c88 BA2F mov r27,r26
4594 2c8a A81A sub r10,r24
4595 2c8c B90A sbc r11,r25
4596 2c8e CA0A sbc r12,r26
4597 2c90 DB0A sbc r13,r27
4598 2c92 6D81 ldd r22,Y+5
4599 2c94 7E81 ldd r23,Y+6
4600 2c96 8F81 ldd r24,Y+7
4601 2c98 9885 ldd r25,Y+8
4602 2c9a A801 movw r20,r16
4603 2c9c 9701 movw r18,r14
4604 2c9e 0E94 0000 call __divmodsi4
4605 2ca2 7901 movw r14,r18
4606 2ca4 8A01 movw r16,r20
4607 2ca6 C401 movw r24,r8
4608 2ca8 AA27 clr r26
4609 2caa 97FD sbrc r25,7
4610 2cac A095 com r26
4611 2cae BA2F mov r27,r26
4612 2cb0 E81A sub r14,r24
4613 2cb2 F90A sbc r15,r25
4614 2cb4 0A0B sbc r16,r26
4615 2cb6 1B0B sbc r17,r27
4616 2cb8 C601 movw r24,r12
4617 2cba B501 movw r22,r10
4618 2cbc 20E1 ldi r18,lo8(16)
4619 2cbe 30E0 ldi r19,hi8(16)
4620 2cc0 40E0 ldi r20,hlo8(16)
4621 2cc2 50E0 ldi r21,hhi8(16)
4622 2cc4 0E94 0000 call __divmodsi4
4623 2cc8 5901 movw r10,r18
4624 2cca 6A01 movw r12,r20
4625 2ccc C801 movw r24,r16
4626 2cce B701 movw r22,r14
4627 2cd0 20E1 ldi r18,lo8(16)
4628 2cd2 30E0 ldi r19,hi8(16)
4629 2cd4 40E0 ldi r20,hlo8(16)
4630 2cd6 50E0 ldi r21,hhi8(16)
4631 2cd8 0E94 0000 call __divmodsi4
4632 2cdc 7901 movw r14,r18
4633 2cde 8A01 movw r16,r20
4634 2ce0 91E4 ldi r25,lo8(65)
4635 2ce2 6916 cp r6,r25
4636 2ce4 7104 cpc r7,__zero_reg__
4637 2ce6 04F4 brge .L543
4638 2ce8 8091 0000 lds r24,MaxStickRoll
4639 2cec 9091 0000 lds r25,(MaxStickRoll)+1
4640 2cf0 8134 cpi r24,65
4641 2cf2 9105 cpc r25,__zero_reg__
4642 2cf4 04F0 brlt .L545
4643 .L543:
4644 2cf6 C601 movw r24,r12
4645 2cf8 B501 movw r22,r10
4646 2cfa 23E0 ldi r18,lo8(3)
4647 2cfc 30E0 ldi r19,hi8(3)
4648 2cfe 40E0 ldi r20,hlo8(3)
4649 2d00 50E0 ldi r21,hhi8(3)
4650 2d02 0E94 0000 call __divmodsi4
4651 2d06 5901 movw r10,r18
4652 2d08 6A01 movw r12,r20
4653 2d0a C801 movw r24,r16
4654 2d0c B701 movw r22,r14
4655 2d0e 23E0 ldi r18,lo8(3)
4656 2d10 30E0 ldi r19,hi8(3)
4657 2d12 40E0 ldi r20,hlo8(3)
4658 2d14 50E0 ldi r21,hhi8(3)
4659 2d16 0E94 0000 call __divmodsi4
4660 2d1a 7901 movw r14,r18
4661 2d1c 8A01 movw r16,r20
4662 .L545:
4663 2d1e E091 0000 lds r30,EE_Parameter+4
4664 2d22 F0E0 ldi r31,lo8(0)
4665 2d24 EE0F lsl r30
4666 2d26 FF1F rol r31
4667 2d28 E050 subi r30,lo8(-(PPM_in))
4668 2d2a F040 sbci r31,hi8(-(PPM_in))
4669 2d2c 0190 ld __tmp_reg__,Z+
4670 2d2e F081 ld r31,Z
4671 2d30 E02D mov r30,__tmp_reg__
4672 2d32 F7FF sbrs r31,7
4673 2d34 00C0 rjmp .L547
4674 2d36 F095 com r31
4675 2d38 E195 neg r30
4676 2d3a FF4F sbci r31,lo8(-1)
4677 .L547:
4678 2d3c 7A97 sbiw r30,26
4679 2d3e 04F0 brlt .L546
4680 2d40 C601 movw r24,r12
4681 2d42 B501 movw r22,r10
4682 2d44 23E0 ldi r18,lo8(3)
4683 2d46 30E0 ldi r19,hi8(3)
4684 2d48 40E0 ldi r20,hlo8(3)
4685 2d4a 50E0 ldi r21,hhi8(3)
4686 2d4c 0E94 0000 call __divmodsi4
4687 2d50 5901 movw r10,r18
4688 2d52 6A01 movw r12,r20
4689 2d54 C801 movw r24,r16
4690 2d56 B701 movw r22,r14
4691 2d58 23E0 ldi r18,lo8(3)
4692 2d5a 30E0 ldi r19,hi8(3)
4693 2d5c 40E0 ldi r20,hlo8(3)
4694 2d5e 50E0 ldi r21,hhi8(3)
4695 2d60 0E94 0000 call __divmodsi4
4696 2d64 7901 movw r14,r18
4697 2d66 8A01 movw r16,r20
4698 .L546:
4699 2d68 A1E2 ldi r26,lo8(33)
4700 2d6a AA16 cp r10,r26
4701 2d6c B104 cpc r11,__zero_reg__
4702 2d6e C104 cpc r12,__zero_reg__
4703 2d70 D104 cpc r13,__zero_reg__
4704 2d72 04F0 brlt .L549
4705 2d74 70E2 ldi r23,lo8(32)
4706 2d76 A72E mov r10,r23
4707 2d78 B12C mov r11,__zero_reg__
4708 2d7a C12C mov r12,__zero_reg__
4709 2d7c D12C mov r13,__zero_reg__
4710 2d7e 00C0 rjmp .L551
4711 .L549:
4712 2d80 B0EE ldi r27,lo8(-32)
4713 2d82 AB16 cp r10,r27
4714 2d84 BFEF ldi r27,hi8(-32)
4715 2d86 BB06 cpc r11,r27
4716 2d88 BFEF ldi r27,hlo8(-32)
4717 2d8a CB06 cpc r12,r27
4718 2d8c BFEF ldi r27,hhi8(-32)
4719 2d8e DB06 cpc r13,r27
4720 2d90 04F4 brge .L551
4721 2d92 60EE ldi r22,lo8(-32)
4722 2d94 A62E mov r10,r22
4723 2d96 6FEF ldi r22,hi8(-32)
4724 2d98 B62E mov r11,r22
4725 2d9a 6FEF ldi r22,hlo8(-32)
4726 2d9c C62E mov r12,r22
4727 2d9e 6FEF ldi r22,hhi8(-32)
4728 2da0 D62E mov r13,r22
4729 .L551:
4730 2da2 E1E2 ldi r30,lo8(33)
4731 2da4 EE16 cp r14,r30
4732 2da6 F104 cpc r15,__zero_reg__
4733 2da8 0105 cpc r16,__zero_reg__
4734 2daa 1105 cpc r17,__zero_reg__
4735 2dac 04F0 brlt .L553
4736 2dae 50E2 ldi r21,lo8(32)
4737 2db0 E52E mov r14,r21
4738 2db2 F12C mov r15,__zero_reg__
4739 2db4 012D mov r16,__zero_reg__
4740 2db6 112D mov r17,__zero_reg__
4741 2db8 00C0 rjmp .L541
4742 .L553:
4743 2dba F0EE ldi r31,lo8(-32)
4744 2dbc EF16 cp r14,r31
4745 2dbe FFEF ldi r31,hi8(-32)
4746 2dc0 FF06 cpc r15,r31
4747 2dc2 FFEF ldi r31,hlo8(-32)
4748 2dc4 0F07 cpc r16,r31
4749 2dc6 FFEF ldi r31,hhi8(-32)
4750 2dc8 1F07 cpc r17,r31
4751 2dca 04F4 brge .L541
4752 2dcc 40EE ldi r20,lo8(-32)
4753 2dce E42E mov r14,r20
4754 2dd0 4FEF ldi r20,hi8(-32)
4755 2dd2 F42E mov r15,r20
4756 2dd4 4FEF ldi r20,hlo8(-32)
4757 2dd6 042F mov r16,r20
4758 2dd8 4FEF ldi r20,hhi8(-32)
4759 2dda 142F mov r17,r20
4760 .L541:
4761 2ddc 8091 0000 lds r24,Mess_IntegralNick
4762 2de0 9091 0000 lds r25,(Mess_IntegralNick)+1
4763 2de4 A091 0000 lds r26,(Mess_IntegralNick)+2
4764 2de8 B091 0000 lds r27,(Mess_IntegralNick)+3
4765 2dec 8A19 sub r24,r10
4766 2dee 9B09 sbc r25,r11
4767 2df0 AC09 sbc r26,r12
4768 2df2 BD09 sbc r27,r13
4769 2df4 8093 0000 sts Mess_IntegralNick,r24
4770 2df8 9093 0000 sts (Mess_IntegralNick)+1,r25
4771 2dfc A093 0000 sts (Mess_IntegralNick)+2,r26
4772 2e00 B093 0000 sts (Mess_IntegralNick)+3,r27
4773 2e04 8091 0000 lds r24,Mess_IntegralRoll
4774 2e08 9091 0000 lds r25,(Mess_IntegralRoll)+1
4775 2e0c A091 0000 lds r26,(Mess_IntegralRoll)+2
4776 2e10 B091 0000 lds r27,(Mess_IntegralRoll)+3
4777 2e14 8E19 sub r24,r14
4778 2e16 9F09 sbc r25,r15
4779 2e18 A00B sbc r26,r16
4780 2e1a B10B sbc r27,r17
4781 2e1c 8093 0000 sts Mess_IntegralRoll,r24
4782 2e20 9093 0000 sts (Mess_IntegralRoll)+1,r25
4783 2e24 A093 0000 sts (Mess_IntegralRoll)+2,r26
4784 2e28 B093 0000 sts (Mess_IntegralRoll)+3,r27
4785 .L526:
4786 2e2c 8091 0000 lds r24,ZaehlMessungen
4787 2e30 9091 0000 lds r25,(ZaehlMessungen)+1
4788 2e34 8F3F cpi r24,255
4789 2e36 9105 cpc r25,__zero_reg__
4790 2e38 01F0 breq .+2
4791 2e3a 00F4 brsh .+2
4792 2e3c 00C0 rjmp .L556
4793 2e3e E984 ldd r14,Y+9
4794 2e40 EE20 tst r14
4795 2e42 01F0 breq .+2
4796 2e44 00C0 rjmp .L558
4797 2e46 8091 0000 lds r24,Looping_Roll
4798 2e4a 8823 tst r24
4799 2e4c 01F0 breq .+2
4800 2e4e 00C0 rjmp .L558
4801 2e50 8091 0000 lds r24,TrichterFlug
4802 2e54 8823 tst r24
4803 2e56 01F0 breq .+2
4804 2e58 00C0 rjmp .L558
4805 2e5a F090 0000 lds r15,EE_Parameter+68
4806 2e5e FA8E std Y+26,r15
4807 2e60 FF20 tst r15
4808 2e62 01F4 brne .+2
4809 2e64 00C0 rjmp .L558
4810 2e66 6091 0000 lds r22,MittelIntegralNick
4811 2e6a 7091 0000 lds r23,(MittelIntegralNick)+1
4812 2e6e 8091 0000 lds r24,(MittelIntegralNick)+2
4813 2e72 9091 0000 lds r25,(MittelIntegralNick)+3
4814 2e76 20E0 ldi r18,lo8(256)
4815 2e78 31E0 ldi r19,hi8(256)
4816 2e7a 40E0 ldi r20,hlo8(256)
4817 2e7c 50E0 ldi r21,hhi8(256)
4818 2e7e 0E94 0000 call __divmodsi4
4819 2e82 1901 movw r2,r18
4820 2e84 2A01 movw r4,r20
4821 2e86 2093 0000 sts MittelIntegralNick,r18
4822 2e8a 3093 0000 sts (MittelIntegralNick)+1,r19
4823 2e8e 4093 0000 sts (MittelIntegralNick)+2,r20
4824 2e92 5093 0000 sts (MittelIntegralNick)+3,r21
4825 2e96 6091 0000 lds r22,MittelIntegralRoll
4826 2e9a 7091 0000 lds r23,(MittelIntegralRoll)+1
4827 2e9e 8091 0000 lds r24,(MittelIntegralRoll)+2
4828 2ea2 9091 0000 lds r25,(MittelIntegralRoll)+3
4829 2ea6 20E0 ldi r18,lo8(256)
4830 2ea8 31E0 ldi r19,hi8(256)
4831 2eaa 40E0 ldi r20,hlo8(256)
4832 2eac 50E0 ldi r21,hhi8(256)
4833 2eae 0E94 0000 call __divmodsi4
4834 2eb2 2E8B std Y+22,r18
4835 2eb4 3F8B std Y+23,r19
4836 2eb6 488F std Y+24,r20
4837 2eb8 598F std Y+25,r21
4838 2eba 2093 0000 sts MittelIntegralRoll,r18
4839 2ebe 3093 0000 sts (MittelIntegralRoll)+1,r19
4840 2ec2 4093 0000 sts (MittelIntegralRoll)+2,r20
4841 2ec6 5093 0000 sts (MittelIntegralRoll)+3,r21
4842 2eca E090 0000 lds r14,EE_Parameter+28
4843 2ece FF24 clr r15
4844 2ed0 00E0 ldi r16,lo8(0)
4845 2ed2 10E0 ldi r17,hi8(0)
4846 2ed4 2091 0000 lds r18,IntegralAccNick
4847 2ed8 3091 0000 lds r19,(IntegralAccNick)+1
4848 2edc 4091 0000 lds r20,(IntegralAccNick)+2
4849 2ee0 5091 0000 lds r21,(IntegralAccNick)+3
4850 2ee4 C801 movw r24,r16
4851 2ee6 B701 movw r22,r14
4852 2ee8 0E94 0000 call __mulsi3
4853 2eec 20E0 ldi r18,lo8(256)
4854 2eee 31E0 ldi r19,hi8(256)
4855 2ef0 40E0 ldi r20,hlo8(256)
4856 2ef2 50E0 ldi r21,hhi8(256)
4857 2ef4 0E94 0000 call __divmodsi4
4858 2ef8 5901 movw r10,r18
4859 2efa 6A01 movw r12,r20
4860 2efc 2093 0000 sts IntegralAccNick,r18
4861 2f00 3093 0000 sts (IntegralAccNick)+1,r19
4862 2f04 4093 0000 sts (IntegralAccNick)+2,r20
4863 2f08 5093 0000 sts (IntegralAccNick)+3,r21
4864 2f0c 2091 0000 lds r18,IntegralAccRoll
4865 2f10 3091 0000 lds r19,(IntegralAccRoll)+1
4866 2f14 4091 0000 lds r20,(IntegralAccRoll)+2
4867 2f18 5091 0000 lds r21,(IntegralAccRoll)+3
4868 2f1c C801 movw r24,r16
4869 2f1e B701 movw r22,r14
4870 2f20 0E94 0000 call __mulsi3
4871 2f24 20E0 ldi r18,lo8(256)
4872 2f26 31E0 ldi r19,hi8(256)
4873 2f28 40E0 ldi r20,hlo8(256)
4874 2f2a 50E0 ldi r21,hhi8(256)
4875 2f2c 0E94 0000 call __divmodsi4
4876 2f30 3901 movw r6,r18
4877 2f32 4A01 movw r8,r20
4878 2f34 2093 0000 sts IntegralAccRoll,r18
4879 2f38 3093 0000 sts (IntegralAccRoll)+1,r19
4880 2f3c 4093 0000 sts (IntegralAccRoll)+2,r20
4881 2f40 5093 0000 sts (IntegralAccRoll)+3,r21
4882 2f44 6091 0000 lds r22,IntegralAccZ
4883 2f48 7091 0000 lds r23,(IntegralAccZ)+1
4884 2f4c 8091 0000 lds r24,(IntegralAccZ)+2
4885 2f50 9091 0000 lds r25,(IntegralAccZ)+3
4886 2f54 20E0 ldi r18,lo8(256)
4887 2f56 31E0 ldi r19,hi8(256)
4888 2f58 40E0 ldi r20,hlo8(256)
4889 2f5a 50E0 ldi r21,hhi8(256)
4890 2f5c 0E94 0000 call __divmodsi4
4891 2f60 2093 0000 sts IntegralAccZ,r18
4892 2f64 3093 0000 sts (IntegralAccZ)+1,r19
4893 2f68 4093 0000 sts (IntegralAccZ)+2,r20
4894 2f6c 5093 0000 sts (IntegralAccZ)+3,r21
4895 2f70 E090 0000 lds r14,EE_Parameter+67
4896 2f74 FF24 clr r15
4897 2f76 00E0 ldi r16,lo8(0)
4898 2f78 10E0 ldi r17,hi8(0)
4899 2f7a C201 movw r24,r4
4900 2f7c B101 movw r22,r2
4901 2f7e 6A19 sub r22,r10
4902 2f80 7B09 sbc r23,r11
4903 2f82 8C09 sbc r24,r12
4904 2f84 9D09 sbc r25,r13
4905 2f86 A801 movw r20,r16
4906 2f88 9701 movw r18,r14
4907 2f8a 0E94 0000 call __divmodsi4
4908 2f8e 5901 movw r10,r18
4909 2f90 6A01 movw r12,r20
4910 2f92 2093 0000 sts ausgleichNick.3318,r18
4911 2f96 3093 0000 sts (ausgleichNick.3318)+1,r19
4912 2f9a 4093 0000 sts (ausgleichNick.3318)+2,r20
4913 2f9e 5093 0000 sts (ausgleichNick.3318)+3,r21
4914 2fa2 6E89 ldd r22,Y+22
4915 2fa4 7F89 ldd r23,Y+23
4916 2fa6 888D ldd r24,Y+24
4917 2fa8 998D ldd r25,Y+25
4918 2faa 6619 sub r22,r6
4919 2fac 7709 sbc r23,r7
4920 2fae 8809 sbc r24,r8
4921 2fb0 9909 sbc r25,r9
4922 2fb2 A801 movw r20,r16
4923 2fb4 9701 movw r18,r14
4924 2fb6 0E94 0000 call __divmodsi4
4925 2fba 7901 movw r14,r18
4926 2fbc 8A01 movw r16,r20
4927 2fbe 2093 0000 sts ausgleichRoll.3319,r18
4928 2fc2 3093 0000 sts (ausgleichRoll.3319)+1,r19
4929 2fc6 4093 0000 sts (ausgleichRoll.3319)+2,r20
4930 2fca 5093 0000 sts (ausgleichRoll.3319)+3,r21
4931 2fce C601 movw r24,r12
4932 2fd0 B501 movw r22,r10
4933 2fd2 20E0 ldi r18,lo8(256)
4934 2fd4 31E0 ldi r19,hi8(256)
4935 2fd6 40E0 ldi r20,hlo8(256)
4936 2fd8 50E0 ldi r21,hhi8(256)
4937 2fda 0E94 0000 call __divmodsi4
4938 2fde 6901 movw r12,r18
4939 2fe0 3093 0000 sts (LageKorrekturNick)+1,r19
4940 2fe4 2093 0000 sts LageKorrekturNick,r18
4941 2fe8 C801 movw r24,r16
4942 2fea B701 movw r22,r14
4943 2fec 20E0 ldi r18,lo8(256)
4944 2fee 31E0 ldi r19,hi8(256)
4945 2ff0 40E0 ldi r20,hlo8(256)
4946 2ff2 50E0 ldi r21,hhi8(256)
4947 2ff4 0E94 0000 call __divmodsi4
4948 2ff8 8901 movw r16,r18
4949 2ffa 3093 0000 sts (LageKorrekturRoll)+1,r19
4950 2ffe 2093 0000 sts LageKorrekturRoll,r18
4951 3002 8091 0000 lds r24,MaxStickNick
4952 3006 9091 0000 lds r25,(MaxStickNick)+1
4953 300a 8134 cpi r24,65
4954 300c 9105 cpc r25,__zero_reg__
4955 300e 04F4 brge .L563
4956 3010 8091 0000 lds r24,MaxStickRoll
4957 3014 9091 0000 lds r25,(MaxStickRoll)+1
4958 3018 8134 cpi r24,65
4959 301a 9105 cpc r25,__zero_reg__
4960 301c 04F4 brge .L563
4961 301e E091 0000 lds r30,EE_Parameter+4
4962 3022 F0E0 ldi r31,lo8(0)
4963 3024 EE0F lsl r30
4964 3026 FF1F rol r31
4965 3028 E050 subi r30,lo8(-(PPM_in))
4966 302a F040 sbci r31,hi8(-(PPM_in))
4967 302c 0190 ld __tmp_reg__,Z+
4968 302e F081 ld r31,Z
4969 3030 E02D mov r30,__tmp_reg__
4970 3032 F7FF sbrs r31,7
4971 3034 00C0 rjmp .L567
4972 3036 F095 com r31
4973 3038 E195 neg r30
4974 303a FF4F sbci r31,lo8(-1)
4975 .L567:
4976 303c 7A97 sbiw r30,26
4977 303e 04F0 brlt .L566
4978 .L563:
4979 3040 8091 0000 lds r24,FromNaviCtrl_Value
4980 3044 8F3F cpi r24,lo8(-1)
4981 3046 01F4 brne .L566
4982 3048 C601 movw r24,r12
4983 304a 62E0 ldi r22,lo8(2)
4984 304c 70E0 ldi r23,hi8(2)
4985 304e 0E94 0000 call __divmodhi4
4986 3052 7093 0000 sts (LageKorrekturNick)+1,r23
4987 3056 6093 0000 sts LageKorrekturNick,r22
4988 305a C801 movw r24,r16
4989 305c 62E0 ldi r22,lo8(2)
4990 305e 70E0 ldi r23,hi8(2)
4991 3060 0E94 0000 call __divmodhi4
4992 3064 7093 0000 sts (LageKorrekturRoll)+1,r23
4993 3068 6093 0000 sts LageKorrekturRoll,r22
4994 .L566:
4995 306c 6091 0000 lds r22,MittelIntegralNick2
4996 3070 7091 0000 lds r23,(MittelIntegralNick2)+1
4997 3074 8091 0000 lds r24,(MittelIntegralNick2)+2
4998 3078 9091 0000 lds r25,(MittelIntegralNick2)+3
4999 307c 20E0 ldi r18,lo8(256)
5000 307e 31E0 ldi r19,hi8(256)
5001 3080 40E0 ldi r20,hlo8(256)
5002 3082 50E0 ldi r21,hhi8(256)
5003 3084 0E94 0000 call __divmodsi4
5004 3088 2093 0000 sts MittelIntegralNick2,r18
5005 308c 3093 0000 sts (MittelIntegralNick2)+1,r19
5006 3090 4093 0000 sts (MittelIntegralNick2)+2,r20
5007 3094 5093 0000 sts (MittelIntegralNick2)+3,r21
5008 3098 6091 0000 lds r22,MittelIntegralRoll2
5009 309c 7091 0000 lds r23,(MittelIntegralRoll2)+1
5010 30a0 8091 0000 lds r24,(MittelIntegralRoll2)+2
5011 30a4 9091 0000 lds r25,(MittelIntegralRoll2)+3
5012 30a8 20E0 ldi r18,lo8(256)
5013 30aa 31E0 ldi r19,hi8(256)
5014 30ac 40E0 ldi r20,hlo8(256)
5015 30ae 50E0 ldi r21,hhi8(256)
5016 30b0 0E94 0000 call __divmodsi4
5017 30b4 2093 0000 sts MittelIntegralRoll2,r18
5018 30b8 3093 0000 sts (MittelIntegralRoll2)+1,r19
5019 30bc 4093 0000 sts (MittelIntegralRoll2)+2,r20
5020 30c0 5093 0000 sts (MittelIntegralRoll2)+3,r21
5021 30c4 EF8C ldd r14,Y+31
5022 30c6 F8A0 ldd r15,Y+32
5023 30c8 09A1 ldd r16,Y+33
5024 30ca 1AA1 ldd r17,Y+34
5025 30cc 2981 ldd r18,Y+1
5026 30ce 3A81 ldd r19,Y+2
5027 30d0 4B81 ldd r20,Y+3
5028 30d2 5C81 ldd r21,Y+4
5029 30d4 E21A sub r14,r18
5030 30d6 F30A sbc r15,r19
5031 30d8 040B sbc r16,r20
5032 30da 150B sbc r17,r21
5033 30dc E092 0000 sts tmp_long.3308,r14
5034 30e0 F092 0000 sts (tmp_long.3308)+1,r15
5035 30e4 0093 0000 sts (tmp_long.3308)+2,r16
5036 30e8 1093 0000 sts (tmp_long.3308)+3,r17
5037 30ec AB8C ldd r10,Y+27
5038 30ee BC8C ldd r11,Y+28
5039 30f0 CD8C ldd r12,Y+29
5040 30f2 DE8C ldd r13,Y+30
5041 30f4 4D81 ldd r20,Y+5
5042 30f6 5E81 ldd r21,Y+6
5043 30f8 6F81 ldd r22,Y+7
5044 30fa 7885 ldd r23,Y+8
5045 30fc A41A sub r10,r20
5046 30fe B50A sbc r11,r21
5047 3100 C60A sbc r12,r22
5048 3102 D70A sbc r13,r23
5049 3104 A092 0000 sts tmp_long2.3309,r10
5050 3108 B092 0000 sts (tmp_long2.3309)+1,r11
5051 310c C092 0000 sts (tmp_long2.3309)+2,r12
5052 3110 D092 0000 sts (tmp_long2.3309)+3,r13
5053 3114 E092 0000 sts IntegralFehlerNick.3310,r14
5054 3118 F092 0000 sts (IntegralFehlerNick.3310)+1,r15
5055 311c 0093 0000 sts (IntegralFehlerNick.3310)+2,r16
5056 3120 1093 0000 sts (IntegralFehlerNick.3310)+3,r17
5057 3124 A092 0000 sts IntegralFehlerRoll.3311,r10
5058 3128 B092 0000 sts (IntegralFehlerRoll.3311)+1,r11
5059 312c C092 0000 sts (IntegralFehlerRoll.3311)+2,r12
5060 3130 D092 0000 sts (IntegralFehlerRoll.3311)+3,r13
5061 3134 8091 0000 lds r24,Mess_IntegralNick2
5062 3138 9091 0000 lds r25,(Mess_IntegralNick2)+1
5063 313c A091 0000 lds r26,(Mess_IntegralNick2)+2
5064 3140 B091 0000 lds r27,(Mess_IntegralNick2)+3
5065 3144 8E19 sub r24,r14
5066 3146 9F09 sbc r25,r15
5067 3148 A00B sbc r26,r16
5068 314a B10B sbc r27,r17
5069 314c 8093 0000 sts Mess_IntegralNick2,r24
5070 3150 9093 0000 sts (Mess_IntegralNick2)+1,r25
5071 3154 A093 0000 sts (Mess_IntegralNick2)+2,r26
5072 3158 B093 0000 sts (Mess_IntegralNick2)+3,r27
5073 315c 8091 0000 lds r24,Mess_IntegralRoll2
5074 3160 9091 0000 lds r25,(Mess_IntegralRoll2)+1
5075 3164 A091 0000 lds r26,(Mess_IntegralRoll2)+2
5076 3168 B091 0000 lds r27,(Mess_IntegralRoll2)+3
5077 316c 8A19 sub r24,r10
5078 316e 9B09 sbc r25,r11
5079 3170 AC09 sbc r26,r12
5080 3172 BD09 sbc r27,r13
5081 3174 8093 0000 sts Mess_IntegralRoll2,r24
5082 3178 9093 0000 sts (Mess_IntegralRoll2)+1,r25
5083 317c A093 0000 sts (Mess_IntegralRoll2)+2,r26
5084 3180 B093 0000 sts (Mess_IntegralRoll2)+3,r27
5085 3184 2091 0000 lds r18,GierGyroFehler
5086 3188 3091 0000 lds r19,(GierGyroFehler)+1
5087 318c 2138 cpi r18,129
5088 318e 3105 cpc r19,__zero_reg__
5089 3190 04F0 brlt .L569
5090 3192 8091 0000 lds r24,AdNeutralGier
5091 3196 9091 0000 lds r25,(AdNeutralGier)+1
5092 319a 0196 adiw r24,1
5093 319c 9093 0000 sts (AdNeutralGier)+1,r25
5094 31a0 8093 0000 sts AdNeutralGier,r24
5095 .L569:
5096 31a4 2058 subi r18,lo8(-128)
5097 31a6 3F4F sbci r19,hi8(-128)
5098 31a8 04F4 brge .L571
5099 31aa 8091 0000 lds r24,AdNeutralGier
5100 31ae 9091 0000 lds r25,(AdNeutralGier)+1
5101 31b2 0197 sbiw r24,1
5102 31b4 9093 0000 sts (AdNeutralGier)+1,r25
5103 31b8 8093 0000 sts AdNeutralGier,r24
5104 .L571:
5105 31bc 1092 0000 sts (GierGyroFehler)+1,__zero_reg__
5106 31c0 1092 0000 sts GierGyroFehler,__zero_reg__
5107 31c4 81E0 ldi r24,lo8(1)
5108 31c6 90E0 ldi r25,hi8(1)
5109 31c8 9093 0000 sts (cnt.3330)+1,r25
5110 31cc 8093 0000 sts cnt.3330,r24
5111 31d0 A801 movw r20,r16
5112 31d2 9701 movw r18,r14
5113 31d4 17FF sbrs r17,7
5114 31d6 00C0 rjmp .L573
5115 31d8 2227 clr r18
5116 31da 3327 clr r19
5117 31dc A901 movw r20,r18
5118 31de 2E19 sub r18,r14
5119 31e0 3F09 sbc r19,r15
5120 31e2 400B sbc r20,r16
5121 31e4 510B sbc r21,r17
5122 .L573:
5123 31e6 2130 cpi r18,lo8(513)
5124 31e8 62E0 ldi r22,hi8(513)
5125 31ea 3607 cpc r19,r22
5126 31ec 60E0 ldi r22,hlo8(513)
5127 31ee 4607 cpc r20,r22
5128 31f0 60E0 ldi r22,hhi8(513)
5129 31f2 5607 cpc r21,r22
5130 31f4 04F0 brlt .L574
5131 31f6 84E0 ldi r24,lo8(4)
5132 31f8 90E0 ldi r25,hi8(4)
5133 31fa 9093 0000 sts (cnt.3330)+1,r25
5134 31fe 8093 0000 sts cnt.3330,r24
5135 .L574:
5136 3202 8091 0000 lds r24,MittelIntegralNick_Alt.3335
5137 3206 9091 0000 lds r25,(MittelIntegralNick_Alt.3335)+1
5138 320a A091 0000 lds r26,(MittelIntegralNick_Alt.3335)+2
5139 320e B091 0000 lds r27,(MittelIntegralNick_Alt.3335)+3
5140 3212 8219 sub r24,r2
5141 3214 9309 sbc r25,r3
5142 3216 A409 sbc r26,r4
5143 3218 B509 sbc r27,r5
5144 321a 815E subi r24,lo8(-(19999))
5145 321c 914B sbci r25,hi8(-(19999))
5146 321e AF4F sbci r26,hlo8(-(19999))
5147 3220 BF4F sbci r27,hhi8(-(19999))
5148 3222 8F53 subi r24,lo8(39999)
5149 3224 9C49 sbci r25,hi8(39999)
5150 3226 A040 sbci r26,hlo8(39999)
5151 3228 B040 sbci r27,hhi8(39999)
5152 322a 00F0 brlo .L576
5153 322c 8091 0000 lds r24,FromNaviCtrl_Value+1
5154 3230 8931 cpi r24,lo8(25)
5155 3232 04F4 brge .+2
5156 3234 00C0 rjmp .L578
5157 .L576:
5158 3236 81E0 ldi r24,lo8(4097)
5159 3238 E816 cp r14,r24
5160 323a 80E1 ldi r24,hi8(4097)
5161 323c F806 cpc r15,r24
5162 323e 80E0 ldi r24,hlo8(4097)
5163 3240 0807 cpc r16,r24
5164 3242 80E0 ldi r24,hhi8(4097)
5165 3244 1807 cpc r17,r24
5166 3246 04F4 brge .+2
5167 3248 00C0 rjmp .L579
5168 324a 8091 0000 lds r24,last_n_p.3331
5169 324e 8823 tst r24
5170 3250 01F4 brne .+2
5171 3252 00C0 rjmp .L581
5172 3254 CA01 movw r24,r20
5173 3256 B901 movw r22,r18
5174 3258 20E0 ldi r18,lo8(512)
5175 325a 32E0 ldi r19,hi8(512)
5176 325c 40E0 ldi r20,hlo8(512)
5177 325e 50E0 ldi r21,hhi8(512)
5178 3260 0E94 0000 call __divmodsi4
5179 3264 8091 0000 lds r24,cnt.3330
5180 3268 9091 0000 lds r25,(cnt.3330)+1
5181 326c 820F add r24,r18
5182 326e 931F adc r25,r19
5183 3270 9093 0000 sts (cnt.3330)+1,r25
5184 3274 8093 0000 sts cnt.3330,r24
5185 3278 D801 movw r26,r16
5186 327a C701 movw r24,r14
5187 327c 23E0 ldi r18,3
5188 327e B595 1: asr r27
5189 3280 A795 ror r26
5190 3282 9795 ror r25
5191 3284 8795 ror r24
5192 3286 2A95 dec r18
5193 3288 01F4 brne 1b
5194 328a 8093 0000 sts ausgleichNick.3318,r24
5195 328e 9093 0000 sts (ausgleichNick.3318)+1,r25
5196 3292 A093 0000 sts (ausgleichNick.3318)+2,r26
5197 3296 B093 0000 sts (ausgleichNick.3318)+3,r27
5198 329a 8958 subi r24,lo8(5001)
5199 329c 9341 sbci r25,hi8(5001)
5200 329e A040 sbci r26,hlo8(5001)
5201 32a0 B040 sbci r27,hhi8(5001)
5202 32a2 04F0 brlt .L583
5203 32a4 88E8 ldi r24,lo8(5000)
5204 32a6 93E1 ldi r25,hi8(5000)
5205 32a8 A0E0 ldi r26,hlo8(5000)
5206 32aa B0E0 ldi r27,hhi8(5000)
5207 32ac 8093 0000 sts ausgleichNick.3318,r24
5208 32b0 9093 0000 sts (ausgleichNick.3318)+1,r25
5209 32b4 A093 0000 sts (ausgleichNick.3318)+2,r26
5210 32b8 B093 0000 sts (ausgleichNick.3318)+3,r27
5211 .L583:
5212 32bc 6091 0000 lds r22,ausgleichNick.3318
5213 32c0 7091 0000 lds r23,(ausgleichNick.3318)+1
5214 32c4 8091 0000 lds r24,(ausgleichNick.3318)+2
5215 32c8 9091 0000 lds r25,(ausgleichNick.3318)+3
5216 32cc 20E0 ldi r18,lo8(256)
5217 32ce 31E0 ldi r19,hi8(256)
5218 32d0 40E0 ldi r20,hlo8(256)
5219 32d2 50E0 ldi r21,hhi8(256)
5220 32d4 0E94 0000 call __divmodsi4
5221 32d8 8091 0000 lds r24,LageKorrekturNick
5222 32dc 9091 0000 lds r25,(LageKorrekturNick)+1
5223 32e0 820F add r24,r18
5224 32e2 931F adc r25,r19
5225 32e4 9093 0000 sts (LageKorrekturNick)+1,r25
5226 32e8 8093 0000 sts LageKorrekturNick,r24
5227 32ec 00C0 rjmp .L585
5228 .L581:
5229 32ee 81E0 ldi r24,lo8(1)
5230 32f0 8093 0000 sts last_n_p.3331,r24
5231 32f4 00C0 rjmp .L585
5232 .L579:
5233 32f6 1092 0000 sts last_n_p.3331,__zero_reg__
5234 32fa F0E0 ldi r31,lo8(-4096)
5235 32fc EF16 cp r14,r31
5236 32fe F0EF ldi r31,hi8(-4096)
5237 3300 FF06 cpc r15,r31
5238 3302 FFEF ldi r31,hlo8(-4096)
5239 3304 0F07 cpc r16,r31
5240 3306 FFEF ldi r31,hhi8(-4096)
5241 3308 1F07 cpc r17,r31
5242 330a 04F0 brlt .+2
5243 330c 00C0 rjmp .L585
5244 330e 8091 0000 lds r24,last_n_n.3332
5245 3312 8823 tst r24
5246 3314 01F4 brne .+2
5247 3316 00C0 rjmp .L587
5248 3318 CA01 movw r24,r20
5249 331a B901 movw r22,r18
5250 331c 20E0 ldi r18,lo8(512)
5251 331e 32E0 ldi r19,hi8(512)
5252 3320 40E0 ldi r20,hlo8(512)
5253 3322 50E0 ldi r21,hhi8(512)
5254 3324 0E94 0000 call __divmodsi4
5255 3328 8091 0000 lds r24,cnt.3330
5256 332c 9091 0000 lds r25,(cnt.3330)+1
5257 3330 820F add r24,r18
5258 3332 931F adc r25,r19
5259 3334 9093 0000 sts (cnt.3330)+1,r25
5260 3338 8093 0000 sts cnt.3330,r24
5261 333c C801 movw r24,r16
5262 333e B701 movw r22,r14
5263 3340 28E0 ldi r18,lo8(8)
5264 3342 30E0 ldi r19,hi8(8)
5265 3344 40E0 ldi r20,hlo8(8)
5266 3346 50E0 ldi r21,hhi8(8)
5267 3348 0E94 0000 call __divmodsi4
5268 334c 2093 0000 sts ausgleichNick.3318,r18
5269 3350 3093 0000 sts (ausgleichNick.3318)+1,r19
5270 3354 4093 0000 sts (ausgleichNick.3318)+2,r20
5271 3358 5093 0000 sts (ausgleichNick.3318)+3,r21
5272 335c 2857 subi r18,lo8(-5000)
5273 335e 3C4E sbci r19,hi8(-5000)
5274 3360 4F4F sbci r20,hlo8(-5000)
5275 3362 5F4F sbci r21,hhi8(-5000)
5276 3364 04F4 brge .L589
5277 3366 88E7 ldi r24,lo8(-5000)
5278 3368 9CEE ldi r25,hi8(-5000)
5279 336a AFEF ldi r26,hlo8(-5000)
5280 336c BFEF ldi r27,hhi8(-5000)
5281 336e 8093 0000 sts ausgleichNick.3318,r24
5282 3372 9093 0000 sts (ausgleichNick.3318)+1,r25
5283 3376 A093 0000 sts (ausgleichNick.3318)+2,r26
5284 337a B093 0000 sts (ausgleichNick.3318)+3,r27
5285 .L589:
5286 337e 6091 0000 lds r22,ausgleichNick.3318
5287 3382 7091 0000 lds r23,(ausgleichNick.3318)+1
5288 3386 8091 0000 lds r24,(ausgleichNick.3318)+2
5289 338a 9091 0000 lds r25,(ausgleichNick.3318)+3
5290 338e 20E0 ldi r18,lo8(256)
5291 3390 31E0 ldi r19,hi8(256)
5292 3392 40E0 ldi r20,hlo8(256)
5293 3394 50E0 ldi r21,hhi8(256)
5294 3396 0E94 0000 call __divmodsi4
5295 339a 8091 0000 lds r24,LageKorrekturNick
5296 339e 9091 0000 lds r25,(LageKorrekturNick)+1
5297 33a2 820F add r24,r18
5298 33a4 931F adc r25,r19
5299 33a6 9093 0000 sts (LageKorrekturNick)+1,r25
5300 33aa 8093 0000 sts LageKorrekturNick,r24
5301 33ae 00C0 rjmp .L591
5302 .L587:
5303 33b0 81E0 ldi r24,lo8(1)
5304 33b2 8093 0000 sts last_n_n.3332,r24
5305 33b6 00C0 rjmp .L591
5306 .L585:
5307 33b8 1092 0000 sts last_n_n.3332,__zero_reg__
5308 33bc 00C0 rjmp .L591
5309 .L578:
5310 33be 1092 0000 sts (cnt.3330)+1,__zero_reg__
5311 33c2 1092 0000 sts cnt.3330,__zero_reg__
5312 33c6 88EE ldi r24,lo8(1000)
5313 33c8 93E0 ldi r25,hi8(1000)
5314 33ca 9093 0000 sts (KompassSignalSchlecht)+1,r25
5315 33ce 8093 0000 sts KompassSignalSchlecht,r24
5316 .L591:
5317 33d2 7A8D ldd r23,Y+26
5318 33d4 672E mov r6,r23
5319 33d6 7724 clr r7
5320 33d8 8091 0000 lds r24,cnt.3330
5321 33dc 9091 0000 lds r25,(cnt.3330)+1
5322 33e0 6816 cp r6,r24
5323 33e2 7906 cpc r7,r25
5324 33e4 04F4 brge .L592
5325 33e6 7092 0000 sts (cnt.3330)+1,r7
5326 33ea 6092 0000 sts cnt.3330,r6
5327 .L592:
5328 33ee 9090 0000 lds r9,FromNaviCtrl_Value+1
5329 33f2 9920 tst r9
5330 33f4 01F0 breq .L594
5331 33f6 292D mov r18,r9
5332 33f8 3327 clr r19
5333 33fa 27FD sbrc r18,7
5334 33fc 3095 com r19
5335 33fe 8091 0000 lds r24,cnt.3330
5336 3402 9091 0000 lds r25,(cnt.3330)+1
5337 3406 2817 cp r18,r24
5338 3408 3907 cpc r19,r25
5339 340a 04F4 brge .L594
5340 340c 3093 0000 sts (cnt.3330)+1,r19
5341 3410 2093 0000 sts cnt.3330,r18
5342 .L594:
5343 3414 81E8 ldi r24,lo8(129)
5344 3416 E816 cp r14,r24
5345 3418 F104 cpc r15,__zero_reg__
5346 341a 0105 cpc r16,__zero_reg__
5347 341c 1105 cpc r17,__zero_reg__
5348 341e 04F0 brlt .L597
5349 3420 8091 0000 lds r24,AdNeutralNick
5350 3424 9091 0000 lds r25,(AdNeutralNick)+1
5351 3428 2091 0000 lds r18,cnt.3330
5352 342c 3091 0000 lds r19,(cnt.3330)+1
5353 3430 820F add r24,r18
5354 3432 931F adc r25,r19
5355 3434 9093 0000 sts (AdNeutralNick)+1,r25
5356 3438 8093 0000 sts AdNeutralNick,r24
5357 .L597:
5358 343c 90E8 ldi r25,lo8(-128)
5359 343e E916 cp r14,r25
5360 3440 9FEF ldi r25,hi8(-128)
5361 3442 F906 cpc r15,r25
5362 3444 9FEF ldi r25,hlo8(-128)
5363 3446 0907 cpc r16,r25
5364 3448 9FEF ldi r25,hhi8(-128)
5365 344a 1907 cpc r17,r25
5366 344c 04F4 brge .L599
5367 344e 8091 0000 lds r24,AdNeutralNick
5368 3452 9091 0000 lds r25,(AdNeutralNick)+1
5369 3456 2091 0000 lds r18,cnt.3330
5370 345a 3091 0000 lds r19,(cnt.3330)+1
5371 345e 821B sub r24,r18
5372 3460 930B sbc r25,r19
5373 3462 9093 0000 sts (AdNeutralNick)+1,r25
5374 3466 8093 0000 sts AdNeutralNick,r24
5375 .L599:
5376 346a 81E0 ldi r24,lo8(1)
5377 346c 90E0 ldi r25,hi8(1)
5378 346e 9093 0000 sts (cnt.3330)+1,r25
5379 3472 8093 0000 sts cnt.3330,r24
5380 3476 A601 movw r20,r12
5381 3478 9501 movw r18,r10
5382 347a D7FE sbrs r13,7
5383 347c 00C0 rjmp .L601
5384 347e 2227 clr r18
5385 3480 3327 clr r19
5386 3482 A901 movw r20,r18
5387 3484 2A19 sub r18,r10
5388 3486 3B09 sbc r19,r11
5389 3488 4C09 sbc r20,r12
5390 348a 5D09 sbc r21,r13
5391 .L601:
5392 348c 2130 cpi r18,lo8(513)
5393 348e A2E0 ldi r26,hi8(513)
5394 3490 3A07 cpc r19,r26
5395 3492 A0E0 ldi r26,hlo8(513)
5396 3494 4A07 cpc r20,r26
5397 3496 A0E0 ldi r26,hhi8(513)
5398 3498 5A07 cpc r21,r26
5399 349a 04F0 brlt .L602
5400 349c 84E0 ldi r24,lo8(4)
5401 349e 90E0 ldi r25,hi8(4)
5402 34a0 9093 0000 sts (cnt.3330)+1,r25
5403 34a4 8093 0000 sts cnt.3330,r24
5404 .L602:
5405 34a8 8091 0000 lds r24,MittelIntegralRoll_Alt.3336
5406 34ac 9091 0000 lds r25,(MittelIntegralRoll_Alt.3336)+1
5407 34b0 A091 0000 lds r26,(MittelIntegralRoll_Alt.3336)+2
5408 34b4 B091 0000 lds r27,(MittelIntegralRoll_Alt.3336)+3
5409 34b8 EE88 ldd r14,Y+22
5410 34ba FF88 ldd r15,Y+23
5411 34bc 088D ldd r16,Y+24
5412 34be 198D ldd r17,Y+25
5413 34c0 8E19 sub r24,r14
5414 34c2 9F09 sbc r25,r15
5415 34c4 A00B sbc r26,r16
5416 34c6 B10B sbc r27,r17
5417 34c8 815E subi r24,lo8(-(19999))
5418 34ca 914B sbci r25,hi8(-(19999))
5419 34cc AF4F sbci r26,hlo8(-(19999))
5420 34ce BF4F sbci r27,hhi8(-(19999))
5421 34d0 8F53 subi r24,lo8(39999)
5422 34d2 9C49 sbci r25,hi8(39999)
5423 34d4 A040 sbci r26,hlo8(39999)
5424 34d6 B040 sbci r27,hhi8(39999)
5425 34d8 00F0 brlo .L604
5426 34da 18E1 ldi r17,lo8(24)
5427 34dc 1915 cp r17,r9
5428 34de 04F0 brlt .+2
5429 34e0 00C0 rjmp .L606
5430 .L604:
5431 34e2 61E0 ldi r22,lo8(4097)
5432 34e4 A616 cp r10,r22
5433 34e6 60E1 ldi r22,hi8(4097)
5434 34e8 B606 cpc r11,r22
5435 34ea 60E0 ldi r22,hlo8(4097)
5436 34ec C606 cpc r12,r22
5437 34ee 60E0 ldi r22,hhi8(4097)
5438 34f0 D606 cpc r13,r22
5439 34f2 04F4 brge .+2
5440 34f4 00C0 rjmp .L607
5441 34f6 8091 0000 lds r24,last_r_p.3333
5442 34fa 8823 tst r24
5443 34fc 01F4 brne .+2
5444 34fe 00C0 rjmp .L609
5445 3500 CA01 movw r24,r20
5446 3502 B901 movw r22,r18
5447 3504 20E0 ldi r18,lo8(512)
5448 3506 32E0 ldi r19,hi8(512)
5449 3508 40E0 ldi r20,hlo8(512)
5450 350a 50E0 ldi r21,hhi8(512)
5451 350c 0E94 0000 call __divmodsi4
5452 3510 8091 0000 lds r24,cnt.3330
5453 3514 9091 0000 lds r25,(cnt.3330)+1
5454 3518 820F add r24,r18
5455 351a 931F adc r25,r19
5456 351c 9093 0000 sts (cnt.3330)+1,r25
5457 3520 8093 0000 sts cnt.3330,r24
5458 3524 D601 movw r26,r12
5459 3526 C501 movw r24,r10
5460 3528 13E0 ldi r17,3
5461 352a B595 1: asr r27
5462 352c A795 ror r26
5463 352e 9795 ror r25
5464 3530 8795 ror r24
5465 3532 1A95 dec r17
5466 3534 01F4 brne 1b
5467 3536 8093 0000 sts ausgleichRoll.3319,r24
5468 353a 9093 0000 sts (ausgleichRoll.3319)+1,r25
5469 353e A093 0000 sts (ausgleichRoll.3319)+2,r26
5470 3542 B093 0000 sts (ausgleichRoll.3319)+3,r27
5471 3546 8958 subi r24,lo8(5001)
5472 3548 9341 sbci r25,hi8(5001)
5473 354a A040 sbci r26,hlo8(5001)
5474 354c B040 sbci r27,hhi8(5001)
5475 354e 04F0 brlt .L611
5476 3550 88E8 ldi r24,lo8(5000)
5477 3552 93E1 ldi r25,hi8(5000)
5478 3554 A0E0 ldi r26,hlo8(5000)
5479 3556 B0E0 ldi r27,hhi8(5000)
5480 3558 8093 0000 sts ausgleichRoll.3319,r24
5481 355c 9093 0000 sts (ausgleichRoll.3319)+1,r25
5482 3560 A093 0000 sts (ausgleichRoll.3319)+2,r26
5483 3564 B093 0000 sts (ausgleichRoll.3319)+3,r27
5484 .L611:
5485 3568 6091 0000 lds r22,ausgleichRoll.3319
5486 356c 7091 0000 lds r23,(ausgleichRoll.3319)+1
5487 3570 8091 0000 lds r24,(ausgleichRoll.3319)+2
5488 3574 9091 0000 lds r25,(ausgleichRoll.3319)+3
5489 3578 20E0 ldi r18,lo8(256)
5490 357a 31E0 ldi r19,hi8(256)
5491 357c 40E0 ldi r20,hlo8(256)
5492 357e 50E0 ldi r21,hhi8(256)
5493 3580 0E94 0000 call __divmodsi4
5494 3584 8091 0000 lds r24,LageKorrekturRoll
5495 3588 9091 0000 lds r25,(LageKorrekturRoll)+1
5496 358c 820F add r24,r18
5497 358e 931F adc r25,r19
5498 3590 9093 0000 sts (LageKorrekturRoll)+1,r25
5499 3594 8093 0000 sts LageKorrekturRoll,r24
5500 3598 00C0 rjmp .L613
5501 .L609:
5502 359a 81E0 ldi r24,lo8(1)
5503 359c 8093 0000 sts last_r_p.3333,r24
5504 35a0 00C0 rjmp .L613
5505 .L607:
5506 35a2 1092 0000 sts last_r_p.3333,__zero_reg__
5507 35a6 80E0 ldi r24,lo8(-4096)
5508 35a8 A816 cp r10,r24
5509 35aa 80EF ldi r24,hi8(-4096)
5510 35ac B806 cpc r11,r24
5511 35ae 8FEF ldi r24,hlo8(-4096)
5512 35b0 C806 cpc r12,r24
5513 35b2 8FEF ldi r24,hhi8(-4096)
5514 35b4 D806 cpc r13,r24
5515 35b6 04F0 brlt .+2
5516 35b8 00C0 rjmp .L613
5517 35ba 8091 0000 lds r24,last_r_n.3334
5518 35be 8823 tst r24
5519 35c0 01F4 brne .+2
5520 35c2 00C0 rjmp .L615
5521 35c4 CA01 movw r24,r20
5522 35c6 B901 movw r22,r18
5523 35c8 20E0 ldi r18,lo8(512)
5524 35ca 32E0 ldi r19,hi8(512)
5525 35cc 40E0 ldi r20,hlo8(512)
5526 35ce 50E0 ldi r21,hhi8(512)
5527 35d0 0E94 0000 call __divmodsi4
5528 35d4 8091 0000 lds r24,cnt.3330
5529 35d8 9091 0000 lds r25,(cnt.3330)+1
5530 35dc 820F add r24,r18
5531 35de 931F adc r25,r19
5532 35e0 9093 0000 sts (cnt.3330)+1,r25
5533 35e4 8093 0000 sts cnt.3330,r24
5534 35e8 C601 movw r24,r12
5535 35ea B501 movw r22,r10
5536 35ec 28E0 ldi r18,lo8(8)
5537 35ee 30E0 ldi r19,hi8(8)
5538 35f0 40E0 ldi r20,hlo8(8)
5539 35f2 50E0 ldi r21,hhi8(8)
5540 35f4 0E94 0000 call __divmodsi4
5541 35f8 2093 0000 sts ausgleichRoll.3319,r18
5542 35fc 3093 0000 sts (ausgleichRoll.3319)+1,r19
5543 3600 4093 0000 sts (ausgleichRoll.3319)+2,r20
5544 3604 5093 0000 sts (ausgleichRoll.3319)+3,r21
5545 3608 2857 subi r18,lo8(-5000)
5546 360a 3C4E sbci r19,hi8(-5000)
5547 360c 4F4F sbci r20,hlo8(-5000)
5548 360e 5F4F sbci r21,hhi8(-5000)
5549 3610 04F4 brge .L617
5550 3612 88E7 ldi r24,lo8(-5000)
5551 3614 9CEE ldi r25,hi8(-5000)
5552 3616 AFEF ldi r26,hlo8(-5000)
5553 3618 BFEF ldi r27,hhi8(-5000)
5554 361a 8093 0000 sts ausgleichRoll.3319,r24
5555 361e 9093 0000 sts (ausgleichRoll.3319)+1,r25
5556 3622 A093 0000 sts (ausgleichRoll.3319)+2,r26
5557 3626 B093 0000 sts (ausgleichRoll.3319)+3,r27
5558 .L617:
5559 362a 6091 0000 lds r22,ausgleichRoll.3319
5560 362e 7091 0000 lds r23,(ausgleichRoll.3319)+1
5561 3632 8091 0000 lds r24,(ausgleichRoll.3319)+2
5562 3636 9091 0000 lds r25,(ausgleichRoll.3319)+3
5563 363a 20E0 ldi r18,lo8(256)
5564 363c 31E0 ldi r19,hi8(256)
5565 363e 40E0 ldi r20,hlo8(256)
5566 3640 50E0 ldi r21,hhi8(256)
5567 3642 0E94 0000 call __divmodsi4
5568 3646 8091 0000 lds r24,LageKorrekturRoll
5569 364a 9091 0000 lds r25,(LageKorrekturRoll)+1
5570 364e 820F add r24,r18
5571 3650 931F adc r25,r19
5572 3652 9093 0000 sts (LageKorrekturRoll)+1,r25
5573 3656 8093 0000 sts LageKorrekturRoll,r24
5574 365a 00C0 rjmp .L619
5575 .L615:
5576 365c 81E0 ldi r24,lo8(1)
5577 365e 8093 0000 sts last_r_n.3334,r24
5578 3662 00C0 rjmp .L619
5579 .L613:
5580 3664 1092 0000 sts last_r_n.3334,__zero_reg__
5581 3668 00C0 rjmp .L619
5582 .L606:
5583 366a 1092 0000 sts (cnt.3330)+1,__zero_reg__
5584 366e 1092 0000 sts cnt.3330,__zero_reg__
5585 3672 88EE ldi r24,lo8(1000)
5586 3674 93E0 ldi r25,hi8(1000)
5587 3676 9093 0000 sts (KompassSignalSchlecht)+1,r25
5588 367a 8093 0000 sts KompassSignalSchlecht,r24
5589 .L619:
5590 367e 8091 0000 lds r24,cnt.3330
5591 3682 9091 0000 lds r25,(cnt.3330)+1
5592 3686 6816 cp r6,r24
5593 3688 7906 cpc r7,r25
5594 368a 04F4 brge .L620
5595 368c 7092 0000 sts (cnt.3330)+1,r7
5596 3690 6092 0000 sts cnt.3330,r6
5597 .L620:
5598 3694 9920 tst r9
5599 3696 01F0 breq .L622
5600 3698 292D mov r18,r9
5601 369a 3327 clr r19
5602 369c 27FD sbrc r18,7
5603 369e 3095 com r19
5604 36a0 8091 0000 lds r24,cnt.3330
5605 36a4 9091 0000 lds r25,(cnt.3330)+1
5606 36a8 2817 cp r18,r24
5607 36aa 3907 cpc r19,r25
5608 36ac 04F4 brge .L622
5609 36ae 3093 0000 sts (cnt.3330)+1,r19
5610 36b2 2093 0000 sts cnt.3330,r18
5611 .L622:
5612 36b6 A1E8 ldi r26,lo8(129)
5613 36b8 AA16 cp r10,r26
5614 36ba B104 cpc r11,__zero_reg__
5615 36bc C104 cpc r12,__zero_reg__
5616 36be D104 cpc r13,__zero_reg__
5617 36c0 04F0 brlt .L625
5618 36c2 8091 0000 lds r24,AdNeutralRoll
5619 36c6 9091 0000 lds r25,(AdNeutralRoll)+1
5620 36ca 2091 0000 lds r18,cnt.3330
5621 36ce 3091 0000 lds r19,(cnt.3330)+1
5622 36d2 820F add r24,r18
5623 36d4 931F adc r25,r19
5624 36d6 9093 0000 sts (AdNeutralRoll)+1,r25
5625 36da 8093 0000 sts AdNeutralRoll,r24
5626 .L625:
5627 36de B0E8 ldi r27,lo8(-128)
5628 36e0 AB16 cp r10,r27
5629 36e2 BFEF ldi r27,hi8(-128)
5630 36e4 BB06 cpc r11,r27
5631 36e6 BFEF ldi r27,hlo8(-128)
5632 36e8 CB06 cpc r12,r27
5633 36ea BFEF ldi r27,hhi8(-128)
5634 36ec DB06 cpc r13,r27
5635 36ee 04F4 brge .L627
5636 36f0 8091 0000 lds r24,AdNeutralRoll
5637 36f4 9091 0000 lds r25,(AdNeutralRoll)+1
5638 36f8 2091 0000 lds r18,cnt.3330
5639 36fc 3091 0000 lds r19,(cnt.3330)+1
5640 3700 821B sub r24,r18
5641 3702 930B sbc r25,r19
5642 3704 9093 0000 sts (AdNeutralRoll)+1,r25
5643 3708 8093 0000 sts AdNeutralRoll,r24
5644 370c 00C0 rjmp .L627
5645 .L558:
5646 370e 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
5647 3712 1092 0000 sts LageKorrekturRoll,__zero_reg__
5648 3716 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
5649 371a 1092 0000 sts LageKorrekturNick,__zero_reg__
5650 371e 1092 0000 sts TrichterFlug,__zero_reg__
5651 .L627:
5652 3722 8091 0000 lds r24,IntegralFaktor
5653 3726 8823 tst r24
5654 3728 01F4 brne .L629
5655 372a 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
5656 372e 1092 0000 sts LageKorrekturRoll,__zero_reg__
5657 3732 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
5658 3736 1092 0000 sts LageKorrekturNick,__zero_reg__
5659 .L629:
5660 373a 8091 0000 lds r24,MittelIntegralNick
5661 373e 9091 0000 lds r25,(MittelIntegralNick)+1
5662 3742 A091 0000 lds r26,(MittelIntegralNick)+2
5663 3746 B091 0000 lds r27,(MittelIntegralNick)+3
5664 374a 8093 0000 sts MittelIntegralNick_Alt.3335,r24
5665 374e 9093 0000 sts (MittelIntegralNick_Alt.3335)+1,r25
5666 3752 A093 0000 sts (MittelIntegralNick_Alt.3335)+2,r26
5667 3756 B093 0000 sts (MittelIntegralNick_Alt.3335)+3,r27
5668 375a 8091 0000 lds r24,MittelIntegralRoll
5669 375e 9091 0000 lds r25,(MittelIntegralRoll)+1
5670 3762 A091 0000 lds r26,(MittelIntegralRoll)+2
5671 3766 B091 0000 lds r27,(MittelIntegralRoll)+3
5672 376a 8093 0000 sts MittelIntegralRoll_Alt.3336,r24
5673 376e 9093 0000 sts (MittelIntegralRoll_Alt.3336)+1,r25
5674 3772 A093 0000 sts (MittelIntegralRoll_Alt.3336)+2,r26
5675 3776 B093 0000 sts (MittelIntegralRoll_Alt.3336)+3,r27
5676 377a 1092 0000 sts IntegralAccNick,__zero_reg__
5677 377e 1092 0000 sts (IntegralAccNick)+1,__zero_reg__
5678 3782 1092 0000 sts (IntegralAccNick)+2,__zero_reg__
5679 3786 1092 0000 sts (IntegralAccNick)+3,__zero_reg__
5680 378a 1092 0000 sts IntegralAccRoll,__zero_reg__
5681 378e 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__
5682 3792 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__
5683 3796 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__
5684 379a 1092 0000 sts IntegralAccZ,__zero_reg__
5685 379e 1092 0000 sts (IntegralAccZ)+1,__zero_reg__
5686 37a2 1092 0000 sts (IntegralAccZ)+2,__zero_reg__
5687 37a6 1092 0000 sts (IntegralAccZ)+3,__zero_reg__
5688 37aa 1092 0000 sts MittelIntegralNick,__zero_reg__
5689 37ae 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__
5690 37b2 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__
5691 37b6 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__
5692 37ba 1092 0000 sts MittelIntegralRoll,__zero_reg__
5693 37be 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__
5694 37c2 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__
5695 37c6 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__
5696 37ca 1092 0000 sts MittelIntegralNick2,__zero_reg__
5697 37ce 1092 0000 sts (MittelIntegralNick2)+1,__zero_reg__
5698 37d2 1092 0000 sts (MittelIntegralNick2)+2,__zero_reg__
5699 37d6 1092 0000 sts (MittelIntegralNick2)+3,__zero_reg__
5700 37da 1092 0000 sts MittelIntegralRoll2,__zero_reg__
5701 37de 1092 0000 sts (MittelIntegralRoll2)+1,__zero_reg__
5702 37e2 1092 0000 sts (MittelIntegralRoll2)+2,__zero_reg__
5703 37e6 1092 0000 sts (MittelIntegralRoll2)+3,__zero_reg__
5704 37ea 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__
5705 37ee 1092 0000 sts ZaehlMessungen,__zero_reg__
5706 .L556:
5707 37f2 C090 0000 lds r12,StickGier
5708 37f6 D090 0000 lds r13,(StickGier)+1
5709 37fa 8601 movw r16,r12
5710 37fc D7FE sbrs r13,7
5711 37fe 00C0 rjmp .L631
5712 3800 0027 clr r16
5713 3802 1127 clr r17
5714 3804 0C19 sub r16,r12
5715 3806 1D09 sbc r17,r13
5716 .L631:
5717 3808 0031 cpi r16,16
5718 380a 1105 cpc r17,__zero_reg__
5719 380c 04F0 brlt .L632
5720 380e 88EE ldi r24,lo8(1000)
5721 3810 93E0 ldi r25,hi8(1000)
5722 3812 9093 0000 sts (KompassSignalSchlecht)+1,r25
5723 3816 8093 0000 sts KompassSignalSchlecht,r24
5724 381a 8091 0000 lds r24,EE_Parameter+13
5725 381e 84FD sbrc r24,4
5726 3820 00C0 rjmp .L632
5727 3822 81E0 ldi r24,lo8(1)
5728 3824 8093 0000 sts NeueKompassRichtungMerken.3317,r24
5729 .L632:
5730 3828 E090 0000 lds r14,EE_Parameter+25
5731 382c B601 movw r22,r12
5732 382e 8827 clr r24
5733 3830 77FD sbrc r23,7
5734 3832 8095 com r24
5735 3834 982F mov r25,r24
5736 3836 2E2D mov r18,r14
5737 3838 30E0 ldi r19,lo8(0)
5738 383a 40E0 ldi r20,lo8(0)
5739 383c 50E0 ldi r21,hi8(0)
5740 383e 0E94 0000 call __mulsi3
5741 3842 9801 movw r18,r16
5742 3844 4427 clr r20
5743 3846 37FD sbrc r19,7
5744 3848 4095 com r20
5745 384a 542F mov r21,r20
5746 384c 0E94 0000 call __mulsi3
5747 3850 20E0 ldi r18,lo8(512)
5748 3852 32E0 ldi r19,hi8(512)
5749 3854 40E0 ldi r20,hlo8(512)
5750 3856 50E0 ldi r21,hhi8(512)
5751 3858 0E94 0000 call __divmodsi4
5752 385c 8901 movw r16,r18
5753 385e 9A01 movw r18,r20
5754 3860 FF24 clr r15
5755 3862 EC9C mul r14,r12
5756 3864 C001 movw r24,r0
5757 3866 ED9C mul r14,r13
5758 3868 900D add r25,r0
5759 386a FC9C mul r15,r12
5760 386c 900D add r25,r0
5761 386e 1124 clr r1
5762 3870 64E0 ldi r22,lo8(4)
5763 3872 70E0 ldi r23,hi8(4)
5764 3874 0E94 0000 call __divmodhi4
5765 3878 600F add r22,r16
5766 387a 711F adc r23,r17
5767 387c 8827 clr r24
5768 387e 77FD sbrc r23,7
5769 3880 8095 com r24
5770 3882 982F mov r25,r24
5771 3884 6093 0000 sts sollGier.3307,r22
5772 3888 7093 0000 sts (sollGier.3307)+1,r23
5773 388c 8093 0000 sts (sollGier.3307)+2,r24
5774 3890 9093 0000 sts (sollGier.3307)+3,r25
5775 3894 2091 0000 lds r18,Mess_Integral_Gier
5776 3898 3091 0000 lds r19,(Mess_Integral_Gier)+1
5777 389c 4091 0000 lds r20,(Mess_Integral_Gier)+2
5778 38a0 5091 0000 lds r21,(Mess_Integral_Gier)+3
5779 38a4 261B sub r18,r22
5780 38a6 370B sbc r19,r23
5781 38a8 480B sbc r20,r24
5782 38aa 590B sbc r21,r25
5783 38ac 2093 0000 sts Mess_Integral_Gier,r18
5784 38b0 3093 0000 sts (Mess_Integral_Gier)+1,r19
5785 38b4 4093 0000 sts (Mess_Integral_Gier)+2,r20
5786 38b8 5093 0000 sts (Mess_Integral_Gier)+3,r21
5787 38bc 2155 subi r18,lo8(50001)
5788 38be 334C sbci r19,hi8(50001)
5789 38c0 4040 sbci r20,hlo8(50001)
5790 38c2 5040 sbci r21,hhi8(50001)
5791 38c4 04F0 brlt .L635
5792 38c6 80E5 ldi r24,lo8(50000)
5793 38c8 93EC ldi r25,hi8(50000)
5794 38ca A0E0 ldi r26,hlo8(50000)
5795 38cc B0E0 ldi r27,hhi8(50000)
5796 38ce 8093 0000 sts Mess_Integral_Gier,r24
5797 38d2 9093 0000 sts (Mess_Integral_Gier)+1,r25
5798 38d6 A093 0000 sts (Mess_Integral_Gier)+2,r26
5799 38da B093 0000 sts (Mess_Integral_Gier)+3,r27
5800 .L635:
5801 38de 8091 0000 lds r24,Mess_Integral_Gier
5802 38e2 9091 0000 lds r25,(Mess_Integral_Gier)+1
5803 38e6 A091 0000 lds r26,(Mess_Integral_Gier)+2
5804 38ea B091 0000 lds r27,(Mess_Integral_Gier)+3
5805 38ee 805B subi r24,lo8(-50000)
5806 38f0 9C43 sbci r25,hi8(-50000)
5807 38f2 AF4F sbci r26,hlo8(-50000)
5808 38f4 BF4F sbci r27,hhi8(-50000)
5809 38f6 04F4 brge .L637
5810 38f8 80EB ldi r24,lo8(-50000)
5811 38fa 9CE3 ldi r25,hi8(-50000)
5812 38fc AFEF ldi r26,hlo8(-50000)
5813 38fe BFEF ldi r27,hhi8(-50000)
5814 3900 8093 0000 sts Mess_Integral_Gier,r24
5815 3904 9093 0000 sts (Mess_Integral_Gier)+1,r25
5816 3908 A093 0000 sts (Mess_Integral_Gier)+2,r26
5817 390c B093 0000 sts (Mess_Integral_Gier)+3,r27
5818 .L637:
5819 3910 8090 0000 lds r8,KompassValue
5820 3914 9090 0000 lds r9,(KompassValue)+1
5821 3918 8114 cp r8,__zero_reg__
5822 391a 9104 cpc r9,__zero_reg__
5823 391c 01F4 brne .+2
5824 391e 00C0 rjmp .L639
5825 3920 8091 0000 lds r24,EE_Parameter+13
5826 3924 83FF sbrs r24,3
5827 3926 00C0 rjmp .L639
5828 3928 6981 ldd r22,Y+1
5829 392a 7A81 ldd r23,Y+2
5830 392c 8B81 ldd r24,Y+3
5831 392e 9C81 ldd r25,Y+4
5832 3930 20E0 ldi r18,lo8(512)
5833 3932 32E0 ldi r19,hi8(512)
5834 3934 40E0 ldi r20,hlo8(512)
5835 3936 50E0 ldi r21,hhi8(512)
5836 3938 0E94 0000 call __divmodsi4
5837 393c 8901 movw r16,r18
5838 393e 37FF sbrs r19,7
5839 3940 00C0 rjmp .L642
5840 3942 1095 com r17
5841 3944 0195 neg r16
5842 3946 1F4F sbci r17,lo8(-1)
5843 .L642:
5844 3948 6D81 ldd r22,Y+5
5845 394a 7E81 ldd r23,Y+6
5846 394c 8F81 ldd r24,Y+7
5847 394e 9885 ldd r25,Y+8
5848 3950 20E0 ldi r18,lo8(512)
5849 3952 32E0 ldi r19,hi8(512)
5850 3954 40E0 ldi r20,hlo8(512)
5851 3956 50E0 ldi r21,hhi8(512)
5852 3958 0E94 0000 call __divmodsi4
5853 395c 6901 movw r12,r18
5854 395e 37FF sbrs r19,7
5855 3960 00C0 rjmp .L643
5856 3962 D094 com r13
5857 3964 C194 neg r12
5858 3966 D108 sbc r13,__zero_reg__
5859 3968 D394 inc r13
5860 .L643:
5861 396a C016 cp r12,r16
5862 396c D106 cpc r13,r17
5863 396e 04F4 brge .L644
5864 3970 6801 movw r12,r16
5865 .L644:
5866 3972 4090 0000 lds r4,GIER_GRAD_FAKTOR
5867 3976 5090 0000 lds r5,(GIER_GRAD_FAKTOR)+1
5868 397a 6090 0000 lds r6,(GIER_GRAD_FAKTOR)+2
5869 397e 7090 0000 lds r7,(GIER_GRAD_FAKTOR)+3
5870 3982 ACE1 ldi r26,lo8(540)
5871 3984 EA2E mov r14,r26
5872 3986 A2E0 ldi r26,hi8(540)
5873 3988 FA2E mov r15,r26
5874 398a 8E0C add r8,r14
5875 398c 9F1C adc r9,r15
5876 398e 7401 movw r14,r8
5877 3990 0027 clr r16
5878 3992 F7FC sbrc r15,7
5879 3994 0095 com r16
5880 3996 102F mov r17,r16
5881 3998 24EE ldi r18,lo8(-540)
5882 399a 3DEF ldi r19,hi8(-540)
5883 399c 820E add r8,r18
5884 399e 931E adc r9,r19
5885 39a0 6091 0000 lds r22,ErsatzKompass
5886 39a4 7091 0000 lds r23,(ErsatzKompass)+1
5887 39a8 8091 0000 lds r24,(ErsatzKompass)+2
5888 39ac 9091 0000 lds r25,(ErsatzKompass)+3
5889 39b0 A301 movw r20,r6
5890 39b2 9201 movw r18,r4
5891 39b4 0E94 0000 call __divmodsi4
5892 39b8 E21A sub r14,r18
5893 39ba F30A sbc r15,r19
5894 39bc 040B sbc r16,r20
5895 39be 150B sbc r17,r21
5896 39c0 C801 movw r24,r16
5897 39c2 B701 movw r22,r14
5898 39c4 28E6 ldi r18,lo8(360)
5899 39c6 31E0 ldi r19,hi8(360)
5900 39c8 40E0 ldi r20,hlo8(360)
5901 39ca 50E0 ldi r21,hhi8(360)
5902 39cc 0E94 0000 call __divmodsi4
5903 39d0 FCE4 ldi r31,lo8(-180)
5904 39d2 AF2E mov r10,r31
5905 39d4 FFEF ldi r31,hi8(-180)
5906 39d6 BF2E mov r11,r31
5907 39d8 A60E add r10,r22
5908 39da B71E adc r11,r23
5909 39dc E090 0000 lds r14,KompassSignalSchlecht
5910 39e0 F090 0000 lds r15,(KompassSignalSchlecht)+1
5911 39e4 E114 cp r14,__zero_reg__
5912 39e6 F104 cpc r15,__zero_reg__
5913 39e8 01F4 brne .L645
5914 39ea 39E1 ldi r19,lo8(25)
5915 39ec C316 cp r12,r19
5916 39ee D104 cpc r13,__zero_reg__
5917 39f0 04F4 brge .L645
5918 39f2 8091 0000 lds r24,GierGyroFehler
5919 39f6 9091 0000 lds r25,(GierGyroFehler)+1
5920 39fa 8A0D add r24,r10
5921 39fc 9B1D adc r25,r11
5922 39fe 9093 0000 sts (GierGyroFehler)+1,r25
5923 3a02 8093 0000 sts GierGyroFehler,r24
5924 3a06 8091 0000 lds r24,NeueKompassRichtungMerken.3317
5925 3a0a 8823 tst r24
5926 3a0c 01F0 breq .L645
5927 3a0e B401 movw r22,r8
5928 3a10 8827 clr r24
5929 3a12 77FD sbrc r23,7
5930 3a14 8095 com r24
5931 3a16 982F mov r25,r24
5932 3a18 A301 movw r20,r6
5933 3a1a 9201 movw r18,r4
5934 3a1c 0E94 0000 call __mulsi3
5935 3a20 6093 0000 sts ErsatzKompass,r22
5936 3a24 7093 0000 sts (ErsatzKompass)+1,r23
5937 3a28 8093 0000 sts (ErsatzKompass)+2,r24
5938 3a2c 9093 0000 sts (ErsatzKompass)+3,r25
5939 3a30 0E94 0000 call __divmodsi4
5940 3a34 3093 0000 sts (KompassStartwert)+1,r19
5941 3a38 2093 0000 sts KompassStartwert,r18
5942 3a3c 1092 0000 sts NeueKompassRichtungMerken.3317,__zero_reg__
5943 .L645:
5944 3a40 0091 0000 lds r16,ErsatzKompass
5945 3a44 1091 0000 lds r17,(ErsatzKompass)+1
5946 3a48 2091 0000 lds r18,(ErsatzKompass)+2
5947 3a4c 3091 0000 lds r19,(ErsatzKompass)+3
5948 3a50 C601 movw r24,r12
5949 3a52 68E0 ldi r22,lo8(8)
5950 3a54 70E0 ldi r23,hi8(8)
5951 3a56 0E94 0000 call __divmodhi4
5952 3a5a 6E5F subi r22,lo8(-(2))
5953 3a5c 7F4F sbci r23,hi8(-(2))
5954 3a5e C501 movw r24,r10
5955 3a60 E4E0 ldi r30,4
5956 3a62 880F 1: lsl r24
5957 3a64 991F rol r25
5958 3a66 EA95 dec r30
5959 3a68 01F4 brne 1b
5960 3a6a 0E94 0000 call __divmodhi4
5961 3a6e 4B01 movw r8,r22
5962 3a70 AA24 clr r10
5963 3a72 97FC sbrc r9,7
5964 3a74 A094 com r10
5965 3a76 BA2C mov r11,r10
5966 3a78 800E add r8,r16
5967 3a7a 911E adc r9,r17
5968 3a7c A21E adc r10,r18
5969 3a7e B31E adc r11,r19
5970 3a80 8092 0000 sts ErsatzKompass,r8
5971 3a84 9092 0000 sts (ErsatzKompass)+1,r9
5972 3a88 A092 0000 sts (ErsatzKompass)+2,r10
5973 3a8c B092 0000 sts (ErsatzKompass)+3,r11
5974 3a90 8091 0000 lds r24,Parameter_KompassWirkung
5975 3a94 482F mov r20,r24
5976 3a96 50E0 ldi r21,lo8(0)
5977 3a98 5CAB std Y+52,r21
5978 3a9a 4BAB std Y+51,r20
5979 3a9c C49E mul r12,r20
5980 3a9e C001 movw r24,r0
5981 3aa0 C59E mul r12,r21
5982 3aa2 900D add r25,r0
5983 3aa4 D49E mul r13,r20
5984 3aa6 900D add r25,r0
5985 3aa8 1124 clr r1
5986 3aaa 60E2 ldi r22,lo8(32)
5987 3aac 70E0 ldi r23,hi8(32)
5988 3aae 0E94 0000 call __divmodhi4
5989 3ab2 2BA8 ldd r2,Y+51
5990 3ab4 3CA8 ldd r3,Y+52
5991 3ab6 261A sub r2,r22
5992 3ab8 370A sbc r3,r23
5993 3aba 37FC sbrc r3,7
5994 3abc 00C0 rjmp .L649
5995 3abe E114 cp r14,__zero_reg__
5996 3ac0 F104 cpc r15,__zero_reg__
5997 3ac2 01F0 breq .+4
5998 3ac4 0C94 0000 jmp .L651
5999 3ac8 8091 0000 lds r24,MaxStickRoll
6000 3acc 9091 0000 lds r25,(MaxStickRoll)+1
6001 3ad0 2091 0000 lds r18,MaxStickNick
6002 3ad4 3091 0000 lds r19,(MaxStickNick)+1
6003 3ad8 820F add r24,r18
6004 3ada 931F adc r25,r19
6005 3adc 68E0 ldi r22,lo8(8)
6006 3ade 70E0 ldi r23,hi8(8)
6007 3ae0 0E94 0000 call __divmodhi4
6008 3ae4 6B01 movw r12,r22
6009 3ae6 60E4 ldi r22,lo8(64)
6010 3ae8 70E0 ldi r23,hi8(64)
6011 3aea C60E add r12,r22
6012 3aec D71E adc r13,r23
6013 3aee 8091 0000 lds r24,KompassStartwert
6014 3af2 9091 0000 lds r25,(KompassStartwert)+1
6015 3af6 AA27 clr r26
6016 3af8 97FD sbrc r25,7
6017 3afa A095 com r26
6018 3afc BA2F mov r27,r26
6019 3afe 5CE1 ldi r21,lo8(540)
6020 3b00 E52E mov r14,r21
6021 3b02 52E0 ldi r21,hi8(540)
6022 3b04 F52E mov r15,r21
6023 3b06 012D mov r16,__zero_reg__
6024 3b08 112D mov r17,__zero_reg__
6025 3b0a E81A sub r14,r24
6026 3b0c F90A sbc r15,r25
6027 3b0e 0A0B sbc r16,r26
6028 3b10 1B0B sbc r17,r27
6029 3b12 C501 movw r24,r10
6030 3b14 B401 movw r22,r8
6031 3b16 A301 movw r20,r6
6032 3b18 9201 movw r18,r4
6033 3b1a 0E94 0000 call __divmodsi4
6034 3b1e E20E add r14,r18
6035 3b20 F31E adc r15,r19
6036 3b22 041F adc r16,r20
6037 3b24 151F adc r17,r21
6038 3b26 C801 movw r24,r16
6039 3b28 B701 movw r22,r14
6040 3b2a 28E6 ldi r18,lo8(360)
6041 3b2c 31E0 ldi r19,hi8(360)
6042 3b2e 40E0 ldi r20,hlo8(360)
6043 3b30 50E0 ldi r21,hhi8(360)
6044 3b32 0E94 0000 call __divmodsi4
6045 3b36 645B subi r22,lo8(-(-180))
6046 3b38 7040 sbci r23,hi8(-(-180))
6047 3b3a 629D mul r22,r2
6048 3b3c C001 movw r24,r0
6049 3b3e 639D mul r22,r3
6050 3b40 900D add r25,r0
6051 3b42 729D mul r23,r2
6052 3b44 900D add r25,r0
6053 3b46 1124 clr r1
6054 3b48 B601 movw r22,r12
6055 3b4a 0E94 0000 call __divmodhi4
6056 3b4e 2BA9 ldd r18,Y+51
6057 3b50 3CA9 ldd r19,Y+52
6058 3b52 220F lsl r18
6059 3b54 331F rol r19
6060 3b56 8BA9 ldd r24,Y+51
6061 3b58 9CA9 ldd r25,Y+52
6062 3b5a 280F add r18,r24
6063 3b5c 391F adc r19,r25
6064 3b5e 2617 cp r18,r22
6065 3b60 3707 cpc r19,r23
6066 3b62 04F0 brlt .L916
6067 3b64 3095 com r19
6068 3b66 2195 neg r18
6069 3b68 3F4F sbci r19,lo8(-1)
6070 3b6a 6217 cp r22,r18
6071 3b6c 7307 cpc r23,r19
6072 3b6e 04F4 brge .L655
6073 .L916:
6074 3b70 B901 movw r22,r18
6075 .L655:
6076 3b72 9B01 movw r18,r22
6077 3b74 4427 clr r20
6078 3b76 37FD sbrc r19,7
6079 3b78 4095 com r20
6080 3b7a 542F mov r21,r20
6081 3b7c 8091 0000 lds r24,Mess_Integral_Gier
6082 3b80 9091 0000 lds r25,(Mess_Integral_Gier)+1
6083 3b84 A091 0000 lds r26,(Mess_Integral_Gier)+2
6084 3b88 B091 0000 lds r27,(Mess_Integral_Gier)+3
6085 3b8c 820F add r24,r18
6086 3b8e 931F adc r25,r19
6087 3b90 A41F adc r26,r20
6088 3b92 B51F adc r27,r21
6089 3b94 8093 0000 sts Mess_Integral_Gier,r24
6090 3b98 9093 0000 sts (Mess_Integral_Gier)+1,r25
6091 3b9c A093 0000 sts (Mess_Integral_Gier)+2,r26
6092 3ba0 B093 0000 sts (Mess_Integral_Gier)+3,r27
6093 3ba4 00C0 rjmp .L639
6094 .L649:
6095 3ba6 84EF ldi r24,lo8(500)
6096 3ba8 91E0 ldi r25,hi8(500)
6097 3baa 9093 0000 sts (KompassSignalSchlecht)+1,r25
6098 3bae 8093 0000 sts KompassSignalSchlecht,r24
6099 .L639:
6100 3bb2 8091 0000 lds r24,TrichterFlug
6101 3bb6 8823 tst r24
6102 3bb8 01F0 breq .L657
6103 3bba 1092 0000 sts SummeRoll,__zero_reg__
6104 3bbe 1092 0000 sts (SummeRoll)+1,__zero_reg__
6105 3bc2 1092 0000 sts (SummeRoll)+2,__zero_reg__
6106 3bc6 1092 0000 sts (SummeRoll)+3,__zero_reg__
6107 3bca 1092 0000 sts SummeNick,__zero_reg__
6108 3bce 1092 0000 sts (SummeNick)+1,__zero_reg__
6109 3bd2 1092 0000 sts (SummeNick)+2,__zero_reg__
6110 3bd6 1092 0000 sts (SummeNick)+3,__zero_reg__
6111 .L657:
6112 3bda 9985 ldd r25,Y+9
6113 3bdc 9923 tst r25
6114 3bde 01F0 breq .L659
6115 3be0 1B8A std Y+19,__zero_reg__
6116 3be2 1A8A std Y+18,__zero_reg__
6117 3be4 00C0 rjmp .L661
6118 .L659:
6119 3be6 6091 0000 lds r22,IntegralFaktor
6120 3bea 70E0 ldi r23,lo8(0)
6121 3bec 80E0 ldi r24,lo8(0)
6122 3bee 90E0 ldi r25,hi8(0)
6123 3bf0 2981 ldd r18,Y+1
6124 3bf2 3A81 ldd r19,Y+2
6125 3bf4 4B81 ldd r20,Y+3
6126 3bf6 5C81 ldd r21,Y+4
6127 3bf8 0E94 0000 call __mulsi3
6128 3bfc 28EF ldi r18,lo8(11000)
6129 3bfe 3AE2 ldi r19,hi8(11000)
6130 3c00 40E0 ldi r20,hlo8(11000)
6131 3c02 50E0 ldi r21,hhi8(11000)
6132 3c04 0E94 0000 call __divmodsi4
6133 3c08 3B8B std Y+19,r19
6134 3c0a 2A8B std Y+18,r18
6135 .L661:
6136 3c0c 5090 0000 lds r5,Looping_Roll
6137 3c10 5520 tst r5
6138 3c12 01F0 breq .L662
6139 3c14 198A std Y+17,__zero_reg__
6140 3c16 188A std Y+16,__zero_reg__
6141 3c18 00C0 rjmp .L664
6142 .L662:
6143 3c1a 6091 0000 lds r22,IntegralFaktor
6144 3c1e 70E0 ldi r23,lo8(0)
6145 3c20 80E0 ldi r24,lo8(0)
6146 3c22 90E0 ldi r25,hi8(0)
6147 3c24 2D81 ldd r18,Y+5
6148 3c26 3E81 ldd r19,Y+6
6149 3c28 4F81 ldd r20,Y+7
6150 3c2a 5885 ldd r21,Y+8
6151 3c2c 0E94 0000 call __mulsi3
6152 3c30 28EF ldi r18,lo8(11000)
6153 3c32 3AE2 ldi r19,hi8(11000)
6154 3c34 40E0 ldi r20,hlo8(11000)
6155 3c36 50E0 ldi r21,hhi8(11000)
6156 3c38 0E94 0000 call __divmodsi4
6157 3c3c 398B std Y+17,r19
6158 3c3e 288B std Y+16,r18
6159 .L664:
6160 3c40 8091 0000 lds r24,TrimNick
6161 3c44 9091 0000 lds r25,(TrimNick)+1
6162 3c48 893C cpi r24,201
6163 3c4a 9105 cpc r25,__zero_reg__
6164 3c4c 04F0 brlt .L665
6165 3c4e 88EC ldi r24,lo8(200)
6166 3c50 90E0 ldi r25,hi8(200)
6167 3c52 00C0 rjmp .L917
6168 .L665:
6169 3c54 8853 subi r24,lo8(-200)
6170 3c56 9F4F sbci r25,hi8(-200)
6171 3c58 04F4 brge .L667
6172 3c5a 88E3 ldi r24,lo8(-200)
6173 3c5c 9FEF ldi r25,hi8(-200)
6174 .L917:
6175 3c5e 9093 0000 sts (TrimNick)+1,r25
6176 3c62 8093 0000 sts TrimNick,r24
6177 .L667:
6178 3c66 8091 0000 lds r24,TrimRoll
6179 3c6a 9091 0000 lds r25,(TrimRoll)+1
6180 3c6e 893C cpi r24,201
6181 3c70 9105 cpc r25,__zero_reg__
6182 3c72 04F0 brlt .L669
6183 3c74 88EC ldi r24,lo8(200)
6184 3c76 90E0 ldi r25,hi8(200)
6185 3c78 00C0 rjmp .L918
6186 .L669:
6187 3c7a 8853 subi r24,lo8(-200)
6188 3c7c 9F4F sbci r25,hi8(-200)
6189 3c7e 04F4 brge .L671
6190 3c80 88E3 ldi r24,lo8(-200)
6191 3c82 9FEF ldi r25,hi8(-200)
6192 .L918:
6193 3c84 9093 0000 sts (TrimRoll)+1,r25
6194 3c88 8093 0000 sts TrimRoll,r24
6195 .L671:
6196 3c8c A090 0000 lds r10,GyroFaktor
6197 3c90 BB24 clr r11
6198 3c92 CC24 clr r12
6199 3c94 DD24 clr r13
6200 3c96 E090 0000 lds r14,TrimNick
6201 3c9a F090 0000 lds r15,(TrimNick)+1
6202 3c9e 0027 clr r16
6203 3ca0 F7FC sbrc r15,7
6204 3ca2 0095 com r16
6205 3ca4 102F mov r17,r16
6206 3ca6 27E0 ldi r18,7
6207 3ca8 EE0C 1: lsl r14
6208 3caa FF1C rol r15
6209 3cac 001F rol r16
6210 3cae 111F rol r17
6211 3cb0 2A95 dec r18
6212 3cb2 01F4 brne 1b
6213 3cb4 2091 0000 lds r18,MesswertNick
6214 3cb8 3091 0000 lds r19,(MesswertNick)+1
6215 3cbc 4427 clr r20
6216 3cbe 37FD sbrc r19,7
6217 3cc0 4095 com r20
6218 3cc2 542F mov r21,r20
6219 3cc4 C601 movw r24,r12
6220 3cc6 B501 movw r22,r10
6221 3cc8 0E94 0000 call __mulsi3
6222 3ccc E60E add r14,r22
6223 3cce F71E adc r15,r23
6224 3cd0 081F adc r16,r24
6225 3cd2 191F adc r17,r25
6226 3cd4 C801 movw r24,r16
6227 3cd6 B701 movw r22,r14
6228 3cd8 20E4 ldi r18,lo8(64)
6229 3cda 30E0 ldi r19,hi8(64)
6230 3cdc 40E0 ldi r20,hlo8(64)
6231 3cde 50E0 ldi r21,hhi8(64)
6232 3ce0 0E94 0000 call __divmodsi4
6233 3ce4 8A88 ldd r8,Y+18
6234 3ce6 9B88 ldd r9,Y+19
6235 3ce8 820E add r8,r18
6236 3cea 931E adc r9,r19
6237 3cec 9092 0000 sts (MesswertNick)+1,r9
6238 3cf0 8092 0000 sts MesswertNick,r8
6239 3cf4 E090 0000 lds r14,TrimRoll
6240 3cf8 F090 0000 lds r15,(TrimRoll)+1
6241 3cfc 0027 clr r16
6242 3cfe F7FC sbrc r15,7
6243 3d00 0095 com r16
6244 3d02 102F mov r17,r16
6245 3d04 97E0 ldi r25,7
6246 3d06 EE0C 1: lsl r14
6247 3d08 FF1C rol r15
6248 3d0a 001F rol r16
6249 3d0c 111F rol r17
6250 3d0e 9A95 dec r25
6251 3d10 01F4 brne 1b
6252 3d12 6091 0000 lds r22,MesswertRoll
6253 3d16 7091 0000 lds r23,(MesswertRoll)+1
6254 3d1a 8827 clr r24
6255 3d1c 77FD sbrc r23,7
6256 3d1e 8095 com r24
6257 3d20 982F mov r25,r24
6258 3d22 A601 movw r20,r12
6259 3d24 9501 movw r18,r10
6260 3d26 0E94 0000 call __mulsi3
6261 3d2a E60E add r14,r22
6262 3d2c F71E adc r15,r23
6263 3d2e 081F adc r16,r24
6264 3d30 191F adc r17,r25
6265 3d32 C801 movw r24,r16
6266 3d34 B701 movw r22,r14
6267 3d36 20E4 ldi r18,lo8(64)
6268 3d38 30E0 ldi r19,hi8(64)
6269 3d3a 40E0 ldi r20,hlo8(64)
6270 3d3c 50E0 ldi r21,hhi8(64)
6271 3d3e 0E94 0000 call __divmodsi4
6272 3d42 C888 ldd r12,Y+16
6273 3d44 D988 ldd r13,Y+17
6274 3d46 C20E add r12,r18
6275 3d48 D31E adc r13,r19
6276 3d4a D092 0000 sts (MesswertRoll)+1,r13
6277 3d4e C092 0000 sts MesswertRoll,r12
6278 3d52 6091 0000 lds r22,MesswertGier
6279 3d56 7091 0000 lds r23,(MesswertGier)+1
6280 3d5a 660F lsl r22
6281 3d5c 771F rol r23
6282 3d5e 8827 clr r24
6283 3d60 77FD sbrc r23,7
6284 3d62 8095 com r24
6285 3d64 982F mov r25,r24
6286 3d66 2091 0000 lds r18,GyroFaktorGier
6287 3d6a 30E0 ldi r19,lo8(0)
6288 3d6c 40E0 ldi r20,lo8(0)
6289 3d6e 50E0 ldi r21,hi8(0)
6290 3d70 0E94 0000 call __mulsi3
6291 3d74 20E4 ldi r18,lo8(64)
6292 3d76 30E0 ldi r19,hi8(64)
6293 3d78 40E0 ldi r20,hlo8(64)
6294 3d7a 50E0 ldi r21,hhi8(64)
6295 3d7c 0E94 0000 call __divmodsi4
6296 3d80 7901 movw r14,r18
6297 3d82 8A01 movw r16,r20
6298 3d84 6091 0000 lds r22,IntegralFaktorGier
6299 3d88 70E0 ldi r23,lo8(0)
6300 3d8a 80E0 ldi r24,lo8(0)
6301 3d8c 90E0 ldi r25,hi8(0)
6302 3d8e 2091 0000 lds r18,Integral_Gier
6303 3d92 3091 0000 lds r19,(Integral_Gier)+1
6304 3d96 4091 0000 lds r20,(Integral_Gier)+2
6305 3d9a 5091 0000 lds r21,(Integral_Gier)+3
6306 3d9e 0E94 0000 call __mulsi3
6307 3da2 20EF ldi r18,lo8(22000)
6308 3da4 35E5 ldi r19,hi8(22000)
6309 3da6 40E0 ldi r20,hlo8(22000)
6310 3da8 50E0 ldi r21,hhi8(22000)
6311 3daa 0E94 0000 call __divmodsi4
6312 3dae E20E add r14,r18
6313 3db0 F31E adc r15,r19
6314 3db2 F092 0000 sts (MesswertGier)+1,r15
6315 3db6 E092 0000 sts MesswertGier,r14
6316 3dba E1E0 ldi r30,lo8(4097)
6317 3dbc 8E16 cp r8,r30
6318 3dbe E0E1 ldi r30,hi8(4097)
6319 3dc0 9E06 cpc r9,r30
6320 3dc2 04F0 brlt .L673
6321 3dc4 80E0 ldi r24,lo8(4096)
6322 3dc6 90E1 ldi r25,hi8(4096)
6323 3dc8 9093 0000 sts (MesswertNick)+1,r25
6324 3dcc 8093 0000 sts MesswertNick,r24
6325 .L673:
6326 3dd0 8091 0000 lds r24,MesswertNick
6327 3dd4 9091 0000 lds r25,(MesswertNick)+1
6328 3dd8 8050 subi r24,lo8(-4096)
6329 3dda 904F sbci r25,hi8(-4096)
6330 3ddc 04F4 brge .L675
6331 3dde 80E0 ldi r24,lo8(-4096)
6332 3de0 90EF ldi r25,hi8(-4096)
6333 3de2 9093 0000 sts (MesswertNick)+1,r25
6334 3de6 8093 0000 sts MesswertNick,r24
6335 .L675:
6336 3dea 01E0 ldi r16,lo8(4097)
6337 3dec C016 cp r12,r16
6338 3dee 00E1 ldi r16,hi8(4097)
6339 3df0 D006 cpc r13,r16
6340 3df2 04F0 brlt .L677
6341 3df4 80E0 ldi r24,lo8(4096)
6342 3df6 90E1 ldi r25,hi8(4096)
6343 3df8 9093 0000 sts (MesswertRoll)+1,r25
6344 3dfc 8093 0000 sts MesswertRoll,r24
6345 .L677:
6346 3e00 8091 0000 lds r24,MesswertRoll
6347 3e04 9091 0000 lds r25,(MesswertRoll)+1
6348 3e08 8050 subi r24,lo8(-4096)
6349 3e0a 904F sbci r25,hi8(-4096)
6350 3e0c 04F4 brge .L679
6351 3e0e 80E0 ldi r24,lo8(-4096)
6352 3e10 90EF ldi r25,hi8(-4096)
6353 3e12 9093 0000 sts (MesswertRoll)+1,r25
6354 3e16 8093 0000 sts MesswertRoll,r24
6355 .L679:
6356 3e1a 21E0 ldi r18,lo8(4097)
6357 3e1c E216 cp r14,r18
6358 3e1e 20E1 ldi r18,hi8(4097)
6359 3e20 F206 cpc r15,r18
6360 3e22 04F0 brlt .L681
6361 3e24 80E0 ldi r24,lo8(4096)
6362 3e26 90E1 ldi r25,hi8(4096)
6363 3e28 9093 0000 sts (MesswertGier)+1,r25
6364 3e2c 8093 0000 sts MesswertGier,r24
6365 .L681:
6366 3e30 8091 0000 lds r24,MesswertGier
6367 3e34 9091 0000 lds r25,(MesswertGier)+1
6368 3e38 8050 subi r24,lo8(-4096)
6369 3e3a 904F sbci r25,hi8(-4096)
6370 3e3c 04F4 brge .L683
6371 3e3e 80E0 ldi r24,lo8(-4096)
6372 3e40 90EF ldi r25,hi8(-4096)
6373 3e42 9093 0000 sts (MesswertGier)+1,r25
6374 3e46 8093 0000 sts MesswertGier,r24
6375 .L683:
6376 3e4a 2091 0000 lds r18,UBat
6377 3e4e 3091 0000 lds r19,(UBat)+1
6378 3e52 8091 0000 lds r24,BattLowVoltageWarning
6379 3e56 90E0 ldi r25,lo8(0)
6380 3e58 8217 cp r24,r18
6381 3e5a 9307 cpc r25,r19
6382 3e5c 04F4 brge .L685
6383 3e5e 6091 0000 lds r22,UBat
6384 3e62 7091 0000 lds r23,(UBat)+1
6385 3e66 4C89 ldd r20,Y+20
6386 3e68 5D89 ldd r21,Y+21
6387 3e6a DC01 movw r26,r24
6388 3e6c 4A9F mul r20,r26
6389 3e6e C001 movw r24,r0
6390 3e70 4B9F mul r20,r27
6391 3e72 900D add r25,r0
6392 3e74 5A9F mul r21,r26
6393 3e76 900D add r25,r0
6394 3e78 1124 clr r1
6395 3e7a 0E94 0000 call __udivmodhi4
6396 3e7e 7D8B std Y+21,r23
6397 3e80 6C8B std Y+20,r22
6398 .L685:
6399 3e82 6C88 ldd r6,Y+20
6400 3e84 7D88 ldd r7,Y+21
6401 3e86 660C lsl r6
6402 3e88 771C rol r7
6403 3e8a 660C lsl r6
6404 3e8c 771C rol r7
6405 3e8e 8091 0000 lds r24,EE_Parameter+13
6406 3e92 482F mov r20,r24
6407 3e94 80FF sbrs r24,0
6408 3e96 00C0 rjmp .L687
6409 3e98 5520 tst r5
6410 3e9a 01F0 breq .+2
6411 3e9c 00C0 rjmp .L687
6412 3e9e B985 ldd r27,Y+9
6413 3ea0 BB23 tst r27
6414 3ea2 01F0 breq .+2
6415 3ea4 00C0 rjmp .L687
6416 3ea6 8091 0000 lds r24,HoverGas
6417 3eaa 9091 0000 lds r25,(HoverGas)+1
6418 3eae 9093 0000 sts (DebugOut+44)+1,r25
6419 3eb2 8093 0000 sts DebugOut+44,r24
6420 3eb6 2091 0000 lds r18,BaroExpandActive
6421 3eba 3091 0000 lds r19,(BaroExpandActive)+1
6422 3ebe 2115 cp r18,__zero_reg__
6423 3ec0 3105 cpc r19,__zero_reg__
6424 3ec2 01F0 breq .+2
6425 3ec4 00C0 rjmp .L691
6426 3ec6 8091 0000 lds r24,MessLuftdruck
6427 3eca 9091 0000 lds r25,(MessLuftdruck)+1
6428 3ece 8959 subi r24,lo8(921)
6429 3ed0 9340 sbci r25,hi8(921)
6430 3ed2 00F0 brlo .L693
6431 3ed4 87B5 in r24,71-0x20
6432 3ed6 853F cpi r24,lo8(-11)
6433 3ed8 00F4 brsh .L695
6434 3eda 8091 0000 lds r24,ExpandBaro
6435 3ede 8150 subi r24,lo8(-(-1))
6436 3ee0 00C0 rjmp .L919
6437 .L695:
6438 3ee2 81E0 ldi r24,lo8(1)
6439 3ee4 8093 0000 sts BaroAtLowerLimit.3353,r24
6440 3ee8 00C0 rjmp .L697
6441 .L693:
6442 3eea 8091 0000 lds r24,MessLuftdruck
6443 3eee 9091 0000 lds r25,(MessLuftdruck)+1
6444 3ef2 8436 cpi r24,100
6445 3ef4 9105 cpc r25,__zero_reg__
6446 3ef6 00F4 brsh .L698
6447 3ef8 87B5 in r24,71-0x20
6448 3efa 8B30 cpi r24,lo8(11)
6449 3efc 00F0 brlo .L700
6450 3efe 8091 0000 lds r24,ExpandBaro
6451 3f02 8F5F subi r24,lo8(-(1))
6452 .L919:
6453 3f04 8093 0000 sts ExpandBaro,r24
6454 3f08 2AE0 ldi r18,lo8(10)
6455 3f0a 8202 muls r24,r18
6456 3f0c C001 movw r24,r0
6457 3f0e 1124 clr r1
6458 3f10 2091 0000 lds r18,DruckOffsetSetting
6459 3f14 281B sub r18,r24
6460 3f16 27BD out 71-0x20,r18
6461 3f18 8CE2 ldi r24,lo8(300)
6462 3f1a 91E0 ldi r25,hi8(300)
6463 3f1c 9093 0000 sts (beeptime)+1,r25
6464 3f20 8093 0000 sts beeptime,r24
6465 3f24 8EE5 ldi r24,lo8(350)
6466 3f26 91E0 ldi r25,hi8(350)
6467 3f28 9093 0000 sts (BaroExpandActive)+1,r25
6468 3f2c 8093 0000 sts BaroExpandActive,r24
6469 3f30 00C0 rjmp .L697
6470 .L700:
6471 3f32 81E0 ldi r24,lo8(1)
6472 3f34 8093 0000 sts BaroAtUpperLimit.3352,r24
6473 3f38 00C0 rjmp .L697
6474 .L698:
6475 3f3a 1092 0000 sts BaroAtUpperLimit.3352,__zero_reg__
6476 3f3e 1092 0000 sts BaroAtLowerLimit.3353,__zero_reg__
6477 3f42 00C0 rjmp .L697
6478 .L691:
6479 3f44 8091 0000 lds r24,HoehenWert
6480 3f48 9091 0000 lds r25,(HoehenWert)+1
6481 3f4c A091 0000 lds r26,(HoehenWert)+2
6482 3f50 B091 0000 lds r27,(HoehenWert)+3
6483 3f54 14E0 ldi r17,4
6484 3f56 880F 1: lsl r24
6485 3f58 991F rol r25
6486 3f5a AA1F rol r26
6487 3f5c BB1F rol r27
6488 3f5e 1A95 dec r17
6489 3f60 01F4 brne 1b
6490 3f62 8093 0000 sts SummenHoehe,r24
6491 3f66 9093 0000 sts (SummenHoehe)+1,r25
6492 3f6a A093 0000 sts (SummenHoehe)+2,r26
6493 3f6e B093 0000 sts (SummenHoehe)+3,r27
6494 3f72 1092 0000 sts (VarioMeter)+1,__zero_reg__
6495 3f76 1092 0000 sts VarioMeter,__zero_reg__
6496 3f7a 2150 subi r18,lo8(-(-1))
6497 3f7c 3040 sbci r19,hi8(-(-1))
6498 3f7e 3093 0000 sts (BaroExpandActive)+1,r19
6499 3f82 2093 0000 sts BaroExpandActive,r18
6500 .L697:
6501 3f86 8091 0000 lds r24,Parameter_MaxHoehe
6502 3f8a 41FF sbrs r20,1
6503 3f8c 00C0 rjmp .L702
6504 3f8e 8233 cpi r24,lo8(50)
6505 3f90 00F4 brsh .L704
6506 3f92 8091 0000 lds r24,delay.3351
6507 3f96 8150 subi r24,lo8(-(-1))
6508 3f98 8093 0000 sts delay.3351,r24
6509 3f9c 8F3F cpi r24,lo8(-1)
6510 3f9e 01F4 brne .L706
6511 3fa0 1092 0000 sts HoehenReglerAktiv,__zero_reg__
6512 3fa4 8091 0000 lds r24,HoehenWert
6513 3fa8 9091 0000 lds r25,(HoehenWert)+1
6514 3fac A091 0000 lds r26,(HoehenWert)+2
6515 3fb0 B091 0000 lds r27,(HoehenWert)+3
6516 3fb4 8093 0000 sts SollHoehe,r24
6517 3fb8 9093 0000 sts (SollHoehe)+1,r25
6518 3fbc A093 0000 sts (SollHoehe)+2,r26
6519 3fc0 B093 0000 sts (SollHoehe)+3,r27
6520 3fc4 81E0 ldi r24,lo8(1)
6521 3fc6 00C0 rjmp .L920
6522 .L704:
6523 3fc8 81E0 ldi r24,lo8(1)
6524 3fca 8093 0000 sts HoehenReglerAktiv,r24
6525 3fce 88EC ldi r24,lo8(-56)
6526 .L920:
6527 3fd0 8093 0000 sts delay.3351,r24
6528 3fd4 00C0 rjmp .L706
6529 .L702:
6530 3fd6 2091 0000 lds r18,ExternHoehenValue
6531 3fda 3091 0000 lds r19,(ExternHoehenValue)+1
6532 3fde 280F add r18,r24
6533 3fe0 311D adc r19,__zero_reg__
6534 3fe2 8091 0000 lds r24,EE_Parameter+18
6535 3fe6 90E0 ldi r25,lo8(0)
6536 3fe8 7C01 movw r14,r24
6537 3fea 2E9D mul r18,r14
6538 3fec C001 movw r24,r0
6539 3fee 2F9D mul r18,r15
6540 3ff0 900D add r25,r0
6541 3ff2 3E9D mul r19,r14
6542 3ff4 900D add r25,r0
6543 3ff6 1124 clr r1
6544 3ff8 AA27 clr r26
6545 3ffa 97FD sbrc r25,7
6546 3ffc A095 com r26
6547 3ffe BA2F mov r27,r26
6548 4000 8093 0000 sts SollHoehe,r24
6549 4004 9093 0000 sts (SollHoehe)+1,r25
6550 4008 A093 0000 sts (SollHoehe)+2,r26
6551 400c B093 0000 sts (SollHoehe)+3,r27
6552 4010 81E0 ldi r24,lo8(1)
6553 4012 8093 0000 sts HoehenReglerAktiv,r24
6554 .L706:
6555 4016 E090 0000 lds r14,GIER_GRAD_FAKTOR
6556 401a F090 0000 lds r15,(GIER_GRAD_FAKTOR)+1
6557 401e 0091 0000 lds r16,(GIER_GRAD_FAKTOR)+2
6558 4022 1091 0000 lds r17,(GIER_GRAD_FAKTOR)+3
6559 4026 6981 ldd r22,Y+1
6560 4028 7A81 ldd r23,Y+2
6561 402a 8B81 ldd r24,Y+3
6562 402c 9C81 ldd r25,Y+4
6563 402e A801 movw r20,r16
6564 4030 9701 movw r18,r14
6565 4032 0E94 0000 call __divmodsi4
6566 4036 5901 movw r10,r18
6567 4038 6A01 movw r12,r20
6568 403a 6D81 ldd r22,Y+5
6569 403c 7E81 ldd r23,Y+6
6570 403e 8F81 ldd r24,Y+7
6571 4040 9885 ldd r25,Y+8
6572 4042 A801 movw r20,r16
6573 4044 9701 movw r18,r14
6574 4046 0E94 0000 call __divmodsi4
6575 404a B901 movw r22,r18
6576 404c C501 movw r24,r10
6577 404e 0E94 0000 call ihypot
6578 4052 8C33 cpi r24,60
6579 4054 9105 cpc r25,__zero_reg__
6580 4056 04F0 brlt .L708
6581 4058 8CE3 ldi r24,lo8(60)
6582 405a 90E0 ldi r25,hi8(60)
6583 .L708:
6584 405c 0E94 0000 call c_cos_8192
6585 4060 9B87 std Y+11,r25
6586 4062 8A87 std Y+10,r24
6587 4064 80E2 ldi r24,lo8(32)
6588 4066 8093 0000 sts VarioCharacter,r24
6589 406a 8091 0000 lds r24,HoehenReglerAktiv
6590 406e 8823 tst r24
6591 4070 01F4 brne .+2
6592 4072 00C0 rjmp .L710
6593 4074 8091 0000 lds r24,FC_StatusFlags
6594 4078 84FD sbrc r24,4
6595 407a 00C0 rjmp .L710
6596 407c 8091 0000 lds r24,EE_Parameter+102
6597 4080 E82F mov r30,r24
6598 4082 F0E0 ldi r31,lo8(0)
6599 4084 B1E0 ldi r27,lo8(1)
6600 4086 2B2E mov r2,r27
6601 4088 312C mov r3,__zero_reg__
6602 408a 2E22 and r2,r30
6603 408c 3F22 and r3,r31
6604 408e 80FD sbrc r24,0
6605 4090 00C0 rjmp .L713
6606 4092 8091 0000 lds r24,EE_Parameter+13
6607 4096 81FD sbrc r24,1
6608 4098 00C0 rjmp .L715
6609 .L713:
6610 409a 1092 0000 sts (HeightTrimming.3345)+1,__zero_reg__
6611 409e 1092 0000 sts HeightTrimming.3345,__zero_reg__
6612 40a2 8091 0000 lds r24,FC_StatusFlags
6613 40a6 806C ori r24,lo8(-64)
6614 40a8 8093 0000 sts FC_StatusFlags,r24
6615 40ac 2301 movw r4,r6
6616 40ae 00C0 rjmp .L716
6617 .L715:
6618 40b0 8091 0000 lds r24,FC_StatusFlags
6619 40b4 81FF sbrs r24,1
6620 40b6 00C0 rjmp .L717
6621 40b8 4091 0000 lds r20,StickGas
6622 40bc 5091 0000 lds r21,(StickGas)+1
6623 40c0 2091 0000 lds r18,StickGasHover.3347
6624 40c4 3091 0000 lds r19,(StickGasHover.3347)+1
6625 40c8 B901 movw r22,r18
6626 40ca 615F subi r22,lo8(-(15))
6627 40cc 7F4F sbci r23,hi8(-(15))
6628 40ce 6417 cp r22,r20
6629 40d0 7507 cpc r23,r21
6630 40d2 04F4 brge .L719
6631 40d4 8091 0000 lds r24,BaroAtUpperLimit.3352
6632 40d8 8823 tst r24
6633 40da 01F4 brne .L719
6634 40dc 8091 0000 lds r24,FC_StatusFlags
6635 40e0 87FF sbrs r24,7
6636 40e2 00C0 rjmp .L722
6637 40e4 8091 0000 lds r24,FC_StatusFlags
6638 40e8 8F77 andi r24,lo8(127)
6639 40ea 8093 0000 sts FC_StatusFlags,r24
6640 40ee 8091 0000 lds r24,HoehenWert
6641 40f2 9091 0000 lds r25,(HoehenWert)+1
6642 40f6 A091 0000 lds r26,(HoehenWert)+2
6643 40fa B091 0000 lds r27,(HoehenWert)+3
6644 40fe 8093 0000 sts SollHoehe,r24
6645 4102 9093 0000 sts (SollHoehe)+1,r25
6646 4106 A093 0000 sts (SollHoehe)+2,r26
6647 410a B093 0000 sts (SollHoehe)+3,r27
6648 .L722:
6649 410e 8091 0000 lds r24,FC_StatusFlags
6650 4112 8064 ori r24,lo8(64)
6651 4114 8093 0000 sts FC_StatusFlags,r24
6652 4118 9A01 movw r18,r20
6653 411a 261B sub r18,r22
6654 411c 370B sbc r19,r23
6655 411e 37FF sbrs r19,7
6656 4120 00C0 rjmp .L724
6657 4122 3095 com r19
6658 4124 2195 neg r18
6659 4126 3F4F sbci r19,lo8(-1)
6660 .L724:
6661 4128 8091 0000 lds r24,HeightTrimming.3345
6662 412c 9091 0000 lds r25,(HeightTrimming.3345)+1
6663 4130 820F add r24,r18
6664 4132 931F adc r25,r19
6665 4134 9093 0000 sts (HeightTrimming.3345)+1,r25
6666 4138 8093 0000 sts HeightTrimming.3345,r24
6667 413c 8BE2 ldi r24,lo8(43)
6668 413e 00C0 rjmp .L921
6669 .L719:
6670 4140 2F50 subi r18,lo8(-(-15))
6671 4142 3040 sbci r19,hi8(-(-15))
6672 4144 4217 cp r20,r18
6673 4146 5307 cpc r21,r19
6674 4148 04F4 brge .L726
6675 414a 8091 0000 lds r24,BaroAtLowerLimit.3353
6676 414e 8823 tst r24
6677 4150 01F4 brne .L726
6678 4152 8091 0000 lds r24,FC_StatusFlags
6679 4156 86FF sbrs r24,6
6680 4158 00C0 rjmp .L729
6681 415a 8091 0000 lds r24,FC_StatusFlags
6682 415e 8F7B andi r24,lo8(-65)
6683 4160 8093 0000 sts FC_StatusFlags,r24
6684 4164 8091 0000 lds r24,HoehenWert
6685 4168 9091 0000 lds r25,(HoehenWert)+1
6686 416c A091 0000 lds r26,(HoehenWert)+2
6687 4170 B091 0000 lds r27,(HoehenWert)+3
6688 4174 8093 0000 sts SollHoehe,r24
6689 4178 9093 0000 sts (SollHoehe)+1,r25
6690 417c A093 0000 sts (SollHoehe)+2,r26
6691 4180 B093 0000 sts (SollHoehe)+3,r27
6692 .L729:
6693 4184 8091 0000 lds r24,FC_StatusFlags
6694 4188 8068 ori r24,lo8(-128)
6695 418a 8093 0000 sts FC_StatusFlags,r24
6696 418e 421B sub r20,r18
6697 4190 530B sbc r21,r19
6698 4192 9A01 movw r18,r20
6699 4194 57FF sbrs r21,7
6700 4196 00C0 rjmp .L731
6701 4198 3095 com r19
6702 419a 2195 neg r18
6703 419c 3F4F sbci r19,lo8(-1)
6704 .L731:
6705 419e 8091 0000 lds r24,HeightTrimming.3345
6706 41a2 9091 0000 lds r25,(HeightTrimming.3345)+1
6707 41a6 821B sub r24,r18
6708 41a8 930B sbc r25,r19
6709 41aa 9093 0000 sts (HeightTrimming.3345)+1,r25
6710 41ae 8093 0000 sts HeightTrimming.3345,r24
6711 41b2 8DE2 ldi r24,lo8(45)
6712 41b4 00C0 rjmp .L921
6713 .L726:
6714 41b6 8091 0000 lds r24,FC_StatusFlags
6715 41ba 807C andi r24,lo8(-64)
6716 41bc 01F0 breq .L732
6717 41be 8091 0000 lds r24,FC_StatusFlags
6718 41c2 8F73 andi r24,lo8(63)
6719 41c4 8093 0000 sts FC_StatusFlags,r24
6720 41c8 1092 0000 sts (HeightTrimming.3345)+1,__zero_reg__
6721 41cc 1092 0000 sts HeightTrimming.3345,__zero_reg__
6722 41d0 2091 0000 lds r18,HoehenWert
6723 41d4 3091 0000 lds r19,(HoehenWert)+1
6724 41d8 4091 0000 lds r20,(HoehenWert)+2
6725 41dc 5091 0000 lds r21,(HoehenWert)+3
6726 41e0 2093 0000 sts SollHoehe,r18
6727 41e4 3093 0000 sts (SollHoehe)+1,r19
6728 41e8 4093 0000 sts (SollHoehe)+2,r20
6729 41ec 5093 0000 sts (SollHoehe)+3,r21
6730 41f0 E1FF sbrs r30,1
6731 41f2 00C0 rjmp .L734
6732 41f4 84EF ldi r24,lo8(500)
6733 41f6 91E0 ldi r25,hi8(500)
6734 41f8 9093 0000 sts (beeptime)+1,r25
6735 41fc 8093 0000 sts beeptime,r24
6736 .L734:
6737 4200 8091 0000 lds r24,StartTrigger
6738 4204 8823 tst r24
6739 4206 01F4 brne .L732
6740 4208 2333 cpi r18,lo8(51)
6741 420a 3105 cpc r19,__zero_reg__
6742 420c 4105 cpc r20,__zero_reg__
6743 420e 5105 cpc r21,__zero_reg__
6744 4210 04F0 brlt .L732
6745 4212 81E0 ldi r24,lo8(1)
6746 4214 8093 0000 sts StartTrigger,r24
6747 .L732:
6748 4218 8DE3 ldi r24,lo8(61)
6749 .L921:
6750 421a 8093 0000 sts VarioCharacter,r24
6751 421e 4091 0000 lds r20,HeightTrimming.3345
6752 4222 5091 0000 lds r21,(HeightTrimming.3345)+1
6753 4226 CA01 movw r24,r20
6754 4228 57FF sbrs r21,7
6755 422a 00C0 rjmp .L739
6756 422c 8827 clr r24
6757 422e 9927 clr r25
6758 4230 841B sub r24,r20
6759 4232 950B sbc r25,r21
6760 .L739:
6761 4234 8150 subi r24,lo8(513)
6762 4236 9240 sbci r25,hi8(513)
6763 4238 04F4 brge .+2
6764 423a 00C0 rjmp .L738
6765 423c 0091 0000 lds r16,SollHoehe
6766 4240 1091 0000 lds r17,(SollHoehe)+1
6767 4244 2091 0000 lds r18,(SollHoehe)+2
6768 4248 3091 0000 lds r19,(SollHoehe)+3
6769 424c 8091 0000 lds r24,EE_Parameter+18
6770 4250 90E0 ldi r25,lo8(0)
6771 4252 BC01 movw r22,r24
6772 4254 649F mul r22,r20
6773 4256 C001 movw r24,r0
6774 4258 659F mul r22,r21
6775 425a 900D add r25,r0
6776 425c 749F mul r23,r20
6777 425e 900D add r25,r0
6778 4260 1124 clr r1
6779 4262 60E0 ldi r22,lo8(1280)
6780 4264 75E0 ldi r23,hi8(1280)
6781 4266 0E94 0000 call __divmodhi4
6782 426a 8827 clr r24
6783 426c 77FD sbrc r23,7
6784 426e 8095 com r24
6785 4270 982F mov r25,r24
6786 4272 600F add r22,r16
6787 4274 711F adc r23,r17
6788 4276 821F adc r24,r18
6789 4278 931F adc r25,r19
6790 427a 6093 0000 sts SollHoehe,r22
6791 427e 7093 0000 sts (SollHoehe)+1,r23
6792 4282 8093 0000 sts (SollHoehe)+2,r24
6793 4286 9093 0000 sts (SollHoehe)+3,r25
6794 428a 1092 0000 sts (HeightTrimming.3345)+1,__zero_reg__
6795 428e 1092 0000 sts HeightTrimming.3345,__zero_reg__
6796 4292 E090 0000 lds r14,HoehenWert
6797 4296 F090 0000 lds r15,(HoehenWert)+1
6798 429a 0091 0000 lds r16,(HoehenWert)+2
6799 429e 1091 0000 lds r17,(HoehenWert)+3
6800 42a2 A801 movw r20,r16
6801 42a4 9701 movw r18,r14
6802 42a6 2050 subi r18,lo8(-(-1024))
6803 42a8 3440 sbci r19,hi8(-(-1024))
6804 42aa 4040 sbci r20,hlo8(-(-1024))
6805 42ac 5040 sbci r21,hhi8(-(-1024))
6806 42ae 2617 cp r18,r22
6807 42b0 3707 cpc r19,r23
6808 42b2 4807 cpc r20,r24
6809 42b4 5907 cpc r21,r25
6810 42b6 04F4 brge .L922
6811 42b8 A801 movw r20,r16
6812 42ba 9701 movw r18,r14
6813 42bc 2050 subi r18,lo8(-(1024))
6814 42be 3C4F sbci r19,hi8(-(1024))
6815 42c0 4F4F sbci r20,hlo8(-(1024))
6816 42c2 5F4F sbci r21,hhi8(-(1024))
6817 42c4 6217 cp r22,r18
6818 42c6 7307 cpc r23,r19
6819 42c8 8407 cpc r24,r20
6820 42ca 9507 cpc r25,r21
6821 42cc 04F0 brlt .L743
6822 .L922:
6823 42ce 2093 0000 sts SollHoehe,r18
6824 42d2 3093 0000 sts (SollHoehe)+1,r19
6825 42d6 4093 0000 sts (SollHoehe)+2,r20
6826 42da 5093 0000 sts (SollHoehe)+3,r21
6827 .L743:
6828 42de E1FF sbrs r30,1
6829 42e0 00C0 rjmp .L745
6830 42e2 84E6 ldi r24,lo8(100)
6831 42e4 90E0 ldi r25,hi8(100)
6832 42e6 9093 0000 sts (beeptime)+1,r25
6833 42ea 8093 0000 sts beeptime,r24
6834 .L745:
6835 42ee 8091 0000 lds r24,EE_Parameter+22
6836 42f2 8823 tst r24
6837 42f4 01F4 brne .L738
6838 42f6 2091 0000 lds r18,UBat
6839 42fa 3091 0000 lds r19,(UBat)+1
6840 42fe 8091 0000 lds r24,HoverGas
6841 4302 9091 0000 lds r25,(HoverGas)+1
6842 4306 64E0 ldi r22,lo8(4)
6843 4308 70E0 ldi r23,hi8(4)
6844 430a 0E94 0000 call __divmodhi4
6845 430e CB01 movw r24,r22
6846 4310 6091 0000 lds r22,BattLowVoltageWarning
6847 4314 70E0 ldi r23,lo8(0)
6848 4316 DC01 movw r26,r24
6849 4318 A29F mul r26,r18
6850 431a C001 movw r24,r0
6851 431c A39F mul r26,r19
6852 431e 900D add r25,r0
6853 4320 B29F mul r27,r18
6854 4322 900D add r25,r0
6855 4324 1124 clr r1
6856 4326 0E94 0000 call __divmodhi4
6857 432a 7093 0000 sts (StickGasHover.3347)+1,r23
6858 432e 6093 0000 sts StickGasHover.3347,r22
6859 4332 6634 cpi r22,70
6860 4334 7105 cpc r23,__zero_reg__
6861 4336 04F4 brge .L748
6862 4338 86E4 ldi r24,lo8(70)
6863 433a 90E0 ldi r25,hi8(70)
6864 433c 00C0 rjmp .L923
6865 .L748:
6866 433e 6739 cpi r22,151
6867 4340 7105 cpc r23,__zero_reg__
6868 4342 04F0 brlt .L738
6869 4344 86E9 ldi r24,lo8(150)
6870 4346 90E0 ldi r25,hi8(150)
6871 .L923:
6872 4348 9093 0000 sts (StickGasHover.3347)+1,r25
6873 434c 8093 0000 sts StickGasHover.3347,r24
6874 .L738:
6875 4350 8091 0000 lds r24,BaroExpandActive
6876 4354 9091 0000 lds r25,(BaroExpandActive)+1
6877 4358 892B or r24,r25
6878 435a 01F0 breq .L751
6879 435c 8091 0000 lds r24,HoehenWert
6880 4360 9091 0000 lds r25,(HoehenWert)+1
6881 4364 A091 0000 lds r26,(HoehenWert)+2
6882 4368 B091 0000 lds r27,(HoehenWert)+3
6883 436c 8093 0000 sts SollHoehe,r24
6884 4370 9093 0000 sts (SollHoehe)+1,r25
6885 4374 A093 0000 sts (SollHoehe)+2,r26
6886 4378 B093 0000 sts (SollHoehe)+3,r27
6887 437c 00C0 rjmp .L751
6888 .L717:
6889 437e 8091 0000 lds r24,HoehenWert
6890 4382 9091 0000 lds r25,(HoehenWert)+1
6891 4386 A091 0000 lds r26,(HoehenWert)+2
6892 438a B091 0000 lds r27,(HoehenWert)+3
6893 438e 8059 subi r24,lo8(-(-400))
6894 4390 9140 sbci r25,hi8(-(-400))
6895 4392 A040 sbci r26,hlo8(-(-400))
6896 4394 B040 sbci r27,hhi8(-(-400))
6897 4396 8093 0000 sts SollHoehe,r24
6898 439a 9093 0000 sts (SollHoehe)+1,r25
6899 439e A093 0000 sts (SollHoehe)+2,r26
6900 43a2 B093 0000 sts (SollHoehe)+3,r27
6901 43a6 8091 0000 lds r24,EE_Parameter+22
6902 43aa 8823 tst r24
6903 43ac 01F0 breq .L753
6904 43ae 90E0 ldi r25,lo8(0)
6905 43b0 00C0 rjmp .L924
6906 .L753:
6907 43b2 88E7 ldi r24,lo8(120)
6908 43b4 90E0 ldi r25,hi8(120)
6909 .L924:
6910 43b6 9093 0000 sts (StickGasHover.3347)+1,r25
6911 43ba 8093 0000 sts StickGasHover.3347,r24
6912 43be 7092 0000 sts (HoverGas)+1,r7
6913 43c2 6092 0000 sts HoverGas,r6
6914 .L751:
6915 43c6 4090 0000 lds r4,HoverGas
6916 43ca 5090 0000 lds r5,(HoverGas)+1
6917 .L716:
6918 43ce E090 0000 lds r14,HoehenWert
6919 43d2 F090 0000 lds r15,(HoehenWert)+1
6920 43d6 0091 0000 lds r16,(HoehenWert)+2
6921 43da 1091 0000 lds r17,(HoehenWert)+3
6922 43de 2091 0000 lds r18,SollHoehe
6923 43e2 3091 0000 lds r19,(SollHoehe)+1
6924 43e6 4091 0000 lds r20,(SollHoehe)+2
6925 43ea 5091 0000 lds r21,(SollHoehe)+3
6926 43ee 2E15 cp r18,r14
6927 43f0 3F05 cpc r19,r15
6928 43f2 4007 cpc r20,r16
6929 43f4 5107 cpc r21,r17
6930 43f6 04F0 brlt .L756
6931 43f8 2114 cp r2,__zero_reg__
6932 43fa 3104 cpc r3,__zero_reg__
6933 43fc 01F0 breq .+2
6934 43fe 00C0 rjmp .L758
6935 .L756:
6936 4400 8091 0000 lds r24,BaroExpandActive
6937 4404 9091 0000 lds r25,(BaroExpandActive)+1
6938 4408 892B or r24,r25
6939 440a 01F0 breq .L759
6940 440c 4090 0000 lds r4,HoverGas
6941 4410 5090 0000 lds r5,(HoverGas)+1
6942 4414 8824 clr r8
6943 4416 9924 clr r9
6944 4418 CC24 clr r12
6945 441a DD24 clr r13
6946 441c 00C0 rjmp .L761
6947 .L759:
6948 441e D801 movw r26,r16
6949 4420 C701 movw r24,r14
6950 4422 821B sub r24,r18
6951 4424 930B sbc r25,r19
6952 4426 A40B sbc r26,r20
6953 4428 B50B sbc r27,r21
6954 442a 8093 0000 sts tmp_long.3308,r24
6955 442e 9093 0000 sts (tmp_long.3308)+1,r25
6956 4432 A093 0000 sts (tmp_long.3308)+2,r26
6957 4436 B093 0000 sts (tmp_long.3308)+3,r27
6958 443a 8230 cpi r24,lo8(-32766)
6959 443c E0E8 ldi r30,hi8(-32766)
6960 443e 9E07 cpc r25,r30
6961 4440 EFEF ldi r30,hlo8(-32766)
6962 4442 AE07 cpc r26,r30
6963 4444 EFEF ldi r30,hhi8(-32766)
6964 4446 BE07 cpc r27,r30
6965 4448 04F4 brge .L762
6966 444a 81E0 ldi r24,lo8(-32767)
6967 444c 90E8 ldi r25,hi8(-32767)
6968 444e AFEF ldi r26,hlo8(-32767)
6969 4450 BFEF ldi r27,hhi8(-32767)
6970 4452 00C0 rjmp .L925
6971 .L762:
6972 4454 8F5F subi r24,lo8(32767)
6973 4456 9F47 sbci r25,hi8(32767)
6974 4458 A040 sbci r26,hlo8(32767)
6975 445a B040 sbci r27,hhi8(32767)
6976 445c 04F0 brlt .L764
6977 445e 8FEF ldi r24,lo8(32767)
6978 4460 9FE7 ldi r25,hi8(32767)
6979 4462 A0E0 ldi r26,hlo8(32767)
6980 4464 B0E0 ldi r27,hhi8(32767)
6981 .L925:
6982 4466 8093 0000 sts tmp_long.3308,r24
6983 446a 9093 0000 sts (tmp_long.3308)+1,r25
6984 446e A093 0000 sts (tmp_long.3308)+2,r26
6985 4472 B093 0000 sts (tmp_long.3308)+3,r27
6986 .L764:
6987 4476 E090 0000 lds r14,tmp_long.3308
6988 447a F090 0000 lds r15,(tmp_long.3308)+1
6989 447e 0091 0000 lds r16,(tmp_long.3308)+2
6990 4482 1091 0000 lds r17,(tmp_long.3308)+3
6991 4486 6091 0000 lds r22,Parameter_Hoehe_P
6992 448a 70E0 ldi r23,lo8(0)
6993 448c 80E0 ldi r24,lo8(0)
6994 448e 90E0 ldi r25,hi8(0)
6995 4490 A801 movw r20,r16
6996 4492 9701 movw r18,r14
6997 4494 0E94 0000 call __mulsi3
6998 4498 20E2 ldi r18,lo8(32)
6999 449a 30E0 ldi r19,hi8(32)
7000 449c 40E0 ldi r20,hlo8(32)
7001 449e 50E0 ldi r21,hhi8(32)
7002 44a0 0E94 0000 call __divmodsi4
7003 44a4 2093 0000 sts tmp_long.3308,r18
7004 44a8 3093 0000 sts (tmp_long.3308)+1,r19
7005 44ac 4093 0000 sts (tmp_long.3308)+2,r20
7006 44b0 5093 0000 sts (tmp_long.3308)+3,r21
7007 44b4 2530 cpi r18,lo8(-507)
7008 44b6 6EEF ldi r22,hi8(-507)
7009 44b8 3607 cpc r19,r22
7010 44ba 6FEF ldi r22,hlo8(-507)
7011 44bc 4607 cpc r20,r22
7012 44be 6FEF ldi r22,hhi8(-507)
7013 44c0 5607 cpc r21,r22
7014 44c2 04F4 brge .L766
7015 44c4 84E0 ldi r24,lo8(-508)
7016 44c6 9EEF ldi r25,hi8(-508)
7017 44c8 AFEF ldi r26,hlo8(-508)
7018 44ca BFEF ldi r27,hhi8(-508)
7019 44cc 00C0 rjmp .L926
7020 .L766:
7021 44ce 2050 subi r18,lo8(1024)
7022 44d0 3440 sbci r19,hi8(1024)
7023 44d2 4040 sbci r20,hlo8(1024)
7024 44d4 5040 sbci r21,hhi8(1024)
7025 44d6 04F0 brlt .L768
7026 44d8 80E0 ldi r24,lo8(1024)
7027 44da 94E0 ldi r25,hi8(1024)
7028 44dc A0E0 ldi r26,hlo8(1024)
7029 44de B0E0 ldi r27,hhi8(1024)
7030 .L926:
7031 44e0 8093 0000 sts tmp_long.3308,r24
7032 44e4 9093 0000 sts (tmp_long.3308)+1,r25
7033 44e8 A093 0000 sts (tmp_long.3308)+2,r26
7034 44ec B093 0000 sts (tmp_long.3308)+3,r27
7035 .L768:
7036 44f0 A090 0000 lds r10,tmp_long.3308
7037 44f4 B090 0000 lds r11,(tmp_long.3308)+1
7038 44f8 C090 0000 lds r12,(tmp_long.3308)+2
7039 44fc D090 0000 lds r13,(tmp_long.3308)+3
7040 4500 8091 0000 lds r24,VarioMeter
7041 4504 9091 0000 lds r25,(VarioMeter)+1
7042 4508 68E0 ldi r22,lo8(8)
7043 450a 70E0 ldi r23,hi8(8)
7044 450c 0E94 0000 call __divmodhi4
7045 4510 8FEF ldi r24,hi8(-126)
7046 4512 6238 cpi r22,lo8(-126)
7047 4514 7807 cpc r23,r24
7048 4516 04F4 brge .L770
7049 4518 61E8 ldi r22,lo8(-127)
7050 451a 7FEF ldi r23,hi8(-127)
7051 451c 00C0 rjmp .L772
7052 .L770:
7053 451e 6038 cpi r22,128
7054 4520 7105 cpc r23,__zero_reg__
7055 4522 04F0 brlt .L772
7056 4524 60E8 ldi r22,lo8(128)
7057 4526 70E0 ldi r23,hi8(128)
7058 .L772:
7059 4528 8827 clr r24
7060 452a 77FD sbrc r23,7
7061 452c 8095 com r24
7062 452e 982F mov r25,r24
7063 4530 2091 0000 lds r18,Parameter_Luftdruck_D
7064 4534 30E0 ldi r19,lo8(0)
7065 4536 40E0 ldi r20,lo8(0)
7066 4538 50E0 ldi r21,hi8(0)
7067 453a 0E94 0000 call __mulsi3
7068 453e 24E0 ldi r18,lo8(4)
7069 4540 30E0 ldi r19,hi8(4)
7070 4542 40E0 ldi r20,hlo8(4)
7071 4544 50E0 ldi r21,hhi8(4)
7072 4546 0E94 0000 call __divmodsi4
7073 454a B901 movw r22,r18
7074 454c 9FEF ldi r25,hi8(-255)
7075 454e 2130 cpi r18,lo8(-255)
7076 4550 3907 cpc r19,r25
7077 4552 04F4 brge .L774
7078 4554 60E0 ldi r22,lo8(-256)
7079 4556 7FEF ldi r23,hi8(-256)
7080 4558 00C0 rjmp .L776
7081 .L774:
7082 455a 2F3F cpi r18,255
7083 455c 3105 cpc r19,__zero_reg__
7084 455e 01F0 breq .L776
7085 4560 04F0 brlt .L776
7086 4562 60E0 ldi r22,lo8(256)
7087 4564 71E0 ldi r23,hi8(256)
7088 .L776:
7089 4566 8091 0000 lds r24,FC_StatusFlags
7090 456a 807C andi r24,lo8(-64)
7091 456c 01F0 breq .L778
7092 456e CB01 movw r24,r22
7093 4570 64E0 ldi r22,lo8(4)
7094 4572 70E0 ldi r23,hi8(4)
7095 4574 00C0 rjmp .L927
7096 .L778:
7097 4576 2114 cp r2,__zero_reg__
7098 4578 3104 cpc r3,__zero_reg__
7099 457a 01F0 breq .L780
7100 457c CB01 movw r24,r22
7101 457e 68E0 ldi r22,lo8(8)
7102 4580 70E0 ldi r23,hi8(8)
7103 .L927:
7104 4582 0E94 0000 call __divmodhi4
7105 .L780:
7106 4586 4701 movw r8,r14
7107 4588 6501 movw r12,r10
7108 458a C60E add r12,r22
7109 458c D71E adc r13,r23
7110 .L761:
7111 458e E090 0000 lds r14,Parameter_Hoehe_ACC_Wirkung
7112 4592 EE20 tst r14
7113 4594 01F4 brne .+2
7114 4596 00C0 rjmp .L782
7115 4598 6091 0000 lds r22,Mess_Integral_Hoch
7116 459c 7091 0000 lds r23,(Mess_Integral_Hoch)+1
7117 45a0 8091 0000 lds r24,(Mess_Integral_Hoch)+2
7118 45a4 9091 0000 lds r25,(Mess_Integral_Hoch)+3
7119 45a8 FF24 clr r15
7120 45aa 00E0 ldi r16,lo8(0)
7121 45ac 10E0 ldi r17,hi8(0)
7122 45ae 20E8 ldi r18,lo8(128)
7123 45b0 30E0 ldi r19,hi8(128)
7124 45b2 40E0 ldi r20,hlo8(128)
7125 45b4 50E0 ldi r21,hhi8(128)
7126 45b6 0E94 0000 call __divmodsi4
7127 45ba C801 movw r24,r16
7128 45bc B701 movw r22,r14
7129 45be 0E94 0000 call __mulsi3
7130 45c2 20E2 ldi r18,lo8(32)
7131 45c4 30E0 ldi r19,hi8(32)
7132 45c6 40E0 ldi r20,hlo8(32)
7133 45c8 50E0 ldi r21,hhi8(32)
7134 45ca 0E94 0000 call __divmodsi4
7135 45ce 2093 0000 sts tmp_long.3308,r18
7136 45d2 3093 0000 sts (tmp_long.3308)+1,r19
7137 45d6 4093 0000 sts (tmp_long.3308)+2,r20
7138 45da 5093 0000 sts (tmp_long.3308)+3,r21
7139 45de 2138 cpi r18,lo8(-127)
7140 45e0 AFEF ldi r26,hi8(-127)
7141 45e2 3A07 cpc r19,r26
7142 45e4 AFEF ldi r26,hlo8(-127)
7143 45e6 4A07 cpc r20,r26
7144 45e8 AFEF ldi r26,hhi8(-127)
7145 45ea 5A07 cpc r21,r26
7146 45ec 04F4 brge .L784
7147 45ee 80E8 ldi r24,lo8(-128)
7148 45f0 9FEF ldi r25,hi8(-128)
7149 45f2 AFEF ldi r26,hlo8(-128)
7150 45f4 BFEF ldi r27,hhi8(-128)
7151 45f6 00C0 rjmp .L928
7152 .L784:
7153 45f8 2F3F cpi r18,lo8(255)
7154 45fa 3105 cpc r19,__zero_reg__
7155 45fc 4105 cpc r20,__zero_reg__
7156 45fe 5105 cpc r21,__zero_reg__
7157 4600 01F0 breq .L786
7158 4602 04F0 brlt .L786
7159 4604 80E0 ldi r24,lo8(256)
7160 4606 91E0 ldi r25,hi8(256)
7161 4608 A0E0 ldi r26,hlo8(256)
7162 460a B0E0 ldi r27,hhi8(256)
7163 .L928:
7164 460c 8093 0000 sts tmp_long.3308,r24
7165 4610 9093 0000 sts (tmp_long.3308)+1,r25
7166 4614 A093 0000 sts (tmp_long.3308)+2,r26
7167 4618 B093 0000 sts (tmp_long.3308)+3,r27
7168 .L786:
7169 461c 8091 0000 lds r24,tmp_long.3308
7170 4620 9091 0000 lds r25,(tmp_long.3308)+1
7171 4624 C80E add r12,r24
7172 4626 D91E adc r13,r25
7173 .L782:
7174 4628 8091 0000 lds r24,FromNaviCtrl_Value+4
7175 462c 9927 clr r25
7176 462e 87FD sbrc r24,7
7177 4630 9095 com r25
7178 4632 2091 0000 lds r18,Parameter_Hoehe_GPS_Z
7179 4636 30E0 ldi r19,lo8(0)
7180 4638 FC01 movw r30,r24
7181 463a E29F mul r30,r18
7182 463c C001 movw r24,r0
7183 463e E39F mul r30,r19
7184 4640 900D add r25,r0
7185 4642 F29F mul r31,r18
7186 4644 900D add r25,r0
7187 4646 1124 clr r1
7188 4648 60E8 ldi r22,lo8(128)
7189 464a 70E0 ldi r23,hi8(128)
7190 464c 0E94 0000 call __divmodhi4
7191 4650 0091 0000 lds r16,HoverGas
7192 4654 1091 0000 lds r17,(HoverGas)+1
7193 4658 FFEF ldi r31,hi8(-128)
7194 465a 6038 cpi r22,lo8(-128)
7195 465c 7F07 cpc r23,r31
7196 465e 04F4 brge .L788
7197 4660 60E8 ldi r22,lo8(-128)
7198 4662 7FEF ldi r23,hi8(-128)
7199 .L788:
7200 4664 C60E add r12,r22
7201 4666 D71E adc r13,r23
7202 4668 B601 movw r22,r12
7203 466a 8827 clr r24
7204 466c 77FD sbrc r23,7
7205 466e 8095 com r24
7206 4670 982F mov r25,r24
7207 4672 9801 movw r18,r16
7208 4674 4427 clr r20
7209 4676 37FD sbrc r19,7
7210 4678 4095 com r20
7211 467a 542F mov r21,r20
7212 467c 0E94 0000 call __mulsi3
7213 4680 20E0 ldi r18,lo8(512)
7214 4682 32E0 ldi r19,hi8(512)
7215 4684 40E0 ldi r20,hlo8(512)
7216 4686 50E0 ldi r21,hhi8(512)
7217 4688 0E94 0000 call __divmodsi4
7218 468c B201 movw r22,r4
7219 468e 621B sub r22,r18
7220 4690 730B sbc r23,r19
7221 4692 8091 0000 lds r24,HeightTrimming.3345
7222 4696 9091 0000 lds r25,(HeightTrimming.3345)+1
7223 469a 892B or r24,r25
7224 469c 01F0 breq .+2
7225 469e 00C0 rjmp .L789
7226 46a0 1016 cp __zero_reg__,r16
7227 46a2 1106 cpc __zero_reg__,r17
7228 46a4 04F0 brlt .+2
7229 46a6 00C0 rjmp .L789
7230 46a8 C401 movw r24,r8
7231 46aa 97FE sbrs r9,7
7232 46ac 00C0 rjmp .L792
7233 46ae 8827 clr r24
7234 46b0 9927 clr r25
7235 46b2 8819 sub r24,r8
7236 46b4 9909 sbc r25,r9
7237 .L792:
7238 46b6 8D33 cpi r24,61
7239 46b8 9105 cpc r25,__zero_reg__
7240 46ba 00F4 brsh .L793
7241 46bc 8091 0000 lds r24,HoverGasMin.3348
7242 46c0 9091 0000 lds r25,(HoverGasMin.3348)+1
7243 46c4 8617 cp r24,r22
7244 46c6 9707 cpc r25,r23
7245 46c8 04F0 brlt .+2
7246 46ca 00C0 rjmp .L929
7247 46cc 00C0 rjmp .L801
7248 .L793:
7249 46ce 9C01 movw r18,r24
7250 46d0 2C53 subi r18,lo8(-(-60))
7251 46d2 3040 sbci r19,hi8(-(-60))
7252 46d4 A5E0 ldi r26,5
7253 46d6 3695 1: lsr r19
7254 46d8 2795 ror r18
7255 46da AA95 dec r26
7256 46dc 01F4 brne 1b
7257 46de 2031 cpi r18,16
7258 46e0 3105 cpc r19,__zero_reg__
7259 46e2 00F0 brlo .L798
7260 46e4 2FE0 ldi r18,lo8(15)
7261 46e6 30E0 ldi r19,hi8(15)
7262 .L798:
7263 46e8 4091 0000 lds r20,HoverGasMin.3348
7264 46ec 5091 0000 lds r21,(HoverGasMin.3348)+1
7265 46f0 1814 cp __zero_reg__,r8
7266 46f2 1904 cpc __zero_reg__,r9
7267 46f4 04F4 brge .L799
7268 46f6 80E1 ldi r24,lo8(16)
7269 46f8 90E0 ldi r25,hi8(16)
7270 46fa 821B sub r24,r18
7271 46fc 930B sbc r25,r19
7272 46fe 7C01 movw r14,r24
7273 4700 E49E mul r14,r20
7274 4702 C001 movw r24,r0
7275 4704 E59E mul r14,r21
7276 4706 900D add r25,r0
7277 4708 F49E mul r15,r20
7278 470a 900D add r25,r0
7279 470c 1124 clr r1
7280 470e F4E0 ldi r31,4
7281 4710 9695 1: lsr r25
7282 4712 8795 ror r24
7283 4714 FA95 dec r31
7284 4716 01F4 brne 1b
7285 4718 8617 cp r24,r22
7286 471a 9707 cpc r25,r23
7287 471c 00F4 brsh .L929
7288 .L801:
7289 471e 8091 0000 lds r24,HoverGasMax.3349
7290 4722 9091 0000 lds r25,(HoverGasMax.3349)+1
7291 4726 8617 cp r24,r22
7292 4728 9707 cpc r25,r23
7293 472a 04F4 brge .L789
7294 472c 00C0 rjmp .L929
7295 .L799:
7296 472e 8091 0000 lds r24,HoverGasMax.3349
7297 4732 9091 0000 lds r25,(HoverGasMax.3349)+1
7298 4736 4617 cp r20,r22
7299 4738 5707 cpc r21,r23
7300 473a 04F0 brlt .L804
7301 473c BA01 movw r22,r20
7302 473e 00C0 rjmp .L789
7303 .L804:
7304 4740 205F subi r18,lo8(-(16))
7305 4742 3F4F sbci r19,hi8(-(16))
7306 4744 AC01 movw r20,r24
7307 4746 249F mul r18,r20
7308 4748 C001 movw r24,r0
7309 474a 259F mul r18,r21
7310 474c 900D add r25,r0
7311 474e 349F mul r19,r20
7312 4750 900D add r25,r0
7313 4752 1124 clr r1
7314 4754 E4E0 ldi r30,4
7315 4756 9695 1: lsr r25
7316 4758 8795 ror r24
7317 475a EA95 dec r30
7318 475c 01F4 brne 1b
7319 475e 6817 cp r22,r24
7320 4760 7907 cpc r23,r25
7321 4762 00F0 brlo .L789
7322 .L929:
7323 4764 BC01 movw r22,r24
7324 .L789:
7325 4766 8827 clr r24
7326 4768 77FD sbrc r23,7
7327 476a 8095 com r24
7328 476c 982F mov r25,r24
7329 476e 5DE0 ldi r21,13
7330 4770 660F 1: lsl r22
7331 4772 771F rol r23
7332 4774 881F rol r24
7333 4776 991F rol r25
7334 4778 5A95 dec r21
7335 477a 01F4 brne 1b
7336 477c AA85 ldd r26,Y+10
7337 477e BB85 ldd r27,Y+11
7338 4780 9D01 movw r18,r26
7339 4782 4427 clr r20
7340 4784 37FD sbrc r19,7
7341 4786 4095 com r20
7342 4788 542F mov r21,r20
7343 478a 0E94 0000 call __divmodsi4
7344 478e 2093 0000 sts tmp_long2.3309,r18
7345 4792 3093 0000 sts (tmp_long2.3309)+1,r19
7346 4796 4093 0000 sts (tmp_long2.3309)+2,r20
7347 479a 5093 0000 sts (tmp_long2.3309)+3,r21
7348 479e 6091 0000 lds r22,FilterHCGas.3346
7349 47a2 7091 0000 lds r23,(FilterHCGas.3346)+1
7350 47a6 CB01 movw r24,r22
7351 47a8 880F lsl r24
7352 47aa 991F rol r25
7353 47ac 860F add r24,r22
7354 47ae 971F adc r25,r23
7355 47b0 820F add r24,r18
7356 47b2 931F adc r25,r19
7357 47b4 64E0 ldi r22,lo8(4)
7358 47b6 70E0 ldi r23,hi8(4)
7359 47b8 0E94 0000 call __divmodhi4
7360 47bc 7093 0000 sts (FilterHCGas.3346)+1,r23
7361 47c0 6093 0000 sts FilterHCGas.3346,r22
7362 47c4 8091 0000 lds r24,EE_Parameter+14
7363 47c8 90E0 ldi r25,lo8(0)
7364 47ca 880F lsl r24
7365 47cc 991F rol r25
7366 47ce 880F lsl r24
7367 47d0 991F rol r25
7368 47d2 8617 cp r24,r22
7369 47d4 9707 cpc r25,r23
7370 47d6 04F4 brge .L930
7371 47d8 8091 0000 lds r24,MAX_GAS
7372 47dc 90E0 ldi r25,lo8(0)
7373 47de 880F lsl r24
7374 47e0 991F rol r25
7375 47e2 880F lsl r24
7376 47e4 991F rol r25
7377 47e6 8055 subi r24,lo8(-(-80))
7378 47e8 9040 sbci r25,hi8(-(-80))
7379 47ea 6817 cp r22,r24
7380 47ec 7907 cpc r23,r25
7381 47ee 04F0 brlt .L809
7382 .L930:
7383 47f0 9093 0000 sts (FilterHCGas.3346)+1,r25
7384 47f4 8093 0000 sts FilterHCGas.3346,r24
7385 .L809:
7386 47f8 2091 0000 lds r18,FilterHCGas.3346
7387 47fc 3091 0000 lds r19,(FilterHCGas.3346)+1
7388 4800 2328 or r2,r3
7389 4802 01F0 breq .L811
7390 4804 2615 cp r18,r6
7391 4806 3705 cpc r19,r7
7392 4808 04F0 brlt .L813
7393 480a 7092 0000 sts (FilterHCGas.3346)+1,r7
7394 480e 6092 0000 sts FilterHCGas.3346,r6
7395 .L813:
7396 4812 6090 0000 lds r6,FilterHCGas.3346
7397 4816 7090 0000 lds r7,(FilterHCGas.3346)+1
7398 481a 00C0 rjmp .L758
7399 .L811:
7400 481c C301 movw r24,r6
7401 481e 801B sub r24,r16
7402 4820 910B sbc r25,r17
7403 4822 64E0 ldi r22,lo8(4)
7404 4824 70E0 ldi r23,hi8(4)
7405 4826 0E94 0000 call __divmodhi4
7406 482a 3B01 movw r6,r22
7407 482c 620E add r6,r18
7408 482e 731E adc r7,r19
7409 4830 00C0 rjmp .L758
7410 .L710:
7411 4832 8091 0000 lds r24,EE_Parameter+22
7412 4836 8823 tst r24
7413 4838 01F4 brne .L815
7414 483a 8091 0000 lds r24,HoverGas
7415 483e 9091 0000 lds r25,(HoverGas)+1
7416 4842 64E0 ldi r22,lo8(4)
7417 4844 70E0 ldi r23,hi8(4)
7418 4846 0E94 0000 call __divmodhi4
7419 484a 9B01 movw r18,r22
7420 484c 8091 0000 lds r24,UBat
7421 4850 9091 0000 lds r25,(UBat)+1
7422 4854 6091 0000 lds r22,BattLowVoltageWarning
7423 4858 70E0 ldi r23,lo8(0)
7424 485a FC01 movw r30,r24
7425 485c 2E9F mul r18,r30
7426 485e C001 movw r24,r0
7427 4860 2F9F mul r18,r31
7428 4862 900D add r25,r0
7429 4864 3E9F mul r19,r30
7430 4866 900D add r25,r0
7431 4868 1124 clr r1
7432 486a 0E94 0000 call __divmodhi4
7433 486e 7093 0000 sts (StickGasHover.3347)+1,r23
7434 4872 6093 0000 sts StickGasHover.3347,r22
7435 4876 00C0 rjmp .L817
7436 .L815:
7437 4878 90E0 ldi r25,lo8(0)
7438 487a 9093 0000 sts (StickGasHover.3347)+1,r25
7439 487e 8093 0000 sts StickGasHover.3347,r24
7440 .L817:
7441 4882 8091 0000 lds r24,StickGasHover.3347
7442 4886 9091 0000 lds r25,(StickGasHover.3347)+1
7443 488a 8734 cpi r24,71
7444 488c 9105 cpc r25,__zero_reg__
7445 488e 04F4 brge .L818
7446 4890 86E4 ldi r24,lo8(70)
7447 4892 90E0 ldi r25,hi8(70)
7448 4894 00C0 rjmp .L931
7449 .L818:
7450 4896 8639 cpi r24,150
7451 4898 9105 cpc r25,__zero_reg__
7452 489a 04F0 brlt .L820
7453 489c 86E9 ldi r24,lo8(150)
7454 489e 90E0 ldi r25,hi8(150)
7455 .L931:
7456 48a0 9093 0000 sts (StickGasHover.3347)+1,r25
7457 48a4 8093 0000 sts StickGasHover.3347,r24
7458 .L820:
7459 48a8 7092 0000 sts (FilterHCGas.3346)+1,r7
7460 48ac 6092 0000 sts FilterHCGas.3346,r6
7461 48b0 8091 0000 lds r24,FC_StatusFlags
7462 48b4 806C ori r24,lo8(-64)
7463 48b6 8093 0000 sts FC_StatusFlags,r24
7464 .L758:
7465 48ba 8091 0000 lds r24,FC_StatusFlags
7466 48be 81FF sbrs r24,1
7467 48c0 00C0 rjmp .L822
7468 48c2 8091 0000 lds r24,HoverGasFilter.3350
7469 48c6 9091 0000 lds r25,(HoverGasFilter.3350)+1
7470 48ca A091 0000 lds r26,(HoverGasFilter.3350)+2
7471 48ce B091 0000 lds r27,(HoverGasFilter.3350)+3
7472 48d2 0097 sbiw r24,0
7473 48d4 A105 cpc r26,__zero_reg__
7474 48d6 B105 cpc r27,__zero_reg__
7475 48d8 01F0 breq .L824
7476 48da 8091 0000 lds r24,StartTrigger
7477 48de 8130 cpi r24,lo8(1)
7478 48e0 01F4 brne .L826
7479 .L824:
7480 48e2 C301 movw r24,r6
7481 48e4 AA27 clr r26
7482 48e6 97FD sbrc r25,7
7483 48e8 A095 com r26
7484 48ea BA2F mov r27,r26
7485 48ec FEE0 ldi r31,14
7486 48ee 880F 1: lsl r24
7487 48f0 991F rol r25
7488 48f2 AA1F rol r26
7489 48f4 BB1F rol r27
7490 48f6 FA95 dec r31
7491 48f8 01F4 brne 1b
7492 48fa 8093 0000 sts HoverGasFilter.3350,r24
7493 48fe 9093 0000 sts (HoverGasFilter.3350)+1,r25
7494 4902 A093 0000 sts (HoverGasFilter.3350)+2,r26
7495 4906 B093 0000 sts (HoverGasFilter.3350)+3,r27
7496 .L826:
7497 490a 8091 0000 lds r24,StartTrigger
7498 490e 8130 cpi r24,lo8(1)
7499 4910 01F4 brne .L827
7500 4912 82E0 ldi r24,lo8(2)
7501 4914 8093 0000 sts StartTrigger,r24
7502 .L827:
7503 4918 B301 movw r22,r6
7504 491a 8827 clr r24
7505 491c 77FD sbrc r23,7
7506 491e 8095 com r24
7507 4920 982F mov r25,r24
7508 4922 EA84 ldd r14,Y+10
7509 4924 FB84 ldd r15,Y+11
7510 4926 9701 movw r18,r14
7511 4928 4427 clr r20
7512 492a 37FD sbrc r19,7
7513 492c 4095 com r20
7514 492e 542F mov r21,r20
7515 4930 0E94 0000 call __mulsi3
7516 4934 20E0 ldi r18,lo8(8192)
7517 4936 30E2 ldi r19,hi8(8192)
7518 4938 40E0 ldi r20,hlo8(8192)
7519 493a 50E0 ldi r21,hhi8(8192)
7520 493c 0E94 0000 call __divmodsi4
7521 4940 7901 movw r14,r18
7522 4942 8A01 movw r16,r20
7523 4944 2093 0000 sts tmp_long2.3309,r18
7524 4948 3093 0000 sts (tmp_long2.3309)+1,r19
7525 494c 4093 0000 sts (tmp_long2.3309)+2,r20
7526 4950 5093 0000 sts (tmp_long2.3309)+3,r21
7527 4954 6091 0000 lds r22,modell_fliegt
7528 4958 7091 0000 lds r23,(modell_fliegt)+1
7529 495c 2FE0 ldi r18,hi8(4000)
7530 495e 603A cpi r22,lo8(4000)
7531 4960 7207 cpc r23,r18
7532 4962 00F4 brsh .L829
7533 4964 8091 0000 lds r24,HoverGasFilter.3350
7534 4968 9091 0000 lds r25,(HoverGasFilter.3350)+1
7535 496c A091 0000 lds r26,(HoverGasFilter.3350)+2
7536 4970 B091 0000 lds r27,(HoverGasFilter.3350)+3
7537 4974 9C01 movw r18,r24
7538 4976 AD01 movw r20,r26
7539 4978 EAE0 ldi r30,10
7540 497a 5695 1: lsr r21
7541 497c 4795 ror r20
7542 497e 3795 ror r19
7543 4980 2795 ror r18
7544 4982 EA95 dec r30
7545 4984 01F4 brne 1b
7546 4986 821B sub r24,r18
7547 4988 930B sbc r25,r19
7548 498a A40B sbc r26,r20
7549 498c B50B sbc r27,r21
7550 498e A801 movw r20,r16
7551 4990 9701 movw r18,r14
7552 4992 F4E0 ldi r31,4
7553 4994 220F 1: lsl r18
7554 4996 331F rol r19
7555 4998 441F rol r20
7556 499a 551F rol r21
7557 499c FA95 dec r31
7558 499e 01F4 brne 1b
7559 49a0 280F add r18,r24
7560 49a2 391F adc r19,r25
7561 49a4 4A1F adc r20,r26
7562 49a6 5B1F adc r21,r27
7563 49a8 2093 0000 sts HoverGasFilter.3350,r18
7564 49ac 3093 0000 sts (HoverGasFilter.3350)+1,r19
7565 49b0 4093 0000 sts (HoverGasFilter.3350)+2,r20
7566 49b4 5093 0000 sts (HoverGasFilter.3350)+3,r21
7567 .L829:
7568 49b8 6054 subi r22,lo8(8000)
7569 49ba 7F41 sbci r23,hi8(8000)
7570 49bc 00F4 brsh .L831
7571 49be 8091 0000 lds r24,HoverGasFilter.3350
7572 49c2 9091 0000 lds r25,(HoverGasFilter.3350)+1
7573 49c6 A091 0000 lds r26,(HoverGasFilter.3350)+2
7574 49ca B091 0000 lds r27,(HoverGasFilter.3350)+3
7575 49ce 9C01 movw r18,r24
7576 49d0 AD01 movw r20,r26
7577 49d2 ECE0 ldi r30,12
7578 49d4 5695 1: lsr r21
7579 49d6 4795 ror r20
7580 49d8 3795 ror r19
7581 49da 2795 ror r18
7582 49dc EA95 dec r30
7583 49de 01F4 brne 1b
7584 49e0 821B sub r24,r18
7585 49e2 930B sbc r25,r19
7586 49e4 A40B sbc r26,r20
7587 49e6 B50B sbc r27,r21
7588 49e8 72E0 ldi r23,2
7589 49ea EE0C 1: lsl r14
7590 49ec FF1C rol r15
7591 49ee 001F rol r16
7592 49f0 111F rol r17
7593 49f2 7A95 dec r23
7594 49f4 01F4 brne 1b
7595 49f6 00C0 rjmp .L932
7596 .L831:
7597 49f8 8091 0000 lds r24,VarioMeter
7598 49fc 9091 0000 lds r25,(VarioMeter)+1
7599 4a00 97FF sbrs r25,7
7600 4a02 00C0 rjmp .L834
7601 4a04 9095 com r25
7602 4a06 8195 neg r24
7603 4a08 9F4F sbci r25,lo8(-1)
7604 .L834:
7605 4a0a 8436 cpi r24,100
7606 4a0c 9105 cpc r25,__zero_reg__
7607 4a0e 04F4 brge .L833
7608 4a10 8091 0000 lds r24,HoverGasFilter.3350
7609 4a14 9091 0000 lds r25,(HoverGasFilter.3350)+1
7610 4a18 A091 0000 lds r26,(HoverGasFilter.3350)+2
7611 4a1c B091 0000 lds r27,(HoverGasFilter.3350)+3
7612 4a20 9C01 movw r18,r24
7613 4a22 AD01 movw r20,r26
7614 4a24 6EE0 ldi r22,14
7615 4a26 5695 1: lsr r21
7616 4a28 4795 ror r20
7617 4a2a 3795 ror r19
7618 4a2c 2795 ror r18
7619 4a2e 6A95 dec r22
7620 4a30 01F4 brne 1b
7621 4a32 821B sub r24,r18
7622 4a34 930B sbc r25,r19
7623 4a36 A40B sbc r26,r20
7624 4a38 B50B sbc r27,r21
7625 .L932:
7626 4a3a 8E0D add r24,r14
7627 4a3c 9F1D adc r25,r15
7628 4a3e A01F adc r26,r16
7629 4a40 B11F adc r27,r17
7630 4a42 8093 0000 sts HoverGasFilter.3350,r24
7631 4a46 9093 0000 sts (HoverGasFilter.3350)+1,r25
7632 4a4a A093 0000 sts (HoverGasFilter.3350)+2,r26
7633 4a4e B093 0000 sts (HoverGasFilter.3350)+3,r27
7634 .L833:
7635 4a52 8091 0000 lds r24,HoverGasFilter.3350
7636 4a56 9091 0000 lds r25,(HoverGasFilter.3350)+1
7637 4a5a A091 0000 lds r26,(HoverGasFilter.3350)+2
7638 4a5e B091 0000 lds r27,(HoverGasFilter.3350)+3
7639 4a62 1EE0 ldi r17,14
7640 4a64 B695 1: lsr r27
7641 4a66 A795 ror r26
7642 4a68 9795 ror r25
7643 4a6a 8795 ror r24
7644 4a6c 1A95 dec r17
7645 4a6e 01F4 brne 1b
7646 4a70 9C01 movw r18,r24
7647 4a72 9093 0000 sts (HoverGas)+1,r25
7648 4a76 8093 0000 sts HoverGas,r24
7649 4a7a 6091 0000 lds r22,EE_Parameter+20
7650 4a7e 6623 tst r22
7651 4a80 01F0 breq .L836
7652 4a82 70E0 ldi r23,lo8(0)
7653 4a84 0E94 0000 call __divmodhi4
7654 4a88 C901 movw r24,r18
7655 4a8a 861B sub r24,r22
7656 4a8c 970B sbc r25,r23
7657 4a8e 9093 0000 sts (HoverGasMin.3348)+1,r25
7658 4a92 8093 0000 sts HoverGasMin.3348,r24
7659 4a96 260F add r18,r22
7660 4a98 371F adc r19,r23
7661 4a9a 3093 0000 sts (HoverGasMax.3349)+1,r19
7662 4a9e 2093 0000 sts HoverGasMax.3349,r18
7663 4aa2 00C0 rjmp .L838
7664 .L836:
7665 4aa4 1092 0000 sts (HoverGasMin.3348)+1,__zero_reg__
7666 4aa8 1092 0000 sts HoverGasMin.3348,__zero_reg__
7667 4aac 8FEF ldi r24,lo8(1023)
7668 4aae 93E0 ldi r25,hi8(1023)
7669 4ab0 9093 0000 sts (HoverGasMax.3349)+1,r25
7670 4ab4 8093 0000 sts HoverGasMax.3349,r24
7671 4ab8 00C0 rjmp .L838
7672 .L822:
7673 4aba 1092 0000 sts StartTrigger,__zero_reg__
7674 4abe 1092 0000 sts HoverGasFilter.3350,__zero_reg__
7675 4ac2 1092 0000 sts (HoverGasFilter.3350)+1,__zero_reg__
7676 4ac6 1092 0000 sts (HoverGasFilter.3350)+2,__zero_reg__
7677 4aca 1092 0000 sts (HoverGasFilter.3350)+3,__zero_reg__
7678 4ace 1092 0000 sts (HoverGas)+1,__zero_reg__
7679 4ad2 1092 0000 sts HoverGas,__zero_reg__
7680 4ad6 00C0 rjmp .L838
7681 .L687:
7682 4ad8 8091 0000 lds r24,FC_StatusFlags
7683 4adc 806C ori r24,lo8(-64)
7684 4ade 8093 0000 sts FC_StatusFlags,r24
7685 .L838:
7686 4ae2 8091 0000 lds r24,MIN_GAS
7687 4ae6 482F mov r20,r24
7688 4ae8 50E0 ldi r21,lo8(0)
7689 4aea 440F lsl r20
7690 4aec 551F rol r21
7691 4aee 440F lsl r20
7692 4af0 551F rol r21
7693 4af2 5D87 std Y+13,r21
7694 4af4 4C87 std Y+12,r20
7695 4af6 9A01 movw r18,r20
7696 4af8 285D subi r18,lo8(-(40))
7697 4afa 3F4F sbci r19,hi8(-(40))
7698 4afc B301 movw r22,r6
7699 4afe 6216 cp r6,r18
7700 4b00 7306 cpc r7,r19
7701 4b02 04F4 brge .L839
7702 4b04 B901 movw r22,r18
7703 .L839:
7704 4b06 8091 0000 lds r24,MAX_GAS
7705 4b0a 682E mov r6,r24
7706 4b0c 7724 clr r7
7707 4b0e 660C lsl r6
7708 4b10 771C rol r7
7709 4b12 660C lsl r6
7710 4b14 771C rol r7
7711 4b16 C301 movw r24,r6
7712 4b18 8055 subi r24,lo8(-(-80))
7713 4b1a 9040 sbci r25,hi8(-(-80))
7714 4b1c 5B01 movw r10,r22
7715 4b1e 8617 cp r24,r22
7716 4b20 9707 cpc r25,r23
7717 4b22 04F4 brge .L840
7718 4b24 5C01 movw r10,r24
7719 .L840:
7720 4b26 8091 0000 lds r24,MissingMotor
7721 4b2a 8823 tst r24
7722 4b2c 01F4 brne .L841
7723 4b2e 8091 0000 lds r24,Capacity+6
7724 4b32 8F3F cpi r24,lo8(-1)
7725 4b34 01F0 breq .L843
7726 .L841:
7727 4b36 8091 0000 lds r24,modell_fliegt
7728 4b3a 9091 0000 lds r25,(modell_fliegt)+1
7729 4b3e 0297 sbiw r24,2
7730 4b40 C097 sbiw r24,48
7731 4b42 00F4 brsh .L843
7732 4b44 1A14 cp __zero_reg__,r10
7733 4b46 1B04 cpc __zero_reg__,r11
7734 4b48 04F4 brge .L843
7735 4b4a 81E0 ldi r24,lo8(1)
7736 4b4c 90E0 ldi r25,hi8(1)
7737 4b4e 9093 0000 sts (modell_fliegt)+1,r25
7738 4b52 8093 0000 sts modell_fliegt,r24
7739 4b56 5901 movw r10,r18
7740 .L843:
7741 4b58 B092 0000 sts (DebugOut+16)+1,r11
7742 4b5c A092 0000 sts DebugOut+16,r10
7743 4b60 8091 0000 lds r24,sollGier.3307
7744 4b64 9091 0000 lds r25,(sollGier.3307)+1
7745 4b68 A091 0000 lds r26,(sollGier.3307)+2
7746 4b6c B091 0000 lds r27,(sollGier.3307)+3
7747 4b70 62E0 ldi r22,2
7748 4b72 880F 1: lsl r24
7749 4b74 991F rol r25
7750 4b76 AA1F rol r26
7751 4b78 BB1F rol r27
7752 4b7a 6A95 dec r22
7753 4b7c 01F4 brne 1b
7754 4b7e 2091 0000 lds r18,MesswertGier
7755 4b82 3091 0000 lds r19,(MesswertGier)+1
7756 4b86 281B sub r18,r24
7757 4b88 390B sbc r19,r25
7758 4b8a 51EA ldi r21,lo8(161)
7759 4b8c A516 cp r10,r21
7760 4b8e B104 cpc r11,__zero_reg__
7761 4b90 04F0 brlt .L846
7762 4b92 F501 movw r30,r10
7763 4b94 F595 asr r31
7764 4b96 E795 ror r30
7765 4b98 2E17 cp r18,r30
7766 4b9a 3F07 cpc r19,r31
7767 4b9c 04F4 brge .L848
7768 4b9e F901 movw r30,r18
7769 .L848:
7770 4ba0 C501 movw r24,r10
7771 4ba2 62E0 ldi r22,lo8(2)
7772 4ba4 70E0 ldi r23,hi8(2)
7773 4ba6 0E94 0000 call __divmodhi4
7774 4baa 7095 com r23
7775 4bac 6195 neg r22
7776 4bae 7F4F sbci r23,lo8(-1)
7777 4bb0 CF01 movw r24,r30
7778 4bb2 E617 cp r30,r22
7779 4bb4 F707 cpc r31,r23
7780 4bb6 04F4 brge .L850
7781 4bb8 CB01 movw r24,r22
7782 4bba 00C0 rjmp .L850
7783 .L846:
7784 4bbc C901 movw r24,r18
7785 4bbe 205B subi r18,lo8(-80)
7786 4bc0 3F4F sbci r19,hi8(-80)
7787 4bc2 04F4 brge .L851
7788 4bc4 80EB ldi r24,lo8(-80)
7789 4bc6 9FEF ldi r25,hi8(-80)
7790 .L851:
7791 4bc8 8135 cpi r24,81
7792 4bca 9105 cpc r25,__zero_reg__
7793 4bcc 04F0 brlt .L850
7794 4bce 80E5 ldi r24,lo8(80)
7795 4bd0 90E0 ldi r25,hi8(80)
7796 .L850:
7797 4bd2 9301 movw r18,r6
7798 4bd4 2A19 sub r18,r10
7799 4bd6 3B09 sbc r19,r11
7800 4bd8 2817 cp r18,r24
7801 4bda 3907 cpc r19,r25
7802 4bdc 04F4 brge .L853
7803 4bde C901 movw r24,r18
7804 .L853:
7805 4be0 9501 movw r18,r10
7806 4be2 2619 sub r18,r6
7807 4be4 3709 sbc r19,r7
7808 4be6 4C01 movw r8,r24
7809 4be8 8217 cp r24,r18
7810 4bea 9307 cpc r25,r19
7811 4bec 04F4 brge .L854
7812 4bee 4901 movw r8,r18
7813 .L854:
7814 4bf0 8091 0000 lds r24,StickNick
7815 4bf4 9091 0000 lds r25,(StickNick)+1
7816 4bf8 6091 0000 lds r22,MesswertNick
7817 4bfc 7091 0000 lds r23,(MesswertNick)+1
7818 4c00 681B sub r22,r24
7819 4c02 790B sbc r23,r25
7820 4c04 7093 0000 sts (DiffNick)+1,r23
7821 4c08 6093 0000 sts DiffNick,r22
7822 4c0c C090 0000 lds r12,IntegralFaktor
7823 4c10 2091 0000 lds r18,SummeNick
7824 4c14 3091 0000 lds r19,(SummeNick)+1
7825 4c18 4091 0000 lds r20,(SummeNick)+2
7826 4c1c 5091 0000 lds r21,(SummeNick)+3
7827 4c20 CC20 tst r12
7828 4c22 01F0 breq .L855
7829 4c24 AA89 ldd r26,Y+18
7830 4c26 BB89 ldd r27,Y+19
7831 4c28 A81B sub r26,r24
7832 4c2a B90B sbc r27,r25
7833 4c2c FD01 movw r30,r26
7834 4c2e CF01 movw r24,r30
7835 4c30 AA27 clr r26
7836 4c32 97FD sbrc r25,7
7837 4c34 A095 com r26
7838 4c36 BA2F mov r27,r26
7839 4c38 00C0 rjmp .L933
7840 .L855:
7841 4c3a CB01 movw r24,r22
7842 4c3c AA27 clr r26
7843 4c3e 97FD sbrc r25,7
7844 4c40 A095 com r26
7845 4c42 BA2F mov r27,r26
7846 .L933:
7847 4c44 280F add r18,r24
7848 4c46 391F adc r19,r25
7849 4c48 4A1F adc r20,r26
7850 4c4a 5B1F adc r21,r27
7851 4c4c 2093 0000 sts SummeNick,r18
7852 4c50 3093 0000 sts (SummeNick)+1,r19
7853 4c54 4093 0000 sts (SummeNick)+2,r20
7854 4c58 5093 0000 sts (SummeNick)+3,r21
7855 4c5c 8091 0000 lds r24,SummeNick
7856 4c60 9091 0000 lds r25,(SummeNick)+1
7857 4c64 A091 0000 lds r26,(SummeNick)+2
7858 4c68 B091 0000 lds r27,(SummeNick)+3
7859 4c6c 8150 subi r24,lo8(64001)
7860 4c6e 9A4F sbci r25,hi8(64001)
7861 4c70 A040 sbci r26,hlo8(64001)
7862 4c72 B040 sbci r27,hhi8(64001)
7863 4c74 04F0 brlt .L858
7864 4c76 80E0 ldi r24,lo8(64000)
7865 4c78 9AEF ldi r25,hi8(64000)
7866 4c7a A0E0 ldi r26,hlo8(64000)
7867 4c7c B0E0 ldi r27,hhi8(64000)
7868 4c7e 8093 0000 sts SummeNick,r24
7869 4c82 9093 0000 sts (SummeNick)+1,r25
7870 4c86 A093 0000 sts (SummeNick)+2,r26
7871 4c8a B093 0000 sts (SummeNick)+3,r27
7872 .L858:
7873 4c8e 8091 0000 lds r24,SummeNick
7874 4c92 9091 0000 lds r25,(SummeNick)+1
7875 4c96 A091 0000 lds r26,(SummeNick)+2
7876 4c9a B091 0000 lds r27,(SummeNick)+3
7877 4c9e 8050 subi r24,lo8(-64000)
7878 4ca0 9640 sbci r25,hi8(-64000)
7879 4ca2 AF4F sbci r26,hlo8(-64000)
7880 4ca4 BF4F sbci r27,hhi8(-64000)
7881 4ca6 04F4 brge .L860
7882 4ca8 80E0 ldi r24,lo8(-64000)
7883 4caa 96E0 ldi r25,hi8(-64000)
7884 4cac AFEF ldi r26,hlo8(-64000)
7885 4cae BFEF ldi r27,hhi8(-64000)
7886 4cb0 8093 0000 sts SummeNick,r24
7887 4cb4 9093 0000 sts (SummeNick)+1,r25
7888 4cb8 A093 0000 sts (SummeNick)+2,r26
7889 4cbc B093 0000 sts (SummeNick)+3,r27
7890 .L860:
7891 4cc0 D090 0000 lds r13,EE_Parameter+35
7892 4cc4 18E0 ldi r17,lo8(8)
7893 4cc6 1D15 cp r17,r13
7894 4cc8 00F0 brlo .L862
7895 4cca 8D2D mov r24,r13
7896 4ccc 90E0 ldi r25,lo8(0)
7897 4cce 9C01 movw r18,r24
7898 4cd0 269F mul r18,r22
7899 4cd2 C001 movw r24,r0
7900 4cd4 279F mul r18,r23
7901 4cd6 900D add r25,r0
7902 4cd8 369F mul r19,r22
7903 4cda 900D add r25,r0
7904 4cdc 1124 clr r1
7905 4cde 68E0 ldi r22,lo8(8)
7906 4ce0 70E0 ldi r23,hi8(8)
7907 4ce2 00C0 rjmp .L934
7908 .L862:
7909 4ce4 8D2D mov r24,r13
7910 4ce6 8695 lsr r24
7911 4ce8 90E0 ldi r25,lo8(0)
7912 4cea AC01 movw r20,r24
7913 4cec 469F mul r20,r22
7914 4cee C001 movw r24,r0
7915 4cf0 479F mul r20,r23
7916 4cf2 900D add r25,r0
7917 4cf4 569F mul r21,r22
7918 4cf6 900D add r25,r0
7919 4cf8 1124 clr r1
7920 4cfa 64E0 ldi r22,lo8(4)
7921 4cfc 70E0 ldi r23,hi8(4)
7922 .L934:
7923 4cfe 0E94 0000 call __divmodhi4
7924 4d02 8B01 movw r16,r22
7925 4d04 8091 0000 lds r24,Ki
7926 4d08 9091 0000 lds r25,(Ki)+1
7927 4d0c 1C01 movw r2,r24
7928 4d0e 4424 clr r4
7929 4d10 37FC sbrc r3,7
7930 4d12 4094 com r4
7931 4d14 542C mov r5,r4
7932 4d16 6091 0000 lds r22,SummeNick
7933 4d1a 7091 0000 lds r23,(SummeNick)+1
7934 4d1e 8091 0000 lds r24,(SummeNick)+2
7935 4d22 9091 0000 lds r25,(SummeNick)+3
7936 4d26 A201 movw r20,r4
7937 4d28 9101 movw r18,r2
7938 4d2a 0E94 0000 call __divmodsi4
7939 4d2e 020F add r16,r18
7940 4d30 131F adc r17,r19
7941 4d32 C401 movw r24,r8
7942 4d34 97FE sbrs r9,7
7943 4d36 00C0 rjmp .L865
7944 4d38 8827 clr r24
7945 4d3a 9927 clr r25
7946 4d3c 8819 sub r24,r8
7947 4d3e 9909 sbc r25,r9
7948 .L865:
7949 4d40 62E0 ldi r22,lo8(2)
7950 4d42 70E0 ldi r23,hi8(2)
7951 4d44 0E94 0000 call __divmodhi4
7952 4d48 6A0D add r22,r10
7953 4d4a 7B1D adc r23,r11
7954 4d4c 8827 clr r24
7955 4d4e 77FD sbrc r23,7
7956 4d50 8095 com r24
7957 4d52 982F mov r25,r24
7958 4d54 2091 0000 lds r18,Parameter_DynamicStability
7959 4d58 30E0 ldi r19,lo8(0)
7960 4d5a 40E0 ldi r20,lo8(0)
7961 4d5c 50E0 ldi r21,hi8(0)
7962 4d5e 0E94 0000 call __mulsi3
7963 4d62 20E4 ldi r18,lo8(64)
7964 4d64 30E0 ldi r19,hi8(64)
7965 4d66 40E0 ldi r20,hlo8(64)
7966 4d68 50E0 ldi r21,hhi8(64)
7967 4d6a 0E94 0000 call __divmodsi4
7968 4d6e 7901 movw r14,r18
7969 4d70 B801 movw r22,r16
7970 4d72 2017 cp r18,r16
7971 4d74 3107 cpc r19,r17
7972 4d76 04F4 brge .L866
7973 4d78 B901 movw r22,r18
7974 .L866:
7975 4d7a 0027 clr r16
7976 4d7c 1127 clr r17
7977 4d7e 0E19 sub r16,r14
7978 4d80 1F09 sbc r17,r15
7979 4d82 7F87 std Y+15,r23
7980 4d84 6E87 std Y+14,r22
7981 4d86 6017 cp r22,r16
7982 4d88 7107 cpc r23,r17
7983 4d8a 04F4 brge .L867
7984 4d8c 1F87 std Y+15,r17
7985 4d8e 0E87 std Y+14,r16
7986 .L867:
7987 4d90 8091 0000 lds r24,StickRoll
7988 4d94 9091 0000 lds r25,(StickRoll)+1
7989 4d98 6091 0000 lds r22,MesswertRoll
7990 4d9c 7091 0000 lds r23,(MesswertRoll)+1
7991 4da0 681B sub r22,r24
7992 4da2 790B sbc r23,r25
7993 4da4 7093 0000 sts (DiffRoll)+1,r23
7994 4da8 6093 0000 sts DiffRoll,r22
7995 4dac 2091 0000 lds r18,SummeRoll
7996 4db0 3091 0000 lds r19,(SummeRoll)+1
7997 4db4 4091 0000 lds r20,(SummeRoll)+2
7998 4db8 5091 0000 lds r21,(SummeRoll)+3
7999 4dbc CC20 tst r12
8000 4dbe 01F0 breq .L868
8001 4dc0 A889 ldd r26,Y+16
8002 4dc2 B989 ldd r27,Y+17
8003 4dc4 A81B sub r26,r24
8004 4dc6 B90B sbc r27,r25
8005 4dc8 FD01 movw r30,r26
8006 4dca CF01 movw r24,r30
8007 4dcc AA27 clr r26
8008 4dce 97FD sbrc r25,7
8009 4dd0 A095 com r26
8010 4dd2 BA2F mov r27,r26
8011 4dd4 00C0 rjmp .L935
8012 .L868:
8013 4dd6 CB01 movw r24,r22
8014 4dd8 AA27 clr r26
8015 4dda 97FD sbrc r25,7
8016 4ddc A095 com r26
8017 4dde BA2F mov r27,r26
8018 .L935:
8019 4de0 280F add r18,r24
8020 4de2 391F adc r19,r25
8021 4de4 4A1F adc r20,r26
8022 4de6 5B1F adc r21,r27
8023 4de8 2093 0000 sts SummeRoll,r18
8024 4dec 3093 0000 sts (SummeRoll)+1,r19
8025 4df0 4093 0000 sts (SummeRoll)+2,r20
8026 4df4 5093 0000 sts (SummeRoll)+3,r21
8027 4df8 8091 0000 lds r24,SummeRoll
8028 4dfc 9091 0000 lds r25,(SummeRoll)+1
8029 4e00 A091 0000 lds r26,(SummeRoll)+2
8030 4e04 B091 0000 lds r27,(SummeRoll)+3
8031 4e08 8150 subi r24,lo8(64001)
8032 4e0a 9A4F sbci r25,hi8(64001)
8033 4e0c A040 sbci r26,hlo8(64001)
8034 4e0e B040 sbci r27,hhi8(64001)
8035 4e10 04F0 brlt .L871
8036 4e12 80E0 ldi r24,lo8(64000)
8037 4e14 9AEF ldi r25,hi8(64000)
8038 4e16 A0E0 ldi r26,hlo8(64000)
8039 4e18 B0E0 ldi r27,hhi8(64000)
8040 4e1a 8093 0000 sts SummeRoll,r24
8041 4e1e 9093 0000 sts (SummeRoll)+1,r25
8042 4e22 A093 0000 sts (SummeRoll)+2,r26
8043 4e26 B093 0000 sts (SummeRoll)+3,r27
8044 .L871:
8045 4e2a 8091 0000 lds r24,SummeRoll
8046 4e2e 9091 0000 lds r25,(SummeRoll)+1
8047 4e32 A091 0000 lds r26,(SummeRoll)+2
8048 4e36 B091 0000 lds r27,(SummeRoll)+3
8049 4e3a 8050 subi r24,lo8(-64000)
8050 4e3c 9640 sbci r25,hi8(-64000)
8051 4e3e AF4F sbci r26,hlo8(-64000)
8052 4e40 BF4F sbci r27,hhi8(-64000)
8053 4e42 04F4 brge .L873
8054 4e44 80E0 ldi r24,lo8(-64000)
8055 4e46 96E0 ldi r25,hi8(-64000)
8056 4e48 AFEF ldi r26,hlo8(-64000)
8057 4e4a BFEF ldi r27,hhi8(-64000)
8058 4e4c 8093 0000 sts SummeRoll,r24
8059 4e50 9093 0000 sts (SummeRoll)+1,r25
8060 4e54 A093 0000 sts (SummeRoll)+2,r26
8061 4e58 B093 0000 sts (SummeRoll)+3,r27
8062 .L873:
8063 4e5c 38E0 ldi r19,lo8(8)
8064 4e5e 3D15 cp r19,r13
8065 4e60 00F0 brlo .L875
8066 4e62 8D2D mov r24,r13
8067 4e64 90E0 ldi r25,lo8(0)
8068 4e66 AC01 movw r20,r24
8069 4e68 469F mul r20,r22
8070 4e6a C001 movw r24,r0
8071 4e6c 479F mul r20,r23
8072 4e6e 900D add r25,r0
8073 4e70 569F mul r21,r22
8074 4e72 900D add r25,r0
8075 4e74 1124 clr r1
8076 4e76 68E0 ldi r22,lo8(8)
8077 4e78 70E0 ldi r23,hi8(8)
8078 4e7a 00C0 rjmp .L936
8079 .L875:
8080 4e7c D694 lsr r13
8081 4e7e 8D2D mov r24,r13
8082 4e80 90E0 ldi r25,lo8(0)
8083 4e82 DC01 movw r26,r24
8084 4e84 A69F mul r26,r22
8085 4e86 C001 movw r24,r0
8086 4e88 A79F mul r26,r23
8087 4e8a 900D add r25,r0
8088 4e8c B69F mul r27,r22
8089 4e8e 900D add r25,r0
8090 4e90 1124 clr r1
8091 4e92 64E0 ldi r22,lo8(4)
8092 4e94 70E0 ldi r23,hi8(4)
8093 .L936:
8094 4e96 0E94 0000 call __divmodhi4
8095 4e9a 6B01 movw r12,r22
8096 4e9c 6091 0000 lds r22,SummeRoll
8097 4ea0 7091 0000 lds r23,(SummeRoll)+1
8098 4ea4 8091 0000 lds r24,(SummeRoll)+2
8099 4ea8 9091 0000 lds r25,(SummeRoll)+3
8100 4eac A201 movw r20,r4
8101 4eae 9101 movw r18,r2
8102 4eb0 0E94 0000 call __divmodsi4
8103 4eb4 B601 movw r22,r12
8104 4eb6 620F add r22,r18
8105 4eb8 731F adc r23,r19
8106 4eba E616 cp r14,r22
8107 4ebc F706 cpc r15,r23
8108 4ebe 04F4 brge .L878
8109 4ec0 B701 movw r22,r14
8110 .L878:
8111 4ec2 7B01 movw r14,r22
8112 4ec4 6017 cp r22,r16
8113 4ec6 7107 cpc r23,r17
8114 4ec8 04F4 brge .L879
8115 4eca 7801 movw r14,r16
8116 .L879:
8117 4ecc 00E0 ldi r16,lo8(Mixer+13)
8118 4ece 10E0 ldi r17,hi8(Mixer+13)
8119 4ed0 40E0 ldi r20,lo8(Motor+1)
8120 4ed2 C42E mov r12,r20
8121 4ed4 40E0 ldi r20,hi8(Motor+1)
8122 4ed6 D42E mov r13,r20
8123 4ed8 30E0 ldi r19,lo8(tmp_motorwert)
8124 4eda 432E mov r4,r19
8125 4edc 30E0 ldi r19,hi8(tmp_motorwert)
8126 4ede 532E mov r5,r19
8127 4ee0 9401 movw r18,r8
8128 4ee2 4427 clr r20
8129 4ee4 37FD sbrc r19,7
8130 4ee6 4095 com r20
8131 4ee8 542F mov r21,r20
8132 4eea 2BA3 std Y+35,r18
8133 4eec 3CA3 std Y+36,r19
8134 4eee 4DA3 std Y+37,r20
8135 4ef0 5EA3 std Y+38,r21
8136 4ef2 A701 movw r20,r14
8137 4ef4 6627 clr r22
8138 4ef6 57FD sbrc r21,7
8139 4ef8 6095 com r22
8140 4efa 762F mov r23,r22
8141 4efc 4FA3 std Y+39,r20
8142 4efe 58A7 std Y+40,r21
8143 4f00 69A7 std Y+41,r22
8144 4f02 7AA7 std Y+42,r23
8145 4f04 6E85 ldd r22,Y+14
8146 4f06 7F85 ldd r23,Y+15
8147 4f08 8827 clr r24
8148 4f0a 77FD sbrc r23,7
8149 4f0c 8095 com r24
8150 4f0e 982F mov r25,r24
8151 4f10 6BA7 std Y+43,r22
8152 4f12 7CA7 std Y+44,r23
8153 4f14 8DA7 std Y+45,r24
8154 4f16 9EA7 std Y+46,r25
8155 4f18 C501 movw r24,r10
8156 4f1a AA27 clr r26
8157 4f1c 97FD sbrc r25,7
8158 4f1e A095 com r26
8159 4f20 BA2F mov r27,r26
8160 4f22 8FA7 std Y+47,r24
8161 4f24 98AB std Y+48,r25
8162 4f26 A9AB std Y+49,r26
8163 4f28 BAAB std Y+50,r27
8164 .L880:
8165 4f2a D801 movw r26,r16
8166 4f2c 2C91 ld r18,X
8167 4f2e 1216 cp __zero_reg__,r18
8168 4f30 04F0 brlt .+2
8169 4f32 00C0 rjmp .L881
8170 4f34 2034 cpi r18,lo8(64)
8171 4f36 01F4 brne .L883
8172 4f38 1501 movw r2,r10
8173 4f3a 00C0 rjmp .L885
8174 .L883:
8175 4f3c 3327 clr r19
8176 4f3e 27FD sbrc r18,7
8177 4f40 3095 com r19
8178 4f42 432F mov r20,r19
8179 4f44 532F mov r21,r19
8180 4f46 6FA5 ldd r22,Y+47
8181 4f48 78A9 ldd r23,Y+48
8182 4f4a 89A9 ldd r24,Y+49
8183 4f4c 9AA9 ldd r25,Y+50
8184 4f4e 0E94 0000 call __mulsi3
8185 4f52 20E4 ldi r18,lo8(64)
8186 4f54 30E0 ldi r19,hi8(64)
8187 4f56 40E0 ldi r20,hlo8(64)
8188 4f58 50E0 ldi r21,hhi8(64)
8189 4f5a 0E94 0000 call __divmodsi4
8190 4f5e 1901 movw r2,r18
8191 .L885:
8192 4f60 F801 movw r30,r16
8193 4f62 2181 ldd r18,Z+1
8194 4f64 2034 cpi r18,lo8(64)
8195 4f66 01F4 brne .L886
8196 4f68 2E85 ldd r18,Y+14
8197 4f6a 3F85 ldd r19,Y+15
8198 4f6c 00C0 rjmp .L937
8199 .L886:
8200 4f6e 203C cpi r18,lo8(-64)
8201 4f70 01F4 brne .L889
8202 4f72 4E85 ldd r20,Y+14
8203 4f74 5F85 ldd r21,Y+15
8204 4f76 241A sub r2,r20
8205 4f78 350A sbc r3,r21
8206 4f7a 00C0 rjmp .L888
8207 .L889:
8208 4f7c 3327 clr r19
8209 4f7e 27FD sbrc r18,7
8210 4f80 3095 com r19
8211 4f82 432F mov r20,r19
8212 4f84 532F mov r21,r19
8213 4f86 6BA5 ldd r22,Y+43
8214 4f88 7CA5 ldd r23,Y+44
8215 4f8a 8DA5 ldd r24,Y+45
8216 4f8c 9EA5 ldd r25,Y+46
8217 4f8e 0E94 0000 call __mulsi3
8218 4f92 20E4 ldi r18,lo8(64)
8219 4f94 30E0 ldi r19,hi8(64)
8220 4f96 40E0 ldi r20,hlo8(64)
8221 4f98 50E0 ldi r21,hhi8(64)
8222 4f9a 0E94 0000 call __divmodsi4
8223 .L937:
8224 4f9e 220E add r2,r18
8225 4fa0 331E adc r3,r19
8226 .L888:
8227 4fa2 F801 movw r30,r16
8228 4fa4 2281 ldd r18,Z+2
8229 4fa6 2034 cpi r18,lo8(64)
8230 4fa8 01F4 brne .L891
8231 4faa 2E0C add r2,r14
8232 4fac 3F1C adc r3,r15
8233 4fae 00C0 rjmp .L893
8234 .L891:
8235 4fb0 203C cpi r18,lo8(-64)
8236 4fb2 01F4 brne .L894
8237 4fb4 2E18 sub r2,r14
8238 4fb6 3F08 sbc r3,r15
8239 4fb8 00C0 rjmp .L893
8240 .L894:
8241 4fba 3327 clr r19
8242 4fbc 27FD sbrc r18,7
8243 4fbe 3095 com r19
8244 4fc0 432F mov r20,r19
8245 4fc2 532F mov r21,r19
8246 4fc4 6FA1 ldd r22,Y+39
8247 4fc6 78A5 ldd r23,Y+40
8248 4fc8 89A5 ldd r24,Y+41
8249 4fca 9AA5 ldd r25,Y+42
8250 4fcc 0E94 0000 call __mulsi3
8251 4fd0 20E4 ldi r18,lo8(64)
8252 4fd2 30E0 ldi r19,hi8(64)
8253 4fd4 40E0 ldi r20,hlo8(64)
8254 4fd6 50E0 ldi r21,hhi8(64)
8255 4fd8 0E94 0000 call __divmodsi4
8256 4fdc 220E add r2,r18
8257 4fde 331E adc r3,r19
8258 .L893:
8259 4fe0 F801 movw r30,r16
8260 4fe2 2381 ldd r18,Z+3
8261 4fe4 2034 cpi r18,lo8(64)
8262 4fe6 01F4 brne .L896
8263 4fe8 9101 movw r18,r2
8264 4fea 280D add r18,r8
8265 4fec 391D adc r19,r9
8266 4fee 00C0 rjmp .L898
8267 .L896:
8268 4ff0 203C cpi r18,lo8(-64)
8269 4ff2 01F4 brne .L899
8270 4ff4 9101 movw r18,r2
8271 4ff6 2819 sub r18,r8
8272 4ff8 3909 sbc r19,r9
8273 4ffa 00C0 rjmp .L898
8274 .L899:
8275 4ffc 3327 clr r19
8276 4ffe 27FD sbrc r18,7
8277 5000 3095 com r19
8278 5002 432F mov r20,r19
8279 5004 532F mov r21,r19
8280 5006 6BA1 ldd r22,Y+35
8281 5008 7CA1 ldd r23,Y+36
8282 500a 8DA1 ldd r24,Y+37
8283 500c 9EA1 ldd r25,Y+38
8284 500e 0E94 0000 call __mulsi3
8285 5012 20E4 ldi r18,lo8(64)
8286 5014 30E0 ldi r19,hi8(64)
8287 5016 40E0 ldi r20,hlo8(64)
8288 5018 50E0 ldi r21,hhi8(64)
8289 501a 0E94 0000 call __divmodsi4
8290 501e 220D add r18,r2
8291 5020 331D adc r19,r3
8292 .L898:
8293 5022 D201 movw r26,r4
8294 5024 ED91 ld r30,X+
8295 5026 FC91 ld r31,X
8296 5028 E217 cp r30,r18
8297 502a F307 cpc r31,r19
8298 502c 04F4 brge .L901
8299 502e C901 movw r24,r18
8300 5030 8E0F add r24,r30
8301 5032 9F1F adc r25,r31
8302 5034 62E0 ldi r22,lo8(2)
8303 5036 70E0 ldi r23,hi8(2)
8304 5038 0E94 0000 call __divmodhi4
8305 503c 00C0 rjmp .L903
8306 .L901:
8307 503e B901 movw r22,r18
8308 5040 660F lsl r22
8309 5042 771F rol r23
8310 5044 6E1B sub r22,r30
8311 5046 7F0B sbc r23,r31
8312 .L903:
8313 5048 EC85 ldd r30,Y+12
8314 504a FD85 ldd r31,Y+13
8315 504c E617 cp r30,r22
8316 504e F707 cpc r31,r23
8317 5050 04F0 brlt .L904
8318 5052 9F01 movw r18,r30
8319 5054 00C0 rjmp .L906
8320 .L904:
8321 5056 9B01 movw r18,r22
8322 5058 6616 cp r6,r22
8323 505a 7706 cpc r7,r23
8324 505c 04F4 brge .L906
8325 505e 9301 movw r18,r6
8326 .L906:
8327 5060 C901 movw r24,r18
8328 5062 64E0 ldi r22,lo8(4)
8329 5064 70E0 ldi r23,hi8(4)
8330 5066 0E94 0000 call __divmodhi4
8331 506a D601 movw r26,r12
8332 506c 6C93 st X,r22
8333 506e C901 movw r24,r18
8334 5070 64E0 ldi r22,lo8(4)
8335 5072 70E0 ldi r23,hi8(4)
8336 5074 0E94 0000 call __divmodhi4
8337 5078 880F lsl r24
8338 507a F601 movw r30,r12
8339 507c 8183 std Z+1,r24
8340 507e D201 movw r26,r4
8341 5080 2D93 st X+,r18
8342 5082 3C93 st X,r19
8343 5084 00C0 rjmp .L908
8344 .L881:
8345 5086 F601 movw r30,r12
8346 5088 1082 st Z,__zero_reg__
8347 508a 1182 std Z+1,__zero_reg__
8348 .L908:
8349 508c 0C5F subi r16,lo8(-(4))
8350 508e 1F4F sbci r17,hi8(-(4))
8351 5090 28E0 ldi r18,lo8(8)
8352 5092 30E0 ldi r19,hi8(8)
8353 5094 C20E add r12,r18
8354 5096 D31E adc r13,r19
8355 5098 42E0 ldi r20,lo8(2)
8356 509a 50E0 ldi r21,hi8(2)
8357 509c 440E add r4,r20
8358 509e 551E adc r5,r21
8359 50a0 50E0 ldi r21,hi8(Mixer+61)
8360 50a2 0030 cpi r16,lo8(Mixer+61)
8361 50a4 1507 cpc r17,r21
8362 50a6 01F0 breq .L912
8363 50a8 00C0 rjmp .L880
8364 .L651:
8365 50aa 0894 sec
8366 50ac E108 sbc r14,__zero_reg__
8367 50ae F108 sbc r15,__zero_reg__
8368 50b0 F092 0000 sts (KompassSignalSchlecht)+1,r15
8369 50b4 E092 0000 sts KompassSignalSchlecht,r14
8370 50b8 0C94 0000 jmp .L639
8371 .L912:
8372 /* epilogue: frame size=52 */
8373 50bc E2E1 ldi r30,18
8374 50be CC5C subi r28,-52
8375 50c0 0C94 0000 jmp __epilogue_restores__+0
8376 /* epilogue end (size=4) */
8377 /* function MotorRegler size 6872 (6862) */
8379 .global BaroExpandActive
8380 .global BaroExpandActive
8381 .section .bss
8384 BaroExpandActive:
8385 0000 0000 .skip 2,0
8386 .global AdNeutralNick
8387 .global AdNeutralNick
8390 AdNeutralNick:
8391 0002 0000 .skip 2,0
8392 .global AdNeutralRoll
8393 .global AdNeutralRoll
8396 AdNeutralRoll:
8397 0004 0000 .skip 2,0
8398 .global AdNeutralGier
8399 .global AdNeutralGier
8402 AdNeutralGier:
8403 0006 0000 .skip 2,0
8404 .global StartNeutralRoll
8405 .global StartNeutralRoll
8408 StartNeutralRoll:
8409 0008 0000 .skip 2,0
8410 .global StartNeutralNick
8411 .global StartNeutralNick
8414 StartNeutralNick:
8415 000a 0000 .skip 2,0
8416 .global NeutralAccX
8417 .global NeutralAccX
8420 NeutralAccX:
8421 000c 0000 .skip 2,0
8422 .global NeutralAccY
8423 .global NeutralAccY
8426 NeutralAccY:
8427 000e 0000 .skip 2,0
8428 .global NaviCntAcc
8429 .global NaviCntAcc
8432 NaviCntAcc:
8433 0010 0000 .skip 2,0
8434 .global NeutralAccZ
8435 .global NeutralAccZ
8438 NeutralAccZ:
8439 0012 0000 .skip 2,0
8440 .global ControlHeading
8441 .global ControlHeading
8444 ControlHeading:
8445 0014 00 .skip 1,0
8446 .global IntegralNick
8447 .global IntegralNick
8450 IntegralNick:
8451 0015 0000 0000 .skip 4,0
8452 .global IntegralNick2
8453 .global IntegralNick2
8456 IntegralNick2:
8457 0019 0000 0000 .skip 4,0
8458 .global IntegralRoll
8459 .global IntegralRoll
8462 IntegralRoll:
8463 001d 0000 0000 .skip 4,0
8464 .global IntegralRoll2
8465 .global IntegralRoll2
8468 IntegralRoll2:
8469 0021 0000 0000 .skip 4,0
8470 .global IntegralAccNick
8471 .global IntegralAccNick
8474 IntegralAccNick:
8475 0025 0000 0000 .skip 4,0
8476 .global IntegralAccRoll
8477 .global IntegralAccRoll
8480 IntegralAccRoll:
8481 0029 0000 0000 .skip 4,0
8482 .global IntegralAccZ
8483 .global IntegralAccZ
8486 IntegralAccZ:
8487 002d 0000 0000 .skip 4,0
8488 .global Integral_Gier
8489 .global Integral_Gier
8492 Integral_Gier:
8493 0031 0000 0000 .skip 4,0
8494 .global Mess_IntegralNick
8495 .global Mess_IntegralNick
8498 Mess_IntegralNick:
8499 0035 0000 0000 .skip 4,0
8500 .global Mess_IntegralNick2
8501 .global Mess_IntegralNick2
8504 Mess_IntegralNick2:
8505 0039 0000 0000 .skip 4,0
8506 .global Mess_IntegralRoll
8507 .global Mess_IntegralRoll
8510 Mess_IntegralRoll:
8511 003d 0000 0000 .skip 4,0
8512 .global Mess_IntegralRoll2
8513 .global Mess_IntegralRoll2
8516 Mess_IntegralRoll2:
8517 0041 0000 0000 .skip 4,0
8518 .global Mess_Integral_Gier
8519 .global Mess_Integral_Gier
8522 Mess_Integral_Gier:
8523 0045 0000 0000 .skip 4,0
8524 .global Mess_Integral_Gier2
8525 .global Mess_Integral_Gier2
8528 Mess_Integral_Gier2:
8529 0049 0000 0000 .skip 4,0
8530 .global SummeNick
8531 .global SummeNick
8534 SummeNick:
8535 004d 0000 0000 .skip 4,0
8536 .global SummeRoll
8537 .global SummeRoll
8540 SummeRoll:
8541 0051 0000 0000 .skip 4,0
8542 .global Mess_Integral_Hoch
8543 .global Mess_Integral_Hoch
8546 Mess_Integral_Hoch:
8547 0055 0000 0000 .skip 4,0
8548 .global KompassValue
8549 .global KompassValue
8552 KompassValue:
8553 0059 0000 .skip 2,0
8554 .global KompassStartwert
8555 .global KompassStartwert
8558 KompassStartwert:
8559 005b 0000 .skip 2,0
8560 .global KompassRichtung
8561 .global KompassRichtung
8564 KompassRichtung:
8565 005d 0000 .skip 2,0
8566 .global KompassSignalSchlecht
8567 .data
8570 KompassSignalSchlecht:
8571 0000 F401 .word 500
8572 .global HoehenReglerAktiv
8573 .global HoehenReglerAktiv
8574 .section .bss
8577 HoehenReglerAktiv:
8578 005f 00 .skip 1,0
8579 .global TrichterFlug
8580 .global TrichterFlug
8583 TrichterFlug:
8584 0060 00 .skip 1,0
8585 .global Umschlag180Nick
8586 .data
8589 Umschlag180Nick:
8590 0002 90 .byte -112
8591 0003 D0 .byte -48
8592 0004 03 .byte 3
8593 0005 00 .byte 0
8594 .global Umschlag180Roll
8597 Umschlag180Roll:
8598 0006 90 .byte -112
8599 0007 D0 .byte -48
8600 0008 03 .byte 3
8601 0009 00 .byte 0
8602 .global GierGyroFehler
8603 .global GierGyroFehler
8604 .section .bss
8607 GierGyroFehler:
8608 0061 0000 .skip 2,0
8609 .global Poti
8610 .global Poti
8613 Poti:
8614 0063 0000 0000 .skip 9,0
8614 0000 0000
8614 00
8615 .global SenderOkay
8616 .global SenderOkay
8619 SenderOkay:
8620 006c 00 .skip 1,0
8621 .global StickNick
8622 .global StickNick
8625 StickNick:
8626 006d 0000 .skip 2,0
8627 .global StickRoll
8628 .global StickRoll
8631 StickRoll:
8632 006f 0000 .skip 2,0
8633 .global StickGier
8634 .global StickGier
8637 StickGier:
8638 0071 0000 .skip 2,0
8639 .global StickGas
8640 .global StickGas
8643 StickGas:
8644 0073 0000 .skip 2,0
8645 .global MotorenEin
8646 .global MotorenEin
8649 MotorenEin:
8650 0075 00 .skip 1,0
8651 .global StartTrigger
8652 .global StartTrigger
8655 StartTrigger:
8656 0076 00 .skip 1,0
8657 .global HoehenWert
8658 .global HoehenWert
8661 HoehenWert:
8662 0077 0000 0000 .skip 4,0
8663 .global SollHoehe
8664 .global SollHoehe
8667 SollHoehe:
8668 007b 0000 0000 .skip 4,0
8669 .global LageKorrekturRoll
8670 .global LageKorrekturRoll
8673 LageKorrekturRoll:
8674 007f 0000 .skip 2,0
8675 .global LageKorrekturNick
8676 .global LageKorrekturNick
8679 LageKorrekturNick:
8680 0081 0000 .skip 2,0
8681 .global HoverGas
8682 .global HoverGas
8685 HoverGas:
8686 0083 0000 .skip 2,0
8687 .global Ki
8688 .data
8691 Ki:
8692 000a 3801 .word 312
8693 .global Looping_Nick
8694 .global Looping_Nick
8695 .section .bss
8698 Looping_Nick:
8699 0085 00 .skip 1,0
8700 .global Looping_Roll
8701 .global Looping_Roll
8704 Looping_Roll:
8705 0086 00 .skip 1,0
8706 .global Looping_Links
8707 .global Looping_Links
8710 Looping_Links:
8711 0087 00 .skip 1,0
8712 .global Looping_Rechts
8713 .global Looping_Rechts
8716 Looping_Rechts:
8717 0088 00 .skip 1,0
8718 .global Looping_Unten
8719 .global Looping_Unten
8722 Looping_Unten:
8723 0089 00 .skip 1,0
8724 .global Looping_Oben
8725 .global Looping_Oben
8728 Looping_Oben:
8729 008a 00 .skip 1,0
8730 .global Parameter_Luftdruck_D
8731 .data
8734 Parameter_Luftdruck_D:
8735 000c 30 .byte 48
8736 .global Parameter_MaxHoehe
8739 Parameter_MaxHoehe:
8740 000d FB .byte -5
8741 .global Parameter_Hoehe_P
8744 Parameter_Hoehe_P:
8745 000e 10 .byte 16
8746 .global Parameter_Hoehe_ACC_Wirkung
8749 Parameter_Hoehe_ACC_Wirkung:
8750 000f 3A .byte 58
8751 .global Parameter_KompassWirkung
8754 Parameter_KompassWirkung:
8755 0010 40 .byte 64
8756 .global Parameter_Hoehe_GPS_Z
8759 Parameter_Hoehe_GPS_Z:
8760 0011 40 .byte 64
8761 .global Parameter_Gyro_D
8764 Parameter_Gyro_D:
8765 0012 08 .byte 8
8766 .global Parameter_Gyro_P
8769 Parameter_Gyro_P:
8770 0013 96 .byte -106
8771 .global Parameter_Gyro_I
8774 Parameter_Gyro_I:
8775 0014 96 .byte -106
8776 .global Parameter_Gyro_Gier_P
8779 Parameter_Gyro_Gier_P:
8780 0015 96 .byte -106
8781 .global Parameter_Gyro_Gier_I
8784 Parameter_Gyro_Gier_I:
8785 0016 96 .byte -106
8786 .global Parameter_Gier_P
8789 Parameter_Gier_P:
8790 0017 02 .byte 2
8791 .global Parameter_I_Faktor
8794 Parameter_I_Faktor:
8795 0018 0A .byte 10
8796 .global Parameter_UserParam1
8797 .global Parameter_UserParam1
8798 .section .bss
8801 Parameter_UserParam1:
8802 008b 00 .skip 1,0
8803 .global Parameter_UserParam2
8804 .global Parameter_UserParam2
8807 Parameter_UserParam2:
8808 008c 00 .skip 1,0
8809 .global Parameter_UserParam3
8810 .global Parameter_UserParam3
8813 Parameter_UserParam3:
8814 008d 00 .skip 1,0
8815 .global Parameter_UserParam4
8816 .global Parameter_UserParam4
8819 Parameter_UserParam4:
8820 008e 00 .skip 1,0
8821 .global Parameter_UserParam5
8822 .global Parameter_UserParam5
8825 Parameter_UserParam5:
8826 008f 00 .skip 1,0
8827 .global Parameter_UserParam6
8828 .global Parameter_UserParam6
8831 Parameter_UserParam6:
8832 0090 00 .skip 1,0
8833 .global Parameter_UserParam7
8834 .global Parameter_UserParam7
8837 Parameter_UserParam7:
8838 0091 00 .skip 1,0
8839 .global Parameter_UserParam8
8840 .global Parameter_UserParam8
8843 Parameter_UserParam8:
8844 0092 00 .skip 1,0
8845 .global Parameter_ServoNickControl
8846 .data
8849 Parameter_ServoNickControl:
8850 0019 64 .byte 100
8851 .global Parameter_ServoRollControl
8854 Parameter_ServoRollControl:
8855 001a 64 .byte 100
8856 .global Parameter_LoopGasLimit
8859 Parameter_LoopGasLimit:
8860 001b 46 .byte 70
8861 .global Parameter_AchsKopplung1
8864 Parameter_AchsKopplung1:
8865 001c 5A .byte 90
8866 .global Parameter_AchsKopplung2
8869 Parameter_AchsKopplung2:
8870 001d 41 .byte 65
8871 .global Parameter_CouplingYawCorrection
8874 Parameter_CouplingYawCorrection:
8875 001e 40 .byte 64
8876 .global Parameter_DynamicStability
8879 Parameter_DynamicStability:
8880 001f 64 .byte 100
8881 .global CareFree
8882 .global CareFree
8883 .section .bss
8886 CareFree:
8887 0093 00 .skip 1,0
8888 .global sintab
8889 .data
8892 sintab:
8893 0020 00 .byte 0
8894 0021 02 .byte 2
8895 0022 04 .byte 4
8896 0023 06 .byte 6
8897 0024 07 .byte 7
8898 0025 08 .byte 8
8899 0026 08 .byte 8
8900 0027 08 .byte 8
8901 0028 07 .byte 7
8902 0029 06 .byte 6
8903 002a 04 .byte 4
8904 002b 02 .byte 2
8905 002c 00 .byte 0
8906 002d FE .byte -2
8907 002e FC .byte -4
8908 002f FA .byte -6
8909 0030 F9 .byte -7
8910 0031 F8 .byte -8
8911 0032 F8 .byte -8
8912 0033 F8 .byte -8
8913 0034 F9 .byte -7
8914 0035 FA .byte -6
8915 0036 FC .byte -4
8916 0037 FE .byte -2
8917 0038 00 .byte 0
8918 0039 02 .byte 2
8919 003a 04 .byte 4
8920 003b 06 .byte 6
8921 003c 07 .byte 7
8922 003d 08 .byte 8
8923 003e 08 .byte 8
8924 .global ExternStickNick
8925 .global ExternStickNick
8926 .section .bss
8929 ExternStickNick:
8930 0094 0000 .skip 2,0
8931 .global ExternStickRoll
8932 .global ExternStickRoll
8935 ExternStickRoll:
8936 0096 0000 .skip 2,0
8937 .global ExternStickGier
8938 .global ExternStickGier
8941 ExternStickGier:
8942 0098 0000 .skip 2,0
8943 .global ExternHoehenValue
8944 .data
8947 ExternHoehenValue:
8948 003f ECFF .word -20
8949 .global MaxStickNick
8950 .global MaxStickNick
8951 .section .bss
8954 MaxStickNick:
8955 009a 0000 .skip 2,0
8956 .global MaxStickRoll
8957 .global MaxStickRoll
8960 MaxStickRoll:
8961 009c 0000 .skip 2,0
8962 .global modell_fliegt
8963 .global modell_fliegt
8966 modell_fliegt:
8967 009e 0000 .skip 2,0
8968 .global FC_StatusFlags
8969 .global FC_StatusFlags
8972 FC_StatusFlags:
8973 00a0 00 .skip 1,0
8974 .global GIER_GRAD_FAKTOR
8975 .data
8978 GIER_GRAD_FAKTOR:
8979 0041 0B .byte 11
8980 0042 05 .byte 5
8981 0043 00 .byte 0
8982 0044 00 .byte 0
8983 .global VarioCharacter
8986 VarioCharacter:
8987 0045 20 .byte 32
8988 .lcomm BaroAtLowerLimit.3353,1
8989 .lcomm BaroAtUpperLimit.3352,1
8992 delay.3351:
8993 0046 64 .byte 100
8994 .lcomm HoverGasFilter.3350,4
8997 HoverGasMax.3349:
8998 0047 FF03 .word 1023
8999 .lcomm HoverGasMin.3348,2
9002 StickGasHover.3347:
9003 0049 7800 .word 120
9004 .lcomm FilterHCGas.3346,2
9005 .lcomm HeightTrimming.3345,2
9006 .lcomm MittelIntegralRoll_Alt.3336,4
9007 .lcomm MittelIntegralNick_Alt.3335,4
9008 .lcomm last_r_n.3334,1
9009 .lcomm last_r_p.3333,1
9010 .lcomm last_n_n.3332,1
9011 .lcomm last_n_p.3331,1
9012 .lcomm cnt.3330,2
9013 .lcomm stick_roll.3325,2
9014 .lcomm stick_nick.3324,2
9015 .lcomm ausgleichRoll.3319,4
9016 .lcomm ausgleichNick.3318,4
9017 .lcomm NeueKompassRichtungMerken.3317,1
9018 .lcomm calibration_done.3316,1
9019 .lcomm delay_ausschalten.3315,1
9020 .lcomm delay_einschalten.3314,1
9021 .lcomm delay_neutral.3313,1
9022 .lcomm RcLostTimer.3312,2
9023 .lcomm IntegralFehlerRoll.3311,4
9024 .lcomm IntegralFehlerNick.3310,4
9025 .lcomm tmp_long2.3309,4
9026 .lcomm tmp_long.3308,4
9027 .lcomm sollGier.3307,4
9028 .lcomm d2Nick.2875,2
9029 .lcomm d2Roll.2874,2
9030 .lcomm oldRoll.2873,2
9031 .lcomm oldNick.2872,2
9032 .lcomm tmpl4.2871,4
9033 .lcomm tmpl3.2870,4
9034 .lcomm tmpl2.2869,4
9035 .lcomm tmpl.2868,4
9036 .section .progmem.data,"a",@progbits
9039 __c.2753:
9040 0000 0A0D 4143 .string "\n\rACC not calibrated!\r\n"
9040 4320 6E6F
9040 7420 6361
9040 6C69 6272
9040 6174 6564
9041 .comm TrimNick,2,1
9042 .comm TrimRoll,2,1
9043 .comm ErsatzKompass,4,1
9044 .comm ErsatzKompassInGrad,2,1
9045 .comm MesswertNick,2,1
9046 .comm MesswertRoll,2,1
9047 .comm MesswertGier,2,1
9048 .comm Mittelwert_AccNick,2,1
9049 .comm Mittelwert_AccRoll,2,1
9050 .comm NaviAccNick,2,1
9051 .comm NaviAccRoll,2,1
9052 .comm h,1,1
9053 .comm m,1,1
9054 .comm s,1,1
9055 .comm DiffNick,2,1
9056 .comm DiffRoll,2,1
9057 .comm Parameter_Servo3,1,1
9058 .comm Parameter_Servo4,1,1
9059 .comm Parameter_Servo5,1,1
9060 .comm Parameter_J16Bitmask,1,1
9061 .comm Parameter_J16Timing,1,1
9062 .comm Parameter_J17Bitmask,1,1
9063 .comm Parameter_J17Timing,1,1
9064 .comm MesswertGierBias,2,1
9065 .comm RohMesswertNick,2,1
9066 .comm RohMesswertRoll,2,1
9067 .comm MittelIntegralNick,4,1
9068 .comm MittelIntegralRoll,4,1
9069 .comm MittelIntegralNick2,4,1
9070 .comm MittelIntegralRoll2,4,1
9071 .comm MAX_GAS,1,1
9072 .comm MIN_GAS,1,1
9073 .comm GyroFaktor,1,1
9074 .comm GyroFaktorGier,1,1
9075 .comm IntegralFaktor,1,1
9076 .comm IntegralFaktorGier,1,1
9077 .comm Parameter_NaviGpsModeControl,1,1
9078 .comm Parameter_NaviGpsGain,1,1
9079 .comm Parameter_NaviGpsP,1,1
9080 .comm Parameter_NaviGpsI,1,1
9081 .comm Parameter_NaviGpsD,1,1
9082 .comm Parameter_NaviGpsACC,1,1
9083 .comm Parameter_NaviOperatingRadius,1,1
9084 .comm Parameter_NaviWindCorrection,1,1
9085 .comm Parameter_NaviSpeedCompensation,1,1
9086 .comm Parameter_ExternalControl,1,1
9087 .comm KopplungsteilNickRoll,2,1
9088 .comm KopplungsteilRollNick,2,1
9089 .comm tmp_motorwert,24,1
9090 /* File "fc.c": code 10444 = 0x28cc (10379), prologues 33, epilogues 32 */
DEFINED SYMBOLS
*ABS*:00000000 fc.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:12 .text:00000000 CopyDebugValues
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8450 .bss:00000015 IntegralNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8462 .bss:0000001d IntegralRoll
*COM*:00000002 Mittelwert_AccNick
*COM*:00000002 Mittelwert_AccRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8402 .bss:00000006 AdNeutralGier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8661 .bss:00000077 HoehenWert
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8552 .bss:00000059 KompassValue
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8619 .bss:0000006c SenderOkay
*COM*:00000004 ErsatzKompass
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8978 .data:00000041 GIER_GRAD_FAKTOR
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:173 .text:000001fa Mittelwert
*COM*:00000002 MesswertGier
*COM*:00000002 RohMesswertNick
*COM*:00000002 RohMesswertRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8474 .bss:00000025 IntegralAccNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8480 .bss:00000029 IntegralAccRoll
*COM*:00000002 NaviAccNick
*COM*:00000002 NaviAccRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8432 .bss:00000010 NaviCntAcc
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8438 .bss:00000012 NeutralAccZ
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8486 .bss:0000002d IntegralAccZ
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8510 .bss:0000003d Mess_IntegralRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8498 .bss:00000035 Mess_IntegralNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8522 .bss:00000045 Mess_Integral_Gier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8698 .bss:00000085 Looping_Nick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8704 .bss:00000086 Looping_Roll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8869 .data:0000001d Parameter_AchsKopplung2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9032 .bss:000000ee tmpl3.2870
*COM*:00000002 KopplungsteilNickRoll
*COM*:00000002 KopplungsteilRollNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9031 .bss:000000ea tmpl4.2871
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8874 .data:0000001e Parameter_CouplingYawCorrection
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8864 .data:0000001c Parameter_AchsKopplung1
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9034 .bss:000000f6 tmpl.2868
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9033 .bss:000000f2 tmpl2.2869
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8583 .bss:00000060 TrichterFlug
*COM*:00000002 TrimRoll
*COM*:00000002 TrimNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8516 .bss:00000041 Mess_IntegralRoll2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8673 .bss:0000007f LageKorrekturRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8597 .data:00000006 Umschlag180Roll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8504 .bss:00000039 Mess_IntegralNick2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8679 .bss:00000081 LageKorrekturNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8589 .data:00000002 Umschlag180Nick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8492 .bss:00000031 Integral_Gier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8456 .bss:00000019 IntegralNick2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8468 .bss:00000021 IntegralRoll2
*COM*:00000002 MesswertNick
*COM*:00000002 MesswertRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8764 .data:00000012 Parameter_Gyro_D
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9030 .bss:000000e8 oldNick.2872
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9027 .bss:000000e2 d2Nick.2875
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9029 .bss:000000e6 oldRoll.2873
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9028 .bss:000000e4 d2Roll.2874
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:1488 .text:00000f5a SendMotorData
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8649 .bss:00000075 MotorenEin
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8972 .bss:000000a0 FC_StatusFlags
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:1548 .text:00000fd4 ParameterZuordnung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8613 .bss:00000063 Poti
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8734 .data:0000000c Parameter_Luftdruck_D
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8744 .data:0000000e Parameter_Hoehe_P
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8769 .data:00000013 Parameter_Gyro_P
*COM*:00000001 Parameter_J16Timing
*COM*:00000001 Parameter_J17Timing
*COM*:00000001 Parameter_Servo3
*COM*:00000001 Parameter_Servo4
*COM*:00000001 Parameter_Servo5
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8739 .data:0000000d Parameter_MaxHoehe
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8749 .data:0000000f Parameter_Hoehe_ACC_Wirkung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8759 .data:00000011 Parameter_Hoehe_GPS_Z
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8754 .data:00000010 Parameter_KompassWirkung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8774 .data:00000014 Parameter_Gyro_I
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8779 .data:00000015 Parameter_Gyro_Gier_P
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8784 .data:00000016 Parameter_Gyro_Gier_I
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8794 .data:00000018 Parameter_I_Faktor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8801 .bss:0000008b Parameter_UserParam1
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8807 .bss:0000008c Parameter_UserParam2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8813 .bss:0000008d Parameter_UserParam3
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8819 .bss:0000008e Parameter_UserParam4
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8825 .bss:0000008f Parameter_UserParam5
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8831 .bss:00000090 Parameter_UserParam6
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8837 .bss:00000091 Parameter_UserParam7
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8843 .bss:00000092 Parameter_UserParam8
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8849 .data:00000019 Parameter_ServoNickControl
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8854 .data:0000001a Parameter_ServoRollControl
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8859 .data:0000001b Parameter_LoopGasLimit
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8879 .data:0000001f Parameter_DynamicStability
*COM*:00000001 Parameter_ExternalControl
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8691 .data:0000000a Ki
*COM*:00000001 MAX_GAS
*COM*:00000001 MIN_GAS
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8886 .bss:00000093 CareFree
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:2164 .text:000014fa CalibrierMittelwert
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:2293 .text:00001624 SetNeutral
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8420 .bss:0000000c NeutralAccX
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8426 .bss:0000000e NeutralAccY
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8390 .bss:00000002 AdNeutralNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8396 .bss:00000004 AdNeutralRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8408 .bss:00000008 StartNeutralRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8414 .bss:0000000a StartNeutralNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9039 .progmem.data:00000000 __c.2753
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8546 .bss:00000055 Mess_Integral_Hoch
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8558 .bss:0000005b KompassStartwert
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8947 .data:0000003f ExternHoehenValue
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8607 .bss:00000061 GierGyroFehler
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:2778 .text:00001b5c Piep
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:2821 .text:00001ba4 MotorRegler
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8643 .bss:00000073 StickGas
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9021 .bss:000000cc RcLostTimer.3312
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8966 .bss:0000009e modell_fliegt
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8534 .bss:0000004d SummeNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8540 .bss:00000051 SummeRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9026 .bss:000000de sollGier.3307
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9016 .bss:000000c7 NeueKompassRichtungMerken.3317
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9020 .bss:000000cb delay_neutral.3313
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9017 .bss:000000c8 calibration_done.3316
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9019 .bss:000000ca delay_einschalten.3314
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8528 .bss:00000049 Mess_Integral_Gier2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8444 .bss:00000014 ControlHeading
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9018 .bss:000000c9 delay_ausschalten.3315
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9013 .bss:000000bd stick_nick.3324
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9012 .bss:000000bb stick_roll.3325
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8625 .bss:0000006d StickNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8892 .data:00000020 sintab
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8631 .bss:0000006f StickRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8637 .bss:00000071 StickGier
*COM*:00000001 GyroFaktor
*COM*:00000001 IntegralFaktor
*COM*:00000001 GyroFaktorGier
*COM*:00000001 IntegralFaktorGier
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8954 .bss:0000009a MaxStickNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8960 .bss:0000009c MaxStickRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8710 .bss:00000087 Looping_Links
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8716 .bss:00000088 Looping_Rechts
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8728 .bss:0000008a Looping_Oben
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8722 .bss:00000089 Looping_Unten
*COM*:00000004 MittelIntegralNick
*COM*:00000004 MittelIntegralRoll
*COM*:00000004 MittelIntegralNick2
*COM*:00000004 MittelIntegralRoll2
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9015 .bss:000000c3 ausgleichNick.3318
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9014 .bss:000000bf ausgleichRoll.3319
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9025 .bss:000000da tmp_long.3308
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9024 .bss:000000d6 tmp_long2.3309
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9023 .bss:000000d2 IntegralFehlerNick.3310
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9022 .bss:000000ce IntegralFehlerRoll.3311
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9011 .bss:000000b9 cnt.3330
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9006 .bss:000000b1 MittelIntegralNick_Alt.3335
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9010 .bss:000000b8 last_n_p.3331
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9009 .bss:000000b7 last_n_n.3332
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8570 .data:00000000 KompassSignalSchlecht
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9005 .bss:000000ad MittelIntegralRoll_Alt.3336
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9008 .bss:000000b6 last_r_p.3333
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9007 .bss:000000b5 last_r_n.3334
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8685 .bss:00000083 HoverGas
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8384 .bss:00000000 BaroExpandActive
.bss:000000a1 BaroAtLowerLimit.3353
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8988 .bss:000000a2 BaroAtUpperLimit.3352
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8992 .data:00000046 delay.3351
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8577 .bss:0000005f HoehenReglerAktiv
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8667 .bss:0000007b SollHoehe
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8986 .data:00000045 VarioCharacter
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9004 .bss:000000ab HeightTrimming.3345
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:9002 .data:00000049 StickGasHover.3347
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8655 .bss:00000076 StartTrigger
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8994 .bss:000000a7 HoverGasMin.3348
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8997 .data:00000047 HoverGasMax.3349
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8999 .bss:000000a9 FilterHCGas.3346
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8989 .bss:000000a3 HoverGasFilter.3350
*COM*:00000002 DiffNick
*COM*:00000002 DiffRoll
*COM*:00000018 tmp_motorwert
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8564 .bss:0000005d KompassRichtung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8789 .data:00000017 Parameter_Gier_P
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8929 .bss:00000094 ExternStickNick
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8935 .bss:00000096 ExternStickRoll
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccqBBwiV.s:8941 .bss:00000098 ExternStickGier
*COM*:00000002 ErsatzKompassInGrad
*COM*:00000001 h
*COM*:00000001 m
*COM*:00000001 s
*COM*:00000001 Parameter_J16Bitmask
*COM*:00000001 Parameter_J17Bitmask
*COM*:00000002 MesswertGierBias
*COM*:00000001 Parameter_NaviGpsModeControl
*COM*:00000001 Parameter_NaviGpsGain
*COM*:00000001 Parameter_NaviGpsP
*COM*:00000001 Parameter_NaviGpsI
*COM*:00000001 Parameter_NaviGpsD
*COM*:00000001 Parameter_NaviGpsACC
*COM*:00000001 Parameter_NaviOperatingRadius
*COM*:00000001 Parameter_NaviWindCorrection
*COM*:00000001 Parameter_NaviSpeedCompensation
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
__divmodsi4
DebugOut
__divmodhi4
AdWertGier
AdWertAccHoch
UBat
Motor
ServoNickValue
Capacity
GPS_Nick
GPS_Roll
VersionInfo
__prologue_saves__
AdWertNickFilter
AdWertRollFilter
AdWertAccNick
AdWertAccRoll
Aktuell_az
AdReady
__mulsi3
HiResNick
HiResRoll
AdWertNick
PlatinenVersion
AdWertRoll
__epilogue_restores__
MotorTest
PC_MotortestActive
I2C_TransferActive
motor_write
twi_state
BLFlags
PPM_in
FromNaviCtrl
BeepMuster
beeptime
SucheGyroOffset
ExpandBaro
Delay_ms_Mess
MessLuftdruck
SucheLuftruckOffset
SetParamWord
GetParamWord
_printf_P
uart_putchar
Luftdruck
StartLuftdruck
VarioMeter
GPS_Neutral
SendVersionToNavi
LED_Init
FromNaviCtrl_Value
ServoActive
Delay_ms
PPM_diff
SetActiveParamSet
WinkelOut
GetActiveParamSet
ParamSet_ReadFromEEProm
LipoDetection
LIBFC_ReceiverInit
NewPpmData
FromNC_Rotate_C
FromNC_Rotate_S
GPS_Nick2
GPS_Roll2
__floatsisf
__addsf3
__fixunssfsi
ExternControl
ZaehlMessungen
BattLowVoltageWarning
__udivmodhi4
DruckOffsetSetting
SummenHoehe
ihypot
c_cos_8192
MissingMotor
Mixer
/Spektrum-Diversity/V0.82a/flight.pnproj
0,0 → 1,0
<Project name="Flight-Ctrl"><File path="uart.h"></File><File path="jeti.h"></File><File path="main.c"></File><File path="main.h"></File><File path="makefile"></File><File path="uart.c"></File><File path="printf_P.h"></File><File path="timer0.c"></File><File path="timer0.h"></File><File path="old_macros.h"></File><File path="twimaster.c"></File><File path="version.txt"></File><File path="twimaster.h"></File><File path="rc.c"></File><File path="rc.h"></File><File path="fc.h"></File><File path="menu.h"></File><File path="menu.c"></File><File path="_Settings.h"></File><File path="analog.c"></File><File path="analog.h"></File><File path="GPS.c"></File><File path="gps.h"></File><File path="License.txt"></File><File path="spi.h"></File><File path="spi.c"></File><File path="led.h"></File><File path="led.c"></File><File path="fc.c"></File><File path="mymath.c"></File><File path="mymath.h"></File><File path="isqrt.S"></File><File path="Spektrum.c"></File><File path="Spektrum.h"></File><File path="eeprom.h"></File><File path="eeprom.c"></File><File path="libfc.h"></File><File path="debug.c"></File><File path="debug.h"></File></Project>
/Spektrum-Diversity/V0.82a/flight.pnps
0,0 → 1,0
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd>
/Spektrum-Diversity/V0.82a/gps.h
0,0 → 1,7
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern signed int GPS_Nick2;
extern signed int GPS_Roll2;
 
void GPS_Neutral(void);
void GPS_BerechneZielrichtung(void);
/Spektrum-Diversity/V0.82a/isqrt.S
0,0 → 1,203
;-----------------------------------------------------------------------------;
; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008
; http://elm-chan.org/docs/avrlib/sqrt32.S
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (uint32_t n);
; uint8_t isqrt16 (uint16_t n);
; uint16_t ihypot (int16_t x, int16_t y);
 
;-----------------------------------------------------------------------------:
; 32bit integer squareroot
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (
; uint32_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 53 words
; Clock = 532..548 cycles
; Stack = 0 byte
 
.global isqrt32
.func isqrt32
 
isqrt32:
clr r0
clr r18
clr r19
clr r20
ldi r21, 1
clr r27
clr r30
clr r31
ldi r26, 16
1: lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
brpl 2f
add r0, r21
adc r18, r27
adc r19, r30
adc r20, r31
rjmp 3f
2: sub r0, r21
sbc r18, r27
sbc r19, r30
sbc r20, r31
3: lsl r21
rol r27
rol r30
andi r21, 0b11111000
ori r21, 0b00000101
sbrc r20, 7
subi r21, 2
dec r26
brne 1b
lsr r30
ror r27
ror r21
lsr r30
ror r27
ror r21
mov r24, r21
mov r25, r27
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer squareroot
;-----------------------------------------------------------------------------;
; uint8_t isqrt16 (
; uint16_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 33 words
; Clock = 181..189 cycles
; Stack = 0 byte
 
.global isqrt16
.func isqrt16
 
isqrt16:
clr r18
clr r19
ldi r20, 1
clr r21
ldi r22, 8
1: lsl r24
rol r25
rol r18
rol r19
lsl r24
rol r25
rol r18
rol r19
brpl 2f
add r18, r20
adc r19, r21
rjmp 3f
2: sub r18, r20
sbc r19, r21
3: lsl r20
rol r21
andi r20, 0b11111000
ori r20, 0b00000101
sbrc r19, 7
subi r20, 2
dec r22
brne 1b
lsr r21
ror r20
lsr r21
ror r20
mov r24, r20
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer hypot (megaAVR is required)
;-----------------------------------------------------------------------------;
; uint16_t ihypot (
; int16_t x,
; int16_t y
; );
;
; Return Value:
; Squareroot of (x*x + y*y)
;
; Size = 42 words
; Clock = 581..597 cycles
; Stack = 0 byte
 
.global ihypot
.func ihypot
 
ihypot:
clr r26
sbrs r25, 7
rjmp 1f
com r24
com r25
adc r24, r26
adc r25, r26
1: sbrs r23, 7
rjmp 2f
com r22
com r23
adc r22, r26
adc r23, r26
2: mul r22, r22
movw r18, r0
mul r23, r23
movw r20, r0
mul r22, r23
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
mul r24, r24
movw r30, r0
mul r25, r25
add r18, r30
adc r19, r31
adc r20, r0
adc r21, r1
mul r24, r25
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
movw r24, r20
movw r22, r18
clr r1
rjmp isqrt32
.endfunc
 
 
 
/Spektrum-Diversity/V0.82a/isqrt.h
0,0 → 1,11
#ifndef _ISQRT_H
#define _ISQRT_H
 
#include <inttypes.h>
 
// coded in assembler file
extern uint16_t isqrt32(uint32_t n);
extern uint8_t isqrt16(uint16_t n);
extern uint16_t ihypot(int16_t x, int16_t y);
 
#endif // _ISQRT_H
/Spektrum-Diversity/V0.82a/isqrt.lst
0,0 → 1,209
1 # 1 "isqrt.S"
1 ;-----------------------------------------------------------------------------;
0
0
2 ;-----------------------------------------------------------------------------;
3 ; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008
4 ; http://elm-chan.org/docs/avrlib/sqrt32.S
5 ;-----------------------------------------------------------------------------;
6 ; uint16_t isqrt32 (uint32_t n);
7 ; uint8_t isqrt16 (uint16_t n);
8 ; uint16_t ihypot (int16_t x, int16_t y);
9
10 ;-----------------------------------------------------------------------------:
11 ; 32bit integer squareroot
12 ;-----------------------------------------------------------------------------;
13 ; uint16_t isqrt32 (
14 ; uint32_t n
15 ; );
16 ;
17 ; Return Value:
18 ; Squareroot of n.
19 ;
20 ; Size = 53 words
21 ; Clock = 532..548 cycles
22 ; Stack = 0 byte
23
24 .global isqrt32
25 .func isqrt32
26
27:isqrt.S **** isqrt32:
28:isqrt.S **** clr r0
29:isqrt.S **** clr r18
30:isqrt.S **** clr r19
31:isqrt.S **** clr r20
32:isqrt.S **** ldi r21, 1
33:isqrt.S **** clr r27
34:isqrt.S **** clr r30
35:isqrt.S **** clr r31
36:isqrt.S **** ldi r26, 16
37:isqrt.S **** 1: lsl r22
38:isqrt.S **** rol r23
39:isqrt.S **** rol r24
40:isqrt.S **** rol r25
41:isqrt.S **** rol r0
42:isqrt.S **** rol r18
43:isqrt.S **** rol r19
44:isqrt.S **** rol r20
45:isqrt.S **** lsl r22
46:isqrt.S **** rol r23
47:isqrt.S **** rol r24
48:isqrt.S **** rol r25
49:isqrt.S **** rol r0
50:isqrt.S **** rol r18
51:isqrt.S **** rol r19
52:isqrt.S **** rol r20
53:isqrt.S **** brpl 2f
54:isqrt.S **** add r0, r21
55:isqrt.S **** adc r18, r27
56:isqrt.S **** adc r19, r30
57:isqrt.S **** adc r20, r31
58:isqrt.S **** rjmp 3f
59:isqrt.S **** 2: sub r0, r21
60:isqrt.S **** sbc r18, r27
61:isqrt.S **** sbc r19, r30
62:isqrt.S **** sbc r20, r31
63:isqrt.S **** 3: lsl r21
64:isqrt.S **** rol r27
65:isqrt.S **** rol r30
66:isqrt.S **** andi r21, 0b11111000
67:isqrt.S **** ori r21, 0b00000101
68:isqrt.S **** sbrc r20, 7
69:isqrt.S **** subi r21, 2
70:isqrt.S **** dec r26
71:isqrt.S **** brne 1b
72:isqrt.S **** lsr r30
73:isqrt.S **** ror r27
74:isqrt.S **** ror r21
75:isqrt.S **** lsr r30
76:isqrt.S **** ror r27
77:isqrt.S **** ror r21
78:isqrt.S **** mov r24, r21
79:isqrt.S **** mov r25, r27
80 ret
81 .endfunc
82
83
84
85 ;-----------------------------------------------------------------------------:
86 ; 16bit integer squareroot
87 ;-----------------------------------------------------------------------------;
88 ; uint8_t isqrt16 (
89 ; uint16_t n
90 ; );
91 ;
92 ; Return Value:
93 ; Squareroot of n.
94 ;
95 ; Size = 33 words
96 ; Clock = 181..189 cycles
97 ; Stack = 0 byte
98
99 .global isqrt16
100 .func isqrt16
101
102:isqrt.S **** isqrt16:
103:isqrt.S **** clr r18
104:isqrt.S **** clr r19
105:isqrt.S **** ldi r20, 1
106:isqrt.S **** clr r21
107:isqrt.S **** ldi r22, 8
108:isqrt.S **** 1: lsl r24
109:isqrt.S **** rol r25
110:isqrt.S **** rol r18
111:isqrt.S **** rol r19
112:isqrt.S **** lsl r24
113:isqrt.S **** rol r25
114:isqrt.S **** rol r18
115:isqrt.S **** rol r19
116:isqrt.S **** brpl 2f
117:isqrt.S **** add r18, r20
118:isqrt.S **** adc r19, r21
119:isqrt.S **** rjmp 3f
120:isqrt.S **** 2: sub r18, r20
121:isqrt.S **** sbc r19, r21
122:isqrt.S **** 3: lsl r20
123:isqrt.S **** rol r21
124:isqrt.S **** andi r20, 0b11111000
125:isqrt.S **** ori r20, 0b00000101
126:isqrt.S **** sbrc r19, 7
127:isqrt.S **** subi r20, 2
128:isqrt.S **** dec r22
129:isqrt.S **** brne 1b
130:isqrt.S **** lsr r21
131:isqrt.S **** ror r20
132:isqrt.S **** lsr r21
133:isqrt.S **** ror r20
134:isqrt.S **** mov r24, r20
135 ret
136 .endfunc
137
138
139
140 ;-----------------------------------------------------------------------------:
141 ; 16bit integer hypot (megaAVR is required)
142 ;-----------------------------------------------------------------------------;
143 ; uint16_t ihypot (
144 ; int16_t x,
145 ; int16_t y
146 ; );
147 ;
148 ; Return Value:
149 ; Squareroot of (x*x + y*y)
150 ;
151 ; Size = 42 words
152 ; Clock = 581..597 cycles
153 ; Stack = 0 byte
154
155 .global ihypot
156 .func ihypot
157
158:isqrt.S **** ihypot:
159:isqrt.S **** clr r26
160:isqrt.S **** sbrs r25, 7
161:isqrt.S **** rjmp 1f
162:isqrt.S **** com r24
163:isqrt.S **** com r25
164:isqrt.S **** adc r24, r26
165:isqrt.S **** adc r25, r26
166:isqrt.S **** 1: sbrs r23, 7
167:isqrt.S **** rjmp 2f
168:isqrt.S **** com r22
169:isqrt.S **** com r23
170:isqrt.S **** adc r22, r26
171:isqrt.S **** adc r23, r26
172:isqrt.S **** 2: mul r22, r22
173:isqrt.S **** movw r18, r0
174:isqrt.S **** mul r23, r23
175:isqrt.S **** movw r20, r0
176:isqrt.S **** mul r22, r23
177:isqrt.S **** add r19, r0
178:isqrt.S **** adc r20, r1
179:isqrt.S **** adc r21, r26
180:isqrt.S **** add r19, r0
181:isqrt.S **** adc r20, r1
182:isqrt.S **** adc r21, r26
183:isqrt.S **** mul r24, r24
184:isqrt.S **** movw r30, r0
185:isqrt.S **** mul r25, r25
186:isqrt.S **** add r18, r30
187:isqrt.S **** adc r19, r31
188:isqrt.S **** adc r20, r0
189:isqrt.S **** adc r21, r1
190:isqrt.S **** mul r24, r25
191:isqrt.S **** add r19, r0
192:isqrt.S **** adc r20, r1
193:isqrt.S **** adc r21, r26
194:isqrt.S **** add r19, r0
195:isqrt.S **** adc r20, r1
196:isqrt.S **** adc r21, r26
197:isqrt.S **** movw r24, r20
198:isqrt.S **** movw r22, r18
199:isqrt.S **** clr r1
200 rjmp isqrt32
DEFINED SYMBOLS
isqrt.S:26 .text:00000000 isqrt32
isqrt.S:101 .text:0000006a isqrt16
isqrt.S:157 .text:000000ac ihypot
 
NO UNDEFINED SYMBOLS
/Spektrum-Diversity/V0.82a/jetimenu.c
0,0 → 1,162
#include "jetimenu.h"
#include "libfc.h"
#include "printf_P.h"
#include "main.h"
#include "spi.h"
#include "capacity.h"
 
#define JETIBOX_KEY_RIGHT 0x1F
#define JETIBOX_KEY_UP 0x2F
#define JETIBOX_KEY_DOWN 0x4F
#define JETIBOX_KEY_LEFT 0x8F
#define JETIBOX_KEY_NONE 0x0F
#define JETIBOX_KEY_UNDEF 0x00
 
#define JetiBox_printfxy(x,y,format, args...) { LIBFC_JetiBox_SetPos(y * 16 + x); _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
#define JetiBox_printf(format, args...) { _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
 
// -----------------------------------------------------------
// the menu functions
// -----------------------------------------------------------
 
void Menu_Status(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%2i.%1iV",UBat/10, UBat%10);
if(NaviDataOkay)
{
// JetiBox_printfxy(6,0,"%03dm %03d%c", GPSInfo.HomeDistance/10,GPSInfo.HomeBearing, 0xDF);
JetiBox_printfxy(6,0,"%3d%c %03dm",(int)(ErsatzKompass / GIER_GRAD_FAKTOR), 0xDF, GPSInfo.HomeDistance/10);
}
else
{
JetiBox_printfxy(6,0,"Status");
}
if(NC_ErrorCode) JetiBox_printfxy(6,0,"ERROR: %2d",NC_ErrorCode);
JetiBox_printfxy(0,1,"%4i %2i:%02i",Capacity.UsedCapacity,FlugSekunden/60,FlugSekunden%60);
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
JetiBox_printfxy(10,1,"%4im%c", (int16_t)(HoehenWert/100),VarioCharacter);
}
}
 
 
void Menu_Temperature(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%3i %3i %3i %3i", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature);
JetiBox_printfxy(0,1,"%3i %3i %3i %3i", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature);
if(RequiredMotors <= 4)
{
JetiBox_printfxy(0,1,"Temperatures ");
}
else
if(RequiredMotors <= 6)
{
JetiBox_printfxy(8,1,"\%cC ",0xdf);
}
 
}
 
void Menu_Battery(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%2i.%1iV %3i.%1iA", UBat/10, UBat%10, Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
JetiBox_printfxy(0,1,"%4iW %6imAh",Capacity.ActualPower, Capacity.UsedCapacity);
}
 
 
void Menu_PosInfo(uint8_t key)
{
if(NaviDataOkay)
{
JetiBox_printfxy(0,0,"%2um/s Sat:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
switch (GPSInfo.SatFix)
{
case SATFIX_3D:
JetiBox_printfxy(12,0," 3D");
break;
 
case SATFIX_2D:
case SATFIX_NONE:
default:
JetiBox_printfxy(12,0,"NoFx");
break;
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
{
JetiBox_printfxy(12,0,"DGPS");
}
JetiBox_printfxy(0,1,"Home:%3dm %3d%c", GPSInfo.HomeDistance/10, GPSInfo.HomeBearing, 0xDF);
}
else
{ //0123456789ABCDEF
JetiBox_printfxy(2,0,"No NaviCtrl!");
}
}
 
 
// -----------------------------------------------------------
// the menu topology
// -----------------------------------------------------------
typedef void (*pFctMenu) (uint8_t); // the menu item handler function pointer
 
typedef struct{
int8_t left;
int8_t right;
int8_t up;
int8_t down;
pFctMenu pHandler;
} MENU_ENTRY;
 
 
// the menu navigation structure
/* |
 
3 - 0 - 1 - 2 - 3 - 0
 
*/
 
const MENU_ENTRY JetiBox_Menu[] PROGMEM=
{ // l r u d pHandler
{3, 1, 0, 0, &Menu_Status }, // 0
{0, 2, 1, 1, &Menu_Temperature }, // 1
{1, 3, 2, 2, &Menu_Battery }, // 2
{2, 0, 3, 3, &Menu_PosInfo }, // 3
};
 
// -----------------------------------------------------------
// Update display buffer
// -----------------------------------------------------------
unsigned char JetiBox_Update(unsigned char key)
{
static uint8_t item = 0, last_item = 0; // the menu item
 
// navigate within the menu by key action
last_item = item;
switch(key)
{
case JETIBOX_KEY_LEFT:
if (item == 0) return (1); // switch back to jeti expander menu
else item = pgm_read_byte(&JetiBox_Menu[item].left); //trigger to left menu item
break;
case JETIBOX_KEY_RIGHT:
item = pgm_read_byte(&JetiBox_Menu[item].right); //trigger to right menu item
break;
case JETIBOX_KEY_UP:
item = pgm_read_byte(&JetiBox_Menu[item].up); //trigger to up menu item
break;
case JETIBOX_KEY_DOWN:
item = pgm_read_byte(&JetiBox_Menu[item].down); //trigger to down menu item
break;
default:
break;
}
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
 
LIBFC_JetiBox_Clear();
//execute menu item handler
((pFctMenu)(pgm_read_word(&(JetiBox_Menu[item].pHandler))))(key);
return (0);
}
 
/Spektrum-Diversity/V0.82a/jetimenu.d
0,0 → 1,3
jetimenu.o jetimenu.d : jetimenu.c jetimenu.h libfc.h printf_P.h main.h old_macros.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h capacity.h eeprom.h debug.h
/Spektrum-Diversity/V0.82a/jetimenu.h
0,0 → 1,6
#ifndef _JETIMENU_H
#define _JETIMENU_H
 
extern unsigned char JetiBox_Update(unsigned char key);
 
#endif //_JETIMENU_H
/Spektrum-Diversity/V0.82a/jetimenu.lst
0,0 → 1,834
1 .file "jetimenu.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global JetiBox_Update
12 JetiBox_Update:
13 /* prologue: frame size=0 */
14 0000 1F93 push r17
15 /* prologue end (size=1) */
16 0002 182F mov r17,r24
17 0004 9091 0000 lds r25,item.2616
18 0008 9093 0000 sts last_item.2617,r25
19 000c 8F32 cpi r24,lo8(47)
20 000e 01F0 breq .L4
21 0010 8033 cpi r24,lo8(48)
22 0012 00F4 brsh .L7
23 0014 8F31 cpi r24,lo8(31)
24 0016 01F4 brne .L2
25 0018 00C0 rjmp .L3
26 .L7:
27 001a 8F34 cpi r24,lo8(79)
28 001c 01F0 breq .L5
29 001e 8F38 cpi r24,lo8(-113)
30 0020 01F4 brne .L2
31 0022 9923 tst r25
32 0024 01F4 brne .L8
33 0026 81E0 ldi r24,lo8(1)
34 0028 90E0 ldi r25,hi8(1)
35 002a 00C0 rjmp .L10
36 .L8:
37 002c E6E0 ldi r30,lo8(6)
38 002e 9E9F mul r25,r30
39 0030 F001 movw r30,r0
40 0032 1124 clr r1
41 0034 E050 subi r30,lo8(-(JetiBox_Menu))
42 0036 F040 sbci r31,hi8(-(JetiBox_Menu))
43 /* #APP */
44 0038 E491 lpm r30, Z
45
46 /* #NOAPP */
47 003a 00C0 rjmp .L14
48 .L3:
49 003c E6E0 ldi r30,lo8(6)
50 003e 9E9F mul r25,r30
51 0040 F001 movw r30,r0
52 0042 1124 clr r1
53 0044 E050 subi r30,lo8(-(JetiBox_Menu+1))
54 0046 F040 sbci r31,hi8(-(JetiBox_Menu+1))
55 /* #APP */
56 0048 E491 lpm r30, Z
57
58 /* #NOAPP */
59 004a 00C0 rjmp .L14
60 .L4:
61 004c E6E0 ldi r30,lo8(6)
62 004e 9E9F mul r25,r30
63 0050 F001 movw r30,r0
64 0052 1124 clr r1
65 0054 E050 subi r30,lo8(-(JetiBox_Menu+2))
66 0056 F040 sbci r31,hi8(-(JetiBox_Menu+2))
67 /* #APP */
68 0058 E491 lpm r30, Z
69
70 /* #NOAPP */
71 005a 00C0 rjmp .L14
72 .L5:
73 005c E6E0 ldi r30,lo8(6)
74 005e 9E9F mul r25,r30
75 0060 F001 movw r30,r0
76 0062 1124 clr r1
77 0064 E050 subi r30,lo8(-(JetiBox_Menu+3))
78 0066 F040 sbci r31,hi8(-(JetiBox_Menu+3))
79 /* #APP */
80 0068 E491 lpm r30, Z
81
82 /* #NOAPP */
83 .L14:
84 006a E093 0000 sts item.2616,r30
85 .L2:
86 006e 8091 0000 lds r24,item.2616
87 0072 8913 cpse r24,r25
88 0074 10E0 ldi r17,lo8(0)
89 .L11:
90 0076 0E94 0000 call LIBFC_JetiBox_Clear
91 007a E091 0000 lds r30,item.2616
92 007e 86E0 ldi r24,lo8(6)
93 0080 E89F mul r30,r24
94 0082 F001 movw r30,r0
95 0084 1124 clr r1
96 0086 E050 subi r30,lo8(-(JetiBox_Menu+4))
97 0088 F040 sbci r31,hi8(-(JetiBox_Menu+4))
98 /* #APP */
99 008a 2591 lpm r18, Z+
100 008c 3491 lpm r19, Z
101
102 /* #NOAPP */
103 008e 812F mov r24,r17
104 0090 F901 movw r30,r18
105 0092 0995 icall
106 0094 80E0 ldi r24,lo8(0)
107 0096 90E0 ldi r25,hi8(0)
108 .L10:
109 /* epilogue: frame size=0 */
110 0098 1F91 pop r17
111 009a 0895 ret
112 /* epilogue end (size=2) */
113 /* function JetiBox_Update size 95 (92) */
115 .global Menu_PosInfo
117 Menu_PosInfo:
118 /* prologue: frame size=0 */
119 009c CF93 push r28
120 009e DF93 push r29
121 /* prologue end (size=2) */
122 00a0 8091 0000 lds r24,NaviDataOkay
123 00a4 C0E0 ldi r28,lo8(gs(LIBFC_JetiBox_Putchar))
124 00a6 D0E0 ldi r29,hi8(gs(LIBFC_JetiBox_Putchar))
125 00a8 8823 tst r24
126 00aa 01F4 brne .+2
127 00ac 00C0 rjmp .L16
128 00ae 80E0 ldi r24,lo8(0)
129 00b0 0E94 0000 call LIBFC_JetiBox_SetPos
130 00b4 8091 0000 lds r24,GPSInfo+1
131 00b8 90E0 ldi r25,lo8(0)
132 00ba 9F93 push r25
133 00bc 8F93 push r24
134 00be 8091 0000 lds r24,GPSInfo+3
135 00c2 90E0 ldi r25,lo8(0)
136 00c4 9F93 push r25
137 00c6 8F93 push r24
138 00c8 80E0 ldi r24,lo8(__c.2572)
139 00ca 90E0 ldi r25,hi8(__c.2572)
140 00cc 9F93 push r25
141 00ce 8F93 push r24
142 00d0 DF93 push r29
143 00d2 CF93 push r28
144 00d4 E091 0000 lds r30,_printf_P
145 00d8 F091 0000 lds r31,(_printf_P)+1
146 00dc 0995 icall
147 00de 8DB7 in r24,__SP_L__
148 00e0 9EB7 in r25,__SP_H__
149 00e2 0896 adiw r24,8
150 00e4 8DBF out __SP_L__,r24
151 00e6 8091 0000 lds r24,GPSInfo+2
152 00ea 8330 cpi r24,lo8(3)
153 00ec 01F4 brne .L18
154 00ee 8CE0 ldi r24,lo8(12)
155 00f0 0E94 0000 call LIBFC_JetiBox_SetPos
156 00f4 80E0 ldi r24,lo8(__c.2575)
157 00f6 90E0 ldi r25,hi8(__c.2575)
158 00f8 00C0 rjmp .L25
159 .L18:
160 00fa 8CE0 ldi r24,lo8(12)
161 00fc 0E94 0000 call LIBFC_JetiBox_SetPos
162 0100 80E0 ldi r24,lo8(__c.2581)
163 0102 90E0 ldi r25,hi8(__c.2581)
164 .L25:
165 0104 9F93 push r25
166 0106 8F93 push r24
167 0108 DF93 push r29
168 010a CF93 push r28
169 010c E091 0000 lds r30,_printf_P
170 0110 F091 0000 lds r31,(_printf_P)+1
171 0114 0995 icall
172 0116 0F90 pop __tmp_reg__
173 0118 0F90 pop __tmp_reg__
174 011a 0F90 pop __tmp_reg__
175 011c 0F90 pop __tmp_reg__
176 011e 8091 0000 lds r24,GPSInfo
177 0122 81FF sbrs r24,1
178 0124 00C0 rjmp .L21
179 0126 8CE0 ldi r24,lo8(12)
180 0128 0E94 0000 call LIBFC_JetiBox_SetPos
181 012c 80E0 ldi r24,lo8(__c.2583)
182 012e 90E0 ldi r25,hi8(__c.2583)
183 0130 9F93 push r25
184 0132 8F93 push r24
185 0134 80E0 ldi r24,lo8(gs(LIBFC_JetiBox_Putchar))
186 0136 90E0 ldi r25,hi8(gs(LIBFC_JetiBox_Putchar))
187 0138 9F93 push r25
188 013a 8F93 push r24
189 013c E091 0000 lds r30,_printf_P
190 0140 F091 0000 lds r31,(_printf_P)+1
191 0144 0995 icall
192 0146 0F90 pop __tmp_reg__
193 0148 0F90 pop __tmp_reg__
194 014a 0F90 pop __tmp_reg__
195 014c 0F90 pop __tmp_reg__
196 .L21:
197 014e 80E1 ldi r24,lo8(16)
198 0150 0E94 0000 call LIBFC_JetiBox_SetPos
199 0154 8FED ldi r24,lo8(223)
200 0156 90E0 ldi r25,hi8(223)
201 0158 9F93 push r25
202 015a 8F93 push r24
203 015c 8091 0000 lds r24,GPSInfo+6
204 0160 9091 0000 lds r25,(GPSInfo+6)+1
205 0164 9F93 push r25
206 0166 8F93 push r24
207 0168 8091 0000 lds r24,GPSInfo+4
208 016c 9091 0000 lds r25,(GPSInfo+4)+1
209 0170 6AE0 ldi r22,lo8(10)
210 0172 70E0 ldi r23,hi8(10)
211 0174 0E94 0000 call __udivmodhi4
212 0178 7F93 push r23
213 017a 6F93 push r22
214 017c 80E0 ldi r24,lo8(__c.2585)
215 017e 90E0 ldi r25,hi8(__c.2585)
216 0180 9F93 push r25
217 0182 8F93 push r24
218 0184 80E0 ldi r24,lo8(gs(LIBFC_JetiBox_Putchar))
219 0186 90E0 ldi r25,hi8(gs(LIBFC_JetiBox_Putchar))
220 0188 9F93 push r25
221 018a 8F93 push r24
222 018c E091 0000 lds r30,_printf_P
223 0190 F091 0000 lds r31,(_printf_P)+1
224 0194 0995 icall
225 0196 8DB7 in r24,__SP_L__
226 0198 9EB7 in r25,__SP_H__
227 019a 0A96 adiw r24,10
228 019c 8DBF out __SP_L__,r24
229 019e 00C0 rjmp .L24
230 .L16:
231 01a0 82E0 ldi r24,lo8(2)
232 01a2 0E94 0000 call LIBFC_JetiBox_SetPos
233 01a6 80E0 ldi r24,lo8(__c.2587)
234 01a8 90E0 ldi r25,hi8(__c.2587)
235 01aa 9F93 push r25
236 01ac 8F93 push r24
237 01ae DF93 push r29
238 01b0 CF93 push r28
239 01b2 E091 0000 lds r30,_printf_P
240 01b6 F091 0000 lds r31,(_printf_P)+1
241 01ba 0995 icall
242 01bc 0F90 pop __tmp_reg__
243 01be 0F90 pop __tmp_reg__
244 01c0 0F90 pop __tmp_reg__
245 01c2 0F90 pop __tmp_reg__
246 .L24:
247 /* epilogue: frame size=0 */
248 01c4 DF91 pop r29
249 01c6 CF91 pop r28
250 01c8 0895 ret
251 /* epilogue end (size=3) */
252 /* function Menu_PosInfo size 151 (146) */
254 .global Menu_Battery
256 Menu_Battery:
257 /* prologue: frame size=0 */
258 01ca EF92 push r14
259 01cc FF92 push r15
260 01ce 0F93 push r16
261 01d0 1F93 push r17
262 /* prologue end (size=4) */
263 01d2 80E0 ldi r24,lo8(0)
264 01d4 0E94 0000 call LIBFC_JetiBox_SetPos
265 01d8 E090 0000 lds r14,_printf_P
266 01dc F090 0000 lds r15,(_printf_P)+1
267 01e0 2091 0000 lds r18,Capacity
268 01e4 3091 0000 lds r19,(Capacity)+1
269 01e8 C901 movw r24,r18
270 01ea 6AE0 ldi r22,lo8(10)
271 01ec 70E0 ldi r23,hi8(10)
272 01ee 0E94 0000 call __udivmodhi4
273 01f2 8C01 movw r16,r24
274 01f4 C901 movw r24,r18
275 01f6 6AE0 ldi r22,lo8(10)
276 01f8 70E0 ldi r23,hi8(10)
277 01fa 0E94 0000 call __udivmodhi4
278 01fe FB01 movw r30,r22
279 0200 8091 0000 lds r24,UBat
280 0204 9091 0000 lds r25,(UBat)+1
281 0208 6AE0 ldi r22,lo8(10)
282 020a 70E0 ldi r23,hi8(10)
283 020c 0E94 0000 call __divmodhi4
284 0210 9C01 movw r18,r24
285 0212 8091 0000 lds r24,UBat
286 0216 9091 0000 lds r25,(UBat)+1
287 021a 6AE0 ldi r22,lo8(10)
288 021c 70E0 ldi r23,hi8(10)
289 021e 0E94 0000 call __divmodhi4
290 0222 1F93 push r17
291 0224 0F93 push r16
292 0226 FF93 push r31
293 0228 EF93 push r30
294 022a 3F93 push r19
295 022c 2F93 push r18
296 022e 7F93 push r23
297 0230 6F93 push r22
298 0232 80E0 ldi r24,lo8(__c.2555)
299 0234 90E0 ldi r25,hi8(__c.2555)
300 0236 9F93 push r25
301 0238 8F93 push r24
302 023a 00E0 ldi r16,lo8(gs(LIBFC_JetiBox_Putchar))
303 023c 10E0 ldi r17,hi8(gs(LIBFC_JetiBox_Putchar))
304 023e 1F93 push r17
305 0240 0F93 push r16
306 0242 F701 movw r30,r14
307 0244 0995 icall
308 0246 80E1 ldi r24,lo8(16)
309 0248 0E94 0000 call LIBFC_JetiBox_SetPos
310 024c E091 0000 lds r30,_printf_P
311 0250 F091 0000 lds r31,(_printf_P)+1
312 0254 8091 0000 lds r24,Capacity+4
313 0258 9091 0000 lds r25,(Capacity+4)+1
314 025c 2091 0000 lds r18,Capacity+2
315 0260 3091 0000 lds r19,(Capacity+2)+1
316 0264 9F93 push r25
317 0266 8F93 push r24
318 0268 3F93 push r19
319 026a 2F93 push r18
320 026c 80E0 ldi r24,lo8(__c.2557)
321 026e 90E0 ldi r25,hi8(__c.2557)
322 0270 9F93 push r25
323 0272 8F93 push r24
324 0274 1F93 push r17
325 0276 0F93 push r16
326 0278 0995 icall
327 027a 8DB7 in r24,__SP_L__
328 027c 9EB7 in r25,__SP_H__
329 027e 4496 adiw r24,20
330 0280 8DBF out __SP_L__,r24
331 /* epilogue: frame size=0 */
332 0282 1F91 pop r17
333 0284 0F91 pop r16
334 0286 FF90 pop r15
335 0288 EF90 pop r14
336 028a 0895 ret
337 /* epilogue end (size=5) */
338 /* function Menu_Battery size 97 (88) */
340 .global Menu_Temperature
342 Menu_Temperature:
343 /* prologue: frame size=0 */
344 028c CF93 push r28
345 028e DF93 push r29
346 /* prologue end (size=2) */
347 0290 80E0 ldi r24,lo8(0)
348 0292 0E94 0000 call LIBFC_JetiBox_SetPos
349 0296 8091 0000 lds r24,Motor+31
350 029a 9927 clr r25
351 029c 87FD sbrc r24,7
352 029e 9095 com r25
353 02a0 9F93 push r25
354 02a2 8F93 push r24
355 02a4 8091 0000 lds r24,Motor+23
356 02a8 9927 clr r25
357 02aa 87FD sbrc r24,7
358 02ac 9095 com r25
359 02ae 9F93 push r25
360 02b0 8F93 push r24
361 02b2 8091 0000 lds r24,Motor+15
362 02b6 9927 clr r25
363 02b8 87FD sbrc r24,7
364 02ba 9095 com r25
365 02bc 9F93 push r25
366 02be 8F93 push r24
367 02c0 8091 0000 lds r24,Motor+7
368 02c4 9927 clr r25
369 02c6 87FD sbrc r24,7
370 02c8 9095 com r25
371 02ca 9F93 push r25
372 02cc 8F93 push r24
373 02ce 80E0 ldi r24,lo8(__c.2526)
374 02d0 90E0 ldi r25,hi8(__c.2526)
375 02d2 9F93 push r25
376 02d4 8F93 push r24
377 02d6 C0E0 ldi r28,lo8(gs(LIBFC_JetiBox_Putchar))
378 02d8 D0E0 ldi r29,hi8(gs(LIBFC_JetiBox_Putchar))
379 02da DF93 push r29
380 02dc CF93 push r28
381 02de E091 0000 lds r30,_printf_P
382 02e2 F091 0000 lds r31,(_printf_P)+1
383 02e6 0995 icall
384 02e8 80E1 ldi r24,lo8(16)
385 02ea 0E94 0000 call LIBFC_JetiBox_SetPos
386 02ee 8091 0000 lds r24,Motor+63
387 02f2 9927 clr r25
388 02f4 87FD sbrc r24,7
389 02f6 9095 com r25
390 02f8 9F93 push r25
391 02fa 8F93 push r24
392 02fc 8091 0000 lds r24,Motor+55
393 0300 9927 clr r25
394 0302 87FD sbrc r24,7
395 0304 9095 com r25
396 0306 9F93 push r25
397 0308 8F93 push r24
398 030a 8091 0000 lds r24,Motor+47
399 030e 9927 clr r25
400 0310 87FD sbrc r24,7
401 0312 9095 com r25
402 0314 9F93 push r25
403 0316 8F93 push r24
404 0318 8091 0000 lds r24,Motor+39
405 031c 9927 clr r25
406 031e 87FD sbrc r24,7
407 0320 9095 com r25
408 0322 9F93 push r25
409 0324 8F93 push r24
410 0326 80E0 ldi r24,lo8(__c.2528)
411 0328 90E0 ldi r25,hi8(__c.2528)
412 032a 9F93 push r25
413 032c 8F93 push r24
414 032e DF93 push r29
415 0330 CF93 push r28
416 0332 E091 0000 lds r30,_printf_P
417 0336 F091 0000 lds r31,(_printf_P)+1
418 033a 0995 icall
419 033c 8091 0000 lds r24,RequiredMotors
420 0340 2DB7 in r18,__SP_L__
421 0342 3EB7 in r19,__SP_H__
422 0344 285E subi r18,lo8(-(24))
423 0346 3F4F sbci r19,hi8(-(24))
424 0348 2DBF out __SP_L__,r18
425 034a 8530 cpi r24,lo8(5)
426 034c 00F4 brsh .L29
427 034e 80E1 ldi r24,lo8(16)
428 0350 0E94 0000 call LIBFC_JetiBox_SetPos
429 0354 80E0 ldi r24,lo8(__c.2530)
430 0356 90E0 ldi r25,hi8(__c.2530)
431 0358 9F93 push r25
432 035a 8F93 push r24
433 035c DF93 push r29
434 035e CF93 push r28
435 0360 E091 0000 lds r30,_printf_P
436 0364 F091 0000 lds r31,(_printf_P)+1
437 0368 0995 icall
438 036a 0F90 pop __tmp_reg__
439 036c 0F90 pop __tmp_reg__
440 036e 0F90 pop __tmp_reg__
441 0370 0F90 pop __tmp_reg__
442 0372 00C0 rjmp .L33
443 .L29:
444 0374 8730 cpi r24,lo8(7)
445 0376 00F4 brsh .L33
446 0378 88E1 ldi r24,lo8(24)
447 037a 0E94 0000 call LIBFC_JetiBox_SetPos
448 037e 8FED ldi r24,lo8(223)
449 0380 90E0 ldi r25,hi8(223)
450 0382 9F93 push r25
451 0384 8F93 push r24
452 0386 80E0 ldi r24,lo8(__c.2532)
453 0388 90E0 ldi r25,hi8(__c.2532)
454 038a 9F93 push r25
455 038c 8F93 push r24
456 038e DF93 push r29
457 0390 CF93 push r28
458 0392 E091 0000 lds r30,_printf_P
459 0396 F091 0000 lds r31,(_printf_P)+1
460 039a 0995 icall
461 039c 8DB7 in r24,__SP_L__
462 039e 9EB7 in r25,__SP_H__
463 03a0 0696 adiw r24,6
464 03a2 8DBF out __SP_L__,r24
465 .L33:
466 /* epilogue: frame size=0 */
467 03a4 DF91 pop r29
468 03a6 CF91 pop r28
469 03a8 0895 ret
470 /* epilogue end (size=3) */
471 /* function Menu_Temperature size 143 (138) */
473 .global Menu_Status
475 Menu_Status:
476 /* prologue: frame size=0 */
477 03aa EF92 push r14
478 03ac FF92 push r15
479 03ae 0F93 push r16
480 03b0 1F93 push r17
481 03b2 CF93 push r28
482 03b4 DF93 push r29
483 /* prologue end (size=6) */
484 03b6 80E0 ldi r24,lo8(0)
485 03b8 0E94 0000 call LIBFC_JetiBox_SetPos
486 03bc E091 0000 lds r30,_printf_P
487 03c0 F091 0000 lds r31,(_printf_P)+1
488 03c4 8091 0000 lds r24,UBat
489 03c8 9091 0000 lds r25,(UBat)+1
490 03cc 6AE0 ldi r22,lo8(10)
491 03ce 70E0 ldi r23,hi8(10)
492 03d0 0E94 0000 call __divmodhi4
493 03d4 9C01 movw r18,r24
494 03d6 8091 0000 lds r24,UBat
495 03da 9091 0000 lds r25,(UBat)+1
496 03de 6AE0 ldi r22,lo8(10)
497 03e0 70E0 ldi r23,hi8(10)
498 03e2 0E94 0000 call __divmodhi4
499 03e6 3F93 push r19
500 03e8 2F93 push r18
501 03ea 7F93 push r23
502 03ec 6F93 push r22
503 03ee 80E0 ldi r24,lo8(__c.2484)
504 03f0 90E0 ldi r25,hi8(__c.2484)
505 03f2 9F93 push r25
506 03f4 8F93 push r24
507 03f6 C0E0 ldi r28,lo8(gs(LIBFC_JetiBox_Putchar))
508 03f8 D0E0 ldi r29,hi8(gs(LIBFC_JetiBox_Putchar))
509 03fa DF93 push r29
510 03fc CF93 push r28
511 03fe 0995 icall
512 0400 2DB7 in r18,__SP_L__
513 0402 3EB7 in r19,__SP_H__
514 0404 285F subi r18,lo8(-(8))
515 0406 3F4F sbci r19,hi8(-(8))
516 0408 2DBF out __SP_L__,r18
517 040a 8091 0000 lds r24,NaviDataOkay
518 040e 8823 tst r24
519 0410 01F0 breq .L35
520 0412 86E0 ldi r24,lo8(6)
521 0414 0E94 0000 call LIBFC_JetiBox_SetPos
522 0418 E090 0000 lds r14,_printf_P
523 041c F090 0000 lds r15,(_printf_P)+1
524 0420 8091 0000 lds r24,GPSInfo+4
525 0424 9091 0000 lds r25,(GPSInfo+4)+1
526 0428 6AE0 ldi r22,lo8(10)
527 042a 70E0 ldi r23,hi8(10)
528 042c 0E94 0000 call __udivmodhi4
529 0430 8B01 movw r16,r22
530 0432 6091 0000 lds r22,ErsatzKompass
531 0436 7091 0000 lds r23,(ErsatzKompass)+1
532 043a 8091 0000 lds r24,(ErsatzKompass)+2
533 043e 9091 0000 lds r25,(ErsatzKompass)+3
534 0442 2091 0000 lds r18,GIER_GRAD_FAKTOR
535 0446 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
536 044a 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
537 044e 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
538 0452 0E94 0000 call __divmodsi4
539 0456 1F93 push r17
540 0458 0F93 push r16
541 045a 8FED ldi r24,lo8(223)
542 045c 90E0 ldi r25,hi8(223)
543 045e 9F93 push r25
544 0460 8F93 push r24
545 0462 3F93 push r19
546 0464 2F93 push r18
547 0466 80E0 ldi r24,lo8(__c.2486)
548 0468 90E0 ldi r25,hi8(__c.2486)
549 046a 9F93 push r25
550 046c 8F93 push r24
551 046e DF93 push r29
552 0470 CF93 push r28
553 0472 F701 movw r30,r14
554 0474 0995 icall
555 0476 8DB7 in r24,__SP_L__
556 0478 9EB7 in r25,__SP_H__
557 047a 0A96 adiw r24,10
558 047c 8DBF out __SP_L__,r24
559 047e 00C0 rjmp .L37
560 .L35:
561 0480 86E0 ldi r24,lo8(6)
562 0482 0E94 0000 call LIBFC_JetiBox_SetPos
563 0486 E091 0000 lds r30,_printf_P
564 048a F091 0000 lds r31,(_printf_P)+1
565 048e 80E0 ldi r24,lo8(__c.2488)
566 0490 90E0 ldi r25,hi8(__c.2488)
567 0492 9F93 push r25
568 0494 8F93 push r24
569 0496 DF93 push r29
570 0498 CF93 push r28
571 049a 0995 icall
572 049c 0F90 pop __tmp_reg__
573 049e 0F90 pop __tmp_reg__
574 04a0 0F90 pop __tmp_reg__
575 04a2 0F90 pop __tmp_reg__
576 .L37:
577 04a4 8091 0000 lds r24,NC_ErrorCode
578 04a8 8823 tst r24
579 04aa 01F0 breq .L38
580 04ac 86E0 ldi r24,lo8(6)
581 04ae 0E94 0000 call LIBFC_JetiBox_SetPos
582 04b2 E091 0000 lds r30,_printf_P
583 04b6 F091 0000 lds r31,(_printf_P)+1
584 04ba 8091 0000 lds r24,NC_ErrorCode
585 04be 90E0 ldi r25,lo8(0)
586 04c0 9F93 push r25
587 04c2 8F93 push r24
588 04c4 80E0 ldi r24,lo8(__c.2490)
589 04c6 90E0 ldi r25,hi8(__c.2490)
590 04c8 9F93 push r25
591 04ca 8F93 push r24
592 04cc 80E0 ldi r24,lo8(gs(LIBFC_JetiBox_Putchar))
593 04ce 90E0 ldi r25,hi8(gs(LIBFC_JetiBox_Putchar))
594 04d0 9F93 push r25
595 04d2 8F93 push r24
596 04d4 0995 icall
597 04d6 2DB7 in r18,__SP_L__
598 04d8 3EB7 in r19,__SP_H__
599 04da 2A5F subi r18,lo8(-(6))
600 04dc 3F4F sbci r19,hi8(-(6))
601 04de 2DBF out __SP_L__,r18
602 .L38:
603 04e0 80E1 ldi r24,lo8(16)
604 04e2 0E94 0000 call LIBFC_JetiBox_SetPos
605 04e6 0091 0000 lds r16,_printf_P
606 04ea 1091 0000 lds r17,(_printf_P)+1
607 04ee 2091 0000 lds r18,FlugSekunden
608 04f2 3091 0000 lds r19,(FlugSekunden)+1
609 04f6 C901 movw r24,r18
610 04f8 6CE3 ldi r22,lo8(60)
611 04fa 70E0 ldi r23,hi8(60)
612 04fc 0E94 0000 call __udivmodhi4
613 0500 FC01 movw r30,r24
614 0502 C901 movw r24,r18
615 0504 6CE3 ldi r22,lo8(60)
616 0506 70E0 ldi r23,hi8(60)
617 0508 0E94 0000 call __udivmodhi4
618 050c 8091 0000 lds r24,Capacity+4
619 0510 9091 0000 lds r25,(Capacity+4)+1
620 0514 FF93 push r31
621 0516 EF93 push r30
622 0518 7F93 push r23
623 051a 6F93 push r22
624 051c 9F93 push r25
625 051e 8F93 push r24
626 0520 80E0 ldi r24,lo8(__c.2492)
627 0522 90E0 ldi r25,hi8(__c.2492)
628 0524 9F93 push r25
629 0526 8F93 push r24
630 0528 C0E0 ldi r28,lo8(gs(LIBFC_JetiBox_Putchar))
631 052a D0E0 ldi r29,hi8(gs(LIBFC_JetiBox_Putchar))
632 052c DF93 push r29
633 052e CF93 push r28
634 0530 F801 movw r30,r16
635 0532 0995 icall
636 0534 8091 0000 lds r24,EE_Parameter+13
637 0538 2DB7 in r18,__SP_L__
638 053a 3EB7 in r19,__SP_H__
639 053c 265F subi r18,lo8(-(10))
640 053e 3F4F sbci r19,hi8(-(10))
641 0540 2DBF out __SP_L__,r18
642 0542 80FF sbrs r24,0
643 0544 00C0 rjmp .L42
644 0546 8AE1 ldi r24,lo8(26)
645 0548 0E94 0000 call LIBFC_JetiBox_SetPos
646 054c E090 0000 lds r14,_printf_P
647 0550 F090 0000 lds r15,(_printf_P)+1
648 0554 0091 0000 lds r16,VarioCharacter
649 0558 10E0 ldi r17,lo8(0)
650 055a 6091 0000 lds r22,HoehenWert
651 055e 7091 0000 lds r23,(HoehenWert)+1
652 0562 8091 0000 lds r24,(HoehenWert)+2
653 0566 9091 0000 lds r25,(HoehenWert)+3
654 056a 24E6 ldi r18,lo8(100)
655 056c 30E0 ldi r19,hi8(100)
656 056e 40E0 ldi r20,hlo8(100)
657 0570 50E0 ldi r21,hhi8(100)
658 0572 0E94 0000 call __divmodsi4
659 0576 1F93 push r17
660 0578 0F93 push r16
661 057a 3F93 push r19
662 057c 2F93 push r18
663 057e 80E0 ldi r24,lo8(__c.2494)
664 0580 90E0 ldi r25,hi8(__c.2494)
665 0582 9F93 push r25
666 0584 8F93 push r24
667 0586 DF93 push r29
668 0588 CF93 push r28
669 058a F701 movw r30,r14
670 058c 0995 icall
671 058e 8DB7 in r24,__SP_L__
672 0590 9EB7 in r25,__SP_H__
673 0592 0896 adiw r24,8
674 0594 8DBF out __SP_L__,r24
675 .L42:
676 /* epilogue: frame size=0 */
677 0596 E6E0 ldi r30,6
678 0598 CDB7 in r28,__SP_L__
679 059a DEB7 in r29,__SP_H__
680 059c 0C94 0000 jmp __epilogue_restores__+24
681 /* epilogue end (size=5) */
682 /* function Menu_Status size 251 (240) */
684 .global JetiBox_Menu
685 .section .progmem.data,"a",@progbits
688 JetiBox_Menu:
689 0000 03 .byte 3
690 0001 01 .byte 1
691 0002 00 .byte 0
692 0003 00 .byte 0
693 0004 0000 .word gs(Menu_Status)
694 0006 00 .byte 0
695 0007 02 .byte 2
696 0008 01 .byte 1
697 0009 01 .byte 1
698 000a 0000 .word gs(Menu_Temperature)
699 000c 01 .byte 1
700 000d 03 .byte 3
701 000e 02 .byte 2
702 000f 02 .byte 2
703 0010 0000 .word gs(Menu_Battery)
704 0012 02 .byte 2
705 0013 00 .byte 0
706 0014 03 .byte 3
707 0015 03 .byte 3
708 0016 0000 .word gs(Menu_PosInfo)
709 .lcomm last_item.2617,1
710 .lcomm item.2616,1
713 __c.2587:
714 0018 4E6F 204E .string "No NaviCtrl!"
714 6176 6943
714 7472 6C21
714 00
717 __c.2585:
718 0025 486F 6D65 .string "Home:%3dm %3d%c"
718 3A25 3364
718 6D20 2533
718 6425 6300
721 __c.2583:
722 0035 4447 5053 .string "DGPS"
722 00
725 __c.2581:
726 003a 4E6F 4678 .string "NoFx"
726 00
729 __c.2575:
730 003f 2020 3344 .string " 3D"
730 00
733 __c.2572:
734 0044 2532 756D .string "%2um/s Sat:%d "
734 2F73 2053
734 6174 3A25
734 6420 00
737 __c.2557:
738 0053 2534 6957 .string "%4iW %6imAh"
738 2025 3669
738 6D41 6800
741 __c.2555:
742 005f 2532 692E .string "%2i.%1iV %3i.%1iA"
742 2531 6956
742 2020 2533
742 692E 2531
742 6941 00
745 __c.2532:
746 0072 2563 4320 .string "%cC "
746 2020 2020
746 00
749 __c.2530:
750 007b 5465 6D70 .string "Temperatures "
750 6572 6174
750 7572 6573
750 2020 2020
750 00
753 __c.2528:
754 008c 2533 6920 .string "%3i %3i %3i %3i"
754 2533 6920
754 2533 6920
754 2533 6900
757 __c.2526:
758 009c 2533 6920 .string "%3i %3i %3i %3i"
758 2533 6920
758 2533 6920
758 2533 6900
761 __c.2494:
762 00ac 2534 696D .string "%4im%c"
762 2563 00
765 __c.2492:
766 00b3 2534 6920 .string "%4i %2i:%02i"
766 2532 693A
766 2530 3269
766 00
769 __c.2490:
770 00c0 4552 524F .string "ERROR: %2d"
770 523A 2025
770 3264 00
773 __c.2488:
774 00cb 5374 6174 .string "Status"
774 7573 00
777 __c.2486:
778 00d2 2533 6425 .string "%3d%c %03dm"
778 6320 2530
778 3364 6D00
781 __c.2484:
782 00de 2532 692E .string "%2i.%1iV"
782 2531 6956
782 00
783 /* File "jetimenu.c": code 737 = 0x02e1 ( 704), prologues 15, epilogues 18 */
DEFINED SYMBOLS
*ABS*:00000000 jetimenu.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:12 .text:00000000 JetiBox_Update
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:709 .bss:00000001 item.2616
.bss:00000000 last_item.2617
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:688 .progmem.data:00000000 JetiBox_Menu
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:117 .text:0000009c Menu_PosInfo
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:733 .progmem.data:00000044 __c.2572
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:729 .progmem.data:0000003f __c.2575
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:725 .progmem.data:0000003a __c.2581
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:721 .progmem.data:00000035 __c.2583
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:717 .progmem.data:00000025 __c.2585
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:713 .progmem.data:00000018 __c.2587
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:256 .text:000001ca Menu_Battery
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:741 .progmem.data:0000005f __c.2555
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:737 .progmem.data:00000053 __c.2557
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:342 .text:0000028c Menu_Temperature
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:757 .progmem.data:0000009c __c.2526
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:753 .progmem.data:0000008c __c.2528
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:749 .progmem.data:0000007b __c.2530
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:745 .progmem.data:00000072 __c.2532
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:475 .text:000003aa Menu_Status
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:781 .progmem.data:000000de __c.2484
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:777 .progmem.data:000000d2 __c.2486
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:773 .progmem.data:000000cb __c.2488
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:769 .progmem.data:000000c0 __c.2490
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:765 .progmem.data:000000b3 __c.2492
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccFZFH6c.s:761 .progmem.data:000000ac __c.2494
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
LIBFC_JetiBox_Clear
NaviDataOkay
LIBFC_JetiBox_Putchar
LIBFC_JetiBox_SetPos
GPSInfo
_printf_P
__udivmodhi4
Capacity
UBat
__divmodhi4
Motor
RequiredMotors
ErsatzKompass
GIER_GRAD_FAKTOR
__divmodsi4
NC_ErrorCode
FlugSekunden
EE_Parameter
VarioCharacter
HoehenWert
__epilogue_restores__
/Spektrum-Diversity/V0.82a/led.c
0,0 → 1,98
#include <inttypes.h>
#include "main.h"
 
uint16_t LED1_Timing = 0;
uint16_t LED2_Timing = 0;
unsigned char J16Blinkcount = 0, J16Mask = 1;
unsigned char J17Blinkcount = 0, J17Mask = 1;
 
// initializes the LED control outputs J16, J17
void LED_Init(void)
{
// set PC2 & PC3 as output (control of J16 & J17)
DDRC |= (1<<DDC2)|(1<<DDC3);
J16_OFF;
J17_OFF;
J16Blinkcount = 0; J16Mask = 128;
J17Blinkcount = 0; J17Mask = 128;
}
 
// called in UpdateMotors() every 2ms
void LED_Update(void)
{
static char delay = 0;
static unsigned char J16Bitmask = 0;
static unsigned char J17Bitmask = 0;
static unsigned char J16Warn = 0, J17Warn = 0;
if(!delay--) // 10ms Intervall
{
delay = 4;
if(FC_StatusFlags & (FC_STATUS_LOWBAT | FC_STATUS_EMERGENCY_LANDING) || (VersionInfo.HardwareError[1] & FC_ERROR1_I2C))
{
if(EE_Parameter.WARN_J16_Bitmask)
{
if(!J16Warn) J16Blinkcount = 4;
J16Warn = 1;
}
if(EE_Parameter.WARN_J17_Bitmask)
{
if(!J17Warn) J17Blinkcount = 4;
J17Warn = 1;
}
}
else
{
J16Warn = 0;
J17Warn = 0;
J16Bitmask = EE_Parameter.J16Bitmask;
J17Bitmask = EE_Parameter.J17Bitmask;
}
 
if(!J16Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing < 10)) {if(J16Bitmask & 128) J16_OFF; else J16_ON;}
else
if(!J16Blinkcount--)
{
J16Blinkcount = Parameter_J16Timing-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
}
}
else
if(!J16Blinkcount--)
{
J16Blinkcount = 10-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF;
}
 
if(!J17Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing > 220)) {if(J17Bitmask & 128) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing < 10)) {if(J17Bitmask & 128) J17_OFF; else J17_ON;}
else
if(!J17Blinkcount--)
{
J17Blinkcount = Parameter_J17Timing-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF;
}
}
else
if(!J17Blinkcount--)
{
J17Blinkcount = 10-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF;
}
}
}
 
/Spektrum-Diversity/V0.82a/led.d
0,0 → 1,3
led.o led.d : led.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/led.h
0,0 → 1,11
#include <avr/io.h>
 
#define J16_ON PORTC |= (1<<PORTC2)
#define J16_OFF PORTC &= ~(1<<PORTC2)
#define J16_TOGGLE PORTC ^= (1<<PORTC2)
#define J17_ON PORTC |= (1<<PORTC3)
#define J17_OFF PORTC &= ~(1<<PORTC3)
#define J17_TOGGLE PORTC ^= (1<<PORTC3)
 
extern void LED_Init(void);
extern void LED_Update(void);
/Spektrum-Diversity/V0.82a/led.lst
0,0 → 1,308
1 .file "led.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global LED_Init
12 LED_Init:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 87B1 in r24,39-0x20
16 0002 8C60 ori r24,lo8(12)
17 0004 87B9 out 39-0x20,r24
18 0006 4298 cbi 40-0x20,2
19 0008 4398 cbi 40-0x20,3
20 000a 1092 0000 sts J16Blinkcount,__zero_reg__
21 000e 80E8 ldi r24,lo8(-128)
22 0010 8093 0000 sts J16Mask,r24
23 0014 1092 0000 sts J17Blinkcount,__zero_reg__
24 0018 8093 0000 sts J17Mask,r24
25 /* epilogue: frame size=0 */
26 001c 0895 ret
27 /* epilogue end (size=1) */
28 /* function LED_Init size 15 (14) */
30 .global LED_Update
32 LED_Update:
33 /* prologue: frame size=0 */
34 /* prologue end (size=0) */
35 001e 8091 0000 lds r24,delay.2499
36 0022 8150 subi r24,lo8(-(-1))
37 0024 8093 0000 sts delay.2499,r24
38 0028 8F3F cpi r24,lo8(-1)
39 002a 01F0 breq .+2
40 002c 00C0 rjmp .L74
41 002e 94E0 ldi r25,lo8(4)
42 0030 9093 0000 sts delay.2499,r25
43 0034 8091 0000 lds r24,FC_StatusFlags
44 0038 8073 andi r24,lo8(48)
45 003a 01F4 brne .L6
46 003c 8091 0000 lds r24,VersionInfo+6
47 0040 80FF sbrs r24,0
48 0042 00C0 rjmp .L8
49 .L6:
50 0044 8091 0000 lds r24,EE_Parameter+78
51 0048 8823 tst r24
52 004a 01F0 breq .L9
53 004c 8091 0000 lds r24,J16Warn.2502
54 0050 8823 tst r24
55 0052 01F4 brne .L11
56 0054 9093 0000 sts J16Blinkcount,r25
57 .L11:
58 0058 81E0 ldi r24,lo8(1)
59 005a 8093 0000 sts J16Warn.2502,r24
60 .L9:
61 005e 8091 0000 lds r24,EE_Parameter+79
62 0062 8823 tst r24
63 0064 01F0 breq .L13
64 0066 8091 0000 lds r24,J17Warn.2503
65 006a 8823 tst r24
66 006c 01F4 brne .L15
67 006e 84E0 ldi r24,lo8(4)
68 0070 8093 0000 sts J17Blinkcount,r24
69 .L15:
70 0074 81E0 ldi r24,lo8(1)
71 0076 8093 0000 sts J17Warn.2503,r24
72 007a 00C0 rjmp .L13
73 .L8:
74 007c 1092 0000 sts J16Warn.2502,__zero_reg__
75 0080 1092 0000 sts J17Warn.2503,__zero_reg__
76 0084 8091 0000 lds r24,EE_Parameter+74
77 0088 8093 0000 sts J16Bitmask.2500,r24
78 008c 8091 0000 lds r24,EE_Parameter+76
79 0090 8093 0000 sts J17Bitmask.2501,r24
80 .L13:
81 0094 8091 0000 lds r24,J16Warn.2502
82 0098 8823 tst r24
83 009a 01F4 brne .L17
84 009c 8091 0000 lds r24,EE_Parameter+100
85 00a0 282F mov r18,r24
86 00a2 84FF sbrs r24,4
87 00a4 00C0 rjmp .L19
88 00a6 8091 0000 lds r24,MotorenEin
89 00aa 8823 tst r24
90 00ac 01F4 brne .L19
91 00ae 25FD sbrc r18,5
92 00b0 00C0 rjmp .L78
93 00b2 00C0 rjmp .L44
94 .L19:
95 00b4 8091 0000 lds r24,EE_Parameter+75
96 00b8 883F cpi r24,lo8(-8)
97 00ba 00F0 brlo .L25
98 00bc 8091 0000 lds r24,Parameter_J16Timing
99 00c0 8D3D cpi r24,lo8(-35)
100 00c2 00F0 brlo .L27
101 00c4 8091 0000 lds r24,J16Bitmask.2500
102 00c8 8823 tst r24
103 00ca 04F0 brlt .L78
104 00cc 00C0 rjmp .L44
105 .L27:
106 00ce 8A30 cpi r24,lo8(10)
107 00d0 00F4 brsh .L25
108 00d2 8091 0000 lds r24,J16Bitmask.2500
109 00d6 8823 tst r24
110 00d8 04F0 brlt .L44
111 00da 00C0 rjmp .L78
112 .L25:
113 00dc 8091 0000 lds r24,J16Blinkcount
114 00e0 8150 subi r24,lo8(-(-1))
115 00e2 8093 0000 sts J16Blinkcount,r24
116 00e6 8F3F cpi r24,lo8(-1)
117 00e8 01F4 brne .L24
118 00ea 8091 0000 lds r24,Parameter_J16Timing
119 00ee 8150 subi r24,lo8(-(-1))
120 00f0 8093 0000 sts J16Blinkcount,r24
121 00f4 8091 0000 lds r24,J16Mask
122 00f8 8130 cpi r24,lo8(1)
123 00fa 01F4 brne .L35
124 00fc 80E8 ldi r24,lo8(-128)
125 00fe 00C0 rjmp .L75
126 .L35:
127 0100 8695 lsr r24
128 .L75:
129 0102 8093 0000 sts J16Mask,r24
130 0106 8091 0000 lds r24,J16Bitmask.2500
131 010a 00C0 rjmp .L82
132 .L17:
133 010c 8091 0000 lds r24,J16Blinkcount
134 0110 8150 subi r24,lo8(-(-1))
135 0112 8093 0000 sts J16Blinkcount,r24
136 0116 8F3F cpi r24,lo8(-1)
137 0118 01F4 brne .L24
138 011a 89E0 ldi r24,lo8(9)
139 011c 8093 0000 sts J16Blinkcount,r24
140 0120 8091 0000 lds r24,J16Mask
141 0124 8130 cpi r24,lo8(1)
142 0126 01F4 brne .L41
143 0128 80E8 ldi r24,lo8(-128)
144 012a 00C0 rjmp .L76
145 .L41:
146 012c 8695 lsr r24
147 .L76:
148 012e 8093 0000 sts J16Mask,r24
149 0132 8091 0000 lds r24,EE_Parameter+78
150 .L82:
151 0136 9091 0000 lds r25,J16Mask
152 013a 8923 and r24,r25
153 013c 01F0 breq .L44
154 .L78:
155 013e 429A sbi 40-0x20,2
156 0140 00C0 rjmp .L24
157 .L44:
158 0142 4298 cbi 40-0x20,2
159 .L24:
160 0144 8091 0000 lds r24,J17Warn.2503
161 0148 8823 tst r24
162 014a 01F0 breq .+2
163 014c 00C0 rjmp .L46
164 014e 8091 0000 lds r24,EE_Parameter+100
165 0152 282F mov r18,r24
166 0154 84FF sbrs r24,4
167 0156 00C0 rjmp .L48
168 0158 8091 0000 lds r24,MotorenEin
169 015c 8823 tst r24
170 015e 01F4 brne .L48
171 0160 26FD sbrc r18,6
172 0162 00C0 rjmp .L81
173 0164 00C0 rjmp .L66
174 .L48:
175 0166 8091 0000 lds r24,EE_Parameter+77
176 016a 883F cpi r24,lo8(-8)
177 016c 00F0 brlo .L53
178 016e 8091 0000 lds r24,Parameter_J17Timing
179 0172 8D3D cpi r24,lo8(-35)
180 0174 00F0 brlo .L55
181 0176 8091 0000 lds r24,J17Bitmask.2501
182 017a 8823 tst r24
183 017c 04F4 brge .+2
184 017e 00C0 rjmp .L81
185 0180 00C0 rjmp .L66
186 .L55:
187 0182 8A30 cpi r24,lo8(10)
188 0184 00F4 brsh .L53
189 0186 8091 0000 lds r24,J17Bitmask.2501
190 018a 8823 tst r24
191 018c 04F0 brlt .L66
192 018e 00C0 rjmp .L81
193 .L53:
194 0190 8091 0000 lds r24,J17Blinkcount
195 0194 8150 subi r24,lo8(-(-1))
196 0196 8093 0000 sts J17Blinkcount,r24
197 019a 8F3F cpi r24,lo8(-1)
198 019c 01F4 brne .L74
199 019e 8091 0000 lds r24,Parameter_J17Timing
200 01a2 8150 subi r24,lo8(-(-1))
201 01a4 8093 0000 sts J17Blinkcount,r24
202 01a8 8091 0000 lds r24,J17Mask
203 01ac 8130 cpi r24,lo8(1)
204 01ae 01F4 brne .L63
205 01b0 80E8 ldi r24,lo8(-128)
206 01b2 00C0 rjmp .L79
207 .L63:
208 01b4 8695 lsr r24
209 .L79:
210 01b6 8093 0000 sts J17Mask,r24
211 01ba 8091 0000 lds r24,J17Bitmask.2501
212 01be 9091 0000 lds r25,J17Mask
213 01c2 8923 and r24,r25
214 01c4 01F4 brne .L81
215 .L66:
216 01c6 4398 cbi 40-0x20,3
217 01c8 0895 ret
218 .L46:
219 01ca 8091 0000 lds r24,J17Blinkcount
220 01ce 8150 subi r24,lo8(-(-1))
221 01d0 8093 0000 sts J17Blinkcount,r24
222 01d4 8F3F cpi r24,lo8(-1)
223 01d6 01F4 brne .L74
224 01d8 89E0 ldi r24,lo8(9)
225 01da 8093 0000 sts J17Blinkcount,r24
226 01de 8091 0000 lds r24,J17Mask
227 01e2 8130 cpi r24,lo8(1)
228 01e4 01F4 brne .L69
229 01e6 80E8 ldi r24,lo8(-128)
230 01e8 00C0 rjmp .L80
231 .L69:
232 01ea 8695 lsr r24
233 .L80:
234 01ec 8093 0000 sts J17Mask,r24
235 01f0 8091 0000 lds r24,EE_Parameter+79
236 01f4 9091 0000 lds r25,J17Mask
237 01f8 8923 and r24,r25
238 01fa 01F0 breq .L72
239 .L81:
240 01fc 439A sbi 40-0x20,3
241 01fe 0895 ret
242 .L72:
243 0200 4398 cbi 40-0x20,3
244 .L74:
245 0202 0895 ret
246 /* epilogue: frame size=0 */
247 /* epilogue: noreturn */
248 /* epilogue end (size=0) */
249 /* function LED_Update size 251 (251) */
251 .global LED1_Timing
252 .global LED1_Timing
253 .section .bss
256 LED1_Timing:
257 0000 0000 .skip 2,0
258 .global LED2_Timing
259 .global LED2_Timing
262 LED2_Timing:
263 0002 0000 .skip 2,0
264 .global J16Blinkcount
265 .global J16Blinkcount
268 J16Blinkcount:
269 0004 00 .skip 1,0
270 .global J16Mask
271 .data
274 J16Mask:
275 0000 01 .byte 1
276 .global J17Blinkcount
277 .global J17Blinkcount
278 .section .bss
281 J17Blinkcount:
282 0005 00 .skip 1,0
283 .global J17Mask
284 .data
287 J17Mask:
288 0001 01 .byte 1
289 .lcomm J17Warn.2503,1
290 .lcomm J16Warn.2502,1
291 .lcomm J17Bitmask.2501,1
292 .lcomm J16Bitmask.2500,1
293 .lcomm delay.2499,1
294 /* File "led.c": code 266 = 0x010a ( 265), prologues 0, epilogues 1 */
DEFINED SYMBOLS
*ABS*:00000000 led.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:12 .text:00000000 LED_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:268 .bss:00000004 J16Blinkcount
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:274 .data:00000000 J16Mask
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:281 .bss:00000005 J17Blinkcount
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:287 .data:00000001 J17Mask
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:32 .text:0000001e LED_Update
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:292 .bss:0000000a delay.2499
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:289 .bss:00000007 J16Warn.2502
.bss:00000006 J17Warn.2503
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:291 .bss:00000009 J16Bitmask.2500
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:290 .bss:00000008 J17Bitmask.2501
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:256 .bss:00000000 LED1_Timing
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccP8EcZA.s:262 .bss:00000002 LED2_Timing
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
FC_StatusFlags
VersionInfo
EE_Parameter
MotorenEin
Parameter_J16Timing
Parameter_J17Timing
/Spektrum-Diversity/V0.82a/libfc.h
0,0 → 1,20
#ifndef _LIBFC_H
#define _LIBFC_H
 
 
#define CPU_UNKNOWN 0
#define CPU_ATMEGA644 1
#define CPU_ATMEGA644P 2
#define CPU_ATMEGA1284 3
#define CPU_ATMEGA1284P 4
 
extern void LIBFC_Init(void);
extern void LIBFC_Polling(void);
extern void LIBFC_ReceiverInit(unsigned char rtype);
 
extern void LIBFC_JetiBox_Putchar(char c);
extern void LIBFC_JetiBox_SetPos(unsigned char index);
extern void LIBFC_JetiBox_Clear(void);
extern unsigned char LIBFC_GetCPUType(void);
 
#endif //_LIBFC_H
/Spektrum-Diversity/V0.82a/main.c
0,0 → 1,409
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
 
unsigned char PlatinenVersion = 10;
unsigned char SendVersionToNavi = 1;
unsigned char BattLowVoltageWarning = 94;
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0;
unsigned int FlugSekunden = 0;
pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
unsigned char FoundMotors = 0;
 
void CalMk3Mag(void)
{
static unsigned char stick = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0;
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick)
{
stick = 1;
WinkelOut.CalcState++;
if(WinkelOut.CalcState > 4)
{
// WinkelOut.CalcState = 0; // in Uart.c
beeptime = 1000;
}
else Piep(WinkelOut.CalcState,150);
}
DebugOut.Analog[19] = WinkelOut.CalcState;
}
 
 
void LipoDetection(unsigned char print)
{
#define MAX_CELL_VOLTAGE 43 // max cell volatage for LiPO
unsigned int timer, cells;
if(print) printf("\n\rBatt:");
if(EE_Parameter.UnterspannungsWarnung < 50) // automatische Zellenerkennung
{
timer = SetDelay(500);
if(print) while (!CheckDelay(timer));
// up to 6s LiPo, less than 2s is technical impossible
for(cells = 2; cells < 7; cells++)
{
if(UBat < cells * MAX_CELL_VOLTAGE) break;
}
 
BattLowVoltageWarning = cells * EE_Parameter.UnterspannungsWarnung;
if(print)
{
Piep(cells, 200);
printf(" %d Cells ", cells);
}
}
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
if(print) printf(" Low warning level: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
 
DDRB = 0x00;
PORTB = 0x00;
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
PlatinenVersion = 21;
#else
if(PINB & 0x01)
{
if(PINB & 0x02) PlatinenVersion = 13;
else PlatinenVersion = 11;
}
else
{
if(PINB & 0x02) PlatinenVersion = 20;
else PlatinenVersion = 10;
}
#endif
DDRC = 0x81; // SCL
DDRC |=0x40; // HEF4017 Reset
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB = 0x01; // LED_Rot
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5
PORTD = 0x47; // LED
HEF4017R_ON;
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 2500;
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0;
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1220; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
ROT_OFF;
 
// printf("\n\rInitialising: ");
Timer_Init();
TIMER2_Init();
UART_Init();
rc_sum_init();
ADC_Init();
I2C_Init(1);
SPI_MasterInit();
Capacity_Init();
LIBFC_Init();
GRN_ON;
sei();
ParamSet_Init();
printf("\n\rInitialised:\n\r");
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
motor_read = 0; // read the first I2C-Data
SendMotorData();
timer = SetDelay(500);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
printf("\n\rFound BL-Ctrl: ");
timer = SetDelay(4000);
for(i=0; i < MAX_MOTORS; i++)
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
printf("%d",i+1);
FoundMotors++;
// if(Motor[i].Version & MOTOR_STATE_NEW_PROTOCOL_MASK) printf("(new) ");
}
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
}
printf("\n\r===================================");
 
if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= FC_ERROR1_MIXER;
 
//if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
//printf("\n\rCalibrating pressure sensor..");
//timer = SetDelay(1000);
//SucheLuftruckOffset();
//while (!CheckDelay(timer));
//printf("OK\n\r");
printf("\n\rCalibrating IR sensor..");
timer = SetDelay(1000);
//SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
 
SetNeutral(0);
 
ROT_OFF;
 
beeptime = 2000;
ExternControl.Digital[0] = 0x55;
 
 
FlugMinuten = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES + 1);
FlugMinutenGesamt = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL + 1);
 
if((FlugMinutenGesamt == 0xFFFF) || (FlugMinuten == 0xFFFF))
{
FlugMinuten = 0;
FlugMinutenGesamt = 0;
}
printf("\n\rFlight-time %u min Total:%u min", FlugMinuten, FlugMinutenGesamt);
 
printf("\n\rControl: ");
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold");
else printf("Normal (ACC-Mode)");
 
LcdClear();
I2CTimeout = 5000;
WinkelOut.Orientation = 1;
LipoDetection(1);
 
LIBFC_ReceiverInit(EE_Parameter.Receiver);
 
printf("\n\r===================================\n\r");
//SpektrumBinding();
timer = SetDelay(2000);
timerPolling = SetDelay(250);
 
Debug(ANSI_CLEAR "FC-Start!\n\rFlugzeit: %d min", FlugMinutenGesamt); // Note: this won't waste flash memory, if #DEBUG is not active
DebugOut.Status[0] = 0x01 | 0x02;
 
while (1)
{
if (JetiUpdateModeActive) while (1);
if(CheckDelay(timerPolling))
{
timerPolling = SetDelay(100);
LIBFC_Polling();
}
if(UpdateMotor && AdReady) // ReglerIntervall
{
UpdateMotor=0;
if(WinkelOut.CalcState) CalMk3Mag();
else MotorRegler();
SendMotorData();
ROT_OFF;
if(SenderOkay) { SenderOkay--; VersionInfo.HardwareError[1] &= ~FC_ERROR1_PPM; }
else
{
TIMSK1 |= _BV(ICIE1); // enable PPM-Input
PPM_in[0] = 0; // set RSSI to zero on data timeout
VersionInfo.HardwareError[1] |= FC_ERROR1_PPM;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!--I2CTimeout || MissingMotor)
{
if(!I2CTimeout)
{
I2C_Reset();
I2CTimeout = 5;
DebugOut.Analog[28]++; // I2C-Error
VersionInfo.HardwareError[1] |= FC_ERROR1_I2C;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
if((BeepMuster == 0xffff) && MotorenEin)
{
beeptime = 10000;
BeepMuster = 0x0080;
}
}
else
{
ROT_OFF;
if(!beeptime)
{
VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C;
}
}
if(!UpdateMotor)
{
if(CalculateServoSignals) CalculateServo();
DatenUebertragung();
BearbeiteRxDaten();
if(CheckDelay(timer))
{
static unsigned char second;
timer += 20; // 20 ms interval
if(MissingMotor)
{
VersionInfo.HardwareError[1] |= FC_ERROR1_BL_MISSING;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
else
{
VersionInfo.HardwareError[1] &= ~FC_ERROR1_BL_MISSING;
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
}
 
if(I2CTimeout > 6) VersionInfo.HardwareError[1] &= ~FC_ERROR1_I2C;
 
if(PcZugriff) PcZugriff--;
else
{
ExternControl.Config = 0;
ExternStickNick = 0;
ExternStickRoll = 0;
ExternStickGier = 0;
if(BeepMuster == 0xffff && SenderOkay == 0)
{
beeptime = 15000;
BeepMuster = 0x0c00;
}
}
if(NaviDataOkay > 200)
{
NaviDataOkay--;
VersionInfo.HardwareError[1] &= ~FC_ERROR1_SPI_RX;
}
else
{
if(NC_Version.Compatible)
{
VersionInfo.HardwareError[1] |= FC_ERROR1_SPI_RX;
if(BeepMuster == 0xffff && MotorenEin)
{
beeptime = 15000;
BeepMuster = 0xA800;
}
}
GPS_Nick = 0;
GPS_Roll = 0;
//if(!beeptime)
FromNaviCtrl.CompassValue = -1;
NaviDataOkay = 0;
}
if(UBat < BattLowVoltageWarning)
{
FC_StatusFlags |= FC_STATUS_LOWBAT;
if(BeepMuster == 0xffff)
{
beeptime = 6000;
BeepMuster = 0x0300;
}
}
else if(!beeptime) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
 
SPI_StartTransmitPacket();
SendSPI = 4;
if(!MotorenEin) timer2 = 1450; // 0,5 Minuten aufrunden
else
if(++second == 49)
{
second = 0;
FlugSekunden++;
}
if(++timer2 == 2930) // eine Minute
{
timer2 = 0;
FlugMinuten++;
FlugMinutenGesamt++;
SetParamByte(PID_FLIGHT_MINUTES,FlugMinuten / 256);
SetParamByte(PID_FLIGHT_MINUTES+1,FlugMinuten % 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
}
}
LED_Update();
Capacity_Update();
}
}
if(!SendSPI) { SPI_TransmitByte(); }
}
return (1);
}
 
 
/Spektrum-Diversity/V0.82a/main.d
0,0 → 1,3
main.o main.d : main.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/main.h
0,0 → 1,75
#ifndef _MAIN_H
#define _MAIN_H
 
//#define DEBUG // use to activate debug output to MK-Tool: use Debug(text);
//#define ACT_S3D_SUMMENSIGNAL
//#define SWITCH_LEARNS_CAREFREE
//#define RECEIVER_SPEKTRUM_EXP
 
// neue Hardware
#define ROT_OFF {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB &=~0x01; else PORTB |= 0x01;}
#define ROT_ON {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB |= 0x01; else PORTB &=~0x01;}
#define ROT_FLASH PORTB ^= 0x01
#define GRN_OFF {if((PlatinenVersion < 12)) PORTB &=~0x02; else PORTB |= 0x02;}
#define GRN_ON {if((PlatinenVersion < 12)) PORTB |= 0x02; else PORTB &=~0x02;}
#define GRN_FLASH PORTB ^= 0x02
 
#define SYSCLK F_CPU
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#define J3High PORTD |= 0x20
#define J3Low PORTD &= ~0x20
#define J4High PORTD |= 0x10
#define J4Low PORTD &= ~0x10
#define J5High PORTD |= 0x08
#define J5Low PORTD &= ~0x08
 
extern volatile unsigned char SenderOkay;
extern unsigned char BattLowVoltageWarning;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern unsigned char PlatinenVersion;
extern unsigned char SendVersionToNavi;
extern unsigned char FoundMotors;
 
void LipoDetection(unsigned char print);
extern unsigned int FlugMinuten,FlugMinutenGesamt,FlugSekunden;
 
#include <stdlib.h>
#include <string.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/boot.h>
#include <avr/wdt.h>
 
 
#include "old_macros.h"
 
#include "printf_P.h"
#include "timer0.h"
#include "uart.h"
#include "analog.h"
#include "twimaster.h"
#include "menu.h"
#include "rc.h"
#include "fc.h"
#include "gps.h"
#include "spi.h"
#include "led.h"
#include "spektrum.h"
#include "capacity.h"
#include "eeprom.h"
#include "libfc.h"
#include "debug.h"
 
 
 
#endif //_MAIN_H
 
 
 
 
 
 
/Spektrum-Diversity/V0.82a/main.lst
0,0 → 1,1299
1 .file "main.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global LipoDetection
12 LipoDetection:
13 /* prologue: frame size=0 */
14 0000 1F93 push r17
15 0002 CF93 push r28
16 0004 DF93 push r29
17 /* prologue end (size=3) */
18 0006 182F mov r17,r24
19 0008 8823 tst r24
20 000a 01F0 breq .L2
21 000c E091 0000 lds r30,_printf_P
22 0010 F091 0000 lds r31,(_printf_P)+1
23 0014 80E0 ldi r24,lo8(__c.2504)
24 0016 90E0 ldi r25,hi8(__c.2504)
25 0018 9F93 push r25
26 001a 8F93 push r24
27 001c 80E0 ldi r24,lo8(gs(uart_putchar))
28 001e 90E0 ldi r25,hi8(gs(uart_putchar))
29 0020 9F93 push r25
30 0022 8F93 push r24
31 0024 0995 icall
32 0026 0F90 pop __tmp_reg__
33 0028 0F90 pop __tmp_reg__
34 002a 0F90 pop __tmp_reg__
35 002c 0F90 pop __tmp_reg__
36 .L2:
37 002e 8091 0000 lds r24,EE_Parameter+36
38 0032 8233 cpi r24,lo8(50)
39 0034 00F0 brlo .+2
40 0036 00C0 rjmp .L4
41 0038 84EF ldi r24,lo8(500)
42 003a 91E0 ldi r25,hi8(500)
43 003c 0E94 0000 call SetDelay
44 0040 EC01 movw r28,r24
45 0042 1123 tst r17
46 0044 01F0 breq .L6
47 .L15:
48 0046 CE01 movw r24,r28
49 0048 0E94 0000 call CheckDelay
50 004c 8823 tst r24
51 004e 01F0 breq .L15
52 .L6:
53 0050 C2E0 ldi r28,lo8(2)
54 0052 D0E0 ldi r29,hi8(2)
55 0054 26E5 ldi r18,lo8(86)
56 0056 30E0 ldi r19,hi8(86)
57 .L8:
58 0058 8091 0000 lds r24,UBat
59 005c 9091 0000 lds r25,(UBat)+1
60 0060 8217 cp r24,r18
61 0062 9307 cpc r25,r19
62 0064 00F0 brlo .L9
63 0066 2196 adiw r28,1
64 0068 255D subi r18,lo8(-(43))
65 006a 3F4F sbci r19,hi8(-(43))
66 006c C730 cpi r28,7
67 006e D105 cpc r29,__zero_reg__
68 0070 01F4 brne .L8
69 .L9:
70 0072 8091 0000 lds r24,EE_Parameter+36
71 0076 90E0 ldi r25,lo8(0)
72 0078 9C01 movw r18,r24
73 007a C29F mul r28,r18
74 007c C001 movw r24,r0
75 007e C39F mul r28,r19
76 0080 900D add r25,r0
77 0082 D29F mul r29,r18
78 0084 900D add r25,r0
79 0086 1124 clr r1
80 0088 8093 0000 sts BattLowVoltageWarning,r24
81 008c 1123 tst r17
82 008e 01F4 brne .+2
83 0090 00C0 rjmp .L14
84 0092 68EC ldi r22,lo8(200)
85 0094 70E0 ldi r23,hi8(200)
86 0096 8C2F mov r24,r28
87 0098 0E94 0000 call Piep
88 009c E091 0000 lds r30,_printf_P
89 00a0 F091 0000 lds r31,(_printf_P)+1
90 00a4 DF93 push r29
91 00a6 CF93 push r28
92 00a8 80E0 ldi r24,lo8(__c.2512)
93 00aa 90E0 ldi r25,hi8(__c.2512)
94 00ac 9F93 push r25
95 00ae 8F93 push r24
96 00b0 80E0 ldi r24,lo8(gs(uart_putchar))
97 00b2 90E0 ldi r25,hi8(gs(uart_putchar))
98 00b4 9F93 push r25
99 00b6 8F93 push r24
100 00b8 0995 icall
101 00ba 8DB7 in r24,__SP_L__
102 00bc 9EB7 in r25,__SP_H__
103 00be 0696 adiw r24,6
104 00c0 8DBF out __SP_L__,r24
105 00c2 00C0 rjmp .L13
106 .L4:
107 00c4 8093 0000 sts BattLowVoltageWarning,r24
108 00c8 1123 tst r17
109 00ca 01F0 breq .L14
110 .L13:
111 00cc E091 0000 lds r30,_printf_P
112 00d0 F091 0000 lds r31,(_printf_P)+1
113 00d4 4091 0000 lds r20,BattLowVoltageWarning
114 00d8 842F mov r24,r20
115 00da 6AE0 ldi r22,lo8(10)
116 00dc 0E94 0000 call __udivmodqi4
117 00e0 292F mov r18,r25
118 00e2 30E0 ldi r19,lo8(0)
119 00e4 842F mov r24,r20
120 00e6 0E94 0000 call __udivmodqi4
121 00ea 90E0 ldi r25,lo8(0)
122 00ec 3F93 push r19
123 00ee 2F93 push r18
124 00f0 9F93 push r25
125 00f2 8F93 push r24
126 00f4 80E0 ldi r24,lo8(__c.2514)
127 00f6 90E0 ldi r25,hi8(__c.2514)
128 00f8 9F93 push r25
129 00fa 8F93 push r24
130 00fc 80E0 ldi r24,lo8(gs(uart_putchar))
131 00fe 90E0 ldi r25,hi8(gs(uart_putchar))
132 0100 9F93 push r25
133 0102 8F93 push r24
134 0104 0995 icall
135 0106 2DB7 in r18,__SP_L__
136 0108 3EB7 in r19,__SP_H__
137 010a 285F subi r18,lo8(-(8))
138 010c 3F4F sbci r19,hi8(-(8))
139 010e 2DBF out __SP_L__,r18
140 .L14:
141 /* epilogue: frame size=0 */
142 0110 DF91 pop r29
143 0112 CF91 pop r28
144 0114 1F91 pop r17
145 0116 0895 ret
146 /* epilogue end (size=4) */
147 /* function LipoDetection size 139 (132) */
149 .global CalMk3Mag
151 CalMk3Mag:
152 /* prologue: frame size=0 */
153 /* prologue end (size=0) */
154 0118 8091 0000 lds r24,EE_Parameter+1
155 011c E82F mov r30,r24
156 011e F0E0 ldi r31,lo8(0)
157 0120 EE0F lsl r30
158 0122 FF1F rol r31
159 0124 E050 subi r30,lo8(-(PPM_in))
160 0126 F040 sbci r31,hi8(-(PPM_in))
161 0128 8081 ld r24,Z
162 012a 9181 ldd r25,Z+1
163 012c 8D5E subi r24,lo8(-19)
164 012e 9F4F sbci r25,hi8(-19)
165 0130 04F0 brlt .L19
166 0132 1092 0000 sts stick.2490,__zero_reg__
167 .L19:
168 0136 8081 ld r24,Z
169 0138 9181 ldd r25,Z+1
170 013a 8A5B subi r24,lo8(-70)
171 013c 9F4F sbci r25,hi8(-70)
172 013e 04F4 brge .L21
173 0140 8091 0000 lds r24,stick.2490
174 0144 8823 tst r24
175 0146 01F4 brne .L21
176 0148 81E0 ldi r24,lo8(1)
177 014a 8093 0000 sts stick.2490,r24
178 014e 8091 0000 lds r24,WinkelOut+6
179 0152 8F5F subi r24,lo8(-(1))
180 0154 8093 0000 sts WinkelOut+6,r24
181 0158 8530 cpi r24,lo8(5)
182 015a 00F0 brlo .L24
183 015c 88EE ldi r24,lo8(1000)
184 015e 93E0 ldi r25,hi8(1000)
185 0160 9093 0000 sts (beeptime)+1,r25
186 0164 8093 0000 sts beeptime,r24
187 0168 00C0 rjmp .L21
188 .L24:
189 016a 66E9 ldi r22,lo8(150)
190 016c 70E0 ldi r23,hi8(150)
191 016e 0E94 0000 call Piep
192 .L21:
193 0172 8091 0000 lds r24,WinkelOut+6
194 0176 90E0 ldi r25,lo8(0)
195 0178 9093 0000 sts (DebugOut+40)+1,r25
196 017c 8093 0000 sts DebugOut+40,r24
197 /* epilogue: frame size=0 */
198 0180 0895 ret
199 /* epilogue end (size=1) */
200 /* function CalMk3Mag size 55 (54) */
202 .global main
204 main:
205 /* prologue: frame size=0 */
206 0182 A0E0 ldi r26,lo8(0)
207 0184 B0E0 ldi r27,hi8(0)
208 0186 E0E0 ldi r30,pm_lo8(1f)
209 0188 F0E0 ldi r31,pm_hi8(1f)
210 018a 0C94 0000 jmp __prologue_saves__+4
211 1:
212 /* prologue end (size=6) */
213 018e 14B8 out 36-0x20,__zero_reg__
214 0190 15B8 out 37-0x20,__zero_reg__
215 0192 189B sbis 35-0x20,0
216 0194 00C0 rjmp .L28
217 0196 199B sbis 35-0x20,1
218 0198 00C0 rjmp .L30
219 019a 8DE0 ldi r24,lo8(13)
220 019c 00C0 rjmp .L164
221 .L30:
222 019e 8BE0 ldi r24,lo8(11)
223 01a0 00C0 rjmp .L164
224 .L28:
225 01a2 199B sbis 35-0x20,1
226 01a4 00C0 rjmp .L33
227 01a6 84E1 ldi r24,lo8(20)
228 01a8 00C0 rjmp .L164
229 .L33:
230 01aa 8AE0 ldi r24,lo8(10)
231 .L164:
232 01ac 8093 0000 sts PlatinenVersion,r24
233 01b0 81E8 ldi r24,lo8(-127)
234 01b2 87B9 out 39-0x20,r24
235 01b4 3E9A sbi 39-0x20,6
236 01b6 8FEF ldi r24,lo8(-1)
237 01b8 88B9 out 40-0x20,r24
238 01ba 8BE1 ldi r24,lo8(27)
239 01bc 84B9 out 36-0x20,r24
240 01be 81E0 ldi r24,lo8(1)
241 01c0 85B9 out 37-0x20,r24
242 01c2 8EE3 ldi r24,lo8(62)
243 01c4 8AB9 out 42-0x20,r24
244 01c6 87E4 ldi r24,lo8(71)
245 01c8 8BB9 out 43-0x20,r24
246 01ca 469A sbi 40-0x20,6
247 01cc 84B7 in r24,84-0x20
248 01ce 877F andi r24,lo8(-9)
249 01d0 84BF out 84-0x20,r24
250 01d2 8091 6000 lds r24,96
251 01d6 8861 ori r24,lo8(24)
252 01d8 8093 6000 sts 96,r24
253 01dc 1092 6000 sts 96,__zero_reg__
254 01e0 84EC ldi r24,lo8(2500)
255 01e2 99E0 ldi r25,hi8(2500)
256 01e4 9093 0000 sts (beeptime)+1,r25
257 01e8 8093 0000 sts beeptime,r24
258 01ec 1092 0000 sts (StickGier)+1,__zero_reg__
259 01f0 1092 0000 sts StickGier,__zero_reg__
260 01f4 1092 0000 sts (PPM_in+4)+1,__zero_reg__
261 01f8 1092 0000 sts PPM_in+4,__zero_reg__
262 01fc 1092 0000 sts (StickRoll)+1,__zero_reg__
263 0200 1092 0000 sts StickRoll,__zero_reg__
264 0204 1092 0000 sts (StickNick)+1,__zero_reg__
265 0208 1092 0000 sts StickNick,__zero_reg__
266 020c 2091 0000 lds r18,PlatinenVersion
267 0210 2431 cpi r18,lo8(20)
268 0212 00F0 brlo .L35
269 0214 84EC ldi r24,lo8(1220)
270 0216 94E0 ldi r25,hi8(1220)
271 0218 A0E0 ldi r26,hlo8(1220)
272 021a B0E0 ldi r27,hhi8(1220)
273 021c 00C0 rjmp .L165
274 .L35:
275 021e 8BE0 ldi r24,lo8(1291)
276 0220 95E0 ldi r25,hi8(1291)
277 0222 A0E0 ldi r26,hlo8(1291)
278 0224 B0E0 ldi r27,hhi8(1291)
279 .L165:
280 0226 8093 0000 sts GIER_GRAD_FAKTOR,r24
281 022a 9093 0000 sts (GIER_GRAD_FAKTOR)+1,r25
282 022e A093 0000 sts (GIER_GRAD_FAKTOR)+2,r26
283 0232 B093 0000 sts (GIER_GRAD_FAKTOR)+3,r27
284 0236 2A30 cpi r18,lo8(10)
285 0238 01F0 breq .L38
286 023a 2431 cpi r18,lo8(20)
287 023c 00F0 brlo .L40
288 .L38:
289 023e 2898 cbi 37-0x20,0
290 0240 00C0 rjmp .L41
291 .L40:
292 0242 289A sbi 37-0x20,0
293 .L41:
294 0244 0E94 0000 call Timer_Init
295 0248 0E94 0000 call TIMER2_Init
296 024c 0E94 0000 call UART_Init
297 0250 0E94 0000 call rc_sum_init
298 0254 0E94 0000 call ADC_Init
299 0258 81E0 ldi r24,lo8(1)
300 025a 0E94 0000 call I2C_Init
301 025e 0E94 0000 call SPI_MasterInit
302 0262 0E94 0000 call Capacity_Init
303 0266 0E94 0000 call LIBFC_Init
304 026a 8091 0000 lds r24,PlatinenVersion
305 026e 8C30 cpi r24,lo8(12)
306 0270 00F4 brsh .L42
307 0272 299A sbi 37-0x20,1
308 0274 00C0 rjmp .L44
309 .L42:
310 0276 2998 cbi 37-0x20,1
311 .L44:
312 /* #APP */
313 0278 7894 sei
314 /* #NOAPP */
315 027a 0E94 0000 call ParamSet_Init
316 027e E091 0000 lds r30,_printf_P
317 0282 F091 0000 lds r31,(_printf_P)+1
318 0286 80E0 ldi r24,lo8(__c.2542)
319 0288 90E0 ldi r25,hi8(__c.2542)
320 028a 9F93 push r25
321 028c 8F93 push r24
322 028e 80E0 ldi r24,lo8(gs(uart_putchar))
323 0290 90E0 ldi r25,hi8(gs(uart_putchar))
324 0292 9F93 push r25
325 0294 8F93 push r24
326 0296 0995 icall
327 0298 8091 0000 lds r24,BLFlags
328 029c 8260 ori r24,lo8(2)
329 029e 8093 0000 sts BLFlags,r24
330 02a2 1092 0000 sts motor_read,__zero_reg__
331 02a6 0E94 0000 call SendMotorData
332 02aa 84EF ldi r24,lo8(500)
333 02ac 91E0 ldi r25,hi8(500)
334 02ae 0E94 0000 call SetDelay
335 02b2 EC01 movw r28,r24
336 02b4 0F90 pop __tmp_reg__
337 02b6 0F90 pop __tmp_reg__
338 02b8 0F90 pop __tmp_reg__
339 02ba 0F90 pop __tmp_reg__
340 .L45:
341 02bc 8091 0000 lds r24,BLFlags
342 02c0 80FD sbrc r24,0
343 02c2 00C0 rjmp .L46
344 02c4 CE01 movw r24,r28
345 02c6 0E94 0000 call CheckDelay
346 02ca 8823 tst r24
347 02cc 01F0 breq .L45
348 .L46:
349 02ce E091 0000 lds r30,_printf_P
350 02d2 F091 0000 lds r31,(_printf_P)+1
351 02d6 80E0 ldi r24,lo8(__c.2547)
352 02d8 90E0 ldi r25,hi8(__c.2547)
353 02da 9F93 push r25
354 02dc 8F93 push r24
355 02de 00E0 ldi r16,lo8(gs(uart_putchar))
356 02e0 10E0 ldi r17,hi8(gs(uart_putchar))
357 02e2 1F93 push r17
358 02e4 0F93 push r16
359 02e6 0995 icall
360 02e8 80EA ldi r24,lo8(4000)
361 02ea 9FE0 ldi r25,hi8(4000)
362 02ec 0E94 0000 call SetDelay
363 02f0 EC01 movw r28,r24
364 02f2 F0E0 ldi r31,lo8(Motor+3)
365 02f4 AF2E mov r10,r31
366 02f6 F0E0 ldi r31,hi8(Motor+3)
367 02f8 BF2E mov r11,r31
368 02fa E0E0 ldi r30,lo8(Mixer+13)
369 02fc 6E2E mov r6,r30
370 02fe E0E0 ldi r30,hi8(Mixer+13)
371 0300 7E2E mov r7,r30
372 0302 6501 movw r12,r10
373 0304 4301 movw r8,r6
374 0306 71E0 ldi r23,lo8(1)
375 0308 E72E mov r14,r23
376 030a F12C mov r15,__zero_reg__
377 030c 0F90 pop __tmp_reg__
378 030e 0F90 pop __tmp_reg__
379 0310 0F90 pop __tmp_reg__
380 0312 0F90 pop __tmp_reg__
381 0314 60E0 ldi r22,lo8(__c.2558)
382 0316 462E mov r4,r22
383 0318 60E0 ldi r22,hi8(__c.2558)
384 031a 562E mov r5,r22
385 .L48:
386 031c 0E94 0000 call SendMotorData
387 .L49:
388 0320 8091 0000 lds r24,BLFlags
389 0324 80FD sbrc r24,0
390 0326 00C0 rjmp .L50
391 0328 CE01 movw r24,r28
392 032a 0E94 0000 call CheckDelay
393 032e 8823 tst r24
394 0330 01F0 breq .L49
395 .L50:
396 0332 F401 movw r30,r8
397 0334 8081 ld r24,Z
398 0336 1816 cp __zero_reg__,r24
399 0338 04F0 brlt .L169
400 033a 00C0 rjmp .L53
401 .L54:
402 033c 0E94 0000 call SendMotorData
403 .L55:
404 0340 8091 0000 lds r24,BLFlags
405 0344 80FD sbrc r24,0
406 0346 00C0 rjmp .L169
407 0348 CE01 movw r24,r28
408 034a 0E94 0000 call CheckDelay
409 034e 8823 tst r24
410 0350 01F0 breq .L55
411 .L169:
412 0352 CE01 movw r24,r28
413 0354 0E94 0000 call CheckDelay
414 0358 8823 tst r24
415 035a 01F4 brne .L53
416 035c F601 movw r30,r12
417 035e 8081 ld r24,Z
418 0360 87FF sbrs r24,7
419 0362 00C0 rjmp .L54
420 .L53:
421 0364 F601 movw r30,r12
422 0366 8081 ld r24,Z
423 0368 87FF sbrs r24,7
424 036a 00C0 rjmp .L58
425 036c E091 0000 lds r30,_printf_P
426 0370 F091 0000 lds r31,(_printf_P)+1
427 0374 FF92 push r15
428 0376 EF92 push r14
429 0378 5F92 push r5
430 037a 4F92 push r4
431 037c 1F93 push r17
432 037e 0F93 push r16
433 0380 0995 icall
434 0382 8091 0000 lds r24,FoundMotors
435 0386 8F5F subi r24,lo8(-(1))
436 0388 8093 0000 sts FoundMotors,r24
437 038c 2DB7 in r18,__SP_L__
438 038e 3EB7 in r19,__SP_H__
439 0390 2A5F subi r18,lo8(-(6))
440 0392 3F4F sbci r19,hi8(-(6))
441 0394 2DBF out __SP_L__,r18
442 .L58:
443 0396 0894 sec
444 0398 E11C adc r14,__zero_reg__
445 039a F11C adc r15,__zero_reg__
446 039c 88E0 ldi r24,lo8(8)
447 039e 90E0 ldi r25,hi8(8)
448 03a0 C80E add r12,r24
449 03a2 D91E adc r13,r25
450 03a4 E4E0 ldi r30,lo8(4)
451 03a6 F0E0 ldi r31,hi8(4)
452 03a8 8E0E add r8,r30
453 03aa 9F1E adc r9,r31
454 03ac FDE0 ldi r31,lo8(13)
455 03ae EF16 cp r14,r31
456 03b0 F104 cpc r15,__zero_reg__
457 03b2 01F0 breq .+2
458 03b4 00C0 rjmp .L48
459 03b6 C1E0 ldi r28,lo8(1)
460 03b8 D0E0 ldi r29,hi8(1)
461 03ba 50E0 ldi r21,lo8(__c.2563)
462 03bc E52E mov r14,r21
463 03be 50E0 ldi r21,hi8(__c.2563)
464 03c0 F52E mov r15,r21
465 03c2 00E0 ldi r16,lo8(gs(uart_putchar))
466 03c4 10E0 ldi r17,hi8(gs(uart_putchar))
467 .L61:
468 03c6 F501 movw r30,r10
469 03c8 8081 ld r24,Z
470 03ca 87FD sbrc r24,7
471 03cc 00C0 rjmp .L62
472 03ce F301 movw r30,r6
473 03d0 8081 ld r24,Z
474 03d2 1816 cp __zero_reg__,r24
475 03d4 04F4 brge .L62
476 03d6 E091 0000 lds r30,_printf_P
477 03da F091 0000 lds r31,(_printf_P)+1
478 03de DF93 push r29
479 03e0 CF93 push r28
480 03e2 FF92 push r15
481 03e4 EF92 push r14
482 03e6 1F93 push r17
483 03e8 0F93 push r16
484 03ea 0995 icall
485 03ec 82E0 ldi r24,lo8(2)
486 03ee 8093 0000 sts ServoActive,r24
487 03f2 2DB7 in r18,__SP_L__
488 03f4 3EB7 in r19,__SP_H__
489 03f6 2A5F subi r18,lo8(-(6))
490 03f8 3F4F sbci r19,hi8(-(6))
491 03fa 2DBF out __SP_L__,r18
492 .L62:
493 03fc F501 movw r30,r10
494 03fe 8081 ld r24,Z
495 0400 8078 andi r24,lo8(-128)
496 0402 8083 st Z,r24
497 0404 2196 adiw r28,1
498 0406 28E0 ldi r18,lo8(8)
499 0408 30E0 ldi r19,hi8(8)
500 040a A20E add r10,r18
501 040c B31E adc r11,r19
502 040e 84E0 ldi r24,lo8(4)
503 0410 90E0 ldi r25,hi8(4)
504 0412 680E add r6,r24
505 0414 791E adc r7,r25
506 0416 CD30 cpi r28,13
507 0418 D105 cpc r29,__zero_reg__
508 041a 01F4 brne .L61
509 041c E091 0000 lds r30,_printf_P
510 0420 F091 0000 lds r31,(_printf_P)+1
511 0424 80E0 ldi r24,lo8(__c.2568)
512 0426 90E0 ldi r25,hi8(__c.2568)
513 0428 9F93 push r25
514 042a 8F93 push r24
515 042c C0E0 ldi r28,lo8(gs(uart_putchar))
516 042e D0E0 ldi r29,hi8(gs(uart_putchar))
517 0430 DF93 push r29
518 0432 CF93 push r28
519 0434 0995 icall
520 0436 0F90 pop __tmp_reg__
521 0438 0F90 pop __tmp_reg__
522 043a 0F90 pop __tmp_reg__
523 043c 0F90 pop __tmp_reg__
524 043e 9091 0000 lds r25,RequiredMotors
525 0442 8091 0000 lds r24,FoundMotors
526 0446 9817 cp r25,r24
527 0448 00F4 brsh .L66
528 044a 8091 0000 lds r24,VersionInfo+6
529 044e 8061 ori r24,lo8(16)
530 0450 8093 0000 sts VersionInfo+6,r24
531 .L66:
532 0454 E091 0000 lds r30,_printf_P
533 0458 F091 0000 lds r31,(_printf_P)+1
534 045c 80E0 ldi r24,lo8(__c.2570)
535 045e 90E0 ldi r25,hi8(__c.2570)
536 0460 9F93 push r25
537 0462 8F93 push r24
538 0464 DF93 push r29
539 0466 CF93 push r28
540 0468 0995 icall
541 046a 88EE ldi r24,lo8(1000)
542 046c 93E0 ldi r25,hi8(1000)
543 046e 0E94 0000 call SetDelay
544 0472 EC01 movw r28,r24
545 0474 0F90 pop __tmp_reg__
546 0476 0F90 pop __tmp_reg__
547 0478 0F90 pop __tmp_reg__
548 047a 0F90 pop __tmp_reg__
549 .L68:
550 047c CE01 movw r24,r28
551 047e 0E94 0000 call CheckDelay
552 0482 8823 tst r24
553 0484 01F0 breq .L68
554 0486 E091 0000 lds r30,_printf_P
555 048a F091 0000 lds r31,(_printf_P)+1
556 048e 80E0 ldi r24,lo8(__c.2575)
557 0490 90E0 ldi r25,hi8(__c.2575)
558 0492 9F93 push r25
559 0494 8F93 push r24
560 0496 80E0 ldi r24,lo8(gs(uart_putchar))
561 0498 90E0 ldi r25,hi8(gs(uart_putchar))
562 049a 9F93 push r25
563 049c 8F93 push r24
564 049e 0995 icall
565 04a0 80E0 ldi r24,lo8(0)
566 04a2 0E94 0000 call SetNeutral
567 04a6 8091 0000 lds r24,PlatinenVersion
568 04aa 0F90 pop __tmp_reg__
569 04ac 0F90 pop __tmp_reg__
570 04ae 0F90 pop __tmp_reg__
571 04b0 0F90 pop __tmp_reg__
572 04b2 8A30 cpi r24,lo8(10)
573 04b4 01F0 breq .L70
574 04b6 8431 cpi r24,lo8(20)
575 04b8 00F0 brlo .L72
576 .L70:
577 04ba 2898 cbi 37-0x20,0
578 04bc 00C0 rjmp .L73
579 .L72:
580 04be 289A sbi 37-0x20,0
581 .L73:
582 04c0 80ED ldi r24,lo8(2000)
583 04c2 97E0 ldi r25,hi8(2000)
584 04c4 9093 0000 sts (beeptime)+1,r25
585 04c8 8093 0000 sts beeptime,r24
586 04cc 85E5 ldi r24,lo8(85)
587 04ce 8093 0000 sts ExternControl,r24
588 04d2 8EE0 ldi r24,lo8(14)
589 04d4 90E0 ldi r25,hi8(14)
590 04d6 0E94 0000 call GetParamByte
591 04da 082F mov r16,r24
592 04dc 8FE0 ldi r24,lo8(15)
593 04de 90E0 ldi r25,hi8(15)
594 04e0 0E94 0000 call GetParamByte
595 04e4 10E0 ldi r17,lo8(0)
596 04e6 102F mov r17,r16
597 04e8 0027 clr r16
598 04ea 080F add r16,r24
599 04ec 111D adc r17,__zero_reg__
600 04ee 1093 0000 sts (FlugMinuten)+1,r17
601 04f2 0093 0000 sts FlugMinuten,r16
602 04f6 8AE0 ldi r24,lo8(10)
603 04f8 90E0 ldi r25,hi8(10)
604 04fa 0E94 0000 call GetParamByte
605 04fe 082F mov r16,r24
606 0500 8BE0 ldi r24,lo8(11)
607 0502 90E0 ldi r25,hi8(11)
608 0504 0E94 0000 call GetParamByte
609 0508 10E0 ldi r17,lo8(0)
610 050a 102F mov r17,r16
611 050c 0027 clr r16
612 050e 080F add r16,r24
613 0510 111D adc r17,__zero_reg__
614 0512 1093 0000 sts (FlugMinutenGesamt)+1,r17
615 0516 0093 0000 sts FlugMinutenGesamt,r16
616 051a 0F5F subi r16,lo8(-1)
617 051c 1F4F sbci r17,hi8(-1)
618 051e 01F0 breq .L74
619 0520 8091 0000 lds r24,FlugMinuten
620 0524 9091 0000 lds r25,(FlugMinuten)+1
621 0528 8F5F subi r24,lo8(-1)
622 052a 9F4F sbci r25,hi8(-1)
623 052c 01F4 brne .L76
624 .L74:
625 052e 1092 0000 sts (FlugMinuten)+1,__zero_reg__
626 0532 1092 0000 sts FlugMinuten,__zero_reg__
627 0536 1092 0000 sts (FlugMinutenGesamt)+1,__zero_reg__
628 053a 1092 0000 sts FlugMinutenGesamt,__zero_reg__
629 .L76:
630 053e E091 0000 lds r30,_printf_P
631 0542 F091 0000 lds r31,(_printf_P)+1
632 0546 8091 0000 lds r24,FlugMinutenGesamt
633 054a 9091 0000 lds r25,(FlugMinutenGesamt)+1
634 054e 2091 0000 lds r18,FlugMinuten
635 0552 3091 0000 lds r19,(FlugMinuten)+1
636 0556 9F93 push r25
637 0558 8F93 push r24
638 055a 3F93 push r19
639 055c 2F93 push r18
640 055e 80E0 ldi r24,lo8(__c.2577)
641 0560 90E0 ldi r25,hi8(__c.2577)
642 0562 9F93 push r25
643 0564 8F93 push r24
644 0566 C0E0 ldi r28,lo8(gs(uart_putchar))
645 0568 D0E0 ldi r29,hi8(gs(uart_putchar))
646 056a DF93 push r29
647 056c CF93 push r28
648 056e 0995 icall
649 0570 E091 0000 lds r30,_printf_P
650 0574 F091 0000 lds r31,(_printf_P)+1
651 0578 80E0 ldi r24,lo8(__c.2579)
652 057a 90E0 ldi r25,hi8(__c.2579)
653 057c 9F93 push r25
654 057e 8F93 push r24
655 0580 DF93 push r29
656 0582 CF93 push r28
657 0584 0995 icall
658 0586 8091 0000 lds r24,EE_Parameter+13
659 058a 2DB7 in r18,__SP_L__
660 058c 3EB7 in r19,__SP_H__
661 058e 245F subi r18,lo8(-(12))
662 0590 3F4F sbci r19,hi8(-(12))
663 0592 2DBF out __SP_L__,r18
664 0594 E091 0000 lds r30,_printf_P
665 0598 F091 0000 lds r31,(_printf_P)+1
666 059c 82FF sbrs r24,2
667 059e 00C0 rjmp .L77
668 05a0 80E0 ldi r24,lo8(__c.2581)
669 05a2 90E0 ldi r25,hi8(__c.2581)
670 05a4 00C0 rjmp .L166
671 .L77:
672 05a6 80E0 ldi r24,lo8(__c.2583)
673 05a8 90E0 ldi r25,hi8(__c.2583)
674 .L166:
675 05aa 9F93 push r25
676 05ac 8F93 push r24
677 05ae DF93 push r29
678 05b0 CF93 push r28
679 05b2 0995 icall
680 05b4 0F90 pop __tmp_reg__
681 05b6 0F90 pop __tmp_reg__
682 05b8 0F90 pop __tmp_reg__
683 05ba 0F90 pop __tmp_reg__
684 05bc 0E94 0000 call LcdClear
685 05c0 88E8 ldi r24,lo8(5000)
686 05c2 93E1 ldi r25,hi8(5000)
687 05c4 9093 0000 sts (I2CTimeout)+1,r25
688 05c8 8093 0000 sts I2CTimeout,r24
689 05cc 81E0 ldi r24,lo8(1)
690 05ce 8093 0000 sts WinkelOut+7,r24
691 05d2 0E94 0000 call LipoDetection
692 05d6 8091 0000 lds r24,EE_Parameter+39
693 05da 0E94 0000 call LIBFC_ReceiverInit
694 05de E091 0000 lds r30,_printf_P
695 05e2 F091 0000 lds r31,(_printf_P)+1
696 05e6 80E0 ldi r24,lo8(__c.2585)
697 05e8 90E0 ldi r25,hi8(__c.2585)
698 05ea 9F93 push r25
699 05ec 8F93 push r24
700 05ee 80E0 ldi r24,lo8(gs(uart_putchar))
701 05f0 90E0 ldi r25,hi8(gs(uart_putchar))
702 05f2 9F93 push r25
703 05f4 8F93 push r24
704 05f6 0995 icall
705 05f8 80ED ldi r24,lo8(2000)
706 05fa 97E0 ldi r25,hi8(2000)
707 05fc 0E94 0000 call SetDelay
708 0600 EC01 movw r28,r24
709 0602 8AEF ldi r24,lo8(250)
710 0604 90E0 ldi r25,hi8(250)
711 0606 0E94 0000 call SetDelay
712 060a 7C01 movw r14,r24
713 060c 83E0 ldi r24,lo8(3)
714 060e 8093 0000 sts DebugOut,r24
715 0612 00E0 ldi r16,lo8(0)
716 0614 10E0 ldi r17,hi8(0)
717 0616 0F90 pop __tmp_reg__
718 0618 0F90 pop __tmp_reg__
719 061a 0F90 pop __tmp_reg__
720 061c 0F90 pop __tmp_reg__
721 .L170:
722 061e 8091 0000 lds r24,JetiUpdateModeActive
723 0622 8111 cpse r24,__zero_reg__
724 .L161:
725 0624 00C0 rjmp .L161
726 .L81:
727 0626 C701 movw r24,r14
728 0628 0E94 0000 call CheckDelay
729 062c 8823 tst r24
730 062e 01F0 breq .L83
731 0630 84E6 ldi r24,lo8(100)
732 0632 90E0 ldi r25,hi8(100)
733 0634 0E94 0000 call SetDelay
734 0638 7C01 movw r14,r24
735 063a 0E94 0000 call LIBFC_Polling
736 .L83:
737 063e 8091 0000 lds r24,UpdateMotor
738 0642 8823 tst r24
739 0644 01F4 brne .+2
740 0646 00C0 rjmp .L85
741 0648 8091 0000 lds r24,AdReady
742 064c 8823 tst r24
743 064e 01F4 brne .+2
744 0650 00C0 rjmp .L85
745 0652 1092 0000 sts UpdateMotor,__zero_reg__
746 0656 8091 0000 lds r24,WinkelOut+6
747 065a 8823 tst r24
748 065c 01F0 breq .L88
749 065e 0E94 0000 call CalMk3Mag
750 0662 00C0 rjmp .L90
751 .L88:
752 0664 0E94 0000 call MotorRegler
753 .L90:
754 0668 0E94 0000 call SendMotorData
755 066c 2091 0000 lds r18,PlatinenVersion
756 0670 2A30 cpi r18,lo8(10)
757 0672 01F0 breq .L91
758 0674 2431 cpi r18,lo8(20)
759 0676 00F0 brlo .L93
760 .L91:
761 0678 2898 cbi 37-0x20,0
762 067a 00C0 rjmp .L94
763 .L93:
764 067c 289A sbi 37-0x20,0
765 .L94:
766 067e 8091 0000 lds r24,SenderOkay
767 0682 9091 0000 lds r25,VersionInfo+6
768 0686 8823 tst r24
769 0688 01F0 breq .L95
770 068a 8091 0000 lds r24,SenderOkay
771 068e 8150 subi r24,lo8(-(-1))
772 0690 8093 0000 sts SenderOkay,r24
773 0694 977F andi r25,lo8(-9)
774 0696 00C0 rjmp .L167
775 .L95:
776 0698 8091 6F00 lds r24,111
777 069c 8062 ori r24,lo8(32)
778 069e 8093 6F00 sts 111,r24
779 06a2 1092 0000 sts (PPM_in)+1,__zero_reg__
780 06a6 1092 0000 sts PPM_in,__zero_reg__
781 06aa 9860 ori r25,lo8(8)
782 .L167:
783 06ac 9093 0000 sts VersionInfo+6,r25
784 06b0 8091 0000 lds r24,I2CTimeout
785 06b4 9091 0000 lds r25,(I2CTimeout)+1
786 06b8 0197 sbiw r24,1
787 06ba 9093 0000 sts (I2CTimeout)+1,r25
788 06be 8093 0000 sts I2CTimeout,r24
789 06c2 8091 0000 lds r24,I2CTimeout
790 06c6 9091 0000 lds r25,(I2CTimeout)+1
791 06ca 892B or r24,r25
792 06cc 01F0 breq .L98
793 06ce 8091 0000 lds r24,MissingMotor
794 06d2 8823 tst r24
795 06d4 01F0 breq .L100
796 .L98:
797 06d6 8091 0000 lds r24,I2CTimeout
798 06da 9091 0000 lds r25,(I2CTimeout)+1
799 06de 892B or r24,r25
800 06e0 01F4 brne .L101
801 06e2 0E94 0000 call I2C_Reset
802 06e6 85E0 ldi r24,lo8(5)
803 06e8 90E0 ldi r25,hi8(5)
804 06ea 9093 0000 sts (I2CTimeout)+1,r25
805 06ee 8093 0000 sts I2CTimeout,r24
806 06f2 8091 0000 lds r24,DebugOut+58
807 06f6 9091 0000 lds r25,(DebugOut+58)+1
808 06fa 0196 adiw r24,1
809 06fc 9093 0000 sts (DebugOut+58)+1,r25
810 0700 8093 0000 sts DebugOut+58,r24
811 0704 8091 0000 lds r24,VersionInfo+6
812 0708 8160 ori r24,lo8(1)
813 070a 8093 0000 sts VersionInfo+6,r24
814 070e 8091 0000 lds r24,DebugOut+1
815 0712 8260 ori r24,lo8(2)
816 0714 8093 0000 sts DebugOut+1,r24
817 .L101:
818 0718 8091 0000 lds r24,BeepMuster
819 071c 9091 0000 lds r25,(BeepMuster)+1
820 0720 8F5F subi r24,lo8(-1)
821 0722 9F4F sbci r25,hi8(-1)
822 0724 01F4 brne .L103
823 0726 8091 0000 lds r24,MotorenEin
824 072a 8823 tst r24
825 072c 01F0 breq .L103
826 072e 80E1 ldi r24,lo8(10000)
827 0730 97E2 ldi r25,hi8(10000)
828 0732 9093 0000 sts (beeptime)+1,r25
829 0736 8093 0000 sts beeptime,r24
830 073a 80E8 ldi r24,lo8(128)
831 073c 90E0 ldi r25,hi8(128)
832 073e 9093 0000 sts (BeepMuster)+1,r25
833 0742 8093 0000 sts BeepMuster,r24
834 0746 00C0 rjmp .L103
835 .L100:
836 0748 2A30 cpi r18,lo8(10)
837 074a 01F0 breq .L106
838 074c 2431 cpi r18,lo8(20)
839 074e 00F0 brlo .L108
840 .L106:
841 0750 2898 cbi 37-0x20,0
842 0752 00C0 rjmp .L109
843 .L108:
844 0754 289A sbi 37-0x20,0
845 .L109:
846 0756 8091 0000 lds r24,beeptime
847 075a 9091 0000 lds r25,(beeptime)+1
848 075e 892B or r24,r25
849 0760 01F4 brne .L103
850 0762 8091 0000 lds r24,VersionInfo+6
851 0766 8E7F andi r24,lo8(-2)
852 0768 8093 0000 sts VersionInfo+6,r24
853 .L103:
854 076c 8091 0000 lds r24,UpdateMotor
855 0770 8823 tst r24
856 0772 01F0 breq .+2
857 0774 00C0 rjmp .L85
858 0776 8091 0000 lds r24,CalculateServoSignals
859 077a 8823 tst r24
860 077c 01F0 breq .L112
861 077e 0E94 0000 call CalculateServo
862 .L112:
863 0782 0E94 0000 call DatenUebertragung
864 0786 0E94 0000 call BearbeiteRxDaten
865 078a CE01 movw r24,r28
866 078c 0E94 0000 call CheckDelay
867 0790 8823 tst r24
868 0792 01F4 brne .+2
869 0794 00C0 rjmp .L114
870 0796 8091 0000 lds r24,MissingMotor
871 079a 9091 0000 lds r25,VersionInfo+6
872 079e 8823 tst r24
873 07a0 01F0 breq .L116
874 07a2 9260 ori r25,lo8(2)
875 07a4 9093 0000 sts VersionInfo+6,r25
876 07a8 8091 0000 lds r24,DebugOut+1
877 07ac 8260 ori r24,lo8(2)
878 07ae 00C0 rjmp .L168
879 .L116:
880 07b0 9D7F andi r25,lo8(-3)
881 07b2 9093 0000 sts VersionInfo+6,r25
882 07b6 8091 0000 lds r24,I2CTimeout
883 07ba 9091 0000 lds r25,(I2CTimeout)+1
884 07be 0797 sbiw r24,7
885 07c0 00F0 brlo .L118
886 07c2 8091 0000 lds r24,DebugOut+1
887 07c6 8D7F andi r24,lo8(-3)
888 .L168:
889 07c8 8093 0000 sts DebugOut+1,r24
890 .L118:
891 07cc 8091 0000 lds r24,I2CTimeout
892 07d0 9091 0000 lds r25,(I2CTimeout)+1
893 07d4 0797 sbiw r24,7
894 07d6 00F0 brlo .L120
895 07d8 8091 0000 lds r24,VersionInfo+6
896 07dc 8E7F andi r24,lo8(-2)
897 07de 8093 0000 sts VersionInfo+6,r24
898 .L120:
899 07e2 8091 0000 lds r24,PcZugriff
900 07e6 8823 tst r24
901 07e8 01F0 breq .L122
902 07ea 8150 subi r24,lo8(-(-1))
903 07ec 8093 0000 sts PcZugriff,r24
904 07f0 00C0 rjmp .L124
905 .L122:
906 07f2 1092 0000 sts ExternControl+10,__zero_reg__
907 07f6 1092 0000 sts (ExternStickNick)+1,__zero_reg__
908 07fa 1092 0000 sts ExternStickNick,__zero_reg__
909 07fe 1092 0000 sts (ExternStickRoll)+1,__zero_reg__
910 0802 1092 0000 sts ExternStickRoll,__zero_reg__
911 0806 1092 0000 sts (ExternStickGier)+1,__zero_reg__
912 080a 1092 0000 sts ExternStickGier,__zero_reg__
913 080e 8091 0000 lds r24,BeepMuster
914 0812 9091 0000 lds r25,(BeepMuster)+1
915 0816 8F5F subi r24,lo8(-1)
916 0818 9F4F sbci r25,hi8(-1)
917 081a 01F4 brne .L124
918 081c 8091 0000 lds r24,SenderOkay
919 0820 8823 tst r24
920 0822 01F4 brne .L124
921 0824 88E9 ldi r24,lo8(15000)
922 0826 9AE3 ldi r25,hi8(15000)
923 0828 9093 0000 sts (beeptime)+1,r25
924 082c 8093 0000 sts beeptime,r24
925 0830 80E0 ldi r24,lo8(3072)
926 0832 9CE0 ldi r25,hi8(3072)
927 0834 9093 0000 sts (BeepMuster)+1,r25
928 0838 8093 0000 sts BeepMuster,r24
929 .L124:
930 083c 8091 0000 lds r24,NaviDataOkay
931 0840 893C cpi r24,lo8(-55)
932 0842 00F0 brlo .L127
933 0844 8150 subi r24,lo8(-(-1))
934 0846 8093 0000 sts NaviDataOkay,r24
935 084a 8091 0000 lds r24,VersionInfo+6
936 084e 8B7F andi r24,lo8(-5)
937 0850 8093 0000 sts VersionInfo+6,r24
938 0854 00C0 rjmp .L129
939 .L127:
940 0856 8091 0000 lds r24,NC_Version+3
941 085a 8823 tst r24
942 085c 01F0 breq .L130
943 085e 8091 0000 lds r24,VersionInfo+6
944 0862 8460 ori r24,lo8(4)
945 0864 8093 0000 sts VersionInfo+6,r24
946 0868 8091 0000 lds r24,BeepMuster
947 086c 9091 0000 lds r25,(BeepMuster)+1
948 0870 8F5F subi r24,lo8(-1)
949 0872 9F4F sbci r25,hi8(-1)
950 0874 01F4 brne .L130
951 0876 8091 0000 lds r24,MotorenEin
952 087a 8823 tst r24
953 087c 01F0 breq .L130
954 087e 88E9 ldi r24,lo8(15000)
955 0880 9AE3 ldi r25,hi8(15000)
956 0882 9093 0000 sts (beeptime)+1,r25
957 0886 8093 0000 sts beeptime,r24
958 088a 80E0 ldi r24,lo8(-22528)
959 088c 98EA ldi r25,hi8(-22528)
960 088e 9093 0000 sts (BeepMuster)+1,r25
961 0892 8093 0000 sts BeepMuster,r24
962 .L130:
963 0896 1092 0000 sts (GPS_Nick)+1,__zero_reg__
964 089a 1092 0000 sts GPS_Nick,__zero_reg__
965 089e 1092 0000 sts (GPS_Roll)+1,__zero_reg__
966 08a2 1092 0000 sts GPS_Roll,__zero_reg__
967 08a6 8FEF ldi r24,lo8(-1)
968 08a8 9FEF ldi r25,hi8(-1)
969 08aa 9093 0000 sts (FromNaviCtrl+7)+1,r25
970 08ae 8093 0000 sts FromNaviCtrl+7,r24
971 08b2 1092 0000 sts NaviDataOkay,__zero_reg__
972 .L129:
973 08b6 2091 0000 lds r18,UBat
974 08ba 3091 0000 lds r19,(UBat)+1
975 08be 8091 0000 lds r24,BattLowVoltageWarning
976 08c2 90E0 ldi r25,lo8(0)
977 08c4 2817 cp r18,r24
978 08c6 3907 cpc r19,r25
979 08c8 04F4 brge .L134
980 08ca 8091 0000 lds r24,FC_StatusFlags
981 08ce 8062 ori r24,lo8(32)
982 08d0 8093 0000 sts FC_StatusFlags,r24
983 08d4 8091 0000 lds r24,BeepMuster
984 08d8 9091 0000 lds r25,(BeepMuster)+1
985 08dc 8F5F subi r24,lo8(-1)
986 08de 9F4F sbci r25,hi8(-1)
987 08e0 01F4 brne .L136
988 08e2 80E7 ldi r24,lo8(6000)
989 08e4 97E1 ldi r25,hi8(6000)
990 08e6 9093 0000 sts (beeptime)+1,r25
991 08ea 8093 0000 sts beeptime,r24
992 08ee 80E0 ldi r24,lo8(768)
993 08f0 93E0 ldi r25,hi8(768)
994 08f2 9093 0000 sts (BeepMuster)+1,r25
995 08f6 8093 0000 sts BeepMuster,r24
996 08fa 00C0 rjmp .L136
997 .L134:
998 08fc 8091 0000 lds r24,beeptime
999 0900 9091 0000 lds r25,(beeptime)+1
1000 0904 892B or r24,r25
1001 0906 01F4 brne .L136
1002 0908 8091 0000 lds r24,FC_StatusFlags
1003 090c 8F7D andi r24,lo8(-33)
1004 090e 8093 0000 sts FC_StatusFlags,r24
1005 .L136:
1006 0912 0E94 0000 call SPI_StartTransmitPacket
1007 0916 84E0 ldi r24,lo8(4)
1008 0918 8093 0000 sts SendSPI,r24
1009 091c 8091 0000 lds r24,MotorenEin
1010 0920 8823 tst r24
1011 0922 01F4 brne .L139
1012 0924 0AEA ldi r16,lo8(1450)
1013 0926 15E0 ldi r17,hi8(1450)
1014 0928 00C0 rjmp .L141
1015 .L139:
1016 092a 8091 0000 lds r24,second.2588
1017 092e 8F5F subi r24,lo8(-(1))
1018 0930 8093 0000 sts second.2588,r24
1019 0934 8133 cpi r24,lo8(49)
1020 0936 01F4 brne .L141
1021 0938 1092 0000 sts second.2588,__zero_reg__
1022 093c 8091 0000 lds r24,FlugSekunden
1023 0940 9091 0000 lds r25,(FlugSekunden)+1
1024 0944 0196 adiw r24,1
1025 0946 9093 0000 sts (FlugSekunden)+1,r25
1026 094a 8093 0000 sts FlugSekunden,r24
1027 .L141:
1028 094e 0F5F subi r16,lo8(-(1))
1029 0950 1F4F sbci r17,hi8(-(1))
1030 0952 3BE0 ldi r19,hi8(2930)
1031 0954 0237 cpi r16,lo8(2930)
1032 0956 1307 cpc r17,r19
1033 0958 01F0 breq .L143
1034 095a 6496 adiw r28,20
1035 095c 00C0 rjmp .L114
1036 .L143:
1037 095e 6091 0000 lds r22,FlugMinuten
1038 0962 7091 0000 lds r23,(FlugMinuten)+1
1039 0966 6F5F subi r22,lo8(-(1))
1040 0968 7F4F sbci r23,hi8(-(1))
1041 096a 7093 0000 sts (FlugMinuten)+1,r23
1042 096e 6093 0000 sts FlugMinuten,r22
1043 0972 8091 0000 lds r24,FlugMinutenGesamt
1044 0976 9091 0000 lds r25,(FlugMinutenGesamt)+1
1045 097a 0196 adiw r24,1
1046 097c 9093 0000 sts (FlugMinutenGesamt)+1,r25
1047 0980 8093 0000 sts FlugMinutenGesamt,r24
1048 0984 672F mov r22,r23
1049 0986 7727 clr r23
1050 0988 8EE0 ldi r24,lo8(14)
1051 098a 90E0 ldi r25,hi8(14)
1052 098c 0E94 0000 call SetParamByte
1053 0990 6091 0000 lds r22,FlugMinuten
1054 0994 8FE0 ldi r24,lo8(15)
1055 0996 90E0 ldi r25,hi8(15)
1056 0998 0E94 0000 call SetParamByte
1057 099c 6091 0000 lds r22,FlugMinutenGesamt
1058 09a0 7091 0000 lds r23,(FlugMinutenGesamt)+1
1059 09a4 672F mov r22,r23
1060 09a6 7727 clr r23
1061 09a8 8AE0 ldi r24,lo8(10)
1062 09aa 90E0 ldi r25,hi8(10)
1063 09ac 0E94 0000 call SetParamByte
1064 09b0 6091 0000 lds r22,FlugMinutenGesamt
1065 09b4 8BE0 ldi r24,lo8(11)
1066 09b6 90E0 ldi r25,hi8(11)
1067 09b8 0E94 0000 call SetParamByte
1068 09bc 84E1 ldi r24,lo8(20)
1069 09be 90E0 ldi r25,hi8(20)
1070 09c0 0E94 0000 call SetDelay
1071 09c4 EC01 movw r28,r24
1072 09c6 00E0 ldi r16,lo8(0)
1073 09c8 10E0 ldi r17,hi8(0)
1074 .L114:
1075 09ca 0E94 0000 call LED_Update
1076 09ce 0E94 0000 call Capacity_Update
1077 .L85:
1078 09d2 8091 0000 lds r24,SendSPI
1079 09d6 8823 tst r24
1080 09d8 01F0 breq .+2
1081 09da 00C0 rjmp .L170
1082 09dc 0E94 0000 call SPI_TransmitByte
1083 09e0 00C0 rjmp .L170
1084 /* epilogue: frame size=0 */
1085 /* epilogue: noreturn */
1086 /* epilogue end (size=0) */
1087 /* function main size 1082 (1076) */
1089 .global PlatinenVersion
1090 .data
1093 PlatinenVersion:
1094 0000 0A .byte 10
1095 .global SendVersionToNavi
1098 SendVersionToNavi:
1099 0001 01 .byte 1
1100 .global BattLowVoltageWarning
1103 BattLowVoltageWarning:
1104 0002 5E .byte 94
1105 .global FlugMinuten
1106 .global FlugMinuten
1107 .section .bss
1110 FlugMinuten:
1111 0000 0000 .skip 2,0
1112 .global FlugMinutenGesamt
1113 .global FlugMinutenGesamt
1116 FlugMinutenGesamt:
1117 0002 0000 .skip 2,0
1118 .global FlugSekunden
1119 .global FlugSekunden
1122 FlugSekunden:
1123 0004 0000 .skip 2,0
1124 .global FoundMotors
1125 .global FoundMotors
1128 FoundMotors:
1129 0006 00 .skip 1,0
1130 .lcomm second.2588,1
1131 .section .progmem.data,"a",@progbits
1134 __c.2585:
1135 0000 0A0D 3D3D .string "\n\r===================================\n\r"
1135 3D3D 3D3D
1135 3D3D 3D3D
1135 3D3D 3D3D
1135 3D3D 3D3D
1138 __c.2583:
1139 0028 4E6F 726D .string "Normal (ACC-Mode)"
1139 616C 2028
1139 4143 432D
1139 4D6F 6465
1139 2900
1142 __c.2581:
1143 003a 4865 6164 .string "HeadingHold"
1143 696E 6748
1143 6F6C 6400
1146 __c.2579:
1147 0046 0A0D 436F .string "\n\rControl: "
1147 6E74 726F
1147 6C3A 2000
1150 __c.2577:
1151 0052 0A0D 466C .string "\n\rFlight-time %u min Total:%u min"
1151 6967 6874
1151 2D74 696D
1151 6520 2575
1151 206D 696E
1154 __c.2575:
1155 0075 4F4B 0A0D .string "OK\n\r"
1155 00
1158 __c.2570:
1159 007a 0A0D 4361 .string "\n\rCalibrating IR sensor.."
1159 6C69 6272
1159 6174 696E
1159 6720 4952
1159 2073 656E
1162 __c.2568:
1163 0094 0A0D 3D3D .string "\n\r==================================="
1163 3D3D 3D3D
1163 3D3D 3D3D
1163 3D3D 3D3D
1163 3D3D 3D3D
1166 __c.2563:
1167 00ba 0A0D 0A0D .string "\n\r\n\r!! MISSING BL-CTRL: %d !!"
1167 2121 204D
1167 4953 5349
1167 4E47 2042
1167 4C2D 4354
1170 __c.2558:
1171 00d8 2564 00 .string "%d"
1174 __c.2547:
1175 00db 0A0D 466F .string "\n\rFound BL-Ctrl: "
1175 756E 6420
1175 424C 2D43
1175 7472 6C3A
1175 2000
1178 __c.2542:
1179 00ed 0A0D 496E .string "\n\rInitialised:\n\r"
1179 6974 6961
1179 6C69 7365
1179 643A 0A0D
1179 00
1182 __c.2514:
1183 00fe 204C 6F77 .string " Low warning level: %d.%d"
1183 2077 6172
1183 6E69 6E67
1183 206C 6576
1183 656C 3A20
1186 __c.2512:
1187 0118 2025 6420 .string " %d Cells "
1187 4365 6C6C
1187 7320 00
1190 __c.2504:
1191 0123 0A0D 4261 .string "\n\rBatt:"
1191 7474 3A00
1192 .data
1195 stick.2490:
1196 0003 01 .byte 1
1197 .comm _printf_P,2,1
1198 /* File "main.c": code 1276 = 0x04fc (1262), prologues 9, epilogues 5 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:12 .text:00000000 LipoDetection
*COM*:00000002 _printf_P
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1190 .progmem.data:00000123 __c.2504
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1103 .data:00000002 BattLowVoltageWarning
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1186 .progmem.data:00000118 __c.2512
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1182 .progmem.data:000000fe __c.2514
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:151 .text:00000118 CalMk3Mag
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1195 .data:00000003 stick.2490
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:204 .text:00000182 main
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1093 .data:00000000 PlatinenVersion
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1178 .progmem.data:000000ed __c.2542
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1174 .progmem.data:000000db __c.2547
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1170 .progmem.data:000000d8 __c.2558
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1128 .bss:00000006 FoundMotors
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1166 .progmem.data:000000ba __c.2563
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1162 .progmem.data:00000094 __c.2568
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1158 .progmem.data:0000007a __c.2570
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1154 .progmem.data:00000075 __c.2575
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1110 .bss:00000000 FlugMinuten
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1116 .bss:00000002 FlugMinutenGesamt
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1150 .progmem.data:00000052 __c.2577
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1146 .progmem.data:00000046 __c.2579
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1142 .progmem.data:0000003a __c.2581
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1138 .progmem.data:00000028 __c.2583
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1134 .progmem.data:00000000 __c.2585
.bss:00000007 second.2588
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1122 .bss:00000004 FlugSekunden
C:\DOCUME~1\Owner\LOCALS~1\Temp/cczHFcZA.s:1098 .data:00000001 SendVersionToNavi
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
uart_putchar
EE_Parameter
SetDelay
CheckDelay
UBat
Piep
__udivmodqi4
PPM_in
WinkelOut
beeptime
DebugOut
__prologue_saves__
StickGier
StickRoll
StickNick
GIER_GRAD_FAKTOR
Timer_Init
TIMER2_Init
UART_Init
rc_sum_init
ADC_Init
I2C_Init
SPI_MasterInit
Capacity_Init
LIBFC_Init
ParamSet_Init
BLFlags
motor_read
SendMotorData
Motor
Mixer
ServoActive
RequiredMotors
VersionInfo
SetNeutral
ExternControl
GetParamByte
LcdClear
I2CTimeout
LIBFC_ReceiverInit
JetiUpdateModeActive
LIBFC_Polling
UpdateMotor
AdReady
MotorRegler
SenderOkay
MissingMotor
I2C_Reset
BeepMuster
MotorenEin
CalculateServoSignals
CalculateServo
DatenUebertragung
BearbeiteRxDaten
PcZugriff
ExternStickNick
ExternStickRoll
ExternStickGier
NaviDataOkay
NC_Version
GPS_Nick
GPS_Roll
FromNaviCtrl
FC_StatusFlags
SPI_StartTransmitPacket
SendSPI
SetParamByte
LED_Update
Capacity_Update
SPI_TransmitByte
/Spektrum-Diversity/V0.82a/makefile
0,0 → 1,464
#--------------------------------------------------------------------
# MCU name
#MCU = atmega1284p
MCU = atmega644p
F_CPU = 20000000
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 82
VERSION_PATCH = 0
VERSION_SERIAL_MAJOR = 11 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 16 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
# get SVN revision
REV := $(shell sh -c "cat .svn/entries | sed -n '4p'")
 
ifeq ($(MCU), atmega1284p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA1284P
LIBFC_EXT = 1284
endif
 
ifeq ($(MCU), atmega644p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA644
LIBFC_EXT = 644
endif
 
ifeq ($(F_CPU), 16000000)
QUARZ = 16MHZ
endif
 
ifeq ($(F_CPU), 20000000)
QUARZ = 20MHZ
endif
 
 
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
 
# Target file name (without extension).
 
ifeq ($(VERSION_PATCH), 0)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)a_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 1)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)b_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 2)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)c_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 3)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)d_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 4)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)e_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 5)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)f_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 6)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)g_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 7)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)h_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 8)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)i_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 9)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)j_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 10)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)k_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 11)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)L_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 12)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)m_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 13)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)n_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 14)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)o_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 15)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)p_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 16)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)q_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 17)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)r_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 18)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)s_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 19)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)t_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 20)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)u_SVN$(REV)
endif
 
 
# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT = s
#OPT = 2
 
##########################################################################################################
# List C source files here. (C dependencies are automatically generated.)
SRC = main.c uart.c timer0.c analog.c menu.c eeprom.c
SRC += twimaster.c rc.c fc.c GPS.c spi.c led.c Spektrum.c
SRC += mymath.c jetimenu.c capacity.c debug.c
 
##########################################################################################################
 
 
# List Assembler source files here.
# Make them always end in a capital .S. Files ending in a lowercase .s
# will not be considered source files but generated files (assembler
# output from the compiler), and will be deleted upon "make clean"!
# Even though the DOS/Win* filesystem matches both .s and .S the same,
# it will preserve the spelling of the filenames, and gcc itself does
# care about how the name is spelled on its command-line.
ASRC = isqrt.S
 
 
 
# List any extra directories to look for include files here.
# Each directory must be seperated by a space.
EXTRAINCDIRS =
 
 
# Optional compiler flags.
# -g: generate debugging information (for GDB, or for COFF conversion)
# -O*: optimization level
# -f...: tuning, see gcc manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create assembler listing
CFLAGS = -O$(OPT) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=$(<:%.c=%.lst) $(patsubst %,-I%,$(EXTRAINCDIRS))
 
 
# Set a "language standard" compiler flag.
# Unremark just one line below to set the language standard to use.
# gnu99 = C99 + GNU extensions. See GCC manual for more information.
#CFLAGS += -std=c89
#CFLAGS += -std=gnu89
#CFLAGS += -std=c99
CFLAGS += -std=gnu99
 
# shrink code size
CFLAGS += -mtiny-stack
#CFLAGS += -fno-inline-functions
CFLAGS += -mcall-prologues
 
CFLAGS += -DF_CPU=$(F_CPU) -DVERSION_MAJOR=$(VERSION_MAJOR) -DVERSION_MINOR=$(VERSION_MINOR) -DVERSION_PATCH=$(VERSION_PATCH) -DVERSION_SERIAL_MAJOR=$(VERSION_SERIAL_MAJOR) -DVERSION_SERIAL_MINOR=$(VERSION_SERIAL_MINOR) -DNC_SPI_COMPATIBLE=$(NC_SPI_COMPATIBLE)
 
 
# Optional assembler flags.
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
 
 
 
# Optional linker flags.
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
 
# Additional libraries
 
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
 
# Floating point printf version (requires -lm below)
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
 
# -lm = math library
LDFLAGS += -lm
 
LDFLAGS += libfc$(LIBFC_EXT).a
 
##LDFLAGS += -T./linkerfile/avr5.x
 
 
 
# Programming support using avrdude. Settings and variables.
 
# Programming hardware: alf avr910 avrisp bascom bsd
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
#
# Type: avrdude -c ?
# to get a full listing.
#
#AVRDUDE_PROGRAMMER = dt006
#AVRDUDE_PROGRAMMER = stk200
#AVRDUDE_PROGRAMMER = ponyser
AVRDUDE_PROGRAMMER = avrispv2
#falls Ponyser ausgewählt wird, muss sich unsere avrdude-Configdatei im Bin-Verzeichnis des Compilers befinden
 
#AVRDUDE_PORT = com1 # programmer connected to serial device
#AVRDUDE_PORT = lpt1 # programmer connected to parallel port
AVRDUDE_PORT = usb # programmer connected to USB
 
#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_SETTINGS)
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 
#avrdude -c avrispv2 -P usb -p m32 -U flash:w:blink.hex
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE += -y
 
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
AVRDUDE_FLAGS += -V
 
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_FLAGS += -v -v
 
# ---------------------------------------------------------------------------
# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
 
 
# Define programs and commands.
SHELL = sh
 
CC = avr-gcc
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
# Programming support using avrdude.
AVRDUDE = avrdude
 
REMOVE = rm -f
COPY = cp
 
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -x -A $(TARGET).elf
LIMITS = $(SIZE) --mcu=$(MCU) -C $(TARGET).elf
 
 
# Define Messages
# English
MSG_ERRORS_NONE = Errors: none
MSG_BEGIN = -------- begin --------
MSG_END = -------- end --------
MSG_SIZE_BEFORE = Size before:
MSG_SIZE_AFTER = Size after:
MSG_COFF = Converting to AVR COFF:
MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
MSG_FLASH = Creating load file for Flash:
MSG_EEPROM = Creating load file for EEPROM:
MSG_EXTENDED_LISTING = Creating Extended Listing:
MSG_SYMBOL_TABLE = Creating Symbol Table:
MSG_LINKING = Linking:
MSG_COMPILING = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
 
 
# Define all object files.
OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
 
# Define all listing files.
LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
 
# Combine all necessary flags and optional flags.
# Add target processor to flags.
#ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS)
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 
 
# Default target.
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex sizeafter finished end
 
 
# Eye candy.
# AVR Studio 3.x does not check make's exit code but relies on
# the following magic strings to be generated by the compile job.
begin:
@echo
@echo $(MSG_BEGIN)
 
finished:
@echo $(MSG_ERRORS_NONE)
 
end:
@echo $(MSG_END)
@echo
 
 
# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
sizeafter:
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
 
 
# Display compiler version information.
gccversion :
@$(CC) --version
 
 
# Convert ELF to COFF for use in debugging / simulating in
# AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
 
 
coff: $(TARGET).elf
@echo
@echo $(MSG_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
 
 
extcoff: $(TARGET).elf
@echo
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
 
 
 
 
# Program the device.
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 
 
 
 
# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
@echo
@echo $(MSG_FLASH) $@
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
 
# Create extended listing file from ELF output file.
%.lss: %.elf
@echo
@echo $(MSG_EXTENDED_LISTING) $@
$(OBJDUMP) -h -S $< > $@
 
# Create a symbol table from ELF output file.
%.sym: %.elf
@echo
@echo $(MSG_SYMBOL_TABLE) $@
avr-nm -n $< > $@
 
 
 
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
@echo
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
 
 
# Compile: create object files from C source files.
%.o : %.c
@echo
@echo $(MSG_COMPILING) $<
$(CC) -c $(ALL_CFLAGS) $< -o $@
 
 
# Compile: create assembler files from C source files.
%.s : %.c
$(CC) -S $(ALL_CFLAGS) $< -o $@
 
 
# Assemble: create object files from assembler source files.
%.o : %.S
@echo
@echo $(MSG_ASSEMBLING) $<
$(CC) -c $(ALL_ASFLAGS) $< -o $@
 
 
 
 
 
 
# Target: clean project.
clean: begin clean_list finished end
 
clean_list :
@echo
@echo $(MSG_CLEANING)
$(REMOVE) Flight-Ctrl_*.hex
$(REMOVE) Flight-Ctrl_*.eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) Flight-Ctrl_*.elf
$(REMOVE) Flight-Ctrl_*.map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) Flight-Ctrl_*.sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
$(REMOVE) $(SRC:.c=.o)
 
 
# Automatically generate C source code dependencies.
# (Code originally taken from the GNU make user manual and modified
# (See README.txt Credits).)
#
# Note that this will work with sh (bash) and sed that is shipped with WinAVR
# (see the SHELL variable defined above).
# This may not work with other shells or other seds.
#
%.d: %.c
set -e; $(CC) -MM $(ALL_CFLAGS) $< \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
[ -s $@ ] || rm -f $@
 
 
# Remove the '-' if you want to see the dependency files generated.
-include $(SRC:%.c=%.d)
 
 
 
# Listing of phony targets.
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
clean clean_list program
 
/Spektrum-Diversity/V0.82a/menu.c
0,0 → 1,204
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
#include "eeprom.h"
 
char DisplayBuff[80] = "Hello World";
unsigned char DispPtr = 0;
 
unsigned char MaxMenue = 17;
unsigned char MenuePunkt = 0;
unsigned char RemoteKeys = 0;
 
#define KEY1 0x01
#define KEY2 0x02
#define KEY3 0x04
#define KEY4 0x08
#define KEY5 0x10
 
void LcdClear(void)
{
unsigned char i;
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
}
 
void Menu_Putchar(char c)
{
DisplayBuff[DispPtr++] = c;
}
 
void Menu(void)
{
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;}
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;}
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
{
case 0:
LCD_printfxy(0,0,"+ MikroKopter +");
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%d%c",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
LCD_printfxy(0,2,"Setting:%d %s", GetActiveParamSet(),Mixer.Name);
if(VersionInfo.HardwareError[0]) LCD_printfxy(0,3,"Hardware Error 1:%d !!",VersionInfo.HardwareError[0])
else
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d!!",MissingMotor)
else
if(VersionInfo.HardwareError[1] & FC_ERROR1_MIXER) LCD_printfxy(0,3,"Mixer Error!")
else
// if(VersionInfo.HardwareError[1]) LCD_printfxy(0,3,"Error 2:%d !!",VersionInfo.HardwareError[1])
// else
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!")
break;
case 1:
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
LCD_printfxy(0,0,"Height: %5i",(int)(HoehenWert/5));
LCD_printfxy(0,1,"Setpoint:%5i",(int)(SollHoehe/5));
LCD_printfxy(0,2,"Pressure:%5i",MessLuftdruck);
LCD_printfxy(0,3,"Offset: %5i",OCR0A);
}
else
{
LCD_printfxy(0,0,"Height control");
LCD_printfxy(0,1,"DISABLED");
LCD_printfxy(0,2,"Height control");
LCD_printfxy(0,3,"DISABLED");
}
 
break;
case 2:
LCD_printfxy(0,0,"act. bearing");
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Compass: %5i",KompassValue);
break;
case 3:
LCD_printfxy(0,0,"K1:%4i K2:%4i ",PPM_in[1],PPM_in[2]);
LCD_printfxy(0,1,"K3:%4i K4:%4i ",PPM_in[3],PPM_in[4]);
LCD_printfxy(0,2,"K5:%4i K6:%4i ",PPM_in[5],PPM_in[6]);
LCD_printfxy(0,3,"K7:%4i K8:%4i ",PPM_in[7],PPM_in[8]);
break;
case 4:
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]);
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+120,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]+110);
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]+110);
break;
case 5:
LCD_printfxy(0,0,"Gyro - Sensor");
if(PlatinenVersion == 10)
{
LCD_printfxy(0,1,"Nick%4i (%3i.%i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/8, AdNeutralNick%8);
LCD_printfxy(0,2,"Roll%4i (%3i.%i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/8, AdNeutralRoll%8);
LCD_printfxy(0,3,"Gier%4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier);
}
else
if((PlatinenVersion == 11) || (PlatinenVersion >= 20))
{
LCD_printfxy(0,1,"Nick %4i (%3i.%x)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16, (AdNeutralNick%16)/2);
LCD_printfxy(0,2,"Roll %4i (%3i.%x)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16, (AdNeutralRoll%16)/2);
LCD_printfxy(0,3,"Yaw %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2);
}
else
if(PlatinenVersion == 13)
{
LCD_printfxy(0,1,"Nick %4i (%3i)(%3i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16,AnalogOffsetNick);
LCD_printfxy(0,2,"Roll %4i (%3i)(%3i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16,AnalogOffsetRoll);
LCD_printfxy(0,3,"Yaw %4i (%3i)(%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2,AnalogOffsetGier);
}
break;
case 6:
LCD_printfxy(0,0,"ACC - Sensor");
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX);
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY);
LCD_printfxy(0,3,"Z %4i (%3i)",AdWertAccHoch,(int)NeutralAccZ);
break;
case 7:
LCD_printfxy(0,0,"Voltage: %3i.%1iV",UBat/10, UBat%10);
LCD_printfxy(0,1,"Current: %3i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
LCD_printfxy(0,2,"Power: %4iW",Capacity.ActualPower);
LCD_printfxy(0,3,"Discharge: %5imAh", Capacity.UsedCapacity);
break;
case 8:
LCD_printfxy(0,0,"Receiver");
LCD_printfxy(0,1,"RC-RSSI: %4i", PPM_in[0]);
LCD_printfxy(0,2,"RC-Quality: %4i", SenderOkay);
LCD_printfxy(0,3,"RC-Channels:%4i", Channels-1);
break;
case 9:
LCD_printfxy(0,0,"Compass");
LCD_printfxy(0,1,"Heading: %5i",KompassRichtung);
LCD_printfxy(0,2,"Value: %5i",KompassValue);
LCD_printfxy(0,3,"Start: %5i",KompassStartwert);
break;
case 10:
LCD_printfxy(0,0,"Poti1: %3i",Poti[0]);
LCD_printfxy(0,1,"Poti2: %3i",Poti[1]);
LCD_printfxy(0,2,"Poti3: %3i",Poti[2]);
LCD_printfxy(0,3,"Poti4: %3i",Poti[3]);
break;
case 11:
LCD_printfxy(0,0,"Poti5: %3i",Poti[4]);
LCD_printfxy(0,1,"Poti6: %3i",Poti[5]);
LCD_printfxy(0,2,"Poti7: %3i",Poti[6]);
LCD_printfxy(0,3,"Poti8: %3i",Poti[7]);
break;
case 12:
LCD_printfxy(0,0,"Servo " );
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
LCD_printfxy(0,2,"Position: %3i",ServoNickValue/4);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 13:
LCD_printfxy(0,0,"ExternControl " );
LCD_printfxy(0,1,"Ni:%4i Ro:%4i ",ExternControl.Nick,ExternControl.Roll);
LCD_printfxy(0,2,"Gs:%4i Gi:%4i ",ExternControl.Gas,ExternControl.Gier);
LCD_printfxy(0,3,"Hi:%4i Cf:%4i ",ExternControl.Hight,ExternControl.Config);
break;
case 14:
LCD_printfxy(0,0,"BL-Ctrl Errors " );
LCD_printfxy(0,1,"%3d %3d %3d %3d ",Motor[0].State & MOTOR_STATE_ERROR_MASK,Motor[1].State & MOTOR_STATE_ERROR_MASK,Motor[2].State & MOTOR_STATE_ERROR_MASK,Motor[3].State & MOTOR_STATE_ERROR_MASK);
LCD_printfxy(0,2,"%3d %3d %3d %3d ",Motor[4].State & MOTOR_STATE_ERROR_MASK,Motor[5].State & MOTOR_STATE_ERROR_MASK,Motor[6].State & MOTOR_STATE_ERROR_MASK,Motor[7].State & MOTOR_STATE_ERROR_MASK);
LCD_printfxy(0,3,"%3d %3d %3d %3d ",Motor[8].State & MOTOR_STATE_ERROR_MASK,Motor[9].State & MOTOR_STATE_ERROR_MASK,Motor[10].State & MOTOR_STATE_ERROR_MASK,Motor[11].State & MOTOR_STATE_ERROR_MASK);
break;
case 15:
LCD_printfxy(0,0,"BL Temperature" );
LCD_printfxy(0,1,"%3i %3i %3i %3i ",Motor[0].Temperature,Motor[1].Temperature,Motor[2].Temperature,Motor[3].Temperature);
LCD_printfxy(0,2,"%3i %3i %3i %3i ",Motor[4].Temperature,Motor[5].Temperature,Motor[6].Temperature,Motor[7].Temperature);
LCD_printfxy(0,3,"%3i %3i %3i %3i ",Motor[8].Temperature,Motor[9].Temperature,Motor[10].Temperature,Motor[11].Temperature);
break;
case 16:
LCD_printfxy(0,0,"BL-Ctrl found " );
LCD_printfxy(0,1," %c %c %c %c ",'-' + 4 * (Motor[0].State>>7),'-' + 5 * (Motor[1].State>>7),'-' + 6 * (Motor[2].State>>7),'-' + 7 * (Motor[3].State>>7));
LCD_printfxy(0,2," %c %c %c %c ",'-' + 8 * (Motor[4].State>>7),'-' + 9 * (Motor[5].State>>7),'-' + 10 * (Motor[6].State>>7),'-' + 11 * (Motor[7].State>>7));
LCD_printfxy(0,3," %c - - - ",'-' + 12 * (Motor[8].State>>7));
if(Motor[9].State>>7) LCD_printfxy(4,3,"10");
if(Motor[10].State>>7) LCD_printfxy(8,3,"11");
if(Motor[11].State>>7) LCD_printfxy(12,3,"12");
break;
case 17:
LCD_printfxy(0,0,"Flight-Time " );
LCD_printfxy(0,1,"Total:%5umin",FlugMinutenGesamt);
LCD_printfxy(0,2,"Act: %5umin",FlugMinuten);
LCD_printfxy(13,3,"(reset)");
if(RemoteKeys & KEY4)
{
FlugMinuten = 0;
SetParamWord(PID_FLIGHT_MINUTES, FlugMinuten);
}
break;
default:
if(MenuePunkt == MaxMenue) MaxMenue--;
MenuePunkt = 0;
break;
}
RemoteKeys = 0;
}
/Spektrum-Diversity/V0.82a/menu.d
0,0 → 1,3
menu.o menu.d : menu.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/menu.h
0,0 → 1,17
#ifndef _MENU_H
#define _MENU_H
 
extern void Menu(void);
extern void LcdClear(void);
extern void Menu_Putchar(char c);
extern char DisplayBuff[80];
extern unsigned char DispPtr;
 
extern unsigned char MaxMenue;
extern unsigned char MenuePunkt;
extern unsigned char RemoteKeys;
 
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(&Menu_Putchar,PSTR(format) , ## args);}
#define LCD_printf(format, args...) { _printf_P(&Menu_Putchar, PSTR(format) , ## args);}
 
#endif //_MENU_H
/Spektrum-Diversity/V0.82a/menu.lst
0,0 → 1,2830
1 .file "menu.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global LcdClear
12 LcdClear:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 E0E0 ldi r30,lo8(DisplayBuff)
16 0002 F0E0 ldi r31,hi8(DisplayBuff)
17 .L2:
18 0004 80E2 ldi r24,lo8(32)
19 0006 8193 st Z+,r24
20 0008 80E0 ldi r24,hi8(DisplayBuff+80)
21 000a E030 cpi r30,lo8(DisplayBuff+80)
22 000c F807 cpc r31,r24
23 000e 01F4 brne .L2
24 /* epilogue: frame size=0 */
25 0010 0895 ret
26 /* epilogue end (size=1) */
27 /* function LcdClear size 9 (8) */
29 .global Menu_Putchar
31 Menu_Putchar:
32 /* prologue: frame size=0 */
33 /* prologue end (size=0) */
34 0012 9091 0000 lds r25,DispPtr
35 0016 E0E0 ldi r30,lo8(DisplayBuff)
36 0018 F0E0 ldi r31,hi8(DisplayBuff)
37 001a E90F add r30,r25
38 001c F11D adc r31,__zero_reg__
39 001e 8083 st Z,r24
40 0020 9F5F subi r25,lo8(-(1))
41 0022 9093 0000 sts DispPtr,r25
42 /* epilogue: frame size=0 */
43 0026 0895 ret
44 /* epilogue end (size=1) */
45 /* function Menu_Putchar size 11 (10) */
47 .global Menu
49 Menu:
50 /* prologue: frame size=0 */
51 0028 A0E0 ldi r26,lo8(0)
52 002a B0E0 ldi r27,hi8(0)
53 002c E0E0 ldi r30,pm_lo8(1f)
54 002e F0E0 ldi r31,pm_hi8(1f)
55 0030 0C94 0000 jmp __prologue_saves__+16
56 1:
57 /* prologue end (size=6) */
58 0034 8091 0000 lds r24,RemoteKeys
59 0038 282F mov r18,r24
60 003a 30E0 ldi r19,lo8(0)
61 003c C901 movw r24,r18
62 003e 8170 andi r24,lo8(1)
63 0040 9070 andi r25,hi8(1)
64 0042 682F mov r22,r24
65 0044 8823 tst r24
66 0046 01F0 breq .L10
67 0048 8091 0000 lds r24,MenuePunkt
68 004c 8823 tst r24
69 004e 01F0 breq .L12
70 0050 8150 subi r24,lo8(-(-1))
71 0052 00C0 rjmp .L73
72 .L12:
73 0054 8091 0000 lds r24,MaxMenue
74 .L73:
75 0058 8093 0000 sts MenuePunkt,r24
76 .L10:
77 005c A901 movw r20,r18
78 005e 4270 andi r20,lo8(2)
79 0060 5070 andi r21,hi8(2)
80 0062 21FF sbrs r18,1
81 0064 00C0 rjmp .L14
82 0066 9091 0000 lds r25,MenuePunkt
83 006a 8091 0000 lds r24,MaxMenue
84 006e 9817 cp r25,r24
85 0070 01F4 brne .L16
86 0072 1092 0000 sts MenuePunkt,__zero_reg__
87 0076 00C0 rjmp .L14
88 .L16:
89 0078 9F5F subi r25,lo8(-(1))
90 007a 9093 0000 sts MenuePunkt,r25
91 .L14:
92 007e 6623 tst r22
93 0080 01F0 breq .L18
94 0082 452B or r20,r21
95 0084 01F0 breq .L18
96 0086 1092 0000 sts MenuePunkt,__zero_reg__
97 .L18:
98 008a E0E0 ldi r30,lo8(DisplayBuff)
99 008c F0E0 ldi r31,hi8(DisplayBuff)
100 .L21:
101 008e 80E2 ldi r24,lo8(32)
102 0090 8193 st Z+,r24
103 0092 20E0 ldi r18,hi8(DisplayBuff+80)
104 0094 E030 cpi r30,lo8(DisplayBuff+80)
105 0096 F207 cpc r31,r18
106 0098 01F4 brne .L21
107 009a 8091 0000 lds r24,MenuePunkt
108 009e C091 0000 lds r28,_printf_P
109 00a2 D091 0000 lds r29,(_printf_P)+1
110 00a6 282F mov r18,r24
111 00a8 30E0 ldi r19,lo8(0)
112 00aa 90E0 ldi r25,lo8(gs(Menu_Putchar))
113 00ac E92E mov r14,r25
114 00ae 90E0 ldi r25,hi8(gs(Menu_Putchar))
115 00b0 F92E mov r15,r25
116 00b2 8A30 cpi r24,lo8(10)
117 00b4 00F4 brsh .L23
118 00b6 81E1 ldi r24,lo8(17)
119 00b8 8093 0000 sts DispPtr,r24
120 00bc 3F93 push r19
121 00be 2F93 push r18
122 00c0 80E0 ldi r24,lo8(__c.2501)
123 00c2 90E0 ldi r25,hi8(__c.2501)
124 00c4 9F93 push r25
125 00c6 8F93 push r24
126 00c8 FF92 push r15
127 00ca EF92 push r14
128 00cc FE01 movw r30,r28
129 00ce 0995 icall
130 00d0 4DB7 in r20,__SP_L__
131 00d2 5EB7 in r21,__SP_H__
132 00d4 4A5F subi r20,lo8(-(6))
133 00d6 5F4F sbci r21,hi8(-(6))
134 00d8 4DBF out __SP_L__,r20
135 00da 00C0 rjmp .L25
136 .L23:
137 00dc 80E1 ldi r24,lo8(16)
138 00de 8093 0000 sts DispPtr,r24
139 00e2 3F93 push r19
140 00e4 2F93 push r18
141 00e6 80E0 ldi r24,lo8(__c.2503)
142 00e8 90E0 ldi r25,hi8(__c.2503)
143 00ea 9F93 push r25
144 00ec 8F93 push r24
145 00ee FF92 push r15
146 00f0 EF92 push r14
147 00f2 FE01 movw r30,r28
148 00f4 0995 icall
149 00f6 8DB7 in r24,__SP_L__
150 00f8 9EB7 in r25,__SP_H__
151 00fa 0696 adiw r24,6
152 00fc 8DBF out __SP_L__,r24
153 .L25:
154 00fe 9091 0000 lds r25,MenuePunkt
155 0102 E92F mov r30,r25
156 0104 F0E0 ldi r31,lo8(0)
157 0106 E231 cpi r30,18
158 0108 F105 cpc r31,__zero_reg__
159 010a 00F0 brlo .+4
160 010c 0C94 0000 jmp .L26
161 0110 E050 subi r30,lo8(-(gs(.L45)))
**** Warning:expression dangerous with linker stubs
162 0112 F040 sbci r31,hi8(-(gs(.L45)))
**** Warning:expression dangerous with linker stubs
163 0114 C091 0000 lds r28,_printf_P
164 0118 D091 0000 lds r29,(_printf_P)+1
165 011c 80E0 ldi r24,lo8(gs(Menu_Putchar))
166 011e E82E mov r14,r24
167 0120 80E0 ldi r24,hi8(gs(Menu_Putchar))
168 0122 F82E mov r15,r24
169 0124 0C94 0000 jmp __tablejump2__
170 .data
171 .section .progmem.gcc_sw_table, "a", @progbits
172 .p2align 1
173 .L45:
174 .data
175 .section .progmem.gcc_sw_table, "a", @progbits
176 .p2align 1
177 0000 0000 .word gs(.L27)
178 0002 0000 .word gs(.L28)
179 0004 0000 .word gs(.L29)
180 0006 0000 .word gs(.L30)
181 0008 0000 .word gs(.L31)
182 000a 0000 .word gs(.L32)
183 000c 0000 .word gs(.L33)
184 000e 0000 .word gs(.L34)
185 0010 0000 .word gs(.L35)
186 0012 0000 .word gs(.L36)
187 0014 0000 .word gs(.L37)
188 0016 0000 .word gs(.L38)
189 0018 0000 .word gs(.L39)
190 001a 0000 .word gs(.L40)
191 001c 0000 .word gs(.L41)
192 001e 0000 .word gs(.L42)
193 0020 0000 .word gs(.L43)
194 0022 0000 .word gs(.L44)
195 .text
196 .L27:
197 0128 1092 0000 sts DispPtr,__zero_reg__
198 012c 80E0 ldi r24,lo8(__c.2506)
199 012e 90E0 ldi r25,hi8(__c.2506)
200 0130 9F93 push r25
201 0132 8F93 push r24
202 0134 00E0 ldi r16,lo8(gs(Menu_Putchar))
203 0136 A02E mov r10,r16
204 0138 00E0 ldi r16,hi8(gs(Menu_Putchar))
205 013a B02E mov r11,r16
206 013c FF92 push r15
207 013e EF92 push r14
208 0140 FE01 movw r30,r28
209 0142 0995 icall
210 0144 84E1 ldi r24,lo8(20)
211 0146 8093 0000 sts DispPtr,r24
212 014a E091 0000 lds r30,_printf_P
213 014e F091 0000 lds r31,(_printf_P)+1
214 0152 2091 0000 lds r18,PlatinenVersion
215 0156 822F mov r24,r18
216 0158 6AE0 ldi r22,lo8(10)
217 015a 0E94 0000 call __udivmodqi4
218 015e 492F mov r20,r25
219 0160 50E0 ldi r21,lo8(0)
220 0162 822F mov r24,r18
221 0164 0E94 0000 call __udivmodqi4
222 0168 90E0 ldi r25,lo8(0)
223 016a 21E6 ldi r18,lo8(97)
224 016c 30E0 ldi r19,hi8(97)
225 016e 3F93 push r19
226 0170 2F93 push r18
227 0172 22E5 ldi r18,lo8(82)
228 0174 30E0 ldi r19,hi8(82)
229 0176 3F93 push r19
230 0178 2F93 push r18
231 017a 1F92 push __zero_reg__
232 017c 1F92 push __zero_reg__
233 017e 5F93 push r21
234 0180 4F93 push r20
235 0182 9F93 push r25
236 0184 8F93 push r24
237 0186 80E0 ldi r24,lo8(__c.2508)
238 0188 90E0 ldi r25,hi8(__c.2508)
239 018a 9F93 push r25
240 018c 8F93 push r24
241 018e FF92 push r15
242 0190 EF92 push r14
243 0192 0995 icall
244 0194 88E2 ldi r24,lo8(40)
245 0196 8093 0000 sts DispPtr,r24
246 019a 0091 0000 lds r16,_printf_P
247 019e 1091 0000 lds r17,(_printf_P)+1
248 01a2 0E94 0000 call GetActiveParamSet
249 01a6 90E0 ldi r25,lo8(0)
250 01a8 20E0 ldi r18,lo8(Mixer+1)
251 01aa 30E0 ldi r19,hi8(Mixer+1)
252 01ac 3F93 push r19
253 01ae 2F93 push r18
254 01b0 9F93 push r25
255 01b2 8F93 push r24
256 01b4 80E0 ldi r24,lo8(__c.2510)
257 01b6 90E0 ldi r25,hi8(__c.2510)
258 01b8 9F93 push r25
259 01ba 8F93 push r24
260 01bc FF92 push r15
261 01be EF92 push r14
262 01c0 F801 movw r30,r16
263 01c2 0995 icall
264 01c4 9091 0000 lds r25,VersionInfo+5
265 01c8 2DB7 in r18,__SP_L__
266 01ca 3EB7 in r19,__SP_H__
267 01cc 265E subi r18,lo8(-(26))
268 01ce 3F4F sbci r19,hi8(-(26))
269 01d0 2DBF out __SP_L__,r18
270 01d2 9923 tst r25
271 01d4 01F0 breq .L46
272 01d6 8CE3 ldi r24,lo8(60)
273 01d8 8093 0000 sts DispPtr,r24
274 01dc E091 0000 lds r30,_printf_P
275 01e0 F091 0000 lds r31,(_printf_P)+1
276 01e4 892F mov r24,r25
277 01e6 90E0 ldi r25,lo8(0)
278 01e8 9F93 push r25
279 01ea 8F93 push r24
280 01ec 80E0 ldi r24,lo8(__c.2512)
281 01ee 90E0 ldi r25,hi8(__c.2512)
282 01f0 9F93 push r25
283 01f2 8F93 push r24
284 01f4 BF92 push r11
285 01f6 AF92 push r10
286 01f8 0995 icall
287 01fa 4DB7 in r20,__SP_L__
288 01fc 5EB7 in r21,__SP_H__
289 01fe 4A5F subi r20,lo8(-(6))
290 0200 5F4F sbci r21,hi8(-(6))
291 0202 00C0 rjmp .L74
292 .L46:
293 0204 9091 0000 lds r25,MissingMotor
294 0208 9923 tst r25
295 020a 01F0 breq .L49
296 020c 8CE3 ldi r24,lo8(60)
297 020e 8093 0000 sts DispPtr,r24
298 0212 E091 0000 lds r30,_printf_P
299 0216 F091 0000 lds r31,(_printf_P)+1
300 021a 892F mov r24,r25
301 021c 90E0 ldi r25,lo8(0)
302 021e 9F93 push r25
303 0220 8F93 push r24
304 0222 80E0 ldi r24,lo8(__c.2514)
305 0224 90E0 ldi r25,hi8(__c.2514)
306 0226 9F93 push r25
307 0228 8F93 push r24
308 022a BF92 push r11
309 022c AF92 push r10
310 022e 0995 icall
311 0230 8DB7 in r24,__SP_L__
312 0232 9EB7 in r25,__SP_H__
313 0234 0696 adiw r24,6
314 0236 00C0 rjmp .L76
315 .L49:
316 0238 8091 0000 lds r24,VersionInfo+6
317 023c 84FF sbrs r24,4
318 023e 00C0 rjmp .L51
319 0240 8CE3 ldi r24,lo8(60)
320 0242 8093 0000 sts DispPtr,r24
321 0246 E091 0000 lds r30,_printf_P
322 024a F091 0000 lds r31,(_printf_P)+1
323 024e 80E0 ldi r24,lo8(__c.2516)
324 0250 90E0 ldi r25,hi8(__c.2516)
325 0252 00C0 rjmp .L82
326 .L51:
327 0254 8091 0000 lds r24,I2CTimeout
328 0258 9091 0000 lds r25,(I2CTimeout)+1
329 025c 0697 sbiw r24,6
330 025e 00F0 brlo .+4
331 0260 0C94 0000 jmp .L48
332 0264 8CE3 ldi r24,lo8(60)
333 0266 8093 0000 sts DispPtr,r24
334 026a E091 0000 lds r30,_printf_P
335 026e F091 0000 lds r31,(_printf_P)+1
336 0272 80E0 ldi r24,lo8(__c.2518)
337 0274 90E0 ldi r25,hi8(__c.2518)
338 .L82:
339 0276 9F93 push r25
340 0278 8F93 push r24
341 027a BF92 push r11
342 027c AF92 push r10
343 027e 0C94 0000 jmp .L77
344 .L28:
345 0282 8091 0000 lds r24,EE_Parameter+13
346 0286 C091 0000 lds r28,_printf_P
347 028a D091 0000 lds r29,(_printf_P)+1
348 028e 10E0 ldi r17,lo8(gs(Menu_Putchar))
349 0290 E12E mov r14,r17
350 0292 10E0 ldi r17,hi8(gs(Menu_Putchar))
351 0294 F12E mov r15,r17
352 0296 80FF sbrs r24,0
353 0298 00C0 rjmp .L54
354 029a 1092 0000 sts DispPtr,__zero_reg__
355 029e 6091 0000 lds r22,HoehenWert
356 02a2 7091 0000 lds r23,(HoehenWert)+1
357 02a6 8091 0000 lds r24,(HoehenWert)+2
358 02aa 9091 0000 lds r25,(HoehenWert)+3
359 02ae 25E0 ldi r18,lo8(5)
360 02b0 30E0 ldi r19,hi8(5)
361 02b2 40E0 ldi r20,hlo8(5)
362 02b4 50E0 ldi r21,hhi8(5)
363 02b6 0E94 0000 call __divmodsi4
364 02ba 3F93 push r19
365 02bc 2F93 push r18
366 02be 80E0 ldi r24,lo8(__c.2522)
367 02c0 90E0 ldi r25,hi8(__c.2522)
368 02c2 9F93 push r25
369 02c4 8F93 push r24
370 02c6 FF92 push r15
371 02c8 EF92 push r14
372 02ca FE01 movw r30,r28
373 02cc 0995 icall
374 02ce 84E1 ldi r24,lo8(20)
375 02d0 8093 0000 sts DispPtr,r24
376 02d4 0091 0000 lds r16,_printf_P
377 02d8 1091 0000 lds r17,(_printf_P)+1
378 02dc 6091 0000 lds r22,SollHoehe
379 02e0 7091 0000 lds r23,(SollHoehe)+1
380 02e4 8091 0000 lds r24,(SollHoehe)+2
381 02e8 9091 0000 lds r25,(SollHoehe)+3
382 02ec 25E0 ldi r18,lo8(5)
383 02ee 30E0 ldi r19,hi8(5)
384 02f0 40E0 ldi r20,hlo8(5)
385 02f2 50E0 ldi r21,hhi8(5)
386 02f4 0E94 0000 call __divmodsi4
387 02f8 3F93 push r19
388 02fa 2F93 push r18
389 02fc 80E0 ldi r24,lo8(__c.2524)
390 02fe 90E0 ldi r25,hi8(__c.2524)
391 0300 9F93 push r25
392 0302 8F93 push r24
393 0304 FF92 push r15
394 0306 EF92 push r14
395 0308 F801 movw r30,r16
396 030a 0995 icall
397 030c 88E2 ldi r24,lo8(40)
398 030e 8093 0000 sts DispPtr,r24
399 0312 E091 0000 lds r30,_printf_P
400 0316 F091 0000 lds r31,(_printf_P)+1
401 031a 8091 0000 lds r24,MessLuftdruck
402 031e 9091 0000 lds r25,(MessLuftdruck)+1
403 0322 9F93 push r25
404 0324 8F93 push r24
405 0326 80E0 ldi r24,lo8(__c.2526)
406 0328 90E0 ldi r25,hi8(__c.2526)
407 032a 9F93 push r25
408 032c 8F93 push r24
409 032e FF92 push r15
410 0330 EF92 push r14
411 0332 0995 icall
412 0334 8CE3 ldi r24,lo8(60)
413 0336 8093 0000 sts DispPtr,r24
414 033a E091 0000 lds r30,_printf_P
415 033e F091 0000 lds r31,(_printf_P)+1
416 0342 87B5 in r24,71-0x20
417 0344 90E0 ldi r25,lo8(0)
418 0346 9F93 push r25
419 0348 8F93 push r24
420 034a 80E0 ldi r24,lo8(__c.2528)
421 034c 90E0 ldi r25,hi8(__c.2528)
422 034e 00C0 rjmp .L78
423 .L54:
424 0350 1092 0000 sts DispPtr,__zero_reg__
425 0354 80E0 ldi r24,lo8(__c.2530)
426 0356 90E0 ldi r25,hi8(__c.2530)
427 0358 9F93 push r25
428 035a 8F93 push r24
429 035c FF92 push r15
430 035e EF92 push r14
431 0360 FE01 movw r30,r28
432 0362 0995 icall
433 0364 84E1 ldi r24,lo8(20)
434 0366 8093 0000 sts DispPtr,r24
435 036a E091 0000 lds r30,_printf_P
436 036e F091 0000 lds r31,(_printf_P)+1
437 0372 80E0 ldi r24,lo8(__c.2532)
438 0374 90E0 ldi r25,hi8(__c.2532)
439 0376 9F93 push r25
440 0378 8F93 push r24
441 037a FF92 push r15
442 037c EF92 push r14
443 037e 0995 icall
444 0380 88E2 ldi r24,lo8(40)
445 0382 8093 0000 sts DispPtr,r24
446 0386 E091 0000 lds r30,_printf_P
447 038a F091 0000 lds r31,(_printf_P)+1
448 038e 80E0 ldi r24,lo8(__c.2534)
449 0390 90E0 ldi r25,hi8(__c.2534)
450 0392 9F93 push r25
451 0394 8F93 push r24
452 0396 FF92 push r15
453 0398 EF92 push r14
454 039a 0995 icall
455 039c 8CE3 ldi r24,lo8(60)
456 039e 8093 0000 sts DispPtr,r24
457 03a2 E091 0000 lds r30,_printf_P
458 03a6 F091 0000 lds r31,(_printf_P)+1
459 03aa 80E0 ldi r24,lo8(__c.2536)
460 03ac 90E0 ldi r25,hi8(__c.2536)
461 03ae 9F93 push r25
462 03b0 8F93 push r24
463 03b2 FF92 push r15
464 03b4 EF92 push r14
465 03b6 0995 icall
466 03b8 4DB7 in r20,__SP_L__
467 03ba 5EB7 in r21,__SP_H__
468 03bc 405F subi r20,lo8(-(16))
469 03be 5F4F sbci r21,hi8(-(16))
470 .L74:
471 03c0 4DBF out __SP_L__,r20
472 03c2 0C94 0000 jmp .L48
473 .L29:
474 03c6 1092 0000 sts DispPtr,__zero_reg__
475 03ca 80E0 ldi r24,lo8(__c.2539)
476 03cc 90E0 ldi r25,hi8(__c.2539)
477 03ce 9F93 push r25
478 03d0 8F93 push r24
479 03d2 FF92 push r15
480 03d4 EF92 push r14
481 03d6 FE01 movw r30,r28
482 03d8 0995 icall
483 03da 84E1 ldi r24,lo8(20)
484 03dc 8093 0000 sts DispPtr,r24
485 03e0 0091 0000 lds r16,_printf_P
486 03e4 1091 0000 lds r17,(_printf_P)+1
487 03e8 6091 0000 lds r22,IntegralNick
488 03ec 7091 0000 lds r23,(IntegralNick)+1
489 03f0 8091 0000 lds r24,(IntegralNick)+2
490 03f4 9091 0000 lds r25,(IntegralNick)+3
491 03f8 20E0 ldi r18,lo8(1024)
492 03fa 34E0 ldi r19,hi8(1024)
493 03fc 40E0 ldi r20,hlo8(1024)
494 03fe 50E0 ldi r21,hhi8(1024)
495 0400 0E94 0000 call __divmodsi4
496 0404 5F93 push r21
497 0406 4F93 push r20
498 0408 3F93 push r19
499 040a 2F93 push r18
500 040c 80E0 ldi r24,lo8(__c.2541)
501 040e 90E0 ldi r25,hi8(__c.2541)
502 0410 9F93 push r25
503 0412 8F93 push r24
504 0414 FF92 push r15
505 0416 EF92 push r14
506 0418 F801 movw r30,r16
507 041a 0995 icall
508 041c 88E2 ldi r24,lo8(40)
509 041e 8093 0000 sts DispPtr,r24
510 0422 0091 0000 lds r16,_printf_P
511 0426 1091 0000 lds r17,(_printf_P)+1
512 042a 6091 0000 lds r22,IntegralRoll
513 042e 7091 0000 lds r23,(IntegralRoll)+1
514 0432 8091 0000 lds r24,(IntegralRoll)+2
515 0436 9091 0000 lds r25,(IntegralRoll)+3
516 043a 20E0 ldi r18,lo8(1024)
517 043c 34E0 ldi r19,hi8(1024)
518 043e 40E0 ldi r20,hlo8(1024)
519 0440 50E0 ldi r21,hhi8(1024)
520 0442 0E94 0000 call __divmodsi4
521 0446 5F93 push r21
522 0448 4F93 push r20
523 044a 3F93 push r19
524 044c 2F93 push r18
525 044e 80E0 ldi r24,lo8(__c.2543)
526 0450 90E0 ldi r25,hi8(__c.2543)
527 0452 9F93 push r25
528 0454 8F93 push r24
529 0456 FF92 push r15
530 0458 EF92 push r14
531 045a F801 movw r30,r16
532 045c 0995 icall
533 045e 8CE3 ldi r24,lo8(60)
534 0460 8093 0000 sts DispPtr,r24
535 0464 E091 0000 lds r30,_printf_P
536 0468 F091 0000 lds r31,(_printf_P)+1
537 046c 8091 0000 lds r24,KompassValue
538 0470 9091 0000 lds r25,(KompassValue)+1
539 0474 9F93 push r25
540 0476 8F93 push r24
541 0478 80E0 ldi r24,lo8(__c.2545)
542 047a 90E0 ldi r25,hi8(__c.2545)
543 047c 9F93 push r25
544 047e 8F93 push r24
545 0480 FF92 push r15
546 0482 EF92 push r14
547 0484 0995 icall
548 0486 8DB7 in r24,__SP_L__
549 0488 9EB7 in r25,__SP_H__
550 048a 4A96 adiw r24,26
551 048c 00C0 rjmp .L76
552 .L30:
553 048e 1092 0000 sts DispPtr,__zero_reg__
554 0492 8091 0000 lds r24,PPM_in+4
555 0496 9091 0000 lds r25,(PPM_in+4)+1
556 049a 2091 0000 lds r18,PPM_in+2
557 049e 3091 0000 lds r19,(PPM_in+2)+1
558 04a2 9F93 push r25
559 04a4 8F93 push r24
560 04a6 3F93 push r19
561 04a8 2F93 push r18
562 04aa 80E0 ldi r24,lo8(__c.2548)
563 04ac 90E0 ldi r25,hi8(__c.2548)
564 04ae 9F93 push r25
565 04b0 8F93 push r24
566 04b2 FF92 push r15
567 04b4 EF92 push r14
568 04b6 FE01 movw r30,r28
569 04b8 0995 icall
570 04ba 84E1 ldi r24,lo8(20)
571 04bc 8093 0000 sts DispPtr,r24
572 04c0 E091 0000 lds r30,_printf_P
573 04c4 F091 0000 lds r31,(_printf_P)+1
574 04c8 8091 0000 lds r24,PPM_in+8
575 04cc 9091 0000 lds r25,(PPM_in+8)+1
576 04d0 2091 0000 lds r18,PPM_in+6
577 04d4 3091 0000 lds r19,(PPM_in+6)+1
578 04d8 9F93 push r25
579 04da 8F93 push r24
580 04dc 3F93 push r19
581 04de 2F93 push r18
582 04e0 80E0 ldi r24,lo8(__c.2550)
583 04e2 90E0 ldi r25,hi8(__c.2550)
584 04e4 9F93 push r25
585 04e6 8F93 push r24
586 04e8 FF92 push r15
587 04ea EF92 push r14
588 04ec 0995 icall
589 04ee 88E2 ldi r24,lo8(40)
590 04f0 8093 0000 sts DispPtr,r24
591 04f4 E091 0000 lds r30,_printf_P
592 04f8 F091 0000 lds r31,(_printf_P)+1
593 04fc 8091 0000 lds r24,PPM_in+12
594 0500 9091 0000 lds r25,(PPM_in+12)+1
595 0504 2091 0000 lds r18,PPM_in+10
596 0508 3091 0000 lds r19,(PPM_in+10)+1
597 050c 9F93 push r25
598 050e 8F93 push r24
599 0510 3F93 push r19
600 0512 2F93 push r18
601 0514 80E0 ldi r24,lo8(__c.2552)
602 0516 90E0 ldi r25,hi8(__c.2552)
603 0518 9F93 push r25
604 051a 8F93 push r24
605 051c FF92 push r15
606 051e EF92 push r14
607 0520 0995 icall
608 0522 8CE3 ldi r24,lo8(60)
609 0524 8093 0000 sts DispPtr,r24
610 0528 E091 0000 lds r30,_printf_P
611 052c F091 0000 lds r31,(_printf_P)+1
612 0530 8091 0000 lds r24,PPM_in+16
613 0534 9091 0000 lds r25,(PPM_in+16)+1
614 0538 2091 0000 lds r18,PPM_in+14
615 053c 3091 0000 lds r19,(PPM_in+14)+1
616 0540 9F93 push r25
617 0542 8F93 push r24
618 0544 3F93 push r19
619 0546 2F93 push r18
620 0548 80E0 ldi r24,lo8(__c.2554)
621 054a 90E0 ldi r25,hi8(__c.2554)
622 054c 9F93 push r25
623 054e 8F93 push r24
624 0550 FF92 push r15
625 0552 EF92 push r14
626 0554 0995 icall
627 0556 2DB7 in r18,__SP_L__
628 0558 3EB7 in r19,__SP_H__
629 055a 205E subi r18,lo8(-(32))
630 055c 3F4F sbci r19,hi8(-(32))
631 .L75:
632 055e 2DBF out __SP_L__,r18
633 0560 00C0 rjmp .L48
634 .L31:
635 0562 1092 0000 sts DispPtr,__zero_reg__
636 0566 E091 0000 lds r30,EE_Parameter+2
637 056a F0E0 ldi r31,lo8(0)
638 056c EE0F lsl r30
639 056e FF1F rol r31
640 0570 E050 subi r30,lo8(-(PPM_in))
641 0572 F040 sbci r31,hi8(-(PPM_in))
642 0574 2081 ld r18,Z
643 0576 3181 ldd r19,Z+1
644 0578 E091 0000 lds r30,EE_Parameter+1
645 057c F0E0 ldi r31,lo8(0)
646 057e EE0F lsl r30
647 0580 FF1F rol r31
648 0582 E050 subi r30,lo8(-(PPM_in))
649 0584 F040 sbci r31,hi8(-(PPM_in))
650 0586 8081 ld r24,Z
651 0588 9181 ldd r25,Z+1
652 058a 3F93 push r19
653 058c 2F93 push r18
654 058e 9F93 push r25
655 0590 8F93 push r24
656 0592 80E0 ldi r24,lo8(__c.2557)
657 0594 90E0 ldi r25,hi8(__c.2557)
658 0596 9F93 push r25
659 0598 8F93 push r24
660 059a FF92 push r15
661 059c EF92 push r14
662 059e FE01 movw r30,r28
663 05a0 0995 icall
664 05a2 84E1 ldi r24,lo8(20)
665 05a4 8093 0000 sts DispPtr,r24
666 05a8 4091 0000 lds r20,_printf_P
667 05ac 5091 0000 lds r21,(_printf_P)+1
668 05b0 E091 0000 lds r30,EE_Parameter+4
669 05b4 F0E0 ldi r31,lo8(0)
670 05b6 EE0F lsl r30
671 05b8 FF1F rol r31
672 05ba E050 subi r30,lo8(-(PPM_in))
673 05bc F040 sbci r31,hi8(-(PPM_in))
674 05be 2081 ld r18,Z
675 05c0 3181 ldd r19,Z+1
676 05c2 E091 0000 lds r30,EE_Parameter+3
677 05c6 F0E0 ldi r31,lo8(0)
678 05c8 EE0F lsl r30
679 05ca FF1F rol r31
680 05cc E050 subi r30,lo8(-(PPM_in))
681 05ce F040 sbci r31,hi8(-(PPM_in))
682 05d0 8081 ld r24,Z
683 05d2 9181 ldd r25,Z+1
684 05d4 8858 subi r24,lo8(-(120))
685 05d6 9F4F sbci r25,hi8(-(120))
686 05d8 3F93 push r19
687 05da 2F93 push r18
688 05dc 9F93 push r25
689 05de 8F93 push r24
690 05e0 80E0 ldi r24,lo8(__c.2559)
691 05e2 90E0 ldi r25,hi8(__c.2559)
692 05e4 9F93 push r25
693 05e6 8F93 push r24
694 05e8 FF92 push r15
695 05ea EF92 push r14
696 05ec FA01 movw r30,r20
697 05ee 0995 icall
698 05f0 88E2 ldi r24,lo8(40)
699 05f2 8093 0000 sts DispPtr,r24
700 05f6 4091 0000 lds r20,_printf_P
701 05fa 5091 0000 lds r21,(_printf_P)+1
702 05fe E091 0000 lds r30,EE_Parameter+6
703 0602 F0E0 ldi r31,lo8(0)
704 0604 EE0F lsl r30
705 0606 FF1F rol r31
706 0608 E050 subi r30,lo8(-(PPM_in))
707 060a F040 sbci r31,hi8(-(PPM_in))
708 060c 2081 ld r18,Z
709 060e 3181 ldd r19,Z+1
710 0610 2259 subi r18,lo8(-(110))
711 0612 3F4F sbci r19,hi8(-(110))
712 0614 E091 0000 lds r30,EE_Parameter+5
713 0618 F0E0 ldi r31,lo8(0)
714 061a EE0F lsl r30
715 061c FF1F rol r31
716 061e E050 subi r30,lo8(-(PPM_in))
717 0620 F040 sbci r31,hi8(-(PPM_in))
718 0622 8081 ld r24,Z
719 0624 9181 ldd r25,Z+1
720 0626 8259 subi r24,lo8(-(110))
721 0628 9F4F sbci r25,hi8(-(110))
722 062a 3F93 push r19
723 062c 2F93 push r18
724 062e 9F93 push r25
725 0630 8F93 push r24
726 0632 80E0 ldi r24,lo8(__c.2561)
727 0634 90E0 ldi r25,hi8(__c.2561)
728 0636 9F93 push r25
729 0638 8F93 push r24
730 063a FF92 push r15
731 063c EF92 push r14
732 063e FA01 movw r30,r20
733 0640 0995 icall
734 0642 8CE3 ldi r24,lo8(60)
735 0644 8093 0000 sts DispPtr,r24
736 0648 4091 0000 lds r20,_printf_P
737 064c 5091 0000 lds r21,(_printf_P)+1
738 0650 E091 0000 lds r30,EE_Parameter+8
739 0654 F0E0 ldi r31,lo8(0)
740 0656 EE0F lsl r30
741 0658 FF1F rol r31
742 065a E050 subi r30,lo8(-(PPM_in))
743 065c F040 sbci r31,hi8(-(PPM_in))
744 065e 2081 ld r18,Z
745 0660 3181 ldd r19,Z+1
746 0662 2259 subi r18,lo8(-(110))
747 0664 3F4F sbci r19,hi8(-(110))
748 0666 E091 0000 lds r30,EE_Parameter+7
749 066a F0E0 ldi r31,lo8(0)
750 066c EE0F lsl r30
751 066e FF1F rol r31
752 0670 E050 subi r30,lo8(-(PPM_in))
753 0672 F040 sbci r31,hi8(-(PPM_in))
754 0674 8081 ld r24,Z
755 0676 9181 ldd r25,Z+1
756 0678 8259 subi r24,lo8(-(110))
757 067a 9F4F sbci r25,hi8(-(110))
758 067c 3F93 push r19
759 067e 2F93 push r18
760 0680 9F93 push r25
761 0682 8F93 push r24
762 0684 80E0 ldi r24,lo8(__c.2563)
763 0686 90E0 ldi r25,hi8(__c.2563)
764 0688 9F93 push r25
765 068a 8F93 push r24
766 068c FF92 push r15
767 068e EF92 push r14
768 0690 FA01 movw r30,r20
769 0692 0995 icall
770 0694 4DB7 in r20,__SP_L__
771 0696 5EB7 in r21,__SP_H__
772 0698 405E subi r20,lo8(-(32))
773 069a 5F4F sbci r21,hi8(-(32))
774 069c 00C0 rjmp .L74
775 .L32:
776 069e 1092 0000 sts DispPtr,__zero_reg__
777 06a2 80E0 ldi r24,lo8(__c.2566)
778 06a4 90E0 ldi r25,hi8(__c.2566)
779 06a6 9F93 push r25
780 06a8 8F93 push r24
781 06aa 10E0 ldi r17,lo8(gs(Menu_Putchar))
782 06ac A12E mov r10,r17
783 06ae 10E0 ldi r17,hi8(gs(Menu_Putchar))
784 06b0 B12E mov r11,r17
785 06b2 FF92 push r15
786 06b4 EF92 push r14
787 06b6 FE01 movw r30,r28
788 06b8 0995 icall
789 06ba 8091 0000 lds r24,PlatinenVersion
790 06be 0F90 pop __tmp_reg__
791 06c0 0F90 pop __tmp_reg__
792 06c2 0F90 pop __tmp_reg__
793 06c4 0F90 pop __tmp_reg__
794 06c6 8A30 cpi r24,lo8(10)
795 06c8 01F0 breq .+2
796 06ca 00C0 rjmp .L56
797 06cc 84E1 ldi r24,lo8(20)
798 06ce 8093 0000 sts DispPtr,r24
799 06d2 0091 0000 lds r16,_printf_P
800 06d6 1091 0000 lds r17,(_printf_P)+1
801 06da 2091 0000 lds r18,AdNeutralNick
802 06de 3091 0000 lds r19,(AdNeutralNick)+1
803 06e2 C901 movw r24,r18
804 06e4 68E0 ldi r22,lo8(8)
805 06e6 70E0 ldi r23,hi8(8)
806 06e8 0E94 0000 call __divmodhi4
807 06ec FC01 movw r30,r24
808 06ee C901 movw r24,r18
809 06f0 68E0 ldi r22,lo8(8)
810 06f2 70E0 ldi r23,hi8(8)
811 06f4 0E94 0000 call __divmodhi4
812 06f8 8091 0000 lds r24,AdWertNick
813 06fc 9091 0000 lds r25,(AdWertNick)+1
814 0700 861B sub r24,r22
815 0702 970B sbc r25,r23
816 0704 FF93 push r31
817 0706 EF93 push r30
818 0708 7F93 push r23
819 070a 6F93 push r22
820 070c 9F93 push r25
821 070e 8F93 push r24
822 0710 80E0 ldi r24,lo8(__c.2568)
823 0712 90E0 ldi r25,hi8(__c.2568)
824 0714 9F93 push r25
825 0716 8F93 push r24
826 0718 BF92 push r11
827 071a AF92 push r10
828 071c F801 movw r30,r16
829 071e 0995 icall
830 0720 88E2 ldi r24,lo8(40)
831 0722 8093 0000 sts DispPtr,r24
832 0726 0091 0000 lds r16,_printf_P
833 072a 1091 0000 lds r17,(_printf_P)+1
834 072e 2091 0000 lds r18,AdNeutralRoll
835 0732 3091 0000 lds r19,(AdNeutralRoll)+1
836 0736 C901 movw r24,r18
837 0738 68E0 ldi r22,lo8(8)
838 073a 70E0 ldi r23,hi8(8)
839 073c 0E94 0000 call __divmodhi4
840 0740 FC01 movw r30,r24
841 0742 C901 movw r24,r18
842 0744 68E0 ldi r22,lo8(8)
843 0746 70E0 ldi r23,hi8(8)
844 0748 0E94 0000 call __divmodhi4
845 074c 8091 0000 lds r24,AdWertRoll
846 0750 9091 0000 lds r25,(AdWertRoll)+1
847 0754 861B sub r24,r22
848 0756 970B sbc r25,r23
849 0758 FF93 push r31
850 075a EF93 push r30
851 075c 7F93 push r23
852 075e 6F93 push r22
853 0760 9F93 push r25
854 0762 8F93 push r24
855 0764 80E0 ldi r24,lo8(__c.2570)
856 0766 90E0 ldi r25,hi8(__c.2570)
857 0768 9F93 push r25
858 076a 8F93 push r24
859 076c BF92 push r11
860 076e AF92 push r10
861 0770 F801 movw r30,r16
862 0772 0995 icall
863 0774 8CE3 ldi r24,lo8(60)
864 0776 8093 0000 sts DispPtr,r24
865 077a E091 0000 lds r30,_printf_P
866 077e F091 0000 lds r31,(_printf_P)+1
867 0782 2091 0000 lds r18,AdNeutralGier
868 0786 3091 0000 lds r19,(AdNeutralGier)+1
869 078a 8091 0000 lds r24,AdWertGier
870 078e 9091 0000 lds r25,(AdWertGier)+1
871 0792 A901 movw r20,r18
872 0794 481B sub r20,r24
873 0796 590B sbc r21,r25
874 0798 3F93 push r19
875 079a 2F93 push r18
876 079c 5F93 push r21
877 079e 4F93 push r20
878 07a0 80E0 ldi r24,lo8(__c.2572)
879 07a2 90E0 ldi r25,hi8(__c.2572)
880 07a4 9F93 push r25
881 07a6 8F93 push r24
882 07a8 BF92 push r11
883 07aa AF92 push r10
884 .L80:
885 07ac 0995 icall
886 07ae 8DB7 in r24,__SP_L__
887 07b0 9EB7 in r25,__SP_H__
888 07b2 4C96 adiw r24,28
889 .L76:
890 07b4 8DBF out __SP_L__,r24
891 07b6 00C0 rjmp .L48
892 .L56:
893 07b8 8B30 cpi r24,lo8(11)
894 07ba 01F0 breq .L58
895 07bc 8431 cpi r24,lo8(20)
896 07be 00F4 brsh .+2
897 07c0 00C0 rjmp .L60
898 .L58:
899 07c2 84E1 ldi r24,lo8(20)
900 07c4 8093 0000 sts DispPtr,r24
901 07c8 C090 0000 lds r12,_printf_P
902 07cc D090 0000 lds r13,(_printf_P)+1
903 07d0 E091 0000 lds r30,AdNeutralNick
904 07d4 F091 0000 lds r31,(AdNeutralNick)+1
905 07d8 CF01 movw r24,r30
906 07da 60E1 ldi r22,lo8(16)
907 07dc 70E0 ldi r23,hi8(16)
908 07de 0E94 0000 call __divmodhi4
909 07e2 62E0 ldi r22,lo8(2)
910 07e4 70E0 ldi r23,hi8(2)
911 07e6 0E94 0000 call __divmodhi4
912 07ea 7B01 movw r14,r22
913 07ec CF01 movw r24,r30
914 07ee 60E1 ldi r22,lo8(16)
915 07f0 70E0 ldi r23,hi8(16)
916 07f2 0E94 0000 call __divmodhi4
917 07f6 8B01 movw r16,r22
918 07f8 2091 0000 lds r18,AdWertNick
919 07fc 3091 0000 lds r19,(AdWertNick)+1
920 0800 CF01 movw r24,r30
921 0802 68E0 ldi r22,lo8(8)
922 0804 70E0 ldi r23,hi8(8)
923 0806 0E94 0000 call __divmodhi4
924 080a 261B sub r18,r22
925 080c 370B sbc r19,r23
926 080e FF92 push r15
927 0810 EF92 push r14
928 0812 1F93 push r17
929 0814 0F93 push r16
930 0816 3F93 push r19
931 0818 2F93 push r18
932 081a 80E0 ldi r24,lo8(__c.2574)
933 081c 90E0 ldi r25,hi8(__c.2574)
934 081e 9F93 push r25
935 0820 8F93 push r24
936 0822 BF92 push r11
937 0824 AF92 push r10
938 0826 F601 movw r30,r12
939 0828 0995 icall
940 082a 88E2 ldi r24,lo8(40)
941 082c 8093 0000 sts DispPtr,r24
942 0830 C090 0000 lds r12,_printf_P
943 0834 D090 0000 lds r13,(_printf_P)+1
944 0838 E091 0000 lds r30,AdNeutralRoll
945 083c F091 0000 lds r31,(AdNeutralRoll)+1
946 0840 CF01 movw r24,r30
947 0842 60E1 ldi r22,lo8(16)
948 0844 70E0 ldi r23,hi8(16)
949 0846 0E94 0000 call __divmodhi4
950 084a 62E0 ldi r22,lo8(2)
951 084c 70E0 ldi r23,hi8(2)
952 084e 0E94 0000 call __divmodhi4
953 0852 7B01 movw r14,r22
954 0854 CF01 movw r24,r30
955 0856 60E1 ldi r22,lo8(16)
956 0858 70E0 ldi r23,hi8(16)
957 085a 0E94 0000 call __divmodhi4
958 085e 8B01 movw r16,r22
959 0860 2091 0000 lds r18,AdWertRoll
960 0864 3091 0000 lds r19,(AdWertRoll)+1
961 0868 CF01 movw r24,r30
962 086a 68E0 ldi r22,lo8(8)
963 086c 70E0 ldi r23,hi8(8)
964 086e 0E94 0000 call __divmodhi4
965 0872 261B sub r18,r22
966 0874 370B sbc r19,r23
967 0876 FF92 push r15
968 0878 EF92 push r14
969 087a 1F93 push r17
970 087c 0F93 push r16
971 087e 3F93 push r19
972 0880 2F93 push r18
973 0882 80E0 ldi r24,lo8(__c.2576)
974 0884 90E0 ldi r25,hi8(__c.2576)
975 0886 9F93 push r25
976 0888 8F93 push r24
977 088a BF92 push r11
978 088c AF92 push r10
979 088e F601 movw r30,r12
980 0890 0995 icall
981 0892 8CE3 ldi r24,lo8(60)
982 0894 8093 0000 sts DispPtr,r24
983 0898 E091 0000 lds r30,_printf_P
984 089c F091 0000 lds r31,(_printf_P)+1
985 08a0 2091 0000 lds r18,AdNeutralGier
986 08a4 3091 0000 lds r19,(AdNeutralGier)+1
987 08a8 C901 movw r24,r18
988 08aa 62E0 ldi r22,lo8(2)
989 08ac 70E0 ldi r23,hi8(2)
990 08ae 0E94 0000 call __divmodhi4
991 08b2 8091 0000 lds r24,AdWertGier
992 08b6 9091 0000 lds r25,(AdWertGier)+1
993 08ba 281B sub r18,r24
994 08bc 390B sbc r19,r25
995 08be 7F93 push r23
996 08c0 6F93 push r22
997 08c2 3F93 push r19
998 08c4 2F93 push r18
999 08c6 80E0 ldi r24,lo8(__c.2578)
1000 08c8 90E0 ldi r25,hi8(__c.2578)
1001 08ca 9F93 push r25
1002 08cc 8F93 push r24
1003 08ce BF92 push r11
1004 08d0 AF92 push r10
1005 08d2 00C0 rjmp .L81
1006 .L60:
1007 08d4 8D30 cpi r24,lo8(13)
1008 08d6 01F0 breq .+2
1009 08d8 00C0 rjmp .L48
1010 08da 84E1 ldi r24,lo8(20)
1011 08dc 8093 0000 sts DispPtr,r24
1012 08e0 C090 0000 lds r12,_printf_P
1013 08e4 D090 0000 lds r13,(_printf_P)+1
1014 08e8 E091 0000 lds r30,AnalogOffsetNick
1015 08ec F0E0 ldi r31,lo8(0)
1016 08ee 0091 0000 lds r16,AdNeutralNick
1017 08f2 1091 0000 lds r17,(AdNeutralNick)+1
1018 08f6 C801 movw r24,r16
1019 08f8 60E1 ldi r22,lo8(16)
1020 08fa 70E0 ldi r23,hi8(16)
1021 08fc 0E94 0000 call __divmodhi4
1022 0900 7B01 movw r14,r22
1023 0902 2091 0000 lds r18,AdWertNick
1024 0906 3091 0000 lds r19,(AdWertNick)+1
1025 090a C801 movw r24,r16
1026 090c 68E0 ldi r22,lo8(8)
1027 090e 70E0 ldi r23,hi8(8)
1028 0910 0E94 0000 call __divmodhi4
1029 0914 261B sub r18,r22
1030 0916 370B sbc r19,r23
1031 0918 FF93 push r31
1032 091a EF93 push r30
1033 091c FF92 push r15
1034 091e EF92 push r14
1035 0920 3F93 push r19
1036 0922 2F93 push r18
1037 0924 80E0 ldi r24,lo8(__c.2580)
1038 0926 90E0 ldi r25,hi8(__c.2580)
1039 0928 9F93 push r25
1040 092a 8F93 push r24
1041 092c BF92 push r11
1042 092e AF92 push r10
1043 0930 F601 movw r30,r12
1044 0932 0995 icall
1045 0934 88E2 ldi r24,lo8(40)
1046 0936 8093 0000 sts DispPtr,r24
1047 093a C090 0000 lds r12,_printf_P
1048 093e D090 0000 lds r13,(_printf_P)+1
1049 0942 E091 0000 lds r30,AnalogOffsetRoll
1050 0946 F0E0 ldi r31,lo8(0)
1051 0948 0091 0000 lds r16,AdNeutralRoll
1052 094c 1091 0000 lds r17,(AdNeutralRoll)+1
1053 0950 C801 movw r24,r16
1054 0952 60E1 ldi r22,lo8(16)
1055 0954 70E0 ldi r23,hi8(16)
1056 0956 0E94 0000 call __divmodhi4
1057 095a 7B01 movw r14,r22
1058 095c 2091 0000 lds r18,AdWertRoll
1059 0960 3091 0000 lds r19,(AdWertRoll)+1
1060 0964 C801 movw r24,r16
1061 0966 68E0 ldi r22,lo8(8)
1062 0968 70E0 ldi r23,hi8(8)
1063 096a 0E94 0000 call __divmodhi4
1064 096e 261B sub r18,r22
1065 0970 370B sbc r19,r23
1066 0972 FF93 push r31
1067 0974 EF93 push r30
1068 0976 FF92 push r15
1069 0978 EF92 push r14
1070 097a 3F93 push r19
1071 097c 2F93 push r18
1072 097e 80E0 ldi r24,lo8(__c.2582)
1073 0980 90E0 ldi r25,hi8(__c.2582)
1074 0982 9F93 push r25
1075 0984 8F93 push r24
1076 0986 BF92 push r11
1077 0988 AF92 push r10
1078 098a F601 movw r30,r12
1079 098c 0995 icall
1080 098e 8CE3 ldi r24,lo8(60)
1081 0990 8093 0000 sts DispPtr,r24
1082 0994 0091 0000 lds r16,_printf_P
1083 0998 1091 0000 lds r17,(_printf_P)+1
1084 099c E091 0000 lds r30,AnalogOffsetGier
1085 09a0 F0E0 ldi r31,lo8(0)
1086 09a2 2091 0000 lds r18,AdNeutralGier
1087 09a6 3091 0000 lds r19,(AdNeutralGier)+1
1088 09aa C901 movw r24,r18
1089 09ac 62E0 ldi r22,lo8(2)
1090 09ae 70E0 ldi r23,hi8(2)
1091 09b0 0E94 0000 call __divmodhi4
1092 09b4 8091 0000 lds r24,AdWertGier
1093 09b8 9091 0000 lds r25,(AdWertGier)+1
1094 09bc 281B sub r18,r24
1095 09be 390B sbc r19,r25
1096 09c0 FF93 push r31
1097 09c2 EF93 push r30
1098 09c4 7F93 push r23
1099 09c6 6F93 push r22
1100 09c8 3F93 push r19
1101 09ca 2F93 push r18
1102 09cc 80E0 ldi r24,lo8(__c.2584)
1103 09ce 90E0 ldi r25,hi8(__c.2584)
1104 09d0 9F93 push r25
1105 09d2 8F93 push r24
1106 09d4 BF92 push r11
1107 09d6 AF92 push r10
1108 09d8 F801 movw r30,r16
1109 09da 0995 icall
1110 09dc 4DB7 in r20,__SP_L__
1111 09de 5EB7 in r21,__SP_H__
1112 09e0 425E subi r20,lo8(-(30))
1113 09e2 5F4F sbci r21,hi8(-(30))
1114 09e4 00C0 rjmp .L74
1115 .L33:
1116 09e6 1092 0000 sts DispPtr,__zero_reg__
1117 09ea 80E0 ldi r24,lo8(__c.2587)
1118 09ec 90E0 ldi r25,hi8(__c.2587)
1119 09ee 9F93 push r25
1120 09f0 8F93 push r24
1121 09f2 FF92 push r15
1122 09f4 EF92 push r14
1123 09f6 FE01 movw r30,r28
1124 09f8 0995 icall
1125 09fa 84E1 ldi r24,lo8(20)
1126 09fc 8093 0000 sts DispPtr,r24
1127 0a00 E091 0000 lds r30,_printf_P
1128 0a04 F091 0000 lds r31,(_printf_P)+1
1129 0a08 8091 0000 lds r24,NeutralAccX
1130 0a0c 9091 0000 lds r25,(NeutralAccX)+1
1131 0a10 2091 0000 lds r18,AdWertAccNick
1132 0a14 3091 0000 lds r19,(AdWertAccNick)+1
1133 0a18 9F93 push r25
1134 0a1a 8F93 push r24
1135 0a1c 3F93 push r19
1136 0a1e 2F93 push r18
1137 0a20 80E0 ldi r24,lo8(__c.2589)
1138 0a22 90E0 ldi r25,hi8(__c.2589)
1139 0a24 9F93 push r25
1140 0a26 8F93 push r24
1141 0a28 FF92 push r15
1142 0a2a EF92 push r14
1143 0a2c 0995 icall
1144 0a2e 88E2 ldi r24,lo8(40)
1145 0a30 8093 0000 sts DispPtr,r24
1146 0a34 E091 0000 lds r30,_printf_P
1147 0a38 F091 0000 lds r31,(_printf_P)+1
1148 0a3c 8091 0000 lds r24,NeutralAccY
1149 0a40 9091 0000 lds r25,(NeutralAccY)+1
1150 0a44 2091 0000 lds r18,AdWertAccRoll
1151 0a48 3091 0000 lds r19,(AdWertAccRoll)+1
1152 0a4c 9F93 push r25
1153 0a4e 8F93 push r24
1154 0a50 3F93 push r19
1155 0a52 2F93 push r18
1156 0a54 80E0 ldi r24,lo8(__c.2591)
1157 0a56 90E0 ldi r25,hi8(__c.2591)
1158 0a58 9F93 push r25
1159 0a5a 8F93 push r24
1160 0a5c FF92 push r15
1161 0a5e EF92 push r14
1162 0a60 0995 icall
1163 0a62 8CE3 ldi r24,lo8(60)
1164 0a64 8093 0000 sts DispPtr,r24
1165 0a68 E091 0000 lds r30,_printf_P
1166 0a6c F091 0000 lds r31,(_printf_P)+1
1167 0a70 8091 0000 lds r24,NeutralAccZ
1168 0a74 9091 0000 lds r25,(NeutralAccZ)+1
1169 0a78 2091 0000 lds r18,AdWertAccHoch
1170 0a7c 3091 0000 lds r19,(AdWertAccHoch)+1
1171 0a80 9F93 push r25
1172 0a82 8F93 push r24
1173 0a84 3F93 push r19
1174 0a86 2F93 push r18
1175 0a88 80E0 ldi r24,lo8(__c.2593)
1176 0a8a 90E0 ldi r25,hi8(__c.2593)
1177 0a8c 9F93 push r25
1178 0a8e 8F93 push r24
1179 0a90 FF92 push r15
1180 0a92 EF92 push r14
1181 0a94 00C0 rjmp .L80
1182 .L34:
1183 0a96 1092 0000 sts DispPtr,__zero_reg__
1184 0a9a 8091 0000 lds r24,UBat
1185 0a9e 9091 0000 lds r25,(UBat)+1
1186 0aa2 6AE0 ldi r22,lo8(10)
1187 0aa4 70E0 ldi r23,hi8(10)
1188 0aa6 0E94 0000 call __divmodhi4
1189 0aaa 9C01 movw r18,r24
1190 0aac 8091 0000 lds r24,UBat
1191 0ab0 9091 0000 lds r25,(UBat)+1
1192 0ab4 6AE0 ldi r22,lo8(10)
1193 0ab6 70E0 ldi r23,hi8(10)
1194 0ab8 0E94 0000 call __divmodhi4
1195 0abc 3F93 push r19
1196 0abe 2F93 push r18
1197 0ac0 7F93 push r23
1198 0ac2 6F93 push r22
1199 0ac4 80E0 ldi r24,lo8(__c.2596)
1200 0ac6 90E0 ldi r25,hi8(__c.2596)
1201 0ac8 9F93 push r25
1202 0aca 8F93 push r24
1203 0acc FF92 push r15
1204 0ace EF92 push r14
1205 0ad0 FE01 movw r30,r28
1206 0ad2 0995 icall
1207 0ad4 84E1 ldi r24,lo8(20)
1208 0ad6 8093 0000 sts DispPtr,r24
1209 0ada 0091 0000 lds r16,_printf_P
1210 0ade 1091 0000 lds r17,(_printf_P)+1
1211 0ae2 2091 0000 lds r18,Capacity
1212 0ae6 3091 0000 lds r19,(Capacity)+1
1213 0aea C901 movw r24,r18
1214 0aec 6AE0 ldi r22,lo8(10)
1215 0aee 70E0 ldi r23,hi8(10)
1216 0af0 0E94 0000 call __udivmodhi4
1217 0af4 FC01 movw r30,r24
1218 0af6 C901 movw r24,r18
1219 0af8 6AE0 ldi r22,lo8(10)
1220 0afa 70E0 ldi r23,hi8(10)
1221 0afc 0E94 0000 call __udivmodhi4
1222 0b00 FF93 push r31
1223 0b02 EF93 push r30
1224 0b04 7F93 push r23
1225 0b06 6F93 push r22
1226 0b08 80E0 ldi r24,lo8(__c.2598)
1227 0b0a 90E0 ldi r25,hi8(__c.2598)
1228 0b0c 9F93 push r25
1229 0b0e 8F93 push r24
1230 0b10 FF92 push r15
1231 0b12 EF92 push r14
1232 0b14 F801 movw r30,r16
1233 0b16 0995 icall
1234 0b18 88E2 ldi r24,lo8(40)
1235 0b1a 8093 0000 sts DispPtr,r24
1236 0b1e E091 0000 lds r30,_printf_P
1237 0b22 F091 0000 lds r31,(_printf_P)+1
1238 0b26 8091 0000 lds r24,Capacity+2
1239 0b2a 9091 0000 lds r25,(Capacity+2)+1
1240 0b2e 9F93 push r25
1241 0b30 8F93 push r24
1242 0b32 80E0 ldi r24,lo8(__c.2600)
1243 0b34 90E0 ldi r25,hi8(__c.2600)
1244 0b36 9F93 push r25
1245 0b38 8F93 push r24
1246 0b3a FF92 push r15
1247 0b3c EF92 push r14
1248 0b3e 0995 icall
1249 0b40 8CE3 ldi r24,lo8(60)
1250 0b42 8093 0000 sts DispPtr,r24
1251 0b46 E091 0000 lds r30,_printf_P
1252 0b4a F091 0000 lds r31,(_printf_P)+1
1253 0b4e 8091 0000 lds r24,Capacity+4
1254 0b52 9091 0000 lds r25,(Capacity+4)+1
1255 0b56 9F93 push r25
1256 0b58 8F93 push r24
1257 0b5a 80E0 ldi r24,lo8(__c.2602)
1258 0b5c 90E0 ldi r25,hi8(__c.2602)
1259 0b5e 9F93 push r25
1260 0b60 8F93 push r24
1261 0b62 FF92 push r15
1262 0b64 EF92 push r14
1263 0b66 0995 icall
1264 .L79:
1265 0b68 2DB7 in r18,__SP_L__
1266 0b6a 3EB7 in r19,__SP_H__
1267 0b6c 245E subi r18,lo8(-(28))
1268 0b6e 3F4F sbci r19,hi8(-(28))
1269 0b70 00C0 rjmp .L75
1270 .L35:
1271 0b72 1092 0000 sts DispPtr,__zero_reg__
1272 0b76 80E0 ldi r24,lo8(__c.2605)
1273 0b78 90E0 ldi r25,hi8(__c.2605)
1274 0b7a 9F93 push r25
1275 0b7c 8F93 push r24
1276 0b7e FF92 push r15
1277 0b80 EF92 push r14
1278 0b82 FE01 movw r30,r28
1279 0b84 0995 icall
1280 0b86 84E1 ldi r24,lo8(20)
1281 0b88 8093 0000 sts DispPtr,r24
1282 0b8c E091 0000 lds r30,_printf_P
1283 0b90 F091 0000 lds r31,(_printf_P)+1
1284 0b94 8091 0000 lds r24,PPM_in
1285 0b98 9091 0000 lds r25,(PPM_in)+1
1286 0b9c 9F93 push r25
1287 0b9e 8F93 push r24
1288 0ba0 80E0 ldi r24,lo8(__c.2607)
1289 0ba2 90E0 ldi r25,hi8(__c.2607)
1290 0ba4 9F93 push r25
1291 0ba6 8F93 push r24
1292 0ba8 FF92 push r15
1293 0baa EF92 push r14
1294 0bac 0995 icall
1295 0bae 88E2 ldi r24,lo8(40)
1296 0bb0 8093 0000 sts DispPtr,r24
1297 0bb4 E091 0000 lds r30,_printf_P
1298 0bb8 F091 0000 lds r31,(_printf_P)+1
1299 0bbc 8091 0000 lds r24,SenderOkay
1300 0bc0 90E0 ldi r25,lo8(0)
1301 0bc2 9F93 push r25
1302 0bc4 8F93 push r24
1303 0bc6 80E0 ldi r24,lo8(__c.2609)
1304 0bc8 90E0 ldi r25,hi8(__c.2609)
1305 0bca 9F93 push r25
1306 0bcc 8F93 push r24
1307 0bce FF92 push r15
1308 0bd0 EF92 push r14
1309 0bd2 0995 icall
1310 0bd4 8CE3 ldi r24,lo8(60)
1311 0bd6 8093 0000 sts DispPtr,r24
1312 0bda E091 0000 lds r30,_printf_P
1313 0bde F091 0000 lds r31,(_printf_P)+1
1314 0be2 8091 0000 lds r24,Channels
1315 0be6 90E0 ldi r25,lo8(0)
1316 0be8 0197 sbiw r24,1
1317 0bea 9F93 push r25
1318 0bec 8F93 push r24
1319 0bee 80E0 ldi r24,lo8(__c.2611)
1320 0bf0 90E0 ldi r25,hi8(__c.2611)
1321 0bf2 9F93 push r25
1322 0bf4 8F93 push r24
1323 0bf6 FF92 push r15
1324 0bf8 EF92 push r14
1325 0bfa 0995 icall
1326 0bfc 4DB7 in r20,__SP_L__
1327 0bfe 5EB7 in r21,__SP_H__
1328 0c00 4A5E subi r20,lo8(-(22))
1329 0c02 5F4F sbci r21,hi8(-(22))
1330 0c04 00C0 rjmp .L74
1331 .L36:
1332 0c06 1092 0000 sts DispPtr,__zero_reg__
1333 0c0a 80E0 ldi r24,lo8(__c.2614)
1334 0c0c 90E0 ldi r25,hi8(__c.2614)
1335 0c0e 9F93 push r25
1336 0c10 8F93 push r24
1337 0c12 FF92 push r15
1338 0c14 EF92 push r14
1339 0c16 FE01 movw r30,r28
1340 0c18 0995 icall
1341 0c1a 84E1 ldi r24,lo8(20)
1342 0c1c 8093 0000 sts DispPtr,r24
1343 0c20 E091 0000 lds r30,_printf_P
1344 0c24 F091 0000 lds r31,(_printf_P)+1
1345 0c28 8091 0000 lds r24,KompassRichtung
1346 0c2c 9091 0000 lds r25,(KompassRichtung)+1
1347 0c30 9F93 push r25
1348 0c32 8F93 push r24
1349 0c34 80E0 ldi r24,lo8(__c.2616)
1350 0c36 90E0 ldi r25,hi8(__c.2616)
1351 0c38 9F93 push r25
1352 0c3a 8F93 push r24
1353 0c3c FF92 push r15
1354 0c3e EF92 push r14
1355 0c40 0995 icall
1356 0c42 88E2 ldi r24,lo8(40)
1357 0c44 8093 0000 sts DispPtr,r24
1358 0c48 E091 0000 lds r30,_printf_P
1359 0c4c F091 0000 lds r31,(_printf_P)+1
1360 0c50 8091 0000 lds r24,KompassValue
1361 0c54 9091 0000 lds r25,(KompassValue)+1
1362 0c58 9F93 push r25
1363 0c5a 8F93 push r24
1364 0c5c 80E0 ldi r24,lo8(__c.2618)
1365 0c5e 90E0 ldi r25,hi8(__c.2618)
1366 0c60 9F93 push r25
1367 0c62 8F93 push r24
1368 0c64 FF92 push r15
1369 0c66 EF92 push r14
1370 0c68 0995 icall
1371 0c6a 8CE3 ldi r24,lo8(60)
1372 0c6c 8093 0000 sts DispPtr,r24
1373 0c70 E091 0000 lds r30,_printf_P
1374 0c74 F091 0000 lds r31,(_printf_P)+1
1375 0c78 8091 0000 lds r24,KompassStartwert
1376 0c7c 9091 0000 lds r25,(KompassStartwert)+1
1377 0c80 9F93 push r25
1378 0c82 8F93 push r24
1379 0c84 80E0 ldi r24,lo8(__c.2620)
1380 0c86 90E0 ldi r25,hi8(__c.2620)
1381 0c88 9F93 push r25
1382 0c8a 8F93 push r24
1383 0c8c FF92 push r15
1384 0c8e EF92 push r14
1385 0c90 0995 icall
1386 0c92 8DB7 in r24,__SP_L__
1387 0c94 9EB7 in r25,__SP_H__
1388 0c96 4696 adiw r24,22
1389 0c98 00C0 rjmp .L76
1390 .L37:
1391 0c9a 1092 0000 sts DispPtr,__zero_reg__
1392 0c9e 8091 0000 lds r24,Poti
1393 0ca2 90E0 ldi r25,lo8(0)
1394 0ca4 9F93 push r25
1395 0ca6 8F93 push r24
1396 0ca8 80E0 ldi r24,lo8(__c.2623)
1397 0caa 90E0 ldi r25,hi8(__c.2623)
1398 0cac 9F93 push r25
1399 0cae 8F93 push r24
1400 0cb0 FF92 push r15
1401 0cb2 EF92 push r14
1402 0cb4 FE01 movw r30,r28
1403 0cb6 0995 icall
1404 0cb8 84E1 ldi r24,lo8(20)
1405 0cba 8093 0000 sts DispPtr,r24
1406 0cbe E091 0000 lds r30,_printf_P
1407 0cc2 F091 0000 lds r31,(_printf_P)+1
1408 0cc6 8091 0000 lds r24,Poti+1
1409 0cca 90E0 ldi r25,lo8(0)
1410 0ccc 9F93 push r25
1411 0cce 8F93 push r24
1412 0cd0 80E0 ldi r24,lo8(__c.2625)
1413 0cd2 90E0 ldi r25,hi8(__c.2625)
1414 0cd4 9F93 push r25
1415 0cd6 8F93 push r24
1416 0cd8 FF92 push r15
1417 0cda EF92 push r14
1418 0cdc 0995 icall
1419 0cde 88E2 ldi r24,lo8(40)
1420 0ce0 8093 0000 sts DispPtr,r24
1421 0ce4 E091 0000 lds r30,_printf_P
1422 0ce8 F091 0000 lds r31,(_printf_P)+1
1423 0cec 8091 0000 lds r24,Poti+2
1424 0cf0 90E0 ldi r25,lo8(0)
1425 0cf2 9F93 push r25
1426 0cf4 8F93 push r24
1427 0cf6 80E0 ldi r24,lo8(__c.2627)
1428 0cf8 90E0 ldi r25,hi8(__c.2627)
1429 0cfa 9F93 push r25
1430 0cfc 8F93 push r24
1431 0cfe FF92 push r15
1432 0d00 EF92 push r14
1433 0d02 0995 icall
1434 0d04 8CE3 ldi r24,lo8(60)
1435 0d06 8093 0000 sts DispPtr,r24
1436 0d0a E091 0000 lds r30,_printf_P
1437 0d0e F091 0000 lds r31,(_printf_P)+1
1438 0d12 8091 0000 lds r24,Poti+3
1439 0d16 90E0 ldi r25,lo8(0)
1440 0d18 9F93 push r25
1441 0d1a 8F93 push r24
1442 0d1c 80E0 ldi r24,lo8(__c.2629)
1443 0d1e 90E0 ldi r25,hi8(__c.2629)
1444 .L78:
1445 0d20 9F93 push r25
1446 0d22 8F93 push r24
1447 0d24 FF92 push r15
1448 0d26 EF92 push r14
1449 0d28 0995 icall
1450 0d2a 2DB7 in r18,__SP_L__
1451 0d2c 3EB7 in r19,__SP_H__
1452 0d2e 285E subi r18,lo8(-(24))
1453 0d30 3F4F sbci r19,hi8(-(24))
1454 0d32 00C0 rjmp .L75
1455 .L38:
1456 0d34 1092 0000 sts DispPtr,__zero_reg__
1457 0d38 8091 0000 lds r24,Poti+4
1458 0d3c 90E0 ldi r25,lo8(0)
1459 0d3e 9F93 push r25
1460 0d40 8F93 push r24
1461 0d42 80E0 ldi r24,lo8(__c.2632)
1462 0d44 90E0 ldi r25,hi8(__c.2632)
1463 0d46 9F93 push r25
1464 0d48 8F93 push r24
1465 0d4a FF92 push r15
1466 0d4c EF92 push r14
1467 0d4e FE01 movw r30,r28
1468 0d50 0995 icall
1469 0d52 84E1 ldi r24,lo8(20)
1470 0d54 8093 0000 sts DispPtr,r24
1471 0d58 E091 0000 lds r30,_printf_P
1472 0d5c F091 0000 lds r31,(_printf_P)+1
1473 0d60 8091 0000 lds r24,Poti+5
1474 0d64 90E0 ldi r25,lo8(0)
1475 0d66 9F93 push r25
1476 0d68 8F93 push r24
1477 0d6a 80E0 ldi r24,lo8(__c.2634)
1478 0d6c 90E0 ldi r25,hi8(__c.2634)
1479 0d6e 9F93 push r25
1480 0d70 8F93 push r24
1481 0d72 FF92 push r15
1482 0d74 EF92 push r14
1483 0d76 0995 icall
1484 0d78 88E2 ldi r24,lo8(40)
1485 0d7a 8093 0000 sts DispPtr,r24
1486 0d7e E091 0000 lds r30,_printf_P
1487 0d82 F091 0000 lds r31,(_printf_P)+1
1488 0d86 8091 0000 lds r24,Poti+6
1489 0d8a 90E0 ldi r25,lo8(0)
1490 0d8c 9F93 push r25
1491 0d8e 8F93 push r24
1492 0d90 80E0 ldi r24,lo8(__c.2636)
1493 0d92 90E0 ldi r25,hi8(__c.2636)
1494 0d94 9F93 push r25
1495 0d96 8F93 push r24
1496 0d98 FF92 push r15
1497 0d9a EF92 push r14
1498 0d9c 0995 icall
1499 0d9e 8CE3 ldi r24,lo8(60)
1500 0da0 8093 0000 sts DispPtr,r24
1501 0da4 E091 0000 lds r30,_printf_P
1502 0da8 F091 0000 lds r31,(_printf_P)+1
1503 0dac 8091 0000 lds r24,Poti+7
1504 0db0 90E0 ldi r25,lo8(0)
1505 0db2 9F93 push r25
1506 0db4 8F93 push r24
1507 0db6 80E0 ldi r24,lo8(__c.2638)
1508 0db8 90E0 ldi r25,hi8(__c.2638)
1509 0dba 9F93 push r25
1510 0dbc 8F93 push r24
1511 0dbe FF92 push r15
1512 0dc0 EF92 push r14
1513 0dc2 0995 icall
1514 0dc4 4DB7 in r20,__SP_L__
1515 0dc6 5EB7 in r21,__SP_H__
1516 0dc8 485E subi r20,lo8(-(24))
1517 0dca 5F4F sbci r21,hi8(-(24))
1518 0dcc 00C0 rjmp .L74
1519 .L39:
1520 0dce 1092 0000 sts DispPtr,__zero_reg__
1521 0dd2 80E0 ldi r24,lo8(__c.2641)
1522 0dd4 90E0 ldi r25,hi8(__c.2641)
1523 0dd6 9F93 push r25
1524 0dd8 8F93 push r24
1525 0dda FF92 push r15
1526 0ddc EF92 push r14
1527 0dde FE01 movw r30,r28
1528 0de0 0995 icall
1529 0de2 84E1 ldi r24,lo8(20)
1530 0de4 8093 0000 sts DispPtr,r24
1531 0de8 E091 0000 lds r30,_printf_P
1532 0dec F091 0000 lds r31,(_printf_P)+1
1533 0df0 8091 0000 lds r24,Parameter_ServoNickControl
1534 0df4 90E0 ldi r25,lo8(0)
1535 0df6 9F93 push r25
1536 0df8 8F93 push r24
1537 0dfa 80E0 ldi r24,lo8(__c.2643)
1538 0dfc 90E0 ldi r25,hi8(__c.2643)
1539 0dfe 9F93 push r25
1540 0e00 8F93 push r24
1541 0e02 FF92 push r15
1542 0e04 EF92 push r14
1543 0e06 0995 icall
1544 0e08 88E2 ldi r24,lo8(40)
1545 0e0a 8093 0000 sts DispPtr,r24
1546 0e0e E091 0000 lds r30,_printf_P
1547 0e12 F091 0000 lds r31,(_printf_P)+1
1548 0e16 8091 0000 lds r24,ServoNickValue
1549 0e1a 9091 0000 lds r25,(ServoNickValue)+1
1550 0e1e 64E0 ldi r22,lo8(4)
1551 0e20 70E0 ldi r23,hi8(4)
1552 0e22 0E94 0000 call __divmodhi4
1553 0e26 7F93 push r23
1554 0e28 6F93 push r22
1555 0e2a 80E0 ldi r24,lo8(__c.2645)
1556 0e2c 90E0 ldi r25,hi8(__c.2645)
1557 0e2e 9F93 push r25
1558 0e30 8F93 push r24
1559 0e32 FF92 push r15
1560 0e34 EF92 push r14
1561 0e36 0995 icall
1562 0e38 8CE3 ldi r24,lo8(60)
1563 0e3a 8093 0000 sts DispPtr,r24
1564 0e3e E091 0000 lds r30,_printf_P
1565 0e42 F091 0000 lds r31,(_printf_P)+1
1566 0e46 2091 0000 lds r18,EE_Parameter+48
1567 0e4a 30E0 ldi r19,lo8(0)
1568 0e4c 8091 0000 lds r24,EE_Parameter+47
1569 0e50 90E0 ldi r25,lo8(0)
1570 0e52 3F93 push r19
1571 0e54 2F93 push r18
1572 0e56 9F93 push r25
1573 0e58 8F93 push r24
1574 0e5a 80E0 ldi r24,lo8(__c.2647)
1575 0e5c 90E0 ldi r25,hi8(__c.2647)
1576 0e5e 9F93 push r25
1577 0e60 8F93 push r24
1578 0e62 FF92 push r15
1579 0e64 EF92 push r14
1580 0e66 0995 icall
1581 0e68 8DB7 in r24,__SP_L__
1582 0e6a 9EB7 in r25,__SP_H__
1583 0e6c 4896 adiw r24,24
1584 0e6e 00C0 rjmp .L76
1585 .L40:
1586 0e70 1092 0000 sts DispPtr,__zero_reg__
1587 0e74 80E0 ldi r24,lo8(__c.2650)
1588 0e76 90E0 ldi r25,hi8(__c.2650)
1589 0e78 9F93 push r25
1590 0e7a 8F93 push r24
1591 0e7c FF92 push r15
1592 0e7e EF92 push r14
1593 0e80 FE01 movw r30,r28
1594 0e82 0995 icall
1595 0e84 84E1 ldi r24,lo8(20)
1596 0e86 8093 0000 sts DispPtr,r24
1597 0e8a E091 0000 lds r30,_printf_P
1598 0e8e F091 0000 lds r31,(_printf_P)+1
1599 0e92 2091 0000 lds r18,ExternControl+4
1600 0e96 3327 clr r19
1601 0e98 27FD sbrc r18,7
1602 0e9a 3095 com r19
1603 0e9c 8091 0000 lds r24,ExternControl+3
1604 0ea0 9927 clr r25
1605 0ea2 87FD sbrc r24,7
1606 0ea4 9095 com r25
1607 0ea6 3F93 push r19
1608 0ea8 2F93 push r18
1609 0eaa 9F93 push r25
1610 0eac 8F93 push r24
1611 0eae 80E0 ldi r24,lo8(__c.2652)
1612 0eb0 90E0 ldi r25,hi8(__c.2652)
1613 0eb2 9F93 push r25
1614 0eb4 8F93 push r24
1615 0eb6 FF92 push r15
1616 0eb8 EF92 push r14
1617 0eba 0995 icall
1618 0ebc 88E2 ldi r24,lo8(40)
1619 0ebe 8093 0000 sts DispPtr,r24
1620 0ec2 E091 0000 lds r30,_printf_P
1621 0ec6 F091 0000 lds r31,(_printf_P)+1
1622 0eca 2091 0000 lds r18,ExternControl+5
1623 0ece 3327 clr r19
1624 0ed0 27FD sbrc r18,7
1625 0ed2 3095 com r19
1626 0ed4 8091 0000 lds r24,ExternControl+6
1627 0ed8 90E0 ldi r25,lo8(0)
1628 0eda 3F93 push r19
1629 0edc 2F93 push r18
1630 0ede 9F93 push r25
1631 0ee0 8F93 push r24
1632 0ee2 80E0 ldi r24,lo8(__c.2654)
1633 0ee4 90E0 ldi r25,hi8(__c.2654)
1634 0ee6 9F93 push r25
1635 0ee8 8F93 push r24
1636 0eea FF92 push r15
1637 0eec EF92 push r14
1638 0eee 0995 icall
1639 0ef0 8CE3 ldi r24,lo8(60)
1640 0ef2 8093 0000 sts DispPtr,r24
1641 0ef6 E091 0000 lds r30,_printf_P
1642 0efa F091 0000 lds r31,(_printf_P)+1
1643 0efe 2091 0000 lds r18,ExternControl+10
1644 0f02 30E0 ldi r19,lo8(0)
1645 0f04 8091 0000 lds r24,ExternControl+7
1646 0f08 9927 clr r25
1647 0f0a 87FD sbrc r24,7
1648 0f0c 9095 com r25
1649 0f0e 3F93 push r19
1650 0f10 2F93 push r18
1651 0f12 9F93 push r25
1652 0f14 8F93 push r24
1653 0f16 80E0 ldi r24,lo8(__c.2656)
1654 0f18 90E0 ldi r25,hi8(__c.2656)
1655 0f1a 9F93 push r25
1656 0f1c 8F93 push r24
1657 0f1e FF92 push r15
1658 0f20 EF92 push r14
1659 .L81:
1660 0f22 0995 icall
1661 0f24 00C0 rjmp .L79
1662 .L41:
1663 0f26 1092 0000 sts DispPtr,__zero_reg__
1664 0f2a 80E0 ldi r24,lo8(__c.2659)
1665 0f2c 90E0 ldi r25,hi8(__c.2659)
1666 0f2e 9F93 push r25
1667 0f30 8F93 push r24
1668 0f32 FF92 push r15
1669 0f34 EF92 push r14
1670 0f36 FE01 movw r30,r28
1671 0f38 0995 icall
1672 0f3a 84E1 ldi r24,lo8(20)
1673 0f3c 8093 0000 sts DispPtr,r24
1674 0f40 E091 0000 lds r30,_printf_P
1675 0f44 F091 0000 lds r31,(_printf_P)+1
1676 0f48 6091 0000 lds r22,Motor+27
1677 0f4c 70E0 ldi r23,lo8(0)
1678 0f4e 6F77 andi r22,lo8(127)
1679 0f50 7070 andi r23,hi8(127)
1680 0f52 4091 0000 lds r20,Motor+19
1681 0f56 50E0 ldi r21,lo8(0)
1682 0f58 4F77 andi r20,lo8(127)
1683 0f5a 5070 andi r21,hi8(127)
1684 0f5c 2091 0000 lds r18,Motor+11
1685 0f60 30E0 ldi r19,lo8(0)
1686 0f62 2F77 andi r18,lo8(127)
1687 0f64 3070 andi r19,hi8(127)
1688 0f66 8091 0000 lds r24,Motor+3
1689 0f6a 90E0 ldi r25,lo8(0)
1690 0f6c 8F77 andi r24,lo8(127)
1691 0f6e 9070 andi r25,hi8(127)
1692 0f70 7F93 push r23
1693 0f72 6F93 push r22
1694 0f74 5F93 push r21
1695 0f76 4F93 push r20
1696 0f78 3F93 push r19
1697 0f7a 2F93 push r18
1698 0f7c 9F93 push r25
1699 0f7e 8F93 push r24
1700 0f80 80E0 ldi r24,lo8(__c.2661)
1701 0f82 90E0 ldi r25,hi8(__c.2661)
1702 0f84 9F93 push r25
1703 0f86 8F93 push r24
1704 0f88 FF92 push r15
1705 0f8a EF92 push r14
1706 0f8c 0995 icall
1707 0f8e 88E2 ldi r24,lo8(40)
1708 0f90 8093 0000 sts DispPtr,r24
1709 0f94 E091 0000 lds r30,_printf_P
1710 0f98 F091 0000 lds r31,(_printf_P)+1
1711 0f9c 6091 0000 lds r22,Motor+59
1712 0fa0 70E0 ldi r23,lo8(0)
1713 0fa2 6F77 andi r22,lo8(127)
1714 0fa4 7070 andi r23,hi8(127)
1715 0fa6 4091 0000 lds r20,Motor+51
1716 0faa 50E0 ldi r21,lo8(0)
1717 0fac 4F77 andi r20,lo8(127)
1718 0fae 5070 andi r21,hi8(127)
1719 0fb0 2091 0000 lds r18,Motor+43
1720 0fb4 30E0 ldi r19,lo8(0)
1721 0fb6 2F77 andi r18,lo8(127)
1722 0fb8 3070 andi r19,hi8(127)
1723 0fba 8091 0000 lds r24,Motor+35
1724 0fbe 90E0 ldi r25,lo8(0)
1725 0fc0 8F77 andi r24,lo8(127)
1726 0fc2 9070 andi r25,hi8(127)
1727 0fc4 7F93 push r23
1728 0fc6 6F93 push r22
1729 0fc8 5F93 push r21
1730 0fca 4F93 push r20
1731 0fcc 3F93 push r19
1732 0fce 2F93 push r18
1733 0fd0 9F93 push r25
1734 0fd2 8F93 push r24
1735 0fd4 80E0 ldi r24,lo8(__c.2663)
1736 0fd6 90E0 ldi r25,hi8(__c.2663)
1737 0fd8 9F93 push r25
1738 0fda 8F93 push r24
1739 0fdc FF92 push r15
1740 0fde EF92 push r14
1741 0fe0 0995 icall
1742 0fe2 8CE3 ldi r24,lo8(60)
1743 0fe4 8093 0000 sts DispPtr,r24
1744 0fe8 E091 0000 lds r30,_printf_P
1745 0fec F091 0000 lds r31,(_printf_P)+1
1746 0ff0 6091 0000 lds r22,Motor+91
1747 0ff4 70E0 ldi r23,lo8(0)
1748 0ff6 6F77 andi r22,lo8(127)
1749 0ff8 7070 andi r23,hi8(127)
1750 0ffa 4091 0000 lds r20,Motor+83
1751 0ffe 50E0 ldi r21,lo8(0)
1752 1000 4F77 andi r20,lo8(127)
1753 1002 5070 andi r21,hi8(127)
1754 1004 2091 0000 lds r18,Motor+75
1755 1008 30E0 ldi r19,lo8(0)
1756 100a 2F77 andi r18,lo8(127)
1757 100c 3070 andi r19,hi8(127)
1758 100e 8091 0000 lds r24,Motor+67
1759 1012 90E0 ldi r25,lo8(0)
1760 1014 8F77 andi r24,lo8(127)
1761 1016 9070 andi r25,hi8(127)
1762 1018 7F93 push r23
1763 101a 6F93 push r22
1764 101c 5F93 push r21
1765 101e 4F93 push r20
1766 1020 3F93 push r19
1767 1022 2F93 push r18
1768 1024 9F93 push r25
1769 1026 8F93 push r24
1770 1028 80E0 ldi r24,lo8(__c.2665)
1771 102a 90E0 ldi r25,hi8(__c.2665)
1772 102c 9F93 push r25
1773 102e 8F93 push r24
1774 1030 FF92 push r15
1775 1032 EF92 push r14
1776 1034 0995 icall
1777 1036 4DB7 in r20,__SP_L__
1778 1038 5EB7 in r21,__SP_H__
1779 103a 485D subi r20,lo8(-(40))
1780 103c 5F4F sbci r21,hi8(-(40))
1781 103e 00C0 rjmp .L74
1782 .L42:
1783 1040 1092 0000 sts DispPtr,__zero_reg__
1784 1044 80E0 ldi r24,lo8(__c.2668)
1785 1046 90E0 ldi r25,hi8(__c.2668)
1786 1048 9F93 push r25
1787 104a 8F93 push r24
1788 104c FF92 push r15
1789 104e EF92 push r14
1790 1050 FE01 movw r30,r28
1791 1052 0995 icall
1792 1054 84E1 ldi r24,lo8(20)
1793 1056 8093 0000 sts DispPtr,r24
1794 105a E091 0000 lds r30,_printf_P
1795 105e F091 0000 lds r31,(_printf_P)+1
1796 1062 6091 0000 lds r22,Motor+31
1797 1066 7727 clr r23
1798 1068 67FD sbrc r22,7
1799 106a 7095 com r23
1800 106c 4091 0000 lds r20,Motor+23
1801 1070 5527 clr r21
1802 1072 47FD sbrc r20,7
1803 1074 5095 com r21
1804 1076 2091 0000 lds r18,Motor+15
1805 107a 3327 clr r19
1806 107c 27FD sbrc r18,7
1807 107e 3095 com r19
1808 1080 8091 0000 lds r24,Motor+7
1809 1084 9927 clr r25
1810 1086 87FD sbrc r24,7
1811 1088 9095 com r25
1812 108a 7F93 push r23
1813 108c 6F93 push r22
1814 108e 5F93 push r21
1815 1090 4F93 push r20
1816 1092 3F93 push r19
1817 1094 2F93 push r18
1818 1096 9F93 push r25
1819 1098 8F93 push r24
1820 109a 80E0 ldi r24,lo8(__c.2670)
1821 109c 90E0 ldi r25,hi8(__c.2670)
1822 109e 9F93 push r25
1823 10a0 8F93 push r24
1824 10a2 FF92 push r15
1825 10a4 EF92 push r14
1826 10a6 0995 icall
1827 10a8 88E2 ldi r24,lo8(40)
1828 10aa 8093 0000 sts DispPtr,r24
1829 10ae E091 0000 lds r30,_printf_P
1830 10b2 F091 0000 lds r31,(_printf_P)+1
1831 10b6 6091 0000 lds r22,Motor+63
1832 10ba 7727 clr r23
1833 10bc 67FD sbrc r22,7
1834 10be 7095 com r23
1835 10c0 4091 0000 lds r20,Motor+55
1836 10c4 5527 clr r21
1837 10c6 47FD sbrc r20,7
1838 10c8 5095 com r21
1839 10ca 2091 0000 lds r18,Motor+47
1840 10ce 3327 clr r19
1841 10d0 27FD sbrc r18,7
1842 10d2 3095 com r19
1843 10d4 8091 0000 lds r24,Motor+39
1844 10d8 9927 clr r25
1845 10da 87FD sbrc r24,7
1846 10dc 9095 com r25
1847 10de 7F93 push r23
1848 10e0 6F93 push r22
1849 10e2 5F93 push r21
1850 10e4 4F93 push r20
1851 10e6 3F93 push r19
1852 10e8 2F93 push r18
1853 10ea 9F93 push r25
1854 10ec 8F93 push r24
1855 10ee 80E0 ldi r24,lo8(__c.2672)
1856 10f0 90E0 ldi r25,hi8(__c.2672)
1857 10f2 9F93 push r25
1858 10f4 8F93 push r24
1859 10f6 FF92 push r15
1860 10f8 EF92 push r14
1861 10fa 0995 icall
1862 10fc 8CE3 ldi r24,lo8(60)
1863 10fe 8093 0000 sts DispPtr,r24
1864 1102 E091 0000 lds r30,_printf_P
1865 1106 F091 0000 lds r31,(_printf_P)+1
1866 110a 6091 0000 lds r22,Motor+95
1867 110e 7727 clr r23
1868 1110 67FD sbrc r22,7
1869 1112 7095 com r23
1870 1114 4091 0000 lds r20,Motor+87
1871 1118 5527 clr r21
1872 111a 47FD sbrc r20,7
1873 111c 5095 com r21
1874 111e 2091 0000 lds r18,Motor+79
1875 1122 3327 clr r19
1876 1124 27FD sbrc r18,7
1877 1126 3095 com r19
1878 1128 8091 0000 lds r24,Motor+71
1879 112c 9927 clr r25
1880 112e 87FD sbrc r24,7
1881 1130 9095 com r25
1882 1132 7F93 push r23
1883 1134 6F93 push r22
1884 1136 5F93 push r21
1885 1138 4F93 push r20
1886 113a 3F93 push r19
1887 113c 2F93 push r18
1888 113e 9F93 push r25
1889 1140 8F93 push r24
1890 1142 80E0 ldi r24,lo8(__c.2674)
1891 1144 90E0 ldi r25,hi8(__c.2674)
1892 1146 9F93 push r25
1893 1148 8F93 push r24
1894 114a FF92 push r15
1895 114c EF92 push r14
1896 114e 0995 icall
1897 1150 8DB7 in r24,__SP_L__
1898 1152 9EB7 in r25,__SP_H__
1899 1154 8896 adiw r24,40
1900 1156 00C0 rjmp .L76
1901 .L43:
1902 1158 1092 0000 sts DispPtr,__zero_reg__
1903 115c 80E0 ldi r24,lo8(__c.2677)
1904 115e 90E0 ldi r25,hi8(__c.2677)
1905 1160 9F93 push r25
1906 1162 8F93 push r24
1907 1164 00E0 ldi r16,lo8(gs(Menu_Putchar))
1908 1166 10E0 ldi r17,hi8(gs(Menu_Putchar))
1909 1168 FF92 push r15
1910 116a EF92 push r14
1911 116c FE01 movw r30,r28
1912 116e 0995 icall
1913 1170 84E1 ldi r24,lo8(20)
1914 1172 8093 0000 sts DispPtr,r24
1915 1176 E091 0000 lds r30,_printf_P
1916 117a F091 0000 lds r31,(_printf_P)+1
1917 117e 6091 0000 lds r22,Motor+27
1918 1182 661F rol r22
1919 1184 6627 clr r22
1920 1186 661F rol r22
1921 1188 87E0 ldi r24,lo8(7)
1922 118a 689F mul r22,r24
1923 118c B001 movw r22,r0
1924 118e 1124 clr r1
1925 1190 635D subi r22,lo8(-(45))
1926 1192 7F4F sbci r23,hi8(-(45))
1927 1194 4091 0000 lds r20,Motor+19
1928 1198 441F rol r20
1929 119a 4427 clr r20
1930 119c 441F rol r20
1931 119e 86E0 ldi r24,lo8(6)
1932 11a0 489F mul r20,r24
1933 11a2 A001 movw r20,r0
1934 11a4 1124 clr r1
1935 11a6 435D subi r20,lo8(-(45))
1936 11a8 5F4F sbci r21,hi8(-(45))
1937 11aa 2091 0000 lds r18,Motor+11
1938 11ae 221F rol r18
1939 11b0 2227 clr r18
1940 11b2 221F rol r18
1941 11b4 85E0 ldi r24,lo8(5)
1942 11b6 289F mul r18,r24
1943 11b8 9001 movw r18,r0
1944 11ba 1124 clr r1
1945 11bc 235D subi r18,lo8(-(45))
1946 11be 3F4F sbci r19,hi8(-(45))
1947 11c0 8091 0000 lds r24,Motor+3
1948 11c4 881F rol r24
1949 11c6 8827 clr r24
1950 11c8 881F rol r24
1951 11ca 90E0 ldi r25,lo8(0)
1952 11cc 880F lsl r24
1953 11ce 991F rol r25
1954 11d0 880F lsl r24
1955 11d2 991F rol r25
1956 11d4 8D96 adiw r24,45
1957 11d6 7F93 push r23
1958 11d8 6F93 push r22
1959 11da 5F93 push r21
1960 11dc 4F93 push r20
1961 11de 3F93 push r19
1962 11e0 2F93 push r18
1963 11e2 9F93 push r25
1964 11e4 8F93 push r24
1965 11e6 80E0 ldi r24,lo8(__c.2679)
1966 11e8 90E0 ldi r25,hi8(__c.2679)
1967 11ea 9F93 push r25
1968 11ec 8F93 push r24
1969 11ee FF92 push r15
1970 11f0 EF92 push r14
1971 11f2 0995 icall
1972 11f4 88E2 ldi r24,lo8(40)
1973 11f6 8093 0000 sts DispPtr,r24
1974 11fa E091 0000 lds r30,_printf_P
1975 11fe F091 0000 lds r31,(_printf_P)+1
1976 1202 6091 0000 lds r22,Motor+59
1977 1206 661F rol r22
1978 1208 6627 clr r22
1979 120a 661F rol r22
1980 120c 8BE0 ldi r24,lo8(11)
1981 120e 689F mul r22,r24
1982 1210 B001 movw r22,r0
1983 1212 1124 clr r1
1984 1214 635D subi r22,lo8(-(45))
1985 1216 7F4F sbci r23,hi8(-(45))
1986 1218 4091 0000 lds r20,Motor+51
1987 121c 441F rol r20
1988 121e 4427 clr r20
1989 1220 441F rol r20
1990 1222 8AE0 ldi r24,lo8(10)
1991 1224 489F mul r20,r24
1992 1226 A001 movw r20,r0
1993 1228 1124 clr r1
1994 122a 435D subi r20,lo8(-(45))
1995 122c 5F4F sbci r21,hi8(-(45))
1996 122e 2091 0000 lds r18,Motor+43
1997 1232 221F rol r18
1998 1234 2227 clr r18
1999 1236 221F rol r18
2000 1238 89E0 ldi r24,lo8(9)
2001 123a 289F mul r18,r24
2002 123c 9001 movw r18,r0
2003 123e 1124 clr r1
2004 1240 235D subi r18,lo8(-(45))
2005 1242 3F4F sbci r19,hi8(-(45))
2006 1244 8091 0000 lds r24,Motor+35
2007 1248 881F rol r24
2008 124a 8827 clr r24
2009 124c 881F rol r24
2010 124e 90E0 ldi r25,lo8(0)
2011 1250 A3E0 ldi r26,3
2012 1252 880F 1: lsl r24
2013 1254 991F rol r25
2014 1256 AA95 dec r26
2015 1258 01F4 brne 1b
2016 125a 8D96 adiw r24,45
2017 125c 7F93 push r23
2018 125e 6F93 push r22
2019 1260 5F93 push r21
2020 1262 4F93 push r20
2021 1264 3F93 push r19
2022 1266 2F93 push r18
2023 1268 9F93 push r25
2024 126a 8F93 push r24
2025 126c 80E0 ldi r24,lo8(__c.2681)
2026 126e 90E0 ldi r25,hi8(__c.2681)
2027 1270 9F93 push r25
2028 1272 8F93 push r24
2029 1274 FF92 push r15
2030 1276 EF92 push r14
2031 1278 0995 icall
2032 127a 8CE3 ldi r24,lo8(60)
2033 127c 8093 0000 sts DispPtr,r24
2034 1280 E091 0000 lds r30,_printf_P
2035 1284 F091 0000 lds r31,(_printf_P)+1
2036 1288 8091 0000 lds r24,Motor+67
2037 128c 881F rol r24
2038 128e 8827 clr r24
2039 1290 881F rol r24
2040 1292 2CE0 ldi r18,lo8(12)
2041 1294 829F mul r24,r18
2042 1296 C001 movw r24,r0
2043 1298 1124 clr r1
2044 129a 8D96 adiw r24,45
2045 129c 9F93 push r25
2046 129e 8F93 push r24
2047 12a0 80E0 ldi r24,lo8(__c.2683)
2048 12a2 90E0 ldi r25,hi8(__c.2683)
2049 12a4 9F93 push r25
2050 12a6 8F93 push r24
2051 12a8 FF92 push r15
2052 12aa EF92 push r14
2053 12ac 0995 icall
2054 12ae 2DB7 in r18,__SP_L__
2055 12b0 3EB7 in r19,__SP_H__
2056 12b2 2E5D subi r18,lo8(-(34))
2057 12b4 3F4F sbci r19,hi8(-(34))
2058 12b6 2DBF out __SP_L__,r18
2059 12b8 8091 0000 lds r24,Motor+75
2060 12bc 87FF sbrs r24,7
2061 12be 00C0 rjmp .L62
2062 12c0 80E4 ldi r24,lo8(64)
2063 12c2 8093 0000 sts DispPtr,r24
2064 12c6 E091 0000 lds r30,_printf_P
2065 12ca F091 0000 lds r31,(_printf_P)+1
2066 12ce 80E0 ldi r24,lo8(__c.2685)
2067 12d0 90E0 ldi r25,hi8(__c.2685)
2068 12d2 9F93 push r25
2069 12d4 8F93 push r24
2070 12d6 1F93 push r17
2071 12d8 0F93 push r16
2072 12da 0995 icall
2073 12dc 0F90 pop __tmp_reg__
2074 12de 0F90 pop __tmp_reg__
2075 12e0 0F90 pop __tmp_reg__
2076 12e2 0F90 pop __tmp_reg__
2077 .L62:
2078 12e4 8091 0000 lds r24,Motor+83
2079 12e8 87FF sbrs r24,7
2080 12ea 00C0 rjmp .L64
2081 12ec 84E4 ldi r24,lo8(68)
2082 12ee 8093 0000 sts DispPtr,r24
2083 12f2 E091 0000 lds r30,_printf_P
2084 12f6 F091 0000 lds r31,(_printf_P)+1
2085 12fa 80E0 ldi r24,lo8(__c.2687)
2086 12fc 90E0 ldi r25,hi8(__c.2687)
2087 12fe 9F93 push r25
2088 1300 8F93 push r24
2089 1302 1F93 push r17
2090 1304 0F93 push r16
2091 1306 0995 icall
2092 1308 0F90 pop __tmp_reg__
2093 130a 0F90 pop __tmp_reg__
2094 130c 0F90 pop __tmp_reg__
2095 130e 0F90 pop __tmp_reg__
2096 .L64:
2097 1310 8091 0000 lds r24,Motor+91
2098 1314 87FF sbrs r24,7
2099 1316 00C0 rjmp .L48
2100 1318 88E4 ldi r24,lo8(72)
2101 131a 8093 0000 sts DispPtr,r24
2102 131e E091 0000 lds r30,_printf_P
2103 1322 F091 0000 lds r31,(_printf_P)+1
2104 1326 80E0 ldi r24,lo8(__c.2689)
2105 1328 90E0 ldi r25,hi8(__c.2689)
2106 132a 9F93 push r25
2107 132c 8F93 push r24
2108 132e 1F93 push r17
2109 1330 0F93 push r16
2110 .L77:
2111 1332 0995 icall
2112 1334 0F90 pop __tmp_reg__
2113 1336 0F90 pop __tmp_reg__
2114 1338 0F90 pop __tmp_reg__
2115 133a 0F90 pop __tmp_reg__
2116 133c 00C0 rjmp .L48
2117 .L44:
2118 133e 1092 0000 sts DispPtr,__zero_reg__
2119 1342 80E0 ldi r24,lo8(__c.2692)
2120 1344 90E0 ldi r25,hi8(__c.2692)
2121 1346 9F93 push r25
2122 1348 8F93 push r24
2123 134a FF92 push r15
2124 134c EF92 push r14
2125 134e FE01 movw r30,r28
2126 1350 0995 icall
2127 1352 84E1 ldi r24,lo8(20)
2128 1354 8093 0000 sts DispPtr,r24
2129 1358 E091 0000 lds r30,_printf_P
2130 135c F091 0000 lds r31,(_printf_P)+1
2131 1360 8091 0000 lds r24,FlugMinutenGesamt
2132 1364 9091 0000 lds r25,(FlugMinutenGesamt)+1
2133 1368 9F93 push r25
2134 136a 8F93 push r24
2135 136c 80E0 ldi r24,lo8(__c.2694)
2136 136e 90E0 ldi r25,hi8(__c.2694)
2137 1370 9F93 push r25
2138 1372 8F93 push r24
2139 1374 FF92 push r15
2140 1376 EF92 push r14
2141 1378 0995 icall
2142 137a 88E2 ldi r24,lo8(40)
2143 137c 8093 0000 sts DispPtr,r24
2144 1380 E091 0000 lds r30,_printf_P
2145 1384 F091 0000 lds r31,(_printf_P)+1
2146 1388 8091 0000 lds r24,FlugMinuten
2147 138c 9091 0000 lds r25,(FlugMinuten)+1
2148 1390 9F93 push r25
2149 1392 8F93 push r24
2150 1394 80E0 ldi r24,lo8(__c.2696)
2151 1396 90E0 ldi r25,hi8(__c.2696)
2152 1398 9F93 push r25
2153 139a 8F93 push r24
2154 139c FF92 push r15
2155 139e EF92 push r14
2156 13a0 0995 icall
2157 13a2 89E4 ldi r24,lo8(73)
2158 13a4 8093 0000 sts DispPtr,r24
2159 13a8 E091 0000 lds r30,_printf_P
2160 13ac F091 0000 lds r31,(_printf_P)+1
2161 13b0 80E0 ldi r24,lo8(__c.2698)
2162 13b2 90E0 ldi r25,hi8(__c.2698)
2163 13b4 9F93 push r25
2164 13b6 8F93 push r24
2165 13b8 FF92 push r15
2166 13ba EF92 push r14
2167 13bc 0995 icall
2168 13be 8091 0000 lds r24,RemoteKeys
2169 13c2 4DB7 in r20,__SP_L__
2170 13c4 5EB7 in r21,__SP_H__
2171 13c6 4C5E subi r20,lo8(-(20))
2172 13c8 5F4F sbci r21,hi8(-(20))
2173 13ca 4DBF out __SP_L__,r20
2174 13cc 83FF sbrs r24,3
2175 13ce 00C0 rjmp .L48
2176 13d0 1092 0000 sts (FlugMinuten)+1,__zero_reg__
2177 13d4 1092 0000 sts FlugMinuten,__zero_reg__
2178 13d8 60E0 ldi r22,lo8(0)
2179 13da 70E0 ldi r23,hi8(0)
2180 13dc 8EE0 ldi r24,lo8(14)
2181 13de 90E0 ldi r25,hi8(14)
2182 13e0 0E94 0000 call SetParamWord
2183 13e4 00C0 rjmp .L48
2184 .L26:
2185 13e6 8091 0000 lds r24,MaxMenue
2186 13ea 9817 cp r25,r24
2187 13ec 01F4 brne .L68
2188 13ee 9150 subi r25,lo8(-(-1))
2189 13f0 9093 0000 sts MaxMenue,r25
2190 .L68:
2191 13f4 1092 0000 sts MenuePunkt,__zero_reg__
2192 .L48:
2193 13f8 1092 0000 sts RemoteKeys,__zero_reg__
2194 /* epilogue: frame size=0 */
2195 13fc EAE0 ldi r30,10
2196 13fe CDB7 in r28,__SP_L__
2197 1400 DEB7 in r29,__SP_H__
2198 1402 0C94 0000 jmp __epilogue_restores__+16
2199 /* epilogue end (size=5) */
2200 /* function Menu size 2562 (2551) */
2202 .global DisplayBuff
2203 .data
2206 DisplayBuff:
2207 0000 4865 6C6C .string "Hello World"
2207 6F20 576F
2207 726C 6400
2208 000c 0000 0000 .skip 68,0
2208 0000 0000
2208 0000 0000
2208 0000 0000
2208 0000 0000
2209 .global DispPtr
2210 .global DispPtr
2211 .section .bss
2214 DispPtr:
2215 0000 00 .skip 1,0
2216 .global MaxMenue
2217 .data
2220 MaxMenue:
2221 0050 11 .byte 17
2222 .global MenuePunkt
2223 .global MenuePunkt
2224 .section .bss
2227 MenuePunkt:
2228 0001 00 .skip 1,0
2229 .global RemoteKeys
2230 .global RemoteKeys
2233 RemoteKeys:
2234 0002 00 .skip 1,0
2235 .section .progmem.data,"a",@progbits
2238 __c.2698:
2239 0000 2872 6573 .string "(reset)"
2239 6574 2900
2242 __c.2696:
2243 0008 4163 743A .string "Act: %5umin"
2243 2020 2535
2243 756D 696E
2243 00
2246 __c.2694:
2247 0015 546F 7461 .string "Total:%5umin"
2247 6C3A 2535
2247 756D 696E
2247 00
2250 __c.2692:
2251 0022 466C 6967 .string "Flight-Time "
2251 6874 2D54
2251 696D 6520
2251 2000
2254 __c.2689:
2255 0030 3132 00 .string "12"
2258 __c.2687:
2259 0033 3131 00 .string "11"
2262 __c.2685:
2263 0036 3130 00 .string "10"
2266 __c.2683:
2267 0039 2025 6320 .string " %c - - - "
2267 2020 2D20
2267 2020 2D20
2267 2020 2D20
2267 00
2270 __c.2681:
2271 004a 2025 6320 .string " %c %c %c %c "
2271 2020 2563
2271 2020 2025
2271 6320 2020
2271 2563 2000
2274 __c.2679:
2275 005e 2025 6320 .string " %c %c %c %c "
2275 2020 2563
2275 2020 2025
2275 6320 2020
2275 2563 2000
2278 __c.2677:
2279 0072 424C 2D43 .string "BL-Ctrl found "
2279 7472 6C20
2279 666F 756E
2279 6420 00
2282 __c.2674:
2283 0081 2533 6920 .string "%3i %3i %3i %3i "
2283 2533 6920
2283 2533 6920
2283 2533 6920
2283 00
2286 __c.2672:
2287 0092 2533 6920 .string "%3i %3i %3i %3i "
2287 2533 6920
2287 2533 6920
2287 2533 6920
2287 00
2290 __c.2670:
2291 00a3 2533 6920 .string "%3i %3i %3i %3i "
2291 2533 6920
2291 2533 6920
2291 2533 6920
2291 00
2294 __c.2668:
2295 00b4 424C 2054 .string "BL Temperature"
2295 656D 7065
2295 7261 7475
2295 7265 00
2298 __c.2665:
2299 00c3 2533 6420 .string "%3d %3d %3d %3d "
2299 2533 6420
2299 2533 6420
2299 2533 6420
2299 00
2302 __c.2663:
2303 00d4 2533 6420 .string "%3d %3d %3d %3d "
2303 2533 6420
2303 2533 6420
2303 2533 6420
2303 00
2306 __c.2661:
2307 00e5 2533 6420 .string "%3d %3d %3d %3d "
2307 2533 6420
2307 2533 6420
2307 2533 6420
2307 00
2310 __c.2659:
2311 00f6 424C 2D43 .string "BL-Ctrl Errors "
2311 7472 6C20
2311 4572 726F
2311 7273 2000
2314 __c.2656:
2315 0106 4869 3A25 .string "Hi:%4i Cf:%4i "
2315 3469 2020
2315 4366 3A25
2315 3469 2000
2318 __c.2654:
2319 0116 4773 3A25 .string "Gs:%4i Gi:%4i "
2319 3469 2020
2319 4769 3A25
2319 3469 2000
2322 __c.2652:
2323 0126 4E69 3A25 .string "Ni:%4i Ro:%4i "
2323 3469 2020
2323 526F 3A25
2323 3469 2000
2326 __c.2650:
2327 0136 4578 7465 .string "ExternControl "
2327 726E 436F
2327 6E74 726F
2327 6C20 2000
2330 __c.2647:
2331 0146 5261 6E67 .string "Range:%3i-%3i"
2331 653A 2533
2331 692D 2533
2331 6900
2334 __c.2645:
2335 0154 506F 7369 .string "Position: %3i"
2335 7469 6F6E
2335 3A20 2533
2335 6900
2338 __c.2643:
2339 0162 5365 7470 .string "Setpoint %3i"
2339 6F69 6E74
2339 2020 2533
2339 6900
2342 __c.2641:
2343 0170 5365 7276 .string "Servo "
2343 6F20 2000
2346 __c.2638:
2347 0178 506F 7469 .string "Poti8: %3i"
2347 383A 2020
2347 2533 6900
2350 __c.2636:
2351 0184 506F 7469 .string "Poti7: %3i"
2351 373A 2020
2351 2533 6900
2354 __c.2634:
2355 0190 506F 7469 .string "Poti6: %3i"
2355 363A 2020
2355 2533 6900
2358 __c.2632:
2359 019c 506F 7469 .string "Poti5: %3i"
2359 353A 2020
2359 2533 6900
2362 __c.2629:
2363 01a8 506F 7469 .string "Poti4: %3i"
2363 343A 2020
2363 2533 6900
2366 __c.2627:
2367 01b4 506F 7469 .string "Poti3: %3i"
2367 333A 2020
2367 2533 6900
2370 __c.2625:
2371 01c0 506F 7469 .string "Poti2: %3i"
2371 323A 2020
2371 2533 6900
2374 __c.2623:
2375 01cc 506F 7469 .string "Poti1: %3i"
2375 313A 2020
2375 2533 6900
2378 __c.2620:
2379 01d8 5374 6172 .string "Start: %5i"
2379 743A 2020
2379 2020 2535
2379 6900
2382 __c.2618:
2383 01e6 5661 6C75 .string "Value: %5i"
2383 653A 2020
2383 2020 2535
2383 6900
2386 __c.2616:
2387 01f4 4865 6164 .string "Heading: %5i"
2387 696E 673A
2387 2020 2535
2387 6900
2390 __c.2614:
2391 0202 436F 6D70 .string "Compass"
2391 6173 7300
2394 __c.2611:
2395 020a 5243 2D43 .string "RC-Channels:%4i"
2395 6861 6E6E
2395 656C 733A
2395 2534 6900
2398 __c.2609:
2399 021a 5243 2D51 .string "RC-Quality: %4i"
2399 7561 6C69
2399 7479 3A20
2399 2534 6900
2402 __c.2607:
2403 022a 5243 2D52 .string "RC-RSSI: %4i"
2403 5353 493A
2403 2020 2020
2403 2534 6900
2406 __c.2605:
2407 023a 5265 6365 .string "Receiver"
2407 6976 6572
2407 00
2410 __c.2602:
2411 0243 4469 7363 .string "Discharge: %5imAh"
2411 6861 7267
2411 653A 2025
2411 3569 6D41
2411 6800
2414 __c.2600:
2415 0255 506F 7765 .string "Power: %4iW"
2415 723A 2020
2415 2020 2025
2415 3469 5700
2418 __c.2598:
2419 0265 4375 7272 .string "Current: %3i.%1iA"
2419 656E 743A
2419 2020 2025
2419 3369 2E25
2419 3169 4100
2422 __c.2596:
2423 0279 566F 6C74 .string "Voltage: %3i.%1iV"
2423 6167 653A
2423 2020 2025
2423 3369 2E25
2423 3169 5600
2426 __c.2593:
2427 028d 5A20 2020 .string "Z %4i (%3i)"
2427 2025 3469
2427 2028 2533
2427 6929 00
2430 __c.2591:
2431 029c 526F 6C6C .string "Roll %4i (%3i)"
2431 2025 3469
2431 2028 2533
2431 6929 00
2434 __c.2589:
2435 02ab 4E69 636B .string "Nick %4i (%3i)"
2435 2025 3469
2435 2028 2533
2435 6929 00
2438 __c.2587:
2439 02ba 4143 4320 .string "ACC - Sensor"
2439 2D20 5365
2439 6E73 6F72
2439 00
2442 __c.2584:
2443 02c7 5961 7720 .string "Yaw %4i (%3i)(%3i)"
2443 2025 3469
2443 2028 2533
2443 6929 2825
2443 3369 2900
2446 __c.2582:
2447 02db 526F 6C6C .string "Roll %4i (%3i)(%3i)"
2447 2025 3469
2447 2028 2533
2447 6929 2825
2447 3369 2900
2450 __c.2580:
2451 02ef 4E69 636B .string "Nick %4i (%3i)(%3i)"
2451 2025 3469
2451 2028 2533
2451 6929 2825
2451 3369 2900
2454 __c.2578:
2455 0303 5961 7720 .string "Yaw %4i (%3i)"
2455 2025 3469
2455 2028 2533
2455 6929 00
2458 __c.2576:
2459 0312 526F 6C6C .string "Roll %4i (%3i.%x)"
2459 2025 3469
2459 2028 2533
2459 692E 2578
2459 2900
2462 __c.2574:
2463 0324 4E69 636B .string "Nick %4i (%3i.%x)"
2463 2025 3469
2463 2028 2533
2463 692E 2578
2463 2900
2466 __c.2572:
2467 0336 4769 6572 .string "Gier%4i (%3i)"
2467 2534 6920
2467 2825 3369
2467 2900
2470 __c.2570:
2471 0344 526F 6C6C .string "Roll%4i (%3i.%i)"
2471 2534 6920
2471 2825 3369
2471 2E25 6929
2471 00
2474 __c.2568:
2475 0355 4E69 636B .string "Nick%4i (%3i.%i)"
2475 2534 6920
2475 2825 3369
2475 2E25 6929
2475 00
2478 __c.2566:
2479 0366 4779 726F .string "Gyro - Sensor"
2479 202D 2053
2479 656E 736F
2479 7200
2482 __c.2563:
2483 0374 5033 3A25 .string "P3:%4i P4:%4i "
2483 3469 2020
2483 5034 3A25
2483 3469 2000
2486 __c.2561:
2487 0384 5031 3A25 .string "P1:%4i P2:%4i "
2487 3469 2020
2487 5032 3A25
2487 3469 2000
2490 __c.2559:
2491 0394 4773 3A25 .string "Gs:%4i Gi:%4i "
2491 3469 2020
2491 4769 3A25
2491 3469 2000
2494 __c.2557:
2495 03a4 4E69 3A25 .string "Ni:%4i Ro:%4i "
2495 3469 2020
2495 526F 3A25
2495 3469 2000
2498 __c.2554:
2499 03b4 4B37 3A25 .string "K7:%4i K8:%4i "
2499 3469 2020
2499 4B38 3A25
2499 3469 2000
2502 __c.2552:
2503 03c4 4B35 3A25 .string "K5:%4i K6:%4i "
2503 3469 2020
2503 4B36 3A25
2503 3469 2000
2506 __c.2550:
2507 03d4 4B33 3A25 .string "K3:%4i K4:%4i "
2507 3469 2020
2507 4B34 3A25
2507 3469 2000
2510 __c.2548:
2511 03e4 4B31 3A25 .string "K1:%4i K2:%4i "
2511 3469 2020
2511 4B32 3A25
2511 3469 2000
2514 __c.2545:
2515 03f4 436F 6D70 .string "Compass: %5i"
2515 6173 733A
2515 2020 2025
2515 3569 00
2518 __c.2543:
2519 0403 526F 6C6C .string "Roll: %5i"
2519 3A20 2020
2519 2020 2025
2519 3569 00
2522 __c.2541:
2523 0412 4E69 636B .string "Nick: %5i"
2523 3A20 2020
2523 2020 2025
2523 3569 00
2526 __c.2539:
2527 0421 6163 742E .string "act. bearing"
2527 2062 6561
2527 7269 6E67
2527 00
2530 __c.2536:
2531 042e 4449 5341 .string "DISABLED"
2531 424C 4544
2531 00
2534 __c.2534:
2535 0437 4865 6967 .string "Height control"
2535 6874 2063
2535 6F6E 7472
2535 6F6C 00
2538 __c.2532:
2539 0446 4449 5341 .string "DISABLED"
2539 424C 4544
2539 00
2542 __c.2530:
2543 044f 4865 6967 .string "Height control"
2543 6874 2063
2543 6F6E 7472
2543 6F6C 00
2546 __c.2528:
2547 045e 4F66 6673 .string "Offset: %5i"
2547 6574 3A20
2547 2025 3569
2547 00
2550 __c.2526:
2551 046b 5072 6573 .string "Pressure:%5i"
2551 7375 7265
2551 3A25 3569
2551 00
2554 __c.2524:
2555 0478 5365 7470 .string "Setpoint:%5i"
2555 6F69 6E74
2555 3A25 3569
2555 00
2558 __c.2522:
2559 0485 4865 6967 .string "Height: %5i"
2559 6874 3A20
2559 2025 3569
2559 00
2562 __c.2518:
2563 0492 4932 4320 .string "I2C ERROR!!!"
2563 4552 524F
2563 5221 2121
2563 00
2566 __c.2516:
2567 049f 4D69 7865 .string "Mixer Error!"
2567 7220 4572
2567 726F 7221
2567 00
2570 __c.2514:
2571 04ac 4D69 7373 .string "Missing BL-Ctrl:%d!!"
2571 696E 6720
2571 424C 2D43
2571 7472 6C3A
2571 2564 2121
2574 __c.2512:
2575 04c1 4861 7264 .string "Hardware Error 1:%d !!"
2575 7761 7265
2575 2045 7272
2575 6F72 2031
2575 3A25 6420
2578 __c.2510:
2579 04d8 5365 7474 .string "Setting:%d %s"
2579 696E 673A
2579 2564 2025
2579 7300
2582 __c.2508:
2583 04e6 4857 3A56 .string "HW:V%d.%d SW:%d.%d%c"
2583 2564 2E25
2583 6420 5357
2583 3A25 642E
2583 2564 2563
2586 __c.2506:
2587 04fb 2B20 4D69 .string "+ MikroKopter +"
2587 6B72 6F4B
2587 6F70 7465
2587 7220 2B00
2590 __c.2503:
2591 050b 5B25 695D .string "[%i]"
2591 00
2594 __c.2501:
2595 0510 5B25 695D .string "[%i]"
2595 00
2596 /* File "menu.c": code 2582 = 0x0a16 (2569), prologues 6, epilogues 7 */
DEFINED SYMBOLS
*ABS*:00000000 menu.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:12 .text:00000000 LcdClear
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2206 .data:00000000 DisplayBuff
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:31 .text:00000012 Menu_Putchar
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2214 .bss:00000000 DispPtr
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:49 .text:00000028 Menu
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2233 .bss:00000002 RemoteKeys
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2227 .bss:00000001 MenuePunkt
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2220 .data:00000050 MaxMenue
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2594 .progmem.data:00000510 __c.2501
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2590 .progmem.data:0000050b __c.2503
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2586 .progmem.data:000004fb __c.2506
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2582 .progmem.data:000004e6 __c.2508
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2578 .progmem.data:000004d8 __c.2510
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2574 .progmem.data:000004c1 __c.2512
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2570 .progmem.data:000004ac __c.2514
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2566 .progmem.data:0000049f __c.2516
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2562 .progmem.data:00000492 __c.2518
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2558 .progmem.data:00000485 __c.2522
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2554 .progmem.data:00000478 __c.2524
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2550 .progmem.data:0000046b __c.2526
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2546 .progmem.data:0000045e __c.2528
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2542 .progmem.data:0000044f __c.2530
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2538 .progmem.data:00000446 __c.2532
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2534 .progmem.data:00000437 __c.2534
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2530 .progmem.data:0000042e __c.2536
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2526 .progmem.data:00000421 __c.2539
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2522 .progmem.data:00000412 __c.2541
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2518 .progmem.data:00000403 __c.2543
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2514 .progmem.data:000003f4 __c.2545
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2510 .progmem.data:000003e4 __c.2548
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2506 .progmem.data:000003d4 __c.2550
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2502 .progmem.data:000003c4 __c.2552
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2498 .progmem.data:000003b4 __c.2554
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2494 .progmem.data:000003a4 __c.2557
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2490 .progmem.data:00000394 __c.2559
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2486 .progmem.data:00000384 __c.2561
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2482 .progmem.data:00000374 __c.2563
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2478 .progmem.data:00000366 __c.2566
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2474 .progmem.data:00000355 __c.2568
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2470 .progmem.data:00000344 __c.2570
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2466 .progmem.data:00000336 __c.2572
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2462 .progmem.data:00000324 __c.2574
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2458 .progmem.data:00000312 __c.2576
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2454 .progmem.data:00000303 __c.2578
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2450 .progmem.data:000002ef __c.2580
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2446 .progmem.data:000002db __c.2582
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2442 .progmem.data:000002c7 __c.2584
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2438 .progmem.data:000002ba __c.2587
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2434 .progmem.data:000002ab __c.2589
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2430 .progmem.data:0000029c __c.2591
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2426 .progmem.data:0000028d __c.2593
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2422 .progmem.data:00000279 __c.2596
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2418 .progmem.data:00000265 __c.2598
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2414 .progmem.data:00000255 __c.2600
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2410 .progmem.data:00000243 __c.2602
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2406 .progmem.data:0000023a __c.2605
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2402 .progmem.data:0000022a __c.2607
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2398 .progmem.data:0000021a __c.2609
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2394 .progmem.data:0000020a __c.2611
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2390 .progmem.data:00000202 __c.2614
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2386 .progmem.data:000001f4 __c.2616
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2382 .progmem.data:000001e6 __c.2618
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2378 .progmem.data:000001d8 __c.2620
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2374 .progmem.data:000001cc __c.2623
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2370 .progmem.data:000001c0 __c.2625
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2366 .progmem.data:000001b4 __c.2627
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2362 .progmem.data:000001a8 __c.2629
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2358 .progmem.data:0000019c __c.2632
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2354 .progmem.data:00000190 __c.2634
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2350 .progmem.data:00000184 __c.2636
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2346 .progmem.data:00000178 __c.2638
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2342 .progmem.data:00000170 __c.2641
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2338 .progmem.data:00000162 __c.2643
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2334 .progmem.data:00000154 __c.2645
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2330 .progmem.data:00000146 __c.2647
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2326 .progmem.data:00000136 __c.2650
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2322 .progmem.data:00000126 __c.2652
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2318 .progmem.data:00000116 __c.2654
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2314 .progmem.data:00000106 __c.2656
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2310 .progmem.data:000000f6 __c.2659
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2306 .progmem.data:000000e5 __c.2661
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2302 .progmem.data:000000d4 __c.2663
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2298 .progmem.data:000000c3 __c.2665
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2294 .progmem.data:000000b4 __c.2668
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2290 .progmem.data:000000a3 __c.2670
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2286 .progmem.data:00000092 __c.2672
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2282 .progmem.data:00000081 __c.2674
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2278 .progmem.data:00000072 __c.2677
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2274 .progmem.data:0000005e __c.2679
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2270 .progmem.data:0000004a __c.2681
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2266 .progmem.data:00000039 __c.2683
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2262 .progmem.data:00000036 __c.2685
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2258 .progmem.data:00000033 __c.2687
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2254 .progmem.data:00000030 __c.2689
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2250 .progmem.data:00000022 __c.2692
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2246 .progmem.data:00000015 __c.2694
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2242 .progmem.data:00000008 __c.2696
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccgZSiDw.s:2238 .progmem.data:00000000 __c.2698
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__prologue_saves__
_printf_P
__tablejump2__
PlatinenVersion
__udivmodqi4
GetActiveParamSet
Mixer
VersionInfo
MissingMotor
I2CTimeout
EE_Parameter
HoehenWert
__divmodsi4
SollHoehe
MessLuftdruck
IntegralNick
IntegralRoll
KompassValue
PPM_in
AdNeutralNick
__divmodhi4
AdWertNick
AdNeutralRoll
AdWertRoll
AdNeutralGier
AdWertGier
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
NeutralAccX
AdWertAccNick
NeutralAccY
AdWertAccRoll
NeutralAccZ
AdWertAccHoch
UBat
Capacity
__udivmodhi4
SenderOkay
Channels
KompassRichtung
KompassStartwert
Poti
Parameter_ServoNickControl
ServoNickValue
ExternControl
Motor
FlugMinutenGesamt
FlugMinuten
SetParamWord
__epilogue_restores__
/Spektrum-Diversity/V0.82a/mymath.c
0,0 → 1,41
#include <stdlib.h>
#include <avr/pgmspace.h>
#include "mymath.h"
 
// discrete mathematics
 
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192};
 
int16_t c_sin_8192(int16_t angle)
{
int8_t m,n;
int16_t sinus;
 
// avoid negative angles
if (angle < 0)
{
m = -1;
angle = abs(angle);
}
else m = +1;
 
// fold angle to intervall 0 to 359
angle %= 360;
 
// check quadrant
if (angle <= 90) n=1; // first quadrant
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant
else {angle = 360 - angle; n = -1;} //fourth quadrant
// get lookup value
sinus = pgm_read_word(&pgm_sinlookup[angle]);
// calculate sinus value
return (sinus * m * n);
}
 
// Cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
int16_t c_cos_8192(int16_t angle)
{
return (c_sin_8192(90 - angle));
}
/Spektrum-Diversity/V0.82a/mymath.d
0,0 → 1,0
mymath.o mymath.d : mymath.c mymath.h
/Spektrum-Diversity/V0.82a/mymath.h
0,0 → 1,10
#ifndef _MYMATH_H
#define _MYMATH_H
 
#include <inttypes.h>
 
extern int16_t c_sin_8192(int16_t angle);
extern int16_t c_cos_8192(int16_t angle);
extern int16_t c_atan2(int16_t y, int16_t x);
extern uint32_t c_sqrt(uint32_t a);
#endif // _MYMATH_H
/Spektrum-Diversity/V0.82a/mymath.lst
0,0 → 1,222
1 .file "mymath.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global c_sin_8192
12 c_sin_8192:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 97FD sbrc r25,7
16 0002 00C0 rjmp .L2
17 0004 41E0 ldi r20,lo8(1)
18 0006 00C0 rjmp .L4
19 .L2:
20 0008 9095 com r25
21 000a 8195 neg r24
22 000c 9F4F sbci r25,lo8(-1)
23 000e 4FEF ldi r20,lo8(-1)
24 .L4:
25 0010 68E6 ldi r22,lo8(360)
26 0012 71E0 ldi r23,hi8(360)
27 0014 0E94 0000 call __divmodhi4
28 0018 FC01 movw r30,r24
29 001a 8B35 cpi r24,91
30 001c 9105 cpc r25,__zero_reg__
31 001e 04F0 brlt .L13
32 0020 8B55 subi r24,lo8(-(-91))
33 0022 9040 sbci r25,hi8(-(-91))
34 0024 8A35 cpi r24,90
35 0026 9105 cpc r25,__zero_reg__
36 0028 00F4 brsh .L8
37 002a 84EB ldi r24,lo8(180)
38 002c 90E0 ldi r25,hi8(180)
39 002e 8E1B sub r24,r30
40 0030 9F0B sbc r25,r31
41 0032 FC01 movw r30,r24
42 .L13:
43 0034 81E0 ldi r24,lo8(1)
44 0036 00C0 rjmp .L7
45 .L8:
46 0038 CF01 movw r24,r30
47 003a 855B subi r24,lo8(-(-181))
48 003c 9040 sbci r25,hi8(-(-181))
49 003e 8A35 cpi r24,90
50 0040 9105 cpc r25,__zero_reg__
51 0042 00F4 brsh .L10
52 0044 E45B subi r30,lo8(-(-180))
53 0046 F040 sbci r31,hi8(-(-180))
54 0048 00C0 rjmp .L14
55 .L10:
56 004a 88E6 ldi r24,lo8(360)
57 004c 91E0 ldi r25,hi8(360)
58 004e 8E1B sub r24,r30
59 0050 9F0B sbc r25,r31
60 0052 FC01 movw r30,r24
61 .L14:
62 0054 8FEF ldi r24,lo8(-1)
63 .L7:
64 0056 EE0F lsl r30
65 0058 FF1F rol r31
66 005a E050 subi r30,lo8(-(pgm_sinlookup))
67 005c F040 sbci r31,hi8(-(pgm_sinlookup))
68 /* #APP */
69 005e 2591 lpm r18, Z+
70 0060 3491 lpm r19, Z
71
72 /* #NOAPP */
73 0062 9927 clr r25
74 0064 87FD sbrc r24,7
75 0066 9095 com r25
76 0068 B901 movw r22,r18
77 006a 689F mul r22,r24
78 006c 9001 movw r18,r0
79 006e 699F mul r22,r25
80 0070 300D add r19,r0
81 0072 789F mul r23,r24
82 0074 300D add r19,r0
83 0076 1124 clr r1
84 0078 842F mov r24,r20
85 007a 9927 clr r25
86 007c 87FD sbrc r24,7
87 007e 9095 com r25
88 0080 AC01 movw r20,r24
89 0082 249F mul r18,r20
90 0084 C001 movw r24,r0
91 0086 259F mul r18,r21
92 0088 900D add r25,r0
93 008a 349F mul r19,r20
94 008c 900D add r25,r0
95 008e 1124 clr r1
96 /* epilogue: frame size=0 */
97 0090 0895 ret
98 /* epilogue end (size=1) */
99 /* function c_sin_8192 size 77 (76) */
101 .global c_cos_8192
103 c_cos_8192:
104 /* prologue: frame size=0 */
105 /* prologue end (size=0) */
106 0092 2AE5 ldi r18,lo8(90)
107 0094 30E0 ldi r19,hi8(90)
108 0096 281B sub r18,r24
109 0098 390B sbc r19,r25
110 009a C901 movw r24,r18
111 009c 0E94 0000 call c_sin_8192
112 /* epilogue: frame size=0 */
113 00a0 0895 ret
114 /* epilogue end (size=1) */
115 /* function c_cos_8192 size 8 (7) */
117 .global pgm_sinlookup
118 .section .progmem.data,"a",@progbits
121 pgm_sinlookup:
122 0000 0000 .word 0
123 0002 8F00 .word 143
124 0004 1E01 .word 286
125 0006 AD01 .word 429
126 0008 3B02 .word 571
127 000a CA02 .word 714
128 000c 5803 .word 856
129 000e E603 .word 998
130 0010 7404 .word 1140
131 0012 0205 .word 1282
132 0014 8F05 .word 1423
133 0016 1B06 .word 1563
134 0018 A706 .word 1703
135 001a 3307 .word 1843
136 001c BE07 .word 1982
137 001e 4808 .word 2120
138 0020 D208 .word 2258
139 0022 5B09 .word 2395
140 0024 E309 .word 2531
141 0026 6B0A .word 2667
142 0028 F20A .word 2802
143 002a 780B .word 2936
144 002c FD0B .word 3069
145 002e 810C .word 3201
146 0030 040D .word 3332
147 0032 860D .word 3462
148 0034 070E .word 3591
149 0036 870E .word 3719
150 0038 060F .word 3846
151 003a 840F .word 3972
152 003c 0010 .word 4096
153 003e 7B10 .word 4219
154 0040 F510 .word 4341
155 0042 6E11 .word 4462
156 0044 E511 .word 4581
157 0046 5B12 .word 4699
158 0048 CF12 .word 4815
159 004a 4213 .word 4930
160 004c B313 .word 5043
161 004e 2314 .word 5155
162 0050 9214 .word 5266
163 0052 FE14 .word 5374
164 0054 6A15 .word 5482
165 0056 D315 .word 5587
166 0058 3B16 .word 5691
167 005a A116 .word 5793
168 005c 0517 .word 5893
169 005e 6717 .word 5991
170 0060 C817 .word 6088
171 0062 2718 .word 6183
172 0064 8318 .word 6275
173 0066 DE18 .word 6366
174 0068 3719 .word 6455
175 006a 8E19 .word 6542
176 006c E319 .word 6627
177 006e 361A .word 6710
178 0070 871A .word 6791
179 0072 D61A .word 6870
180 0074 231B .word 6947
181 0076 6E1B .word 7022
182 0078 B61B .word 7094
183 007a FD1B .word 7165
184 007c 411C .word 7233
185 007e 831C .word 7299
186 0080 C31C .word 7363
187 0082 001D .word 7424
188 0084 3C1D .word 7484
189 0086 751D .word 7541
190 0088 AB1D .word 7595
191 008a E01D .word 7648
192 008c 121E .word 7698
193 008e 421E .word 7746
194 0090 6F1E .word 7791
195 0092 9A1E .word 7834
196 0094 C31E .word 7875
197 0096 E91E .word 7913
198 0098 0D1F .word 7949
199 009a 2E1F .word 7982
200 009c 4D1F .word 8013
201 009e 691F .word 8041
202 00a0 841F .word 8068
203 00a2 9B1F .word 8091
204 00a4 B01F .word 8112
205 00a6 C31F .word 8131
206 00a8 D31F .word 8147
207 00aa E11F .word 8161
208 00ac EC1F .word 8172
209 00ae F51F .word 8181
210 00b0 FB1F .word 8187
211 00b2 FF1F .word 8191
212 00b4 0020 .word 8192
213 /* File "mymath.c": code 85 = 0x0055 ( 83), prologues 0, epilogues 2 */
DEFINED SYMBOLS
*ABS*:00000000 mymath.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:12 .text:00000000 c_sin_8192
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:121 .progmem.data:00000000 pgm_sinlookup
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccfYxgU3.s:103 .text:00000092 c_cos_8192
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__divmodhi4
/Spektrum-Diversity/V0.82a/old_macros.h
0,0 → 1,47
/*
For backwards compatibility only.
Ingo Busker ingo@mikrocontroller.com
*/
 
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
 
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
 
#ifndef inb
#define inb(sfr) _SFR_BYTE(sfr)
#endif
 
#ifndef outb
#define outb(sfr, val) (_SFR_BYTE(sfr) = (val))
#endif
 
#ifndef inw
#define inw(sfr) _SFR_WORD(sfr)
#endif
 
#ifndef outw
#define outw(sfr, val) (_SFR_WORD(sfr) = (val))
#endif
 
#ifndef outp
#define outp(val, sfr) outb(sfr, val)
#endif
 
#ifndef inp
#define inp(sfr) inb(sfr)
#endif
 
#ifndef BV
#define BV(bit) _BV(bit)
#endif
 
 
#ifndef PRG_RDB
#define PRG_RDB pgm_read_byte
#endif
 
/Spektrum-Diversity/V0.82a/printf_P.h
0,0 → 1,69
// Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist nicht von der Lizenz für den MikroKopter-Teil unterstellt
 
/*
Copyright (C) 1993 Free Software Foundation
 
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
 
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
 
/*
* Copyright (c) 1990 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. [rescinded 22 July 1999]
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
 
/******************************************************************************/
#ifndef _PRINTF_P_H_
#define _PRINTF_P_H_
 
#include <avr/pgmspace.h>
 
// function pointer to external callback function
typedef void (*pVoidFnctChar) (char );
typedef void (*pVoidFnct_pVoidFnctChar_const_fmt) (pVoidFnctChar, char const *fmt0, ...);
extern pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
 
 
#endif //_PRINTF_P_H_
/Spektrum-Diversity/V0.82a/rc.c
0,0 → 1,217
/*#######################################################################################
Decodieren eines RC Summen Signals
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "rc.h"
#include "main.h"
// Achtung: ACT_S3D_SUMMENSIGNAL wird in der Main.h gesetzt
 
volatile int PPM_in[26];
volatile int PPM_diff[26]; // das diffenzierte Stick-Signal
volatile char Channels,tmpChannels = 0;
volatile unsigned char NewPpmData = 1;
 
//############################################################################
//zum decodieren des PPM-Signals wird Timer1 mit seiner Input
//Capture Funktion benutzt:
void rc_sum_init (void)
//############################################################################
{
unsigned char i;
for(i=0;i<26;i++)
{
PPM_in[i] = 0;
PPM_diff[i] = 0;
}
 
AdNeutralGier = 0;
AdNeutralRoll = 0;
AdNeutralNick = 0;
return;
}
 
#ifndef ACT_S3D_SUMMENSIGNAL
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
ISR(TIMER1_CAPT_vect)
//############################################################################
{
if(!(EE_Parameter.ExtraConfig & CFG_SENSITIVE_RC))
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
Channels = index;
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687))
{
signal -= 466;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10; else SenderOkay = 200;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
}
index++;
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
}
}
}
else
{
static unsigned int AltICR=0;
static int ppm_in[13];
static int ppm_diff[13];
static int old_ppm_in[13];
static int old_ppm_diff[13];
signed int signal = 0,tmp;
static unsigned char index, okay_cnt = 0;
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
tmpChannels = index;
if(tmpChannels >= 4 && Channels == tmpChannels)
{
if(okay_cnt > 10)
{
NewPpmData = 0; // Null bedeutet: Neue Daten
for(index = 0; index < 13; index++)
{
if(okay_cnt > 30)
{
old_ppm_in[index] = PPM_in[index];
old_ppm_diff[index] = PPM_diff[index];
}
PPM_in[index] = ppm_in[index];
PPM_diff[index] = ppm_diff[index];
}
}
if(okay_cnt < 255) okay_cnt++;
}
else
{
if(okay_cnt > 100) okay_cnt = 10; else okay_cnt = 0;
ROT_ON;
}
index = 1;
if(!MotorenEin) Channels = tmpChannels;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687))
{
signal -= 466;
// Stabiles Signal
if((abs(signal - ppm_in[index]) < 6))
{
if(okay_cnt > 25) SenderOkay += 10;
else
if(okay_cnt > 10) SenderOkay += 2;
if(SenderOkay > 200) SenderOkay = 200;
}
tmp = (3 * (ppm_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 190) ppm_diff[index] = ((tmp - ppm_in[index]) / 3) * 3;
else ppm_diff[index] = 0;
ppm_in[index] = tmp;
}
else ROT_ON;
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
}
if(index < 20) index++;
else
if(index == 20)
{
unsigned char i;
ROT_ON;
index = 30;
for(i=0;i<13;i++) // restore from older data
{
PPM_in[i] = old_ppm_in[i];
PPM_diff[i] = 0;
// okay_cnt /= 2;
}
}
}
}
}
 
#else
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
ISR(TIMER1_CAPT_vect)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
signal /= 2;
AltICR = ICR1;
//Syncronisationspause?
if((signal > 1100*2) && (signal < 8000*2))
{
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687*2))
{
signal -= 962;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
}
index++;
}
}
}
#endif
 
/Spektrum-Diversity/V0.82a/rc.d
0,0 → 1,3
rc.o rc.d : rc.c rc.h main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/rc.h
0,0 → 1,31
/*#######################################################################################
Derkodieren eines RC Summen Signals
#######################################################################################*/
 
#ifndef _RC_H
#define _RC_H
 
#if defined (__AVR_ATmega32__)
#define TIMER_TEILER CK64
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644P__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#define GAS PPM_in[2]
 
 
extern void rc_sum_init (void);
 
extern volatile int PPM_in[26];
extern volatile int PPM_diff[26]; // das diffenzierte Stick-Signal
extern volatile unsigned char NewPpmData;
extern volatile char Channels,tmpChannels;
 
#endif //_RC_H
/Spektrum-Diversity/V0.82a/rc.lst
0,0 → 1,654
1 .file "rc.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global rc_sum_init
12 rc_sum_init:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 80E0 ldi r24,lo8(0)
16 0002 90E0 ldi r25,hi8(0)
17 .L2:
18 0004 FC01 movw r30,r24
19 0006 EE0F lsl r30
20 0008 FF1F rol r31
21 000a DF01 movw r26,r30
22 000c A050 subi r26,lo8(-(PPM_in))
23 000e B040 sbci r27,hi8(-(PPM_in))
24 0010 1196 adiw r26,1
25 0012 1C92 st X,__zero_reg__
26 0014 1E92 st -X,__zero_reg__
27 0016 E050 subi r30,lo8(-(PPM_diff))
28 0018 F040 sbci r31,hi8(-(PPM_diff))
29 001a 1182 std Z+1,__zero_reg__
30 001c 1082 st Z,__zero_reg__
31 001e 0196 adiw r24,1
32 0020 8A31 cpi r24,26
33 0022 9105 cpc r25,__zero_reg__
34 0024 01F4 brne .L2
35 0026 1092 0000 sts (AdNeutralGier)+1,__zero_reg__
36 002a 1092 0000 sts AdNeutralGier,__zero_reg__
37 002e 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__
38 0032 1092 0000 sts AdNeutralRoll,__zero_reg__
39 0036 1092 0000 sts (AdNeutralNick)+1,__zero_reg__
40 003a 1092 0000 sts AdNeutralNick,__zero_reg__
41 /* epilogue: frame size=0 */
42 003e 0895 ret
43 /* epilogue end (size=1) */
44 /* function rc_sum_init size 32 (31) */
46 .global __vector_12
48 __vector_12:
49 /* prologue: frame size=0 */
50 0040 1F92 push __zero_reg__
51 0042 0F92 push __tmp_reg__
52 0044 0FB6 in __tmp_reg__,__SREG__
53 0046 0F92 push __tmp_reg__
54 0048 1124 clr __zero_reg__
55 004a 0F93 push r16
56 004c 1F93 push r17
57 004e 2F93 push r18
58 0050 3F93 push r19
59 0052 4F93 push r20
60 0054 5F93 push r21
61 0056 6F93 push r22
62 0058 7F93 push r23
63 005a 8F93 push r24
64 005c 9F93 push r25
65 005e AF93 push r26
66 0060 BF93 push r27
67 0062 CF93 push r28
68 0064 DF93 push r29
69 0066 EF93 push r30
70 0068 FF93 push r31
71 /* prologue end (size=21) */
72 006a 8091 0000 lds r24,EE_Parameter+102
73 006e 82FD sbrc r24,2
74 0070 00C0 rjmp .L8
75 0072 2091 8600 lds r18,134
76 0076 3091 8700 lds r19,(134)+1
77 007a 8091 0000 lds r24,AltICR.2497
78 007e 9091 0000 lds r25,(AltICR.2497)+1
79 0082 281B sub r18,r24
80 0084 390B sbc r19,r25
81 0086 8091 8600 lds r24,134
82 008a 9091 8700 lds r25,(134)+1
83 008e 9093 0000 sts (AltICR.2497)+1,r25
84 0092 8093 0000 sts AltICR.2497,r24
85 0096 C901 movw r24,r18
86 0098 8D54 subi r24,lo8(-(-1101))
87 009a 9440 sbci r25,hi8(-(-1101))
88 009c 0091 0000 lds r16,index.2500
89 00a0 1091 0000 lds r17,(index.2500)+1
90 00a4 835F subi r24,lo8(6899)
91 00a6 9A41 sbci r25,hi8(6899)
92 00a8 00F4 brsh .L10
93 00aa 0093 0000 sts Channels,r16
94 00ae 0430 cpi r16,4
95 00b0 1105 cpc r17,__zero_reg__
96 00b2 04F0 brlt .L12
97 00b4 1092 0000 sts NewPpmData,__zero_reg__
98 .L12:
99 00b8 81E0 ldi r24,lo8(1)
100 00ba 90E0 ldi r25,hi8(1)
101 00bc 9093 0000 sts (index.2500)+1,r25
102 00c0 8093 0000 sts index.2500,r24
103 00c4 00C0 rjmp .L94
104 .L10:
105 00c6 0D30 cpi r16,13
106 00c8 1105 cpc r17,__zero_reg__
107 00ca 04F0 brlt .+2
108 00cc 00C0 rjmp .L94
109 00ce C901 movw r24,r18
110 00d0 8B5F subi r24,lo8(-(-251))
111 00d2 9040 sbci r25,hi8(-(-251))
112 00d4 845B subi r24,lo8(436)
113 00d6 9140 sbci r25,hi8(436)
114 00d8 00F0 brlo .+2
115 00da 00C0 rjmp .L16
116 00dc E901 movw r28,r18
117 00de C25D subi r28,lo8(-(-466))
118 00e0 D140 sbci r29,hi8(-(-466))
119 00e2 F801 movw r30,r16
120 00e4 EE0F lsl r30
121 00e6 FF1F rol r31
122 00e8 E050 subi r30,lo8(-(PPM_in))
123 00ea F040 sbci r31,hi8(-(PPM_in))
124 00ec 8081 ld r24,Z
125 00ee 9181 ldd r25,Z+1
126 00f0 FE01 movw r30,r28
127 00f2 E81B sub r30,r24
128 00f4 F90B sbc r31,r25
129 00f6 CF01 movw r24,r30
130 00f8 F7FF sbrs r31,7
131 00fa 00C0 rjmp .L19
132 00fc 9095 com r25
133 00fe 8195 neg r24
134 0100 9F4F sbci r25,lo8(-1)
135 .L19:
136 0102 0697 sbiw r24,6
137 0104 04F4 brge .L18
138 0106 8091 0000 lds r24,SenderOkay
139 010a 883C cpi r24,lo8(-56)
140 010c 00F4 brsh .L21
141 010e 8091 0000 lds r24,SenderOkay
142 0112 865F subi r24,lo8(-(10))
143 0114 00C0 rjmp .L96
144 .L21:
145 0116 88EC ldi r24,lo8(-56)
146 .L96:
147 0118 8093 0000 sts SenderOkay,r24
148 .L18:
149 011c F801 movw r30,r16
150 011e EE0F lsl r30
151 0120 FF1F rol r31
152 0122 E050 subi r30,lo8(-(PPM_in))
153 0124 F040 sbci r31,hi8(-(PPM_in))
154 0126 2081 ld r18,Z
155 0128 3181 ldd r19,Z+1
156 012a C901 movw r24,r18
157 012c 880F lsl r24
158 012e 991F rol r25
159 0130 820F add r24,r18
160 0132 931F adc r25,r19
161 0134 8C0F add r24,r28
162 0136 9D1F adc r25,r29
163 0138 64E0 ldi r22,lo8(4)
164 013a 70E0 ldi r23,hi8(4)
165 013c 0E94 0000 call __divmodhi4
166 0140 9B01 movw r18,r22
167 0142 CE01 movw r24,r28
168 0144 0196 adiw r24,1
169 0146 8617 cp r24,r22
170 0148 9707 cpc r25,r23
171 014a 04F4 brge .L23
172 014c 2150 subi r18,lo8(-(-1))
173 014e 3040 sbci r19,hi8(-(-1))
174 0150 00C0 rjmp .L25
175 .L23:
176 0152 2197 sbiw r28,1
177 0154 6C17 cp r22,r28
178 0156 7D07 cpc r23,r29
179 0158 04F4 brge .L25
180 015a 2F5F subi r18,lo8(-(1))
181 015c 3F4F sbci r19,hi8(-(1))
182 .L25:
183 015e 8091 0000 lds r24,SenderOkay
184 0162 E801 movw r28,r16
185 0164 CC0F lsl r28
186 0166 DD1F rol r29
187 0168 833C cpi r24,lo8(-61)
188 016a 00F0 brlo .L27
189 016c FE01 movw r30,r28
190 016e E050 subi r30,lo8(-(PPM_in))
191 0170 F040 sbci r31,hi8(-(PPM_in))
192 0172 8081 ld r24,Z
193 0174 9181 ldd r25,Z+1
194 0176 A901 movw r20,r18
195 0178 481B sub r20,r24
196 017a 590B sbc r21,r25
197 017c CA01 movw r24,r20
198 017e 63E0 ldi r22,lo8(3)
199 0180 70E0 ldi r23,hi8(3)
200 0182 0E94 0000 call __divmodhi4
201 0186 CB01 movw r24,r22
202 0188 880F lsl r24
203 018a 991F rol r25
204 018c 860F add r24,r22
205 018e 971F adc r25,r23
206 0190 C050 subi r28,lo8(-(PPM_diff))
207 0192 D040 sbci r29,hi8(-(PPM_diff))
208 0194 9983 std Y+1,r25
209 0196 8883 st Y,r24
210 0198 00C0 rjmp .L29
211 .L27:
212 019a C050 subi r28,lo8(-(PPM_diff))
213 019c D040 sbci r29,hi8(-(PPM_diff))
214 019e 1982 std Y+1,__zero_reg__
215 01a0 1882 st Y,__zero_reg__
216 .L29:
217 01a2 F801 movw r30,r16
218 01a4 EE0F lsl r30
219 01a6 FF1F rol r31
220 01a8 E050 subi r30,lo8(-(PPM_in))
221 01aa F040 sbci r31,hi8(-(PPM_in))
222 01ac 3183 std Z+1,r19
223 01ae 2083 st Z,r18
224 .L16:
225 01b0 F801 movw r30,r16
226 01b2 3196 adiw r30,1
227 01b4 F093 0000 sts (index.2500)+1,r31
228 01b8 E093 0000 sts index.2500,r30
229 01bc 8091 0000 lds r24,PlatinenVersion
230 01c0 8431 cpi r24,lo8(20)
231 01c2 00F0 brlo .+2
232 01c4 00C0 rjmp .L94
233 01c6 E530 cpi r30,5
234 01c8 F105 cpc r31,__zero_reg__
235 01ca 01F4 brne .L31
236 01cc 5D9A sbi 43-0x20,5
237 01ce 00C0 rjmp .L33
238 .L31:
239 01d0 5D98 cbi 43-0x20,5
240 01d2 E630 cpi r30,6
241 01d4 F105 cpc r31,__zero_reg__
242 01d6 01F4 brne .L33
243 01d8 5C9A sbi 43-0x20,4
244 01da 00C0 rjmp .L35
245 .L33:
246 01dc 5C98 cbi 43-0x20,4
247 01de 3797 sbiw r30,7
248 01e0 01F4 brne .L35
249 01e2 5B9A sbi 43-0x20,3
250 01e4 00C0 rjmp .L94
251 .L35:
252 01e6 5B98 cbi 43-0x20,3
253 01e8 00C0 rjmp .L94
254 .L8:
255 01ea 2091 8600 lds r18,134
256 01ee 3091 8700 lds r19,(134)+1
257 01f2 8091 0000 lds r24,AltICR.2501
258 01f6 9091 0000 lds r25,(AltICR.2501)+1
259 01fa 281B sub r18,r24
260 01fc 390B sbc r19,r25
261 01fe 8091 8600 lds r24,134
262 0202 9091 8700 lds r25,(134)+1
263 0206 9093 0000 sts (AltICR.2501)+1,r25
264 020a 8093 0000 sts AltICR.2501,r24
265 020e C901 movw r24,r18
266 0210 8D54 subi r24,lo8(-(-1101))
267 0212 9440 sbci r25,hi8(-(-1101))
268 0214 4091 0000 lds r20,index.2508
269 0218 835F subi r24,lo8(6899)
270 021a 9A41 sbci r25,hi8(6899)
271 021c 00F0 brlo .+2
272 021e 00C0 rjmp .L37
273 0220 4093 0000 sts tmpChannels,r20
274 0224 8091 0000 lds r24,tmpChannels
275 0228 8430 cpi r24,lo8(4)
276 022a 00F4 brsh .+2
277 022c 00C0 rjmp .L39
278 022e 9091 0000 lds r25,Channels
279 0232 8091 0000 lds r24,tmpChannels
280 0236 9817 cp r25,r24
281 0238 01F0 breq .+2
282 023a 00C0 rjmp .L39
283 023c 2091 0000 lds r18,okay_cnt.2509
284 0240 2B30 cpi r18,lo8(11)
285 0242 00F0 brlo .L42
286 0244 1092 0000 sts NewPpmData,__zero_reg__
287 0248 30E0 ldi r19,lo8(0)
288 024a 00C0 rjmp .L44
289 .L45:
290 024c 2F31 cpi r18,lo8(31)
291 024e 00F0 brlo .L46
292 0250 E32F mov r30,r19
293 0252 F0E0 ldi r31,lo8(0)
294 0254 EE0F lsl r30
295 0256 FF1F rol r31
296 0258 DF01 movw r26,r30
297 025a A050 subi r26,lo8(-(PPM_in))
298 025c B040 sbci r27,hi8(-(PPM_in))
299 025e 8D91 ld r24,X+
300 0260 9C91 ld r25,X
301 0262 DF01 movw r26,r30
302 0264 A050 subi r26,lo8(-(old_ppm_in.2504))
303 0266 B040 sbci r27,hi8(-(old_ppm_in.2504))
304 0268 8D93 st X+,r24
305 026a 9C93 st X,r25
306 026c DF01 movw r26,r30
307 026e A050 subi r26,lo8(-(PPM_diff))
308 0270 B040 sbci r27,hi8(-(PPM_diff))
309 0272 8D91 ld r24,X+
310 0274 9C91 ld r25,X
311 0276 E050 subi r30,lo8(-(old_ppm_diff.2505))
312 0278 F040 sbci r31,hi8(-(old_ppm_diff.2505))
313 027a 9183 std Z+1,r25
314 027c 8083 st Z,r24
315 .L46:
316 027e E32F mov r30,r19
317 0280 F0E0 ldi r31,lo8(0)
318 0282 EE0F lsl r30
319 0284 FF1F rol r31
320 0286 DF01 movw r26,r30
321 0288 A050 subi r26,lo8(-(ppm_in.2502))
322 028a B040 sbci r27,hi8(-(ppm_in.2502))
323 028c 8D91 ld r24,X+
324 028e 9C91 ld r25,X
325 0290 DF01 movw r26,r30
326 0292 A050 subi r26,lo8(-(PPM_in))
327 0294 B040 sbci r27,hi8(-(PPM_in))
328 0296 1196 adiw r26,1
329 0298 9C93 st X,r25
330 029a 8E93 st -X,r24
331 029c DF01 movw r26,r30
332 029e A050 subi r26,lo8(-(ppm_diff.2503))
333 02a0 B040 sbci r27,hi8(-(ppm_diff.2503))
334 02a2 8D91 ld r24,X+
335 02a4 9C91 ld r25,X
336 02a6 E050 subi r30,lo8(-(PPM_diff))
337 02a8 F040 sbci r31,hi8(-(PPM_diff))
338 02aa 9183 std Z+1,r25
339 02ac 8083 st Z,r24
340 02ae 3F5F subi r19,lo8(-(1))
341 .L44:
342 02b0 3D30 cpi r19,lo8(13)
343 02b2 00F0 brlo .L45
344 02b4 3093 0000 sts index.2508,r19
345 02b8 2F3F cpi r18,lo8(-1)
346 02ba 01F0 breq .L49
347 .L42:
348 02bc 2F5F subi r18,lo8(-(1))
349 02be 2093 0000 sts okay_cnt.2509,r18
350 02c2 00C0 rjmp .L49
351 .L39:
352 02c4 8091 0000 lds r24,okay_cnt.2509
353 02c8 8536 cpi r24,lo8(101)
354 02ca 00F0 brlo .L50
355 02cc 8AE0 ldi r24,lo8(10)
356 02ce 8093 0000 sts okay_cnt.2509,r24
357 02d2 00C0 rjmp .L52
358 .L50:
359 02d4 1092 0000 sts okay_cnt.2509,__zero_reg__
360 .L52:
361 02d8 8091 0000 lds r24,PlatinenVersion
362 02dc 8A30 cpi r24,lo8(10)
363 02de 01F0 breq .L53
364 02e0 8431 cpi r24,lo8(20)
365 02e2 00F0 brlo .L55
366 .L53:
367 02e4 289A sbi 37-0x20,0
368 02e6 00C0 rjmp .L49
369 .L55:
370 02e8 2898 cbi 37-0x20,0
371 .L49:
372 02ea 81E0 ldi r24,lo8(1)
373 02ec 8093 0000 sts index.2508,r24
374 02f0 8091 0000 lds r24,MotorenEin
375 02f4 8823 tst r24
376 02f6 01F0 breq .+2
377 02f8 00C0 rjmp .L94
378 02fa 8091 0000 lds r24,tmpChannels
379 02fe 8093 0000 sts Channels,r24
380 0302 00C0 rjmp .L94
381 .L37:
382 0304 4D30 cpi r20,lo8(13)
383 0306 00F0 brlo .+2
384 0308 00C0 rjmp .L57
385 030a C901 movw r24,r18
386 030c 8B5F subi r24,lo8(-(-251))
387 030e 9040 sbci r25,hi8(-(-251))
388 0310 845B subi r24,lo8(436)
389 0312 9140 sbci r25,hi8(436)
390 0314 00F0 brlo .+2
391 0316 00C0 rjmp .L59
392 0318 E901 movw r28,r18
393 031a C25D subi r28,lo8(-(-466))
394 031c D140 sbci r29,hi8(-(-466))
395 031e 042F mov r16,r20
396 0320 10E0 ldi r17,lo8(0)
397 0322 F801 movw r30,r16
398 0324 EE0F lsl r30
399 0326 FF1F rol r31
400 0328 E050 subi r30,lo8(-(ppm_in.2502))
401 032a F040 sbci r31,hi8(-(ppm_in.2502))
402 032c 0190 ld __tmp_reg__,Z+
403 032e F081 ld r31,Z
404 0330 E02D mov r30,__tmp_reg__
405 0332 CE01 movw r24,r28
406 0334 8E1B sub r24,r30
407 0336 9F0B sbc r25,r31
408 0338 0596 adiw r24,5
409 033a 0B97 sbiw r24,11
410 033c 00F4 brsh .L61
411 033e 8091 0000 lds r24,okay_cnt.2509
412 0342 8A31 cpi r24,lo8(26)
413 0344 00F0 brlo .L63
414 0346 8091 0000 lds r24,SenderOkay
415 034a 865F subi r24,lo8(-(10))
416 034c 00C0 rjmp .L97
417 .L63:
418 034e 8B30 cpi r24,lo8(11)
419 0350 00F0 brlo .L65
420 0352 8091 0000 lds r24,SenderOkay
421 0356 8E5F subi r24,lo8(-(2))
422 .L97:
423 0358 8093 0000 sts SenderOkay,r24
424 .L65:
425 035c 8091 0000 lds r24,SenderOkay
426 0360 893C cpi r24,lo8(-55)
427 0362 00F0 brlo .L61
428 0364 88EC ldi r24,lo8(-56)
429 0366 8093 0000 sts SenderOkay,r24
430 .L61:
431 036a CF01 movw r24,r30
432 036c 880F lsl r24
433 036e 991F rol r25
434 0370 8E0F add r24,r30
435 0372 9F1F adc r25,r31
436 0374 8C0F add r24,r28
437 0376 9D1F adc r25,r29
438 0378 64E0 ldi r22,lo8(4)
439 037a 70E0 ldi r23,hi8(4)
440 037c 0E94 0000 call __divmodhi4
441 0380 9B01 movw r18,r22
442 0382 CE01 movw r24,r28
443 0384 0196 adiw r24,1
444 0386 8617 cp r24,r22
445 0388 9707 cpc r25,r23
446 038a 04F4 brge .L68
447 038c 2150 subi r18,lo8(-(-1))
448 038e 3040 sbci r19,hi8(-(-1))
449 0390 00C0 rjmp .L70
450 .L68:
451 0392 2197 sbiw r28,1
452 0394 6C17 cp r22,r28
453 0396 7D07 cpc r23,r29
454 0398 04F4 brge .L70
455 039a 2F5F subi r18,lo8(-(1))
456 039c 3F4F sbci r19,hi8(-(1))
457 .L70:
458 039e 8091 0000 lds r24,SenderOkay
459 03a2 E801 movw r28,r16
460 03a4 CC0F lsl r28
461 03a6 DD1F rol r29
462 03a8 8E3B cpi r24,lo8(-66)
463 03aa 00F0 brlo .L72
464 03ac C050 subi r28,lo8(-(ppm_diff.2503))
465 03ae D040 sbci r29,hi8(-(ppm_diff.2503))
466 03b0 C901 movw r24,r18
467 03b2 8E1B sub r24,r30
468 03b4 9F0B sbc r25,r31
469 03b6 63E0 ldi r22,lo8(3)
470 03b8 70E0 ldi r23,hi8(3)
471 03ba 0E94 0000 call __divmodhi4
472 03be CB01 movw r24,r22
473 03c0 880F lsl r24
474 03c2 991F rol r25
475 03c4 860F add r24,r22
476 03c6 971F adc r25,r23
477 03c8 9983 std Y+1,r25
478 03ca 8883 st Y,r24
479 03cc 00C0 rjmp .L74
480 .L72:
481 03ce C050 subi r28,lo8(-(ppm_diff.2503))
482 03d0 D040 sbci r29,hi8(-(ppm_diff.2503))
483 03d2 1982 std Y+1,__zero_reg__
484 03d4 1882 st Y,__zero_reg__
485 .L74:
486 03d6 000F lsl r16
487 03d8 111F rol r17
488 03da 0050 subi r16,lo8(-(ppm_in.2502))
489 03dc 1040 sbci r17,hi8(-(ppm_in.2502))
490 03de F801 movw r30,r16
491 03e0 3183 std Z+1,r19
492 03e2 2083 st Z,r18
493 03e4 00C0 rjmp .L75
494 .L59:
495 03e6 8091 0000 lds r24,PlatinenVersion
496 03ea 8A30 cpi r24,lo8(10)
497 03ec 01F0 breq .L76
498 03ee 8431 cpi r24,lo8(20)
499 03f0 00F0 brlo .L78
500 .L76:
501 03f2 289A sbi 37-0x20,0
502 03f4 00C0 rjmp .L75
503 .L78:
504 03f6 2898 cbi 37-0x20,0
505 .L75:
506 03f8 8091 0000 lds r24,PlatinenVersion
507 03fc 8431 cpi r24,lo8(20)
508 03fe 00F4 brsh .L79
509 0400 4530 cpi r20,lo8(5)
510 0402 01F4 brne .L81
511 0404 5D9A sbi 43-0x20,5
512 0406 00C0 rjmp .L83
513 .L81:
514 0408 5D98 cbi 43-0x20,5
515 040a 4630 cpi r20,lo8(6)
516 040c 01F4 brne .L83
517 040e 5C9A sbi 43-0x20,4
518 0410 00C0 rjmp .L85
519 .L83:
520 0412 5C98 cbi 43-0x20,4
521 0414 4730 cpi r20,lo8(7)
522 0416 01F4 brne .L85
523 0418 5B9A sbi 43-0x20,3
524 041a 00C0 rjmp .L79
525 .L85:
526 041c 5B98 cbi 43-0x20,3
527 041e 00C0 rjmp .L79
528 .L57:
529 0420 4431 cpi r20,lo8(20)
530 0422 00F4 brsh .L87
531 .L79:
532 0424 4F5F subi r20,lo8(-(1))
533 0426 4093 0000 sts index.2508,r20
534 042a 00C0 rjmp .L94
535 .L87:
536 042c 4431 cpi r20,lo8(20)
537 042e 01F4 brne .L94
538 0430 8091 0000 lds r24,PlatinenVersion
539 0434 8A30 cpi r24,lo8(10)
540 0436 01F0 breq .L89
541 0438 8431 cpi r24,lo8(20)
542 043a 00F0 brlo .L91
543 .L89:
544 043c 289A sbi 37-0x20,0
545 043e 00C0 rjmp .L92
546 .L91:
547 0440 2898 cbi 37-0x20,0
548 .L92:
549 0442 8EE1 ldi r24,lo8(30)
550 0444 8093 0000 sts index.2508,r24
551 0448 C0E0 ldi r28,lo8(old_ppm_in.2504)
552 044a D0E0 ldi r29,hi8(old_ppm_in.2504)
553 044c 20E0 ldi r18,lo8(0)
554 044e 30E0 ldi r19,hi8(0)
555 .L93:
556 0450 8991 ld r24,Y+
557 0452 9991 ld r25,Y+
558 0454 F901 movw r30,r18
559 0456 EE0F lsl r30
560 0458 FF1F rol r31
561 045a DF01 movw r26,r30
562 045c A050 subi r26,lo8(-(PPM_in))
563 045e B040 sbci r27,hi8(-(PPM_in))
564 0460 1196 adiw r26,1
565 0462 9C93 st X,r25
566 0464 8E93 st -X,r24
567 0466 E050 subi r30,lo8(-(PPM_diff))
568 0468 F040 sbci r31,hi8(-(PPM_diff))
569 046a 1182 std Z+1,__zero_reg__
570 046c 1082 st Z,__zero_reg__
571 046e 2F5F subi r18,lo8(-(1))
572 0470 3F4F sbci r19,hi8(-(1))
573 0472 2D30 cpi r18,13
574 0474 3105 cpc r19,__zero_reg__
575 0476 01F4 brne .L93
576 .L94:
577 /* epilogue: frame size=0 */
578 0478 FF91 pop r31
579 047a EF91 pop r30
580 047c DF91 pop r29
581 047e CF91 pop r28
582 0480 BF91 pop r27
583 0482 AF91 pop r26
584 0484 9F91 pop r25
585 0486 8F91 pop r24
586 0488 7F91 pop r23
587 048a 6F91 pop r22
588 048c 5F91 pop r21
589 048e 4F91 pop r20
590 0490 3F91 pop r19
591 0492 2F91 pop r18
592 0494 1F91 pop r17
593 0496 0F91 pop r16
594 0498 0F90 pop __tmp_reg__
595 049a 0FBE out __SREG__,__tmp_reg__
596 049c 0F90 pop __tmp_reg__
597 049e 1F90 pop __zero_reg__
598 04a0 1895 reti
599 /* epilogue end (size=21) */
600 /* function __vector_12 size 568 (526) */
602 .global tmpChannels
603 .global tmpChannels
604 .section .bss
607 tmpChannels:
608 0000 00 .skip 1,0
609 .global NewPpmData
610 .data
613 NewPpmData:
614 0000 01 .byte 1
615 .lcomm okay_cnt.2509,1
616 .lcomm index.2508,1
617 .lcomm old_ppm_diff.2505,26
618 .lcomm old_ppm_in.2504,26
619 .lcomm ppm_diff.2503,26
620 .lcomm ppm_in.2502,26
621 .lcomm AltICR.2501,2
622 .lcomm index.2500,2
623 .lcomm AltICR.2497,2
624 .comm PPM_in,52,1
625 .comm PPM_diff,52,1
626 .comm Channels,1,1
627 /* File "rc.c": code 600 = 0x0258 ( 557), prologues 21, epilogues 22 */
DEFINED SYMBOLS
*ABS*:00000000 rc.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:12 .text:00000000 rc_sum_init
*COM*:00000034 PPM_in
*COM*:00000034 PPM_diff
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:48 .text:00000040 __vector_12
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:622 .bss:0000006f AltICR.2497
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:621 .bss:0000006d index.2500
*COM*:00000001 Channels
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:613 .data:00000000 NewPpmData
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:620 .bss:0000006b AltICR.2501
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:615 .bss:00000002 index.2508
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:607 .bss:00000000 tmpChannels
.bss:00000001 okay_cnt.2509
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:617 .bss:0000001d old_ppm_in.2504
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:616 .bss:00000003 old_ppm_diff.2505
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:619 .bss:00000051 ppm_in.2502
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccWx6mqG.s:618 .bss:00000037 ppm_diff.2503
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
AdNeutralGier
AdNeutralRoll
AdNeutralNick
EE_Parameter
SenderOkay
__divmodhi4
PlatinenVersion
MotorenEin
/Spektrum-Diversity/V0.82a/spi.c
0,0 → 1,333
// ######################## SPI - FlightCtrl ###################
#include "main.h"
#include "eeprom.h"
 
 
//struct str_ToNaviCtrl_Version ToNaviCtrl_Version;
//struct str_FromNaviCtrl_Version FromNaviCtrl_Version;
struct str_ToNaviCtrl ToNaviCtrl;
struct str_FromNaviCtrl FromNaviCtrl;
struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
struct str_SPI_VersionInfo NC_Version;
struct str_GPSInfo GPSInfo;
 
unsigned char SPI_BufferIndex;
unsigned char SPI_RxBufferIndex;
signed char FromNC_Rotate_C = 32, FromNC_Rotate_S = 0;
 
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)];
unsigned char *SPI_TX_Buffer;
 
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid,NaviDataOkay = 250;
 
unsigned char SPI_CommandSequence[] = {SPI_FCCMD_STICK, SPI_FCCMD_USER, SPI_FCCMD_PARAMETER1, SPI_FCCMD_STICK, SPI_FCCMD_MISC, SPI_FCCMD_VERSION, SPI_FCCMD_STICK, SPI_FCCMD_SERVOS, SPI_FCCMD_ACCU};
unsigned char SPI_CommandCounter = 0;
unsigned char NC_ErrorCode = 0;
 
#ifdef USE_SPI_COMMUNICATION
 
//------------------------------------------------------
void SPI_MasterInit(void)
{
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK); // Set MOSI and SCK output, all others input
SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
 
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE); // Enable SPI, Master, set clock rate fck/64
SPSR = 0;//(1<<SPI2X);
 
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT);
SPITransferCompleted = 1;
 
//SPDR = 0x00; // dummy write
 
ToNaviCtrl.Sync1 = 0xAA;
ToNaviCtrl.Sync2 = 0x83;
 
ToNaviCtrl.Command = SPI_FCCMD_USER;
ToNaviCtrl.IntegralNick = 0;
ToNaviCtrl.IntegralRoll = 0;
FromNaviCtrl_Value.SerialDataOkay = 0;
SPI_RxDataValid = 0;
 
}
 
//------------------------------------------------------
void SPI_StartTransmitPacket(void)
{
//if ((SLAVE_SELECT_PORT & (1 << SPI_SLAVE_SELECT)) == 0) return; // transfer of prev. packet not completed
if (!SPITransferCompleted) return;
// _delay_us(30);
 
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl;
 
ToNaviCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++];
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0;
 
SPITransferCompleted = 0;
UpdateSPI_Buffer(); // update buffer
 
SPI_BufferIndex = 1;
//ebugOut.Analog[16]++;
// -- Debug-Output ---
//----
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
ToNaviCtrl.Chksum = ToNaviCtrl.Sync1;
SPDR = ToNaviCtrl.Sync1; // Start transmission
// SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
}
 
//------------------------------------------------------
//SIGNAL(SIG_SPI)
void SPI_TransmitByte(void)
{
static unsigned char SPI_RXState = 0;
unsigned char rxdata;
static unsigned char rxchksum;
 
if (SPITransferCompleted) return;
if (!(SPSR & (1 << SPIF))) return;
SendSPI = 4;
 
// _delay_us(30);
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
rxdata = SPDR;
switch ( SPI_RXState)
{
case 0:
 
SPI_RxBufferIndex = 0;
rxchksum = rxdata;
if (rxdata == 0x81 ) { SPI_RXState = 1; } // 1. Syncbyte ok
 
break;
 
case 1:
if (rxdata == 0x55) { rxchksum += rxdata; SPI_RXState = 2; } // 2. Syncbyte ok
else SPI_RXState = 0;
break;
 
case 2:
SPI_Buffer[SPI_RxBufferIndex++]= rxdata; // get data
//DebugOut.Analog[19]++;
if (SPI_RxBufferIndex >= sizeof(FromNaviCtrl))
{
 
if (rxdata == rxchksum)
{
unsigned char *ptr = (unsigned char *)&FromNaviCtrl;
 
memcpy(ptr, (unsigned char *) SPI_Buffer, sizeof(SPI_Buffer));
 
SPI_RxDataValid = 1;
}
else SPI_RxDataValid = 0;
 
SPI_RXState = 0;
}
else rxchksum += rxdata;
break;
 
}
 
if (SPI_BufferIndex < sizeof(ToNaviCtrl))
{
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
 
SPDR = SPI_TX_Buffer[SPI_BufferIndex];
ToNaviCtrl.Chksum += SPI_TX_Buffer[SPI_BufferIndex];
// SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
}
else SPITransferCompleted = 1;
 
SPI_BufferIndex++;
}
 
 
//------------------------------------------------------
void UpdateSPI_Buffer(void)
{
signed int tmp;
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4));
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4));
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
ToNaviCtrl.GyroGier = (signed int) AdNeutralGier - AdWertGier;
ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
// ToNaviCtrl.User8 = Parameter_UserParam8;
// ToNaviCtrl.CalState = WinkelOut.CalcState;
switch(ToNaviCtrl.Command) //
{
case SPI_FCCMD_USER:
ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
ToNaviCtrl.Param.Byte[5] = Parameter_UserParam6;
ToNaviCtrl.Param.Byte[6] = Parameter_UserParam7;
ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8;
ToNaviCtrl.Param.Byte[8] = FC_StatusFlags;
FC_StatusFlags &= ~(FC_STATUS_CALIBRATE | FC_STATUS_START);
ToNaviCtrl.Param.Byte[9] = GetActiveParamSet();
ToNaviCtrl.Param.Byte[10] = ControlHeading;
break;
 
case SPI_FCCMD_ACCU:
ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A
ToNaviCtrl.Param.Int[1] = Capacity.UsedCapacity; // mAh
ToNaviCtrl.Param.Byte[4] = (unsigned char) UBat; // 0.1V
ToNaviCtrl.Param.Byte[5] = (unsigned char) BattLowVoltageWarning; //0.1V
break;
 
case SPI_FCCMD_PARAMETER1:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.NaviGpsModeControl; // Parameters for the Naviboard
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain;
ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsD;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsACC;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsMinSat;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviStickThreshold;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviOperatingRadius;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
break;
 
case SPI_FCCMD_STICK:
cli();
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[0] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[1] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[2] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
sei();
ToNaviCtrl.Param.Byte[3] = (char) tmp;
ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti[0];
ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti[1];
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti[2];
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti[3];
ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
break;
case SPI_FCCMD_MISC:
if(WinkelOut.CalcState > 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Int[1] = (int)(HoehenWert/5);
ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
ToNaviCtrl.Param.Byte[10] = (unsigned char) PPM_in[0];
ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
break;
case SPI_FCCMD_VERSION:
ToNaviCtrl.Param.Byte[0] = VERSION_MAJOR;
ToNaviCtrl.Param.Byte[1] = VERSION_MINOR;
ToNaviCtrl.Param.Byte[2] = VERSION_PATCH;
ToNaviCtrl.Param.Byte[3] = NC_SPI_COMPATIBLE;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
ToNaviCtrl.Param.Byte[5] = VersionInfo.HardwareError[0];
ToNaviCtrl.Param.Byte[6] = VersionInfo.HardwareError[1];
ToNaviCtrl.Param.Byte[7] = VersionInfo.HardwareError[2];
ToNaviCtrl.Param.Byte[8] = VersionInfo.HardwareError[3];
ToNaviCtrl.Param.Byte[9] = VersionInfo.HardwareError[4];
break;
case SPI_FCCMD_SERVOS:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh; // Parameters for the Servo Control
ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert;
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.ServoNickMin;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.ServoNickMax;
ToNaviCtrl.Param.Byte[6] = Parameter_ServoRollControl;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.ServoRollComp;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax;
break;
}
 
if(SPI_RxDataValid)
{
NaviDataOkay = 250;
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
GPS_Roll = FromNaviCtrl.GPS_Roll;
}
 
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
 
if(FromNaviCtrl.BeepTime > beeptime && !WinkelOut.CalcState) beeptime = FromNaviCtrl.BeepTime;
 
switch (FromNaviCtrl.Command)
{
case SPI_NCCMD_KALMAN:
FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3];
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
FromNC_Rotate_C = FromNaviCtrl.Param.Byte[5];
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6];
break;
 
case SPI_NCCMD_VERSION:
NC_Version.Major = FromNaviCtrl.Param.Byte[0];
NC_Version.Minor = FromNaviCtrl.Param.Byte[1];
NC_Version.Patch = FromNaviCtrl.Param.Byte[2];
NC_Version.Compatible = FromNaviCtrl.Param.Byte[3];
NC_Version.Hardware = FromNaviCtrl.Param.Byte[4];
DebugOut.Status[0] |= FromNaviCtrl.Param.Byte[5];
NC_ErrorCode = FromNaviCtrl.Param.Byte[6];
DebugOut.Status[1] = (DebugOut.Status[1] & (0x01|0x02)) | (FromNaviCtrl.Param.Byte[6] & (0x04 | 0x08));
break;
 
case SPI_NCCMD_GPSINFO:
GPSInfo.Flags = FromNaviCtrl.Param.Byte[0];
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
GPSInfo.SatFix = FromNaviCtrl.Param.Byte[2];
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
PPM_in[25] = (signed char) FromNaviCtrl.Param.Byte[8]; // WP_EVENT-Channel-Value
break;
 
default:
break;
}
}
else
{
// KompassValue = 0;
// KompassRichtung = 0;
GPS_Nick = 0;
GPS_Roll = 0;
}
}
 
#endif
 
 
/Spektrum-Diversity/V0.82a/spi.d
0,0 → 1,3
spi.o spi.d : spi.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/spi.h
0,0 → 1,183
// ######################## SPI - FlightCtrl ###################
#ifndef _SPI_H
#define _SPI_H
 
#include <util/delay.h>
 
#define USE_SPI_COMMUNICATION
 
//-----------------------------------------
#define DDR_SPI DDRB
#define SLAVE_SELECT_DDR_PORT DDRC
#define SLAVE_SELECT_PORT PORTC
 
#if defined(__AVR_ATmega1284P__)
#define DD_SS PORTB4
#define DD_SCK PORTB7
#define DD_MOSI PORTB5
#define DD_MISO PORTB6
#define SPI_SLAVE_SELECT PORTC5
#else
#define DD_SS PB4
#define DD_SCK PB7
#define DD_MOSI PB5
#define DD_MISO PB6
#define SPI_SLAVE_SELECT PC5
#endif
 
// for compatibility reasons gcc3.x <-> gcc4.x
#ifndef SPCR
#define SPCR SPCR0
#endif
#ifndef SPE
#define SPE SPE0
#endif
#ifndef MSTR
#define MSTR MSTR0
#endif
#ifndef SPR1
#define SPR1 SPR01
#endif
#ifndef SPR0
#define SPR0 SPR00
#endif
#ifndef SPIE
#define SPIE SPIE0
#endif
#ifndef SPDR
#define SPDR SPDR0
#endif
#ifndef SPIF
#define SPIF SPIF0
#endif
#ifndef SPSR
#define SPSR SPSR0
#endif
// -------------------------
 
#define SPI_FCCMD_USER 10
#define SPI_FCCMD_STICK 11
#define SPI_FCCMD_MISC 12
#define SPI_FCCMD_PARAMETER1 13
#define SPI_FCCMD_VERSION 14
#define SPI_FCCMD_SERVOS 15
#define SPI_FCCMD_ACCU 16
 
struct str_ToNaviCtrl
{
unsigned char Sync1, Sync2;
unsigned char Command;
signed int IntegralNick;
signed int IntegralRoll;
signed int AccNick;
signed int AccRoll;
signed int GyroCompass;
signed int GyroNick;
signed int GyroRoll;
signed int GyroGier;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
#define SPI_NCCMD_KALMAN 103
#define SPI_NCCMD_VERSION 104
#define SPI_NCCMD_GPSINFO 105
 
struct str_FromNaviCtrl
{
unsigned char Command;
signed int GPS_Nick;
signed int GPS_Roll;
signed int GPS_Gier;
signed int CompassValue;
signed int Status;
unsigned int BeepTime;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
struct str_FromNaviCtrl_Value
{
signed char Kalman_K;
signed char Kalman_MaxDrift;
signed char Kalman_MaxFusion;
unsigned char SerialDataOkay;
signed char GpsZ;
};
 
struct str_SPI_VersionInfo
{
unsigned char Major;
unsigned char Minor;
unsigned char Patch;
unsigned char Compatible;
unsigned char Hardware;
};
 
// Satfix types for GPSData.SatFix
#define SATFIX_NONE 0x00
#define SATFIX_DEADRECKOING 0x01
#define SATFIX_2D 0x02
#define SATFIX_3D 0x03
#define SATFIX_GPS_DEADRECKOING 0x04
#define SATFIX_TIMEONLY 0x05
// Flags for interpretation of the GPSData.Flags
#define FLAG_GPSFIXOK 0x01 // (i.e. within DOP & ACC Masks)
#define FLAG_DIFFSOLN 0x02 // (is DGPS used)
#define FLAG_WKNSET 0x04 // (is Week Number valid)
#define FLAG_TOWSET 0x08 // (is Time of Week valid)
 
struct str_GPSInfo
{
unsigned char Flags; // Status Flags
unsigned char NumOfSats; // number of satelites
unsigned char SatFix; // type of satfix
unsigned char Speed; // m/sek
unsigned int HomeDistance; // distance to Home in dm
int HomeBearing; // bearing to home in deg
};
 
 
#ifdef USE_SPI_COMMUNICATION
extern struct str_GPSInfo GPSInfo;
extern struct str_SPI_VersionInfo NC_Version;
extern struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
extern struct str_ToNaviCtrl ToNaviCtrl;
extern struct str_FromNaviCtrl FromNaviCtrl;
extern unsigned char SPI_CommandCounter,NaviDataOkay;
extern signed char FromNC_Rotate_C, FromNC_Rotate_S;
extern unsigned char NC_ErrorCode;
extern void SPI_MasterInit(void);
extern void SPI_StartTransmitPacket(void);
extern void UpdateSPI_Buffer(void);
extern void SPI_TransmitByte(void);
#else
 
 
// -------------------------------- Dummy -----------------------------------------
#define SPI_MasterInit() ;
#define SPI_StartTransmitPacket() ;
#define UpdateSPI_Buffer() ;
#define SPI_TransmitByte() ;
#endif
 
 
#endif
/Spektrum-Diversity/V0.82a/spi.lst
0,0 → 1,917
1 .file "spi.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global SPI_MasterInit
12 SPI_MasterInit:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 84B1 in r24,36-0x20
16 0002 806A ori r24,lo8(-96)
17 0004 84B9 out 36-0x20,r24
18 0006 3D9A sbi 39-0x20,5
19 0008 82E5 ldi r24,lo8(82)
20 000a 8CBD out 76-0x20,r24
21 000c 1DBC out 77-0x20,__zero_reg__
22 000e 459A sbi 40-0x20,5
23 0010 81E0 ldi r24,lo8(1)
24 0012 8093 0000 sts SPITransferCompleted,r24
25 0016 8AEA ldi r24,lo8(-86)
26 0018 8093 0000 sts ToNaviCtrl,r24
27 001c 83E8 ldi r24,lo8(-125)
28 001e 8093 0000 sts ToNaviCtrl+1,r24
29 0022 8AE0 ldi r24,lo8(10)
30 0024 8093 0000 sts ToNaviCtrl+2,r24
31 0028 1092 0000 sts (ToNaviCtrl+3)+1,__zero_reg__
32 002c 1092 0000 sts ToNaviCtrl+3,__zero_reg__
33 0030 1092 0000 sts (ToNaviCtrl+5)+1,__zero_reg__
34 0034 1092 0000 sts ToNaviCtrl+5,__zero_reg__
35 0038 1092 0000 sts FromNaviCtrl_Value+3,__zero_reg__
36 003c 1092 0000 sts SPI_RxDataValid,__zero_reg__
37 /* epilogue: frame size=0 */
38 0040 0895 ret
39 /* epilogue end (size=1) */
40 /* function SPI_MasterInit size 33 (32) */
42 .global UpdateSPI_Buffer
44 UpdateSPI_Buffer:
45 /* prologue: frame size=0 */
46 0042 EF92 push r14
47 0044 FF92 push r15
48 0046 0F93 push r16
49 0048 1F93 push r17
50 /* prologue end (size=4) */
51 004a E090 0000 lds r14,EE_Parameter+28
52 004e FF24 clr r15
53 0050 EE0C lsl r14
54 0052 FF1C rol r15
55 0054 EE0C lsl r14
56 0056 FF1C rol r15
57 0058 0027 clr r16
58 005a F7FC sbrc r15,7
59 005c 0095 com r16
60 005e 102F mov r17,r16
61 0060 6091 0000 lds r22,IntegralNick
62 0064 7091 0000 lds r23,(IntegralNick)+1
63 0068 8091 0000 lds r24,(IntegralNick)+2
64 006c 9091 0000 lds r25,(IntegralNick)+3
65 0070 A801 movw r20,r16
66 0072 9701 movw r18,r14
67 0074 0E94 0000 call __divmodsi4
68 0078 3093 0000 sts (ToNaviCtrl+3)+1,r19
69 007c 2093 0000 sts ToNaviCtrl+3,r18
70 0080 6091 0000 lds r22,IntegralRoll
71 0084 7091 0000 lds r23,(IntegralRoll)+1
72 0088 8091 0000 lds r24,(IntegralRoll)+2
73 008c 9091 0000 lds r25,(IntegralRoll)+3
74 0090 A801 movw r20,r16
75 0092 9701 movw r18,r14
76 0094 0E94 0000 call __divmodsi4
77 0098 3093 0000 sts (ToNaviCtrl+5)+1,r19
78 009c 2093 0000 sts ToNaviCtrl+5,r18
79 00a0 6091 0000 lds r22,ErsatzKompass
80 00a4 7091 0000 lds r23,(ErsatzKompass)+1
81 00a8 8091 0000 lds r24,(ErsatzKompass)+2
82 00ac 9091 0000 lds r25,(ErsatzKompass)+3
83 00b0 2AE0 ldi r18,lo8(10)
84 00b2 30E0 ldi r19,hi8(10)
85 00b4 40E0 ldi r20,hlo8(10)
86 00b6 50E0 ldi r21,hhi8(10)
87 00b8 0E94 0000 call __mulsi3
88 00bc 2091 0000 lds r18,GIER_GRAD_FAKTOR
89 00c0 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
90 00c4 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
91 00c8 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
92 00cc 0E94 0000 call __divmodsi4
93 00d0 3093 0000 sts (ToNaviCtrl+11)+1,r19
94 00d4 2093 0000 sts ToNaviCtrl+11,r18
95 00d8 2091 0000 lds r18,AdWertGier
96 00dc 3091 0000 lds r19,(AdWertGier)+1
97 00e0 8091 0000 lds r24,AdNeutralGier
98 00e4 9091 0000 lds r25,(AdNeutralGier)+1
99 00e8 821B sub r24,r18
100 00ea 930B sbc r25,r19
101 00ec 9093 0000 sts (ToNaviCtrl+17)+1,r25
102 00f0 8093 0000 sts ToNaviCtrl+17,r24
103 00f4 2091 0000 lds r18,NaviCntAcc
104 00f8 3091 0000 lds r19,(NaviCntAcc)+1
105 00fc 8091 0000 lds r24,NaviAccNick
106 0100 9091 0000 lds r25,(NaviAccNick)+1
107 0104 B901 movw r22,r18
108 0106 0E94 0000 call __divmodhi4
109 010a CB01 movw r24,r22
110 010c 880F lsl r24
111 010e 991F rol r25
112 0110 860F add r24,r22
113 0112 971F adc r25,r23
114 0114 880F lsl r24
115 0116 991F rol r25
116 0118 64E0 ldi r22,lo8(4)
117 011a 70E0 ldi r23,hi8(4)
118 011c 0E94 0000 call __divmodhi4
119 0120 7093 0000 sts (ToNaviCtrl+7)+1,r23
120 0124 6093 0000 sts ToNaviCtrl+7,r22
121 0128 8091 0000 lds r24,NaviAccRoll
122 012c 9091 0000 lds r25,(NaviAccRoll)+1
123 0130 B901 movw r22,r18
124 0132 0E94 0000 call __divmodhi4
125 0136 CB01 movw r24,r22
126 0138 880F lsl r24
127 013a 991F rol r25
128 013c 860F add r24,r22
129 013e 971F adc r25,r23
130 0140 880F lsl r24
131 0142 991F rol r25
132 0144 64E0 ldi r22,lo8(4)
133 0146 70E0 ldi r23,hi8(4)
134 0148 0E94 0000 call __divmodhi4
135 014c 7093 0000 sts (ToNaviCtrl+9)+1,r23
136 0150 6093 0000 sts ToNaviCtrl+9,r22
137 0154 1092 0000 sts (NaviCntAcc)+1,__zero_reg__
138 0158 1092 0000 sts NaviCntAcc,__zero_reg__
139 015c 1092 0000 sts (NaviAccNick)+1,__zero_reg__
140 0160 1092 0000 sts NaviAccNick,__zero_reg__
141 0164 1092 0000 sts (NaviAccRoll)+1,__zero_reg__
142 0168 1092 0000 sts NaviAccRoll,__zero_reg__
143 016c 8091 0000 lds r24,ToNaviCtrl+2
144 0170 8D30 cpi r24,lo8(13)
145 0172 01F4 brne .+2
146 0174 00C0 rjmp .L8
147 0176 8E30 cpi r24,lo8(14)
148 0178 00F4 brsh .L12
149 017a 8B30 cpi r24,lo8(11)
150 017c 01F4 brne .+2
151 017e 00C0 rjmp .L6
152 0180 8C30 cpi r24,lo8(12)
153 0182 00F0 brlo .+2
154 0184 00C0 rjmp .L7
155 0186 8A30 cpi r24,lo8(10)
156 0188 01F0 breq .+2
157 018a 00C0 rjmp .L4
158 018c 00C0 rjmp .L5
159 .L12:
160 018e 8F30 cpi r24,lo8(15)
161 0190 01F4 brne .+2
162 0192 00C0 rjmp .L10
163 0194 8F30 cpi r24,lo8(15)
164 0196 00F4 brsh .+2
165 0198 00C0 rjmp .L9
166 019a 8031 cpi r24,lo8(16)
167 019c 01F0 breq .+2
168 019e 00C0 rjmp .L4
169 01a0 00C0 rjmp .L11
170 .L5:
171 01a2 8091 0000 lds r24,Parameter_UserParam1
172 01a6 8093 0000 sts ToNaviCtrl+19,r24
173 01aa 8091 0000 lds r24,Parameter_UserParam2
174 01ae 8093 0000 sts ToNaviCtrl+20,r24
175 01b2 8091 0000 lds r24,Parameter_UserParam3
176 01b6 8093 0000 sts ToNaviCtrl+21,r24
177 01ba 8091 0000 lds r24,Parameter_UserParam4
178 01be 8093 0000 sts ToNaviCtrl+22,r24
179 01c2 8091 0000 lds r24,Parameter_UserParam5
180 01c6 8093 0000 sts ToNaviCtrl+23,r24
181 01ca 8091 0000 lds r24,Parameter_UserParam6
182 01ce 8093 0000 sts ToNaviCtrl+24,r24
183 01d2 8091 0000 lds r24,Parameter_UserParam7
184 01d6 8093 0000 sts ToNaviCtrl+25,r24
185 01da 8091 0000 lds r24,Parameter_UserParam8
186 01de 8093 0000 sts ToNaviCtrl+26,r24
187 01e2 8091 0000 lds r24,FC_StatusFlags
188 01e6 8093 0000 sts ToNaviCtrl+27,r24
189 01ea 8091 0000 lds r24,FC_StatusFlags
190 01ee 837F andi r24,lo8(-13)
191 01f0 8093 0000 sts FC_StatusFlags,r24
192 01f4 0E94 0000 call GetActiveParamSet
193 01f8 8093 0000 sts ToNaviCtrl+28,r24
194 01fc 8091 0000 lds r24,ControlHeading
195 0200 8093 0000 sts ToNaviCtrl+29,r24
196 0204 00C0 rjmp .L4
197 .L11:
198 0206 8091 0000 lds r24,Capacity
199 020a 9091 0000 lds r25,(Capacity)+1
200 020e 9093 0000 sts (ToNaviCtrl+19)+1,r25
201 0212 8093 0000 sts ToNaviCtrl+19,r24
202 0216 8091 0000 lds r24,Capacity+4
203 021a 9091 0000 lds r25,(Capacity+4)+1
204 021e 9093 0000 sts (ToNaviCtrl+21)+1,r25
205 0222 8093 0000 sts ToNaviCtrl+21,r24
206 0226 8091 0000 lds r24,UBat
207 022a 9091 0000 lds r25,(UBat)+1
208 022e 8093 0000 sts ToNaviCtrl+23,r24
209 0232 8091 0000 lds r24,BattLowVoltageWarning
210 0236 8093 0000 sts ToNaviCtrl+24,r24
211 023a 00C0 rjmp .L4
212 .L8:
213 023c 8091 0000 lds r24,EE_Parameter+80
214 0240 8093 0000 sts ToNaviCtrl+19,r24
215 0244 8091 0000 lds r24,EE_Parameter+81
216 0248 8093 0000 sts ToNaviCtrl+20,r24
217 024c 8091 0000 lds r24,EE_Parameter+82
218 0250 8093 0000 sts ToNaviCtrl+21,r24
219 0254 8091 0000 lds r24,EE_Parameter+83
220 0258 8093 0000 sts ToNaviCtrl+22,r24
221 025c 8091 0000 lds r24,EE_Parameter+84
222 0260 8093 0000 sts ToNaviCtrl+23,r24
223 0264 8091 0000 lds r24,EE_Parameter+88
224 0268 8093 0000 sts ToNaviCtrl+24,r24
225 026c 8091 0000 lds r24,EE_Parameter+89
226 0270 8093 0000 sts ToNaviCtrl+25,r24
227 0274 8091 0000 lds r24,EE_Parameter+90
228 0278 8093 0000 sts ToNaviCtrl+26,r24
229 027c 8091 0000 lds r24,EE_Parameter+93
230 0280 8093 0000 sts ToNaviCtrl+27,r24
231 0284 8091 0000 lds r24,EE_Parameter+91
232 0288 8093 0000 sts ToNaviCtrl+28,r24
233 028c 8091 0000 lds r24,EE_Parameter+92
234 0290 8093 0000 sts ToNaviCtrl+29,r24
235 0294 8091 0000 lds r24,EE_Parameter+94
236 0298 00C0 rjmp .L40
237 .L6:
238 /* #APP */
239 029a F894 cli
240 /* #NOAPP */
241 029c E091 0000 lds r30,EE_Parameter+3
242 02a0 F0E0 ldi r31,lo8(0)
243 02a2 EE0F lsl r30
244 02a4 FF1F rol r31
245 02a6 E050 subi r30,lo8(-(PPM_in))
246 02a8 F040 sbci r31,hi8(-(PPM_in))
247 02aa 0190 ld __tmp_reg__,Z+
248 02ac F081 ld r31,Z
249 02ae E02D mov r30,__tmp_reg__
250 02b0 2FEF ldi r18,hi8(-127)
251 02b2 E138 cpi r30,lo8(-127)
252 02b4 F207 cpc r31,r18
253 02b6 04F4 brge .L13
254 02b8 E1E8 ldi r30,lo8(-127)
255 02ba FFEF ldi r31,hi8(-127)
256 .L13:
257 02bc E038 cpi r30,128
258 02be F105 cpc r31,__zero_reg__
259 02c0 04F0 brlt .L14
260 02c2 EFE7 ldi r30,lo8(127)
261 02c4 F0E0 ldi r31,hi8(127)
262 .L14:
263 02c6 E093 0000 sts ToNaviCtrl+19,r30
264 02ca E091 0000 lds r30,EE_Parameter+4
265 02ce F0E0 ldi r31,lo8(0)
266 02d0 EE0F lsl r30
267 02d2 FF1F rol r31
268 02d4 E050 subi r30,lo8(-(PPM_in))
269 02d6 F040 sbci r31,hi8(-(PPM_in))
270 02d8 0190 ld __tmp_reg__,Z+
271 02da F081 ld r31,Z
272 02dc E02D mov r30,__tmp_reg__
273 02de 6FEF ldi r22,hi8(-127)
274 02e0 E138 cpi r30,lo8(-127)
275 02e2 F607 cpc r31,r22
276 02e4 04F4 brge .L15
277 02e6 E1E8 ldi r30,lo8(-127)
278 02e8 FFEF ldi r31,hi8(-127)
279 .L15:
280 02ea E038 cpi r30,128
281 02ec F105 cpc r31,__zero_reg__
282 02ee 04F0 brlt .L16
283 02f0 EFE7 ldi r30,lo8(127)
284 02f2 F0E0 ldi r31,hi8(127)
285 .L16:
286 02f4 E093 0000 sts ToNaviCtrl+20,r30
287 02f8 E091 0000 lds r30,EE_Parameter+2
288 02fc F0E0 ldi r31,lo8(0)
289 02fe EE0F lsl r30
290 0300 FF1F rol r31
291 0302 E050 subi r30,lo8(-(PPM_in))
292 0304 F040 sbci r31,hi8(-(PPM_in))
293 0306 0190 ld __tmp_reg__,Z+
294 0308 F081 ld r31,Z
295 030a E02D mov r30,__tmp_reg__
296 030c 8FEF ldi r24,hi8(-127)
297 030e E138 cpi r30,lo8(-127)
298 0310 F807 cpc r31,r24
299 0312 04F4 brge .L17
300 0314 E1E8 ldi r30,lo8(-127)
301 0316 FFEF ldi r31,hi8(-127)
302 .L17:
303 0318 E038 cpi r30,128
304 031a F105 cpc r31,__zero_reg__
305 031c 04F0 brlt .L18
306 031e EFE7 ldi r30,lo8(127)
307 0320 F0E0 ldi r31,hi8(127)
308 .L18:
309 0322 E093 0000 sts ToNaviCtrl+21,r30
310 0326 E091 0000 lds r30,EE_Parameter+1
311 032a F0E0 ldi r31,lo8(0)
312 032c EE0F lsl r30
313 032e FF1F rol r31
314 0330 E050 subi r30,lo8(-(PPM_in))
315 0332 F040 sbci r31,hi8(-(PPM_in))
316 0334 0190 ld __tmp_reg__,Z+
317 0336 F081 ld r31,Z
318 0338 E02D mov r30,__tmp_reg__
319 033a 2FEF ldi r18,hi8(-127)
320 033c E138 cpi r30,lo8(-127)
321 033e F207 cpc r31,r18
322 0340 04F4 brge .L19
323 0342 E1E8 ldi r30,lo8(-127)
324 0344 FFEF ldi r31,hi8(-127)
325 .L19:
326 /* #APP */
327 0346 7894 sei
328 /* #NOAPP */
329 0348 E038 cpi r30,128
330 034a F105 cpc r31,__zero_reg__
331 034c 04F0 brlt .L20
332 034e EFE7 ldi r30,lo8(127)
333 0350 F0E0 ldi r31,hi8(127)
334 .L20:
335 0352 E093 0000 sts ToNaviCtrl+22,r30
336 0356 8091 0000 lds r24,Poti
337 035a 8093 0000 sts ToNaviCtrl+23,r24
338 035e 8091 0000 lds r24,Poti+1
339 0362 8093 0000 sts ToNaviCtrl+24,r24
340 0366 8091 0000 lds r24,Poti+2
341 036a 8093 0000 sts ToNaviCtrl+25,r24
342 036e 8091 0000 lds r24,Poti+3
343 0372 8093 0000 sts ToNaviCtrl+26,r24
344 0376 8091 0000 lds r24,Poti+4
345 037a 8093 0000 sts ToNaviCtrl+27,r24
346 037e 8091 0000 lds r24,Poti+5
347 0382 8093 0000 sts ToNaviCtrl+28,r24
348 0386 8091 0000 lds r24,Poti+6
349 038a 8093 0000 sts ToNaviCtrl+29,r24
350 038e 8091 0000 lds r24,Poti+7
351 .L40:
352 0392 8093 0000 sts ToNaviCtrl+30,r24
353 0396 00C0 rjmp .L4
354 .L7:
355 0398 8091 0000 lds r24,WinkelOut+6
356 039c 8630 cpi r24,lo8(6)
357 039e 00F0 brlo .L21
358 03a0 1092 0000 sts WinkelOut+6,__zero_reg__
359 03a4 85E0 ldi r24,lo8(5)
360 .L21:
361 03a6 8093 0000 sts ToNaviCtrl+19,r24
362 03aa 8091 0000 lds r24,EE_Parameter+95
363 03ae 8093 0000 sts ToNaviCtrl+20,r24
364 03b2 6091 0000 lds r22,HoehenWert
365 03b6 7091 0000 lds r23,(HoehenWert)+1
366 03ba 8091 0000 lds r24,(HoehenWert)+2
367 03be 9091 0000 lds r25,(HoehenWert)+3
368 03c2 25E0 ldi r18,lo8(5)
369 03c4 30E0 ldi r19,hi8(5)
370 03c6 40E0 ldi r20,hlo8(5)
371 03c8 50E0 ldi r21,hhi8(5)
372 03ca 0E94 0000 call __divmodsi4
373 03ce 3093 0000 sts (ToNaviCtrl+21)+1,r19
374 03d2 2093 0000 sts ToNaviCtrl+21,r18
375 03d6 6091 0000 lds r22,SollHoehe
376 03da 7091 0000 lds r23,(SollHoehe)+1
377 03de 8091 0000 lds r24,(SollHoehe)+2
378 03e2 9091 0000 lds r25,(SollHoehe)+3
379 03e6 25E0 ldi r18,lo8(5)
380 03e8 30E0 ldi r19,hi8(5)
381 03ea 40E0 ldi r20,hlo8(5)
382 03ec 50E0 ldi r21,hhi8(5)
383 03ee 0E94 0000 call __divmodsi4
384 03f2 3093 0000 sts (ToNaviCtrl+23)+1,r19
385 03f6 2093 0000 sts ToNaviCtrl+23,r18
386 03fa 8091 0000 lds r24,EE_Parameter+85
387 03fe 8093 0000 sts ToNaviCtrl+25,r24
388 0402 8091 0000 lds r24,EE_Parameter+86
389 0406 8093 0000 sts ToNaviCtrl+26,r24
390 040a 8091 0000 lds r24,EE_Parameter+87
391 040e 8093 0000 sts ToNaviCtrl+27,r24
392 0412 8091 0000 lds r24,SenderOkay
393 0416 8093 0000 sts ToNaviCtrl+28,r24
394 041a 8091 0000 lds r24,PPM_in
395 041e 9091 0000 lds r25,(PPM_in)+1
396 0422 8093 0000 sts ToNaviCtrl+29,r24
397 0426 8091 0000 lds r24,DebugOut+16
398 042a 9091 0000 lds r25,(DebugOut+16)+1
399 042e 64E0 ldi r22,lo8(4)
400 0430 70E0 ldi r23,hi8(4)
401 0432 0E94 0000 call __divmodhi4
402 0436 6093 0000 sts ToNaviCtrl+30,r22
403 043a 00C0 rjmp .L4
404 .L9:
405 043c 1092 0000 sts ToNaviCtrl+19,__zero_reg__
406 0440 82E5 ldi r24,lo8(82)
407 0442 8093 0000 sts ToNaviCtrl+20,r24
408 0446 1092 0000 sts ToNaviCtrl+21,__zero_reg__
409 044a 80E1 ldi r24,lo8(16)
410 044c 8093 0000 sts ToNaviCtrl+22,r24
411 0450 8091 0000 lds r24,PlatinenVersion
412 0454 8093 0000 sts ToNaviCtrl+23,r24
413 0458 8091 0000 lds r24,VersionInfo+5
414 045c 8093 0000 sts ToNaviCtrl+24,r24
415 0460 8091 0000 lds r24,VersionInfo+6
416 0464 8093 0000 sts ToNaviCtrl+25,r24
417 0468 8091 0000 lds r24,VersionInfo+7
418 046c 8093 0000 sts ToNaviCtrl+26,r24
419 0470 8091 0000 lds r24,VersionInfo+8
420 0474 8093 0000 sts ToNaviCtrl+27,r24
421 0478 8091 0000 lds r24,VersionInfo+9
422 047c 00C0 rjmp .L41
423 .L10:
424 047e 8091 0000 lds r24,EE_Parameter+53
425 0482 8093 0000 sts ToNaviCtrl+19,r24
426 0486 8091 0000 lds r24,EE_Parameter+101
427 048a 8093 0000 sts ToNaviCtrl+20,r24
428 048e 8091 0000 lds r24,Parameter_ServoNickControl
429 0492 8093 0000 sts ToNaviCtrl+21,r24
430 0496 8091 0000 lds r24,EE_Parameter+46
431 049a 8093 0000 sts ToNaviCtrl+22,r24
432 049e 8091 0000 lds r24,EE_Parameter+47
433 04a2 8093 0000 sts ToNaviCtrl+23,r24
434 04a6 8091 0000 lds r24,EE_Parameter+48
435 04aa 8093 0000 sts ToNaviCtrl+24,r24
436 04ae 8091 0000 lds r24,Parameter_ServoRollControl
437 04b2 8093 0000 sts ToNaviCtrl+25,r24
438 04b6 8091 0000 lds r24,EE_Parameter+50
439 04ba 8093 0000 sts ToNaviCtrl+26,r24
440 04be 8091 0000 lds r24,EE_Parameter+51
441 04c2 8093 0000 sts ToNaviCtrl+27,r24
442 04c6 8091 0000 lds r24,EE_Parameter+52
443 .L41:
444 04ca 8093 0000 sts ToNaviCtrl+28,r24
445 .L4:
446 04ce 8091 0000 lds r24,SPI_RxDataValid
447 04d2 8823 tst r24
448 04d4 01F4 brne .+2
449 04d6 00C0 rjmp .L24
450 04d8 8AEF ldi r24,lo8(-6)
451 04da 8093 0000 sts NaviDataOkay,r24
452 04de 4091 0000 lds r20,FromNaviCtrl+1
453 04e2 5091 0000 lds r21,(FromNaviCtrl+1)+1
454 04e6 CA01 movw r24,r20
455 04e8 8150 subi r24,lo8(-(511))
456 04ea 9E4F sbci r25,hi8(-(511))
457 04ec 8F5F subi r24,lo8(1023)
458 04ee 9340 sbci r25,hi8(1023)
459 04f0 00F4 brsh .L26
460 04f2 2091 0000 lds r18,FromNaviCtrl+3
461 04f6 3091 0000 lds r19,(FromNaviCtrl+3)+1
462 04fa C901 movw r24,r18
463 04fc 8150 subi r24,lo8(-(511))
464 04fe 9E4F sbci r25,hi8(-(511))
465 0500 8F5F subi r24,lo8(1023)
466 0502 9340 sbci r25,hi8(1023)
467 0504 00F4 brsh .L26
468 0506 8091 0000 lds r24,EE_Parameter+13
469 050a 85FF sbrs r24,5
470 050c 00C0 rjmp .L26
471 050e 5093 0000 sts (GPS_Nick)+1,r21
472 0512 4093 0000 sts GPS_Nick,r20
473 0516 3093 0000 sts (GPS_Roll)+1,r19
474 051a 2093 0000 sts GPS_Roll,r18
475 .L26:
476 051e 8091 0000 lds r24,FromNaviCtrl+7
477 0522 9091 0000 lds r25,(FromNaviCtrl+7)+1
478 0526 21E0 ldi r18,hi8(361)
479 0528 8936 cpi r24,lo8(361)
480 052a 9207 cpc r25,r18
481 052c 04F4 brge .L30
482 052e 9093 0000 sts (KompassValue)+1,r25
483 0532 8093 0000 sts KompassValue,r24
484 .L30:
485 0536 8091 0000 lds r24,KompassValue
486 053a 9091 0000 lds r25,(KompassValue)+1
487 053e 845E subi r24,lo8(-(540))
488 0540 9D4F sbci r25,hi8(-(540))
489 0542 2091 0000 lds r18,KompassStartwert
490 0546 3091 0000 lds r19,(KompassStartwert)+1
491 054a 821B sub r24,r18
492 054c 930B sbc r25,r19
493 054e 68E6 ldi r22,lo8(360)
494 0550 71E0 ldi r23,hi8(360)
495 0552 0E94 0000 call __divmodhi4
496 0556 845B subi r24,lo8(-(-180))
497 0558 9040 sbci r25,hi8(-(-180))
498 055a 9093 0000 sts (KompassRichtung)+1,r25
499 055e 8093 0000 sts KompassRichtung,r24
500 0562 2091 0000 lds r18,FromNaviCtrl+11
501 0566 3091 0000 lds r19,(FromNaviCtrl+11)+1
502 056a 8091 0000 lds r24,beeptime
503 056e 9091 0000 lds r25,(beeptime)+1
504 0572 8217 cp r24,r18
505 0574 9307 cpc r25,r19
506 0576 00F4 brsh .L32
507 0578 8091 0000 lds r24,WinkelOut+6
508 057c 8823 tst r24
509 057e 01F4 brne .L32
510 0580 3093 0000 sts (beeptime)+1,r19
511 0584 2093 0000 sts beeptime,r18
512 .L32:
513 0588 8091 0000 lds r24,FromNaviCtrl
514 058c 8836 cpi r24,lo8(104)
515 058e 01F0 breq .L37
516 0590 8936 cpi r24,lo8(105)
517 0592 01F4 brne .+2
518 0594 00C0 rjmp .L38
519 0596 8736 cpi r24,lo8(103)
520 0598 01F0 breq .+2
521 059a 00C0 rjmp .L39
522 059c 8091 0000 lds r24,FromNaviCtrl+13
523 05a0 8093 0000 sts FromNaviCtrl_Value,r24
524 05a4 8091 0000 lds r24,FromNaviCtrl+14
525 05a8 8093 0000 sts FromNaviCtrl_Value+2,r24
526 05ac 8091 0000 lds r24,FromNaviCtrl+15
527 05b0 8093 0000 sts FromNaviCtrl_Value+1,r24
528 05b4 8091 0000 lds r24,FromNaviCtrl+16
529 05b8 8093 0000 sts FromNaviCtrl_Value+3,r24
530 05bc 8091 0000 lds r24,FromNaviCtrl+17
531 05c0 8093 0000 sts FromNaviCtrl_Value+4,r24
532 05c4 8091 0000 lds r24,FromNaviCtrl+18
533 05c8 8093 0000 sts FromNC_Rotate_C,r24
534 05cc 8091 0000 lds r24,FromNaviCtrl+19
535 05d0 8093 0000 sts FromNC_Rotate_S,r24
536 05d4 00C0 rjmp .L39
537 .L37:
538 05d6 8091 0000 lds r24,FromNaviCtrl+13
539 05da 8093 0000 sts NC_Version,r24
540 05de 8091 0000 lds r24,FromNaviCtrl+14
541 05e2 8093 0000 sts NC_Version+1,r24
542 05e6 8091 0000 lds r24,FromNaviCtrl+15
543 05ea 8093 0000 sts NC_Version+2,r24
544 05ee 8091 0000 lds r24,FromNaviCtrl+16
545 05f2 8093 0000 sts NC_Version+3,r24
546 05f6 8091 0000 lds r24,FromNaviCtrl+17
547 05fa 8093 0000 sts NC_Version+4,r24
548 05fe 8091 0000 lds r24,FromNaviCtrl+18
549 0602 9091 0000 lds r25,DebugOut
550 0606 892B or r24,r25
551 0608 8093 0000 sts DebugOut,r24
552 060c 9091 0000 lds r25,FromNaviCtrl+19
553 0610 9093 0000 sts NC_ErrorCode,r25
554 0614 9C70 andi r25,lo8(12)
555 0616 8091 0000 lds r24,DebugOut+1
556 061a 8370 andi r24,lo8(3)
557 061c 982B or r25,r24
558 061e 9093 0000 sts DebugOut+1,r25
559 0622 00C0 rjmp .L39
560 .L38:
561 0624 8091 0000 lds r24,FromNaviCtrl+13
562 0628 8093 0000 sts GPSInfo,r24
563 062c 8091 0000 lds r24,FromNaviCtrl+14
564 0630 8093 0000 sts GPSInfo+1,r24
565 0634 8091 0000 lds r24,FromNaviCtrl+15
566 0638 8093 0000 sts GPSInfo+2,r24
567 063c 8091 0000 lds r24,FromNaviCtrl+16
568 0640 8093 0000 sts GPSInfo+3,r24
569 0644 8091 0000 lds r24,FromNaviCtrl+17
570 0648 9091 0000 lds r25,(FromNaviCtrl+17)+1
571 064c 9093 0000 sts (GPSInfo+4)+1,r25
572 0650 8093 0000 sts GPSInfo+4,r24
573 0654 8091 0000 lds r24,FromNaviCtrl+19
574 0658 9091 0000 lds r25,(FromNaviCtrl+19)+1
575 065c 9093 0000 sts (GPSInfo+6)+1,r25
576 0660 8093 0000 sts GPSInfo+6,r24
577 0664 8091 0000 lds r24,FromNaviCtrl+21
578 0668 9927 clr r25
579 066a 87FD sbrc r24,7
580 066c 9095 com r25
581 066e 9093 0000 sts (PPM_in+50)+1,r25
582 0672 8093 0000 sts PPM_in+50,r24
583 0676 00C0 rjmp .L39
584 .L24:
585 0678 1092 0000 sts (GPS_Nick)+1,__zero_reg__
586 067c 1092 0000 sts GPS_Nick,__zero_reg__
587 0680 1092 0000 sts (GPS_Roll)+1,__zero_reg__
588 0684 1092 0000 sts GPS_Roll,__zero_reg__
589 .L39:
590 /* epilogue: frame size=0 */
591 0688 1F91 pop r17
592 068a 0F91 pop r16
593 068c FF90 pop r15
594 068e EF90 pop r14
595 0690 0895 ret
596 /* epilogue end (size=5) */
597 /* function UpdateSPI_Buffer size 812 (803) */
599 .global SPI_StartTransmitPacket
601 SPI_StartTransmitPacket:
602 /* prologue: frame size=0 */
603 /* prologue end (size=0) */
604 0692 8091 0000 lds r24,SPITransferCompleted
605 0696 8823 tst r24
606 0698 01F4 brne .+2
607 069a 00C0 rjmp .L47
608 069c 4598 cbi 40-0x20,5
609 069e 80E0 ldi r24,lo8(ToNaviCtrl)
610 06a0 90E0 ldi r25,hi8(ToNaviCtrl)
611 06a2 9093 0000 sts (SPI_TX_Buffer)+1,r25
612 06a6 8093 0000 sts SPI_TX_Buffer,r24
613 06aa 9091 0000 lds r25,SPI_CommandCounter
614 06ae E92F mov r30,r25
615 06b0 F0E0 ldi r31,lo8(0)
616 06b2 E050 subi r30,lo8(-(SPI_CommandSequence))
617 06b4 F040 sbci r31,hi8(-(SPI_CommandSequence))
618 06b6 8081 ld r24,Z
619 06b8 8093 0000 sts ToNaviCtrl+2,r24
620 06bc 9F5F subi r25,lo8(-(1))
621 06be 9093 0000 sts SPI_CommandCounter,r25
622 06c2 9930 cpi r25,lo8(9)
623 06c4 00F0 brlo .L45
624 06c6 1092 0000 sts SPI_CommandCounter,__zero_reg__
625 .L45:
626 06ca 1092 0000 sts SPITransferCompleted,__zero_reg__
627 06ce 0E94 0000 call UpdateSPI_Buffer
628 06d2 81E0 ldi r24,lo8(1)
629 06d4 8093 0000 sts SPI_BufferIndex,r24
630 /* #APP */
631 06d8 0000 nop
632 06da 0000 nop
633 06dc 0000 nop
634 06de 0000 nop
635 06e0 0000 nop
636 06e2 0000 nop
637 06e4 0000 nop
638 06e6 0000 nop
639 06e8 0000 nop
640 06ea 0000 nop
641 06ec 0000 nop
642 06ee 0000 nop
643 06f0 0000 nop
644 06f2 0000 nop
645 06f4 0000 nop
646 06f6 0000 nop
647 06f8 0000 nop
648 06fa 0000 nop
649 06fc 0000 nop
650 06fe 0000 nop
651 0700 0000 nop
652 0702 0000 nop
653 0704 0000 nop
654 0706 0000 nop
655 /* #NOAPP */
656 0708 8091 0000 lds r24,ToNaviCtrl
657 070c 8093 0000 sts ToNaviCtrl+31,r24
658 0710 8EBD out 78-0x20,r24
659 .L47:
660 0712 0895 ret
661 /* epilogue: frame size=0 */
662 /* epilogue: noreturn */
663 /* epilogue end (size=0) */
664 /* function SPI_StartTransmitPacket size 89 (89) */
666 .global SPI_TransmitByte
668 SPI_TransmitByte:
669 /* prologue: frame size=0 */
670 /* prologue end (size=0) */
671 0714 8091 0000 lds r24,SPITransferCompleted
672 0718 8823 tst r24
673 071a 01F0 breq .+2
674 071c 00C0 rjmp .L68
675 071e 0DB4 in __tmp_reg__,77-0x20
676 0720 07FE sbrs __tmp_reg__,7
677 0722 00C0 rjmp .L68
678 0724 84E0 ldi r24,lo8(4)
679 0726 8093 0000 sts SendSPI,r24
680 072a 459A sbi 40-0x20,5
681 072c 2EB5 in r18,78-0x20
682 072e 8091 0000 lds r24,SPI_RXState.2528
683 0732 8130 cpi r24,lo8(1)
684 0734 01F0 breq .L54
685 0736 8130 cpi r24,lo8(1)
686 0738 00F0 brlo .L53
687 073a 8230 cpi r24,lo8(2)
688 073c 01F4 brne .L52
689 073e 00C0 rjmp .L55
690 .L53:
691 0740 1092 0000 sts SPI_RxBufferIndex,__zero_reg__
692 0744 2093 0000 sts rxchksum.2530,r18
693 0748 2138 cpi r18,lo8(-127)
694 074a 01F4 brne .L52
695 074c 81E0 ldi r24,lo8(1)
696 074e 00C0 rjmp .L71
697 .L54:
698 0750 2535 cpi r18,lo8(85)
699 0752 01F4 brne .L64
700 0754 8091 0000 lds r24,rxchksum.2530
701 0758 8B5A subi r24,lo8(-(85))
702 075a 8093 0000 sts rxchksum.2530,r24
703 075e 82E0 ldi r24,lo8(2)
704 .L71:
705 0760 8093 0000 sts SPI_RXState.2528,r24
706 0764 00C0 rjmp .L52
707 .L55:
708 0766 8091 0000 lds r24,SPI_RxBufferIndex
709 076a E82F mov r30,r24
710 076c F0E0 ldi r31,lo8(0)
711 076e E050 subi r30,lo8(-(SPI_Buffer))
712 0770 F040 sbci r31,hi8(-(SPI_Buffer))
713 0772 2083 st Z,r18
714 0774 8F5F subi r24,lo8(-(1))
715 0776 8093 0000 sts SPI_RxBufferIndex,r24
716 077a 9091 0000 lds r25,rxchksum.2530
717 077e 8A31 cpi r24,lo8(26)
718 0780 00F0 brlo .L59
719 0782 2917 cp r18,r25
720 0784 01F4 brne .L61
721 0786 A0E0 ldi r26,lo8(FromNaviCtrl)
722 0788 B0E0 ldi r27,hi8(FromNaviCtrl)
723 078a E0E0 ldi r30,lo8(SPI_Buffer)
724 078c F0E0 ldi r31,hi8(SPI_Buffer)
725 078e 8AE1 ldi r24,lo8(26)
726 .L63:
727 0790 0190 ld r0,Z+
728 0792 0D92 st X+,r0
729 0794 8150 subi r24,lo8(-(-1))
730 0796 01F4 brne .L63
731 0798 81E0 ldi r24,lo8(1)
732 079a 8093 0000 sts SPI_RxDataValid,r24
733 079e 00C0 rjmp .L64
734 .L61:
735 07a0 1092 0000 sts SPI_RxDataValid,__zero_reg__
736 .L64:
737 07a4 1092 0000 sts SPI_RXState.2528,__zero_reg__
738 07a8 00C0 rjmp .L52
739 .L59:
740 07aa 920F add r25,r18
741 07ac 9093 0000 sts rxchksum.2530,r25
742 .L52:
743 07b0 2091 0000 lds r18,SPI_BufferIndex
744 07b4 2032 cpi r18,lo8(32)
745 07b6 00F0 brlo .+2
746 07b8 00C0 rjmp .L65
747 07ba 4598 cbi 40-0x20,5
748 /* #APP */
749 07bc 0000 nop
750 07be 0000 nop
751 07c0 0000 nop
752 07c2 0000 nop
753 07c4 0000 nop
754 07c6 0000 nop
755 07c8 0000 nop
756 07ca 0000 nop
757 07cc 0000 nop
758 07ce 0000 nop
759 07d0 0000 nop
760 07d2 0000 nop
761 07d4 0000 nop
762 07d6 0000 nop
763 07d8 0000 nop
764 07da 0000 nop
765 07dc 0000 nop
766 07de 0000 nop
767 07e0 0000 nop
768 07e2 0000 nop
769 07e4 0000 nop
770 07e6 0000 nop
771 07e8 0000 nop
772 07ea 0000 nop
773 /* #NOAPP */
774 07ec E091 0000 lds r30,SPI_TX_Buffer
775 07f0 F091 0000 lds r31,(SPI_TX_Buffer)+1
776 07f4 E20F add r30,r18
777 07f6 F11D adc r31,__zero_reg__
778 07f8 8081 ld r24,Z
779 07fa 8EBD out 78-0x20,r24
780 07fc 8081 ld r24,Z
781 07fe 9091 0000 lds r25,ToNaviCtrl+31
782 0802 890F add r24,r25
783 0804 8093 0000 sts ToNaviCtrl+31,r24
784 0808 00C0 rjmp .L67
785 .L65:
786 080a 81E0 ldi r24,lo8(1)
787 080c 8093 0000 sts SPITransferCompleted,r24
788 .L67:
789 0810 2F5F subi r18,lo8(-(1))
790 0812 2093 0000 sts SPI_BufferIndex,r18
791 .L68:
792 0816 0895 ret
793 /* epilogue: frame size=0 */
794 /* epilogue: noreturn */
795 /* epilogue end (size=0) */
796 /* function SPI_TransmitByte size 155 (155) */
798 .global FromNC_Rotate_C
799 .data
802 FromNC_Rotate_C:
803 0000 20 .byte 32
804 .global FromNC_Rotate_S
805 .global FromNC_Rotate_S
806 .section .bss
809 FromNC_Rotate_S:
810 0000 00 .skip 1,0
811 .global NaviDataOkay
812 .data
815 NaviDataOkay:
816 0001 FA .byte -6
817 .global SPI_CommandSequence
820 SPI_CommandSequence:
821 0002 0B .byte 11
822 0003 0A .byte 10
823 0004 0D .byte 13
824 0005 0B .byte 11
825 0006 0C .byte 12
826 0007 0E .byte 14
827 0008 0B .byte 11
828 0009 0F .byte 15
829 000a 10 .byte 16
830 .global SPI_CommandCounter
831 .global SPI_CommandCounter
832 .section .bss
835 SPI_CommandCounter:
836 0001 00 .skip 1,0
837 .global NC_ErrorCode
838 .global NC_ErrorCode
841 NC_ErrorCode:
842 0002 00 .skip 1,0
843 .lcomm rxchksum.2530,1
844 .lcomm SPI_RXState.2528,1
845 .comm GPSInfo,8,1
846 .comm NC_Version,5,1
847 .comm FromNaviCtrl_Value,5,1
848 .comm ToNaviCtrl,32,1
849 .comm FromNaviCtrl,26,1
850 .comm SPI_BufferIndex,1,1
851 .comm SPI_RxBufferIndex,1,1
852 .comm SPI_Buffer,26,1
853 .comm SPI_TX_Buffer,2,1
854 .comm SPITransferCompleted,1,1
855 .comm SPI_ChkSum,1,1
856 .comm SPI_RxDataValid,1,1
857 /* File "spi.c": code 1089 = 0x0441 (1079), prologues 4, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 spi.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:12 .text:00000000 SPI_MasterInit
*COM*:00000001 SPITransferCompleted
*COM*:00000020 ToNaviCtrl
*COM*:00000005 FromNaviCtrl_Value
*COM*:00000001 SPI_RxDataValid
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:44 .text:00000042 UpdateSPI_Buffer
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:815 .data:00000001 NaviDataOkay
*COM*:0000001a FromNaviCtrl
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:802 .data:00000000 FromNC_Rotate_C
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:809 .bss:00000000 FromNC_Rotate_S
*COM*:00000005 NC_Version
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:841 .bss:00000002 NC_ErrorCode
*COM*:00000008 GPSInfo
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:601 .text:00000692 SPI_StartTransmitPacket
*COM*:00000002 SPI_TX_Buffer
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:835 .bss:00000001 SPI_CommandCounter
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:820 .data:00000002 SPI_CommandSequence
*COM*:00000001 SPI_BufferIndex
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:668 .text:00000714 SPI_TransmitByte
C:\DOCUME~1\Owner\LOCALS~1\Temp/cc50rVab.s:843 .bss:00000004 SPI_RXState.2528
*COM*:00000001 SPI_RxBufferIndex
.bss:00000003 rxchksum.2530
*COM*:0000001a SPI_Buffer
*COM*:00000001 SPI_ChkSum
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
IntegralNick
__divmodsi4
IntegralRoll
ErsatzKompass
__mulsi3
GIER_GRAD_FAKTOR
AdWertGier
AdNeutralGier
NaviCntAcc
NaviAccNick
__divmodhi4
NaviAccRoll
Parameter_UserParam1
Parameter_UserParam2
Parameter_UserParam3
Parameter_UserParam4
Parameter_UserParam5
Parameter_UserParam6
Parameter_UserParam7
Parameter_UserParam8
FC_StatusFlags
GetActiveParamSet
ControlHeading
Capacity
UBat
BattLowVoltageWarning
PPM_in
Poti
WinkelOut
HoehenWert
SollHoehe
SenderOkay
DebugOut
PlatinenVersion
VersionInfo
Parameter_ServoNickControl
Parameter_ServoRollControl
GPS_Nick
GPS_Roll
KompassValue
KompassStartwert
KompassRichtung
beeptime
SendSPI
/Spektrum-Diversity/V0.82a/timer0.c
0,0 → 1,402
#include "main.h"
#define MULTIPLYER 4
 
volatile unsigned int CountMilliseconds = 0;
volatile static unsigned int tim_main;
volatile unsigned char UpdateMotor = 0;
volatile unsigned int cntKompass = 0;
volatile unsigned int beeptime = 0;
volatile unsigned char SendSPI = 0, ServoActive = 0, CalculateServoSignals = 1;
uint16_t RemainingPulse = 0;
volatile int16_t ServoNickOffset = (255 / 2) * MULTIPLYER * 16; // initial value near center positon
volatile int16_t ServoRollOffset = (255 / 2) * MULTIPLYER * 16; // initial value near center positon
 
unsigned int BeepMuster = 0xffff;
 
volatile int16_t ServoNickValue = 0;
volatile int16_t ServoRollValue = 0;
 
 
enum {
STOP = 0,
CK = 1,
CK8 = 2,
CK64 = 3,
CK256 = 4,
CK1024 = 5,
T0_FALLING_EDGE = 6,
T0_RISING_EDGE = 7
};
 
 
ISR(TIMER0_OVF_vect) // 9,7kHz
{
static unsigned char cnt_1ms = 1,cnt = 0, compass_active = 0;
unsigned char pieper_ein = 0;
if(SendSPI) SendSPI--;
if(SpektrumTimer) SpektrumTimer--;
if(!cnt--)
{
cnt = 9;
CountMilliseconds++;
cnt_1ms++;
cnt_1ms %= 2;
 
if(!cnt_1ms) UpdateMotor = 1;
if(!(PINC & 0x10)) compass_active = 1;
 
if(beeptime)
{
if(beeptime > 10) beeptime -= 10; else beeptime = 0;
if(beeptime & BeepMuster)
{
pieper_ein = 1;
}
else pieper_ein = 0;
}
else
{
pieper_ein = 0;
BeepMuster = 0xffff;
}
if(pieper_ein)
{
if(PlatinenVersion == 10) PORTD |= (1<<2); // Speaker an PORTD.2
else PORTC |= (1<<7); // Speaker an PORTC.7
}
else
{
if(PlatinenVersion == 10) PORTD &= ~(1<<2);
else PORTC &= ~(1<<7);
}
}
if(compass_active && !NaviDataOkay && EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
if(PINC & 0x10)
{
if(++cntKompass > 1000) compass_active = 0;
}
else
{
if((cntKompass) && (cntKompass < 362))
{
cntKompass += cntKompass / 41;
if(cntKompass > 10) KompassValue = cntKompass - 10; else KompassValue = 0;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
}
cntKompass = 0;
}
}
}
 
 
// -----------------------------------------------------------------------
unsigned int SetDelay (unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
char CheckDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(((t - CountMilliseconds) & 0x8000) >> 9);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
void Delay_ms(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt));
}
 
void Delay_ms_Mess(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt)) if(AdReady) {AdReady = 0; ANALOG_ON;}
}
 
/*****************************************************/
/* Initialize Timer 2 */
/*****************************************************/
// The timer 2 is used to generate the PWM at PD7 (J7)
// to control a camera servo for nick compensation.
void TIMER2_Init(void)
{
uint8_t sreg = SREG;
 
// disable all interrupts before reconfiguration
cli();
 
PORTD &= ~(1<<PORTD7); // set PD7 to low
 
DDRC |= (1<<DDC6); // set PC6 as output (Reset for HEF4017)
HEF4017R_ON;
// Timer/Counter 2 Control Register A
 
// Timer Mode is FastPWM with timer reload at OCR2A (Bits: WGM22 = 1, WGM21 = 1, WGM20 = 1)
// PD7: Normal port operation, OC2A disconnected, (Bits: COM2A1 = 0, COM2A0 = 0)
// PD6: Normal port operation, OC2B disconnected, (Bits: COM2B1 = 0, COM2B0 = 0)
TCCR2A &= ~((1<<COM2A1)|(1<<COM2A0)|(1<<COM2B1)|(1<<COM2B0));
TCCR2A |= (1<<WGM21)|(1<<WGM20);
 
// Timer/Counter 2 Control Register B
 
// Set clock divider for timer 2 to SYSKLOCK/32 = 20MHz / 32 = 625 kHz
// The timer increments from 0x00 to 0xFF with an update rate of 625 kHz or 1.6 us
// hence the timer overflow interrupt frequency is 625 kHz / 256 = 2.44 kHz or 0.4096 ms
 
// divider 32 (Bits: CS022 = 0, CS21 = 1, CS20 = 1)
TCCR2B &= ~((1<<FOC2A)|(1<<FOC2B)|(1<<CS22));
TCCR2B |= (1<<CS21)|(1<<CS20)|(1<<WGM22);
 
// Initialize the Timer/Counter 2 Register
TCNT2 = 0;
 
// Initialize the Output Compare Register A used for PWM generation on port PD7.
OCR2A = 255;
TCCR2A |= (1<<COM2A1); // set or clear at compare match depends on value of COM2A0
 
// Timer/Counter 2 Interrupt Mask Register
// Enable timer output compare match A Interrupt only
TIMSK2 &= ~((1<<OCIE2B)|(1<<TOIE2));
TIMSK2 |= (1<<OCIE2A);
 
SREG = sreg;
}
 
//----------------------------
void Timer_Init(void)
{
tim_main = SetDelay(10);
TCCR0B = CK8;
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM
OCR0A = 0;
OCR0B = 180;
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload
//OCR1 = 0x00;
TIMSK0 |= _BV(TOIE0);
}
 
 
/*****************************************************/
/* Control Servo Position */
/*****************************************************/
 
 
void CalculateServo(void)
{
signed char cosinus, sinus;
signed long nick, roll;
 
cosinus = sintab[EE_Parameter.CamOrientation + 6];
sinus = sintab[EE_Parameter.CamOrientation];
 
if(CalculateServoSignals == 1)
{
nick = (cosinus * IntegralNick) / 128L - (sinus * IntegralRoll) / 128L;
nick = ((long)EE_Parameter.ServoNickComp * nick) / 512L;
ServoNickOffset += ((int16_t)Parameter_ServoNickControl * (MULTIPLYER*16) - ServoNickOffset) / EE_Parameter.ServoManualControlSpeed;
ServoNickValue = ServoNickOffset / 16; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & 0x01)
{ // inverting movement of servo
ServoNickValue += nick;//(int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * nick) / (256L) );
}
else
{ // non inverting movement of servo
ServoNickValue -= nick;
}
// limit servo value to its parameter range definition
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER;
}
else
if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER;
}
if(PlatinenVersion < 20) CalculateServoSignals = 0; else CalculateServoSignals++;
}
else
{
roll = (cosinus * IntegralRoll) / 128L + (sinus * IntegralNick) / 128L;
roll = ((long)EE_Parameter.ServoRollComp * roll) / 512L;
ServoRollOffset += ((int16_t)Parameter_ServoRollControl * (MULTIPLYER*16) - ServoRollOffset) / EE_Parameter.ServoManualControlSpeed;
ServoRollValue = ServoRollOffset/16; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & 0x02)
{ // inverting movement of servo
ServoRollValue += roll;
}
else
{ // non inverting movement of servo
ServoRollValue -= roll;
}
// limit servo value to its parameter range definition
if(ServoRollValue < ((int16_t)EE_Parameter.ServoRollMin * MULTIPLYER) )
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMin * MULTIPLYER;
}
else
if(ServoRollValue > ((int16_t)EE_Parameter.ServoRollMax * MULTIPLYER) )
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMax * MULTIPLYER;
}
CalculateServoSignals = 0;
}
}
 
ISR(TIMER2_COMPA_vect)
{
// frame len 22.5 ms = 14063 * 1.6 us
// stop pulse: 0.3 ms = 188 * 1.6 us
// min servo pulse: 0.6 ms = 375 * 1.6 us
// max servo pulse: 2.4 ms = 1500 * 1.6 us
// resolution: 1500 - 375 = 1125 steps
 
#define IRS_RUNTIME 127
#define PPM_STOPPULSE 188
#define PPM_FRAMELEN (1757 * EE_Parameter.ServoNickRefresh)
#define MINSERVOPULSE 375
#define MAXSERVOPULSE 1500
#define SERVORANGE (MAXSERVOPULSE - MINSERVOPULSE)
 
static uint8_t PulseOutput = 0;
static uint16_t ServoFrameTime = 0;
static uint8_t ServoIndex = 0;
 
 
if(PlatinenVersion < 20)
{
//---------------------------
// Nick servo state machine
//---------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// accumulate time for correct update rate
ServoFrameTime = RemainingPulse;
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
RemainingPulse = PPM_FRAMELEN - ServoFrameTime;
CalculateServoSignals = 1;
}
// set pulse output active
PulseOutput = 1;
}
} // EOF Nick servo state machine
else
{
//-----------------------------------------------------
// PPM state machine, onboard demultiplexed by HEF4017
//-----------------------------------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
 
if(ServoIndex == 0) // if we are at the sync gap
{
RemainingPulse = PPM_FRAMELEN - ServoFrameTime; // generate sync gap by filling time to full frame time
ServoFrameTime = 0; // reset servo frame time
HEF4017R_ON; // enable HEF4017 reset
}
else // servo channels
{
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
switch(ServoIndex) // map servo channels
{
case 1: // Nick Compensation Servo
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
break;
case 2: // Roll Compensation Servo
RemainingPulse += ServoRollValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
break;
case 3:
RemainingPulse += ((int16_t)Parameter_Servo3 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
case 4:
RemainingPulse += ((int16_t)Parameter_Servo4 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
case 5:
RemainingPulse += ((int16_t)Parameter_Servo5 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
default: // other servo channels
RemainingPulse += 2 * PPM_in[ServoIndex]; // add channel value, factor of 2 because timer 1 increments 3.2µs
break;
}
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// substract stop pulse width
RemainingPulse -= PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
}
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
// set pulsewidth to stop pulse width
RemainingPulse = PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
if((ServoActive && SenderOkay > 50) || ServoActive == 2) HEF4017R_OFF; // disable HEF4017 reset
else HEF4017R_ON;
ServoIndex++; // change to next servo channel
if(ServoIndex > EE_Parameter.ServoNickRefresh)
{
CalculateServoSignals = 1;
ServoIndex = 0; // reset to the sync gap
}
}
// set pulse output active
PulseOutput = 1;
}
} // EOF PPM state machine
 
// General pulse output generator
if(RemainingPulse > (255 + IRS_RUNTIME))
{
OCR2A = 255;
RemainingPulse -= 255;
}
else
{
if(RemainingPulse > 255) // this is the 2nd last part
{
if((RemainingPulse - 255) < IRS_RUNTIME)
{
OCR2A = 255 - IRS_RUNTIME;
RemainingPulse -= 255 - IRS_RUNTIME;
 
}
else // last part > ISR_RUNTIME
{
OCR2A = 255;
RemainingPulse -= 255;
}
}
else // this is the last part
{
OCR2A = RemainingPulse;
RemainingPulse = 0;
PulseOutput = 0; // trigger to stop pulse
}
} // EOF general pulse output generator
}
/Spektrum-Diversity/V0.82a/timer0.d
0,0 → 1,3
timer0.o timer0.d : timer0.c main.h old_macros.h printf_P.h timer0.h uart.h \
analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h \
capacity.h eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/timer0.h
0,0 → 1,22
 
#define TIMER_TEILER CK8
#define TIMER_RELOAD_VALUE 250
#define HEF4017R_ON PORTC |= (1<<PORTC6)
#define HEF4017R_OFF PORTC &= ~(1<<PORTC6)
 
void Timer_Init(void);
void TIMER2_Init(void);
void Delay_ms(unsigned int);
void Delay_ms_Mess(unsigned int);
unsigned int SetDelay (unsigned int t);
char CheckDelay (unsigned int t);
void CalculateServo(void);
 
extern volatile unsigned int CountMilliseconds;
extern volatile unsigned char UpdateMotor;
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern unsigned int BeepMuster;
extern volatile unsigned char SendSPI, ServoActive, CalculateServoSignals;
extern volatile int16_t ServoNickValue;
extern volatile int16_t ServoRollValue;
/Spektrum-Diversity/V0.82a/timer0.lst
0,0 → 1,1112
1 .file "timer0.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global __vector_18
12 __vector_18:
13 /* prologue: frame size=0 */
14 0000 1F92 push __zero_reg__
15 0002 0F92 push __tmp_reg__
16 0004 0FB6 in __tmp_reg__,__SREG__
17 0006 0F92 push __tmp_reg__
18 0008 1124 clr __zero_reg__
19 000a 2F93 push r18
20 000c 3F93 push r19
21 000e 5F93 push r21
22 0010 6F93 push r22
23 0012 7F93 push r23
24 0014 8F93 push r24
25 0016 9F93 push r25
26 0018 AF93 push r26
27 001a BF93 push r27
28 /* prologue end (size=14) */
29 001c 8091 0000 lds r24,SendSPI
30 0020 8823 tst r24
31 0022 01F0 breq .L2
32 0024 8091 0000 lds r24,SendSPI
33 0028 8150 subi r24,lo8(-(-1))
34 002a 8093 0000 sts SendSPI,r24
35 .L2:
36 002e 8091 0000 lds r24,SpektrumTimer
37 0032 8823 tst r24
38 0034 01F0 breq .L4
39 0036 8150 subi r24,lo8(-(-1))
40 0038 8093 0000 sts SpektrumTimer,r24
41 .L4:
42 003c 8091 0000 lds r24,cnt.2508
43 0040 8150 subi r24,lo8(-(-1))
44 0042 8093 0000 sts cnt.2508,r24
45 0046 8F3F cpi r24,lo8(-1)
46 0048 01F0 breq .+2
47 004a 00C0 rjmp .L6
48 004c 89E0 ldi r24,lo8(9)
49 004e 8093 0000 sts cnt.2508,r24
50 0052 8091 0000 lds r24,CountMilliseconds
51 0056 9091 0000 lds r25,(CountMilliseconds)+1
52 005a 0196 adiw r24,1
53 005c 9093 0000 sts (CountMilliseconds)+1,r25
54 0060 8093 0000 sts CountMilliseconds,r24
55 0064 8091 0000 lds r24,cnt_1ms.2507
56 0068 8F5F subi r24,lo8(-(1))
57 006a 8170 andi r24,lo8(1)
58 006c 8093 0000 sts cnt_1ms.2507,r24
59 0070 8823 tst r24
60 0072 01F4 brne .L8
61 0074 81E0 ldi r24,lo8(1)
62 0076 8093 0000 sts UpdateMotor,r24
63 .L8:
64 007a 3499 sbic 38-0x20,4
65 007c 00C0 rjmp .L10
66 007e 81E0 ldi r24,lo8(1)
67 0080 8093 0000 sts compass_active.2509,r24
68 .L10:
69 0084 8091 0000 lds r24,beeptime
70 0088 9091 0000 lds r25,(beeptime)+1
71 008c 892B or r24,r25
72 008e 01F0 breq .L12
73 0090 8091 0000 lds r24,beeptime
74 0094 9091 0000 lds r25,(beeptime)+1
75 0098 0B97 sbiw r24,11
76 009a 00F0 brlo .L14
77 009c 8091 0000 lds r24,beeptime
78 00a0 9091 0000 lds r25,(beeptime)+1
79 00a4 0A97 sbiw r24,10
80 00a6 9093 0000 sts (beeptime)+1,r25
81 00aa 8093 0000 sts beeptime,r24
82 00ae 00C0 rjmp .L16
83 .L14:
84 00b0 1092 0000 sts (beeptime)+1,__zero_reg__
85 00b4 1092 0000 sts beeptime,__zero_reg__
86 .L16:
87 00b8 8091 0000 lds r24,beeptime
88 00bc 9091 0000 lds r25,(beeptime)+1
89 00c0 2091 0000 lds r18,BeepMuster
90 00c4 3091 0000 lds r19,(BeepMuster)+1
91 00c8 8223 and r24,r18
92 00ca 9323 and r25,r19
93 00cc 892B or r24,r25
94 00ce 01F0 breq .+2
95 00d0 00C0 rjmp .L17
96 00d2 00C0 rjmp .L18
97 .L12:
98 00d4 8FEF ldi r24,lo8(-1)
99 00d6 9FEF ldi r25,hi8(-1)
100 00d8 9093 0000 sts (BeepMuster)+1,r25
101 00dc 8093 0000 sts BeepMuster,r24
102 .L18:
103 00e0 8091 0000 lds r24,PlatinenVersion
104 00e4 8A30 cpi r24,lo8(10)
105 00e6 01F4 brne .L37
106 00e8 00C0 rjmp .L19
107 .L21:
108 00ea 5A9A sbi 43-0x20,2
109 00ec 00C0 rjmp .L6
110 .L38:
111 00ee 479A sbi 40-0x20,7
112 00f0 00C0 rjmp .L6
113 .L19:
114 00f2 5A98 cbi 43-0x20,2
115 00f4 00C0 rjmp .L6
116 .L37:
117 00f6 4798 cbi 40-0x20,7
118 .L6:
119 00f8 8091 0000 lds r24,compass_active.2509
120 00fc 8823 tst r24
121 00fe 01F4 brne .+2
122 0100 00C0 rjmp .L36
123 0102 8091 0000 lds r24,NaviDataOkay
124 0106 8823 tst r24
125 0108 01F0 breq .+2
126 010a 00C0 rjmp .L36
127 010c 8091 0000 lds r24,EE_Parameter+13
128 0110 83FF sbrs r24,3
129 0112 00C0 rjmp .L36
130 0114 349B sbis 38-0x20,4
131 0116 00C0 rjmp .L27
132 0118 8091 0000 lds r24,cntKompass
133 011c 9091 0000 lds r25,(cntKompass)+1
134 0120 0196 adiw r24,1
135 0122 9093 0000 sts (cntKompass)+1,r25
136 0126 8093 0000 sts cntKompass,r24
137 012a 8091 0000 lds r24,cntKompass
138 012e 9091 0000 lds r25,(cntKompass)+1
139 0132 895E subi r24,lo8(1001)
140 0134 9340 sbci r25,hi8(1001)
141 0136 00F4 brsh .+2
142 0138 00C0 rjmp .L36
143 013a 1092 0000 sts compass_active.2509,__zero_reg__
144 013e 00C0 rjmp .L36
145 .L27:
146 0140 8091 0000 lds r24,cntKompass
147 0144 9091 0000 lds r25,(cntKompass)+1
148 0148 892B or r24,r25
149 014a 01F4 brne .+2
150 014c 00C0 rjmp .L30
151 014e 8091 0000 lds r24,cntKompass
152 0152 9091 0000 lds r25,(cntKompass)+1
153 0156 8A56 subi r24,lo8(362)
154 0158 9140 sbci r25,hi8(362)
155 015a 00F4 brsh .L30
156 015c 2091 0000 lds r18,cntKompass
157 0160 3091 0000 lds r19,(cntKompass)+1
158 0164 8091 0000 lds r24,cntKompass
159 0168 9091 0000 lds r25,(cntKompass)+1
160 016c 69E2 ldi r22,lo8(41)
161 016e 70E0 ldi r23,hi8(41)
162 0170 0E94 0000 call __udivmodhi4
163 0174 260F add r18,r22
164 0176 371F adc r19,r23
165 0178 3093 0000 sts (cntKompass)+1,r19
166 017c 2093 0000 sts cntKompass,r18
167 0180 8091 0000 lds r24,cntKompass
168 0184 9091 0000 lds r25,(cntKompass)+1
169 0188 0B97 sbiw r24,11
170 018a 00F0 brlo .L33
171 018c 8091 0000 lds r24,cntKompass
172 0190 9091 0000 lds r25,(cntKompass)+1
173 0194 0A97 sbiw r24,10
174 0196 9093 0000 sts (KompassValue)+1,r25
175 019a 8093 0000 sts KompassValue,r24
176 019e 00C0 rjmp .L35
177 .L33:
178 01a0 1092 0000 sts (KompassValue)+1,__zero_reg__
179 01a4 1092 0000 sts KompassValue,__zero_reg__
180 .L35:
181 01a8 8091 0000 lds r24,KompassValue
182 01ac 9091 0000 lds r25,(KompassValue)+1
183 01b0 845E subi r24,lo8(-(540))
184 01b2 9D4F sbci r25,hi8(-(540))
185 01b4 2091 0000 lds r18,KompassStartwert
186 01b8 3091 0000 lds r19,(KompassStartwert)+1
187 01bc 821B sub r24,r18
188 01be 930B sbc r25,r19
189 01c0 68E6 ldi r22,lo8(360)
190 01c2 71E0 ldi r23,hi8(360)
191 01c4 0E94 0000 call __divmodhi4
192 01c8 845B subi r24,lo8(-(-180))
193 01ca 9040 sbci r25,hi8(-(-180))
194 01cc 9093 0000 sts (KompassRichtung)+1,r25
195 01d0 8093 0000 sts KompassRichtung,r24
196 .L30:
197 01d4 1092 0000 sts (cntKompass)+1,__zero_reg__
198 01d8 1092 0000 sts cntKompass,__zero_reg__
199 01dc 00C0 rjmp .L36
200 .L17:
201 01de 8091 0000 lds r24,PlatinenVersion
202 01e2 8A30 cpi r24,lo8(10)
203 01e4 01F0 breq .+2
204 01e6 00C0 rjmp .L38
205 01e8 00C0 rjmp .L21
206 .L36:
207 /* epilogue: frame size=0 */
208 01ea BF91 pop r27
209 01ec AF91 pop r26
210 01ee 9F91 pop r25
211 01f0 8F91 pop r24
212 01f2 7F91 pop r23
213 01f4 6F91 pop r22
214 01f6 5F91 pop r21
215 01f8 3F91 pop r19
216 01fa 2F91 pop r18
217 01fc 0F90 pop __tmp_reg__
218 01fe 0FBE out __SREG__,__tmp_reg__
219 0200 0F90 pop __tmp_reg__
220 0202 1F90 pop __zero_reg__
221 0204 1895 reti
222 /* epilogue end (size=14) */
223 /* function __vector_18 size 263 (235) */
225 .global SetDelay
227 SetDelay:
228 /* prologue: frame size=0 */
229 /* prologue end (size=0) */
230 0206 2091 0000 lds r18,CountMilliseconds
231 020a 3091 0000 lds r19,(CountMilliseconds)+1
232 020e 2F5F subi r18,lo8(-(1))
233 0210 3F4F sbci r19,hi8(-(1))
234 0212 820F add r24,r18
235 0214 931F adc r25,r19
236 /* epilogue: frame size=0 */
237 0216 0895 ret
238 /* epilogue end (size=1) */
239 /* function SetDelay size 9 (8) */
241 .global CheckDelay
243 CheckDelay:
244 /* prologue: frame size=0 */
245 /* prologue end (size=0) */
246 0218 2091 0000 lds r18,CountMilliseconds
247 021c 3091 0000 lds r19,(CountMilliseconds)+1
248 0220 821B sub r24,r18
249 0222 930B sbc r25,r19
250 0224 892F mov r24,r25
251 0226 9927 clr r25
252 0228 8695 lsr r24
253 022a 8074 andi r24,lo8(64)
254 022c 90E0 ldi r25,lo8(0)
255 /* epilogue: frame size=0 */
256 022e 0895 ret
257 /* epilogue end (size=1) */
258 /* function CheckDelay size 12 (11) */
260 .global TIMER2_Init
262 TIMER2_Init:
263 /* prologue: frame size=0 */
264 /* prologue end (size=0) */
265 0230 9FB7 in r25,95-0x20
266 /* #APP */
267 0232 F894 cli
268 /* #NOAPP */
269 0234 5F98 cbi 43-0x20,7
270 0236 3E9A sbi 39-0x20,6
271 0238 469A sbi 40-0x20,6
272 023a A0EB ldi r26,lo8(176)
273 023c B0E0 ldi r27,hi8(176)
274 023e 8C91 ld r24,X
275 0240 8F70 andi r24,lo8(15)
276 0242 8C93 st X,r24
277 0244 8C91 ld r24,X
278 0246 8360 ori r24,lo8(3)
279 0248 8C93 st X,r24
280 024a E1EB ldi r30,lo8(177)
281 024c F0E0 ldi r31,hi8(177)
282 024e 8081 ld r24,Z
283 0250 8B73 andi r24,lo8(59)
284 0252 8083 st Z,r24
285 0254 8081 ld r24,Z
286 0256 8B60 ori r24,lo8(11)
287 0258 8083 st Z,r24
288 025a 1092 B200 sts 178,__zero_reg__
289 025e 8FEF ldi r24,lo8(-1)
290 0260 8093 B300 sts 179,r24
291 0264 8C91 ld r24,X
292 0266 8068 ori r24,lo8(-128)
293 0268 8C93 st X,r24
294 026a E0E7 ldi r30,lo8(112)
295 026c F0E0 ldi r31,hi8(112)
296 026e 8081 ld r24,Z
297 0270 8A7F andi r24,lo8(-6)
298 0272 8083 st Z,r24
299 0274 8081 ld r24,Z
300 0276 8260 ori r24,lo8(2)
301 0278 8083 st Z,r24
302 027a 9FBF out 95-0x20,r25
303 /* epilogue: frame size=0 */
304 027c 0895 ret
305 /* epilogue end (size=1) */
306 /* function TIMER2_Init size 40 (39) */
308 .global CalculateServo
310 CalculateServo:
311 /* prologue: frame size=2 */
312 027e A2E0 ldi r26,lo8(2)
313 0280 B0E0 ldi r27,hi8(2)
314 0282 E0E0 ldi r30,pm_lo8(1f)
315 0284 F0E0 ldi r31,pm_hi8(1f)
316 0286 0C94 0000 jmp __prologue_saves__+0
317 1:
318 /* prologue end (size=6) */
319 028a E091 0000 lds r30,EE_Parameter+55
320 028e F0E0 ldi r31,lo8(0)
321 0290 E050 subi r30,lo8(-(sintab))
322 0292 F040 sbci r31,hi8(-(sintab))
323 0294 8681 ldd r24,Z+6
324 0296 9081 ld r25,Z
325 0298 2091 0000 lds r18,CalculateServoSignals
326 029c 482F mov r20,r24
327 029e 5527 clr r21
328 02a0 47FD sbrc r20,7
329 02a2 5095 com r21
330 02a4 652F mov r22,r21
331 02a6 752F mov r23,r21
332 02a8 6090 0000 lds r6,IntegralNick
333 02ac 7090 0000 lds r7,(IntegralNick)+1
334 02b0 8090 0000 lds r8,(IntegralNick)+2
335 02b4 9090 0000 lds r9,(IntegralNick)+3
336 02b8 292E mov r2,r25
337 02ba 3324 clr r3
338 02bc 27FC sbrc r2,7
339 02be 3094 com r3
340 02c0 432C mov r4,r3
341 02c2 532C mov r5,r3
342 02c4 A090 0000 lds r10,IntegralRoll
343 02c8 B090 0000 lds r11,(IntegralRoll)+1
344 02cc C090 0000 lds r12,(IntegralRoll)+2
345 02d0 D090 0000 lds r13,(IntegralRoll)+3
346 02d4 8091 0000 lds r24,EE_Parameter+54
347 02d8 8983 std Y+1,r24
348 02da E091 0000 lds r30,EE_Parameter+101
349 02de EA83 std Y+2,r30
350 02e0 2130 cpi r18,lo8(1)
351 02e2 01F0 breq .+2
352 02e4 00C0 rjmp .L46
353 02e6 CB01 movw r24,r22
354 02e8 BA01 movw r22,r20
355 02ea A401 movw r20,r8
356 02ec 9301 movw r18,r6
357 02ee 0E94 0000 call __mulsi3
358 02f2 20E8 ldi r18,lo8(128)
359 02f4 30E0 ldi r19,hi8(128)
360 02f6 40E0 ldi r20,hlo8(128)
361 02f8 50E0 ldi r21,hhi8(128)
362 02fa 0E94 0000 call __divmodsi4
363 02fe 7901 movw r14,r18
364 0300 8A01 movw r16,r20
365 0302 C201 movw r24,r4
366 0304 B101 movw r22,r2
367 0306 A601 movw r20,r12
368 0308 9501 movw r18,r10
369 030a 0E94 0000 call __mulsi3
370 030e 20E8 ldi r18,lo8(128)
371 0310 30E0 ldi r19,hi8(128)
372 0312 40E0 ldi r20,hlo8(128)
373 0314 50E0 ldi r21,hhi8(128)
374 0316 0E94 0000 call __divmodsi4
375 031a E21A sub r14,r18
376 031c F30A sbc r15,r19
377 031e 040B sbc r16,r20
378 0320 150B sbc r17,r21
379 0322 2091 0000 lds r18,EE_Parameter+46
380 0326 30E0 ldi r19,lo8(0)
381 0328 40E0 ldi r20,lo8(0)
382 032a 50E0 ldi r21,hi8(0)
383 032c C801 movw r24,r16
384 032e B701 movw r22,r14
385 0330 0E94 0000 call __mulsi3
386 0334 20E0 ldi r18,lo8(512)
387 0336 32E0 ldi r19,hi8(512)
388 0338 40E0 ldi r20,hlo8(512)
389 033a 50E0 ldi r21,hhi8(512)
390 033c 0E94 0000 call __divmodsi4
391 0340 5901 movw r10,r18
392 0342 6A01 movw r12,r20
393 0344 2091 0000 lds r18,ServoNickOffset
394 0348 3091 0000 lds r19,(ServoNickOffset)+1
395 034c 4091 0000 lds r20,ServoNickOffset
396 0350 5091 0000 lds r21,(ServoNickOffset)+1
397 0354 8091 0000 lds r24,Parameter_ServoNickControl
398 0358 90E0 ldi r25,lo8(0)
399 035a F6E0 ldi r31,6
400 035c 880F 1: lsl r24
401 035e 991F rol r25
402 0360 FA95 dec r31
403 0362 01F4 brne 1b
404 0364 F981 ldd r31,Y+1
405 0366 6F2F mov r22,r31
406 0368 70E0 ldi r23,lo8(0)
407 036a 841B sub r24,r20
408 036c 950B sbc r25,r21
409 036e 0E94 0000 call __divmodhi4
410 0372 260F add r18,r22
411 0374 371F adc r19,r23
412 0376 3093 0000 sts (ServoNickOffset)+1,r19
413 037a 2093 0000 sts ServoNickOffset,r18
414 037e 8091 0000 lds r24,ServoNickOffset
415 0382 9091 0000 lds r25,(ServoNickOffset)+1
416 0386 60E1 ldi r22,lo8(16)
417 0388 70E0 ldi r23,hi8(16)
418 038a 0E94 0000 call __divmodhi4
419 038e 7093 0000 sts (ServoNickValue)+1,r23
420 0392 6093 0000 sts ServoNickValue,r22
421 0396 8A81 ldd r24,Y+2
422 0398 80FF sbrs r24,0
423 039a 00C0 rjmp .L48
424 039c 8091 0000 lds r24,ServoNickValue
425 03a0 9091 0000 lds r25,(ServoNickValue)+1
426 03a4 8A0D add r24,r10
427 03a6 9B1D adc r25,r11
428 03a8 00C0 rjmp .L66
429 .L48:
430 03aa 8091 0000 lds r24,ServoNickValue
431 03ae 9091 0000 lds r25,(ServoNickValue)+1
432 03b2 8A19 sub r24,r10
433 03b4 9B09 sbc r25,r11
434 .L66:
435 03b6 9093 0000 sts (ServoNickValue)+1,r25
436 03ba 8093 0000 sts ServoNickValue,r24
437 03be 2091 0000 lds r18,ServoNickValue
438 03c2 3091 0000 lds r19,(ServoNickValue)+1
439 03c6 8091 0000 lds r24,EE_Parameter+47
440 03ca 90E0 ldi r25,lo8(0)
441 03cc 880F lsl r24
442 03ce 991F rol r25
443 03d0 880F lsl r24
444 03d2 991F rol r25
445 03d4 2817 cp r18,r24
446 03d6 3907 cpc r19,r25
447 03d8 04F0 brlt .L67
448 03da 2091 0000 lds r18,ServoNickValue
449 03de 3091 0000 lds r19,(ServoNickValue)+1
450 03e2 8091 0000 lds r24,EE_Parameter+48
451 03e6 90E0 ldi r25,lo8(0)
452 03e8 880F lsl r24
453 03ea 991F rol r25
454 03ec 880F lsl r24
455 03ee 991F rol r25
456 03f0 8217 cp r24,r18
457 03f2 9307 cpc r25,r19
458 03f4 04F4 brge .L53
459 .L67:
460 03f6 9093 0000 sts (ServoNickValue)+1,r25
461 03fa 8093 0000 sts ServoNickValue,r24
462 .L53:
463 03fe 8091 0000 lds r24,PlatinenVersion
464 0402 8431 cpi r24,lo8(20)
465 0404 00F4 brsh .+2
466 0406 00C0 rjmp .L63
467 0408 8091 0000 lds r24,CalculateServoSignals
468 040c 8F5F subi r24,lo8(-(1))
469 040e 8093 0000 sts CalculateServoSignals,r24
470 0412 00C0 rjmp .L65
471 .L46:
472 0414 CB01 movw r24,r22
473 0416 BA01 movw r22,r20
474 0418 A601 movw r20,r12
475 041a 9501 movw r18,r10
476 041c 0E94 0000 call __mulsi3
477 0420 20E8 ldi r18,lo8(128)
478 0422 30E0 ldi r19,hi8(128)
479 0424 40E0 ldi r20,hlo8(128)
480 0426 50E0 ldi r21,hhi8(128)
481 0428 0E94 0000 call __divmodsi4
482 042c 7901 movw r14,r18
483 042e 8A01 movw r16,r20
484 0430 C201 movw r24,r4
485 0432 B101 movw r22,r2
486 0434 A401 movw r20,r8
487 0436 9301 movw r18,r6
488 0438 0E94 0000 call __mulsi3
489 043c 20E8 ldi r18,lo8(128)
490 043e 30E0 ldi r19,hi8(128)
491 0440 40E0 ldi r20,hlo8(128)
492 0442 50E0 ldi r21,hhi8(128)
493 0444 0E94 0000 call __divmodsi4
494 0448 E20E add r14,r18
495 044a F31E adc r15,r19
496 044c 041F adc r16,r20
497 044e 151F adc r17,r21
498 0450 2091 0000 lds r18,EE_Parameter+50
499 0454 30E0 ldi r19,lo8(0)
500 0456 40E0 ldi r20,lo8(0)
501 0458 50E0 ldi r21,hi8(0)
502 045a C801 movw r24,r16
503 045c B701 movw r22,r14
504 045e 0E94 0000 call __mulsi3
505 0462 20E0 ldi r18,lo8(512)
506 0464 32E0 ldi r19,hi8(512)
507 0466 40E0 ldi r20,hlo8(512)
508 0468 50E0 ldi r21,hhi8(512)
509 046a 0E94 0000 call __divmodsi4
510 046e 5901 movw r10,r18
511 0470 6A01 movw r12,r20
512 0472 2091 0000 lds r18,ServoRollOffset
513 0476 3091 0000 lds r19,(ServoRollOffset)+1
514 047a 4091 0000 lds r20,ServoRollOffset
515 047e 5091 0000 lds r21,(ServoRollOffset)+1
516 0482 8091 0000 lds r24,Parameter_ServoRollControl
517 0486 90E0 ldi r25,lo8(0)
518 0488 66E0 ldi r22,6
519 048a 880F 1: lsl r24
520 048c 991F rol r25
521 048e 6A95 dec r22
522 0490 01F4 brne 1b
523 0492 E981 ldd r30,Y+1
524 0494 6E2F mov r22,r30
525 0496 70E0 ldi r23,lo8(0)
526 0498 841B sub r24,r20
527 049a 950B sbc r25,r21
528 049c 0E94 0000 call __divmodhi4
529 04a0 260F add r18,r22
530 04a2 371F adc r19,r23
531 04a4 3093 0000 sts (ServoRollOffset)+1,r19
532 04a8 2093 0000 sts ServoRollOffset,r18
533 04ac 8091 0000 lds r24,ServoRollOffset
534 04b0 9091 0000 lds r25,(ServoRollOffset)+1
535 04b4 60E1 ldi r22,lo8(16)
536 04b6 70E0 ldi r23,hi8(16)
537 04b8 0E94 0000 call __divmodhi4
538 04bc 7093 0000 sts (ServoRollValue)+1,r23
539 04c0 6093 0000 sts ServoRollValue,r22
540 04c4 FA81 ldd r31,Y+2
541 04c6 F1FF sbrs r31,1
542 04c8 00C0 rjmp .L58
543 04ca 8091 0000 lds r24,ServoRollValue
544 04ce 9091 0000 lds r25,(ServoRollValue)+1
545 04d2 8A0D add r24,r10
546 04d4 9B1D adc r25,r11
547 04d6 00C0 rjmp .L68
548 .L58:
549 04d8 8091 0000 lds r24,ServoRollValue
550 04dc 9091 0000 lds r25,(ServoRollValue)+1
551 04e0 8A19 sub r24,r10
552 04e2 9B09 sbc r25,r11
553 .L68:
554 04e4 9093 0000 sts (ServoRollValue)+1,r25
555 04e8 8093 0000 sts ServoRollValue,r24
556 04ec 2091 0000 lds r18,ServoRollValue
557 04f0 3091 0000 lds r19,(ServoRollValue)+1
558 04f4 8091 0000 lds r24,EE_Parameter+51
559 04f8 90E0 ldi r25,lo8(0)
560 04fa 880F lsl r24
561 04fc 991F rol r25
562 04fe 880F lsl r24
563 0500 991F rol r25
564 0502 2817 cp r18,r24
565 0504 3907 cpc r19,r25
566 0506 04F0 brlt .L69
567 0508 2091 0000 lds r18,ServoRollValue
568 050c 3091 0000 lds r19,(ServoRollValue)+1
569 0510 8091 0000 lds r24,EE_Parameter+52
570 0514 90E0 ldi r25,lo8(0)
571 0516 880F lsl r24
572 0518 991F rol r25
573 051a 880F lsl r24
574 051c 991F rol r25
575 051e 8217 cp r24,r18
576 0520 9307 cpc r25,r19
577 0522 04F4 brge .L63
578 .L69:
579 0524 9093 0000 sts (ServoRollValue)+1,r25
580 0528 8093 0000 sts ServoRollValue,r24
581 .L63:
582 052c 1092 0000 sts CalculateServoSignals,__zero_reg__
583 .L65:
584 /* epilogue: frame size=2 */
585 0530 E2E1 ldi r30,18
586 0532 CE5F subi r28,-2
587 0534 0C94 0000 jmp __epilogue_restores__+0
588 /* epilogue end (size=4) */
589 /* function CalculateServo size 349 (339) */
591 .global __vector_9
593 __vector_9:
594 /* prologue: frame size=0 */
595 0538 1F92 push __zero_reg__
596 053a 0F92 push __tmp_reg__
597 053c 0FB6 in __tmp_reg__,__SREG__
598 053e 0F92 push __tmp_reg__
599 0540 1124 clr __zero_reg__
600 0542 2F93 push r18
601 0544 3F93 push r19
602 0546 4F93 push r20
603 0548 5F93 push r21
604 054a 8F93 push r24
605 054c 9F93 push r25
606 054e EF93 push r30
607 0550 FF93 push r31
608 /* prologue end (size=13) */
609 0552 8091 0000 lds r24,PlatinenVersion
610 0556 9091 0000 lds r25,PulseOutput.2750
611 055a 8431 cpi r24,lo8(20)
612 055c 00F0 brlo .+2
613 055e 00C0 rjmp .L71
614 0560 9923 tst r25
615 0562 01F0 breq .+2
616 0564 00C0 rjmp .L73
617 0566 8091 B000 lds r24,176
618 056a 86FF sbrs r24,6
619 056c 00C0 rjmp .L75
620 056e 8091 B000 lds r24,176
621 0572 8F7B andi r24,lo8(-65)
622 0574 8093 B000 sts 176,r24
623 0578 8091 0000 lds r24,ServoNickValue
624 057c 9091 0000 lds r25,(ServoNickValue)+1
625 0580 8755 subi r24,lo8(-(425))
626 0582 9E4F sbci r25,hi8(-(425))
627 0584 9093 0000 sts (RemainingPulse)+1,r25
628 0588 8093 0000 sts RemainingPulse,r24
629 058c 25E0 ldi r18,hi8(1501)
630 058e 8D3D cpi r24,lo8(1501)
631 0590 9207 cpc r25,r18
632 0592 00F0 brlo .L77
633 0594 8CED ldi r24,lo8(1500)
634 0596 95E0 ldi r25,hi8(1500)
635 0598 00C0 rjmp .L114
636 .L77:
637 059a 8757 subi r24,lo8(375)
638 059c 9140 sbci r25,hi8(375)
639 059e 00F4 brsh .L79
640 05a0 87E7 ldi r24,lo8(375)
641 05a2 91E0 ldi r25,hi8(375)
642 .L114:
643 05a4 9093 0000 sts (RemainingPulse)+1,r25
644 05a8 8093 0000 sts RemainingPulse,r24
645 .L79:
646 05ac 8091 0000 lds r24,RemainingPulse
647 05b0 9091 0000 lds r25,(RemainingPulse)+1
648 05b4 00C0 rjmp .L119
649 .L75:
650 05b6 8091 B000 lds r24,176
651 05ba 8064 ori r24,lo8(64)
652 05bc 8093 B000 sts 176,r24
653 05c0 8091 0000 lds r24,EE_Parameter+53
654 05c4 90E0 ldi r25,lo8(0)
655 05c6 2DED ldi r18,lo8(1757)
656 05c8 36E0 ldi r19,hi8(1757)
657 05ca AC01 movw r20,r24
658 05cc 429F mul r20,r18
659 05ce C001 movw r24,r0
660 05d0 439F mul r20,r19
661 05d2 900D add r25,r0
662 05d4 529F mul r21,r18
663 05d6 900D add r25,r0
664 05d8 1124 clr r1
665 05da 2091 0000 lds r18,ServoFrameTime.2751
666 05de 3091 0000 lds r19,(ServoFrameTime.2751)+1
667 05e2 821B sub r24,r18
668 05e4 930B sbc r25,r19
669 05e6 9093 0000 sts (RemainingPulse)+1,r25
670 05ea 8093 0000 sts RemainingPulse,r24
671 05ee 81E0 ldi r24,lo8(1)
672 05f0 8093 0000 sts CalculateServoSignals,r24
673 05f4 00C0 rjmp .L87
674 .L71:
675 05f6 9923 tst r25
676 05f8 01F0 breq .+2
677 05fa 00C0 rjmp .L73
678 05fc 8091 B000 lds r24,176
679 0600 86FF sbrs r24,6
680 0602 00C0 rjmp .L83
681 0604 8091 B000 lds r24,176
682 0608 8F7B andi r24,lo8(-65)
683 060a 8093 B000 sts 176,r24
684 060e E091 0000 lds r30,ServoIndex.2752
685 0612 EE23 tst r30
686 0614 01F4 brne .L85
687 0616 8091 0000 lds r24,EE_Parameter+53
688 061a 90E0 ldi r25,lo8(0)
689 061c 2DED ldi r18,lo8(1757)
690 061e 36E0 ldi r19,hi8(1757)
691 0620 AC01 movw r20,r24
692 0622 429F mul r20,r18
693 0624 C001 movw r24,r0
694 0626 439F mul r20,r19
695 0628 900D add r25,r0
696 062a 529F mul r21,r18
697 062c 900D add r25,r0
698 062e 1124 clr r1
699 0630 2091 0000 lds r18,ServoFrameTime.2751
700 0634 3091 0000 lds r19,(ServoFrameTime.2751)+1
701 0638 821B sub r24,r18
702 063a 930B sbc r25,r19
703 063c 9093 0000 sts (RemainingPulse)+1,r25
704 0640 8093 0000 sts RemainingPulse,r24
705 0644 1092 0000 sts (ServoFrameTime.2751)+1,__zero_reg__
706 0648 1092 0000 sts ServoFrameTime.2751,__zero_reg__
707 064c 469A sbi 40-0x20,6
708 064e 00C0 rjmp .L87
709 .L85:
710 0650 89EA ldi r24,lo8(937)
711 0652 93E0 ldi r25,hi8(937)
712 0654 9093 0000 sts (RemainingPulse)+1,r25
713 0658 8093 0000 sts RemainingPulse,r24
714 065c E330 cpi r30,lo8(3)
715 065e 01F0 breq .L91
716 0660 E430 cpi r30,lo8(4)
717 0662 00F4 brsh .L94
718 0664 E130 cpi r30,lo8(1)
719 0666 01F0 breq .L89
720 0668 E230 cpi r30,lo8(2)
721 066a 01F4 brne .L88
722 066c 00C0 rjmp .L90
723 .L94:
724 066e E430 cpi r30,lo8(4)
725 0670 01F0 breq .L92
726 0672 E530 cpi r30,lo8(5)
727 0674 01F4 brne .L88
728 0676 00C0 rjmp .L93
729 .L89:
730 0678 8091 0000 lds r24,ServoNickValue
731 067c 9091 0000 lds r25,(ServoNickValue)+1
732 0680 00C0 rjmp .L118
733 .L90:
734 0682 8091 0000 lds r24,ServoRollValue
735 0686 9091 0000 lds r25,(ServoRollValue)+1
736 068a 00C0 rjmp .L118
737 .L91:
738 068c 8091 0000 lds r24,Parameter_Servo3
739 0690 00C0 rjmp .L120
740 .L92:
741 0692 8091 0000 lds r24,Parameter_Servo4
742 0696 00C0 rjmp .L120
743 .L93:
744 0698 8091 0000 lds r24,Parameter_Servo5
745 .L120:
746 069c 90E0 ldi r25,lo8(0)
747 069e 880F lsl r24
748 06a0 991F rol r25
749 06a2 880F lsl r24
750 06a4 991F rol r25
751 .L118:
752 06a6 8755 subi r24,lo8(-(425))
753 06a8 9E4F sbci r25,hi8(-(425))
754 06aa 00C0 rjmp .L115
755 .L88:
756 06ac F0E0 ldi r31,lo8(0)
757 06ae EE0F lsl r30
758 06b0 FF1F rol r31
759 06b2 E050 subi r30,lo8(-(PPM_in))
760 06b4 F040 sbci r31,hi8(-(PPM_in))
761 06b6 8081 ld r24,Z
762 06b8 9181 ldd r25,Z+1
763 06ba 880F lsl r24
764 06bc 991F rol r25
765 06be 8755 subi r24,lo8(-(937))
766 06c0 9C4F sbci r25,hi8(-(937))
767 .L115:
768 06c2 9093 0000 sts (RemainingPulse)+1,r25
769 06c6 8093 0000 sts RemainingPulse,r24
770 06ca 8091 0000 lds r24,RemainingPulse
771 06ce 9091 0000 lds r25,(RemainingPulse)+1
772 06d2 55E0 ldi r21,hi8(1501)
773 06d4 8D3D cpi r24,lo8(1501)
774 06d6 9507 cpc r25,r21
775 06d8 00F0 brlo .L96
776 06da 8CED ldi r24,lo8(1500)
777 06dc 95E0 ldi r25,hi8(1500)
778 06de 00C0 rjmp .L116
779 .L96:
780 06e0 8757 subi r24,lo8(375)
781 06e2 9140 sbci r25,hi8(375)
782 06e4 00F4 brsh .L98
783 06e6 87E7 ldi r24,lo8(375)
784 06e8 91E0 ldi r25,hi8(375)
785 .L116:
786 06ea 9093 0000 sts (RemainingPulse)+1,r25
787 06ee 8093 0000 sts RemainingPulse,r24
788 .L98:
789 06f2 2091 0000 lds r18,RemainingPulse
790 06f6 3091 0000 lds r19,(RemainingPulse)+1
791 06fa 2C5B subi r18,lo8(-(-188))
792 06fc 3040 sbci r19,hi8(-(-188))
793 06fe 3093 0000 sts (RemainingPulse)+1,r19
794 0702 2093 0000 sts RemainingPulse,r18
795 0706 8091 0000 lds r24,ServoFrameTime.2751
796 070a 9091 0000 lds r25,(ServoFrameTime.2751)+1
797 070e 820F add r24,r18
798 0710 931F adc r25,r19
799 .L119:
800 0712 9093 0000 sts (ServoFrameTime.2751)+1,r25
801 0716 8093 0000 sts ServoFrameTime.2751,r24
802 071a 00C0 rjmp .L87
803 .L83:
804 071c 8091 B000 lds r24,176
805 0720 8064 ori r24,lo8(64)
806 0722 8093 B000 sts 176,r24
807 0726 8CEB ldi r24,lo8(188)
808 0728 90E0 ldi r25,hi8(188)
809 072a 9093 0000 sts (RemainingPulse)+1,r25
810 072e 8093 0000 sts RemainingPulse,r24
811 0732 8091 0000 lds r24,ServoFrameTime.2751
812 0736 9091 0000 lds r25,(ServoFrameTime.2751)+1
813 073a 8454 subi r24,lo8(-(188))
814 073c 9F4F sbci r25,hi8(-(188))
815 073e 9093 0000 sts (ServoFrameTime.2751)+1,r25
816 0742 8093 0000 sts ServoFrameTime.2751,r24
817 0746 8091 0000 lds r24,ServoActive
818 074a 8823 tst r24
819 074c 01F0 breq .L100
820 074e 8091 0000 lds r24,SenderOkay
821 0752 8333 cpi r24,lo8(51)
822 0754 00F4 brsh .L102
823 .L100:
824 0756 8091 0000 lds r24,ServoActive
825 075a 8230 cpi r24,lo8(2)
826 075c 01F4 brne .L103
827 .L102:
828 075e 4698 cbi 40-0x20,6
829 0760 00C0 rjmp .L104
830 .L103:
831 0762 469A sbi 40-0x20,6
832 .L104:
833 0764 8091 0000 lds r24,ServoIndex.2752
834 0768 8F5F subi r24,lo8(-(1))
835 076a 8093 0000 sts ServoIndex.2752,r24
836 076e 9091 0000 lds r25,EE_Parameter+53
837 0772 9817 cp r25,r24
838 0774 00F4 brsh .L87
839 0776 81E0 ldi r24,lo8(1)
840 0778 8093 0000 sts CalculateServoSignals,r24
841 077c 1092 0000 sts ServoIndex.2752,__zero_reg__
842 .L87:
843 0780 81E0 ldi r24,lo8(1)
844 0782 8093 0000 sts PulseOutput.2750,r24
845 .L73:
846 0786 2091 0000 lds r18,RemainingPulse
847 078a 3091 0000 lds r19,(RemainingPulse)+1
848 078e 41E0 ldi r20,hi8(383)
849 0790 2F37 cpi r18,lo8(383)
850 0792 3407 cpc r19,r20
851 0794 00F0 brlo .L106
852 0796 8FEF ldi r24,lo8(-1)
853 0798 8093 B300 sts 179,r24
854 079c 2F5F subi r18,lo8(-(-255))
855 079e 3040 sbci r19,hi8(-(-255))
856 07a0 00C0 rjmp .L117
857 .L106:
858 07a2 2F3F cpi r18,255
859 07a4 3105 cpc r19,__zero_reg__
860 07a6 01F0 breq .L109
861 07a8 00F0 brlo .L109
862 07aa 51E0 ldi r21,hi8(382)
863 07ac 2E37 cpi r18,lo8(382)
864 07ae 3507 cpc r19,r21
865 07b0 01F0 breq .L111
866 07b2 80E8 ldi r24,lo8(-128)
867 07b4 8093 B300 sts 179,r24
868 07b8 2058 subi r18,lo8(-(-128))
869 07ba 3040 sbci r19,hi8(-(-128))
870 .L117:
871 07bc 3093 0000 sts (RemainingPulse)+1,r19
872 07c0 2093 0000 sts RemainingPulse,r18
873 07c4 00C0 rjmp .L113
874 .L111:
875 07c6 8FEF ldi r24,lo8(-1)
876 07c8 8093 B300 sts 179,r24
877 07cc 8FE7 ldi r24,lo8(127)
878 07ce 90E0 ldi r25,hi8(127)
879 07d0 9093 0000 sts (RemainingPulse)+1,r25
880 07d4 8093 0000 sts RemainingPulse,r24
881 07d8 00C0 rjmp .L113
882 .L109:
883 07da 2093 B300 sts 179,r18
884 07de 1092 0000 sts (RemainingPulse)+1,__zero_reg__
885 07e2 1092 0000 sts RemainingPulse,__zero_reg__
886 07e6 1092 0000 sts PulseOutput.2750,__zero_reg__
887 .L113:
888 /* epilogue: frame size=0 */
889 07ea FF91 pop r31
890 07ec EF91 pop r30
891 07ee 9F91 pop r25
892 07f0 8F91 pop r24
893 07f2 5F91 pop r21
894 07f4 4F91 pop r20
895 07f6 3F91 pop r19
896 07f8 2F91 pop r18
897 07fa 0F90 pop __tmp_reg__
898 07fc 0FBE out __SREG__,__tmp_reg__
899 07fe 0F90 pop __tmp_reg__
900 0800 1F90 pop __zero_reg__
901 0802 1895 reti
902 /* epilogue end (size=13) */
903 /* function __vector_9 size 360 (334) */
905 .global Timer_Init
907 Timer_Init:
908 /* prologue: frame size=0 */
909 /* prologue end (size=0) */
910 0804 8091 0000 lds r24,CountMilliseconds
911 0808 9091 0000 lds r25,(CountMilliseconds)+1
912 080c 0B96 adiw r24,11
913 080e 9093 0000 sts (tim_main)+1,r25
914 0812 8093 0000 sts tim_main,r24
915 0816 82E0 ldi r24,lo8(2)
916 0818 85BD out 69-0x20,r24
917 081a 83EA ldi r24,lo8(-93)
918 081c 84BD out 68-0x20,r24
919 081e 17BC out 71-0x20,__zero_reg__
920 0820 84EB ldi r24,lo8(-76)
921 0822 88BD out 72-0x20,r24
922 0824 86E0 ldi r24,lo8(6)
923 0826 86BD out 70-0x20,r24
924 0828 EEE6 ldi r30,lo8(110)
925 082a F0E0 ldi r31,hi8(110)
926 082c 8081 ld r24,Z
927 082e 8160 ori r24,lo8(1)
928 0830 8083 st Z,r24
929 /* epilogue: frame size=0 */
930 0832 0895 ret
931 /* epilogue end (size=1) */
932 /* function Timer_Init size 24 (23) */
934 .global Delay_ms_Mess
936 Delay_ms_Mess:
937 /* prologue: frame size=0 */
938 /* prologue end (size=0) */
939 0834 AC01 movw r20,r24
940 0836 2091 0000 lds r18,CountMilliseconds
941 083a 3091 0000 lds r19,(CountMilliseconds)+1
942 083e 2F5F subi r18,lo8(-(1))
943 0840 3F4F sbci r19,hi8(-(1))
944 0842 00C0 rjmp .L132
945 .L125:
946 0844 8091 0000 lds r24,AdReady
947 0848 8823 tst r24
948 084a 01F0 breq .L132
949 084c 1092 0000 sts AdReady,__zero_reg__
950 0850 8FEC ldi r24,lo8(-49)
951 0852 8093 7A00 sts 122,r24
952 .L132:
953 0856 8091 0000 lds r24,CountMilliseconds
954 085a 9091 0000 lds r25,(CountMilliseconds)+1
955 085e B901 movw r22,r18
956 0860 681B sub r22,r24
957 0862 790B sbc r23,r25
958 0864 CB01 movw r24,r22
959 0866 840F add r24,r20
960 0868 951F adc r25,r21
961 086a 8070 andi r24,lo8(-32768)
962 086c 9078 andi r25,hi8(-32768)
963 086e 892F mov r24,r25
964 0870 9927 clr r25
965 0872 8695 lsr r24
966 0874 8823 tst r24
967 0876 01F0 breq .L125
968 /* epilogue: frame size=0 */
969 0878 0895 ret
970 /* epilogue end (size=1) */
971 /* function Delay_ms_Mess size 35 (34) */
973 .global Delay_ms
975 Delay_ms:
976 /* prologue: frame size=0 */
977 /* prologue end (size=0) */
978 087a AC01 movw r20,r24
979 087c 2091 0000 lds r18,CountMilliseconds
980 0880 3091 0000 lds r19,(CountMilliseconds)+1
981 0884 2F5F subi r18,lo8(-(1))
982 0886 3F4F sbci r19,hi8(-(1))
983 .L134:
984 0888 8091 0000 lds r24,CountMilliseconds
985 088c 9091 0000 lds r25,(CountMilliseconds)+1
986 0890 B901 movw r22,r18
987 0892 681B sub r22,r24
988 0894 790B sbc r23,r25
989 0896 CB01 movw r24,r22
990 0898 840F add r24,r20
991 089a 951F adc r25,r21
992 089c 8070 andi r24,lo8(-32768)
993 089e 9078 andi r25,hi8(-32768)
994 08a0 892F mov r24,r25
995 08a2 9927 clr r25
996 08a4 8695 lsr r24
997 08a6 8823 tst r24
998 08a8 01F0 breq .L134
999 /* epilogue: frame size=0 */
1000 08aa 0895 ret
1001 /* epilogue end (size=1) */
1002 /* function Delay_ms size 25 (24) */
1004 .global CountMilliseconds
1005 .global CountMilliseconds
1006 .section .bss
1009 CountMilliseconds:
1010 0000 0000 .skip 2,0
1011 .global UpdateMotor
1012 .global UpdateMotor
1015 UpdateMotor:
1016 0002 00 .skip 1,0
1017 .global cntKompass
1018 .global cntKompass
1021 cntKompass:
1022 0003 0000 .skip 2,0
1023 .global beeptime
1024 .global beeptime
1027 beeptime:
1028 0005 0000 .skip 2,0
1029 .global SendSPI
1030 .global SendSPI
1033 SendSPI:
1034 0007 00 .skip 1,0
1035 .global ServoActive
1036 .global ServoActive
1039 ServoActive:
1040 0008 00 .skip 1,0
1041 .global CalculateServoSignals
1042 .data
1045 CalculateServoSignals:
1046 0000 01 .byte 1
1047 .global RemainingPulse
1048 .global RemainingPulse
1049 .section .bss
1052 RemainingPulse:
1053 0009 0000 .skip 2,0
1054 .global ServoNickOffset
1055 .data
1058 ServoNickOffset:
1059 0001 C01F .word 8128
1060 .global ServoRollOffset
1063 ServoRollOffset:
1064 0003 C01F .word 8128
1065 .global BeepMuster
1068 BeepMuster:
1069 0005 FFFF .word -1
1070 .global ServoNickValue
1071 .global ServoNickValue
1072 .section .bss
1075 ServoNickValue:
1076 000b 0000 .skip 2,0
1077 .global ServoRollValue
1078 .global ServoRollValue
1081 ServoRollValue:
1082 000d 0000 .skip 2,0
1083 .lcomm ServoIndex.2752,1
1084 .lcomm ServoFrameTime.2751,2
1085 .lcomm PulseOutput.2750,1
1086 .lcomm compass_active.2509,1
1087 .lcomm cnt.2508,1
1088 .data
1091 cnt_1ms.2507:
1092 0007 01 .byte 1
1093 .lcomm tim_main,2
1094 /* File "timer0.c": code 1117 = 0x045d (1047), prologues 33, epilogues 37 */
DEFINED SYMBOLS
*ABS*:00000000 timer0.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:12 .text:00000000 __vector_18
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1033 .bss:00000007 SendSPI
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1086 .bss:00000014 cnt.2508
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1009 .bss:00000000 CountMilliseconds
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1091 .data:00000007 cnt_1ms.2507
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1015 .bss:00000002 UpdateMotor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1085 .bss:00000013 compass_active.2509
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1027 .bss:00000005 beeptime
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1068 .data:00000005 BeepMuster
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1021 .bss:00000003 cntKompass
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:227 .text:00000206 SetDelay
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:243 .text:00000218 CheckDelay
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:262 .text:00000230 TIMER2_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:310 .text:0000027e CalculateServo
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1045 .data:00000000 CalculateServoSignals
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1058 .data:00000001 ServoNickOffset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1075 .bss:0000000b ServoNickValue
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1063 .data:00000003 ServoRollOffset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1081 .bss:0000000d ServoRollValue
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:593 .text:00000538 __vector_9
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1084 .bss:00000012 PulseOutput.2750
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1052 .bss:00000009 RemainingPulse
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1083 .bss:00000010 ServoFrameTime.2751
.bss:0000000f ServoIndex.2752
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1039 .bss:00000008 ServoActive
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:907 .text:00000804 Timer_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:1087 .bss:00000015 tim_main
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:936 .text:00000834 Delay_ms_Mess
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccdC66zZ.s:975 .text:0000087a Delay_ms
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SpektrumTimer
PlatinenVersion
NaviDataOkay
EE_Parameter
__udivmodhi4
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
__prologue_saves__
sintab
IntegralNick
IntegralRoll
__mulsi3
__divmodsi4
Parameter_ServoNickControl
Parameter_ServoRollControl
__epilogue_restores__
Parameter_Servo3
Parameter_Servo4
Parameter_Servo5
PPM_in
SenderOkay
AdReady
/Spektrum-Diversity/V0.82a/twimaster.c
0,0 → 1,468
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/twi.h>
#include "eeprom.h"
#include "twimaster.h"
#include "fc.h"
#include "analog.h"
#include "uart.h"
#include "timer0.h"
 
volatile uint8_t twi_state = TWI_STATE_MOTOR_TX;
volatile uint8_t dac_channel = 0;
volatile uint8_t motor_write = 0;
volatile uint8_t motor_read = 0;
volatile uint8_t I2C_TransferActive = 0;
 
volatile uint16_t I2CTimeout = 100;
 
uint8_t MissingMotor = 0;
 
volatile uint8_t BLFlags = 0;
 
MotorData_t Motor[MAX_MOTORS];
 
// bit mask for witch BL the configuration should be sent
volatile uint16_t BLConfig_WriteMask = 0;
// bit mask for witch BL the configuration should be read
volatile uint16_t BLConfig_ReadMask = 0;
// buffer for BL Configuration
BLConfig_t BLConfig;
 
#define I2C_WriteByte(byte) {TWDR = byte; TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
#define I2C_ReceiveByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);}
#define I2C_ReceiveLastByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
 
#define SCL_CLOCK 200000L
#define I2C_TIMEOUT 30000
#define TWI_BASE_ADDRESS 0x52
 
/**************************************************/
/* Initialize I2C (TWI) */
/**************************************************/
 
void I2C_Init(char clear)
{
uint8_t i;
uint8_t sreg = SREG;
cli();
 
// SDA is INPUT
DDRC &= ~(1<<DDC1);
// SCL is output
DDRC |= (1<<DDC0);
// pull up SDA
PORTC |= (1<<PORTC0)|(1<<PORTC1);
 
// TWI Status Register
// prescaler 1 (TWPS1 = 0, TWPS0 = 0)
TWSR &= ~((1<<TWPS1)|(1<<TWPS0));
 
// set TWI Bit Rate Register
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
 
twi_state = TWI_STATE_MOTOR_TX;
motor_write = 0;
motor_read = 0;
 
if(clear) for(i=0; i < MAX_MOTORS; i++)
{
Motor[i].Version = 0;
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
Motor[i].State = 0;
Motor[i].ReadMode = BL_READMODE_STATUS;
Motor[i].Current = 0;
Motor[i].MaxPWM = 0;
Motor[i].Temperature = 0;
}
sei();
SREG = sreg;
}
 
void I2C_Reset(void)
{
// stop i2c bus
I2C_Stop(TWI_STATE_MOTOR_TX);
TWCR = (1<<TWINT); // reset to original state incl. interrupt flag reset
TWAMR = 0;
TWAR = 0;
TWDR = 0;
TWSR = 0;
TWBR = 0;
I2C_TransferActive = 0;
I2C_Init(0);
I2C_WriteByte(0);
BLFlags |= BLFLAG_READ_VERSION;
}
 
/****************************************/
/* I2C ISR */
/****************************************/
ISR (TWI_vect)
{
static uint8_t missing_motor = 0, motor_read_temperature = 0;
static uint8_t *pBuff = 0;
static uint8_t BuffLen = 0;
 
switch (twi_state++)
{
// Master Transmit
case 0: // TWI_STATE_MOTOR_TX
I2C_TransferActive = 1;
// skip motor if not used in mixer
while((Mixer.Motor[motor_write][MIX_GAS] <= 0) && (motor_write < MAX_MOTORS)) motor_write++;
if(motor_write >= MAX_MOTORS) // writing finished, read now
{
BLConfig_WriteMask = 0; // reset configuration bitmask
motor_write = 0; // reset motor write counter for next cycle
twi_state = TWI_STATE_MOTOR_RX;
I2C_WriteByte(TWI_BASE_ADDRESS + TW_READ + (motor_read<<1) ); // select slave address in rx mode
}
else I2C_WriteByte(TWI_BASE_ADDRESS + TW_WRITE + (motor_write<<1) ); // select slave address in tx mode
break;
case 1: // Send Data to Slave
I2C_WriteByte(Motor[motor_write].SetPoint); // transmit setpoint
// if old version has been detected
if(!(Motor[motor_write].Version & MOTOR_STATE_NEW_PROTOCOL_MASK))
{
twi_state = 4; //jump over sending more data
}
// the new version has been detected
else if(!( (Motor[motor_write].SetPointLowerBits && (RequiredMotors < 7)) || BLConfig_WriteMask || BLConfig_ReadMask ) )
{ // or LowerBits are zero and no BlConfig should be sent (saves round trip time)
twi_state = 4; //jump over sending more data
}
break;
case 2: // lower bits of setpoint (higher resolution)
if ((0x0001<<motor_write) & BLConfig_ReadMask)
{
Motor[motor_write].ReadMode = BL_READMODE_CONFIG; // configuration request
}
else
{
Motor[motor_write].ReadMode = BL_READMODE_STATUS; // normal status request
}
// send read mode and the lower bits of setpoint
I2C_WriteByte((Motor[motor_write].ReadMode<<3)|(Motor[motor_write].SetPointLowerBits & 0x07));
// configuration tranmission request?
if((0x0001<<motor_write) & BLConfig_WriteMask)
{ // redirect tx pointer to configuration data
pBuff = (uint8_t*)&BLConfig; // select config for motor
BuffLen = sizeof(BLConfig_t);
}
else
{ // jump to end of transmission for that motor
twi_state = 4;
}
break;
case 3: // send configuration
I2C_WriteByte(*pBuff);
pBuff++;
if(--BuffLen > 0) twi_state = 3; // if there are some bytes left
break;
case 4: // repeat case 0-4 for all motors
if(TWSR == TW_MT_DATA_NACK) // Data transmitted, NACK received
{
if(!missing_motor) missing_motor = motor_write + 1;
if((Motor[motor_write].State & MOTOR_STATE_ERROR_MASK) < MOTOR_STATE_ERROR_MASK) Motor[motor_write].State++; // increment error counter and handle overflow
}
I2C_Stop(TWI_STATE_MOTOR_TX);
I2CTimeout = 10;
motor_write++; // next motor
I2C_Start(TWI_STATE_MOTOR_TX); // Repeated start -> switch slave or switch Master Transmit -> Master Receive
break;
// Master Receive Data
case 5: // TWI_STATE_MOTOR_RX
if(TWSR != TW_MR_SLA_ACK) // SLA+R transmitted but no ACK received
{ // no response from the addressed slave received
Motor[motor_read].State &= ~MOTOR_STATE_PRESENT_MASK; // clear present bit
if(++motor_read >= MAX_MOTORS)
{ // all motors read
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
BLFlags |= BLFLAG_TX_COMPLETE;
I2C_Stop(TWI_STATE_MOTOR_TX);
I2C_TransferActive = 0;
}
else
{ // motor successfully addressed
Motor[motor_read].State |= MOTOR_STATE_PRESENT_MASK; // set present bit
if(Motor[motor_read].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)
{
// new BL found
switch(Motor[motor_read].ReadMode)
{
case BL_READMODE_CONFIG:
pBuff = (uint8_t*)&BLConfig;
BuffLen = sizeof(BLConfig_t);
break;
 
case BL_READMODE_STATUS:
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if(motor_read == motor_read_temperature) BuffLen = 3; // read Current, MaxPwm & Temp
else BuffLen = 1;// read Current only
break;
}
}
else // old BL version
{
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if((BLFlags & BLFLAG_READ_VERSION) || (motor_read == motor_read_temperature)) BuffLen = 2; // Current & MaxPwm
else BuffLen = 1; // read Current only
}
if(BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else
{
I2C_ReceiveByte(); // read next byte
}
}
MissingMotor = missing_motor;
missing_motor = 0;
break;
case 6: // receive bytes
*pBuff = TWDR;
pBuff++;
BuffLen--;
if(BuffLen>1)
{
I2C_ReceiveByte(); // read next byte
}
else if (BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else // nothing left
{
if(BLFlags & BLFLAG_READ_VERSION)
{
if(!(FC_StatusFlags & FC_STATUS_MOTOR_RUN) && (Motor[motor_read].MaxPWM == 250) ) Motor[motor_read].Version |= MOTOR_STATE_NEW_PROTOCOL_MASK;
else Motor[motor_read].Version = 0;
}
if(++motor_read >= MAX_MOTORS)
{
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
I2C_TransferActive = 0;
return;
}
twi_state = 6; // if there are some bytes left
break;
 
// writing Gyro-Offsets
case 18:
I2C_WriteByte(0x98); // Address the DAC
break;
 
case 19:
I2C_WriteByte(0x10 + (dac_channel * 2)); // Select DAC Channel (0x10 = A, 0x12 = B, 0x14 = C)
break;
 
case 20:
switch(dac_channel)
{
case 0:
I2C_WriteByte(AnalogOffsetNick); // 1st byte for Channel A
break;
case 1:
I2C_WriteByte(AnalogOffsetRoll); // 1st byte for Channel B
break;
case 2:
I2C_WriteByte(AnalogOffsetGier); // 1st byte for Channel C
break;
}
break;
 
case 21:
I2C_WriteByte(0x80); // 2nd byte for all channels is 0x80
break;
 
case 22:
I2C_Stop(TWI_STATE_MOTOR_TX);
I2C_TransferActive = 0;
I2CTimeout = 10;
// repeat case 18...22 until all DAC Channels are updated
if(dac_channel < 2)
{
dac_channel ++; // jump to next channel
I2C_Start(TWI_STATE_GYRO_OFFSET_TX); // start transmission for next channel
}
else
{
dac_channel = 0; // reset dac channel counter
BLFlags |= BLFLAG_TX_COMPLETE;
}
break;
default:
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
I2CTimeout = 10;
motor_write = 0;
motor_read = 0;
I2C_TransferActive = 0;
break;
}
 
}
 
 
uint8_t I2C_WriteBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor)
{
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
}
// check BL configuration to send
if(BLConfig.Revision != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
 
timer = SetDelay(2000);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
if(!motor) // 0 means all
{
BLConfig_WriteMask = 0xFF; // all motors at once with the same configuration
}
else //only one specific motor
{
BLConfig_WriteMask = 0x0001<<(motor-1);
}
for(i = 0; i < MAX_MOTORS; i++)
{
if((0x0001<<i) & BLConfig_WriteMask)
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
 
motor_write = 0;
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}while(BLConfig_WriteMask && !CheckDelay(timer)); // repeat until the BL config has been sent
if(BLConfig_WriteMask) return(BLCONFIG_ERR_MOTOR_NOT_EXIST);
return(BLCONFIG_SUCCESS);
}
 
uint8_t I2C_ReadBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor == 0) return (BLCONFIG_ERR_READ_NOT_POSSIBLE);
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
 
timer = SetDelay(2000);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
BLConfig_ReadMask = 0x0001<<(motor-1);
 
for(i = 0; i < MAX_MOTORS; i++)
{
if((0x0001<<i) & BLConfig_ReadMask)
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
 
motor_read = 0;
BLConfig.Revision = 0; // bad revision
BLConfig.crc = 0; // bad checksum
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}while(BLConfig_ReadMask && !CheckDelay(timer)); // repeat until the BL config has been received from all motors
// validate result
if(BLConfig.Revision != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
return(BLCONFIG_SUCCESS);
}
 
/Spektrum-Diversity/V0.82a/twimaster.d
0,0 → 1,2
twimaster.o twimaster.d : twimaster.c eeprom.h twimaster.h fc.h analog.h uart.h \
timer0.h
/Spektrum-Diversity/V0.82a/twimaster.h
0,0 → 1,100
#ifndef _I2C_MASTER_H
#define _I2C_MASTER_H
+
+#include <inttypes.h>
+
+#define TWI_STATE_MOTOR_TX 0
+#define TWI_STATE_MOTOR_RX 5
+#define TWI_STATE_GYRO_OFFSET_TX 18
+
+extern volatile uint8_t twi_state;
+extern volatile uint8_t motor_write;
+extern volatile uint8_t motor_read;
+extern volatile uint8_t I2C_TransferActive;
+
+extern uint8_t MissingMotor;
+
+#define MAX_MOTORS 12
+#define MOTOR_STATE_PRESENT_MASK 0x80
+#define MOTOR_STATE_ERROR_MASK 0x7F
+
+#define MOTOR_STATE_NEW_PROTOCOL_MASK 0x01
+
+#define BLFLAG_TX_COMPLETE 0x01
+#define BLFLAG_READ_VERSION 0x02
+
+extern volatile uint8_t BLFlags;
+
+
+#define BL_READMODE_STATUS 0
+#define BL_READMODE_CONFIG 16
+
+typedef struct
+{
+ uint8_t Version; // the version of the BL (0 = old)
+ uint8_t SetPoint; // written by attitude controller
+ uint8_t SetPointLowerBits; // for higher Resolution of new BLs
+ uint8_t State; // 7 bit for I2C error counter, highest bit indicates if motor is present
+ uint8_t ReadMode; // select data to read
+ // the following bytes must be exactly in that order!
+ uint8_t Current; // in 0.1 A steps, read back from BL
+ uint8_t MaxPWM; // read back from BL is less than 255 if BL is in current limit
+ int8_t Temperature; // old BL-Ctrl will return a 255 here, the new version the temp. in °C
+} __attribute__((packed)) MotorData_t;
+
+extern MotorData_t Motor[MAX_MOTORS];
+
+#define BLCONFIG_REVISION 2
+
+#define MASK_SET_PWM_SCALING 0x01
+#define MASK_SET_CURRENT_LIMIT 0x02
+#define MASK_SET_TEMP_LIMIT 0x04
+#define MASK_SET_CURRENT_SCALING 0x08
+#define MASK_SET_BITCONFIG 0x10
+#define MASK_RESET_CAPCOUNTER 0x20
+#define MASK_SET_DEFAULT_PARAMS 0x40
+#define MASK_SET_SAVE_EEPROM 0x80
+
+#define BITCONF_REVERSE_ROTATION 0x01
+#define BITCONF_RES1 0x02
+#define BITCONF_RES2 0x04
+#define BITCONF_RES3 0x08
+#define BITCONF_RES4 0x10
+#define BITCONF_RES5 0x20
+#define BITCONF_RES6 0x40
+#define BITCONF_RES7 0x80
+
+typedef struct
+{
+ uint8_t Revision; // must be BL_REVISION
+ uint8_t SetMask; // settings mask
+ uint8_t PwmScaling; // maximum value of control pwm, acts like a thrust limit
+ uint8_t CurrentLimit; // current limit in A
+ uint8_t TempLimit; // in °C
+ uint8_t CurrentScaling; // scaling factor for current measurement
+ uint8_t BitConfig; // see defines above
+ uint8_t crc; // checksum
+} __attribute__((packed)) BLConfig_t;
+
+extern BLConfig_t BLConfig;
+
+extern volatile uint16_t I2CTimeout;
+
+void I2C_Init(char); // Initialize I2C
+#define I2C_Start(start_state) {twi_state = start_state; BLFlags &= ~BLFLAG_TX_COMPLETE; TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE);}
+#define I2C_Stop(start_state) {twi_state = start_state; TWCR = (1<<TWEN) | (1<<TWSTO) | (1<<TWINT);}
+void I2C_Reset(void); // Reset I2C
+
+#define BLCONFIG_SUCCESS 0
+#define BLCONFIG_ERR_MOTOR_RUNNING 1
+#define BLCONFIG_ERR_MOTOR_NOT_EXIST 2
+#define BLCONFIG_ERR_HW_NOT_COMPATIBLE 3
+#define BLCONFIG_ERR_SW_NOT_COMPATIBLE 4
+#define BLCONFIG_ERR_CHECKSUM 5
+#define BLCONFIG_ERR_READ_NOT_POSSIBLE 6
+
+uint8_t I2C_WriteBLConfig(uint8_t motor);
+uint8_t I2C_ReadBLConfig(uint8_t motor);
+
+#endif
/Spektrum-Diversity/V0.82a/twimaster.lst
0,0 → 1,1187
1 .file "twimaster.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global I2C_Init
12 I2C_Init:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 2FB7 in r18,95-0x20
16 /* #APP */
17 0002 F894 cli
18 /* #NOAPP */
19 0004 3998 cbi 39-0x20,1
20 0006 389A sbi 39-0x20,0
21 0008 98B1 in r25,40-0x20
22 000a 9360 ori r25,lo8(3)
23 000c 98B9 out 40-0x20,r25
24 000e 9091 B900 lds r25,185
25 0012 9C7F andi r25,lo8(-4)
26 0014 9093 B900 sts 185,r25
27 0018 9AE2 ldi r25,lo8(42)
28 001a 9093 B800 sts 184,r25
29 001e 1092 0000 sts twi_state,__zero_reg__
30 0022 1092 0000 sts motor_write,__zero_reg__
31 0026 1092 0000 sts motor_read,__zero_reg__
32 002a 8823 tst r24
33 002c 01F0 breq .L2
34 002e E0E0 ldi r30,lo8(Motor)
35 0030 F0E0 ldi r31,hi8(Motor)
36 .L4:
37 0032 1082 st Z,__zero_reg__
38 0034 1182 std Z+1,__zero_reg__
39 0036 1282 std Z+2,__zero_reg__
40 0038 1382 std Z+3,__zero_reg__
41 003a 1482 std Z+4,__zero_reg__
42 003c 1582 std Z+5,__zero_reg__
43 003e 1682 std Z+6,__zero_reg__
44 0040 1782 std Z+7,__zero_reg__
45 0042 3896 adiw r30,8
46 0044 80E0 ldi r24,hi8(Motor+96)
47 0046 E030 cpi r30,lo8(Motor+96)
48 0048 F807 cpc r31,r24
49 004a 01F4 brne .L4
50 .L2:
51 /* #APP */
52 004c 7894 sei
53 /* #NOAPP */
54 004e 2FBF out 95-0x20,r18
55 /* epilogue: frame size=0 */
56 0050 0895 ret
57 /* epilogue end (size=1) */
58 /* function I2C_Init size 43 (42) */
60 .global I2C_Reset
62 I2C_Reset:
63 /* prologue: frame size=0 */
64 0052 EF92 push r14
65 0054 FF92 push r15
66 0056 0F93 push r16
67 0058 1F93 push r17
68 /* prologue end (size=4) */
69 005a 1092 0000 sts twi_state,__zero_reg__
70 005e 0CEB ldi r16,lo8(188)
71 0060 10E0 ldi r17,hi8(188)
72 0062 84E9 ldi r24,lo8(-108)
73 0064 F801 movw r30,r16
74 0066 8083 st Z,r24
75 0068 80E8 ldi r24,lo8(-128)
76 006a 8083 st Z,r24
77 006c 1092 BD00 sts 189,__zero_reg__
78 0070 1092 BA00 sts 186,__zero_reg__
79 0074 8BEB ldi r24,lo8(187)
80 0076 E82E mov r14,r24
81 0078 F12C mov r15,__zero_reg__
82 007a F701 movw r30,r14
83 007c 1082 st Z,__zero_reg__
84 007e 1092 B900 sts 185,__zero_reg__
85 0082 1092 B800 sts 184,__zero_reg__
86 0086 1092 0000 sts I2C_TransferActive,__zero_reg__
87 008a 80E0 ldi r24,lo8(0)
88 008c 0E94 0000 call I2C_Init
89 0090 F701 movw r30,r14
90 0092 1082 st Z,__zero_reg__
91 0094 85E8 ldi r24,lo8(-123)
92 0096 F801 movw r30,r16
93 0098 8083 st Z,r24
94 009a 8091 0000 lds r24,BLFlags
95 009e 8260 ori r24,lo8(2)
96 00a0 8093 0000 sts BLFlags,r24
97 /* epilogue: frame size=0 */
98 00a4 1F91 pop r17
99 00a6 0F91 pop r16
100 00a8 FF90 pop r15
101 00aa EF90 pop r14
102 00ac 0895 ret
103 /* epilogue end (size=5) */
104 /* function I2C_Reset size 46 (37) */
106 .global __vector_26
108 __vector_26:
109 /* prologue: frame size=0 */
110 00ae 1F92 push __zero_reg__
111 00b0 0F92 push __tmp_reg__
112 00b2 0FB6 in __tmp_reg__,__SREG__
113 00b4 0F92 push __tmp_reg__
114 00b6 1124 clr __zero_reg__
115 00b8 2F93 push r18
116 00ba 3F93 push r19
117 00bc 4F93 push r20
118 00be 8F93 push r24
119 00c0 9F93 push r25
120 00c2 AF93 push r26
121 00c4 BF93 push r27
122 00c6 EF93 push r30
123 00c8 FF93 push r31
124 /* prologue end (size=14) */
125 00ca 8091 0000 lds r24,twi_state
126 00ce 8F5F subi r24,lo8(-(1))
127 00d0 8093 0000 sts twi_state,r24
128 00d4 8150 subi r24,lo8(-(-1))
129 00d6 E82F mov r30,r24
130 00d8 F0E0 ldi r31,lo8(0)
131 00da E731 cpi r30,23
132 00dc F105 cpc r31,__zero_reg__
133 00de 00F0 brlo .+2
134 00e0 00C0 rjmp .L10
135 00e2 E050 subi r30,lo8(-(gs(.L23)))
**** Warning:expression dangerous with linker stubs
136 00e4 F040 sbci r31,hi8(-(gs(.L23)))
**** Warning:expression dangerous with linker stubs
137 00e6 0C94 0000 jmp __tablejump2__
138 .data
139 .section .progmem.gcc_sw_table, "a", @progbits
140 .p2align 1
141 .L23:
142 .data
143 .section .progmem.gcc_sw_table, "a", @progbits
144 .p2align 1
145 0000 0000 .word gs(.L11)
146 0002 0000 .word gs(.L12)
147 0004 0000 .word gs(.L13)
148 0006 0000 .word gs(.L14)
149 0008 0000 .word gs(.L15)
150 000a 0000 .word gs(.L16)
151 000c 0000 .word gs(.L17)
152 000e 0000 .word gs(.L10)
153 0010 0000 .word gs(.L10)
154 0012 0000 .word gs(.L10)
155 0014 0000 .word gs(.L10)
156 0016 0000 .word gs(.L10)
157 0018 0000 .word gs(.L10)
158 001a 0000 .word gs(.L10)
159 001c 0000 .word gs(.L10)
160 001e 0000 .word gs(.L10)
161 0020 0000 .word gs(.L10)
162 0022 0000 .word gs(.L10)
163 0024 0000 .word gs(.L18)
164 0026 0000 .word gs(.L19)
165 0028 0000 .word gs(.L20)
166 002a 0000 .word gs(.L21)
167 002c 0000 .word gs(.L22)
168 .text
169 .L11:
170 00ea 81E0 ldi r24,lo8(1)
171 00ec 8093 0000 sts I2C_TransferActive,r24
172 00f0 00C0 rjmp .L24
173 .L25:
174 00f2 8091 0000 lds r24,motor_write
175 00f6 8F5F subi r24,lo8(-(1))
176 00f8 8093 0000 sts motor_write,r24
177 .L24:
178 00fc E091 0000 lds r30,motor_write
179 0100 F0E0 ldi r31,lo8(0)
180 0102 EE0F lsl r30
181 0104 FF1F rol r31
182 0106 EE0F lsl r30
183 0108 FF1F rol r31
184 010a E050 subi r30,lo8(-(Mixer))
185 010c F040 sbci r31,hi8(-(Mixer))
186 010e 8585 ldd r24,Z+13
187 0110 1816 cp __zero_reg__,r24
188 0112 04F0 brlt .L26
189 0114 8091 0000 lds r24,motor_write
190 0118 8C30 cpi r24,lo8(12)
191 011a 00F0 brlo .L25
192 .L26:
193 011c 8091 0000 lds r24,motor_write
194 0120 8C30 cpi r24,lo8(12)
195 0122 00F0 brlo .L28
196 0124 1092 0000 sts (BLConfig_WriteMask)+1,__zero_reg__
197 0128 1092 0000 sts BLConfig_WriteMask,__zero_reg__
198 012c 1092 0000 sts motor_write,__zero_reg__
199 0130 85E0 ldi r24,lo8(5)
200 0132 8093 0000 sts twi_state,r24
201 0136 8091 0000 lds r24,motor_read
202 013a 880F lsl r24
203 013c 8D5A subi r24,lo8(-(83))
204 013e 00C0 rjmp .L92
205 .L28:
206 0140 8091 0000 lds r24,motor_write
207 0144 880F lsl r24
208 0146 8E5A subi r24,lo8(-(82))
209 .L92:
210 0148 8093 BB00 sts 187,r24
211 014c 85E8 ldi r24,lo8(-123)
212 014e 00C0 rjmp .L88
213 .L12:
214 0150 E091 0000 lds r30,motor_write
215 0154 F0E0 ldi r31,lo8(0)
216 0156 A3E0 ldi r26,3
217 0158 EE0F 1: lsl r30
218 015a FF1F rol r31
219 015c AA95 dec r26
220 015e 01F4 brne 1b
221 0160 E050 subi r30,lo8(-(Motor))
222 0162 F040 sbci r31,hi8(-(Motor))
223 0164 8181 ldd r24,Z+1
224 0166 8093 BB00 sts 187,r24
225 016a 85E8 ldi r24,lo8(-123)
226 016c 8093 BC00 sts 188,r24
227 0170 E091 0000 lds r30,motor_write
228 0174 F0E0 ldi r31,lo8(0)
229 0176 EE0F lsl r30
230 0178 FF1F rol r31
231 017a EE0F lsl r30
232 017c FF1F rol r31
233 017e EE0F lsl r30
234 0180 FF1F rol r31
235 0182 E050 subi r30,lo8(-(Motor))
236 0184 F040 sbci r31,hi8(-(Motor))
237 0186 8081 ld r24,Z
238 0188 80FF sbrs r24,0
239 018a 00C0 rjmp .L40
240 018c E091 0000 lds r30,motor_write
241 0190 F0E0 ldi r31,lo8(0)
242 0192 EE0F lsl r30
243 0194 FF1F rol r31
244 0196 EE0F lsl r30
245 0198 FF1F rol r31
246 019a EE0F lsl r30
247 019c FF1F rol r31
248 019e E050 subi r30,lo8(-(Motor))
249 01a0 F040 sbci r31,hi8(-(Motor))
250 01a2 8281 ldd r24,Z+2
251 01a4 8823 tst r24
252 01a6 01F0 breq .L33
253 01a8 8091 0000 lds r24,RequiredMotors
254 01ac 8730 cpi r24,lo8(7)
255 01ae 00F4 brsh .+2
256 01b0 00C0 rjmp .L84
257 .L33:
258 01b2 8091 0000 lds r24,BLConfig_WriteMask
259 01b6 9091 0000 lds r25,(BLConfig_WriteMask)+1
260 01ba 892B or r24,r25
261 01bc 01F0 breq .+2
262 01be 00C0 rjmp .L84
263 01c0 8091 0000 lds r24,BLConfig_ReadMask
264 01c4 9091 0000 lds r25,(BLConfig_ReadMask)+1
265 01c8 892B or r24,r25
266 01ca 01F0 breq .+2
267 01cc 00C0 rjmp .L84
268 01ce 00C0 rjmp .L40
269 .L13:
270 01d0 4091 0000 lds r20,motor_write
271 01d4 2091 0000 lds r18,BLConfig_ReadMask
272 01d8 3091 0000 lds r19,(BLConfig_ReadMask)+1
273 01dc 81E0 ldi r24,lo8(1)
274 01de 90E0 ldi r25,hi8(1)
275 01e0 00C0 rjmp 2f
276 01e2 880F 1: lsl r24
277 01e4 991F rol r25
278 01e6 4A95 2: dec r20
279 01e8 02F4 brpl 1b
280 01ea 8223 and r24,r18
281 01ec 9323 and r25,r19
282 01ee 892B or r24,r25
283 01f0 01F0 breq .L37
284 01f2 E091 0000 lds r30,motor_write
285 01f6 F0E0 ldi r31,lo8(0)
286 01f8 EE0F lsl r30
287 01fa FF1F rol r31
288 01fc EE0F lsl r30
289 01fe FF1F rol r31
290 0200 EE0F lsl r30
291 0202 FF1F rol r31
292 0204 E050 subi r30,lo8(-(Motor))
293 0206 F040 sbci r31,hi8(-(Motor))
294 0208 80E1 ldi r24,lo8(16)
295 020a 8483 std Z+4,r24
296 020c 00C0 rjmp .L39
297 .L37:
298 020e E091 0000 lds r30,motor_write
299 0212 F0E0 ldi r31,lo8(0)
300 0214 43E0 ldi r20,3
301 0216 EE0F 1: lsl r30
302 0218 FF1F rol r31
303 021a 4A95 dec r20
304 021c 01F4 brne 1b
305 021e E050 subi r30,lo8(-(Motor))
306 0220 F040 sbci r31,hi8(-(Motor))
307 0222 1482 std Z+4,__zero_reg__
308 .L39:
309 0224 E091 0000 lds r30,motor_write
310 0228 A091 0000 lds r26,motor_write
311 022c F0E0 ldi r31,lo8(0)
312 022e 33E0 ldi r19,3
313 0230 EE0F 1: lsl r30
314 0232 FF1F rol r31
315 0234 3A95 dec r19
316 0236 01F4 brne 1b
317 0238 E050 subi r30,lo8(-(Motor))
318 023a F040 sbci r31,hi8(-(Motor))
319 023c 9481 ldd r25,Z+4
320 023e 990F lsl r25
321 0240 990F lsl r25
322 0242 990F lsl r25
323 0244 B0E0 ldi r27,lo8(0)
324 0246 23E0 ldi r18,3
325 0248 AA0F 1: lsl r26
326 024a BB1F rol r27
327 024c 2A95 dec r18
328 024e 01F4 brne 1b
329 0250 A050 subi r26,lo8(-(Motor))
330 0252 B040 sbci r27,hi8(-(Motor))
331 0254 FD01 movw r30,r26
332 0256 8281 ldd r24,Z+2
333 0258 8770 andi r24,lo8(7)
334 025a 982B or r25,r24
335 025c 9093 BB00 sts 187,r25
336 0260 85E8 ldi r24,lo8(-123)
337 0262 8093 BC00 sts 188,r24
338 0266 4091 0000 lds r20,motor_write
339 026a 2091 0000 lds r18,BLConfig_WriteMask
340 026e 3091 0000 lds r19,(BLConfig_WriteMask)+1
341 0272 81E0 ldi r24,lo8(1)
342 0274 90E0 ldi r25,hi8(1)
343 0276 00C0 rjmp 2f
344 0278 880F 1: lsl r24
345 027a 991F rol r25
346 027c 4A95 2: dec r20
347 027e 02F4 brpl 1b
348 0280 8223 and r24,r18
349 0282 9323 and r25,r19
350 0284 892B or r24,r25
351 0286 01F0 breq .L40
352 0288 80E0 ldi r24,lo8(BLConfig)
353 028a 90E0 ldi r25,hi8(BLConfig)
354 028c 9093 0000 sts (pBuff.1961)+1,r25
355 0290 8093 0000 sts pBuff.1961,r24
356 0294 88E0 ldi r24,lo8(8)
357 0296 8093 0000 sts BuffLen.1962,r24
358 029a 00C0 rjmp .L84
359 .L40:
360 029c 84E0 ldi r24,lo8(4)
361 029e 00C0 rjmp .L90
362 .L14:
363 02a0 E091 0000 lds r30,pBuff.1961
364 02a4 F091 0000 lds r31,(pBuff.1961)+1
365 02a8 8191 ld r24,Z+
366 02aa 8093 BB00 sts 187,r24
367 02ae 85E8 ldi r24,lo8(-123)
368 02b0 8093 BC00 sts 188,r24
369 02b4 F093 0000 sts (pBuff.1961)+1,r31
370 02b8 E093 0000 sts pBuff.1961,r30
371 02bc 8091 0000 lds r24,BuffLen.1962
372 02c0 8150 subi r24,lo8(-(-1))
373 02c2 8093 0000 sts BuffLen.1962,r24
374 02c6 8823 tst r24
375 02c8 01F4 brne .+2
376 02ca 00C0 rjmp .L84
377 02cc 83E0 ldi r24,lo8(3)
378 02ce 00C0 rjmp .L90
379 .L15:
380 02d0 8091 B900 lds r24,185
381 02d4 8033 cpi r24,lo8(48)
382 02d6 01F4 brne .L43
383 02d8 8091 0000 lds r24,missing_motor.1959
384 02dc 8823 tst r24
385 02de 01F4 brne .L45
386 02e0 8091 0000 lds r24,motor_write
387 02e4 8F5F subi r24,lo8(-(1))
388 02e6 8093 0000 sts missing_motor.1959,r24
389 .L45:
390 02ea E091 0000 lds r30,motor_write
391 02ee F0E0 ldi r31,lo8(0)
392 02f0 93E0 ldi r25,3
393 02f2 EE0F 1: lsl r30
394 02f4 FF1F rol r31
395 02f6 9A95 dec r25
396 02f8 01F4 brne 1b
397 02fa E050 subi r30,lo8(-(Motor))
398 02fc F040 sbci r31,hi8(-(Motor))
399 02fe 8381 ldd r24,Z+3
400 0300 8F77 andi r24,lo8(127)
401 0302 8F37 cpi r24,lo8(127)
402 0304 01F0 breq .L43
403 0306 E091 0000 lds r30,motor_write
404 030a F0E0 ldi r31,lo8(0)
405 030c 83E0 ldi r24,3
406 030e EE0F 1: lsl r30
407 0310 FF1F rol r31
408 0312 8A95 dec r24
409 0314 01F4 brne 1b
410 0316 E050 subi r30,lo8(-(Motor))
411 0318 F040 sbci r31,hi8(-(Motor))
412 031a 8381 ldd r24,Z+3
413 031c 8F5F subi r24,lo8(-(1))
414 031e 8383 std Z+3,r24
415 .L43:
416 0320 1092 0000 sts twi_state,__zero_reg__
417 0324 84E9 ldi r24,lo8(-108)
418 0326 8093 BC00 sts 188,r24
419 032a 8AE0 ldi r24,lo8(10)
420 032c 90E0 ldi r25,hi8(10)
421 032e 9093 0000 sts (I2CTimeout)+1,r25
422 0332 8093 0000 sts I2CTimeout,r24
423 0336 8091 0000 lds r24,motor_write
424 033a 8F5F subi r24,lo8(-(1))
425 033c 8093 0000 sts motor_write,r24
426 0340 1092 0000 sts twi_state,__zero_reg__
427 0344 00C0 rjmp .L93
428 .L16:
429 0346 8091 B900 lds r24,185
430 034a 8034 cpi r24,lo8(64)
431 034c 01F0 breq .L48
432 034e E091 0000 lds r30,motor_read
433 0352 F0E0 ldi r31,lo8(0)
434 0354 B3E0 ldi r27,3
435 0356 EE0F 1: lsl r30
436 0358 FF1F rol r31
437 035a BA95 dec r27
438 035c 01F4 brne 1b
439 035e E050 subi r30,lo8(-(Motor))
440 0360 F040 sbci r31,hi8(-(Motor))
441 0362 8381 ldd r24,Z+3
442 0364 8F77 andi r24,lo8(127)
443 0366 8383 std Z+3,r24
444 0368 8091 0000 lds r24,motor_read
445 036c 8F5F subi r24,lo8(-(1))
446 036e 8093 0000 sts motor_read,r24
447 0372 8091 0000 lds r24,motor_read
448 0376 8C30 cpi r24,lo8(12)
449 0378 00F0 brlo .L50
450 037a 1092 0000 sts motor_read,__zero_reg__
451 037e 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
452 0382 1092 0000 sts BLConfig_ReadMask,__zero_reg__
453 0386 8091 0000 lds r24,motor_read_temperature.1960
454 038a 8F5F subi r24,lo8(-(1))
455 038c 8093 0000 sts motor_read_temperature.1960,r24
456 0390 8C30 cpi r24,lo8(12)
457 0392 00F0 brlo .L50
458 0394 1092 0000 sts motor_read_temperature.1960,__zero_reg__
459 0398 8091 0000 lds r24,BLFlags
460 039c 8D7F andi r24,lo8(-3)
461 039e 8093 0000 sts BLFlags,r24
462 .L50:
463 03a2 8091 0000 lds r24,BLFlags
464 03a6 8160 ori r24,lo8(1)
465 03a8 8093 0000 sts BLFlags,r24
466 03ac 1092 0000 sts twi_state,__zero_reg__
467 03b0 84E9 ldi r24,lo8(-108)
468 03b2 8093 BC00 sts 188,r24
469 03b6 1092 0000 sts I2C_TransferActive,__zero_reg__
470 03ba 00C0 rjmp .L53
471 .L48:
472 03bc E091 0000 lds r30,motor_read
473 03c0 F0E0 ldi r31,lo8(0)
474 03c2 A3E0 ldi r26,3
475 03c4 EE0F 1: lsl r30
476 03c6 FF1F rol r31
477 03c8 AA95 dec r26
478 03ca 01F4 brne 1b
479 03cc E050 subi r30,lo8(-(Motor))
480 03ce F040 sbci r31,hi8(-(Motor))
481 03d0 8381 ldd r24,Z+3
482 03d2 8068 ori r24,lo8(-128)
483 03d4 8383 std Z+3,r24
484 03d6 E091 0000 lds r30,motor_read
485 03da F0E0 ldi r31,lo8(0)
486 03dc EE0F lsl r30
487 03de FF1F rol r31
488 03e0 EE0F lsl r30
489 03e2 FF1F rol r31
490 03e4 EE0F lsl r30
491 03e6 FF1F rol r31
492 03e8 E050 subi r30,lo8(-(Motor))
493 03ea F040 sbci r31,hi8(-(Motor))
494 03ec 8081 ld r24,Z
495 03ee 80FF sbrs r24,0
496 03f0 00C0 rjmp .L54
497 03f2 E091 0000 lds r30,motor_read
498 03f6 F0E0 ldi r31,lo8(0)
499 03f8 EE0F lsl r30
500 03fa FF1F rol r31
501 03fc EE0F lsl r30
502 03fe FF1F rol r31
503 0400 EE0F lsl r30
504 0402 FF1F rol r31
505 0404 E050 subi r30,lo8(-(Motor))
506 0406 F040 sbci r31,hi8(-(Motor))
507 0408 8481 ldd r24,Z+4
508 040a 8823 tst r24
509 040c 01F0 breq .L57
510 040e 8031 cpi r24,lo8(16)
511 0410 01F4 brne .L56
512 0412 80E0 ldi r24,lo8(BLConfig)
513 0414 90E0 ldi r25,hi8(BLConfig)
514 0416 9093 0000 sts (pBuff.1961)+1,r25
515 041a 8093 0000 sts pBuff.1961,r24
516 041e 88E0 ldi r24,lo8(8)
517 0420 00C0 rjmp .L85
518 .L57:
519 0422 8091 0000 lds r24,motor_read
520 0426 90E0 ldi r25,lo8(0)
521 0428 880F lsl r24
522 042a 991F rol r25
523 042c 880F lsl r24
524 042e 991F rol r25
525 0430 880F lsl r24
526 0432 991F rol r25
527 0434 8050 subi r24,lo8(-(Motor+5))
528 0436 9040 sbci r25,hi8(-(Motor+5))
529 0438 9093 0000 sts (pBuff.1961)+1,r25
530 043c 8093 0000 sts pBuff.1961,r24
531 0440 9091 0000 lds r25,motor_read
532 0444 8091 0000 lds r24,motor_read_temperature.1960
533 0448 9817 cp r25,r24
534 044a 01F4 brne .L63
535 044c 83E0 ldi r24,lo8(3)
536 044e 00C0 rjmp .L85
537 .L54:
538 0450 8091 0000 lds r24,motor_read
539 0454 90E0 ldi r25,lo8(0)
540 0456 43E0 ldi r20,3
541 0458 880F 1: lsl r24
542 045a 991F rol r25
543 045c 4A95 dec r20
544 045e 01F4 brne 1b
545 0460 8050 subi r24,lo8(-(Motor+5))
546 0462 9040 sbci r25,hi8(-(Motor+5))
547 0464 9093 0000 sts (pBuff.1961)+1,r25
548 0468 8093 0000 sts pBuff.1961,r24
549 046c 8091 0000 lds r24,BLFlags
550 0470 81FD sbrc r24,1
551 0472 00C0 rjmp .L61
552 0474 9091 0000 lds r25,motor_read
553 0478 8091 0000 lds r24,motor_read_temperature.1960
554 047c 9817 cp r25,r24
555 047e 01F4 brne .L63
556 .L61:
557 0480 82E0 ldi r24,lo8(2)
558 0482 00C0 rjmp .L85
559 .L63:
560 0484 81E0 ldi r24,lo8(1)
561 .L85:
562 0486 8093 0000 sts BuffLen.1962,r24
563 .L56:
564 048a 8091 0000 lds r24,BuffLen.1962
565 048e 8130 cpi r24,lo8(1)
566 0490 01F4 brne .L64
567 0492 85E8 ldi r24,lo8(-123)
568 0494 00C0 rjmp .L86
569 .L64:
570 0496 85EC ldi r24,lo8(-59)
571 .L86:
572 0498 8093 BC00 sts 188,r24
573 .L53:
574 049c 8091 0000 lds r24,missing_motor.1959
575 04a0 8093 0000 sts MissingMotor,r24
576 04a4 1092 0000 sts missing_motor.1959,__zero_reg__
577 04a8 00C0 rjmp .L84
578 .L17:
579 04aa E091 0000 lds r30,pBuff.1961
580 04ae F091 0000 lds r31,(pBuff.1961)+1
581 04b2 8091 BB00 lds r24,187
582 04b6 8193 st Z+,r24
583 04b8 F093 0000 sts (pBuff.1961)+1,r31
584 04bc E093 0000 sts pBuff.1961,r30
585 04c0 8091 0000 lds r24,BuffLen.1962
586 04c4 8150 subi r24,lo8(-(-1))
587 04c6 8093 0000 sts BuffLen.1962,r24
588 04ca 8230 cpi r24,lo8(2)
589 04cc 00F0 brlo .L66
590 04ce 85EC ldi r24,lo8(-59)
591 04d0 00C0 rjmp .L87
592 .L66:
593 04d2 8130 cpi r24,lo8(1)
594 04d4 01F4 brne .L69
595 04d6 85E8 ldi r24,lo8(-123)
596 04d8 00C0 rjmp .L87
597 .L69:
598 04da 8091 0000 lds r24,BLFlags
599 04de 81FF sbrs r24,1
600 04e0 00C0 rjmp .L71
601 04e2 8091 0000 lds r24,FC_StatusFlags
602 04e6 80FD sbrc r24,0
603 04e8 00C0 rjmp .L73
604 04ea E091 0000 lds r30,motor_read
605 04ee F0E0 ldi r31,lo8(0)
606 04f0 33E0 ldi r19,3
607 04f2 EE0F 1: lsl r30
608 04f4 FF1F rol r31
609 04f6 3A95 dec r19
610 04f8 01F4 brne 1b
611 04fa E050 subi r30,lo8(-(Motor))
612 04fc F040 sbci r31,hi8(-(Motor))
613 04fe 8681 ldd r24,Z+6
614 0500 8A3F cpi r24,lo8(-6)
615 0502 01F4 brne .L73
616 0504 E091 0000 lds r30,motor_read
617 0508 F0E0 ldi r31,lo8(0)
618 050a 23E0 ldi r18,3
619 050c EE0F 1: lsl r30
620 050e FF1F rol r31
621 0510 2A95 dec r18
622 0512 01F4 brne 1b
623 0514 E050 subi r30,lo8(-(Motor))
624 0516 F040 sbci r31,hi8(-(Motor))
625 0518 8081 ld r24,Z
626 051a 8160 ori r24,lo8(1)
627 051c 8083 st Z,r24
628 051e 00C0 rjmp .L71
629 .L73:
630 0520 E091 0000 lds r30,motor_read
631 0524 F0E0 ldi r31,lo8(0)
632 0526 93E0 ldi r25,3
633 0528 EE0F 1: lsl r30
634 052a FF1F rol r31
635 052c 9A95 dec r25
636 052e 01F4 brne 1b
637 0530 E050 subi r30,lo8(-(Motor))
638 0532 F040 sbci r31,hi8(-(Motor))
639 0534 1082 st Z,__zero_reg__
640 .L71:
641 0536 8091 0000 lds r24,motor_read
642 053a 8F5F subi r24,lo8(-(1))
643 053c 8093 0000 sts motor_read,r24
644 0540 8091 0000 lds r24,motor_read
645 0544 8C30 cpi r24,lo8(12)
646 0546 00F0 brlo .L76
647 0548 1092 0000 sts motor_read,__zero_reg__
648 054c 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
649 0550 1092 0000 sts BLConfig_ReadMask,__zero_reg__
650 0554 8091 0000 lds r24,motor_read_temperature.1960
651 0558 8F5F subi r24,lo8(-(1))
652 055a 8093 0000 sts motor_read_temperature.1960,r24
653 055e 8C30 cpi r24,lo8(12)
654 0560 00F0 brlo .L76
655 0562 1092 0000 sts motor_read_temperature.1960,__zero_reg__
656 0566 8091 0000 lds r24,BLFlags
657 056a 8D7F andi r24,lo8(-3)
658 056c 8093 0000 sts BLFlags,r24
659 .L76:
660 0570 1092 0000 sts twi_state,__zero_reg__
661 0574 84E9 ldi r24,lo8(-108)
662 0576 8093 BC00 sts 188,r24
663 057a 8091 0000 lds r24,BLFlags
664 057e 8160 ori r24,lo8(1)
665 0580 8093 0000 sts BLFlags,r24
666 0584 00C0 rjmp .L91
667 .L87:
668 0586 8093 BC00 sts 188,r24
669 058a 86E0 ldi r24,lo8(6)
670 .L90:
671 058c 8093 0000 sts twi_state,r24
672 0590 00C0 rjmp .L84
673 .L18:
674 0592 88E9 ldi r24,lo8(-104)
675 0594 00C0 rjmp .L92
676 .L19:
677 0596 8091 0000 lds r24,dac_channel
678 059a 880F lsl r24
679 059c 805F subi r24,lo8(-(16))
680 059e 00C0 rjmp .L92
681 .L20:
682 05a0 8091 0000 lds r24,dac_channel
683 05a4 8130 cpi r24,lo8(1)
684 05a6 01F0 breq .L80
685 05a8 8130 cpi r24,lo8(1)
686 05aa 00F0 brlo .L79
687 05ac 8230 cpi r24,lo8(2)
688 05ae 01F0 breq .+2
689 05b0 00C0 rjmp .L84
690 05b2 00C0 rjmp .L81
691 .L79:
692 05b4 8091 0000 lds r24,AnalogOffsetNick
693 05b8 00C0 rjmp .L92
694 .L80:
695 05ba 8091 0000 lds r24,AnalogOffsetRoll
696 05be 00C0 rjmp .L92
697 .L81:
698 05c0 8091 0000 lds r24,AnalogOffsetGier
699 05c4 00C0 rjmp .L92
700 .L21:
701 05c6 80E8 ldi r24,lo8(-128)
702 05c8 00C0 rjmp .L92
703 .L22:
704 05ca 1092 0000 sts twi_state,__zero_reg__
705 05ce 84E9 ldi r24,lo8(-108)
706 05d0 8093 BC00 sts 188,r24
707 05d4 1092 0000 sts I2C_TransferActive,__zero_reg__
708 05d8 8AE0 ldi r24,lo8(10)
709 05da 90E0 ldi r25,hi8(10)
710 05dc 9093 0000 sts (I2CTimeout)+1,r25
711 05e0 8093 0000 sts I2CTimeout,r24
712 05e4 8091 0000 lds r24,dac_channel
713 05e8 8230 cpi r24,lo8(2)
714 05ea 00F4 brsh .L82
715 05ec 8091 0000 lds r24,dac_channel
716 05f0 8F5F subi r24,lo8(-(1))
717 05f2 8093 0000 sts dac_channel,r24
718 05f6 82E1 ldi r24,lo8(18)
719 05f8 8093 0000 sts twi_state,r24
720 .L93:
721 05fc 8091 0000 lds r24,BLFlags
722 0600 8E7F andi r24,lo8(-2)
723 0602 8093 0000 sts BLFlags,r24
724 0606 85EA ldi r24,lo8(-91)
725 .L88:
726 0608 8093 BC00 sts 188,r24
727 060c 00C0 rjmp .L84
728 .L82:
729 060e 1092 0000 sts dac_channel,__zero_reg__
730 0612 8091 0000 lds r24,BLFlags
731 0616 8160 ori r24,lo8(1)
732 0618 8093 0000 sts BLFlags,r24
733 061c 00C0 rjmp .L84
734 .L10:
735 061e 1092 0000 sts twi_state,__zero_reg__
736 0622 84E9 ldi r24,lo8(-108)
737 0624 8093 BC00 sts 188,r24
738 0628 8091 0000 lds r24,BLFlags
739 062c 8160 ori r24,lo8(1)
740 062e 8093 0000 sts BLFlags,r24
741 0632 8AE0 ldi r24,lo8(10)
742 0634 90E0 ldi r25,hi8(10)
743 0636 9093 0000 sts (I2CTimeout)+1,r25
744 063a 8093 0000 sts I2CTimeout,r24
745 063e 1092 0000 sts motor_write,__zero_reg__
746 0642 1092 0000 sts motor_read,__zero_reg__
747 .L91:
748 0646 1092 0000 sts I2C_TransferActive,__zero_reg__
749 .L84:
750 /* epilogue: frame size=0 */
751 064a FF91 pop r31
752 064c EF91 pop r30
753 064e BF91 pop r27
754 0650 AF91 pop r26
755 0652 9F91 pop r25
756 0654 8F91 pop r24
757 0656 4F91 pop r20
758 0658 3F91 pop r19
759 065a 2F91 pop r18
760 065c 0F90 pop __tmp_reg__
761 065e 0FBE out __SREG__,__tmp_reg__
762 0660 0F90 pop __tmp_reg__
763 0662 1F90 pop __zero_reg__
764 0664 1895 reti
765 /* epilogue end (size=14) */
766 /* function __vector_26 size 757 (729) */
768 .global I2C_ReadBLConfig
770 I2C_ReadBLConfig:
771 /* prologue: frame size=0 */
772 0666 0F93 push r16
773 0668 1F93 push r17
774 066a CF93 push r28
775 066c DF93 push r29
776 /* prologue end (size=4) */
777 066e 982F mov r25,r24
778 0670 8091 0000 lds r24,MotorenEin
779 0674 8823 tst r24
780 0676 01F0 breq .+2
781 0678 00C0 rjmp .L95
782 067a 8091 0000 lds r24,PC_MotortestActive
783 067e 8823 tst r24
784 0680 01F0 breq .+2
785 0682 00C0 rjmp .L95
786 0684 9D30 cpi r25,lo8(13)
787 0686 00F0 brlo .+2
788 0688 00C0 rjmp .L98
789 068a 9923 tst r25
790 068c 01F4 brne .L100
791 068e 86E0 ldi r24,lo8(6)
792 0690 90E0 ldi r25,hi8(6)
793 0692 00C0 rjmp .L102
794 .L100:
795 0694 C92F mov r28,r25
796 0696 D0E0 ldi r29,lo8(0)
797 0698 2197 sbiw r28,1
798 069a FE01 movw r30,r28
799 069c 13E0 ldi r17,3
800 069e EE0F 1: lsl r30
801 06a0 FF1F rol r31
802 06a2 1A95 dec r17
803 06a4 01F4 brne 1b
804 06a6 E050 subi r30,lo8(-(Motor))
805 06a8 F040 sbci r31,hi8(-(Motor))
806 06aa 8381 ldd r24,Z+3
807 06ac 87FF sbrs r24,7
808 06ae 00C0 rjmp .L98
809 06b0 8081 ld r24,Z
810 06b2 80FD sbrc r24,0
811 06b4 00C0 rjmp .L104
812 06b6 83E0 ldi r24,lo8(3)
813 06b8 90E0 ldi r25,hi8(3)
814 06ba 00C0 rjmp .L102
815 .L104:
816 06bc 80ED ldi r24,lo8(2000)
817 06be 97E0 ldi r25,hi8(2000)
818 06c0 0E94 0000 call SetDelay
819 06c4 8C01 movw r16,r24
820 .L106:
821 06c6 8091 0000 lds r24,BLFlags
822 06ca 80FD sbrc r24,0
823 06cc 00C0 rjmp .L107
824 06ce C801 movw r24,r16
825 06d0 0E94 0000 call CheckDelay
826 06d4 8823 tst r24
827 06d6 01F0 breq .L106
828 .L107:
829 06d8 81E0 ldi r24,lo8(1)
830 06da 90E0 ldi r25,hi8(1)
831 06dc 00C0 rjmp 2f
832 06de 880F 1: lsl r24
833 06e0 991F rol r25
834 06e2 CA95 2: dec r28
835 06e4 02F4 brpl 1b
836 06e6 9093 0000 sts (BLConfig_ReadMask)+1,r25
837 06ea 8093 0000 sts BLConfig_ReadMask,r24
838 06ee E0E0 ldi r30,lo8(Motor+1)
839 06f0 F0E0 ldi r31,hi8(Motor+1)
840 06f2 40E0 ldi r20,lo8(0)
841 06f4 50E0 ldi r21,hi8(0)
842 .L109:
843 06f6 2091 0000 lds r18,BLConfig_ReadMask
844 06fa 3091 0000 lds r19,(BLConfig_ReadMask)+1
845 06fe 81E0 ldi r24,lo8(1)
846 0700 90E0 ldi r25,hi8(1)
847 0702 042E mov r0,r20
848 0704 00C0 rjmp 2f
849 0706 880F 1: lsl r24
850 0708 991F rol r25
851 070a 0A94 2: dec r0
852 070c 02F4 brpl 1b
853 070e 8223 and r24,r18
854 0710 9323 and r25,r19
855 0712 892B or r24,r25
856 0714 01F0 breq .L110
857 0716 1082 st Z,__zero_reg__
858 0718 1182 std Z+1,__zero_reg__
859 .L110:
860 071a 4F5F subi r20,lo8(-(1))
861 071c 5F4F sbci r21,hi8(-(1))
862 071e 3896 adiw r30,8
863 0720 4C30 cpi r20,12
864 0722 5105 cpc r21,__zero_reg__
865 0724 01F4 brne .L109
866 0726 1092 0000 sts motor_read,__zero_reg__
867 072a 1092 0000 sts BLConfig,__zero_reg__
868 072e 1092 0000 sts BLConfig+7,__zero_reg__
869 .L113:
870 0732 1092 0000 sts twi_state,__zero_reg__
871 0736 8091 0000 lds r24,BLFlags
872 073a 8E7F andi r24,lo8(-2)
873 073c 8093 0000 sts BLFlags,r24
874 0740 85EA ldi r24,lo8(-91)
875 0742 8093 BC00 sts 188,r24
876 .L114:
877 0746 8091 0000 lds r24,BLFlags
878 074a 80FD sbrc r24,0
879 074c 00C0 rjmp .L115
880 074e C801 movw r24,r16
881 0750 0E94 0000 call CheckDelay
882 0754 8823 tst r24
883 0756 01F0 breq .L114
884 .L115:
885 0758 8091 0000 lds r24,BLConfig_ReadMask
886 075c 9091 0000 lds r25,(BLConfig_ReadMask)+1
887 0760 892B or r24,r25
888 0762 01F0 breq .L117
889 0764 C801 movw r24,r16
890 0766 0E94 0000 call CheckDelay
891 076a 8823 tst r24
892 076c 01F0 breq .L113
893 .L117:
894 076e 8091 0000 lds r24,BLConfig
895 0772 8230 cpi r24,lo8(2)
896 0774 01F0 breq .L119
897 0776 84E0 ldi r24,lo8(4)
898 0778 90E0 ldi r25,hi8(4)
899 077a 00C0 rjmp .L102
900 .L119:
901 077c 67E0 ldi r22,lo8(7)
902 077e 70E0 ldi r23,hi8(7)
903 0780 80E0 ldi r24,lo8(BLConfig)
904 0782 90E0 ldi r25,hi8(BLConfig)
905 0784 0E94 0000 call RAM_Checksum
906 0788 9091 0000 lds r25,BLConfig+7
907 078c 8917 cp r24,r25
908 078e 01F0 breq .L121
909 0790 85E0 ldi r24,lo8(5)
910 0792 90E0 ldi r25,hi8(5)
911 0794 00C0 rjmp .L102
912 .L121:
913 0796 80E0 ldi r24,lo8(0)
914 0798 90E0 ldi r25,hi8(0)
915 079a 00C0 rjmp .L102
916 .L95:
917 079c 81E0 ldi r24,lo8(1)
918 079e 90E0 ldi r25,hi8(1)
919 07a0 00C0 rjmp .L102
920 .L98:
921 07a2 82E0 ldi r24,lo8(2)
922 07a4 90E0 ldi r25,hi8(2)
923 .L102:
924 /* epilogue: frame size=0 */
925 07a6 DF91 pop r29
926 07a8 CF91 pop r28
927 07aa 1F91 pop r17
928 07ac 0F91 pop r16
929 07ae 0895 ret
930 /* epilogue end (size=5) */
931 /* function I2C_ReadBLConfig size 166 (157) */
933 .global I2C_WriteBLConfig
935 I2C_WriteBLConfig:
936 /* prologue: frame size=0 */
937 07b0 1F93 push r17
938 07b2 CF93 push r28
939 07b4 DF93 push r29
940 /* prologue end (size=3) */
941 07b6 182F mov r17,r24
942 07b8 8091 0000 lds r24,MotorenEin
943 07bc 8823 tst r24
944 07be 01F0 breq .+2
945 07c0 00C0 rjmp .L130
946 07c2 8091 0000 lds r24,PC_MotortestActive
947 07c6 8823 tst r24
948 07c8 01F0 breq .+2
949 07ca 00C0 rjmp .L130
950 07cc 1D30 cpi r17,lo8(13)
951 07ce 00F0 brlo .+2
952 07d0 00C0 rjmp .L133
953 07d2 1123 tst r17
954 07d4 01F0 breq .L135
955 07d6 E12F mov r30,r17
956 07d8 F0E0 ldi r31,lo8(0)
957 07da 83E0 ldi r24,3
958 07dc EE0F 1: lsl r30
959 07de FF1F rol r31
960 07e0 8A95 dec r24
961 07e2 01F4 brne 1b
962 07e4 E050 subi r30,lo8(-(Motor-8))
963 07e6 F040 sbci r31,hi8(-(Motor-8))
964 07e8 8381 ldd r24,Z+3
965 07ea 87FF sbrs r24,7
966 07ec 00C0 rjmp .L133
967 07ee 8081 ld r24,Z
968 07f0 80FD sbrc r24,0
969 07f2 00C0 rjmp .L135
970 07f4 83E0 ldi r24,lo8(3)
971 07f6 90E0 ldi r25,hi8(3)
972 07f8 00C0 rjmp .L139
973 .L135:
974 07fa 8091 0000 lds r24,BLConfig
975 07fe 8230 cpi r24,lo8(2)
976 0800 01F0 breq .L140
977 0802 84E0 ldi r24,lo8(4)
978 0804 90E0 ldi r25,hi8(4)
979 0806 00C0 rjmp .L139
980 .L140:
981 0808 67E0 ldi r22,lo8(7)
982 080a 70E0 ldi r23,hi8(7)
983 080c 80E0 ldi r24,lo8(BLConfig)
984 080e 90E0 ldi r25,hi8(BLConfig)
985 0810 0E94 0000 call RAM_Checksum
986 0814 9091 0000 lds r25,BLConfig+7
987 0818 8917 cp r24,r25
988 081a 01F0 breq .L142
989 081c 85E0 ldi r24,lo8(5)
990 081e 90E0 ldi r25,hi8(5)
991 0820 00C0 rjmp .L139
992 .L142:
993 0822 80ED ldi r24,lo8(2000)
994 0824 97E0 ldi r25,hi8(2000)
995 0826 0E94 0000 call SetDelay
996 082a EC01 movw r28,r24
997 .L144:
998 082c 8091 0000 lds r24,BLFlags
999 0830 80FD sbrc r24,0
1000 0832 00C0 rjmp .L145
1001 0834 CE01 movw r24,r28
1002 0836 0E94 0000 call CheckDelay
1003 083a 8823 tst r24
1004 083c 01F0 breq .L144
1005 .L145:
1006 083e 1123 tst r17
1007 0840 01F4 brne .L147
1008 0842 8FEF ldi r24,lo8(255)
1009 0844 90E0 ldi r25,hi8(255)
1010 0846 00C0 rjmp .L167
1011 .L147:
1012 0848 212F mov r18,r17
1013 084a 30E0 ldi r19,lo8(0)
1014 084c 2150 subi r18,lo8(-(-1))
1015 084e 3040 sbci r19,hi8(-(-1))
1016 0850 81E0 ldi r24,lo8(1)
1017 0852 90E0 ldi r25,hi8(1)
1018 0854 00C0 rjmp 2f
1019 0856 880F 1: lsl r24
1020 0858 991F rol r25
1021 085a 2A95 2: dec r18
1022 085c 02F4 brpl 1b
1023 .L167:
1024 085e 9093 0000 sts (BLConfig_WriteMask)+1,r25
1025 0862 8093 0000 sts BLConfig_WriteMask,r24
1026 0866 E0E0 ldi r30,lo8(Motor+1)
1027 0868 F0E0 ldi r31,hi8(Motor+1)
1028 086a 40E0 ldi r20,lo8(0)
1029 086c 50E0 ldi r21,hi8(0)
1030 .L150:
1031 086e 2091 0000 lds r18,BLConfig_WriteMask
1032 0872 3091 0000 lds r19,(BLConfig_WriteMask)+1
1033 0876 81E0 ldi r24,lo8(1)
1034 0878 90E0 ldi r25,hi8(1)
1035 087a 042E mov r0,r20
1036 087c 00C0 rjmp 2f
1037 087e 880F 1: lsl r24
1038 0880 991F rol r25
1039 0882 0A94 2: dec r0
1040 0884 02F4 brpl 1b
1041 0886 8223 and r24,r18
1042 0888 9323 and r25,r19
1043 088a 892B or r24,r25
1044 088c 01F0 breq .L151
1045 088e 1082 st Z,__zero_reg__
1046 0890 1182 std Z+1,__zero_reg__
1047 .L151:
1048 0892 4F5F subi r20,lo8(-(1))
1049 0894 5F4F sbci r21,hi8(-(1))
1050 0896 3896 adiw r30,8
1051 0898 4C30 cpi r20,12
1052 089a 5105 cpc r21,__zero_reg__
1053 089c 01F4 brne .L150
1054 089e 1092 0000 sts motor_write,__zero_reg__
1055 .L154:
1056 08a2 1092 0000 sts twi_state,__zero_reg__
1057 08a6 8091 0000 lds r24,BLFlags
1058 08aa 8E7F andi r24,lo8(-2)
1059 08ac 8093 0000 sts BLFlags,r24
1060 08b0 85EA ldi r24,lo8(-91)
1061 08b2 8093 BC00 sts 188,r24
1062 .L155:
1063 08b6 8091 0000 lds r24,BLFlags
1064 08ba 80FD sbrc r24,0
1065 08bc 00C0 rjmp .L156
1066 08be CE01 movw r24,r28
1067 08c0 0E94 0000 call CheckDelay
1068 08c4 8823 tst r24
1069 08c6 01F0 breq .L155
1070 .L156:
1071 08c8 8091 0000 lds r24,BLConfig_WriteMask
1072 08cc 9091 0000 lds r25,(BLConfig_WriteMask)+1
1073 08d0 892B or r24,r25
1074 08d2 01F0 breq .L158
1075 08d4 CE01 movw r24,r28
1076 08d6 0E94 0000 call CheckDelay
1077 08da 8823 tst r24
1078 08dc 01F0 breq .L154
1079 .L158:
1080 08de 8091 0000 lds r24,BLConfig_WriteMask
1081 08e2 9091 0000 lds r25,(BLConfig_WriteMask)+1
1082 08e6 892B or r24,r25
1083 08e8 01F4 brne .L133
1084 08ea 80E0 ldi r24,lo8(0)
1085 08ec 90E0 ldi r25,hi8(0)
1086 08ee 00C0 rjmp .L139
1087 .L130:
1088 08f0 81E0 ldi r24,lo8(1)
1089 08f2 90E0 ldi r25,hi8(1)
1090 08f4 00C0 rjmp .L139
1091 .L133:
1092 08f6 82E0 ldi r24,lo8(2)
1093 08f8 90E0 ldi r25,hi8(2)
1094 .L139:
1095 /* epilogue: frame size=0 */
1096 08fa DF91 pop r29
1097 08fc CF91 pop r28
1098 08fe 1F91 pop r17
1099 0900 0895 ret
1100 /* epilogue end (size=4) */
1101 /* function I2C_WriteBLConfig size 170 (163) */
1103 .global twi_state
1104 .global twi_state
1105 .section .bss
1108 twi_state:
1109 0000 00 .skip 1,0
1110 .global dac_channel
1111 .global dac_channel
1114 dac_channel:
1115 0001 00 .skip 1,0
1116 .global motor_write
1117 .global motor_write
1120 motor_write:
1121 0002 00 .skip 1,0
1122 .global motor_read
1123 .global motor_read
1126 motor_read:
1127 0003 00 .skip 1,0
1128 .global I2C_TransferActive
1129 .global I2C_TransferActive
1132 I2C_TransferActive:
1133 0004 00 .skip 1,0
1134 .global I2CTimeout
1135 .data
1138 I2CTimeout:
1139 0000 6400 .word 100
1140 .global MissingMotor
1141 .global MissingMotor
1142 .section .bss
1145 MissingMotor:
1146 0005 00 .skip 1,0
1147 .global BLFlags
1148 .global BLFlags
1151 BLFlags:
1152 0006 00 .skip 1,0
1153 .global BLConfig_WriteMask
1154 .global BLConfig_WriteMask
1157 BLConfig_WriteMask:
1158 0007 0000 .skip 2,0
1159 .global BLConfig_ReadMask
1160 .global BLConfig_ReadMask
1163 BLConfig_ReadMask:
1164 0009 0000 .skip 2,0
1165 .lcomm BuffLen.1962,1
1166 .lcomm pBuff.1961,2
1167 .lcomm motor_read_temperature.1960,1
1168 .lcomm missing_motor.1959,1
1169 .comm Motor,96,1
1170 .comm BLConfig,8,1
1171 /* File "twimaster.c": code 1182 = 0x049e (1128), prologues 25, epilogues 29 */
DEFINED SYMBOLS
*ABS*:00000000 twimaster.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:12 .text:00000000 I2C_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1108 .bss:00000000 twi_state
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1120 .bss:00000002 motor_write
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1126 .bss:00000003 motor_read
*COM*:00000060 Motor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:62 .text:00000052 I2C_Reset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1132 .bss:00000004 I2C_TransferActive
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1151 .bss:00000006 BLFlags
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:108 .text:000000ae __vector_26
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1157 .bss:00000007 BLConfig_WriteMask
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1163 .bss:00000009 BLConfig_ReadMask
*COM*:00000008 BLConfig
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1165 .bss:0000000c pBuff.1961
.bss:0000000b BuffLen.1962
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1167 .bss:0000000f missing_motor.1959
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1138 .data:00000000 I2CTimeout
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1166 .bss:0000000e motor_read_temperature.1960
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1145 .bss:00000005 MissingMotor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1114 .bss:00000001 dac_channel
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:770 .text:00000666 I2C_ReadBLConfig
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:935 .text:000007b0 I2C_WriteBLConfig
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
Mixer
RequiredMotors
FC_StatusFlags
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
MotorenEin
PC_MotortestActive
SetDelay
CheckDelay
RAM_Checksum
/Spektrum-Diversity/V0.82a/uart.c
0,0 → 1,761
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <stdarg.h>
#include <string.h>
#include <avr/pgmspace.h>
#include "main.h"
#include "uart.h"
#include "libfc.h"
#include "eeprom.h"
 
#define FC_ADDRESS 1
#define NC_ADDRESS 2
#define MK3MAG_ADDRESS 3
#define BL_CTRL_ADDRESS 5
 
#define ABO_TIMEOUT 4000 // disable abo after 4 seconds
#define MAX_SENDE_BUFF 170
#define MAX_EMPFANGS_BUFF 170
 
#define BLPARAM_REVISION 1
#define MASK_SET_PWM_SCALING 0x01
#define MASK_SET_CURRENT_LIMIT 0x02
#define MASK_SET_TEMP_LIMIT 0x04
#define MASK_SET_CURRENT_SCALING 0x08
#define MASK_SET_BITCONFIG 0x10
#define MASK_RESET_CAPCOUNTER 0x20
#define MASK_SET_DEFAULT_PARAMS 0x40
#define MASK_SET_SAVE_EEPROM 0x80
 
typedef struct
{
unsigned char Revision; // revision of parameter structure
unsigned char Address; // target address
unsigned char PwmScaling; // maximum value of pwm setpoint
unsigned char CurrentLimit; // current limit in 1A steps
unsigned char TemperatureLimit; // in °C
unsigned char CurrentScaling; // scaling factor for current measurement
unsigned char BitConfig; // see defines above
unsigned char SetMask; // filter for active paramters
unsigned char Checksum; // checksum for parameter sturcture
} __attribute__((packed)) BLParameter_t;
 
 
unsigned char GetExternalControl = 0,DebugDisplayAnforderung1 = 0, DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0, GetPPMChannelAnforderung = 0;
unsigned char DisplayLine = 0;
unsigned volatile char SioTmp = 0;
unsigned volatile char NeuerDatensatzEmpfangen = 0;
unsigned volatile char NeueKoordinateEmpfangen = 0;
unsigned volatile char UebertragungAbgeschlossen = 1;
unsigned volatile char CntCrcError = 0;
unsigned volatile char AnzahlEmpfangsBytes = 0;
unsigned volatile char TxdBuffer[MAX_SENDE_BUFF];
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
 
unsigned char *pRxData = 0;
unsigned char RxDataLen = 0;
unsigned volatile char PC_DebugTimeout = 0;
unsigned volatile char PC_MotortestActive = 0;
unsigned char DebugTextAnforderung = 255;
 
unsigned char PcZugriff = 100;
unsigned char MotorTest[16];
unsigned char MeineSlaveAdresse = 1; // Flight-Ctrl
unsigned char ConfirmFrame;
struct str_DebugOut DebugOut;
struct str_ExternControl ExternControl;
struct str_VersionInfo VersionInfo;
struct str_WinkelOut WinkelOut;
struct str_Data3D Data3D;
 
int Display_Timer, Debug_Timer,Kompass_Timer,Timer3D;
unsigned int DebugDataIntervall = 0, Intervall3D = 0, Display_Interval = 0;
unsigned int AboTimeOut = 0;
unsigned volatile char JetiUpdateModeActive = 0;
 
const unsigned char ANALOG_TEXT[32][16] PROGMEM =
{
//1234567890123456
"AngleNick ", //0
"AngleRoll ",
"AccNick ",
"AccRoll ",
"YawGyro ",
"Height Value ", //5
"AccZ ",
"Gas ",
"Compass Value ",
"Voltage [0.1V] ",
"Receiver Level ", //10
"Gyro Compass ",
"Motor 1 ",
"Motor 2 ",
"Motor 3 ",
"Motor 4 ", //15
"16 ",
"17 ",
"18 ",
"19 ",
"Servo ", //20
"Hovergas ",
"Current [0.1A] ",
"Capacity [mAh] ",
"24 ",
"25 ", //25
"26 ",
"27 ",
"I2C-Error ",
"BL Limit ",
"GPS_Nick ", //30
"GPS_Roll "
};
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_TX_vect)
{
static unsigned int ptr = 0;
unsigned char tmp_tx;
 
if(!UebertragungAbgeschlossen)
{
ptr++; // die [0] wurde schon gesendet
tmp_tx = TxdBuffer[ptr];
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
{
ptr = 0;
UebertragungAbgeschlossen = 1;
}
UDR0 = tmp_tx;
}
else ptr = 0;
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_RX_vect)
{
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
if (JetiUpdateModeActive == 1) { UDR1 = UDR0; return; }
if (JetiUpdateModeActive == 2) { RxdBuffer[0] = UDR0; return; }
 
SioTmp = UDR0;
 
if(buf_ptr >= MAX_SENDE_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
UartState = 0;
crc -= RxdBuffer[buf_ptr-2];
crc -= RxdBuffer[buf_ptr-1];
crc %= 4096;
crc1 = '=' + crc / 64;
crc2 = '=' + crc % 64;
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
{
NeuerDatensatzEmpfangen = 1;
AnzahlEmpfangsBytes = buf_ptr + 1;
RxdBuffer[buf_ptr] = '\r';
if(RxdBuffer[2] == 'R')
{
LcdClear();
wdt_enable(WDTO_250MS); // Reset-Commando
ServoActive = 0;
}
 
}
}
else
switch(UartState)
{
case 0:
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet
buf_ptr = 0;
RxdBuffer[buf_ptr++] = SioTmp;
crc = SioTmp;
break;
case 1: // Adresse auswerten
UartState++;
RxdBuffer[buf_ptr++] = SioTmp;
crc += SioTmp;
break;
case 2: // Eingangsdaten sammeln
RxdBuffer[buf_ptr] = SioTmp;
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++;
else UartState = 0;
crc += SioTmp;
break;
default:
UartState = 0;
break;
}
}
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxdBuffer[i];
}
tmpCRC %= 4096;
TxdBuffer[i++] = '=' + tmpCRC / 64;
TxdBuffer[i++] = '=' + tmpCRC % 64;
TxdBuffer[i++] = '\r';
UebertragungAbgeschlossen = 0;
UDR0 = TxdBuffer[0];
}
 
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) //unsigned char *snd, unsigned char len)
{
va_list ap;
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
unsigned char *snd = 0;
int len = 0;
 
TxdBuffer[pt++] = '#'; // Startzeichen
TxdBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...)
TxdBuffer[pt++] = cmd; // Commando
 
va_start(ap, BufferAnzahl);
if(BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
while(len)
{
if(len)
{
a = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else a = 0;
if(len)
{
b = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else b = 0;
if(len)
{
c = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
TxdBuffer[pt++] = '=' + (a >> 2);
TxdBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxdBuffer[pt++] = '=' + ( c & 0x3f);
}
va_end(ap);
AddCRC(pt);
}
 
// --------------------------------------------------------------------------
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) RxdBuffer[ptrOut++] = x; else break;
if(len--) RxdBuffer[ptrOut++] = y; else break;
if(len--) RxdBuffer[ptrOut++] = z; else break;
}
pRxData = (unsigned char*)&RxdBuffer[3]; // decodierte Daten beginnen beim 4. Byte
RxDataLen = ptrOut - 3; // wie viele Bytes wurden dekodiert?
 
}
 
// --------------------------------------------------------------------------
void BearbeiteRxDaten(void)
{
if(!NeuerDatensatzEmpfangen) return;
 
unsigned char tempchar1, tempchar2;
Decode64(); // dekodiere datenblock im Empfangsbuffer
switch(RxdBuffer[1]-'a') // check for Slave Address
{
case FC_ADDRESS: // FC special commands
switch(RxdBuffer[2])
{
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
break;
case 't':// Motortest
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
PC_MotortestActive = 240;
//while(!UebertragungAbgeschlossen);
//SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
break;
 
case 'n':// "Get Mixer
while(!UebertragungAbgeschlossen);
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer, sizeof(Mixer) - 1);
Debug("Mixer lesen");
break;
 
case 'm':// "Write Mixer
if(pRxData[0] == EEMIXER_REVISION)
{
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer) - 1);
MixerTable_WriteToEEProm();
tempchar1 = 1;
VersionInfo.HardwareError[1] &= ~FC_ERROR1_MIXER;
}
else
{
tempchar1 = 0;
}
while(!UebertragungAbgeschlossen);
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
break;
 
case 'p': // get PPM Channels
GetPPMChannelAnforderung = 1;
PcZugriff = 255;
break;
 
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if((10 <= pRxData[0]) && (pRxData[0] < 20))
{
tempchar1 = pRxData[0] - 10;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
SetDefaultParameter(tempchar1, 1);
}
else if((20 <= pRxData[0]) && (pRxData[0] < 30))
{
tempchar1 = pRxData[0] - 20;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
SetDefaultParameter(tempchar1, 0);
}
else
{
tempchar1 = pRxData[0];
if(tempchar1 == 0xFF)
{
tempchar1 = GetActiveParamSet();
}
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
// load requested parameter set
ParamSet_ReadFromEEProm(tempchar1);
}
while(!UebertragungAbgeschlossen);
SendOutData('Q', FC_ADDRESS, 2, &tempchar1, sizeof(tempchar1), (unsigned char *) &EE_Parameter, sizeof(EE_Parameter) - 1);
Debug("Lese Setting %d", tempchar1);
 
break;
 
case 's': // Parametersatz speichern
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_REVISION)) // check for setting to be in range
{
memcpy(&EE_Parameter, (uint8_t*)&pRxData[1], sizeof(EE_Parameter) - 1);
ParamSet_WriteToEEProm(pRxData[0]);
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
tempchar1 = GetActiveParamSet();
}
else
{
tempchar1 = 0; // mark in response an invlid setting
}
while(!UebertragungAbgeschlossen);
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin) Piep(tempchar1,110);
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'f': // auf anderen Parametersatz umschalten
if((1 <= pRxData[0]) && (pRxData[0] <= 5)) ParamSet_ReadFromEEProm(pRxData[0]);
tempchar1 = GetActiveParamSet();
while(!UebertragungAbgeschlossen);
SendOutData('F', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin) Piep(tempchar1,110);
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'y':// serial Potis
PPM_in[13] = (signed char) pRxData[0]; PPM_in[14] = (signed char) pRxData[1]; PPM_in[15] = (signed char) pRxData[2]; PPM_in[16] = (signed char) pRxData[3];
PPM_in[17] = (signed char) pRxData[4]; PPM_in[18] = (signed char) pRxData[5]; PPM_in[19] = (signed char) pRxData[6]; PPM_in[20] = (signed char) pRxData[7];
PPM_in[21] = (signed char) pRxData[8]; PPM_in[22] = (signed char) pRxData[9]; PPM_in[23] = (signed char) pRxData[10]; PPM_in[24] = (signed char) pRxData[11];
break;
 
case 'u': // request BL parameter
Debug("Reading BL %d", pRxData[0]);
// try to read BL configuration
tempchar2 = I2C_ReadBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0;
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('U', FC_ADDRESS, 4, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), &pRxData[0], 1, &BLConfig, sizeof(BLConfig_t));
break;
 
case 'w': // write BL parameter
Debug("Writing BL %d", pRxData[0]);
if(RxDataLen >= 1+sizeof(BLConfig_t))
{
memcpy(&BLConfig, (uint8_t*)(&pRxData[1]), sizeof(BLConfig_t));
tempchar2 = I2C_WriteBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0; // indicate error
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('W', FC_ADDRESS,2, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2));
}
break;
case 'j':
tempchar1 = LIBFC_GetCPUType();
if((tempchar1 == CPU_ATMEGA644P) || (tempchar1 == CPU_ATMEGA1284P))
{
uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 38400L) - 1);
 
cli();
 
// UART0 & UART1 disable RX and TX-Interrupt
UCSR0B &= ~((1 << RXCIE0)|(1 << TXCIE0));
UCSR1B &= ~((1 << RXCIE1)|(1 << TXCIE1));
 
// UART0 & UART1 disable receiver and transmitter
UCSR0B &= ~((1 << TXEN0) | (1 << RXEN0));
UCSR1B &= ~((1 << TXEN1) | (1 << RXEN1));
 
// UART0 & UART1 flush receive buffer explicit
while ( UCSR1A & (1<<RXC1) ) UDR1;
while ( UCSR0A & (1<<RXC0) ) UDR0;
 
 
if (pRxData[0] == 0)
{
JetiUpdateModeActive = 1;
 
// UART0 & UART1 set baudrate
UBRR1H = (uint8_t)(ubrr>>8);
UBRR1L = (uint8_t)ubrr;
UBRR0H = UBRR1H;
UBRR0L = UBRR1L;
// UART1 no parity
UCSR1C &= ~(1 << UPM11);
UCSR1C &= ~(1 << UPM10);
// UART1 8-bit
UCSR1B &= ~(1 << UCSZ12);
UCSR1C |= (1 << UCSZ11);
UCSR1C |= (1 << UCSZ10);
}
else JetiUpdateModeActive = 2;
 
// UART0 & UART1 1 stop bit
UCSR1C &= ~(1 << USBS1);
UCSR0C &= ~(1 << USBS0);
// UART1 clear 9th bit
UCSR1B &= ~(1<<TXB81);
// enable receiver and transmitter for UART0 and UART1
UCSR0B |= (1 << TXEN0) | (1 << RXEN0);
UCSR1B |= (1 << TXEN1) | (1 << RXEN1);
// enable RX-Interrupt for UART0 and UART1
UCSR0B |= (1 << RXCIE0);
UCSR1B |= (1 << RXCIE1);
// disable other Interrupts
TIMSK0 = 0;
TIMSK1 = 0;
TIMSK2 = 0;
 
sei();
}
break;
 
} // case FC_ADDRESS:
 
default: // any Slave Address
 
switch(RxdBuffer[2])
{
// 't' comand placed here only for compatibility to BL
case 't':// Motortest
if(AnzahlEmpfangsBytes >= sizeof(MotorTest)) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
while(!UebertragungAbgeschlossen);
SendOutData('T', MeineSlaveAdresse, 0);
PC_MotortestActive = 250;
PcZugriff = 255;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
// 'K' comand placed here only for compatibility to old MK3MAG software, that does not send the right Slave Address
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
break;
case 'a':// Texte der Analogwerte
DebugTextAnforderung = pRxData[0];
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31;
PcZugriff = 255;
break;
case 'b':
memcpy((unsigned char *)&ExternControl, (unsigned char *)pRxData, sizeof(ExternControl));
ConfirmFrame = ExternControl.Frame;
PcZugriff = 255;
break;
case 'c': // Poll the 3D-Data
if(!Intervall3D) { if(pRxData[0]) Timer3D = SetDelay(pRxData[0] * 10);}
Intervall3D = pRxData[0] * 10;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
case 'd': // Poll the debug data
PcZugriff = 255;
DebugDataIntervall = (unsigned int)pRxData[0] * 10;
if(DebugDataIntervall > 0) DebugDataAnforderung = 1;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
 
case 'h':// x-1 Displayzeilen
PcZugriff = 255;
if((pRxData[0] & 0x80) == 0x00) // old format
{
DisplayLine = 2;
Display_Interval = 0;
}
else // new format
{
RemoteKeys |= ~pRxData[0];
Display_Interval = (unsigned int)pRxData[1] * 10;
DisplayLine = 4;
AboTimeOut = SetDelay(ABO_TIMEOUT);
}
DebugDisplayAnforderung = 1;
break;
 
case 'l':// x-1 Displayzeilen
PcZugriff = 255;
MenuePunkt = pRxData[0];
DebugDisplayAnforderung1 = 1;
break;
case 'v': // Version-Anforderung und Ausbaustufe
GetVersionAnforderung = 1;
break;
 
case 'g'://
GetExternalControl = 1;
break;
 
default:
//unsupported command received
break;
}
break; // default:
}
NeuerDatensatzEmpfangen = 0;
pRxData = 0;
RxDataLen = 0;
}
 
//############################################################################
//Routine für die Serielle Ausgabe
void uart_putchar (char c)
//############################################################################
{
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(UCSR0A, UDRE0);
//Ausgabe des Zeichens
UDR0 = c;
}
 
 
//############################################################################
//INstallation der Seriellen Schnittstelle
void UART_Init (void)
//############################################################################
{
unsigned int ubrr = (unsigned int) ((unsigned long) F_CPU/(8 * USART0_BAUD) - 1);
 
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
UCSR0B = (1 << TXEN0) | (1 << RXEN0);
// UART Double Speed (U2X)
UCSR0A |= (1 << U2X0);
// RX-Interrupt Freigabe
UCSR0B |= (1 << RXCIE0);
// TX-Interrupt Freigabe
UCSR0B |= (1 << TXCIE0);
// USART0 Baud Rate Register
// set clock divider
UBRR0H = (uint8_t)(ubrr >> 8);
UBRR0L = (uint8_t)ubrr;
 
Debug_Timer = SetDelay(DebugDataIntervall);
Kompass_Timer = SetDelay(220);
 
VersionInfo.SWMajor = VERSION_MAJOR;
VersionInfo.SWMinor = VERSION_MINOR;
VersionInfo.SWPatch = VERSION_PATCH;
VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR;
VersionInfo.ProtoMinor = VERSION_SERIAL_MINOR;
 
pRxData = 0;
RxDataLen = 0;
}
 
//---------------------------------------------------------------------------------------------
void DatenUebertragung(void)
{
if(!UebertragungAbgeschlossen) return;
 
if(CheckDelay(AboTimeOut))
{
Display_Interval = 0;
DebugDataIntervall = 0;
Intervall3D = 0;
}
 
if(((Display_Interval>0 && CheckDelay(Display_Timer)) || DebugDisplayAnforderung) && UebertragungAbgeschlossen)
{
if(DisplayLine > 3)// new format
{
Menu();
SendOutData('H', FC_ADDRESS, 1, (uint8_t *)DisplayBuff, 80);
}
else // old format
{
LCD_printfxy(0,0,"!!! INCOMPATIBLE !!!");
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), (uint8_t *)DisplayBuff, 20);
if(DisplayLine++ > 3) DisplayLine = 0;
}
Display_Timer = SetDelay(Display_Interval);
DebugDisplayAnforderung = 0;
}
if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen)
{
Menu();
SendOutData('L', FC_ADDRESS, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
DebugDisplayAnforderung1 = 0;
}
if(GetVersionAnforderung && UebertragungAbgeschlossen)
{
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
GetVersionAnforderung = 0;
Debug_OK("Version gesendet");
}
 
if(GetExternalControl && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
{
SendOutData('G',MeineSlaveAdresse, 1, (unsigned char *) &ExternControl, sizeof(ExternControl));
GetExternalControl = 0;
}
if((CheckDelay(Kompass_Timer)) && UebertragungAbgeschlossen)
{
WinkelOut.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.UserParameter[0] = Parameter_UserParam1;
WinkelOut.UserParameter[1] = Parameter_UserParam2;
SendOutData('k', MK3MAG_ADDRESS, 1, (unsigned char *) &WinkelOut,sizeof(WinkelOut));
if(WinkelOut.CalcState > 4) WinkelOut.CalcState = 6; // wird dann in SPI auf Null gesetzt
Kompass_Timer = SetDelay(99);
}
if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen)
{
CopyDebugValues();
SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut));
DebugDataAnforderung = 0;
if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall);
}
if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen)
{
Data3D.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[2] = (int) ((10 * ErsatzKompass) / GIER_GRAD_FAKTOR);
Data3D.Centroid[0] = SummeNick >> 9;
Data3D.Centroid[1] = SummeRoll >> 9;
Data3D.Centroid[2] = Mess_Integral_Gier >> 9;
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D));
Timer3D = SetDelay(Intervall3D);
}
if(DebugTextAnforderung != 255) // Texte für die Analogdaten
{
unsigned char label[16]; // local sram buffer
memcpy_P(label, ANALOG_TEXT[DebugTextAnforderung], 16); // read lable from flash to sra
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),label, 16);
DebugTextAnforderung = 255;
}
if(ConfirmFrame && UebertragungAbgeschlossen) // Datensatz bestätigen
{
SendOutData('B', FC_ADDRESS, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
ConfirmFrame = 0;
}
 
if(GetPPMChannelAnforderung && UebertragungAbgeschlossen)
{
SendOutData('P', FC_ADDRESS, 1, (unsigned char *) &PPM_in, sizeof(PPM_in));
GetPPMChannelAnforderung = 0;
}
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
 
}
 
 
/Spektrum-Diversity/V0.82a/uart.d
0,0 → 1,3
uart.o uart.d : uart.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/Spektrum-Diversity/V0.82a/uart.h
0,0 → 1,107
#ifndef _UART_H
#define _UART_H
 
#define printf_P(format, args...) _printf_P(&uart_putchar, format , ## args)
#define printf(format, args...) _printf_P(&uart_putchar, PSTR(format) , ## args)
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
extern unsigned volatile char JetiUpdateModeActive;
extern unsigned volatile char UebertragungAbgeschlossen;
extern unsigned volatile char PC_DebugTimeout;
extern unsigned volatile char NeueKoordinateEmpfangen;
extern unsigned volatile char PC_MotortestActive;
extern unsigned char MeineSlaveAdresse;
extern unsigned char PcZugriff;
extern unsigned char RemotePollDisplayLine;
extern unsigned volatile char RxdBuffer[];
extern int Debug_Timer,Kompass_Timer;
extern void UART_Init (void);
extern void uart_putchar (char c);
extern void boot_program_page (uint32_t page, uint8_t *buf);
extern void DatenUebertragung(void);
extern void Uart1Init(void);
extern void BearbeiteRxDaten(void);
extern unsigned char MotorTest[16];
struct str_DebugOut
{
unsigned char Status[2];
signed int Analog[32]; // Debugwerte
};
 
extern struct str_DebugOut DebugOut;
 
struct str_WinkelOut
{
signed int Winkel[2];
unsigned char UserParameter[2];
unsigned char CalcState;
unsigned char Orientation;
};
extern struct str_WinkelOut WinkelOut;
 
struct str_Data3D
{
signed int Winkel[3]; // nick, roll, compass in 0,1°
signed char Centroid[3];
signed char reserve[5];
};
extern struct str_Data3D Data3D;
 
struct str_ExternControl
{
unsigned char Digital[2];
unsigned char RemoteTasten;
signed char Nick;
signed char Roll;
signed char Gier;
unsigned char Gas;
signed char Hight;
unsigned char free;
unsigned char Frame;
unsigned char Config;
};
extern struct str_ExternControl ExternControl;
 
// FC hardware errors
 
// bitmask for UART_VersionInfo_t.HardwareError[0]
#define FC_ERROR0_GYRO_NICK 0x01
#define FC_ERROR0_GYRO_ROLL 0x02
#define FC_ERROR0_GYRO_YAW 0x04
#define FC_ERROR0_ACC_NICK 0x08
#define FC_ERROR0_ACC_ROLL 0x10
#define FC_ERROR0_ACC_TOP 0x20
#define FC_ERROR0_PRESSURE 0x40
#define FC_ERROR0_CAREFREE 0x80
// bitmask for UART_VersionInfo_t.HardwareError[1]
#define FC_ERROR1_I2C 0x01
#define FC_ERROR1_BL_MISSING 0x02
#define FC_ERROR1_SPI_RX 0x04
#define FC_ERROR1_PPM 0x08
#define FC_ERROR1_MIXER 0x10
#define FC_ERROR1_RES1 0x20
#define FC_ERROR1_RES2 0x40
#define FC_ERROR1_RES3 0x80
 
struct str_VersionInfo
{
unsigned char SWMajor;
unsigned char SWMinor;
unsigned char ProtoMajor;
unsigned char ProtoMinor;
unsigned char SWPatch;
unsigned char HardwareError[5];
};
 
extern struct str_VersionInfo VersionInfo;
 
//#define USART0_BAUD 9600
//#define USART0_BAUD 14400
//#define USART0_BAUD 28800
//#define USART0_BAUD 38400
#define USART0_BAUD 57600
 
 
#endif //_UART_H
/Spektrum-Diversity/V0.82a/uart.lst
0,0 → 1,2580
1 .file "uart.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global __vector_22
12 __vector_22:
13 /* prologue: frame size=0 */
14 0000 1F92 push __zero_reg__
15 0002 0F92 push __tmp_reg__
16 0004 0FB6 in __tmp_reg__,__SREG__
17 0006 0F92 push __tmp_reg__
18 0008 1124 clr __zero_reg__
19 000a 8F93 push r24
20 000c 9F93 push r25
21 000e EF93 push r30
22 0010 FF93 push r31
23 /* prologue end (size=9) */
24 0012 8091 0000 lds r24,UebertragungAbgeschlossen
25 0016 8823 tst r24
26 0018 01F4 brne .L2
27 001a 8091 0000 lds r24,ptr.2536
28 001e 9091 0000 lds r25,(ptr.2536)+1
29 0022 0196 adiw r24,1
30 0024 9093 0000 sts (ptr.2536)+1,r25
31 0028 8093 0000 sts ptr.2536,r24
32 002c FC01 movw r30,r24
33 002e E050 subi r30,lo8(-(TxdBuffer))
34 0030 F040 sbci r31,hi8(-(TxdBuffer))
35 0032 E081 ld r30,Z
36 0034 ED30 cpi r30,lo8(13)
37 0036 01F0 breq .L4
38 0038 8A3A cpi r24,170
39 003a 9105 cpc r25,__zero_reg__
40 003c 01F4 brne .L6
41 .L4:
42 003e 1092 0000 sts (ptr.2536)+1,__zero_reg__
43 0042 1092 0000 sts ptr.2536,__zero_reg__
44 0046 81E0 ldi r24,lo8(1)
45 0048 8093 0000 sts UebertragungAbgeschlossen,r24
46 .L6:
47 004c E093 C600 sts 198,r30
48 0050 00C0 rjmp .L8
49 .L2:
50 0052 1092 0000 sts (ptr.2536)+1,__zero_reg__
51 0056 1092 0000 sts ptr.2536,__zero_reg__
52 .L8:
53 /* epilogue: frame size=0 */
54 005a FF91 pop r31
55 005c EF91 pop r30
56 005e 9F91 pop r25
57 0060 8F91 pop r24
58 0062 0F90 pop __tmp_reg__
59 0064 0FBE out __SREG__,__tmp_reg__
60 0066 0F90 pop __tmp_reg__
61 0068 1F90 pop __zero_reg__
62 006a 1895 reti
63 /* epilogue end (size=9) */
64 /* function __vector_22 size 54 (36) */
66 .global AddCRC
68 AddCRC:
69 /* prologue: frame size=0 */
70 /* prologue end (size=0) */
71 006c DC01 movw r26,r24
72 006e 20E0 ldi r18,lo8(0)
73 0070 30E0 ldi r19,hi8(0)
74 0072 40E0 ldi r20,lo8(0)
75 0074 50E0 ldi r21,hi8(0)
76 0076 00C0 rjmp .L10
77 .L11:
78 0078 FA01 movw r30,r20
79 007a E050 subi r30,lo8(-(TxdBuffer))
80 007c F040 sbci r31,hi8(-(TxdBuffer))
81 007e 8081 ld r24,Z
82 0080 280F add r18,r24
83 0082 311D adc r19,__zero_reg__
84 0084 4F5F subi r20,lo8(-(1))
85 0086 5F4F sbci r21,hi8(-(1))
86 .L10:
87 0088 4A17 cp r20,r26
88 008a 5B07 cpc r21,r27
89 008c 01F4 brne .L11
90 008e 3F70 andi r19,hi8(4095)
91 0090 C901 movw r24,r18
92 0092 36E0 ldi r19,6
93 0094 9695 1: lsr r25
94 0096 8795 ror r24
95 0098 3A95 dec r19
96 009a 01F4 brne 1b
97 009c 835C subi r24,lo8(-(61))
98 009e FD01 movw r30,r26
99 00a0 E050 subi r30,lo8(-(TxdBuffer))
100 00a2 F040 sbci r31,hi8(-(TxdBuffer))
101 00a4 8083 st Z,r24
102 00a6 1196 adiw r26,1
103 00a8 2F73 andi r18,lo8(63)
104 00aa 235C subi r18,lo8(-(61))
105 00ac FD01 movw r30,r26
106 00ae E050 subi r30,lo8(-(TxdBuffer))
107 00b0 F040 sbci r31,hi8(-(TxdBuffer))
108 00b2 2083 st Z,r18
109 00b4 A050 subi r26,lo8(-(TxdBuffer+1))
110 00b6 B040 sbci r27,hi8(-(TxdBuffer+1))
111 00b8 8DE0 ldi r24,lo8(13)
112 00ba 8C93 st X,r24
113 00bc 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__
114 00c0 8091 0000 lds r24,TxdBuffer
115 00c4 8093 C600 sts 198,r24
116 /* epilogue: frame size=0 */
117 00c8 0895 ret
118 /* epilogue end (size=1) */
119 /* function AddCRC size 48 (47) */
121 .global Decode64
123 Decode64:
124 /* prologue: frame size=0 */
125 /* prologue end (size=0) */
126 00ca 3091 0000 lds r19,AnzahlEmpfangsBytes
127 00ce 3650 subi r19,lo8(-(-6))
128 00d0 43E0 ldi r20,lo8(3)
129 00d2 63E0 ldi r22,lo8(3)
130 00d4 00C0 rjmp .L15
131 .L16:
132 00d6 E42F mov r30,r20
133 00d8 F0E0 ldi r31,lo8(0)
134 00da E050 subi r30,lo8(-(RxdBuffer))
135 00dc F040 sbci r31,hi8(-(RxdBuffer))
136 00de 8081 ld r24,Z
137 00e0 4F5F subi r20,lo8(-(1))
138 00e2 E42F mov r30,r20
139 00e4 F0E0 ldi r31,lo8(0)
140 00e6 E050 subi r30,lo8(-(RxdBuffer))
141 00e8 F040 sbci r31,hi8(-(RxdBuffer))
142 00ea 2081 ld r18,Z
143 00ec 4F5F subi r20,lo8(-(1))
144 00ee E42F mov r30,r20
145 00f0 F0E0 ldi r31,lo8(0)
146 00f2 E050 subi r30,lo8(-(RxdBuffer))
147 00f4 F040 sbci r31,hi8(-(RxdBuffer))
148 00f6 7081 ld r23,Z
149 00f8 4F5F subi r20,lo8(-(1))
150 00fa E42F mov r30,r20
151 00fc F0E0 ldi r31,lo8(0)
152 00fe 4350 subi r20,lo8(-(-3))
153 0100 E050 subi r30,lo8(-(RxdBuffer))
154 0102 F040 sbci r31,hi8(-(RxdBuffer))
155 0104 5081 ld r21,Z
156 0106 2D53 subi r18,lo8(-(-61))
157 0108 E62F mov r30,r22
158 010a F0E0 ldi r31,lo8(0)
159 010c 922F mov r25,r18
160 010e 9295 swap r25
161 0110 9F70 andi r25,lo8(15)
162 0112 8D53 subi r24,lo8(-(-61))
163 0114 880F lsl r24
164 0116 880F lsl r24
165 0118 892B or r24,r25
166 011a E050 subi r30,lo8(-(RxdBuffer))
167 011c F040 sbci r31,hi8(-(RxdBuffer))
168 011e 8083 st Z,r24
169 0120 E62F mov r30,r22
170 0122 EF5F subi r30,lo8(-(1))
171 0124 3130 cpi r19,lo8(1)
172 0126 01F0 breq .L17
173 0128 972F mov r25,r23
174 012a 9D53 subi r25,lo8(-(-61))
175 012c F0E0 ldi r31,lo8(0)
176 012e 2295 swap r18
177 0130 207F andi r18,lo8(-16)
178 0132 892F mov r24,r25
179 0134 8695 lsr r24
180 0136 8695 lsr r24
181 0138 282B or r18,r24
182 013a E050 subi r30,lo8(-(RxdBuffer))
183 013c F040 sbci r31,hi8(-(RxdBuffer))
184 013e 2083 st Z,r18
185 0140 E62F mov r30,r22
186 0142 EE5F subi r30,lo8(-(2))
187 0144 3350 subi r19,lo8(-(-3))
188 0146 3F3F cpi r19,lo8(-1)
189 0148 01F0 breq .L17
190 014a 4C5F subi r20,lo8(-(4))
191 014c F0E0 ldi r31,lo8(0)
192 014e 9295 swap r25
193 0150 990F lsl r25
194 0152 990F lsl r25
195 0154 907C andi r25,lo8(-64)
196 0156 5D53 subi r21,lo8(-(-61))
197 0158 952B or r25,r21
198 015a E050 subi r30,lo8(-(RxdBuffer))
199 015c F040 sbci r31,hi8(-(RxdBuffer))
200 015e 9083 st Z,r25
201 0160 6D5F subi r22,lo8(-(3))
202 .L15:
203 0162 3323 tst r19
204 0164 01F0 breq .+2
205 0166 00C0 rjmp .L16
206 0168 E62F mov r30,r22
207 .L17:
208 016a 80E0 ldi r24,lo8(RxdBuffer+3)
209 016c 90E0 ldi r25,hi8(RxdBuffer+3)
210 016e 9093 0000 sts (pRxData)+1,r25
211 0172 8093 0000 sts pRxData,r24
212 0176 E350 subi r30,lo8(-(-3))
213 0178 E093 0000 sts RxDataLen,r30
214 /* epilogue: frame size=0 */
215 017c 0895 ret
216 /* epilogue end (size=1) */
217 /* function Decode64 size 90 (89) */
219 .global uart_putchar
221 uart_putchar:
222 /* prologue: frame size=0 */
223 /* prologue end (size=0) */
224 017e 982F mov r25,r24
225 .L24:
226 0180 8091 C000 lds r24,192
227 0184 85FF sbrs r24,5
228 0186 00C0 rjmp .L24
229 0188 9093 C600 sts 198,r25
230 /* epilogue: frame size=0 */
231 018c 0895 ret
232 /* epilogue end (size=1) */
233 /* function uart_putchar size 8 (7) */
235 .global UART_Init
237 UART_Init:
238 /* prologue: frame size=0 */
239 /* prologue end (size=0) */
240 018e E1EC ldi r30,lo8(193)
241 0190 F0E0 ldi r31,hi8(193)
242 0192 88E1 ldi r24,lo8(24)
243 0194 8083 st Z,r24
244 0196 A0EC ldi r26,lo8(192)
245 0198 B0E0 ldi r27,hi8(192)
246 019a 8C91 ld r24,X
247 019c 8260 ori r24,lo8(2)
248 019e 8C93 st X,r24
249 01a0 8081 ld r24,Z
250 01a2 8068 ori r24,lo8(-128)
251 01a4 8083 st Z,r24
252 01a6 8081 ld r24,Z
253 01a8 8064 ori r24,lo8(64)
254 01aa 8083 st Z,r24
255 01ac 1092 C500 sts 197,__zero_reg__
256 01b0 8AE2 ldi r24,lo8(42)
257 01b2 8093 C400 sts 196,r24
258 01b6 8091 0000 lds r24,DebugDataIntervall
259 01ba 9091 0000 lds r25,(DebugDataIntervall)+1
260 01be 0E94 0000 call SetDelay
261 01c2 9093 0000 sts (Debug_Timer)+1,r25
262 01c6 8093 0000 sts Debug_Timer,r24
263 01ca 8CED ldi r24,lo8(220)
264 01cc 90E0 ldi r25,hi8(220)
265 01ce 0E94 0000 call SetDelay
266 01d2 9093 0000 sts (Kompass_Timer)+1,r25
267 01d6 8093 0000 sts Kompass_Timer,r24
268 01da 1092 0000 sts VersionInfo,__zero_reg__
269 01de 82E5 ldi r24,lo8(82)
270 01e0 8093 0000 sts VersionInfo+1,r24
271 01e4 1092 0000 sts VersionInfo+4,__zero_reg__
272 01e8 8BE0 ldi r24,lo8(11)
273 01ea 8093 0000 sts VersionInfo+2,r24
274 01ee 1092 0000 sts VersionInfo+3,__zero_reg__
275 01f2 1092 0000 sts (pRxData)+1,__zero_reg__
276 01f6 1092 0000 sts pRxData,__zero_reg__
277 01fa 1092 0000 sts RxDataLen,__zero_reg__
278 /* epilogue: frame size=0 */
279 01fe 0895 ret
280 /* epilogue end (size=1) */
281 /* function UART_Init size 57 (56) */
283 .global SendOutData
285 SendOutData:
286 /* prologue: frame size=2 */
287 0200 A2E0 ldi r26,lo8(2)
288 0202 B0E0 ldi r27,hi8(2)
289 0204 E0E0 ldi r30,pm_lo8(1f)
290 0206 F0E0 ldi r31,pm_hi8(1f)
291 0208 0C94 0000 jmp __prologue_saves__+22
292 1:
293 /* prologue end (size=6) */
294 020c 9D85 ldd r25,Y+13
295 020e AE85 ldd r26,Y+14
296 0210 83E2 ldi r24,lo8(35)
297 0212 8093 0000 sts TxdBuffer,r24
298 0216 9F59 subi r25,lo8(-(97))
299 0218 9093 0000 sts TxdBuffer+1,r25
300 021c 8C85 ldd r24,Y+12
301 021e 8093 0000 sts TxdBuffer+2,r24
302 0222 CE01 movw r24,r28
303 0224 0F96 adiw r24,15
304 0226 9A83 std Y+2,r25
305 0228 8983 std Y+1,r24
306 022a AA23 tst r26
307 022c 01F4 brne .L32
308 022e EE24 clr r14
309 0230 FF24 clr r15
310 0232 60E0 ldi r22,lo8(0)
311 0234 70E0 ldi r23,hi8(0)
312 .L34:
313 0236 03E0 ldi r16,lo8(3)
314 0238 10E0 ldi r17,hi8(3)
315 023a B0E0 ldi r27,lo8(0)
316 023c 00C0 rjmp .L35
317 .L32:
318 023e EF84 ldd r14,Y+15
319 0240 F888 ldd r15,Y+16
320 0242 CE01 movw r24,r28
321 0244 4396 adiw r24,19
322 0246 9A83 std Y+2,r25
323 0248 8983 std Y+1,r24
324 024a 6989 ldd r22,Y+17
325 024c 7A89 ldd r23,Y+18
326 024e A150 subi r26,lo8(-(-1))
327 0250 00C0 rjmp .L34
328 .L36:
329 0252 F701 movw r30,r14
330 0254 EB0F add r30,r27
331 0256 F11D adc r31,__zero_reg__
332 0258 9081 ld r25,Z
333 025a BF5F subi r27,lo8(-(1))
334 025c 6150 subi r22,lo8(-(-1))
335 025e 7040 sbci r23,hi8(-(-1))
336 0260 01F0 breq .L37
337 0262 9B01 movw r18,r22
338 0264 00C0 rjmp .L39
339 .L37:
340 0266 AA23 tst r26
341 0268 01F4 brne .+2
342 026a 00C0 rjmp .L40
343 026c E981 ldd r30,Y+1
344 026e FA81 ldd r31,Y+2
345 0270 E080 ld r14,Z
346 0272 F180 ldd r15,Z+1
347 0274 3496 adiw r30,4
348 0276 FA83 std Y+2,r31
349 0278 E983 std Y+1,r30
350 027a 3497 sbiw r30,4
351 027c 2281 ldd r18,Z+2
352 027e 3381 ldd r19,Z+3
353 0280 A150 subi r26,lo8(-(-1))
354 0282 2115 cp r18,__zero_reg__
355 0284 3105 cpc r19,__zero_reg__
356 0286 01F4 brne .+2
357 0288 00C0 rjmp .L42
358 028a B0E0 ldi r27,lo8(0)
359 .L39:
360 028c F701 movw r30,r14
361 028e EB0F add r30,r27
362 0290 F11D adc r31,__zero_reg__
363 0292 4081 ld r20,Z
364 0294 BF5F subi r27,lo8(-(1))
365 0296 B901 movw r22,r18
366 0298 6150 subi r22,lo8(-(-1))
367 029a 7040 sbci r23,hi8(-(-1))
368 029c 01F4 brne .L44
369 029e AA23 tst r26
370 02a0 01F4 brne .L46
371 02a2 DD24 clr r13
372 02a4 00C0 rjmp .L48
373 .L46:
374 02a6 E981 ldd r30,Y+1
375 02a8 FA81 ldd r31,Y+2
376 02aa E080 ld r14,Z
377 02ac F180 ldd r15,Z+1
378 02ae 3496 adiw r30,4
379 02b0 FA83 std Y+2,r31
380 02b2 E983 std Y+1,r30
381 02b4 3497 sbiw r30,4
382 02b6 6281 ldd r22,Z+2
383 02b8 7381 ldd r23,Z+3
384 02ba A150 subi r26,lo8(-(-1))
385 02bc 6115 cp r22,__zero_reg__
386 02be 7105 cpc r23,__zero_reg__
387 02c0 01F4 brne .L49
388 02c2 DD24 clr r13
389 02c4 00C0 rjmp .L56
390 .L49:
391 02c6 B0E0 ldi r27,lo8(0)
392 .L44:
393 02c8 F701 movw r30,r14
394 02ca EB0F add r30,r27
395 02cc F11D adc r31,__zero_reg__
396 02ce D080 ld r13,Z
397 02d0 BF5F subi r27,lo8(-(1))
398 02d2 6150 subi r22,lo8(-(-1))
399 02d4 7040 sbci r23,hi8(-(-1))
400 02d6 01F4 brne .L48
401 02d8 AA23 tst r26
402 02da 01F0 breq .L48
403 02dc E981 ldd r30,Y+1
404 02de FA81 ldd r31,Y+2
405 02e0 E080 ld r14,Z
406 02e2 F180 ldd r15,Z+1
407 02e4 3496 adiw r30,4
408 02e6 FA83 std Y+2,r31
409 02e8 E983 std Y+1,r30
410 02ea 3497 sbiw r30,4
411 02ec 6281 ldd r22,Z+2
412 02ee 7381 ldd r23,Z+3
413 02f0 A150 subi r26,lo8(-(-1))
414 .L56:
415 02f2 B0E0 ldi r27,lo8(0)
416 .L48:
417 02f4 892F mov r24,r25
418 02f6 8695 lsr r24
419 02f8 8695 lsr r24
420 02fa 835C subi r24,lo8(-(61))
421 02fc F801 movw r30,r16
422 02fe E050 subi r30,lo8(-(TxdBuffer))
423 0300 F040 sbci r31,hi8(-(TxdBuffer))
424 0302 8083 st Z,r24
425 0304 50E0 ldi r21,lo8(0)
426 0306 9A01 movw r18,r20
427 0308 84E0 ldi r24,4
428 030a 3695 1: lsr r19
429 030c 2795 ror r18
430 030e 8A95 dec r24
431 0310 01F4 brne 1b
432 0312 892F mov r24,r25
433 0314 90E0 ldi r25,lo8(0)
434 0316 8370 andi r24,lo8(3)
435 0318 9070 andi r25,hi8(3)
436 031a F4E0 ldi r31,4
437 031c 880F 1: lsl r24
438 031e 991F rol r25
439 0320 FA95 dec r31
440 0322 01F4 brne 1b
441 0324 282B or r18,r24
442 0326 235C subi r18,lo8(-(61))
443 0328 F801 movw r30,r16
444 032a E050 subi r30,lo8(-(TxdBuffer+1))
445 032c F040 sbci r31,hi8(-(TxdBuffer+1))
446 032e 2083 st Z,r18
447 0330 8D2D mov r24,r13
448 0332 8295 swap r24
449 0334 8695 lsr r24
450 0336 8695 lsr r24
451 0338 8370 andi r24,lo8(3)
452 033a 4F70 andi r20,lo8(15)
453 033c 5070 andi r21,hi8(15)
454 033e 440F lsl r20
455 0340 551F rol r21
456 0342 440F lsl r20
457 0344 551F rol r21
458 0346 842B or r24,r20
459 0348 835C subi r24,lo8(-(61))
460 034a F801 movw r30,r16
461 034c E050 subi r30,lo8(-(TxdBuffer+2))
462 034e F040 sbci r31,hi8(-(TxdBuffer+2))
463 0350 8083 st Z,r24
464 0352 8FE3 ldi r24,lo8(63)
465 0354 D822 and r13,r24
466 0356 8DE3 ldi r24,lo8(61)
467 0358 D80E add r13,r24
468 035a F801 movw r30,r16
469 035c E050 subi r30,lo8(-(TxdBuffer+3))
470 035e F040 sbci r31,hi8(-(TxdBuffer+3))
471 0360 D082 st Z,r13
472 0362 0C5F subi r16,lo8(-(4))
473 0364 1F4F sbci r17,hi8(-(4))
474 .L35:
475 0366 6115 cp r22,__zero_reg__
476 0368 7105 cpc r23,__zero_reg__
477 036a 01F0 breq .+2
478 036c 00C0 rjmp .L36
479 036e 00C0 rjmp .L55
480 .L42:
481 0370 B0E0 ldi r27,lo8(0)
482 .L40:
483 0372 DD24 clr r13
484 0374 40E0 ldi r20,lo8(0)
485 0376 00C0 rjmp .L48
486 .L55:
487 0378 C801 movw r24,r16
488 037a 0E94 0000 call AddCRC
489 /* epilogue: frame size=2 */
490 037e E7E0 ldi r30,7
491 0380 CE5F subi r28,-2
492 0382 0C94 0000 jmp __epilogue_restores__+22
493 /* epilogue end (size=4) */
494 /* function SendOutData size 201 (191) */
496 .global DatenUebertragung
498 DatenUebertragung:
499 /* prologue: frame size=16 */
500 0386 A0E1 ldi r26,lo8(16)
501 0388 B0E0 ldi r27,hi8(16)
502 038a E0E0 ldi r30,pm_lo8(1f)
503 038c F0E0 ldi r31,pm_hi8(1f)
504 038e 0C94 0000 jmp __prologue_saves__+24
505 1:
506 /* prologue end (size=6) */
507 0392 8091 0000 lds r24,UebertragungAbgeschlossen
508 0396 8823 tst r24
509 0398 01F4 brne .+2
510 039a 00C0 rjmp .L102
511 039c 8091 0000 lds r24,AboTimeOut
512 03a0 9091 0000 lds r25,(AboTimeOut)+1
513 03a4 0E94 0000 call CheckDelay
514 03a8 8823 tst r24
515 03aa 01F0 breq .L60
516 03ac 1092 0000 sts (Display_Interval)+1,__zero_reg__
517 03b0 1092 0000 sts Display_Interval,__zero_reg__
518 03b4 1092 0000 sts (DebugDataIntervall)+1,__zero_reg__
519 03b8 1092 0000 sts DebugDataIntervall,__zero_reg__
520 03bc 1092 0000 sts (Intervall3D)+1,__zero_reg__
521 03c0 1092 0000 sts Intervall3D,__zero_reg__
522 .L60:
523 03c4 8091 0000 lds r24,Display_Interval
524 03c8 9091 0000 lds r25,(Display_Interval)+1
525 03cc 892B or r24,r25
526 03ce 01F0 breq .L62
527 03d0 8091 0000 lds r24,Display_Timer
528 03d4 9091 0000 lds r25,(Display_Timer)+1
529 03d8 0E94 0000 call CheckDelay
530 03dc 8823 tst r24
531 03de 01F4 brne .L64
532 .L62:
533 03e0 8091 0000 lds r24,DebugDisplayAnforderung
534 03e4 8823 tst r24
535 03e6 01F4 brne .+2
536 03e8 00C0 rjmp .L65
537 .L64:
538 03ea 8091 0000 lds r24,UebertragungAbgeschlossen
539 03ee 8823 tst r24
540 03f0 01F4 brne .+2
541 03f2 00C0 rjmp .L65
542 03f4 8091 0000 lds r24,DisplayLine
543 03f8 00E0 ldi r16,lo8(DisplayBuff)
544 03fa 10E0 ldi r17,hi8(DisplayBuff)
545 03fc 8430 cpi r24,lo8(4)
546 03fe 00F0 brlo .L67
547 0400 0E94 0000 call Menu
548 0404 80E5 ldi r24,lo8(80)
549 0406 90E0 ldi r25,hi8(80)
550 0408 9F93 push r25
551 040a 8F93 push r24
552 040c 1F93 push r17
553 040e 0F93 push r16
554 0410 81E0 ldi r24,lo8(1)
555 0412 8F93 push r24
556 0414 8F93 push r24
557 0416 88E4 ldi r24,lo8(72)
558 0418 8F93 push r24
559 041a 0E94 0000 call SendOutData
560 041e 2DB7 in r18,__SP_L__
561 0420 3EB7 in r19,__SP_H__
562 0422 295F subi r18,lo8(-(7))
563 0424 3F4F sbci r19,hi8(-(7))
564 0426 2DBF out __SP_L__,r18
565 0428 00C0 rjmp .L69
566 .L67:
567 042a 1092 0000 sts DispPtr,__zero_reg__
568 042e E091 0000 lds r30,_printf_P
569 0432 F091 0000 lds r31,(_printf_P)+1
570 0436 80E0 ldi r24,lo8(__c.3030)
571 0438 90E0 ldi r25,hi8(__c.3030)
572 043a 9F93 push r25
573 043c 8F93 push r24
574 043e 80E0 ldi r24,lo8(gs(Menu_Putchar))
575 0440 90E0 ldi r25,hi8(gs(Menu_Putchar))
576 0442 9F93 push r25
577 0444 8F93 push r24
578 0446 0995 icall
579 0448 84E1 ldi r24,lo8(20)
580 044a 90E0 ldi r25,hi8(20)
581 044c 9F93 push r25
582 044e 8F93 push r24
583 0450 1F93 push r17
584 0452 0F93 push r16
585 0454 81E0 ldi r24,lo8(1)
586 0456 90E0 ldi r25,hi8(1)
587 0458 9F93 push r25
588 045a 8F93 push r24
589 045c 80E0 ldi r24,lo8(DisplayLine)
590 045e 90E0 ldi r25,hi8(DisplayLine)
591 0460 9F93 push r25
592 0462 8F93 push r24
593 0464 82E0 ldi r24,lo8(2)
594 0466 8F93 push r24
595 0468 81E0 ldi r24,lo8(1)
596 046a 8F93 push r24
597 046c 88E4 ldi r24,lo8(72)
598 046e 8F93 push r24
599 0470 0E94 0000 call SendOutData
600 0474 8091 0000 lds r24,DisplayLine
601 0478 8F5F subi r24,lo8(-(1))
602 047a 8093 0000 sts DisplayLine,r24
603 047e 8150 subi r24,lo8(-(-1))
604 0480 2DB7 in r18,__SP_L__
605 0482 3EB7 in r19,__SP_H__
606 0484 215F subi r18,lo8(-(15))
607 0486 3F4F sbci r19,hi8(-(15))
608 0488 2DBF out __SP_L__,r18
609 048a 8430 cpi r24,lo8(4)
610 048c 00F0 brlo .L69
611 048e 1092 0000 sts DisplayLine,__zero_reg__
612 .L69:
613 0492 8091 0000 lds r24,Display_Interval
614 0496 9091 0000 lds r25,(Display_Interval)+1
615 049a 0E94 0000 call SetDelay
616 049e 9093 0000 sts (Display_Timer)+1,r25
617 04a2 8093 0000 sts Display_Timer,r24
618 04a6 1092 0000 sts DebugDisplayAnforderung,__zero_reg__
619 .L65:
620 04aa 8091 0000 lds r24,DebugDisplayAnforderung1
621 04ae 8823 tst r24
622 04b0 01F0 breq .L71
623 04b2 8091 0000 lds r24,UebertragungAbgeschlossen
624 04b6 8823 tst r24
625 04b8 01F0 breq .L71
626 04ba 0E94 0000 call Menu
627 04be 80E5 ldi r24,lo8(80)
628 04c0 90E0 ldi r25,hi8(80)
629 04c2 9F93 push r25
630 04c4 8F93 push r24
631 04c6 80E0 ldi r24,lo8(DisplayBuff)
632 04c8 90E0 ldi r25,hi8(DisplayBuff)
633 04ca 9F93 push r25
634 04cc 8F93 push r24
635 04ce 21E0 ldi r18,lo8(1)
636 04d0 30E0 ldi r19,hi8(1)
637 04d2 3F93 push r19
638 04d4 2F93 push r18
639 04d6 80E0 ldi r24,lo8(MaxMenue)
640 04d8 90E0 ldi r25,hi8(MaxMenue)
641 04da 9F93 push r25
642 04dc 8F93 push r24
643 04de 3F93 push r19
644 04e0 2F93 push r18
645 04e2 80E0 ldi r24,lo8(MenuePunkt)
646 04e4 90E0 ldi r25,hi8(MenuePunkt)
647 04e6 9F93 push r25
648 04e8 8F93 push r24
649 04ea 83E0 ldi r24,lo8(3)
650 04ec 8F93 push r24
651 04ee 81E0 ldi r24,lo8(1)
652 04f0 8F93 push r24
653 04f2 8CE4 ldi r24,lo8(76)
654 04f4 8F93 push r24
655 04f6 0E94 0000 call SendOutData
656 04fa 1092 0000 sts DebugDisplayAnforderung1,__zero_reg__
657 04fe 8DB7 in r24,__SP_L__
658 0500 9EB7 in r25,__SP_H__
659 0502 0F96 adiw r24,15
660 0504 8DBF out __SP_L__,r24
661 .L71:
662 0506 8091 0000 lds r24,GetVersionAnforderung
663 050a 8823 tst r24
664 050c 01F0 breq .L74
665 050e 8091 0000 lds r24,UebertragungAbgeschlossen
666 0512 8823 tst r24
667 0514 01F0 breq .L74
668 0516 8AE0 ldi r24,lo8(10)
669 0518 90E0 ldi r25,hi8(10)
670 051a 9F93 push r25
671 051c 8F93 push r24
672 051e 80E0 ldi r24,lo8(VersionInfo)
673 0520 90E0 ldi r25,hi8(VersionInfo)
674 0522 9F93 push r25
675 0524 8F93 push r24
676 0526 81E0 ldi r24,lo8(1)
677 0528 8F93 push r24
678 052a 8F93 push r24
679 052c 86E5 ldi r24,lo8(86)
680 052e 8F93 push r24
681 0530 0E94 0000 call SendOutData
682 0534 1092 0000 sts GetVersionAnforderung,__zero_reg__
683 0538 2DB7 in r18,__SP_L__
684 053a 3EB7 in r19,__SP_H__
685 053c 295F subi r18,lo8(-(7))
686 053e 3F4F sbci r19,hi8(-(7))
687 0540 2DBF out __SP_L__,r18
688 .L74:
689 0542 8091 0000 lds r24,GetExternalControl
690 0546 8823 tst r24
691 0548 01F0 breq .L77
692 054a 8091 0000 lds r24,UebertragungAbgeschlossen
693 054e 8823 tst r24
694 0550 01F0 breq .L77
695 0552 2091 0000 lds r18,MeineSlaveAdresse
696 0556 8BE0 ldi r24,lo8(11)
697 0558 90E0 ldi r25,hi8(11)
698 055a 9F93 push r25
699 055c 8F93 push r24
700 055e 80E0 ldi r24,lo8(ExternControl)
701 0560 90E0 ldi r25,hi8(ExternControl)
702 0562 9F93 push r25
703 0564 8F93 push r24
704 0566 81E0 ldi r24,lo8(1)
705 0568 8F93 push r24
706 056a 2F93 push r18
707 056c 87E4 ldi r24,lo8(71)
708 056e 8F93 push r24
709 0570 0E94 0000 call SendOutData
710 0574 1092 0000 sts GetExternalControl,__zero_reg__
711 0578 8DB7 in r24,__SP_L__
712 057a 9EB7 in r25,__SP_H__
713 057c 0796 adiw r24,7
714 057e 8DBF out __SP_L__,r24
715 .L77:
716 0580 8091 0000 lds r24,Kompass_Timer
717 0584 9091 0000 lds r25,(Kompass_Timer)+1
718 0588 0E94 0000 call CheckDelay
719 058c 8823 tst r24
720 058e 01F4 brne .+2
721 0590 00C0 rjmp .L80
722 0592 8091 0000 lds r24,UebertragungAbgeschlossen
723 0596 8823 tst r24
724 0598 01F4 brne .+2
725 059a 00C0 rjmp .L80
726 059c E090 0000 lds r14,EE_Parameter+28
727 05a0 FF24 clr r15
728 05a2 EE0C lsl r14
729 05a4 FF1C rol r15
730 05a6 EE0C lsl r14
731 05a8 FF1C rol r15
732 05aa 0027 clr r16
733 05ac F7FC sbrc r15,7
734 05ae 0095 com r16
735 05b0 102F mov r17,r16
736 05b2 6091 0000 lds r22,IntegralNick
737 05b6 7091 0000 lds r23,(IntegralNick)+1
738 05ba 8091 0000 lds r24,(IntegralNick)+2
739 05be 9091 0000 lds r25,(IntegralNick)+3
740 05c2 A801 movw r20,r16
741 05c4 9701 movw r18,r14
742 05c6 0E94 0000 call __divmodsi4
743 05ca 3093 0000 sts (WinkelOut)+1,r19
744 05ce 2093 0000 sts WinkelOut,r18
745 05d2 6091 0000 lds r22,IntegralRoll
746 05d6 7091 0000 lds r23,(IntegralRoll)+1
747 05da 8091 0000 lds r24,(IntegralRoll)+2
748 05de 9091 0000 lds r25,(IntegralRoll)+3
749 05e2 A801 movw r20,r16
750 05e4 9701 movw r18,r14
751 05e6 0E94 0000 call __divmodsi4
752 05ea 3093 0000 sts (WinkelOut+2)+1,r19
753 05ee 2093 0000 sts WinkelOut+2,r18
754 05f2 8091 0000 lds r24,Parameter_UserParam1
755 05f6 8093 0000 sts WinkelOut+4,r24
756 05fa 8091 0000 lds r24,Parameter_UserParam2
757 05fe 8093 0000 sts WinkelOut+5,r24
758 0602 88E0 ldi r24,lo8(8)
759 0604 90E0 ldi r25,hi8(8)
760 0606 9F93 push r25
761 0608 8F93 push r24
762 060a 80E0 ldi r24,lo8(WinkelOut)
763 060c 90E0 ldi r25,hi8(WinkelOut)
764 060e 9F93 push r25
765 0610 8F93 push r24
766 0612 81E0 ldi r24,lo8(1)
767 0614 8F93 push r24
768 0616 83E0 ldi r24,lo8(3)
769 0618 8F93 push r24
770 061a 8BE6 ldi r24,lo8(107)
771 061c 8F93 push r24
772 061e 0E94 0000 call SendOutData
773 0622 2DB7 in r18,__SP_L__
774 0624 3EB7 in r19,__SP_H__
775 0626 295F subi r18,lo8(-(7))
776 0628 3F4F sbci r19,hi8(-(7))
777 062a 2DBF out __SP_L__,r18
778 062c 8091 0000 lds r24,WinkelOut+6
779 0630 8530 cpi r24,lo8(5)
780 0632 00F0 brlo .L83
781 0634 86E0 ldi r24,lo8(6)
782 0636 8093 0000 sts WinkelOut+6,r24
783 .L83:
784 063a 83E6 ldi r24,lo8(99)
785 063c 90E0 ldi r25,hi8(99)
786 063e 0E94 0000 call SetDelay
787 0642 9093 0000 sts (Kompass_Timer)+1,r25
788 0646 8093 0000 sts Kompass_Timer,r24
789 .L80:
790 064a 8091 0000 lds r24,DebugDataIntervall
791 064e 9091 0000 lds r25,(DebugDataIntervall)+1
792 0652 892B or r24,r25
793 0654 01F0 breq .L85
794 0656 8091 0000 lds r24,Debug_Timer
795 065a 9091 0000 lds r25,(Debug_Timer)+1
796 065e 0E94 0000 call CheckDelay
797 0662 8823 tst r24
798 0664 01F4 brne .L87
799 .L85:
800 0666 8091 0000 lds r24,DebugDataAnforderung
801 066a 8823 tst r24
802 066c 01F0 breq .L88
803 .L87:
804 066e 8091 0000 lds r24,UebertragungAbgeschlossen
805 0672 8823 tst r24
806 0674 01F0 breq .L88
807 0676 0E94 0000 call CopyDebugValues
808 067a 82E4 ldi r24,lo8(66)
809 067c 90E0 ldi r25,hi8(66)
810 067e 9F93 push r25
811 0680 8F93 push r24
812 0682 80E0 ldi r24,lo8(DebugOut)
813 0684 90E0 ldi r25,hi8(DebugOut)
814 0686 9F93 push r25
815 0688 8F93 push r24
816 068a 81E0 ldi r24,lo8(1)
817 068c 8F93 push r24
818 068e 8F93 push r24
819 0690 84E4 ldi r24,lo8(68)
820 0692 8F93 push r24
821 0694 0E94 0000 call SendOutData
822 0698 1092 0000 sts DebugDataAnforderung,__zero_reg__
823 069c 8091 0000 lds r24,DebugDataIntervall
824 06a0 9091 0000 lds r25,(DebugDataIntervall)+1
825 06a4 2DB7 in r18,__SP_L__
826 06a6 3EB7 in r19,__SP_H__
827 06a8 295F subi r18,lo8(-(7))
828 06aa 3F4F sbci r19,hi8(-(7))
829 06ac 2DBF out __SP_L__,r18
830 06ae 0097 sbiw r24,0
831 06b0 01F0 breq .L88
832 06b2 0E94 0000 call SetDelay
833 06b6 9093 0000 sts (Debug_Timer)+1,r25
834 06ba 8093 0000 sts Debug_Timer,r24
835 .L88:
836 06be 8091 0000 lds r24,Intervall3D
837 06c2 9091 0000 lds r25,(Intervall3D)+1
838 06c6 892B or r24,r25
839 06c8 01F4 brne .+2
840 06ca 00C0 rjmp .L91
841 06cc 8091 0000 lds r24,Timer3D
842 06d0 9091 0000 lds r25,(Timer3D)+1
843 06d4 0E94 0000 call CheckDelay
844 06d8 8823 tst r24
845 06da 01F4 brne .+2
846 06dc 00C0 rjmp .L91
847 06de 8091 0000 lds r24,UebertragungAbgeschlossen
848 06e2 8823 tst r24
849 06e4 01F4 brne .+2
850 06e6 00C0 rjmp .L91
851 06e8 E090 0000 lds r14,EE_Parameter+28
852 06ec FF24 clr r15
853 06ee EE0C lsl r14
854 06f0 FF1C rol r15
855 06f2 EE0C lsl r14
856 06f4 FF1C rol r15
857 06f6 0027 clr r16
858 06f8 F7FC sbrc r15,7
859 06fa 0095 com r16
860 06fc 102F mov r17,r16
861 06fe 6091 0000 lds r22,IntegralNick
862 0702 7091 0000 lds r23,(IntegralNick)+1
863 0706 8091 0000 lds r24,(IntegralNick)+2
864 070a 9091 0000 lds r25,(IntegralNick)+3
865 070e A801 movw r20,r16
866 0710 9701 movw r18,r14
867 0712 0E94 0000 call __divmodsi4
868 0716 3093 0000 sts (Data3D)+1,r19
869 071a 2093 0000 sts Data3D,r18
870 071e 6091 0000 lds r22,IntegralRoll
871 0722 7091 0000 lds r23,(IntegralRoll)+1
872 0726 8091 0000 lds r24,(IntegralRoll)+2
873 072a 9091 0000 lds r25,(IntegralRoll)+3
874 072e A801 movw r20,r16
875 0730 9701 movw r18,r14
876 0732 0E94 0000 call __divmodsi4
877 0736 3093 0000 sts (Data3D+2)+1,r19
878 073a 2093 0000 sts Data3D+2,r18
879 073e 6091 0000 lds r22,ErsatzKompass
880 0742 7091 0000 lds r23,(ErsatzKompass)+1
881 0746 8091 0000 lds r24,(ErsatzKompass)+2
882 074a 9091 0000 lds r25,(ErsatzKompass)+3
883 074e 2AE0 ldi r18,lo8(10)
884 0750 30E0 ldi r19,hi8(10)
885 0752 40E0 ldi r20,hlo8(10)
886 0754 50E0 ldi r21,hhi8(10)
887 0756 0E94 0000 call __mulsi3
888 075a 2091 0000 lds r18,GIER_GRAD_FAKTOR
889 075e 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
890 0762 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
891 0766 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
892 076a 0E94 0000 call __divmodsi4
893 076e 3093 0000 sts (Data3D+4)+1,r19
894 0772 2093 0000 sts Data3D+4,r18
895 0776 8091 0000 lds r24,SummeNick
896 077a 9091 0000 lds r25,(SummeNick)+1
897 077e A091 0000 lds r26,(SummeNick)+2
898 0782 B091 0000 lds r27,(SummeNick)+3
899 0786 49E0 ldi r20,9
900 0788 B595 1: asr r27
901 078a A795 ror r26
902 078c 9795 ror r25
903 078e 8795 ror r24
904 0790 4A95 dec r20
905 0792 01F4 brne 1b
906 0794 8093 0000 sts Data3D+6,r24
907 0798 8091 0000 lds r24,SummeRoll
908 079c 9091 0000 lds r25,(SummeRoll)+1
909 07a0 A091 0000 lds r26,(SummeRoll)+2
910 07a4 B091 0000 lds r27,(SummeRoll)+3
911 07a8 39E0 ldi r19,9
912 07aa B595 1: asr r27
913 07ac A795 ror r26
914 07ae 9795 ror r25
915 07b0 8795 ror r24
916 07b2 3A95 dec r19
917 07b4 01F4 brne 1b
918 07b6 8093 0000 sts Data3D+7,r24
919 07ba 8091 0000 lds r24,Mess_Integral_Gier
920 07be 9091 0000 lds r25,(Mess_Integral_Gier)+1
921 07c2 A091 0000 lds r26,(Mess_Integral_Gier)+2
922 07c6 B091 0000 lds r27,(Mess_Integral_Gier)+3
923 07ca 29E0 ldi r18,9
924 07cc B595 1: asr r27
925 07ce A795 ror r26
926 07d0 9795 ror r25
927 07d2 8795 ror r24
928 07d4 2A95 dec r18
929 07d6 01F4 brne 1b
930 07d8 8093 0000 sts Data3D+8,r24
931 07dc 8EE0 ldi r24,lo8(14)
932 07de 90E0 ldi r25,hi8(14)
933 07e0 9F93 push r25
934 07e2 8F93 push r24
935 07e4 80E0 ldi r24,lo8(Data3D)
936 07e6 90E0 ldi r25,hi8(Data3D)
937 07e8 9F93 push r25
938 07ea 8F93 push r24
939 07ec 81E0 ldi r24,lo8(1)
940 07ee 8F93 push r24
941 07f0 8F93 push r24
942 07f2 83E4 ldi r24,lo8(67)
943 07f4 8F93 push r24
944 07f6 0E94 0000 call SendOutData
945 07fa 8091 0000 lds r24,Intervall3D
946 07fe 9091 0000 lds r25,(Intervall3D)+1
947 0802 0E94 0000 call SetDelay
948 0806 9093 0000 sts (Timer3D)+1,r25
949 080a 8093 0000 sts Timer3D,r24
950 080e 8DB7 in r24,__SP_L__
951 0810 9EB7 in r25,__SP_H__
952 0812 0796 adiw r24,7
953 0814 8DBF out __SP_L__,r24
954 .L91:
955 0816 6091 0000 lds r22,DebugTextAnforderung
956 081a 6F3F cpi r22,lo8(-1)
957 081c 01F0 breq .L95
958 081e 70E0 ldi r23,lo8(0)
959 0820 94E0 ldi r25,4
960 0822 660F 1: lsl r22
961 0824 771F rol r23
962 0826 9A95 dec r25
963 0828 01F4 brne 1b
964 082a 6050 subi r22,lo8(-(ANALOG_TEXT))
965 082c 7040 sbci r23,hi8(-(ANALOG_TEXT))
966 082e 40E1 ldi r20,lo8(16)
967 0830 50E0 ldi r21,hi8(16)
968 0832 8E01 movw r16,r28
969 0834 0F5F subi r16,lo8(-(1))
970 0836 1F4F sbci r17,hi8(-(1))
971 0838 C801 movw r24,r16
972 083a 0E94 0000 call memcpy_P
973 083e 80E1 ldi r24,lo8(16)
974 0840 90E0 ldi r25,hi8(16)
975 0842 9F93 push r25
976 0844 8F93 push r24
977 0846 1F93 push r17
978 0848 0F93 push r16
979 084a 81E0 ldi r24,lo8(1)
980 084c 90E0 ldi r25,hi8(1)
981 084e 9F93 push r25
982 0850 8F93 push r24
983 0852 80E0 ldi r24,lo8(DebugTextAnforderung)
984 0854 90E0 ldi r25,hi8(DebugTextAnforderung)
985 0856 9F93 push r25
986 0858 8F93 push r24
987 085a 82E0 ldi r24,lo8(2)
988 085c 8F93 push r24
989 085e 81E0 ldi r24,lo8(1)
990 0860 8F93 push r24
991 0862 81E4 ldi r24,lo8(65)
992 0864 8F93 push r24
993 0866 0E94 0000 call SendOutData
994 086a 8FEF ldi r24,lo8(-1)
995 086c 8093 0000 sts DebugTextAnforderung,r24
996 0870 2DB7 in r18,__SP_L__
997 0872 3EB7 in r19,__SP_H__
998 0874 255F subi r18,lo8(-(11))
999 0876 3F4F sbci r19,hi8(-(11))
1000 0878 2DBF out __SP_L__,r18
1001 .L95:
1002 087a 8091 0000 lds r24,ConfirmFrame
1003 087e 8823 tst r24
1004 0880 01F0 breq .L97
1005 0882 8091 0000 lds r24,UebertragungAbgeschlossen
1006 0886 8823 tst r24
1007 0888 01F0 breq .L97
1008 088a 81E0 ldi r24,lo8(1)
1009 088c 90E0 ldi r25,hi8(1)
1010 088e 9F93 push r25
1011 0890 8F93 push r24
1012 0892 80E0 ldi r24,lo8(ConfirmFrame)
1013 0894 90E0 ldi r25,hi8(ConfirmFrame)
1014 0896 9F93 push r25
1015 0898 8F93 push r24
1016 089a 81E0 ldi r24,lo8(1)
1017 089c 8F93 push r24
1018 089e 8F93 push r24
1019 08a0 82E4 ldi r24,lo8(66)
1020 08a2 8F93 push r24
1021 08a4 0E94 0000 call SendOutData
1022 08a8 1092 0000 sts ConfirmFrame,__zero_reg__
1023 08ac 8DB7 in r24,__SP_L__
1024 08ae 9EB7 in r25,__SP_H__
1025 08b0 0796 adiw r24,7
1026 08b2 8DBF out __SP_L__,r24
1027 .L97:
1028 08b4 8091 0000 lds r24,GetPPMChannelAnforderung
1029 08b8 8823 tst r24
1030 08ba 01F0 breq .L102
1031 08bc 8091 0000 lds r24,UebertragungAbgeschlossen
1032 08c0 8823 tst r24
1033 08c2 01F0 breq .L102
1034 08c4 84E3 ldi r24,lo8(52)
1035 08c6 90E0 ldi r25,hi8(52)
1036 08c8 9F93 push r25
1037 08ca 8F93 push r24
1038 08cc 80E0 ldi r24,lo8(PPM_in)
1039 08ce 90E0 ldi r25,hi8(PPM_in)
1040 08d0 9F93 push r25
1041 08d2 8F93 push r24
1042 08d4 81E0 ldi r24,lo8(1)
1043 08d6 8F93 push r24
1044 08d8 8F93 push r24
1045 08da 80E5 ldi r24,lo8(80)
1046 08dc 8F93 push r24
1047 08de 0E94 0000 call SendOutData
1048 08e2 1092 0000 sts GetPPMChannelAnforderung,__zero_reg__
1049 08e6 2DB7 in r18,__SP_L__
1050 08e8 3EB7 in r19,__SP_H__
1051 08ea 295F subi r18,lo8(-(7))
1052 08ec 3F4F sbci r19,hi8(-(7))
1053 08ee 2DBF out __SP_L__,r18
1054 .L102:
1055 /* epilogue: frame size=16 */
1056 08f0 E6E0 ldi r30,6
1057 08f2 C05F subi r28,-16
1058 08f4 0C94 0000 jmp __epilogue_restores__+24
1059 /* epilogue end (size=4) */
1060 /* function DatenUebertragung size 697 (687) */
1062 .global BearbeiteRxDaten
1064 BearbeiteRxDaten:
1065 /* prologue: frame size=2 */
1066 08f8 A2E0 ldi r26,lo8(2)
1067 08fa B0E0 ldi r27,hi8(2)
1068 08fc E0E0 ldi r30,pm_lo8(1f)
1069 08fe F0E0 ldi r31,pm_hi8(1f)
1070 0900 0C94 0000 jmp __prologue_saves__+32
1071 1:
1072 /* prologue end (size=6) */
1073 0904 8091 0000 lds r24,NeuerDatensatzEmpfangen
1074 0908 8823 tst r24
1075 090a 01F4 brne .+2
1076 090c 00C0 rjmp .L217
1077 090e 0E94 0000 call Decode64
1078 0912 8091 0000 lds r24,RxdBuffer+1
1079 0916 8236 cpi r24,lo8(98)
1080 0918 01F0 breq .+2
1081 091a 00C0 rjmp .L106
1082 091c 8091 0000 lds r24,RxdBuffer+2
1083 0920 8037 cpi r24,lo8(112)
1084 0922 01F4 brne .+2
1085 0924 00C0 rjmp .L113
1086 0926 8137 cpi r24,lo8(113)
1087 0928 00F4 brsh .L120
1088 092a 8A36 cpi r24,lo8(106)
1089 092c 01F4 brne .+2
1090 092e 00C0 rjmp .L110
1091 0930 8B36 cpi r24,lo8(107)
1092 0932 00F4 brsh .L121
1093 0934 8B34 cpi r24,lo8(75)
1094 0936 01F0 breq .L108
1095 0938 8636 cpi r24,lo8(102)
1096 093a 01F0 breq .+2
1097 093c 00C0 rjmp .L106
1098 093e 00C0 rjmp .L109
1099 .L121:
1100 0940 8D36 cpi r24,lo8(109)
1101 0942 01F4 brne .+2
1102 0944 00C0 rjmp .L111
1103 0946 8E36 cpi r24,lo8(110)
1104 0948 01F0 breq .+2
1105 094a 00C0 rjmp .L106
1106 094c 00C0 rjmp .L218
1107 .L120:
1108 094e 8437 cpi r24,lo8(116)
1109 0950 01F0 breq .L116
1110 0952 8537 cpi r24,lo8(117)
1111 0954 00F4 brsh .L122
1112 0956 8137 cpi r24,lo8(113)
1113 0958 01F4 brne .+2
1114 095a 00C0 rjmp .L114
1115 095c 8337 cpi r24,lo8(115)
1116 095e 01F0 breq .+2
1117 0960 00C0 rjmp .L106
1118 0962 00C0 rjmp .L115
1119 .L122:
1120 0964 8737 cpi r24,lo8(119)
1121 0966 01F4 brne .+2
1122 0968 00C0 rjmp .L118
1123 096a 8937 cpi r24,lo8(121)
1124 096c 01F4 brne .+2
1125 096e 00C0 rjmp .L119
1126 0970 8537 cpi r24,lo8(117)
1127 0972 01F0 breq .+2
1128 0974 00C0 rjmp .L106
1129 0976 00C0 rjmp .L117
1130 .L108:
1131 0978 E091 0000 lds r30,pRxData
1132 097c F091 0000 lds r31,(pRxData)+1
1133 0980 8081 ld r24,Z
1134 0982 9181 ldd r25,Z+1
1135 0984 9093 0000 sts (KompassValue)+1,r25
1136 0988 8093 0000 sts KompassValue,r24
1137 098c 845E subi r24,lo8(-(540))
1138 098e 9D4F sbci r25,hi8(-(540))
1139 0990 2091 0000 lds r18,KompassStartwert
1140 0994 3091 0000 lds r19,(KompassStartwert)+1
1141 0998 821B sub r24,r18
1142 099a 930B sbc r25,r19
1143 099c 68E6 ldi r22,lo8(360)
1144 099e 71E0 ldi r23,hi8(360)
1145 09a0 0E94 0000 call __divmodhi4
1146 09a4 845B subi r24,lo8(-(-180))
1147 09a6 9040 sbci r25,hi8(-(-180))
1148 09a8 9093 0000 sts (KompassRichtung)+1,r25
1149 09ac 8093 0000 sts KompassRichtung,r24
1150 09b0 00C0 rjmp .L106
1151 .L116:
1152 09b2 8091 0000 lds r24,AnzahlEmpfangsBytes
1153 09b6 E091 0000 lds r30,pRxData
1154 09ba F091 0000 lds r31,(pRxData)+1
1155 09be 8531 cpi r24,lo8(21)
1156 09c0 00F0 brlo .L123
1157 09c2 A0E0 ldi r26,lo8(MotorTest)
1158 09c4 B0E0 ldi r27,hi8(MotorTest)
1159 09c6 80E1 ldi r24,lo8(16)
1160 .L125:
1161 09c8 0190 ld r0,Z+
1162 09ca 0D92 st X+,r0
1163 09cc 8150 subi r24,lo8(-(-1))
1164 09ce 01F0 breq .L126
1165 09d0 00C0 rjmp .L125
1166 .L123:
1167 09d2 8081 ld r24,Z
1168 09d4 9181 ldd r25,Z+1
1169 09d6 A281 ldd r26,Z+2
1170 09d8 B381 ldd r27,Z+3
1171 09da 8093 0000 sts MotorTest,r24
1172 09de 9093 0000 sts (MotorTest)+1,r25
1173 09e2 A093 0000 sts (MotorTest)+2,r26
1174 09e6 B093 0000 sts (MotorTest)+3,r27
1175 .L126:
1176 09ea 80EF ldi r24,lo8(-16)
1177 09ec 8093 0000 sts PC_MotortestActive,r24
1178 09f0 00C0 rjmp .L256
1179 .L218:
1180 09f2 8091 0000 lds r24,UebertragungAbgeschlossen
1181 09f6 8823 tst r24
1182 09f8 01F0 breq .L218
1183 09fa 8DE4 ldi r24,lo8(77)
1184 09fc 90E0 ldi r25,hi8(77)
1185 09fe 9F93 push r25
1186 0a00 8F93 push r24
1187 0a02 80E0 ldi r24,lo8(Mixer)
1188 0a04 90E0 ldi r25,hi8(Mixer)
1189 0a06 9F93 push r25
1190 0a08 8F93 push r24
1191 0a0a 81E0 ldi r24,lo8(1)
1192 0a0c 8F93 push r24
1193 0a0e 8F93 push r24
1194 0a10 8EE4 ldi r24,lo8(78)
1195 0a12 00C0 rjmp .L260
1196 .L111:
1197 0a14 E091 0000 lds r30,pRxData
1198 0a18 F091 0000 lds r31,(pRxData)+1
1199 0a1c 8081 ld r24,Z
1200 0a1e 8130 cpi r24,lo8(1)
1201 0a20 01F4 brne .L128
1202 0a22 A0E0 ldi r26,lo8(Mixer)
1203 0a24 B0E0 ldi r27,hi8(Mixer)
1204 0a26 8DE4 ldi r24,lo8(77)
1205 .L130:
1206 0a28 0190 ld r0,Z+
1207 0a2a 0D92 st X+,r0
1208 0a2c 8150 subi r24,lo8(-(-1))
1209 0a2e 01F4 brne .L130
1210 0a30 0E94 0000 call MixerTable_WriteToEEProm
1211 0a34 81E0 ldi r24,lo8(1)
1212 0a36 8983 std Y+1,r24
1213 0a38 8091 0000 lds r24,VersionInfo+6
1214 0a3c 8F7E andi r24,lo8(-17)
1215 0a3e 8093 0000 sts VersionInfo+6,r24
1216 0a42 00C0 rjmp .L219
1217 .L128:
1218 0a44 1982 std Y+1,__zero_reg__
1219 .L219:
1220 0a46 8091 0000 lds r24,UebertragungAbgeschlossen
1221 0a4a 8823 tst r24
1222 0a4c 01F0 breq .L219
1223 0a4e 81E0 ldi r24,lo8(1)
1224 0a50 90E0 ldi r25,hi8(1)
1225 0a52 9F93 push r25
1226 0a54 8F93 push r24
1227 0a56 CE01 movw r24,r28
1228 0a58 0196 adiw r24,1
1229 0a5a 9F93 push r25
1230 0a5c 8F93 push r24
1231 0a5e 81E0 ldi r24,lo8(1)
1232 0a60 8F93 push r24
1233 0a62 8F93 push r24
1234 0a64 8DE4 ldi r24,lo8(77)
1235 .L260:
1236 0a66 8F93 push r24
1237 0a68 0E94 0000 call SendOutData
1238 0a6c 8DB7 in r24,__SP_L__
1239 0a6e 9EB7 in r25,__SP_H__
1240 0a70 0796 adiw r24,7
1241 0a72 00C0 rjmp .L257
1242 .L113:
1243 0a74 81E0 ldi r24,lo8(1)
1244 0a76 8093 0000 sts GetPPMChannelAnforderung,r24
1245 .L256:
1246 0a7a 8FEF ldi r24,lo8(-1)
1247 0a7c 8093 0000 sts PcZugriff,r24
1248 0a80 00C0 rjmp .L106
1249 .L114:
1250 0a82 E091 0000 lds r30,pRxData
1251 0a86 F091 0000 lds r31,(pRxData)+1
1252 0a8a E081 ld r30,Z
1253 0a8c 8E2F mov r24,r30
1254 0a8e 8A50 subi r24,lo8(-(-10))
1255 0a90 8A30 cpi r24,lo8(10)
1256 0a92 00F4 brsh .L133
1257 0a94 8983 std Y+1,r24
1258 0a96 8823 tst r24
1259 0a98 01F4 brne .L135
1260 0a9a 81E0 ldi r24,lo8(1)
1261 0a9c 00C0 rjmp .L252
1262 .L135:
1263 0a9e 8630 cpi r24,lo8(6)
1264 0aa0 00F0 brlo .L137
1265 0aa2 85E0 ldi r24,lo8(5)
1266 .L252:
1267 0aa4 8983 std Y+1,r24
1268 .L137:
1269 0aa6 61E0 ldi r22,lo8(1)
1270 0aa8 00C0 rjmp .L255
1271 .L133:
1272 0aaa 8E2F mov r24,r30
1273 0aac 8451 subi r24,lo8(-(-20))
1274 0aae 8A30 cpi r24,lo8(10)
1275 0ab0 00F4 brsh .L140
1276 0ab2 8983 std Y+1,r24
1277 0ab4 8823 tst r24
1278 0ab6 01F4 brne .L142
1279 0ab8 81E0 ldi r24,lo8(1)
1280 0aba 00C0 rjmp .L253
1281 .L142:
1282 0abc 8630 cpi r24,lo8(6)
1283 0abe 00F0 brlo .L144
1284 0ac0 85E0 ldi r24,lo8(5)
1285 .L253:
1286 0ac2 8983 std Y+1,r24
1287 .L144:
1288 0ac4 60E0 ldi r22,lo8(0)
1289 .L255:
1290 0ac6 8981 ldd r24,Y+1
1291 0ac8 0E94 0000 call SetDefaultParameter
1292 0acc 00C0 rjmp .L221
1293 .L140:
1294 0ace E983 std Y+1,r30
1295 0ad0 EF3F cpi r30,lo8(-1)
1296 0ad2 01F4 brne .L146
1297 0ad4 0E94 0000 call GetActiveParamSet
1298 0ad8 8983 std Y+1,r24
1299 .L146:
1300 0ada 8981 ldd r24,Y+1
1301 0adc 8823 tst r24
1302 0ade 01F4 brne .L148
1303 0ae0 81E0 ldi r24,lo8(1)
1304 0ae2 00C0 rjmp .L254
1305 .L148:
1306 0ae4 8630 cpi r24,lo8(6)
1307 0ae6 00F0 brlo .L150
1308 0ae8 85E0 ldi r24,lo8(5)
1309 .L254:
1310 0aea 8983 std Y+1,r24
1311 .L150:
1312 0aec 8981 ldd r24,Y+1
1313 0aee 0E94 0000 call ParamSet_ReadFromEEProm
1314 .L221:
1315 0af2 8091 0000 lds r24,UebertragungAbgeschlossen
1316 0af6 8823 tst r24
1317 0af8 01F0 breq .L221
1318 0afa 83E7 ldi r24,lo8(115)
1319 0afc 90E0 ldi r25,hi8(115)
1320 0afe 9F93 push r25
1321 0b00 8F93 push r24
1322 0b02 80E0 ldi r24,lo8(EE_Parameter)
1323 0b04 90E0 ldi r25,hi8(EE_Parameter)
1324 0b06 9F93 push r25
1325 0b08 8F93 push r24
1326 0b0a 81E0 ldi r24,lo8(1)
1327 0b0c 90E0 ldi r25,hi8(1)
1328 0b0e 9F93 push r25
1329 0b10 8F93 push r24
1330 0b12 CE01 movw r24,r28
1331 0b14 0196 adiw r24,1
1332 0b16 9F93 push r25
1333 0b18 8F93 push r24
1334 0b1a 82E0 ldi r24,lo8(2)
1335 0b1c 8F93 push r24
1336 0b1e 81E0 ldi r24,lo8(1)
1337 0b20 8F93 push r24
1338 0b22 81E5 ldi r24,lo8(81)
1339 0b24 00C0 rjmp .L261
1340 .L115:
1341 0b26 E091 0000 lds r30,pRxData
1342 0b2a F091 0000 lds r31,(pRxData)+1
1343 0b2e 8081 ld r24,Z
1344 0b30 8150 subi r24,lo8(-(-1))
1345 0b32 8530 cpi r24,lo8(5)
1346 0b34 00F4 brsh .L153
1347 0b36 9F01 movw r18,r30
1348 0b38 2F5F subi r18,lo8(-(1))
1349 0b3a 3F4F sbci r19,hi8(-(1))
1350 0b3c 8181 ldd r24,Z+1
1351 0b3e 8535 cpi r24,lo8(85)
1352 0b40 01F4 brne .L153
1353 0b42 A0E0 ldi r26,lo8(EE_Parameter)
1354 0b44 B0E0 ldi r27,hi8(EE_Parameter)
1355 0b46 F901 movw r30,r18
1356 0b48 83E7 ldi r24,lo8(115)
1357 .L156:
1358 0b4a 0190 ld r0,Z+
1359 0b4c 0D92 st X+,r0
1360 0b4e 8150 subi r24,lo8(-(-1))
1361 0b50 01F4 brne .L156
1362 0b52 E091 0000 lds r30,pRxData
1363 0b56 F091 0000 lds r31,(pRxData)+1
1364 0b5a 8081 ld r24,Z
1365 0b5c 0E94 0000 call ParamSet_WriteToEEProm
1366 0b60 6091 0000 lds r22,EE_Parameter+65
1367 0b64 70E0 ldi r23,lo8(0)
1368 0b66 80E0 ldi r24,lo8(0)
1369 0b68 90E0 ldi r25,hi8(0)
1370 0b6a 24EC ldi r18,lo8(2500)
1371 0b6c 39E0 ldi r19,hi8(2500)
1372 0b6e 40E0 ldi r20,hlo8(2500)
1373 0b70 50E0 ldi r21,hhi8(2500)
1374 0b72 0E94 0000 call __mulsi3
1375 0b76 6093 0000 sts Umschlag180Nick,r22
1376 0b7a 7093 0000 sts (Umschlag180Nick)+1,r23
1377 0b7e 8093 0000 sts (Umschlag180Nick)+2,r24
1378 0b82 9093 0000 sts (Umschlag180Nick)+3,r25
1379 0b86 6091 0000 lds r22,EE_Parameter+66
1380 0b8a 70E0 ldi r23,lo8(0)
1381 0b8c 80E0 ldi r24,lo8(0)
1382 0b8e 90E0 ldi r25,hi8(0)
1383 0b90 0E94 0000 call __mulsi3
1384 0b94 6093 0000 sts Umschlag180Roll,r22
1385 0b98 7093 0000 sts (Umschlag180Roll)+1,r23
1386 0b9c 8093 0000 sts (Umschlag180Roll)+2,r24
1387 0ba0 9093 0000 sts (Umschlag180Roll)+3,r25
1388 0ba4 0E94 0000 call GetActiveParamSet
1389 0ba8 8983 std Y+1,r24
1390 0baa 00C0 rjmp .L220
1391 .L153:
1392 0bac 1982 std Y+1,__zero_reg__
1393 .L220:
1394 0bae 8091 0000 lds r24,UebertragungAbgeschlossen
1395 0bb2 8823 tst r24
1396 0bb4 01F0 breq .L220
1397 0bb6 81E0 ldi r24,lo8(1)
1398 0bb8 90E0 ldi r25,hi8(1)
1399 0bba 9F93 push r25
1400 0bbc 8F93 push r24
1401 0bbe CE01 movw r24,r28
1402 0bc0 0196 adiw r24,1
1403 0bc2 9F93 push r25
1404 0bc4 8F93 push r24
1405 0bc6 81E0 ldi r24,lo8(1)
1406 0bc8 8F93 push r24
1407 0bca 8F93 push r24
1408 0bcc 83E5 ldi r24,lo8(83)
1409 0bce 00C0 rjmp .L263
1410 .L109:
1411 0bd0 E091 0000 lds r30,pRxData
1412 0bd4 F091 0000 lds r31,(pRxData)+1
1413 0bd8 E081 ld r30,Z
1414 0bda 8E2F mov r24,r30
1415 0bdc 8150 subi r24,lo8(-(-1))
1416 0bde 8530 cpi r24,lo8(5)
1417 0be0 00F4 brsh .L161
1418 0be2 8E2F mov r24,r30
1419 0be4 0E94 0000 call ParamSet_ReadFromEEProm
1420 .L161:
1421 0be8 0E94 0000 call GetActiveParamSet
1422 0bec 8983 std Y+1,r24
1423 .L163:
1424 0bee 8091 0000 lds r24,UebertragungAbgeschlossen
1425 0bf2 8823 tst r24
1426 0bf4 01F0 breq .L163
1427 0bf6 81E0 ldi r24,lo8(1)
1428 0bf8 90E0 ldi r25,hi8(1)
1429 0bfa 9F93 push r25
1430 0bfc 8F93 push r24
1431 0bfe CE01 movw r24,r28
1432 0c00 0196 adiw r24,1
1433 0c02 9F93 push r25
1434 0c04 8F93 push r24
1435 0c06 81E0 ldi r24,lo8(1)
1436 0c08 8F93 push r24
1437 0c0a 8F93 push r24
1438 0c0c 86E4 ldi r24,lo8(70)
1439 .L263:
1440 0c0e 8F93 push r24
1441 0c10 0E94 0000 call SendOutData
1442 0c14 8DB7 in r24,__SP_L__
1443 0c16 9EB7 in r25,__SP_H__
1444 0c18 0796 adiw r24,7
1445 0c1a 8DBF out __SP_L__,r24
1446 0c1c 8091 0000 lds r24,MotorenEin
1447 0c20 8823 tst r24
1448 0c22 01F4 brne .L165
1449 0c24 6EE6 ldi r22,lo8(110)
1450 0c26 70E0 ldi r23,hi8(110)
1451 0c28 8981 ldd r24,Y+1
1452 0c2a 0E94 0000 call Piep
1453 .L165:
1454 0c2e 80E0 ldi r24,lo8(0)
1455 0c30 0E94 0000 call LipoDetection
1456 0c34 8091 0000 lds r24,EE_Parameter+39
1457 0c38 0E94 0000 call LIBFC_ReceiverInit
1458 0c3c 00C0 rjmp .L106
1459 .L119:
1460 0c3e E091 0000 lds r30,pRxData
1461 0c42 F091 0000 lds r31,(pRxData)+1
1462 0c46 8081 ld r24,Z
1463 0c48 9927 clr r25
1464 0c4a 87FD sbrc r24,7
1465 0c4c 9095 com r25
1466 0c4e 9093 0000 sts (PPM_in+26)+1,r25
1467 0c52 8093 0000 sts PPM_in+26,r24
1468 0c56 8181 ldd r24,Z+1
1469 0c58 9927 clr r25
1470 0c5a 87FD sbrc r24,7
1471 0c5c 9095 com r25
1472 0c5e 9093 0000 sts (PPM_in+28)+1,r25
1473 0c62 8093 0000 sts PPM_in+28,r24
1474 0c66 8281 ldd r24,Z+2
1475 0c68 9927 clr r25
1476 0c6a 87FD sbrc r24,7
1477 0c6c 9095 com r25
1478 0c6e 9093 0000 sts (PPM_in+30)+1,r25
1479 0c72 8093 0000 sts PPM_in+30,r24
1480 0c76 8381 ldd r24,Z+3
1481 0c78 9927 clr r25
1482 0c7a 87FD sbrc r24,7
1483 0c7c 9095 com r25
1484 0c7e 9093 0000 sts (PPM_in+32)+1,r25
1485 0c82 8093 0000 sts PPM_in+32,r24
1486 0c86 8481 ldd r24,Z+4
1487 0c88 9927 clr r25
1488 0c8a 87FD sbrc r24,7
1489 0c8c 9095 com r25
1490 0c8e 9093 0000 sts (PPM_in+34)+1,r25
1491 0c92 8093 0000 sts PPM_in+34,r24
1492 0c96 8581 ldd r24,Z+5
1493 0c98 9927 clr r25
1494 0c9a 87FD sbrc r24,7
1495 0c9c 9095 com r25
1496 0c9e 9093 0000 sts (PPM_in+36)+1,r25
1497 0ca2 8093 0000 sts PPM_in+36,r24
1498 0ca6 8681 ldd r24,Z+6
1499 0ca8 9927 clr r25
1500 0caa 87FD sbrc r24,7
1501 0cac 9095 com r25
1502 0cae 9093 0000 sts (PPM_in+38)+1,r25
1503 0cb2 8093 0000 sts PPM_in+38,r24
1504 0cb6 8781 ldd r24,Z+7
1505 0cb8 9927 clr r25
1506 0cba 87FD sbrc r24,7
1507 0cbc 9095 com r25
1508 0cbe 9093 0000 sts (PPM_in+40)+1,r25
1509 0cc2 8093 0000 sts PPM_in+40,r24
1510 0cc6 8085 ldd r24,Z+8
1511 0cc8 9927 clr r25
1512 0cca 87FD sbrc r24,7
1513 0ccc 9095 com r25
1514 0cce 9093 0000 sts (PPM_in+42)+1,r25
1515 0cd2 8093 0000 sts PPM_in+42,r24
1516 0cd6 8185 ldd r24,Z+9
1517 0cd8 9927 clr r25
1518 0cda 87FD sbrc r24,7
1519 0cdc 9095 com r25
1520 0cde 9093 0000 sts (PPM_in+44)+1,r25
1521 0ce2 8093 0000 sts PPM_in+44,r24
1522 0ce6 8285 ldd r24,Z+10
1523 0ce8 9927 clr r25
1524 0cea 87FD sbrc r24,7
1525 0cec 9095 com r25
1526 0cee 9093 0000 sts (PPM_in+46)+1,r25
1527 0cf2 8093 0000 sts PPM_in+46,r24
1528 0cf6 8385 ldd r24,Z+11
1529 0cf8 9927 clr r25
1530 0cfa 87FD sbrc r24,7
1531 0cfc 9095 com r25
1532 0cfe 9093 0000 sts (PPM_in+48)+1,r25
1533 0d02 8093 0000 sts PPM_in+48,r24
1534 0d06 00C0 rjmp .L106
1535 .L117:
1536 0d08 E091 0000 lds r30,pRxData
1537 0d0c F091 0000 lds r31,(pRxData)+1
1538 0d10 8081 ld r24,Z
1539 0d12 0E94 0000 call I2C_ReadBLConfig
1540 0d16 8A83 std Y+2,r24
1541 0d18 8823 tst r24
1542 0d1a 01F4 brne .L167
1543 0d1c 81E0 ldi r24,lo8(1)
1544 0d1e 8983 std Y+1,r24
1545 0d20 00C0 rjmp .L222
1546 .L167:
1547 0d22 1982 std Y+1,__zero_reg__
1548 .L222:
1549 0d24 8091 0000 lds r24,UebertragungAbgeschlossen
1550 0d28 8823 tst r24
1551 0d2a 01F0 breq .L222
1552 0d2c 4091 0000 lds r20,pRxData
1553 0d30 5091 0000 lds r21,(pRxData)+1
1554 0d34 88E0 ldi r24,lo8(8)
1555 0d36 90E0 ldi r25,hi8(8)
1556 0d38 9F93 push r25
1557 0d3a 8F93 push r24
1558 0d3c 80E0 ldi r24,lo8(BLConfig)
1559 0d3e 90E0 ldi r25,hi8(BLConfig)
1560 0d40 9F93 push r25
1561 0d42 8F93 push r24
1562 0d44 21E0 ldi r18,lo8(1)
1563 0d46 30E0 ldi r19,hi8(1)
1564 0d48 3F93 push r19
1565 0d4a 2F93 push r18
1566 0d4c 5F93 push r21
1567 0d4e 4F93 push r20
1568 0d50 3F93 push r19
1569 0d52 2F93 push r18
1570 0d54 CE01 movw r24,r28
1571 0d56 0296 adiw r24,2
1572 0d58 9F93 push r25
1573 0d5a 8F93 push r24
1574 0d5c 3F93 push r19
1575 0d5e 2F93 push r18
1576 0d60 CE01 movw r24,r28
1577 0d62 0196 adiw r24,1
1578 0d64 9F93 push r25
1579 0d66 8F93 push r24
1580 0d68 84E0 ldi r24,lo8(4)
1581 0d6a 8F93 push r24
1582 0d6c 81E0 ldi r24,lo8(1)
1583 0d6e 8F93 push r24
1584 0d70 85E5 ldi r24,lo8(85)
1585 0d72 8F93 push r24
1586 0d74 0E94 0000 call SendOutData
1587 0d78 8DB7 in r24,__SP_L__
1588 0d7a 9EB7 in r25,__SP_H__
1589 0d7c 4396 adiw r24,19
1590 0d7e 00C0 rjmp .L257
1591 .L118:
1592 0d80 8091 0000 lds r24,RxDataLen
1593 0d84 8930 cpi r24,lo8(9)
1594 0d86 00F4 brsh .+2
1595 0d88 00C0 rjmp .L106
1596 0d8a E091 0000 lds r30,pRxData
1597 0d8e F091 0000 lds r31,(pRxData)+1
1598 0d92 A0E0 ldi r26,lo8(BLConfig)
1599 0d94 B0E0 ldi r27,hi8(BLConfig)
1600 0d96 3196 adiw r30,1
1601 0d98 88E0 ldi r24,lo8(8)
1602 .L172:
1603 0d9a 0190 ld r0,Z+
1604 0d9c 0D92 st X+,r0
1605 0d9e 8150 subi r24,lo8(-(-1))
1606 0da0 01F4 brne .L172
1607 0da2 E091 0000 lds r30,pRxData
1608 0da6 F091 0000 lds r31,(pRxData)+1
1609 0daa 8081 ld r24,Z
1610 0dac 0E94 0000 call I2C_WriteBLConfig
1611 0db0 8A83 std Y+2,r24
1612 0db2 8823 tst r24
1613 0db4 01F4 brne .L173
1614 0db6 81E0 ldi r24,lo8(1)
1615 0db8 8983 std Y+1,r24
1616 0dba 00C0 rjmp .L223
1617 .L173:
1618 0dbc 1982 std Y+1,__zero_reg__
1619 .L223:
1620 0dbe 8091 0000 lds r24,UebertragungAbgeschlossen
1621 0dc2 8823 tst r24
1622 0dc4 01F0 breq .L223
1623 0dc6 21E0 ldi r18,lo8(1)
1624 0dc8 30E0 ldi r19,hi8(1)
1625 0dca 3F93 push r19
1626 0dcc 2F93 push r18
1627 0dce CE01 movw r24,r28
1628 0dd0 0296 adiw r24,2
1629 0dd2 9F93 push r25
1630 0dd4 8F93 push r24
1631 0dd6 3F93 push r19
1632 0dd8 2F93 push r18
1633 0dda CE01 movw r24,r28
1634 0ddc 0196 adiw r24,1
1635 0dde 9F93 push r25
1636 0de0 8F93 push r24
1637 0de2 82E0 ldi r24,lo8(2)
1638 0de4 8F93 push r24
1639 0de6 81E0 ldi r24,lo8(1)
1640 0de8 8F93 push r24
1641 0dea 87E5 ldi r24,lo8(87)
1642 .L261:
1643 0dec 8F93 push r24
1644 0dee 0E94 0000 call SendOutData
1645 0df2 8DB7 in r24,__SP_L__
1646 0df4 9EB7 in r25,__SP_H__
1647 0df6 0B96 adiw r24,11
1648 .L257:
1649 0df8 8DBF out __SP_L__,r24
1650 0dfa 00C0 rjmp .L106
1651 .L110:
1652 0dfc 0E94 0000 call LIBFC_GetCPUType
1653 0e00 8983 std Y+1,r24
1654 0e02 8230 cpi r24,lo8(2)
1655 0e04 01F0 breq .L177
1656 0e06 8430 cpi r24,lo8(4)
1657 0e08 01F0 breq .+2
1658 0e0a 00C0 rjmp .L106
1659 .L177:
1660 /* #APP */
1661 0e0c F894 cli
1662 /* #NOAPP */
1663 0e0e 8091 C100 lds r24,193
1664 0e12 8F73 andi r24,lo8(63)
1665 0e14 8093 C100 sts 193,r24
1666 0e18 8091 C900 lds r24,201
1667 0e1c 8F73 andi r24,lo8(63)
1668 0e1e 8093 C900 sts 201,r24
1669 0e22 8091 C100 lds r24,193
1670 0e26 877E andi r24,lo8(-25)
1671 0e28 8093 C100 sts 193,r24
1672 0e2c 8091 C900 lds r24,201
1673 0e30 877E andi r24,lo8(-25)
1674 0e32 8093 C900 sts 201,r24
1675 0e36 00C0 rjmp .L179
1676 .L180:
1677 0e38 8091 CE00 lds r24,206
1678 .L179:
1679 0e3c 8091 C800 lds r24,200
1680 0e40 87FD sbrc r24,7
1681 0e42 00C0 rjmp .L180
1682 0e44 00C0 rjmp .L249
1683 .L182:
1684 0e46 8091 C600 lds r24,198
1685 .L249:
1686 0e4a 8091 C000 lds r24,192
1687 0e4e 87FD sbrc r24,7
1688 0e50 00C0 rjmp .L182
1689 0e52 E091 0000 lds r30,pRxData
1690 0e56 F091 0000 lds r31,(pRxData)+1
1691 0e5a 8081 ld r24,Z
1692 0e5c 8823 tst r24
1693 0e5e 01F4 brne .L184
1694 0e60 81E0 ldi r24,lo8(1)
1695 0e62 8093 0000 sts JetiUpdateModeActive,r24
1696 0e66 1092 CD00 sts 205,__zero_reg__
1697 0e6a 80E4 ldi r24,lo8(64)
1698 0e6c 8093 CC00 sts 204,r24
1699 0e70 8091 CD00 lds r24,205
1700 0e74 8093 C500 sts 197,r24
1701 0e78 8091 CC00 lds r24,204
1702 0e7c 8093 C400 sts 196,r24
1703 0e80 8091 CA00 lds r24,202
1704 0e84 8F7D andi r24,lo8(-33)
1705 0e86 8093 CA00 sts 202,r24
1706 0e8a 8091 CA00 lds r24,202
1707 0e8e 8F7E andi r24,lo8(-17)
1708 0e90 8093 CA00 sts 202,r24
1709 0e94 8091 C900 lds r24,201
1710 0e98 8B7F andi r24,lo8(-5)
1711 0e9a 8093 C900 sts 201,r24
1712 0e9e 8091 CA00 lds r24,202
1713 0ea2 8460 ori r24,lo8(4)
1714 0ea4 8093 CA00 sts 202,r24
1715 0ea8 8091 CA00 lds r24,202
1716 0eac 8260 ori r24,lo8(2)
1717 0eae 8093 CA00 sts 202,r24
1718 0eb2 00C0 rjmp .L186
1719 .L184:
1720 0eb4 82E0 ldi r24,lo8(2)
1721 0eb6 8093 0000 sts JetiUpdateModeActive,r24
1722 .L186:
1723 0eba 8091 CA00 lds r24,202
1724 0ebe 877F andi r24,lo8(-9)
1725 0ec0 8093 CA00 sts 202,r24
1726 0ec4 8091 C200 lds r24,194
1727 0ec8 877F andi r24,lo8(-9)
1728 0eca 8093 C200 sts 194,r24
1729 0ece 8091 C900 lds r24,201
1730 0ed2 8E7F andi r24,lo8(-2)
1731 0ed4 8093 C900 sts 201,r24
1732 0ed8 8091 C100 lds r24,193
1733 0edc 8861 ori r24,lo8(24)
1734 0ede 8093 C100 sts 193,r24
1735 0ee2 8091 C900 lds r24,201
1736 0ee6 8861 ori r24,lo8(24)
1737 0ee8 8093 C900 sts 201,r24
1738 0eec 8091 C100 lds r24,193
1739 0ef0 8068 ori r24,lo8(-128)
1740 0ef2 8093 C100 sts 193,r24
1741 0ef6 8091 C900 lds r24,201
1742 0efa 8068 ori r24,lo8(-128)
1743 0efc 8093 C900 sts 201,r24
1744 0f00 1092 6E00 sts 110,__zero_reg__
1745 0f04 1092 6F00 sts 111,__zero_reg__
1746 0f08 1092 7000 sts 112,__zero_reg__
1747 /* #APP */
1748 0f0c 7894 sei
1749 /* #NOAPP */
1750 .L106:
1751 0f0e 8091 0000 lds r24,RxdBuffer+2
1752 0f12 8436 cpi r24,lo8(100)
1753 0f14 01F4 brne .+2
1754 0f16 00C0 rjmp .L192
1755 0f18 8536 cpi r24,lo8(101)
1756 0f1a 00F4 brsh .L198
1757 0f1c 8136 cpi r24,lo8(97)
1758 0f1e 01F4 brne .+2
1759 0f20 00C0 rjmp .L189
1760 0f22 8236 cpi r24,lo8(98)
1761 0f24 00F4 brsh .L199
1762 0f26 8B34 cpi r24,lo8(75)
1763 0f28 01F0 breq .+2
1764 0f2a 00C0 rjmp .L187
1765 0f2c 00C0 rjmp .L188
1766 .L199:
1767 0f2e 8236 cpi r24,lo8(98)
1768 0f30 01F4 brne .+2
1769 0f32 00C0 rjmp .L190
1770 0f34 8336 cpi r24,lo8(99)
1771 0f36 01F0 breq .+2
1772 0f38 00C0 rjmp .L187
1773 0f3a 00C0 rjmp .L191
1774 .L198:
1775 0f3c 8C36 cpi r24,lo8(108)
1776 0f3e 01F4 brne .+2
1777 0f40 00C0 rjmp .L195
1778 0f42 8D36 cpi r24,lo8(109)
1779 0f44 00F4 brsh .L200
1780 0f46 8736 cpi r24,lo8(103)
1781 0f48 01F4 brne .+2
1782 0f4a 00C0 rjmp .L193
1783 0f4c 8836 cpi r24,lo8(104)
1784 0f4e 01F0 breq .+2
1785 0f50 00C0 rjmp .L187
1786 0f52 00C0 rjmp .L194
1787 .L200:
1788 0f54 8437 cpi r24,lo8(116)
1789 0f56 01F0 breq .L196
1790 0f58 8637 cpi r24,lo8(118)
1791 0f5a 01F0 breq .+2
1792 0f5c 00C0 rjmp .L187
1793 0f5e 00C0 rjmp .L197
1794 .L196:
1795 0f60 8091 0000 lds r24,AnzahlEmpfangsBytes
1796 0f64 E091 0000 lds r30,pRxData
1797 0f68 F091 0000 lds r31,(pRxData)+1
1798 0f6c 8031 cpi r24,lo8(16)
1799 0f6e 00F0 brlo .L201
1800 0f70 A0E0 ldi r26,lo8(MotorTest)
1801 0f72 B0E0 ldi r27,hi8(MotorTest)
1802 0f74 80E1 ldi r24,lo8(16)
1803 .L203:
1804 0f76 0190 ld r0,Z+
1805 0f78 0D92 st X+,r0
1806 0f7a 8150 subi r24,lo8(-(-1))
1807 0f7c 01F0 breq .L224
1808 0f7e 00C0 rjmp .L203
1809 .L201:
1810 0f80 8081 ld r24,Z
1811 0f82 9181 ldd r25,Z+1
1812 0f84 A281 ldd r26,Z+2
1813 0f86 B381 ldd r27,Z+3
1814 0f88 8093 0000 sts MotorTest,r24
1815 0f8c 9093 0000 sts (MotorTest)+1,r25
1816 0f90 A093 0000 sts (MotorTest)+2,r26
1817 0f94 B093 0000 sts (MotorTest)+3,r27
1818 .L224:
1819 0f98 8091 0000 lds r24,UebertragungAbgeschlossen
1820 0f9c 8823 tst r24
1821 0f9e 01F0 breq .L224
1822 0fa0 8091 0000 lds r24,MeineSlaveAdresse
1823 0fa4 1F92 push __zero_reg__
1824 0fa6 8F93 push r24
1825 0fa8 84E5 ldi r24,lo8(84)
1826 0faa 8F93 push r24
1827 0fac 0E94 0000 call SendOutData
1828 0fb0 8AEF ldi r24,lo8(-6)
1829 0fb2 8093 0000 sts PC_MotortestActive,r24
1830 0fb6 8FEF ldi r24,lo8(-1)
1831 0fb8 8093 0000 sts PcZugriff,r24
1832 0fbc 80EA ldi r24,lo8(4000)
1833 0fbe 9FE0 ldi r25,hi8(4000)
1834 0fc0 0E94 0000 call SetDelay
1835 0fc4 9093 0000 sts (AboTimeOut)+1,r25
1836 0fc8 8093 0000 sts AboTimeOut,r24
1837 0fcc 0F90 pop __tmp_reg__
1838 0fce 0F90 pop __tmp_reg__
1839 0fd0 0F90 pop __tmp_reg__
1840 0fd2 00C0 rjmp .L187
1841 .L188:
1842 0fd4 E091 0000 lds r30,pRxData
1843 0fd8 F091 0000 lds r31,(pRxData)+1
1844 0fdc 8081 ld r24,Z
1845 0fde 9181 ldd r25,Z+1
1846 0fe0 9093 0000 sts (KompassValue)+1,r25
1847 0fe4 8093 0000 sts KompassValue,r24
1848 0fe8 845E subi r24,lo8(-(540))
1849 0fea 9D4F sbci r25,hi8(-(540))
1850 0fec 2091 0000 lds r18,KompassStartwert
1851 0ff0 3091 0000 lds r19,(KompassStartwert)+1
1852 0ff4 821B sub r24,r18
1853 0ff6 930B sbc r25,r19
1854 0ff8 68E6 ldi r22,lo8(360)
1855 0ffa 71E0 ldi r23,hi8(360)
1856 0ffc 0E94 0000 call __divmodhi4
1857 1000 845B subi r24,lo8(-(-180))
1858 1002 9040 sbci r25,hi8(-(-180))
1859 1004 9093 0000 sts (KompassRichtung)+1,r25
1860 1008 8093 0000 sts KompassRichtung,r24
1861 100c 00C0 rjmp .L187
1862 .L189:
1863 100e E091 0000 lds r30,pRxData
1864 1012 F091 0000 lds r31,(pRxData)+1
1865 1016 8081 ld r24,Z
1866 1018 8093 0000 sts DebugTextAnforderung,r24
1867 101c 8032 cpi r24,lo8(32)
1868 101e 00F0 brlo .L258
1869 1020 8FE1 ldi r24,lo8(31)
1870 1022 8093 0000 sts DebugTextAnforderung,r24
1871 1026 00C0 rjmp .L258
1872 .L190:
1873 1028 A0E0 ldi r26,lo8(ExternControl)
1874 102a B0E0 ldi r27,hi8(ExternControl)
1875 102c E091 0000 lds r30,pRxData
1876 1030 F091 0000 lds r31,(pRxData)+1
1877 1034 8BE0 ldi r24,lo8(11)
1878 .L208:
1879 1036 0190 ld r0,Z+
1880 1038 0D92 st X+,r0
1881 103a 8150 subi r24,lo8(-(-1))
1882 103c 01F4 brne .L208
1883 103e 8091 0000 lds r24,ExternControl+9
1884 1042 8093 0000 sts ConfirmFrame,r24
1885 .L258:
1886 1046 8FEF ldi r24,lo8(-1)
1887 1048 8093 0000 sts PcZugriff,r24
1888 104c 00C0 rjmp .L187
1889 .L191:
1890 104e 8091 0000 lds r24,Intervall3D
1891 1052 9091 0000 lds r25,(Intervall3D)+1
1892 1056 892B or r24,r25
1893 1058 01F4 brne .L209
1894 105a E091 0000 lds r30,pRxData
1895 105e F091 0000 lds r31,(pRxData)+1
1896 1062 E081 ld r30,Z
1897 1064 EE23 tst r30
1898 1066 01F0 breq .L209
1899 1068 8AE0 ldi r24,lo8(10)
1900 106a E89F mul r30,r24
1901 106c C001 movw r24,r0
1902 106e 1124 clr r1
1903 1070 0E94 0000 call SetDelay
1904 1074 9093 0000 sts (Timer3D)+1,r25
1905 1078 8093 0000 sts Timer3D,r24
1906 .L209:
1907 107c E091 0000 lds r30,pRxData
1908 1080 F091 0000 lds r31,(pRxData)+1
1909 1084 8081 ld r24,Z
1910 1086 2AE0 ldi r18,lo8(10)
1911 1088 829F mul r24,r18
1912 108a C001 movw r24,r0
1913 108c 1124 clr r1
1914 108e 9093 0000 sts (Intervall3D)+1,r25
1915 1092 8093 0000 sts Intervall3D,r24
1916 1096 00C0 rjmp .L212
1917 .L192:
1918 1098 8FEF ldi r24,lo8(-1)
1919 109a 8093 0000 sts PcZugriff,r24
1920 109e E091 0000 lds r30,pRxData
1921 10a2 F091 0000 lds r31,(pRxData)+1
1922 10a6 8081 ld r24,Z
1923 10a8 2AE0 ldi r18,lo8(10)
1924 10aa 829F mul r24,r18
1925 10ac C001 movw r24,r0
1926 10ae 1124 clr r1
1927 10b0 9093 0000 sts (DebugDataIntervall)+1,r25
1928 10b4 8093 0000 sts DebugDataIntervall,r24
1929 10b8 892B or r24,r25
1930 10ba 01F0 breq .L212
1931 10bc 81E0 ldi r24,lo8(1)
1932 10be 8093 0000 sts DebugDataAnforderung,r24
1933 .L212:
1934 10c2 80EA ldi r24,lo8(4000)
1935 10c4 9FE0 ldi r25,hi8(4000)
1936 10c6 0E94 0000 call SetDelay
1937 10ca 9093 0000 sts (AboTimeOut)+1,r25
1938 10ce 8093 0000 sts AboTimeOut,r24
1939 10d2 00C0 rjmp .L187
1940 .L194:
1941 10d4 8FEF ldi r24,lo8(-1)
1942 10d6 8093 0000 sts PcZugriff,r24
1943 10da E091 0000 lds r30,pRxData
1944 10de F091 0000 lds r31,(pRxData)+1
1945 10e2 9081 ld r25,Z
1946 10e4 97FD sbrc r25,7
1947 10e6 00C0 rjmp .L214
1948 10e8 82E0 ldi r24,lo8(2)
1949 10ea 8093 0000 sts DisplayLine,r24
1950 10ee 1092 0000 sts (Display_Interval)+1,__zero_reg__
1951 10f2 1092 0000 sts Display_Interval,__zero_reg__
1952 10f6 00C0 rjmp .L216
1953 .L214:
1954 10f8 9095 com r25
1955 10fa 8091 0000 lds r24,RemoteKeys
1956 10fe 892B or r24,r25
1957 1100 8093 0000 sts RemoteKeys,r24
1958 1104 8181 ldd r24,Z+1
1959 1106 2AE0 ldi r18,lo8(10)
1960 1108 829F mul r24,r18
1961 110a C001 movw r24,r0
1962 110c 1124 clr r1
1963 110e 9093 0000 sts (Display_Interval)+1,r25
1964 1112 8093 0000 sts Display_Interval,r24
1965 1116 84E0 ldi r24,lo8(4)
1966 1118 8093 0000 sts DisplayLine,r24
1967 111c 80EA ldi r24,lo8(4000)
1968 111e 9FE0 ldi r25,hi8(4000)
1969 1120 0E94 0000 call SetDelay
1970 1124 9093 0000 sts (AboTimeOut)+1,r25
1971 1128 8093 0000 sts AboTimeOut,r24
1972 .L216:
1973 112c 81E0 ldi r24,lo8(1)
1974 112e 8093 0000 sts DebugDisplayAnforderung,r24
1975 1132 00C0 rjmp .L187
1976 .L195:
1977 1134 8FEF ldi r24,lo8(-1)
1978 1136 8093 0000 sts PcZugriff,r24
1979 113a E091 0000 lds r30,pRxData
1980 113e F091 0000 lds r31,(pRxData)+1
1981 1142 8081 ld r24,Z
1982 1144 8093 0000 sts MenuePunkt,r24
1983 1148 81E0 ldi r24,lo8(1)
1984 114a 8093 0000 sts DebugDisplayAnforderung1,r24
1985 114e 00C0 rjmp .L187
1986 .L197:
1987 1150 81E0 ldi r24,lo8(1)
1988 1152 8093 0000 sts GetVersionAnforderung,r24
1989 1156 00C0 rjmp .L187
1990 .L193:
1991 1158 81E0 ldi r24,lo8(1)
1992 115a 8093 0000 sts GetExternalControl,r24
1993 .L187:
1994 115e 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__
1995 1162 1092 0000 sts (pRxData)+1,__zero_reg__
1996 1166 1092 0000 sts pRxData,__zero_reg__
1997 116a 1092 0000 sts RxDataLen,__zero_reg__
1998 .L217:
1999 /* epilogue: frame size=2 */
2000 116e E2E0 ldi r30,2
2001 1170 CE5F subi r28,-2
2002 1172 0C94 0000 jmp __epilogue_restores__+32
2003 /* epilogue end (size=4) */
2004 /* function BearbeiteRxDaten size 1095 (1085) */
2006 .global __vector_20
2008 __vector_20:
2009 /* prologue: frame size=0 */
2010 1176 1F92 push __zero_reg__
2011 1178 0F92 push __tmp_reg__
2012 117a 0FB6 in __tmp_reg__,__SREG__
2013 117c 0F92 push __tmp_reg__
2014 117e 1124 clr __zero_reg__
2015 1180 2F93 push r18
2016 1182 3F93 push r19
2017 1184 4F93 push r20
2018 1186 5F93 push r21
2019 1188 6F93 push r22
2020 118a 7F93 push r23
2021 118c 8F93 push r24
2022 118e 9F93 push r25
2023 1190 AF93 push r26
2024 1192 BF93 push r27
2025 1194 CF93 push r28
2026 1196 DF93 push r29
2027 1198 EF93 push r30
2028 119a FF93 push r31
2029 /* prologue end (size=19) */
2030 119c 8091 0000 lds r24,JetiUpdateModeActive
2031 11a0 8130 cpi r24,lo8(1)
2032 11a2 01F4 brne .L265
2033 11a4 8091 C600 lds r24,198
2034 11a8 8093 CE00 sts 206,r24
2035 11ac 00C0 rjmp .L292
2036 .L265:
2037 11ae 8091 0000 lds r24,JetiUpdateModeActive
2038 11b2 8230 cpi r24,lo8(2)
2039 11b4 01F4 brne .L268
2040 11b6 8091 C600 lds r24,198
2041 11ba 8093 0000 sts RxdBuffer,r24
2042 11be 00C0 rjmp .L292
2043 .L268:
2044 11c0 8091 C600 lds r24,198
2045 11c4 8093 0000 sts SioTmp,r24
2046 11c8 4091 0000 lds r20,buf_ptr.2552
2047 11cc 4A3A cpi r20,lo8(-86)
2048 11ce 00F0 brlo .L270
2049 11d0 1092 0000 sts UartState.2553,__zero_reg__
2050 .L270:
2051 11d4 8091 0000 lds r24,SioTmp
2052 11d8 8D30 cpi r24,lo8(13)
2053 11da 01F0 breq .+2
2054 11dc 00C0 rjmp .L272
2055 11de 8091 0000 lds r24,UartState.2553
2056 11e2 8230 cpi r24,lo8(2)
2057 11e4 01F0 breq .+2
2058 11e6 00C0 rjmp .L272
2059 11e8 1092 0000 sts UartState.2553,__zero_reg__
2060 11ec A42F mov r26,r20
2061 11ee B0E0 ldi r27,lo8(0)
2062 11f0 FD01 movw r30,r26
2063 11f2 E050 subi r30,lo8(-(RxdBuffer-2))
2064 11f4 F040 sbci r31,hi8(-(RxdBuffer-2))
2065 11f6 3081 ld r19,Z
2066 11f8 ED01 movw r28,r26
2067 11fa C050 subi r28,lo8(-(RxdBuffer-1))
2068 11fc D040 sbci r29,hi8(-(RxdBuffer-1))
2069 11fe 2881 ld r18,Y
2070 1200 8091 0000 lds r24,crc.2549
2071 1204 9091 0000 lds r25,(crc.2549)+1
2072 1208 831B sub r24,r19
2073 120a 9109 sbc r25,__zero_reg__
2074 120c 821B sub r24,r18
2075 120e 9109 sbc r25,__zero_reg__
2076 1210 9F70 andi r25,hi8(4095)
2077 1212 9093 0000 sts (crc.2549)+1,r25
2078 1216 8093 0000 sts crc.2549,r24
2079 121a 9C01 movw r18,r24
2080 121c 6894 set
2081 121e 15F8 bld __zero_reg__,6-1
2082 1220 3695 1: lsr r19
2083 1222 2795 ror r18
2084 1224 1694 lsr __zero_reg__
2085 1226 01F4 brne 1b
2086 1228 235C subi r18,lo8(-(61))
2087 122a 2093 0000 sts crc1.2550,r18
2088 122e 982F mov r25,r24
2089 1230 9F73 andi r25,lo8(63)
2090 1232 935C subi r25,lo8(-(61))
2091 1234 9093 0000 sts crc2.2551,r25
2092 1238 8081 ld r24,Z
2093 123a 2817 cp r18,r24
2094 123c 01F4 brne .L275
2095 123e 8881 ld r24,Y
2096 1240 9817 cp r25,r24
2097 1242 01F4 brne .L275
2098 1244 91E0 ldi r25,lo8(1)
2099 1246 00C0 rjmp .L278
2100 .L275:
2101 1248 8091 0000 lds r24,CntCrcError
2102 124c 8F5F subi r24,lo8(-(1))
2103 124e 8093 0000 sts CntCrcError,r24
2104 1252 90E0 ldi r25,lo8(0)
2105 .L278:
2106 1254 8091 0000 lds r24,NeuerDatensatzEmpfangen
2107 1258 8823 tst r24
2108 125a 01F0 breq .+2
2109 125c 00C0 rjmp .L292
2110 125e 9923 tst r25
2111 1260 01F4 brne .+2
2112 1262 00C0 rjmp .L292
2113 1264 81E0 ldi r24,lo8(1)
2114 1266 8093 0000 sts NeuerDatensatzEmpfangen,r24
2115 126a 4F5F subi r20,lo8(-(1))
2116 126c 4093 0000 sts AnzahlEmpfangsBytes,r20
2117 1270 A050 subi r26,lo8(-(RxdBuffer))
2118 1272 B040 sbci r27,hi8(-(RxdBuffer))
2119 1274 8DE0 ldi r24,lo8(13)
2120 1276 8C93 st X,r24
2121 1278 8091 0000 lds r24,RxdBuffer+2
2122 127c 8235 cpi r24,lo8(82)
2123 127e 01F0 breq .+2
2124 1280 00C0 rjmp .L292
2125 1282 0E94 0000 call LcdClear
2126 1286 88E1 ldi r24,lo8(24)
2127 1288 90E0 ldi r25,hi8(24)
2128 128a 2CE0 ldi r18,lo8(12)
2129 /* #APP */
2130 128c 0FB6 in __tmp_reg__,__SREG__
2131 128e F894 cli
2132 1290 A895 wdr
2133 1292 8093 6000 sts 96,r24
2134 1296 0FBE out __SREG__,__tmp_reg__
2135 1298 2093 6000 sts 96,r18
2136 /* #NOAPP */
2137 129c 1092 0000 sts ServoActive,__zero_reg__
2138 12a0 00C0 rjmp .L292
2139 .L272:
2140 12a2 8091 0000 lds r24,UartState.2553
2141 12a6 8130 cpi r24,lo8(1)
2142 12a8 01F0 breq .L284
2143 12aa 8130 cpi r24,lo8(1)
2144 12ac 00F0 brlo .L283
2145 12ae 8230 cpi r24,lo8(2)
2146 12b0 01F4 brne .L293
2147 12b2 00C0 rjmp .L285
2148 .L283:
2149 12b4 8091 0000 lds r24,SioTmp
2150 12b8 8332 cpi r24,lo8(35)
2151 12ba 01F4 brne .L286
2152 12bc 8091 0000 lds r24,NeuerDatensatzEmpfangen
2153 12c0 8823 tst r24
2154 12c2 01F4 brne .L286
2155 12c4 81E0 ldi r24,lo8(1)
2156 12c6 8093 0000 sts UartState.2553,r24
2157 .L286:
2158 12ca 8091 0000 lds r24,SioTmp
2159 12ce 8093 0000 sts RxdBuffer,r24
2160 12d2 81E0 ldi r24,lo8(1)
2161 12d4 8093 0000 sts buf_ptr.2552,r24
2162 12d8 8091 0000 lds r24,SioTmp
2163 12dc 90E0 ldi r25,lo8(0)
2164 12de 00C0 rjmp .L294
2165 .L284:
2166 12e0 82E0 ldi r24,lo8(2)
2167 12e2 8093 0000 sts UartState.2553,r24
2168 12e6 E42F mov r30,r20
2169 12e8 F0E0 ldi r31,lo8(0)
2170 12ea 8091 0000 lds r24,SioTmp
2171 12ee E050 subi r30,lo8(-(RxdBuffer))
2172 12f0 F040 sbci r31,hi8(-(RxdBuffer))
2173 12f2 8083 st Z,r24
2174 12f4 00C0 rjmp .L295
2175 .L285:
2176 12f6 E42F mov r30,r20
2177 12f8 F0E0 ldi r31,lo8(0)
2178 12fa 8091 0000 lds r24,SioTmp
2179 12fe E050 subi r30,lo8(-(RxdBuffer))
2180 1300 F040 sbci r31,hi8(-(RxdBuffer))
2181 1302 8083 st Z,r24
2182 1304 4A3A cpi r20,lo8(-86)
2183 1306 00F4 brsh .L289
2184 .L295:
2185 1308 4F5F subi r20,lo8(-(1))
2186 130a 4093 0000 sts buf_ptr.2552,r20
2187 130e 00C0 rjmp .L291
2188 .L289:
2189 1310 1092 0000 sts UartState.2553,__zero_reg__
2190 .L291:
2191 1314 2091 0000 lds r18,SioTmp
2192 1318 8091 0000 lds r24,crc.2549
2193 131c 9091 0000 lds r25,(crc.2549)+1
2194 1320 820F add r24,r18
2195 1322 911D adc r25,__zero_reg__
2196 .L294:
2197 1324 9093 0000 sts (crc.2549)+1,r25
2198 1328 8093 0000 sts crc.2549,r24
2199 132c 00C0 rjmp .L292
2200 .L293:
2201 132e 1092 0000 sts UartState.2553,__zero_reg__
2202 .L292:
2203 /* epilogue: frame size=0 */
2204 1332 FF91 pop r31
2205 1334 EF91 pop r30
2206 1336 DF91 pop r29
2207 1338 CF91 pop r28
2208 133a BF91 pop r27
2209 133c AF91 pop r26
2210 133e 9F91 pop r25
2211 1340 8F91 pop r24
2212 1342 7F91 pop r23
2213 1344 6F91 pop r22
2214 1346 5F91 pop r21
2215 1348 4F91 pop r20
2216 134a 3F91 pop r19
2217 134c 2F91 pop r18
2218 134e 0F90 pop __tmp_reg__
2219 1350 0FBE out __SREG__,__tmp_reg__
2220 1352 0F90 pop __tmp_reg__
2221 1354 1F90 pop __zero_reg__
2222 1356 1895 reti
2223 /* epilogue end (size=19) */
2224 /* function __vector_20 size 246 (208) */
2226 .global GetExternalControl
2227 .global GetExternalControl
2228 .section .bss
2231 GetExternalControl:
2232 0000 00 .skip 1,0
2233 .global DebugDisplayAnforderung1
2234 .global DebugDisplayAnforderung1
2237 DebugDisplayAnforderung1:
2238 0001 00 .skip 1,0
2239 .global DebugDisplayAnforderung
2240 .global DebugDisplayAnforderung
2243 DebugDisplayAnforderung:
2244 0002 00 .skip 1,0
2245 .global DebugDataAnforderung
2246 .global DebugDataAnforderung
2249 DebugDataAnforderung:
2250 0003 00 .skip 1,0
2251 .global GetVersionAnforderung
2252 .global GetVersionAnforderung
2255 GetVersionAnforderung:
2256 0004 00 .skip 1,0
2257 .global GetPPMChannelAnforderung
2258 .global GetPPMChannelAnforderung
2261 GetPPMChannelAnforderung:
2262 0005 00 .skip 1,0
2263 .global DisplayLine
2264 .global DisplayLine
2267 DisplayLine:
2268 0006 00 .skip 1,0
2269 .global SioTmp
2270 .global SioTmp
2273 SioTmp:
2274 0007 00 .skip 1,0
2275 .global NeuerDatensatzEmpfangen
2276 .global NeuerDatensatzEmpfangen
2279 NeuerDatensatzEmpfangen:
2280 0008 00 .skip 1,0
2281 .global NeueKoordinateEmpfangen
2282 .global NeueKoordinateEmpfangen
2285 NeueKoordinateEmpfangen:
2286 0009 00 .skip 1,0
2287 .global UebertragungAbgeschlossen
2288 .data
2291 UebertragungAbgeschlossen:
2292 0000 01 .byte 1
2293 .global CntCrcError
2294 .global CntCrcError
2295 .section .bss
2298 CntCrcError:
2299 000a 00 .skip 1,0
2300 .global AnzahlEmpfangsBytes
2301 .global AnzahlEmpfangsBytes
2304 AnzahlEmpfangsBytes:
2305 000b 00 .skip 1,0
2306 .global pRxData
2307 .global pRxData
2310 pRxData:
2311 000c 0000 .skip 2,0
2312 .global RxDataLen
2313 .global RxDataLen
2316 RxDataLen:
2317 000e 00 .skip 1,0
2318 .global PC_DebugTimeout
2319 .global PC_DebugTimeout
2322 PC_DebugTimeout:
2323 000f 00 .skip 1,0
2324 .global PC_MotortestActive
2325 .global PC_MotortestActive
2328 PC_MotortestActive:
2329 0010 00 .skip 1,0
2330 .global DebugTextAnforderung
2331 .data
2334 DebugTextAnforderung:
2335 0001 FF .byte -1
2336 .global PcZugriff
2339 PcZugriff:
2340 0002 64 .byte 100
2341 .global MeineSlaveAdresse
2344 MeineSlaveAdresse:
2345 0003 01 .byte 1
2346 .global DebugDataIntervall
2347 .global DebugDataIntervall
2348 .section .bss
2351 DebugDataIntervall:
2352 0011 0000 .skip 2,0
2353 .global Intervall3D
2354 .global Intervall3D
2357 Intervall3D:
2358 0013 0000 .skip 2,0
2359 .global Display_Interval
2360 .global Display_Interval
2363 Display_Interval:
2364 0015 0000 .skip 2,0
2365 .global AboTimeOut
2366 .global AboTimeOut
2369 AboTimeOut:
2370 0017 0000 .skip 2,0
2371 .global JetiUpdateModeActive
2372 .global JetiUpdateModeActive
2375 JetiUpdateModeActive:
2376 0019 00 .skip 1,0
2377 .global ANALOG_TEXT
2378 .section .progmem.data,"a",@progbits
2381 ANALOG_TEXT:
2382 0000 416E 676C .ascii "AngleNick "
2382 654E 6963
2382 6B20 2020
2382 2020 2020
2383 0010 416E 676C .ascii "AngleRoll "
2383 6552 6F6C
2383 6C20 2020
2383 2020 2020
2384 0020 4163 634E .ascii "AccNick "
2384 6963 6B20
2384 2020 2020
2384 2020 2020
2385 0030 4163 6352 .ascii "AccRoll "
2385 6F6C 6C20
2385 2020 2020
2385 2020 2020
2386 0040 5961 7747 .ascii "YawGyro "
2386 7972 6F20
2386 2020 2020
2386 2020 2020
2387 0050 4865 6967 .ascii "Height Value "
2387 6874 2056
2387 616C 7565
2387 2020 2020
2388 0060 4163 635A .ascii "AccZ "
2388 2020 2020
2388 2020 2020
2388 2020 2020
2389 0070 4761 7320 .ascii "Gas "
2389 2020 2020
2389 2020 2020
2389 2020 2020
2390 0080 436F 6D70 .ascii "Compass Value "
2390 6173 7320
2390 5661 6C75
2390 6520 2020
2391 0090 566F 6C74 .ascii "Voltage [0.1V] "
2391 6167 6520
2391 5B30 2E31
2391 565D 2020
2392 00a0 5265 6365 .ascii "Receiver Level "
2392 6976 6572
2392 204C 6576
2392 656C 2020
2393 00b0 4779 726F .ascii "Gyro Compass "
2393 2043 6F6D
2393 7061 7373
2393 2020 2020
2394 00c0 4D6F 746F .ascii "Motor 1 "
2394 7220 3120
2394 2020 2020
2394 2020 2020
2395 00d0 4D6F 746F .ascii "Motor 2 "
2395 7220 3220
2395 2020 2020
2395 2020 2020
2396 00e0 4D6F 746F .ascii "Motor 3 "
2396 7220 3320
2396 2020 2020
2396 2020 2020
2397 00f0 4D6F 746F .ascii "Motor 4 "
2397 7220 3420
2397 2020 2020
2397 2020 2020
2398 0100 3136 2020 .ascii "16 "
2398 2020 2020
2398 2020 2020
2398 2020 2020
2399 0110 3137 2020 .ascii "17 "
2399 2020 2020
2399 2020 2020
2399 2020 2020
2400 0120 3138 2020 .ascii "18 "
2400 2020 2020
2400 2020 2020
2400 2020 2020
2401 0130 3139 2020 .ascii "19 "
2401 2020 2020
2401 2020 2020
2401 2020 2020
2402 0140 5365 7276 .ascii "Servo "
2402 6F20 2020
2402 2020 2020
2402 2020 2020
2403 0150 486F 7665 .ascii "Hovergas "
2403 7267 6173
2403 2020 2020
2403 2020 2020
2404 0160 4375 7272 .ascii "Current [0.1A] "
2404 656E 7420
2404 5B30 2E31
2404 415D 2020
2405 0170 4361 7061 .ascii "Capacity [mAh] "
2405 6369 7479
2405 205B 6D41
2405 685D 2020
2406 0180 3234 2020 .ascii "24 "
2406 2020 2020
2406 2020 2020
2406 2020 2020
2407 0190 3235 2020 .ascii "25 "
2407 2020 2020
2407 2020 2020
2407 2020 2020
2408 01a0 3236 2020 .ascii "26 "
2408 2020 2020
2408 2020 2020
2408 2020 2020
2409 01b0 3237 2020 .ascii "27 "
2409 2020 2020
2409 2020 2020
2409 2020 2020
2410 01c0 4932 432D .ascii "I2C-Error "
2410 4572 726F
2410 7220 2020
2410 2020 2020
2411 01d0 424C 204C .ascii "BL Limit "
2411 696D 6974
2411 2020 2020
2411 2020 2020
2412 01e0 4750 535F .ascii "GPS_Nick "
2412 4E69 636B
2412 2020 2020
2412 2020 2020
2413 01f0 4750 535F .ascii "GPS_Roll "
2413 526F 6C6C
2413 2020 2020
2413 2020 2020
2416 __c.3030:
2417 0200 2121 2120 .string "!!! INCOMPATIBLE !!!"
2417 494E 434F
2417 4D50 4154
2417 4942 4C45
2417 2021 2121
2418 .lcomm UartState.2553,1
2419 .lcomm buf_ptr.2552,1
2420 .lcomm crc2.2551,1
2421 .lcomm crc1.2550,1
2422 .lcomm crc.2549,2
2423 .lcomm ptr.2536,2
2424 .comm RxdBuffer,170,1
2425 .comm Debug_Timer,2,1
2426 .comm Kompass_Timer,2,1
2427 .comm MotorTest,16,1
2428 .comm DebugOut,66,1
2429 .comm WinkelOut,8,1
2430 .comm Data3D,14,1
2431 .comm ExternControl,11,1
2432 .comm VersionInfo,10,1
2433 .comm TxdBuffer,170,1
2434 .comm ConfirmFrame,1,1
2435 .comm Display_Timer,2,1
2436 .comm Timer3D,2,1
2437 /* File "uart.c": code 2496 = 0x09c0 (2406), prologues 46, epilogues 44 */
DEFINED SYMBOLS
*ABS*:00000000 uart.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:12 .text:00000000 __vector_22
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2291 .data:00000000 UebertragungAbgeschlossen
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2422 .bss:00000020 ptr.2536
*COM*:000000aa TxdBuffer
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:68 .text:0000006c AddCRC
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:123 .text:000000ca Decode64
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2304 .bss:0000000b AnzahlEmpfangsBytes
*COM*:000000aa RxdBuffer
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2310 .bss:0000000c pRxData
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2316 .bss:0000000e RxDataLen
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:221 .text:0000017e uart_putchar
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:237 .text:0000018e UART_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2351 .bss:00000011 DebugDataIntervall
*COM*:00000002 Debug_Timer
*COM*:00000002 Kompass_Timer
*COM*:0000000a VersionInfo
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:285 .text:00000200 SendOutData
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:498 .text:00000386 DatenUebertragung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2369 .bss:00000017 AboTimeOut
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2363 .bss:00000015 Display_Interval
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2357 .bss:00000013 Intervall3D
*COM*:00000002 Display_Timer
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2243 .bss:00000002 DebugDisplayAnforderung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2267 .bss:00000006 DisplayLine
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2416 .progmem.data:00000200 __c.3030
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2237 .bss:00000001 DebugDisplayAnforderung1
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2255 .bss:00000004 GetVersionAnforderung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2231 .bss:00000000 GetExternalControl
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2344 .data:00000003 MeineSlaveAdresse
*COM*:0000000b ExternControl
*COM*:00000008 WinkelOut
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2249 .bss:00000003 DebugDataAnforderung
*COM*:00000042 DebugOut
*COM*:00000002 Timer3D
*COM*:0000000e Data3D
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2334 .data:00000001 DebugTextAnforderung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2381 .progmem.data:00000000 ANALOG_TEXT
*COM*:00000001 ConfirmFrame
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2261 .bss:00000005 GetPPMChannelAnforderung
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:1064 .text:000008f8 BearbeiteRxDaten
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2279 .bss:00000008 NeuerDatensatzEmpfangen
*COM*:00000010 MotorTest
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2328 .bss:00000010 PC_MotortestActive
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2339 .data:00000002 PcZugriff
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2375 .bss:00000019 JetiUpdateModeActive
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2008 .text:00001176 __vector_20
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2273 .bss:00000007 SioTmp
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2418 .bss:0000001b buf_ptr.2552
.bss:0000001a UartState.2553
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2421 .bss:0000001e crc.2549
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2420 .bss:0000001d crc1.2550
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2419 .bss:0000001c crc2.2551
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2298 .bss:0000000a CntCrcError
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2285 .bss:00000009 NeueKoordinateEmpfangen
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShp894.s:2322 .bss:0000000f PC_DebugTimeout
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
__prologue_saves__
__epilogue_restores__
CheckDelay
DisplayBuff
Menu
DispPtr
_printf_P
Menu_Putchar
MaxMenue
MenuePunkt
EE_Parameter
IntegralNick
__divmodsi4
IntegralRoll
Parameter_UserParam1
Parameter_UserParam2
CopyDebugValues
ErsatzKompass
__mulsi3
GIER_GRAD_FAKTOR
SummeNick
SummeRoll
Mess_Integral_Gier
memcpy_P
PPM_in
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
Mixer
MixerTable_WriteToEEProm
SetDefaultParameter
GetActiveParamSet
ParamSet_ReadFromEEProm
ParamSet_WriteToEEProm
Umschlag180Nick
Umschlag180Roll
MotorenEin
Piep
LipoDetection
LIBFC_ReceiverInit
I2C_ReadBLConfig
BLConfig
I2C_WriteBLConfig
LIBFC_GetCPUType
RemoteKeys
LcdClear
ServoActive
/Spektrum-Diversity/V0.82a/version.txt
0,0 → 1,441
 
-------
V0.53 27.04.2007 H.Buss
- erste öffentliche Version
 
V0.53b 29.04.2007 H.Buss
- der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft
 
V0.53c 29.04.2007 H.Buss
- es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind.
Die angezeigten Werte waren nicht die Werte der Funke
 
V0.54 01.05.2007 H.Buss
- die Paramtersätze können jetzt vor dem Start ausgewählt werden
Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt:
2 3 4
1 x 5
- - -
Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw.
- der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt
 
V0.55 14.05.2007 H.Buss
- es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden
 
V0.56 14.05.2007 H.Buss
- es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren
- Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen
V0.57 24.05.2007 H.Buss
- Der Höhenregler kann nun auch mittels Schalter bedient werden
- Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat
- Kompass-Einfluss dämpfen bei Neigung
- Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen
- Der Motortest vom Kopter-Tool geht jetzt
- Man kann den Parametersätzen einen Namen geben
- Das Kamerasetting ist unter Setting 2 defaultmässig integriert
V0.58 30.05.2007 H.Buss
- Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist
 
V0.60 17.08.2007 H.Buss
- "Schwindel-Bug" behoben
- Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft
- Poti4 zugefügt
- Es werden jetzt 8 Kanäle ausgewertet
- Kamera-Servo (an J7)
- Die Settings müssen überschrieben werden
V0.61 - V0.63 H.Buss 27.09.2007
- Poti 4 und Kanal 8 werden im Menü angezeigt
- ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt
- Analog.c: Aktuell_ax korrigiert
- auf 32 Debug-Kanäle erweitert
- Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar
- leichte Anpassungen im Gier - Geschwindigkeit und Drift
- die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein
- die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird
- die PPM-Ausgänge liegen wieder an den Pins an
- Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders
- der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen
- I2C-Bus läuft jetzt sicher nach einer Störung wieder an
- Sticksignale werden präziser ausgewertet
- Stick-Kanäle werden ans Kopter-Tool übertragen
- Es muss die Version V1.47 des Kopter-Tool verwendet werden
- Die Settings werden auf Default zurückgesetzt
- am Piepen kann man die Fehlerart unterscheiden
1. einzelnes Piepen beim Einschalten und Kalibrieren
2. langsames Intervall mindestens 1 Sek -> Empfangsausfall
3. schnelleres Intervall mindestens 1 Sek -> Akku
4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört
V0.64 H.Buss 30.09.2007
- beim Gieren wurden die Achsen nicht hart genug geregelt
V0.65a H.Buss 15.10.2007
- Integral im Mischer wieder integriert
- Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100
- ACC/Gyro Abgleich auch bei HH
 
V0.66a H.Buss 3.11.2007
- Messwertverarbeitung aus dem Analog-Interrupt entfernt
- Analogmessung hängt jetzt am FC-Timing
- Looping-Stick-Hysterese eingebaut
- Looping-180°-Umschlag einstellbar
- Achsenkopplung: Gierbewegung verkoppelt Nick und Roll
- Lageregelung nach ACC-Sensor verbessert
- zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage
- Gyrodriftkompensation überarbeitet
- Bug in der Gier-Stick-Berechnung behoben
- Gyro-Messung auf 1kHz beschleunigt
V0.67a H.Buss 16.11.2007
- der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode)
- Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus
- Feinabstimmung
- Beim HH-Modus gab es noch Bugs
 
V0.67e H.Buss 29.11.2007
- Parameter: Dynamic Stability und Driftfaktor eingeführt
- Die Namen der Analogwerte werden jetzt zum Koptertool übertragen
- Kompatibilität zum Koptertool erhöht
 
V0.67f H.Buss 04.12.2007
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional
- Schub für Gier wird jetzt auf den Gaswert begrenzt, dadurch steigt der MK nicht mehr beim Gieren. Gier ist allerdings nicht mehr so agressiv
- Die ACC-Nullwerte können jetzt dauerhaft im EEPROM gespeichert werden (Stick:Vollgas und Gier rechts)
V0.68a I.Busker 28.12.2007
- SPI.c & SPI.h ins Projekt aufgenommen
SPI-Kommuikation kann in SPI.h aktiviert/deaktivert werden
 
V0.68c H.Buss 05.01.2008
- Stickauswertung verbessert -> träger und präziser
- Alle Settings angepasst
 
V0.69e H.Buss 05.05.2008
- kleinere Bugs beseitigt
- Schneller Sinkflug jetzt möglich
- Min- und Maxgas in den Settings geändert
- Lagewinkel wird jetzt in 0,1 Grad an Kompass und Navi gesendet
- Kalibrierung für MK3Mag -> Nick unten beim Kalibrieren
- Kompassroutine um den Ersatzkompass (Gyro unterstützt Kompasswert) erweitert
V0.69h H.Buss 21.05.2008
- STICK_GAIN = 4 eingeführt. Das erhöht die Auflösung der Sollwerte. Stick_P und Stick_I müssen nun um Faktor 4 erhöht werden
- SenderOkay auch an das Naviboard übertragen
- Bessere Parameter bei Senderausfall
V0.69j H.Buss 30.05.2008
- Höhere Präzision der Achsenkopplung
 
V0.69k H.Buss 31.05.2008
- Bug in SPI.C behoben
- in 0.69h war ein Bug, der zu ungewollten Loopings führen konnte
 
V0.69L H.Buss 14.06.2008
- feinere Cam-Servo-Auflösung
V0.70a H.Buss 01.07.2008
- Unterstützung der V1.3-Hardware mit automatischem Hardware-Gyro-Abgleich
 
V0.70b H.Buss 14.07.2008
- flexible Einstellungsmöglichkeit von J16 und J17 (Transistorausgänge)
- eigene Parameter für GPS-Naviboard
- eigener Parameter für ExternalControl (war vorher UserParameter1 bzw. 8)
- neue Parameter im EEPROM-Datensatz: J16Bitmask, J16Timing, ExternalControl, Navi...
- MikroKopterFlags eingeführt, damit das Navi den Status des MKs kennt
- KopterTool-Kompatibilität auf 8 erhöht
V0.70c H.Buss 30.07.2008
- Parameter der Datenfusion leicht modifiziert
- EEPROM-Parameter für Looping-Umschlag angepasst (von 100 auf 85)
- MaxStick wird auf 100 begrenzt
 
V0.70d H.Buss 02.08.2008
- Transistorausgänge: das oberste Bit der Blinkmaske (im KopterTool linkes Bit) gibt nun den Zustand des Ausgangs im Schalterbetrieb an
0.71b: H.Buss 19.10.2008
Kommunikation zum Navi erweitert:
- Beeptime jetzt 32Bit
- Datenfusion und Driftkopensation wird durch NaviBoard unterstützt
0.71c: H.Buss 20.10.2008
- LoopConfig heisst jetzt BitConfig
- 3-Fach-Schalter für Höhensteuerung möglich -> kann man mit GPS-Schalter zusammenlegen
- bei den Settings wurde Setting[0] mit abgespeichert, welches es nicht gab.
- in Zukunft werden bei neuen EEPROM-Settings die Kanäle von Setting 1 übernommen
- Variablen NaviWindCorrection, NaviSpeedCompensation, NaviOperatingRadius eingeführt
 
0.71f: H.Buss 15.11.2008
- Ausschalten der Höhenregelung per Schalter um 0,3 sek verzögert
- bei der seriellen Ãœbertragung hat die FC jetzt als SlaveAdresse die 1
- VersionInfo.NaviKompatibel eingeführt
- wenn manuell gegiert wird, wird der GyroKompass-Wert auf den Kompasswert gesetzt
- Luftdruckwert wird an das Navi übertragen
- Der Baro-Offset wird jetzt nachgeführt, um den Messbereich zu erweitern. Geht nur bei Höhenregler mit Schalter
- Debugdaten können jetzt mit 'f' gepollt werden
0.71g: Gregor 09.12.2008
- Kommunikation überarbeitet
Infos hier: http://www.mikrokopter.de/ucwiki/en/SerialCommands
0.71h: H.Buss 15.12.2008
- Freigegebene Version
- NaviAngleLimitation als Parameter zum Navi implementiert
- Antwort auf CMD: 't' entfernt
0.72d: H.Buss 22.01.2009
- OCTO als Compilerschalter
- Unterstützung der FC 2.0 (ME)
- GYRO_D eingeführt
- Achsenkopplung jetzt auch auf Nick/Roll-Bewegung
0.72e: H.Buss 27.01.2009
- die 0.72d hatte kein Integral im Gier
- Parameter eingeführt:
EE_Parameter.NaviGpsPLimit
EE_Parameter.NaviGpsILimit
EE_Parameter.NaviGpsDLimit
EE_Parameter.NaviPH_LoginTime
EE_Parameter.AchsKopplung2
EE_Parameter.CouplingYawCorrection
 
0.72f: H.Buss 28.01.2009
- Bug im Ersatzkompass entfernt
 
0.72h: H.Buss 05.02.2009
- Algorithmen beschleunigt -> Floats durch Fixkomma ersetzt
- Achsentkopplung weiter verbessert
- Nick- und Roll im Octo-Mischer auf jeweils vier Motoren aufgeteilt
 
0.72i: H.Buss 07.02.2009
- Abtastrate von 1kHz auf 2kHz erhöht
 
0.72j: H.Buss 09.02.2009
- neue Implementierung der Servoausgänge
 
0.72k: H.Buss 10.02.2009
- Abtastrate auf 5kHz erhöht
 
0.72L: H.Buss 13.02.2009
- Signalfilterung überarbeitet
- OCTO2 implementiert
 
0.72M: H.Buss 13.02.2009
- Code Cleanup
 
0.72o: H.Buss 24.02.2009
- Abtastrate auf 2kHz
- HW-Version an Navi
- neuer Datensatz 'c' -> Lagedaten für 3D-Grafik
- Auswerteroutine für Spectrum-Satteliten implementiert
- Kanalsettings werden beim Parameterreset nicht mehr gelöscht
- die Driftkompensation wird jetzt feiner aufgelöst --> EE_Parameter.Driftkomp muss mal 8 genommen werden
- die Integrale und ACC-Werte werden jetzt im Scope in ca. 0,1° angezeigt (wie beim NaviBrd)
0.72p: H.Buss 01.03.2009
- Octo3 erstellt
- Analogwerte umbenannt
 
0.73a-d: H.Buss 05.04.2009
- MixerTabelle implementiert
- I2C-Bus auf bis zu 12 Motoren erweitert
- die Busfehler der BL-Regler werden im Menü angezeigt
- Revision der MixerTabelle eingeführt
- MixerTabelle wird bei Parameterreset neu initialisiert
- Motortest auf [12] erweitert
- Motorschalter nicht mehr 3-Stufig
 
0.74a
- Datenfusion im Flug auch, wenn ACC-Z < 512
- Wert für die Luftdruck-Messbereichserweiterung abgefangen
 
0.74d
- Die Driftkompensation ist jetzt dreistufig -> 0,5% pro sekunde zusätzlich eingeführts
0.75a G.Stobrawa 22.5.2009
- Extern Control also received from NC via SPI
 
0.75b H.Buss 27.05.2009
- Spektrum-Singale schalten den PPM-Eingang aus
- max. 2 Sekunden nach dem Start auf die BL-Regler warten
- Automatische Zellenerkennung, wenn Spannungswarnung < 5,0V
- Bei automatischer Zellenerkennung piept es je nach Zellenzahl
- EE_DATENREVISION auf 76 erhöht
- Servo:
- Roll-Servo für FC ME implementiert
- Update-Cmd stoppt Servos
- Servos werden erst nach dem ersten Kalibrieren aktiviert
 
0.75c G.Stobrawa 25.7.2009
- Ãœbertragung der Servo-Settings zur NC
- RSSI wird an NC gesendet, derzeit wird der Wert nicht gesetzt
- Bugfix Messbereichsumschaltung des Luftdrucksensors springt
- Auflösung des Luftdrucks nun bis auf 1 cm (5mal feiner) zur genaueren Berechnung des D-Anteils
- Unterstützung von Warnings-Bitmasks für die J16, J17-Outputs bei Unterspannung
- Unterspannung für einzelne Zelle´n von 3.2V auf 3.3V angehoben (9.6V --> 9.9V für 3S)
0.75d H.Buss 13.8.2009
- RC-Routine: Empfangsausfall soll sicherer erkannt werden
- Zellenerkennung nun auch beim Speichern der Settings
- Warnungs-Blinkmaske auch bei Empfangsausfall
 
0.75e H.Buss 18.8.2009
- LED-Blinken kann an die Motoren gekoppelt werden
- Feinabstimmung des Höhenreglers
0.75f H.Buss 27.8.2009
- D-Anteil des Höhenreglers jetzt mit Quadratischer Komponente
- Lagewinkel wirkt jetzt mit 1/Cos(x) mit in den Höhenregler
- leichte Modifikation der RC-Empfangroutine
 
0.75g H.Buss 31.08.2009
- die Akkuspannung geht jetzt antiproportional ins Gas ein
 
0.75h H.Buss 3.09.2009
- im Höhenregler werden jetzt die Stellwerte begrenzt --> max +- 16% vom geschätzten Schwebegas
 
0.75i H.Buss 7.09.2009
- GpsZ vom Navi zur FC für den Höhenregler
- "hoovergas-Variation" als Parameter
- Kompatibilität zu NC und PC erhöht
 
0.75j H.Buss 17.09.2009
- Laufzeitzähler eingebaut
 
0.75k H.Buss 22.09.2009
- zweite Variante (Gregor) der Höhenregelung implementiert
- umschaltbare RC-Routine
 
0.75L H.Buss 23.09.2009
- SollHoehe und Gas geht nun auch an die NC
 
0.75M H.Buss 29.09.2009
- Spektrum-Timing wird nun überwacht
- die FC kann nun stand-Alone als Kamera-Stabilizer eingesetzt werden, weil die Servos aktiviert werden, wenn I2C fehlt
0.75N H.Buss 29.09.2009
- Hoover-Stickpunkt wird bei aktivem Höhenregler nicht nachgeführt
- Hoover-Stickpunkt kann per Parameter fest eingestellt werden
- Baro-Messbereichserweiterung auch bei aktiviertem Höhenregler
- Gyro_Gier_P und Gyro_Gier_I eingeführt
- I2C_fehler-Zähler jetzt in den Analogdaten
 
0.75o H.Buss 01.10.2009
- der Höhenregler wird jetzt nur alle 10ms bearbeitet
- Baro-Messbereichserweiterung auch bei Poti als Sollwert
 
0.76d H.Buss 10.10.2009
- bei aktiver Messbereichserweiterung wird die aktuelle Höhe übernommen
 
0.76e H.Buss 27.10.2009
- es werden beim Start einmal alle BL-Regler angesprochen, damit BL-Regler#8 auch einen Selbsttest macht
- S3D-ACT-Summensignal als Compilerschalter
 
0.76f H.Buss 05.11.2009
- untere Spannungsgrenze der Unterspannungswarnung (9,3V) entfernt
0.76g H.Buss 10.11.2009
- Casting-Fehler in der Gas-Berechnung
 
0.77a H.Buss 11.11.2009
- Erweiterung auf 12 Kanäle
- Bei Koptertool-Kanalabfrage kein Empfangsausfall-Piepsen
- serielle Kanalerweiterung eingebaut -> PPM_in auf 25 erweitert
- Servos3-5 einstellbar
- neues Kommando "f" -> schaltet auf anderen Parametersatz um
 
0.77b H.Buss 09.12.2009
- JetiBox: Menü wird übertragen
- neu: FCFlags |= FCFLAG_I2CERR;
- LED-Warn-Blinken nun mit festem Timing und abschaltbar
0.77c H.Buss 07.01.2010
- zwei weitere Spektrum-Varianten implementiert
 
0.77d H.Buss 25.01.2010
- Strom-Messung eingebaut
0.78a H.Buss 03.02.2010
- Bugfix: Settingsumschaltung im Flug
 
0.78b H.Buss
- veröffentlichte Version
 
0.78c H.Buss + G.Stobrawa 22.2.2010
- Bewegungsbegrenzung an Servo 3 to 5 der FC 2.0
- Theoretischer Variablenüberlauf bei Vario-Höhenregler
- Anzeige des "SPI RX communication error" wenn GPS Option nicht aktiv
- LED-Schwellwerte fürs Blinken waren unterschiedlich
 
0.78c H.Buss + G.Stobrawa 04.3.2010
- Code cosmetics
 
0.78f H.Buss + I.Busker 23.3.2010
- Unterstützung für Jeti-Expander
- Begrenzung des Vario-Höhenreglers auf ein 10m-Fenster um Überläufe zu verhindern
- Einführung eines Vario-Zeichens (+/-/ ) auf der Jetibox
- BL-Timeout beim Start erhöht
 
0.80a-d H. Buss + G.Stobrawa 20.5.2010 - 22.7.2010
- Motoren Starten nicht ohne Kalibrierung
- Unterstützung der BL2.0-Regler
- statt 8 nun 10 Bit Auflösung der Lageregekung
- Unterstützung der BL2.0-Regler Konfiguration via MK-Tool
- Parametersätze werden per I2C an die BL-Regler durchgereicht
- "Care-Free" implementiert
- Freie Belegung der "Vorne"-Richtung
- nur wenn Motoren laufen: Beepen, wenn Carefree ohne Navi oder ohne gültigen MK3Mag-Wert
- nur wenn Motoren laufen: Beepen wenn NC plötzlich ausfällt
- #define RECEIVER_SPEKTRUM_EXP eingeführt
- #define SWITCH_LEARNS_CAREFREE eingeführt
- Schwerpunktanzeige in den 3D-Daten
- Checksummen gesicherte Datenablage im EEProm
- Fehlerdiagnose implementiert (Wiki: ErrorCodes)
- ErrorCode aufs Jeti-Display
 
- JetiMenü: bis acht Temperaturen der BL-Regler
- GPSInfo.Speed im Jeti-Display
- Compass-Richtung nun im Jeti-menü
 
- diverse Änderungen im Höhenregler
- P wirkt schwächer
- D wirkt stärker
- Anpassung der Höhenregelung auf Level des Hoovergases
- AccZ schneller nachführen
 
Parameter modifiziert:
- EEPROM-Kompatibilität auf 84 -> Parameter werden resettet
- EE_Parameter.Hoehe_ACC_Wirkung = 0; // war 30
- EE_Parameter.Hoehe_HoverBand = 8; // war 5
- Notgas = 45
- NotgasZeit = 90
- Beginnersetting: EE_Parameter.DynamicStability = 70;
- Neu: GyroStability = 6
- GPS-Login-Time auf 2 reduziert
 
0.80e H.Buss 02.08.2010
- MK3Mag ohne NC ging nicht
 
0.80f H.Buss 04.08.2010
- Beim Höhenregler "Deckel" wird das Gas wieder wie in der alten Version behandelt und der D-Anteil auf das alte Verhalten (um Faktor 8) reduziert
 
0.80g H.Buss 11.08.2010
- erweitetern Messbereich für Luftdruck bei der FC2.1 aktiviert
 
0.80h H.Buss 30.08.2010
- bei I2C-Fehlern wurden die Counter zurück gesetzt und für einige ms die Interrupts angehalten - das ist jetzt behoben
- Nur I2C-Daten senden, wenn das alte Paket komplett raus ist
 
0.82a H.Buss 08.11.2010
- MotorSafetySwitch - Verriegelt das Ein/Ausschalten
- ServoManualControlSpeed - Verlangsamt das Cam-Servo
- CamOrientation - für verdrehte Kamera-Servos
- Position der Status-Bits verändert
- "Zucken" der Servos bei kurzen Empfangsausfällen behoben
- jeti update command 'j' added
- Poti-Auswertung nach ParameterZuordnung() verschoben -> FC-Code schneller
- Waypont-Events z.B. zum Triggern der Kamera
- Gyro-Sytbility: Werte bis 16 möglich
 
/Spektrum-Diversity/conf/authz
0,0 → 1,32
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
 
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
 
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
 
# [/foo/bar]
# harry = rw
# &joe = r
# * =
 
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
/Spektrum-Diversity/conf/passwd
0,0 → 1,8
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
 
[users]
# harry = harryssecret
# sally = sallyssecret
/Spektrum-Diversity/conf/svnserve.conf
0,0 → 1,47
### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
 
### Visit http://subversion.tigris.org/ for more information.
 
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
# anon-access = read
# auth-access = write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
# password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file. If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
# authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
# realm = My First Repository
 
[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256
/Spektrum-Diversity/db/current
0,0 → 1,0
 
/Spektrum-Diversity/db/format
0,0 → 1,2
4
layout sharded 1000
/Spektrum-Diversity/db/fs-type
0,0 → 1,0
fsfs
/Spektrum-Diversity/db/fsfs.conf
0,0 → 1,37
### This file controls the configuration of the FSFS filesystem.
 
[memcached-servers]
### These options name memcached servers used to cache internal FSFS
### data. See http://www.danga.com/memcached/ for more information on
### memcached. To use memcached with FSFS, run one or more memcached
### servers, and specify each of them as an option like so:
# first-server = 127.0.0.1:11211
# remote-memcached = mymemcached.corp.example.com:11212
### The option name is ignored; the value is of the form HOST:PORT.
### memcached servers can be shared between multiple repositories;
### however, if you do this, you *must* ensure that repositories have
### distinct UUIDs and paths, or else cached data from one repository
### might be used by another accidentally. Note also that memcached has
### no authentication for reads or writes, so you must ensure that your
### memcached servers are only accessible by trusted users.
 
[caches]
### When a cache-related error occurs, normally Subversion ignores it
### and continues, logging an error if the server is appropriately
### configured (and ignoring it with file:// access). To make
### Subversion never ignore cache errors, uncomment this line.
# fail-stop = true
 
[rep-sharing]
### To conserve space, the filesystem can optionally avoid storing
### duplicate representations. This comes at a slight cost in performace,
### as maintaining a database of shared representations can increase
### commit times. The space savings are dependent upon the size of the
### repository, the number of objects it contains and the amount of
### duplication between them, usually a function of the branching and
### merging process.
###
### The following parameter enables rep-sharing in the repository. It can
### be switched on and off at will, but for best space-saving results
### should be enabled consistently over the life of the repository.
# enable-rep-sharing = false
/Spektrum-Diversity/db/min-unpacked-rev
0,0 → 1,0
 
/Spektrum-Diversity/db/revprops/0/0
0,0 → 1,5
K 8
svn:date
V 27
2011-02-10T07:59:42.515625Z
END
/Spektrum-Diversity/db/revs/0/0
0,0 → 1,11
PLAIN
END
ENDREP
id: 0.0.r0/17
type: dir
count: 0
text: 0 0 4 4 2d2977d1c96f487abe4a1e202dd03b4e
cpath: /
 
 
17 107
/Spektrum-Diversity/db/txn-current
0,0 → 1,0
 
/Spektrum-Diversity/db/txn-current-lock
--- db/uuid (nonexistent)
+++ db/uuid (revision 911)
@@ -0,0 +1 @@
+1d754261-5b8c-be4b-a940-0a3436c38ad6
/Spektrum-Diversity/db/write-lock
--- format (nonexistent)
+++ format (revision 911)
@@ -0,0 +1 @@
+5
/Spektrum-Diversity/hooks/post-commit.tmpl
0,0 → 1,50
#!/bin/sh
 
# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the number of the revision just committed)
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# Because the commit has already completed and cannot be undone,
# the exit code of the hook program is ignored. The hook program
# can use the 'svnlook' utility to help it examine the
# newly-committed tree.
#
# On a Unix system, the normal procedure is to have 'post-commit'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'post-commit' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'post-commit.bat' or 'post-commit.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
REPOS="$1"
REV="$2"
 
mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
/Spektrum-Diversity/hooks/post-lock.tmpl
0,0 → 1,44
#!/bin/sh
 
# POST-LOCK HOOK
#
# The post-lock hook is run after a path is locked. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-lock' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] USER (the user who created the lock)
#
# The paths that were just locked are passed to the hook via STDIN (as
# of Subversion 1.2, only one path is passed per invocation, but the
# plan is to pass all locked paths at once, so the hook program
# should be written accordingly).
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# Because the lock has already been created and cannot be undone,
# the exit code of the hook program is ignored. The hook program
# can use the 'svnlook' utility to help it examine the
# newly-created lock.
#
# On a Unix system, the normal procedure is to have 'post-lock'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'post-lock' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'post-lock.bat' or 'post-lock.exe',
# but the basic idea is the same.
#
# Here is an example hook script, for a Unix /bin/sh interpreter:
 
REPOS="$1"
USER="$2"
 
# Send email to interested parties, let them know a lock was created:
mailer.py lock "$REPOS" "$USER" /path/to/mailer.conf
/Spektrum-Diversity/hooks/post-revprop-change.tmpl
0,0 → 1,56
#!/bin/sh
 
# POST-REVPROP-CHANGE HOOK
#
# The post-revprop-change hook is invoked after a revision property
# has been added, modified or deleted. Subversion runs this hook by
# invoking a program (script, executable, binary, etc.) named
# 'post-revprop-change' (for which this file is a template), with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the revision that was tweaked)
# [3] USER (the username of the person tweaking the property)
# [4] PROPNAME (the property that was changed)
# [5] ACTION (the property was 'A'dded, 'M'odified, or 'D'eleted)
#
# [STDIN] PROPVAL ** the old property value is passed via STDIN.
#
# Because the propchange has already completed and cannot be undone,
# the exit code of the hook program is ignored. The hook program
# can use the 'svnlook' utility to help it examine the
# new property value.
#
# On a Unix system, the normal procedure is to have 'post-revprop-change'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'post-revprop-change' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'post-revprop-change.bat' or 'post-revprop-change.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
 
mailer.py propchange2 "$REPOS" "$REV" "$USER" "$PROPNAME" "$ACTION" /path/to/mailer.conf
/Spektrum-Diversity/hooks/post-unlock.tmpl
0,0 → 1,42
#!/bin/sh
 
# POST-UNLOCK HOOK
#
# The post-unlock hook runs after a path is unlocked. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-unlock' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] USER (the user who destroyed the lock)
#
# The paths that were just unlocked are passed to the hook via STDIN
# (as of Subversion 1.2, only one path is passed per invocation, but
# the plan is to pass all unlocked paths at once, so the hook program
# should be written accordingly).
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# Because the lock has already been destroyed and cannot be undone,
# the exit code of the hook program is ignored.
#
# On a Unix system, the normal procedure is to have 'post-unlock'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'post-unlock' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'post-unlock.bat' or 'post-unlock.exe',
# but the basic idea is the same.
#
# Here is an example hook script, for a Unix /bin/sh interpreter:
 
REPOS="$1"
USER="$2"
 
# Send email to interested parties, let them know a lock was removed:
mailer.py unlock "$REPOS" "$USER" /path/to/mailer.conf
/Spektrum-Diversity/hooks/pre-commit.tmpl
0,0 → 1,81
#!/bin/sh
 
# PRE-COMMIT HOOK
#
# The pre-commit hook is invoked before a Subversion txn is
# committed. Subversion runs this hook by invoking a program
# (script, executable, binary, etc.) named 'pre-commit' (for which
# this file is a template), with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] TXN-NAME (the name of the txn about to be committed)
#
# [STDIN] LOCK-TOKENS ** the lock tokens are passed via STDIN.
#
# If STDIN contains the line "LOCK-TOKENS:\n" (the "\n" denotes a
# single newline), the lines following it are the lock tokens for
# this commit. The end of the list is marked by a line containing
# only a newline character.
#
# Each lock token line consists of a URI-escaped path, followed
# by the separator character '|', followed by the lock token string,
# followed by a newline.
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# If the hook program exits with success, the txn is committed; but
# if it exits with failure (non-zero), the txn is aborted, no commit
# takes place, and STDERR is returned to the client. The hook
# program can use the 'svnlook' utility to help it examine the txn.
#
# On a Unix system, the normal procedure is to have 'pre-commit'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# *** NOTE: THE HOOK PROGRAM MUST NOT MODIFY THE TXN, EXCEPT ***
# *** FOR REVISION PROPERTIES (like svn:log or svn:author). ***
#
# This is why we recommend using the read-only 'svnlook' utility.
# In the future, Subversion may enforce the rule that pre-commit
# hooks should not modify the versioned data in txns, or else come
# up with a mechanism to make it safe to do so (by informing the
# committing client of the changes). However, right now neither
# mechanism is implemented, so hook writers just have to be careful.
#
# Note that 'pre-commit' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'pre-commit.bat' or 'pre-commit.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
REPOS="$1"
TXN="$2"
 
# Make sure that the log message contains some text.
SVNLOOK=/usr/local/bin/svnlook
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[a-zA-Z0-9]" > /dev/null || exit 1
 
# Check that the author of this commit has the rights to perform
# the commit on the files and directories being modified.
commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1
 
# All checks passed, so allow the commit.
exit 0
/Spektrum-Diversity/hooks/pre-lock.tmpl
0,0 → 1,71
#!/bin/sh
 
# PRE-LOCK HOOK
#
# The pre-lock hook is invoked before an exclusive lock is
# created. Subversion runs this hook by invoking a program
# (script, executable, binary, etc.) named 'pre-lock' (for which
# this file is a template), with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] PATH (the path in the repository about to be locked)
# [3] USER (the user creating the lock)
# [4] COMMENT (the comment of the lock)
# [5] STEAL-LOCK (1 if the user is trying to steal the lock, else 0)
#
# If the hook program outputs anything on stdout, the output string will
# be used as the lock token for this lock operation. If you choose to use
# this feature, you must guarantee the tokens generated are unique across
# the repository each time.
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# If the hook program exits with success, the lock is created; but
# if it exits with failure (non-zero), the lock action is aborted
# and STDERR is returned to the client.
 
# On a Unix system, the normal procedure is to have 'pre-lock'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'pre-lock' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'pre-lock.bat' or 'pre-lock.exe',
# but the basic idea is the same.
#
# Here is an example hook script, for a Unix /bin/sh interpreter:
 
REPOS="$1"
PATH="$2"
USER="$3"
 
# If a lock exists and is owned by a different person, don't allow it
# to be stolen (e.g., with 'svn lock --force ...').
 
# (Maybe this script could send email to the lock owner?)
SVNLOOK=/usr/local/bin/svnlook
GREP=/bin/grep
SED=/bin/sed
 
LOCK_OWNER=`$SVNLOOK lock "$REPOS" "$PATH" | \
$GREP '^Owner: ' | $SED 's/Owner: //'`
 
# If we get no result from svnlook, there's no lock, allow the lock to
# happen:
if [ "$LOCK_OWNER" = "" ]; then
exit 0
fi
 
# If the person locking matches the lock's owner, allow the lock to
# happen:
if [ "$LOCK_OWNER" = "$USER" ]; then
exit 0
fi
 
# Otherwise, we've got an owner mismatch, so return failure:
echo "Error: $PATH already locked by ${LOCK_OWNER}." 1>&2
exit 1
/Spektrum-Diversity/hooks/pre-revprop-change.tmpl
0,0 → 1,66
#!/bin/sh
 
# PRE-REVPROP-CHANGE HOOK
#
# The pre-revprop-change hook is invoked before a revision property
# is added, modified or deleted. Subversion runs this hook by invoking
# a program (script, executable, binary, etc.) named 'pre-revprop-change'
# (for which this file is a template), with the following ordered
# arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REVISION (the revision being tweaked)
# [3] USER (the username of the person tweaking the property)
# [4] PROPNAME (the property being set on the revision)
# [5] ACTION (the property is being 'A'dded, 'M'odified, or 'D'eleted)
#
# [STDIN] PROPVAL ** the new property value is passed via STDIN.
#
# If the hook program exits with success, the propchange happens; but
# if it exits with failure (non-zero), the propchange doesn't happen.
# The hook program can use the 'svnlook' utility to examine the
# existing value of the revision property.
#
# WARNING: unlike other hooks, this hook MUST exist for revision
# properties to be changed. If the hook does not exist, Subversion
# will behave as if the hook were present, but failed. The reason
# for this is that revision properties are UNVERSIONED, meaning that
# a successful propchange is destructive; the old value is gone
# forever. We recommend the hook back up the old value somewhere.
#
# On a Unix system, the normal procedure is to have 'pre-revprop-change'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'pre-revprop-change' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'pre-revprop-change.bat' or 'pre-revprop-change.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"
 
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
 
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
/Spektrum-Diversity/hooks/pre-unlock.tmpl
0,0 → 1,63
#!/bin/sh
 
# PRE-UNLOCK HOOK
#
# The pre-unlock hook is invoked before an exclusive lock is
# destroyed. Subversion runs this hook by invoking a program
# (script, executable, binary, etc.) named 'pre-unlock' (for which
# this file is a template), with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] PATH (the path in the repository about to be unlocked)
# [3] USER (the user destroying the lock)
# [4] TOKEN (the lock token to be destroyed)
# [5] BREAK-UNLOCK (1 if the user is breaking the lock, else 0)
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# If the hook program exits with success, the lock is destroyed; but
# if it exits with failure (non-zero), the unlock action is aborted
# and STDERR is returned to the client.
 
# On a Unix system, the normal procedure is to have 'pre-unlock'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'pre-unlock' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'pre-unlock.bat' or 'pre-unlock.exe',
# but the basic idea is the same.
#
# Here is an example hook script, for a Unix /bin/sh interpreter:
 
REPOS="$1"
PATH="$2"
USER="$3"
 
# If a lock is owned by a different person, don't allow it be broken.
# (Maybe this script could send email to the lock owner?)
 
SVNLOOK=/usr/local/bin/svnlook
GREP=/bin/grep
SED=/bin/sed
 
LOCK_OWNER=`$SVNLOOK lock "$REPOS" "$PATH" | \
$GREP '^Owner: ' | $SED 's/Owner: //'`
 
# If we get no result from svnlook, there's no lock, return success:
if [ "$LOCK_OWNER" = "" ]; then
exit 0
fi
 
# If the person unlocking matches the lock's owner, return success:
if [ "$LOCK_OWNER" = "$USER" ]; then
exit 0
fi
 
# Otherwise, we've got an owner mismatch, so return failure:
echo "Error: $PATH locked by ${LOCK_OWNER}." 1>&2
exit 1
/Spektrum-Diversity/hooks/start-commit.tmpl
0,0 → 1,65
#!/bin/sh
 
# START-COMMIT HOOK
#
# The start-commit hook is invoked before a Subversion txn is created
# in the process of doing a commit. Subversion runs this hook
# by invoking a program (script, executable, binary, etc.) named
# 'start-commit' (for which this file is a template)
# with the following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] USER (the authenticated user attempting to commit)
# [3] CAPABILITIES (a colon-separated list of capabilities reported
# by the client; see note below)
#
# Note: The CAPABILITIES parameter is new in Subversion 1.5, and 1.5
# clients will typically report at least the "mergeinfo" capability.
# If there are other capabilities, then the list is colon-separated,
# e.g.: "mergeinfo:some-other-capability" (the order is undefined).
#
# The list is self-reported by the client. Therefore, you should not
# make security assumptions based on the capabilities list, nor should
# you assume that clients reliably report every capability they have.
#
# The working directory for this hook program's invocation is undefined,
# so the program should set one explicitly if it cares.
#
# If the hook program exits with success, the commit continues; but
# if it exits with failure (non-zero), the commit is stopped before
# a Subversion txn is created, and STDERR is returned to the client.
#
# On a Unix system, the normal procedure is to have 'start-commit'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'start-commit' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'start-commit.bat' or 'start-commit.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
 
 
REPOS="$1"
USER="$2"
 
commit-allower.pl --repository "$REPOS" --user "$USER" || exit 1
special-auth-check.py --user "$USER" --auth-level 3 || exit 1
 
# All checks passed, so allow the commit.
exit 0
/Spektrum-Diversity/locks/db-logs.lock
0,0 → 1,3
This file is not used by Subversion 1.3.x or later.
However, its existence is required for compatibility with
Subversion 1.2.x or earlier.
/Spektrum-Diversity/locks/db.lock
0,0 → 1,3
This file is not used by Subversion 1.3.x or later.
However, its existence is required for compatibility with
Subversion 1.2.x or earlier.